@opentiny/fluent-editor 4.0.0-alpha.1 → 4.0.0-alpha.3

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 (471) hide show
  1. package/README.md +7 -24
  2. package/es/config/editor.utils.es.js +0 -2
  3. package/es/config/editor.utils.es.js.map +1 -1
  4. package/es/config/index.es.js +2 -2
  5. package/es/config/index.es.js.map +1 -1
  6. package/es/config/types/index.es.js +0 -20
  7. package/es/config/types/index.es.js.map +1 -1
  8. package/es/core/fluent-editor.es.js +4 -1
  9. package/es/core/fluent-editor.es.js.map +1 -1
  10. package/es/fluent-editor.es.js +26 -19
  11. package/es/fluent-editor.es.js.map +1 -1
  12. package/es/formats/emoji.es.js +14 -0
  13. package/es/formats/emoji.es.js.map +1 -0
  14. package/es/formats/index.es.js +11 -0
  15. package/es/formats/index.es.js.map +1 -0
  16. package/es/formats/soft-break.es.js +12 -5
  17. package/es/formats/soft-break.es.js.map +1 -1
  18. package/es/formats/strike.es.js +8 -5
  19. package/es/formats/strike.es.js.map +1 -1
  20. package/es/formats/video.es.js +14 -10
  21. package/es/formats/video.es.js.map +1 -1
  22. package/es/index.es.js +90 -31
  23. package/es/index.es.js.map +1 -1
  24. package/es/modules/ai/index.es.js +238 -0
  25. package/es/modules/ai/index.es.js.map +1 -0
  26. package/es/modules/counter.es.js +8 -3
  27. package/es/modules/counter.es.js.map +1 -1
  28. package/es/modules/custom-clipboard.es.js +20 -22
  29. package/es/modules/custom-clipboard.es.js.map +1 -1
  30. package/es/modules/custom-image/actions/action.es.js +19 -0
  31. package/es/modules/custom-image/actions/action.es.js.map +1 -0
  32. package/es/modules/custom-image/actions/{CustomResizeAction.es.js → custom-resize-action.es.js} +24 -11
  33. package/es/modules/custom-image/actions/{CustomResizeAction.es.js.map → custom-resize-action.es.js.map} +1 -1
  34. package/es/modules/custom-image/actions/{DeleteAction.es.js → delete-action.es.js} +8 -5
  35. package/es/modules/custom-image/actions/delete-action.es.js.map +1 -0
  36. package/es/modules/custom-image/actions/image-toolbar-buttons.es.js +137 -0
  37. package/es/modules/custom-image/actions/image-toolbar-buttons.es.js.map +1 -0
  38. package/es/modules/custom-image/actions/index.es.js +18 -0
  39. package/es/modules/custom-image/actions/index.es.js.map +1 -0
  40. package/es/modules/custom-image/actions/toolbar-action.es.js +33 -0
  41. package/es/modules/custom-image/actions/toolbar-action.es.js.map +1 -0
  42. package/es/modules/custom-image/actions/toolbar.es.js +110 -0
  43. package/es/modules/custom-image/actions/toolbar.es.js.map +1 -0
  44. package/es/modules/custom-image/{BlotFormatter.es.js → blot-formatter.es.js} +23 -49
  45. package/es/modules/custom-image/blot-formatter.es.js.map +1 -0
  46. package/es/modules/custom-image/image.es.js +31 -6
  47. package/es/modules/custom-image/image.es.js.map +1 -1
  48. package/es/modules/custom-image/index.es.js +9 -0
  49. package/es/modules/custom-image/index.es.js.map +1 -0
  50. package/es/modules/custom-image/options.es.js +85 -0
  51. package/es/modules/custom-image/options.es.js.map +1 -0
  52. package/es/modules/custom-image/specs/blot-spec.es.js +33 -0
  53. package/es/modules/custom-image/specs/blot-spec.es.js.map +1 -0
  54. package/es/modules/custom-image/specs/{CustomImageSpec.es.js → custom-image-spec.es.js} +13 -14
  55. package/es/modules/custom-image/specs/custom-image-spec.es.js.map +1 -0
  56. package/es/modules/custom-image/specs/image-spec.es.js +32 -0
  57. package/es/modules/custom-image/specs/image-spec.es.js.map +1 -0
  58. package/es/modules/custom-image/specs/index.es.js +9 -0
  59. package/es/modules/custom-image/specs/index.es.js.map +1 -0
  60. package/es/modules/custom-uploader.es.js +6 -4
  61. package/es/modules/custom-uploader.es.js.map +1 -1
  62. package/es/modules/divider.es.js +8 -7
  63. package/es/modules/divider.es.js.map +1 -1
  64. package/es/modules/emoji.es.js +175 -0
  65. package/es/modules/emoji.es.js.map +1 -0
  66. package/es/modules/file/formats/file.es.js +10 -8
  67. package/es/modules/file/formats/file.es.js.map +1 -1
  68. package/es/modules/file/index.es.js +6 -28
  69. package/es/modules/file/index.es.js.map +1 -1
  70. package/es/modules/file/modules/file-bar.es.js +11 -3
  71. package/es/modules/file/modules/file-bar.es.js.map +1 -1
  72. package/es/modules/file/modules/file-module.es.js +35 -0
  73. package/es/modules/file/modules/file-module.es.js.map +1 -0
  74. package/es/modules/i18n.es.js +6 -3
  75. package/es/modules/i18n.es.js.map +1 -1
  76. package/es/modules/index.es.js +26 -0
  77. package/es/modules/index.es.js.map +1 -0
  78. package/es/modules/link/formats/link.es.js +14 -10
  79. package/es/modules/link/formats/link.es.js.map +1 -1
  80. package/es/modules/link/index.es.js +4 -12
  81. package/es/modules/link/index.es.js.map +1 -1
  82. package/es/modules/link/modules/tooltip.es.js +28 -19
  83. package/es/modules/link/modules/tooltip.es.js.map +1 -1
  84. package/es/modules/mathlive/formats.es.js +10 -7
  85. package/es/modules/mathlive/formats.es.js.map +1 -1
  86. package/es/modules/mathlive/index.es.js +6 -30
  87. package/es/modules/mathlive/index.es.js.map +1 -1
  88. package/es/modules/mathlive/module.es.js +40 -0
  89. package/es/modules/mathlive/module.es.js.map +1 -0
  90. package/es/modules/mathlive/tooltip.es.js +9 -5
  91. package/es/modules/mathlive/tooltip.es.js.map +1 -1
  92. package/es/modules/mention/index.es.js +7 -0
  93. package/es/modules/{emoji/emoji-list → mention}/index.es.js.map +1 -1
  94. package/es/modules/mention/{MentionLink.es.js → mention-link.es.js} +14 -6
  95. package/es/modules/mention/mention-link.es.js.map +1 -0
  96. package/es/modules/mention/{Mention.es.js → mention.es.js} +28 -20
  97. package/es/modules/mention/mention.es.js.map +1 -0
  98. package/es/modules/shortcut-key/index.es.js.map +1 -1
  99. package/es/modules/syntax.es.js +4 -0
  100. package/es/modules/syntax.es.js.map +1 -1
  101. package/es/modules/table-up/index.es.js +4 -0
  102. package/es/modules/table-up/index.es.js.map +1 -1
  103. package/es/modules/toolbar/better-picker.es.js +5 -0
  104. package/es/modules/toolbar/better-picker.es.js.map +1 -1
  105. package/es/modules/toolbar/better-toolbar.es.js +138 -0
  106. package/es/modules/toolbar/better-toolbar.es.js.map +1 -0
  107. package/es/modules/toolbar/index.es.js +5 -135
  108. package/es/modules/toolbar/index.es.js.map +1 -1
  109. package/es/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.es.js +40145 -0
  110. package/es/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.es.js.map +1 -0
  111. package/es/node_modules/.pnpm/@floating-ui_core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.es.js +938 -0
  112. package/es/node_modules/.pnpm/@floating-ui_core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.es.js.map +1 -0
  113. package/es/node_modules/.pnpm/@floating-ui_dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.es.js +624 -0
  114. package/es/node_modules/.pnpm/@floating-ui_dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.es.js.map +1 -0
  115. package/es/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.es.js +174 -0
  116. package/es/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.es.js.map +1 -0
  117. package/es/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.es.js +159 -0
  118. package/es/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.es.js.map +1 -0
  119. package/es/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.es.js +2849 -0
  120. package/es/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.es.js.map +1 -0
  121. package/es/themes/snow.es.js +6 -10
  122. package/es/themes/snow.es.js.map +1 -1
  123. package/es/tools/fullscreen.es.js.map +1 -1
  124. package/es/ui/icons.config.es.js +23 -0
  125. package/es/ui/icons.config.es.js.map +1 -1
  126. package/es/ui/icons.es.js +2 -1
  127. package/es/ui/icons.es.js.map +1 -1
  128. package/es/utils/is.es.js.map +1 -1
  129. package/lib/config/editor.utils.cjs.js +0 -2
  130. package/lib/config/editor.utils.cjs.js.map +1 -1
  131. package/lib/config/index.cjs.js +1 -1
  132. package/lib/config/index.cjs.js.map +1 -1
  133. package/lib/config/types/index.cjs.js +0 -20
  134. package/lib/config/types/index.cjs.js.map +1 -1
  135. package/lib/core/fluent-editor.cjs.js +4 -1
  136. package/lib/core/fluent-editor.cjs.js.map +1 -1
  137. package/lib/fluent-editor.cjs.js +35 -28
  138. package/lib/fluent-editor.cjs.js.map +1 -1
  139. package/lib/formats/emoji.cjs.js +14 -0
  140. package/lib/formats/emoji.cjs.js.map +1 -0
  141. package/lib/formats/index.cjs.js +11 -0
  142. package/lib/formats/index.cjs.js.map +1 -0
  143. package/lib/formats/soft-break.cjs.js +13 -6
  144. package/lib/formats/soft-break.cjs.js.map +1 -1
  145. package/lib/formats/strike.cjs.js +9 -6
  146. package/lib/formats/strike.cjs.js.map +1 -1
  147. package/lib/formats/video.cjs.js +15 -11
  148. package/lib/formats/video.cjs.js.map +1 -1
  149. package/lib/index.cjs.js +111 -34
  150. package/lib/index.cjs.js.map +1 -1
  151. package/lib/modules/ai/index.cjs.js +238 -0
  152. package/lib/modules/ai/index.cjs.js.map +1 -0
  153. package/lib/modules/counter.cjs.js +8 -3
  154. package/lib/modules/counter.cjs.js.map +1 -1
  155. package/lib/modules/custom-clipboard.cjs.js +21 -23
  156. package/lib/modules/custom-clipboard.cjs.js.map +1 -1
  157. package/lib/modules/custom-image/actions/action.cjs.js +19 -0
  158. package/lib/modules/custom-image/actions/action.cjs.js.map +1 -0
  159. package/lib/modules/custom-image/actions/{CustomResizeAction.cjs.js → custom-resize-action.cjs.js} +26 -13
  160. package/lib/modules/custom-image/actions/{CustomResizeAction.cjs.js.map → custom-resize-action.cjs.js.map} +1 -1
  161. package/lib/modules/custom-image/actions/{DeleteAction.cjs.js → delete-action.cjs.js} +10 -7
  162. package/lib/modules/custom-image/actions/delete-action.cjs.js.map +1 -0
  163. package/lib/modules/custom-image/actions/image-toolbar-buttons.cjs.js +137 -0
  164. package/lib/modules/custom-image/actions/image-toolbar-buttons.cjs.js.map +1 -0
  165. package/lib/modules/custom-image/actions/index.cjs.js +18 -0
  166. package/lib/modules/custom-image/actions/index.cjs.js.map +1 -0
  167. package/lib/modules/custom-image/actions/toolbar-action.cjs.js +33 -0
  168. package/lib/modules/custom-image/actions/toolbar-action.cjs.js.map +1 -0
  169. package/lib/modules/custom-image/actions/toolbar.cjs.js +110 -0
  170. package/lib/modules/custom-image/actions/toolbar.cjs.js.map +1 -0
  171. package/lib/modules/custom-image/{BlotFormatter.cjs.js → blot-formatter.cjs.js} +24 -50
  172. package/lib/modules/custom-image/blot-formatter.cjs.js.map +1 -0
  173. package/lib/modules/custom-image/image.cjs.js +32 -7
  174. package/lib/modules/custom-image/image.cjs.js.map +1 -1
  175. package/lib/modules/custom-image/index.cjs.js +9 -0
  176. package/lib/modules/custom-image/index.cjs.js.map +1 -0
  177. package/lib/modules/custom-image/options.cjs.js +85 -0
  178. package/lib/modules/custom-image/options.cjs.js.map +1 -0
  179. package/lib/modules/custom-image/specs/blot-spec.cjs.js +33 -0
  180. package/lib/modules/custom-image/specs/blot-spec.cjs.js.map +1 -0
  181. package/lib/modules/custom-image/specs/{CustomImageSpec.cjs.js → custom-image-spec.cjs.js} +14 -15
  182. package/lib/modules/custom-image/specs/custom-image-spec.cjs.js.map +1 -0
  183. package/lib/modules/custom-image/specs/image-spec.cjs.js +32 -0
  184. package/lib/modules/custom-image/specs/image-spec.cjs.js.map +1 -0
  185. package/lib/modules/custom-image/specs/index.cjs.js +9 -0
  186. package/lib/modules/custom-image/specs/index.cjs.js.map +1 -0
  187. package/lib/modules/custom-uploader.cjs.js +6 -4
  188. package/lib/modules/custom-uploader.cjs.js.map +1 -1
  189. package/lib/modules/divider.cjs.js +9 -8
  190. package/lib/modules/divider.cjs.js.map +1 -1
  191. package/lib/modules/emoji.cjs.js +175 -0
  192. package/lib/modules/emoji.cjs.js.map +1 -0
  193. package/lib/modules/file/formats/file.cjs.js +11 -9
  194. package/lib/modules/file/formats/file.cjs.js.map +1 -1
  195. package/lib/modules/file/index.cjs.js +5 -27
  196. package/lib/modules/file/index.cjs.js.map +1 -1
  197. package/lib/modules/file/modules/file-bar.cjs.js +12 -4
  198. package/lib/modules/file/modules/file-bar.cjs.js.map +1 -1
  199. package/lib/modules/file/modules/file-module.cjs.js +35 -0
  200. package/lib/modules/file/modules/file-module.cjs.js.map +1 -0
  201. package/lib/modules/i18n.cjs.js +6 -3
  202. package/lib/modules/i18n.cjs.js.map +1 -1
  203. package/lib/modules/index.cjs.js +26 -0
  204. package/lib/modules/index.cjs.js.map +1 -0
  205. package/lib/modules/link/formats/link.cjs.js +15 -11
  206. package/lib/modules/link/formats/link.cjs.js.map +1 -1
  207. package/lib/modules/link/index.cjs.js +4 -12
  208. package/lib/modules/link/index.cjs.js.map +1 -1
  209. package/lib/modules/link/modules/tooltip.cjs.js +28 -19
  210. package/lib/modules/link/modules/tooltip.cjs.js.map +1 -1
  211. package/lib/modules/mathlive/formats.cjs.js +11 -8
  212. package/lib/modules/mathlive/formats.cjs.js.map +1 -1
  213. package/lib/modules/mathlive/index.cjs.js +5 -29
  214. package/lib/modules/mathlive/index.cjs.js.map +1 -1
  215. package/lib/modules/mathlive/module.cjs.js +40 -0
  216. package/lib/modules/mathlive/module.cjs.js.map +1 -0
  217. package/lib/modules/mathlive/tooltip.cjs.js +10 -6
  218. package/lib/modules/mathlive/tooltip.cjs.js.map +1 -1
  219. package/lib/modules/mention/index.cjs.js +7 -0
  220. package/lib/modules/{emoji/emoji-list → mention}/index.cjs.js.map +1 -1
  221. package/lib/modules/mention/{MentionLink.cjs.js → mention-link.cjs.js} +15 -7
  222. package/lib/modules/mention/mention-link.cjs.js.map +1 -0
  223. package/lib/modules/mention/{Mention.cjs.js → mention.cjs.js} +30 -22
  224. package/lib/modules/mention/mention.cjs.js.map +1 -0
  225. package/lib/modules/shortcut-key/index.cjs.js.map +1 -1
  226. package/lib/modules/syntax.cjs.js +4 -0
  227. package/lib/modules/syntax.cjs.js.map +1 -1
  228. package/lib/modules/table-up/index.cjs.js +4 -0
  229. package/lib/modules/table-up/index.cjs.js.map +1 -1
  230. package/lib/modules/toolbar/better-picker.cjs.js +5 -0
  231. package/lib/modules/toolbar/better-picker.cjs.js.map +1 -1
  232. package/lib/modules/toolbar/better-toolbar.cjs.js +138 -0
  233. package/lib/modules/toolbar/better-toolbar.cjs.js.map +1 -0
  234. package/lib/modules/toolbar/index.cjs.js +6 -136
  235. package/lib/modules/toolbar/index.cjs.js.map +1 -1
  236. package/lib/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.cjs.js +40145 -0
  237. package/lib/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.cjs.js.map +1 -0
  238. package/lib/node_modules/.pnpm/@floating-ui_core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.cjs.js +938 -0
  239. package/lib/node_modules/.pnpm/@floating-ui_core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.cjs.js.map +1 -0
  240. package/lib/node_modules/.pnpm/@floating-ui_dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs.js +624 -0
  241. package/lib/node_modules/.pnpm/@floating-ui_dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs.js.map +1 -0
  242. package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs.js +159 -0
  243. package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs.js.map +1 -0
  244. package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs.js +174 -0
  245. package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs.js.map +1 -0
  246. package/lib/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.cjs.js +2847 -0
  247. package/lib/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.cjs.js.map +1 -0
  248. package/lib/themes/snow.cjs.js +7 -11
  249. package/lib/themes/snow.cjs.js.map +1 -1
  250. package/lib/tools/fullscreen.cjs.js.map +1 -1
  251. package/lib/ui/icons.cjs.js +1 -0
  252. package/lib/ui/icons.cjs.js.map +1 -1
  253. package/lib/ui/icons.config.cjs.js +23 -0
  254. package/lib/ui/icons.config.cjs.js.map +1 -1
  255. package/lib/utils/is.cjs.js.map +1 -1
  256. package/package.json +8 -7
  257. package/style.css +92 -933
  258. package/types/config/editor.utils.d.ts +0 -1
  259. package/types/config/index.d.ts +1 -0
  260. package/types/config/types/editor-config.interface.d.ts +0 -7
  261. package/types/config/types/editor-modules.interface.d.ts +21 -12
  262. package/types/config/types/index.d.ts +0 -20
  263. package/types/config/types/type.d.ts +0 -4
  264. package/types/core/fluent-editor.d.ts +0 -1
  265. package/types/formats/emoji.d.ts +9 -0
  266. package/types/formats/index.d.ts +4 -0
  267. package/types/formats/soft-break.d.ts +6 -7
  268. package/types/formats/strike.d.ts +6 -4
  269. package/types/formats/video.d.ts +4 -6
  270. package/types/index.d.ts +6 -5
  271. package/types/modules/ai/index.d.ts +39 -0
  272. package/types/modules/counter.d.ts +8 -1
  273. package/types/modules/custom-clipboard.d.ts +3 -6
  274. package/types/modules/custom-image/Options.d.ts +34 -23
  275. package/types/modules/custom-image/actions/Action.d.ts +5 -3
  276. package/types/modules/custom-image/actions/custom-resize-action.d.ts +24 -0
  277. package/types/modules/custom-image/actions/delete-action.d.ts +7 -0
  278. package/types/modules/custom-image/actions/image-toolbar-buttons.d.ts +17 -0
  279. package/types/modules/custom-image/actions/index.d.ts +6 -0
  280. package/types/modules/custom-image/actions/toolbar-action.d.ts +12 -0
  281. package/types/modules/custom-image/actions/toolbar.d.ts +20 -0
  282. package/types/modules/custom-image/blot-formatter.d.ts +24 -0
  283. package/types/modules/custom-image/image-bar.d.ts +9 -7
  284. package/types/modules/custom-image/image.d.ts +15 -13
  285. package/types/modules/custom-image/index.d.ts +4 -0
  286. package/types/modules/custom-image/specs/blot-spec.d.ts +13 -0
  287. package/types/modules/custom-image/specs/custom-image-spec.d.ts +18 -0
  288. package/types/modules/custom-image/specs/image-spec.d.ts +9 -0
  289. package/types/modules/custom-image/specs/index.d.ts +3 -0
  290. package/types/modules/custom-uploader.d.ts +41 -0
  291. package/types/modules/divider.d.ts +6 -4
  292. package/types/modules/emoji/formats/emoji-blot.d.ts +9 -7
  293. package/types/modules/emoji/index.d.ts +3 -10
  294. package/types/modules/emoji/modules/emoji.d.ts +6 -6
  295. package/types/modules/emoji/modules/toolbar-emoji.d.ts +7 -6
  296. package/types/modules/emoji.d.ts +35 -0
  297. package/types/modules/file/formats/file.d.ts +2 -2
  298. package/types/modules/file/index.d.ts +3 -11
  299. package/types/modules/file/modules/file-bar.d.ts +1 -1
  300. package/types/modules/file/modules/file-module.d.ts +10 -0
  301. package/types/modules/i18n.d.ts +1 -2
  302. package/types/modules/index.d.ts +15 -0
  303. package/types/modules/link/formats/link.d.ts +5 -5
  304. package/types/modules/link/index.d.ts +2 -6
  305. package/types/modules/link/modules/tooltip.d.ts +5 -10
  306. package/types/modules/mathlive/formats.d.ts +2 -2
  307. package/types/modules/mathlive/index.d.ts +3 -9
  308. package/types/modules/mathlive/module.d.ts +10 -0
  309. package/types/modules/mathlive/tooltip.d.ts +1 -1
  310. package/types/modules/mention/Mention.d.ts +3 -4
  311. package/types/modules/mention/index.d.ts +2 -0
  312. package/types/modules/mention/mention-link.d.ts +17 -0
  313. package/types/modules/shortcut-key/index.d.ts +12 -8
  314. package/types/modules/table-up/index.d.ts +3 -3
  315. package/types/modules/toolbar/better-toolbar.d.ts +8 -0
  316. package/types/modules/toolbar/index.d.ts +2 -8
  317. package/types/tools/fullscreen.d.ts +5 -1
  318. package/types/ui/icons.config.d.ts +2 -0
  319. package/types/utils/is.d.ts +1 -1
  320. package/es/config/types/additional-toolbar-item.interface.es.js +0 -2
  321. package/es/config/types/additional-toolbar-item.interface.es.js.map +0 -1
  322. package/es/config/types/content-change.interface.es.js +0 -2
  323. package/es/config/types/content-change.interface.es.js.map +0 -1
  324. package/es/config/types/content-save.interface.es.js +0 -2
  325. package/es/config/types/content-save.interface.es.js.map +0 -1
  326. package/es/config/types/counter-option.interface.es.js +0 -2
  327. package/es/config/types/counter-option.interface.es.js.map +0 -1
  328. package/es/config/types/editor-toolbar.interface.es.js +0 -2
  329. package/es/config/types/editor-toolbar.interface.es.js.map +0 -1
  330. package/es/config/types/file-operation.interface.es.js +0 -2
  331. package/es/config/types/file-operation.interface.es.js.map +0 -1
  332. package/es/config/types/focus-change.interface.es.js +0 -2
  333. package/es/config/types/focus-change.interface.es.js.map +0 -1
  334. package/es/config/types/fullscreen-module.interface.es.js +0 -2
  335. package/es/config/types/fullscreen-module.interface.es.js.map +0 -1
  336. package/es/config/types/help-panel-item.interface.es.js +0 -2
  337. package/es/config/types/help-panel-item.interface.es.js.map +0 -1
  338. package/es/config/types/help-panel-option.interface.es.js +0 -2
  339. package/es/config/types/help-panel-option.interface.es.js.map +0 -1
  340. package/es/config/types/image-module.interface.es.js +0 -2
  341. package/es/config/types/image-module.interface.es.js.map +0 -1
  342. package/es/config/types/image-upload.interface.es.js +0 -2
  343. package/es/config/types/image-upload.interface.es.js.map +0 -1
  344. package/es/config/types/load-on-demand-module.interface.es.js +0 -2
  345. package/es/config/types/load-on-demand-module.interface.es.js.map +0 -1
  346. package/es/config/types/mention-module.interface.es.js +0 -2
  347. package/es/config/types/mention-module.interface.es.js.map +0 -1
  348. package/es/config/types/paste-change.interface.es.js +0 -2
  349. package/es/config/types/paste-change.interface.es.js.map +0 -1
  350. package/es/config/types/quick-menu-module.interface.es.js +0 -2
  351. package/es/config/types/quick-menu-module.interface.es.js.map +0 -1
  352. package/es/config/types/range.interface.es.js +0 -2
  353. package/es/config/types/range.interface.es.js.map +0 -1
  354. package/es/config/types/registry-options.interface.es.js +0 -2
  355. package/es/config/types/registry-options.interface.es.js.map +0 -1
  356. package/es/config/types/selection-change.interface.es.js +0 -2
  357. package/es/config/types/selection-change.interface.es.js.map +0 -1
  358. package/es/config/types/toolbar-item.interface.es.js +0 -2
  359. package/es/config/types/toolbar-item.interface.es.js.map +0 -1
  360. package/es/config/types/validate-error.interface.es.js +0 -2
  361. package/es/config/types/validate-error.interface.es.js.map +0 -1
  362. package/es/modules/custom-image/BlotFormatter.es.js.map +0 -1
  363. package/es/modules/custom-image/Options.es.js +0 -95
  364. package/es/modules/custom-image/Options.es.js.map +0 -1
  365. package/es/modules/custom-image/actions/Action.es.js +0 -15
  366. package/es/modules/custom-image/actions/Action.es.js.map +0 -1
  367. package/es/modules/custom-image/actions/DeleteAction.es.js.map +0 -1
  368. package/es/modules/custom-image/image-bar.es.js +0 -127
  369. package/es/modules/custom-image/image-bar.es.js.map +0 -1
  370. package/es/modules/custom-image/specs/BlotSpec.es.js +0 -27
  371. package/es/modules/custom-image/specs/BlotSpec.es.js.map +0 -1
  372. package/es/modules/custom-image/specs/CustomImageSpec.es.js.map +0 -1
  373. package/es/modules/custom-image/specs/ImageSpec.es.js +0 -29
  374. package/es/modules/custom-image/specs/ImageSpec.es.js.map +0 -1
  375. package/es/modules/emoji/emoji-list/index.es.js +0 -5
  376. package/es/modules/emoji/emoji-list/people.es.js +0 -114
  377. package/es/modules/emoji/emoji-list/people.es.js.map +0 -1
  378. package/es/modules/emoji/emoji-list.es.js +0 -9
  379. package/es/modules/emoji/emoji-list.es.js.map +0 -1
  380. package/es/modules/emoji/emoji-map.es.js +0 -9
  381. package/es/modules/emoji/emoji-map.es.js.map +0 -1
  382. package/es/modules/emoji/emoji-sprite.es.js +0 -5
  383. package/es/modules/emoji/emoji-sprite.es.js.map +0 -1
  384. package/es/modules/emoji/formats/emoji-blot.es.js +0 -41
  385. package/es/modules/emoji/formats/emoji-blot.es.js.map +0 -1
  386. package/es/modules/emoji/index.es.js +0 -8
  387. package/es/modules/emoji/index.es.js.map +0 -1
  388. package/es/modules/emoji/modules/emoji.es.js +0 -248
  389. package/es/modules/emoji/modules/emoji.es.js.map +0 -1
  390. package/es/modules/emoji/modules/toolbar-emoji.es.js +0 -153
  391. package/es/modules/emoji/modules/toolbar-emoji.es.js.map +0 -1
  392. package/es/modules/emoji/utils.es.js +0 -19
  393. package/es/modules/emoji/utils.es.js.map +0 -1
  394. package/es/modules/mention/Mention.es.js.map +0 -1
  395. package/es/modules/mention/MentionLink.es.js.map +0 -1
  396. package/lib/config/types/additional-toolbar-item.interface.cjs.js +0 -2
  397. package/lib/config/types/additional-toolbar-item.interface.cjs.js.map +0 -1
  398. package/lib/config/types/content-change.interface.cjs.js +0 -2
  399. package/lib/config/types/content-change.interface.cjs.js.map +0 -1
  400. package/lib/config/types/content-save.interface.cjs.js +0 -2
  401. package/lib/config/types/content-save.interface.cjs.js.map +0 -1
  402. package/lib/config/types/counter-option.interface.cjs.js +0 -2
  403. package/lib/config/types/counter-option.interface.cjs.js.map +0 -1
  404. package/lib/config/types/editor-toolbar.interface.cjs.js +0 -2
  405. package/lib/config/types/editor-toolbar.interface.cjs.js.map +0 -1
  406. package/lib/config/types/file-operation.interface.cjs.js +0 -2
  407. package/lib/config/types/file-operation.interface.cjs.js.map +0 -1
  408. package/lib/config/types/focus-change.interface.cjs.js +0 -2
  409. package/lib/config/types/focus-change.interface.cjs.js.map +0 -1
  410. package/lib/config/types/fullscreen-module.interface.cjs.js +0 -2
  411. package/lib/config/types/fullscreen-module.interface.cjs.js.map +0 -1
  412. package/lib/config/types/help-panel-item.interface.cjs.js +0 -2
  413. package/lib/config/types/help-panel-item.interface.cjs.js.map +0 -1
  414. package/lib/config/types/help-panel-option.interface.cjs.js +0 -2
  415. package/lib/config/types/help-panel-option.interface.cjs.js.map +0 -1
  416. package/lib/config/types/image-module.interface.cjs.js +0 -2
  417. package/lib/config/types/image-module.interface.cjs.js.map +0 -1
  418. package/lib/config/types/image-upload.interface.cjs.js +0 -2
  419. package/lib/config/types/image-upload.interface.cjs.js.map +0 -1
  420. package/lib/config/types/load-on-demand-module.interface.cjs.js +0 -2
  421. package/lib/config/types/load-on-demand-module.interface.cjs.js.map +0 -1
  422. package/lib/config/types/mention-module.interface.cjs.js +0 -2
  423. package/lib/config/types/mention-module.interface.cjs.js.map +0 -1
  424. package/lib/config/types/paste-change.interface.cjs.js +0 -2
  425. package/lib/config/types/paste-change.interface.cjs.js.map +0 -1
  426. package/lib/config/types/quick-menu-module.interface.cjs.js +0 -2
  427. package/lib/config/types/quick-menu-module.interface.cjs.js.map +0 -1
  428. package/lib/config/types/range.interface.cjs.js +0 -2
  429. package/lib/config/types/range.interface.cjs.js.map +0 -1
  430. package/lib/config/types/registry-options.interface.cjs.js +0 -2
  431. package/lib/config/types/registry-options.interface.cjs.js.map +0 -1
  432. package/lib/config/types/selection-change.interface.cjs.js +0 -2
  433. package/lib/config/types/selection-change.interface.cjs.js.map +0 -1
  434. package/lib/config/types/toolbar-item.interface.cjs.js +0 -2
  435. package/lib/config/types/toolbar-item.interface.cjs.js.map +0 -1
  436. package/lib/config/types/validate-error.interface.cjs.js +0 -2
  437. package/lib/config/types/validate-error.interface.cjs.js.map +0 -1
  438. package/lib/modules/custom-image/BlotFormatter.cjs.js.map +0 -1
  439. package/lib/modules/custom-image/Options.cjs.js +0 -95
  440. package/lib/modules/custom-image/Options.cjs.js.map +0 -1
  441. package/lib/modules/custom-image/actions/Action.cjs.js +0 -15
  442. package/lib/modules/custom-image/actions/Action.cjs.js.map +0 -1
  443. package/lib/modules/custom-image/actions/DeleteAction.cjs.js.map +0 -1
  444. package/lib/modules/custom-image/image-bar.cjs.js +0 -127
  445. package/lib/modules/custom-image/image-bar.cjs.js.map +0 -1
  446. package/lib/modules/custom-image/specs/BlotSpec.cjs.js +0 -27
  447. package/lib/modules/custom-image/specs/BlotSpec.cjs.js.map +0 -1
  448. package/lib/modules/custom-image/specs/CustomImageSpec.cjs.js.map +0 -1
  449. package/lib/modules/custom-image/specs/ImageSpec.cjs.js +0 -29
  450. package/lib/modules/custom-image/specs/ImageSpec.cjs.js.map +0 -1
  451. package/lib/modules/emoji/emoji-list/index.cjs.js +0 -5
  452. package/lib/modules/emoji/emoji-list/people.cjs.js +0 -114
  453. package/lib/modules/emoji/emoji-list/people.cjs.js.map +0 -1
  454. package/lib/modules/emoji/emoji-list.cjs.js +0 -9
  455. package/lib/modules/emoji/emoji-list.cjs.js.map +0 -1
  456. package/lib/modules/emoji/emoji-map.cjs.js +0 -9
  457. package/lib/modules/emoji/emoji-map.cjs.js.map +0 -1
  458. package/lib/modules/emoji/emoji-sprite.cjs.js +0 -5
  459. package/lib/modules/emoji/emoji-sprite.cjs.js.map +0 -1
  460. package/lib/modules/emoji/formats/emoji-blot.cjs.js +0 -41
  461. package/lib/modules/emoji/formats/emoji-blot.cjs.js.map +0 -1
  462. package/lib/modules/emoji/index.cjs.js +0 -8
  463. package/lib/modules/emoji/index.cjs.js.map +0 -1
  464. package/lib/modules/emoji/modules/emoji.cjs.js +0 -248
  465. package/lib/modules/emoji/modules/emoji.cjs.js.map +0 -1
  466. package/lib/modules/emoji/modules/toolbar-emoji.cjs.js +0 -153
  467. package/lib/modules/emoji/modules/toolbar-emoji.cjs.js.map +0 -1
  468. package/lib/modules/emoji/utils.cjs.js +0 -19
  469. package/lib/modules/emoji/utils.cjs.js.map +0 -1
  470. package/lib/modules/mention/Mention.cjs.js.map +0 -1
  471. package/lib/modules/mention/MentionLink.cjs.js.map +0 -1
@@ -0,0 +1,938 @@
1
+ import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, getOppositeAlignmentPlacement, placements, getAlignmentSides, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from "../../../../../@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.es.js";
2
+ function computeCoordsFromPlacement(_ref, placement, rtl) {
3
+ let {
4
+ reference,
5
+ floating
6
+ } = _ref;
7
+ const sideAxis = getSideAxis(placement);
8
+ const alignmentAxis = getAlignmentAxis(placement);
9
+ const alignLength = getAxisLength(alignmentAxis);
10
+ const side = getSide(placement);
11
+ const isVertical = sideAxis === "y";
12
+ const commonX = reference.x + reference.width / 2 - floating.width / 2;
13
+ const commonY = reference.y + reference.height / 2 - floating.height / 2;
14
+ const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
15
+ let coords;
16
+ switch (side) {
17
+ case "top":
18
+ coords = {
19
+ x: commonX,
20
+ y: reference.y - floating.height
21
+ };
22
+ break;
23
+ case "bottom":
24
+ coords = {
25
+ x: commonX,
26
+ y: reference.y + reference.height
27
+ };
28
+ break;
29
+ case "right":
30
+ coords = {
31
+ x: reference.x + reference.width,
32
+ y: commonY
33
+ };
34
+ break;
35
+ case "left":
36
+ coords = {
37
+ x: reference.x - floating.width,
38
+ y: commonY
39
+ };
40
+ break;
41
+ default:
42
+ coords = {
43
+ x: reference.x,
44
+ y: reference.y
45
+ };
46
+ }
47
+ switch (getAlignment(placement)) {
48
+ case "start":
49
+ coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
50
+ break;
51
+ case "end":
52
+ coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
53
+ break;
54
+ }
55
+ return coords;
56
+ }
57
+ const computePosition = async (reference, floating, config) => {
58
+ const {
59
+ placement = "bottom",
60
+ strategy = "absolute",
61
+ middleware = [],
62
+ platform
63
+ } = config;
64
+ const validMiddleware = middleware.filter(Boolean);
65
+ const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));
66
+ let rects = await platform.getElementRects({
67
+ reference,
68
+ floating,
69
+ strategy
70
+ });
71
+ let {
72
+ x,
73
+ y
74
+ } = computeCoordsFromPlacement(rects, placement, rtl);
75
+ let statefulPlacement = placement;
76
+ let middlewareData = {};
77
+ let resetCount = 0;
78
+ for (let i = 0; i < validMiddleware.length; i++) {
79
+ const {
80
+ name,
81
+ fn
82
+ } = validMiddleware[i];
83
+ const {
84
+ x: nextX,
85
+ y: nextY,
86
+ data,
87
+ reset
88
+ } = await fn({
89
+ x,
90
+ y,
91
+ initialPlacement: placement,
92
+ placement: statefulPlacement,
93
+ strategy,
94
+ middlewareData,
95
+ rects,
96
+ platform,
97
+ elements: {
98
+ reference,
99
+ floating
100
+ }
101
+ });
102
+ x = nextX != null ? nextX : x;
103
+ y = nextY != null ? nextY : y;
104
+ middlewareData = {
105
+ ...middlewareData,
106
+ [name]: {
107
+ ...middlewareData[name],
108
+ ...data
109
+ }
110
+ };
111
+ if (reset && resetCount <= 50) {
112
+ resetCount++;
113
+ if (typeof reset === "object") {
114
+ if (reset.placement) {
115
+ statefulPlacement = reset.placement;
116
+ }
117
+ if (reset.rects) {
118
+ rects = reset.rects === true ? await platform.getElementRects({
119
+ reference,
120
+ floating,
121
+ strategy
122
+ }) : reset.rects;
123
+ }
124
+ ({
125
+ x,
126
+ y
127
+ } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
128
+ }
129
+ i = -1;
130
+ }
131
+ }
132
+ return {
133
+ x,
134
+ y,
135
+ placement: statefulPlacement,
136
+ strategy,
137
+ middlewareData
138
+ };
139
+ };
140
+ async function detectOverflow(state, options) {
141
+ var _await$platform$isEle;
142
+ if (options === void 0) {
143
+ options = {};
144
+ }
145
+ const {
146
+ x,
147
+ y,
148
+ platform,
149
+ rects,
150
+ elements,
151
+ strategy
152
+ } = state;
153
+ const {
154
+ boundary = "clippingAncestors",
155
+ rootBoundary = "viewport",
156
+ elementContext = "floating",
157
+ altBoundary = false,
158
+ padding = 0
159
+ } = evaluate(options, state);
160
+ const paddingObject = getPaddingObject(padding);
161
+ const altContext = elementContext === "floating" ? "reference" : "floating";
162
+ const element = elements[altBoundary ? altContext : elementContext];
163
+ const clippingClientRect = rectToClientRect(await platform.getClippingRect({
164
+ element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating)),
165
+ boundary,
166
+ rootBoundary,
167
+ strategy
168
+ }));
169
+ const rect = elementContext === "floating" ? {
170
+ x,
171
+ y,
172
+ width: rects.floating.width,
173
+ height: rects.floating.height
174
+ } : rects.reference;
175
+ const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
176
+ const offsetScale = await (platform.isElement == null ? void 0 : platform.isElement(offsetParent)) ? await (platform.getScale == null ? void 0 : platform.getScale(offsetParent)) || {
177
+ x: 1,
178
+ y: 1
179
+ } : {
180
+ x: 1,
181
+ y: 1
182
+ };
183
+ const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
184
+ elements,
185
+ rect,
186
+ offsetParent,
187
+ strategy
188
+ }) : rect);
189
+ return {
190
+ top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
191
+ bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
192
+ left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
193
+ right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
194
+ };
195
+ }
196
+ const arrow = (options) => ({
197
+ name: "arrow",
198
+ options,
199
+ async fn(state) {
200
+ const {
201
+ x,
202
+ y,
203
+ placement,
204
+ rects,
205
+ platform,
206
+ elements,
207
+ middlewareData
208
+ } = state;
209
+ const {
210
+ element,
211
+ padding = 0
212
+ } = evaluate(options, state) || {};
213
+ if (element == null) {
214
+ return {};
215
+ }
216
+ const paddingObject = getPaddingObject(padding);
217
+ const coords = {
218
+ x,
219
+ y
220
+ };
221
+ const axis = getAlignmentAxis(placement);
222
+ const length = getAxisLength(axis);
223
+ const arrowDimensions = await platform.getDimensions(element);
224
+ const isYAxis = axis === "y";
225
+ const minProp = isYAxis ? "top" : "left";
226
+ const maxProp = isYAxis ? "bottom" : "right";
227
+ const clientProp = isYAxis ? "clientHeight" : "clientWidth";
228
+ const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
229
+ const startDiff = coords[axis] - rects.reference[axis];
230
+ const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));
231
+ let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;
232
+ if (!clientSize || !await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent))) {
233
+ clientSize = elements.floating[clientProp] || rects.floating[length];
234
+ }
235
+ const centerToReference = endDiff / 2 - startDiff / 2;
236
+ const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
237
+ const minPadding = min(paddingObject[minProp], largestPossiblePadding);
238
+ const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);
239
+ const min$1 = minPadding;
240
+ const max2 = clientSize - arrowDimensions[length] - maxPadding;
241
+ const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
242
+ const offset2 = clamp(min$1, center, max2);
243
+ const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset2 && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
244
+ const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max2 : 0;
245
+ return {
246
+ [axis]: coords[axis] + alignmentOffset,
247
+ data: {
248
+ [axis]: offset2,
249
+ centerOffset: center - offset2 - alignmentOffset,
250
+ ...shouldAddOffset && {
251
+ alignmentOffset
252
+ }
253
+ },
254
+ reset: shouldAddOffset
255
+ };
256
+ }
257
+ });
258
+ function getPlacementList(alignment, autoAlignment, allowedPlacements) {
259
+ const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter((placement) => getAlignment(placement) === alignment), ...allowedPlacements.filter((placement) => getAlignment(placement) !== alignment)] : allowedPlacements.filter((placement) => getSide(placement) === placement);
260
+ return allowedPlacementsSortedByAlignment.filter((placement) => {
261
+ if (alignment) {
262
+ return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);
263
+ }
264
+ return true;
265
+ });
266
+ }
267
+ const autoPlacement = function(options) {
268
+ if (options === void 0) {
269
+ options = {};
270
+ }
271
+ return {
272
+ name: "autoPlacement",
273
+ options,
274
+ async fn(state) {
275
+ var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;
276
+ const {
277
+ rects,
278
+ middlewareData,
279
+ placement,
280
+ platform,
281
+ elements
282
+ } = state;
283
+ const {
284
+ crossAxis = false,
285
+ alignment,
286
+ allowedPlacements = placements,
287
+ autoAlignment = true,
288
+ ...detectOverflowOptions
289
+ } = evaluate(options, state);
290
+ const placements$1 = alignment !== void 0 || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;
291
+ const overflow = await detectOverflow(state, detectOverflowOptions);
292
+ const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;
293
+ const currentPlacement = placements$1[currentIndex];
294
+ if (currentPlacement == null) {
295
+ return {};
296
+ }
297
+ const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));
298
+ if (placement !== currentPlacement) {
299
+ return {
300
+ reset: {
301
+ placement: placements$1[0]
302
+ }
303
+ };
304
+ }
305
+ const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];
306
+ const allOverflows = [...((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || [], {
307
+ placement: currentPlacement,
308
+ overflows: currentOverflows
309
+ }];
310
+ const nextPlacement = placements$1[currentIndex + 1];
311
+ if (nextPlacement) {
312
+ return {
313
+ data: {
314
+ index: currentIndex + 1,
315
+ overflows: allOverflows
316
+ },
317
+ reset: {
318
+ placement: nextPlacement
319
+ }
320
+ };
321
+ }
322
+ const placementsSortedByMostSpace = allOverflows.map((d) => {
323
+ const alignment2 = getAlignment(d.placement);
324
+ return [d.placement, alignment2 && crossAxis ? (
325
+ // Check along the mainAxis and main crossAxis side.
326
+ d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0)
327
+ ) : (
328
+ // Check only the mainAxis.
329
+ d.overflows[0]
330
+ ), d.overflows];
331
+ }).sort((a, b) => a[1] - b[1]);
332
+ const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter((d) => d[2].slice(
333
+ 0,
334
+ // Aligned placements should not check their opposite crossAxis
335
+ // side.
336
+ getAlignment(d[0]) ? 2 : 3
337
+ ).every((v) => v <= 0));
338
+ const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];
339
+ if (resetPlacement !== placement) {
340
+ return {
341
+ data: {
342
+ index: currentIndex + 1,
343
+ overflows: allOverflows
344
+ },
345
+ reset: {
346
+ placement: resetPlacement
347
+ }
348
+ };
349
+ }
350
+ return {};
351
+ }
352
+ };
353
+ };
354
+ const flip = function(options) {
355
+ if (options === void 0) {
356
+ options = {};
357
+ }
358
+ return {
359
+ name: "flip",
360
+ options,
361
+ async fn(state) {
362
+ var _middlewareData$arrow, _middlewareData$flip;
363
+ const {
364
+ placement,
365
+ middlewareData,
366
+ rects,
367
+ initialPlacement,
368
+ platform,
369
+ elements
370
+ } = state;
371
+ const {
372
+ mainAxis: checkMainAxis = true,
373
+ crossAxis: checkCrossAxis = true,
374
+ fallbackPlacements: specifiedFallbackPlacements,
375
+ fallbackStrategy = "bestFit",
376
+ fallbackAxisSideDirection = "none",
377
+ flipAlignment = true,
378
+ ...detectOverflowOptions
379
+ } = evaluate(options, state);
380
+ if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
381
+ return {};
382
+ }
383
+ const side = getSide(placement);
384
+ const initialSideAxis = getSideAxis(initialPlacement);
385
+ const isBasePlacement = getSide(initialPlacement) === initialPlacement;
386
+ const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
387
+ const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
388
+ const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== "none";
389
+ if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
390
+ fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
391
+ }
392
+ const placements2 = [initialPlacement, ...fallbackPlacements];
393
+ const overflow = await detectOverflow(state, detectOverflowOptions);
394
+ const overflows = [];
395
+ let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
396
+ if (checkMainAxis) {
397
+ overflows.push(overflow[side]);
398
+ }
399
+ if (checkCrossAxis) {
400
+ const sides2 = getAlignmentSides(placement, rects, rtl);
401
+ overflows.push(overflow[sides2[0]], overflow[sides2[1]]);
402
+ }
403
+ overflowsData = [...overflowsData, {
404
+ placement,
405
+ overflows
406
+ }];
407
+ if (!overflows.every((side2) => side2 <= 0)) {
408
+ var _middlewareData$flip2, _overflowsData$filter;
409
+ const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
410
+ const nextPlacement = placements2[nextIndex];
411
+ if (nextPlacement) {
412
+ const ignoreCrossAxisOverflow = checkCrossAxis === "alignment" ? initialSideAxis !== getSideAxis(nextPlacement) : false;
413
+ if (!ignoreCrossAxisOverflow || // We leave the current main axis only if every placement on that axis
414
+ // overflows the main axis.
415
+ overflowsData.every((d) => d.overflows[0] > 0 && getSideAxis(d.placement) === initialSideAxis)) {
416
+ return {
417
+ data: {
418
+ index: nextIndex,
419
+ overflows: overflowsData
420
+ },
421
+ reset: {
422
+ placement: nextPlacement
423
+ }
424
+ };
425
+ }
426
+ }
427
+ let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
428
+ if (!resetPlacement) {
429
+ switch (fallbackStrategy) {
430
+ case "bestFit": {
431
+ var _overflowsData$filter2;
432
+ const placement2 = (_overflowsData$filter2 = overflowsData.filter((d) => {
433
+ if (hasFallbackAxisSideDirection) {
434
+ const currentSideAxis = getSideAxis(d.placement);
435
+ return currentSideAxis === initialSideAxis || // Create a bias to the `y` side axis due to horizontal
436
+ // reading directions favoring greater width.
437
+ currentSideAxis === "y";
438
+ }
439
+ return true;
440
+ }).map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
441
+ if (placement2) {
442
+ resetPlacement = placement2;
443
+ }
444
+ break;
445
+ }
446
+ case "initialPlacement":
447
+ resetPlacement = initialPlacement;
448
+ break;
449
+ }
450
+ }
451
+ if (placement !== resetPlacement) {
452
+ return {
453
+ reset: {
454
+ placement: resetPlacement
455
+ }
456
+ };
457
+ }
458
+ }
459
+ return {};
460
+ }
461
+ };
462
+ };
463
+ function getSideOffsets(overflow, rect) {
464
+ return {
465
+ top: overflow.top - rect.height,
466
+ right: overflow.right - rect.width,
467
+ bottom: overflow.bottom - rect.height,
468
+ left: overflow.left - rect.width
469
+ };
470
+ }
471
+ function isAnySideFullyClipped(overflow) {
472
+ return sides.some((side) => overflow[side] >= 0);
473
+ }
474
+ const hide = function(options) {
475
+ if (options === void 0) {
476
+ options = {};
477
+ }
478
+ return {
479
+ name: "hide",
480
+ options,
481
+ async fn(state) {
482
+ const {
483
+ rects
484
+ } = state;
485
+ const {
486
+ strategy = "referenceHidden",
487
+ ...detectOverflowOptions
488
+ } = evaluate(options, state);
489
+ switch (strategy) {
490
+ case "referenceHidden": {
491
+ const overflow = await detectOverflow(state, {
492
+ ...detectOverflowOptions,
493
+ elementContext: "reference"
494
+ });
495
+ const offsets = getSideOffsets(overflow, rects.reference);
496
+ return {
497
+ data: {
498
+ referenceHiddenOffsets: offsets,
499
+ referenceHidden: isAnySideFullyClipped(offsets)
500
+ }
501
+ };
502
+ }
503
+ case "escaped": {
504
+ const overflow = await detectOverflow(state, {
505
+ ...detectOverflowOptions,
506
+ altBoundary: true
507
+ });
508
+ const offsets = getSideOffsets(overflow, rects.floating);
509
+ return {
510
+ data: {
511
+ escapedOffsets: offsets,
512
+ escaped: isAnySideFullyClipped(offsets)
513
+ }
514
+ };
515
+ }
516
+ default: {
517
+ return {};
518
+ }
519
+ }
520
+ }
521
+ };
522
+ };
523
+ function getBoundingRect(rects) {
524
+ const minX = min(...rects.map((rect) => rect.left));
525
+ const minY = min(...rects.map((rect) => rect.top));
526
+ const maxX = max(...rects.map((rect) => rect.right));
527
+ const maxY = max(...rects.map((rect) => rect.bottom));
528
+ return {
529
+ x: minX,
530
+ y: minY,
531
+ width: maxX - minX,
532
+ height: maxY - minY
533
+ };
534
+ }
535
+ function getRectsByLine(rects) {
536
+ const sortedRects = rects.slice().sort((a, b) => a.y - b.y);
537
+ const groups = [];
538
+ let prevRect = null;
539
+ for (let i = 0; i < sortedRects.length; i++) {
540
+ const rect = sortedRects[i];
541
+ if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {
542
+ groups.push([rect]);
543
+ } else {
544
+ groups[groups.length - 1].push(rect);
545
+ }
546
+ prevRect = rect;
547
+ }
548
+ return groups.map((rect) => rectToClientRect(getBoundingRect(rect)));
549
+ }
550
+ const inline = function(options) {
551
+ if (options === void 0) {
552
+ options = {};
553
+ }
554
+ return {
555
+ name: "inline",
556
+ options,
557
+ async fn(state) {
558
+ const {
559
+ placement,
560
+ elements,
561
+ rects,
562
+ platform,
563
+ strategy
564
+ } = state;
565
+ const {
566
+ padding = 2,
567
+ x,
568
+ y
569
+ } = evaluate(options, state);
570
+ const nativeClientRects = Array.from(await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference)) || []);
571
+ const clientRects = getRectsByLine(nativeClientRects);
572
+ const fallback = rectToClientRect(getBoundingRect(nativeClientRects));
573
+ const paddingObject = getPaddingObject(padding);
574
+ function getBoundingClientRect() {
575
+ if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {
576
+ return clientRects.find((rect) => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;
577
+ }
578
+ if (clientRects.length >= 2) {
579
+ if (getSideAxis(placement) === "y") {
580
+ const firstRect = clientRects[0];
581
+ const lastRect = clientRects[clientRects.length - 1];
582
+ const isTop = getSide(placement) === "top";
583
+ const top2 = firstRect.top;
584
+ const bottom2 = lastRect.bottom;
585
+ const left2 = isTop ? firstRect.left : lastRect.left;
586
+ const right2 = isTop ? firstRect.right : lastRect.right;
587
+ const width2 = right2 - left2;
588
+ const height2 = bottom2 - top2;
589
+ return {
590
+ top: top2,
591
+ bottom: bottom2,
592
+ left: left2,
593
+ right: right2,
594
+ width: width2,
595
+ height: height2,
596
+ x: left2,
597
+ y: top2
598
+ };
599
+ }
600
+ const isLeftSide = getSide(placement) === "left";
601
+ const maxRight = max(...clientRects.map((rect) => rect.right));
602
+ const minLeft = min(...clientRects.map((rect) => rect.left));
603
+ const measureRects = clientRects.filter((rect) => isLeftSide ? rect.left === minLeft : rect.right === maxRight);
604
+ const top = measureRects[0].top;
605
+ const bottom = measureRects[measureRects.length - 1].bottom;
606
+ const left = minLeft;
607
+ const right = maxRight;
608
+ const width = right - left;
609
+ const height = bottom - top;
610
+ return {
611
+ top,
612
+ bottom,
613
+ left,
614
+ right,
615
+ width,
616
+ height,
617
+ x: left,
618
+ y: top
619
+ };
620
+ }
621
+ return fallback;
622
+ }
623
+ const resetRects = await platform.getElementRects({
624
+ reference: {
625
+ getBoundingClientRect
626
+ },
627
+ floating: elements.floating,
628
+ strategy
629
+ });
630
+ if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {
631
+ return {
632
+ reset: {
633
+ rects: resetRects
634
+ }
635
+ };
636
+ }
637
+ return {};
638
+ }
639
+ };
640
+ };
641
+ const originSides = /* @__PURE__ */ new Set(["left", "top"]);
642
+ async function convertValueToCoords(state, options) {
643
+ const {
644
+ placement,
645
+ platform,
646
+ elements
647
+ } = state;
648
+ const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
649
+ const side = getSide(placement);
650
+ const alignment = getAlignment(placement);
651
+ const isVertical = getSideAxis(placement) === "y";
652
+ const mainAxisMulti = originSides.has(side) ? -1 : 1;
653
+ const crossAxisMulti = rtl && isVertical ? -1 : 1;
654
+ const rawValue = evaluate(options, state);
655
+ let {
656
+ mainAxis,
657
+ crossAxis,
658
+ alignmentAxis
659
+ } = typeof rawValue === "number" ? {
660
+ mainAxis: rawValue,
661
+ crossAxis: 0,
662
+ alignmentAxis: null
663
+ } : {
664
+ mainAxis: rawValue.mainAxis || 0,
665
+ crossAxis: rawValue.crossAxis || 0,
666
+ alignmentAxis: rawValue.alignmentAxis
667
+ };
668
+ if (alignment && typeof alignmentAxis === "number") {
669
+ crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
670
+ }
671
+ return isVertical ? {
672
+ x: crossAxis * crossAxisMulti,
673
+ y: mainAxis * mainAxisMulti
674
+ } : {
675
+ x: mainAxis * mainAxisMulti,
676
+ y: crossAxis * crossAxisMulti
677
+ };
678
+ }
679
+ const offset = function(options) {
680
+ if (options === void 0) {
681
+ options = 0;
682
+ }
683
+ return {
684
+ name: "offset",
685
+ options,
686
+ async fn(state) {
687
+ var _middlewareData$offse, _middlewareData$arrow;
688
+ const {
689
+ x,
690
+ y,
691
+ placement,
692
+ middlewareData
693
+ } = state;
694
+ const diffCoords = await convertValueToCoords(state, options);
695
+ if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
696
+ return {};
697
+ }
698
+ return {
699
+ x: x + diffCoords.x,
700
+ y: y + diffCoords.y,
701
+ data: {
702
+ ...diffCoords,
703
+ placement
704
+ }
705
+ };
706
+ }
707
+ };
708
+ };
709
+ const shift = function(options) {
710
+ if (options === void 0) {
711
+ options = {};
712
+ }
713
+ return {
714
+ name: "shift",
715
+ options,
716
+ async fn(state) {
717
+ const {
718
+ x,
719
+ y,
720
+ placement
721
+ } = state;
722
+ const {
723
+ mainAxis: checkMainAxis = true,
724
+ crossAxis: checkCrossAxis = false,
725
+ limiter = {
726
+ fn: (_ref) => {
727
+ let {
728
+ x: x2,
729
+ y: y2
730
+ } = _ref;
731
+ return {
732
+ x: x2,
733
+ y: y2
734
+ };
735
+ }
736
+ },
737
+ ...detectOverflowOptions
738
+ } = evaluate(options, state);
739
+ const coords = {
740
+ x,
741
+ y
742
+ };
743
+ const overflow = await detectOverflow(state, detectOverflowOptions);
744
+ const crossAxis = getSideAxis(getSide(placement));
745
+ const mainAxis = getOppositeAxis(crossAxis);
746
+ let mainAxisCoord = coords[mainAxis];
747
+ let crossAxisCoord = coords[crossAxis];
748
+ if (checkMainAxis) {
749
+ const minSide = mainAxis === "y" ? "top" : "left";
750
+ const maxSide = mainAxis === "y" ? "bottom" : "right";
751
+ const min2 = mainAxisCoord + overflow[minSide];
752
+ const max2 = mainAxisCoord - overflow[maxSide];
753
+ mainAxisCoord = clamp(min2, mainAxisCoord, max2);
754
+ }
755
+ if (checkCrossAxis) {
756
+ const minSide = crossAxis === "y" ? "top" : "left";
757
+ const maxSide = crossAxis === "y" ? "bottom" : "right";
758
+ const min2 = crossAxisCoord + overflow[minSide];
759
+ const max2 = crossAxisCoord - overflow[maxSide];
760
+ crossAxisCoord = clamp(min2, crossAxisCoord, max2);
761
+ }
762
+ const limitedCoords = limiter.fn({
763
+ ...state,
764
+ [mainAxis]: mainAxisCoord,
765
+ [crossAxis]: crossAxisCoord
766
+ });
767
+ return {
768
+ ...limitedCoords,
769
+ data: {
770
+ x: limitedCoords.x - x,
771
+ y: limitedCoords.y - y,
772
+ enabled: {
773
+ [mainAxis]: checkMainAxis,
774
+ [crossAxis]: checkCrossAxis
775
+ }
776
+ }
777
+ };
778
+ }
779
+ };
780
+ };
781
+ const limitShift = function(options) {
782
+ if (options === void 0) {
783
+ options = {};
784
+ }
785
+ return {
786
+ options,
787
+ fn(state) {
788
+ const {
789
+ x,
790
+ y,
791
+ placement,
792
+ rects,
793
+ middlewareData
794
+ } = state;
795
+ const {
796
+ offset: offset2 = 0,
797
+ mainAxis: checkMainAxis = true,
798
+ crossAxis: checkCrossAxis = true
799
+ } = evaluate(options, state);
800
+ const coords = {
801
+ x,
802
+ y
803
+ };
804
+ const crossAxis = getSideAxis(placement);
805
+ const mainAxis = getOppositeAxis(crossAxis);
806
+ let mainAxisCoord = coords[mainAxis];
807
+ let crossAxisCoord = coords[crossAxis];
808
+ const rawOffset = evaluate(offset2, state);
809
+ const computedOffset = typeof rawOffset === "number" ? {
810
+ mainAxis: rawOffset,
811
+ crossAxis: 0
812
+ } : {
813
+ mainAxis: 0,
814
+ crossAxis: 0,
815
+ ...rawOffset
816
+ };
817
+ if (checkMainAxis) {
818
+ const len = mainAxis === "y" ? "height" : "width";
819
+ const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;
820
+ const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;
821
+ if (mainAxisCoord < limitMin) {
822
+ mainAxisCoord = limitMin;
823
+ } else if (mainAxisCoord > limitMax) {
824
+ mainAxisCoord = limitMax;
825
+ }
826
+ }
827
+ if (checkCrossAxis) {
828
+ var _middlewareData$offse, _middlewareData$offse2;
829
+ const len = mainAxis === "y" ? "width" : "height";
830
+ const isOriginSide = originSides.has(getSide(placement));
831
+ const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);
832
+ const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);
833
+ if (crossAxisCoord < limitMin) {
834
+ crossAxisCoord = limitMin;
835
+ } else if (crossAxisCoord > limitMax) {
836
+ crossAxisCoord = limitMax;
837
+ }
838
+ }
839
+ return {
840
+ [mainAxis]: mainAxisCoord,
841
+ [crossAxis]: crossAxisCoord
842
+ };
843
+ }
844
+ };
845
+ };
846
+ const size = function(options) {
847
+ if (options === void 0) {
848
+ options = {};
849
+ }
850
+ return {
851
+ name: "size",
852
+ options,
853
+ async fn(state) {
854
+ var _state$middlewareData, _state$middlewareData2;
855
+ const {
856
+ placement,
857
+ rects,
858
+ platform,
859
+ elements
860
+ } = state;
861
+ const {
862
+ apply = () => {
863
+ },
864
+ ...detectOverflowOptions
865
+ } = evaluate(options, state);
866
+ const overflow = await detectOverflow(state, detectOverflowOptions);
867
+ const side = getSide(placement);
868
+ const alignment = getAlignment(placement);
869
+ const isYAxis = getSideAxis(placement) === "y";
870
+ const {
871
+ width,
872
+ height
873
+ } = rects.floating;
874
+ let heightSide;
875
+ let widthSide;
876
+ if (side === "top" || side === "bottom") {
877
+ heightSide = side;
878
+ widthSide = alignment === (await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)) ? "start" : "end") ? "left" : "right";
879
+ } else {
880
+ widthSide = side;
881
+ heightSide = alignment === "end" ? "top" : "bottom";
882
+ }
883
+ const maximumClippingHeight = height - overflow.top - overflow.bottom;
884
+ const maximumClippingWidth = width - overflow.left - overflow.right;
885
+ const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
886
+ const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
887
+ const noShift = !state.middlewareData.shift;
888
+ let availableHeight = overflowAvailableHeight;
889
+ let availableWidth = overflowAvailableWidth;
890
+ if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
891
+ availableWidth = maximumClippingWidth;
892
+ }
893
+ if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
894
+ availableHeight = maximumClippingHeight;
895
+ }
896
+ if (noShift && !alignment) {
897
+ const xMin = max(overflow.left, 0);
898
+ const xMax = max(overflow.right, 0);
899
+ const yMin = max(overflow.top, 0);
900
+ const yMax = max(overflow.bottom, 0);
901
+ if (isYAxis) {
902
+ availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
903
+ } else {
904
+ availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
905
+ }
906
+ }
907
+ await apply({
908
+ ...state,
909
+ availableWidth,
910
+ availableHeight
911
+ });
912
+ const nextDimensions = await platform.getDimensions(elements.floating);
913
+ if (width !== nextDimensions.width || height !== nextDimensions.height) {
914
+ return {
915
+ reset: {
916
+ rects: true
917
+ }
918
+ };
919
+ }
920
+ return {};
921
+ }
922
+ };
923
+ };
924
+ export {
925
+ arrow,
926
+ autoPlacement,
927
+ computePosition,
928
+ detectOverflow,
929
+ flip,
930
+ hide,
931
+ inline,
932
+ limitShift,
933
+ offset,
934
+ rectToClientRect,
935
+ shift,
936
+ size
937
+ };
938
+ //# sourceMappingURL=floating-ui.core.es.js.map