@pixerate/editor 0.237.0 → 0.238.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 (88) hide show
  1. package/dist/agent/index.cjs +40 -39
  2. package/dist/agent/index.js +9 -8
  3. package/dist/animation/index.cjs +7 -6
  4. package/dist/animation/index.js +6 -5
  5. package/dist/animation-editor/index.cjs +66 -65
  6. package/dist/animation-editor/index.js +9 -8
  7. package/dist/{brushstrokeRender-WDTKD54B.cjs → brushstrokeRender-MPOM7BFW.cjs} +7 -5
  8. package/dist/{brushstrokeRender-MAHOXL7K.js → brushstrokeRender-WB67GMUP.js} +4 -2
  9. package/dist/canvas/index.cjs +55 -54
  10. package/dist/canvas/index.js +10 -9
  11. package/dist/chart/index.cjs +159 -158
  12. package/dist/chart/index.js +9 -8
  13. package/dist/{chunk-L6Y7TSQ4.js → chunk-36ZTV7WO.js} +1 -1
  14. package/dist/{chunk-JVNGCS26.js → chunk-3E36VDMJ.js} +1 -1
  15. package/dist/{chunk-WRZ6C4TU.cjs → chunk-3R5P3DVY.cjs} +6 -6
  16. package/dist/{chunk-RUONPPMC.cjs → chunk-44BMJJVA.cjs} +8 -8
  17. package/dist/{chunk-YBAPT7NL.js → chunk-6ADHGQ73.js} +4 -2
  18. package/dist/chunk-7AHBW2CQ.cjs +200 -0
  19. package/dist/{chunk-EUIDTZNQ.cjs → chunk-7PT4RJL5.cjs} +113 -111
  20. package/dist/{chunk-CU6ANS5L.js → chunk-7YGBSFC6.js} +2 -2
  21. package/dist/{chunk-ATKKG76G.cjs → chunk-AD7GA3TL.cjs} +23 -23
  22. package/dist/{chunk-FSLKBQU7.js → chunk-AIS56JOO.js} +3 -3
  23. package/dist/{chunk-5VQXSS2S.cjs → chunk-BBUE3UJL.cjs} +86 -86
  24. package/dist/{chunk-7272D3K2.js → chunk-BP6KSGVD.js} +6 -4
  25. package/dist/{chunk-F6R67I3A.js → chunk-CXXXAZ7H.js} +1 -1
  26. package/dist/{chunk-5DQPDXOM.cjs → chunk-D2SGV525.cjs} +76 -76
  27. package/dist/chunk-F67XMVDI.js +200 -0
  28. package/dist/{chunk-JVSX5QTS.js → chunk-FQVVO5YA.js} +3 -3
  29. package/dist/{chunk-UXETV2NC.cjs → chunk-GA4EU4P3.cjs} +4 -4
  30. package/dist/{chunk-UFEDHACQ.js → chunk-GXAK6Q5J.js} +2 -2
  31. package/dist/{chunk-MHLU6GRJ.js → chunk-JEGJP4OW.js} +7 -196
  32. package/dist/{chunk-GOBOCZZI.js → chunk-LEQKZGQI.js} +1 -1
  33. package/dist/{chunk-M5GLQQWG.cjs → chunk-LJZRHVZV.cjs} +2 -2
  34. package/dist/{chunk-N76AMOKE.cjs → chunk-MOW3JMNG.cjs} +42 -42
  35. package/dist/{chunk-WKMUBATU.js → chunk-N4DFDI73.js} +1 -1
  36. package/dist/{chunk-GNZI3KYK.cjs → chunk-NKTNLJUJ.cjs} +49 -9
  37. package/dist/{chunk-TQOL6CF7.js → chunk-PJYG6FCF.js} +49 -9
  38. package/dist/{chunk-V3L7U63N.cjs → chunk-PP6BXVRL.cjs} +1 -1
  39. package/dist/{chunk-TFF2GTGN.cjs → chunk-PPFJHTW5.cjs} +24 -22
  40. package/dist/{chunk-6ZZKRH7R.js → chunk-QARCM66V.js} +3 -3
  41. package/dist/{chunk-5UEFBM2M.cjs → chunk-RD7RX52G.cjs} +18 -207
  42. package/dist/{chunk-CDP2AKMA.js → chunk-RV5DKZHU.js} +1 -1
  43. package/dist/{chunk-HUAISCUX.cjs → chunk-T7KQEMAE.cjs} +18 -18
  44. package/dist/{chunk-BQE3Y6ZO.cjs → chunk-THXFU3JB.cjs} +5 -5
  45. package/dist/{chunk-4ZC5QJE2.cjs → chunk-UTI5IITZ.cjs} +3 -3
  46. package/dist/{chunk-XSVUNSDJ.js → chunk-UUBO6RB5.js} +1 -1
  47. package/dist/{chunk-CZWUDFR3.cjs → chunk-UZU6DIZA.cjs} +52 -52
  48. package/dist/{chunk-M2TPMYJE.js → chunk-V6DT2CDH.js} +1 -1
  49. package/dist/{chunk-WV5WTOC6.cjs → chunk-W7GRGGBH.cjs} +16 -16
  50. package/dist/{chunk-23E5GI2U.js → chunk-WGN7AUKB.js} +2 -2
  51. package/dist/{chunk-YMREOA67.js → chunk-XK4SST43.js} +2 -2
  52. package/dist/{chunk-SOSBOS5T.cjs → chunk-XWOLPNBW.cjs} +22 -22
  53. package/dist/{chunk-ILP77UD6.js → chunk-YGQVCQTG.js} +1 -1
  54. package/dist/{chunk-GXLZZVR5.cjs → chunk-ZXNO3ZOX.cjs} +37 -37
  55. package/dist/color/index.cjs +6 -4
  56. package/dist/color/index.js +9 -7
  57. package/dist/export/index.cjs +8 -7
  58. package/dist/export/index.js +7 -6
  59. package/dist/extensions/index.cjs +11 -10
  60. package/dist/extensions/index.js +10 -9
  61. package/dist/gradient/index.cjs +29 -28
  62. package/dist/gradient/index.js +4 -3
  63. package/dist/image-editor/index.cjs +778 -777
  64. package/dist/image-editor/index.js +9 -8
  65. package/dist/index.cjs +17 -16
  66. package/dist/index.js +11 -10
  67. package/dist/paint-editor/controller.d.cts +31 -1
  68. package/dist/paint-editor/controller.d.ts +31 -1
  69. package/dist/paint-editor/index.cjs +403 -195
  70. package/dist/paint-editor/index.js +231 -23
  71. package/dist/paint-editor/sticker-tools.d.cts +1 -1
  72. package/dist/paint-editor/sticker-tools.d.ts +1 -1
  73. package/dist/paint-editor/stickers.d.cts +10 -3
  74. package/dist/paint-editor/stickers.d.ts +10 -3
  75. package/dist/paint-editor/ui.d.cts +10 -3
  76. package/dist/paint-editor/ui.d.ts +10 -3
  77. package/dist/tokens/index.cjs +4 -3
  78. package/dist/tokens/index.js +3 -2
  79. package/dist/typography/index.cjs +8 -7
  80. package/dist/typography/index.js +3 -2
  81. package/dist/vector/index.cjs +967 -966
  82. package/dist/vector/index.js +9 -8
  83. package/dist/video-editor/index.cjs +7 -6
  84. package/dist/video-editor/index.js +6 -5
  85. package/package.json +1 -1
  86. package/skills/pixerate-color/SKILL.md +3 -0
  87. package/skills/pixerate-image-editor/SKILL.md +1 -0
  88. package/skills/pixerate-paint-editor/SKILL.md +6 -2
@@ -17,7 +17,7 @@ import {
17
17
  TRENDLINE_PROPS,
18
18
  VALUE,
19
19
  WIDTH
20
- } from "../chunk-GOBOCZZI.js";
20
+ } from "../chunk-LEQKZGQI.js";
21
21
  import {
22
22
  CHART_OOXML_CONTENT_TYPE,
23
23
  CHART_OOXML_NS,
@@ -25,7 +25,7 @@ import {
25
25
  chartFormatToCode,
26
26
  chartFromOoxml,
27
27
  chartToOoxml
28
- } from "../chunk-L6Y7TSQ4.js";
28
+ } from "../chunk-36ZTV7WO.js";
29
29
  import {
30
30
  CHART_COLOR_SCHEMES,
31
31
  CHART_LAYOUT_PRESETS,
@@ -47,7 +47,7 @@ import {
47
47
  monochromeChartPalette,
48
48
  sparklineToSvg,
49
49
  summarizeChart
50
- } from "../chunk-23E5GI2U.js";
50
+ } from "../chunk-WGN7AUKB.js";
51
51
  import "../chunk-KGRZMHZB.js";
52
52
  import {
53
53
  CHART_DATE_STEPS,
@@ -100,7 +100,7 @@ import {
100
100
  suggestChartReferences,
101
101
  summarizeChartSeries,
102
102
  trendNumberText
103
- } from "../chunk-WKMUBATU.js";
103
+ } from "../chunk-N4DFDI73.js";
104
104
  import {
105
105
  CHART_AXIS_KINDS,
106
106
  CHART_AXIS_SCALES,
@@ -194,7 +194,7 @@ import {
194
194
  shadeChartColor,
195
195
  simulateChartVision,
196
196
  uniqueChartSeriesId
197
- } from "../chunk-6ZZKRH7R.js";
197
+ } from "../chunk-QARCM66V.js";
198
198
  import "../chunk-O6OGNDND.js";
199
199
  import "../chunk-II2WIF5Z.js";
200
200
  import {
@@ -216,9 +216,10 @@ import {
216
216
  } from "../chunk-XBQX76CT.js";
217
217
  import "../chunk-HF5QZS7Z.js";
218
218
  import "../chunk-RNSANXPT.js";
219
- import "../chunk-7272D3K2.js";
220
- import "../chunk-YBAPT7NL.js";
221
- import "../chunk-MHLU6GRJ.js";
219
+ import "../chunk-BP6KSGVD.js";
220
+ import "../chunk-6ADHGQ73.js";
221
+ import "../chunk-JEGJP4OW.js";
222
+ import "../chunk-F67XMVDI.js";
222
223
  import "../chunk-6ONMQ6WF.js";
223
224
 
224
225
  // src/chart/raster.ts
@@ -8,7 +8,7 @@ import {
8
8
  isCartesianChart,
9
9
  normalizeChartSpec,
10
10
  parseChartColor
11
- } from "./chunk-6ZZKRH7R.js";
11
+ } from "./chunk-QARCM66V.js";
12
12
 
13
13
  // src/chart/ooxml.ts
14
14
  var CHART_OOXML_NS = "http://schemas.openxmlformats.org/drawingml/2006/chart";
@@ -104,7 +104,7 @@ import {
104
104
  transformTextRect,
105
105
  translateMatrix,
106
106
  warpPresetMesh
107
- } from "./chunk-CU6ANS5L.js";
107
+ } from "./chunk-7YGBSFC6.js";
108
108
  import {
109
109
  bezierPathBounds,
110
110
  outlineStroke,
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkEUIDTZNQcjs = require('./chunk-EUIDTZNQ.cjs');
3
+ var _chunk7PT4RJL5cjs = require('./chunk-7PT4RJL5.cjs');
4
4
 
5
5
 
6
- var _chunkTFF2GTGNcjs = require('./chunk-TFF2GTGN.cjs');
6
+ var _chunkPPFJHTW5cjs = require('./chunk-PPFJHTW5.cjs');
7
7
 
8
8
 
9
- var _chunk5UEFBM2Mcjs = require('./chunk-5UEFBM2M.cjs');
9
+ var _chunk7AHBW2CQcjs = require('./chunk-7AHBW2CQ.cjs');
10
10
 
11
11
  // src/chart/color.ts
12
12
  var NAMED = {
@@ -83,18 +83,18 @@ function chartTextOn(fill, fallback, dark = "#0f172a", light = "#ffffff") {
83
83
  return darkRatio >= lightRatio ? dark : light;
84
84
  }
85
85
  function chartRgbToOklab(rgb) {
86
- const lab = _chunk5UEFBM2Mcjs.rgbToOklab.call(void 0, { r: rgb[0], g: rgb[1], b: rgb[2], a: 1 });
86
+ const lab = _chunk7AHBW2CQcjs.rgbToOklab.call(void 0, { r: rgb[0], g: rgb[1], b: rgb[2], a: 1 });
87
87
  return [lab.l, lab.a, lab.b];
88
88
  }
89
89
  function chartColorDistance(a, b) {
90
- return _chunkTFF2GTGNcjs.deltaEOK.call(void 0,
90
+ return _chunkPPFJHTW5cjs.deltaEOK.call(void 0,
91
91
  { r: a[0], g: a[1], b: a[2], a: 1 },
92
92
  { r: b[0], g: b[1], b: b[2], a: 1 }
93
93
  );
94
94
  }
95
95
  function simulateChartVision(rgb, vision) {
96
96
  if (vision === "normal") return rgb;
97
- const c = _chunkEUIDTZNQcjs.simulateColorVision.call(void 0, { r: rgb[0], g: rgb[1], b: rgb[2], a: 1 }, vision);
97
+ const c = _chunk7PT4RJL5cjs.simulateColorVision.call(void 0, { r: rgb[0], g: rgb[1], b: rgb[2], a: 1 }, vision);
98
98
  return [c.r, c.g, c.b];
99
99
  }
100
100
  function checkChartColors(colors, options = {}) {
@@ -11,10 +11,10 @@ var _chunkYN6JKAUEcjs = require('./chunk-YN6JKAUE.cjs');
11
11
 
12
12
 
13
13
 
14
- var _chunkHUAISCUXcjs = require('./chunk-HUAISCUX.cjs');
14
+ var _chunkT7KQEMAEcjs = require('./chunk-T7KQEMAE.cjs');
15
15
 
16
16
 
17
- var _chunkWRZ6C4TUcjs = require('./chunk-WRZ6C4TU.cjs');
17
+ var _chunk3R5P3DVYcjs = require('./chunk-3R5P3DVY.cjs');
18
18
 
19
19
  // src/export/images.ts
20
20
  var DOCX_IMAGE_TYPES = {
@@ -1028,12 +1028,12 @@ var DocxBuilder = (_class2 = class {
1028
1028
  this.drop("node", "chart", "chart has no spec");
1029
1029
  return;
1030
1030
  }
1031
- const spec = _chunkWRZ6C4TUcjs.normalizeChartSpec.call(void 0, raw).spec;
1032
- const written = _chunkHUAISCUXcjs.chartToOoxml.call(void 0, spec);
1031
+ const spec = _chunk3R5P3DVYcjs.normalizeChartSpec.call(void 0, raw).spec;
1032
+ const written = _chunkT7KQEMAEcjs.chartToOoxml.call(void 0, spec);
1033
1033
  for (const issue of written.issues) this.drop("node", "chart", issue);
1034
1034
  const name = `chart${this.charts.length + 1}.xml`;
1035
1035
  this.charts.push(written.xml);
1036
- const relId = this.rels.add(_chunkHUAISCUXcjs.CHART_OOXML_RELATIONSHIP, `charts/${name}`);
1036
+ const relId = this.rels.add(_chunkT7KQEMAEcjs.CHART_OOXML_RELATIONSHIP, `charts/${name}`);
1037
1037
  let width = _nullishCoalesce(pixelAttr(_optionalChain([node, 'access', _91 => _91.attrs, 'optionalAccess', _92 => _92.width])), () => ( MAX_IMAGE_WIDTH_PX));
1038
1038
  let height = _nullishCoalesce(pixelAttr(_optionalChain([node, 'access', _93 => _93.attrs, 'optionalAccess', _94 => _94.height])), () => ( 320));
1039
1039
  if (width > MAX_IMAGE_WIDTH_PX) {
@@ -1050,8 +1050,8 @@ var DocxBuilder = (_class2 = class {
1050
1050
  drawing.empty("wp:extent", { cx, cy }).empty("wp:effectExtent", { l: 0, t: 0, r: 0, b: 0 });
1051
1051
  drawing.empty("wp:docPr", { id, name: `Chart ${id}`, descr: title || void 0, title: title || void 0 });
1052
1052
  drawing.empty("wp:cNvGraphicFramePr");
1053
- drawing.open("a:graphic").open("a:graphicData", { uri: _chunkHUAISCUXcjs.CHART_OOXML_NS });
1054
- drawing.empty("c:chart", { "xmlns:c": _chunkHUAISCUXcjs.CHART_OOXML_NS, "r:id": relId });
1053
+ drawing.open("a:graphic").open("a:graphicData", { uri: _chunkT7KQEMAEcjs.CHART_OOXML_NS });
1054
+ drawing.empty("c:chart", { "xmlns:c": _chunkT7KQEMAEcjs.CHART_OOXML_NS, "r:id": relId });
1055
1055
  drawing.close("a:graphicData").close("a:graphic").close("wp:inline").close("w:drawing").close("w:r");
1056
1056
  this.report.written.paragraphs++;
1057
1057
  w.open("w:p");
@@ -1384,7 +1384,7 @@ var DocxBuilder = (_class2 = class {
1384
1384
  if (people) add("word/people.xml", people, `${CT_WML}people+xml`);
1385
1385
  parts.push({ name: "word/_rels/document.xml.rels", data: this.rels.xml() });
1386
1386
  for (const file of this.media) parts.push({ name: `word/media/${file.name}`, data: file.bytes });
1387
- this.charts.forEach((xml, i) => add(`word/charts/chart${i + 1}.xml`, xml, _chunkHUAISCUXcjs.CHART_OOXML_CONTENT_TYPE));
1387
+ this.charts.forEach((xml, i) => add(`word/charts/chart${i + 1}.xml`, xml, _chunkT7KQEMAEcjs.CHART_OOXML_CONTENT_TYPE));
1388
1388
  add("docProps/core.xml", this.coreXml(now), "application/vnd.openxmlformats-package.core-properties+xml");
1389
1389
  const app = new XmlWriter();
1390
1390
  app.open("Properties", { xmlns: "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" });
@@ -1,16 +1,18 @@
1
1
  import {
2
2
  contrastLevel,
3
3
  contrastRatio,
4
+ parseColor
5
+ } from "./chunk-JEGJP4OW.js";
6
+ import {
4
7
  linearSrgbToDisplayP3,
5
8
  linearToSrgb,
6
9
  oklabToOklch,
7
10
  oklabToRgb,
8
11
  oklchToOklab,
9
- parseColor,
10
12
  rgbToHsl,
11
13
  rgbToOklab,
12
14
  srgbToLinear
13
- } from "./chunk-MHLU6GRJ.js";
15
+ } from "./chunk-F67XMVDI.js";
14
16
 
15
17
  // src/color/gamut.ts
16
18
  var clamp01 = (v) => Math.min(1, Math.max(0, v));
@@ -0,0 +1,200 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+ var _chunkIPJ3TEYRcjs = require('./chunk-IPJ3TEYR.cjs');
9
+
10
+ // src/color/convert.ts
11
+ function srgbToLinear(v) {
12
+ const sign = Math.sign(v);
13
+ const abs = Math.abs(v);
14
+ return sign * (abs <= 0.04045 ? abs / 12.92 : ((abs + 0.055) / 1.055) ** 2.4);
15
+ }
16
+ function linearToSrgb(v) {
17
+ const sign = Math.sign(v);
18
+ const abs = Math.abs(v);
19
+ return sign * (abs <= 31308e-7 ? 12.92 * abs : 1.055 * abs ** (1 / 2.4) - 0.055);
20
+ }
21
+ function rgbToHsl(rgba) {
22
+ const { r, g, b, a } = rgba;
23
+ const max = Math.max(r, g, b);
24
+ const min = Math.min(r, g, b);
25
+ const d = max - min;
26
+ const l = (max + min) / 2;
27
+ let h = 0;
28
+ if (d > 0) {
29
+ if (max === r) h = 60 * ((g - b) / d % 6);
30
+ else if (max === g) h = 60 * ((b - r) / d + 2);
31
+ else h = 60 * ((r - g) / d + 4);
32
+ }
33
+ if (h < 0) h += 360;
34
+ const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
35
+ return { h, s, l, alpha: a };
36
+ }
37
+ function hslToRgb(hsla) {
38
+ const { h, s, l, alpha } = hsla;
39
+ const hh = (h % 360 + 360) % 360 / 60;
40
+ const c = (1 - Math.abs(2 * l - 1)) * s;
41
+ const x = c * (1 - Math.abs(hh % 2 - 1));
42
+ const m = l - c / 2;
43
+ let r = 0;
44
+ let g = 0;
45
+ let b = 0;
46
+ if (hh < 1) {
47
+ r = c;
48
+ g = x;
49
+ b = 0;
50
+ } else if (hh < 2) {
51
+ r = x;
52
+ g = c;
53
+ b = 0;
54
+ } else if (hh < 3) {
55
+ r = 0;
56
+ g = c;
57
+ b = x;
58
+ } else if (hh < 4) {
59
+ r = 0;
60
+ g = x;
61
+ b = c;
62
+ } else if (hh < 5) {
63
+ r = x;
64
+ g = 0;
65
+ b = c;
66
+ } else {
67
+ r = c;
68
+ g = 0;
69
+ b = x;
70
+ }
71
+ return { r: r + m, g: g + m, b: b + m, a: alpha };
72
+ }
73
+ function rgbToHsv(rgba) {
74
+ const { r, g, b, a } = rgba;
75
+ const max = Math.max(r, g, b);
76
+ const min = Math.min(r, g, b);
77
+ const d = max - min;
78
+ let h = 0;
79
+ if (d > 0) {
80
+ if (max === r) h = 60 * ((g - b) / d % 6);
81
+ else if (max === g) h = 60 * ((b - r) / d + 2);
82
+ else h = 60 * ((r - g) / d + 4);
83
+ }
84
+ if (h < 0) h += 360;
85
+ const s = max === 0 ? 0 : d / max;
86
+ return { h, s, v: max, alpha: a };
87
+ }
88
+ function hsvToRgb(hsva) {
89
+ const { h, s, v, alpha } = hsva;
90
+ const hh = (h % 360 + 360) % 360 / 60;
91
+ const c = v * s;
92
+ const x = c * (1 - Math.abs(hh % 2 - 1));
93
+ const m = v - c;
94
+ let r = 0;
95
+ let g = 0;
96
+ let b = 0;
97
+ if (hh < 1) {
98
+ r = c;
99
+ g = x;
100
+ b = 0;
101
+ } else if (hh < 2) {
102
+ r = x;
103
+ g = c;
104
+ b = 0;
105
+ } else if (hh < 3) {
106
+ r = 0;
107
+ g = c;
108
+ b = x;
109
+ } else if (hh < 4) {
110
+ r = 0;
111
+ g = x;
112
+ b = c;
113
+ } else if (hh < 5) {
114
+ r = x;
115
+ g = 0;
116
+ b = c;
117
+ } else {
118
+ r = c;
119
+ g = 0;
120
+ b = x;
121
+ }
122
+ return { r: r + m, g: g + m, b: b + m, a: alpha };
123
+ }
124
+ function rgbToOklab(rgba) {
125
+ const lr = srgbToLinear(rgba.r);
126
+ const lg = srgbToLinear(rgba.g);
127
+ const lb = srgbToLinear(rgba.b);
128
+ const l = Math.cbrt(0.4122214708 * lr + 0.5363325363 * lg + 0.0514459929 * lb);
129
+ const m = Math.cbrt(0.2119034982 * lr + 0.6806995451 * lg + 0.1073969566 * lb);
130
+ const s = Math.cbrt(0.0883024619 * lr + 0.2817188376 * lg + 0.6299787005 * lb);
131
+ return {
132
+ l: 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s,
133
+ a: 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s,
134
+ b: 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s,
135
+ alpha: rgba.a
136
+ };
137
+ }
138
+ function oklabToRgb(lab) {
139
+ const l_ = lab.l + 0.3963377774 * lab.a + 0.2158037573 * lab.b;
140
+ const m_ = lab.l - 0.1055613458 * lab.a - 0.0638541728 * lab.b;
141
+ const s_ = lab.l - 0.0894841775 * lab.a - 1.291485548 * lab.b;
142
+ const l = l_ ** 3;
143
+ const m = m_ ** 3;
144
+ const s = s_ ** 3;
145
+ return {
146
+ r: linearToSrgb(4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s),
147
+ g: linearToSrgb(-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s),
148
+ b: linearToSrgb(-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s),
149
+ a: lab.alpha
150
+ };
151
+ }
152
+ function oklabToOklch(lab) {
153
+ const c = Math.hypot(lab.a, lab.b);
154
+ let h = 0;
155
+ if (c >= 1e-6) {
156
+ h = Math.atan2(lab.b, lab.a) * 180 / Math.PI;
157
+ if (h < 0) h += 360;
158
+ if (h >= 360) h -= 360;
159
+ }
160
+ return { l: lab.l, c, h, alpha: lab.alpha };
161
+ }
162
+ function oklchToOklab(lch) {
163
+ const rad = lch.h * Math.PI / 180;
164
+ return {
165
+ l: lch.l,
166
+ a: lch.c * Math.cos(rad),
167
+ b: lch.c * Math.sin(rad),
168
+ alpha: lch.alpha
169
+ };
170
+ }
171
+ var D65_XYZ = _chunkIPJ3TEYRcjs.xyToXyz.call(void 0, _chunkIPJ3TEYRcjs.D65_XY);
172
+ var SRGB_TO_XYZ = _chunkIPJ3TEYRcjs.rgbToXyzMatrix.call(void 0, [0.64, 0.33], [0.3, 0.6], [0.15, 0.06], D65_XYZ);
173
+ var P3_TO_XYZ = _chunkIPJ3TEYRcjs.rgbToXyzMatrix.call(void 0, [0.68, 0.32], [0.265, 0.69], [0.15, 0.06], D65_XYZ);
174
+ var XYZ_TO_SRGB = _chunkIPJ3TEYRcjs.invert.call(void 0, SRGB_TO_XYZ);
175
+ var XYZ_TO_P3 = _chunkIPJ3TEYRcjs.invert.call(void 0, P3_TO_XYZ);
176
+ var P3_TO_SRGB_MAT = _chunkIPJ3TEYRcjs.mul.call(void 0, XYZ_TO_SRGB, P3_TO_XYZ);
177
+ var SRGB_TO_P3_MAT = _chunkIPJ3TEYRcjs.mul.call(void 0, XYZ_TO_P3, SRGB_TO_XYZ);
178
+ function linearSrgbToDisplayP3(rgb) {
179
+ const out = _chunkIPJ3TEYRcjs.apply.call(void 0, SRGB_TO_P3_MAT, [rgb.r, rgb.g, rgb.b]);
180
+ return { r: out[0], g: out[1], b: out[2], a: rgb.a };
181
+ }
182
+ function displayP3ToLinearSrgb(rgb) {
183
+ const out = _chunkIPJ3TEYRcjs.apply.call(void 0, P3_TO_SRGB_MAT, [rgb.r, rgb.g, rgb.b]);
184
+ return { r: out[0], g: out[1], b: out[2], a: rgb.a };
185
+ }
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+ exports.srgbToLinear = srgbToLinear; exports.linearToSrgb = linearToSrgb; exports.rgbToHsl = rgbToHsl; exports.hslToRgb = hslToRgb; exports.rgbToHsv = rgbToHsv; exports.hsvToRgb = hsvToRgb; exports.rgbToOklab = rgbToOklab; exports.oklabToRgb = oklabToRgb; exports.oklabToOklch = oklabToOklch; exports.oklchToOklab = oklchToOklab; exports.linearSrgbToDisplayP3 = linearSrgbToDisplayP3; exports.displayP3ToLinearSrgb = displayP3ToLinearSrgb;