@embeddable.com/remarkable-pro 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -0
  3. package/dist/BarChartDefaultHorizontalPro.js +118 -0
  4. package/dist/BarChartDefaultHorizontalPro.js.map +1 -0
  5. package/dist/BarChartDefaultPro.js +117 -0
  6. package/dist/BarChartDefaultPro.js.map +1 -0
  7. package/dist/BarChartGroupedHorizontalPro.js +135 -0
  8. package/dist/BarChartGroupedHorizontalPro.js.map +1 -0
  9. package/dist/BarChartGroupedPro.js +134 -0
  10. package/dist/BarChartGroupedPro.js.map +1 -0
  11. package/dist/BarChartStackedHorizontalPro.js +137 -0
  12. package/dist/BarChartStackedHorizontalPro.js.map +1 -0
  13. package/dist/BarChartStackedPro.js +136 -0
  14. package/dist/BarChartStackedPro.js.map +1 -0
  15. package/dist/ChartCard-BaCPgMtI.js +145 -0
  16. package/dist/ChartCard-BaCPgMtI.js.map +1 -0
  17. package/dist/Color.type.emb-BaH90Spr.js +9 -0
  18. package/dist/Color.type.emb-BaH90Spr.js.map +1 -0
  19. package/dist/ColorEditor.js +44 -0
  20. package/dist/ColorEditor.js.map +1 -0
  21. package/dist/ComparisonPeriod.type.emb-BhZKPqEG.js +14 -0
  22. package/dist/ComparisonPeriod.type.emb-BhZKPqEG.js.map +1 -0
  23. package/dist/ComparisonPeriodSelectFieldPro.js +106 -0
  24. package/dist/ComparisonPeriodSelectFieldPro.js.map +1 -0
  25. package/dist/DateRangeSelectFieldPro.js +63 -0
  26. package/dist/DateRangeSelectFieldPro.js.map +1 -0
  27. package/dist/DonutChartPro.js +51 -0
  28. package/dist/DonutChartPro.js.map +1 -0
  29. package/dist/DonutLabelChartPro.js +64 -0
  30. package/dist/DonutLabelChartPro.js.map +1 -0
  31. package/dist/EditorCard-VYZUBvXV.js +32 -0
  32. package/dist/EditorCard-VYZUBvXV.js.map +1 -0
  33. package/dist/HeatMapPro.js +160 -0
  34. package/dist/HeatMapPro.js.map +1 -0
  35. package/dist/KpiChartNumberComparisonPro.js +160 -0
  36. package/dist/KpiChartNumberComparisonPro.js.map +1 -0
  37. package/dist/KpiChartNumberPro.js +46 -0
  38. package/dist/KpiChartNumberPro.js.map +1 -0
  39. package/dist/LineChartComparisonDefaultPro.js +462 -0
  40. package/dist/LineChartComparisonDefaultPro.js.map +1 -0
  41. package/dist/LineChartDefaultPro.js +222 -0
  42. package/dist/LineChartDefaultPro.js.map +1 -0
  43. package/dist/LineChartGroupedPro.js +217 -0
  44. package/dist/LineChartGroupedPro.js.map +1 -0
  45. package/dist/MultiSelectFieldPro.js +97 -0
  46. package/dist/MultiSelectFieldPro.js.map +1 -0
  47. package/dist/PieChartPro.js +51 -0
  48. package/dist/PieChartPro.js.map +1 -0
  49. package/dist/PivotTablePro.js +140 -0
  50. package/dist/PivotTablePro.js.map +1 -0
  51. package/dist/SingleSelectFieldPro.js +95 -0
  52. package/dist/SingleSelectFieldPro.js.map +1 -0
  53. package/dist/TableChartPaginated.js +236 -0
  54. package/dist/TableChartPaginated.js.map +1 -0
  55. package/dist/af-CEVi4R94.js +42 -0
  56. package/dist/af-CEVi4R94.js.map +1 -0
  57. package/dist/am-BsxfeHL-.js +42 -0
  58. package/dist/am-BsxfeHL-.js.map +1 -0
  59. package/dist/ar-Csxpn9Sb.js +52 -0
  60. package/dist/ar-Csxpn9Sb.js.map +1 -0
  61. package/dist/az-CzJn6lg0.js +42 -0
  62. package/dist/az-CzJn6lg0.js.map +1 -0
  63. package/dist/bars.utils-CPKeOYHg.js +145 -0
  64. package/dist/bars.utils-CPKeOYHg.js.map +1 -0
  65. package/dist/be-DcRqzG_0.js +42 -0
  66. package/dist/be-DcRqzG_0.js.map +1 -0
  67. package/dist/bg-EyI1heHM.js +45 -0
  68. package/dist/bg-EyI1heHM.js.map +1 -0
  69. package/dist/bi-CtrTfk3i.js +42 -0
  70. package/dist/bi-CtrTfk3i.js.map +1 -0
  71. package/dist/bm-45Gpgcta.js +42 -0
  72. package/dist/bm-45Gpgcta.js.map +1 -0
  73. package/dist/bn-BVcBD-e2.js +50 -0
  74. package/dist/bn-BVcBD-e2.js.map +1 -0
  75. package/dist/bo-MaHg7g5W.js +42 -0
  76. package/dist/bo-MaHg7g5W.js.map +1 -0
  77. package/dist/br-D511Ny90.js +66 -0
  78. package/dist/br-D511Ny90.js.map +1 -0
  79. package/dist/bs-lcbFZ4-X.js +42 -0
  80. package/dist/bs-lcbFZ4-X.js.map +1 -0
  81. package/dist/ca-DF-DYhBB.js +42 -0
  82. package/dist/ca-DF-DYhBB.js.map +1 -0
  83. package/dist/charts.fillGaps.hooks-5WclK2CD.js +65 -0
  84. package/dist/charts.fillGaps.hooks-5WclK2CD.js.map +1 -0
  85. package/dist/charts.utils-QVS79CrC.js +17214 -0
  86. package/dist/charts.utils-QVS79CrC.js.map +1 -0
  87. package/dist/color.utils-CVyp-fGP.js +1645 -0
  88. package/dist/color.utils-CVyp-fGP.js.map +1 -0
  89. package/dist/component.constants-DZwEQb2v.js +1776 -0
  90. package/dist/component.constants-DZwEQb2v.js.map +1 -0
  91. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/index.d.ts +24 -0
  92. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/index.d.ts.map +1 -0
  93. package/dist/components/charts/bars/BarChartDefaultPro/index.d.ts +24 -0
  94. package/dist/components/charts/bars/BarChartDefaultPro/index.d.ts.map +1 -0
  95. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts +26 -0
  96. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts.map +1 -0
  97. package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts +26 -0
  98. package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts.map +1 -0
  99. package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts +26 -0
  100. package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts.map +1 -0
  101. package/dist/components/charts/bars/BarChartStackedPro/index.d.ts +27 -0
  102. package/dist/components/charts/bars/BarChartStackedPro/index.d.ts.map +1 -0
  103. package/dist/components/charts/bars/bars.utils.d.ts +26 -0
  104. package/dist/components/charts/bars/bars.utils.d.ts.map +1 -0
  105. package/dist/components/charts/charts.fillGaps.hooks.d.ts +10 -0
  106. package/dist/components/charts/charts.fillGaps.hooks.d.ts.map +1 -0
  107. package/dist/components/charts/charts.utils.d.ts +5 -0
  108. package/dist/components/charts/charts.utils.d.ts.map +1 -0
  109. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts +20 -0
  110. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts.map +1 -0
  111. package/dist/components/charts/kpis/KpiChartNumberPro/index.d.ts +11 -0
  112. package/dist/components/charts/kpis/KpiChartNumberPro/index.d.ts.map +1 -0
  113. package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.utils.d.ts +23 -0
  114. package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.utils.d.ts.map +1 -0
  115. package/dist/components/charts/lines/LineChartComparisonDefaultPro/index.d.ts +28 -0
  116. package/dist/components/charts/lines/LineChartComparisonDefaultPro/index.d.ts.map +1 -0
  117. package/dist/components/charts/lines/LineChartDefaultPro/LineChartDefaultPro.utils.d.ts +17 -0
  118. package/dist/components/charts/lines/LineChartDefaultPro/LineChartDefaultPro.utils.d.ts.map +1 -0
  119. package/dist/components/charts/lines/LineChartDefaultPro/index.d.ts +25 -0
  120. package/dist/components/charts/lines/LineChartDefaultPro/index.d.ts.map +1 -0
  121. package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.d.ts +18 -0
  122. package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.d.ts.map +1 -0
  123. package/dist/components/charts/lines/LineChartGroupedPro/index.d.ts +27 -0
  124. package/dist/components/charts/lines/LineChartGroupedPro/index.d.ts.map +1 -0
  125. package/dist/components/charts/lines/lines.utils.d.ts +10 -0
  126. package/dist/components/charts/lines/lines.utils.d.ts.map +1 -0
  127. package/dist/components/charts/pies/DonutChartPro/index.d.ts +5 -0
  128. package/dist/components/charts/pies/DonutChartPro/index.d.ts.map +1 -0
  129. package/dist/components/charts/pies/DonutLabelChartPro/index.d.ts +10 -0
  130. package/dist/components/charts/pies/DonutLabelChartPro/index.d.ts.map +1 -0
  131. package/dist/components/charts/pies/PieChartPro/index.d.ts +5 -0
  132. package/dist/components/charts/pies/PieChartPro/index.d.ts.map +1 -0
  133. package/dist/components/charts/pies/pies.types.d.ts +16 -0
  134. package/dist/components/charts/pies/pies.types.d.ts.map +1 -0
  135. package/dist/components/charts/pies/pies.utils.d.ts +11 -0
  136. package/dist/components/charts/pies/pies.utils.d.ts.map +1 -0
  137. package/dist/components/charts/shared/ChartCard/ChartCard.d.ts +17 -0
  138. package/dist/components/charts/shared/ChartCard/ChartCard.d.ts.map +1 -0
  139. package/dist/components/charts/shared/ChartCard/ChartCardLoading/ChartCardLoading.d.ts +2 -0
  140. package/dist/components/charts/shared/ChartCard/ChartCardLoading/ChartCardLoading.d.ts.map +1 -0
  141. package/dist/components/charts/shared/ChartCard/ChartCardMenuPro/ChartCardMenuPro.d.ts +10 -0
  142. package/dist/components/charts/shared/ChartCard/ChartCardMenuPro/ChartCardMenuPro.d.ts.map +1 -0
  143. package/dist/components/charts/tables/HeatMapPro/index.d.ts +29 -0
  144. package/dist/components/charts/tables/HeatMapPro/index.d.ts.map +1 -0
  145. package/dist/components/charts/tables/PivotTablePro/PivotPro.utils.d.ts +13 -0
  146. package/dist/components/charts/tables/PivotTablePro/PivotPro.utils.d.ts.map +1 -0
  147. package/dist/components/charts/tables/PivotTablePro/index.d.ts +15 -0
  148. package/dist/components/charts/tables/PivotTablePro/index.d.ts.map +1 -0
  149. package/dist/components/charts/tables/TableChartPaginated/index.d.ts +28 -0
  150. package/dist/components/charts/tables/TableChartPaginated/index.d.ts.map +1 -0
  151. package/dist/components/charts/tables/tables.utils.d.ts +16 -0
  152. package/dist/components/charts/tables/tables.utils.d.ts.map +1 -0
  153. package/dist/components/component.constants.d.ts +324 -0
  154. package/dist/components/component.constants.d.ts.map +1 -0
  155. package/dist/components/component.utils.d.ts +3 -0
  156. package/dist/components/component.utils.d.ts.map +1 -0
  157. package/dist/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.types.d.ts +8 -0
  158. package/dist/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.types.d.ts.map +1 -0
  159. package/dist/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils.d.ts +6 -0
  160. package/dist/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils.d.ts.map +1 -0
  161. package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts +12 -0
  162. package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts.map +1 -0
  163. package/dist/components/editors/DateRangeSelectFieldPro/DateRangeSelectFieldPro.types.d.ts +8 -0
  164. package/dist/components/editors/DateRangeSelectFieldPro/DateRangeSelectFieldPro.types.d.ts.map +1 -0
  165. package/dist/components/editors/DateRangeSelectFieldPro/DateRangeSelectFieldPro.utils.d.ts +4 -0
  166. package/dist/components/editors/DateRangeSelectFieldPro/DateRangeSelectFieldPro.utils.d.ts.map +1 -0
  167. package/dist/components/editors/DateRangeSelectFieldPro/index.d.ts +12 -0
  168. package/dist/components/editors/DateRangeSelectFieldPro/index.d.ts.map +1 -0
  169. package/dist/components/editors/MultiSelectFieldPro/index.d.ts +17 -0
  170. package/dist/components/editors/MultiSelectFieldPro/index.d.ts.map +1 -0
  171. package/dist/components/editors/SingleSelectFieldPro/index.d.ts +17 -0
  172. package/dist/components/editors/SingleSelectFieldPro/index.d.ts.map +1 -0
  173. package/dist/components/editors/editors.timeRange.utils.d.ts +5 -0
  174. package/dist/components/editors/editors.timeRange.utils.d.ts.map +1 -0
  175. package/dist/components/editors/shared/EditorCard/EditorCard.d.ts +10 -0
  176. package/dist/components/editors/shared/EditorCard/EditorCard.d.ts.map +1 -0
  177. package/dist/components/utils/timeRange.utils.d.ts +5 -0
  178. package/dist/components/utils/timeRange.utils.d.ts.map +1 -0
  179. package/dist/cs-BsxNDnze.js +73 -0
  180. package/dist/cs-BsxNDnze.js.map +1 -0
  181. package/dist/cv-BdNq2fce.js +42 -0
  182. package/dist/cv-BdNq2fce.js.map +1 -0
  183. package/dist/cy-DVuhAvas.js +42 -0
  184. package/dist/cy-DVuhAvas.js.map +1 -0
  185. package/dist/da-CljcNZBu.js +42 -0
  186. package/dist/da-CljcNZBu.js.map +1 -0
  187. package/dist/de-CqKn3Q5q.js +47 -0
  188. package/dist/de-CqKn3Q5q.js.map +1 -0
  189. package/dist/dv-N9QEzsDH.js +42 -0
  190. package/dist/dv-N9QEzsDH.js.map +1 -0
  191. package/dist/editors/ColorEditor/index.d.ts +8 -0
  192. package/dist/editors/ColorEditor/index.d.ts.map +1 -0
  193. package/dist/editors.timeRange.utils-D9m6B3r1.js +143 -0
  194. package/dist/editors.timeRange.utils-D9m6B3r1.js.map +1 -0
  195. package/dist/el-eXnP3rgm.js +42 -0
  196. package/dist/el-eXnP3rgm.js.map +1 -0
  197. package/dist/embeddable-components.json +29 -0
  198. package/dist/embeddable-lifecycle.js +42 -0
  199. package/dist/embeddable-theme-4271d.js +19494 -0
  200. package/dist/embeddable-types-db8cc.js +122 -0
  201. package/dist/embeddable-types.js.map +1 -0
  202. package/dist/en-0TbQbONC.js +39 -0
  203. package/dist/en-0TbQbONC.js.map +1 -0
  204. package/dist/eo-BI4lvPeN.js +42 -0
  205. package/dist/eo-BI4lvPeN.js.map +1 -0
  206. package/dist/es-CwI2IZ2y.js +42 -0
  207. package/dist/es-CwI2IZ2y.js.map +1 -0
  208. package/dist/et-BIhrE52B.js +47 -0
  209. package/dist/et-BIhrE52B.js.map +1 -0
  210. package/dist/eu-C7L6yj0n.js +42 -0
  211. package/dist/eu-C7L6yj0n.js.map +1 -0
  212. package/dist/fa-DpGxo7Ue.js +42 -0
  213. package/dist/fa-DpGxo7Ue.js.map +1 -0
  214. package/dist/fi-Bi3p4gPj.js +47 -0
  215. package/dist/fi-Bi3p4gPj.js.map +1 -0
  216. package/dist/fo-D8jrXIOj.js +42 -0
  217. package/dist/fo-D8jrXIOj.js.map +1 -0
  218. package/dist/formatter.utils-BbPzfaw8.js +46 -0
  219. package/dist/formatter.utils-BbPzfaw8.js.map +1 -0
  220. package/dist/fr-Bm8NrBLU.js +42 -0
  221. package/dist/fr-Bm8NrBLU.js.map +1 -0
  222. package/dist/fy-Adn-MJV1.js +42 -0
  223. package/dist/fy-Adn-MJV1.js.map +1 -0
  224. package/dist/ga-BgTlCTPa.js +42 -0
  225. package/dist/ga-BgTlCTPa.js.map +1 -0
  226. package/dist/gd-CWb22v62.js +42 -0
  227. package/dist/gd-CWb22v62.js.map +1 -0
  228. package/dist/gl-CGzJ6Hxv.js +42 -0
  229. package/dist/gl-CGzJ6Hxv.js.map +1 -0
  230. package/dist/globalHooks.json +6 -0
  231. package/dist/gu-DGhkrtNL.js +42 -0
  232. package/dist/gu-DGhkrtNL.js.map +1 -0
  233. package/dist/he-CmybeT6U.js +46 -0
  234. package/dist/he-CmybeT6U.js.map +1 -0
  235. package/dist/hi-Cqdry3mg.js +42 -0
  236. package/dist/hi-Cqdry3mg.js.map +1 -0
  237. package/dist/hr-pR6ks_2b.js +46 -0
  238. package/dist/hr-pR6ks_2b.js.map +1 -0
  239. package/dist/ht-NZhydEjn.js +42 -0
  240. package/dist/ht-NZhydEjn.js.map +1 -0
  241. package/dist/hu-Dwb0gSAw.js +64 -0
  242. package/dist/hu-Dwb0gSAw.js.map +1 -0
  243. package/dist/id-C4VwUvcv.js +42 -0
  244. package/dist/id-C4VwUvcv.js.map +1 -0
  245. package/dist/index-B3N7aoDJ.js +56 -0
  246. package/dist/index-B3N7aoDJ.js.map +1 -0
  247. package/dist/index-BcSuns5b.js +46 -0
  248. package/dist/index-BcSuns5b.js.map +1 -0
  249. package/dist/index-BpXo_FjW.js +17058 -0
  250. package/dist/index-BpXo_FjW.js.map +1 -0
  251. package/dist/index-CJMug46v.js +72 -0
  252. package/dist/index-CJMug46v.js.map +1 -0
  253. package/dist/index-CPSyJe2a.js +63 -0
  254. package/dist/index-CPSyJe2a.js.map +1 -0
  255. package/dist/index-CxXN32qg.js +46 -0
  256. package/dist/index-CxXN32qg.js.map +1 -0
  257. package/dist/index-DqkDSVr0.js +63 -0
  258. package/dist/index-DqkDSVr0.js.map +1 -0
  259. package/dist/index.d.ts +22 -0
  260. package/dist/index.d.ts.map +1 -0
  261. package/dist/index.js +87 -0
  262. package/dist/index.js.map +1 -0
  263. package/dist/is-Crat4bPr.js +50 -0
  264. package/dist/is-Crat4bPr.js.map +1 -0
  265. package/dist/it-CA9ooIqN.js +42 -0
  266. package/dist/it-CA9ooIqN.js.map +1 -0
  267. package/dist/ja-Bfx12C7X.js +44 -0
  268. package/dist/ja-Bfx12C7X.js.map +1 -0
  269. package/dist/jv-DXlRCux6.js +42 -0
  270. package/dist/jv-DXlRCux6.js.map +1 -0
  271. package/dist/ka-BS5GvTRN.js +42 -0
  272. package/dist/ka-BS5GvTRN.js.map +1 -0
  273. package/dist/kk-BRHA3Lmp.js +42 -0
  274. package/dist/kk-BRHA3Lmp.js.map +1 -0
  275. package/dist/km-DSsGjrkI.js +42 -0
  276. package/dist/km-DSsGjrkI.js.map +1 -0
  277. package/dist/kn-XdKuARlN.js +42 -0
  278. package/dist/kn-XdKuARlN.js.map +1 -0
  279. package/dist/ko-ByUCowNk.js +44 -0
  280. package/dist/ko-ByUCowNk.js.map +1 -0
  281. package/dist/ku-B0nl0i-z.js +52 -0
  282. package/dist/ku-B0nl0i-z.js.map +1 -0
  283. package/dist/ky-dK3a_rjc.js +42 -0
  284. package/dist/ky-dK3a_rjc.js.map +1 -0
  285. package/dist/lb-Bmmf1loS.js +42 -0
  286. package/dist/lb-Bmmf1loS.js.map +1 -0
  287. package/dist/lines.utils-CFEUUo4k.js +40 -0
  288. package/dist/lines.utils-CFEUUo4k.js.map +1 -0
  289. package/dist/lo-BEZDZcIe.js +42 -0
  290. package/dist/lo-BEZDZcIe.js.map +1 -0
  291. package/dist/lt-BsaPsRFg.js +46 -0
  292. package/dist/lt-BsaPsRFg.js.map +1 -0
  293. package/dist/lv-JAiyIS1p.js +42 -0
  294. package/dist/lv-JAiyIS1p.js.map +1 -0
  295. package/dist/me-CeO1grzQ.js +42 -0
  296. package/dist/me-CeO1grzQ.js.map +1 -0
  297. package/dist/mergician.esm-CIFzMAK7.js +395 -0
  298. package/dist/mergician.esm-CIFzMAK7.js.map +1 -0
  299. package/dist/mi-DA8p3mOu.js +42 -0
  300. package/dist/mi-DA8p3mOu.js.map +1 -0
  301. package/dist/mk-CxB2TOH9.js +42 -0
  302. package/dist/mk-CxB2TOH9.js.map +1 -0
  303. package/dist/ml-BcvGZKGp.js +42 -0
  304. package/dist/ml-BcvGZKGp.js.map +1 -0
  305. package/dist/mn-C0kml-28.js +42 -0
  306. package/dist/mn-C0kml-28.js.map +1 -0
  307. package/dist/mr-kCrsv4XA.js +42 -0
  308. package/dist/mr-kCrsv4XA.js.map +1 -0
  309. package/dist/ms-DEqH2OlK.js +42 -0
  310. package/dist/ms-DEqH2OlK.js.map +1 -0
  311. package/dist/mt-CWmBtkRv.js +42 -0
  312. package/dist/mt-CWmBtkRv.js.map +1 -0
  313. package/dist/my-ByKCYiQK.js +42 -0
  314. package/dist/my-ByKCYiQK.js.map +1 -0
  315. package/dist/nb-BVxYWrs6.js +42 -0
  316. package/dist/nb-BVxYWrs6.js.map +1 -0
  317. package/dist/ne-CBcGkZE8.js +44 -0
  318. package/dist/ne-CBcGkZE8.js.map +1 -0
  319. package/dist/nl-Dq8C_-yW.js +42 -0
  320. package/dist/nl-Dq8C_-yW.js.map +1 -0
  321. package/dist/nn-DP4qtXLW.js +42 -0
  322. package/dist/nn-DP4qtXLW.js.map +1 -0
  323. package/dist/object.utils-D_Zzon-H.js +37 -0
  324. package/dist/object.utils-D_Zzon-H.js.map +1 -0
  325. package/dist/pies.utils-DbzeVrCQ.js +73 -0
  326. package/dist/pies.utils-DbzeVrCQ.js.map +1 -0
  327. package/dist/pl-CyKSJskL.js +67 -0
  328. package/dist/pl-CyKSJskL.js.map +1 -0
  329. package/dist/pt-BLEe0Ejm.js +42 -0
  330. package/dist/pt-BLEe0Ejm.js.map +1 -0
  331. package/dist/quarterOfYear-C0maIilJ.js +68 -0
  332. package/dist/quarterOfYear-C0maIilJ.js.map +1 -0
  333. package/dist/remarkable-pro.css +446 -0
  334. package/dist/ro-CwdOEcKy.js +42 -0
  335. package/dist/ro-CwdOEcKy.js.map +1 -0
  336. package/dist/ru-Bl9u9Jzr.js +57 -0
  337. package/dist/ru-Bl9u9Jzr.js.map +1 -0
  338. package/dist/rw-Ci515v3C.js +42 -0
  339. package/dist/rw-Ci515v3C.js.map +1 -0
  340. package/dist/sd-BdrHBFln.js +42 -0
  341. package/dist/sd-BdrHBFln.js.map +1 -0
  342. package/dist/se-D8wyrag1.js +42 -0
  343. package/dist/se-D8wyrag1.js.map +1 -0
  344. package/dist/si-AyRZ5TEx.js +42 -0
  345. package/dist/si-AyRZ5TEx.js.map +1 -0
  346. package/dist/sk-CRQNIKoX.js +73 -0
  347. package/dist/sk-CRQNIKoX.js.map +1 -0
  348. package/dist/sl-CDxi2Mlk.js +76 -0
  349. package/dist/sl-CDxi2Mlk.js.map +1 -0
  350. package/dist/sq-DsU4BTs1.js +42 -0
  351. package/dist/sq-DsU4BTs1.js.map +1 -0
  352. package/dist/sr-DXt91IDQ.js +49 -0
  353. package/dist/sr-DXt91IDQ.js.map +1 -0
  354. package/dist/ss-BW3vUXw_.js +42 -0
  355. package/dist/ss-BW3vUXw_.js.map +1 -0
  356. package/dist/sv-D_akb-mL.js +43 -0
  357. package/dist/sv-D_akb-mL.js.map +1 -0
  358. package/dist/sw-Mk3XuEkK.js +42 -0
  359. package/dist/sw-Mk3XuEkK.js.map +1 -0
  360. package/dist/ta-x7qrmNJV.js +42 -0
  361. package/dist/ta-x7qrmNJV.js.map +1 -0
  362. package/dist/te-DNPXq9GN.js +42 -0
  363. package/dist/te-DNPXq9GN.js.map +1 -0
  364. package/dist/tet-Bxdba6c9.js +42 -0
  365. package/dist/tet-Bxdba6c9.js.map +1 -0
  366. package/dist/tg-BNcteXJP.js +42 -0
  367. package/dist/tg-BNcteXJP.js.map +1 -0
  368. package/dist/th-t8Wqywbq.js +42 -0
  369. package/dist/th-t8Wqywbq.js.map +1 -0
  370. package/dist/theme/defaults/defaults.ChartCardMenu.constants.d.ts +17 -0
  371. package/dist/theme/defaults/defaults.ChartCardMenu.constants.d.ts.map +1 -0
  372. package/dist/theme/defaults/defaults.ComparisonPeriods.constants.d.ts +9 -0
  373. package/dist/theme/defaults/defaults.ComparisonPeriods.constants.d.ts.map +1 -0
  374. package/dist/theme/defaults/defaults.DateRanges.constants.d.ts +9 -0
  375. package/dist/theme/defaults/defaults.DateRanges.constants.d.ts.map +1 -0
  376. package/dist/theme/formatter/formatter.constants.d.ts +3 -0
  377. package/dist/theme/formatter/formatter.constants.d.ts.map +1 -0
  378. package/dist/theme/formatter/formatter.types.d.ts +20 -0
  379. package/dist/theme/formatter/formatter.types.d.ts.map +1 -0
  380. package/dist/theme/formatter/formatter.utils.d.ts +11 -0
  381. package/dist/theme/formatter/formatter.utils.d.ts.map +1 -0
  382. package/dist/theme/i18n/i18n.d.ts +5 -0
  383. package/dist/theme/i18n/i18n.d.ts.map +1 -0
  384. package/dist/theme/i18n/translations/de.d.ts +3 -0
  385. package/dist/theme/i18n/translations/de.d.ts.map +1 -0
  386. package/dist/theme/i18n/translations/en.d.ts +3 -0
  387. package/dist/theme/i18n/translations/en.d.ts.map +1 -0
  388. package/dist/theme/styles/styles.constants.d.ts +2 -0
  389. package/dist/theme/styles/styles.constants.d.ts.map +1 -0
  390. package/dist/theme/styles/styles.types.d.ts +3 -0
  391. package/dist/theme/styles/styles.types.d.ts.map +1 -0
  392. package/dist/theme/styles/styles.utils.d.ts +3 -0
  393. package/dist/theme/styles/styles.utils.d.ts.map +1 -0
  394. package/dist/theme/theme.constants.d.ts +3 -0
  395. package/dist/theme/theme.constants.d.ts.map +1 -0
  396. package/dist/theme/theme.types.d.ts +66 -0
  397. package/dist/theme/theme.types.d.ts.map +1 -0
  398. package/dist/theme/utils/export.utils.d.ts +5 -0
  399. package/dist/theme/utils/export.utils.d.ts.map +1 -0
  400. package/dist/timeRange.utils-B3BJBCvs.js +20 -0
  401. package/dist/timeRange.utils-B3BJBCvs.js.map +1 -0
  402. package/dist/tk-BuKvHjlY.js +42 -0
  403. package/dist/tk-BuKvHjlY.js.map +1 -0
  404. package/dist/tlh-CagUFrkt.js +42 -0
  405. package/dist/tlh-CagUFrkt.js.map +1 -0
  406. package/dist/tr-ZRnpYGmZ.js +42 -0
  407. package/dist/tr-ZRnpYGmZ.js.map +1 -0
  408. package/dist/types/deep-partial.d.ts +4 -0
  409. package/dist/types/deep-partial.d.ts.map +1 -0
  410. package/dist/tzl-CgmSGZCN.js +42 -0
  411. package/dist/tzl-CgmSGZCN.js.map +1 -0
  412. package/dist/tzm-BiSbQpig.js +42 -0
  413. package/dist/tzm-BiSbQpig.js.map +1 -0
  414. package/dist/uk-D_o7bSHT.js +51 -0
  415. package/dist/uk-D_o7bSHT.js.map +1 -0
  416. package/dist/ur-D71_hrXh.js +42 -0
  417. package/dist/ur-D71_hrXh.js.map +1 -0
  418. package/dist/utc-B2gCnkBk.js +367 -0
  419. package/dist/utc-B2gCnkBk.js.map +1 -0
  420. package/dist/utils.ts/cache.utils.d.ts +6 -0
  421. package/dist/utils.ts/cache.utils.d.ts.map +1 -0
  422. package/dist/utils.ts/color.utils.d.ts +3 -0
  423. package/dist/utils.ts/color.utils.d.ts.map +1 -0
  424. package/dist/utils.ts/data.utils.d.ts +2 -0
  425. package/dist/utils.ts/data.utils.d.ts.map +1 -0
  426. package/dist/utils.ts/date.utils.d.ts +8 -0
  427. package/dist/utils.ts/date.utils.d.ts.map +1 -0
  428. package/dist/utils.ts/object.utils.d.ts +2 -0
  429. package/dist/utils.ts/object.utils.d.ts.map +1 -0
  430. package/dist/uz-DJly2bV5.js +42 -0
  431. package/dist/uz-DJly2bV5.js.map +1 -0
  432. package/dist/vi-gIuBEDjl.js +42 -0
  433. package/dist/vi-gIuBEDjl.js.map +1 -0
  434. package/dist/x-pseudo-BY0BZL5O.js +42 -0
  435. package/dist/x-pseudo-BY0BZL5O.js.map +1 -0
  436. package/dist/yo-BPEpwjuC.js +42 -0
  437. package/dist/yo-BPEpwjuC.js.map +1 -0
  438. package/dist/zh-cn-Dg913EDW.js +45 -0
  439. package/dist/zh-cn-Dg913EDW.js.map +1 -0
  440. package/dist/zh-hk-RGAfh362.js +45 -0
  441. package/dist/zh-hk-RGAfh362.js.map +1 -0
  442. package/dist/zh-tw-B-s9oDuW.js +45 -0
  443. package/dist/zh-tw-B-s9oDuW.js.map +1 -0
  444. package/package.json +100 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.utils-CVyp-fGP.js","sources":["../node_modules/chroma-js/src/utils/limit.js","../node_modules/chroma-js/src/utils/clip_rgb.js","../node_modules/chroma-js/src/utils/type.js","../node_modules/chroma-js/src/utils/unpack.js","../node_modules/chroma-js/src/utils/last.js","../node_modules/chroma-js/src/utils/index.js","../node_modules/chroma-js/src/io/input.js","../node_modules/chroma-js/src/Color.js","../node_modules/chroma-js/src/version.js","../node_modules/chroma-js/src/chroma.js","../node_modules/chroma-js/src/colors/w3cx11.js","../node_modules/chroma-js/src/io/hex/hex2rgb.js","../node_modules/chroma-js/src/io/hex/rgb2hex.js","../node_modules/chroma-js/src/io/named/index.js","../node_modules/chroma-js/src/ops/alpha.js","../node_modules/chroma-js/src/ops/clipped.js","../node_modules/chroma-js/src/io/lab/lab-constants.js","../node_modules/chroma-js/src/io/lab/lab2rgb.js","../node_modules/chroma-js/src/io/lab/rgb2lab.js","../node_modules/chroma-js/src/io/lab/index.js","../node_modules/chroma-js/src/ops/darken.js","../node_modules/chroma-js/src/ops/get.js","../node_modules/chroma-js/src/ops/luminance.js","../node_modules/chroma-js/src/interpolator/index.js","../node_modules/chroma-js/src/generator/mix.js","../node_modules/chroma-js/src/ops/mix.js","../node_modules/chroma-js/src/ops/premultiply.js","../node_modules/chroma-js/src/io/lch/lch2lab.js","../node_modules/chroma-js/src/io/lch/lch2rgb.js","../node_modules/chroma-js/src/io/lch/hcl2rgb.js","../node_modules/chroma-js/src/io/lch/lab2lch.js","../node_modules/chroma-js/src/io/lch/rgb2lch.js","../node_modules/chroma-js/src/io/lch/index.js","../node_modules/chroma-js/src/ops/saturate.js","../node_modules/chroma-js/src/ops/set.js","../node_modules/chroma-js/src/ops/shade.js","../node_modules/chroma-js/src/interpolator/rgb.js","../node_modules/chroma-js/src/interpolator/lrgb.js","../node_modules/chroma-js/src/interpolator/lab.js","../node_modules/chroma-js/src/interpolator/_hsx.js","../node_modules/chroma-js/src/interpolator/lch.js","../node_modules/chroma-js/src/io/num/num2rgb.js","../node_modules/chroma-js/src/io/num/rgb2num.js","../node_modules/chroma-js/src/io/num/index.js","../node_modules/chroma-js/src/interpolator/num.js","../node_modules/chroma-js/src/io/hcg/hcg2rgb.js","../node_modules/chroma-js/src/io/hcg/rgb2hcg.js","../node_modules/chroma-js/src/io/hcg/index.js","../node_modules/chroma-js/src/interpolator/hcg.js","../node_modules/chroma-js/src/io/hsi/hsi2rgb.js","../node_modules/chroma-js/src/io/hsi/rgb2hsi.js","../node_modules/chroma-js/src/io/hsi/index.js","../node_modules/chroma-js/src/interpolator/hsi.js","../node_modules/chroma-js/src/io/hsl/hsl2rgb.js","../node_modules/chroma-js/src/io/hsl/rgb2hsl.js","../node_modules/chroma-js/src/io/hsl/index.js","../node_modules/chroma-js/src/interpolator/hsl.js","../node_modules/chroma-js/src/io/hsv/hsv2rgb.js","../node_modules/chroma-js/src/io/hsv/rgb2hsv.js","../node_modules/chroma-js/src/io/hsv/index.js","../node_modules/chroma-js/src/interpolator/hsv.js","../node_modules/chroma-js/src/utils/multiply-matrices.js","../node_modules/chroma-js/src/io/oklab/oklab2rgb.js","../node_modules/chroma-js/src/io/oklab/rgb2oklab.js","../node_modules/chroma-js/src/io/oklab/index.js","../node_modules/chroma-js/src/interpolator/oklab.js","../node_modules/chroma-js/src/interpolator/oklch.js","../node_modules/chroma-js/src/generator/average.js","../node_modules/chroma-js/src/generator/scale.js","../node_modules/chroma-js/src/generator/bezier.js","../node_modules/chroma-js/src/io/rgb/index.js","../node_modules/chroma-js/src/generator/blend.js","../node_modules/chroma-js/src/generator/cubehelix.js","../node_modules/chroma-js/src/generator/random.js","../node_modules/chroma-js/src/utils/analyze.js","../node_modules/chroma-js/src/utils/contrast.js","../node_modules/chroma-js/src/utils/contrastAPCA.js","../node_modules/chroma-js/src/utils/delta-e.js","../node_modules/chroma-js/src/utils/distance.js","../node_modules/chroma-js/src/utils/valid.js","../node_modules/chroma-js/src/utils/scales.js","../node_modules/chroma-js/src/colors/colorbrewer.js","../node_modules/chroma-js/src/io/cmyk/cmyk2rgb.js","../node_modules/chroma-js/src/io/cmyk/rgb2cmyk.js","../node_modules/chroma-js/src/io/cmyk/index.js","../node_modules/chroma-js/src/io/css/hsl2css.js","../node_modules/chroma-js/src/io/css/lab2css.js","../node_modules/chroma-js/src/io/css/lch2css.js","../node_modules/chroma-js/src/io/css/oklab2css.js","../node_modules/chroma-js/src/io/oklch/rgb2oklch.js","../node_modules/chroma-js/src/io/css/oklch2css.js","../node_modules/chroma-js/src/io/css/rgb2css.js","../node_modules/chroma-js/src/io/oklch/oklch2rgb.js","../node_modules/chroma-js/src/io/css/css2rgb.js","../node_modules/chroma-js/src/io/css/index.js","../node_modules/chroma-js/src/io/gl/index.js","../node_modules/chroma-js/src/io/hex/index.js","../node_modules/chroma-js/src/io/temp/temperature2rgb.js","../node_modules/chroma-js/src/io/temp/rgb2temperature.js","../node_modules/chroma-js/src/io/temp/index.js","../node_modules/chroma-js/src/io/oklch/index.js","../node_modules/chroma-js/index.js","../src/utils.ts/color.utils.ts"],"sourcesContent":["const { min, max } = Math;\n\nexport default (x, low = 0, high = 1) => {\n return min(max(low, x), high);\n};\n","import limit from './limit.js';\n\nexport default (rgb) => {\n rgb._clipped = false;\n rgb._unclipped = rgb.slice(0);\n for (let i = 0; i <= 3; i++) {\n if (i < 3) {\n if (rgb[i] < 0 || rgb[i] > 255) rgb._clipped = true;\n rgb[i] = limit(rgb[i], 0, 255);\n } else if (i === 3) {\n rgb[i] = limit(rgb[i], 0, 1);\n }\n }\n return rgb;\n};\n","// ported from jQuery's $.type\nconst classToType = {};\nfor (let name of [\n 'Boolean',\n 'Number',\n 'String',\n 'Function',\n 'Array',\n 'Date',\n 'RegExp',\n 'Undefined',\n 'Null'\n]) {\n classToType[`[object ${name}]`] = name.toLowerCase();\n}\nexport default function (obj) {\n return classToType[Object.prototype.toString.call(obj)] || 'object';\n}\n","import type from './type.js';\n\nexport default (args, keyOrder = null) => {\n // if called with more than 3 arguments, we return the arguments\n if (args.length >= 3) return Array.prototype.slice.call(args);\n // with less than 3 args we check if first arg is object\n // and use the keyOrder string to extract and sort properties\n if (type(args[0]) == 'object' && keyOrder) {\n return keyOrder\n .split('')\n .filter((k) => args[0][k] !== undefined)\n .map((k) => args[0][k]);\n }\n // otherwise we just return the first argument\n // (which we suppose is an array of args)\n return args[0].slice(0);\n};\n","import type from './type.js';\n\nexport default (args) => {\n if (args.length < 2) return null;\n const l = args.length - 1;\n if (type(args[l]) == 'string') return args[l].toLowerCase();\n return null;\n};\n","const { PI, min, max } = Math;\n\nconst rnd2 = (a) => Math.round(a * 100) / 100;\nconst rnd3 = (a) => Math.round(a * 100) / 100;\n\nexport { default as clip_rgb } from './clip_rgb.js';\nexport { default as limit } from './limit.js';\nexport { default as type } from './type.js';\nexport { default as unpack } from './unpack.js';\nexport { default as last } from './last.js';\n\nconst TWOPI = PI * 2;\nconst PITHIRD = PI / 3;\nconst DEG2RAD = PI / 180;\nconst RAD2DEG = 180 / PI;\n\n/**\n * Reverse the first three elements of an array\n *\n * @param {any[]} arr\n * @returns {any[]}\n */\nfunction reverse3(arr) {\n return [...arr.slice(0, 3).reverse(), ...arr.slice(3)];\n}\n\nexport { PI, TWOPI, PITHIRD, DEG2RAD, RAD2DEG, min, max, rnd2, rnd3, reverse3 };\n","export default {\n format: {},\n autodetect: []\n};\n","import { last, clip_rgb, type } from './utils/index.js';\nimport _input from './io/input.js';\n\nclass Color {\n constructor(...args) {\n const me = this;\n if (\n type(args[0]) === 'object' &&\n args[0].constructor &&\n args[0].constructor === this.constructor\n ) {\n // the argument is already a Color instance\n return args[0];\n }\n // last argument could be the mode\n let mode = last(args);\n let autodetect = false;\n if (!mode) {\n autodetect = true;\n\n if (!_input.sorted) {\n _input.autodetect = _input.autodetect.sort((a, b) => b.p - a.p);\n _input.sorted = true;\n }\n\n // auto-detect format\n for (let chk of _input.autodetect) {\n mode = chk.test(...args);\n if (mode) break;\n }\n }\n if (_input.format[mode]) {\n const rgb = _input.format[mode].apply(\n null,\n autodetect ? args : args.slice(0, -1)\n );\n me._rgb = clip_rgb(rgb);\n } else {\n throw new Error('unknown format: ' + args);\n }\n // add alpha channel\n if (me._rgb.length === 3) me._rgb.push(1);\n }\n toString() {\n if (type(this.hex) == 'function') return this.hex();\n return `[${this._rgb.join(',')}]`;\n }\n}\nexport default Color;\n","// this gets updated automatically\nexport const version = '3.1.2';\n","import Color from './Color.js';\nimport { version } from './version.js';\n\nconst chroma = (...args) => {\n return new Color(...args);\n};\n\nchroma.version = version;\n\nexport default chroma;\n","/**\n\tX11 color names\n\n\thttp://www.w3.org/TR/css3-color/#svg-color\n*/\n\nconst w3cx11 = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n gold: '#ffd700',\n goldenrod: '#daa520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n laserlemon: '#ffff54',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrod: '#fafad2',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n maroon2: '#7f0000',\n maroon3: '#b03060',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n purple2: '#7f007f',\n purple3: '#a020f0',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32'\n};\n\nexport default w3cx11;\n","const RE_HEX = /^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\nconst RE_HEXA = /^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/;\n\nconst hex2rgb = (hex) => {\n if (hex.match(RE_HEX)) {\n // remove optional leading #\n if (hex.length === 4 || hex.length === 7) {\n hex = hex.substr(1);\n }\n // expand short-notation to full six-digit\n if (hex.length === 3) {\n hex = hex.split('');\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n const u = parseInt(hex, 16);\n const r = u >> 16;\n const g = (u >> 8) & 0xff;\n const b = u & 0xff;\n return [r, g, b, 1];\n }\n\n // match rgba hex format, eg #FF000077\n if (hex.match(RE_HEXA)) {\n if (hex.length === 5 || hex.length === 9) {\n // remove optional leading #\n hex = hex.substr(1);\n }\n // expand short-notation to full eight-digit\n if (hex.length === 4) {\n hex = hex.split('');\n hex =\n hex[0] +\n hex[0] +\n hex[1] +\n hex[1] +\n hex[2] +\n hex[2] +\n hex[3] +\n hex[3];\n }\n const u = parseInt(hex, 16);\n const r = (u >> 24) & 0xff;\n const g = (u >> 16) & 0xff;\n const b = (u >> 8) & 0xff;\n const a = Math.round(((u & 0xff) / 0xff) * 100) / 100;\n return [r, g, b, a];\n }\n\n // we used to check for css colors here\n // if _input.css? and rgb = _input.css hex\n // return rgb\n\n throw new Error(`unknown hex color: ${hex}`);\n};\n\nexport default hex2rgb;\n","import { unpack, last } from '../../utils/index.js';\nconst { round } = Math;\n\nconst rgb2hex = (...args) => {\n let [r, g, b, a] = unpack(args, 'rgba');\n let mode = last(args) || 'auto';\n if (a === undefined) a = 1;\n if (mode === 'auto') {\n mode = a < 1 ? 'rgba' : 'rgb';\n }\n r = round(r);\n g = round(g);\n b = round(b);\n const u = (r << 16) | (g << 8) | b;\n let str = '000000' + u.toString(16); //#.toUpperCase();\n str = str.substr(str.length - 6);\n let hxa = '0' + round(a * 255).toString(16);\n hxa = hxa.substr(hxa.length - 2);\n switch (mode.toLowerCase()) {\n case 'rgba':\n return `#${str}${hxa}`;\n case 'argb':\n return `#${hxa}${str}`;\n default:\n return `#${str}`;\n }\n};\n\nexport default rgb2hex;\n","import Color from '../../Color.js';\nimport input from '../input.js';\nimport { type } from '../../utils/index.js';\n\nimport w3cx11 from '../../colors/w3cx11.js';\nimport hex2rgb from '../hex/hex2rgb.js';\nimport rgb2hex from '../hex/rgb2hex.js';\n\nColor.prototype.name = function () {\n const hex = rgb2hex(this._rgb, 'rgb');\n for (let n of Object.keys(w3cx11)) {\n if (w3cx11[n] === hex) return n.toLowerCase();\n }\n return hex;\n};\n\ninput.format.named = (name) => {\n name = name.toLowerCase();\n if (w3cx11[name]) return hex2rgb(w3cx11[name]);\n throw new Error('unknown color name: ' + name);\n};\n\ninput.autodetect.push({\n p: 5,\n test: (h, ...rest) => {\n if (!rest.length && type(h) === 'string' && w3cx11[h.toLowerCase()]) {\n return 'named';\n }\n }\n});\n","import Color from '../Color.js';\nimport { type } from '../utils/index.js';\n\nColor.prototype.alpha = function (a, mutate = false) {\n if (a !== undefined && type(a) === 'number') {\n if (mutate) {\n this._rgb[3] = a;\n return this;\n }\n return new Color([this._rgb[0], this._rgb[1], this._rgb[2], a], 'rgb');\n }\n return this._rgb[3];\n};\n","import Color from '../Color.js';\n\nColor.prototype.clipped = function () {\n return this._rgb._clipped || false;\n};\n","const labConstants = {\n // Corresponds roughly to RGB brighter/darker\n Kn: 18,\n\n // D65 standard referent\n labWhitePoint: 'd65',\n Xn: 0.95047,\n Yn: 1,\n Zn: 1.08883,\n\n t0: 0.137931034, // 4 / 29\n t1: 0.206896552, // 6 / 29\n t2: 0.12841855, // 3 * t1 * t1\n t3: 0.008856452, // t1 * t1 * t1,\n\n kE: 216.0 / 24389.0,\n kKE: 8.0,\n kK: 24389.0 / 27.0,\n\n RefWhiteRGB: {\n // sRGB\n X: 0.95047,\n Y: 1,\n Z: 1.08883\n },\n\n MtxRGB2XYZ: {\n m00: 0.4124564390896922,\n m01: 0.21267285140562253,\n m02: 0.0193338955823293,\n m10: 0.357576077643909,\n m11: 0.715152155287818,\n m12: 0.11919202588130297,\n m20: 0.18043748326639894,\n m21: 0.07217499330655958,\n m22: 0.9503040785363679\n },\n\n MtxXYZ2RGB: {\n m00: 3.2404541621141045,\n m01: -0.9692660305051868,\n m02: 0.055643430959114726,\n m10: -1.5371385127977166,\n m11: 1.8760108454466942,\n m12: -0.2040259135167538,\n m20: -0.498531409556016,\n m21: 0.041556017530349834,\n m22: 1.0572251882231791\n },\n\n // used in rgb2xyz\n As: 0.9414285350000001,\n Bs: 1.040417467,\n Cs: 1.089532651,\n\n MtxAdaptMa: {\n m00: 0.8951,\n m01: -0.7502,\n m02: 0.0389,\n m10: 0.2664,\n m11: 1.7135,\n m12: -0.0685,\n m20: -0.1614,\n m21: 0.0367,\n m22: 1.0296\n },\n\n MtxAdaptMaI: {\n m00: 0.9869929054667123,\n m01: 0.43230526972339456,\n m02: -0.008528664575177328,\n m10: -0.14705425642099013,\n m11: 0.5183602715367776,\n m12: 0.04004282165408487,\n m20: 0.15996265166373125,\n m21: 0.0492912282128556,\n m22: 0.9684866957875502\n }\n};\n\nexport default labConstants;\n\n// taken from https://de.mathworks.com/help/images/ref/whitepoint.html\nconst ILLUMINANTS = new Map([\n // ASTM E308-01\n ['a', [1.0985, 0.35585]],\n // Wyszecki & Stiles, p. 769\n ['b', [1.0985, 0.35585]],\n // C ASTM E308-01\n ['c', [0.98074, 1.18232]],\n // D50 (ASTM E308-01)\n ['d50', [0.96422, 0.82521]],\n // D55 (ASTM E308-01)\n ['d55', [0.95682, 0.92149]],\n // D65 (ASTM E308-01)\n ['d65', [0.95047, 1.08883]],\n // E (ASTM E308-01)\n ['e', [1, 1, 1]],\n // F2 (ASTM E308-01)\n ['f2', [0.99186, 0.67393]],\n // F7 (ASTM E308-01)\n ['f7', [0.95041, 1.08747]],\n // F11 (ASTM E308-01)\n ['f11', [1.00962, 0.6435]],\n ['icc', [0.96422, 0.82521]]\n]);\n\nexport function setLabWhitePoint(name) {\n const ill = ILLUMINANTS.get(String(name).toLowerCase());\n if (!ill) {\n throw new Error('unknown Lab illuminant ' + name);\n }\n labConstants.labWhitePoint = name;\n labConstants.Xn = ill[0];\n labConstants.Zn = ill[1];\n}\n\nexport function getLabWhitePoint() {\n return labConstants.labWhitePoint;\n}\n","import LAB_CONSTANTS from './lab-constants.js';\nimport { unpack } from '../../utils/index.js';\n\n/*\n * L* [0..100]\n * a [-100..100]\n * b [-100..100]\n */\nconst lab2rgb = (...args) => {\n args = unpack(args, 'lab');\n const [L, a, b] = args;\n const [x, y, z] = lab2xyz(L, a, b);\n const [r, g, b_] = xyz2rgb(x, y, z);\n return [r, g, b_, args.length > 3 ? args[3] : 1];\n};\n\nconst lab2xyz = (L, a, b) => {\n const { kE, kK, kKE, Xn, Yn, Zn } = LAB_CONSTANTS;\n\n const fy = (L + 16.0) / 116.0;\n const fx = 0.002 * a + fy;\n const fz = fy - 0.005 * b;\n\n const fx3 = fx * fx * fx;\n const fz3 = fz * fz * fz;\n\n const xr = fx3 > kE ? fx3 : (116.0 * fx - 16.0) / kK;\n const yr = L > kKE ? Math.pow((L + 16.0) / 116.0, 3.0) : L / kK;\n const zr = fz3 > kE ? fz3 : (116.0 * fz - 16.0) / kK;\n\n const x = xr * Xn;\n const y = yr * Yn;\n const z = zr * Zn;\n\n return [x, y, z];\n};\n\nconst compand = (linear) => {\n /* sRGB */\n const sign = Math.sign(linear);\n linear = Math.abs(linear);\n return (\n (linear <= 0.0031308\n ? linear * 12.92\n : 1.055 * Math.pow(linear, 1.0 / 2.4) - 0.055) * sign\n );\n};\n\nconst xyz2rgb = (x, y, z) => {\n const { MtxAdaptMa, MtxAdaptMaI, MtxXYZ2RGB, RefWhiteRGB, Xn, Yn, Zn } =\n LAB_CONSTANTS;\n\n const As = Xn * MtxAdaptMa.m00 + Yn * MtxAdaptMa.m10 + Zn * MtxAdaptMa.m20;\n const Bs = Xn * MtxAdaptMa.m01 + Yn * MtxAdaptMa.m11 + Zn * MtxAdaptMa.m21;\n const Cs = Xn * MtxAdaptMa.m02 + Yn * MtxAdaptMa.m12 + Zn * MtxAdaptMa.m22;\n\n const Ad =\n RefWhiteRGB.X * MtxAdaptMa.m00 +\n RefWhiteRGB.Y * MtxAdaptMa.m10 +\n RefWhiteRGB.Z * MtxAdaptMa.m20;\n const Bd =\n RefWhiteRGB.X * MtxAdaptMa.m01 +\n RefWhiteRGB.Y * MtxAdaptMa.m11 +\n RefWhiteRGB.Z * MtxAdaptMa.m21;\n const Cd =\n RefWhiteRGB.X * MtxAdaptMa.m02 +\n RefWhiteRGB.Y * MtxAdaptMa.m12 +\n RefWhiteRGB.Z * MtxAdaptMa.m22;\n\n const X1 =\n (x * MtxAdaptMa.m00 + y * MtxAdaptMa.m10 + z * MtxAdaptMa.m20) *\n (Ad / As);\n const Y1 =\n (x * MtxAdaptMa.m01 + y * MtxAdaptMa.m11 + z * MtxAdaptMa.m21) *\n (Bd / Bs);\n const Z1 =\n (x * MtxAdaptMa.m02 + y * MtxAdaptMa.m12 + z * MtxAdaptMa.m22) *\n (Cd / Cs);\n\n const X2 =\n X1 * MtxAdaptMaI.m00 + Y1 * MtxAdaptMaI.m10 + Z1 * MtxAdaptMaI.m20;\n const Y2 =\n X1 * MtxAdaptMaI.m01 + Y1 * MtxAdaptMaI.m11 + Z1 * MtxAdaptMaI.m21;\n const Z2 =\n X1 * MtxAdaptMaI.m02 + Y1 * MtxAdaptMaI.m12 + Z1 * MtxAdaptMaI.m22;\n\n const r = compand(\n X2 * MtxXYZ2RGB.m00 + Y2 * MtxXYZ2RGB.m10 + Z2 * MtxXYZ2RGB.m20\n );\n const g = compand(\n X2 * MtxXYZ2RGB.m01 + Y2 * MtxXYZ2RGB.m11 + Z2 * MtxXYZ2RGB.m21\n );\n const b = compand(\n X2 * MtxXYZ2RGB.m02 + Y2 * MtxXYZ2RGB.m12 + Z2 * MtxXYZ2RGB.m22\n );\n\n return [r * 255, g * 255, b * 255];\n};\n\nexport default lab2rgb;\nexport { xyz2rgb };\n","import LAB_CONSTANTS from './lab-constants.js';\nimport { unpack } from '../../utils/index.js';\n\nconst rgb2lab = (...args) => {\n const [r, g, b, ...rest] = unpack(args, 'rgb');\n const [x, y, z] = rgb2xyz(r, g, b);\n const [L, a, b_] = xyz2lab(x, y, z);\n return [L, a, b_, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\nfunction xyz2lab(x, y, z) {\n const { Xn, Yn, Zn, kE, kK } = LAB_CONSTANTS;\n const xr = x / Xn;\n const yr = y / Yn;\n const zr = z / Zn;\n\n const fx = xr > kE ? Math.pow(xr, 1.0 / 3.0) : (kK * xr + 16.0) / 116.0;\n const fy = yr > kE ? Math.pow(yr, 1.0 / 3.0) : (kK * yr + 16.0) / 116.0;\n const fz = zr > kE ? Math.pow(zr, 1.0 / 3.0) : (kK * zr + 16.0) / 116.0;\n\n return [116.0 * fy - 16.0, 500.0 * (fx - fy), 200.0 * (fy - fz)];\n}\n\nfunction gammaAdjustSRGB(companded) {\n const sign = Math.sign(companded);\n companded = Math.abs(companded);\n const linear =\n companded <= 0.04045\n ? companded / 12.92\n : Math.pow((companded + 0.055) / 1.055, 2.4);\n return linear * sign;\n}\n\nconst rgb2xyz = (r, g, b) => {\n // normalize and gamma adjust\n r = gammaAdjustSRGB(r / 255);\n g = gammaAdjustSRGB(g / 255);\n b = gammaAdjustSRGB(b / 255);\n\n const { MtxRGB2XYZ, MtxAdaptMa, MtxAdaptMaI, Xn, Yn, Zn, As, Bs, Cs } =\n LAB_CONSTANTS;\n\n let x = r * MtxRGB2XYZ.m00 + g * MtxRGB2XYZ.m10 + b * MtxRGB2XYZ.m20;\n let y = r * MtxRGB2XYZ.m01 + g * MtxRGB2XYZ.m11 + b * MtxRGB2XYZ.m21;\n let z = r * MtxRGB2XYZ.m02 + g * MtxRGB2XYZ.m12 + b * MtxRGB2XYZ.m22;\n\n const Ad = Xn * MtxAdaptMa.m00 + Yn * MtxAdaptMa.m10 + Zn * MtxAdaptMa.m20;\n const Bd = Xn * MtxAdaptMa.m01 + Yn * MtxAdaptMa.m11 + Zn * MtxAdaptMa.m21;\n const Cd = Xn * MtxAdaptMa.m02 + Yn * MtxAdaptMa.m12 + Zn * MtxAdaptMa.m22;\n\n let X = x * MtxAdaptMa.m00 + y * MtxAdaptMa.m10 + z * MtxAdaptMa.m20;\n let Y = x * MtxAdaptMa.m01 + y * MtxAdaptMa.m11 + z * MtxAdaptMa.m21;\n let Z = x * MtxAdaptMa.m02 + y * MtxAdaptMa.m12 + z * MtxAdaptMa.m22;\n\n X *= Ad / As;\n Y *= Bd / Bs;\n Z *= Cd / Cs;\n\n x = X * MtxAdaptMaI.m00 + Y * MtxAdaptMaI.m10 + Z * MtxAdaptMaI.m20;\n y = X * MtxAdaptMaI.m01 + Y * MtxAdaptMaI.m11 + Z * MtxAdaptMaI.m21;\n z = X * MtxAdaptMaI.m02 + Y * MtxAdaptMaI.m12 + Z * MtxAdaptMaI.m22;\n\n return [x, y, z];\n};\n\nexport default rgb2lab;\nexport { rgb2xyz };\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport lab2rgb from './lab2rgb.js';\nimport rgb2lab from './rgb2lab.js';\nimport { getLabWhitePoint, setLabWhitePoint } from './lab-constants.js';\n\nColor.prototype.lab = function () {\n return rgb2lab(this._rgb);\n};\n\nconst lab = (...args) => new Color(...args, 'lab');\nObject.assign(chroma, { lab, getLabWhitePoint, setLabWhitePoint });\n\ninput.format.lab = lab2rgb;\n\ninput.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, 'lab');\n if (type(args) === 'array' && args.length === 3) {\n return 'lab';\n }\n }\n});\n\nexport { lab, getLabWhitePoint, setLabWhitePoint };\n","import '../io/lab/index.js';\nimport Color from '../Color.js';\nimport LAB_CONSTANTS from '../io/lab/lab-constants.js';\n\nColor.prototype.darken = function (amount = 1) {\n const me = this;\n const lab = me.lab();\n lab[0] -= LAB_CONSTANTS.Kn * amount;\n return new Color(lab, 'lab').alpha(me.alpha(), true);\n};\n\nColor.prototype.brighten = function (amount = 1) {\n return this.darken(-amount);\n};\n\nColor.prototype.darker = Color.prototype.darken;\nColor.prototype.brighter = Color.prototype.brighten;\n","import Color from '../Color.js';\n\nColor.prototype.get = function (mc) {\n const [mode, channel] = mc.split('.');\n const src = this[mode]();\n if (channel) {\n const i = mode.indexOf(channel) - (mode.substr(0, 2) === 'ok' ? 2 : 0);\n if (i > -1) return src[i];\n throw new Error(`unknown channel ${channel} in mode ${mode}`);\n } else {\n return src;\n }\n};\n","import Color from '../Color.js';\nimport { type } from '../utils/index.js';\nconst { pow } = Math;\n\nconst EPS = 1e-7;\nconst MAX_ITER = 20;\n\nColor.prototype.luminance = function (lum, mode = 'rgb') {\n if (lum !== undefined && type(lum) === 'number') {\n if (lum === 0) {\n // return pure black\n return new Color([0, 0, 0, this._rgb[3]], 'rgb');\n }\n if (lum === 1) {\n // return pure white\n return new Color([255, 255, 255, this._rgb[3]], 'rgb');\n }\n // compute new color using...\n let cur_lum = this.luminance();\n let max_iter = MAX_ITER;\n\n const test = (low, high) => {\n const mid = low.interpolate(high, 0.5, mode);\n const lm = mid.luminance();\n if (Math.abs(lum - lm) < EPS || !max_iter--) {\n // close enough\n return mid;\n }\n return lm > lum ? test(low, mid) : test(mid, high);\n };\n\n const rgb = (\n cur_lum > lum\n ? test(new Color([0, 0, 0]), this)\n : test(this, new Color([255, 255, 255]))\n ).rgb();\n return new Color([...rgb, this._rgb[3]]);\n }\n return rgb2luminance(...this._rgb.slice(0, 3));\n};\n\nconst rgb2luminance = (r, g, b) => {\n // relative luminance\n // see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n r = luminance_x(r);\n g = luminance_x(g);\n b = luminance_x(b);\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nconst luminance_x = (x) => {\n x /= 255;\n return x <= 0.03928 ? x / 12.92 : pow((x + 0.055) / 1.055, 2.4);\n};\n","export default {};\n","import Color from '../Color.js';\nimport { type } from '../utils/index.js';\nimport interpolator from '../interpolator/index.js';\n\nexport default (col1, col2, f = 0.5, ...rest) => {\n let mode = rest[0] || 'lrgb';\n if (!interpolator[mode] && !rest.length) {\n // fall back to the first supported mode\n mode = Object.keys(interpolator)[0];\n }\n if (!interpolator[mode]) {\n throw new Error(`interpolation mode ${mode} is not defined`);\n }\n if (type(col1) !== 'object') col1 = new Color(col1);\n if (type(col2) !== 'object') col2 = new Color(col2);\n return interpolator[mode](col1, col2, f).alpha(\n col1.alpha() + f * (col2.alpha() - col1.alpha())\n );\n};\n","import Color from '../Color.js';\nimport mix from '../generator/mix.js';\n\nColor.prototype.mix = Color.prototype.interpolate = function (\n col2,\n f = 0.5,\n ...rest\n) {\n return mix(this, col2, f, ...rest);\n};\n","import Color from '../Color.js';\n\nColor.prototype.premultiply = function (mutate = false) {\n const rgb = this._rgb;\n const a = rgb[3];\n if (mutate) {\n this._rgb = [rgb[0] * a, rgb[1] * a, rgb[2] * a, a];\n return this;\n } else {\n return new Color([rgb[0] * a, rgb[1] * a, rgb[2] * a, a], 'rgb');\n }\n};\n","import { unpack, DEG2RAD } from '../../utils/index.js';\nconst { sin, cos } = Math;\n\nconst lch2lab = (...args) => {\n /*\n Convert from a qualitative parameter h and a quantitative parameter l to a 24-bit pixel.\n These formulas were invented by David Dalrymple to obtain maximum contrast without going\n out of gamut if the parameters are in the range 0-1.\n\n A saturation multiplier was added by Gregor Aisch\n */\n let [l, c, h] = unpack(args, 'lch');\n if (isNaN(h)) h = 0;\n h = h * DEG2RAD;\n return [l, cos(h) * c, sin(h) * c];\n};\n\nexport default lch2lab;\n","import { unpack } from '../../utils/index.js';\nimport lch2lab from './lch2lab.js';\nimport lab2rgb from '../lab/lab2rgb.js';\n\nconst lch2rgb = (...args) => {\n args = unpack(args, 'lch');\n const [l, c, h] = args;\n const [L, a, b_] = lch2lab(l, c, h);\n const [r, g, b] = lab2rgb(L, a, b_);\n return [r, g, b, args.length > 3 ? args[3] : 1];\n};\n\nexport default lch2rgb;\n","import { unpack, reverse3 } from '../../utils/index.js';\nimport lch2rgb from './lch2rgb.js';\n\nconst hcl2rgb = (...args) => {\n const hcl = reverse3(unpack(args, 'hcl'));\n return lch2rgb(...hcl);\n};\n\nexport default hcl2rgb;\n","import { unpack, RAD2DEG } from '../../utils/index.js';\nconst { sqrt, atan2, round } = Math;\n\nconst lab2lch = (...args) => {\n const [l, a, b] = unpack(args, 'lab');\n const c = sqrt(a * a + b * b);\n let h = (atan2(b, a) * RAD2DEG + 360) % 360;\n if (round(c * 10000) === 0) h = Number.NaN;\n return [l, c, h];\n};\n\nexport default lab2lch;\n","import { unpack } from '../../utils/index.js';\nimport rgb2lab from '../lab/rgb2lab.js';\nimport lab2lch from './lab2lch.js';\n\nconst rgb2lch = (...args) => {\n const [r, g, b, ...rest] = unpack(args, 'rgb');\n const [l, a, b_] = rgb2lab(r, g, b);\n const [L, c, h] = lab2lch(l, a, b_);\n return [L, c, h, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\nexport default rgb2lch;\n","import { unpack, type, reverse3 } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport lch2rgb from './lch2rgb.js';\nimport hcl2rgb from './hcl2rgb.js';\nimport rgb2lch from './rgb2lch.js';\n\nColor.prototype.lch = function () {\n return rgb2lch(this._rgb);\n};\nColor.prototype.hcl = function () {\n return reverse3(rgb2lch(this._rgb));\n};\n\nconst lch = (...args) => new Color(...args, 'lch');\nconst hcl = (...args) => new Color(...args, 'hcl');\n\nObject.assign(chroma, { lch, hcl });\n\ninput.format.lch = lch2rgb;\ninput.format.hcl = hcl2rgb;\n['lch', 'hcl'].forEach((m) =>\n input.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, m);\n if (type(args) === 'array' && args.length === 3) {\n return m;\n }\n }\n })\n);\n\nexport { lch, hcl };\n","import '../io/lch/index.js';\nimport Color from '../Color.js';\nimport LAB_CONSTANTS from '../io/lab/lab-constants.js';\n\nColor.prototype.saturate = function (amount = 1) {\n const me = this;\n const lch = me.lch();\n lch[1] += LAB_CONSTANTS.Kn * amount;\n if (lch[1] < 0) lch[1] = 0;\n return new Color(lch, 'lch').alpha(me.alpha(), true);\n};\n\nColor.prototype.desaturate = function (amount = 1) {\n return this.saturate(-amount);\n};\n","import Color from '../Color.js';\nimport { type } from '../utils/index.js';\n\nColor.prototype.set = function (mc, value, mutate = false) {\n const [mode, channel] = mc.split('.');\n const src = this[mode]();\n if (channel) {\n const i = mode.indexOf(channel) - (mode.substr(0, 2) === 'ok' ? 2 : 0);\n if (i > -1) {\n if (type(value) == 'string') {\n switch (value.charAt(0)) {\n case '+':\n src[i] += +value;\n break;\n case '-':\n src[i] += +value;\n break;\n case '*':\n src[i] *= +value.substr(1);\n break;\n case '/':\n src[i] /= +value.substr(1);\n break;\n default:\n src[i] = +value;\n }\n } else if (type(value) === 'number') {\n src[i] = value;\n } else {\n throw new Error(`unsupported value for Color.set`);\n }\n const out = new Color(src, mode);\n if (mutate) {\n this._rgb = out._rgb;\n return this;\n }\n return out;\n }\n throw new Error(`unknown channel ${channel} in mode ${mode}`);\n } else {\n return src;\n }\n};\n","import '../io/lab/index.js';\nimport Color from '../Color.js';\nimport mix from '../generator/mix.js';\n\nColor.prototype.tint = function (f = 0.5, ...rest) {\n return mix(this, 'white', f, ...rest);\n};\n\nColor.prototype.shade = function (f = 0.5, ...rest) {\n return mix(this, 'black', f, ...rest);\n};\n","import Color from '../Color.js';\nimport index from './index.js';\n\nconst rgb = (col1, col2, f) => {\n const xyz0 = col1._rgb;\n const xyz1 = col2._rgb;\n return new Color(\n xyz0[0] + f * (xyz1[0] - xyz0[0]),\n xyz0[1] + f * (xyz1[1] - xyz0[1]),\n xyz0[2] + f * (xyz1[2] - xyz0[2]),\n 'rgb'\n );\n};\n\n// register interpolator\nindex.rgb = rgb;\n\nexport default rgb;\n","import Color from '../Color.js';\nconst { sqrt, pow } = Math;\nimport index from './index.js';\n\nconst lrgb = (col1, col2, f) => {\n const [x1, y1, z1] = col1._rgb;\n const [x2, y2, z2] = col2._rgb;\n return new Color(\n sqrt(pow(x1, 2) * (1 - f) + pow(x2, 2) * f),\n sqrt(pow(y1, 2) * (1 - f) + pow(y2, 2) * f),\n sqrt(pow(z1, 2) * (1 - f) + pow(z2, 2) * f),\n 'rgb'\n );\n};\n\n// register interpolator\nindex.lrgb = lrgb;\n\nexport default lrgb;\n","import '../io/lab/index.js';\nimport index from './index.js';\nimport Color from '../Color.js';\n\nconst lab = (col1, col2, f) => {\n const xyz0 = col1.lab();\n const xyz1 = col2.lab();\n return new Color(\n xyz0[0] + f * (xyz1[0] - xyz0[0]),\n xyz0[1] + f * (xyz1[1] - xyz0[1]),\n xyz0[2] + f * (xyz1[2] - xyz0[2]),\n 'lab'\n );\n};\n\n// register interpolator\nindex.lab = lab;\n\nexport default lab;\n","import Color from '../Color.js';\n\nexport default (col1, col2, f, m) => {\n let xyz0, xyz1;\n if (m === 'hsl') {\n xyz0 = col1.hsl();\n xyz1 = col2.hsl();\n } else if (m === 'hsv') {\n xyz0 = col1.hsv();\n xyz1 = col2.hsv();\n } else if (m === 'hcg') {\n xyz0 = col1.hcg();\n xyz1 = col2.hcg();\n } else if (m === 'hsi') {\n xyz0 = col1.hsi();\n xyz1 = col2.hsi();\n } else if (m === 'lch' || m === 'hcl') {\n m = 'hcl';\n xyz0 = col1.hcl();\n xyz1 = col2.hcl();\n } else if (m === 'oklch') {\n xyz0 = col1.oklch().reverse();\n xyz1 = col2.oklch().reverse();\n }\n\n let hue0, hue1, sat0, sat1, lbv0, lbv1;\n if (m.substr(0, 1) === 'h' || m === 'oklch') {\n [hue0, sat0, lbv0] = xyz0;\n [hue1, sat1, lbv1] = xyz1;\n }\n\n let sat, hue, lbv, dh;\n\n if (!isNaN(hue0) && !isNaN(hue1)) {\n // both colors have hue\n if (hue1 > hue0 && hue1 - hue0 > 180) {\n dh = hue1 - (hue0 + 360);\n } else if (hue1 < hue0 && hue0 - hue1 > 180) {\n dh = hue1 + 360 - hue0;\n } else {\n dh = hue1 - hue0;\n }\n hue = hue0 + f * dh;\n } else if (!isNaN(hue0)) {\n hue = hue0;\n if ((lbv1 == 1 || lbv1 == 0) && m != 'hsv') sat = sat0;\n } else if (!isNaN(hue1)) {\n hue = hue1;\n if ((lbv0 == 1 || lbv0 == 0) && m != 'hsv') sat = sat1;\n } else {\n hue = Number.NaN;\n }\n\n if (sat === undefined) sat = sat0 + f * (sat1 - sat0);\n lbv = lbv0 + f * (lbv1 - lbv0);\n return m === 'oklch'\n ? new Color([lbv, sat, hue], m)\n : new Color([hue, sat, lbv], m);\n};\n","import '../io/lch/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst lch = (col1, col2, f) => {\n return interpolate_hsx(col1, col2, f, 'lch');\n};\n\n// register interpolator\nindex.lch = lch;\nindex.hcl = lch;\n\nexport default lch;\n","import { type } from '../../utils/index.js';\n\nconst num2rgb = (num) => {\n if (type(num) == 'number' && num >= 0 && num <= 0xffffff) {\n const r = num >> 16;\n const g = (num >> 8) & 0xff;\n const b = num & 0xff;\n return [r, g, b, 1];\n }\n throw new Error('unknown num color: ' + num);\n};\n\nexport default num2rgb;\n","import { unpack } from '../../utils/index.js';\n\nconst rgb2num = (...args) => {\n const [r, g, b] = unpack(args, 'rgb');\n return (r << 16) + (g << 8) + b;\n};\n\nexport default rgb2num;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport { type } from '../../utils/index.js';\nimport num2rgb from './num2rgb.js';\nimport rgb2num from './rgb2num.js';\n\nColor.prototype.num = function () {\n return rgb2num(this._rgb);\n};\n\nconst num = (...args) => new Color(...args, 'num');\n\nObject.assign(chroma, { num });\n\ninput.format.num = num2rgb;\n\ninput.autodetect.push({\n p: 5,\n test: (...args) => {\n if (\n args.length === 1 &&\n type(args[0]) === 'number' &&\n args[0] >= 0 &&\n args[0] <= 0xffffff\n ) {\n return 'num';\n }\n }\n});\n\nexport { num };\n","import '../io/num/index.js';\nimport index from './index.js';\n\nimport Color from '../Color.js';\n\nconst num = (col1, col2, f) => {\n const c1 = col1.num();\n const c2 = col2.num();\n return new Color(c1 + f * (c2 - c1), 'num');\n};\n\n// register interpolator\nindex.num = num;\n\nexport default num;\n","import { unpack } from '../../utils/index.js';\nconst { floor } = Math;\n\n/*\n * this is basically just HSV with some minor tweaks\n *\n * hue.. [0..360]\n * chroma .. [0..1]\n * grayness .. [0..1]\n */\n\nconst hcg2rgb = (...args) => {\n args = unpack(args, 'hcg');\n let [h, c, _g] = args;\n let r, g, b;\n _g = _g * 255;\n const _c = c * 255;\n if (c === 0) {\n r = g = b = _g;\n } else {\n if (h === 360) h = 0;\n if (h > 360) h -= 360;\n if (h < 0) h += 360;\n h /= 60;\n const i = floor(h);\n const f = h - i;\n const p = _g * (1 - c);\n const q = p + _c * (1 - f);\n const t = p + _c * f;\n const v = p + _c;\n switch (i) {\n case 0:\n [r, g, b] = [v, t, p];\n break;\n case 1:\n [r, g, b] = [q, v, p];\n break;\n case 2:\n [r, g, b] = [p, v, t];\n break;\n case 3:\n [r, g, b] = [p, q, v];\n break;\n case 4:\n [r, g, b] = [t, p, v];\n break;\n case 5:\n [r, g, b] = [v, p, q];\n break;\n }\n }\n return [r, g, b, args.length > 3 ? args[3] : 1];\n};\n\nexport default hcg2rgb;\n","import { unpack, max, min } from '../../utils/index.js';\n\nconst rgb2hcg = (...args) => {\n const [r, g, b] = unpack(args, 'rgb');\n const minRgb = min(r, g, b);\n const maxRgb = max(r, g, b);\n const delta = maxRgb - minRgb;\n const c = (delta * 100) / 255;\n const _g = (minRgb / (255 - delta)) * 100;\n let h;\n if (delta === 0) {\n h = Number.NaN;\n } else {\n if (r === maxRgb) h = (g - b) / delta;\n if (g === maxRgb) h = 2 + (b - r) / delta;\n if (b === maxRgb) h = 4 + (r - g) / delta;\n h *= 60;\n if (h < 0) h += 360;\n }\n return [h, c, _g];\n};\n\nexport default rgb2hcg;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport hcg2rgb from './hcg2rgb.js';\nimport rgb2hcg from './rgb2hcg.js';\n\nColor.prototype.hcg = function () {\n return rgb2hcg(this._rgb);\n};\n\nconst hcg = (...args) => new Color(...args, 'hcg');\nchroma.hcg = hcg;\n\ninput.format.hcg = hcg2rgb;\n\ninput.autodetect.push({\n p: 1,\n test: (...args) => {\n args = unpack(args, 'hcg');\n if (type(args) === 'array' && args.length === 3) {\n return 'hcg';\n }\n }\n});\n\nexport { hcg };\n","import '../io/hcg/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst hcg = (col1, col2, f) => {\n return interpolate_hsx(col1, col2, f, 'hcg');\n};\n\n// register interpolator\nindex.hcg = hcg;\n\nexport default hcg;\n","import { unpack, limit, TWOPI, PITHIRD } from '../../utils/index.js';\nconst { cos } = Math;\n\n/*\n * hue [0..360]\n * saturation [0..1]\n * intensity [0..1]\n */\nconst hsi2rgb = (...args) => {\n /*\n borrowed from here:\n http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/hsi2rgb.cpp\n */\n args = unpack(args, 'hsi');\n let [h, s, i] = args;\n let r, g, b;\n\n if (isNaN(h)) h = 0;\n if (isNaN(s)) s = 0;\n // normalize hue\n if (h > 360) h -= 360;\n if (h < 0) h += 360;\n h /= 360;\n if (h < 1 / 3) {\n b = (1 - s) / 3;\n r = (1 + (s * cos(TWOPI * h)) / cos(PITHIRD - TWOPI * h)) / 3;\n g = 1 - (b + r);\n } else if (h < 2 / 3) {\n h -= 1 / 3;\n r = (1 - s) / 3;\n g = (1 + (s * cos(TWOPI * h)) / cos(PITHIRD - TWOPI * h)) / 3;\n b = 1 - (r + g);\n } else {\n h -= 2 / 3;\n g = (1 - s) / 3;\n b = (1 + (s * cos(TWOPI * h)) / cos(PITHIRD - TWOPI * h)) / 3;\n r = 1 - (g + b);\n }\n r = limit(i * r * 3);\n g = limit(i * g * 3);\n b = limit(i * b * 3);\n return [r * 255, g * 255, b * 255, args.length > 3 ? args[3] : 1];\n};\n\nexport default hsi2rgb;\n","import { unpack, TWOPI } from '../../utils/index.js';\nconst { min, sqrt, acos } = Math;\n\nconst rgb2hsi = (...args) => {\n /*\n borrowed from here:\n http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/rgb2hsi.cpp\n */\n let [r, g, b] = unpack(args, 'rgb');\n r /= 255;\n g /= 255;\n b /= 255;\n let h;\n const min_ = min(r, g, b);\n const i = (r + g + b) / 3;\n const s = i > 0 ? 1 - min_ / i : 0;\n if (s === 0) {\n h = NaN;\n } else {\n h = (r - g + (r - b)) / 2;\n h /= sqrt((r - g) * (r - g) + (r - b) * (g - b));\n h = acos(h);\n if (b > g) {\n h = TWOPI - h;\n }\n h /= TWOPI;\n }\n return [h * 360, s, i];\n};\n\nexport default rgb2hsi;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport hsi2rgb from './hsi2rgb.js';\nimport rgb2hsi from './rgb2hsi.js';\n\nColor.prototype.hsi = function () {\n return rgb2hsi(this._rgb);\n};\n\nconst hsi = (...args) => new Color(...args, 'hsi');\nchroma.hsi = hsi;\n\ninput.format.hsi = hsi2rgb;\n\ninput.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, 'hsi');\n if (type(args) === 'array' && args.length === 3) {\n return 'hsi';\n }\n }\n});\n\nexport { hsi };\n","import '../io/hsi/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst hsi = (col1, col2, f) => {\n return interpolate_hsx(col1, col2, f, 'hsi');\n};\n\n// register interpolator\nindex.hsi = hsi;\n\nexport default hsi;\n","import { unpack } from '../../utils/index.js';\n\nconst hsl2rgb = (...args) => {\n args = unpack(args, 'hsl');\n const [h, s, l] = args;\n let r, g, b;\n if (s === 0) {\n r = g = b = l * 255;\n } else {\n const t3 = [0, 0, 0];\n const c = [0, 0, 0];\n const t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const t1 = 2 * l - t2;\n const h_ = h / 360;\n t3[0] = h_ + 1 / 3;\n t3[1] = h_;\n t3[2] = h_ - 1 / 3;\n for (let i = 0; i < 3; i++) {\n if (t3[i] < 0) t3[i] += 1;\n if (t3[i] > 1) t3[i] -= 1;\n if (6 * t3[i] < 1) c[i] = t1 + (t2 - t1) * 6 * t3[i];\n else if (2 * t3[i] < 1) c[i] = t2;\n else if (3 * t3[i] < 2) c[i] = t1 + (t2 - t1) * (2 / 3 - t3[i]) * 6;\n else c[i] = t1;\n }\n [r, g, b] = [c[0] * 255, c[1] * 255, c[2] * 255];\n }\n if (args.length > 3) {\n // keep alpha channel\n return [r, g, b, args[3]];\n }\n return [r, g, b, 1];\n};\n\nexport default hsl2rgb;\n","import { unpack, min, max } from '../../utils/index.js';\n\n/*\n * supported arguments:\n * - rgb2hsl(r,g,b)\n * - rgb2hsl(r,g,b,a)\n * - rgb2hsl([r,g,b])\n * - rgb2hsl([r,g,b,a])\n * - rgb2hsl({r,g,b,a})\n */\nconst rgb2hsl = (...args) => {\n args = unpack(args, 'rgba');\n let [r, g, b] = args;\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const minRgb = min(r, g, b);\n const maxRgb = max(r, g, b);\n\n const l = (maxRgb + minRgb) / 2;\n let s, h;\n\n if (maxRgb === minRgb) {\n s = 0;\n h = Number.NaN;\n } else {\n s =\n l < 0.5\n ? (maxRgb - minRgb) / (maxRgb + minRgb)\n : (maxRgb - minRgb) / (2 - maxRgb - minRgb);\n }\n\n if (r == maxRgb) h = (g - b) / (maxRgb - minRgb);\n else if (g == maxRgb) h = 2 + (b - r) / (maxRgb - minRgb);\n else if (b == maxRgb) h = 4 + (r - g) / (maxRgb - minRgb);\n\n h *= 60;\n if (h < 0) h += 360;\n if (args.length > 3 && args[3] !== undefined) return [h, s, l, args[3]];\n return [h, s, l];\n};\n\nexport default rgb2hsl;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport hsl2rgb from './hsl2rgb.js';\nimport rgb2hsl from './rgb2hsl.js';\n\nColor.prototype.hsl = function () {\n return rgb2hsl(this._rgb);\n};\n\nconst hsl = (...args) => new Color(...args, 'hsl');\nchroma.hsl = hsl;\n\ninput.format.hsl = hsl2rgb;\n\ninput.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, 'hsl');\n if (type(args) === 'array' && args.length === 3) {\n return 'hsl';\n }\n }\n});\n\nexport { hsl };\n","import '../io/hsl/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst hsl = (col1, col2, f) => {\n return interpolate_hsx(col1, col2, f, 'hsl');\n};\n\n// register interpolator\nindex.hsl = hsl;\n\nexport default hsl;\n","import { unpack } from '../../utils/index.js';\nconst { floor } = Math;\n\nconst hsv2rgb = (...args) => {\n args = unpack(args, 'hsv');\n let [h, s, v] = args;\n let r, g, b;\n v *= 255;\n if (s === 0) {\n r = g = b = v;\n } else {\n if (h === 360) h = 0;\n if (h > 360) h -= 360;\n if (h < 0) h += 360;\n h /= 60;\n\n const i = floor(h);\n const f = h - i;\n const p = v * (1 - s);\n const q = v * (1 - s * f);\n const t = v * (1 - s * (1 - f));\n\n switch (i) {\n case 0:\n [r, g, b] = [v, t, p];\n break;\n case 1:\n [r, g, b] = [q, v, p];\n break;\n case 2:\n [r, g, b] = [p, v, t];\n break;\n case 3:\n [r, g, b] = [p, q, v];\n break;\n case 4:\n [r, g, b] = [t, p, v];\n break;\n case 5:\n [r, g, b] = [v, p, q];\n break;\n }\n }\n return [r, g, b, args.length > 3 ? args[3] : 1];\n};\n\nexport default hsv2rgb;\n","import { unpack } from '../../utils/index.js';\nconst { min, max } = Math;\n\n/*\n * supported arguments:\n * - rgb2hsv(r,g,b)\n * - rgb2hsv([r,g,b])\n * - rgb2hsv({r,g,b})\n */\nconst rgb2hsl = (...args) => {\n args = unpack(args, 'rgb');\n let [r, g, b] = args;\n const min_ = min(r, g, b);\n const max_ = max(r, g, b);\n const delta = max_ - min_;\n let h, s, v;\n v = max_ / 255.0;\n if (max_ === 0) {\n h = Number.NaN;\n s = 0;\n } else {\n s = delta / max_;\n if (r === max_) h = (g - b) / delta;\n if (g === max_) h = 2 + (b - r) / delta;\n if (b === max_) h = 4 + (r - g) / delta;\n h *= 60;\n if (h < 0) h += 360;\n }\n return [h, s, v];\n};\n\nexport default rgb2hsl;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport hsv2rgb from './hsv2rgb.js';\nimport rgb2hsv from './rgb2hsv.js';\n\nColor.prototype.hsv = function () {\n return rgb2hsv(this._rgb);\n};\n\nconst hsv = (...args) => new Color(...args, 'hsv');\nchroma.hsv = hsv;\n\ninput.format.hsv = hsv2rgb;\n\ninput.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, 'hsv');\n if (type(args) === 'array' && args.length === 3) {\n return 'hsv';\n }\n }\n});\n\nexport { hsv };\n","import '../io/hsv/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst hsv = (col1, col2, f) => {\n return interpolate_hsx(col1, col2, f, 'hsv');\n};\n\n// register interpolator\nindex.hsv = hsv;\n\nexport default hsv;\n","// from https://www.w3.org/TR/css-color-4/multiply-matrices.js\nexport default function multiplyMatrices(A, B) {\n let m = A.length;\n\n if (!Array.isArray(A[0])) {\n // A is vector, convert to [[a, b, c, ...]]\n A = [A];\n }\n\n if (!Array.isArray(B[0])) {\n // B is vector, convert to [[a], [b], [c], ...]]\n B = B.map((x) => [x]);\n }\n\n let p = B[0].length;\n let B_cols = B[0].map((_, i) => B.map((x) => x[i])); // transpose B\n let product = A.map((row) =>\n B_cols.map((col) => {\n if (!Array.isArray(row)) {\n return col.reduce((a, c) => a + c * row, 0);\n }\n\n return row.reduce((a, c, i) => a + c * (col[i] || 0), 0);\n })\n );\n\n if (m === 1) {\n product = product[0]; // Avoid [[a, b, c, ...]]\n }\n\n if (p === 1) {\n return product.map((x) => x[0]); // Avoid [[a], [b], [c], ...]]\n }\n\n return product;\n}\n","import { unpack } from '../../utils/index.js';\nimport multiplyMatrices from '../../utils/multiply-matrices.js';\nimport { xyz2rgb } from '../lab/lab2rgb.js';\n\nconst oklab2rgb = (...args) => {\n args = unpack(args, 'lab');\n const [L, a, b, ...rest] = args;\n const [X, Y, Z] = OKLab_to_XYZ([L, a, b]);\n const [r, g, b_] = xyz2rgb(X, Y, Z);\n return [r, g, b_, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\n// from https://www.w3.org/TR/css-color-4/#color-conversion-code\nfunction OKLab_to_XYZ(OKLab) {\n // Given OKLab, convert to XYZ relative to D65\n var LMStoXYZ = [\n [1.2268798758459243, -0.5578149944602171, 0.2813910456659647],\n [-0.0405757452148008, 1.112286803280317, -0.0717110580655164],\n [-0.0763729366746601, -0.4214933324022432, 1.5869240198367816]\n ];\n var OKLabtoLMS = [\n [1.0, 0.3963377773761749, 0.2158037573099136],\n [1.0, -0.1055613458156586, -0.0638541728258133],\n [1.0, -0.0894841775298119, -1.2914855480194092]\n ];\n\n var LMSnl = multiplyMatrices(OKLabtoLMS, OKLab);\n return multiplyMatrices(\n LMStoXYZ,\n LMSnl.map((c) => c ** 3)\n );\n}\n\nexport default oklab2rgb;\n","import { unpack } from '../../utils/index.js';\nimport multiplyMatrices from '../../utils/multiply-matrices.js';\nimport { rgb2xyz } from '../lab/rgb2lab.js';\n\nconst rgb2oklab = (...args) => {\n const [r, g, b, ...rest] = unpack(args, 'rgb');\n const xyz = rgb2xyz(r, g, b);\n const oklab = XYZ_to_OKLab(xyz);\n return [...oklab, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\n// from https://www.w3.org/TR/css-color-4/#color-conversion-code\nfunction XYZ_to_OKLab(XYZ) {\n // Given XYZ relative to D65, convert to OKLab\n const XYZtoLMS = [\n [0.819022437996703, 0.3619062600528904, -0.1288737815209879],\n [0.0329836539323885, 0.9292868615863434, 0.0361446663506424],\n [0.0481771893596242, 0.2642395317527308, 0.6335478284694309]\n ];\n const LMStoOKLab = [\n [0.210454268309314, 0.7936177747023054, -0.0040720430116193],\n [1.9779985324311684, -2.4285922420485799, 0.450593709617411],\n [0.0259040424655478, 0.7827717124575296, -0.8086757549230774]\n ];\n\n const LMS = multiplyMatrices(XYZtoLMS, XYZ);\n // JavaScript Math.cbrt returns a sign-matched cube root\n // beware if porting to other languages\n // especially if tempted to use a general power function\n return multiplyMatrices(\n LMStoOKLab,\n LMS.map((c) => Math.cbrt(c))\n );\n // L in range [0,1]. For use in CSS, multiply by 100 and add a percent\n}\n\nexport default rgb2oklab;\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport oklab2rgb from './oklab2rgb.js';\nimport rgb2oklab from './rgb2oklab.js';\n\nColor.prototype.oklab = function () {\n return rgb2oklab(this._rgb);\n};\n\nconst oklab = (...args) => new Color(...args, 'oklab');\nObject.assign(chroma, { oklab });\n\ninput.format.oklab = oklab2rgb;\n\ninput.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, 'oklab');\n if (type(args) === 'array' && args.length === 3) {\n return 'oklab';\n }\n }\n});\n\nexport { oklab };\n","import '../io/oklab/index.js';\nimport index from './index.js';\nimport Color from '../Color.js';\n\nconst oklab = (col1, col2, f) => {\n const xyz0 = col1.oklab();\n const xyz1 = col2.oklab();\n return new Color(\n xyz0[0] + f * (xyz1[0] - xyz0[0]),\n xyz0[1] + f * (xyz1[1] - xyz0[1]),\n xyz0[2] + f * (xyz1[2] - xyz0[2]),\n 'oklab'\n );\n};\n\n// register interpolator\nindex.oklab = oklab;\n\nexport default oklab;\n","import '../io/lch/index.js';\nimport interpolate_hsx from './_hsx.js';\nimport index from './index.js';\n\nconst oklch = (col1, col2, f) => {\n return interpolate_hsx(col1, col2, f, 'oklch');\n};\n\n// register interpolator\nindex.oklch = oklch;\n\nexport default oklch;\n","import Color from '../Color.js';\nimport { clip_rgb } from '../utils/index.js';\n\nconst { pow, sqrt, PI, cos, sin, atan2 } = Math;\n\nexport default (colors, mode = 'lrgb', weights = null) => {\n const l = colors.length;\n if (!weights) weights = Array.from(new Array(l)).map(() => 1);\n // normalize weights\n const k =\n l /\n weights.reduce(function (a, b) {\n return a + b;\n });\n weights.forEach((w, i) => {\n weights[i] *= k;\n });\n // convert colors to Color objects\n colors = colors.map((c) => new Color(c));\n if (mode === 'lrgb') {\n return _average_lrgb(colors, weights);\n }\n const first = colors.shift();\n const xyz = first.get(mode);\n const cnt = [];\n let dx = 0;\n let dy = 0;\n // initial color\n for (let i = 0; i < xyz.length; i++) {\n xyz[i] = (xyz[i] || 0) * weights[0];\n cnt.push(isNaN(xyz[i]) ? 0 : weights[0]);\n if (mode.charAt(i) === 'h' && !isNaN(xyz[i])) {\n const A = (xyz[i] / 180) * PI;\n dx += cos(A) * weights[0];\n dy += sin(A) * weights[0];\n }\n }\n\n let alpha = first.alpha() * weights[0];\n colors.forEach((c, ci) => {\n const xyz2 = c.get(mode);\n alpha += c.alpha() * weights[ci + 1];\n for (let i = 0; i < xyz.length; i++) {\n if (!isNaN(xyz2[i])) {\n cnt[i] += weights[ci + 1];\n if (mode.charAt(i) === 'h') {\n const A = (xyz2[i] / 180) * PI;\n dx += cos(A) * weights[ci + 1];\n dy += sin(A) * weights[ci + 1];\n } else {\n xyz[i] += xyz2[i] * weights[ci + 1];\n }\n }\n }\n });\n\n for (let i = 0; i < xyz.length; i++) {\n if (mode.charAt(i) === 'h') {\n let A = (atan2(dy / cnt[i], dx / cnt[i]) / PI) * 180;\n while (A < 0) A += 360;\n while (A >= 360) A -= 360;\n xyz[i] = A;\n } else {\n xyz[i] = xyz[i] / cnt[i];\n }\n }\n alpha /= l;\n return new Color(xyz, mode).alpha(alpha > 0.99999 ? 1 : alpha, true);\n};\n\nconst _average_lrgb = (colors, weights) => {\n const l = colors.length;\n const xyz = [0, 0, 0, 0];\n for (let i = 0; i < colors.length; i++) {\n const col = colors[i];\n const f = weights[i] / l;\n const rgb = col._rgb;\n xyz[0] += pow(rgb[0], 2) * f;\n xyz[1] += pow(rgb[1], 2) * f;\n xyz[2] += pow(rgb[2], 2) * f;\n xyz[3] += rgb[3] * f;\n }\n xyz[0] = sqrt(xyz[0]);\n xyz[1] = sqrt(xyz[1]);\n xyz[2] = sqrt(xyz[2]);\n if (xyz[3] > 0.9999999) xyz[3] = 1;\n return new Color(clip_rgb(xyz));\n};\n","// minimal multi-purpose interface\n\n// @requires utils color analyze\nimport chroma from '../chroma.js';\nimport { limit, type } from '../utils/index.js';\n\nconst { pow } = Math;\n\nexport default function (colors) {\n // constructor\n let _mode = 'rgb';\n let _nacol = chroma('#ccc');\n let _spread = 0;\n // const _fixed = false;\n let _domain = [0, 1];\n let _pos = [];\n let _padding = [0, 0];\n let _classes = false;\n let _colors = [];\n let _out = false;\n let _min = 0;\n let _max = 1;\n let _correctLightness = false;\n let _colorCache = {};\n let _useCache = true;\n let _gamma = 1;\n\n // private methods\n\n const setColors = function (colors) {\n colors = colors || ['#fff', '#000'];\n if (\n colors &&\n type(colors) === 'string' &&\n chroma.brewer &&\n chroma.brewer[colors.toLowerCase()]\n ) {\n colors = chroma.brewer[colors.toLowerCase()];\n }\n if (type(colors) === 'array') {\n // handle single color\n if (colors.length === 1) {\n colors = [colors[0], colors[0]];\n }\n // make a copy of the colors\n colors = colors.slice(0);\n // convert to chroma classes\n for (let c = 0; c < colors.length; c++) {\n colors[c] = chroma(colors[c]);\n }\n // auto-fill color position\n _pos.length = 0;\n for (let c = 0; c < colors.length; c++) {\n _pos.push(c / (colors.length - 1));\n }\n }\n resetCache();\n return (_colors = colors);\n };\n\n const getClass = function (value) {\n if (_classes != null) {\n const n = _classes.length - 1;\n let i = 0;\n while (i < n && value >= _classes[i]) {\n i++;\n }\n return i - 1;\n }\n return 0;\n };\n\n let tMapLightness = (t) => t;\n let tMapDomain = (t) => t;\n\n // const classifyValue = function(value) {\n // let val = value;\n // if (_classes.length > 2) {\n // const n = _classes.length-1;\n // const i = getClass(value);\n // const minc = _classes[0] + ((_classes[1]-_classes[0]) * (0 + (_spread * 0.5))); // center of 1st class\n // const maxc = _classes[n-1] + ((_classes[n]-_classes[n-1]) * (1 - (_spread * 0.5))); // center of last class\n // val = _min + ((((_classes[i] + ((_classes[i+1] - _classes[i]) * 0.5)) - minc) / (maxc-minc)) * (_max - _min));\n // }\n // return val;\n // };\n\n const getColor = function (val, bypassMap) {\n let col, t;\n if (bypassMap == null) {\n bypassMap = false;\n }\n if (isNaN(val) || val === null) {\n return _nacol;\n }\n if (!bypassMap) {\n if (_classes && _classes.length > 2) {\n // find the class\n const c = getClass(val);\n t = c / (_classes.length - 2);\n } else if (_max !== _min) {\n // just interpolate between min/max\n t = (val - _min) / (_max - _min);\n } else {\n t = 1;\n }\n } else {\n t = val;\n }\n\n // domain map\n t = tMapDomain(t);\n\n if (!bypassMap) {\n t = tMapLightness(t); // lightness correction\n }\n\n if (_gamma !== 1) {\n t = pow(t, _gamma);\n }\n\n t = _padding[0] + t * (1 - _padding[0] - _padding[1]);\n\n t = limit(t, 0, 1);\n\n const k = Math.floor(t * 10000);\n\n if (_useCache && _colorCache[k]) {\n col = _colorCache[k];\n } else {\n if (type(_colors) === 'array') {\n //for i in [0.._pos.length-1]\n for (let i = 0; i < _pos.length; i++) {\n const p = _pos[i];\n if (t <= p) {\n col = _colors[i];\n break;\n }\n if (t >= p && i === _pos.length - 1) {\n col = _colors[i];\n break;\n }\n if (t > p && t < _pos[i + 1]) {\n t = (t - p) / (_pos[i + 1] - p);\n col = chroma.interpolate(\n _colors[i],\n _colors[i + 1],\n t,\n _mode\n );\n break;\n }\n }\n } else if (type(_colors) === 'function') {\n col = _colors(t);\n }\n if (_useCache) {\n _colorCache[k] = col;\n }\n }\n return col;\n };\n\n var resetCache = () => (_colorCache = {});\n\n setColors(colors);\n\n // public interface\n\n const f = function (v) {\n const c = chroma(getColor(v));\n if (_out && c[_out]) {\n return c[_out]();\n } else {\n return c;\n }\n };\n\n f.classes = function (classes) {\n if (classes != null) {\n if (type(classes) === 'array') {\n _classes = classes;\n _domain = [classes[0], classes[classes.length - 1]];\n } else {\n const d = chroma.analyze(_domain);\n if (classes === 0) {\n _classes = [d.min, d.max];\n } else {\n _classes = chroma.limits(d, 'e', classes);\n }\n }\n return f;\n }\n return _classes;\n };\n\n f.domain = function (domain) {\n if (!arguments.length) {\n return _domain;\n }\n _min = domain[0];\n _max = domain[domain.length - 1];\n _pos = [];\n const k = _colors.length;\n if (domain.length === k && _min !== _max) {\n // update positions\n for (let d of Array.from(domain)) {\n _pos.push((d - _min) / (_max - _min));\n }\n } else {\n for (let c = 0; c < k; c++) {\n _pos.push(c / (k - 1));\n }\n if (domain.length > 2) {\n // set domain map\n const tOut = domain.map((d, i) => i / (domain.length - 1));\n const tBreaks = domain.map((d) => (d - _min) / (_max - _min));\n if (!tBreaks.every((val, i) => tOut[i] === val)) {\n tMapDomain = (t) => {\n if (t <= 0 || t >= 1) return t;\n let i = 0;\n while (t >= tBreaks[i + 1]) i++;\n const f =\n (t - tBreaks[i]) / (tBreaks[i + 1] - tBreaks[i]);\n const out = tOut[i] + f * (tOut[i + 1] - tOut[i]);\n return out;\n };\n }\n }\n }\n _domain = [_min, _max];\n return f;\n };\n\n f.mode = function (_m) {\n if (!arguments.length) {\n return _mode;\n }\n _mode = _m;\n resetCache();\n return f;\n };\n\n f.range = function (colors, _pos) {\n setColors(colors, _pos);\n return f;\n };\n\n f.out = function (_o) {\n _out = _o;\n return f;\n };\n\n f.spread = function (val) {\n if (!arguments.length) {\n return _spread;\n }\n _spread = val;\n return f;\n };\n\n f.correctLightness = function (v) {\n if (v == null) {\n v = true;\n }\n _correctLightness = v;\n resetCache();\n if (_correctLightness) {\n tMapLightness = function (t) {\n const L0 = getColor(0, true).lab()[0];\n const L1 = getColor(1, true).lab()[0];\n const pol = L0 > L1;\n let L_actual = getColor(t, true).lab()[0];\n const L_ideal = L0 + (L1 - L0) * t;\n let L_diff = L_actual - L_ideal;\n let t0 = 0;\n let t1 = 1;\n let max_iter = 20;\n while (Math.abs(L_diff) > 1e-2 && max_iter-- > 0) {\n (function () {\n if (pol) {\n L_diff *= -1;\n }\n if (L_diff < 0) {\n t0 = t;\n t += (t1 - t) * 0.5;\n } else {\n t1 = t;\n t += (t0 - t) * 0.5;\n }\n L_actual = getColor(t, true).lab()[0];\n return (L_diff = L_actual - L_ideal);\n })();\n }\n return t;\n };\n } else {\n tMapLightness = (t) => t;\n }\n return f;\n };\n\n f.padding = function (p) {\n if (p != null) {\n if (type(p) === 'number') {\n p = [p, p];\n }\n _padding = p;\n return f;\n } else {\n return _padding;\n }\n };\n\n f.colors = function (numColors, out) {\n // If no arguments are given, return the original colors that were provided\n if (arguments.length < 2) {\n out = 'hex';\n }\n let result = [];\n\n if (arguments.length === 0) {\n result = _colors.slice(0);\n } else if (numColors === 1) {\n result = [f(0.5)];\n } else if (numColors > 1) {\n const dm = _domain[0];\n const dd = _domain[1] - dm;\n result = __range__(0, numColors, false).map((i) =>\n f(dm + (i / (numColors - 1)) * dd)\n );\n } else {\n // returns all colors based on the defined classes\n colors = [];\n let samples = [];\n if (_classes && _classes.length > 2) {\n for (\n let i = 1, end = _classes.length, asc = 1 <= end;\n asc ? i < end : i > end;\n asc ? i++ : i--\n ) {\n samples.push((_classes[i - 1] + _classes[i]) * 0.5);\n }\n } else {\n samples = _domain;\n }\n result = samples.map((v) => f(v));\n }\n\n if (chroma[out]) {\n result = result.map((c) => c[out]());\n }\n return result;\n };\n\n f.cache = function (c) {\n if (c != null) {\n _useCache = c;\n return f;\n } else {\n return _useCache;\n }\n };\n\n f.gamma = function (g) {\n if (g != null) {\n _gamma = g;\n return f;\n } else {\n return _gamma;\n }\n };\n\n f.nodata = function (d) {\n if (d != null) {\n _nacol = chroma(d);\n return f;\n } else {\n return _nacol;\n }\n };\n\n return f;\n}\n\nfunction __range__(left, right, inclusive) {\n let range = [];\n let ascending = left < right;\n let end = !inclusive ? right : ascending ? right + 1 : right - 1;\n for (let i = left; ascending ? i < end : i > end; ascending ? i++ : i--) {\n range.push(i);\n }\n return range;\n}\n","//\n// interpolates between a set of colors uzing a bezier spline\n//\n\n// @requires utils lab\nimport Color from '../Color.js';\nimport '../io/lab/index.js';\nimport scale from './scale.js';\n\n// nth row of the pascal triangle\nconst binom_row = function (n) {\n let row = [1, 1];\n for (let i = 1; i < n; i++) {\n let newrow = [1];\n for (let j = 1; j <= row.length; j++) {\n newrow[j] = (row[j] || 0) + row[j - 1];\n }\n row = newrow;\n }\n return row;\n};\n\nconst bezier = function (colors) {\n let I, lab0, lab1, lab2;\n colors = colors.map((c) => new Color(c));\n if (colors.length === 2) {\n // linear interpolation\n [lab0, lab1] = colors.map((c) => c.lab());\n I = function (t) {\n const lab = [0, 1, 2].map((i) => lab0[i] + t * (lab1[i] - lab0[i]));\n return new Color(lab, 'lab');\n };\n } else if (colors.length === 3) {\n // quadratic bezier interpolation\n [lab0, lab1, lab2] = colors.map((c) => c.lab());\n I = function (t) {\n const lab = [0, 1, 2].map(\n (i) =>\n (1 - t) * (1 - t) * lab0[i] +\n 2 * (1 - t) * t * lab1[i] +\n t * t * lab2[i]\n );\n return new Color(lab, 'lab');\n };\n } else if (colors.length === 4) {\n // cubic bezier interpolation\n let lab3;\n [lab0, lab1, lab2, lab3] = colors.map((c) => c.lab());\n I = function (t) {\n const lab = [0, 1, 2].map(\n (i) =>\n (1 - t) * (1 - t) * (1 - t) * lab0[i] +\n 3 * (1 - t) * (1 - t) * t * lab1[i] +\n 3 * (1 - t) * t * t * lab2[i] +\n t * t * t * lab3[i]\n );\n return new Color(lab, 'lab');\n };\n } else if (colors.length >= 5) {\n // general case (degree n bezier)\n let labs, row, n;\n labs = colors.map((c) => c.lab());\n n = colors.length - 1;\n row = binom_row(n);\n I = function (t) {\n const u = 1 - t;\n const lab = [0, 1, 2].map((i) =>\n labs.reduce(\n (sum, el, j) =>\n sum + row[j] * u ** (n - j) * t ** j * el[i],\n 0\n )\n );\n return new Color(lab, 'lab');\n };\n } else {\n throw new RangeError('No point in running bezier with only one color.');\n }\n return I;\n};\n\nexport default (colors) => {\n const f = bezier(colors);\n f.scale = () => scale(f);\n return f;\n};\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport { unpack, type } from '../../utils/index.js';\nconst { round } = Math;\n\nColor.prototype.rgb = function (rnd = true) {\n if (rnd === false) return this._rgb.slice(0, 3);\n return this._rgb.slice(0, 3).map(round);\n};\n\nColor.prototype.rgba = function (rnd = true) {\n return this._rgb.slice(0, 4).map((v, i) => {\n return i < 3 ? (rnd === false ? v : round(v)) : v;\n });\n};\n\nconst rgb = (...args) => new Color(...args, 'rgb');\nObject.assign(chroma, { rgb });\n\ninput.format.rgb = (...args) => {\n const rgba = unpack(args, 'rgba');\n if (rgba[3] === undefined) rgba[3] = 1;\n return rgba;\n};\n\ninput.autodetect.push({\n p: 3,\n test: (...args) => {\n args = unpack(args, 'rgba');\n if (\n type(args) === 'array' &&\n (args.length === 3 ||\n (args.length === 4 &&\n type(args[3]) == 'number' &&\n args[3] >= 0 &&\n args[3] <= 1))\n ) {\n return 'rgb';\n }\n }\n});\n\nexport { rgb };\n","/*\n * interpolates between a set of colors uzing a bezier spline\n * blend mode formulas taken from https://web.archive.org/web/20180110014946/http://www.venture-ware.com/kevin/coding/lets-learn-math-photoshop-blend-modes/\n */\n\nimport '../io/rgb/index.js';\nimport chroma from '../chroma.js';\n\nconst blend = (bottom, top, mode) => {\n if (!blend[mode]) {\n throw new Error('unknown blend mode ' + mode);\n }\n return blend[mode](bottom, top);\n};\n\nconst blend_f = (f) => (bottom, top) => {\n const c0 = chroma(top).rgb();\n const c1 = chroma(bottom).rgb();\n return chroma.rgb(f(c0, c1));\n};\n\nconst each = (f) => (c0, c1) => {\n const out = [];\n out[0] = f(c0[0], c1[0]);\n out[1] = f(c0[1], c1[1]);\n out[2] = f(c0[2], c1[2]);\n return out;\n};\n\nconst normal = (a) => a;\nconst multiply = (a, b) => (a * b) / 255;\nconst darken = (a, b) => (a > b ? b : a);\nconst lighten = (a, b) => (a > b ? a : b);\nconst screen = (a, b) => 255 * (1 - (1 - a / 255) * (1 - b / 255));\nconst overlay = (a, b) =>\n b < 128 ? (2 * a * b) / 255 : 255 * (1 - 2 * (1 - a / 255) * (1 - b / 255));\nconst burn = (a, b) => 255 * (1 - (1 - b / 255) / (a / 255));\nconst dodge = (a, b) => {\n if (a === 255) return 255;\n a = (255 * (b / 255)) / (1 - a / 255);\n return a > 255 ? 255 : a;\n};\n\n// # add = (a,b) ->\n// # if (a + b > 255) then 255 else a + b\n\nblend.normal = blend_f(each(normal));\nblend.multiply = blend_f(each(multiply));\nblend.screen = blend_f(each(screen));\nblend.overlay = blend_f(each(overlay));\nblend.darken = blend_f(each(darken));\nblend.lighten = blend_f(each(lighten));\nblend.dodge = blend_f(each(dodge));\nblend.burn = blend_f(each(burn));\n// blend.add = blend_f(each(add));\n\nexport default blend;\n","// cubehelix interpolation\n// based on D.A. Green \"A colour scheme for the display of astronomical intensity images\"\n// http://astron-soc.in/bulletin/11June/289392011.pdf\nimport { type, clip_rgb, TWOPI } from '../utils/index.js';\nimport chroma from '../chroma.js';\nconst { pow, sin, cos } = Math;\n\nexport default function (\n start = 300,\n rotations = -1.5,\n hue = 1,\n gamma = 1,\n lightness = [0, 1]\n) {\n let dh = 0,\n dl;\n if (type(lightness) === 'array') {\n dl = lightness[1] - lightness[0];\n } else {\n dl = 0;\n lightness = [lightness, lightness];\n }\n const f = function (fract) {\n const a = TWOPI * ((start + 120) / 360 + rotations * fract);\n const l = pow(lightness[0] + dl * fract, gamma);\n const h = dh !== 0 ? hue[0] + fract * dh : hue;\n const amp = (h * l * (1 - l)) / 2;\n const cos_a = cos(a);\n const sin_a = sin(a);\n const r = l + amp * (-0.14861 * cos_a + 1.78277 * sin_a);\n const g = l + amp * (-0.29227 * cos_a - 0.90649 * sin_a);\n const b = l + amp * (+1.97294 * cos_a);\n return chroma(clip_rgb([r * 255, g * 255, b * 255, 1]));\n };\n f.start = function (s) {\n if (s == null) {\n return start;\n }\n start = s;\n return f;\n };\n f.rotations = function (r) {\n if (r == null) {\n return rotations;\n }\n rotations = r;\n return f;\n };\n f.gamma = function (g) {\n if (g == null) {\n return gamma;\n }\n gamma = g;\n return f;\n };\n f.hue = function (h) {\n if (h == null) {\n return hue;\n }\n hue = h;\n if (type(hue) === 'array') {\n dh = hue[1] - hue[0];\n if (dh === 0) {\n hue = hue[1];\n }\n } else {\n dh = 0;\n }\n return f;\n };\n f.lightness = function (h) {\n if (h == null) {\n return lightness;\n }\n if (type(h) === 'array') {\n lightness = h;\n dl = h[1] - h[0];\n } else {\n lightness = [h, h];\n dl = 0;\n }\n return f;\n };\n f.scale = () => chroma.scale(f);\n f.hue(hue);\n return f;\n}\n","import Color from '../Color.js';\nconst digits = '0123456789abcdef';\n\nconst { floor, random } = Math;\n\nexport default () => {\n let code = '#';\n for (let i = 0; i < 6; i++) {\n code += digits.charAt(floor(random() * 16));\n }\n return new Color(code, 'hex');\n};\n","import type from './type.js';\n\nconst { log, pow, floor, abs } = Math;\n\nexport function analyze(data, key = null) {\n const r = {\n min: Number.MAX_VALUE,\n max: Number.MAX_VALUE * -1,\n sum: 0,\n values: [],\n count: 0\n };\n if (type(data) === 'object') {\n data = Object.values(data);\n }\n data.forEach((val) => {\n if (key && type(val) === 'object') val = val[key];\n if (val !== undefined && val !== null && !isNaN(val)) {\n r.values.push(val);\n r.sum += val;\n if (val < r.min) r.min = val;\n if (val > r.max) r.max = val;\n r.count += 1;\n }\n });\n\n r.domain = [r.min, r.max];\n\n r.limits = (mode, num) => limits(r, mode, num);\n\n return r;\n}\n\nexport function limits(data, mode = 'equal', num = 7) {\n if (type(data) == 'array') {\n data = analyze(data);\n }\n const { min, max } = data;\n const values = data.values.sort((a, b) => a - b);\n\n if (num === 1) {\n return [min, max];\n }\n\n const limits = [];\n\n if (mode.substr(0, 1) === 'c') {\n // continuous\n limits.push(min);\n limits.push(max);\n }\n\n if (mode.substr(0, 1) === 'e') {\n // equal interval\n limits.push(min);\n for (let i = 1; i < num; i++) {\n limits.push(min + (i / num) * (max - min));\n }\n limits.push(max);\n } else if (mode.substr(0, 1) === 'l') {\n // log scale\n if (min <= 0) {\n throw new Error(\n 'Logarithmic scales are only possible for values > 0'\n );\n }\n const min_log = Math.LOG10E * log(min);\n const max_log = Math.LOG10E * log(max);\n limits.push(min);\n for (let i = 1; i < num; i++) {\n limits.push(pow(10, min_log + (i / num) * (max_log - min_log)));\n }\n limits.push(max);\n } else if (mode.substr(0, 1) === 'q') {\n // quantile scale\n limits.push(min);\n for (let i = 1; i < num; i++) {\n const p = ((values.length - 1) * i) / num;\n const pb = floor(p);\n if (pb === p) {\n limits.push(values[pb]);\n } else {\n // p > pb\n const pr = p - pb;\n limits.push(values[pb] * (1 - pr) + values[pb + 1] * pr);\n }\n }\n limits.push(max);\n } else if (mode.substr(0, 1) === 'k') {\n // k-means clustering\n /*\n implementation based on\n http://code.google.com/p/figue/source/browse/trunk/figue.js#336\n simplified for 1-d input values\n */\n let cluster;\n const n = values.length;\n const assignments = new Array(n);\n const clusterSizes = new Array(num);\n let repeat = true;\n let nb_iters = 0;\n let centroids = null;\n\n // get seed values\n centroids = [];\n centroids.push(min);\n for (let i = 1; i < num; i++) {\n centroids.push(min + (i / num) * (max - min));\n }\n centroids.push(max);\n\n while (repeat) {\n // assignment step\n for (let j = 0; j < num; j++) {\n clusterSizes[j] = 0;\n }\n for (let i = 0; i < n; i++) {\n const value = values[i];\n let mindist = Number.MAX_VALUE;\n let best;\n for (let j = 0; j < num; j++) {\n const dist = abs(centroids[j] - value);\n if (dist < mindist) {\n mindist = dist;\n best = j;\n }\n clusterSizes[best]++;\n assignments[i] = best;\n }\n }\n\n // update centroids step\n const newCentroids = new Array(num);\n for (let j = 0; j < num; j++) {\n newCentroids[j] = null;\n }\n for (let i = 0; i < n; i++) {\n cluster = assignments[i];\n if (newCentroids[cluster] === null) {\n newCentroids[cluster] = values[i];\n } else {\n newCentroids[cluster] += values[i];\n }\n }\n for (let j = 0; j < num; j++) {\n newCentroids[j] *= 1 / clusterSizes[j];\n }\n\n // check convergence\n repeat = false;\n for (let j = 0; j < num; j++) {\n if (newCentroids[j] !== centroids[j]) {\n repeat = true;\n break;\n }\n }\n\n centroids = newCentroids;\n nb_iters++;\n\n if (nb_iters > 200) {\n repeat = false;\n }\n }\n\n // finished k-means clustering\n // the next part is borrowed from gabrielflor.it\n const kClusters = {};\n for (let j = 0; j < num; j++) {\n kClusters[j] = [];\n }\n for (let i = 0; i < n; i++) {\n cluster = assignments[i];\n kClusters[cluster].push(values[i]);\n }\n let tmpKMeansBreaks = [];\n for (let j = 0; j < num; j++) {\n tmpKMeansBreaks.push(kClusters[j][0]);\n tmpKMeansBreaks.push(kClusters[j][kClusters[j].length - 1]);\n }\n tmpKMeansBreaks = tmpKMeansBreaks.sort((a, b) => a - b);\n limits.push(tmpKMeansBreaks[0]);\n for (let i = 1; i < tmpKMeansBreaks.length; i += 2) {\n const v = tmpKMeansBreaks[i];\n if (!isNaN(v) && limits.indexOf(v) === -1) {\n limits.push(v);\n }\n }\n }\n return limits;\n}\n","import Color from '../Color.js';\nimport '../ops/luminance.js';\n\nexport default (a, b) => {\n // WCAG contrast ratio\n // see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n a = new Color(a);\n b = new Color(b);\n const l1 = a.luminance();\n const l2 = b.luminance();\n return l1 > l2 ? (l1 + 0.05) / (l2 + 0.05) : (l2 + 0.05) / (l1 + 0.05);\n};\n","import Color from '../Color.js';\nimport mix from '../generator/mix.js';\n\n/**\n * @license\n *\n * The APCA contrast prediction algorithm is based of the formulas published\n * in the APCA-1.0.98G specification by Myndex. The specification is available at:\n * https://raw.githubusercontent.com/Myndex/apca-w3/master/images/APCAw3_0.1.17_APCA0.0.98G.svg\n *\n * Note that the APCA implementation is still beta, so please update to\n * future versions of chroma.js when they become available.\n *\n * You can read more about the APCA Readability Criterion at\n * https://readtech.org/ARC/\n */\n\n// constants\nconst W_offset = 0.027;\nconst P_in = 0.0005;\nconst P_out = 0.1;\nconst R_scale = 1.14;\nconst B_threshold = 0.022;\nconst B_exp = 1.414;\n\nexport default (text, bg) => {\n // parse input colors\n text = new Color(text);\n bg = new Color(bg);\n // if text color has alpha, blend against background\n if (text.alpha() < 1) {\n text = mix(bg, text, text.alpha(), 'rgb');\n }\n const l_text = lum(...text.rgb());\n const l_bg = lum(...bg.rgb());\n\n // soft clamp black levels\n const Y_text =\n l_text >= B_threshold\n ? l_text\n : l_text + Math.pow(B_threshold - l_text, B_exp);\n const Y_bg =\n l_bg >= B_threshold ? l_bg : l_bg + Math.pow(B_threshold - l_bg, B_exp);\n\n // normal polarity (dark text on light background)\n const S_norm = Math.pow(Y_bg, 0.56) - Math.pow(Y_text, 0.57);\n // reverse polarity (light text on dark background)\n const S_rev = Math.pow(Y_bg, 0.65) - Math.pow(Y_text, 0.62);\n // clamp noise then scale\n const C =\n Math.abs(Y_bg - Y_text) < P_in\n ? 0\n : Y_text < Y_bg\n ? S_norm * R_scale\n : S_rev * R_scale;\n // clamp minimum contrast then offset\n const S_apc = Math.abs(C) < P_out ? 0 : C > 0 ? C - W_offset : C + W_offset;\n // scale to 100\n return S_apc * 100;\n};\n\nfunction lum(r, g, b) {\n return (\n 0.2126729 * Math.pow(r / 255, 2.4) +\n 0.7151522 * Math.pow(g / 255, 2.4) +\n 0.072175 * Math.pow(b / 255, 2.4)\n );\n}\n","import Color from '../Color.js';\nconst { sqrt, pow, min, max, atan2, abs, cos, sin, exp, PI } = Math;\n\nexport default function (a, b, Kl = 1, Kc = 1, Kh = 1) {\n // Delta E (CIE 2000)\n // see http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CIE2000.html\n var rad2deg = function (rad) {\n return (360 * rad) / (2 * PI);\n };\n var deg2rad = function (deg) {\n return (2 * PI * deg) / 360;\n };\n a = new Color(a);\n b = new Color(b);\n const [L1, a1, b1] = Array.from(a.lab());\n const [L2, a2, b2] = Array.from(b.lab());\n const avgL = (L1 + L2) / 2;\n const C1 = sqrt(pow(a1, 2) + pow(b1, 2));\n const C2 = sqrt(pow(a2, 2) + pow(b2, 2));\n const avgC = (C1 + C2) / 2;\n const G = 0.5 * (1 - sqrt(pow(avgC, 7) / (pow(avgC, 7) + pow(25, 7))));\n const a1p = a1 * (1 + G);\n const a2p = a2 * (1 + G);\n const C1p = sqrt(pow(a1p, 2) + pow(b1, 2));\n const C2p = sqrt(pow(a2p, 2) + pow(b2, 2));\n const avgCp = (C1p + C2p) / 2;\n const arctan1 = rad2deg(atan2(b1, a1p));\n const arctan2 = rad2deg(atan2(b2, a2p));\n const h1p = arctan1 >= 0 ? arctan1 : arctan1 + 360;\n const h2p = arctan2 >= 0 ? arctan2 : arctan2 + 360;\n const avgHp =\n abs(h1p - h2p) > 180 ? (h1p + h2p + 360) / 2 : (h1p + h2p) / 2;\n const T =\n 1 -\n 0.17 * cos(deg2rad(avgHp - 30)) +\n 0.24 * cos(deg2rad(2 * avgHp)) +\n 0.32 * cos(deg2rad(3 * avgHp + 6)) -\n 0.2 * cos(deg2rad(4 * avgHp - 63));\n let deltaHp = h2p - h1p;\n deltaHp =\n abs(deltaHp) <= 180\n ? deltaHp\n : h2p <= h1p\n ? deltaHp + 360\n : deltaHp - 360;\n deltaHp = 2 * sqrt(C1p * C2p) * sin(deg2rad(deltaHp) / 2);\n const deltaL = L2 - L1;\n const deltaCp = C2p - C1p;\n const sl = 1 + (0.015 * pow(avgL - 50, 2)) / sqrt(20 + pow(avgL - 50, 2));\n const sc = 1 + 0.045 * avgCp;\n const sh = 1 + 0.015 * avgCp * T;\n const deltaTheta = 30 * exp(-pow((avgHp - 275) / 25, 2));\n const Rc = 2 * sqrt(pow(avgCp, 7) / (pow(avgCp, 7) + pow(25, 7)));\n const Rt = -Rc * sin(2 * deg2rad(deltaTheta));\n const result = sqrt(\n pow(deltaL / (Kl * sl), 2) +\n pow(deltaCp / (Kc * sc), 2) +\n pow(deltaHp / (Kh * sh), 2) +\n Rt * (deltaCp / (Kc * sc)) * (deltaHp / (Kh * sh))\n );\n return max(0, min(100, result));\n}\n","import Color from '../Color.js';\n\n// simple Euclidean distance\nexport default function (a, b, mode = 'lab') {\n // Delta E (CIE 1976)\n // see http://www.brucelindbloom.com/index.html?Equations.html\n a = new Color(a);\n b = new Color(b);\n const l1 = a.get(mode);\n const l2 = b.get(mode);\n let sum_sq = 0;\n for (let i in l1) {\n const d = (l1[i] || 0) - (l2[i] || 0);\n sum_sq += d * d;\n }\n return Math.sqrt(sum_sq);\n}\n","import Color from '../Color.js';\n\nexport default (...args) => {\n try {\n new Color(...args);\n return true;\n // eslint-disable-next-line\n } catch (e) {\n return false;\n }\n};\n","// some pre-defined color scales:\nimport chroma from '../chroma.js';\nimport '../io/hsl/index.js';\nimport scale from '../generator/scale.js';\n\nexport default {\n cool() {\n return scale([chroma.hsl(180, 1, 0.9), chroma.hsl(250, 0.7, 0.4)]);\n },\n hot() {\n return scale(['#000', '#f00', '#ff0', '#fff'], [0, 0.25, 0.75, 1]).mode(\n 'rgb'\n );\n }\n};\n","/**\n ColorBrewer colors for chroma.js\n\n Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The\n Pennsylvania State University.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software distributed\n under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n CONDITIONS OF ANY KIND, either express or implied. See the License for the\n specific language governing permissions and limitations under the License.\n*/\n\nconst colorbrewer = {\n // sequential\n OrRd: ['#fff7ec', '#fee8c8', '#fdd49e', '#fdbb84', '#fc8d59', '#ef6548', '#d7301f', '#b30000', '#7f0000'],\n PuBu: ['#fff7fb', '#ece7f2', '#d0d1e6', '#a6bddb', '#74a9cf', '#3690c0', '#0570b0', '#045a8d', '#023858'],\n BuPu: ['#f7fcfd', '#e0ecf4', '#bfd3e6', '#9ebcda', '#8c96c6', '#8c6bb1', '#88419d', '#810f7c', '#4d004b'],\n Oranges: ['#fff5eb', '#fee6ce', '#fdd0a2', '#fdae6b', '#fd8d3c', '#f16913', '#d94801', '#a63603', '#7f2704'],\n BuGn: ['#f7fcfd', '#e5f5f9', '#ccece6', '#99d8c9', '#66c2a4', '#41ae76', '#238b45', '#006d2c', '#00441b'],\n YlOrBr: ['#ffffe5', '#fff7bc', '#fee391', '#fec44f', '#fe9929', '#ec7014', '#cc4c02', '#993404', '#662506'],\n YlGn: ['#ffffe5', '#f7fcb9', '#d9f0a3', '#addd8e', '#78c679', '#41ab5d', '#238443', '#006837', '#004529'],\n Reds: ['#fff5f0', '#fee0d2', '#fcbba1', '#fc9272', '#fb6a4a', '#ef3b2c', '#cb181d', '#a50f15', '#67000d'],\n RdPu: ['#fff7f3', '#fde0dd', '#fcc5c0', '#fa9fb5', '#f768a1', '#dd3497', '#ae017e', '#7a0177', '#49006a'],\n Greens: ['#f7fcf5', '#e5f5e0', '#c7e9c0', '#a1d99b', '#74c476', '#41ab5d', '#238b45', '#006d2c', '#00441b'],\n YlGnBu: ['#ffffd9', '#edf8b1', '#c7e9b4', '#7fcdbb', '#41b6c4', '#1d91c0', '#225ea8', '#253494', '#081d58'],\n Purples: ['#fcfbfd', '#efedf5', '#dadaeb', '#bcbddc', '#9e9ac8', '#807dba', '#6a51a3', '#54278f', '#3f007d'],\n GnBu: ['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#2b8cbe', '#0868ac', '#084081'],\n Greys: ['#ffffff', '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000'],\n YlOrRd: ['#ffffcc', '#ffeda0', '#fed976', '#feb24c', '#fd8d3c', '#fc4e2a', '#e31a1c', '#bd0026', '#800026'],\n PuRd: ['#f7f4f9', '#e7e1ef', '#d4b9da', '#c994c7', '#df65b0', '#e7298a', '#ce1256', '#980043', '#67001f'],\n Blues: ['#f7fbff', '#deebf7', '#c6dbef', '#9ecae1', '#6baed6', '#4292c6', '#2171b5', '#08519c', '#08306b'],\n PuBuGn: ['#fff7fb', '#ece2f0', '#d0d1e6', '#a6bddb', '#67a9cf', '#3690c0', '#02818a', '#016c59', '#014636'],\n Viridis: ['#440154', '#482777', '#3f4a8a', '#31678e', '#26838f', '#1f9d8a', '#6cce5a', '#b6de2b', '#fee825'],\n\n // diverging\n Spectral: ['#9e0142', '#d53e4f', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#e6f598', '#abdda4', '#66c2a5', '#3288bd', '#5e4fa2'],\n RdYlGn: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#d9ef8b', '#a6d96a', '#66bd63', '#1a9850', '#006837'],\n RdBu: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#f7f7f7', '#d1e5f0', '#92c5de', '#4393c3', '#2166ac', '#053061'],\n PiYG: ['#8e0152', '#c51b7d', '#de77ae', '#f1b6da', '#fde0ef', '#f7f7f7', '#e6f5d0', '#b8e186', '#7fbc41', '#4d9221', '#276419'],\n PRGn: ['#40004b', '#762a83', '#9970ab', '#c2a5cf', '#e7d4e8', '#f7f7f7', '#d9f0d3', '#a6dba0', '#5aae61', '#1b7837', '#00441b'],\n RdYlBu: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4', '#313695'],\n BrBG: ['#543005', '#8c510a', '#bf812d', '#dfc27d', '#f6e8c3', '#f5f5f5', '#c7eae5', '#80cdc1', '#35978f', '#01665e', '#003c30'],\n RdGy: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#ffffff', '#e0e0e0', '#bababa', '#878787', '#4d4d4d', '#1a1a1a'],\n PuOr: ['#7f3b08', '#b35806', '#e08214', '#fdb863', '#fee0b6', '#f7f7f7', '#d8daeb', '#b2abd2', '#8073ac', '#542788', '#2d004b'],\n\n // qualitative\n Set2: ['#66c2a5', '#fc8d62', '#8da0cb', '#e78ac3', '#a6d854', '#ffd92f', '#e5c494', '#b3b3b3'],\n Accent: ['#7fc97f', '#beaed4', '#fdc086', '#ffff99', '#386cb0', '#f0027f', '#bf5b17', '#666666'],\n Set1: ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00', '#ffff33', '#a65628', '#f781bf', '#999999'],\n Set3: ['#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3', '#fdb462', '#b3de69', '#fccde5', '#d9d9d9', '#bc80bd', '#ccebc5', '#ffed6f'],\n Dark2: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666666'],\n Paired: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'],\n Pastel2: ['#b3e2cd', '#fdcdac', '#cbd5e8', '#f4cae4', '#e6f5c9', '#fff2ae', '#f1e2cc', '#cccccc'],\n Pastel1: ['#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4', '#fed9a6', '#ffffcc', '#e5d8bd', '#fddaec', '#f2f2f2']\n};\n\nconst colorbrewerTypes = Object.keys(colorbrewer);\nconst typeMap = new Map(colorbrewerTypes.map((key) => [key.toLowerCase(), key]));\n\n// use Proxy to allow case-insensitive access to palettes\nconst colorbrewerProxy =\n typeof Proxy === 'function'\n ? new Proxy(colorbrewer, {\n get(target, prop) {\n const lower = prop.toLowerCase();\n if (typeMap.has(lower)) {\n return target[typeMap.get(lower)];\n }\n },\n getOwnPropertyNames() {\n return Object.getOwnPropertyNames(colorbrewerTypes);\n }\n })\n : colorbrewer;\n\nexport default colorbrewerProxy;\n","import { unpack } from '../../utils/index.js';\n\nconst cmyk2rgb = (...args) => {\n args = unpack(args, 'cmyk');\n const [c, m, y, k] = args;\n const alpha = args.length > 4 ? args[4] : 1;\n if (k === 1) return [0, 0, 0, alpha];\n return [\n c >= 1 ? 0 : 255 * (1 - c) * (1 - k), // r\n m >= 1 ? 0 : 255 * (1 - m) * (1 - k), // g\n y >= 1 ? 0 : 255 * (1 - y) * (1 - k), // b\n alpha\n ];\n};\n\nexport default cmyk2rgb;\n","import { unpack } from '../../utils/index.js';\nconst { max } = Math;\n\nconst rgb2cmyk = (...args) => {\n let [r, g, b] = unpack(args, 'rgb');\n r = r / 255;\n g = g / 255;\n b = b / 255;\n const k = 1 - max(r, max(g, b));\n const f = k < 1 ? 1 / (1 - k) : 0;\n const c = (1 - r - k) * f;\n const m = (1 - g - k) * f;\n const y = (1 - b - k) * f;\n return [c, m, y, k];\n};\n\nexport default rgb2cmyk;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport { unpack, type } from '../../utils/index.js';\nimport cmyk2rgb from './cmyk2rgb.js';\nimport rgb2cmyk from './rgb2cmyk.js';\n\nColor.prototype.cmyk = function () {\n return rgb2cmyk(this._rgb);\n};\n\nconst cmyk = (...args) => new Color(...args, 'cmyk');\nObject.assign(chroma, { cmyk });\n\ninput.format.cmyk = cmyk2rgb;\n\ninput.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, 'cmyk');\n if (type(args) === 'array' && args.length === 4) {\n return 'cmyk';\n }\n }\n});\n\nexport { cmyk };\n","import { unpack, last, rnd2 } from '../../utils/index.js';\n\n/*\n * supported arguments:\n * - hsl2css(h,s,l)\n * - hsl2css(h,s,l,a)\n * - hsl2css([h,s,l], mode)\n * - hsl2css([h,s,l,a], mode)\n * - hsl2css({h,s,l,a}, mode)\n */\nconst hsl2css = (...args) => {\n const hsla = unpack(args, 'hsla');\n let mode = last(args) || 'lsa';\n hsla[0] = rnd2(hsla[0] || 0) + 'deg';\n hsla[1] = rnd2(hsla[1] * 100) + '%';\n hsla[2] = rnd2(hsla[2] * 100) + '%';\n if (mode === 'hsla' || (hsla.length > 3 && hsla[3] < 1)) {\n hsla[3] = '/ ' + (hsla.length > 3 ? hsla[3] : 1);\n mode = 'hsla';\n } else {\n hsla.length = 3;\n }\n return `${mode.substr(0, 3)}(${hsla.join(' ')})`;\n};\n\nexport default hsl2css;\n","import { unpack, last, rnd2 } from '../../utils/index.js';\n\n/*\n * supported arguments:\n * - lab2css(l,a,b)\n * - lab2css(l,a,b,alpha)\n * - lab2css([l,a,b], mode)\n * - lab2css([l,a,b,alpha], mode)\n */\nconst lab2css = (...args) => {\n const laba = unpack(args, 'lab');\n let mode = last(args) || 'lab';\n laba[0] = rnd2(laba[0]) + '%';\n laba[1] = rnd2(laba[1]);\n laba[2] = rnd2(laba[2]);\n if (mode === 'laba' || (laba.length > 3 && laba[3] < 1)) {\n laba[3] = '/ ' + (laba.length > 3 ? laba[3] : 1);\n } else {\n laba.length = 3;\n }\n return `lab(${laba.join(' ')})`;\n};\n\nexport default lab2css;\n","import { unpack, last, rnd2 } from '../../utils/index.js';\n\n/*\n * supported arguments:\n * - lab2css(l,a,b)\n * - lab2css(l,a,b,alpha)\n * - lab2css([l,a,b], mode)\n * - lab2css([l,a,b,alpha], mode)\n */\nconst lch2css = (...args) => {\n const lcha = unpack(args, 'lch');\n let mode = last(args) || 'lab';\n lcha[0] = rnd2(lcha[0]) + '%';\n lcha[1] = rnd2(lcha[1]);\n lcha[2] = isNaN(lcha[2]) ? 'none' : rnd2(lcha[2]) + 'deg'; // add deg unit to hue\n if (mode === 'lcha' || (lcha.length > 3 && lcha[3] < 1)) {\n lcha[3] = '/ ' + (lcha.length > 3 ? lcha[3] : 1);\n } else {\n lcha.length = 3;\n }\n return `lch(${lcha.join(' ')})`;\n};\n\nexport default lch2css;\n","import { unpack, rnd2, rnd3 } from '../../utils/index.js';\n\nconst oklab2css = (...args) => {\n const laba = unpack(args, 'lab');\n laba[0] = rnd2(laba[0] * 100) + '%';\n laba[1] = rnd3(laba[1]);\n laba[2] = rnd3(laba[2]);\n if (laba.length > 3 && laba[3] < 1) {\n laba[3] = '/ ' + (laba.length > 3 ? laba[3] : 1);\n } else {\n laba.length = 3;\n }\n return `oklab(${laba.join(' ')})`;\n};\n\nexport default oklab2css;\n","import { unpack } from '../../utils/index.js';\nimport rgb2oklab from '../oklab/rgb2oklab.js';\nimport lab2lch from '../lch/lab2lch.js';\n\nconst rgb2oklch = (...args) => {\n const [r, g, b, ...rest] = unpack(args, 'rgb');\n const [l, a, b_] = rgb2oklab(r, g, b);\n const [L, c, h] = lab2lch(l, a, b_);\n return [L, c, h, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\nexport default rgb2oklch;\n","import { unpack, rnd2, rnd3 } from '../../utils/index.js';\n\nconst oklch2css = (...args) => {\n const lcha = unpack(args, 'lch');\n lcha[0] = rnd2(lcha[0] * 100) + '%';\n lcha[1] = rnd3(lcha[1]);\n lcha[2] = isNaN(lcha[2]) ? 'none' : rnd2(lcha[2]) + 'deg'; // add deg unit to hue\n if (lcha.length > 3 && lcha[3] < 1) {\n lcha[3] = '/ ' + (lcha.length > 3 ? lcha[3] : 1);\n } else {\n lcha.length = 3;\n }\n return `oklch(${lcha.join(' ')})`;\n};\n\nexport default oklch2css;\n","import { unpack, last } from '../../utils/index.js';\nimport hsl2css from './hsl2css.js';\nimport rgb2hsl from '../hsl/rgb2hsl.js';\nimport lab2css from './lab2css.js';\nimport rgb2lab from '../lab/rgb2lab.js';\nimport lch2css from './lch2css.js';\nimport rgb2lch from '../lch/rgb2lch.js';\nimport rgb2oklab from '../oklab/rgb2oklab.js';\nimport oklab2css from './oklab2css.js';\nimport rgb2oklch from '../oklch/rgb2oklch.js';\nimport oklch2css from './oklch2css.js';\nimport { getLabWhitePoint, setLabWhitePoint } from '../lab/lab-constants.js';\nconst { round } = Math;\n\n/*\n * supported arguments:\n * - rgb2css(r,g,b)\n * - rgb2css(r,g,b,a)\n * - rgb2css([r,g,b], mode)\n * - rgb2css([r,g,b,a], mode)\n * - rgb2css({r,g,b,a}, mode)\n */\nconst rgb2css = (...args) => {\n const rgba = unpack(args, 'rgba');\n let mode = last(args) || 'rgb';\n if (mode.substr(0, 3) === 'hsl') {\n return hsl2css(rgb2hsl(rgba), mode);\n }\n if (mode.substr(0, 3) === 'lab') {\n // change to D50 lab whitepoint since this is what W3C is using for CSS Lab colors\n const prevWhitePoint = getLabWhitePoint();\n setLabWhitePoint('d50');\n const cssColor = lab2css(rgb2lab(rgba), mode);\n setLabWhitePoint(prevWhitePoint);\n return cssColor;\n }\n if (mode.substr(0, 3) === 'lch') {\n // change to D50 lab whitepoint since this is what W3C is using for CSS Lab colors\n const prevWhitePoint = getLabWhitePoint();\n setLabWhitePoint('d50');\n const cssColor = lch2css(rgb2lch(rgba), mode);\n setLabWhitePoint(prevWhitePoint);\n return cssColor;\n }\n if (mode.substr(0, 5) === 'oklab') {\n return oklab2css(rgb2oklab(rgba));\n }\n if (mode.substr(0, 5) === 'oklch') {\n return oklch2css(rgb2oklch(rgba));\n }\n rgba[0] = round(rgba[0]);\n rgba[1] = round(rgba[1]);\n rgba[2] = round(rgba[2]);\n if (mode === 'rgba' || (rgba.length > 3 && rgba[3] < 1)) {\n rgba[3] = '/ ' + (rgba.length > 3 ? rgba[3] : 1);\n mode = 'rgba';\n }\n return `${mode.substr(0, 3)}(${rgba.slice(0, mode === 'rgb' ? 3 : 4).join(' ')})`;\n};\n\nexport default rgb2css;\n","import { unpack } from '../../utils/index.js';\nimport lch2lab from '../lch/lch2lab.js';\nimport oklab2rgb from '../oklab/oklab2rgb.js';\n\nconst oklch2rgb = (...args) => {\n args = unpack(args, 'lch');\n const [l, c, h, ...rest] = args;\n const [L, a, b_] = lch2lab(l, c, h);\n const [r, g, b] = oklab2rgb(L, a, b_);\n return [r, g, b, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\nexport default oklch2rgb;\n","import hsl2rgb from '../hsl/hsl2rgb.js';\nimport lab2rgb from '../lab/lab2rgb.js';\nimport lch2rgb from '../lch/lch2rgb.js';\nimport oklab2rgb from '../oklab/oklab2rgb.js';\nimport oklch2rgb from '../oklch/oklch2rgb.js';\nimport input from '../input.js';\nimport limit from '../../utils/limit.js';\nimport { getLabWhitePoint, setLabWhitePoint } from '../lab/lab-constants.js';\n\nconst INT_OR_PCT = /((?:-?\\d+)|(?:-?\\d+(?:\\.\\d+)?)%|none)/.source;\nconst FLOAT_OR_PCT = /((?:-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)%?)|none)/.source;\nconst PCT = /((?:-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)%)|none)/.source;\nconst RE_S = /\\s*/.source;\nconst SEP = /\\s+/.source;\nconst COMMA = /\\s*,\\s*/.source;\nconst ANLGE = /((?:-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:deg)?)|none)/.source;\nconst ALPHA = /\\s*(?:\\/\\s*((?:[01]|[01]?\\.\\d+)|\\d+(?:\\.\\d+)?%))?/.source;\n\n// e.g. rgb(250 20 0), rgb(100% 50% 20%), rgb(100% 50% 20% / 0.5)\nconst RE_RGB = new RegExp(\n '^rgba?\\\\(' +\n RE_S +\n [INT_OR_PCT, INT_OR_PCT, INT_OR_PCT].join(SEP) +\n ALPHA +\n '\\\\)$'\n);\nconst RE_RGB_LEGACY = new RegExp(\n '^rgb\\\\(' +\n RE_S +\n [INT_OR_PCT, INT_OR_PCT, INT_OR_PCT].join(COMMA) +\n RE_S +\n '\\\\)$'\n);\nconst RE_RGBA_LEGACY = new RegExp(\n '^rgba\\\\(' +\n RE_S +\n [INT_OR_PCT, INT_OR_PCT, INT_OR_PCT, FLOAT_OR_PCT].join(COMMA) +\n RE_S +\n '\\\\)$'\n);\n\nconst RE_HSL = new RegExp(\n '^hsla?\\\\(' + RE_S + [ANLGE, PCT, PCT].join(SEP) + ALPHA + '\\\\)$'\n);\nconst RE_HSL_LEGACY = new RegExp(\n '^hsl?\\\\(' + RE_S + [ANLGE, PCT, PCT].join(COMMA) + RE_S + '\\\\)$'\n);\nconst RE_HSLA_LEGACY =\n /^hsla\\(\\s*(-?\\d+(?:\\.\\d+)?),\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)$/;\n\nconst RE_LAB = new RegExp(\n '^lab\\\\(' +\n RE_S +\n [FLOAT_OR_PCT, FLOAT_OR_PCT, FLOAT_OR_PCT].join(SEP) +\n ALPHA +\n '\\\\)$'\n);\nconst RE_LCH = new RegExp(\n '^lch\\\\(' +\n RE_S +\n [FLOAT_OR_PCT, FLOAT_OR_PCT, ANLGE].join(SEP) +\n ALPHA +\n '\\\\)$'\n);\nconst RE_OKLAB = new RegExp(\n '^oklab\\\\(' +\n RE_S +\n [FLOAT_OR_PCT, FLOAT_OR_PCT, FLOAT_OR_PCT].join(SEP) +\n ALPHA +\n '\\\\)$'\n);\nconst RE_OKLCH = new RegExp(\n '^oklch\\\\(' +\n RE_S +\n [FLOAT_OR_PCT, FLOAT_OR_PCT, ANLGE].join(SEP) +\n ALPHA +\n '\\\\)$'\n);\n\nconst { round } = Math;\n\nconst roundRGB = (rgb) => {\n return rgb.map((v, i) => (i <= 2 ? limit(round(v), 0, 255) : v));\n};\n\nconst percentToAbsolute = (pct, min = 0, max = 100, signed = false) => {\n if (typeof pct === 'string' && pct.endsWith('%')) {\n pct = parseFloat(pct.substring(0, pct.length - 1)) / 100;\n if (signed) {\n // signed percentages are in the range -100% to 100%\n pct = min + (pct + 1) * 0.5 * (max - min);\n } else {\n pct = min + pct * (max - min);\n }\n }\n return +pct;\n};\n\nconst noneToValue = (v, noneValue) => {\n return v === 'none' ? noneValue : v;\n};\n\nconst css2rgb = (css) => {\n css = css.toLowerCase().trim();\n\n if (css === 'transparent') {\n return [0, 0, 0, 0];\n }\n\n let m;\n\n if (input.format.named) {\n try {\n return input.format.named(css);\n // eslint-disable-next-line\n } catch (e) {}\n }\n\n // rgb(250 20 0) or rgb(250,20,0)\n if ((m = css.match(RE_RGB)) || (m = css.match(RE_RGB_LEGACY))) {\n let rgb = m.slice(1, 4);\n for (let i = 0; i < 3; i++) {\n rgb[i] = +percentToAbsolute(noneToValue(rgb[i], 0), 0, 255);\n }\n rgb = roundRGB(rgb);\n const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n rgb[3] = alpha; // default alpha\n return rgb;\n }\n\n // rgba(250,20,0,0.4)\n if ((m = css.match(RE_RGBA_LEGACY))) {\n const rgb = m.slice(1, 5);\n for (let i = 0; i < 4; i++) {\n rgb[i] = +percentToAbsolute(rgb[i], 0, 255);\n }\n return rgb;\n }\n\n // hsl(0,100%,50%)\n if ((m = css.match(RE_HSL)) || (m = css.match(RE_HSL_LEGACY))) {\n const hsl = m.slice(1, 4);\n hsl[0] = +noneToValue(hsl[0].replace('deg', ''), 0);\n hsl[1] = +percentToAbsolute(noneToValue(hsl[1], 0), 0, 100) * 0.01;\n hsl[2] = +percentToAbsolute(noneToValue(hsl[2], 0), 0, 100) * 0.01;\n const rgb = roundRGB(hsl2rgb(hsl));\n const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n rgb[3] = alpha;\n return rgb;\n }\n\n // hsla(0,100%,50%,0.5)\n if ((m = css.match(RE_HSLA_LEGACY))) {\n const hsl = m.slice(1, 4);\n hsl[1] *= 0.01;\n hsl[2] *= 0.01;\n const rgb = hsl2rgb(hsl);\n for (let i = 0; i < 3; i++) {\n rgb[i] = round(rgb[i]);\n }\n rgb[3] = +m[4]; // default alpha = 1\n return rgb;\n }\n\n if ((m = css.match(RE_LAB))) {\n const lab = m.slice(1, 4);\n lab[0] = percentToAbsolute(noneToValue(lab[0], 0), 0, 100);\n lab[1] = percentToAbsolute(noneToValue(lab[1], 0), -125, 125, true);\n lab[2] = percentToAbsolute(noneToValue(lab[2], 0), -125, 125, true);\n // convert to D50 Lab whitepoint\n const wp = getLabWhitePoint();\n setLabWhitePoint('d50');\n const rgb = roundRGB(lab2rgb(lab));\n // convert back to original Lab whitepoint\n setLabWhitePoint(wp);\n const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n rgb[3] = alpha;\n return rgb;\n }\n\n if ((m = css.match(RE_LCH))) {\n const lch = m.slice(1, 4);\n lch[0] = percentToAbsolute(lch[0], 0, 100);\n lch[1] = percentToAbsolute(noneToValue(lch[1], 0), 0, 150, false);\n lch[2] = +noneToValue(lch[2].replace('deg', ''), 0);\n // convert to D50 Lab whitepoint\n const wp = getLabWhitePoint();\n setLabWhitePoint('d50');\n const rgb = roundRGB(lch2rgb(lch));\n // convert back to original Lab whitepoint\n setLabWhitePoint(wp);\n const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n rgb[3] = alpha;\n return rgb;\n }\n\n if ((m = css.match(RE_OKLAB))) {\n const oklab = m.slice(1, 4);\n oklab[0] = percentToAbsolute(noneToValue(oklab[0], 0), 0, 1);\n oklab[1] = percentToAbsolute(noneToValue(oklab[1], 0), -0.4, 0.4, true);\n oklab[2] = percentToAbsolute(noneToValue(oklab[2], 0), -0.4, 0.4, true);\n const rgb = roundRGB(oklab2rgb(oklab));\n const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n rgb[3] = alpha;\n return rgb;\n }\n\n if ((m = css.match(RE_OKLCH))) {\n const oklch = m.slice(1, 4);\n oklch[0] = percentToAbsolute(noneToValue(oklch[0], 0), 0, 1);\n oklch[1] = percentToAbsolute(noneToValue(oklch[1], 0), 0, 0.4, false);\n oklch[2] = +noneToValue(oklch[2].replace('deg', ''), 0);\n const rgb = roundRGB(oklch2rgb(oklch));\n const alpha = m[4] !== undefined ? +percentToAbsolute(m[4], 0, 1) : 1;\n rgb[3] = alpha;\n return rgb;\n }\n};\n\ncss2rgb.test = (s) => {\n return (\n // modern\n RE_RGB.test(s) ||\n RE_HSL.test(s) ||\n RE_LAB.test(s) ||\n RE_LCH.test(s) ||\n RE_OKLAB.test(s) ||\n RE_OKLCH.test(s) ||\n // legacy\n RE_RGB_LEGACY.test(s) ||\n RE_RGBA_LEGACY.test(s) ||\n RE_HSL_LEGACY.test(s) ||\n RE_HSLA_LEGACY.test(s) ||\n s === 'transparent'\n );\n};\n\nexport default css2rgb;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport { type } from '../../utils/index.js';\n\nimport rgb2css from './rgb2css.js';\nimport css2rgb from './css2rgb.js';\n\nColor.prototype.css = function (mode) {\n return rgb2css(this._rgb, mode);\n};\n\nconst css = (...args) => new Color(...args, 'css');\nchroma.css = css;\n\ninput.format.css = css2rgb;\n\ninput.autodetect.push({\n p: 5,\n test: (h, ...rest) => {\n if (!rest.length && type(h) === 'string' && css2rgb.test(h)) {\n return 'css';\n }\n }\n});\n\nexport { css };\n","import Color from '../../Color.js';\nimport chroma from '../../chroma.js';\nimport input from '../input.js';\nimport { unpack } from '../../utils/index.js';\n\ninput.format.gl = (...args) => {\n const rgb = unpack(args, 'rgba');\n rgb[0] *= 255;\n rgb[1] *= 255;\n rgb[2] *= 255;\n return rgb;\n};\n\nconst gl = (...args) => new Color(...args, 'gl');\nchroma.gl = gl;\n\nColor.prototype.gl = function () {\n const rgb = this._rgb;\n return [rgb[0] / 255, rgb[1] / 255, rgb[2] / 255, rgb[3]];\n};\n\nexport { gl };\n","import Color from '../../Color.js';\nimport chroma from '../../chroma.js';\nimport { type } from '../../utils/index.js';\nimport input from '../input.js';\nimport hex2rgb from './hex2rgb.js';\nimport rgb2hex from './rgb2hex.js';\n\nColor.prototype.hex = function (mode) {\n return rgb2hex(this._rgb, mode);\n};\n\nconst hex = (...args) => new Color(...args, 'hex');\nchroma.hex = hex;\n\ninput.format.hex = hex2rgb;\ninput.autodetect.push({\n p: 4,\n test: (h, ...rest) => {\n if (\n !rest.length &&\n type(h) === 'string' &&\n [3, 4, 5, 6, 7, 8, 9].indexOf(h.length) >= 0\n ) {\n return 'hex';\n }\n }\n});\n\nexport { hex };\n","/*\n * Based on implementation by Neil Bartlett\n * https://github.com/neilbartlett/color-temperature\n */\n\nconst { log } = Math;\n\nconst temperature2rgb = (kelvin) => {\n const temp = kelvin / 100;\n let r, g, b;\n if (temp < 66) {\n r = 255;\n g =\n temp < 6\n ? 0\n : -155.25485562709179 -\n 0.44596950469579133 * (g = temp - 2) +\n 104.49216199393888 * log(g);\n b =\n temp < 20\n ? 0\n : -254.76935184120902 +\n 0.8274096064007395 * (b = temp - 10) +\n 115.67994401066147 * log(b);\n } else {\n r =\n 351.97690566805693 +\n 0.114206453784165 * (r = temp - 55) -\n 40.25366309332127 * log(r);\n g =\n 325.4494125711974 +\n 0.07943456536662342 * (g = temp - 50) -\n 28.0852963507957 * log(g);\n b = 255;\n }\n return [r, g, b, 1];\n};\n\nexport default temperature2rgb;\n","/*\n * Based on implementation by Neil Bartlett\n * https://github.com/neilbartlett/color-temperature\n **/\n\nimport temperature2rgb from './temperature2rgb.js';\nimport { unpack } from '../../utils/index.js';\nconst { round } = Math;\n\nconst rgb2temperature = (...args) => {\n const rgb = unpack(args, 'rgb');\n const r = rgb[0],\n b = rgb[2];\n let minTemp = 1000;\n let maxTemp = 40000;\n const eps = 0.4;\n let temp;\n while (maxTemp - minTemp > eps) {\n temp = (maxTemp + minTemp) * 0.5;\n const rgb = temperature2rgb(temp);\n if (rgb[2] / rgb[0] >= b / r) {\n maxTemp = temp;\n } else {\n minTemp = temp;\n }\n }\n return round(temp);\n};\n\nexport default rgb2temperature;\n","import chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport temperature2rgb from './temperature2rgb.js';\nimport rgb2temperature from './rgb2temperature.js';\n\nColor.prototype.temp =\n Color.prototype.kelvin =\n Color.prototype.temperature =\n function () {\n return rgb2temperature(this._rgb);\n };\n\nconst temp = (...args) => new Color(...args, 'temp');\nObject.assign(chroma, { temp, kelvin: temp, temperature: temp });\n\ninput.format.temp =\n input.format.kelvin =\n input.format.temperature =\n temperature2rgb;\n\nexport { temp, temp as kelvin, temp as temperature };\n","import { unpack, type } from '../../utils/index.js';\nimport chroma from '../../chroma.js';\nimport Color from '../../Color.js';\nimport input from '../input.js';\nimport oklch2rgb from './oklch2rgb.js';\nimport rgb2oklch from './rgb2oklch.js';\n\nColor.prototype.oklch = function () {\n return rgb2oklch(this._rgb);\n};\n\nconst oklch = (...args) => new Color(...args, 'oklch');\nObject.assign(chroma, { oklch });\n\ninput.format.oklch = oklch2rgb;\n\ninput.autodetect.push({\n p: 2,\n test: (...args) => {\n args = unpack(args, 'oklch');\n if (type(args) === 'array' && args.length === 3) {\n return 'oklch';\n }\n }\n});\n\nexport { oklch };\n","// feel free to comment out anything to rollup\n// a smaller chroma.js bundle\nimport chroma from './src/chroma.js';\n\n// io --> convert colors\nimport './src/io/named/index.js';\n\n// operators --> modify existing Colors\nimport './src/ops/alpha.js';\nimport './src/ops/clipped.js';\nimport './src/ops/darken.js';\nimport './src/ops/get.js';\nimport './src/ops/luminance.js';\nimport './src/ops/mix.js';\nimport './src/ops/premultiply.js';\nimport './src/ops/saturate.js';\nimport './src/ops/set.js';\nimport './src/ops/shade.js';\n\n// interpolators\nimport './src/interpolator/rgb.js';\nimport './src/interpolator/lrgb.js';\nimport './src/interpolator/lab.js';\nimport './src/interpolator/lch.js';\nimport './src/interpolator/num.js';\nimport './src/interpolator/hcg.js';\nimport './src/interpolator/hsi.js';\nimport './src/interpolator/hsl.js';\nimport './src/interpolator/hsv.js';\nimport './src/interpolator/oklab.js';\nimport './src/interpolator/oklch.js';\n\n// generators -- > create new colors\nimport average from './src/generator/average.js';\nimport bezier from './src/generator/bezier.js';\nimport blend from './src/generator/blend.js';\nimport cubehelix from './src/generator/cubehelix.js';\nimport mix from './src/generator/mix.js';\nimport random from './src/generator/random.js';\nimport scale from './src/generator/scale.js';\n\n// other utility methods\nimport { analyze } from './src/utils/analyze.js';\nimport contrast from './src/utils/contrast.js';\nimport contrastAPCA from './src/utils/contrastAPCA.js';\nimport deltaE from './src/utils/delta-e.js';\nimport distance from './src/utils/distance.js';\nimport { limits } from './src/utils/analyze.js';\nimport valid from './src/utils/valid.js';\nimport input from './src/io/input.js';\n\n// scale\nimport scales from './src/utils/scales.js';\n\n// colors\nimport colors from './src/colors/w3cx11.js';\nimport brewer from './src/colors/colorbrewer.js';\nimport Color from './src/Color.js';\n\nObject.assign(chroma, {\n analyze,\n average,\n bezier,\n blend,\n brewer,\n Color,\n colors,\n contrast,\n contrastAPCA,\n cubehelix,\n deltaE,\n distance,\n input,\n interpolate: mix,\n limits,\n mix,\n random,\n scale,\n scales,\n valid\n});\n\nexport default chroma;\n\nexport {\n analyze,\n average,\n bezier,\n blend,\n brewer,\n Color,\n colors,\n contrast,\n contrastAPCA,\n cubehelix,\n deltaE,\n distance,\n input,\n limits,\n mix,\n mix as interpolate,\n random,\n scale,\n scales,\n valid\n};\n\nexport * from './src/io/cmyk/index.js';\nexport * from './src/io/css/index.js';\nexport * from './src/io/gl/index.js';\nexport * from './src/io/hcg/index.js';\nexport * from './src/io/hex/index.js';\nexport * from './src/io/hsi/index.js';\nexport * from './src/io/hsl/index.js';\nexport * from './src/io/hsv/index.js';\nexport * from './src/io/lab/index.js';\nexport * from './src/io/lch/index.js';\nexport * from './src/io/num/index.js';\nexport * from './src/io/rgb/index.js';\nexport * from './src/io/temp/index.js';\nexport * from './src/io/oklab/index.js';\nexport * from './src/io/oklch/index.js';\n","import chroma from 'chroma-js';\n\nexport const isColorValid = (value: string) => chroma.valid(value);\n\nexport const setColorAlpha = (value: string, alpha: number) => {\n if (!chroma.valid(value)) return value;\n return chroma(value).alpha(alpha).css(); // returns rgba string\n};\n"],"names":["min","max","limit","x","low","high","clip_rgb","rgb","i","classToType","name","type","obj","unpack","args","keyOrder","k","last","l","PI","rnd2","a","rnd3","TWOPI","PITHIRD","DEG2RAD","RAD2DEG","reverse3","arr","input","Color","me","mode","autodetect","_input","b","chk","version","chroma","w3cx11","RE_HEX","RE_HEXA","hex2rgb","hex","u","r","g","round","rgb2hex","str","hxa","n","h","rest","mutate","labConstants","ILLUMINANTS","setLabWhitePoint","ill","getLabWhitePoint","lab2rgb","L","y","z","lab2xyz","b_","xyz2rgb","kE","kK","kKE","Xn","Yn","Zn","LAB_CONSTANTS","fy","fx","fz","fx3","fz3","xr","yr","zr","compand","linear","sign","MtxAdaptMa","MtxAdaptMaI","MtxXYZ2RGB","RefWhiteRGB","As","Bs","Cs","Ad","Bd","Cd","X1","Y1","Z1","X2","Y2","Z2","rgb2lab","rgb2xyz","xyz2lab","gammaAdjustSRGB","companded","MtxRGB2XYZ","X","Z","lab","amount","mc","channel","src","pow","EPS","MAX_ITER","lum","cur_lum","max_iter","test","mid","lm","rgb2luminance","luminance_x","index","mix","col1","col2","f","interpolator","sin","cos","lch2lab","c","lch2rgb","hcl2rgb","hcl","sqrt","atan2","lab2lch","rgb2lch","lch","m","value","out","xyz0","xyz1","lrgb","x1","y1","z1","x2","y2","z2","interpolate_hsx","hue0","hue1","sat0","sat1","lbv0","lbv1","sat","hue","lbv","dh","num2rgb","num","rgb2num","c1","c2","floor","hcg2rgb","_g","_c","p","q","t","v","rgb2hcg","minRgb","maxRgb","delta","hcg","hsi2rgb","s","acos","rgb2hsi","min_","hsi","hsl2rgb","t3","t2","t1","h_","rgb2hsl","hsl","hsv2rgb","max_","rgb2hsv","hsv","multiplyMatrices","A","B","B_cols","_","product","row","col","oklab2rgb","Y","OKLab_to_XYZ","OKLab","LMStoXYZ","OKLabtoLMS","LMSnl","rgb2oklab","xyz","XYZ_to_OKLab","XYZ","XYZtoLMS","LMStoOKLab","LMS","oklab","oklch","average","colors","weights","w","_average_lrgb","first","cnt","dx","dy","alpha","ci","xyz2","scale","_mode","_nacol","_spread","_domain","_pos","_padding","_classes","_colors","_out","_min","_max","_correctLightness","_colorCache","_useCache","_gamma","setColors","resetCache","getClass","tMapLightness","tMapDomain","getColor","val","bypassMap","classes","d","domain","tOut","tBreaks","_m","_o","L0","L1","pol","L_actual","L_ideal","L_diff","t0","numColors","result","dm","dd","__range__","samples","end","asc","left","right","inclusive","range","ascending","binom_row","newrow","j","bezier","I","lab0","lab1","lab2","lab3","labs","sum","el","bezier$1","rnd","rgba","blend","bottom","top","blend_f","c0","each","normal","multiply","darken","lighten","screen","overlay","burn","dodge","cubehelix","start","rotations","gamma","lightness","dl","fract","amp","cos_a","sin_a","digits","random","random$1","code","log","abs","analyze","data","key","limits","values","min_log","max_log","pb","pr","cluster","assignments","clusterSizes","repeat","nb_iters","centroids","mindist","best","dist","newCentroids","kClusters","tmpKMeansBreaks","contrast","l1","l2","W_offset","P_in","P_out","R_scale","B_threshold","B_exp","contrastAPCA","text","bg","l_text","l_bg","Y_text","Y_bg","S_norm","S_rev","C","exp","deltaE","Kl","Kc","Kh","rad2deg","rad","deg2rad","deg","a1","b1","L2","a2","b2","avgL","C1","C2","avgC","G","a1p","a2p","C1p","C2p","avgCp","arctan1","arctan2","h1p","h2p","avgHp","T","deltaHp","deltaL","deltaCp","sl","sc","sh","deltaTheta","Rt","distance","sum_sq","valid","scales","colorbrewer","colorbrewerTypes","typeMap","colorbrewerProxy","target","prop","lower","cmyk2rgb","rgb2cmyk","cmyk","hsl2css","hsla","lab2css","laba","lch2css","lcha","oklab2css","rgb2oklch","oklch2css","rgb2css","prevWhitePoint","cssColor","oklch2rgb","INT_OR_PCT","FLOAT_OR_PCT","PCT","RE_S","SEP","COMMA","ANLGE","ALPHA","RE_RGB","RE_RGB_LEGACY","RE_RGBA_LEGACY","RE_HSL","RE_HSL_LEGACY","RE_HSLA_LEGACY","RE_LAB","RE_LCH","RE_OKLAB","RE_OKLCH","roundRGB","percentToAbsolute","pct","signed","noneToValue","noneValue","css2rgb","css","wp","gl","temperature2rgb","kelvin","temp","rgb2temperature","minTemp","maxTemp","eps","brewer","isColorValid","setColorAlpha"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101]}