storybook 10.1.0-alpha.9 → 10.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/dist/_browser-chunks/Color-FTG7SQDA.js +1097 -0
  2. package/dist/_browser-chunks/WithTooltip-LMROHDUP.js +1651 -0
  3. package/dist/_browser-chunks/chunk-2FRVAXCZ.js +7 -0
  4. package/dist/_browser-chunks/{chunk-FDWKXLBI.js → chunk-2XZMBGTA.js} +44 -109
  5. package/dist/_browser-chunks/chunk-3IAH5M2U.js +171 -0
  6. package/dist/_browser-chunks/chunk-3OXGAGBE.js +779 -0
  7. package/dist/_browser-chunks/{chunk-TMDZCWME.js → chunk-3PJE6VLG.js} +1 -3
  8. package/dist/_browser-chunks/{chunk-VAMFPZY3.js → chunk-45UGUKRX.js} +2 -7
  9. package/dist/_browser-chunks/chunk-6XWLIJQL.js +11 -0
  10. package/dist/_browser-chunks/{chunk-MM7DTO55.js → chunk-A242L54C.js} +10 -16
  11. package/dist/_browser-chunks/chunk-AIOS4NGK.js +252 -0
  12. package/dist/_browser-chunks/chunk-AS2HQEYC.js +14 -0
  13. package/dist/_browser-chunks/chunk-AXG2BOBL.js +836 -0
  14. package/dist/_browser-chunks/{chunk-MH6AXFXB.js → chunk-CHUV5WSW.js} +0 -5
  15. package/dist/_browser-chunks/chunk-EUVGDK4H.js +93 -0
  16. package/dist/_browser-chunks/chunk-EZSQOHRI.js +18 -0
  17. package/dist/_browser-chunks/{chunk-CADGRH3P.js → chunk-FNXWN6IK.js} +3 -8
  18. package/dist/_browser-chunks/chunk-FQ7SLVLR.js +66 -0
  19. package/dist/_browser-chunks/chunk-GFLS4VP3.js +64 -0
  20. package/dist/_browser-chunks/chunk-GFY5R5EY.js +47 -0
  21. package/dist/_browser-chunks/{chunk-L2D73C6Z.js → chunk-H6XK3RSC.js} +13 -21
  22. package/dist/_browser-chunks/chunk-IPA5A322.js +71 -0
  23. package/dist/_browser-chunks/chunk-JP7NCOJX.js +37 -0
  24. package/dist/_browser-chunks/chunk-KJHJLCBK.js +11 -0
  25. package/dist/_browser-chunks/{chunk-OWPZQM2D.js → chunk-L4RMQ7D7.js} +60 -110
  26. package/dist/_browser-chunks/chunk-P4F4UVXX.js +951 -0
  27. package/dist/_browser-chunks/{chunk-AB7OOPUX.js → chunk-QKODTO7K.js} +0 -5
  28. package/dist/_browser-chunks/chunk-RP5RXKFU.js +2491 -0
  29. package/dist/_browser-chunks/chunk-SL75JR6Y.js +9 -0
  30. package/dist/_browser-chunks/chunk-SS2NHR7W.js +2969 -0
  31. package/dist/_browser-chunks/chunk-UD6FQLAF.js +1481 -0
  32. package/dist/_browser-chunks/chunk-VYJQ7RU5.js +2853 -0
  33. package/dist/_browser-chunks/chunk-WJYERY3R.js +136 -0
  34. package/dist/_browser-chunks/chunk-XJNX76GA.js +85 -0
  35. package/dist/_browser-chunks/{chunk-F4Q6SGTB.js → chunk-YKE5S47A.js} +177 -399
  36. package/dist/_browser-chunks/{chunk-SN4J4IQ3.js → chunk-ZUWEVLDX.js} +1 -7
  37. package/dist/_browser-chunks/{formatter-OMEEQ6HG.js → formatter-QJ4M4OGQ.js} +4 -9
  38. package/dist/_browser-chunks/{syntaxhighlighter-CAVLW7PM.js → syntaxhighlighter-IQDEPFLK.js} +704 -1848
  39. package/dist/_node-chunks/{builder-manager-SM3UWERX.js → builder-manager-FTVC2JL7.js} +510 -1019
  40. package/dist/_node-chunks/camelcase-3SMT5WKC.js +37 -0
  41. package/dist/_node-chunks/chunk-2OVULPK3.js +54 -0
  42. package/dist/_node-chunks/chunk-3JJPSDXI.js +3043 -0
  43. package/dist/_node-chunks/chunk-54NMJ4II.js +1564 -0
  44. package/dist/_node-chunks/chunk-5V4A6MSI.js +943 -0
  45. package/dist/_node-chunks/chunk-6DEMT5VX.js +299 -0
  46. package/dist/_node-chunks/{chunk-HHSTA6QS.js → chunk-6L7FFBOW.js} +8 -10
  47. package/dist/_node-chunks/chunk-6ULDIDXV.js +46662 -0
  48. package/dist/_node-chunks/chunk-AREL5IXS.js +603 -0
  49. package/dist/_node-chunks/chunk-DWA53E73.js +23 -0
  50. package/dist/_node-chunks/chunk-FNYKBULZ.js +765 -0
  51. package/dist/_node-chunks/chunk-IUYZQKSX.js +70 -0
  52. package/dist/_node-chunks/{chunk-F6EFOEC7.js → chunk-K673CX4Q.js} +469 -983
  53. package/dist/_node-chunks/chunk-KJAFCNZ3.js +61 -0
  54. package/dist/_node-chunks/chunk-N3BJOOY5.js +78 -0
  55. package/dist/_node-chunks/{chunk-EBUEXRH5.js → chunk-O5FMCQHP.js} +116 -276
  56. package/dist/_node-chunks/chunk-RIKQZHV3.js +29 -0
  57. package/dist/_node-chunks/chunk-RURZIE3W.js +3780 -0
  58. package/dist/_node-chunks/chunk-RVII4SK6.js +919 -0
  59. package/dist/_node-chunks/chunk-S3PBHOVC.js +6024 -0
  60. package/dist/_node-chunks/chunk-SQSFX47N.js +61 -0
  61. package/dist/_node-chunks/{chunk-SGM3ZCCT.js → chunk-TURUTKVH.js} +292 -688
  62. package/dist/_node-chunks/chunk-VRICJPXY.js +72 -0
  63. package/dist/_node-chunks/chunk-WIWWMCEU.js +119 -0
  64. package/dist/_node-chunks/{chunk-ATDHMMIZ.js → chunk-XGNRK7QB.js} +15 -24
  65. package/dist/_node-chunks/chunk-Y2FOTPAE.js +4523 -0
  66. package/dist/_node-chunks/{chunk-GHIBZRKD.js → chunk-Y4UYN72K.js} +8133 -8887
  67. package/dist/_node-chunks/chunk-Z4BMBA5L.js +18 -0
  68. package/dist/_node-chunks/chunk-ZMCJS2GU.js +20 -0
  69. package/dist/_node-chunks/dist-TZLZ3T6L.js +121 -0
  70. package/dist/_node-chunks/globby-22GFCZQD.js +3452 -0
  71. package/dist/_node-chunks/lib-37NQ4ZIJ.js +366 -0
  72. package/dist/_node-chunks/mdx-N42X6CFJ-2TRB7OEH.js +14329 -0
  73. package/dist/_node-chunks/p-limit-UD7TYFDW.js +116 -0
  74. package/dist/actions/decorator.js +21 -42
  75. package/dist/actions/index.js +3 -3
  76. package/dist/babel/index.d.ts +671 -335
  77. package/dist/babel/index.js +10 -11
  78. package/dist/bin/core.js +602 -1549
  79. package/dist/bin/dispatcher.js +36 -36
  80. package/dist/bin/loader.js +24 -38
  81. package/dist/channels/index.js +98 -234
  82. package/dist/cli/index.d.ts +1479 -133
  83. package/dist/cli/index.js +30 -8540
  84. package/dist/client-logger/index.js +31 -61
  85. package/dist/common/index.d.ts +139 -62
  86. package/dist/common/index.js +66 -51
  87. package/dist/components/index.d.ts +575 -273
  88. package/dist/components/index.js +14863 -4313
  89. package/dist/core-events/index.js +2 -66
  90. package/dist/core-server/index.d.ts +3 -2
  91. package/dist/core-server/index.js +2911 -8519
  92. package/dist/core-server/presets/common-manager.css +2 -2
  93. package/dist/core-server/presets/common-manager.js +2521 -5233
  94. package/dist/core-server/presets/common-override-preset.js +31 -60
  95. package/dist/core-server/presets/common-preset.js +663 -962
  96. package/dist/csf/index.js +534 -1179
  97. package/dist/csf-tools/index.js +9 -9
  98. package/dist/docs-tools/index.js +6 -6
  99. package/dist/highlight/index.js +2 -2
  100. package/dist/instrumenter/index.js +199 -415
  101. package/dist/manager/globals-runtime.js +59044 -67141
  102. package/dist/manager/globals.js +2 -3
  103. package/dist/manager/manager-stores.d.ts +1 -0
  104. package/dist/manager/manager-stores.js +23 -0
  105. package/dist/manager/runtime.js +11569 -10953
  106. package/dist/manager-api/index.d.ts +1813 -2
  107. package/dist/manager-api/index.js +1348 -2401
  108. package/dist/manager-errors.d.ts +9 -0
  109. package/dist/manager-errors.js +3 -3
  110. package/dist/mocking-utils/index.d.ts +1126 -0
  111. package/dist/mocking-utils/index.js +1181 -0
  112. package/dist/node-logger/index.d.ts +192 -24
  113. package/dist/node-logger/index.js +23 -4471
  114. package/dist/preview/globals.js +2 -3
  115. package/dist/preview/runtime.js +10799 -22393
  116. package/dist/preview-api/index.d.ts +1 -1
  117. package/dist/preview-api/index.js +13 -13
  118. package/dist/preview-errors.d.ts +9 -0
  119. package/dist/preview-errors.js +4 -4
  120. package/dist/router/index.js +347 -899
  121. package/dist/server-errors.d.ts +34 -1
  122. package/dist/server-errors.js +17 -10
  123. package/dist/telemetry/index.d.ts +24 -3
  124. package/dist/telemetry/index.js +25 -24
  125. package/dist/test/index.js +6131 -11916
  126. package/dist/theming/create.d.ts +1 -0
  127. package/dist/theming/create.js +4 -4
  128. package/dist/theming/index.d.ts +3366 -2599
  129. package/dist/theming/index.js +501 -1091
  130. package/dist/types/index.d.ts +72 -8
  131. package/dist/types/index.js +27 -12
  132. package/dist/viewport/index.js +3 -3
  133. package/package.json +26 -17
  134. package/dist/_browser-chunks/Color-7ZNS6F6B.js +0 -1676
  135. package/dist/_browser-chunks/WithTooltip-SK46ZJ2J.js +0 -13
  136. package/dist/_browser-chunks/chunk-6A7OIVEL.js +0 -66
  137. package/dist/_browser-chunks/chunk-B4A3ADP3.js +0 -3816
  138. package/dist/_browser-chunks/chunk-BOOOPFZF.js +0 -2335
  139. package/dist/_browser-chunks/chunk-FSBVR7H5.js +0 -106
  140. package/dist/_browser-chunks/chunk-FUOHXXZT.js +0 -23
  141. package/dist/_browser-chunks/chunk-GTKOCWCT.js +0 -17
  142. package/dist/_browser-chunks/chunk-HHW4FUMO.js +0 -12
  143. package/dist/_browser-chunks/chunk-JVSKG4YS.js +0 -4052
  144. package/dist/_browser-chunks/chunk-LASUB7TL.js +0 -76
  145. package/dist/_browser-chunks/chunk-LYCSRYYR.js +0 -101
  146. package/dist/_browser-chunks/chunk-NVV6MIOE.js +0 -243
  147. package/dist/_browser-chunks/chunk-OBXWFEPB.js +0 -852
  148. package/dist/_browser-chunks/chunk-OPCDBBL3.js +0 -48
  149. package/dist/_browser-chunks/chunk-PB6FZ3WE.js +0 -130
  150. package/dist/_browser-chunks/chunk-RNE2IUTB.js +0 -1300
  151. package/dist/_browser-chunks/chunk-RW5PKMWM.js +0 -4182
  152. package/dist/_browser-chunks/chunk-SYS437NN.js +0 -122
  153. package/dist/_browser-chunks/chunk-U46RQHA4.js +0 -12
  154. package/dist/_browser-chunks/chunk-UTNZYD2N.js +0 -311
  155. package/dist/_browser-chunks/chunk-VUAFL5XK.js +0 -20
  156. package/dist/_browser-chunks/chunk-XDGMHOV7.js +0 -2197
  157. package/dist/_browser-chunks/chunk-XW6KSYKF.js +0 -16
  158. package/dist/_browser-chunks/chunk-Y3M7TW6K.js +0 -1041
  159. package/dist/_browser-chunks/chunk-ZNRFDIVA.js +0 -233
  160. package/dist/_node-chunks/camelcase-H5QSGQLK.js +0 -18
  161. package/dist/_node-chunks/chunk-3THWHQOC.js +0 -61
  162. package/dist/_node-chunks/chunk-45YUOLTU.js +0 -69
  163. package/dist/_node-chunks/chunk-4QSNCPAU.js +0 -64656
  164. package/dist/_node-chunks/chunk-744PQSOU.js +0 -79
  165. package/dist/_node-chunks/chunk-74Z2U7QG.js +0 -1544
  166. package/dist/_node-chunks/chunk-7MB7TFPO.js +0 -1198
  167. package/dist/_node-chunks/chunk-A7GS4RFT.js +0 -697
  168. package/dist/_node-chunks/chunk-BIA3A5UM.js +0 -61
  169. package/dist/_node-chunks/chunk-C5G7CLWX.js +0 -1657
  170. package/dist/_node-chunks/chunk-DLFUKMYJ.js +0 -1531
  171. package/dist/_node-chunks/chunk-EMRGRXKT.js +0 -111
  172. package/dist/_node-chunks/chunk-EX46EHHY.js +0 -420
  173. package/dist/_node-chunks/chunk-F76QKNOJ.js +0 -304
  174. package/dist/_node-chunks/chunk-HDCRUTEF.js +0 -220
  175. package/dist/_node-chunks/chunk-HUYAOIPH.js +0 -90
  176. package/dist/_node-chunks/chunk-IBJZQZJC.js +0 -101
  177. package/dist/_node-chunks/chunk-KZN2RDDT.js +0 -6712
  178. package/dist/_node-chunks/chunk-LYUNFU3F.js +0 -4741
  179. package/dist/_node-chunks/chunk-N44SIS6K.js +0 -28
  180. package/dist/_node-chunks/chunk-NILZM6KR.js +0 -18
  181. package/dist/_node-chunks/chunk-PC4ZRP6W.js +0 -34
  182. package/dist/_node-chunks/chunk-TJNGOQUH.js +0 -4272
  183. package/dist/_node-chunks/chunk-UBSYLHIL.js +0 -1250
  184. package/dist/_node-chunks/chunk-UTCLXPOC.js +0 -1518
  185. package/dist/_node-chunks/chunk-WOXXODXP.js +0 -5029
  186. package/dist/_node-chunks/chunk-XC4MEUA6.js +0 -1586
  187. package/dist/_node-chunks/chunk-YRXXMKRR.js +0 -2256
  188. package/dist/_node-chunks/dist-SL73W244.js +0 -175
  189. package/dist/_node-chunks/globby-ZSHAUQZ5.js +0 -5222
  190. package/dist/_node-chunks/lib-U2VIPUTI.js +0 -518
  191. package/dist/_node-chunks/mdx-N42X6CFJ-ZLHD33JK.js +0 -22017
  192. package/dist/_node-chunks/p-limit-K5BS5MSV.js +0 -168
  193. package/dist/_node-chunks/plugin-5PD4YIUH.js +0 -129
  194. package/dist/_node-chunks/plugin-MONDT2WL.js +0 -159
  195. package/dist/_node-chunks/webpack-inject-mocker-runtime-plugin-EUZJRG3W.js +0 -69102
  196. package/dist/_node-chunks/webpack-mock-plugin-T4LDXEHE.js +0 -124
  197. package/dist/core-server/presets/webpack/loaders/storybook-mock-transform-loader.js +0 -36
  198. package/dist/core-server/presets/webpack/loaders/webpack-automock-loader.js +0 -33
@@ -0,0 +1,1097 @@
1
+ import {
2
+ getControlId
3
+ } from "./chunk-2FRVAXCZ.js";
4
+ import "./chunk-QKODTO7K.js";
5
+ import {
6
+ __commonJS,
7
+ __toESM
8
+ } from "./chunk-A242L54C.js";
9
+
10
+ // ../node_modules/color-name/index.js
11
+ var require_color_name = __commonJS({
12
+ "../node_modules/color-name/index.js"(exports, module) {
13
+ "use strict";
14
+ module.exports = {
15
+ aliceblue: [240, 248, 255],
16
+ antiquewhite: [250, 235, 215],
17
+ aqua: [0, 255, 255],
18
+ aquamarine: [127, 255, 212],
19
+ azure: [240, 255, 255],
20
+ beige: [245, 245, 220],
21
+ bisque: [255, 228, 196],
22
+ black: [0, 0, 0],
23
+ blanchedalmond: [255, 235, 205],
24
+ blue: [0, 0, 255],
25
+ blueviolet: [138, 43, 226],
26
+ brown: [165, 42, 42],
27
+ burlywood: [222, 184, 135],
28
+ cadetblue: [95, 158, 160],
29
+ chartreuse: [127, 255, 0],
30
+ chocolate: [210, 105, 30],
31
+ coral: [255, 127, 80],
32
+ cornflowerblue: [100, 149, 237],
33
+ cornsilk: [255, 248, 220],
34
+ crimson: [220, 20, 60],
35
+ cyan: [0, 255, 255],
36
+ darkblue: [0, 0, 139],
37
+ darkcyan: [0, 139, 139],
38
+ darkgoldenrod: [184, 134, 11],
39
+ darkgray: [169, 169, 169],
40
+ darkgreen: [0, 100, 0],
41
+ darkgrey: [169, 169, 169],
42
+ darkkhaki: [189, 183, 107],
43
+ darkmagenta: [139, 0, 139],
44
+ darkolivegreen: [85, 107, 47],
45
+ darkorange: [255, 140, 0],
46
+ darkorchid: [153, 50, 204],
47
+ darkred: [139, 0, 0],
48
+ darksalmon: [233, 150, 122],
49
+ darkseagreen: [143, 188, 143],
50
+ darkslateblue: [72, 61, 139],
51
+ darkslategray: [47, 79, 79],
52
+ darkslategrey: [47, 79, 79],
53
+ darkturquoise: [0, 206, 209],
54
+ darkviolet: [148, 0, 211],
55
+ deeppink: [255, 20, 147],
56
+ deepskyblue: [0, 191, 255],
57
+ dimgray: [105, 105, 105],
58
+ dimgrey: [105, 105, 105],
59
+ dodgerblue: [30, 144, 255],
60
+ firebrick: [178, 34, 34],
61
+ floralwhite: [255, 250, 240],
62
+ forestgreen: [34, 139, 34],
63
+ fuchsia: [255, 0, 255],
64
+ gainsboro: [220, 220, 220],
65
+ ghostwhite: [248, 248, 255],
66
+ gold: [255, 215, 0],
67
+ goldenrod: [218, 165, 32],
68
+ gray: [128, 128, 128],
69
+ green: [0, 128, 0],
70
+ greenyellow: [173, 255, 47],
71
+ grey: [128, 128, 128],
72
+ honeydew: [240, 255, 240],
73
+ hotpink: [255, 105, 180],
74
+ indianred: [205, 92, 92],
75
+ indigo: [75, 0, 130],
76
+ ivory: [255, 255, 240],
77
+ khaki: [240, 230, 140],
78
+ lavender: [230, 230, 250],
79
+ lavenderblush: [255, 240, 245],
80
+ lawngreen: [124, 252, 0],
81
+ lemonchiffon: [255, 250, 205],
82
+ lightblue: [173, 216, 230],
83
+ lightcoral: [240, 128, 128],
84
+ lightcyan: [224, 255, 255],
85
+ lightgoldenrodyellow: [250, 250, 210],
86
+ lightgray: [211, 211, 211],
87
+ lightgreen: [144, 238, 144],
88
+ lightgrey: [211, 211, 211],
89
+ lightpink: [255, 182, 193],
90
+ lightsalmon: [255, 160, 122],
91
+ lightseagreen: [32, 178, 170],
92
+ lightskyblue: [135, 206, 250],
93
+ lightslategray: [119, 136, 153],
94
+ lightslategrey: [119, 136, 153],
95
+ lightsteelblue: [176, 196, 222],
96
+ lightyellow: [255, 255, 224],
97
+ lime: [0, 255, 0],
98
+ limegreen: [50, 205, 50],
99
+ linen: [250, 240, 230],
100
+ magenta: [255, 0, 255],
101
+ maroon: [128, 0, 0],
102
+ mediumaquamarine: [102, 205, 170],
103
+ mediumblue: [0, 0, 205],
104
+ mediumorchid: [186, 85, 211],
105
+ mediumpurple: [147, 112, 219],
106
+ mediumseagreen: [60, 179, 113],
107
+ mediumslateblue: [123, 104, 238],
108
+ mediumspringgreen: [0, 250, 154],
109
+ mediumturquoise: [72, 209, 204],
110
+ mediumvioletred: [199, 21, 133],
111
+ midnightblue: [25, 25, 112],
112
+ mintcream: [245, 255, 250],
113
+ mistyrose: [255, 228, 225],
114
+ moccasin: [255, 228, 181],
115
+ navajowhite: [255, 222, 173],
116
+ navy: [0, 0, 128],
117
+ oldlace: [253, 245, 230],
118
+ olive: [128, 128, 0],
119
+ olivedrab: [107, 142, 35],
120
+ orange: [255, 165, 0],
121
+ orangered: [255, 69, 0],
122
+ orchid: [218, 112, 214],
123
+ palegoldenrod: [238, 232, 170],
124
+ palegreen: [152, 251, 152],
125
+ paleturquoise: [175, 238, 238],
126
+ palevioletred: [219, 112, 147],
127
+ papayawhip: [255, 239, 213],
128
+ peachpuff: [255, 218, 185],
129
+ peru: [205, 133, 63],
130
+ pink: [255, 192, 203],
131
+ plum: [221, 160, 221],
132
+ powderblue: [176, 224, 230],
133
+ purple: [128, 0, 128],
134
+ rebeccapurple: [102, 51, 153],
135
+ red: [255, 0, 0],
136
+ rosybrown: [188, 143, 143],
137
+ royalblue: [65, 105, 225],
138
+ saddlebrown: [139, 69, 19],
139
+ salmon: [250, 128, 114],
140
+ sandybrown: [244, 164, 96],
141
+ seagreen: [46, 139, 87],
142
+ seashell: [255, 245, 238],
143
+ sienna: [160, 82, 45],
144
+ silver: [192, 192, 192],
145
+ skyblue: [135, 206, 235],
146
+ slateblue: [106, 90, 205],
147
+ slategray: [112, 128, 144],
148
+ slategrey: [112, 128, 144],
149
+ snow: [255, 250, 250],
150
+ springgreen: [0, 255, 127],
151
+ steelblue: [70, 130, 180],
152
+ tan: [210, 180, 140],
153
+ teal: [0, 128, 128],
154
+ thistle: [216, 191, 216],
155
+ tomato: [255, 99, 71],
156
+ turquoise: [64, 224, 208],
157
+ violet: [238, 130, 238],
158
+ wheat: [245, 222, 179],
159
+ white: [255, 255, 255],
160
+ whitesmoke: [245, 245, 245],
161
+ yellow: [255, 255, 0],
162
+ yellowgreen: [154, 205, 50]
163
+ };
164
+ }
165
+ });
166
+
167
+ // ../node_modules/color-convert/conversions.js
168
+ var require_conversions = __commonJS({
169
+ "../node_modules/color-convert/conversions.js"(exports, module) {
170
+ var cssKeywords = require_color_name(), reverseKeywords = {};
171
+ for (let key of Object.keys(cssKeywords))
172
+ reverseKeywords[cssKeywords[key]] = key;
173
+ var convert2 = {
174
+ rgb: { channels: 3, labels: "rgb" },
175
+ hsl: { channels: 3, labels: "hsl" },
176
+ hsv: { channels: 3, labels: "hsv" },
177
+ hwb: { channels: 3, labels: "hwb" },
178
+ cmyk: { channels: 4, labels: "cmyk" },
179
+ xyz: { channels: 3, labels: "xyz" },
180
+ lab: { channels: 3, labels: "lab" },
181
+ lch: { channels: 3, labels: "lch" },
182
+ hex: { channels: 1, labels: ["hex"] },
183
+ keyword: { channels: 1, labels: ["keyword"] },
184
+ ansi16: { channels: 1, labels: ["ansi16"] },
185
+ ansi256: { channels: 1, labels: ["ansi256"] },
186
+ hcg: { channels: 3, labels: ["h", "c", "g"] },
187
+ apple: { channels: 3, labels: ["r16", "g16", "b16"] },
188
+ gray: { channels: 1, labels: ["gray"] }
189
+ };
190
+ module.exports = convert2;
191
+ for (let model of Object.keys(convert2)) {
192
+ if (!("channels" in convert2[model]))
193
+ throw new Error("missing channels property: " + model);
194
+ if (!("labels" in convert2[model]))
195
+ throw new Error("missing channel labels property: " + model);
196
+ if (convert2[model].labels.length !== convert2[model].channels)
197
+ throw new Error("channel and label counts mismatch: " + model);
198
+ let { channels, labels } = convert2[model];
199
+ delete convert2[model].channels, delete convert2[model].labels, Object.defineProperty(convert2[model], "channels", { value: channels }), Object.defineProperty(convert2[model], "labels", { value: labels });
200
+ }
201
+ convert2.rgb.hsl = function(rgb) {
202
+ let r2 = rgb[0] / 255, g2 = rgb[1] / 255, b2 = rgb[2] / 255, min = Math.min(r2, g2, b2), max = Math.max(r2, g2, b2), delta = max - min, h2, s2;
203
+ max === min ? h2 = 0 : r2 === max ? h2 = (g2 - b2) / delta : g2 === max ? h2 = 2 + (b2 - r2) / delta : b2 === max && (h2 = 4 + (r2 - g2) / delta), h2 = Math.min(h2 * 60, 360), h2 < 0 && (h2 += 360);
204
+ let l2 = (min + max) / 2;
205
+ return max === min ? s2 = 0 : l2 <= 0.5 ? s2 = delta / (max + min) : s2 = delta / (2 - max - min), [h2, s2 * 100, l2 * 100];
206
+ };
207
+ convert2.rgb.hsv = function(rgb) {
208
+ let rdif, gdif, bdif, h2, s2, r2 = rgb[0] / 255, g2 = rgb[1] / 255, b2 = rgb[2] / 255, v2 = Math.max(r2, g2, b2), diff = v2 - Math.min(r2, g2, b2), diffc = function(c2) {
209
+ return (v2 - c2) / 6 / diff + 1 / 2;
210
+ };
211
+ return diff === 0 ? (h2 = 0, s2 = 0) : (s2 = diff / v2, rdif = diffc(r2), gdif = diffc(g2), bdif = diffc(b2), r2 === v2 ? h2 = bdif - gdif : g2 === v2 ? h2 = 1 / 3 + rdif - bdif : b2 === v2 && (h2 = 2 / 3 + gdif - rdif), h2 < 0 ? h2 += 1 : h2 > 1 && (h2 -= 1)), [
212
+ h2 * 360,
213
+ s2 * 100,
214
+ v2 * 100
215
+ ];
216
+ };
217
+ convert2.rgb.hwb = function(rgb) {
218
+ let r2 = rgb[0], g2 = rgb[1], b2 = rgb[2], h2 = convert2.rgb.hsl(rgb)[0], w2 = 1 / 255 * Math.min(r2, Math.min(g2, b2));
219
+ return b2 = 1 - 1 / 255 * Math.max(r2, Math.max(g2, b2)), [h2, w2 * 100, b2 * 100];
220
+ };
221
+ convert2.rgb.cmyk = function(rgb) {
222
+ let r2 = rgb[0] / 255, g2 = rgb[1] / 255, b2 = rgb[2] / 255, k2 = Math.min(1 - r2, 1 - g2, 1 - b2), c2 = (1 - r2 - k2) / (1 - k2) || 0, m2 = (1 - g2 - k2) / (1 - k2) || 0, y2 = (1 - b2 - k2) / (1 - k2) || 0;
223
+ return [c2 * 100, m2 * 100, y2 * 100, k2 * 100];
224
+ };
225
+ function comparativeDistance(x2, y2) {
226
+ return (x2[0] - y2[0]) ** 2 + (x2[1] - y2[1]) ** 2 + (x2[2] - y2[2]) ** 2;
227
+ }
228
+ convert2.rgb.keyword = function(rgb) {
229
+ let reversed = reverseKeywords[rgb];
230
+ if (reversed)
231
+ return reversed;
232
+ let currentClosestDistance = 1 / 0, currentClosestKeyword;
233
+ for (let keyword of Object.keys(cssKeywords)) {
234
+ let value = cssKeywords[keyword], distance = comparativeDistance(rgb, value);
235
+ distance < currentClosestDistance && (currentClosestDistance = distance, currentClosestKeyword = keyword);
236
+ }
237
+ return currentClosestKeyword;
238
+ };
239
+ convert2.keyword.rgb = function(keyword) {
240
+ return cssKeywords[keyword];
241
+ };
242
+ convert2.rgb.xyz = function(rgb) {
243
+ let r2 = rgb[0] / 255, g2 = rgb[1] / 255, b2 = rgb[2] / 255;
244
+ r2 = r2 > 0.04045 ? ((r2 + 0.055) / 1.055) ** 2.4 : r2 / 12.92, g2 = g2 > 0.04045 ? ((g2 + 0.055) / 1.055) ** 2.4 : g2 / 12.92, b2 = b2 > 0.04045 ? ((b2 + 0.055) / 1.055) ** 2.4 : b2 / 12.92;
245
+ let x2 = r2 * 0.4124 + g2 * 0.3576 + b2 * 0.1805, y2 = r2 * 0.2126 + g2 * 0.7152 + b2 * 0.0722, z2 = r2 * 0.0193 + g2 * 0.1192 + b2 * 0.9505;
246
+ return [x2 * 100, y2 * 100, z2 * 100];
247
+ };
248
+ convert2.rgb.lab = function(rgb) {
249
+ let xyz = convert2.rgb.xyz(rgb), x2 = xyz[0], y2 = xyz[1], z2 = xyz[2];
250
+ x2 /= 95.047, y2 /= 100, z2 /= 108.883, x2 = x2 > 8856e-6 ? x2 ** (1 / 3) : 7.787 * x2 + 16 / 116, y2 = y2 > 8856e-6 ? y2 ** (1 / 3) : 7.787 * y2 + 16 / 116, z2 = z2 > 8856e-6 ? z2 ** (1 / 3) : 7.787 * z2 + 16 / 116;
251
+ let l2 = 116 * y2 - 16, a2 = 500 * (x2 - y2), b2 = 200 * (y2 - z2);
252
+ return [l2, a2, b2];
253
+ };
254
+ convert2.hsl.rgb = function(hsl) {
255
+ let h2 = hsl[0] / 360, s2 = hsl[1] / 100, l2 = hsl[2] / 100, t2, t3, val;
256
+ if (s2 === 0)
257
+ return val = l2 * 255, [val, val, val];
258
+ l2 < 0.5 ? t2 = l2 * (1 + s2) : t2 = l2 + s2 - l2 * s2;
259
+ let t1 = 2 * l2 - t2, rgb = [0, 0, 0];
260
+ for (let i2 = 0; i2 < 3; i2++)
261
+ t3 = h2 + 1 / 3 * -(i2 - 1), t3 < 0 && t3++, t3 > 1 && t3--, 6 * t3 < 1 ? val = t1 + (t2 - t1) * 6 * t3 : 2 * t3 < 1 ? val = t2 : 3 * t3 < 2 ? val = t1 + (t2 - t1) * (2 / 3 - t3) * 6 : val = t1, rgb[i2] = val * 255;
262
+ return rgb;
263
+ };
264
+ convert2.hsl.hsv = function(hsl) {
265
+ let h2 = hsl[0], s2 = hsl[1] / 100, l2 = hsl[2] / 100, smin = s2, lmin = Math.max(l2, 0.01);
266
+ l2 *= 2, s2 *= l2 <= 1 ? l2 : 2 - l2, smin *= lmin <= 1 ? lmin : 2 - lmin;
267
+ let v2 = (l2 + s2) / 2, sv = l2 === 0 ? 2 * smin / (lmin + smin) : 2 * s2 / (l2 + s2);
268
+ return [h2, sv * 100, v2 * 100];
269
+ };
270
+ convert2.hsv.rgb = function(hsv) {
271
+ let h2 = hsv[0] / 60, s2 = hsv[1] / 100, v2 = hsv[2] / 100, hi = Math.floor(h2) % 6, f2 = h2 - Math.floor(h2), p2 = 255 * v2 * (1 - s2), q2 = 255 * v2 * (1 - s2 * f2), t2 = 255 * v2 * (1 - s2 * (1 - f2));
272
+ switch (v2 *= 255, hi) {
273
+ case 0:
274
+ return [v2, t2, p2];
275
+ case 1:
276
+ return [q2, v2, p2];
277
+ case 2:
278
+ return [p2, v2, t2];
279
+ case 3:
280
+ return [p2, q2, v2];
281
+ case 4:
282
+ return [t2, p2, v2];
283
+ case 5:
284
+ return [v2, p2, q2];
285
+ }
286
+ };
287
+ convert2.hsv.hsl = function(hsv) {
288
+ let h2 = hsv[0], s2 = hsv[1] / 100, v2 = hsv[2] / 100, vmin = Math.max(v2, 0.01), sl, l2;
289
+ l2 = (2 - s2) * v2;
290
+ let lmin = (2 - s2) * vmin;
291
+ return sl = s2 * vmin, sl /= lmin <= 1 ? lmin : 2 - lmin, sl = sl || 0, l2 /= 2, [h2, sl * 100, l2 * 100];
292
+ };
293
+ convert2.hwb.rgb = function(hwb) {
294
+ let h2 = hwb[0] / 360, wh = hwb[1] / 100, bl = hwb[2] / 100, ratio = wh + bl, f2;
295
+ ratio > 1 && (wh /= ratio, bl /= ratio);
296
+ let i2 = Math.floor(6 * h2), v2 = 1 - bl;
297
+ f2 = 6 * h2 - i2, (i2 & 1) !== 0 && (f2 = 1 - f2);
298
+ let n2 = wh + f2 * (v2 - wh), r2, g2, b2;
299
+ switch (i2) {
300
+ default:
301
+ case 6:
302
+ case 0:
303
+ r2 = v2, g2 = n2, b2 = wh;
304
+ break;
305
+ case 1:
306
+ r2 = n2, g2 = v2, b2 = wh;
307
+ break;
308
+ case 2:
309
+ r2 = wh, g2 = v2, b2 = n2;
310
+ break;
311
+ case 3:
312
+ r2 = wh, g2 = n2, b2 = v2;
313
+ break;
314
+ case 4:
315
+ r2 = n2, g2 = wh, b2 = v2;
316
+ break;
317
+ case 5:
318
+ r2 = v2, g2 = wh, b2 = n2;
319
+ break;
320
+ }
321
+ return [r2 * 255, g2 * 255, b2 * 255];
322
+ };
323
+ convert2.cmyk.rgb = function(cmyk) {
324
+ let c2 = cmyk[0] / 100, m2 = cmyk[1] / 100, y2 = cmyk[2] / 100, k2 = cmyk[3] / 100, r2 = 1 - Math.min(1, c2 * (1 - k2) + k2), g2 = 1 - Math.min(1, m2 * (1 - k2) + k2), b2 = 1 - Math.min(1, y2 * (1 - k2) + k2);
325
+ return [r2 * 255, g2 * 255, b2 * 255];
326
+ };
327
+ convert2.xyz.rgb = function(xyz) {
328
+ let x2 = xyz[0] / 100, y2 = xyz[1] / 100, z2 = xyz[2] / 100, r2, g2, b2;
329
+ return r2 = x2 * 3.2406 + y2 * -1.5372 + z2 * -0.4986, g2 = x2 * -0.9689 + y2 * 1.8758 + z2 * 0.0415, b2 = x2 * 0.0557 + y2 * -0.204 + z2 * 1.057, r2 = r2 > 31308e-7 ? 1.055 * r2 ** (1 / 2.4) - 0.055 : r2 * 12.92, g2 = g2 > 31308e-7 ? 1.055 * g2 ** (1 / 2.4) - 0.055 : g2 * 12.92, b2 = b2 > 31308e-7 ? 1.055 * b2 ** (1 / 2.4) - 0.055 : b2 * 12.92, r2 = Math.min(Math.max(0, r2), 1), g2 = Math.min(Math.max(0, g2), 1), b2 = Math.min(Math.max(0, b2), 1), [r2 * 255, g2 * 255, b2 * 255];
330
+ };
331
+ convert2.xyz.lab = function(xyz) {
332
+ let x2 = xyz[0], y2 = xyz[1], z2 = xyz[2];
333
+ x2 /= 95.047, y2 /= 100, z2 /= 108.883, x2 = x2 > 8856e-6 ? x2 ** (1 / 3) : 7.787 * x2 + 16 / 116, y2 = y2 > 8856e-6 ? y2 ** (1 / 3) : 7.787 * y2 + 16 / 116, z2 = z2 > 8856e-6 ? z2 ** (1 / 3) : 7.787 * z2 + 16 / 116;
334
+ let l2 = 116 * y2 - 16, a2 = 500 * (x2 - y2), b2 = 200 * (y2 - z2);
335
+ return [l2, a2, b2];
336
+ };
337
+ convert2.lab.xyz = function(lab) {
338
+ let l2 = lab[0], a2 = lab[1], b2 = lab[2], x2, y2, z2;
339
+ y2 = (l2 + 16) / 116, x2 = a2 / 500 + y2, z2 = y2 - b2 / 200;
340
+ let y22 = y2 ** 3, x22 = x2 ** 3, z22 = z2 ** 3;
341
+ return y2 = y22 > 8856e-6 ? y22 : (y2 - 16 / 116) / 7.787, x2 = x22 > 8856e-6 ? x22 : (x2 - 16 / 116) / 7.787, z2 = z22 > 8856e-6 ? z22 : (z2 - 16 / 116) / 7.787, x2 *= 95.047, y2 *= 100, z2 *= 108.883, [x2, y2, z2];
342
+ };
343
+ convert2.lab.lch = function(lab) {
344
+ let l2 = lab[0], a2 = lab[1], b2 = lab[2], h2;
345
+ h2 = Math.atan2(b2, a2) * 360 / 2 / Math.PI, h2 < 0 && (h2 += 360);
346
+ let c2 = Math.sqrt(a2 * a2 + b2 * b2);
347
+ return [l2, c2, h2];
348
+ };
349
+ convert2.lch.lab = function(lch) {
350
+ let l2 = lch[0], c2 = lch[1], hr = lch[2] / 360 * 2 * Math.PI, a2 = c2 * Math.cos(hr), b2 = c2 * Math.sin(hr);
351
+ return [l2, a2, b2];
352
+ };
353
+ convert2.rgb.ansi16 = function(args, saturation = null) {
354
+ let [r2, g2, b2] = args, value = saturation === null ? convert2.rgb.hsv(args)[2] : saturation;
355
+ if (value = Math.round(value / 50), value === 0)
356
+ return 30;
357
+ let ansi = 30 + (Math.round(b2 / 255) << 2 | Math.round(g2 / 255) << 1 | Math.round(r2 / 255));
358
+ return value === 2 && (ansi += 60), ansi;
359
+ };
360
+ convert2.hsv.ansi16 = function(args) {
361
+ return convert2.rgb.ansi16(convert2.hsv.rgb(args), args[2]);
362
+ };
363
+ convert2.rgb.ansi256 = function(args) {
364
+ let r2 = args[0], g2 = args[1], b2 = args[2];
365
+ return r2 === g2 && g2 === b2 ? r2 < 8 ? 16 : r2 > 248 ? 231 : Math.round((r2 - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(r2 / 255 * 5) + 6 * Math.round(g2 / 255 * 5) + Math.round(b2 / 255 * 5);
366
+ };
367
+ convert2.ansi16.rgb = function(args) {
368
+ let color = args % 10;
369
+ if (color === 0 || color === 7)
370
+ return args > 50 && (color += 3.5), color = color / 10.5 * 255, [color, color, color];
371
+ let mult = (~~(args > 50) + 1) * 0.5, r2 = (color & 1) * mult * 255, g2 = (color >> 1 & 1) * mult * 255, b2 = (color >> 2 & 1) * mult * 255;
372
+ return [r2, g2, b2];
373
+ };
374
+ convert2.ansi256.rgb = function(args) {
375
+ if (args >= 232) {
376
+ let c2 = (args - 232) * 10 + 8;
377
+ return [c2, c2, c2];
378
+ }
379
+ args -= 16;
380
+ let rem, r2 = Math.floor(args / 36) / 5 * 255, g2 = Math.floor((rem = args % 36) / 6) / 5 * 255, b2 = rem % 6 / 5 * 255;
381
+ return [r2, g2, b2];
382
+ };
383
+ convert2.rgb.hex = function(args) {
384
+ let string = (((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255)).toString(16).toUpperCase();
385
+ return "000000".substring(string.length) + string;
386
+ };
387
+ convert2.hex.rgb = function(args) {
388
+ let match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
389
+ if (!match)
390
+ return [0, 0, 0];
391
+ let colorString = match[0];
392
+ match[0].length === 3 && (colorString = colorString.split("").map((char) => char + char).join(""));
393
+ let integer = parseInt(colorString, 16), r2 = integer >> 16 & 255, g2 = integer >> 8 & 255, b2 = integer & 255;
394
+ return [r2, g2, b2];
395
+ };
396
+ convert2.rgb.hcg = function(rgb) {
397
+ let r2 = rgb[0] / 255, g2 = rgb[1] / 255, b2 = rgb[2] / 255, max = Math.max(Math.max(r2, g2), b2), min = Math.min(Math.min(r2, g2), b2), chroma = max - min, grayscale, hue;
398
+ return chroma < 1 ? grayscale = min / (1 - chroma) : grayscale = 0, chroma <= 0 ? hue = 0 : max === r2 ? hue = (g2 - b2) / chroma % 6 : max === g2 ? hue = 2 + (b2 - r2) / chroma : hue = 4 + (r2 - g2) / chroma, hue /= 6, hue %= 1, [hue * 360, chroma * 100, grayscale * 100];
399
+ };
400
+ convert2.hsl.hcg = function(hsl) {
401
+ let s2 = hsl[1] / 100, l2 = hsl[2] / 100, c2 = l2 < 0.5 ? 2 * s2 * l2 : 2 * s2 * (1 - l2), f2 = 0;
402
+ return c2 < 1 && (f2 = (l2 - 0.5 * c2) / (1 - c2)), [hsl[0], c2 * 100, f2 * 100];
403
+ };
404
+ convert2.hsv.hcg = function(hsv) {
405
+ let s2 = hsv[1] / 100, v2 = hsv[2] / 100, c2 = s2 * v2, f2 = 0;
406
+ return c2 < 1 && (f2 = (v2 - c2) / (1 - c2)), [hsv[0], c2 * 100, f2 * 100];
407
+ };
408
+ convert2.hcg.rgb = function(hcg) {
409
+ let h2 = hcg[0] / 360, c2 = hcg[1] / 100, g2 = hcg[2] / 100;
410
+ if (c2 === 0)
411
+ return [g2 * 255, g2 * 255, g2 * 255];
412
+ let pure = [0, 0, 0], hi = h2 % 1 * 6, v2 = hi % 1, w2 = 1 - v2, mg = 0;
413
+ switch (Math.floor(hi)) {
414
+ case 0:
415
+ pure[0] = 1, pure[1] = v2, pure[2] = 0;
416
+ break;
417
+ case 1:
418
+ pure[0] = w2, pure[1] = 1, pure[2] = 0;
419
+ break;
420
+ case 2:
421
+ pure[0] = 0, pure[1] = 1, pure[2] = v2;
422
+ break;
423
+ case 3:
424
+ pure[0] = 0, pure[1] = w2, pure[2] = 1;
425
+ break;
426
+ case 4:
427
+ pure[0] = v2, pure[1] = 0, pure[2] = 1;
428
+ break;
429
+ default:
430
+ pure[0] = 1, pure[1] = 0, pure[2] = w2;
431
+ }
432
+ return mg = (1 - c2) * g2, [
433
+ (c2 * pure[0] + mg) * 255,
434
+ (c2 * pure[1] + mg) * 255,
435
+ (c2 * pure[2] + mg) * 255
436
+ ];
437
+ };
438
+ convert2.hcg.hsv = function(hcg) {
439
+ let c2 = hcg[1] / 100, g2 = hcg[2] / 100, v2 = c2 + g2 * (1 - c2), f2 = 0;
440
+ return v2 > 0 && (f2 = c2 / v2), [hcg[0], f2 * 100, v2 * 100];
441
+ };
442
+ convert2.hcg.hsl = function(hcg) {
443
+ let c2 = hcg[1] / 100, l2 = hcg[2] / 100 * (1 - c2) + 0.5 * c2, s2 = 0;
444
+ return l2 > 0 && l2 < 0.5 ? s2 = c2 / (2 * l2) : l2 >= 0.5 && l2 < 1 && (s2 = c2 / (2 * (1 - l2))), [hcg[0], s2 * 100, l2 * 100];
445
+ };
446
+ convert2.hcg.hwb = function(hcg) {
447
+ let c2 = hcg[1] / 100, g2 = hcg[2] / 100, v2 = c2 + g2 * (1 - c2);
448
+ return [hcg[0], (v2 - c2) * 100, (1 - v2) * 100];
449
+ };
450
+ convert2.hwb.hcg = function(hwb) {
451
+ let w2 = hwb[1] / 100, v2 = 1 - hwb[2] / 100, c2 = v2 - w2, g2 = 0;
452
+ return c2 < 1 && (g2 = (v2 - c2) / (1 - c2)), [hwb[0], c2 * 100, g2 * 100];
453
+ };
454
+ convert2.apple.rgb = function(apple) {
455
+ return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
456
+ };
457
+ convert2.rgb.apple = function(rgb) {
458
+ return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
459
+ };
460
+ convert2.gray.rgb = function(args) {
461
+ return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
462
+ };
463
+ convert2.gray.hsl = function(args) {
464
+ return [0, 0, args[0]];
465
+ };
466
+ convert2.gray.hsv = convert2.gray.hsl;
467
+ convert2.gray.hwb = function(gray) {
468
+ return [0, 100, gray[0]];
469
+ };
470
+ convert2.gray.cmyk = function(gray) {
471
+ return [0, 0, 0, gray[0]];
472
+ };
473
+ convert2.gray.lab = function(gray) {
474
+ return [gray[0], 0, 0];
475
+ };
476
+ convert2.gray.hex = function(gray) {
477
+ let val = Math.round(gray[0] / 100 * 255) & 255, string = ((val << 16) + (val << 8) + val).toString(16).toUpperCase();
478
+ return "000000".substring(string.length) + string;
479
+ };
480
+ convert2.rgb.gray = function(rgb) {
481
+ return [(rgb[0] + rgb[1] + rgb[2]) / 3 / 255 * 100];
482
+ };
483
+ }
484
+ });
485
+
486
+ // ../node_modules/color-convert/route.js
487
+ var require_route = __commonJS({
488
+ "../node_modules/color-convert/route.js"(exports, module) {
489
+ var conversions = require_conversions();
490
+ function buildGraph() {
491
+ let graph = {}, models = Object.keys(conversions);
492
+ for (let len = models.length, i2 = 0; i2 < len; i2++)
493
+ graph[models[i2]] = {
494
+ // http://jsperf.com/1-vs-infinity
495
+ // micro-opt, but this is simple.
496
+ distance: -1,
497
+ parent: null
498
+ };
499
+ return graph;
500
+ }
501
+ function deriveBFS(fromModel) {
502
+ let graph = buildGraph(), queue = [fromModel];
503
+ for (graph[fromModel].distance = 0; queue.length; ) {
504
+ let current = queue.pop(), adjacents = Object.keys(conversions[current]);
505
+ for (let len = adjacents.length, i2 = 0; i2 < len; i2++) {
506
+ let adjacent = adjacents[i2], node = graph[adjacent];
507
+ node.distance === -1 && (node.distance = graph[current].distance + 1, node.parent = current, queue.unshift(adjacent));
508
+ }
509
+ }
510
+ return graph;
511
+ }
512
+ function link(from, to) {
513
+ return function(args) {
514
+ return to(from(args));
515
+ };
516
+ }
517
+ function wrapConversion(toModel, graph) {
518
+ let path = [graph[toModel].parent, toModel], fn = conversions[graph[toModel].parent][toModel], cur = graph[toModel].parent;
519
+ for (; graph[cur].parent; )
520
+ path.unshift(graph[cur].parent), fn = link(conversions[graph[cur].parent][cur], fn), cur = graph[cur].parent;
521
+ return fn.conversion = path, fn;
522
+ }
523
+ module.exports = function(fromModel) {
524
+ let graph = deriveBFS(fromModel), conversion = {}, models = Object.keys(graph);
525
+ for (let len = models.length, i2 = 0; i2 < len; i2++) {
526
+ let toModel = models[i2];
527
+ graph[toModel].parent !== null && (conversion[toModel] = wrapConversion(toModel, graph));
528
+ }
529
+ return conversion;
530
+ };
531
+ }
532
+ });
533
+
534
+ // ../node_modules/color-convert/index.js
535
+ var require_color_convert = __commonJS({
536
+ "../node_modules/color-convert/index.js"(exports, module) {
537
+ var conversions = require_conversions(), route = require_route(), convert2 = {}, models = Object.keys(conversions);
538
+ function wrapRaw(fn) {
539
+ let wrappedFn = function(...args) {
540
+ let arg0 = args[0];
541
+ return arg0 == null ? arg0 : (arg0.length > 1 && (args = arg0), fn(args));
542
+ };
543
+ return "conversion" in fn && (wrappedFn.conversion = fn.conversion), wrappedFn;
544
+ }
545
+ function wrapRounded(fn) {
546
+ let wrappedFn = function(...args) {
547
+ let arg0 = args[0];
548
+ if (arg0 == null)
549
+ return arg0;
550
+ arg0.length > 1 && (args = arg0);
551
+ let result = fn(args);
552
+ if (typeof result == "object")
553
+ for (let len = result.length, i2 = 0; i2 < len; i2++)
554
+ result[i2] = Math.round(result[i2]);
555
+ return result;
556
+ };
557
+ return "conversion" in fn && (wrappedFn.conversion = fn.conversion), wrappedFn;
558
+ }
559
+ models.forEach((fromModel) => {
560
+ convert2[fromModel] = {}, Object.defineProperty(convert2[fromModel], "channels", { value: conversions[fromModel].channels }), Object.defineProperty(convert2[fromModel], "labels", { value: conversions[fromModel].labels });
561
+ let routes = route(fromModel);
562
+ Object.keys(routes).forEach((toModel) => {
563
+ let fn = routes[toModel];
564
+ convert2[fromModel][toModel] = wrapRounded(fn), convert2[fromModel][toModel].raw = wrapRaw(fn);
565
+ });
566
+ });
567
+ module.exports = convert2;
568
+ }
569
+ });
570
+
571
+ // ../addons/docs/src/blocks/controls/Color.tsx
572
+ var import_color_convert = __toESM(require_color_convert(), 1);
573
+ import React, { useCallback, useEffect, useMemo, useState } from "react";
574
+ import { Button, Form, PopoverProvider } from "storybook/internal/components";
575
+ import { MarkupIcon } from "@storybook/icons";
576
+
577
+ // ../node_modules/es-toolkit/dist/function/debounce.mjs
578
+ function debounce(func, debounceMs, { signal, edges } = {}) {
579
+ let pendingThis, pendingArgs = null, leading = edges != null && edges.includes("leading"), trailing = edges == null || edges.includes("trailing"), invoke = () => {
580
+ pendingArgs !== null && (func.apply(pendingThis, pendingArgs), pendingThis = void 0, pendingArgs = null);
581
+ }, onTimerEnd = () => {
582
+ trailing && invoke(), cancel();
583
+ }, timeoutId = null, schedule = () => {
584
+ timeoutId != null && clearTimeout(timeoutId), timeoutId = setTimeout(() => {
585
+ timeoutId = null, onTimerEnd();
586
+ }, debounceMs);
587
+ }, cancelTimer = () => {
588
+ timeoutId !== null && (clearTimeout(timeoutId), timeoutId = null);
589
+ }, cancel = () => {
590
+ cancelTimer(), pendingThis = void 0, pendingArgs = null;
591
+ }, flush = () => {
592
+ invoke();
593
+ }, debounced = function(...args) {
594
+ if (signal?.aborted)
595
+ return;
596
+ pendingThis = this, pendingArgs = args;
597
+ let isFirstCall = timeoutId == null;
598
+ schedule(), leading && isFirstCall && invoke();
599
+ };
600
+ return debounced.schedule = schedule, debounced.cancel = cancel, debounced.flush = flush, signal?.addEventListener("abort", cancel, { once: !0 }), debounced;
601
+ }
602
+
603
+ // ../node_modules/es-toolkit/dist/function/partial.mjs
604
+ function partial(func, ...partialArgs) {
605
+ return partialImpl(func, placeholderSymbol, ...partialArgs);
606
+ }
607
+ function partialImpl(func, placeholder, ...partialArgs) {
608
+ let partialed = function(...providedArgs) {
609
+ let providedArgsIndex = 0, substitutedArgs = partialArgs.slice().map((arg) => arg === placeholder ? providedArgs[providedArgsIndex++] : arg), remainingArgs = providedArgs.slice(providedArgsIndex);
610
+ return func.apply(this, substitutedArgs.concat(remainingArgs));
611
+ };
612
+ return func.prototype && (partialed.prototype = Object.create(func.prototype)), partialed;
613
+ }
614
+ var placeholderSymbol = Symbol("partial.placeholder");
615
+ partial.placeholder = placeholderSymbol;
616
+
617
+ // ../node_modules/es-toolkit/dist/function/partialRight.mjs
618
+ function partialRight(func, ...partialArgs) {
619
+ return partialRightImpl(func, placeholderSymbol2, ...partialArgs);
620
+ }
621
+ function partialRightImpl(func, placeholder, ...partialArgs) {
622
+ let partialedRight = function(...providedArgs) {
623
+ let placeholderLength = partialArgs.filter((arg) => arg === placeholder).length, rangeLength = Math.max(providedArgs.length - placeholderLength, 0), remainingArgs = providedArgs.slice(0, rangeLength), providedArgsIndex = rangeLength, substitutedArgs = partialArgs.slice().map((arg) => arg === placeholder ? providedArgs[providedArgsIndex++] : arg);
624
+ return func.apply(this, remainingArgs.concat(substitutedArgs));
625
+ };
626
+ return func.prototype && (partialedRight.prototype = Object.create(func.prototype)), partialedRight;
627
+ }
628
+ var placeholderSymbol2 = Symbol("partialRight.placeholder");
629
+ partialRight.placeholder = placeholderSymbol2;
630
+
631
+ // ../node_modules/es-toolkit/dist/function/retry.mjs
632
+ var DEFAULT_RETRIES = Number.POSITIVE_INFINITY;
633
+
634
+ // ../node_modules/react-colorful/dist/index.mjs
635
+ import e, { useRef as r, useMemo as t, useEffect as n, useState as o, useCallback as a, useLayoutEffect as l } from "react";
636
+ function u() {
637
+ return (u = Object.assign || function(e2) {
638
+ for (var r2 = 1; r2 < arguments.length; r2++) {
639
+ var t2 = arguments[r2];
640
+ for (var n2 in t2) Object.prototype.hasOwnProperty.call(t2, n2) && (e2[n2] = t2[n2]);
641
+ }
642
+ return e2;
643
+ }).apply(this, arguments);
644
+ }
645
+ function c(e2, r2) {
646
+ if (e2 == null) return {};
647
+ var t2, n2, o2 = {}, a2 = Object.keys(e2);
648
+ for (n2 = 0; n2 < a2.length; n2++) r2.indexOf(t2 = a2[n2]) >= 0 || (o2[t2] = e2[t2]);
649
+ return o2;
650
+ }
651
+ function i(e2) {
652
+ var t2 = r(e2), n2 = r(function(e3) {
653
+ t2.current && t2.current(e3);
654
+ });
655
+ return t2.current = e2, n2.current;
656
+ }
657
+ var s = function(e2, r2, t2) {
658
+ return r2 === void 0 && (r2 = 0), t2 === void 0 && (t2 = 1), e2 > t2 ? t2 : e2 < r2 ? r2 : e2;
659
+ }, f = function(e2) {
660
+ return "touches" in e2;
661
+ }, v = function(e2) {
662
+ return e2 && e2.ownerDocument.defaultView || self;
663
+ }, d = function(e2, r2, t2) {
664
+ var n2 = e2.getBoundingClientRect(), o2 = f(r2) ? (function(e3, r3) {
665
+ for (var t3 = 0; t3 < e3.length; t3++) if (e3[t3].identifier === r3) return e3[t3];
666
+ return e3[0];
667
+ })(r2.touches, t2) : r2;
668
+ return { left: s((o2.pageX - (n2.left + v(e2).pageXOffset)) / n2.width), top: s((o2.pageY - (n2.top + v(e2).pageYOffset)) / n2.height) };
669
+ }, h = function(e2) {
670
+ !f(e2) && e2.preventDefault();
671
+ }, m = e.memo(function(o2) {
672
+ var a2 = o2.onMove, l2 = o2.onKey, s2 = c(o2, ["onMove", "onKey"]), m2 = r(null), g2 = i(a2), p2 = i(l2), b2 = r(null), _2 = r(!1), x2 = t(function() {
673
+ var e2 = function(e3) {
674
+ h(e3), (f(e3) ? e3.touches.length > 0 : e3.buttons > 0) && m2.current ? g2(d(m2.current, e3, b2.current)) : t2(!1);
675
+ }, r2 = function() {
676
+ return t2(!1);
677
+ };
678
+ function t2(t3) {
679
+ var n2 = _2.current, o3 = v(m2.current), a3 = t3 ? o3.addEventListener : o3.removeEventListener;
680
+ a3(n2 ? "touchmove" : "mousemove", e2), a3(n2 ? "touchend" : "mouseup", r2);
681
+ }
682
+ return [function(e3) {
683
+ var r3 = e3.nativeEvent, n2 = m2.current;
684
+ if (n2 && (h(r3), !(function(e4, r4) {
685
+ return r4 && !f(e4);
686
+ })(r3, _2.current) && n2)) {
687
+ if (f(r3)) {
688
+ _2.current = !0;
689
+ var o3 = r3.changedTouches || [];
690
+ o3.length && (b2.current = o3[0].identifier);
691
+ }
692
+ n2.focus(), g2(d(n2, r3, b2.current)), t2(!0);
693
+ }
694
+ }, function(e3) {
695
+ var r3 = e3.which || e3.keyCode;
696
+ r3 < 37 || r3 > 40 || (e3.preventDefault(), p2({ left: r3 === 39 ? 0.05 : r3 === 37 ? -0.05 : 0, top: r3 === 40 ? 0.05 : r3 === 38 ? -0.05 : 0 }));
697
+ }, t2];
698
+ }, [p2, g2]), C2 = x2[0], E2 = x2[1], H2 = x2[2];
699
+ return n(function() {
700
+ return H2;
701
+ }, [H2]), e.createElement("div", u({}, s2, { onTouchStart: C2, onMouseDown: C2, className: "react-colorful__interactive", ref: m2, onKeyDown: E2, tabIndex: 0, role: "slider" }));
702
+ }), g = function(e2) {
703
+ return e2.filter(Boolean).join(" ");
704
+ }, p = function(r2) {
705
+ var t2 = r2.color, n2 = r2.left, o2 = r2.top, a2 = o2 === void 0 ? 0.5 : o2, l2 = g(["react-colorful__pointer", r2.className]);
706
+ return e.createElement("div", { className: l2, style: { top: 100 * a2 + "%", left: 100 * n2 + "%" } }, e.createElement("div", { className: "react-colorful__pointer-fill", style: { backgroundColor: t2 } }));
707
+ }, b = function(e2, r2, t2) {
708
+ return r2 === void 0 && (r2 = 0), t2 === void 0 && (t2 = Math.pow(10, r2)), Math.round(t2 * e2) / t2;
709
+ }, _ = { grad: 0.9, turn: 360, rad: 360 / (2 * Math.PI) }, x = function(e2) {
710
+ return L(C(e2));
711
+ }, C = function(e2) {
712
+ return e2[0] === "#" && (e2 = e2.substring(1)), e2.length < 6 ? { r: parseInt(e2[0] + e2[0], 16), g: parseInt(e2[1] + e2[1], 16), b: parseInt(e2[2] + e2[2], 16), a: e2.length === 4 ? b(parseInt(e2[3] + e2[3], 16) / 255, 2) : 1 } : { r: parseInt(e2.substring(0, 2), 16), g: parseInt(e2.substring(2, 4), 16), b: parseInt(e2.substring(4, 6), 16), a: e2.length === 8 ? b(parseInt(e2.substring(6, 8), 16) / 255, 2) : 1 };
713
+ }, E = function(e2, r2) {
714
+ return r2 === void 0 && (r2 = "deg"), Number(e2) * (_[r2] || 1);
715
+ }, H = function(e2) {
716
+ var r2 = /hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e2);
717
+ return r2 ? N({ h: E(r2[1], r2[2]), s: Number(r2[3]), l: Number(r2[4]), a: r2[5] === void 0 ? 1 : Number(r2[5]) / (r2[6] ? 100 : 1) }) : { h: 0, s: 0, v: 0, a: 1 };
718
+ };
719
+ var N = function(e2) {
720
+ var r2 = e2.s, t2 = e2.l;
721
+ return { h: e2.h, s: (r2 *= (t2 < 50 ? t2 : 100 - t2) / 100) > 0 ? 2 * r2 / (t2 + r2) * 100 : 0, v: t2 + r2, a: e2.a };
722
+ }, w = function(e2) {
723
+ return K(I(e2));
724
+ }, y = function(e2) {
725
+ var r2 = e2.s, t2 = e2.v, n2 = e2.a, o2 = (200 - r2) * t2 / 100;
726
+ return { h: b(e2.h), s: b(o2 > 0 && o2 < 200 ? r2 * t2 / 100 / (o2 <= 100 ? o2 : 200 - o2) * 100 : 0), l: b(o2 / 2), a: b(n2, 2) };
727
+ }, q = function(e2) {
728
+ var r2 = y(e2);
729
+ return "hsl(" + r2.h + ", " + r2.s + "%, " + r2.l + "%)";
730
+ }, k = function(e2) {
731
+ var r2 = y(e2);
732
+ return "hsla(" + r2.h + ", " + r2.s + "%, " + r2.l + "%, " + r2.a + ")";
733
+ }, I = function(e2) {
734
+ var r2 = e2.h, t2 = e2.s, n2 = e2.v, o2 = e2.a;
735
+ r2 = r2 / 360 * 6, t2 /= 100, n2 /= 100;
736
+ var a2 = Math.floor(r2), l2 = n2 * (1 - t2), u2 = n2 * (1 - (r2 - a2) * t2), c2 = n2 * (1 - (1 - r2 + a2) * t2), i2 = a2 % 6;
737
+ return { r: b(255 * [n2, u2, l2, l2, c2, n2][i2]), g: b(255 * [c2, n2, n2, u2, l2, l2][i2]), b: b(255 * [l2, l2, c2, n2, n2, u2][i2]), a: b(o2, 2) };
738
+ };
739
+ var z = function(e2) {
740
+ var r2 = /rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e2);
741
+ return r2 ? L({ r: Number(r2[1]) / (r2[2] ? 100 / 255 : 1), g: Number(r2[3]) / (r2[4] ? 100 / 255 : 1), b: Number(r2[5]) / (r2[6] ? 100 / 255 : 1), a: r2[7] === void 0 ? 1 : Number(r2[7]) / (r2[8] ? 100 : 1) }) : { h: 0, s: 0, v: 0, a: 1 };
742
+ };
743
+ var D = function(e2) {
744
+ var r2 = e2.toString(16);
745
+ return r2.length < 2 ? "0" + r2 : r2;
746
+ }, K = function(e2) {
747
+ var r2 = e2.r, t2 = e2.g, n2 = e2.b, o2 = e2.a, a2 = o2 < 1 ? D(b(255 * o2)) : "";
748
+ return "#" + D(r2) + D(t2) + D(n2) + a2;
749
+ }, L = function(e2) {
750
+ var r2 = e2.r, t2 = e2.g, n2 = e2.b, o2 = e2.a, a2 = Math.max(r2, t2, n2), l2 = a2 - Math.min(r2, t2, n2), u2 = l2 ? a2 === r2 ? (t2 - n2) / l2 : a2 === t2 ? 2 + (n2 - r2) / l2 : 4 + (r2 - t2) / l2 : 0;
751
+ return { h: b(60 * (u2 < 0 ? u2 + 6 : u2)), s: b(a2 ? l2 / a2 * 100 : 0), v: b(a2 / 255 * 100), a: o2 };
752
+ };
753
+ var S = e.memo(function(r2) {
754
+ var t2 = r2.hue, n2 = r2.onChange, o2 = g(["react-colorful__hue", r2.className]);
755
+ return e.createElement("div", { className: o2 }, e.createElement(m, { onMove: function(e2) {
756
+ n2({ h: 360 * e2.left });
757
+ }, onKey: function(e2) {
758
+ n2({ h: s(t2 + 360 * e2.left, 0, 360) });
759
+ }, "aria-label": "Hue", "aria-valuenow": b(t2), "aria-valuemax": "360", "aria-valuemin": "0" }, e.createElement(p, { className: "react-colorful__hue-pointer", left: t2 / 360, color: q({ h: t2, s: 100, v: 100, a: 1 }) })));
760
+ }), T = e.memo(function(r2) {
761
+ var t2 = r2.hsva, n2 = r2.onChange, o2 = { backgroundColor: q({ h: t2.h, s: 100, v: 100, a: 1 }) };
762
+ return e.createElement("div", { className: "react-colorful__saturation", style: o2 }, e.createElement(m, { onMove: function(e2) {
763
+ n2({ s: 100 * e2.left, v: 100 - 100 * e2.top });
764
+ }, onKey: function(e2) {
765
+ n2({ s: s(t2.s + 100 * e2.left, 0, 100), v: s(t2.v - 100 * e2.top, 0, 100) });
766
+ }, "aria-label": "Color", "aria-valuetext": "Saturation " + b(t2.s) + "%, Brightness " + b(t2.v) + "%" }, e.createElement(p, { className: "react-colorful__saturation-pointer", top: 1 - t2.v / 100, left: t2.s / 100, color: q(t2) })));
767
+ }), F = function(e2, r2) {
768
+ if (e2 === r2) return !0;
769
+ for (var t2 in e2) if (e2[t2] !== r2[t2]) return !1;
770
+ return !0;
771
+ }, P = function(e2, r2) {
772
+ return e2.replace(/\s/g, "") === r2.replace(/\s/g, "");
773
+ }, X = function(e2, r2) {
774
+ return e2.toLowerCase() === r2.toLowerCase() || F(C(e2), C(r2));
775
+ };
776
+ function Y(e2, t2, l2) {
777
+ var u2 = i(l2), c2 = o(function() {
778
+ return e2.toHsva(t2);
779
+ }), s2 = c2[0], f2 = c2[1], v2 = r({ color: t2, hsva: s2 });
780
+ n(function() {
781
+ if (!e2.equal(t2, v2.current.color)) {
782
+ var r2 = e2.toHsva(t2);
783
+ v2.current = { hsva: r2, color: t2 }, f2(r2);
784
+ }
785
+ }, [t2, e2]), n(function() {
786
+ var r2;
787
+ F(s2, v2.current.hsva) || e2.equal(r2 = e2.fromHsva(s2), v2.current.color) || (v2.current = { hsva: s2, color: r2 }, u2(r2));
788
+ }, [s2, e2, u2]);
789
+ var d2 = a(function(e3) {
790
+ f2(function(r2) {
791
+ return Object.assign({}, r2, e3);
792
+ });
793
+ }, []);
794
+ return [s2, d2];
795
+ }
796
+ var R, V = typeof window < "u" ? l : n, $ = function() {
797
+ return R || (typeof __webpack_nonce__ < "u" ? __webpack_nonce__ : void 0);
798
+ };
799
+ var J = /* @__PURE__ */ new Map(), Q = function(e2) {
800
+ V(function() {
801
+ var r2 = e2.current ? e2.current.ownerDocument : document;
802
+ if (r2 !== void 0 && !J.has(r2)) {
803
+ var t2 = r2.createElement("style");
804
+ t2.innerHTML = `.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`, J.set(r2, t2);
805
+ var n2 = $();
806
+ n2 && t2.setAttribute("nonce", n2), r2.head.appendChild(t2);
807
+ }
808
+ }, []);
809
+ }, U = function(t2) {
810
+ var n2 = t2.className, o2 = t2.colorModel, a2 = t2.color, l2 = a2 === void 0 ? o2.defaultColor : a2, i2 = t2.onChange, s2 = c(t2, ["className", "colorModel", "color", "onChange"]), f2 = r(null);
811
+ Q(f2);
812
+ var v2 = Y(o2, l2, i2), d2 = v2[0], h2 = v2[1], m2 = g(["react-colorful", n2]);
813
+ return e.createElement("div", u({}, s2, { ref: f2, className: m2 }), e.createElement(T, { hsva: d2, onChange: h2 }), e.createElement(S, { hue: d2.h, onChange: h2, className: "react-colorful__last-control" }));
814
+ }, W = { defaultColor: "000", toHsva: x, fromHsva: function(e2) {
815
+ return w({ h: e2.h, s: e2.s, v: e2.v, a: 1 });
816
+ }, equal: X }, Z = function(r2) {
817
+ return e.createElement(U, u({}, r2, { colorModel: W }));
818
+ }, ee = function(r2) {
819
+ var t2 = r2.className, n2 = r2.hsva, o2 = r2.onChange, a2 = { backgroundImage: "linear-gradient(90deg, " + k(Object.assign({}, n2, { a: 0 })) + ", " + k(Object.assign({}, n2, { a: 1 })) + ")" }, l2 = g(["react-colorful__alpha", t2]), u2 = b(100 * n2.a);
820
+ return e.createElement("div", { className: l2 }, e.createElement("div", { className: "react-colorful__alpha-gradient", style: a2 }), e.createElement(m, { onMove: function(e2) {
821
+ o2({ a: e2.left });
822
+ }, onKey: function(e2) {
823
+ o2({ a: s(n2.a + e2.left) });
824
+ }, "aria-label": "Alpha", "aria-valuetext": u2 + "%", "aria-valuenow": u2, "aria-valuemin": "0", "aria-valuemax": "100" }, e.createElement(p, { className: "react-colorful__alpha-pointer", left: n2.a, color: k(n2) })));
825
+ }, re = function(t2) {
826
+ var n2 = t2.className, o2 = t2.colorModel, a2 = t2.color, l2 = a2 === void 0 ? o2.defaultColor : a2, i2 = t2.onChange, s2 = c(t2, ["className", "colorModel", "color", "onChange"]), f2 = r(null);
827
+ Q(f2);
828
+ var v2 = Y(o2, l2, i2), d2 = v2[0], h2 = v2[1], m2 = g(["react-colorful", n2]);
829
+ return e.createElement("div", u({}, s2, { ref: f2, className: m2 }), e.createElement(T, { hsva: d2, onChange: h2 }), e.createElement(S, { hue: d2.h, onChange: h2 }), e.createElement(ee, { hsva: d2, onChange: h2, className: "react-colorful__last-control" }));
830
+ };
831
+ var le = { defaultColor: "hsla(0, 0%, 0%, 1)", toHsva: H, fromHsva: k, equal: P }, ue = function(r2) {
832
+ return e.createElement(re, u({}, r2, { colorModel: le }));
833
+ };
834
+ var Ee = { defaultColor: "rgba(0, 0, 0, 1)", toHsva: z, fromHsva: function(e2) {
835
+ var r2 = I(e2);
836
+ return "rgba(" + r2.r + ", " + r2.g + ", " + r2.b + ", " + r2.a + ")";
837
+ }, equal: P }, He = function(r2) {
838
+ return e.createElement(re, u({}, r2, { colorModel: Ee }));
839
+ };
840
+
841
+ // ../addons/docs/src/blocks/controls/Color.tsx
842
+ import { styled } from "storybook/theming";
843
+ var Wrapper = styled.div({
844
+ position: "relative",
845
+ maxWidth: 250
846
+ }), TooltipContent = styled.div({
847
+ width: 200,
848
+ margin: 5,
849
+ ".react-colorful__saturation": {
850
+ borderRadius: "4px 4px 0 0"
851
+ },
852
+ ".react-colorful__hue": {
853
+ boxShadow: "inset 0 0 0 1px rgb(0 0 0 / 5%)"
854
+ },
855
+ ".react-colorful__last-control": {
856
+ borderRadius: "0 0 4px 4px"
857
+ }
858
+ }), Swatches = styled.div({
859
+ display: "grid",
860
+ gridTemplateColumns: "repeat(9, 16px)",
861
+ gap: 6,
862
+ padding: 3,
863
+ marginTop: 5,
864
+ width: 200
865
+ }), swatchBackground = `url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')`, SwatchColor = styled(Button)(
866
+ ({ value, selected, theme }) => ({
867
+ width: 16,
868
+ height: 16,
869
+ boxShadow: selected ? `${theme.appBorderColor} 0 0 0 1px inset, ${theme.textMutedColor}50 0 0 0 4px` : `${theme.appBorderColor} 0 0 0 1px inset`,
870
+ border: "none",
871
+ borderRadius: theme.appBorderRadius,
872
+ "&, &:hover": {
873
+ background: "unset",
874
+ backgroundColor: "unset",
875
+ backgroundImage: `linear-gradient(${value}, ${value}), ${swatchBackground}, linear-gradient(hsl(0 0 100 / .4), hsl(0 0 100 / .4))`
876
+ }
877
+ })
878
+ ), Input = styled(Form.Input)(({ theme }) => ({
879
+ width: "100%",
880
+ paddingLeft: 30,
881
+ paddingRight: 30,
882
+ boxSizing: "border-box",
883
+ fontFamily: theme.typography.fonts.base,
884
+ '[aria-readonly="true"] > &': {
885
+ background: theme.base === "light" ? theme.color.lighter : "transparent"
886
+ }
887
+ })), PopoverTrigger = styled(SwatchColor)(({ disabled }) => ({
888
+ position: "absolute",
889
+ top: 4,
890
+ left: 4,
891
+ zIndex: 1,
892
+ cursor: disabled ? "not-allowed" : "pointer"
893
+ })), CycleColorSpaceButton = styled(Button)(({ theme }) => ({
894
+ position: "absolute",
895
+ zIndex: 1,
896
+ top: 6,
897
+ right: 7,
898
+ width: 20,
899
+ height: 20,
900
+ padding: 4,
901
+ boxSizing: "border-box",
902
+ cursor: "pointer",
903
+ color: theme.input.color
904
+ })), ColorSpace = /* @__PURE__ */ ((ColorSpace2) => (ColorSpace2.RGB = "rgb", ColorSpace2.HSL = "hsl", ColorSpace2.HEX = "hex", ColorSpace2))(ColorSpace || {}), COLOR_SPACES = Object.values(ColorSpace), COLOR_REGEXP = /\(([0-9]+),\s*([0-9]+)%?,\s*([0-9]+)%?,?\s*([0-9.]+)?\)/, RGB_REGEXP = /^\s*rgba?\(([0-9]+),\s*([0-9]+),\s*([0-9]+),?\s*([0-9.]+)?\)\s*$/i, HSL_REGEXP = /^\s*hsla?\(([0-9]+),\s*([0-9]+)%,\s*([0-9]+)%,?\s*([0-9.]+)?\)\s*$/i, HEX_REGEXP = /^\s*#?([0-9a-f]{3}|[0-9a-f]{6})\s*$/i, SHORTHEX_REGEXP = /^\s*#?([0-9a-f]{3})\s*$/i, ColorPicker = {
905
+ hex: Z,
906
+ rgb: He,
907
+ hsl: ue
908
+ }, fallbackColor = {
909
+ hex: "transparent",
910
+ rgb: "rgba(0, 0, 0, 0)",
911
+ hsl: "hsla(0, 0%, 0%, 0)"
912
+ }, stringToArgs = (value) => {
913
+ let match = value?.match(COLOR_REGEXP);
914
+ if (!match)
915
+ return [0, 0, 0, 1];
916
+ let [, x2, y2, z2, a2 = 1] = match;
917
+ return [x2, y2, z2, a2].map(Number);
918
+ }, parseRgb = (value) => {
919
+ let [r2, g2, b2, a2] = stringToArgs(value), [h2, s2, l2] = import_color_convert.default.rgb.hsl([r2, g2, b2]) || [0, 0, 0];
920
+ return {
921
+ valid: !0,
922
+ value,
923
+ keyword: import_color_convert.default.rgb.keyword([r2, g2, b2]),
924
+ colorSpace: "rgb" /* RGB */,
925
+ rgb: value,
926
+ hsl: `hsla(${h2}, ${s2}%, ${l2}%, ${a2})`,
927
+ hex: `#${import_color_convert.default.rgb.hex([r2, g2, b2]).toLowerCase()}`
928
+ };
929
+ }, parseHsl = (value) => {
930
+ let [h2, s2, l2, a2] = stringToArgs(value), [r2, g2, b2] = import_color_convert.default.hsl.rgb([h2, s2, l2]) || [0, 0, 0];
931
+ return {
932
+ valid: !0,
933
+ value,
934
+ keyword: import_color_convert.default.hsl.keyword([h2, s2, l2]),
935
+ colorSpace: "hsl" /* HSL */,
936
+ rgb: `rgba(${r2}, ${g2}, ${b2}, ${a2})`,
937
+ hsl: value,
938
+ hex: `#${import_color_convert.default.hsl.hex([h2, s2, l2]).toLowerCase()}`
939
+ };
940
+ }, parseHexOrKeyword = (value) => {
941
+ let plain = value.replace("#", ""), rgb = import_color_convert.default.keyword.rgb(plain) || import_color_convert.default.hex.rgb(plain), hsl = import_color_convert.default.rgb.hsl(rgb), mapped = value;
942
+ /[^#a-f0-9]/i.test(value) ? mapped = plain : HEX_REGEXP.test(value) && (mapped = `#${plain}`);
943
+ let valid = !0;
944
+ if (mapped.startsWith("#"))
945
+ valid = HEX_REGEXP.test(mapped);
946
+ else
947
+ try {
948
+ import_color_convert.default.keyword.hex(mapped);
949
+ } catch {
950
+ valid = !1;
951
+ }
952
+ return {
953
+ valid,
954
+ value: mapped,
955
+ keyword: import_color_convert.default.rgb.keyword(rgb),
956
+ colorSpace: "hex" /* HEX */,
957
+ rgb: `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, 1)`,
958
+ hsl: `hsla(${hsl[0]}, ${hsl[1]}%, ${hsl[2]}%, 1)`,
959
+ hex: mapped
960
+ };
961
+ }, parseValue = (value) => {
962
+ if (value)
963
+ return RGB_REGEXP.test(value) ? parseRgb(value) : HSL_REGEXP.test(value) ? parseHsl(value) : parseHexOrKeyword(value);
964
+ }, getRealValue = (value, color, colorSpace) => {
965
+ if (!value || !color?.valid)
966
+ return fallbackColor[colorSpace];
967
+ if (colorSpace !== "hex" /* HEX */)
968
+ return color?.[colorSpace] || fallbackColor[colorSpace];
969
+ if (!color.hex.startsWith("#"))
970
+ try {
971
+ return `#${import_color_convert.default.keyword.hex(color.hex)}`;
972
+ } catch {
973
+ return fallbackColor.hex;
974
+ }
975
+ let short = color.hex.match(SHORTHEX_REGEXP);
976
+ if (!short)
977
+ return HEX_REGEXP.test(color.hex) ? color.hex : fallbackColor.hex;
978
+ let [r2, g2, b2] = short[1].split("");
979
+ return `#${r2}${r2}${g2}${g2}${b2}${b2}`;
980
+ }, useColorInput = (initialValue, onChange) => {
981
+ let [value, setValue] = useState(initialValue || ""), [color, setColor] = useState(() => parseValue(value)), [colorSpace, setColorSpace] = useState(color?.colorSpace || "hex" /* HEX */);
982
+ useEffect(() => {
983
+ let nextValue = initialValue || "", nextColor = parseValue(nextValue);
984
+ setValue(nextValue), setColor(nextColor), setColorSpace(nextColor?.colorSpace || "hex" /* HEX */);
985
+ }, [initialValue]);
986
+ let realValue = useMemo(
987
+ () => getRealValue(value, color, colorSpace).toLowerCase(),
988
+ [value, color, colorSpace]
989
+ ), updateValue = useCallback(
990
+ (update) => {
991
+ let parsed = parseValue(update), v2 = parsed?.value || update || "";
992
+ setValue(v2), v2 === "" && (setColor(void 0), onChange(void 0)), parsed && (setColor(parsed), setColorSpace(parsed.colorSpace), onChange(parsed.value));
993
+ },
994
+ [onChange]
995
+ ), cycleColorSpace = useCallback(() => {
996
+ let nextIndex = (COLOR_SPACES.indexOf(colorSpace) + 1) % COLOR_SPACES.length, nextSpace = COLOR_SPACES[nextIndex];
997
+ setColorSpace(nextSpace);
998
+ let updatedValue = color?.[nextSpace] || "";
999
+ setValue(updatedValue), onChange(updatedValue);
1000
+ }, [color, colorSpace, onChange]);
1001
+ return { value, realValue, updateValue, color, colorSpace, cycleColorSpace };
1002
+ }, id = (value) => value.replace(/\s*/, "").toLowerCase(), usePresets = (presetColors, currentColor, colorSpace) => {
1003
+ let [selectedColors, setSelectedColors] = useState(currentColor?.valid ? [currentColor] : []);
1004
+ useEffect(() => {
1005
+ currentColor === void 0 && setSelectedColors([]);
1006
+ }, [currentColor]);
1007
+ let presets = useMemo(() => (presetColors || []).map((preset) => typeof preset == "string" ? parseValue(preset) : preset.title ? { ...parseValue(preset.color), keyword: preset.title } : parseValue(preset.color)).concat(selectedColors).filter(Boolean).slice(-27), [presetColors, selectedColors]), addPreset = useCallback(
1008
+ (color) => {
1009
+ color?.valid && (presets.some(
1010
+ (preset) => preset && preset[colorSpace] && id(preset[colorSpace] || "") === id(color[colorSpace] || "")
1011
+ ) || setSelectedColors((arr) => arr.concat(color)));
1012
+ },
1013
+ [colorSpace, presets]
1014
+ );
1015
+ return { presets, addPreset };
1016
+ }, ColorControl = ({
1017
+ name,
1018
+ value: initialValue,
1019
+ onChange,
1020
+ onFocus,
1021
+ onBlur,
1022
+ presetColors,
1023
+ startOpen = !1,
1024
+ argType
1025
+ }) => {
1026
+ let debouncedOnChange = useCallback(debounce(onChange, 200), [onChange]), { value, realValue, updateValue, color, colorSpace, cycleColorSpace } = useColorInput(
1027
+ initialValue,
1028
+ debouncedOnChange
1029
+ ), { presets, addPreset } = usePresets(presetColors ?? [], color, colorSpace), Picker = ColorPicker[colorSpace], readOnly = !!argType?.table?.readonly, controlId = getControlId(name);
1030
+ return React.createElement(Wrapper, null, React.createElement("label", { htmlFor: controlId, className: "sb-sr-only" }, name), React.createElement(
1031
+ Input,
1032
+ {
1033
+ id: controlId,
1034
+ value,
1035
+ onChange: (e2) => updateValue(e2.target.value),
1036
+ onFocus: (e2) => e2.target.select(),
1037
+ readOnly,
1038
+ placeholder: "Choose color..."
1039
+ }
1040
+ ), React.createElement(
1041
+ PopoverProvider,
1042
+ {
1043
+ defaultVisible: startOpen,
1044
+ visible: readOnly ? !1 : void 0,
1045
+ onVisibleChange: () => color && addPreset(color),
1046
+ popover: React.createElement(TooltipContent, null, React.createElement(
1047
+ Picker,
1048
+ {
1049
+ color: realValue === "transparent" ? "#000000" : realValue,
1050
+ onChange: updateValue,
1051
+ onFocus,
1052
+ onBlur
1053
+ }
1054
+ ), presets.length > 0 && React.createElement(Swatches, null, presets.map((preset, index) => React.createElement(
1055
+ SwatchColor,
1056
+ {
1057
+ key: `${preset?.value || index}-${index}`,
1058
+ variant: "ghost",
1059
+ padding: "small",
1060
+ size: "small",
1061
+ ariaLabel: "Pick this color",
1062
+ tooltip: preset?.keyword || preset?.value || "",
1063
+ value: preset?.value || "",
1064
+ selected: !!(color && preset && preset[colorSpace] && id(preset[colorSpace] || "") === id(color[colorSpace])),
1065
+ onClick: () => preset && updateValue(preset.value || "")
1066
+ }
1067
+ ))))
1068
+ },
1069
+ React.createElement(
1070
+ PopoverTrigger,
1071
+ {
1072
+ variant: "ghost",
1073
+ padding: "small",
1074
+ size: "small",
1075
+ ariaLabel: "Open color picker",
1076
+ value: realValue,
1077
+ style: { margin: 4 },
1078
+ disabled: readOnly
1079
+ }
1080
+ )
1081
+ ), value ? React.createElement(
1082
+ CycleColorSpaceButton,
1083
+ {
1084
+ variant: "ghost",
1085
+ padding: "small",
1086
+ size: "small",
1087
+ ariaLabel: "Cycle through color spaces",
1088
+ disabled: readOnly,
1089
+ onClick: readOnly ? void 0 : cycleColorSpace
1090
+ },
1091
+ React.createElement(MarkupIcon, null)
1092
+ ) : null);
1093
+ }, Color_default = ColorControl;
1094
+ export {
1095
+ ColorControl,
1096
+ Color_default as default
1097
+ };