@abtnode/core 1.17.3-beta-20251117-230305-4637416e → 1.17.3-beta-20251119-034511-f26047c0

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.
@@ -5496,457 +5496,11 @@ SafeBuffer.allocUnsafeSlow = function (size) {
5496
5496
 
5497
5497
  /***/ }),
5498
5498
 
5499
- /***/ 4953:
5500
- /***/ ((module) => {
5501
-
5502
- "use strict";
5503
-
5504
-
5505
- module.exports = {
5506
- "aliceblue": [240, 248, 255],
5507
- "antiquewhite": [250, 235, 215],
5508
- "aqua": [0, 255, 255],
5509
- "aquamarine": [127, 255, 212],
5510
- "azure": [240, 255, 255],
5511
- "beige": [245, 245, 220],
5512
- "bisque": [255, 228, 196],
5513
- "black": [0, 0, 0],
5514
- "blanchedalmond": [255, 235, 205],
5515
- "blue": [0, 0, 255],
5516
- "blueviolet": [138, 43, 226],
5517
- "brown": [165, 42, 42],
5518
- "burlywood": [222, 184, 135],
5519
- "cadetblue": [95, 158, 160],
5520
- "chartreuse": [127, 255, 0],
5521
- "chocolate": [210, 105, 30],
5522
- "coral": [255, 127, 80],
5523
- "cornflowerblue": [100, 149, 237],
5524
- "cornsilk": [255, 248, 220],
5525
- "crimson": [220, 20, 60],
5526
- "cyan": [0, 255, 255],
5527
- "darkblue": [0, 0, 139],
5528
- "darkcyan": [0, 139, 139],
5529
- "darkgoldenrod": [184, 134, 11],
5530
- "darkgray": [169, 169, 169],
5531
- "darkgreen": [0, 100, 0],
5532
- "darkgrey": [169, 169, 169],
5533
- "darkkhaki": [189, 183, 107],
5534
- "darkmagenta": [139, 0, 139],
5535
- "darkolivegreen": [85, 107, 47],
5536
- "darkorange": [255, 140, 0],
5537
- "darkorchid": [153, 50, 204],
5538
- "darkred": [139, 0, 0],
5539
- "darksalmon": [233, 150, 122],
5540
- "darkseagreen": [143, 188, 143],
5541
- "darkslateblue": [72, 61, 139],
5542
- "darkslategray": [47, 79, 79],
5543
- "darkslategrey": [47, 79, 79],
5544
- "darkturquoise": [0, 206, 209],
5545
- "darkviolet": [148, 0, 211],
5546
- "deeppink": [255, 20, 147],
5547
- "deepskyblue": [0, 191, 255],
5548
- "dimgray": [105, 105, 105],
5549
- "dimgrey": [105, 105, 105],
5550
- "dodgerblue": [30, 144, 255],
5551
- "firebrick": [178, 34, 34],
5552
- "floralwhite": [255, 250, 240],
5553
- "forestgreen": [34, 139, 34],
5554
- "fuchsia": [255, 0, 255],
5555
- "gainsboro": [220, 220, 220],
5556
- "ghostwhite": [248, 248, 255],
5557
- "gold": [255, 215, 0],
5558
- "goldenrod": [218, 165, 32],
5559
- "gray": [128, 128, 128],
5560
- "green": [0, 128, 0],
5561
- "greenyellow": [173, 255, 47],
5562
- "grey": [128, 128, 128],
5563
- "honeydew": [240, 255, 240],
5564
- "hotpink": [255, 105, 180],
5565
- "indianred": [205, 92, 92],
5566
- "indigo": [75, 0, 130],
5567
- "ivory": [255, 255, 240],
5568
- "khaki": [240, 230, 140],
5569
- "lavender": [230, 230, 250],
5570
- "lavenderblush": [255, 240, 245],
5571
- "lawngreen": [124, 252, 0],
5572
- "lemonchiffon": [255, 250, 205],
5573
- "lightblue": [173, 216, 230],
5574
- "lightcoral": [240, 128, 128],
5575
- "lightcyan": [224, 255, 255],
5576
- "lightgoldenrodyellow": [250, 250, 210],
5577
- "lightgray": [211, 211, 211],
5578
- "lightgreen": [144, 238, 144],
5579
- "lightgrey": [211, 211, 211],
5580
- "lightpink": [255, 182, 193],
5581
- "lightsalmon": [255, 160, 122],
5582
- "lightseagreen": [32, 178, 170],
5583
- "lightskyblue": [135, 206, 250],
5584
- "lightslategray": [119, 136, 153],
5585
- "lightslategrey": [119, 136, 153],
5586
- "lightsteelblue": [176, 196, 222],
5587
- "lightyellow": [255, 255, 224],
5588
- "lime": [0, 255, 0],
5589
- "limegreen": [50, 205, 50],
5590
- "linen": [250, 240, 230],
5591
- "magenta": [255, 0, 255],
5592
- "maroon": [128, 0, 0],
5593
- "mediumaquamarine": [102, 205, 170],
5594
- "mediumblue": [0, 0, 205],
5595
- "mediumorchid": [186, 85, 211],
5596
- "mediumpurple": [147, 112, 219],
5597
- "mediumseagreen": [60, 179, 113],
5598
- "mediumslateblue": [123, 104, 238],
5599
- "mediumspringgreen": [0, 250, 154],
5600
- "mediumturquoise": [72, 209, 204],
5601
- "mediumvioletred": [199, 21, 133],
5602
- "midnightblue": [25, 25, 112],
5603
- "mintcream": [245, 255, 250],
5604
- "mistyrose": [255, 228, 225],
5605
- "moccasin": [255, 228, 181],
5606
- "navajowhite": [255, 222, 173],
5607
- "navy": [0, 0, 128],
5608
- "oldlace": [253, 245, 230],
5609
- "olive": [128, 128, 0],
5610
- "olivedrab": [107, 142, 35],
5611
- "orange": [255, 165, 0],
5612
- "orangered": [255, 69, 0],
5613
- "orchid": [218, 112, 214],
5614
- "palegoldenrod": [238, 232, 170],
5615
- "palegreen": [152, 251, 152],
5616
- "paleturquoise": [175, 238, 238],
5617
- "palevioletred": [219, 112, 147],
5618
- "papayawhip": [255, 239, 213],
5619
- "peachpuff": [255, 218, 185],
5620
- "peru": [205, 133, 63],
5621
- "pink": [255, 192, 203],
5622
- "plum": [221, 160, 221],
5623
- "powderblue": [176, 224, 230],
5624
- "purple": [128, 0, 128],
5625
- "rebeccapurple": [102, 51, 153],
5626
- "red": [255, 0, 0],
5627
- "rosybrown": [188, 143, 143],
5628
- "royalblue": [65, 105, 225],
5629
- "saddlebrown": [139, 69, 19],
5630
- "salmon": [250, 128, 114],
5631
- "sandybrown": [244, 164, 96],
5632
- "seagreen": [46, 139, 87],
5633
- "seashell": [255, 245, 238],
5634
- "sienna": [160, 82, 45],
5635
- "silver": [192, 192, 192],
5636
- "skyblue": [135, 206, 235],
5637
- "slateblue": [106, 90, 205],
5638
- "slategray": [112, 128, 144],
5639
- "slategrey": [112, 128, 144],
5640
- "snow": [255, 250, 250],
5641
- "springgreen": [0, 255, 127],
5642
- "steelblue": [70, 130, 180],
5643
- "tan": [210, 180, 140],
5644
- "teal": [0, 128, 128],
5645
- "thistle": [216, 191, 216],
5646
- "tomato": [255, 99, 71],
5647
- "turquoise": [64, 224, 208],
5648
- "violet": [238, 130, 238],
5649
- "wheat": [245, 222, 179],
5650
- "white": [255, 255, 255],
5651
- "whitesmoke": [245, 245, 245],
5652
- "yellow": [255, 255, 0],
5653
- "yellowgreen": [154, 205, 50]
5654
- };
5655
-
5656
-
5657
- /***/ }),
5658
-
5659
- /***/ 9407:
5660
- /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
5661
-
5662
- /* MIT license */
5663
- var colorNames = __nccwpck_require__(4953);
5664
- var swizzle = __nccwpck_require__(4421);
5665
- var hasOwnProperty = Object.hasOwnProperty;
5666
-
5667
- var reverseNames = Object.create(null);
5668
-
5669
- // create a list of reverse color names
5670
- for (var name in colorNames) {
5671
- if (hasOwnProperty.call(colorNames, name)) {
5672
- reverseNames[colorNames[name]] = name;
5673
- }
5674
- }
5675
-
5676
- var cs = module.exports = {
5677
- to: {},
5678
- get: {}
5679
- };
5680
-
5681
- cs.get = function (string) {
5682
- var prefix = string.substring(0, 3).toLowerCase();
5683
- var val;
5684
- var model;
5685
- switch (prefix) {
5686
- case 'hsl':
5687
- val = cs.get.hsl(string);
5688
- model = 'hsl';
5689
- break;
5690
- case 'hwb':
5691
- val = cs.get.hwb(string);
5692
- model = 'hwb';
5693
- break;
5694
- default:
5695
- val = cs.get.rgb(string);
5696
- model = 'rgb';
5697
- break;
5698
- }
5699
-
5700
- if (!val) {
5701
- return null;
5702
- }
5703
-
5704
- return {model: model, value: val};
5705
- };
5706
-
5707
- cs.get.rgb = function (string) {
5708
- if (!string) {
5709
- return null;
5710
- }
5711
-
5712
- var abbr = /^#([a-f0-9]{3,4})$/i;
5713
- var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;
5714
- var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
5715
- var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
5716
- var keyword = /^(\w+)$/;
5717
-
5718
- var rgb = [0, 0, 0, 1];
5719
- var match;
5720
- var i;
5721
- var hexAlpha;
5722
-
5723
- if (match = string.match(hex)) {
5724
- hexAlpha = match[2];
5725
- match = match[1];
5726
-
5727
- for (i = 0; i < 3; i++) {
5728
- // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19
5729
- var i2 = i * 2;
5730
- rgb[i] = parseInt(match.slice(i2, i2 + 2), 16);
5731
- }
5732
-
5733
- if (hexAlpha) {
5734
- rgb[3] = parseInt(hexAlpha, 16) / 255;
5735
- }
5736
- } else if (match = string.match(abbr)) {
5737
- match = match[1];
5738
- hexAlpha = match[3];
5739
-
5740
- for (i = 0; i < 3; i++) {
5741
- rgb[i] = parseInt(match[i] + match[i], 16);
5742
- }
5743
-
5744
- if (hexAlpha) {
5745
- rgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;
5746
- }
5747
- } else if (match = string.match(rgba)) {
5748
- for (i = 0; i < 3; i++) {
5749
- rgb[i] = parseInt(match[i + 1], 0);
5750
- }
5751
-
5752
- if (match[4]) {
5753
- if (match[5]) {
5754
- rgb[3] = parseFloat(match[4]) * 0.01;
5755
- } else {
5756
- rgb[3] = parseFloat(match[4]);
5757
- }
5758
- }
5759
- } else if (match = string.match(per)) {
5760
- for (i = 0; i < 3; i++) {
5761
- rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);
5762
- }
5763
-
5764
- if (match[4]) {
5765
- if (match[5]) {
5766
- rgb[3] = parseFloat(match[4]) * 0.01;
5767
- } else {
5768
- rgb[3] = parseFloat(match[4]);
5769
- }
5770
- }
5771
- } else if (match = string.match(keyword)) {
5772
- if (match[1] === 'transparent') {
5773
- return [0, 0, 0, 0];
5774
- }
5775
-
5776
- if (!hasOwnProperty.call(colorNames, match[1])) {
5777
- return null;
5778
- }
5779
-
5780
- rgb = colorNames[match[1]];
5781
- rgb[3] = 1;
5782
-
5783
- return rgb;
5784
- } else {
5785
- return null;
5786
- }
5787
-
5788
- for (i = 0; i < 3; i++) {
5789
- rgb[i] = clamp(rgb[i], 0, 255);
5790
- }
5791
- rgb[3] = clamp(rgb[3], 0, 1);
5792
-
5793
- return rgb;
5794
- };
5795
-
5796
- cs.get.hsl = function (string) {
5797
- if (!string) {
5798
- return null;
5799
- }
5800
-
5801
- var 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*)?\)$/;
5802
- var match = string.match(hsl);
5803
-
5804
- if (match) {
5805
- var alpha = parseFloat(match[4]);
5806
- var h = ((parseFloat(match[1]) % 360) + 360) % 360;
5807
- var s = clamp(parseFloat(match[2]), 0, 100);
5808
- var l = clamp(parseFloat(match[3]), 0, 100);
5809
- var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
5810
-
5811
- return [h, s, l, a];
5812
- }
5813
-
5814
- return null;
5815
- };
5816
-
5817
- cs.get.hwb = function (string) {
5818
- if (!string) {
5819
- return null;
5820
- }
5821
-
5822
- var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
5823
- var match = string.match(hwb);
5824
-
5825
- if (match) {
5826
- var alpha = parseFloat(match[4]);
5827
- var h = ((parseFloat(match[1]) % 360) + 360) % 360;
5828
- var w = clamp(parseFloat(match[2]), 0, 100);
5829
- var b = clamp(parseFloat(match[3]), 0, 100);
5830
- var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
5831
- return [h, w, b, a];
5832
- }
5833
-
5834
- return null;
5835
- };
5836
-
5837
- cs.to.hex = function () {
5838
- var rgba = swizzle(arguments);
5839
-
5840
- return (
5841
- '#' +
5842
- hexDouble(rgba[0]) +
5843
- hexDouble(rgba[1]) +
5844
- hexDouble(rgba[2]) +
5845
- (rgba[3] < 1
5846
- ? (hexDouble(Math.round(rgba[3] * 255)))
5847
- : '')
5848
- );
5849
- };
5850
-
5851
- cs.to.rgb = function () {
5852
- var rgba = swizzle(arguments);
5853
-
5854
- return rgba.length < 4 || rgba[3] === 1
5855
- ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'
5856
- : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';
5857
- };
5858
-
5859
- cs.to.rgb.percent = function () {
5860
- var rgba = swizzle(arguments);
5861
-
5862
- var r = Math.round(rgba[0] / 255 * 100);
5863
- var g = Math.round(rgba[1] / 255 * 100);
5864
- var b = Math.round(rgba[2] / 255 * 100);
5865
-
5866
- return rgba.length < 4 || rgba[3] === 1
5867
- ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'
5868
- : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';
5869
- };
5870
-
5871
- cs.to.hsl = function () {
5872
- var hsla = swizzle(arguments);
5873
- return hsla.length < 4 || hsla[3] === 1
5874
- ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'
5875
- : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';
5876
- };
5877
-
5878
- // hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax
5879
- // (hwb have alpha optional & 1 is default value)
5880
- cs.to.hwb = function () {
5881
- var hwba = swizzle(arguments);
5882
-
5883
- var a = '';
5884
- if (hwba.length >= 4 && hwba[3] !== 1) {
5885
- a = ', ' + hwba[3];
5886
- }
5887
-
5888
- return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';
5889
- };
5890
-
5891
- cs.to.keyword = function (rgb) {
5892
- return reverseNames[rgb.slice(0, 3)];
5893
- };
5894
-
5895
- // helpers
5896
- function clamp(num, min, max) {
5897
- return Math.min(Math.max(min, num), max);
5898
- }
5899
-
5900
- function hexDouble(num) {
5901
- var str = Math.round(num).toString(16).toUpperCase();
5902
- return (str.length < 2) ? '0' + str : str;
5903
- }
5904
-
5905
-
5906
- /***/ }),
5907
-
5908
- /***/ 8107:
5909
- /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
5910
-
5911
- "use strict";
5912
-
5913
-
5914
- var color = __nccwpck_require__(1696)
5915
- , hex = __nccwpck_require__(5143);
5916
-
5917
- /**
5918
- * Generate a color for a given name. But be reasonably smart about it by
5919
- * understanding name spaces and coloring each namespace a bit lighter so they
5920
- * still have the same base color as the root.
5921
- *
5922
- * @param {string} namespace The namespace
5923
- * @param {string} [delimiter] The delimiter
5924
- * @returns {string} color
5925
- */
5926
- module.exports = function colorspace(namespace, delimiter) {
5927
- var split = namespace.split(delimiter || ':');
5928
- var base = hex(split[0]);
5929
-
5930
- if (!split.length) return base;
5931
-
5932
- for (var i = 0, l = split.length - 1; i < l; i++) {
5933
- base = color(base)
5934
- .mix(color(hex(split[i + 1])))
5935
- .saturate(1)
5936
- .hex();
5937
- }
5938
-
5939
- return base;
5940
- };
5941
-
5942
-
5943
- /***/ }),
5944
-
5945
- /***/ 4618:
5499
+ /***/ 6872:
5946
5500
  /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
5947
5501
 
5948
5502
  /* MIT license */
5949
- var cssKeywords = __nccwpck_require__(8402);
5503
+ var cssKeywords = __nccwpck_require__(7888);
5950
5504
 
5951
5505
  // NOTE: conversions should only return primitive values (i.e. arrays, or
5952
5506
  // values that give correct `typeof` results).
@@ -6150,32 +5704,261 @@ convert.rgb.keyword = function (rgb) {
6150
5704
  }
6151
5705
  }
6152
5706
 
6153
- return currentClosestKeyword;
5707
+ return currentClosestKeyword;
5708
+ };
5709
+
5710
+ convert.keyword.rgb = function (keyword) {
5711
+ return cssKeywords[keyword];
5712
+ };
5713
+
5714
+ convert.rgb.xyz = function (rgb) {
5715
+ var r = rgb[0] / 255;
5716
+ var g = rgb[1] / 255;
5717
+ var b = rgb[2] / 255;
5718
+
5719
+ // assume sRGB
5720
+ r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);
5721
+ g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);
5722
+ b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);
5723
+
5724
+ var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);
5725
+ var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);
5726
+ var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);
5727
+
5728
+ return [x * 100, y * 100, z * 100];
5729
+ };
5730
+
5731
+ convert.rgb.lab = function (rgb) {
5732
+ var xyz = convert.rgb.xyz(rgb);
5733
+ var x = xyz[0];
5734
+ var y = xyz[1];
5735
+ var z = xyz[2];
5736
+ var l;
5737
+ var a;
5738
+ var b;
5739
+
5740
+ x /= 95.047;
5741
+ y /= 100;
5742
+ z /= 108.883;
5743
+
5744
+ x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
5745
+ y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
5746
+ z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
5747
+
5748
+ l = (116 * y) - 16;
5749
+ a = 500 * (x - y);
5750
+ b = 200 * (y - z);
5751
+
5752
+ return [l, a, b];
5753
+ };
5754
+
5755
+ convert.hsl.rgb = function (hsl) {
5756
+ var h = hsl[0] / 360;
5757
+ var s = hsl[1] / 100;
5758
+ var l = hsl[2] / 100;
5759
+ var t1;
5760
+ var t2;
5761
+ var t3;
5762
+ var rgb;
5763
+ var val;
5764
+
5765
+ if (s === 0) {
5766
+ val = l * 255;
5767
+ return [val, val, val];
5768
+ }
5769
+
5770
+ if (l < 0.5) {
5771
+ t2 = l * (1 + s);
5772
+ } else {
5773
+ t2 = l + s - l * s;
5774
+ }
5775
+
5776
+ t1 = 2 * l - t2;
5777
+
5778
+ rgb = [0, 0, 0];
5779
+ for (var i = 0; i < 3; i++) {
5780
+ t3 = h + 1 / 3 * -(i - 1);
5781
+ if (t3 < 0) {
5782
+ t3++;
5783
+ }
5784
+ if (t3 > 1) {
5785
+ t3--;
5786
+ }
5787
+
5788
+ if (6 * t3 < 1) {
5789
+ val = t1 + (t2 - t1) * 6 * t3;
5790
+ } else if (2 * t3 < 1) {
5791
+ val = t2;
5792
+ } else if (3 * t3 < 2) {
5793
+ val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
5794
+ } else {
5795
+ val = t1;
5796
+ }
5797
+
5798
+ rgb[i] = val * 255;
5799
+ }
5800
+
5801
+ return rgb;
5802
+ };
5803
+
5804
+ convert.hsl.hsv = function (hsl) {
5805
+ var h = hsl[0];
5806
+ var s = hsl[1] / 100;
5807
+ var l = hsl[2] / 100;
5808
+ var smin = s;
5809
+ var lmin = Math.max(l, 0.01);
5810
+ var sv;
5811
+ var v;
5812
+
5813
+ l *= 2;
5814
+ s *= (l <= 1) ? l : 2 - l;
5815
+ smin *= lmin <= 1 ? lmin : 2 - lmin;
5816
+ v = (l + s) / 2;
5817
+ sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);
5818
+
5819
+ return [h, sv * 100, v * 100];
5820
+ };
5821
+
5822
+ convert.hsv.rgb = function (hsv) {
5823
+ var h = hsv[0] / 60;
5824
+ var s = hsv[1] / 100;
5825
+ var v = hsv[2] / 100;
5826
+ var hi = Math.floor(h) % 6;
5827
+
5828
+ var f = h - Math.floor(h);
5829
+ var p = 255 * v * (1 - s);
5830
+ var q = 255 * v * (1 - (s * f));
5831
+ var t = 255 * v * (1 - (s * (1 - f)));
5832
+ v *= 255;
5833
+
5834
+ switch (hi) {
5835
+ case 0:
5836
+ return [v, t, p];
5837
+ case 1:
5838
+ return [q, v, p];
5839
+ case 2:
5840
+ return [p, v, t];
5841
+ case 3:
5842
+ return [p, q, v];
5843
+ case 4:
5844
+ return [t, p, v];
5845
+ case 5:
5846
+ return [v, p, q];
5847
+ }
5848
+ };
5849
+
5850
+ convert.hsv.hsl = function (hsv) {
5851
+ var h = hsv[0];
5852
+ var s = hsv[1] / 100;
5853
+ var v = hsv[2] / 100;
5854
+ var vmin = Math.max(v, 0.01);
5855
+ var lmin;
5856
+ var sl;
5857
+ var l;
5858
+
5859
+ l = (2 - s) * v;
5860
+ lmin = (2 - s) * vmin;
5861
+ sl = s * vmin;
5862
+ sl /= (lmin <= 1) ? lmin : 2 - lmin;
5863
+ sl = sl || 0;
5864
+ l /= 2;
5865
+
5866
+ return [h, sl * 100, l * 100];
5867
+ };
5868
+
5869
+ // http://dev.w3.org/csswg/css-color/#hwb-to-rgb
5870
+ convert.hwb.rgb = function (hwb) {
5871
+ var h = hwb[0] / 360;
5872
+ var wh = hwb[1] / 100;
5873
+ var bl = hwb[2] / 100;
5874
+ var ratio = wh + bl;
5875
+ var i;
5876
+ var v;
5877
+ var f;
5878
+ var n;
5879
+
5880
+ // wh + bl cant be > 1
5881
+ if (ratio > 1) {
5882
+ wh /= ratio;
5883
+ bl /= ratio;
5884
+ }
5885
+
5886
+ i = Math.floor(6 * h);
5887
+ v = 1 - bl;
5888
+ f = 6 * h - i;
5889
+
5890
+ if ((i & 0x01) !== 0) {
5891
+ f = 1 - f;
5892
+ }
5893
+
5894
+ n = wh + f * (v - wh); // linear interpolation
5895
+
5896
+ var r;
5897
+ var g;
5898
+ var b;
5899
+ switch (i) {
5900
+ default:
5901
+ case 6:
5902
+ case 0: r = v; g = n; b = wh; break;
5903
+ case 1: r = n; g = v; b = wh; break;
5904
+ case 2: r = wh; g = v; b = n; break;
5905
+ case 3: r = wh; g = n; b = v; break;
5906
+ case 4: r = n; g = wh; b = v; break;
5907
+ case 5: r = v; g = wh; b = n; break;
5908
+ }
5909
+
5910
+ return [r * 255, g * 255, b * 255];
6154
5911
  };
6155
5912
 
6156
- convert.keyword.rgb = function (keyword) {
6157
- return cssKeywords[keyword];
5913
+ convert.cmyk.rgb = function (cmyk) {
5914
+ var c = cmyk[0] / 100;
5915
+ var m = cmyk[1] / 100;
5916
+ var y = cmyk[2] / 100;
5917
+ var k = cmyk[3] / 100;
5918
+ var r;
5919
+ var g;
5920
+ var b;
5921
+
5922
+ r = 1 - Math.min(1, c * (1 - k) + k);
5923
+ g = 1 - Math.min(1, m * (1 - k) + k);
5924
+ b = 1 - Math.min(1, y * (1 - k) + k);
5925
+
5926
+ return [r * 255, g * 255, b * 255];
6158
5927
  };
6159
5928
 
6160
- convert.rgb.xyz = function (rgb) {
6161
- var r = rgb[0] / 255;
6162
- var g = rgb[1] / 255;
6163
- var b = rgb[2] / 255;
5929
+ convert.xyz.rgb = function (xyz) {
5930
+ var x = xyz[0] / 100;
5931
+ var y = xyz[1] / 100;
5932
+ var z = xyz[2] / 100;
5933
+ var r;
5934
+ var g;
5935
+ var b;
5936
+
5937
+ r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);
5938
+ g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);
5939
+ b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);
6164
5940
 
6165
5941
  // assume sRGB
6166
- r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);
6167
- g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);
6168
- b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);
5942
+ r = r > 0.0031308
5943
+ ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)
5944
+ : r * 12.92;
6169
5945
 
6170
- var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);
6171
- var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);
6172
- var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);
5946
+ g = g > 0.0031308
5947
+ ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)
5948
+ : g * 12.92;
6173
5949
 
6174
- return [x * 100, y * 100, z * 100];
5950
+ b = b > 0.0031308
5951
+ ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)
5952
+ : b * 12.92;
5953
+
5954
+ r = Math.min(Math.max(0, r), 1);
5955
+ g = Math.min(Math.max(0, g), 1);
5956
+ b = Math.min(Math.max(0, b), 1);
5957
+
5958
+ return [r * 255, g * 255, b * 255];
6175
5959
  };
6176
5960
 
6177
- convert.rgb.lab = function (rgb) {
6178
- var xyz = convert.rgb.xyz(rgb);
5961
+ convert.xyz.lab = function (xyz) {
6179
5962
  var x = xyz[0];
6180
5963
  var y = xyz[1];
6181
5964
  var z = xyz[2];
@@ -6198,970 +5981,1187 @@ convert.rgb.lab = function (rgb) {
6198
5981
  return [l, a, b];
6199
5982
  };
6200
5983
 
6201
- convert.hsl.rgb = function (hsl) {
6202
- var h = hsl[0] / 360;
6203
- var s = hsl[1] / 100;
6204
- var l = hsl[2] / 100;
6205
- var t1;
6206
- var t2;
6207
- var t3;
6208
- var rgb;
6209
- var val;
5984
+ convert.lab.xyz = function (lab) {
5985
+ var l = lab[0];
5986
+ var a = lab[1];
5987
+ var b = lab[2];
5988
+ var x;
5989
+ var y;
5990
+ var z;
6210
5991
 
6211
- if (s === 0) {
6212
- val = l * 255;
6213
- return [val, val, val];
6214
- }
5992
+ y = (l + 16) / 116;
5993
+ x = a / 500 + y;
5994
+ z = y - b / 200;
6215
5995
 
6216
- if (l < 0.5) {
6217
- t2 = l * (1 + s);
6218
- } else {
6219
- t2 = l + s - l * s;
5996
+ var y2 = Math.pow(y, 3);
5997
+ var x2 = Math.pow(x, 3);
5998
+ var z2 = Math.pow(z, 3);
5999
+ y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;
6000
+ x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;
6001
+ z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;
6002
+
6003
+ x *= 95.047;
6004
+ y *= 100;
6005
+ z *= 108.883;
6006
+
6007
+ return [x, y, z];
6008
+ };
6009
+
6010
+ convert.lab.lch = function (lab) {
6011
+ var l = lab[0];
6012
+ var a = lab[1];
6013
+ var b = lab[2];
6014
+ var hr;
6015
+ var h;
6016
+ var c;
6017
+
6018
+ hr = Math.atan2(b, a);
6019
+ h = hr * 360 / 2 / Math.PI;
6020
+
6021
+ if (h < 0) {
6022
+ h += 360;
6220
6023
  }
6221
6024
 
6222
- t1 = 2 * l - t2;
6025
+ c = Math.sqrt(a * a + b * b);
6223
6026
 
6224
- rgb = [0, 0, 0];
6225
- for (var i = 0; i < 3; i++) {
6226
- t3 = h + 1 / 3 * -(i - 1);
6227
- if (t3 < 0) {
6228
- t3++;
6229
- }
6230
- if (t3 > 1) {
6231
- t3--;
6232
- }
6027
+ return [l, c, h];
6028
+ };
6233
6029
 
6234
- if (6 * t3 < 1) {
6235
- val = t1 + (t2 - t1) * 6 * t3;
6236
- } else if (2 * t3 < 1) {
6237
- val = t2;
6238
- } else if (3 * t3 < 2) {
6239
- val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
6240
- } else {
6241
- val = t1;
6242
- }
6030
+ convert.lch.lab = function (lch) {
6031
+ var l = lch[0];
6032
+ var c = lch[1];
6033
+ var h = lch[2];
6034
+ var a;
6035
+ var b;
6036
+ var hr;
6243
6037
 
6244
- rgb[i] = val * 255;
6038
+ hr = h / 360 * 2 * Math.PI;
6039
+ a = c * Math.cos(hr);
6040
+ b = c * Math.sin(hr);
6041
+
6042
+ return [l, a, b];
6043
+ };
6044
+
6045
+ convert.rgb.ansi16 = function (args) {
6046
+ var r = args[0];
6047
+ var g = args[1];
6048
+ var b = args[2];
6049
+ var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization
6050
+
6051
+ value = Math.round(value / 50);
6052
+
6053
+ if (value === 0) {
6054
+ return 30;
6245
6055
  }
6246
6056
 
6247
- return rgb;
6057
+ var ansi = 30
6058
+ + ((Math.round(b / 255) << 2)
6059
+ | (Math.round(g / 255) << 1)
6060
+ | Math.round(r / 255));
6061
+
6062
+ if (value === 2) {
6063
+ ansi += 60;
6064
+ }
6065
+
6066
+ return ansi;
6248
6067
  };
6249
6068
 
6250
- convert.hsl.hsv = function (hsl) {
6251
- var h = hsl[0];
6252
- var s = hsl[1] / 100;
6253
- var l = hsl[2] / 100;
6254
- var smin = s;
6255
- var lmin = Math.max(l, 0.01);
6256
- var sv;
6257
- var v;
6069
+ convert.hsv.ansi16 = function (args) {
6070
+ // optimization here; we already know the value and don't need to get
6071
+ // it converted for us.
6072
+ return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
6073
+ };
6258
6074
 
6259
- l *= 2;
6260
- s *= (l <= 1) ? l : 2 - l;
6261
- smin *= lmin <= 1 ? lmin : 2 - lmin;
6262
- v = (l + s) / 2;
6263
- sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);
6075
+ convert.rgb.ansi256 = function (args) {
6076
+ var r = args[0];
6077
+ var g = args[1];
6078
+ var b = args[2];
6264
6079
 
6265
- return [h, sv * 100, v * 100];
6080
+ // we use the extended greyscale palette here, with the exception of
6081
+ // black and white. normal palette only has 4 greyscale shades.
6082
+ if (r === g && g === b) {
6083
+ if (r < 8) {
6084
+ return 16;
6085
+ }
6086
+
6087
+ if (r > 248) {
6088
+ return 231;
6089
+ }
6090
+
6091
+ return Math.round(((r - 8) / 247) * 24) + 232;
6092
+ }
6093
+
6094
+ var ansi = 16
6095
+ + (36 * Math.round(r / 255 * 5))
6096
+ + (6 * Math.round(g / 255 * 5))
6097
+ + Math.round(b / 255 * 5);
6098
+
6099
+ return ansi;
6266
6100
  };
6267
6101
 
6268
- convert.hsv.rgb = function (hsv) {
6269
- var h = hsv[0] / 60;
6270
- var s = hsv[1] / 100;
6271
- var v = hsv[2] / 100;
6272
- var hi = Math.floor(h) % 6;
6102
+ convert.ansi16.rgb = function (args) {
6103
+ var color = args % 10;
6273
6104
 
6274
- var f = h - Math.floor(h);
6275
- var p = 255 * v * (1 - s);
6276
- var q = 255 * v * (1 - (s * f));
6277
- var t = 255 * v * (1 - (s * (1 - f)));
6278
- v *= 255;
6105
+ // handle greyscale
6106
+ if (color === 0 || color === 7) {
6107
+ if (args > 50) {
6108
+ color += 3.5;
6109
+ }
6279
6110
 
6280
- switch (hi) {
6281
- case 0:
6282
- return [v, t, p];
6283
- case 1:
6284
- return [q, v, p];
6285
- case 2:
6286
- return [p, v, t];
6287
- case 3:
6288
- return [p, q, v];
6289
- case 4:
6290
- return [t, p, v];
6291
- case 5:
6292
- return [v, p, q];
6111
+ color = color / 10.5 * 255;
6112
+
6113
+ return [color, color, color];
6293
6114
  }
6115
+
6116
+ var mult = (~~(args > 50) + 1) * 0.5;
6117
+ var r = ((color & 1) * mult) * 255;
6118
+ var g = (((color >> 1) & 1) * mult) * 255;
6119
+ var b = (((color >> 2) & 1) * mult) * 255;
6120
+
6121
+ return [r, g, b];
6294
6122
  };
6295
6123
 
6296
- convert.hsv.hsl = function (hsv) {
6297
- var h = hsv[0];
6298
- var s = hsv[1] / 100;
6299
- var v = hsv[2] / 100;
6300
- var vmin = Math.max(v, 0.01);
6301
- var lmin;
6302
- var sl;
6303
- var l;
6124
+ convert.ansi256.rgb = function (args) {
6125
+ // handle greyscale
6126
+ if (args >= 232) {
6127
+ var c = (args - 232) * 10 + 8;
6128
+ return [c, c, c];
6129
+ }
6304
6130
 
6305
- l = (2 - s) * v;
6306
- lmin = (2 - s) * vmin;
6307
- sl = s * vmin;
6308
- sl /= (lmin <= 1) ? lmin : 2 - lmin;
6309
- sl = sl || 0;
6310
- l /= 2;
6131
+ args -= 16;
6311
6132
 
6312
- return [h, sl * 100, l * 100];
6313
- };
6133
+ var rem;
6134
+ var r = Math.floor(args / 36) / 5 * 255;
6135
+ var g = Math.floor((rem = args % 36) / 6) / 5 * 255;
6136
+ var b = (rem % 6) / 5 * 255;
6314
6137
 
6315
- // http://dev.w3.org/csswg/css-color/#hwb-to-rgb
6316
- convert.hwb.rgb = function (hwb) {
6317
- var h = hwb[0] / 360;
6318
- var wh = hwb[1] / 100;
6319
- var bl = hwb[2] / 100;
6320
- var ratio = wh + bl;
6321
- var i;
6322
- var v;
6323
- var f;
6324
- var n;
6138
+ return [r, g, b];
6139
+ };
6325
6140
 
6326
- // wh + bl cant be > 1
6327
- if (ratio > 1) {
6328
- wh /= ratio;
6329
- bl /= ratio;
6330
- }
6141
+ convert.rgb.hex = function (args) {
6142
+ var integer = ((Math.round(args[0]) & 0xFF) << 16)
6143
+ + ((Math.round(args[1]) & 0xFF) << 8)
6144
+ + (Math.round(args[2]) & 0xFF);
6331
6145
 
6332
- i = Math.floor(6 * h);
6333
- v = 1 - bl;
6334
- f = 6 * h - i;
6146
+ var string = integer.toString(16).toUpperCase();
6147
+ return '000000'.substring(string.length) + string;
6148
+ };
6335
6149
 
6336
- if ((i & 0x01) !== 0) {
6337
- f = 1 - f;
6150
+ convert.hex.rgb = function (args) {
6151
+ var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
6152
+ if (!match) {
6153
+ return [0, 0, 0];
6338
6154
  }
6339
6155
 
6340
- n = wh + f * (v - wh); // linear interpolation
6156
+ var colorString = match[0];
6341
6157
 
6342
- var r;
6343
- var g;
6344
- var b;
6345
- switch (i) {
6346
- default:
6347
- case 6:
6348
- case 0: r = v; g = n; b = wh; break;
6349
- case 1: r = n; g = v; b = wh; break;
6350
- case 2: r = wh; g = v; b = n; break;
6351
- case 3: r = wh; g = n; b = v; break;
6352
- case 4: r = n; g = wh; b = v; break;
6353
- case 5: r = v; g = wh; b = n; break;
6158
+ if (match[0].length === 3) {
6159
+ colorString = colorString.split('').map(function (char) {
6160
+ return char + char;
6161
+ }).join('');
6354
6162
  }
6355
6163
 
6356
- return [r * 255, g * 255, b * 255];
6164
+ var integer = parseInt(colorString, 16);
6165
+ var r = (integer >> 16) & 0xFF;
6166
+ var g = (integer >> 8) & 0xFF;
6167
+ var b = integer & 0xFF;
6168
+
6169
+ return [r, g, b];
6357
6170
  };
6358
6171
 
6359
- convert.cmyk.rgb = function (cmyk) {
6360
- var c = cmyk[0] / 100;
6361
- var m = cmyk[1] / 100;
6362
- var y = cmyk[2] / 100;
6363
- var k = cmyk[3] / 100;
6364
- var r;
6365
- var g;
6366
- var b;
6172
+ convert.rgb.hcg = function (rgb) {
6173
+ var r = rgb[0] / 255;
6174
+ var g = rgb[1] / 255;
6175
+ var b = rgb[2] / 255;
6176
+ var max = Math.max(Math.max(r, g), b);
6177
+ var min = Math.min(Math.min(r, g), b);
6178
+ var chroma = (max - min);
6179
+ var grayscale;
6180
+ var hue;
6367
6181
 
6368
- r = 1 - Math.min(1, c * (1 - k) + k);
6369
- g = 1 - Math.min(1, m * (1 - k) + k);
6370
- b = 1 - Math.min(1, y * (1 - k) + k);
6182
+ if (chroma < 1) {
6183
+ grayscale = min / (1 - chroma);
6184
+ } else {
6185
+ grayscale = 0;
6186
+ }
6371
6187
 
6372
- return [r * 255, g * 255, b * 255];
6188
+ if (chroma <= 0) {
6189
+ hue = 0;
6190
+ } else
6191
+ if (max === r) {
6192
+ hue = ((g - b) / chroma) % 6;
6193
+ } else
6194
+ if (max === g) {
6195
+ hue = 2 + (b - r) / chroma;
6196
+ } else {
6197
+ hue = 4 + (r - g) / chroma + 4;
6198
+ }
6199
+
6200
+ hue /= 6;
6201
+ hue %= 1;
6202
+
6203
+ return [hue * 360, chroma * 100, grayscale * 100];
6373
6204
  };
6374
6205
 
6375
- convert.xyz.rgb = function (xyz) {
6376
- var x = xyz[0] / 100;
6377
- var y = xyz[1] / 100;
6378
- var z = xyz[2] / 100;
6379
- var r;
6380
- var g;
6381
- var b;
6206
+ convert.hsl.hcg = function (hsl) {
6207
+ var s = hsl[1] / 100;
6208
+ var l = hsl[2] / 100;
6209
+ var c = 1;
6210
+ var f = 0;
6382
6211
 
6383
- r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);
6384
- g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);
6385
- b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);
6212
+ if (l < 0.5) {
6213
+ c = 2.0 * s * l;
6214
+ } else {
6215
+ c = 2.0 * s * (1.0 - l);
6216
+ }
6386
6217
 
6387
- // assume sRGB
6388
- r = r > 0.0031308
6389
- ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)
6390
- : r * 12.92;
6218
+ if (c < 1.0) {
6219
+ f = (l - 0.5 * c) / (1.0 - c);
6220
+ }
6391
6221
 
6392
- g = g > 0.0031308
6393
- ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)
6394
- : g * 12.92;
6222
+ return [hsl[0], c * 100, f * 100];
6223
+ };
6395
6224
 
6396
- b = b > 0.0031308
6397
- ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)
6398
- : b * 12.92;
6225
+ convert.hsv.hcg = function (hsv) {
6226
+ var s = hsv[1] / 100;
6227
+ var v = hsv[2] / 100;
6399
6228
 
6400
- r = Math.min(Math.max(0, r), 1);
6401
- g = Math.min(Math.max(0, g), 1);
6402
- b = Math.min(Math.max(0, b), 1);
6229
+ var c = s * v;
6230
+ var f = 0;
6403
6231
 
6404
- return [r * 255, g * 255, b * 255];
6232
+ if (c < 1.0) {
6233
+ f = (v - c) / (1 - c);
6234
+ }
6235
+
6236
+ return [hsv[0], c * 100, f * 100];
6405
6237
  };
6406
6238
 
6407
- convert.xyz.lab = function (xyz) {
6408
- var x = xyz[0];
6409
- var y = xyz[1];
6410
- var z = xyz[2];
6411
- var l;
6412
- var a;
6413
- var b;
6239
+ convert.hcg.rgb = function (hcg) {
6240
+ var h = hcg[0] / 360;
6241
+ var c = hcg[1] / 100;
6242
+ var g = hcg[2] / 100;
6414
6243
 
6415
- x /= 95.047;
6416
- y /= 100;
6417
- z /= 108.883;
6244
+ if (c === 0.0) {
6245
+ return [g * 255, g * 255, g * 255];
6246
+ }
6418
6247
 
6419
- x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
6420
- y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
6421
- z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
6248
+ var pure = [0, 0, 0];
6249
+ var hi = (h % 1) * 6;
6250
+ var v = hi % 1;
6251
+ var w = 1 - v;
6252
+ var mg = 0;
6422
6253
 
6423
- l = (116 * y) - 16;
6424
- a = 500 * (x - y);
6425
- b = 200 * (y - z);
6254
+ switch (Math.floor(hi)) {
6255
+ case 0:
6256
+ pure[0] = 1; pure[1] = v; pure[2] = 0; break;
6257
+ case 1:
6258
+ pure[0] = w; pure[1] = 1; pure[2] = 0; break;
6259
+ case 2:
6260
+ pure[0] = 0; pure[1] = 1; pure[2] = v; break;
6261
+ case 3:
6262
+ pure[0] = 0; pure[1] = w; pure[2] = 1; break;
6263
+ case 4:
6264
+ pure[0] = v; pure[1] = 0; pure[2] = 1; break;
6265
+ default:
6266
+ pure[0] = 1; pure[1] = 0; pure[2] = w;
6267
+ }
6426
6268
 
6427
- return [l, a, b];
6428
- };
6269
+ mg = (1.0 - c) * g;
6429
6270
 
6430
- convert.lab.xyz = function (lab) {
6431
- var l = lab[0];
6432
- var a = lab[1];
6433
- var b = lab[2];
6434
- var x;
6435
- var y;
6436
- var z;
6271
+ return [
6272
+ (c * pure[0] + mg) * 255,
6273
+ (c * pure[1] + mg) * 255,
6274
+ (c * pure[2] + mg) * 255
6275
+ ];
6276
+ };
6437
6277
 
6438
- y = (l + 16) / 116;
6439
- x = a / 500 + y;
6440
- z = y - b / 200;
6278
+ convert.hcg.hsv = function (hcg) {
6279
+ var c = hcg[1] / 100;
6280
+ var g = hcg[2] / 100;
6441
6281
 
6442
- var y2 = Math.pow(y, 3);
6443
- var x2 = Math.pow(x, 3);
6444
- var z2 = Math.pow(z, 3);
6445
- y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;
6446
- x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;
6447
- z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;
6282
+ var v = c + g * (1.0 - c);
6283
+ var f = 0;
6448
6284
 
6449
- x *= 95.047;
6450
- y *= 100;
6451
- z *= 108.883;
6285
+ if (v > 0.0) {
6286
+ f = c / v;
6287
+ }
6452
6288
 
6453
- return [x, y, z];
6289
+ return [hcg[0], f * 100, v * 100];
6454
6290
  };
6455
6291
 
6456
- convert.lab.lch = function (lab) {
6457
- var l = lab[0];
6458
- var a = lab[1];
6459
- var b = lab[2];
6460
- var hr;
6461
- var h;
6462
- var c;
6292
+ convert.hcg.hsl = function (hcg) {
6293
+ var c = hcg[1] / 100;
6294
+ var g = hcg[2] / 100;
6463
6295
 
6464
- hr = Math.atan2(b, a);
6465
- h = hr * 360 / 2 / Math.PI;
6296
+ var l = g * (1.0 - c) + 0.5 * c;
6297
+ var s = 0;
6466
6298
 
6467
- if (h < 0) {
6468
- h += 360;
6299
+ if (l > 0.0 && l < 0.5) {
6300
+ s = c / (2 * l);
6301
+ } else
6302
+ if (l >= 0.5 && l < 1.0) {
6303
+ s = c / (2 * (1 - l));
6469
6304
  }
6470
6305
 
6471
- c = Math.sqrt(a * a + b * b);
6306
+ return [hcg[0], s * 100, l * 100];
6307
+ };
6472
6308
 
6473
- return [l, c, h];
6309
+ convert.hcg.hwb = function (hcg) {
6310
+ var c = hcg[1] / 100;
6311
+ var g = hcg[2] / 100;
6312
+ var v = c + g * (1.0 - c);
6313
+ return [hcg[0], (v - c) * 100, (1 - v) * 100];
6474
6314
  };
6475
6315
 
6476
- convert.lch.lab = function (lch) {
6477
- var l = lch[0];
6478
- var c = lch[1];
6479
- var h = lch[2];
6480
- var a;
6481
- var b;
6482
- var hr;
6316
+ convert.hwb.hcg = function (hwb) {
6317
+ var w = hwb[1] / 100;
6318
+ var b = hwb[2] / 100;
6319
+ var v = 1 - b;
6320
+ var c = v - w;
6321
+ var g = 0;
6483
6322
 
6484
- hr = h / 360 * 2 * Math.PI;
6485
- a = c * Math.cos(hr);
6486
- b = c * Math.sin(hr);
6323
+ if (c < 1) {
6324
+ g = (v - c) / (1 - c);
6325
+ }
6487
6326
 
6488
- return [l, a, b];
6327
+ return [hwb[0], c * 100, g * 100];
6489
6328
  };
6490
6329
 
6491
- convert.rgb.ansi16 = function (args) {
6492
- var r = args[0];
6493
- var g = args[1];
6494
- var b = args[2];
6495
- var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization
6330
+ convert.apple.rgb = function (apple) {
6331
+ return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];
6332
+ };
6496
6333
 
6497
- value = Math.round(value / 50);
6334
+ convert.rgb.apple = function (rgb) {
6335
+ return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];
6336
+ };
6498
6337
 
6499
- if (value === 0) {
6500
- return 30;
6501
- }
6338
+ convert.gray.rgb = function (args) {
6339
+ return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
6340
+ };
6502
6341
 
6503
- var ansi = 30
6504
- + ((Math.round(b / 255) << 2)
6505
- | (Math.round(g / 255) << 1)
6506
- | Math.round(r / 255));
6342
+ convert.gray.hsl = convert.gray.hsv = function (args) {
6343
+ return [0, 0, args[0]];
6344
+ };
6507
6345
 
6508
- if (value === 2) {
6509
- ansi += 60;
6510
- }
6346
+ convert.gray.hwb = function (gray) {
6347
+ return [0, 100, gray[0]];
6348
+ };
6511
6349
 
6512
- return ansi;
6350
+ convert.gray.cmyk = function (gray) {
6351
+ return [0, 0, 0, gray[0]];
6513
6352
  };
6514
6353
 
6515
- convert.hsv.ansi16 = function (args) {
6516
- // optimization here; we already know the value and don't need to get
6517
- // it converted for us.
6518
- return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
6354
+ convert.gray.lab = function (gray) {
6355
+ return [gray[0], 0, 0];
6519
6356
  };
6520
6357
 
6521
- convert.rgb.ansi256 = function (args) {
6522
- var r = args[0];
6523
- var g = args[1];
6524
- var b = args[2];
6358
+ convert.gray.hex = function (gray) {
6359
+ var val = Math.round(gray[0] / 100 * 255) & 0xFF;
6360
+ var integer = (val << 16) + (val << 8) + val;
6525
6361
 
6526
- // we use the extended greyscale palette here, with the exception of
6527
- // black and white. normal palette only has 4 greyscale shades.
6528
- if (r === g && g === b) {
6529
- if (r < 8) {
6530
- return 16;
6362
+ var string = integer.toString(16).toUpperCase();
6363
+ return '000000'.substring(string.length) + string;
6364
+ };
6365
+
6366
+ convert.rgb.gray = function (rgb) {
6367
+ var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
6368
+ return [val / 255 * 100];
6369
+ };
6370
+
6371
+
6372
+ /***/ }),
6373
+
6374
+ /***/ 4185:
6375
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
6376
+
6377
+ var conversions = __nccwpck_require__(6872);
6378
+ var route = __nccwpck_require__(4200);
6379
+
6380
+ var convert = {};
6381
+
6382
+ var models = Object.keys(conversions);
6383
+
6384
+ function wrapRaw(fn) {
6385
+ var wrappedFn = function (args) {
6386
+ if (args === undefined || args === null) {
6387
+ return args;
6531
6388
  }
6532
6389
 
6533
- if (r > 248) {
6534
- return 231;
6390
+ if (arguments.length > 1) {
6391
+ args = Array.prototype.slice.call(arguments);
6535
6392
  }
6536
6393
 
6537
- return Math.round(((r - 8) / 247) * 24) + 232;
6394
+ return fn(args);
6395
+ };
6396
+
6397
+ // preserve .conversion property if there is one
6398
+ if ('conversion' in fn) {
6399
+ wrappedFn.conversion = fn.conversion;
6538
6400
  }
6539
6401
 
6540
- var ansi = 16
6541
- + (36 * Math.round(r / 255 * 5))
6542
- + (6 * Math.round(g / 255 * 5))
6543
- + Math.round(b / 255 * 5);
6402
+ return wrappedFn;
6403
+ }
6544
6404
 
6545
- return ansi;
6546
- };
6405
+ function wrapRounded(fn) {
6406
+ var wrappedFn = function (args) {
6407
+ if (args === undefined || args === null) {
6408
+ return args;
6409
+ }
6547
6410
 
6548
- convert.ansi16.rgb = function (args) {
6549
- var color = args % 10;
6411
+ if (arguments.length > 1) {
6412
+ args = Array.prototype.slice.call(arguments);
6413
+ }
6550
6414
 
6551
- // handle greyscale
6552
- if (color === 0 || color === 7) {
6553
- if (args > 50) {
6554
- color += 3.5;
6415
+ var result = fn(args);
6416
+
6417
+ // we're assuming the result is an array here.
6418
+ // see notice in conversions.js; don't use box types
6419
+ // in conversion functions.
6420
+ if (typeof result === 'object') {
6421
+ for (var len = result.length, i = 0; i < len; i++) {
6422
+ result[i] = Math.round(result[i]);
6423
+ }
6555
6424
  }
6556
6425
 
6557
- color = color / 10.5 * 255;
6426
+ return result;
6427
+ };
6558
6428
 
6559
- return [color, color, color];
6429
+ // preserve .conversion property if there is one
6430
+ if ('conversion' in fn) {
6431
+ wrappedFn.conversion = fn.conversion;
6560
6432
  }
6561
6433
 
6562
- var mult = (~~(args > 50) + 1) * 0.5;
6563
- var r = ((color & 1) * mult) * 255;
6564
- var g = (((color >> 1) & 1) * mult) * 255;
6565
- var b = (((color >> 2) & 1) * mult) * 255;
6566
-
6567
- return [r, g, b];
6568
- };
6434
+ return wrappedFn;
6435
+ }
6569
6436
 
6570
- convert.ansi256.rgb = function (args) {
6571
- // handle greyscale
6572
- if (args >= 232) {
6573
- var c = (args - 232) * 10 + 8;
6574
- return [c, c, c];
6575
- }
6437
+ models.forEach(function (fromModel) {
6438
+ convert[fromModel] = {};
6576
6439
 
6577
- args -= 16;
6440
+ Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});
6441
+ Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});
6578
6442
 
6579
- var rem;
6580
- var r = Math.floor(args / 36) / 5 * 255;
6581
- var g = Math.floor((rem = args % 36) / 6) / 5 * 255;
6582
- var b = (rem % 6) / 5 * 255;
6443
+ var routes = route(fromModel);
6444
+ var routeModels = Object.keys(routes);
6583
6445
 
6584
- return [r, g, b];
6585
- };
6446
+ routeModels.forEach(function (toModel) {
6447
+ var fn = routes[toModel];
6586
6448
 
6587
- convert.rgb.hex = function (args) {
6588
- var integer = ((Math.round(args[0]) & 0xFF) << 16)
6589
- + ((Math.round(args[1]) & 0xFF) << 8)
6590
- + (Math.round(args[2]) & 0xFF);
6449
+ convert[fromModel][toModel] = wrapRounded(fn);
6450
+ convert[fromModel][toModel].raw = wrapRaw(fn);
6451
+ });
6452
+ });
6591
6453
 
6592
- var string = integer.toString(16).toUpperCase();
6593
- return '000000'.substring(string.length) + string;
6594
- };
6454
+ module.exports = convert;
6595
6455
 
6596
- convert.hex.rgb = function (args) {
6597
- var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
6598
- if (!match) {
6599
- return [0, 0, 0];
6600
- }
6601
6456
 
6602
- var colorString = match[0];
6457
+ /***/ }),
6603
6458
 
6604
- if (match[0].length === 3) {
6605
- colorString = colorString.split('').map(function (char) {
6606
- return char + char;
6607
- }).join('');
6608
- }
6459
+ /***/ 7888:
6460
+ /***/ ((module) => {
6609
6461
 
6610
- var integer = parseInt(colorString, 16);
6611
- var r = (integer >> 16) & 0xFF;
6612
- var g = (integer >> 8) & 0xFF;
6613
- var b = integer & 0xFF;
6462
+ "use strict";
6463
+
6464
+
6465
+ module.exports = {
6466
+ "aliceblue": [240, 248, 255],
6467
+ "antiquewhite": [250, 235, 215],
6468
+ "aqua": [0, 255, 255],
6469
+ "aquamarine": [127, 255, 212],
6470
+ "azure": [240, 255, 255],
6471
+ "beige": [245, 245, 220],
6472
+ "bisque": [255, 228, 196],
6473
+ "black": [0, 0, 0],
6474
+ "blanchedalmond": [255, 235, 205],
6475
+ "blue": [0, 0, 255],
6476
+ "blueviolet": [138, 43, 226],
6477
+ "brown": [165, 42, 42],
6478
+ "burlywood": [222, 184, 135],
6479
+ "cadetblue": [95, 158, 160],
6480
+ "chartreuse": [127, 255, 0],
6481
+ "chocolate": [210, 105, 30],
6482
+ "coral": [255, 127, 80],
6483
+ "cornflowerblue": [100, 149, 237],
6484
+ "cornsilk": [255, 248, 220],
6485
+ "crimson": [220, 20, 60],
6486
+ "cyan": [0, 255, 255],
6487
+ "darkblue": [0, 0, 139],
6488
+ "darkcyan": [0, 139, 139],
6489
+ "darkgoldenrod": [184, 134, 11],
6490
+ "darkgray": [169, 169, 169],
6491
+ "darkgreen": [0, 100, 0],
6492
+ "darkgrey": [169, 169, 169],
6493
+ "darkkhaki": [189, 183, 107],
6494
+ "darkmagenta": [139, 0, 139],
6495
+ "darkolivegreen": [85, 107, 47],
6496
+ "darkorange": [255, 140, 0],
6497
+ "darkorchid": [153, 50, 204],
6498
+ "darkred": [139, 0, 0],
6499
+ "darksalmon": [233, 150, 122],
6500
+ "darkseagreen": [143, 188, 143],
6501
+ "darkslateblue": [72, 61, 139],
6502
+ "darkslategray": [47, 79, 79],
6503
+ "darkslategrey": [47, 79, 79],
6504
+ "darkturquoise": [0, 206, 209],
6505
+ "darkviolet": [148, 0, 211],
6506
+ "deeppink": [255, 20, 147],
6507
+ "deepskyblue": [0, 191, 255],
6508
+ "dimgray": [105, 105, 105],
6509
+ "dimgrey": [105, 105, 105],
6510
+ "dodgerblue": [30, 144, 255],
6511
+ "firebrick": [178, 34, 34],
6512
+ "floralwhite": [255, 250, 240],
6513
+ "forestgreen": [34, 139, 34],
6514
+ "fuchsia": [255, 0, 255],
6515
+ "gainsboro": [220, 220, 220],
6516
+ "ghostwhite": [248, 248, 255],
6517
+ "gold": [255, 215, 0],
6518
+ "goldenrod": [218, 165, 32],
6519
+ "gray": [128, 128, 128],
6520
+ "green": [0, 128, 0],
6521
+ "greenyellow": [173, 255, 47],
6522
+ "grey": [128, 128, 128],
6523
+ "honeydew": [240, 255, 240],
6524
+ "hotpink": [255, 105, 180],
6525
+ "indianred": [205, 92, 92],
6526
+ "indigo": [75, 0, 130],
6527
+ "ivory": [255, 255, 240],
6528
+ "khaki": [240, 230, 140],
6529
+ "lavender": [230, 230, 250],
6530
+ "lavenderblush": [255, 240, 245],
6531
+ "lawngreen": [124, 252, 0],
6532
+ "lemonchiffon": [255, 250, 205],
6533
+ "lightblue": [173, 216, 230],
6534
+ "lightcoral": [240, 128, 128],
6535
+ "lightcyan": [224, 255, 255],
6536
+ "lightgoldenrodyellow": [250, 250, 210],
6537
+ "lightgray": [211, 211, 211],
6538
+ "lightgreen": [144, 238, 144],
6539
+ "lightgrey": [211, 211, 211],
6540
+ "lightpink": [255, 182, 193],
6541
+ "lightsalmon": [255, 160, 122],
6542
+ "lightseagreen": [32, 178, 170],
6543
+ "lightskyblue": [135, 206, 250],
6544
+ "lightslategray": [119, 136, 153],
6545
+ "lightslategrey": [119, 136, 153],
6546
+ "lightsteelblue": [176, 196, 222],
6547
+ "lightyellow": [255, 255, 224],
6548
+ "lime": [0, 255, 0],
6549
+ "limegreen": [50, 205, 50],
6550
+ "linen": [250, 240, 230],
6551
+ "magenta": [255, 0, 255],
6552
+ "maroon": [128, 0, 0],
6553
+ "mediumaquamarine": [102, 205, 170],
6554
+ "mediumblue": [0, 0, 205],
6555
+ "mediumorchid": [186, 85, 211],
6556
+ "mediumpurple": [147, 112, 219],
6557
+ "mediumseagreen": [60, 179, 113],
6558
+ "mediumslateblue": [123, 104, 238],
6559
+ "mediumspringgreen": [0, 250, 154],
6560
+ "mediumturquoise": [72, 209, 204],
6561
+ "mediumvioletred": [199, 21, 133],
6562
+ "midnightblue": [25, 25, 112],
6563
+ "mintcream": [245, 255, 250],
6564
+ "mistyrose": [255, 228, 225],
6565
+ "moccasin": [255, 228, 181],
6566
+ "navajowhite": [255, 222, 173],
6567
+ "navy": [0, 0, 128],
6568
+ "oldlace": [253, 245, 230],
6569
+ "olive": [128, 128, 0],
6570
+ "olivedrab": [107, 142, 35],
6571
+ "orange": [255, 165, 0],
6572
+ "orangered": [255, 69, 0],
6573
+ "orchid": [218, 112, 214],
6574
+ "palegoldenrod": [238, 232, 170],
6575
+ "palegreen": [152, 251, 152],
6576
+ "paleturquoise": [175, 238, 238],
6577
+ "palevioletred": [219, 112, 147],
6578
+ "papayawhip": [255, 239, 213],
6579
+ "peachpuff": [255, 218, 185],
6580
+ "peru": [205, 133, 63],
6581
+ "pink": [255, 192, 203],
6582
+ "plum": [221, 160, 221],
6583
+ "powderblue": [176, 224, 230],
6584
+ "purple": [128, 0, 128],
6585
+ "rebeccapurple": [102, 51, 153],
6586
+ "red": [255, 0, 0],
6587
+ "rosybrown": [188, 143, 143],
6588
+ "royalblue": [65, 105, 225],
6589
+ "saddlebrown": [139, 69, 19],
6590
+ "salmon": [250, 128, 114],
6591
+ "sandybrown": [244, 164, 96],
6592
+ "seagreen": [46, 139, 87],
6593
+ "seashell": [255, 245, 238],
6594
+ "sienna": [160, 82, 45],
6595
+ "silver": [192, 192, 192],
6596
+ "skyblue": [135, 206, 235],
6597
+ "slateblue": [106, 90, 205],
6598
+ "slategray": [112, 128, 144],
6599
+ "slategrey": [112, 128, 144],
6600
+ "snow": [255, 250, 250],
6601
+ "springgreen": [0, 255, 127],
6602
+ "steelblue": [70, 130, 180],
6603
+ "tan": [210, 180, 140],
6604
+ "teal": [0, 128, 128],
6605
+ "thistle": [216, 191, 216],
6606
+ "tomato": [255, 99, 71],
6607
+ "turquoise": [64, 224, 208],
6608
+ "violet": [238, 130, 238],
6609
+ "wheat": [245, 222, 179],
6610
+ "white": [255, 255, 255],
6611
+ "whitesmoke": [245, 245, 245],
6612
+ "yellow": [255, 255, 0],
6613
+ "yellowgreen": [154, 205, 50]
6614
+ };
6614
6615
 
6615
- return [r, g, b];
6616
- };
6617
6616
 
6618
- convert.rgb.hcg = function (rgb) {
6619
- var r = rgb[0] / 255;
6620
- var g = rgb[1] / 255;
6621
- var b = rgb[2] / 255;
6622
- var max = Math.max(Math.max(r, g), b);
6623
- var min = Math.min(Math.min(r, g), b);
6624
- var chroma = (max - min);
6625
- var grayscale;
6626
- var hue;
6617
+ /***/ }),
6627
6618
 
6628
- if (chroma < 1) {
6629
- grayscale = min / (1 - chroma);
6630
- } else {
6631
- grayscale = 0;
6632
- }
6619
+ /***/ 4200:
6620
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
6633
6621
 
6634
- if (chroma <= 0) {
6635
- hue = 0;
6636
- } else
6637
- if (max === r) {
6638
- hue = ((g - b) / chroma) % 6;
6639
- } else
6640
- if (max === g) {
6641
- hue = 2 + (b - r) / chroma;
6642
- } else {
6643
- hue = 4 + (r - g) / chroma + 4;
6644
- }
6622
+ var conversions = __nccwpck_require__(6872);
6645
6623
 
6646
- hue /= 6;
6647
- hue %= 1;
6624
+ /*
6625
+ this function routes a model to all other models.
6648
6626
 
6649
- return [hue * 360, chroma * 100, grayscale * 100];
6650
- };
6627
+ all functions that are routed have a property `.conversion` attached
6628
+ to the returned synthetic function. This property is an array
6629
+ of strings, each with the steps in between the 'from' and 'to'
6630
+ color models (inclusive).
6651
6631
 
6652
- convert.hsl.hcg = function (hsl) {
6653
- var s = hsl[1] / 100;
6654
- var l = hsl[2] / 100;
6655
- var c = 1;
6656
- var f = 0;
6632
+ conversions that are not possible simply are not included.
6633
+ */
6657
6634
 
6658
- if (l < 0.5) {
6659
- c = 2.0 * s * l;
6660
- } else {
6661
- c = 2.0 * s * (1.0 - l);
6662
- }
6635
+ function buildGraph() {
6636
+ var graph = {};
6637
+ // https://jsperf.com/object-keys-vs-for-in-with-closure/3
6638
+ var models = Object.keys(conversions);
6663
6639
 
6664
- if (c < 1.0) {
6665
- f = (l - 0.5 * c) / (1.0 - c);
6640
+ for (var len = models.length, i = 0; i < len; i++) {
6641
+ graph[models[i]] = {
6642
+ // http://jsperf.com/1-vs-infinity
6643
+ // micro-opt, but this is simple.
6644
+ distance: -1,
6645
+ parent: null
6646
+ };
6666
6647
  }
6667
6648
 
6668
- return [hsl[0], c * 100, f * 100];
6669
- };
6670
-
6671
- convert.hsv.hcg = function (hsv) {
6672
- var s = hsv[1] / 100;
6673
- var v = hsv[2] / 100;
6674
-
6675
- var c = s * v;
6676
- var f = 0;
6677
-
6678
- if (c < 1.0) {
6679
- f = (v - c) / (1 - c);
6680
- }
6649
+ return graph;
6650
+ }
6681
6651
 
6682
- return [hsv[0], c * 100, f * 100];
6683
- };
6652
+ // https://en.wikipedia.org/wiki/Breadth-first_search
6653
+ function deriveBFS(fromModel) {
6654
+ var graph = buildGraph();
6655
+ var queue = [fromModel]; // unshift -> queue -> pop
6684
6656
 
6685
- convert.hcg.rgb = function (hcg) {
6686
- var h = hcg[0] / 360;
6687
- var c = hcg[1] / 100;
6688
- var g = hcg[2] / 100;
6657
+ graph[fromModel].distance = 0;
6689
6658
 
6690
- if (c === 0.0) {
6691
- return [g * 255, g * 255, g * 255];
6692
- }
6659
+ while (queue.length) {
6660
+ var current = queue.pop();
6661
+ var adjacents = Object.keys(conversions[current]);
6693
6662
 
6694
- var pure = [0, 0, 0];
6695
- var hi = (h % 1) * 6;
6696
- var v = hi % 1;
6697
- var w = 1 - v;
6698
- var mg = 0;
6663
+ for (var len = adjacents.length, i = 0; i < len; i++) {
6664
+ var adjacent = adjacents[i];
6665
+ var node = graph[adjacent];
6699
6666
 
6700
- switch (Math.floor(hi)) {
6701
- case 0:
6702
- pure[0] = 1; pure[1] = v; pure[2] = 0; break;
6703
- case 1:
6704
- pure[0] = w; pure[1] = 1; pure[2] = 0; break;
6705
- case 2:
6706
- pure[0] = 0; pure[1] = 1; pure[2] = v; break;
6707
- case 3:
6708
- pure[0] = 0; pure[1] = w; pure[2] = 1; break;
6709
- case 4:
6710
- pure[0] = v; pure[1] = 0; pure[2] = 1; break;
6711
- default:
6712
- pure[0] = 1; pure[1] = 0; pure[2] = w;
6667
+ if (node.distance === -1) {
6668
+ node.distance = graph[current].distance + 1;
6669
+ node.parent = current;
6670
+ queue.unshift(adjacent);
6671
+ }
6672
+ }
6713
6673
  }
6714
6674
 
6715
- mg = (1.0 - c) * g;
6716
-
6717
- return [
6718
- (c * pure[0] + mg) * 255,
6719
- (c * pure[1] + mg) * 255,
6720
- (c * pure[2] + mg) * 255
6721
- ];
6722
- };
6675
+ return graph;
6676
+ }
6723
6677
 
6724
- convert.hcg.hsv = function (hcg) {
6725
- var c = hcg[1] / 100;
6726
- var g = hcg[2] / 100;
6678
+ function link(from, to) {
6679
+ return function (args) {
6680
+ return to(from(args));
6681
+ };
6682
+ }
6727
6683
 
6728
- var v = c + g * (1.0 - c);
6729
- var f = 0;
6684
+ function wrapConversion(toModel, graph) {
6685
+ var path = [graph[toModel].parent, toModel];
6686
+ var fn = conversions[graph[toModel].parent][toModel];
6730
6687
 
6731
- if (v > 0.0) {
6732
- f = c / v;
6688
+ var cur = graph[toModel].parent;
6689
+ while (graph[cur].parent) {
6690
+ path.unshift(graph[cur].parent);
6691
+ fn = link(conversions[graph[cur].parent][cur], fn);
6692
+ cur = graph[cur].parent;
6733
6693
  }
6734
6694
 
6735
- return [hcg[0], f * 100, v * 100];
6736
- };
6695
+ fn.conversion = path;
6696
+ return fn;
6697
+ }
6737
6698
 
6738
- convert.hcg.hsl = function (hcg) {
6739
- var c = hcg[1] / 100;
6740
- var g = hcg[2] / 100;
6699
+ module.exports = function (fromModel) {
6700
+ var graph = deriveBFS(fromModel);
6701
+ var conversion = {};
6741
6702
 
6742
- var l = g * (1.0 - c) + 0.5 * c;
6743
- var s = 0;
6703
+ var models = Object.keys(graph);
6704
+ for (var len = models.length, i = 0; i < len; i++) {
6705
+ var toModel = models[i];
6706
+ var node = graph[toModel];
6744
6707
 
6745
- if (l > 0.0 && l < 0.5) {
6746
- s = c / (2 * l);
6747
- } else
6748
- if (l >= 0.5 && l < 1.0) {
6749
- s = c / (2 * (1 - l));
6750
- }
6708
+ if (node.parent === null) {
6709
+ // no possible conversion, or this node is the source model.
6710
+ continue;
6711
+ }
6751
6712
 
6752
- return [hcg[0], s * 100, l * 100];
6753
- };
6713
+ conversion[toModel] = wrapConversion(toModel, graph);
6714
+ }
6754
6715
 
6755
- convert.hcg.hwb = function (hcg) {
6756
- var c = hcg[1] / 100;
6757
- var g = hcg[2] / 100;
6758
- var v = c + g * (1.0 - c);
6759
- return [hcg[0], (v - c) * 100, (1 - v) * 100];
6716
+ return conversion;
6760
6717
  };
6761
6718
 
6762
- convert.hwb.hcg = function (hwb) {
6763
- var w = hwb[1] / 100;
6764
- var b = hwb[2] / 100;
6765
- var v = 1 - b;
6766
- var c = v - w;
6767
- var g = 0;
6768
6719
 
6769
- if (c < 1) {
6770
- g = (v - c) / (1 - c);
6771
- }
6772
6720
 
6773
- return [hwb[0], c * 100, g * 100];
6774
- };
6721
+ /***/ }),
6775
6722
 
6776
- convert.apple.rgb = function (apple) {
6777
- return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];
6778
- };
6723
+ /***/ 4953:
6724
+ /***/ ((module) => {
6779
6725
 
6780
- convert.rgb.apple = function (rgb) {
6781
- return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];
6782
- };
6726
+ "use strict";
6727
+
6728
+
6729
+ module.exports = {
6730
+ "aliceblue": [240, 248, 255],
6731
+ "antiquewhite": [250, 235, 215],
6732
+ "aqua": [0, 255, 255],
6733
+ "aquamarine": [127, 255, 212],
6734
+ "azure": [240, 255, 255],
6735
+ "beige": [245, 245, 220],
6736
+ "bisque": [255, 228, 196],
6737
+ "black": [0, 0, 0],
6738
+ "blanchedalmond": [255, 235, 205],
6739
+ "blue": [0, 0, 255],
6740
+ "blueviolet": [138, 43, 226],
6741
+ "brown": [165, 42, 42],
6742
+ "burlywood": [222, 184, 135],
6743
+ "cadetblue": [95, 158, 160],
6744
+ "chartreuse": [127, 255, 0],
6745
+ "chocolate": [210, 105, 30],
6746
+ "coral": [255, 127, 80],
6747
+ "cornflowerblue": [100, 149, 237],
6748
+ "cornsilk": [255, 248, 220],
6749
+ "crimson": [220, 20, 60],
6750
+ "cyan": [0, 255, 255],
6751
+ "darkblue": [0, 0, 139],
6752
+ "darkcyan": [0, 139, 139],
6753
+ "darkgoldenrod": [184, 134, 11],
6754
+ "darkgray": [169, 169, 169],
6755
+ "darkgreen": [0, 100, 0],
6756
+ "darkgrey": [169, 169, 169],
6757
+ "darkkhaki": [189, 183, 107],
6758
+ "darkmagenta": [139, 0, 139],
6759
+ "darkolivegreen": [85, 107, 47],
6760
+ "darkorange": [255, 140, 0],
6761
+ "darkorchid": [153, 50, 204],
6762
+ "darkred": [139, 0, 0],
6763
+ "darksalmon": [233, 150, 122],
6764
+ "darkseagreen": [143, 188, 143],
6765
+ "darkslateblue": [72, 61, 139],
6766
+ "darkslategray": [47, 79, 79],
6767
+ "darkslategrey": [47, 79, 79],
6768
+ "darkturquoise": [0, 206, 209],
6769
+ "darkviolet": [148, 0, 211],
6770
+ "deeppink": [255, 20, 147],
6771
+ "deepskyblue": [0, 191, 255],
6772
+ "dimgray": [105, 105, 105],
6773
+ "dimgrey": [105, 105, 105],
6774
+ "dodgerblue": [30, 144, 255],
6775
+ "firebrick": [178, 34, 34],
6776
+ "floralwhite": [255, 250, 240],
6777
+ "forestgreen": [34, 139, 34],
6778
+ "fuchsia": [255, 0, 255],
6779
+ "gainsboro": [220, 220, 220],
6780
+ "ghostwhite": [248, 248, 255],
6781
+ "gold": [255, 215, 0],
6782
+ "goldenrod": [218, 165, 32],
6783
+ "gray": [128, 128, 128],
6784
+ "green": [0, 128, 0],
6785
+ "greenyellow": [173, 255, 47],
6786
+ "grey": [128, 128, 128],
6787
+ "honeydew": [240, 255, 240],
6788
+ "hotpink": [255, 105, 180],
6789
+ "indianred": [205, 92, 92],
6790
+ "indigo": [75, 0, 130],
6791
+ "ivory": [255, 255, 240],
6792
+ "khaki": [240, 230, 140],
6793
+ "lavender": [230, 230, 250],
6794
+ "lavenderblush": [255, 240, 245],
6795
+ "lawngreen": [124, 252, 0],
6796
+ "lemonchiffon": [255, 250, 205],
6797
+ "lightblue": [173, 216, 230],
6798
+ "lightcoral": [240, 128, 128],
6799
+ "lightcyan": [224, 255, 255],
6800
+ "lightgoldenrodyellow": [250, 250, 210],
6801
+ "lightgray": [211, 211, 211],
6802
+ "lightgreen": [144, 238, 144],
6803
+ "lightgrey": [211, 211, 211],
6804
+ "lightpink": [255, 182, 193],
6805
+ "lightsalmon": [255, 160, 122],
6806
+ "lightseagreen": [32, 178, 170],
6807
+ "lightskyblue": [135, 206, 250],
6808
+ "lightslategray": [119, 136, 153],
6809
+ "lightslategrey": [119, 136, 153],
6810
+ "lightsteelblue": [176, 196, 222],
6811
+ "lightyellow": [255, 255, 224],
6812
+ "lime": [0, 255, 0],
6813
+ "limegreen": [50, 205, 50],
6814
+ "linen": [250, 240, 230],
6815
+ "magenta": [255, 0, 255],
6816
+ "maroon": [128, 0, 0],
6817
+ "mediumaquamarine": [102, 205, 170],
6818
+ "mediumblue": [0, 0, 205],
6819
+ "mediumorchid": [186, 85, 211],
6820
+ "mediumpurple": [147, 112, 219],
6821
+ "mediumseagreen": [60, 179, 113],
6822
+ "mediumslateblue": [123, 104, 238],
6823
+ "mediumspringgreen": [0, 250, 154],
6824
+ "mediumturquoise": [72, 209, 204],
6825
+ "mediumvioletred": [199, 21, 133],
6826
+ "midnightblue": [25, 25, 112],
6827
+ "mintcream": [245, 255, 250],
6828
+ "mistyrose": [255, 228, 225],
6829
+ "moccasin": [255, 228, 181],
6830
+ "navajowhite": [255, 222, 173],
6831
+ "navy": [0, 0, 128],
6832
+ "oldlace": [253, 245, 230],
6833
+ "olive": [128, 128, 0],
6834
+ "olivedrab": [107, 142, 35],
6835
+ "orange": [255, 165, 0],
6836
+ "orangered": [255, 69, 0],
6837
+ "orchid": [218, 112, 214],
6838
+ "palegoldenrod": [238, 232, 170],
6839
+ "palegreen": [152, 251, 152],
6840
+ "paleturquoise": [175, 238, 238],
6841
+ "palevioletred": [219, 112, 147],
6842
+ "papayawhip": [255, 239, 213],
6843
+ "peachpuff": [255, 218, 185],
6844
+ "peru": [205, 133, 63],
6845
+ "pink": [255, 192, 203],
6846
+ "plum": [221, 160, 221],
6847
+ "powderblue": [176, 224, 230],
6848
+ "purple": [128, 0, 128],
6849
+ "rebeccapurple": [102, 51, 153],
6850
+ "red": [255, 0, 0],
6851
+ "rosybrown": [188, 143, 143],
6852
+ "royalblue": [65, 105, 225],
6853
+ "saddlebrown": [139, 69, 19],
6854
+ "salmon": [250, 128, 114],
6855
+ "sandybrown": [244, 164, 96],
6856
+ "seagreen": [46, 139, 87],
6857
+ "seashell": [255, 245, 238],
6858
+ "sienna": [160, 82, 45],
6859
+ "silver": [192, 192, 192],
6860
+ "skyblue": [135, 206, 235],
6861
+ "slateblue": [106, 90, 205],
6862
+ "slategray": [112, 128, 144],
6863
+ "slategrey": [112, 128, 144],
6864
+ "snow": [255, 250, 250],
6865
+ "springgreen": [0, 255, 127],
6866
+ "steelblue": [70, 130, 180],
6867
+ "tan": [210, 180, 140],
6868
+ "teal": [0, 128, 128],
6869
+ "thistle": [216, 191, 216],
6870
+ "tomato": [255, 99, 71],
6871
+ "turquoise": [64, 224, 208],
6872
+ "violet": [238, 130, 238],
6873
+ "wheat": [245, 222, 179],
6874
+ "white": [255, 255, 255],
6875
+ "whitesmoke": [245, 245, 245],
6876
+ "yellow": [255, 255, 0],
6877
+ "yellowgreen": [154, 205, 50]
6878
+ };
6783
6879
 
6784
- convert.gray.rgb = function (args) {
6785
- return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
6786
- };
6787
6880
 
6788
- convert.gray.hsl = convert.gray.hsv = function (args) {
6789
- return [0, 0, args[0]];
6790
- };
6881
+ /***/ }),
6791
6882
 
6792
- convert.gray.hwb = function (gray) {
6793
- return [0, 100, gray[0]];
6794
- };
6883
+ /***/ 9407:
6884
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
6795
6885
 
6796
- convert.gray.cmyk = function (gray) {
6797
- return [0, 0, 0, gray[0]];
6798
- };
6886
+ /* MIT license */
6887
+ var colorNames = __nccwpck_require__(4953);
6888
+ var swizzle = __nccwpck_require__(4421);
6889
+ var hasOwnProperty = Object.hasOwnProperty;
6799
6890
 
6800
- convert.gray.lab = function (gray) {
6801
- return [gray[0], 0, 0];
6802
- };
6891
+ var reverseNames = Object.create(null);
6803
6892
 
6804
- convert.gray.hex = function (gray) {
6805
- var val = Math.round(gray[0] / 100 * 255) & 0xFF;
6806
- var integer = (val << 16) + (val << 8) + val;
6893
+ // create a list of reverse color names
6894
+ for (var name in colorNames) {
6895
+ if (hasOwnProperty.call(colorNames, name)) {
6896
+ reverseNames[colorNames[name]] = name;
6897
+ }
6898
+ }
6807
6899
 
6808
- var string = integer.toString(16).toUpperCase();
6809
- return '000000'.substring(string.length) + string;
6900
+ var cs = module.exports = {
6901
+ to: {},
6902
+ get: {}
6810
6903
  };
6811
6904
 
6812
- convert.rgb.gray = function (rgb) {
6813
- var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
6814
- return [val / 255 * 100];
6815
- };
6905
+ cs.get = function (string) {
6906
+ var prefix = string.substring(0, 3).toLowerCase();
6907
+ var val;
6908
+ var model;
6909
+ switch (prefix) {
6910
+ case 'hsl':
6911
+ val = cs.get.hsl(string);
6912
+ model = 'hsl';
6913
+ break;
6914
+ case 'hwb':
6915
+ val = cs.get.hwb(string);
6916
+ model = 'hwb';
6917
+ break;
6918
+ default:
6919
+ val = cs.get.rgb(string);
6920
+ model = 'rgb';
6921
+ break;
6922
+ }
6816
6923
 
6924
+ if (!val) {
6925
+ return null;
6926
+ }
6817
6927
 
6818
- /***/ }),
6928
+ return {model: model, value: val};
6929
+ };
6819
6930
 
6820
- /***/ 192:
6821
- /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
6931
+ cs.get.rgb = function (string) {
6932
+ if (!string) {
6933
+ return null;
6934
+ }
6822
6935
 
6823
- var conversions = __nccwpck_require__(4618);
6824
- var route = __nccwpck_require__(209);
6936
+ var abbr = /^#([a-f0-9]{3,4})$/i;
6937
+ var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;
6938
+ var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
6939
+ var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
6940
+ var keyword = /^(\w+)$/;
6825
6941
 
6826
- var convert = {};
6942
+ var rgb = [0, 0, 0, 1];
6943
+ var match;
6944
+ var i;
6945
+ var hexAlpha;
6827
6946
 
6828
- var models = Object.keys(conversions);
6947
+ if (match = string.match(hex)) {
6948
+ hexAlpha = match[2];
6949
+ match = match[1];
6829
6950
 
6830
- function wrapRaw(fn) {
6831
- var wrappedFn = function (args) {
6832
- if (args === undefined || args === null) {
6833
- return args;
6951
+ for (i = 0; i < 3; i++) {
6952
+ // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19
6953
+ var i2 = i * 2;
6954
+ rgb[i] = parseInt(match.slice(i2, i2 + 2), 16);
6834
6955
  }
6835
6956
 
6836
- if (arguments.length > 1) {
6837
- args = Array.prototype.slice.call(arguments);
6957
+ if (hexAlpha) {
6958
+ rgb[3] = parseInt(hexAlpha, 16) / 255;
6838
6959
  }
6960
+ } else if (match = string.match(abbr)) {
6961
+ match = match[1];
6962
+ hexAlpha = match[3];
6839
6963
 
6840
- return fn(args);
6841
- };
6842
-
6843
- // preserve .conversion property if there is one
6844
- if ('conversion' in fn) {
6845
- wrappedFn.conversion = fn.conversion;
6846
- }
6847
-
6848
- return wrappedFn;
6849
- }
6850
-
6851
- function wrapRounded(fn) {
6852
- var wrappedFn = function (args) {
6853
- if (args === undefined || args === null) {
6854
- return args;
6964
+ for (i = 0; i < 3; i++) {
6965
+ rgb[i] = parseInt(match[i] + match[i], 16);
6855
6966
  }
6856
6967
 
6857
- if (arguments.length > 1) {
6858
- args = Array.prototype.slice.call(arguments);
6968
+ if (hexAlpha) {
6969
+ rgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;
6970
+ }
6971
+ } else if (match = string.match(rgba)) {
6972
+ for (i = 0; i < 3; i++) {
6973
+ rgb[i] = parseInt(match[i + 1], 0);
6859
6974
  }
6860
6975
 
6861
- var result = fn(args);
6976
+ if (match[4]) {
6977
+ if (match[5]) {
6978
+ rgb[3] = parseFloat(match[4]) * 0.01;
6979
+ } else {
6980
+ rgb[3] = parseFloat(match[4]);
6981
+ }
6982
+ }
6983
+ } else if (match = string.match(per)) {
6984
+ for (i = 0; i < 3; i++) {
6985
+ rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);
6986
+ }
6862
6987
 
6863
- // we're assuming the result is an array here.
6864
- // see notice in conversions.js; don't use box types
6865
- // in conversion functions.
6866
- if (typeof result === 'object') {
6867
- for (var len = result.length, i = 0; i < len; i++) {
6868
- result[i] = Math.round(result[i]);
6988
+ if (match[4]) {
6989
+ if (match[5]) {
6990
+ rgb[3] = parseFloat(match[4]) * 0.01;
6991
+ } else {
6992
+ rgb[3] = parseFloat(match[4]);
6869
6993
  }
6870
6994
  }
6995
+ } else if (match = string.match(keyword)) {
6996
+ if (match[1] === 'transparent') {
6997
+ return [0, 0, 0, 0];
6998
+ }
6871
6999
 
6872
- return result;
6873
- };
7000
+ if (!hasOwnProperty.call(colorNames, match[1])) {
7001
+ return null;
7002
+ }
6874
7003
 
6875
- // preserve .conversion property if there is one
6876
- if ('conversion' in fn) {
6877
- wrappedFn.conversion = fn.conversion;
6878
- }
7004
+ rgb = colorNames[match[1]];
7005
+ rgb[3] = 1;
6879
7006
 
6880
- return wrappedFn;
6881
- }
7007
+ return rgb;
7008
+ } else {
7009
+ return null;
7010
+ }
6882
7011
 
6883
- models.forEach(function (fromModel) {
6884
- convert[fromModel] = {};
7012
+ for (i = 0; i < 3; i++) {
7013
+ rgb[i] = clamp(rgb[i], 0, 255);
7014
+ }
7015
+ rgb[3] = clamp(rgb[3], 0, 1);
6885
7016
 
6886
- Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});
6887
- Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});
7017
+ return rgb;
7018
+ };
6888
7019
 
6889
- var routes = route(fromModel);
6890
- var routeModels = Object.keys(routes);
7020
+ cs.get.hsl = function (string) {
7021
+ if (!string) {
7022
+ return null;
7023
+ }
6891
7024
 
6892
- routeModels.forEach(function (toModel) {
6893
- var fn = routes[toModel];
7025
+ var 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*)?\)$/;
7026
+ var match = string.match(hsl);
6894
7027
 
6895
- convert[fromModel][toModel] = wrapRounded(fn);
6896
- convert[fromModel][toModel].raw = wrapRaw(fn);
6897
- });
6898
- });
7028
+ if (match) {
7029
+ var alpha = parseFloat(match[4]);
7030
+ var h = ((parseFloat(match[1]) % 360) + 360) % 360;
7031
+ var s = clamp(parseFloat(match[2]), 0, 100);
7032
+ var l = clamp(parseFloat(match[3]), 0, 100);
7033
+ var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
6899
7034
 
6900
- module.exports = convert;
7035
+ return [h, s, l, a];
7036
+ }
6901
7037
 
7038
+ return null;
7039
+ };
6902
7040
 
6903
- /***/ }),
7041
+ cs.get.hwb = function (string) {
7042
+ if (!string) {
7043
+ return null;
7044
+ }
6904
7045
 
6905
- /***/ 209:
6906
- /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
7046
+ var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;
7047
+ var match = string.match(hwb);
6907
7048
 
6908
- var conversions = __nccwpck_require__(4618);
7049
+ if (match) {
7050
+ var alpha = parseFloat(match[4]);
7051
+ var h = ((parseFloat(match[1]) % 360) + 360) % 360;
7052
+ var w = clamp(parseFloat(match[2]), 0, 100);
7053
+ var b = clamp(parseFloat(match[3]), 0, 100);
7054
+ var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
7055
+ return [h, w, b, a];
7056
+ }
6909
7057
 
6910
- /*
6911
- this function routes a model to all other models.
7058
+ return null;
7059
+ };
6912
7060
 
6913
- all functions that are routed have a property `.conversion` attached
6914
- to the returned synthetic function. This property is an array
6915
- of strings, each with the steps in between the 'from' and 'to'
6916
- color models (inclusive).
7061
+ cs.to.hex = function () {
7062
+ var rgba = swizzle(arguments);
6917
7063
 
6918
- conversions that are not possible simply are not included.
6919
- */
7064
+ return (
7065
+ '#' +
7066
+ hexDouble(rgba[0]) +
7067
+ hexDouble(rgba[1]) +
7068
+ hexDouble(rgba[2]) +
7069
+ (rgba[3] < 1
7070
+ ? (hexDouble(Math.round(rgba[3] * 255)))
7071
+ : '')
7072
+ );
7073
+ };
6920
7074
 
6921
- function buildGraph() {
6922
- var graph = {};
6923
- // https://jsperf.com/object-keys-vs-for-in-with-closure/3
6924
- var models = Object.keys(conversions);
7075
+ cs.to.rgb = function () {
7076
+ var rgba = swizzle(arguments);
6925
7077
 
6926
- for (var len = models.length, i = 0; i < len; i++) {
6927
- graph[models[i]] = {
6928
- // http://jsperf.com/1-vs-infinity
6929
- // micro-opt, but this is simple.
6930
- distance: -1,
6931
- parent: null
6932
- };
6933
- }
7078
+ return rgba.length < 4 || rgba[3] === 1
7079
+ ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'
7080
+ : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';
7081
+ };
6934
7082
 
6935
- return graph;
6936
- }
7083
+ cs.to.rgb.percent = function () {
7084
+ var rgba = swizzle(arguments);
6937
7085
 
6938
- // https://en.wikipedia.org/wiki/Breadth-first_search
6939
- function deriveBFS(fromModel) {
6940
- var graph = buildGraph();
6941
- var queue = [fromModel]; // unshift -> queue -> pop
7086
+ var r = Math.round(rgba[0] / 255 * 100);
7087
+ var g = Math.round(rgba[1] / 255 * 100);
7088
+ var b = Math.round(rgba[2] / 255 * 100);
6942
7089
 
6943
- graph[fromModel].distance = 0;
7090
+ return rgba.length < 4 || rgba[3] === 1
7091
+ ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'
7092
+ : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';
7093
+ };
6944
7094
 
6945
- while (queue.length) {
6946
- var current = queue.pop();
6947
- var adjacents = Object.keys(conversions[current]);
7095
+ cs.to.hsl = function () {
7096
+ var hsla = swizzle(arguments);
7097
+ return hsla.length < 4 || hsla[3] === 1
7098
+ ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'
7099
+ : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';
7100
+ };
6948
7101
 
6949
- for (var len = adjacents.length, i = 0; i < len; i++) {
6950
- var adjacent = adjacents[i];
6951
- var node = graph[adjacent];
7102
+ // hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax
7103
+ // (hwb have alpha optional & 1 is default value)
7104
+ cs.to.hwb = function () {
7105
+ var hwba = swizzle(arguments);
6952
7106
 
6953
- if (node.distance === -1) {
6954
- node.distance = graph[current].distance + 1;
6955
- node.parent = current;
6956
- queue.unshift(adjacent);
6957
- }
6958
- }
7107
+ var a = '';
7108
+ if (hwba.length >= 4 && hwba[3] !== 1) {
7109
+ a = ', ' + hwba[3];
6959
7110
  }
6960
7111
 
6961
- return graph;
6962
- }
6963
-
6964
- function link(from, to) {
6965
- return function (args) {
6966
- return to(from(args));
6967
- };
6968
- }
7112
+ return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';
7113
+ };
6969
7114
 
6970
- function wrapConversion(toModel, graph) {
6971
- var path = [graph[toModel].parent, toModel];
6972
- var fn = conversions[graph[toModel].parent][toModel];
7115
+ cs.to.keyword = function (rgb) {
7116
+ return reverseNames[rgb.slice(0, 3)];
7117
+ };
6973
7118
 
6974
- var cur = graph[toModel].parent;
6975
- while (graph[cur].parent) {
6976
- path.unshift(graph[cur].parent);
6977
- fn = link(conversions[graph[cur].parent][cur], fn);
6978
- cur = graph[cur].parent;
6979
- }
7119
+ // helpers
7120
+ function clamp(num, min, max) {
7121
+ return Math.min(Math.max(min, num), max);
7122
+ }
6980
7123
 
6981
- fn.conversion = path;
6982
- return fn;
7124
+ function hexDouble(num) {
7125
+ var str = Math.round(num).toString(16).toUpperCase();
7126
+ return (str.length < 2) ? '0' + str : str;
6983
7127
  }
6984
7128
 
6985
- module.exports = function (fromModel) {
6986
- var graph = deriveBFS(fromModel);
6987
- var conversion = {};
6988
7129
 
6989
- var models = Object.keys(graph);
6990
- for (var len = models.length, i = 0; i < len; i++) {
6991
- var toModel = models[i];
6992
- var node = graph[toModel];
7130
+ /***/ }),
6993
7131
 
6994
- if (node.parent === null) {
6995
- // no possible conversion, or this node is the source model.
6996
- continue;
6997
- }
7132
+ /***/ 8107:
7133
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
6998
7134
 
6999
- conversion[toModel] = wrapConversion(toModel, graph);
7000
- }
7135
+ "use strict";
7001
7136
 
7002
- return conversion;
7003
- };
7004
7137
 
7138
+ var color = __nccwpck_require__(1696)
7139
+ , hex = __nccwpck_require__(5143);
7005
7140
 
7141
+ /**
7142
+ * Generate a color for a given name. But be reasonably smart about it by
7143
+ * understanding name spaces and coloring each namespace a bit lighter so they
7144
+ * still have the same base color as the root.
7145
+ *
7146
+ * @param {string} namespace The namespace
7147
+ * @param {string} [delimiter] The delimiter
7148
+ * @returns {string} color
7149
+ */
7150
+ module.exports = function colorspace(namespace, delimiter) {
7151
+ var split = namespace.split(delimiter || ':');
7152
+ var base = hex(split[0]);
7006
7153
 
7007
- /***/ }),
7154
+ if (!split.length) return base;
7008
7155
 
7009
- /***/ 8402:
7010
- /***/ ((module) => {
7156
+ for (var i = 0, l = split.length - 1; i < l; i++) {
7157
+ base = color(base)
7158
+ .mix(color(hex(split[i + 1])))
7159
+ .saturate(1)
7160
+ .hex();
7161
+ }
7011
7162
 
7012
- "use strict";
7013
-
7014
-
7015
- module.exports = {
7016
- "aliceblue": [240, 248, 255],
7017
- "antiquewhite": [250, 235, 215],
7018
- "aqua": [0, 255, 255],
7019
- "aquamarine": [127, 255, 212],
7020
- "azure": [240, 255, 255],
7021
- "beige": [245, 245, 220],
7022
- "bisque": [255, 228, 196],
7023
- "black": [0, 0, 0],
7024
- "blanchedalmond": [255, 235, 205],
7025
- "blue": [0, 0, 255],
7026
- "blueviolet": [138, 43, 226],
7027
- "brown": [165, 42, 42],
7028
- "burlywood": [222, 184, 135],
7029
- "cadetblue": [95, 158, 160],
7030
- "chartreuse": [127, 255, 0],
7031
- "chocolate": [210, 105, 30],
7032
- "coral": [255, 127, 80],
7033
- "cornflowerblue": [100, 149, 237],
7034
- "cornsilk": [255, 248, 220],
7035
- "crimson": [220, 20, 60],
7036
- "cyan": [0, 255, 255],
7037
- "darkblue": [0, 0, 139],
7038
- "darkcyan": [0, 139, 139],
7039
- "darkgoldenrod": [184, 134, 11],
7040
- "darkgray": [169, 169, 169],
7041
- "darkgreen": [0, 100, 0],
7042
- "darkgrey": [169, 169, 169],
7043
- "darkkhaki": [189, 183, 107],
7044
- "darkmagenta": [139, 0, 139],
7045
- "darkolivegreen": [85, 107, 47],
7046
- "darkorange": [255, 140, 0],
7047
- "darkorchid": [153, 50, 204],
7048
- "darkred": [139, 0, 0],
7049
- "darksalmon": [233, 150, 122],
7050
- "darkseagreen": [143, 188, 143],
7051
- "darkslateblue": [72, 61, 139],
7052
- "darkslategray": [47, 79, 79],
7053
- "darkslategrey": [47, 79, 79],
7054
- "darkturquoise": [0, 206, 209],
7055
- "darkviolet": [148, 0, 211],
7056
- "deeppink": [255, 20, 147],
7057
- "deepskyblue": [0, 191, 255],
7058
- "dimgray": [105, 105, 105],
7059
- "dimgrey": [105, 105, 105],
7060
- "dodgerblue": [30, 144, 255],
7061
- "firebrick": [178, 34, 34],
7062
- "floralwhite": [255, 250, 240],
7063
- "forestgreen": [34, 139, 34],
7064
- "fuchsia": [255, 0, 255],
7065
- "gainsboro": [220, 220, 220],
7066
- "ghostwhite": [248, 248, 255],
7067
- "gold": [255, 215, 0],
7068
- "goldenrod": [218, 165, 32],
7069
- "gray": [128, 128, 128],
7070
- "green": [0, 128, 0],
7071
- "greenyellow": [173, 255, 47],
7072
- "grey": [128, 128, 128],
7073
- "honeydew": [240, 255, 240],
7074
- "hotpink": [255, 105, 180],
7075
- "indianred": [205, 92, 92],
7076
- "indigo": [75, 0, 130],
7077
- "ivory": [255, 255, 240],
7078
- "khaki": [240, 230, 140],
7079
- "lavender": [230, 230, 250],
7080
- "lavenderblush": [255, 240, 245],
7081
- "lawngreen": [124, 252, 0],
7082
- "lemonchiffon": [255, 250, 205],
7083
- "lightblue": [173, 216, 230],
7084
- "lightcoral": [240, 128, 128],
7085
- "lightcyan": [224, 255, 255],
7086
- "lightgoldenrodyellow": [250, 250, 210],
7087
- "lightgray": [211, 211, 211],
7088
- "lightgreen": [144, 238, 144],
7089
- "lightgrey": [211, 211, 211],
7090
- "lightpink": [255, 182, 193],
7091
- "lightsalmon": [255, 160, 122],
7092
- "lightseagreen": [32, 178, 170],
7093
- "lightskyblue": [135, 206, 250],
7094
- "lightslategray": [119, 136, 153],
7095
- "lightslategrey": [119, 136, 153],
7096
- "lightsteelblue": [176, 196, 222],
7097
- "lightyellow": [255, 255, 224],
7098
- "lime": [0, 255, 0],
7099
- "limegreen": [50, 205, 50],
7100
- "linen": [250, 240, 230],
7101
- "magenta": [255, 0, 255],
7102
- "maroon": [128, 0, 0],
7103
- "mediumaquamarine": [102, 205, 170],
7104
- "mediumblue": [0, 0, 205],
7105
- "mediumorchid": [186, 85, 211],
7106
- "mediumpurple": [147, 112, 219],
7107
- "mediumseagreen": [60, 179, 113],
7108
- "mediumslateblue": [123, 104, 238],
7109
- "mediumspringgreen": [0, 250, 154],
7110
- "mediumturquoise": [72, 209, 204],
7111
- "mediumvioletred": [199, 21, 133],
7112
- "midnightblue": [25, 25, 112],
7113
- "mintcream": [245, 255, 250],
7114
- "mistyrose": [255, 228, 225],
7115
- "moccasin": [255, 228, 181],
7116
- "navajowhite": [255, 222, 173],
7117
- "navy": [0, 0, 128],
7118
- "oldlace": [253, 245, 230],
7119
- "olive": [128, 128, 0],
7120
- "olivedrab": [107, 142, 35],
7121
- "orange": [255, 165, 0],
7122
- "orangered": [255, 69, 0],
7123
- "orchid": [218, 112, 214],
7124
- "palegoldenrod": [238, 232, 170],
7125
- "palegreen": [152, 251, 152],
7126
- "paleturquoise": [175, 238, 238],
7127
- "palevioletred": [219, 112, 147],
7128
- "papayawhip": [255, 239, 213],
7129
- "peachpuff": [255, 218, 185],
7130
- "peru": [205, 133, 63],
7131
- "pink": [255, 192, 203],
7132
- "plum": [221, 160, 221],
7133
- "powderblue": [176, 224, 230],
7134
- "purple": [128, 0, 128],
7135
- "rebeccapurple": [102, 51, 153],
7136
- "red": [255, 0, 0],
7137
- "rosybrown": [188, 143, 143],
7138
- "royalblue": [65, 105, 225],
7139
- "saddlebrown": [139, 69, 19],
7140
- "salmon": [250, 128, 114],
7141
- "sandybrown": [244, 164, 96],
7142
- "seagreen": [46, 139, 87],
7143
- "seashell": [255, 245, 238],
7144
- "sienna": [160, 82, 45],
7145
- "silver": [192, 192, 192],
7146
- "skyblue": [135, 206, 235],
7147
- "slateblue": [106, 90, 205],
7148
- "slategray": [112, 128, 144],
7149
- "slategrey": [112, 128, 144],
7150
- "snow": [255, 250, 250],
7151
- "springgreen": [0, 255, 127],
7152
- "steelblue": [70, 130, 180],
7153
- "tan": [210, 180, 140],
7154
- "teal": [0, 128, 128],
7155
- "thistle": [216, 191, 216],
7156
- "tomato": [255, 99, 71],
7157
- "turquoise": [64, 224, 208],
7158
- "violet": [238, 130, 238],
7159
- "wheat": [245, 222, 179],
7160
- "white": [255, 255, 255],
7161
- "whitesmoke": [245, 245, 245],
7162
- "yellow": [255, 255, 0],
7163
- "yellowgreen": [154, 205, 50]
7164
- };
7163
+ return base;
7164
+ };
7165
7165
 
7166
7166
 
7167
7167
  /***/ }),
@@ -7173,7 +7173,7 @@ module.exports = {
7173
7173
 
7174
7174
 
7175
7175
  var colorString = __nccwpck_require__(9407);
7176
- var convert = __nccwpck_require__(192);
7176
+ var convert = __nccwpck_require__(4185);
7177
7177
 
7178
7178
  var _slice = [].slice;
7179
7179