quoin-editor 1.0.2 → 1.1.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 (224) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/ai.cjs +168 -249
  3. package/dist/ai.cjs.map +1 -1
  4. package/dist/ai.js +37 -121
  5. package/dist/ai.js.map +1 -1
  6. package/dist/catalogue.cjs +28 -43
  7. package/dist/catalogue.cjs.map +1 -1
  8. package/dist/catalogue.js +20 -37
  9. package/dist/catalogue.js.map +1 -1
  10. package/dist/{chunk-DUE3HCZD.js → chunk-2EQ6FKSK.js} +19 -28
  11. package/dist/chunk-2EQ6FKSK.js.map +1 -0
  12. package/dist/{chunk-RJRX34BZ.js → chunk-3BXUGX5F.js} +4 -18
  13. package/dist/chunk-3BXUGX5F.js.map +1 -0
  14. package/dist/chunk-3QRVAI53.cjs +27 -0
  15. package/dist/chunk-3QRVAI53.cjs.map +1 -0
  16. package/dist/{chunk-U3LOLYAU.js → chunk-7FAVFJAS.js} +4 -10
  17. package/dist/chunk-7FAVFJAS.js.map +1 -0
  18. package/dist/{chunk-6V6GGBDK.cjs → chunk-7SVKLWDT.cjs} +24 -31
  19. package/dist/chunk-7SVKLWDT.cjs.map +1 -0
  20. package/dist/{chunk-EH5KXQXY.cjs → chunk-A6PGQVTR.cjs} +36 -20
  21. package/dist/chunk-A6PGQVTR.cjs.map +1 -0
  22. package/dist/{chunk-P6KYXFZC.cjs → chunk-ACSEYJJF.cjs} +426 -534
  23. package/dist/chunk-ACSEYJJF.cjs.map +1 -0
  24. package/dist/{chunk-4SLJNZSM.cjs → chunk-AIS37SL2.cjs} +201 -198
  25. package/dist/chunk-AIS37SL2.cjs.map +1 -0
  26. package/dist/{chunk-X4HDKFW5.cjs → chunk-DTQFYHDJ.cjs} +56 -105
  27. package/dist/chunk-DTQFYHDJ.cjs.map +1 -0
  28. package/dist/{chunk-O4Z2WMFF.js → chunk-HDJ653LM.js} +25 -18
  29. package/dist/chunk-HDJ653LM.js.map +1 -0
  30. package/dist/chunk-HQ43EIYO.cjs +94 -0
  31. package/dist/chunk-HQ43EIYO.cjs.map +1 -0
  32. package/dist/{chunk-6NULZPVC.js → chunk-HTLWPSMU.js} +8 -61
  33. package/dist/chunk-HTLWPSMU.js.map +1 -0
  34. package/dist/{chunk-ADSJ42DO.js → chunk-HWEK7EX5.js} +17 -69
  35. package/dist/chunk-HWEK7EX5.js.map +1 -0
  36. package/dist/{chunk-623AOJM2.js → chunk-ITXCE6KL.js} +7 -25
  37. package/dist/chunk-ITXCE6KL.js.map +1 -0
  38. package/dist/{chunk-AUOEM3SF.cjs → chunk-IXVGHH7F.cjs} +102 -155
  39. package/dist/chunk-IXVGHH7F.cjs.map +1 -0
  40. package/dist/{chunk-NEZJ7ZP5.js → chunk-JZJIWRF3.js} +4 -8
  41. package/dist/chunk-JZJIWRF3.js.map +1 -0
  42. package/dist/{chunk-C23RQVRK.js → chunk-KSF2HILJ.js} +66 -216
  43. package/dist/chunk-KSF2HILJ.js.map +1 -0
  44. package/dist/{chunk-OBMBSU2S.js → chunk-L4D23LM2.js} +5 -184
  45. package/dist/chunk-L4D23LM2.js.map +1 -0
  46. package/dist/{chunk-4XFXB37X.js → chunk-L6OW2FL3.js} +7 -90
  47. package/dist/chunk-L6OW2FL3.js.map +1 -0
  48. package/dist/chunk-LE5XMIFJ.cjs +4 -3
  49. package/dist/chunk-LE5XMIFJ.cjs.map +1 -1
  50. package/dist/{chunk-5MAYUGTE.cjs → chunk-LY2D45F2.cjs} +233 -363
  51. package/dist/chunk-LY2D45F2.cjs.map +1 -0
  52. package/dist/{chunk-VCLL5C7J.js → chunk-MGMA5PEL.js} +14 -57
  53. package/dist/chunk-MGMA5PEL.js.map +1 -0
  54. package/dist/chunk-MQUCCSWG.js +2 -3
  55. package/dist/chunk-MQUCCSWG.js.map +1 -1
  56. package/dist/chunk-NO3KTZDY.cjs +33 -0
  57. package/dist/chunk-NO3KTZDY.cjs.map +1 -0
  58. package/dist/{chunk-TLGX43P6.cjs → chunk-OM7E43ZN.cjs} +89 -86
  59. package/dist/chunk-OM7E43ZN.cjs.map +1 -0
  60. package/dist/{chunk-JHQUHFLX.js → chunk-PJCHSHM3.js} +38 -120
  61. package/dist/chunk-PJCHSHM3.js.map +1 -0
  62. package/dist/{chunk-EPARJI4V.js → chunk-QC35D2AU.js} +107 -262
  63. package/dist/chunk-QC35D2AU.js.map +1 -0
  64. package/dist/{chunk-CW3AFJBR.cjs → chunk-QEMGOL5L.cjs} +1302 -1773
  65. package/dist/chunk-QEMGOL5L.cjs.map +1 -0
  66. package/dist/chunk-QWS7KH3K.cjs +483 -0
  67. package/dist/chunk-QWS7KH3K.cjs.map +1 -0
  68. package/dist/{chunk-IQBMAE3F.js → chunk-RHQPAW4W.js} +34 -92
  69. package/dist/chunk-RHQPAW4W.js.map +1 -0
  70. package/dist/chunk-RIIXJWBR.cjs +24 -0
  71. package/dist/chunk-RIIXJWBR.cjs.map +1 -0
  72. package/dist/{chunk-VRS6WCEK.js → chunk-SAEQMDAU.js} +60 -167
  73. package/dist/chunk-SAEQMDAU.js.map +1 -0
  74. package/dist/chunk-SKZC4K5S.cjs +612 -0
  75. package/dist/chunk-SKZC4K5S.cjs.map +1 -0
  76. package/dist/{chunk-N4FGA3H4.js → chunk-TBCHYHNU.js} +38 -105
  77. package/dist/chunk-TBCHYHNU.js.map +1 -0
  78. package/dist/{chunk-OSHZQR3W.js → chunk-TNN6Z52D.js} +13 -45
  79. package/dist/chunk-TNN6Z52D.js.map +1 -0
  80. package/dist/{chunk-YBMUEEM5.js → chunk-TYZSB7JT.js} +4 -8
  81. package/dist/chunk-TYZSB7JT.js.map +1 -0
  82. package/dist/{chunk-ZKVOS57Q.cjs → chunk-VFSVN5IQ.cjs} +495 -551
  83. package/dist/chunk-VFSVN5IQ.cjs.map +1 -0
  84. package/dist/{chunk-FDRUAL3Z.cjs → chunk-WDO6DBYU.cjs} +90 -153
  85. package/dist/chunk-WDO6DBYU.cjs.map +1 -0
  86. package/dist/{chunk-WEYDDIBQ.cjs → chunk-WHV5ZSIO.cjs} +36 -64
  87. package/dist/chunk-WHV5ZSIO.cjs.map +1 -0
  88. package/dist/{chunk-T43RZTUT.js → chunk-XJDPQFPU.js} +693 -1247
  89. package/dist/chunk-XJDPQFPU.js.map +1 -0
  90. package/dist/{chunk-BQANU5BH.cjs → chunk-ZTLYHRZT.cjs} +34 -44
  91. package/dist/chunk-ZTLYHRZT.cjs.map +1 -0
  92. package/dist/chunk-ZWB7SZVI.cjs +200 -0
  93. package/dist/chunk-ZWB7SZVI.cjs.map +1 -0
  94. package/dist/comments.cjs +209 -290
  95. package/dist/comments.cjs.map +1 -1
  96. package/dist/comments.js +81 -186
  97. package/dist/comments.js.map +1 -1
  98. package/dist/diff.cjs +48 -65
  99. package/dist/diff.cjs.map +1 -1
  100. package/dist/diff.d.cts +2 -2
  101. package/dist/diff.d.ts +2 -2
  102. package/dist/diff.js +8 -32
  103. package/dist/diff.js.map +1 -1
  104. package/dist/docx.cjs +50 -63
  105. package/dist/docx.cjs.map +1 -1
  106. package/dist/docx.js +7 -22
  107. package/dist/docx.js.map +1 -1
  108. package/dist/embed.cjs +18 -12
  109. package/dist/embed.cjs.map +1 -1
  110. package/dist/embed.js +9 -16
  111. package/dist/embed.js.map +1 -1
  112. package/dist/emoji-data.cjs +7 -5
  113. package/dist/emoji-data.cjs.map +1 -1
  114. package/dist/emoji-data.js +3 -5
  115. package/dist/emoji-data.js.map +1 -1
  116. package/dist/emoji.cjs +25 -17
  117. package/dist/emoji.cjs.map +1 -1
  118. package/dist/emoji.js +8 -17
  119. package/dist/emoji.js.map +1 -1
  120. package/dist/engine.cjs +229 -118
  121. package/dist/engine.cjs.map +1 -1
  122. package/dist/engine.js +4 -118
  123. package/dist/engine.js.map +1 -1
  124. package/dist/find.cjs +29 -19
  125. package/dist/find.cjs.map +1 -1
  126. package/dist/find.js +8 -19
  127. package/dist/find.js.map +1 -1
  128. package/dist/headless.cjs +290 -151
  129. package/dist/headless.cjs.map +1 -1
  130. package/dist/headless.d.cts +5 -1
  131. package/dist/headless.d.ts +5 -1
  132. package/dist/headless.js +5 -151
  133. package/dist/headless.js.map +1 -1
  134. package/dist/index.cjs +348 -183
  135. package/dist/index.cjs.map +1 -1
  136. package/dist/index.d.cts +14 -4
  137. package/dist/index.d.ts +14 -4
  138. package/dist/index.js +7 -183
  139. package/dist/index.js.map +1 -1
  140. package/dist/math.cjs +19 -13
  141. package/dist/math.cjs.map +1 -1
  142. package/dist/math.js +10 -17
  143. package/dist/math.js.map +1 -1
  144. package/dist/mention.cjs +19 -13
  145. package/dist/mention.cjs.map +1 -1
  146. package/dist/mention.js +10 -17
  147. package/dist/mention.js.map +1 -1
  148. package/dist/presence.cjs +98 -132
  149. package/dist/presence.cjs.map +1 -1
  150. package/dist/presence.js +21 -78
  151. package/dist/presence.js.map +1 -1
  152. package/dist/{registry-CWBOSAHm.d.ts → registry-CXegaw5k.d.cts} +25 -2
  153. package/dist/{registry-CWBOSAHm.d.cts → registry-CXegaw5k.d.ts} +25 -2
  154. package/dist/stats.cjs +26 -18
  155. package/dist/stats.cjs.map +1 -1
  156. package/dist/stats.js +9 -18
  157. package/dist/stats.js.map +1 -1
  158. package/dist/styles.css +1 -1
  159. package/dist/table.cjs +89 -49
  160. package/dist/table.cjs.map +1 -1
  161. package/dist/table.js +8 -49
  162. package/dist/table.js.map +1 -1
  163. package/dist/toc.cjs +25 -17
  164. package/dist/toc.cjs.map +1 -1
  165. package/dist/toc.js +8 -17
  166. package/dist/toc.js.map +1 -1
  167. package/dist/view.cjs +13 -16
  168. package/dist/view.cjs.map +1 -1
  169. package/dist/view.d.cts +2 -2
  170. package/dist/view.d.ts +2 -2
  171. package/dist/view.js +7 -16
  172. package/dist/view.js.map +1 -1
  173. package/dist/yjs.cjs +186 -228
  174. package/dist/yjs.cjs.map +1 -1
  175. package/dist/yjs.js +12 -80
  176. package/dist/yjs.js.map +1 -1
  177. package/package.json +1 -1
  178. package/dist/chunk-4SLJNZSM.cjs.map +0 -1
  179. package/dist/chunk-4XFXB37X.js.map +0 -1
  180. package/dist/chunk-5MAYUGTE.cjs.map +0 -1
  181. package/dist/chunk-623AOJM2.js.map +0 -1
  182. package/dist/chunk-6NULZPVC.js.map +0 -1
  183. package/dist/chunk-6V6GGBDK.cjs.map +0 -1
  184. package/dist/chunk-73653CJ4.cjs +0 -34
  185. package/dist/chunk-73653CJ4.cjs.map +0 -1
  186. package/dist/chunk-ADSJ42DO.js.map +0 -1
  187. package/dist/chunk-AUOEM3SF.cjs.map +0 -1
  188. package/dist/chunk-BQANU5BH.cjs.map +0 -1
  189. package/dist/chunk-C23RQVRK.js.map +0 -1
  190. package/dist/chunk-CW3AFJBR.cjs.map +0 -1
  191. package/dist/chunk-DUE3HCZD.js.map +0 -1
  192. package/dist/chunk-EH5KXQXY.cjs.map +0 -1
  193. package/dist/chunk-EPARJI4V.js.map +0 -1
  194. package/dist/chunk-FDRUAL3Z.cjs.map +0 -1
  195. package/dist/chunk-IQBMAE3F.js.map +0 -1
  196. package/dist/chunk-JHQUHFLX.js.map +0 -1
  197. package/dist/chunk-KUYZMSMF.cjs +0 -100
  198. package/dist/chunk-KUYZMSMF.cjs.map +0 -1
  199. package/dist/chunk-LLTEGXWZ.cjs +0 -562
  200. package/dist/chunk-LLTEGXWZ.cjs.map +0 -1
  201. package/dist/chunk-N4FGA3H4.js.map +0 -1
  202. package/dist/chunk-NEZJ7ZP5.js.map +0 -1
  203. package/dist/chunk-O4Z2WMFF.js.map +0 -1
  204. package/dist/chunk-OBMBSU2S.js.map +0 -1
  205. package/dist/chunk-OSHZQR3W.js.map +0 -1
  206. package/dist/chunk-P6KYXFZC.cjs.map +0 -1
  207. package/dist/chunk-R2BLBV43.cjs +0 -239
  208. package/dist/chunk-R2BLBV43.cjs.map +0 -1
  209. package/dist/chunk-RJRX34BZ.js.map +0 -1
  210. package/dist/chunk-T43RZTUT.js.map +0 -1
  211. package/dist/chunk-TLGX43P6.cjs.map +0 -1
  212. package/dist/chunk-U3LOLYAU.js.map +0 -1
  213. package/dist/chunk-UEKXVCKC.cjs +0 -716
  214. package/dist/chunk-UEKXVCKC.cjs.map +0 -1
  215. package/dist/chunk-VCLL5C7J.js.map +0 -1
  216. package/dist/chunk-VRS6WCEK.js.map +0 -1
  217. package/dist/chunk-WEYDDIBQ.cjs.map +0 -1
  218. package/dist/chunk-X4HDKFW5.cjs.map +0 -1
  219. package/dist/chunk-X4P4TQXH.cjs +0 -30
  220. package/dist/chunk-X4P4TQXH.cjs.map +0 -1
  221. package/dist/chunk-XA3UEJIW.cjs +0 -25
  222. package/dist/chunk-XA3UEJIW.cjs.map +0 -1
  223. package/dist/chunk-YBMUEEM5.js.map +0 -1
  224. package/dist/chunk-ZKVOS57Q.cjs.map +0 -1
@@ -1,20 +1,11 @@
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; }
1
+ 'use strict';
2
2
 
3
- var _chunkX4P4TQXHcjs = require('./chunk-X4P4TQXH.cjs');
4
-
5
-
6
- var _chunkP6KYXFZCcjs = require('./chunk-P6KYXFZC.cjs');
7
-
8
-
9
-
10
-
11
-
12
-
13
- var _chunkZKVOS57Qcjs = require('./chunk-ZKVOS57Q.cjs');
14
-
15
-
16
-
17
- var _chunk4SLJNZSMcjs = require('./chunk-4SLJNZSM.cjs');
3
+ var chunk3QRVAI53_cjs = require('./chunk-3QRVAI53.cjs');
4
+ var chunkACSEYJJF_cjs = require('./chunk-ACSEYJJF.cjs');
5
+ var chunkVFSVN5IQ_cjs = require('./chunk-VFSVN5IQ.cjs');
6
+ var chunkAIS37SL2_cjs = require('./chunk-AIS37SL2.cjs');
7
+ var react = require('react');
8
+ var jsxRuntime = require('react/jsx-runtime');
18
9
 
19
10
  // src/extensions/focus/focus-decorations.ts
20
11
  var DIMMED_ATTRIBUTE = "data-quoin-dimmed";
@@ -24,7 +15,7 @@ var drawn = /* @__PURE__ */ new WeakMap();
24
15
  function touched({ doc, selection }) {
25
16
  if (selection === null) return null;
26
17
  const ends = selection.kind === "text" ? [selection.anchor.block, selection.head.block] : selection.kind === "node" ? [selection.block] : [selection.anchor, selection.head];
27
- const at = ends.map((id) => _nullishCoalesce(doc.index.get(id), () => ( -1)));
18
+ const at = ends.map((id) => doc.index.get(id) ?? -1);
28
19
  return at.includes(-1) ? null : [Math.min(...at), Math.max(...at)];
29
20
  }
30
21
  function undimmed(doc, from, to) {
@@ -61,20 +52,20 @@ var ATTACHMENTS = /* @__PURE__ */ new Set(["FILE", "IMAGE", "EMBED", "BOOKMARK"]
61
52
  var NOTHING = { characters: 0, words: 0 };
62
53
  var tables = /* @__PURE__ */ new WeakMap();
63
54
  function countTable(block, schema) {
64
- const known = _nullishCoalesce(tables.get(schema), () => ( /* @__PURE__ */ new WeakMap()));
55
+ const known = tables.get(schema) ?? /* @__PURE__ */ new WeakMap();
65
56
  tables.set(schema, known);
66
57
  let stats = known.get(block);
67
58
  if (stats) return stats;
68
59
  stats = { characters: 0, words: 0 };
69
- for (const cell of _chunk4SLJNZSMcjs.tableCells.call(void 0, block).flat()) {
70
- const text = _chunk4SLJNZSMcjs.inlinePlainText.call(void 0, cell, schema);
71
- stats.characters += _chunkZKVOS57Qcjs.graphemeCount.call(void 0, text);
72
- stats.words += _chunkZKVOS57Qcjs.wordCount.call(void 0, text);
60
+ for (const cell of chunkAIS37SL2_cjs.tableCells(block).flat()) {
61
+ const text = chunkAIS37SL2_cjs.inlinePlainText(cell, schema);
62
+ stats.characters += chunkVFSVN5IQ_cjs.graphemeCount(text);
63
+ stats.words += chunkVFSVN5IQ_cjs.wordCount(text);
73
64
  }
74
65
  known.set(block, stats);
75
66
  return stats;
76
67
  }
77
- var countOne = (block, schema) => ATTACHMENTS.has(block.type) ? NOTHING : block.type === "TABLE" ? countTable(block, schema) : _chunkZKVOS57Qcjs.countBlock.call(void 0, block, schema);
68
+ var countOne = (block, schema) => ATTACHMENTS.has(block.type) ? NOTHING : block.type === "TABLE" ? countTable(block, schema) : chunkVFSVN5IQ_cjs.countBlock(block, schema);
78
69
  function countWriting(doc, schema) {
79
70
  let characters2 = 0;
80
71
  let words = 0;
@@ -108,14 +99,14 @@ function createLimit(limit) {
108
99
  // src/extensions/stats/plain-in-code-and-math.ts
109
100
  function opensUnclosedCode(src) {
110
101
  let open = 0;
111
- for (const run of _nullishCoalesce(src.match(/`+/g), () => ( []))) open = open === 0 ? run.length : open === run.length ? 0 : open;
102
+ for (const run of src.match(/`+/g) ?? []) open = open === 0 ? run.length : open === run.length ? 0 : open;
112
103
  return open > 0;
113
104
  }
114
105
  var plainInCodeAndMath = (rules) => rules.map((rule) => ({
115
106
  ...rule,
116
107
  handler(state, match, range, context) {
117
108
  const before = match.input.slice(0, match.index);
118
- return _chunkX4P4TQXHcjs.opensUnclosedMath.call(void 0, before) || opensUnclosedCode(before) ? null : rule.handler(state, match, range, context);
109
+ return chunk3QRVAI53_cjs.opensUnclosedMath(before) || opensUnclosedCode(before) ? null : rule.handler(state, match, range, context);
119
110
  }
120
111
  }));
121
112
 
@@ -130,28 +121,22 @@ var englishStatsLabels = {
130
121
  limitReached: (limit) => `Character limit of ${grouped(limit)} reached`
131
122
  };
132
123
  function resolveStatsLabels(overrides) {
133
- const given = Object.entries(_nullishCoalesce(overrides, () => ( {}))).filter(([, value]) => value !== void 0);
124
+ const given = Object.entries(overrides ?? {}).filter(([, value]) => value !== void 0);
134
125
  return given.length === 0 ? englishStatsLabels : { ...englishStatsLabels, ...Object.fromEntries(given) };
135
126
  }
136
-
137
- // src/extensions/focus/use-focus-mode.ts
138
- var _react = require('react');
139
127
  var FOCUS_MODE_ATTRIBUTE = "data-quoin-focus-mode";
140
128
  function useFocusMode(controller, enabled) {
141
- const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
142
- _react.useEffect.call(void 0, () => {
129
+ const readOnly = chunkACSEYJJF_cjs.useReadOnly(controller);
130
+ react.useEffect(() => {
143
131
  const { root } = controller;
144
132
  if (!enabled || readOnly || root === null) return void 0;
145
133
  root.setAttribute(FOCUS_MODE_ATTRIBUTE, "");
146
134
  return () => root.removeAttribute(FOCUS_MODE_ATTRIBUTE);
147
135
  }, [controller, enabled, readOnly]);
148
136
  }
149
-
150
- // src/extensions/limit/use-limit-announcement.ts
151
-
152
137
  var LIMIT_ANNOUNCEMENT_INTERVAL_MS = 3e3;
153
138
  function useLimitAnnouncement(controller, limit, message) {
154
- _react.useEffect.call(void 0, () => {
139
+ react.useEffect(() => {
155
140
  if (limit === null) return void 0;
156
141
  let spokenAt = -Infinity;
157
142
  return limit.onRefused((state) => {
@@ -162,17 +147,14 @@ function useLimitAnnouncement(controller, limit, message) {
162
147
  });
163
148
  }, [controller, limit, message]);
164
149
  }
165
-
166
- // src/extensions/stats/use-editor-stats.ts
167
-
168
150
  var statsOf = ({ state }) => ({
169
151
  ...countWriting(state.doc, state.schema),
170
152
  blocks: state.doc.blocks.length
171
153
  });
172
154
  var sameStats = (a, b) => a.characters === b.characters && a.words === b.words && a.blocks === b.blocks;
173
155
  function useEditorStats(controller) {
174
- const [stats, setStats] = _react.useState.call(void 0, () => statsOf(controller.editor));
175
- _react.useEffect.call(void 0, () => {
156
+ const [stats, setStats] = react.useState(() => statsOf(controller.editor));
157
+ react.useEffect(() => {
176
158
  const { editor } = controller;
177
159
  let frame = 0;
178
160
  const recount = () => {
@@ -182,7 +164,7 @@ function useEditorStats(controller) {
182
164
  };
183
165
  recount();
184
166
  const stop = editor.subscribe((_, tr) => {
185
- if (frame === 0 && _optionalChain([tr, 'optionalAccess', _2 => _2.docChanged])) frame = requestAnimationFrame(recount);
167
+ if (frame === 0 && tr?.docChanged) frame = requestAnimationFrame(recount);
186
168
  });
187
169
  return () => {
188
170
  stop();
@@ -191,36 +173,27 @@ function useEditorStats(controller) {
191
173
  }, [controller]);
192
174
  return stats;
193
175
  }
194
-
195
- // src/extensions/stats/StatsFooter.tsx
196
- var _jsxruntime = require('react/jsx-runtime');
197
176
  var NEAR_LIMIT = 0.9;
198
177
  function StatsFooter({ controller, labels, limit }) {
199
178
  const { characters: characters2, words, blocks } = useEditorStats(controller);
200
179
  const near = limit !== void 0 && characters2 >= limit * NEAR_LIMIT;
201
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-stats", "data-quoin-stats": "", children: [
202
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: labels.words(words) }),
203
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "aria-live": near ? "polite" : void 0, "data-near-limit": near ? "" : void 0, children: limit === void 0 ? labels.characters(characters2) : labels.characterLimit(characters2, limit) }),
204
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: labels.blocks(blocks) })
180
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "quoin-stats", "data-quoin-stats": "", children: [
181
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: labels.words(words) }),
182
+ /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-live": near ? "polite" : void 0, "data-near-limit": near ? "" : void 0, children: limit === void 0 ? labels.characters(characters2) : labels.characterLimit(characters2, limit) }),
183
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: labels.blocks(blocks) })
205
184
  ] });
206
185
  }
207
-
208
- // src/extensions/stats/StatsOverlay.tsx
209
-
210
186
  function StatsOverlay({ controller, labels, footer, limit, guard, focusMode }) {
211
187
  useLimitAnnouncement(controller, guard, limit === void 0 ? "" : labels.limitReached(limit));
212
188
  useFocusMode(controller, focusMode);
213
- return footer ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatsFooter, { controller, labels, limit }) : null;
189
+ return footer ? /* @__PURE__ */ jsxRuntime.jsx(StatsFooter, { controller, labels, limit }) : null;
214
190
  }
215
-
216
- // src/extensions/stats/stats-extension.tsx
217
-
218
191
  function statsExtension(options = {}) {
219
192
  const { footer = true, focusMode = false, typography = false, limit: given } = options;
220
193
  const limit = given !== void 0 && Number.isFinite(given) && given >= 0 ? given : void 0;
221
194
  const labels = resolveStatsLabels(options.labels);
222
195
  const guard = limit === void 0 ? null : createLimit(limit);
223
- const Overlay = ({ controller }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
196
+ const Overlay = ({ controller }) => /* @__PURE__ */ jsxRuntime.jsx(
224
197
  StatsOverlay,
225
198
  {
226
199
  controller,
@@ -232,18 +205,17 @@ function statsExtension(options = {}) {
232
205
  }
233
206
  );
234
207
  const ui = { overlays: [Overlay] };
235
- return _chunkZKVOS57Qcjs.defineExtension.call(void 0, {
208
+ return chunkVFSVN5IQ_cjs.defineExtension({
236
209
  name: "stats",
237
210
  ...guard && { filterTransaction: guard.filterTransaction },
238
211
  ...focusMode && { decorations: focusDecorations },
239
- ...typography && { inputRules: plainInCodeAndMath(_chunkZKVOS57Qcjs.typographyRules.call(void 0, typography === true ? {} : typography)) },
212
+ ...typography && { inputRules: plainInCodeAndMath(chunkVFSVN5IQ_cjs.typographyRules(typography === true ? {} : typography)) },
240
213
  ui
241
214
  });
242
215
  }
243
216
 
244
-
245
-
246
-
247
-
248
- exports.englishStatsLabels = englishStatsLabels; exports.useEditorStats = useEditorStats; exports.statsExtension = statsExtension;
249
- //# sourceMappingURL=chunk-WEYDDIBQ.cjs.map
217
+ exports.englishStatsLabels = englishStatsLabels;
218
+ exports.statsExtension = statsExtension;
219
+ exports.useEditorStats = useEditorStats;
220
+ //# sourceMappingURL=chunk-WHV5ZSIO.cjs.map
221
+ //# sourceMappingURL=chunk-WHV5ZSIO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/extensions/focus/focus-decorations.ts","../src/extensions/stats/count-writing.ts","../src/extensions/limit/limit-plugin.ts","../src/extensions/stats/plain-in-code-and-math.ts","../src/extensions/stats/stats-labels.ts","../src/extensions/focus/use-focus-mode.ts","../src/extensions/limit/use-limit-announcement.ts","../src/extensions/stats/use-editor-stats.ts","../src/extensions/stats/StatsFooter.tsx","../src/extensions/stats/StatsOverlay.tsx","../src/extensions/stats/stats-extension.tsx"],"names":["tableCells","inlinePlainText","graphemeCount","wordCount","countBlock","characters","opensUnclosedMath","useReadOnly","useEffect","useState","jsxs","jsx","defineExtension","typographyRules"],"mappings":"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","file":"chunk-WHV5ZSIO.cjs"}