@pixerate/editor 0.163.0 → 0.165.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 (159) hide show
  1. package/dist/agent/index.cjs +54 -39
  2. package/dist/agent/index.js +24 -9
  3. package/dist/animation/index.cjs +6 -5
  4. package/dist/animation/index.js +5 -4
  5. package/dist/animation-editor/index.cjs +65 -64
  6. package/dist/animation-editor/index.js +8 -7
  7. package/dist/bridge/cli.cjs +3 -3
  8. package/dist/bridge/cli.js +2 -2
  9. package/dist/bridge/index.cjs +3 -3
  10. package/dist/bridge/index.js +2 -2
  11. package/dist/canvas/displacement.d.cts +34 -2
  12. package/dist/canvas/displacement.d.ts +34 -2
  13. package/dist/canvas/explosion-tools.d.cts +43 -0
  14. package/dist/canvas/explosion-tools.d.ts +43 -0
  15. package/dist/canvas/explosionLayout.d.cts +50 -0
  16. package/dist/canvas/explosionLayout.d.ts +50 -0
  17. package/dist/canvas/explosionState.d.cts +52 -0
  18. package/dist/canvas/explosionState.d.ts +52 -0
  19. package/dist/canvas/index.cjs +512 -168
  20. package/dist/canvas/index.d.cts +3 -0
  21. package/dist/canvas/index.d.ts +3 -0
  22. package/dist/canvas/index.js +434 -90
  23. package/dist/canvas/types.d.cts +27 -2
  24. package/dist/canvas/types.d.ts +27 -2
  25. package/dist/chart/controller.d.cts +31 -2
  26. package/dist/chart/controller.d.ts +31 -2
  27. package/dist/chart/index.cjs +504 -132
  28. package/dist/chart/index.d.cts +2 -0
  29. package/dist/chart/index.d.ts +2 -0
  30. package/dist/chart/index.js +386 -14
  31. package/dist/chart/layout-families.d.cts +7 -0
  32. package/dist/chart/layout-families.d.ts +7 -0
  33. package/dist/chart/links.d.cts +34 -0
  34. package/dist/chart/links.d.ts +34 -0
  35. package/dist/chart/mermaid.d.cts +9 -6
  36. package/dist/chart/mermaid.d.ts +9 -6
  37. package/dist/chart/schemas.d.cts +3 -0
  38. package/dist/chart/schemas.d.ts +3 -0
  39. package/dist/chart/spec.d.cts +3 -2
  40. package/dist/chart/spec.d.ts +3 -2
  41. package/dist/chart/style.d.cts +33 -0
  42. package/dist/chart/style.d.ts +33 -0
  43. package/dist/chart/types.d.cts +24 -2
  44. package/dist/chart/types.d.ts +24 -2
  45. package/dist/{chunk-TALQONZ5.js → chunk-2J5VLJHC.js} +3 -3
  46. package/dist/{chunk-3NEZJCBY.js → chunk-2ZRN43IN.js} +340 -201
  47. package/dist/{chunk-ZVNAMTFO.cjs → chunk-3FSUJIXN.cjs} +18 -174
  48. package/dist/{chunk-RQCMSEM5.cjs → chunk-4QUUHTGJ.cjs} +2 -2
  49. package/dist/{chunk-CIPIESX4.cjs → chunk-4ZC5QJE2.cjs} +3 -3
  50. package/dist/{chunk-S6X2QRVU.cjs → chunk-5UEFBM2M.cjs} +1 -138
  51. package/dist/{chunk-YSAGBIRW.cjs → chunk-64VWWR5U.cjs} +16 -16
  52. package/dist/{chunk-QYZGBVNC.js → chunk-7272D3K2.js} +10 -8
  53. package/dist/{chunk-462WGGXX.cjs → chunk-AMX23CSN.cjs} +27 -16
  54. package/dist/{chunk-3VLOOO3G.js → chunk-BDIM6NVW.js} +1 -1
  55. package/dist/{chunk-POR54B55.js → chunk-CRFSQWKQ.js} +4 -1
  56. package/dist/{chunk-GZ2FM3ZB.js → chunk-DKNEQX7T.js} +6 -162
  57. package/dist/{chunk-JCXMJUQO.cjs → chunk-EGZM52EO.cjs} +3 -3
  58. package/dist/{chunk-ES3UEVUT.cjs → chunk-EUIDTZNQ.cjs} +112 -110
  59. package/dist/{chunk-H3OEM3Q2.js → chunk-F6R67I3A.js} +1 -1
  60. package/dist/{chunk-5FNGLV2D.js → chunk-FEU2XVQH.js} +15 -3
  61. package/dist/{chunk-SZA42R4N.js → chunk-FRBRLKNQ.js} +154 -16
  62. package/dist/chunk-HIDFL5LQ.js +484 -0
  63. package/dist/{chunk-MKTDELCD.js → chunk-I5MRJW7B.js} +1 -1
  64. package/dist/{chunk-SDHZG5TF.js → chunk-ILP77UD6.js} +160 -2
  65. package/dist/{chunk-GKNEJ6EN.cjs → chunk-IMRXC7OA.cjs} +241 -103
  66. package/dist/chunk-KGRZMHZB.js +204 -0
  67. package/dist/{chunk-SET6KJOP.js → chunk-LPIKXPBM.js} +1 -1
  68. package/dist/{chunk-BQWGN5WH.js → chunk-M2TPMYJE.js} +1 -1
  69. package/dist/{chunk-GTELFJRE.cjs → chunk-M5GLQQWG.cjs} +2 -2
  70. package/dist/{chunk-4VU4CP7R.js → chunk-MHLU6GRJ.js} +1 -138
  71. package/dist/{chunk-D54JHQK2.cjs → chunk-MKXK6E4O.cjs} +51 -51
  72. package/dist/{chunk-DAPQGA55.js → chunk-N7NBGT2Y.js} +2 -2
  73. package/dist/chunk-O6OGNDND.js +164 -0
  74. package/dist/{chunk-22KLZZGH.cjs → chunk-ODFCS7HF.cjs} +8 -8
  75. package/dist/{chunk-PA3IMPPS.cjs → chunk-OVYQAYGH.cjs} +81 -81
  76. package/dist/{chunk-YXOW456B.js → chunk-PPEDZ5WR.js} +1 -1
  77. package/dist/{chunk-YGG7WDWT.cjs → chunk-Q25WAFTD.cjs} +21 -18
  78. package/dist/{chunk-SBQVEBSU.cjs → chunk-QO2T6KA5.cjs} +165 -67
  79. package/dist/{chunk-24M7VD6M.cjs → chunk-S4EIAIEW.cjs} +7 -7
  80. package/dist/{chunk-M4MIZPQI.cjs → chunk-SJ2CPTQC.cjs} +189 -15
  81. package/dist/chunk-TFF2GTGN.cjs +153 -0
  82. package/dist/chunk-TTCJPX4U.cjs +204 -0
  83. package/dist/{chunk-NZD2MZJC.cjs → chunk-TVQW26AV.cjs} +35 -23
  84. package/dist/{chunk-R3P2M7HU.cjs → chunk-UVXTOZ2B.cjs} +346 -207
  85. package/dist/{chunk-WI7QJA7A.cjs → chunk-UXETV2NC.cjs} +161 -3
  86. package/dist/{chunk-Z4P2RBMJ.js → chunk-V5GSY3NC.js} +101 -3
  87. package/dist/{chunk-QY4KUDMY.js → chunk-VRXXAXUT.js} +2 -2
  88. package/dist/chunk-VU6WQSMB.cjs +164 -0
  89. package/dist/{chunk-OXERWBKE.js → chunk-X5W645RI.js} +3 -3
  90. package/dist/{chunk-NHLYK3AX.js → chunk-XBQX76CT.js} +182 -8
  91. package/dist/{chunk-5AARIS3R.cjs → chunk-XCDGM7TD.cjs} +37 -37
  92. package/dist/{chunk-EVXQNQND.js → chunk-XZB3TJ6K.js} +16 -5
  93. package/dist/chunk-YBAPT7NL.js +153 -0
  94. package/dist/chunk-Z2UQYMPS.cjs +484 -0
  95. package/dist/color/index.cjs +5 -3
  96. package/dist/color/index.js +12 -10
  97. package/dist/diagram/index.cjs +55 -243
  98. package/dist/diagram/index.js +12 -200
  99. package/dist/export/index.cjs +7 -6
  100. package/dist/export/index.js +6 -5
  101. package/dist/extensions/index.cjs +12 -9
  102. package/dist/extensions/index.js +11 -8
  103. package/dist/gradient/index.cjs +29 -27
  104. package/dist/gradient/index.js +6 -4
  105. package/dist/image-editor/index.cjs +644 -643
  106. package/dist/image-editor/index.js +7 -6
  107. package/dist/index.cjs +21 -18
  108. package/dist/index.js +14 -11
  109. package/dist/paint-editor/index.cjs +19 -18
  110. package/dist/paint-editor/index.js +7 -6
  111. package/dist/parameters/index.cjs +2 -2
  112. package/dist/parameters/index.js +1 -1
  113. package/dist/persistence/assetWrites.d.cts +22 -0
  114. package/dist/persistence/assetWrites.d.ts +22 -0
  115. package/dist/persistence/assets.d.cts +71 -0
  116. package/dist/persistence/assets.d.ts +71 -0
  117. package/dist/persistence/documentStore.d.cts +17 -1
  118. package/dist/persistence/documentStore.d.ts +17 -1
  119. package/dist/persistence/documentTools.d.cts +5 -1
  120. package/dist/persistence/documentTools.d.ts +5 -1
  121. package/dist/persistence/editorAutosave.d.cts +7 -0
  122. package/dist/persistence/editorAutosave.d.ts +7 -0
  123. package/dist/persistence/index.cjs +141 -21
  124. package/dist/persistence/index.js +130 -10
  125. package/dist/persistence/storage.d.cts +13 -1
  126. package/dist/persistence/storage.d.ts +13 -1
  127. package/dist/spreadsheet/index.cjs +3 -3
  128. package/dist/spreadsheet/index.js +2 -2
  129. package/dist/tokens/index.cjs +11 -3
  130. package/dist/tokens/index.d.cts +1 -0
  131. package/dist/tokens/index.d.ts +1 -0
  132. package/dist/tokens/index.js +10 -2
  133. package/dist/tokens/style.d.cts +36 -0
  134. package/dist/tokens/style.d.ts +36 -0
  135. package/dist/tools/index.cjs +15 -3
  136. package/dist/tools/index.d.cts +2 -0
  137. package/dist/tools/index.d.ts +2 -0
  138. package/dist/tools/index.js +14 -2
  139. package/dist/tools/style-tools.d.cts +19 -0
  140. package/dist/tools/style-tools.d.ts +19 -0
  141. package/dist/tools/style.d.cts +212 -0
  142. package/dist/tools/style.d.ts +212 -0
  143. package/dist/tools/view.d.cts +6 -0
  144. package/dist/tools/view.d.ts +6 -0
  145. package/dist/typography/index.cjs +8 -6
  146. package/dist/typography/index.js +5 -3
  147. package/dist/vector/index.cjs +953 -952
  148. package/dist/vector/index.js +7 -6
  149. package/dist/video-editor/index.cjs +8 -7
  150. package/dist/video-editor/index.js +6 -5
  151. package/package.json +1 -1
  152. package/skills/README.md +12 -0
  153. package/skills/pixerate-agent-tools/SKILL.md +34 -1
  154. package/skills/pixerate-chart/SKILL.md +41 -9
  155. package/skills/pixerate-image-editor/SKILL.md +2 -0
  156. package/skills/pixerate-paint-editor/SKILL.md +2 -0
  157. package/skills/pixerate-tokens/SKILL.md +5 -0
  158. package/dist/chunk-ERAGQL2N.cjs +0 -68
  159. package/dist/chunk-KMU6QJB7.js +0 -68
@@ -1,4 +1,10 @@
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; } function _optionalChainDelete(ops) { const result = _optionalChain(ops); return result == null ? true : result; } var _class;// src/diagram/layout-registry.ts
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; } function _optionalChainDelete(ops) { const result = _optionalChain(ops); return result == null ? true : result; } var _class;
2
+
3
+
4
+
5
+ var _chunkVU6WQSMBcjs = require('./chunk-VU6WQSMB.cjs');
6
+
7
+ // src/diagram/layout-registry.ts
2
8
  var familyLayouts = /* @__PURE__ */ new Map();
3
9
  function registerFamilyLayout(family, layout) {
4
10
  familyLayouts.set(family, layout);
@@ -20,165 +26,6 @@ function sharedFrameLayout(box) {
20
26
  };
21
27
  }
22
28
 
23
- // src/diagram/source/lines.ts
24
- var HEADER_PATTERNS = [
25
- [/^\s*(flowchart|graph)(?:-elk)?\b/i, "flowchart"],
26
- [/^\s*stateDiagram(?:-v2)?\b/i, "state"],
27
- [/^\s*classDiagram(?:-v2)?\b/i, "class"],
28
- [/^\s*erDiagram\b/i, "er"],
29
- [/^\s*requirementDiagram\b/i, "requirement"],
30
- [/^\s*mindmap\b/i, "mindmap"],
31
- [/^\s*sequenceDiagram\b/i, "sequence"],
32
- [/^\s*gantt\b/i, "gantt"],
33
- [/^\s*pie\b/i, "pie"],
34
- [/^\s*journey\b/i, "journey"],
35
- [/^\s*timeline\b/i, "timeline"],
36
- [/^\s*gitGraph\b/i, "gitGraph"],
37
- [/^\s*C4(Context|Container|Component|Dynamic|Deployment)\b/, "c4"],
38
- [/^\s*quadrantChart\b/i, "quadrant"],
39
- [/^\s*sankey(?:-beta)?\b/i, "sankey"],
40
- [/^\s*xychart(?:-beta)?\b/i, "xychart"],
41
- [/^\s*block(?:-beta)?\b/i, "block"],
42
- [/^\s*architecture(?:-beta)?\b/i, "architecture"],
43
- [/^\s*packet(?:-beta)?\b/i, "packet"],
44
- [/^\s*kanban\b/i, "kanban"],
45
- [/^\s*radar(?:-beta)?\b/i, "radar"],
46
- [/^\s*treemap(?:-beta)?\b/i, "treemap"],
47
- [/^\s*info\b/i, "info"]
48
- ];
49
- function detectFamilyFromHeader(header) {
50
- for (const [re, family] of HEADER_PATTERNS) {
51
- if (re.test(header)) return family;
52
- }
53
- return "unknown";
54
- }
55
- function isCommentLine(line) {
56
- const t = line.trim();
57
- return t.startsWith("%%") && !t.startsWith("%%{");
58
- }
59
- function isDirectiveLine(line) {
60
- return /^\s*%%\{.*\}%%\s*$/.test(line);
61
- }
62
- function splitSource(source) {
63
- const eol = source.includes("\r\n") ? "\r\n" : "\n";
64
- const rawLines = source.split(/\r\n|\n/);
65
- let end = rawLines.length;
66
- while (end > 0 && rawLines[end - 1].trim() === "") end--;
67
- const trailingLines = rawLines.slice(end);
68
- const trailing = trailingLines.length ? eol + trailingLines.join(eol) : "";
69
- const lines = rawLines.slice(0, end);
70
- const preambleLines = [];
71
- let i = 0;
72
- let frontmatter;
73
- if (lines[0] !== void 0 && /^---\s*$/.test(lines[0])) {
74
- preambleLines.push(lines[0]);
75
- i = 1;
76
- const fm = [];
77
- while (i < lines.length && !/^---\s*$/.test(lines[i])) {
78
- fm.push(lines[i]);
79
- preambleLines.push(lines[i]);
80
- i++;
81
- }
82
- if (i < lines.length) {
83
- preambleLines.push(lines[i]);
84
- i++;
85
- }
86
- frontmatter = parseSimpleYaml(fm);
87
- }
88
- while (i < lines.length) {
89
- const line = lines[i];
90
- if (line.trim() === "" || isDirectiveLine(line) || isCommentLine(line)) {
91
- preambleLines.push(line);
92
- i++;
93
- continue;
94
- }
95
- break;
96
- }
97
- const headerIndex = i;
98
- const header = _nullishCoalesce(lines[i], () => ( ""));
99
- const bodyLines = lines.slice(i + 1);
100
- return {
101
- eol,
102
- preamble: { lines: preambleLines, frontmatter },
103
- header,
104
- headerIndex,
105
- bodyLines,
106
- trailing
107
- };
108
- }
109
- function parseSimpleYaml(lines) {
110
- const out = {};
111
- let currentKey = null;
112
- let nested = null;
113
- for (const raw of lines) {
114
- if (raw.trim() === "" || raw.trim().startsWith("#")) continue;
115
- const indent = raw.length - raw.trimStart().length;
116
- const m = /^([A-Za-z_][\w-]*)\s*:\s*(.*)$/.exec(raw.trim());
117
- if (!m) continue;
118
- const [, key, valueRaw] = m;
119
- const value = parseYamlScalar(valueRaw);
120
- if (indent === 0) {
121
- currentKey = key;
122
- if (valueRaw.trim() === "") {
123
- nested = {};
124
- out[key] = nested;
125
- } else {
126
- nested = null;
127
- out[key] = value;
128
- }
129
- } else if (nested && currentKey) {
130
- nested[key] = value;
131
- }
132
- }
133
- return out;
134
- }
135
- function parseYamlScalar(v) {
136
- const t = v.trim();
137
- if (t === "") return "";
138
- if (t.startsWith("{") || t.startsWith("[")) {
139
- try {
140
- return JSON.parse(t);
141
- } catch (e2) {
142
- return t;
143
- }
144
- }
145
- if (/^(true|false)$/i.test(t)) return t.toLowerCase() === "true";
146
- if (/^-?\d+(\.\d+)?$/.test(t)) return Number(t);
147
- if (t.startsWith('"') && t.endsWith('"') || t.startsWith("'") && t.endsWith("'")) {
148
- return t.slice(1, -1);
149
- }
150
- return t;
151
- }
152
- function splitStatements(line) {
153
- const parts = [];
154
- let depth = 0;
155
- let quote2 = null;
156
- let cur = "";
157
- for (let i = 0; i < line.length; i++) {
158
- const ch = line[i];
159
- if (quote2) {
160
- cur += ch;
161
- if (ch === quote2) quote2 = null;
162
- continue;
163
- }
164
- if (ch === '"' || ch === "`") {
165
- quote2 = ch;
166
- cur += ch;
167
- continue;
168
- }
169
- if (ch === "[" || ch === "(" || ch === "{") depth++;
170
- else if (ch === "]" || ch === ")" || ch === "}") depth = Math.max(0, depth - 1);
171
- if (ch === ";" && depth === 0) {
172
- parts.push(cur);
173
- cur = "";
174
- continue;
175
- }
176
- cur += ch;
177
- }
178
- parts.push(cur);
179
- return parts;
180
- }
181
-
182
29
  // src/diagram/source/metadata.ts
183
30
  var META_COMMENT_PREFIX = "%% @pixerate ";
184
31
  var META_FRONTMATTER_KEY = "pixerate";
@@ -221,7 +68,7 @@ function safeParseMeta(json) {
221
68
  try {
222
69
  const value = JSON.parse(json);
223
70
  return normaliseMeta(value);
224
- } catch (e3) {
71
+ } catch (e2) {
225
72
  return null;
226
73
  }
227
74
  }
@@ -1108,7 +955,7 @@ function tokenizeBody(bodyLines) {
1108
955
  statements.push(parseStatement(logical));
1109
956
  continue;
1110
957
  }
1111
- const segments = splitStatements(logical);
958
+ const segments = _chunkVU6WQSMBcjs.splitStatements.call(void 0, logical);
1112
959
  const nonEmpty = segments.filter((s) => s.trim() !== "");
1113
960
  if (nonEmpty.length <= 1) {
1114
961
  const stmt = parseStatement(_nullishCoalesce(nonEmpty[0], () => ( logical)));
@@ -1977,7 +1824,7 @@ function doc_dirty(work, structural) {
1977
1824
  return work.dirty || structural;
1978
1825
  }
1979
1826
  function parseFlowchartSource(source, carrier) {
1980
- const split = splitSource(source);
1827
+ const split = _chunkVU6WQSMBcjs.splitSource.call(void 0, source);
1981
1828
  const fromBody = extractMetaFromBody(split.bodyLines);
1982
1829
  const fromFm = extractMetaFromFrontmatter(split.preamble);
1983
1830
  let meta = emptyMeta();
@@ -2509,7 +2356,7 @@ function detectIndent2(statements) {
2509
2356
  return " ";
2510
2357
  }
2511
2358
  function parseFull(grammar, source, carrier) {
2512
- const split = splitSource(source);
2359
+ const split = _chunkVU6WQSMBcjs.splitSource.call(void 0, source);
2513
2360
  const fromBody = extractMetaFromBody(split.bodyLines);
2514
2361
  const fromFm = extractMetaFromFrontmatter(split.preamble);
2515
2362
  let meta = emptyMeta();
@@ -3782,7 +3629,7 @@ function serializeStatementDocument(grammar, doc) {
3782
3629
  );
3783
3630
  }
3784
3631
  function parseFull2(grammar, source, carrier) {
3785
- const split = splitSource(source);
3632
+ const split = _chunkVU6WQSMBcjs.splitSource.call(void 0, source);
3786
3633
  const fromBody = extractMetaFromBody(split.bodyLines);
3787
3634
  const fromFm = extractMetaFromFrontmatter(split.preamble);
3788
3635
  let meta = emptyMeta();
@@ -9733,7 +9580,7 @@ function textWidth2(text, fontSize = M4.fontSize, bold = false) {
9733
9580
  if (browser)
9734
9581
  try {
9735
9582
  measurer = document.createElement("canvas").getContext("2d");
9736
- } catch (e4) {
9583
+ } catch (e3) {
9737
9584
  measurer = null;
9738
9585
  }
9739
9586
  }
@@ -10067,7 +9914,7 @@ function textWidth3(text, fontSize = M5.fontSize, bold = false) {
10067
9914
  if (browser)
10068
9915
  try {
10069
9916
  measurer2 = document.createElement("canvas").getContext("2d");
10070
- } catch (e5) {
9917
+ } catch (e4) {
10071
9918
  measurer2 = null;
10072
9919
  }
10073
9920
  }
@@ -10927,11 +10774,11 @@ for (const family of [
10927
10774
 
10928
10775
  // src/diagram/document.ts
10929
10776
  function detectFamily(source) {
10930
- return detectFamilyFromHeader(splitSource(source).header);
10777
+ return _chunkVU6WQSMBcjs.detectFamilyFromHeader.call(void 0, _chunkVU6WQSMBcjs.splitSource.call(void 0, source).header);
10931
10778
  }
10932
10779
  function parseMermaid(source, options = {}) {
10933
- const split = splitSource(source);
10934
- const family = detectFamilyFromHeader(split.header);
10780
+ const split = _chunkVU6WQSMBcjs.splitSource.call(void 0, source);
10781
+ const family = _chunkVU6WQSMBcjs.detectFamilyFromHeader.call(void 0, split.header);
10935
10782
  const fromBody = extractMetaFromBody(split.bodyLines);
10936
10783
  const fromFm = extractMetaFromFrontmatter(split.preamble);
10937
10784
  let meta = emptyMeta();
@@ -11099,7 +10946,4 @@ function applyEdits(doc, ops) {
11099
10946
 
11100
10947
 
11101
10948
 
11102
-
11103
-
11104
-
11105
- exports.registerFamilyLayout = registerFamilyLayout; exports.getFamilyLayout = getFamilyLayout; exports.XY_CHART_BOX = XY_CHART_BOX; exports.RADAR_CHART_BOX = RADAR_CHART_BOX; exports.sharedFrameLayout = sharedFrameLayout; exports.detectFamilyFromHeader = detectFamilyFromHeader; exports.splitSource = splitSource; exports.splitStatements = splitStatements; exports.META_COMMENT_PREFIX = META_COMMENT_PREFIX; exports.META_FRONTMATTER_KEY = META_FRONTMATTER_KEY; exports.emptyMeta = emptyMeta; exports.mergeMeta = mergeMeta; exports.isMetaEmpty = isMetaEmpty; exports.serializeMeta = serializeMeta; exports.parseLink = parseLink; exports.quoteLabelIfNeeded = quoteLabelIfNeeded; exports.formatLink = formatLink; exports.FLOWCHART_SHAPES = FLOWCHART_SHAPES; exports.resolveShape = resolveShape; exports.canonicalShape = canonicalShape; exports.parseChain = parseChain; exports.parseStatement = parseStatement; exports.formatNode = formatNode; exports.formatChain = formatChain; exports.parseFlowchartSource = parseFlowchartSource; exports.flowchartAdapter = flowchartAdapter; exports.createLineAdapter = createLineAdapter; exports.createPassthroughAdapter = createPassthroughAdapter; exports.STATE_SHAPES = STATE_SHAPES; exports.stateGrammar = stateGrammar; exports.CLASS_RELATIONS = CLASS_RELATIONS; exports.relationFor = relationFor; exports.parseMembers = parseMembers; exports.classGrammar = classGrammar; exports.ER_CARDINALITIES = ER_CARDINALITIES; exports.parseAttributes = parseAttributes; exports.erGrammar = erGrammar; exports.ER_PATTERNS = ER_PATTERNS; exports.PIE_METRICS = PIE_METRICS; exports.pieGeometry = pieGeometry; exports.parseStatementDocument = parseStatementDocument; exports.serializeStatementDocument = serializeStatementDocument; exports.applyStatementEdit = applyStatementEdit; exports.createStatementAdapter = createStatementAdapter; exports.indentOf = indentOf; exports.slugId = slugId; exports.uniqueId = uniqueId; exports.filterInPlace = filterInPlace3; exports.renameMetaKey = renameMetaKey; exports.dropMetaKeys = dropMetaKeys; exports.quote = quote; exports.unquote = unquote; exports.splitOutsideQuotes = splitOutsideQuotes; exports.pieGrammar = pieGrammar; exports.pieAdapter = pieAdapter; exports.MINDMAP_METRICS = MINDMAP_METRICS; exports.mindmapGeometry = mindmapGeometry; exports.mindmapGrammar = mindmapGrammar; exports.mindmapAdapter = mindmapAdapter; exports.QUADRANT_METRICS = QUADRANT_METRICS; exports.POINT_BOX = POINT_BOX; exports.quadrantSpace = quadrantSpace; exports.spaceInput = spaceInput; exports.pointCentre = pointCentre; exports.pointPosition = pointPosition; exports.positionToData = positionToData; exports.quadrantGeometry = quadrantGeometry; exports.quadrantGrammar = quadrantGrammar; exports.quadrantAdapter = quadrantAdapter; exports.C4_METRICS = C4_METRICS; exports.c4ElementType = c4ElementType; exports.c4Stereotype = c4Stereotype; exports.c4ElementGeometry = c4ElementGeometry; exports.c4BoundaryText = c4BoundaryText; exports.c4Layout = c4Layout; exports.c4RelGeometry = c4RelGeometry; exports.c4ArrowHead = c4ArrowHead; exports.c4Grammar = c4Grammar; exports.c4Adapter = c4Adapter; exports.ARCH_METRICS = ARCH_METRICS; exports.isSide = isSide; exports.serviceLabelLines = serviceLabelLines; exports.architectureLayout = architectureLayout; exports.architectureEdgeRoute = architectureEdgeRoute; exports.architectureArrow = architectureArrow; exports.shiftEndpoint = shiftEndpoint; exports.architectureGrammar = architectureGrammar; exports.architectureAdapter = architectureAdapter; exports.SEQUENCE_METRICS = SEQUENCE_METRICS; exports.sequenceGeometry = sequenceGeometry; exports.sequenceGrammar = sequenceGrammar; exports.sequenceAdapter = sequenceAdapter; exports.GIT_METRICS = GIT_METRICS; exports.estimateTextWidth = estimateTextWidth3; exports.gitGraphGeometry = gitGraphGeometry; exports.gitGraphGrammar = gitGraphGrammar; exports.gitGraphAdapter = gitGraphAdapter; exports.GANTT_METRICS = GANTT_METRICS; exports.ganttGeometry = ganttGeometry; exports.formatAxis = formatAxis; exports.GANTT_TAGS = GANTT_TAGS; exports.GANTT_CONFIG_KEYS = GANTT_CONFIG_KEYS; exports.afterIds = afterIds; exports.parseGanttDate = parseGanttDate; exports.formatGanttDate = formatGanttDate; exports.ganttGrammar = ganttGrammar; exports.ganttAdapter = ganttAdapter; exports.TIMELINE_METRICS = TIMELINE_METRICS; exports.textWidth = textWidth2; exports.timelineGeometry = timelineGeometry; exports.timelineGrammar = timelineGrammar; exports.timelineAdapter = timelineAdapter; exports.timelineLayout = timelineLayout; exports.JOURNEY_METRICS = JOURNEY_METRICS; exports.journeyGeometry = journeyGeometry; exports.journeyGrammar = journeyGrammar; exports.journeyAdapter = journeyAdapter; exports.journeyLayout = journeyLayout; exports.xyChartGrammar = xyChartGrammar; exports.xyChartAdapter = xyChartAdapter; exports.radarGrammar = radarGrammar; exports.radarAdapter = radarAdapter; exports.registerDiagramAdapter = registerDiagramAdapter; exports.getDiagramAdapter = getDiagramAdapter; exports.supportTierOf = supportTierOf; exports.detectFamily = detectFamily; exports.parseMermaid = parseMermaid; exports.serializeMermaid = serializeMermaid; exports.applyEdit = applyEdit; exports.applyEdits = applyEdits;
10949
+ exports.registerFamilyLayout = registerFamilyLayout; exports.getFamilyLayout = getFamilyLayout; exports.XY_CHART_BOX = XY_CHART_BOX; exports.RADAR_CHART_BOX = RADAR_CHART_BOX; exports.sharedFrameLayout = sharedFrameLayout; exports.META_COMMENT_PREFIX = META_COMMENT_PREFIX; exports.META_FRONTMATTER_KEY = META_FRONTMATTER_KEY; exports.emptyMeta = emptyMeta; exports.mergeMeta = mergeMeta; exports.isMetaEmpty = isMetaEmpty; exports.serializeMeta = serializeMeta; exports.parseLink = parseLink; exports.quoteLabelIfNeeded = quoteLabelIfNeeded; exports.formatLink = formatLink; exports.FLOWCHART_SHAPES = FLOWCHART_SHAPES; exports.resolveShape = resolveShape; exports.canonicalShape = canonicalShape; exports.parseChain = parseChain; exports.parseStatement = parseStatement; exports.formatNode = formatNode; exports.formatChain = formatChain; exports.parseFlowchartSource = parseFlowchartSource; exports.flowchartAdapter = flowchartAdapter; exports.createLineAdapter = createLineAdapter; exports.createPassthroughAdapter = createPassthroughAdapter; exports.STATE_SHAPES = STATE_SHAPES; exports.stateGrammar = stateGrammar; exports.CLASS_RELATIONS = CLASS_RELATIONS; exports.relationFor = relationFor; exports.parseMembers = parseMembers; exports.classGrammar = classGrammar; exports.ER_CARDINALITIES = ER_CARDINALITIES; exports.parseAttributes = parseAttributes; exports.erGrammar = erGrammar; exports.ER_PATTERNS = ER_PATTERNS; exports.PIE_METRICS = PIE_METRICS; exports.pieGeometry = pieGeometry; exports.parseStatementDocument = parseStatementDocument; exports.serializeStatementDocument = serializeStatementDocument; exports.applyStatementEdit = applyStatementEdit; exports.createStatementAdapter = createStatementAdapter; exports.indentOf = indentOf; exports.slugId = slugId; exports.uniqueId = uniqueId; exports.filterInPlace = filterInPlace3; exports.renameMetaKey = renameMetaKey; exports.dropMetaKeys = dropMetaKeys; exports.quote = quote; exports.unquote = unquote; exports.splitOutsideQuotes = splitOutsideQuotes; exports.pieGrammar = pieGrammar; exports.pieAdapter = pieAdapter; exports.MINDMAP_METRICS = MINDMAP_METRICS; exports.mindmapGeometry = mindmapGeometry; exports.mindmapGrammar = mindmapGrammar; exports.mindmapAdapter = mindmapAdapter; exports.QUADRANT_METRICS = QUADRANT_METRICS; exports.POINT_BOX = POINT_BOX; exports.quadrantSpace = quadrantSpace; exports.spaceInput = spaceInput; exports.pointCentre = pointCentre; exports.pointPosition = pointPosition; exports.positionToData = positionToData; exports.quadrantGeometry = quadrantGeometry; exports.quadrantGrammar = quadrantGrammar; exports.quadrantAdapter = quadrantAdapter; exports.C4_METRICS = C4_METRICS; exports.c4ElementType = c4ElementType; exports.c4Stereotype = c4Stereotype; exports.c4ElementGeometry = c4ElementGeometry; exports.c4BoundaryText = c4BoundaryText; exports.c4Layout = c4Layout; exports.c4RelGeometry = c4RelGeometry; exports.c4ArrowHead = c4ArrowHead; exports.c4Grammar = c4Grammar; exports.c4Adapter = c4Adapter; exports.ARCH_METRICS = ARCH_METRICS; exports.isSide = isSide; exports.serviceLabelLines = serviceLabelLines; exports.architectureLayout = architectureLayout; exports.architectureEdgeRoute = architectureEdgeRoute; exports.architectureArrow = architectureArrow; exports.shiftEndpoint = shiftEndpoint; exports.architectureGrammar = architectureGrammar; exports.architectureAdapter = architectureAdapter; exports.SEQUENCE_METRICS = SEQUENCE_METRICS; exports.sequenceGeometry = sequenceGeometry; exports.sequenceGrammar = sequenceGrammar; exports.sequenceAdapter = sequenceAdapter; exports.GIT_METRICS = GIT_METRICS; exports.estimateTextWidth = estimateTextWidth3; exports.gitGraphGeometry = gitGraphGeometry; exports.gitGraphGrammar = gitGraphGrammar; exports.gitGraphAdapter = gitGraphAdapter; exports.GANTT_METRICS = GANTT_METRICS; exports.ganttGeometry = ganttGeometry; exports.formatAxis = formatAxis; exports.GANTT_TAGS = GANTT_TAGS; exports.GANTT_CONFIG_KEYS = GANTT_CONFIG_KEYS; exports.afterIds = afterIds; exports.parseGanttDate = parseGanttDate; exports.formatGanttDate = formatGanttDate; exports.ganttGrammar = ganttGrammar; exports.ganttAdapter = ganttAdapter; exports.TIMELINE_METRICS = TIMELINE_METRICS; exports.textWidth = textWidth2; exports.timelineGeometry = timelineGeometry; exports.timelineGrammar = timelineGrammar; exports.timelineAdapter = timelineAdapter; exports.timelineLayout = timelineLayout; exports.JOURNEY_METRICS = JOURNEY_METRICS; exports.journeyGeometry = journeyGeometry; exports.journeyGrammar = journeyGrammar; exports.journeyAdapter = journeyAdapter; exports.journeyLayout = journeyLayout; exports.xyChartGrammar = xyChartGrammar; exports.xyChartAdapter = xyChartAdapter; exports.radarGrammar = radarGrammar; exports.radarAdapter = radarAdapter; exports.registerDiagramAdapter = registerDiagramAdapter; exports.getDiagramAdapter = getDiagramAdapter; exports.supportTierOf = supportTierOf; exports.detectFamily = detectFamily; exports.parseMermaid = parseMermaid; exports.serializeMermaid = serializeMermaid; exports.applyEdit = applyEdit; exports.applyEdits = applyEdits;
@@ -44,7 +44,7 @@ var _chunk55AKPTLMcjs = require('./chunk-55AKPTLM.cjs');
44
44
  var _chunkN3KJFGXTcjs = require('./chunk-N3KJFGXT.cjs');
45
45
 
46
46
 
47
- var _chunkM4MIZPQIcjs = require('./chunk-M4MIZPQI.cjs');
47
+ var _chunkSJ2CPTQCcjs = require('./chunk-SJ2CPTQC.cjs');
48
48
 
49
49
  // src/spreadsheet/formula/dependency-graph.ts
50
50
  function extractNameDependencies(node) {
@@ -6440,7 +6440,7 @@ function checkWorkbook(document) {
6440
6440
  if (document.names !== void 0 && !Array.isArray(document.names)) throw new Error(`names must be an array. ${hint}`);
6441
6441
  }
6442
6442
  function createSpreadsheetEditorDocument(controller) {
6443
- return _chunkM4MIZPQIcjs.defineEditorDocument.call(void 0, {
6443
+ return _chunkSJ2CPTQCcjs.defineEditorDocument.call(void 0, {
6444
6444
  kind: "spreadsheet",
6445
6445
  get: () => controller.getWorkbook(),
6446
6446
  load: (document, { history }) => {
@@ -6,15 +6,15 @@ var _chunkA6QWKBJPcjs = require('./chunk-A6QWKBJP.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkS6X2QRVUcjs = require('./chunk-S6X2QRVU.cjs');
9
+ var _chunk5UEFBM2Mcjs = require('./chunk-5UEFBM2M.cjs');
10
10
 
11
11
  // src/animation/color.ts
12
12
  function rgbToOklab2(r, g, b, alpha = 1) {
13
- const lab = _chunkS6X2QRVUcjs.rgbToOklab.call(void 0, { r, g, b, a: alpha });
13
+ const lab = _chunk5UEFBM2Mcjs.rgbToOklab.call(void 0, { r, g, b, a: alpha });
14
14
  return { l: lab.l, a: lab.a, b: lab.b, alpha: lab.alpha };
15
15
  }
16
16
  function oklabToRgb2(color) {
17
- const c = _chunkS6X2QRVUcjs.oklabToRgb.call(void 0, { l: color.l, a: color.a, b: color.b, alpha: color.alpha });
17
+ const c = _chunk5UEFBM2Mcjs.oklabToRgb.call(void 0, { l: color.l, a: color.a, b: color.b, alpha: color.alpha });
18
18
  const clamp01 = (v) => Math.min(1, Math.max(0, v));
19
19
  return {
20
20
  r: clamp01(c.r),
@@ -551,117 +551,6 @@ function isColor(input) {
551
551
  return parseColor(input) !== null;
552
552
  }
553
553
 
554
- // src/color/gamut.ts
555
- var clamp01 = (v) => Math.min(1, Math.max(0, v));
556
- function inSrgbGamut(c, epsilon = 1e-5) {
557
- return c.r >= -epsilon && c.r <= 1 + epsilon && c.g >= -epsilon && c.g <= 1 + epsilon && c.b >= -epsilon && c.b <= 1 + epsilon;
558
- }
559
- function deltaEOK(a, b) {
560
- const la = rgbToOklab(a);
561
- const lb = rgbToOklab(b);
562
- return Math.hypot(la.l - lb.l, la.a - lb.a, la.b - lb.b);
563
- }
564
- function toSrgbGamut(c) {
565
- const lch = oklabToOklch(rgbToOklab(c));
566
- if (lch.l >= 1) return { r: 1, g: 1, b: 1, a: c.a };
567
- if (lch.l <= 0) return { r: 0, g: 0, b: 0, a: c.a };
568
- if (inSrgbGamut(c)) {
569
- return { r: clamp01(c.r), g: clamp01(c.g), b: clamp01(c.b), a: c.a };
570
- }
571
- let low = 0;
572
- let high = lch.c;
573
- let clippedCandidate = { r: clamp01(c.r), g: clamp01(c.g), b: clamp01(c.b), a: c.a };
574
- const JND = 0.02;
575
- const EPS = 1e-4;
576
- for (let i = 0; i < 30; i++) {
577
- const mid = (low + high) / 2;
578
- const candidate = oklabToRgb(oklchToOklab({ l: lch.l, c: mid, h: lch.h, alpha: c.a }));
579
- const clipped = {
580
- r: clamp01(candidate.r),
581
- g: clamp01(candidate.g),
582
- b: clamp01(candidate.b),
583
- a: c.a
584
- };
585
- clippedCandidate = clipped;
586
- const dE = deltaEOK(candidate, clipped);
587
- if (dE < JND) {
588
- if (JND - dE < EPS) {
589
- return clipped;
590
- }
591
- low = mid;
592
- } else {
593
- high = mid;
594
- }
595
- if (high - low < 1e-4) {
596
- break;
597
- }
598
- }
599
- return clippedCandidate;
600
- }
601
-
602
- // src/color/format.ts
603
- var clamp012 = (v) => Math.min(1, Math.max(0, v));
604
- var byte = (v) => Math.round(clamp012(v) * 255);
605
- var hex2 = (n) => n.toString(16).padStart(2, "0");
606
- var round2 = (n) => (Math.round(n * 100) / 100).toString();
607
- function formatHex(c) {
608
- const mapped = toSrgbGamut(c);
609
- const head = `#${hex2(byte(mapped.r))}${hex2(byte(mapped.g))}${hex2(byte(mapped.b))}`;
610
- const alpha = byte(mapped.a);
611
- return alpha === 255 ? head : head + hex2(alpha);
612
- }
613
- function formatColor(c, format) {
614
- switch (format) {
615
- case "hex":
616
- return formatHex(c);
617
- case "rgb": {
618
- const inGamut = toSrgbGamut(c);
619
- const r = byte(inGamut.r);
620
- const g = byte(inGamut.g);
621
- const b = byte(inGamut.b);
622
- return c.a < 1 ? `rgb(${r} ${g} ${b} / ${round2(c.a)})` : `rgb(${r} ${g} ${b})`;
623
- }
624
- case "hsl": {
625
- const hsl = rgbToHsl(toSrgbGamut(c));
626
- const h = (Math.round(hsl.h * 100) / 100).toString();
627
- const s = (Math.round(hsl.s * 1e4) / 100).toString();
628
- const l = (Math.round(hsl.l * 1e4) / 100).toString();
629
- return c.a < 1 ? `hsl(${h} ${s}% ${l}% / ${round2(c.a)})` : `hsl(${h} ${s}% ${l}%)`;
630
- }
631
- case "oklch": {
632
- const lch = oklabToOklch(rgbToOklab(c));
633
- const l = (lch.l * 100).toFixed(2);
634
- const ch = lch.c.toFixed(4);
635
- const h = lch.h.toFixed(2);
636
- return c.a < 1 ? `oklch(${l}% ${ch} ${h} / ${round2(c.a)})` : `oklch(${l}% ${ch} ${h})`;
637
- }
638
- case "oklab": {
639
- const lab = rgbToOklab(c);
640
- const l = (lab.l * 100).toFixed(2);
641
- const a = lab.a.toFixed(4);
642
- const b = lab.b.toFixed(4);
643
- return c.a < 1 ? `oklab(${l}% ${a} ${b} / ${round2(c.a)})` : `oklab(${l}% ${a} ${b})`;
644
- }
645
- case "p3": {
646
- const linSrgb = {
647
- r: srgbToLinear(c.r),
648
- g: srgbToLinear(c.g),
649
- b: srgbToLinear(c.b),
650
- a: c.a
651
- };
652
- const linP3 = linearSrgbToDisplayP3(linSrgb);
653
- const r = linearToSrgb(linP3.r).toFixed(4);
654
- const g = linearToSrgb(linP3.g).toFixed(4);
655
- const b = linearToSrgb(linP3.b).toFixed(4);
656
- return c.a < 1 ? `color(display-p3 ${r} ${g} ${b} / ${round2(c.a)})` : `color(display-p3 ${r} ${g} ${b})`;
657
- }
658
- }
659
- }
660
- function normalizeColor(input) {
661
- const parsed = parseColor(input);
662
- return parsed ? formatHex(parsed) : null;
663
- }
664
-
665
554
  // src/color/contrast.ts
666
555
  var BLACK = { r: 0, g: 0, b: 0, a: 1 };
667
556
  var WHITE = { r: 1, g: 1, b: 1, a: 1 };
@@ -720,32 +609,6 @@ function readableTextColor(background, candidates = [BLACK, WHITE]) {
720
609
  return bestCandidate;
721
610
  }
722
611
 
723
- // src/color/suggest.ts
724
- function suggestAccessibleForeground(foreground, background, options = {}) {
725
- const large = _nullishCoalesce(options.large, () => ( false));
726
- const lch = oklabToOklch(rgbToOklab(foreground));
727
- const asHex = (l) => parseColor(formatHex(toSrgbGamut(oklabToRgb(oklchToOklab({ ...lch, l })))));
728
- for (let d = 0.01; d <= 1; d += 0.01) {
729
- const downCand = asHex(Math.max(0, lch.l - d));
730
- const upCand = asHex(Math.min(1, lch.l + d));
731
- const downRatio = contrastRatio(downCand, background);
732
- const upRatio = contrastRatio(upCand, background);
733
- const downPass = contrastLevel(downRatio, { large }) !== "fail";
734
- const upPass = contrastLevel(upRatio, { large }) !== "fail";
735
- if (downPass && upPass) return formatHex(downRatio >= upRatio ? downCand : upCand);
736
- if (downPass) return formatHex(downCand);
737
- if (upPass) return formatHex(upCand);
738
- }
739
- return void 0;
740
- }
741
-
742
-
743
-
744
-
745
-
746
-
747
-
748
-
749
612
 
750
613
 
751
614
 
@@ -766,4 +629,4 @@ function suggestAccessibleForeground(foreground, background, options = {}) {
766
629
 
767
630
 
768
631
 
769
- 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; exports.NAMED_COLORS = NAMED_COLORS; exports.parseColor = parseColor; exports.isColor = isColor; exports.inSrgbGamut = inSrgbGamut; exports.deltaEOK = deltaEOK; exports.toSrgbGamut = toSrgbGamut; exports.formatHex = formatHex; exports.formatColor = formatColor; exports.normalizeColor = normalizeColor; exports.relativeLuminance = relativeLuminance; exports.contrastRatio = contrastRatio; exports.contrastLevel = contrastLevel; exports.readableTextColor = readableTextColor; exports.suggestAccessibleForeground = suggestAccessibleForeground;
632
+ 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; exports.NAMED_COLORS = NAMED_COLORS; exports.parseColor = parseColor; exports.isColor = isColor; exports.relativeLuminance = relativeLuminance; exports.contrastRatio = contrastRatio; exports.contrastLevel = contrastLevel; exports.readableTextColor = readableTextColor;
@@ -5,14 +5,14 @@
5
5
 
6
6
 
7
7
 
8
- var _chunkGKNEJ6ENcjs = require('./chunk-GKNEJ6EN.cjs');
8
+ var _chunkIMRXC7OAcjs = require('./chunk-IMRXC7OA.cjs');
9
9
 
10
10
 
11
- var _chunkSBQVEBSUcjs = require('./chunk-SBQVEBSU.cjs');
11
+ var _chunkQO2T6KA5cjs = require('./chunk-QO2T6KA5.cjs');
12
12
 
13
13
 
14
14
 
15
- var _chunkR3P2M7HUcjs = require('./chunk-R3P2M7HU.cjs');
15
+ var _chunkUVXTOZ2Bcjs = require('./chunk-UVXTOZ2B.cjs');
16
16
 
17
17
 
18
18
  var _chunkG43MNQ4Ccjs = require('./chunk-G43MNQ4C.cjs');
@@ -1211,7 +1211,7 @@ var ChartNodeView = (_class = class {
1211
1211
  this.dom.contentEditable = "false";
1212
1212
  this.syncAttributes();
1213
1213
  this.key = specKey(this.node.attrs.spec);
1214
- this.controller = new (0, _chunkGKNEJ6ENcjs.ChartController)({ spec: this.node.attrs.spec });
1214
+ this.controller = new (0, _chunkIMRXC7OAcjs.ChartController)({ spec: this.node.attrs.spec });
1215
1215
  this.unsubscribe = this.controller.subscribe((state) => {
1216
1216
  if (!state.gesture) this.writeBack();
1217
1217
  });
@@ -1444,7 +1444,7 @@ function readSpec(value) {
1444
1444
  }
1445
1445
  }
1446
1446
  if (!input || typeof input !== "object" || Array.isArray(input)) return null;
1447
- return _chunkR3P2M7HUcjs.normalizeChartSpec.call(void 0, input).spec;
1447
+ return _chunkUVXTOZ2Bcjs.normalizeChartSpec.call(void 0, input).spec;
1448
1448
  }
1449
1449
  var readSize = (value) => {
1450
1450
  const n = value === null ? NaN : Number(value);
@@ -1470,10 +1470,10 @@ function staticChartSvg(node, options) {
1470
1470
  const spec = node.attrs.spec;
1471
1471
  const width = _nullishCoalesce(node.attrs.width, () => ( options.defaultWidth));
1472
1472
  const height = _nullishCoalesce(node.attrs.height, () => ( options.defaultHeight));
1473
- const scene = _chunkSBQVEBSUcjs.layoutChart.call(void 0, spec, { width, height, theme: options.theme, selection: null });
1474
- return _chunkGKNEJ6ENcjs.chartSceneToDomSpec.call(void 0, scene, {
1473
+ const scene = _chunkQO2T6KA5cjs.layoutChart.call(void 0, spec, { width, height, theme: options.theme, selection: null });
1474
+ return _chunkIMRXC7OAcjs.chartSceneToDomSpec.call(void 0, scene, {
1475
1475
  ariaLabel: spec.title || "Chart",
1476
- description: _chunkGKNEJ6ENcjs.describeChart.call(void 0, spec),
1476
+ description: _chunkIMRXC7OAcjs.describeChart.call(void 0, spec),
1477
1477
  attrs: { style: "max-width: 100%; height: auto; display: block" }
1478
1478
  });
1479
1479
  }
@@ -1489,7 +1489,7 @@ var Chart = _core.Node.create({
1489
1489
  return {
1490
1490
  HTMLAttributes: {},
1491
1491
  nodeView: null,
1492
- theme: _chunkR3P2M7HUcjs.DEFAULT_CHART_THEME,
1492
+ theme: _chunkUVXTOZ2Bcjs.DEFAULT_CHART_THEME,
1493
1493
  defaultWidth: 640,
1494
1494
  defaultHeight: 320,
1495
1495
  generateId: () => generateStructureId("chart")
@@ -1503,7 +1503,7 @@ var Chart = _core.Node.create({
1503
1503
  renderHTML: (attributes) => attributes.id ? { "data-chart-id": attributes.id } : {}
1504
1504
  },
1505
1505
  spec: {
1506
- default: _chunkR3P2M7HUcjs.normalizeChartSpec.call(void 0, {}).spec,
1506
+ default: _chunkUVXTOZ2Bcjs.normalizeChartSpec.call(void 0, {}).spec,
1507
1507
  // null (no `data-chart`) keeps what the parse rule found, e.g. a mermaid block's spec.
1508
1508
  parseHTML: (element) => readSpec(element.getAttribute("data-chart")),
1509
1509
  renderHTML: (attributes) => ({
@@ -1541,7 +1541,7 @@ var Chart = _core.Node.create({
1541
1541
  const code = element.querySelector("code");
1542
1542
  const language = _nullishCoalesce(_nullishCoalesce(_optionalChain([code, 'optionalAccess', _34 => _34.getAttribute, 'call', _35 => _35("class")]), () => ( element.getAttribute("data-language"))), () => ( ""));
1543
1543
  if (!/(?:^|\s)language-mermaid(?:\s|$)/.test(language) && language !== "mermaid") return false;
1544
- const result = _chunkGKNEJ6ENcjs.chartFromMermaid.call(void 0, _nullishCoalesce((_nullishCoalesce(code, () => ( element))).textContent, () => ( "")));
1544
+ const result = _chunkIMRXC7OAcjs.chartFromMermaid.call(void 0, _nullishCoalesce((_nullishCoalesce(code, () => ( element))).textContent, () => ( "")));
1545
1545
  return result.family ? { spec: result.spec } : false;
1546
1546
  }
1547
1547
  }
@@ -1565,7 +1565,7 @@ var Chart = _core.Node.create({
1565
1565
  return {
1566
1566
  markdown: {
1567
1567
  serialize(state, node) {
1568
- const text = _chunkGKNEJ6ENcjs.chartToMermaid.call(void 0, node.attrs.spec);
1568
+ const text = _chunkIMRXC7OAcjs.chartToMermaid.call(void 0, node.attrs.spec);
1569
1569
  const fence = "`".repeat(Math.max(3, longestBacktickRun(text) + 1));
1570
1570
  state.write(`${fence}mermaid
1571
1571
  `);
@@ -1587,7 +1587,7 @@ var Chart = _core.Node.create({
1587
1587
  type: this.name,
1588
1588
  attrs: {
1589
1589
  id: _nullishCoalesce(options.id, () => ( this.options.generateId())),
1590
- spec: _chunkR3P2M7HUcjs.normalizeChartSpec.call(void 0, _nullishCoalesce(options.spec, () => ( {}))).spec,
1590
+ spec: _chunkUVXTOZ2Bcjs.normalizeChartSpec.call(void 0, _nullishCoalesce(options.spec, () => ( {}))).spec,
1591
1591
  width: _nullishCoalesce(options.width, () => ( null)),
1592
1592
  height: _nullishCoalesce(options.height, () => ( this.options.defaultHeight))
1593
1593
  }
@@ -1598,7 +1598,7 @@ var Chart = _core.Node.create({
1598
1598
  if (dispatch) {
1599
1599
  tr.setNodeMarkup(chart.pos, void 0, {
1600
1600
  ...chart.node.attrs,
1601
- ...changes.spec !== void 0 ? { spec: _chunkR3P2M7HUcjs.normalizeChartSpec.call(void 0, changes.spec).spec } : {},
1601
+ ...changes.spec !== void 0 ? { spec: _chunkUVXTOZ2Bcjs.normalizeChartSpec.call(void 0, changes.spec).spec } : {},
1602
1602
  ...changes.width !== void 0 ? { width: changes.width } : {},
1603
1603
  ...changes.height !== void 0 ? { height: changes.height } : {}
1604
1604
  });
@@ -1705,14 +1705,14 @@ var Sparkline = _core.Node.create({
1705
1705
  return [{ tag: 'span[data-type="sparkline"]', priority: 60 }];
1706
1706
  },
1707
1707
  renderHTML({ node, HTMLAttributes }) {
1708
- const scene = _chunkGKNEJ6ENcjs.layoutSparkline.call(void 0, node.attrs.values, {
1708
+ const scene = _chunkIMRXC7OAcjs.layoutSparkline.call(void 0, node.attrs.values, {
1709
1709
  kind: node.attrs.kind,
1710
1710
  width: node.attrs.width,
1711
1711
  height: node.attrs.height,
1712
1712
  color: _nullishCoalesce(node.attrs.color, () => ( this.options.color)),
1713
1713
  negativeColor: this.options.negativeColor
1714
1714
  });
1715
- const svg = _chunkGKNEJ6ENcjs.chartSceneToDomSpec.call(void 0, scene, {
1715
+ const svg = _chunkIMRXC7OAcjs.chartSceneToDomSpec.call(void 0, scene, {
1716
1716
  ariaLabel: sparklineLabel(node),
1717
1717
  attrs: { style: "display: inline-block; vertical-align: middle" }
1718
1718
  });
@@ -1,14 +1,18 @@
1
1
  import {
2
- contrastLevel,
3
- contrastRatio,
4
2
  deltaEOK,
5
3
  formatColor,
6
4
  formatHex,
5
+ inSrgbGamut,
6
+ normalizeColor,
7
+ suggestAccessibleForeground,
8
+ toSrgbGamut
9
+ } from "./chunk-YBAPT7NL.js";
10
+ import {
11
+ contrastLevel,
12
+ contrastRatio,
7
13
  hslToRgb,
8
14
  hsvToRgb,
9
- inSrgbGamut,
10
15
  linearToSrgb,
11
- normalizeColor,
12
16
  oklabToOklch,
13
17
  oklabToRgb,
14
18
  oklchToOklab,
@@ -17,10 +21,8 @@ import {
17
21
  rgbToHsl,
18
22
  rgbToHsv,
19
23
  rgbToOklab,
20
- srgbToLinear,
21
- suggestAccessibleForeground,
22
- toSrgbGamut
23
- } from "./chunk-4VU4CP7R.js";
24
+ srgbToLinear
25
+ } from "./chunk-MHLU6GRJ.js";
24
26
 
25
27
  // src/color/vision.ts
26
28
  var CVD = {