@templatical/editor 0.14.0 → 0.15.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 (152) hide show
  1. package/dist/{AiChatSidebar-J8iO_sX7.js → AiChatSidebar-BIKvYREk.js} +57 -56
  2. package/dist/{AiFeatureMenu-F2diEDgV.js → AiFeatureMenu-QbD82crt.js} +20 -20
  3. package/dist/{BlockIssueBadge-a-qlByxF.js → BlockIssueBadge-B3xVgMTh.js} +11 -11
  4. package/dist/{CloudEditor-CDjtwb4i.js → CloudEditor-DptuSf7A.js} +470 -468
  5. package/dist/{CollaboratorBar-B_EnJLtW.js → CollaboratorBar-DrA_K69w.js} +20 -20
  6. package/dist/{CommentsSidebar-DaP9BA_r.js → CommentsSidebar-D_tSGvTX.js} +154 -153
  7. package/dist/CountdownBlock-apiYUhkQ.js +92 -0
  8. package/dist/CountdownToolbar-CS0axcjz.js +210 -0
  9. package/dist/{DesignReferenceSidebar-BHRlTqlT.js → DesignReferenceSidebar-DWYK9nTk.js} +58 -57
  10. package/dist/{IssuesPanel-u7ee3Wrl.js → IssuesPanel-CR1MPaDE.js} +40 -40
  11. package/dist/{LoadingTrack-CV3ID80N.js → LoadingTrack-DsecR8Rw.js} +1 -1
  12. package/dist/MergeTagSuggestion-CH2SUxBo.js +1327 -0
  13. package/dist/{ModuleBrowserModal-DOsdaS6s.js → ModuleBrowserModal-D45rBj5C.js} +60 -59
  14. package/dist/{ModulePreviewCanvas-Cx4MOJ0X.js → ModulePreviewCanvas-BiQ6B2-l.js} +29 -29
  15. package/dist/{NumberWithSuffix-D2mW_DhT.js → NumberWithSuffix-CrA6quxx.js} +143 -142
  16. package/dist/{ParagraphEditor-DMzkVnST.js → ParagraphEditor-1NaUJpZO.js} +247 -246
  17. package/dist/{RichTextEditorContent-CRCxCwKf.js → RichTextEditorContent-BqLHIZY7.js} +45 -44
  18. package/dist/{SaveModuleDialog-DuEKgumL.js → SaveModuleDialog-B0sPOTgO.js} +38 -37
  19. package/dist/{SnapshotHistory-CVgiNJtE.js → SnapshotHistory-DslVzmSb.js} +34 -33
  20. package/dist/{TemplateScoringPanel-lm0_9nYi.js → TemplateScoringPanel-CZ62rGHz.js} +83 -82
  21. package/dist/{TestEmailModal-WBMdiW5S.js → TestEmailModal-DWGniJVu.js} +22 -21
  22. package/dist/{TitleEditor-eyT0h-Sa.js → TitleEditor-D4t_gZZJ.js} +44 -44
  23. package/dist/{TplModal-tjQ7OB0g.js → TplModal-Br2VG6cn.js} +14 -13
  24. package/dist/{blockTypeIcons-DdB3uTKD.js → blockTypeIcons-CXhCS5WV.js} +2 -2
  25. package/dist/bundle-stats.json +8 -8
  26. package/dist/cdn/chunks/{AiFeatureMenu-D7rB2SBs.js → AiFeatureMenu-3Slo_LGA.js} +5 -5
  27. package/dist/cdn/chunks/{AiFeatureMenu-D7rB2SBs.js.map → AiFeatureMenu-3Slo_LGA.js.map} +1 -1
  28. package/dist/cdn/chunks/{BlockIssueBadge-DHOe0pgx.js → BlockIssueBadge-BxwEiiF3.js} +3 -3
  29. package/dist/cdn/chunks/{BlockIssueBadge-DHOe0pgx.js.map → BlockIssueBadge-BxwEiiF3.js.map} +1 -1
  30. package/dist/cdn/chunks/{CloudEditor-DNed_Ym0.js → CloudEditor-DFIFWD9G.js} +89 -89
  31. package/dist/cdn/chunks/{CloudEditor-DNed_Ym0.js.map → CloudEditor-DFIFWD9G.js.map} +1 -1
  32. package/dist/cdn/chunks/{CollaboratorBar-sj_9Lee3.js → CollaboratorBar-Cu3vuN66.js} +4 -4
  33. package/dist/cdn/chunks/{CollaboratorBar-sj_9Lee3.js.map → CollaboratorBar-Cu3vuN66.js.map} +1 -1
  34. package/dist/cdn/chunks/{CountdownBlock-C1Ikjpn4.js → CountdownBlock-BEVAJQtQ.js} +3 -3
  35. package/dist/cdn/chunks/{CountdownBlock-C1Ikjpn4.js.map → CountdownBlock-BEVAJQtQ.js.map} +1 -1
  36. package/dist/cdn/chunks/{CountdownToolbar-j1G_X8rB.js → CountdownToolbar-CI2sQZv5.js} +4 -4
  37. package/dist/cdn/chunks/{CountdownToolbar-j1G_X8rB.js.map → CountdownToolbar-CI2sQZv5.js.map} +1 -1
  38. package/dist/cdn/chunks/{IssuesPanel-CTOf3PsH.js → IssuesPanel-BdeDoTcn.js} +4 -4
  39. package/dist/cdn/chunks/{IssuesPanel-CTOf3PsH.js.map → IssuesPanel-BdeDoTcn.js.map} +1 -1
  40. package/dist/cdn/chunks/MergeTagSuggestion-BsCAo4Co.js +213 -0
  41. package/dist/cdn/chunks/MergeTagSuggestion-BsCAo4Co.js.map +1 -0
  42. package/dist/cdn/chunks/{ModuleBrowserModal-DCh88-rr.js → ModuleBrowserModal-Dz-I5zfj.js} +6 -6
  43. package/dist/cdn/chunks/{ModuleBrowserModal-DCh88-rr.js.map → ModuleBrowserModal-Dz-I5zfj.js.map} +1 -1
  44. package/dist/cdn/chunks/{ModulePreviewCanvas-DJqvTKmg.js → ModulePreviewCanvas-BfinyuAN.js} +3 -3
  45. package/dist/cdn/chunks/{ModulePreviewCanvas-DJqvTKmg.js.map → ModulePreviewCanvas-BfinyuAN.js.map} +1 -1
  46. package/dist/cdn/chunks/{NumberWithSuffix-Bu45XWSl.js → NumberWithSuffix-CDjEa08X.js} +6 -6
  47. package/dist/cdn/chunks/{NumberWithSuffix-Bu45XWSl.js.map → NumberWithSuffix-CDjEa08X.js.map} +1 -1
  48. package/dist/cdn/chunks/{ParagraphEditor-DwZqLJp2.js → ParagraphEditor-B3fG0vge.js} +22 -22
  49. package/dist/cdn/chunks/{ParagraphEditor-DwZqLJp2.js.map → ParagraphEditor-B3fG0vge.js.map} +1 -1
  50. package/dist/cdn/chunks/{RichTextEditorContent-CIuZ-2DV.js → RichTextEditorContent-C6YPCp9j.js} +4 -4
  51. package/dist/cdn/chunks/{RichTextEditorContent-CIuZ-2DV.js.map → RichTextEditorContent-C6YPCp9j.js.map} +1 -1
  52. package/dist/cdn/chunks/{SaveModuleDialog-Bep0X2s_.js → SaveModuleDialog-C6UIIVAM.js} +3 -3
  53. package/dist/cdn/chunks/{SaveModuleDialog-Bep0X2s_.js.map → SaveModuleDialog-C6UIIVAM.js.map} +1 -1
  54. package/dist/cdn/chunks/{TitleEditor-DO1-h3RY.js → TitleEditor-BiZbLYF1.js} +10 -10
  55. package/dist/cdn/chunks/{TitleEditor-DO1-h3RY.js.map → TitleEditor-BiZbLYF1.js.map} +1 -1
  56. package/dist/cdn/chunks/{blockTypeIcons-8o24HVJu.js → blockTypeIcons-BernVG06.js} +3 -3
  57. package/dist/cdn/chunks/{blockTypeIcons-8o24HVJu.js.map → blockTypeIcons-BernVG06.js.map} +1 -1
  58. package/dist/cdn/chunks/{draggable-kPCz_3zM.js → draggable-kG-D5Xsm.js} +6 -6
  59. package/dist/cdn/chunks/draggable-kG-D5Xsm.js.map +1 -0
  60. package/dist/cdn/chunks/extensions-Drp8UDc6.js +421 -0
  61. package/dist/cdn/chunks/extensions-Drp8UDc6.js.map +1 -0
  62. package/dist/cdn/chunks/{features-CkTMVylx.js → features-Dpczf9Su.js} +884 -835
  63. package/dist/cdn/chunks/features-Dpczf9Su.js.map +1 -0
  64. package/dist/cdn/chunks/{icons-9zjCuoJx.js → icons-CuxnJiGQ.js} +26 -26
  65. package/dist/cdn/chunks/{icons-9zjCuoJx.js.map → icons-CuxnJiGQ.js.map} +1 -1
  66. package/dist/cdn/chunks/{liquid.browser-DKKBzRQu.js → liquid.browser-BJOEu6Cg.js} +693 -678
  67. package/dist/cdn/chunks/liquid.browser-BJOEu6Cg.js.map +1 -0
  68. package/dist/cdn/chunks/{media-library-DMRIPx4g.js → media-library-CiYl_BO7.js} +33 -33
  69. package/dist/cdn/chunks/{media-library-DMRIPx4g.js.map → media-library-CiYl_BO7.js.map} +1 -1
  70. package/dist/cdn/chunks/{pusher-CdEqyLwF.js → pusher-CIwiKF8H.js} +4 -4
  71. package/dist/cdn/chunks/{pusher-CdEqyLwF.js.map → pusher-CIwiKF8H.js.map} +1 -1
  72. package/dist/cdn/chunks/{quality-CyeUgs_c.js → quality-CNjGxBG0.js} +112 -112
  73. package/dist/cdn/chunks/{quality-CyeUgs_c.js.map → quality-CNjGxBG0.js.map} +1 -1
  74. package/dist/cdn/chunks/{renderer-BIKUEKDD.js → renderer-CFkg8h-K.js} +20 -20
  75. package/dist/cdn/chunks/renderer-CFkg8h-K.js.map +1 -0
  76. package/dist/cdn/chunks/{src-pDy_imWG.js → src-DRpKu4Dy.js} +5 -5
  77. package/dist/cdn/chunks/{src-pDy_imWG.js.map → src-DRpKu4Dy.js.map} +1 -1
  78. package/dist/cdn/chunks/{styles-D4Bd3SCx.js → styles-B7wryV0l.js} +1484 -1344
  79. package/dist/cdn/chunks/styles-B7wryV0l.js.map +1 -0
  80. package/dist/cdn/chunks/{tiptap-BlLFFU3M.js → tiptap-DF9PEiqH.js} +6859 -6823
  81. package/dist/cdn/chunks/tiptap-DF9PEiqH.js.map +1 -0
  82. package/dist/cdn/editor.css +1 -1
  83. package/dist/cdn/editor.js +35 -35
  84. package/dist/cdn/editor.js.map +1 -1
  85. package/dist/{check-CYJwFmjy.js → check-rl7ok6uJ.js} +1 -1
  86. package/dist/{chevron-down-C5l-DzAA.js → chevron-down-BKe__NOD.js} +1 -1
  87. package/dist/{circle-alert-wf5HUFZY.js → circle-alert-C8xmpMsK.js} +1 -1
  88. package/dist/{clock-Bj0bQw-K.js → clock-BW4JuDCN.js} +1 -1
  89. package/dist/{cloud-CoFDm9YA.js → cloud-BQusL53H.js} +208 -208
  90. package/dist/createLucideIcon-Dx-EjR9r.js +43 -0
  91. package/dist/{dist-CLpPNKy9.js → dist-B5Sov3sS.js} +7 -7
  92. package/dist/dist-BEWiuOMi.js +251 -0
  93. package/dist/{dist-CrQZ_af9.js → dist-BFmE-7hB.js} +2 -2
  94. package/dist/{dist-U5vfDdYI.js → dist-BMoa33wT.js} +2 -2
  95. package/dist/{dist-BctFrpeA.js → dist-BibU4HNl.js} +74 -65
  96. package/dist/{dist-Dd3ibRZm.js → dist-BsCGIDSt.js} +103 -102
  97. package/dist/dist-CNLKj9wa.js +5 -0
  98. package/dist/{dist-BX3gGwL8.js → dist-CNXDNYQn.js} +728 -694
  99. package/dist/{dist-Bn703mnA.js → dist-COG3IdPK.js} +3 -3
  100. package/dist/{dist-B7w6xTU6.js → dist-CQZxDvFw.js} +3 -3
  101. package/dist/{dist-34OcyoK1.js → dist-CRsjOQM-.js} +2 -2
  102. package/dist/dist-CTT6WYJ6.js +134 -0
  103. package/dist/dist-Cqa6aeAJ.js +5 -0
  104. package/dist/{dist-ChMninLH.js → dist-SXJJ2v41.js} +2 -2
  105. package/dist/{dist-CyjyYg52.js → dist-itdjZraK.js} +28 -23
  106. package/dist/extensions-DwaZAqm6.js +423 -0
  107. package/dist/{image-up-x8-WXfsx.js → image-up-BwBCmQ4P.js} +1 -1
  108. package/dist/{info-RS_fGcGi.js → info-TCn7uWR5.js} +1 -1
  109. package/dist/{keys-DgYXDafq.js → keys-Cv8-8GsD.js} +1 -1
  110. package/dist/{liquid.browser-CVjP5Mex.js → liquid.browser-DZLtv26k.js} +692 -677
  111. package/dist/{list-checks-Bf7XdDyv.js → list-checks-CSrOWNgq.js} +1 -1
  112. package/dist/{loader-circle-CLZ0_FvW.js → loader-circle-BLmicnPG.js} +1 -1
  113. package/dist/{message-circle-B-1bN9ab.js → message-circle-C9hHMQCI.js} +1 -1
  114. package/dist/{refresh-cw-CWKWqJYG.js → refresh-cw-D1JQ1LNa.js} +1 -1
  115. package/dist/runtime-dom.esm-bundler-BzuoCyNp.js +523 -0
  116. package/dist/{scan-line-BtK5dEai.js → scan-line-DgijVq9y.js} +1 -1
  117. package/dist/{send-Cn1IUdzh.js → send-DjPdq69F.js} +1 -1
  118. package/dist/{shield-check-CrvMk4Ea.js → shield-check-Bqluu8FS.js} +1 -1
  119. package/dist/{sparkles-CgfjwvnG.js → sparkles-M4azPVSP.js} +1 -1
  120. package/dist/style.css +1 -1
  121. package/dist/styles-D7fQ7f_1.js +4164 -0
  122. package/dist/templatical-editor.js +127 -126
  123. package/dist/{text-align-start-C3r_Rnvy.js → text-align-start-CMya5pCQ.js} +11 -11
  124. package/dist/{trash-2-CjERg4x9.js → trash-2-C-81rkLS.js} +1 -1
  125. package/dist/{triangle-alert-Chkny574.js → triangle-alert-BuRWnynk.js} +1 -1
  126. package/dist/{upload-e5kDRkPb.js → upload-CWBIoLd4.js} +1 -1
  127. package/dist/{useAliveFlag-cUQj9rmB.js → useAliveFlag-CECL_OUb.js} +1 -1
  128. package/dist/{useCloudI18n-CYJKqXtI.js → useCloudI18n-AKCy98qD.js} +2 -2
  129. package/dist/{useEditorCore-8JxXDOA4.js → useEditorCore-vcWLdnjN.js} +1406 -1364
  130. package/dist/{useI18n-BWqM8i78.js → useI18n-C-TDeJBt.js} +2 -2
  131. package/dist/{useMergeTag-NHC4ylza.js → useMergeTag-DSrBY0-2.js} +5 -5
  132. package/dist/usePopoverRoot-DKUDnr55.js +8 -0
  133. package/dist/{vue.runtime.esm-bundler-BPa483TZ.js → vue.runtime.esm-bundler-l0XAqiyv.js} +626 -1147
  134. package/dist/{x-DiPIbccg.js → x-CQSvXnGR.js} +1 -1
  135. package/package.json +26 -26
  136. package/dist/CountdownBlock-DtAokAVw.js +0 -92
  137. package/dist/CountdownToolbar-Dtqgwy0g.js +0 -210
  138. package/dist/cdn/chunks/draggable-kPCz_3zM.js.map +0 -1
  139. package/dist/cdn/chunks/extensions-iwBXnEwq.js +0 -605
  140. package/dist/cdn/chunks/extensions-iwBXnEwq.js.map +0 -1
  141. package/dist/cdn/chunks/features-CkTMVylx.js.map +0 -1
  142. package/dist/cdn/chunks/liquid.browser-DKKBzRQu.js.map +0 -1
  143. package/dist/cdn/chunks/renderer-BIKUEKDD.js.map +0 -1
  144. package/dist/cdn/chunks/styles-D4Bd3SCx.js.map +0 -1
  145. package/dist/cdn/chunks/tiptap-BlLFFU3M.js.map +0 -1
  146. package/dist/createLucideIcon-Bad2kKE0.js +0 -43
  147. package/dist/dist-CADDCv0o.js +0 -5
  148. package/dist/dist-CGvz7vkq.js +0 -5
  149. package/dist/dist-DuCzdgDA.js +0 -382
  150. package/dist/extensions-J439b7y7.js +0 -1720
  151. package/dist/styles-BUwDOWd3.js +0 -4022
  152. package/dist/usePopoverRoot-B1sdY4es.js +0 -8
@@ -0,0 +1,1327 @@
1
+ import { A as e, Et as t, O as n, Ot as r, Y as i, _ as a, c as o, d as s, r as c, u as l, y as u } from "./vue.runtime.esm-bundler-l0XAqiyv.js";
2
+ import { c as d, n as f } from "./runtime-dom.esm-bundler-BzuoCyNp.js";
3
+ import { F as p, Sn as m, i as h, vn as g, xn as _, yn as v } from "./dist-itdjZraK.js";
4
+ //#region ../../node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs
5
+ var y = Math.min, b = Math.max, x = Math.round, S = Math.floor, C = (e) => ({
6
+ x: e,
7
+ y: e
8
+ }), w = {
9
+ left: "right",
10
+ right: "left",
11
+ bottom: "top",
12
+ top: "bottom"
13
+ };
14
+ function T(e, t) {
15
+ return typeof e == "function" ? e(t) : e;
16
+ }
17
+ function E(e) {
18
+ return e.split("-")[0];
19
+ }
20
+ function D(e) {
21
+ return e.split("-")[1];
22
+ }
23
+ function O(e) {
24
+ return e === "x" ? "y" : "x";
25
+ }
26
+ function k(e) {
27
+ return e === "y" ? "height" : "width";
28
+ }
29
+ function A(e) {
30
+ let t = e[0];
31
+ return t === "t" || t === "b" ? "y" : "x";
32
+ }
33
+ function j(e) {
34
+ return O(A(e));
35
+ }
36
+ function M(e, t, n) {
37
+ n === void 0 && (n = !1);
38
+ let r = D(e), i = j(e), a = k(i), o = i === "x" ? r === (n ? "end" : "start") ? "right" : "left" : r === "start" ? "bottom" : "top";
39
+ return t.reference[a] > t.floating[a] && (o = N(o)), [o, N(o)];
40
+ }
41
+ function ee(e) {
42
+ let t = N(e);
43
+ return [
44
+ te(e),
45
+ t,
46
+ te(t)
47
+ ];
48
+ }
49
+ function te(e) {
50
+ return e.includes("start") ? e.replace("start", "end") : e.replace("end", "start");
51
+ }
52
+ var ne = ["left", "right"], re = ["right", "left"], ie = ["top", "bottom"], ae = ["bottom", "top"];
53
+ function oe(e, t, n) {
54
+ switch (e) {
55
+ case "top":
56
+ case "bottom": return n ? t ? re : ne : t ? ne : re;
57
+ case "left":
58
+ case "right": return t ? ie : ae;
59
+ default: return [];
60
+ }
61
+ }
62
+ function se(e, t, n, r) {
63
+ let i = D(e), a = oe(E(e), n === "start", r);
64
+ return i && (a = a.map((e) => e + "-" + i), t && (a = a.concat(a.map(te)))), a;
65
+ }
66
+ function N(e) {
67
+ let t = E(e);
68
+ return w[t] + e.slice(t.length);
69
+ }
70
+ function ce(e) {
71
+ return {
72
+ top: 0,
73
+ right: 0,
74
+ bottom: 0,
75
+ left: 0,
76
+ ...e
77
+ };
78
+ }
79
+ function le(e) {
80
+ return typeof e == "number" ? {
81
+ top: e,
82
+ right: e,
83
+ bottom: e,
84
+ left: e
85
+ } : ce(e);
86
+ }
87
+ function P(e) {
88
+ let { x: t, y: n, width: r, height: i } = e;
89
+ return {
90
+ width: r,
91
+ height: i,
92
+ top: n,
93
+ left: t,
94
+ right: t + r,
95
+ bottom: n + i,
96
+ x: t,
97
+ y: n
98
+ };
99
+ }
100
+ //#endregion
101
+ //#region ../../node_modules/.pnpm/@floating-ui+core@1.7.5/node_modules/@floating-ui/core/dist/floating-ui.core.mjs
102
+ function ue(e, t, n) {
103
+ let { reference: r, floating: i } = e, a = A(t), o = j(t), s = k(o), c = E(t), l = a === "y", u = r.x + r.width / 2 - i.width / 2, d = r.y + r.height / 2 - i.height / 2, f = r[s] / 2 - i[s] / 2, p;
104
+ switch (c) {
105
+ case "top":
106
+ p = {
107
+ x: u,
108
+ y: r.y - i.height
109
+ };
110
+ break;
111
+ case "bottom":
112
+ p = {
113
+ x: u,
114
+ y: r.y + r.height
115
+ };
116
+ break;
117
+ case "right":
118
+ p = {
119
+ x: r.x + r.width,
120
+ y: d
121
+ };
122
+ break;
123
+ case "left":
124
+ p = {
125
+ x: r.x - i.width,
126
+ y: d
127
+ };
128
+ break;
129
+ default: p = {
130
+ x: r.x,
131
+ y: r.y
132
+ };
133
+ }
134
+ switch (D(t)) {
135
+ case "start":
136
+ p[o] -= f * (n && l ? -1 : 1);
137
+ break;
138
+ case "end":
139
+ p[o] += f * (n && l ? -1 : 1);
140
+ break;
141
+ }
142
+ return p;
143
+ }
144
+ async function de(e, t) {
145
+ t === void 0 && (t = {});
146
+ let { x: n, y: r, platform: i, rects: a, elements: o, strategy: s } = e, { boundary: c = "clippingAncestors", rootBoundary: l = "viewport", elementContext: u = "floating", altBoundary: d = !1, padding: f = 0 } = T(t, e), p = le(f), m = o[d ? u === "floating" ? "reference" : "floating" : u], h = P(await i.getClippingRect({
147
+ element: await (i.isElement == null ? void 0 : i.isElement(m)) ?? !0 ? m : m.contextElement || await (i.getDocumentElement == null ? void 0 : i.getDocumentElement(o.floating)),
148
+ boundary: c,
149
+ rootBoundary: l,
150
+ strategy: s
151
+ })), g = u === "floating" ? {
152
+ x: n,
153
+ y: r,
154
+ width: a.floating.width,
155
+ height: a.floating.height
156
+ } : a.reference, _ = await (i.getOffsetParent == null ? void 0 : i.getOffsetParent(o.floating)), v = await (i.isElement == null ? void 0 : i.isElement(_)) && await (i.getScale == null ? void 0 : i.getScale(_)) || {
157
+ x: 1,
158
+ y: 1
159
+ }, y = P(i.convertOffsetParentRelativeRectToViewportRelativeRect ? await i.convertOffsetParentRelativeRectToViewportRelativeRect({
160
+ elements: o,
161
+ rect: g,
162
+ offsetParent: _,
163
+ strategy: s
164
+ }) : g);
165
+ return {
166
+ top: (h.top - y.top + p.top) / v.y,
167
+ bottom: (y.bottom - h.bottom + p.bottom) / v.y,
168
+ left: (h.left - y.left + p.left) / v.x,
169
+ right: (y.right - h.right + p.right) / v.x
170
+ };
171
+ }
172
+ var fe = 50, pe = async (e, t, n) => {
173
+ let { placement: r = "bottom", strategy: i = "absolute", middleware: a = [], platform: o } = n, s = o.detectOverflow ? o : {
174
+ ...o,
175
+ detectOverflow: de
176
+ }, c = await (o.isRTL == null ? void 0 : o.isRTL(t)), l = await o.getElementRects({
177
+ reference: e,
178
+ floating: t,
179
+ strategy: i
180
+ }), { x: u, y: d } = ue(l, r, c), f = r, p = 0, m = {};
181
+ for (let n = 0; n < a.length; n++) {
182
+ let h = a[n];
183
+ if (!h) continue;
184
+ let { name: g, fn: _ } = h, { x: v, y, data: b, reset: x } = await _({
185
+ x: u,
186
+ y: d,
187
+ initialPlacement: r,
188
+ placement: f,
189
+ strategy: i,
190
+ middlewareData: m,
191
+ rects: l,
192
+ platform: s,
193
+ elements: {
194
+ reference: e,
195
+ floating: t
196
+ }
197
+ });
198
+ u = v ?? u, d = y ?? d, m[g] = {
199
+ ...m[g],
200
+ ...b
201
+ }, x && p < fe && (p++, typeof x == "object" && (x.placement && (f = x.placement), x.rects && (l = x.rects === !0 ? await o.getElementRects({
202
+ reference: e,
203
+ floating: t,
204
+ strategy: i
205
+ }) : x.rects), {x: u, y: d} = ue(l, f, c)), n = -1);
206
+ }
207
+ return {
208
+ x: u,
209
+ y: d,
210
+ placement: f,
211
+ strategy: i,
212
+ middlewareData: m
213
+ };
214
+ }, me = function(e) {
215
+ return e === void 0 && (e = {}), {
216
+ name: "flip",
217
+ options: e,
218
+ async fn(t) {
219
+ var n;
220
+ let { placement: r, middlewareData: i, rects: a, initialPlacement: o, platform: s, elements: c } = t, { mainAxis: l = !0, crossAxis: u = !0, fallbackPlacements: d, fallbackStrategy: f = "bestFit", fallbackAxisSideDirection: p = "none", flipAlignment: m = !0, ...h } = T(e, t);
221
+ if ((n = i.arrow) != null && n.alignmentOffset) return {};
222
+ let g = E(r), _ = A(o), v = E(o) === o, y = await (s.isRTL == null ? void 0 : s.isRTL(c.floating)), b = d || (v || !m ? [N(o)] : ee(o)), x = p !== "none";
223
+ !d && x && b.push(...se(o, m, p, y));
224
+ let S = [o, ...b], C = await s.detectOverflow(t, h), w = [], D = i.flip?.overflows || [];
225
+ if (l && w.push(C[g]), u) {
226
+ let e = M(r, a, y);
227
+ w.push(C[e[0]], C[e[1]]);
228
+ }
229
+ if (D = [...D, {
230
+ placement: r,
231
+ overflows: w
232
+ }], !w.every((e) => e <= 0)) {
233
+ let e = (i.flip?.index || 0) + 1, t = S[e];
234
+ if (t && (!(u === "alignment" && _ !== A(t)) || D.every((e) => A(e.placement) !== _ || e.overflows[0] > 0))) return {
235
+ data: {
236
+ index: e,
237
+ overflows: D
238
+ },
239
+ reset: { placement: t }
240
+ };
241
+ let n = D.filter((e) => e.overflows[0] <= 0).sort((e, t) => e.overflows[1] - t.overflows[1])[0]?.placement;
242
+ if (!n) switch (f) {
243
+ case "bestFit": {
244
+ let e = D.filter((e) => {
245
+ if (x) {
246
+ let t = A(e.placement);
247
+ return t === _ || t === "y";
248
+ }
249
+ return !0;
250
+ }).map((e) => [e.placement, e.overflows.filter((e) => e > 0).reduce((e, t) => e + t, 0)]).sort((e, t) => e[1] - t[1])[0]?.[0];
251
+ e && (n = e);
252
+ break;
253
+ }
254
+ case "initialPlacement":
255
+ n = o;
256
+ break;
257
+ }
258
+ if (r !== n) return { reset: { placement: n } };
259
+ }
260
+ return {};
261
+ }
262
+ };
263
+ }, he = /*#__PURE__*/ new Set(["left", "top"]);
264
+ async function ge(e, t) {
265
+ let { placement: n, platform: r, elements: i } = e, a = await (r.isRTL == null ? void 0 : r.isRTL(i.floating)), o = E(n), s = D(n), c = A(n) === "y", l = he.has(o) ? -1 : 1, u = a && c ? -1 : 1, d = T(t, e), { mainAxis: f, crossAxis: p, alignmentAxis: m } = typeof d == "number" ? {
266
+ mainAxis: d,
267
+ crossAxis: 0,
268
+ alignmentAxis: null
269
+ } : {
270
+ mainAxis: d.mainAxis || 0,
271
+ crossAxis: d.crossAxis || 0,
272
+ alignmentAxis: d.alignmentAxis
273
+ };
274
+ return s && typeof m == "number" && (p = s === "end" ? m * -1 : m), c ? {
275
+ x: p * u,
276
+ y: f * l
277
+ } : {
278
+ x: f * l,
279
+ y: p * u
280
+ };
281
+ }
282
+ var _e = function(e) {
283
+ return e === void 0 && (e = 0), {
284
+ name: "offset",
285
+ options: e,
286
+ async fn(t) {
287
+ var n;
288
+ let { x: r, y: i, placement: a, middlewareData: o } = t, s = await ge(t, e);
289
+ return a === o.offset?.placement && (n = o.arrow) != null && n.alignmentOffset ? {} : {
290
+ x: r + s.x,
291
+ y: i + s.y,
292
+ data: {
293
+ ...s,
294
+ placement: a
295
+ }
296
+ };
297
+ }
298
+ };
299
+ };
300
+ //#endregion
301
+ //#region ../../node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs
302
+ function F() {
303
+ return typeof window < "u";
304
+ }
305
+ function I(e) {
306
+ return ve(e) ? (e.nodeName || "").toLowerCase() : "#document";
307
+ }
308
+ function L(e) {
309
+ var t;
310
+ return (e == null || (t = e.ownerDocument) == null ? void 0 : t.defaultView) || window;
311
+ }
312
+ function R(e) {
313
+ return ((ve(e) ? e.ownerDocument : e.document) || window.document)?.documentElement;
314
+ }
315
+ function ve(e) {
316
+ return F() ? e instanceof Node || e instanceof L(e).Node : !1;
317
+ }
318
+ function z(e) {
319
+ return F() ? e instanceof Element || e instanceof L(e).Element : !1;
320
+ }
321
+ function B(e) {
322
+ return F() ? e instanceof HTMLElement || e instanceof L(e).HTMLElement : !1;
323
+ }
324
+ function ye(e) {
325
+ return !F() || typeof ShadowRoot > "u" ? !1 : e instanceof ShadowRoot || e instanceof L(e).ShadowRoot;
326
+ }
327
+ function V(e) {
328
+ let { overflow: t, overflowX: n, overflowY: r, display: i } = K(e);
329
+ return /auto|scroll|overlay|hidden|clip/.test(t + r + n) && i !== "inline" && i !== "contents";
330
+ }
331
+ function be(e) {
332
+ return /^(table|td|th)$/.test(I(e));
333
+ }
334
+ function H(e) {
335
+ try {
336
+ if (e.matches(":popover-open")) return !0;
337
+ } catch {}
338
+ try {
339
+ return e.matches(":modal");
340
+ } catch {
341
+ return !1;
342
+ }
343
+ }
344
+ var xe = /transform|translate|scale|rotate|perspective|filter/, Se = /paint|layout|strict|content/, U = (e) => !!e && e !== "none", Ce;
345
+ function W(e) {
346
+ let t = z(e) ? K(e) : e;
347
+ return U(t.transform) || U(t.translate) || U(t.scale) || U(t.rotate) || U(t.perspective) || !Te() && (U(t.backdropFilter) || U(t.filter)) || xe.test(t.willChange || "") || Se.test(t.contain || "");
348
+ }
349
+ function we(e) {
350
+ let t = J(e);
351
+ for (; B(t) && !G(t);) {
352
+ if (W(t)) return t;
353
+ if (H(t)) return null;
354
+ t = J(t);
355
+ }
356
+ return null;
357
+ }
358
+ function Te() {
359
+ return Ce ??= typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none"), Ce;
360
+ }
361
+ function G(e) {
362
+ return /^(html|body|#document)$/.test(I(e));
363
+ }
364
+ function K(e) {
365
+ return L(e).getComputedStyle(e);
366
+ }
367
+ function q(e) {
368
+ return z(e) ? {
369
+ scrollLeft: e.scrollLeft,
370
+ scrollTop: e.scrollTop
371
+ } : {
372
+ scrollLeft: e.scrollX,
373
+ scrollTop: e.scrollY
374
+ };
375
+ }
376
+ function J(e) {
377
+ if (I(e) === "html") return e;
378
+ let t = e.assignedSlot || e.parentNode || ye(e) && e.host || R(e);
379
+ return ye(t) ? t.host : t;
380
+ }
381
+ function Ee(e) {
382
+ let t = J(e);
383
+ return G(t) ? e.ownerDocument ? e.ownerDocument.body : e.body : B(t) && V(t) ? t : Ee(t);
384
+ }
385
+ function Y(e, t, n) {
386
+ t === void 0 && (t = []), n === void 0 && (n = !0);
387
+ let r = Ee(e), i = r === e.ownerDocument?.body, a = L(r);
388
+ if (i) {
389
+ let e = De(a);
390
+ return t.concat(a, a.visualViewport || [], V(r) ? r : [], e && n ? Y(e) : []);
391
+ } else return t.concat(r, Y(r, [], n));
392
+ }
393
+ function De(e) {
394
+ return e.parent && Object.getPrototypeOf(e.parent) ? e.frameElement : null;
395
+ }
396
+ //#endregion
397
+ //#region ../../node_modules/.pnpm/@floating-ui+dom@1.7.6/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs
398
+ function Oe(e) {
399
+ let t = K(e), n = parseFloat(t.width) || 0, r = parseFloat(t.height) || 0, i = B(e), a = i ? e.offsetWidth : n, o = i ? e.offsetHeight : r, s = x(n) !== a || x(r) !== o;
400
+ return s && (n = a, r = o), {
401
+ width: n,
402
+ height: r,
403
+ $: s
404
+ };
405
+ }
406
+ function ke(e) {
407
+ return z(e) ? e : e.contextElement;
408
+ }
409
+ function X(e) {
410
+ let t = ke(e);
411
+ if (!B(t)) return C(1);
412
+ let n = t.getBoundingClientRect(), { width: r, height: i, $: a } = Oe(t), o = (a ? x(n.width) : n.width) / r, s = (a ? x(n.height) : n.height) / i;
413
+ return (!o || !Number.isFinite(o)) && (o = 1), (!s || !Number.isFinite(s)) && (s = 1), {
414
+ x: o,
415
+ y: s
416
+ };
417
+ }
418
+ var Ae = /*#__PURE__*/ C(0);
419
+ function je(e) {
420
+ let t = L(e);
421
+ return !Te() || !t.visualViewport ? Ae : {
422
+ x: t.visualViewport.offsetLeft,
423
+ y: t.visualViewport.offsetTop
424
+ };
425
+ }
426
+ function Me(e, t, n) {
427
+ return t === void 0 && (t = !1), !n || t && n !== L(e) ? !1 : t;
428
+ }
429
+ function Z(e, t, n, r) {
430
+ t === void 0 && (t = !1), n === void 0 && (n = !1);
431
+ let i = e.getBoundingClientRect(), a = ke(e), o = C(1);
432
+ t && (r ? z(r) && (o = X(r)) : o = X(e));
433
+ let s = Me(a, n, r) ? je(a) : C(0), c = (i.left + s.x) / o.x, l = (i.top + s.y) / o.y, u = i.width / o.x, d = i.height / o.y;
434
+ if (a) {
435
+ let e = L(a), t = r && z(r) ? L(r) : r, n = e, i = De(n);
436
+ for (; i && r && t !== n;) {
437
+ let e = X(i), t = i.getBoundingClientRect(), r = K(i), a = t.left + (i.clientLeft + parseFloat(r.paddingLeft)) * e.x, o = t.top + (i.clientTop + parseFloat(r.paddingTop)) * e.y;
438
+ c *= e.x, l *= e.y, u *= e.x, d *= e.y, c += a, l += o, n = L(i), i = De(n);
439
+ }
440
+ }
441
+ return P({
442
+ width: u,
443
+ height: d,
444
+ x: c,
445
+ y: l
446
+ });
447
+ }
448
+ function Q(e, t) {
449
+ let n = q(e).scrollLeft;
450
+ return t ? t.left + n : Z(R(e)).left + n;
451
+ }
452
+ function Ne(e, t) {
453
+ let n = e.getBoundingClientRect();
454
+ return {
455
+ x: n.left + t.scrollLeft - Q(e, n),
456
+ y: n.top + t.scrollTop
457
+ };
458
+ }
459
+ function Pe(e) {
460
+ let { elements: t, rect: n, offsetParent: r, strategy: i } = e, a = i === "fixed", o = R(r), s = t ? H(t.floating) : !1;
461
+ if (r === o || s && a) return n;
462
+ let c = {
463
+ scrollLeft: 0,
464
+ scrollTop: 0
465
+ }, l = C(1), u = C(0), d = B(r);
466
+ if ((d || !d && !a) && ((I(r) !== "body" || V(o)) && (c = q(r)), d)) {
467
+ let e = Z(r);
468
+ l = X(r), u.x = e.x + r.clientLeft, u.y = e.y + r.clientTop;
469
+ }
470
+ let f = o && !d && !a ? Ne(o, c) : C(0);
471
+ return {
472
+ width: n.width * l.x,
473
+ height: n.height * l.y,
474
+ x: n.x * l.x - c.scrollLeft * l.x + u.x + f.x,
475
+ y: n.y * l.y - c.scrollTop * l.y + u.y + f.y
476
+ };
477
+ }
478
+ function Fe(e) {
479
+ return Array.from(e.getClientRects());
480
+ }
481
+ function Ie(e) {
482
+ let t = R(e), n = q(e), r = e.ownerDocument.body, i = b(t.scrollWidth, t.clientWidth, r.scrollWidth, r.clientWidth), a = b(t.scrollHeight, t.clientHeight, r.scrollHeight, r.clientHeight), o = -n.scrollLeft + Q(e), s = -n.scrollTop;
483
+ return K(r).direction === "rtl" && (o += b(t.clientWidth, r.clientWidth) - i), {
484
+ width: i,
485
+ height: a,
486
+ x: o,
487
+ y: s
488
+ };
489
+ }
490
+ var Le = 25;
491
+ function Re(e, t) {
492
+ let n = L(e), r = R(e), i = n.visualViewport, a = r.clientWidth, o = r.clientHeight, s = 0, c = 0;
493
+ if (i) {
494
+ a = i.width, o = i.height;
495
+ let e = Te();
496
+ (!e || e && t === "fixed") && (s = i.offsetLeft, c = i.offsetTop);
497
+ }
498
+ let l = Q(r);
499
+ if (l <= 0) {
500
+ let e = r.ownerDocument, t = e.body, n = getComputedStyle(t), i = e.compatMode === "CSS1Compat" && parseFloat(n.marginLeft) + parseFloat(n.marginRight) || 0, o = Math.abs(r.clientWidth - t.clientWidth - i);
501
+ o <= Le && (a -= o);
502
+ } else l <= Le && (a += l);
503
+ return {
504
+ width: a,
505
+ height: o,
506
+ x: s,
507
+ y: c
508
+ };
509
+ }
510
+ function ze(e, t) {
511
+ let n = Z(e, !0, t === "fixed"), r = n.top + e.clientTop, i = n.left + e.clientLeft, a = B(e) ? X(e) : C(1);
512
+ return {
513
+ width: e.clientWidth * a.x,
514
+ height: e.clientHeight * a.y,
515
+ x: i * a.x,
516
+ y: r * a.y
517
+ };
518
+ }
519
+ function Be(e, t, n) {
520
+ let r;
521
+ if (t === "viewport") r = Re(e, n);
522
+ else if (t === "document") r = Ie(R(e));
523
+ else if (z(t)) r = ze(t, n);
524
+ else {
525
+ let n = je(e);
526
+ r = {
527
+ x: t.x - n.x,
528
+ y: t.y - n.y,
529
+ width: t.width,
530
+ height: t.height
531
+ };
532
+ }
533
+ return P(r);
534
+ }
535
+ function Ve(e, t) {
536
+ let n = J(e);
537
+ return n === t || !z(n) || G(n) ? !1 : K(n).position === "fixed" || Ve(n, t);
538
+ }
539
+ function He(e, t) {
540
+ let n = t.get(e);
541
+ if (n) return n;
542
+ let r = Y(e, [], !1).filter((e) => z(e) && I(e) !== "body"), i = null, a = K(e).position === "fixed", o = a ? J(e) : e;
543
+ for (; z(o) && !G(o);) {
544
+ let t = K(o), n = W(o);
545
+ !n && t.position === "fixed" && (i = null), (a ? !n && !i : !n && t.position === "static" && i && (i.position === "absolute" || i.position === "fixed") || V(o) && !n && Ve(e, o)) ? r = r.filter((e) => e !== o) : i = t, o = J(o);
546
+ }
547
+ return t.set(e, r), r;
548
+ }
549
+ function Ue(e) {
550
+ let { element: t, boundary: n, rootBoundary: r, strategy: i } = e, a = [...n === "clippingAncestors" ? H(t) ? [] : He(t, this._c) : [].concat(n), r], o = Be(t, a[0], i), s = o.top, c = o.right, l = o.bottom, u = o.left;
551
+ for (let e = 1; e < a.length; e++) {
552
+ let n = Be(t, a[e], i);
553
+ s = b(n.top, s), c = y(n.right, c), l = y(n.bottom, l), u = b(n.left, u);
554
+ }
555
+ return {
556
+ width: c - u,
557
+ height: l - s,
558
+ x: u,
559
+ y: s
560
+ };
561
+ }
562
+ function We(e) {
563
+ let { width: t, height: n } = Oe(e);
564
+ return {
565
+ width: t,
566
+ height: n
567
+ };
568
+ }
569
+ function Ge(e, t, n) {
570
+ let r = B(t), i = R(t), a = n === "fixed", o = Z(e, !0, a, t), s = {
571
+ scrollLeft: 0,
572
+ scrollTop: 0
573
+ }, c = C(0);
574
+ function l() {
575
+ c.x = Q(i);
576
+ }
577
+ if (r || !r && !a) if ((I(t) !== "body" || V(i)) && (s = q(t)), r) {
578
+ let e = Z(t, !0, a, t);
579
+ c.x = e.x + t.clientLeft, c.y = e.y + t.clientTop;
580
+ } else i && l();
581
+ a && !r && i && l();
582
+ let u = i && !r && !a ? Ne(i, s) : C(0);
583
+ return {
584
+ x: o.left + s.scrollLeft - c.x - u.x,
585
+ y: o.top + s.scrollTop - c.y - u.y,
586
+ width: o.width,
587
+ height: o.height
588
+ };
589
+ }
590
+ function $(e) {
591
+ return K(e).position === "static";
592
+ }
593
+ function Ke(e, t) {
594
+ if (!B(e) || K(e).position === "fixed") return null;
595
+ if (t) return t(e);
596
+ let n = e.offsetParent;
597
+ return R(e) === n && (n = n.ownerDocument.body), n;
598
+ }
599
+ function qe(e, t) {
600
+ let n = L(e);
601
+ if (H(e)) return n;
602
+ if (!B(e)) {
603
+ let t = J(e);
604
+ for (; t && !G(t);) {
605
+ if (z(t) && !$(t)) return t;
606
+ t = J(t);
607
+ }
608
+ return n;
609
+ }
610
+ let r = Ke(e, t);
611
+ for (; r && be(r) && $(r);) r = Ke(r, t);
612
+ return r && G(r) && $(r) && !W(r) ? n : r || we(e) || n;
613
+ }
614
+ var Je = async function(e) {
615
+ let t = this.getOffsetParent || qe, n = this.getDimensions, r = await n(e.floating);
616
+ return {
617
+ reference: Ge(e.reference, await t(e.floating), e.strategy),
618
+ floating: {
619
+ x: 0,
620
+ y: 0,
621
+ width: r.width,
622
+ height: r.height
623
+ }
624
+ };
625
+ };
626
+ function Ye(e) {
627
+ return K(e).direction === "rtl";
628
+ }
629
+ var Xe = {
630
+ convertOffsetParentRelativeRectToViewportRelativeRect: Pe,
631
+ getDocumentElement: R,
632
+ getClippingRect: Ue,
633
+ getOffsetParent: qe,
634
+ getElementRects: Je,
635
+ getClientRects: Fe,
636
+ getDimensions: We,
637
+ getScale: X,
638
+ isElement: z,
639
+ isRTL: Ye
640
+ };
641
+ function Ze(e, t) {
642
+ return e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height;
643
+ }
644
+ function Qe(e, t) {
645
+ let n = null, r, i = R(e);
646
+ function a() {
647
+ var e;
648
+ clearTimeout(r), (e = n) == null || e.disconnect(), n = null;
649
+ }
650
+ function o(s, c) {
651
+ s === void 0 && (s = !1), c === void 0 && (c = 1), a();
652
+ let l = e.getBoundingClientRect(), { left: u, top: d, width: f, height: p } = l;
653
+ if (s || t(), !f || !p) return;
654
+ let m = S(d), h = S(i.clientWidth - (u + f)), g = S(i.clientHeight - (d + p)), _ = S(u), v = {
655
+ rootMargin: -m + "px " + -h + "px " + -g + "px " + -_ + "px",
656
+ threshold: b(0, y(1, c)) || 1
657
+ }, x = !0;
658
+ function C(t) {
659
+ let n = t[0].intersectionRatio;
660
+ if (n !== c) {
661
+ if (!x) return o();
662
+ n ? o(!1, n) : r = setTimeout(() => {
663
+ o(!1, 1e-7);
664
+ }, 1e3);
665
+ }
666
+ n === 1 && !Ze(l, e.getBoundingClientRect()) && o(), x = !1;
667
+ }
668
+ try {
669
+ n = new IntersectionObserver(C, {
670
+ ...v,
671
+ root: i.ownerDocument
672
+ });
673
+ } catch {
674
+ n = new IntersectionObserver(C, v);
675
+ }
676
+ n.observe(e);
677
+ }
678
+ return o(!0), a;
679
+ }
680
+ function $e(e, t, n, r) {
681
+ r === void 0 && (r = {});
682
+ let { ancestorScroll: i = !0, ancestorResize: a = !0, elementResize: o = typeof ResizeObserver == "function", layoutShift: s = typeof IntersectionObserver == "function", animationFrame: c = !1 } = r, l = ke(e), u = i || a ? [...l ? Y(l) : [], ...t ? Y(t) : []] : [];
683
+ u.forEach((e) => {
684
+ i && e.addEventListener("scroll", n, { passive: !0 }), a && e.addEventListener("resize", n);
685
+ });
686
+ let d = l && s ? Qe(l, n) : null, f = -1, p = null;
687
+ o && (p = new ResizeObserver((e) => {
688
+ let [r] = e;
689
+ r && r.target === l && p && t && (p.unobserve(t), cancelAnimationFrame(f), f = requestAnimationFrame(() => {
690
+ var e;
691
+ (e = p) == null || e.observe(t);
692
+ })), n();
693
+ }), l && !c && p.observe(l), t && p.observe(t));
694
+ let m, h = c ? Z(e) : null;
695
+ c && g();
696
+ function g() {
697
+ let t = Z(e);
698
+ h && !Ze(h, t) && n(), h = t, m = requestAnimationFrame(g);
699
+ }
700
+ return n(), () => {
701
+ var e;
702
+ u.forEach((e) => {
703
+ i && e.removeEventListener("scroll", n), a && e.removeEventListener("resize", n);
704
+ }), d?.(), (e = p) == null || e.disconnect(), p = null, c && cancelAnimationFrame(m);
705
+ };
706
+ }
707
+ var et = _e, tt = me, nt = (e, t, n) => {
708
+ let r = /* @__PURE__ */ new Map(), i = {
709
+ platform: Xe,
710
+ ...n
711
+ }, a = {
712
+ ...i.platform,
713
+ _c: r
714
+ };
715
+ return pe(e, t, {
716
+ ...i,
717
+ platform: a
718
+ });
719
+ };
720
+ //#endregion
721
+ //#region ../../node_modules/.pnpm/@tiptap+suggestion@3.27.3_@floating-ui+dom@1.7.6_@tiptap+core@3.27.3_@tiptap+pm@3.27.3__@tiptap+pm@3.27.3/node_modules/@tiptap/suggestion/dist/index.js
722
+ function rt(e) {
723
+ let { char: t, allowSpaces: n, allowToIncludeChar: r, allowedPrefixes: i, startOfLine: a, $position: o } = e, s = n && !r, c = p(t), l = RegExp(`\\s${c}$`), u = a ? "^" : "", d = r ? "" : c, f = RegExp(s ? `${u}${c}.*?(?=\\s${d}|$)` : `${u}(?:^)?${c}[^\\s${d}]*`, "gm"), m = o.nodeBefore?.isText && o.nodeBefore.text;
724
+ if (!m) return null;
725
+ let h = o.pos - m.length, g = Array.from(m.matchAll(f)).pop();
726
+ if (!g || g.input === void 0 || g.index === void 0) return null;
727
+ let _ = g.input.slice(Math.max(0, g.index - 1), g.index), v = RegExp(`^[${i?.join("")}\0]?$`).test(_);
728
+ if (i !== null && !v) return null;
729
+ let y = h + g.index, b = y + g[0].length;
730
+ return s && l.test(m.slice(b - 1, b + 1)) && (g[0] += " ", b += 1), y < o.pos && b >= o.pos ? {
731
+ range: {
732
+ from: y,
733
+ to: b
734
+ },
735
+ query: g[0].slice(t.length),
736
+ text: g[0]
737
+ } : null;
738
+ }
739
+ function it(e) {
740
+ return e.docChanged ? e.steps.some((e) => {
741
+ let t = e.slice;
742
+ if (!t?.content) return !1;
743
+ let n = t.content.textBetween(0, t.content.size, "\n");
744
+ return /\s/.test(n);
745
+ }) : !1;
746
+ }
747
+ function at(e) {
748
+ return () => {
749
+ let t = e.state.selection.$anchor.pos, { top: n, right: r, bottom: i, left: a } = e.view.coordsAtPos(t);
750
+ try {
751
+ return new DOMRect(a, n, r - a, i - n);
752
+ } catch {
753
+ return null;
754
+ }
755
+ };
756
+ }
757
+ function ot(e, t, n, r) {
758
+ return n ? () => {
759
+ let n = r.getState(e.state)?.decorationId;
760
+ return t.dom.querySelector(`[data-decoration-id="${n}"]`)?.getBoundingClientRect() || null;
761
+ } : at(e);
762
+ }
763
+ function st({ match: e, dismissedRange: t, state: n, transaction: r, editor: i, shouldResetDismissed: a, effectiveAllowSpaces: o }) {
764
+ return a?.({
765
+ editor: i,
766
+ state: n,
767
+ range: t,
768
+ match: e,
769
+ transaction: r,
770
+ allowSpaces: o
771
+ }) ? !1 : o ? e.range.from === t.from : e.range.from === t.from && !it(r);
772
+ }
773
+ function ct({ view: e, pluginKeyRef: t }) {
774
+ let n = e.state.tr.setMeta(t, { exit: !0 });
775
+ e.dispatch(n);
776
+ }
777
+ function lt({ pluginKey: e, decorationTag: t, decorationClass: n, decorationContent: r, decorationEmptyClass: i, renderer: a, dispatchExit: o }) {
778
+ return {
779
+ handleKeyDown(t, n) {
780
+ var r;
781
+ let i = e.getState(t.state);
782
+ return i.active ? n.key === "Escape" || n.key === "Esc" ? ((r = a?.onKeyDown) == null || r.call(a, {
783
+ view: t,
784
+ event: n,
785
+ range: i.range
786
+ }), o(t), !0) : (a?.onKeyDown)?.call(a, {
787
+ view: t,
788
+ event: n,
789
+ range: i.range
790
+ }) || !1 : !1;
791
+ },
792
+ decorations(a) {
793
+ let { active: o, range: s, decorationId: c, query: l } = e.getState(a);
794
+ if (!o) return null;
795
+ let u = !l?.length, d = [n];
796
+ return u && d.push(i), v.create(a.doc, [g.inline(s.from, s.to, {
797
+ nodeName: t,
798
+ class: d.join(" "),
799
+ "data-decoration-id": c || void 0,
800
+ "data-decoration-content": r
801
+ })]);
802
+ }
803
+ };
804
+ }
805
+ function ut({ editor: e, char: t, effectiveAllowSpaces: n, allowToIncludeChar: r, allowedPrefixes: i, startOfLine: a, findSuggestionMatch: o, allow: s, shouldShow: c, shouldKeepDismissed: l, pluginKey: u }) {
806
+ return {
807
+ init() {
808
+ return {
809
+ active: !1,
810
+ range: {
811
+ from: 0,
812
+ to: 0
813
+ },
814
+ query: null,
815
+ text: null,
816
+ composing: !1,
817
+ dismissedRange: null
818
+ };
819
+ },
820
+ apply(d, f, p, m) {
821
+ let { isEditable: h } = e, { composing: g } = e.view, { selection: _ } = d, { empty: v, from: y } = _, b = { ...f }, x = d.getMeta(u);
822
+ if (x && x.exit) return b.active = !1, b.decorationId = null, b.range = {
823
+ from: 0,
824
+ to: 0
825
+ }, b.query = null, b.text = null, b.dismissedRange = f.active ? { ...f.range } : f.dismissedRange, b;
826
+ if (b.composing = g, d.docChanged && b.dismissedRange !== null && (b.dismissedRange = {
827
+ from: d.mapping.map(b.dismissedRange.from),
828
+ to: d.mapping.map(b.dismissedRange.to)
829
+ }), h && (v || e.view.composing)) {
830
+ (y < f.range.from || y > f.range.to) && !g && !f.composing && (b.active = !1);
831
+ let u = o({
832
+ char: t,
833
+ allowSpaces: n,
834
+ allowToIncludeChar: r,
835
+ allowedPrefixes: i,
836
+ startOfLine: a,
837
+ $position: _.$from
838
+ }), p = `id_${Math.floor(Math.random() * 4294967295)}`;
839
+ u && s({
840
+ editor: e,
841
+ state: m,
842
+ range: u.range,
843
+ isActive: f.active
844
+ }) && (!c || c({
845
+ editor: e,
846
+ range: u.range,
847
+ query: u.query,
848
+ text: u.text,
849
+ transaction: d
850
+ })) ? (b.dismissedRange !== null && !l({
851
+ match: u,
852
+ dismissedRange: b.dismissedRange,
853
+ state: m,
854
+ transaction: d
855
+ }) && (b.dismissedRange = null), b.dismissedRange === null ? (b.active = !0, b.decorationId = f.decorationId || p, b.range = u.range, b.query = u.query, b.text = u.text) : b.active = !1) : (u || (b.dismissedRange = null), b.active = !1);
856
+ } else b.active = !1;
857
+ return b.active || (b.decorationId = null, b.range = {
858
+ from: 0,
859
+ to: 0
860
+ }, b.query = null, b.text = null), b;
861
+ }
862
+ };
863
+ }
864
+ function dt({ editor: e, items: t }) {
865
+ let n = null, r = null, i = null, a = () => {
866
+ r !== null && (clearTimeout(r), r = null), i?.(), i = null;
867
+ }, o = (e) => new Promise((t) => {
868
+ i = t, r = setTimeout(() => {
869
+ r = null;
870
+ let e = i;
871
+ i = null, e?.();
872
+ }, e);
873
+ }), s = () => {
874
+ n?.abort(), a(), n = null;
875
+ };
876
+ return {
877
+ abort: s,
878
+ fetch: async (r, i) => {
879
+ s(), n = new AbortController();
880
+ let a = n;
881
+ if (i > 0 && await o(i), n !== a || a.signal.aborted) return { status: "aborted" };
882
+ try {
883
+ let i = await t({
884
+ editor: e,
885
+ query: r,
886
+ signal: a.signal
887
+ });
888
+ return n !== a || a.signal.aborted ? { status: "aborted" } : {
889
+ status: "resolved",
890
+ items: i
891
+ };
892
+ } catch {
893
+ return n !== a || a.signal.aborted ? { status: "aborted" } : { status: "error" };
894
+ }
895
+ }
896
+ };
897
+ }
898
+ function ft({ placement: e, offset: t, flip: n, floatingUi: r }) {
899
+ let i = [et({
900
+ mainAxis: t.mainAxis ?? 4,
901
+ crossAxis: t.crossAxis ?? 0
902
+ })];
903
+ return n && i.push(tt()), r?.middleware?.length && i.push(...r.middleware), {
904
+ placement: e,
905
+ strategy: r?.strategy ?? "absolute",
906
+ middleware: i
907
+ };
908
+ }
909
+ function pt(e) {
910
+ if (e instanceof HTMLElement) return e;
911
+ if (typeof e == "string") try {
912
+ let t = document.querySelector(e);
913
+ if (t) return t;
914
+ } catch {
915
+ return document.body;
916
+ }
917
+ return document.body;
918
+ }
919
+ function mt({ getReferenceRect: e, contextElement: t, config: n, container: r, dismissOnOutsideClick: i, dismiss: a }) {
920
+ return (o, s = {}) => {
921
+ let c = {
922
+ getBoundingClientRect: () => e() ?? new DOMRect(),
923
+ contextElement: t
924
+ }, l = !1, u = !o.isConnected;
925
+ u && pt(r).appendChild(o), s.onPosition || (o.style.visibility = "hidden", o.style.width = "max-content");
926
+ let d = $e(c, o, () => {
927
+ nt(c, o, {
928
+ placement: n.placement,
929
+ strategy: n.strategy,
930
+ middleware: n.middleware
931
+ }).then(({ x: e, y: t, placement: n, strategy: r }) => {
932
+ if (s.onPosition) {
933
+ s.onPosition({
934
+ x: e,
935
+ y: t,
936
+ placement: n,
937
+ strategy: r
938
+ });
939
+ return;
940
+ }
941
+ Object.assign(o.style, {
942
+ position: r,
943
+ left: `${e}px`,
944
+ top: `${t}px`
945
+ }), l || (l = !0, o.style.visibility = "");
946
+ });
947
+ }, s.autoUpdate), f;
948
+ return i && (f = (e) => {
949
+ let n = e.target;
950
+ !(n instanceof Node) || o.contains(n) || t.contains(n) || a();
951
+ }, document.addEventListener("pointerdown", f, !0)), () => {
952
+ d(), f && document.removeEventListener("pointerdown", f, !0), u && o.remove();
953
+ };
954
+ };
955
+ }
956
+ function ht({ editor: e, pluginKey: t, items: n, renderer: r, minQueryLength: i, debounce: a, initialItems: o, placement: s, offset: c, container: l, flip: u, floatingUi: d, dismissOnOutsideClick: f, command: p, clientRectFor: m, dispatchExit: h }) {
957
+ let g, _ = dt({
958
+ editor: e,
959
+ items: n
960
+ }), v = ft({
961
+ placement: s,
962
+ offset: c,
963
+ flip: u,
964
+ floatingUi: d
965
+ });
966
+ function y(e, t) {
967
+ var n, i, a;
968
+ switch (e) {
969
+ case "started":
970
+ (n = r?.onStart) == null || n.call(r, t);
971
+ break;
972
+ case "updated":
973
+ (i = r?.onUpdate) == null || i.call(r, t);
974
+ break;
975
+ case "stopped":
976
+ (a = r?.onExit) == null || a.call(r, t);
977
+ break;
978
+ default: break;
979
+ }
980
+ }
981
+ return {
982
+ update: async (n, d) => {
983
+ var b, x;
984
+ let S = t.getState(d), C = t.getState(n.state);
985
+ if (!S || !C) return;
986
+ let w = null, T = S.query !== C.query, E = S.text !== C.text, D = S.range.from !== C.range.from || S.range.to !== C.range.to, O = T || E || D;
987
+ if (!S.active && C.active) w = "started";
988
+ else if (S.active && !C.active) w = "stopped";
989
+ else if (C.active && O) w = "updated";
990
+ else return;
991
+ let k = w === "stopped" ? S : C, A = n.dom.querySelector(`[data-decoration-id="${k.decorationId}"]`), j = m(n, A), M = i === 0 || (k.query ? k.query.length >= i : !1), ee = (w === "started" || w === "updated") && M;
992
+ if (g = {
993
+ editor: e,
994
+ range: k.range,
995
+ query: k.query || "",
996
+ text: k.text || "",
997
+ items: o ?? [],
998
+ command: (t) => p({
999
+ editor: e,
1000
+ range: k.range,
1001
+ props: t
1002
+ }),
1003
+ decorationNode: A,
1004
+ clientRect: j,
1005
+ loading: ee,
1006
+ placement: s,
1007
+ offset: {
1008
+ mainAxis: c.mainAxis ?? 4,
1009
+ crossAxis: c.crossAxis ?? 0
1010
+ },
1011
+ container: l,
1012
+ flip: u,
1013
+ floatingUi: v,
1014
+ mount: mt({
1015
+ getReferenceRect: j,
1016
+ contextElement: n.dom,
1017
+ config: v,
1018
+ container: l,
1019
+ dismissOnOutsideClick: f,
1020
+ dismiss: () => h(e.view)
1021
+ })
1022
+ }, w === "started" && ((b = r?.onBeforeStart) == null || b.call(r, g)), w === "updated" && ((x = r?.onBeforeUpdate) == null || x.call(r, g)), w === "started" && y(w, g), w === "started" || w === "updated") if (!ee) _.abort(), g = {
1023
+ ...g,
1024
+ items: o ?? [],
1025
+ loading: !1
1026
+ };
1027
+ else {
1028
+ g = {
1029
+ ...g,
1030
+ items: o ?? [],
1031
+ loading: !0
1032
+ }, w = "updated", y(w, g);
1033
+ let e = await _.fetch(k.query || "", a);
1034
+ if (e.status === "aborted") return;
1035
+ if (!t.getState(n.state)?.active) {
1036
+ _.abort();
1037
+ return;
1038
+ }
1039
+ g = e.status === "resolved" ? {
1040
+ ...g,
1041
+ items: e.items,
1042
+ loading: !1
1043
+ } : {
1044
+ ...g,
1045
+ loading: !1
1046
+ };
1047
+ }
1048
+ if (w === "stopped") {
1049
+ _.abort(), y(w, g), g = void 0;
1050
+ return;
1051
+ }
1052
+ w === "updated" && y(w, g);
1053
+ },
1054
+ destroy: () => {
1055
+ var e;
1056
+ _.abort(), g && ((e = r?.onExit) == null || e.call(r, g));
1057
+ }
1058
+ };
1059
+ }
1060
+ var gt = new m("suggestion");
1061
+ function _t({ pluginKey: e = gt, editor: t, char: n = "@", allowSpaces: r = !1, allowToIncludeChar: i = !1, allowedPrefixes: a = [" "], startOfLine: o = !1, decorationTag: s = "span", decorationClass: c = "suggestion", decorationContent: l = "", decorationEmptyClass: u = "is-empty", command: d = () => null, items: f = () => [], minQueryLength: p = 0, debounce: m = 0, initialItems: h, placement: g = "bottom-start", offset: v = {}, container: y, flip: b = !0, floatingUi: x, dismissOnOutsideClick: S = !0, render: C = () => ({}), allow: w = () => !0, findSuggestionMatch: T = rt, shouldShow: E, shouldResetDismissed: D }) {
1062
+ let O = C?.(), k = r && !i, A = (n, r) => ot(t, n, r, e);
1063
+ function j(e) {
1064
+ return st({
1065
+ ...e,
1066
+ editor: t,
1067
+ shouldResetDismissed: D,
1068
+ effectiveAllowSpaces: k
1069
+ });
1070
+ }
1071
+ let M = (t) => ct({
1072
+ view: t,
1073
+ pluginKeyRef: e
1074
+ });
1075
+ return new _({
1076
+ key: e,
1077
+ view: () => ht({
1078
+ editor: t,
1079
+ pluginKey: e,
1080
+ items: f,
1081
+ renderer: O,
1082
+ minQueryLength: p,
1083
+ debounce: m,
1084
+ initialItems: h,
1085
+ placement: g,
1086
+ offset: v,
1087
+ container: y,
1088
+ flip: b,
1089
+ floatingUi: x,
1090
+ dismissOnOutsideClick: S,
1091
+ command: d,
1092
+ clientRectFor: A,
1093
+ dispatchExit: M
1094
+ }),
1095
+ state: ut({
1096
+ editor: t,
1097
+ char: n,
1098
+ effectiveAllowSpaces: k,
1099
+ allowToIncludeChar: i,
1100
+ allowedPrefixes: a,
1101
+ startOfLine: o,
1102
+ findSuggestionMatch: T,
1103
+ allow: w,
1104
+ shouldShow: E,
1105
+ shouldKeepDismissed: j,
1106
+ pluginKey: e
1107
+ }),
1108
+ props: lt({
1109
+ pluginKey: e,
1110
+ decorationTag: s,
1111
+ decorationClass: c,
1112
+ decorationContent: l,
1113
+ decorationEmptyClass: u,
1114
+ renderer: O,
1115
+ dispatchExit: M
1116
+ })
1117
+ });
1118
+ }
1119
+ var vt = _t, yt = ["id"], bt = {
1120
+ key: 0,
1121
+ class: "tpl:px-3 tpl:py-2 tpl:text-xs tpl:text-[var(--tpl-text-dim)]",
1122
+ "data-testid": "merge-tag-suggestion-empty"
1123
+ }, xt = [
1124
+ "id",
1125
+ "aria-selected",
1126
+ "data-selected",
1127
+ "data-merge-tag-value",
1128
+ "onMousedown",
1129
+ "onMousemove"
1130
+ ], St = { class: "tpl:font-medium" }, Ct = { class: "tpl:text-[var(--tpl-text-dim)] tpl:font-mono" }, wt = /* @__PURE__ */ a({
1131
+ __name: "MergeTagSuggestionList",
1132
+ props: {
1133
+ items: {},
1134
+ selectedIndex: {},
1135
+ emptyText: {},
1136
+ listId: {}
1137
+ },
1138
+ emits: ["select", "hover"],
1139
+ setup(i) {
1140
+ let a = i;
1141
+ function u(e) {
1142
+ return a.listId ? `${a.listId}-opt-${e}` : void 0;
1143
+ }
1144
+ return (a, f) => (n(), s("div", {
1145
+ id: i.listId,
1146
+ class: "tpl:min-w-[200px] tpl:max-w-[320px] tpl:max-h-[50vh] tpl:overflow-y-auto tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:py-1 tpl:shadow-lg",
1147
+ role: "listbox",
1148
+ "data-testid": "merge-tag-suggestion-list"
1149
+ }, [i.items.length === 0 ? (n(), s("div", bt, r(i.emptyText), 1)) : l("", !0), (n(!0), s(c, null, e(i.items, (e, c) => (n(), s("button", {
1150
+ key: e.value,
1151
+ id: u(c),
1152
+ type: "button",
1153
+ role: "option",
1154
+ "aria-selected": c === i.selectedIndex,
1155
+ "data-selected": c === i.selectedIndex ? "true" : "false",
1156
+ "data-merge-tag-value": e.value,
1157
+ class: t(["tpl:flex tpl:w-full tpl:flex-col tpl:items-start tpl:gap-0.5 tpl:px-3 tpl:py-1.5 tpl:text-left tpl:text-xs tpl:transition-colors", c === i.selectedIndex ? "tpl:bg-[var(--tpl-primary-light)] tpl:text-[var(--tpl-primary)]" : "tpl:text-[var(--tpl-text)] hover:tpl:bg-[var(--tpl-bg-hover)]"]),
1158
+ onMousedown: d((t) => a.$emit("select", e), ["prevent", "stop"]),
1159
+ onMousemove: (e) => c !== i.selectedIndex && a.$emit("hover", c)
1160
+ }, [o("span", St, r(e.label), 1), o("span", Ct, r(e.value), 1)], 42, xt))), 128))], 8, yt));
1161
+ }
1162
+ }), Tt = 10, Et = 0;
1163
+ function Dt(e, t) {
1164
+ let n = t.trim().toLowerCase();
1165
+ return n === "" ? e.slice(0, Tt) : e.filter((e) => {
1166
+ let t = e.label.toLowerCase(), r = e.value.toLowerCase();
1167
+ return t.includes(n) || r.includes(n);
1168
+ }).slice(0, Tt);
1169
+ }
1170
+ function Ot(e, t, n, r) {
1171
+ return t.length === 0 ? e.key === "Enter" || e.key === "Tab" : e.key === "ArrowDown" ? (n.value = (n.value + 1) % t.length, !0) : e.key === "ArrowUp" ? (n.value = (n.value - 1 + t.length) % t.length, !0) : e.key === "Enter" || e.key === "Tab" ? (r(t[n.value]), !0) : !1;
1172
+ }
1173
+ function kt(e, t) {
1174
+ let n = null, r = null, a = null, o = i([]), s = i(0), c = null, l = `tpl-merge-tag-suggestion-${++Et}`, d = null, p = [], m = null;
1175
+ function h() {
1176
+ b(d?.() ?? null);
1177
+ }
1178
+ function g() {
1179
+ h(), m !== null && cancelAnimationFrame(m), m = requestAnimationFrame(() => {
1180
+ m = null, h();
1181
+ });
1182
+ }
1183
+ function _(e) {
1184
+ let t = [], n = e?.parentElement ?? null;
1185
+ for (; n && n !== document.body && n !== document.documentElement;) {
1186
+ let e = window.getComputedStyle(n), r = e.overflow + e.overflowX + e.overflowY;
1187
+ /(auto|scroll|overlay)/.test(r) && t.push(n), n = n.parentElement;
1188
+ }
1189
+ return t;
1190
+ }
1191
+ function v(e) {
1192
+ p = [window, ..._(e)];
1193
+ for (let e of p) e.addEventListener("scroll", h, {
1194
+ passive: !0,
1195
+ capture: !0
1196
+ });
1197
+ window.addEventListener("resize", h, { passive: !0 });
1198
+ }
1199
+ function y() {
1200
+ for (let e of p) e.removeEventListener("scroll", h, { capture: !0 });
1201
+ window.removeEventListener("resize", h), p = [];
1202
+ }
1203
+ function b(e) {
1204
+ if (!r || !e || e.bottom < 0 || e.top > window.innerHeight) return;
1205
+ r.style.position = "fixed", r.style.left = `${e.left}px`, r.style.zIndex = "9999", r.style.top = `${e.bottom}px`;
1206
+ let t = r.offsetHeight;
1207
+ if (t !== 0 && window.innerHeight - e.bottom < t) {
1208
+ let n = Math.max(0, e.top - t);
1209
+ r.style.top = `${n}px`;
1210
+ }
1211
+ }
1212
+ function x(e, t) {
1213
+ let n = t?.closest("[data-tpl-theme]");
1214
+ if (!n) return;
1215
+ let r = n.getAttribute("data-tpl-theme");
1216
+ r && e.setAttribute("data-tpl-theme", r);
1217
+ let i = window.getComputedStyle(n);
1218
+ for (let t = 0; t < i.length; t++) {
1219
+ let n = i[t];
1220
+ n.startsWith("--tpl-") && e.style.setProperty(n, i.getPropertyValue(n));
1221
+ }
1222
+ e.style.fontFamily = i.fontFamily, e.style.fontSize = i.fontSize, e.style.lineHeight = i.lineHeight;
1223
+ }
1224
+ function S(e) {
1225
+ a && (e ? (a.setAttribute("role", "combobox"), a.setAttribute("aria-haspopup", "listbox"), a.setAttribute("aria-expanded", "true"), a.setAttribute("aria-controls", l)) : (a.removeAttribute("aria-expanded"), a.removeAttribute("aria-controls"), a.removeAttribute("aria-activedescendant"), a.removeAttribute("aria-haspopup"), a.removeAttribute("role")));
1226
+ }
1227
+ function C() {
1228
+ if (a) {
1229
+ if (o.value.length === 0) {
1230
+ a.removeAttribute("aria-activedescendant");
1231
+ return;
1232
+ }
1233
+ a.setAttribute("aria-activedescendant", `${l}-opt-${s.value}`);
1234
+ }
1235
+ }
1236
+ function w(e) {
1237
+ c?.(e);
1238
+ }
1239
+ return {
1240
+ open: ({ items: i, getRect: p, anchorEl: m, onCommand: h }) => {
1241
+ o.value = i, s.value = 0, c = h, r = document.createElement("div"), r.setAttribute("data-testid", "merge-tag-suggestion-popup"), a = m, x(r, m), (t?.value ?? document.body).appendChild(r), n = f({ render() {
1242
+ return u(wt, {
1243
+ items: o.value,
1244
+ selectedIndex: s.value,
1245
+ emptyText: e,
1246
+ listId: l,
1247
+ onSelect: (e) => w(e),
1248
+ onHover: (e) => {
1249
+ s.value = e, C();
1250
+ }
1251
+ });
1252
+ } }), n.mount(r), S(!0), C(), d = p, g(), v(m);
1253
+ },
1254
+ update: ({ items: e, getRect: t, onCommand: n }) => {
1255
+ o.value = e, s.value >= e.length && (s.value = 0), c = n, C(), d = t, g();
1256
+ },
1257
+ handleKeyDown: (e) => {
1258
+ let t = Ot(e, o.value, s, w);
1259
+ return t && C(), t;
1260
+ },
1261
+ close: () => {
1262
+ r !== null && (m !== null && (cancelAnimationFrame(m), m = null), y(), S(!1), n?.unmount(), r.remove(), n = null, r = null, a = null, c = null, d = null);
1263
+ },
1264
+ isOpen: () => r !== null
1265
+ };
1266
+ }
1267
+ function At(e, t) {
1268
+ return () => {
1269
+ let n = kt(e, t);
1270
+ return {
1271
+ onStart: (e) => {
1272
+ let t = e.editor.view?.dom;
1273
+ n.open({
1274
+ items: e.items,
1275
+ getRect: e.clientRect ?? null,
1276
+ anchorEl: t ?? null,
1277
+ onCommand: (t) => e.command(t)
1278
+ });
1279
+ },
1280
+ onUpdate: (e) => {
1281
+ n.update({
1282
+ items: e.items,
1283
+ getRect: e.clientRect ?? null,
1284
+ onCommand: (t) => e.command(t)
1285
+ });
1286
+ },
1287
+ onKeyDown: (e) => e.event.key === "Escape" || n.handleKeyDown(e.event),
1288
+ onExit: () => n.close()
1289
+ };
1290
+ };
1291
+ }
1292
+ var jt = h.create({
1293
+ name: "mergeTagSuggestion",
1294
+ addOptions() {
1295
+ return {
1296
+ mergeTags: [],
1297
+ char: "{{",
1298
+ emptyText: "No matching merge tags",
1299
+ popoverRoot: null
1300
+ };
1301
+ },
1302
+ addProseMirrorPlugins() {
1303
+ let e = this.options.mergeTags, t = this.options.emptyText, n = this.options.popoverRoot, r = {
1304
+ char: this.options.char,
1305
+ allowSpaces: !1,
1306
+ startOfLine: !1,
1307
+ allowedPrefixes: null,
1308
+ items: ({ query: t }) => Dt(e, t),
1309
+ command: ({ editor: e, range: t, props: n }) => {
1310
+ e.chain().focus().insertContentAt(t, {
1311
+ type: "mergeTagNode",
1312
+ attrs: {
1313
+ label: n.label,
1314
+ value: n.value
1315
+ }
1316
+ }).run();
1317
+ },
1318
+ render: At(t, n)
1319
+ };
1320
+ return [vt({
1321
+ editor: this.editor,
1322
+ ...r
1323
+ })];
1324
+ }
1325
+ });
1326
+ //#endregion
1327
+ export { Ot as i, kt as n, Dt as r, jt as t };