@milkdown/crepe 7.5.0 → 7.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/lib/cjs/{index--tnUmqZ_.js → index--2zEz40J.js} +8 -23
  2. package/lib/cjs/{index--tnUmqZ_.js.map → index--2zEz40J.js.map} +1 -1
  3. package/lib/cjs/{index-92bwto5V.js → index-5n9R-QCl.js} +5 -20
  4. package/lib/cjs/{index-92bwto5V.js.map → index-5n9R-QCl.js.map} +1 -1
  5. package/lib/cjs/{index-HH5lPgpj.js → index-HEdBw63r.js} +8 -23
  6. package/lib/cjs/{index-HH5lPgpj.js.map → index-HEdBw63r.js.map} +1 -1
  7. package/lib/cjs/{index-J1-yHn7v.js → index-Hlt9dRH5.js} +5 -20
  8. package/lib/cjs/{index-J1-yHn7v.js.map → index-Hlt9dRH5.js.map} +1 -1
  9. package/lib/cjs/{index-cb-5m0vG.js → index-KCW2CzRk.js} +8 -23
  10. package/lib/cjs/index-KCW2CzRk.js.map +1 -0
  11. package/lib/cjs/{index-VYwHTL3F.js → index-KSZhahYb.js} +6 -21
  12. package/lib/cjs/{index-VYwHTL3F.js.map → index-KSZhahYb.js.map} +1 -1
  13. package/lib/cjs/index-N1cRxqdw.js +39 -0
  14. package/lib/cjs/index-N1cRxqdw.js.map +1 -0
  15. package/lib/cjs/{index-c_OzudR7.js → index-NNo_VSEA.js} +5 -20
  16. package/lib/{esm/index-DS7Z4Ach.js.map → cjs/index-NNo_VSEA.js.map} +1 -1
  17. package/lib/cjs/{index-Tjg8KyK7.js → index-O1bDbloo.js} +5 -20
  18. package/lib/{esm/index-eqd5wtjX.js.map → cjs/index-O1bDbloo.js.map} +1 -1
  19. package/lib/cjs/{index-55VIM-52.js → index-OPh9naof.js} +8 -23
  20. package/lib/cjs/{index-55VIM-52.js.map → index-OPh9naof.js.map} +1 -1
  21. package/lib/cjs/{index-E4Ist86Z.js → index-PAhfZtcH.js} +5 -20
  22. package/lib/cjs/{index-E4Ist86Z.js.map → index-PAhfZtcH.js.map} +1 -1
  23. package/lib/cjs/{index-vfzLCXfi.js → index-PeRHVz4A.js} +5 -20
  24. package/lib/{esm/index-3bDzhU6z.js.map → cjs/index-PeRHVz4A.js.map} +1 -1
  25. package/lib/cjs/{index-Jztk6JlP.js → index-U7GWrg-w.js} +9 -456
  26. package/lib/cjs/index-U7GWrg-w.js.map +1 -0
  27. package/lib/cjs/{index-zXSAHvAj.js → index-UTb0Az5e.js} +2 -2
  28. package/lib/cjs/{index-zXSAHvAj.js.map → index-UTb0Az5e.js.map} +1 -1
  29. package/lib/cjs/{index-lBumFRUQ.js → index-UnEAyH8X.js} +5 -20
  30. package/lib/cjs/{index-lBumFRUQ.js.map → index-UnEAyH8X.js.map} +1 -1
  31. package/lib/cjs/{index-1vHyMXH8.js → index-VCkq0ru1.js} +5 -20
  32. package/lib/{esm/index-g_3dzLYU.js.map → cjs/index-VCkq0ru1.js.map} +1 -1
  33. package/lib/cjs/{index-FbNqlZU8.js → index-WQl7Du53.js} +4 -19
  34. package/lib/cjs/index-WQl7Du53.js.map +1 -0
  35. package/lib/cjs/{index-nTfDKYYi.js → index-ahL5MvrQ.js} +28 -43
  36. package/lib/cjs/{index-nTfDKYYi.js.map → index-ahL5MvrQ.js.map} +1 -1
  37. package/lib/cjs/{index--sa4NMpW.js → index-bpgWLeRY.js} +5 -20
  38. package/lib/cjs/{index--sa4NMpW.js.map → index-bpgWLeRY.js.map} +1 -1
  39. package/lib/cjs/index-dEVmN_aj.js +26 -0
  40. package/lib/cjs/index-dEVmN_aj.js.map +1 -0
  41. package/lib/cjs/{index-von4W2LG.js → index-fZupvR_f.js} +8 -23
  42. package/lib/{esm/index-NZ5-xr5_.js.map → cjs/index-fZupvR_f.js.map} +1 -1
  43. package/lib/cjs/{index-mcxgNBq9.js → index-gSM-jgti.js} +5 -20
  44. package/lib/cjs/{index-mcxgNBq9.js.map → index-gSM-jgti.js.map} +1 -1
  45. package/lib/cjs/{index-lUNj3xuC.js → index-jlPr_A_N.js} +5 -20
  46. package/lib/cjs/{index-lUNj3xuC.js.map → index-jlPr_A_N.js.map} +1 -1
  47. package/lib/cjs/index-ocxd4A-M.js +675 -0
  48. package/lib/cjs/index-ocxd4A-M.js.map +1 -0
  49. package/lib/cjs/{index-J3XY9IPt.js → index-rFFAL9YA.js} +9 -17
  50. package/lib/cjs/{index-J3XY9IPt.js.map → index-rFFAL9YA.js.map} +1 -1
  51. package/lib/cjs/index-tlx25I_m.js +36 -0
  52. package/lib/cjs/index-tlx25I_m.js.map +1 -0
  53. package/lib/cjs/index-tqAbVyds.js +28 -0
  54. package/lib/cjs/index-tqAbVyds.js.map +1 -0
  55. package/lib/cjs/{index-cpC-j5Nt.js → index-udZSknd8.js} +30 -39
  56. package/lib/cjs/{index-cpC-j5Nt.js.map → index-udZSknd8.js.map} +1 -1
  57. package/lib/cjs/index-uleaJDBC.js +19 -0
  58. package/lib/cjs/index-uleaJDBC.js.map +1 -0
  59. package/lib/cjs/{index-jn036wuh.js → index-urB-WDqA.js} +7 -22
  60. package/lib/{esm/index-VoX_n1l_.js.map → cjs/index-urB-WDqA.js.map} +1 -1
  61. package/lib/cjs/{index-jlfsu92T.js → index-xWgWtxUR.js} +6 -21
  62. package/lib/cjs/{index-jlfsu92T.js.map → index-xWgWtxUR.js.map} +1 -1
  63. package/lib/cjs/index.js +150 -14
  64. package/lib/cjs/index.js.map +1 -1
  65. package/lib/cjs/{todoList-Ze4FLMlx.js → todoList-YYRQo7wG.js} +1 -12
  66. package/lib/cjs/todoList-YYRQo7wG.js.map +1 -0
  67. package/lib/esm/{index-Yuj7sNhQ.js → index-1NetiFdJ.js} +8 -23
  68. package/lib/esm/{index-Yuj7sNhQ.js.map → index-1NetiFdJ.js.map} +1 -1
  69. package/lib/esm/{index-6GrVnloh.js → index-2I_xbjAZ.js} +28 -43
  70. package/lib/esm/{index-6GrVnloh.js.map → index-2I_xbjAZ.js.map} +1 -1
  71. package/lib/esm/{index-bexsWrgs.js → index-2huXYfuJ.js} +8 -23
  72. package/lib/esm/{index-bexsWrgs.js.map → index-2huXYfuJ.js.map} +1 -1
  73. package/lib/esm/{index-zrQXXSXm.js → index-4x6_TVZv.js} +5 -20
  74. package/lib/esm/{index-zrQXXSXm.js.map → index-4x6_TVZv.js.map} +1 -1
  75. package/lib/esm/index-6JoGWH2I.js +17 -0
  76. package/lib/esm/index-6JoGWH2I.js.map +1 -0
  77. package/lib/esm/{index-OpUb5xP6.js → index-A-dNwMMf.js} +2 -2
  78. package/lib/esm/{index-OpUb5xP6.js.map → index-A-dNwMMf.js.map} +1 -1
  79. package/lib/esm/{index-SDPCpsD5.js → index-AV99ipmP.js} +5 -20
  80. package/lib/esm/{index-SDPCpsD5.js.map → index-AV99ipmP.js.map} +1 -1
  81. package/lib/esm/{index-MB6wQe1U.js → index-CMGDOz11.js} +5 -13
  82. package/lib/esm/{index-MB6wQe1U.js.map → index-CMGDOz11.js.map} +1 -1
  83. package/lib/esm/index-HlPKwzLC.js +34 -0
  84. package/lib/esm/index-HlPKwzLC.js.map +1 -0
  85. package/lib/esm/{index-MxgqkRtj.js → index-PC2bahtq.js} +5 -20
  86. package/lib/esm/{index-MxgqkRtj.js.map → index-PC2bahtq.js.map} +1 -1
  87. package/lib/esm/{index-eqd5wtjX.js → index-QBYz82jZ.js} +5 -20
  88. package/lib/{cjs/index-Tjg8KyK7.js.map → esm/index-QBYz82jZ.js.map} +1 -1
  89. package/lib/esm/{index-VP76m4nW.js → index-W1pAMr_8.js} +6 -21
  90. package/lib/esm/{index-VP76m4nW.js.map → index-W1pAMr_8.js.map} +1 -1
  91. package/lib/esm/{index-i79QMXpJ.js → index-Xzdc2jbA.js} +7 -454
  92. package/lib/esm/index-Xzdc2jbA.js.map +1 -0
  93. package/lib/esm/{index-_4fWmRbN.js → index-ZAtZWqJQ.js} +5 -20
  94. package/lib/esm/{index-_4fWmRbN.js.map → index-ZAtZWqJQ.js.map} +1 -1
  95. package/lib/esm/index-_A9vu1ED.js +673 -0
  96. package/lib/esm/index-_A9vu1ED.js.map +1 -0
  97. package/lib/esm/{index-x8SyiPMC.js → index-bnSKBrbD.js} +5 -20
  98. package/lib/esm/{index-x8SyiPMC.js.map → index-bnSKBrbD.js.map} +1 -1
  99. package/lib/esm/index-fVrfHXda.js +24 -0
  100. package/lib/esm/index-fVrfHXda.js.map +1 -0
  101. package/lib/esm/{index-Vl0W0S3h.js → index-ftnOhuRS.js} +4 -19
  102. package/lib/esm/index-ftnOhuRS.js.map +1 -0
  103. package/lib/esm/{index-1l-61HI-.js → index-iQPB0Rdl.js} +6 -21
  104. package/lib/esm/{index-1l-61HI-.js.map → index-iQPB0Rdl.js.map} +1 -1
  105. package/lib/esm/{index-grT-Kuf2.js → index-kPj3-TKp.js} +5 -20
  106. package/lib/esm/{index-grT-Kuf2.js.map → index-kPj3-TKp.js.map} +1 -1
  107. package/lib/esm/{index-NZ5-xr5_.js → index-kgOR7SZ6.js} +8 -23
  108. package/lib/{cjs/index-von4W2LG.js.map → esm/index-kgOR7SZ6.js.map} +1 -1
  109. package/lib/esm/{index-A83StUe6.js → index-lm00PM0y.js} +8 -17
  110. package/lib/esm/{index-A83StUe6.js.map → index-lm00PM0y.js.map} +1 -1
  111. package/lib/esm/{index-g_3dzLYU.js → index-m49Bj3q7.js} +5 -20
  112. package/lib/{cjs/index-1vHyMXH8.js.map → esm/index-m49Bj3q7.js.map} +1 -1
  113. package/lib/esm/index-ohmbt6Ys.js +37 -0
  114. package/lib/esm/index-ohmbt6Ys.js.map +1 -0
  115. package/lib/esm/{index-rvOBAXap.js → index-sWVjGw-3.js} +8 -23
  116. package/lib/esm/index-sWVjGw-3.js.map +1 -0
  117. package/lib/esm/{index-DS7Z4Ach.js → index-twh8lL5o.js} +5 -20
  118. package/lib/{cjs/index-c_OzudR7.js.map → esm/index-twh8lL5o.js.map} +1 -1
  119. package/lib/esm/{index-3bDzhU6z.js → index-v02MCz4_.js} +5 -20
  120. package/lib/{cjs/index-vfzLCXfi.js.map → esm/index-v02MCz4_.js.map} +1 -1
  121. package/lib/esm/index-v3rvbocl.js +26 -0
  122. package/lib/esm/index-v3rvbocl.js.map +1 -0
  123. package/lib/esm/{index-XH7OnwZl.js → index-wEXT8mbN.js} +5 -20
  124. package/lib/esm/{index-XH7OnwZl.js.map → index-wEXT8mbN.js.map} +1 -1
  125. package/lib/esm/{index-VoX_n1l_.js → index-wFIac5Kw.js} +7 -22
  126. package/lib/{cjs/index-jn036wuh.js.map → esm/index-wFIac5Kw.js.map} +1 -1
  127. package/lib/esm/{index-3HeWs5rX.js → index-wg94ewRo.js} +8 -23
  128. package/lib/esm/{index-3HeWs5rX.js.map → index-wg94ewRo.js.map} +1 -1
  129. package/lib/esm/index.js +152 -12
  130. package/lib/esm/index.js.map +1 -1
  131. package/lib/esm/{todoList-M-PGJKde.js → todoList-9QsDDcmB.js} +2 -12
  132. package/lib/esm/todoList-9QsDDcmB.js.map +1 -0
  133. package/package.json +1 -1
  134. package/lib/cjs/_view-N32ied53.js +0 -27
  135. package/lib/cjs/_view-N32ied53.js.map +0 -1
  136. package/lib/cjs/floating-ui.dom-2cjBpir5.js +0 -1134
  137. package/lib/cjs/floating-ui.dom-2cjBpir5.js.map +0 -1
  138. package/lib/cjs/helper-1aludV1Z.js +0 -15
  139. package/lib/cjs/helper-1aludV1Z.js.map +0 -1
  140. package/lib/cjs/index-28q261C7.js +0 -448
  141. package/lib/cjs/index-28q261C7.js.map +0 -1
  142. package/lib/cjs/index-Buu2tD9O.js +0 -534
  143. package/lib/cjs/index-Buu2tD9O.js.map +0 -1
  144. package/lib/cjs/index-FbNqlZU8.js.map +0 -1
  145. package/lib/cjs/index-Jztk6JlP.js.map +0 -1
  146. package/lib/cjs/index-N6pPZY61.js +0 -191
  147. package/lib/cjs/index-N6pPZY61.js.map +0 -1
  148. package/lib/cjs/index-TUJs6KKL.js +0 -472
  149. package/lib/cjs/index-TUJs6KKL.js.map +0 -1
  150. package/lib/cjs/index-_GOdKqUK.js +0 -1147
  151. package/lib/cjs/index-_GOdKqUK.js.map +0 -1
  152. package/lib/cjs/index-cKQcw-eu.js +0 -386
  153. package/lib/cjs/index-cKQcw-eu.js.map +0 -1
  154. package/lib/cjs/index-cb-5m0vG.js.map +0 -1
  155. package/lib/cjs/index-crv_k6dv.js +0 -1353
  156. package/lib/cjs/index-crv_k6dv.js.map +0 -1
  157. package/lib/cjs/index-kqz-P6o6.js +0 -55
  158. package/lib/cjs/index-kqz-P6o6.js.map +0 -1
  159. package/lib/cjs/index-tBw4NmwY.js +0 -33852
  160. package/lib/cjs/index-tBw4NmwY.js.map +0 -1
  161. package/lib/cjs/schema-RVrwDDcq.js +0 -74
  162. package/lib/cjs/schema-RVrwDDcq.js.map +0 -1
  163. package/lib/cjs/todoList-Ze4FLMlx.js.map +0 -1
  164. package/lib/cjs/tooltip-plugin--lhebztC.js +0 -191
  165. package/lib/cjs/tooltip-plugin--lhebztC.js.map +0 -1
  166. package/lib/esm/_view-IlZC8FA6.js +0 -25
  167. package/lib/esm/_view-IlZC8FA6.js.map +0 -1
  168. package/lib/esm/floating-ui.dom-CAYjY8Gv.js +0 -1130
  169. package/lib/esm/floating-ui.dom-CAYjY8Gv.js.map +0 -1
  170. package/lib/esm/helper-wZAtC67x.js +0 -13
  171. package/lib/esm/helper-wZAtC67x.js.map +0 -1
  172. package/lib/esm/index-0-j8Icms.js +0 -384
  173. package/lib/esm/index-0-j8Icms.js.map +0 -1
  174. package/lib/esm/index-8QJbxTYk.js +0 -1145
  175. package/lib/esm/index-8QJbxTYk.js.map +0 -1
  176. package/lib/esm/index-9w_hdnvb.js +0 -532
  177. package/lib/esm/index-9w_hdnvb.js.map +0 -1
  178. package/lib/esm/index-AOoFzBaK.js +0 -53
  179. package/lib/esm/index-AOoFzBaK.js.map +0 -1
  180. package/lib/esm/index-LAdX6LsO.js +0 -33805
  181. package/lib/esm/index-LAdX6LsO.js.map +0 -1
  182. package/lib/esm/index-Vl0W0S3h.js.map +0 -1
  183. package/lib/esm/index-chrnjY1D.js +0 -470
  184. package/lib/esm/index-chrnjY1D.js.map +0 -1
  185. package/lib/esm/index-hF04phbf.js +0 -189
  186. package/lib/esm/index-hF04phbf.js.map +0 -1
  187. package/lib/esm/index-i79QMXpJ.js.map +0 -1
  188. package/lib/esm/index-rvOBAXap.js.map +0 -1
  189. package/lib/esm/index-uP9BKsTM.js +0 -446
  190. package/lib/esm/index-uP9BKsTM.js.map +0 -1
  191. package/lib/esm/index-ueQQMSgm.js +0 -1351
  192. package/lib/esm/index-ueQQMSgm.js.map +0 -1
  193. package/lib/esm/schema-JWJqD9qa.js +0 -71
  194. package/lib/esm/schema-JWJqD9qa.js.map +0 -1
  195. package/lib/esm/todoList-M-PGJKde.js.map +0 -1
  196. package/lib/esm/tooltip-plugin-iw2EQWIG.js +0 -185
  197. package/lib/esm/tooltip-plugin-iw2EQWIG.js.map +0 -1
@@ -1,185 +0,0 @@
1
- import { html } from 'atomico';
2
- import { w as withMeta } from './todoList-M-PGJKde.js';
3
- import { $ as $ctx, d as $prose } from './index-LAdX6LsO.js';
4
- import { TextSelection, Plugin, PluginKey } from '@milkdown/prose/state';
5
- import { d as debounce } from './index-0-j8Icms.js';
6
- import { c as computePosition, f as flip, o as offset } from './floating-ui.dom-CAYjY8Gv.js';
7
- import { posToDOMRect } from '@milkdown/prose';
8
-
9
- const defaultState = {
10
- mode: "preview"
11
- };
12
- const linkTooltipState = $ctx({ ...defaultState }, "linkTooltipStateCtx");
13
- withMeta(linkTooltipState, {
14
- displayName: "State<link-tooltip>",
15
- group: "LinkTooltip"
16
- });
17
- const defaultAPI = {
18
- addLink: () => {
19
- },
20
- editLink: () => {
21
- },
22
- removeLink: () => {
23
- }
24
- };
25
- const linkTooltipAPI = $ctx({ ...defaultAPI }, "linkTooltipAPICtx");
26
- withMeta(linkTooltipState, {
27
- displayName: "API<link-tooltip>",
28
- group: "LinkTooltip"
29
- });
30
- const defaultConfig = {
31
- linkIcon: () => "\u{1F517}",
32
- editButton: () => "\u270E",
33
- removeButton: () => "\u232B",
34
- confirmButton: () => html`Confirm ⏎`,
35
- onCopyLink: () => {
36
- },
37
- inputPlaceholder: "Paste link..."
38
- };
39
- const linkTooltipConfig = $ctx({
40
- ...defaultConfig
41
- }, "linkTooltipConfigCtx");
42
- withMeta(linkTooltipState, {
43
- displayName: "Config<link-tooltip>",
44
- group: "LinkTooltip"
45
- });
46
-
47
- var __typeError = (msg) => {
48
- throw TypeError(msg);
49
- };
50
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
51
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
52
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
53
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
54
- var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
55
- var _debounce, _shouldShow, _initialized, _offset, _onUpdate, _TooltipProvider_instances, _shouldShow_fn;
56
- class TooltipProvider {
57
- constructor(options) {
58
- __privateAdd(this, _TooltipProvider_instances);
59
- /// @internal
60
- __privateAdd(this, _debounce);
61
- /// @internal
62
- __privateAdd(this, _shouldShow);
63
- /// @internal
64
- __privateAdd(this, _initialized, false);
65
- /// @internal
66
- __privateAdd(this, _offset);
67
- /// On show callback.
68
- this.onShow = () => {
69
- };
70
- /// On hide callback.
71
- this.onHide = () => {
72
- };
73
- /// @internal
74
- __privateAdd(this, _onUpdate, (view, prevState) => {
75
- var _a;
76
- const { state, composing } = view;
77
- const { selection, doc } = state;
78
- const { ranges } = selection;
79
- const from = Math.min(...ranges.map((range) => range.$from.pos));
80
- const to = Math.max(...ranges.map((range) => range.$to.pos));
81
- const isSame = prevState && prevState.doc.eq(doc) && prevState.selection.eq(selection);
82
- if (!__privateGet(this, _initialized)) {
83
- (_a = view.dom.parentElement) == null ? void 0 : _a.appendChild(this.element);
84
- __privateSet(this, _initialized, true);
85
- }
86
- if (composing || isSame)
87
- return;
88
- if (!__privateGet(this, _shouldShow).call(this, view, prevState)) {
89
- this.hide();
90
- return;
91
- }
92
- const virtualEl = {
93
- getBoundingClientRect: () => posToDOMRect(view, from, to)
94
- };
95
- computePosition(virtualEl, this.element, {
96
- placement: "top",
97
- middleware: [flip(), offset(__privateGet(this, _offset))]
98
- }).then(({ x, y }) => {
99
- Object.assign(this.element.style, {
100
- left: `${x}px`,
101
- top: `${y}px`
102
- });
103
- });
104
- this.show();
105
- });
106
- /// Update provider state by editor view.
107
- this.update = (view, prevState) => {
108
- const updater = debounce(__privateGet(this, _onUpdate), __privateGet(this, _debounce));
109
- updater(view, prevState);
110
- };
111
- /// Destroy the tooltip.
112
- this.destroy = () => {
113
- };
114
- /// Show the tooltip.
115
- this.show = (virtualElement) => {
116
- this.element.dataset.show = "true";
117
- if (virtualElement) {
118
- computePosition(virtualElement, this.element, {
119
- placement: "top",
120
- middleware: [flip(), offset(__privateGet(this, _offset))]
121
- }).then(({ x, y }) => {
122
- Object.assign(this.element.style, {
123
- left: `${x}px`,
124
- top: `${y}px`
125
- });
126
- });
127
- }
128
- this.onShow();
129
- };
130
- /// Hide the tooltip.
131
- this.hide = () => {
132
- this.element.dataset.show = "false";
133
- this.onHide();
134
- };
135
- var _a, _b;
136
- this.element = options.content;
137
- __privateSet(this, _debounce, (_a = options.debounce) != null ? _a : 200);
138
- __privateSet(this, _shouldShow, (_b = options.shouldShow) != null ? _b : __privateMethod(this, _TooltipProvider_instances, _shouldShow_fn));
139
- __privateSet(this, _offset, options.offset);
140
- }
141
- }
142
- _debounce = new WeakMap();
143
- _shouldShow = new WeakMap();
144
- _initialized = new WeakMap();
145
- _offset = new WeakMap();
146
- _onUpdate = new WeakMap();
147
- _TooltipProvider_instances = new WeakSet();
148
- /// @internal
149
- _shouldShow_fn = function(view) {
150
- const { doc, selection } = view.state;
151
- const { empty, from, to } = selection;
152
- const isEmptyTextBlock = !doc.textBetween(from, to).length && view.state.selection instanceof TextSelection;
153
- const isTooltipChildren = this.element.contains(document.activeElement);
154
- const notHasFocus = !view.hasFocus() && !isTooltipChildren;
155
- const isReadonly = !view.editable;
156
- if (notHasFocus || empty || isEmptyTextBlock || isReadonly)
157
- return false;
158
- return true;
159
- };
160
-
161
- function tooltipFactory(id) {
162
- const tooltipSpec = $ctx({}, `${id}_TOOLTIP_SPEC`);
163
- const tooltipPlugin = $prose((ctx) => {
164
- const spec = ctx.get(tooltipSpec.key);
165
- return new Plugin({
166
- key: new PluginKey(`${id}_TOOLTIP`),
167
- ...spec
168
- });
169
- });
170
- const result = [tooltipSpec, tooltipPlugin];
171
- result.key = tooltipSpec.key;
172
- result.pluginKey = tooltipPlugin.key;
173
- tooltipSpec.meta = {
174
- package: "@milkdown/plugin-tooltip",
175
- displayName: `Ctx<tooltipSpec>|${id}`
176
- };
177
- tooltipPlugin.meta = {
178
- package: "@milkdown/plugin-tooltip",
179
- displayName: `Prose<tooltip>|${id}`
180
- };
181
- return result;
182
- }
183
-
184
- export { TooltipProvider as T, linkTooltipConfig as a, linkTooltipAPI as b, linkTooltipState as l, tooltipFactory as t };
185
- //# sourceMappingURL=tooltip-plugin-iw2EQWIG.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tooltip-plugin-iw2EQWIG.js","sources":["../../../components/src/link-tooltip/slices.ts","../../../plugins/plugin-tooltip/src/tooltip-provider.ts","../../../plugins/plugin-tooltip/src/tooltip-plugin.ts"],"sourcesContent":["import { $ctx } from '@milkdown/utils'\nimport type { Mark } from '@milkdown/prose/model'\nimport { html } from 'atomico'\nimport { withMeta } from '../__internal__/meta'\n\nexport interface LinkToolTipState {\n mode: 'preview' | 'edit'\n}\n\nconst defaultState: LinkToolTipState = {\n mode: 'preview',\n}\n\nexport const linkTooltipState = $ctx({ ...defaultState }, 'linkTooltipStateCtx')\n\nwithMeta(linkTooltipState, {\n displayName: 'State<link-tooltip>',\n group: 'LinkTooltip',\n})\n\nexport interface LinkTooltipAPI {\n addLink: (from: number, to: number) => void\n editLink: (mark: Mark, from: number, to: number) => void\n removeLink: (from: number, to: number) => void\n}\n\nconst defaultAPI: LinkTooltipAPI = {\n addLink: () => {},\n editLink: () => {},\n removeLink: () => {},\n}\n\nexport const linkTooltipAPI = $ctx({ ...defaultAPI }, 'linkTooltipAPICtx')\n\nwithMeta(linkTooltipState, {\n displayName: 'API<link-tooltip>',\n group: 'LinkTooltip',\n})\n\nexport interface LinkTooltipConfig {\n linkIcon: () => ReturnType<typeof html>\n editButton: () => ReturnType<typeof html>\n confirmButton: () => ReturnType<typeof html>\n removeButton: () => ReturnType<typeof html>\n onCopyLink: (link: string) => void\n inputPlaceholder: string\n}\n\nconst defaultConfig: LinkTooltipConfig = {\n linkIcon: () => '🔗',\n editButton: () => '✎',\n removeButton: () => '⌫',\n confirmButton: () => html`Confirm ⏎`,\n onCopyLink: () => {},\n inputPlaceholder: 'Paste link...',\n}\n\nexport const linkTooltipConfig = $ctx({\n ...defaultConfig,\n}, 'linkTooltipConfigCtx')\n\nwithMeta(linkTooltipState, {\n displayName: 'Config<link-tooltip>',\n group: 'LinkTooltip',\n})\n","import type { EditorState } from '@milkdown/prose/state'\nimport { TextSelection } from '@milkdown/prose/state'\nimport type { EditorView } from '@milkdown/prose/view'\nimport debounce from 'lodash.debounce'\nimport type { VirtualElement } from '@floating-ui/dom'\nimport { computePosition, flip, offset } from '@floating-ui/dom'\nimport { posToDOMRect } from '@milkdown/prose'\n\n/// Options for tooltip provider.\nexport interface TooltipProviderOptions {\n /// The tooltip content.\n content: HTMLElement\n /// The debounce time for updating tooltip, 200ms by default.\n debounce?: number\n /// The function to determine whether the tooltip should be shown.\n shouldShow?: (view: EditorView, prevState?: EditorState) => boolean\n /// The offset to get the block. Default is 0.\n offset?: number | {\n mainAxis?: number\n crossAxis?: number\n alignmentAxis?: number | null\n }\n}\n\n/// A provider for creating tooltip.\nexport class TooltipProvider {\n /// @internal\n readonly #debounce: number\n\n /// @internal\n readonly #shouldShow: (view: EditorView, prevState?: EditorState) => boolean\n\n /// @internal\n #initialized = false\n\n /// @internal\n readonly #offset?: number | {\n mainAxis?: number\n crossAxis?: number\n alignmentAxis?: number | null\n }\n\n /// The root element of the tooltip.\n element: HTMLElement\n\n /// On show callback.\n onShow = () => {}\n\n /// On hide callback.\n onHide = () => {}\n\n constructor(options: TooltipProviderOptions) {\n this.element = options.content\n this.#debounce = options.debounce ?? 200\n this.#shouldShow = options.shouldShow ?? this.#_shouldShow\n this.#offset = options.offset\n }\n\n /// @internal\n #onUpdate = (view: EditorView, prevState?: EditorState): void => {\n const { state, composing } = view\n const { selection, doc } = state\n const { ranges } = selection\n const from = Math.min(...ranges.map(range => range.$from.pos))\n const to = Math.max(...ranges.map(range => range.$to.pos))\n const isSame = prevState && prevState.doc.eq(doc) && prevState.selection.eq(selection)\n\n if (!this.#initialized) {\n view.dom.parentElement?.appendChild(this.element)\n this.#initialized = true\n }\n\n if (composing || isSame)\n return\n\n if (!this.#shouldShow(view, prevState)) {\n this.hide()\n return\n }\n\n const virtualEl: VirtualElement = {\n getBoundingClientRect: () => posToDOMRect(view, from, to),\n }\n computePosition(virtualEl, this.element, {\n placement: 'top',\n middleware: [flip(), offset(this.#offset)],\n })\n .then(({ x, y }) => {\n Object.assign(this.element.style, {\n left: `${x}px`,\n top: `${y}px`,\n })\n })\n\n this.show()\n }\n\n /// Update provider state by editor view.\n update = (view: EditorView, prevState?: EditorState): void => {\n const updater = debounce(this.#onUpdate, this.#debounce)\n\n updater(view, prevState)\n }\n\n /// @internal\n #_shouldShow(view: EditorView): boolean {\n const { doc, selection } = view.state\n const { empty, from, to } = selection\n\n const isEmptyTextBlock = !doc.textBetween(from, to).length && view.state.selection instanceof TextSelection\n\n const isTooltipChildren = this.element.contains(document.activeElement)\n\n const notHasFocus = !view.hasFocus() && !isTooltipChildren\n\n const isReadonly = !view.editable\n\n if (\n notHasFocus\n || empty\n || isEmptyTextBlock\n || isReadonly\n )\n return false\n\n return true\n }\n\n /// Destroy the tooltip.\n destroy = () => {}\n\n /// Show the tooltip.\n show = (virtualElement?: VirtualElement) => {\n this.element.dataset.show = 'true'\n\n if (virtualElement) {\n computePosition(virtualElement, this.element, {\n placement: 'top',\n middleware: [flip(), offset(this.#offset)],\n })\n .then(({ x, y }) => {\n Object.assign(this.element.style, {\n left: `${x}px`,\n top: `${y}px`,\n })\n })\n }\n\n this.onShow()\n }\n\n /// Hide the tooltip.\n hide = () => {\n this.element.dataset.show = 'false'\n\n this.onHide()\n }\n}\n","import type { SliceType } from '@milkdown/ctx'\nimport type { PluginSpec } from '@milkdown/prose/state'\nimport { Plugin, PluginKey } from '@milkdown/prose/state'\nimport type { $Ctx, $Prose } from '@milkdown/utils'\nimport { $ctx, $prose } from '@milkdown/utils'\n\n/// @internal\nexport type TooltipSpecId<Id extends string> = `${Id}_TOOLTIP_SPEC`\n\n/// @internal\nexport type TooltipPlugin<Id extends string, State = any> = [$Ctx<PluginSpec<State>, TooltipSpecId<Id>>, $Prose] & {\n key: SliceType<PluginSpec<State>, TooltipSpecId<Id>>\n pluginKey: $Prose['key']\n}\n\n/// Create a tooltip plugin with a unique id.\nexport function tooltipFactory<Id extends string, State = any>(id: Id) {\n const tooltipSpec = $ctx<PluginSpec<State>, TooltipSpecId<Id>>({}, `${id}_TOOLTIP_SPEC`)\n const tooltipPlugin = $prose((ctx) => {\n const spec = ctx.get(tooltipSpec.key)\n return new Plugin({\n key: new PluginKey(`${id}_TOOLTIP`),\n ...spec,\n })\n })\n const result = [tooltipSpec, tooltipPlugin] as TooltipPlugin<Id>\n result.key = tooltipSpec.key\n result.pluginKey = tooltipPlugin.key\n tooltipSpec.meta = {\n package: '@milkdown/plugin-tooltip',\n displayName: `Ctx<tooltipSpec>|${id}`,\n }\n tooltipPlugin.meta = {\n package: '@milkdown/plugin-tooltip',\n displayName: `Prose<tooltip>|${id}`,\n }\n\n return result\n}\n"],"names":[],"mappings":"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"}