@aquera/nile-elements 1.9.5 → 1.9.7

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 (565) hide show
  1. package/README.md +9 -0
  2. package/dist/index-178e1e57.cjs.js +2 -0
  3. package/dist/index-178e1e57.cjs.js.map +1 -0
  4. package/dist/index-1faa963c.esm.js +1 -0
  5. package/dist/index-249de90a.esm.js +1 -0
  6. package/dist/index-353172ed.esm.js +1 -0
  7. package/dist/index-6f3fa4ab.esm.js +1 -0
  8. package/dist/index-89c520e9.cjs.js +5 -0
  9. package/dist/index-89c520e9.cjs.js.map +1 -0
  10. package/dist/index-920675c4.esm.js +1 -0
  11. package/dist/index-b387a9f4.cjs.js +2 -0
  12. package/dist/index-b387a9f4.cjs.js.map +1 -0
  13. package/dist/index-cc1385e0.cjs.js +2 -0
  14. package/dist/index-cc1385e0.cjs.js.map +1 -0
  15. package/dist/index-dedc38a6.esm.js +1 -0
  16. package/dist/index-df196058.cjs.js +2 -0
  17. package/dist/index-df196058.cjs.js.map +1 -0
  18. package/dist/index-f956f56d.cjs.js +7 -0
  19. package/dist/index-f956f56d.cjs.js.map +1 -0
  20. package/dist/index.cjs.js +1 -1
  21. package/dist/index.esm.js +1 -1
  22. package/dist/index.js +3802 -664
  23. package/dist/internal/glyph.cjs.js +2 -0
  24. package/dist/internal/glyph.cjs.js.map +1 -0
  25. package/dist/internal/glyph.esm.js +5 -0
  26. package/dist/nile-auto-complete/index.cjs.js +1 -1
  27. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
  28. package/dist/nile-auto-complete/portal-manager.cjs.js +1 -1
  29. package/dist/nile-auto-complete/portal-utils.cjs.js +1 -1
  30. package/dist/nile-chip/nile-chip.css.cjs.js +1 -1
  31. package/dist/nile-chip/nile-chip.css.cjs.js.map +1 -1
  32. package/dist/nile-chip/nile-chip.css.esm.js +8 -1
  33. package/dist/nile-code-editor/extensionSetup.cjs.js +7 -7
  34. package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
  35. package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
  36. package/dist/nile-code-editor/index.cjs.js +1 -1
  37. package/dist/nile-code-editor/index.esm.js +1 -1
  38. package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
  39. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  40. package/dist/nile-code-editor/nile-code-editor.esm.js +4 -4
  41. package/dist/nile-color-picker/index.cjs.js +1 -1
  42. package/dist/nile-color-picker/nile-color-picker.cjs.js +1 -1
  43. package/dist/nile-combobox/index.cjs.js +1 -1
  44. package/dist/nile-combobox/index.esm.js +1 -1
  45. package/dist/nile-combobox/nile-combobox.cjs.js +1 -1
  46. package/dist/nile-combobox/nile-combobox.esm.js +1 -1
  47. package/dist/nile-combobox/portal-manager.cjs.js +1 -1
  48. package/dist/nile-context-menu/index.cjs.js +1 -1
  49. package/dist/nile-context-menu/nile-context-menu.cjs.js +1 -1
  50. package/dist/nile-context-submenu/index.cjs.js +1 -1
  51. package/dist/nile-context-submenu/nile-context-submenu.cjs.js +1 -1
  52. package/dist/nile-detail/index.cjs.js +1 -1
  53. package/dist/nile-detail/index.esm.js +1 -1
  54. package/dist/nile-detail/nile-detail.cjs.js +1 -1
  55. package/dist/nile-detail/nile-detail.esm.js +1 -1
  56. package/dist/nile-dropdown/index.cjs.js +1 -1
  57. package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
  58. package/dist/nile-dropdown/portal-manager.cjs.js +1 -1
  59. package/dist/nile-file-upload/index.cjs.js +1 -1
  60. package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
  61. package/dist/nile-file-upload/nile-file-upload.template.cjs.js +1 -1
  62. package/dist/nile-floating-panel/index.cjs.js +1 -1
  63. package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
  64. package/dist/nile-hero/nile-hero.cjs.js +1 -1
  65. package/dist/nile-hero/nile-hero.cjs.js.map +1 -1
  66. package/dist/nile-hero/nile-hero.css.cjs.js +1 -1
  67. package/dist/nile-hero/nile-hero.css.cjs.js.map +1 -1
  68. package/dist/nile-hero/nile-hero.css.esm.js +14 -14
  69. package/dist/nile-hero/nile-hero.esm.js +1 -1
  70. package/dist/nile-hero-header/nile-hero-header.cjs.js +1 -1
  71. package/dist/nile-hero-header/nile-hero-header.cjs.js.map +1 -1
  72. package/dist/nile-hero-header/nile-hero-header.css.cjs.js +1 -1
  73. package/dist/nile-hero-header/nile-hero-header.css.cjs.js.map +1 -1
  74. package/dist/nile-hero-header/nile-hero-header.css.esm.js +11 -11
  75. package/dist/nile-hero-header/nile-hero-header.esm.js +3 -3
  76. package/dist/nile-lite-tooltip/index.cjs.js +1 -1
  77. package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js +1 -1
  78. package/dist/nile-markdown-editor/index.cjs.js +1 -1
  79. package/dist/nile-markdown-editor/nile-markdown-editor.cjs.js +1 -1
  80. package/dist/nile-popover/index.cjs.js +1 -1
  81. package/dist/nile-popover/nile-popover.cjs.js +1 -1
  82. package/dist/nile-popover/portal-manager.cjs.js +1 -1
  83. package/dist/nile-popup/index.cjs.js +1 -1
  84. package/dist/nile-popup/nile-popup.cjs.js +1 -1
  85. package/dist/nile-rich-text-editor/index.cjs.js +1 -1
  86. package/dist/nile-rich-text-editor/index.esm.js +1 -1
  87. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
  88. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
  89. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
  90. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
  91. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +70 -0
  92. package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
  93. package/dist/nile-rich-text-editor/nile-rte-image.cjs.js +3 -0
  94. package/dist/nile-rich-text-editor/nile-rte-image.cjs.js.map +1 -0
  95. package/dist/nile-rich-text-editor/nile-rte-image.esm.js +96 -0
  96. package/dist/nile-select/index.cjs.js +1 -1
  97. package/dist/nile-select/nile-select.cjs.js +1 -1
  98. package/dist/nile-select/portal-manager.cjs.js +1 -1
  99. package/dist/nile-side-bar-action/index.cjs.js +1 -1
  100. package/dist/nile-side-bar-action/nile-side-bar-action.cjs.js +1 -1
  101. package/dist/nile-side-bar-action/portal-manager.cjs.js +1 -1
  102. package/dist/nile-tooltip/index.cjs.js +1 -1
  103. package/dist/nile-tooltip/nile-tooltip.cjs.js +1 -1
  104. package/dist/nile-virtual-select/index.cjs.js +1 -1
  105. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +1 -1
  106. package/dist/nile-virtual-select/portal-manager.cjs.js +1 -1
  107. package/dist/nile-virtual-select/renderer.cjs.js +1 -1
  108. package/dist/nile-wysiwyg-editor/emoji.cjs.js +2 -0
  109. package/dist/nile-wysiwyg-editor/emoji.cjs.js.map +1 -0
  110. package/dist/nile-wysiwyg-editor/emoji.esm.js +1 -0
  111. package/dist/nile-wysiwyg-editor/engine/commands.cjs.js +2 -0
  112. package/dist/nile-wysiwyg-editor/engine/commands.cjs.js.map +1 -0
  113. package/dist/nile-wysiwyg-editor/engine/commands.esm.js +1 -0
  114. package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js +2 -0
  115. package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js.map +1 -0
  116. package/dist/nile-wysiwyg-editor/engine/create-state.esm.js +1 -0
  117. package/dist/nile-wysiwyg-editor/engine/export.cjs.js +2 -0
  118. package/dist/nile-wysiwyg-editor/engine/export.cjs.js.map +1 -0
  119. package/dist/nile-wysiwyg-editor/engine/export.esm.js +1 -0
  120. package/dist/nile-wysiwyg-editor/engine/index.cjs.js +2 -0
  121. package/dist/nile-wysiwyg-editor/engine/index.cjs.js.map +1 -0
  122. package/dist/nile-wysiwyg-editor/engine/index.esm.js +1 -0
  123. package/dist/nile-wysiwyg-editor/engine/inputrules.cjs.js +2 -0
  124. package/dist/nile-wysiwyg-editor/engine/inputrules.cjs.js.map +1 -0
  125. package/dist/nile-wysiwyg-editor/engine/inputrules.esm.js +1 -0
  126. package/dist/nile-wysiwyg-editor/engine/keymap.cjs.js +2 -0
  127. package/dist/nile-wysiwyg-editor/engine/keymap.cjs.js.map +1 -0
  128. package/dist/nile-wysiwyg-editor/engine/keymap.esm.js +1 -0
  129. package/dist/nile-wysiwyg-editor/engine/markdown-parse.cjs.js +2 -0
  130. package/dist/nile-wysiwyg-editor/engine/markdown-parse.cjs.js.map +1 -0
  131. package/dist/nile-wysiwyg-editor/engine/markdown-parse.esm.js +1 -0
  132. package/dist/nile-wysiwyg-editor/engine/markdown.cjs.js +2 -0
  133. package/dist/nile-wysiwyg-editor/engine/markdown.cjs.js.map +1 -0
  134. package/dist/nile-wysiwyg-editor/engine/markdown.esm.js +1 -0
  135. package/dist/nile-wysiwyg-editor/engine/office-paste.cjs.js +2 -0
  136. package/dist/nile-wysiwyg-editor/engine/office-paste.cjs.js.map +1 -0
  137. package/dist/nile-wysiwyg-editor/engine/office-paste.esm.js +1 -0
  138. package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js +2 -0
  139. package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js.map +1 -0
  140. package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.esm.js +1 -0
  141. package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js +2 -0
  142. package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js.map +1 -0
  143. package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.esm.js +1 -0
  144. package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js +2 -0
  145. package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js.map +1 -0
  146. package/dist/nile-wysiwyg-editor/engine/plugins/embeds.esm.js +1 -0
  147. package/dist/nile-wysiwyg-editor/engine/plugins/find-replace.cjs.js +2 -0
  148. package/dist/nile-wysiwyg-editor/engine/plugins/find-replace.cjs.js.map +1 -0
  149. package/dist/nile-wysiwyg-editor/engine/plugins/find-replace.esm.js +1 -0
  150. package/dist/nile-wysiwyg-editor/engine/plugins/format-painter.cjs.js +2 -0
  151. package/dist/nile-wysiwyg-editor/engine/plugins/format-painter.cjs.js.map +1 -0
  152. package/dist/nile-wysiwyg-editor/engine/plugins/format-painter.esm.js +1 -0
  153. package/dist/nile-wysiwyg-editor/engine/plugins/image-view.cjs.js +2 -0
  154. package/dist/nile-wysiwyg-editor/engine/plugins/image-view.cjs.js.map +1 -0
  155. package/dist/nile-wysiwyg-editor/engine/plugins/image-view.esm.js +1 -0
  156. package/dist/nile-wysiwyg-editor/engine/plugins/image.cjs.js +2 -0
  157. package/dist/nile-wysiwyg-editor/engine/plugins/image.cjs.js.map +1 -0
  158. package/dist/nile-wysiwyg-editor/engine/plugins/image.esm.js +1 -0
  159. package/dist/nile-wysiwyg-editor/engine/plugins/link.cjs.js +2 -0
  160. package/dist/nile-wysiwyg-editor/engine/plugins/link.cjs.js.map +1 -0
  161. package/dist/nile-wysiwyg-editor/engine/plugins/link.esm.js +1 -0
  162. package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js +2 -0
  163. package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js.map +1 -0
  164. package/dist/nile-wysiwyg-editor/engine/plugins/math-view.esm.js +1 -0
  165. package/dist/nile-wysiwyg-editor/engine/plugins/max-length.cjs.js +2 -0
  166. package/dist/nile-wysiwyg-editor/engine/plugins/max-length.cjs.js.map +1 -0
  167. package/dist/nile-wysiwyg-editor/engine/plugins/max-length.esm.js +1 -0
  168. package/dist/nile-wysiwyg-editor/engine/plugins/paste.cjs.js +2 -0
  169. package/dist/nile-wysiwyg-editor/engine/plugins/paste.cjs.js.map +1 -0
  170. package/dist/nile-wysiwyg-editor/engine/plugins/paste.esm.js +1 -0
  171. package/dist/nile-wysiwyg-editor/engine/plugins/placeholder.cjs.js +2 -0
  172. package/dist/nile-wysiwyg-editor/engine/plugins/placeholder.cjs.js.map +1 -0
  173. package/dist/nile-wysiwyg-editor/engine/plugins/placeholder.esm.js +1 -0
  174. package/dist/nile-wysiwyg-editor/engine/plugins/single-line.cjs.js +2 -0
  175. package/dist/nile-wysiwyg-editor/engine/plugins/single-line.cjs.js.map +1 -0
  176. package/dist/nile-wysiwyg-editor/engine/plugins/single-line.esm.js +1 -0
  177. package/dist/nile-wysiwyg-editor/engine/plugins/suggestions.cjs.js +2 -0
  178. package/dist/nile-wysiwyg-editor/engine/plugins/suggestions.cjs.js.map +1 -0
  179. package/dist/nile-wysiwyg-editor/engine/plugins/suggestions.esm.js +1 -0
  180. package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js +2 -0
  181. package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js.map +1 -0
  182. package/dist/nile-wysiwyg-editor/engine/plugins/tables.esm.js +1 -0
  183. package/dist/nile-wysiwyg-editor/engine/plugins/task-list.cjs.js +2 -0
  184. package/dist/nile-wysiwyg-editor/engine/plugins/task-list.cjs.js.map +1 -0
  185. package/dist/nile-wysiwyg-editor/engine/plugins/task-list.esm.js +1 -0
  186. package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js +2 -0
  187. package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js.map +1 -0
  188. package/dist/nile-wysiwyg-editor/engine/sanitize.esm.js +1 -0
  189. package/dist/nile-wysiwyg-editor/engine/schema.cjs.js +2 -0
  190. package/dist/nile-wysiwyg-editor/engine/schema.cjs.js.map +1 -0
  191. package/dist/nile-wysiwyg-editor/engine/schema.esm.js +1 -0
  192. package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js +2 -0
  193. package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js.map +1 -0
  194. package/dist/nile-wysiwyg-editor/engine/selection-state.esm.js +1 -0
  195. package/dist/nile-wysiwyg-editor/engine/serializer.cjs.js +2 -0
  196. package/dist/nile-wysiwyg-editor/engine/serializer.cjs.js.map +1 -0
  197. package/dist/nile-wysiwyg-editor/engine/serializer.esm.js +1 -0
  198. package/dist/nile-wysiwyg-editor/index.cjs.js +2 -0
  199. package/dist/nile-wysiwyg-editor/index.cjs.js.map +1 -0
  200. package/dist/nile-wysiwyg-editor/index.esm.js +1 -0
  201. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js +2 -0
  202. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js.map +1 -0
  203. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js +2 -0
  204. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js.map +1 -0
  205. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.esm.js +780 -0
  206. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.esm.js +97 -0
  207. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.cjs.js +2 -0
  208. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.cjs.js.map +1 -0
  209. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.esm.js +1 -0
  210. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js +2 -0
  211. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js.map +1 -0
  212. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js +2 -0
  213. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js.map +1 -0
  214. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.esm.js +244 -0
  215. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.esm.js +137 -0
  216. package/dist/nile-wysiwyg-editor/types.cjs.js +2 -0
  217. package/dist/nile-wysiwyg-editor/types.cjs.js.map +1 -0
  218. package/dist/nile-wysiwyg-editor/types.esm.js +1 -0
  219. package/dist/nile-wysiwyg-editor/ui/bookmark-panel.cjs.js +2 -0
  220. package/dist/nile-wysiwyg-editor/ui/bookmark-panel.cjs.js.map +1 -0
  221. package/dist/nile-wysiwyg-editor/ui/bookmark-panel.esm.js +97 -0
  222. package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js +2 -0
  223. package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js.map +1 -0
  224. package/dist/nile-wysiwyg-editor/ui/bubble-menu.esm.js +67 -0
  225. package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js +2 -0
  226. package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js.map +1 -0
  227. package/dist/nile-wysiwyg-editor/ui/code-block-menu.esm.js +65 -0
  228. package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js +2 -0
  229. package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js.map +1 -0
  230. package/dist/nile-wysiwyg-editor/ui/embed-menu.esm.js +64 -0
  231. package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js +2 -0
  232. package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js.map +1 -0
  233. package/dist/nile-wysiwyg-editor/ui/embed-panel.esm.js +68 -0
  234. package/dist/nile-wysiwyg-editor/ui/emoji-picker.cjs.js +2 -0
  235. package/dist/nile-wysiwyg-editor/ui/emoji-picker.cjs.js.map +1 -0
  236. package/dist/nile-wysiwyg-editor/ui/emoji-picker.esm.js +96 -0
  237. package/dist/nile-wysiwyg-editor/ui/find-replace.cjs.js +2 -0
  238. package/dist/nile-wysiwyg-editor/ui/find-replace.cjs.js.map +1 -0
  239. package/dist/nile-wysiwyg-editor/ui/find-replace.esm.js +112 -0
  240. package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js +2 -0
  241. package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js.map +1 -0
  242. package/dist/nile-wysiwyg-editor/ui/image-menu.esm.js +64 -0
  243. package/dist/nile-wysiwyg-editor/ui/image-panel.cjs.js +2 -0
  244. package/dist/nile-wysiwyg-editor/ui/image-panel.cjs.js.map +1 -0
  245. package/dist/nile-wysiwyg-editor/ui/image-panel.esm.js +171 -0
  246. package/dist/nile-wysiwyg-editor/ui/insert-menu.cjs.js +2 -0
  247. package/dist/nile-wysiwyg-editor/ui/insert-menu.cjs.js.map +1 -0
  248. package/dist/nile-wysiwyg-editor/ui/insert-menu.esm.js +90 -0
  249. package/dist/nile-wysiwyg-editor/ui/link-editor.cjs.js +2 -0
  250. package/dist/nile-wysiwyg-editor/ui/link-editor.cjs.js.map +1 -0
  251. package/dist/nile-wysiwyg-editor/ui/link-editor.esm.js +114 -0
  252. package/dist/nile-wysiwyg-editor/ui/markdown-panel.cjs.js +2 -0
  253. package/dist/nile-wysiwyg-editor/ui/markdown-panel.cjs.js.map +1 -0
  254. package/dist/nile-wysiwyg-editor/ui/markdown-panel.esm.js +80 -0
  255. package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js +2 -0
  256. package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js.map +1 -0
  257. package/dist/nile-wysiwyg-editor/ui/math-panel.esm.js +92 -0
  258. package/dist/nile-wysiwyg-editor/ui/shortcut-help.cjs.js +2 -0
  259. package/dist/nile-wysiwyg-editor/ui/shortcut-help.cjs.js.map +1 -0
  260. package/dist/nile-wysiwyg-editor/ui/shortcut-help.esm.js +147 -0
  261. package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js +2 -0
  262. package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js.map +1 -0
  263. package/dist/nile-wysiwyg-editor/ui/source-view.esm.js +79 -0
  264. package/dist/nile-wysiwyg-editor/ui/special-chars.cjs.js +2 -0
  265. package/dist/nile-wysiwyg-editor/ui/special-chars.cjs.js.map +1 -0
  266. package/dist/nile-wysiwyg-editor/ui/special-chars.esm.js +96 -0
  267. package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js +2 -0
  268. package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js.map +1 -0
  269. package/dist/nile-wysiwyg-editor/ui/suggest-list.esm.js +67 -0
  270. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js +2 -0
  271. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js.map +1 -0
  272. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.esm.js +100 -0
  273. package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js +2 -0
  274. package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js.map +1 -0
  275. package/dist/nile-wysiwyg-editor/ui/table-menu.esm.js +58 -0
  276. package/dist/src/index.d.ts +24 -0
  277. package/dist/src/index.js +19 -0
  278. package/dist/src/index.js.map +1 -1
  279. package/dist/src/internal/glyph.d.ts +6 -0
  280. package/dist/src/internal/glyph.js +13 -0
  281. package/dist/src/internal/glyph.js.map +1 -0
  282. package/dist/src/nile-chip/nile-chip.css.js +8 -1
  283. package/dist/src/nile-chip/nile-chip.css.js.map +1 -1
  284. package/dist/src/nile-code-editor/nile-code-editor.js +3 -3
  285. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  286. package/dist/src/nile-hero/nile-hero.css.js +12 -12
  287. package/dist/src/nile-hero/nile-hero.css.js.map +1 -1
  288. package/dist/src/nile-hero/nile-hero.js +1 -1
  289. package/dist/src/nile-hero/nile-hero.js.map +1 -1
  290. package/dist/src/nile-hero-header/nile-hero-header.css.js +9 -9
  291. package/dist/src/nile-hero-header/nile-hero-header.css.js.map +1 -1
  292. package/dist/src/nile-hero-header/nile-hero-header.js +1 -1
  293. package/dist/src/nile-hero-header/nile-hero-header.js.map +1 -1
  294. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +70 -0
  295. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
  296. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +3 -0
  297. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +81 -3
  298. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
  299. package/dist/src/nile-rich-text-editor/nile-rte-image.d.ts +87 -0
  300. package/dist/src/nile-rich-text-editor/nile-rte-image.js +1073 -0
  301. package/dist/src/nile-rich-text-editor/nile-rte-image.js.map +1 -0
  302. package/dist/src/nile-wysiwyg-editor/emoji.d.ts +5 -0
  303. package/dist/src/nile-wysiwyg-editor/emoji.js +138 -0
  304. package/dist/src/nile-wysiwyg-editor/emoji.js.map +1 -0
  305. package/dist/src/nile-wysiwyg-editor/engine/commands.d.ts +69 -0
  306. package/dist/src/nile-wysiwyg-editor/engine/commands.js +863 -0
  307. package/dist/src/nile-wysiwyg-editor/engine/commands.js.map +1 -0
  308. package/dist/src/nile-wysiwyg-editor/engine/create-state.d.ts +35 -0
  309. package/dist/src/nile-wysiwyg-editor/engine/create-state.js +67 -0
  310. package/dist/src/nile-wysiwyg-editor/engine/create-state.js.map +1 -0
  311. package/dist/src/nile-wysiwyg-editor/engine/export.d.ts +38 -0
  312. package/dist/src/nile-wysiwyg-editor/engine/export.js +208 -0
  313. package/dist/src/nile-wysiwyg-editor/engine/export.js.map +1 -0
  314. package/dist/src/nile-wysiwyg-editor/engine/export.test.d.ts +1 -0
  315. package/dist/src/nile-wysiwyg-editor/engine/export.test.js +96 -0
  316. package/dist/src/nile-wysiwyg-editor/engine/export.test.js.map +1 -0
  317. package/dist/src/nile-wysiwyg-editor/engine/index.d.ts +37 -0
  318. package/dist/src/nile-wysiwyg-editor/engine/index.js +29 -0
  319. package/dist/src/nile-wysiwyg-editor/engine/index.js.map +1 -0
  320. package/dist/src/nile-wysiwyg-editor/engine/inputrules.d.ts +12 -0
  321. package/dist/src/nile-wysiwyg-editor/engine/inputrules.js +144 -0
  322. package/dist/src/nile-wysiwyg-editor/engine/inputrules.js.map +1 -0
  323. package/dist/src/nile-wysiwyg-editor/engine/keymap.d.ts +15 -0
  324. package/dist/src/nile-wysiwyg-editor/engine/keymap.js +94 -0
  325. package/dist/src/nile-wysiwyg-editor/engine/keymap.js.map +1 -0
  326. package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.d.ts +22 -0
  327. package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.js +287 -0
  328. package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.js.map +1 -0
  329. package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.test.d.ts +1 -0
  330. package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.test.js +106 -0
  331. package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.test.js.map +1 -0
  332. package/dist/src/nile-wysiwyg-editor/engine/markdown.d.ts +10 -0
  333. package/dist/src/nile-wysiwyg-editor/engine/markdown.js +162 -0
  334. package/dist/src/nile-wysiwyg-editor/engine/markdown.js.map +1 -0
  335. package/dist/src/nile-wysiwyg-editor/engine/office-paste.d.ts +13 -0
  336. package/dist/src/nile-wysiwyg-editor/engine/office-paste.js +182 -0
  337. package/dist/src/nile-wysiwyg-editor/engine/office-paste.js.map +1 -0
  338. package/dist/src/nile-wysiwyg-editor/engine/plugins/code-highlight.d.ts +10 -0
  339. package/dist/src/nile-wysiwyg-editor/engine/plugins/code-highlight.js +165 -0
  340. package/dist/src/nile-wysiwyg-editor/engine/plugins/code-highlight.js.map +1 -0
  341. package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.d.ts +17 -0
  342. package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js +69 -0
  343. package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js.map +1 -0
  344. package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.d.ts +17 -0
  345. package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js +96 -0
  346. package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js.map +1 -0
  347. package/dist/src/nile-wysiwyg-editor/engine/plugins/find-replace.d.ts +26 -0
  348. package/dist/src/nile-wysiwyg-editor/engine/plugins/find-replace.js +123 -0
  349. package/dist/src/nile-wysiwyg-editor/engine/plugins/find-replace.js.map +1 -0
  350. package/dist/src/nile-wysiwyg-editor/engine/plugins/format-painter.d.ts +28 -0
  351. package/dist/src/nile-wysiwyg-editor/engine/plugins/format-painter.js +72 -0
  352. package/dist/src/nile-wysiwyg-editor/engine/plugins/format-painter.js.map +1 -0
  353. package/dist/src/nile-wysiwyg-editor/engine/plugins/image-view.d.ts +41 -0
  354. package/dist/src/nile-wysiwyg-editor/engine/plugins/image-view.js +176 -0
  355. package/dist/src/nile-wysiwyg-editor/engine/plugins/image-view.js.map +1 -0
  356. package/dist/src/nile-wysiwyg-editor/engine/plugins/image.d.ts +15 -0
  357. package/dist/src/nile-wysiwyg-editor/engine/plugins/image.js +64 -0
  358. package/dist/src/nile-wysiwyg-editor/engine/plugins/image.js.map +1 -0
  359. package/dist/src/nile-wysiwyg-editor/engine/plugins/link.d.ts +11 -0
  360. package/dist/src/nile-wysiwyg-editor/engine/plugins/link.js +42 -0
  361. package/dist/src/nile-wysiwyg-editor/engine/plugins/link.js.map +1 -0
  362. package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.d.ts +18 -0
  363. package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js +46 -0
  364. package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js.map +1 -0
  365. package/dist/src/nile-wysiwyg-editor/engine/plugins/max-length.d.ts +7 -0
  366. package/dist/src/nile-wysiwyg-editor/engine/plugins/max-length.js +26 -0
  367. package/dist/src/nile-wysiwyg-editor/engine/plugins/max-length.js.map +1 -0
  368. package/dist/src/nile-wysiwyg-editor/engine/plugins/paste.d.ts +31 -0
  369. package/dist/src/nile-wysiwyg-editor/engine/plugins/paste.js +55 -0
  370. package/dist/src/nile-wysiwyg-editor/engine/plugins/paste.js.map +1 -0
  371. package/dist/src/nile-wysiwyg-editor/engine/plugins/placeholder.d.ts +7 -0
  372. package/dist/src/nile-wysiwyg-editor/engine/plugins/placeholder.js +25 -0
  373. package/dist/src/nile-wysiwyg-editor/engine/plugins/placeholder.js.map +1 -0
  374. package/dist/src/nile-wysiwyg-editor/engine/plugins/single-line.d.ts +10 -0
  375. package/dist/src/nile-wysiwyg-editor/engine/plugins/single-line.js +48 -0
  376. package/dist/src/nile-wysiwyg-editor/engine/plugins/single-line.js.map +1 -0
  377. package/dist/src/nile-wysiwyg-editor/engine/plugins/suggestions.d.ts +29 -0
  378. package/dist/src/nile-wysiwyg-editor/engine/plugins/suggestions.js +87 -0
  379. package/dist/src/nile-wysiwyg-editor/engine/plugins/suggestions.js.map +1 -0
  380. package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.d.ts +8 -0
  381. package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js +11 -0
  382. package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js.map +1 -0
  383. package/dist/src/nile-wysiwyg-editor/engine/plugins/task-list.d.ts +16 -0
  384. package/dist/src/nile-wysiwyg-editor/engine/plugins/task-list.js +49 -0
  385. package/dist/src/nile-wysiwyg-editor/engine/plugins/task-list.js.map +1 -0
  386. package/dist/src/nile-wysiwyg-editor/engine/pm.test.d.ts +1 -0
  387. package/dist/src/nile-wysiwyg-editor/engine/pm.test.js +883 -0
  388. package/dist/src/nile-wysiwyg-editor/engine/pm.test.js.map +1 -0
  389. package/dist/src/nile-wysiwyg-editor/engine/productivity.test.d.ts +1 -0
  390. package/dist/src/nile-wysiwyg-editor/engine/productivity.test.js +129 -0
  391. package/dist/src/nile-wysiwyg-editor/engine/productivity.test.js.map +1 -0
  392. package/dist/src/nile-wysiwyg-editor/engine/sanitize.d.ts +13 -0
  393. package/dist/src/nile-wysiwyg-editor/engine/sanitize.js +155 -0
  394. package/dist/src/nile-wysiwyg-editor/engine/sanitize.js.map +1 -0
  395. package/dist/src/nile-wysiwyg-editor/engine/schema.d.ts +20 -0
  396. package/dist/src/nile-wysiwyg-editor/engine/schema.js +823 -0
  397. package/dist/src/nile-wysiwyg-editor/engine/schema.js.map +1 -0
  398. package/dist/src/nile-wysiwyg-editor/engine/selection-state.d.ts +70 -0
  399. package/dist/src/nile-wysiwyg-editor/engine/selection-state.js +138 -0
  400. package/dist/src/nile-wysiwyg-editor/engine/selection-state.js.map +1 -0
  401. package/dist/src/nile-wysiwyg-editor/engine/serializer.d.ts +18 -0
  402. package/dist/src/nile-wysiwyg-editor/engine/serializer.js +63 -0
  403. package/dist/src/nile-wysiwyg-editor/engine/serializer.js.map +1 -0
  404. package/dist/src/nile-wysiwyg-editor/index.d.ts +3 -0
  405. package/dist/src/nile-wysiwyg-editor/index.js +3 -0
  406. package/dist/src/nile-wysiwyg-editor/index.js.map +1 -0
  407. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.d.ts +1 -0
  408. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js +782 -0
  409. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js.map +1 -0
  410. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.d.ts +364 -0
  411. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js +2038 -0
  412. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js.map +1 -0
  413. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.d.ts +1 -0
  414. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js +636 -0
  415. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js.map +1 -0
  416. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.d.ts +1 -0
  417. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js +2 -0
  418. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js.map +1 -0
  419. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.d.ts +6 -0
  420. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js +251 -0
  421. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js.map +1 -0
  422. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.d.ts +41 -0
  423. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js +700 -0
  424. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js.map +1 -0
  425. package/dist/src/nile-wysiwyg-editor/types.d.ts +49 -0
  426. package/dist/src/nile-wysiwyg-editor/types.js +8 -0
  427. package/dist/src/nile-wysiwyg-editor/types.js.map +1 -0
  428. package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.d.ts +20 -0
  429. package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.js +159 -0
  430. package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.js.map +1 -0
  431. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.d.ts +21 -0
  432. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js +125 -0
  433. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js.map +1 -0
  434. package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.d.ts +18 -0
  435. package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.js +107 -0
  436. package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.js.map +1 -0
  437. package/dist/src/nile-wysiwyg-editor/ui/embed-menu.d.ts +19 -0
  438. package/dist/src/nile-wysiwyg-editor/ui/embed-menu.js +123 -0
  439. package/dist/src/nile-wysiwyg-editor/ui/embed-menu.js.map +1 -0
  440. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.d.ts +27 -0
  441. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js +146 -0
  442. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js.map +1 -0
  443. package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.d.ts +21 -0
  444. package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.js +154 -0
  445. package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.js.map +1 -0
  446. package/dist/src/nile-wysiwyg-editor/ui/find-replace.d.ts +26 -0
  447. package/dist/src/nile-wysiwyg-editor/ui/find-replace.js +178 -0
  448. package/dist/src/nile-wysiwyg-editor/ui/find-replace.js.map +1 -0
  449. package/dist/src/nile-wysiwyg-editor/ui/image-menu.d.ts +18 -0
  450. package/dist/src/nile-wysiwyg-editor/ui/image-menu.js +129 -0
  451. package/dist/src/nile-wysiwyg-editor/ui/image-menu.js.map +1 -0
  452. package/dist/src/nile-wysiwyg-editor/ui/image-panel.d.ts +56 -0
  453. package/dist/src/nile-wysiwyg-editor/ui/image-panel.js +349 -0
  454. package/dist/src/nile-wysiwyg-editor/ui/image-panel.js.map +1 -0
  455. package/dist/src/nile-wysiwyg-editor/ui/insert-menu.d.ts +25 -0
  456. package/dist/src/nile-wysiwyg-editor/ui/insert-menu.js +142 -0
  457. package/dist/src/nile-wysiwyg-editor/ui/insert-menu.js.map +1 -0
  458. package/dist/src/nile-wysiwyg-editor/ui/link-editor.d.ts +30 -0
  459. package/dist/src/nile-wysiwyg-editor/ui/link-editor.js +189 -0
  460. package/dist/src/nile-wysiwyg-editor/ui/link-editor.js.map +1 -0
  461. package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.d.ts +24 -0
  462. package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.js +144 -0
  463. package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.js.map +1 -0
  464. package/dist/src/nile-wysiwyg-editor/ui/math-panel.d.ts +31 -0
  465. package/dist/src/nile-wysiwyg-editor/ui/math-panel.js +172 -0
  466. package/dist/src/nile-wysiwyg-editor/ui/math-panel.js.map +1 -0
  467. package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.d.ts +30 -0
  468. package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.js +296 -0
  469. package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.js.map +1 -0
  470. package/dist/src/nile-wysiwyg-editor/ui/source-view.d.ts +19 -0
  471. package/dist/src/nile-wysiwyg-editor/ui/source-view.js +120 -0
  472. package/dist/src/nile-wysiwyg-editor/ui/source-view.js.map +1 -0
  473. package/dist/src/nile-wysiwyg-editor/ui/special-chars.d.ts +20 -0
  474. package/dist/src/nile-wysiwyg-editor/ui/special-chars.js +199 -0
  475. package/dist/src/nile-wysiwyg-editor/ui/special-chars.js.map +1 -0
  476. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.d.ts +31 -0
  477. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js +133 -0
  478. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js.map +1 -0
  479. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.d.ts +23 -0
  480. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js +177 -0
  481. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js.map +1 -0
  482. package/dist/src/nile-wysiwyg-editor/ui/table-menu.d.ts +16 -0
  483. package/dist/src/nile-wysiwyg-editor/ui/table-menu.js +101 -0
  484. package/dist/src/nile-wysiwyg-editor/ui/table-menu.js.map +1 -0
  485. package/dist/src/version.js +1 -1
  486. package/dist/src/version.js.map +1 -1
  487. package/dist/tsconfig.tsbuildinfo +1 -1
  488. package/package.json +18 -2
  489. package/src/index.ts +57 -1
  490. package/src/internal/glyph.ts +13 -0
  491. package/src/nile-chip/nile-chip.css.ts +8 -1
  492. package/src/nile-code-editor/nile-code-editor.ts +3 -3
  493. package/src/nile-hero/nile-hero.css.ts +12 -12
  494. package/src/nile-hero/nile-hero.ts +1 -1
  495. package/src/nile-hero-header/nile-hero-header.css.ts +9 -9
  496. package/src/nile-hero-header/nile-hero-header.ts +1 -1
  497. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +70 -0
  498. package/src/nile-rich-text-editor/nile-rich-text-editor.ts +89 -3
  499. package/src/nile-rich-text-editor/nile-rte-image.ts +1132 -0
  500. package/src/nile-wysiwyg-editor/emoji.ts +137 -0
  501. package/src/nile-wysiwyg-editor/engine/commands.ts +1035 -0
  502. package/src/nile-wysiwyg-editor/engine/create-state.ts +117 -0
  503. package/src/nile-wysiwyg-editor/engine/export.test.ts +113 -0
  504. package/src/nile-wysiwyg-editor/engine/export.ts +242 -0
  505. package/src/nile-wysiwyg-editor/engine/index.ts +69 -0
  506. package/src/nile-wysiwyg-editor/engine/inputrules.ts +169 -0
  507. package/src/nile-wysiwyg-editor/engine/keymap.ts +146 -0
  508. package/src/nile-wysiwyg-editor/engine/markdown-parse.test.ts +148 -0
  509. package/src/nile-wysiwyg-editor/engine/markdown-parse.ts +337 -0
  510. package/src/nile-wysiwyg-editor/engine/markdown.ts +165 -0
  511. package/src/nile-wysiwyg-editor/engine/office-paste.ts +199 -0
  512. package/src/nile-wysiwyg-editor/engine/plugins/code-highlight.ts +173 -0
  513. package/src/nile-wysiwyg-editor/engine/plugins/embed-view.ts +85 -0
  514. package/src/nile-wysiwyg-editor/engine/plugins/embeds.ts +99 -0
  515. package/src/nile-wysiwyg-editor/engine/plugins/find-replace.ts +155 -0
  516. package/src/nile-wysiwyg-editor/engine/plugins/format-painter.ts +80 -0
  517. package/src/nile-wysiwyg-editor/engine/plugins/image-view.ts +220 -0
  518. package/src/nile-wysiwyg-editor/engine/plugins/image.ts +80 -0
  519. package/src/nile-wysiwyg-editor/engine/plugins/link.ts +42 -0
  520. package/src/nile-wysiwyg-editor/engine/plugins/math-view.ts +56 -0
  521. package/src/nile-wysiwyg-editor/engine/plugins/max-length.ts +24 -0
  522. package/src/nile-wysiwyg-editor/engine/plugins/paste.ts +74 -0
  523. package/src/nile-wysiwyg-editor/engine/plugins/placeholder.ts +24 -0
  524. package/src/nile-wysiwyg-editor/engine/plugins/single-line.ts +47 -0
  525. package/src/nile-wysiwyg-editor/engine/plugins/suggestions.ts +110 -0
  526. package/src/nile-wysiwyg-editor/engine/plugins/tables.ts +12 -0
  527. package/src/nile-wysiwyg-editor/engine/plugins/task-list.ts +65 -0
  528. package/src/nile-wysiwyg-editor/engine/pm.test.ts +1088 -0
  529. package/src/nile-wysiwyg-editor/engine/productivity.test.ts +163 -0
  530. package/src/nile-wysiwyg-editor/engine/sanitize.ts +156 -0
  531. package/src/nile-wysiwyg-editor/engine/schema.ts +859 -0
  532. package/src/nile-wysiwyg-editor/engine/selection-state.ts +210 -0
  533. package/src/nile-wysiwyg-editor/engine/serializer.ts +78 -0
  534. package/src/nile-wysiwyg-editor/index.ts +3 -0
  535. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.ts +782 -0
  536. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.ts +750 -0
  537. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.ts +2155 -0
  538. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.ts +1 -0
  539. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.ts +251 -0
  540. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.ts +772 -0
  541. package/src/nile-wysiwyg-editor/types.ts +83 -0
  542. package/src/nile-wysiwyg-editor/ui/bookmark-panel.ts +155 -0
  543. package/src/nile-wysiwyg-editor/ui/bubble-menu.ts +135 -0
  544. package/src/nile-wysiwyg-editor/ui/code-block-menu.ts +105 -0
  545. package/src/nile-wysiwyg-editor/ui/embed-menu.ts +133 -0
  546. package/src/nile-wysiwyg-editor/ui/embed-panel.ts +143 -0
  547. package/src/nile-wysiwyg-editor/ui/emoji-picker.ts +152 -0
  548. package/src/nile-wysiwyg-editor/ui/find-replace.ts +174 -0
  549. package/src/nile-wysiwyg-editor/ui/image-menu.ts +140 -0
  550. package/src/nile-wysiwyg-editor/ui/image-panel.ts +337 -0
  551. package/src/nile-wysiwyg-editor/ui/insert-menu.ts +142 -0
  552. package/src/nile-wysiwyg-editor/ui/link-editor.ts +180 -0
  553. package/src/nile-wysiwyg-editor/ui/markdown-panel.ts +143 -0
  554. package/src/nile-wysiwyg-editor/ui/math-panel.ts +169 -0
  555. package/src/nile-wysiwyg-editor/ui/shortcut-help.ts +311 -0
  556. package/src/nile-wysiwyg-editor/ui/source-view.ts +119 -0
  557. package/src/nile-wysiwyg-editor/ui/special-chars.ts +209 -0
  558. package/src/nile-wysiwyg-editor/ui/suggest-list.ts +138 -0
  559. package/src/nile-wysiwyg-editor/ui/table-grid-picker.ts +173 -0
  560. package/src/nile-wysiwyg-editor/ui/table-menu.ts +109 -0
  561. package/vscode-html-custom-data.json +491 -1
  562. package/web-dev-server.config.mjs +6 -2
  563. package/dist/index-5fef1a0d.esm.js +0 -1
  564. package/dist/index-8f38fae3.cjs.js +0 -2
  565. package/dist/index-8f38fae3.cjs.js.map +0 -1
@@ -0,0 +1,109 @@
1
+ import { html, css, TemplateResult, CSSResultArray } from 'lit';
2
+ import { customElement, property } from 'lit/decorators.js';
3
+ import NileElement from '../../internal/nile-element';
4
+ import { renderGlyph } from '../../internal/glyph';
5
+ import type { CommandName } from '../engine/commands';
6
+
7
+ interface TableOp {
8
+ name: CommandName;
9
+ label: string;
10
+ icon: string;
11
+ }
12
+
13
+ const OPS: TableOp[] = [
14
+ { name: 'addRowBefore', label: 'Add row above', icon: 'ng-between-vertical-start' },
15
+ { name: 'addRowAfter', label: 'Add row below', icon: 'ng-between-vertical-end' },
16
+ { name: 'addColumnBefore', label: 'Add column left', icon: 'ng-between-horizontal-start' },
17
+ { name: 'addColumnAfter', label: 'Add column right', icon: 'ng-between-horizontal-end' },
18
+ { name: 'deleteRow', label: 'Delete row', icon: 'ng-rows-2' },
19
+ { name: 'deleteColumn', label: 'Delete column', icon: 'ng-columns-2' },
20
+ { name: 'mergeCells', label: 'Merge cells', icon: 'ng-table-cells-merge' },
21
+ { name: 'splitCell', label: 'Split cell', icon: 'ng-table-cells-split' },
22
+ { name: 'toggleHeaderRow', label: 'Toggle header row', icon: 'ng-panel-top' },
23
+ { name: 'toggleLayoutTable', label: 'Toggle layout table (borderless)', icon: 'ng-grid-2x2' },
24
+ { name: 'deleteTable', label: 'Delete table', icon: 'ng-trash-2' },
25
+ ];
26
+
27
+ /**
28
+ * Compact floating bar shown while the cursor is inside a table. The host
29
+ * positions it; operations bubble up as `wysiwyg-command` events.
30
+ */
31
+ @customElement('nile-wysiwyg-table-menu')
32
+ export class NileWysiwygTableMenu extends NileElement {
33
+ @property({ type: Boolean, reflect: true }) open = false;
34
+
35
+ public static get styles(): CSSResultArray {
36
+ return [
37
+ css`
38
+ :host {
39
+ font-family: var(
40
+ --nile-font-family-sans-serif,
41
+ var(--ng-font-family-body, system-ui, -apple-system, sans-serif)
42
+ );
43
+ position: absolute;
44
+ z-index: 15;
45
+ display: none;
46
+ }
47
+
48
+ :host([open]) {
49
+ display: block;
50
+ }
51
+
52
+ .menu {
53
+ display: flex;
54
+ gap: 2px;
55
+ padding: 4px;
56
+ background: var(--nile-wysiwyg-popover-bg, #ffffff);
57
+ border: 1px solid var(--nile-colors-neutral-400, #d0d5dd);
58
+ border-radius: 8px;
59
+ box-shadow: var(--nile-wysiwyg-popover-shadow, 0 4px 12px rgba(16, 24, 40, 0.12));
60
+ }
61
+
62
+ button {
63
+ display: inline-flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ min-width: 26px;
67
+ height: 26px;
68
+ padding: 0 4px;
69
+ border: none;
70
+ border-radius: 5px;
71
+ background: transparent;
72
+ cursor: pointer;
73
+ font-size: 12px;
74
+ font-weight: 600;
75
+ color: var(--nile-colors-neutral-700, #344054);
76
+ }
77
+
78
+ button:hover {
79
+ background: var(--nile-colors-neutral-100, #f2f4f7);
80
+ }
81
+ `,
82
+ ];
83
+ }
84
+
85
+ public render(): TemplateResult {
86
+ return html`
87
+ <div class="menu" part="table-menu" @mousedown=${(e: Event) => e.preventDefault()}>
88
+ ${OPS.map(
89
+ op => html`
90
+ <button
91
+ type="button"
92
+ title=${op.label}
93
+ aria-label=${op.label}
94
+ @click=${() => this.emit('wysiwyg-command', { name: op.name })}
95
+ >
96
+ ${renderGlyph(op.icon, 16)}
97
+ </button>
98
+ `
99
+ )}
100
+ </div>
101
+ `;
102
+ }
103
+ }
104
+
105
+ declare global {
106
+ interface HTMLElementTagNameMap {
107
+ 'nile-wysiwyg-table-menu': NileWysiwygTableMenu;
108
+ }
109
+ }
@@ -5606,7 +5606,7 @@
5606
5606
  },
5607
5607
  {
5608
5608
  "name": "nile-rich-text-editor",
5609
- "description": "Events:\n\n * `nile-change` {`CustomEvent<{ content: string; mention: any; }>`} - \n\nAttributes:\n\n * `value` {`string`} - \n\n * `noStyles` {`boolean`} - \n\n * `disabled` {`boolean`} - \n\n * `singlelineeditor` {`boolean`} - \n\n * `placeholder` {`string`} - \n\n * `mentions` - \n\n * `whitelist` {`string[]`} - \n\nProperties:\n\n * `value` {`string`} - \n\n * `noStyles` {`boolean`} - \n\n * `disabled` {`boolean`} - \n\n * `singleLineEditor` {`boolean`} - \n\n * `placeholder` {`string`} - \n\n * `mentions` - \n\n * `whitelist` {`string[]`} - \n\n * `content` {`string`} - \n\n * `editorEl` {`HTMLElement`} - \n\n * `previewEl` {`HTMLElement | null`} - \n\n * `toolbarEl` {`HTMLElement | null`} - \n\n * `lastRange` {`Range | null`} - \n\n * `buttonMap` {`Map<string, HTMLElement[]>`} - \n\n * `headingSelect` {`HTMLSelectElement | null`} - \n\n * `fontSelect` {`HTMLSelectElement | null`} - \n\n * `colorInput` {`HTMLInputElement | null`} - \n\n * `bgColorInput` {`HTMLInputElement | null`} - \n\n * `colorSwatchEl` {`HTMLElement | null`} - \n\n * `bgSwatchEl` {`HTMLElement | null`} - \n\n * `containerEl` {`HTMLElement | null`} - \n\n * `linkEl` {`HTMLElement | null`} - \n\n * `mentionsEl` {`HTMLElement | null`} - \n\n * `onEditorClick` - \n\n * `onEditorPaste` - \n\n * `onEditorDrop` - \n\n * `onEditorInput` - \n\n * `onEditorMouseup` - \n\n * `onEditorKeyup` - \n\n * `onEditorKeydown` - \n\n * `onSelectionChange` - ",
5609
+ "description": "Events:\n\n * `nile-change` {`CustomEvent<{ content: string; mention: any; }>`} - \n\nAttributes:\n\n * `value` {`string`} - \n\n * `noStyles` {`boolean`} - \n\n * `disabled` {`boolean`} - \n\n * `singlelineeditor` {`boolean`} - \n\n * `placeholder` {`string`} - \n\n * `mentions` - \n\n * `whitelist` {`string[]`} - \n\nProperties:\n\n * `value` {`string`} - \n\n * `noStyles` {`boolean`} - \n\n * `disabled` {`boolean`} - \n\n * `singleLineEditor` {`boolean`} - \n\n * `placeholder` {`string`} - \n\n * `mentions` - \n\n * `whitelist` {`string[]`} - \n\n * `content` {`string`} - \n\n * `editorEl` {`HTMLElement`} - \n\n * `previewEl` {`HTMLElement | null`} - \n\n * `toolbarEl` {`HTMLElement | null`} - \n\n * `lastRange` {`Range | null`} - \n\n * `buttonMap` {`Map<string, HTMLElement[]>`} - \n\n * `headingSelect` {`HTMLSelectElement | null`} - \n\n * `fontSelect` {`HTMLSelectElement | null`} - \n\n * `colorInput` {`HTMLInputElement | null`} - \n\n * `bgColorInput` {`HTMLInputElement | null`} - \n\n * `colorSwatchEl` {`HTMLElement | null`} - \n\n * `bgSwatchEl` {`HTMLElement | null`} - \n\n * `containerEl` {`HTMLElement | null`} - \n\n * `linkEl` {`HTMLElement | null`} - \n\n * `imageEl` {`HTMLElement | null`} - \n\n * `mentionsEl` {`HTMLElement | null`} - \n\n * `onEditorClick` - \n\n * `onEditorPaste` - \n\n * `onEditorDrop` - \n\n * `onEditorInput` - \n\n * `onEditorMouseup` - \n\n * `onEditorKeyup` - \n\n * `onEditorKeydown` - \n\n * `onSelectionChange` - ",
5610
5610
  "attributes": [
5611
5611
  {
5612
5612
  "name": "value",
@@ -5683,6 +5683,46 @@
5683
5683
  "name": "nile-rte-divider",
5684
5684
  "attributes": []
5685
5685
  },
5686
+ {
5687
+ "name": "nile-rte-image",
5688
+ "description": "Events:\n\n * `nile-image-changed` {`CustomEvent<{ src: string; alt: string; caption: string; width: number | null; }>`} - \n\nAttributes:\n\n * `disabled` {`boolean`} - \n\n * `label` {`string`} - \n\n * `placeholder` {`string`} - \n\n * `altPlaceholder` {`string`} - \n\n * `captionPlaceholder` {`string`} - \n\n * `maxfilesize` {`number`} - \n\n * `uploadfromcomputer` {`boolean`} - \n\nProperties:\n\n * `editorEl` {`HTMLElement`} - \n\n * `disabled` {`boolean`} - \n\n * `label` {`string`} - \n\n * `placeholder` {`string`} - \n\n * `altPlaceholder` {`string`} - \n\n * `captionPlaceholder` {`string`} - \n\n * `maxFileSize` {`number`} - \n\n * `uploadFromComputer` {`boolean`} - \n\n * `srcValue` {`string`} - \n\n * `altValue` {`string`} - \n\n * `captionValue` {`string`} - \n\n * `hasActiveImage` {`boolean`} - \n\n * `uploadedFileName` {`string`} - \n\n * `errorMessage` {`string`} - \n\n * `popoverStyle` {`string`} - \n\n * `selectionRange` {`Range | null`} - \n\n * `activeFigure` {`HTMLElement | null`} - \n\n * `ignoreBlur` {`boolean`} - \n\n * `isApplying` {`boolean`} - \n\n * `selectedFigure` {`HTMLElement | null`} - \n\n * `resizeOverlay` {`HTMLElement | null`} - \n\n * `dragStartX` {`number`} - \n\n * `dragStartWidth` {`number`} - \n\n * `dragDir` {`string`} - \n\n * `isDragging` {`boolean`} - \n\n * `trackingRaf` {`number`} - \n\n * `onEditorInput` - \n\n * `onEditorImagePaste` - \n\n * `onScroll` - \n\n * `onEditorImageClick` - \n\n * `onEditorImageDblClick` - \n\n * `onDocKeydown` - \n\n * `onSelectedImageLoad` - \n\n * `onDocMousedown` - \n\n * `onAlignClick` - \n\n * `onHandleMousedown` - \n\n * `onDragMove` - \n\n * `onDragEnd` - \n\n * `onOpen` - \n\n * `onInputKeydown` - \n\n * `onInputBlur` - \n\n * `onSrcInput` - \n\n * `onAltInput` - \n\n * `onCaptionInput` - \n\n * `onPopoverMousedown` - \n\n * `onPopoverMouseup` - \n\n * `onToolbarButtonMousedown` - \n\n * `onUploadClick` - \n\n * `onFileChange` - \n\n * `onApplyClick` - \n\n * `onRemoveClick` - ",
5689
+ "attributes": [
5690
+ {
5691
+ "name": "disabled",
5692
+ "description": "`disabled` {`boolean`} - \n\nProperty: disabled\n\nDefault: false",
5693
+ "valueSet": "v"
5694
+ },
5695
+ {
5696
+ "name": "label",
5697
+ "description": "`label` {`string`} - \n\nProperty: label\n\nDefault: Image"
5698
+ },
5699
+ {
5700
+ "name": "placeholder",
5701
+ "description": "`placeholder` {`string`} - \n\nProperty: placeholder\n\nDefault: Paste image link here"
5702
+ },
5703
+ {
5704
+ "name": "altPlaceholder",
5705
+ "description": "`altPlaceholder` {`string`} - \n\nProperty: altPlaceholder\n\nDefault: Describe the image"
5706
+ },
5707
+ {
5708
+ "name": "captionPlaceholder",
5709
+ "description": "`captionPlaceholder` {`string`} - \n\nProperty: captionPlaceholder\n\nDefault: Add a caption (optional)"
5710
+ },
5711
+ {
5712
+ "name": "maxfilesize",
5713
+ "description": "`maxfilesize` {`number`} - \n\nProperty: maxFileSize\n\nDefault: 2 * 1024 * 1024"
5714
+ },
5715
+ {
5716
+ "name": "uploadfromcomputer",
5717
+ "description": "`uploadfromcomputer` {`boolean`} - \n\nProperty: uploadFromComputer\n\nDefault: false",
5718
+ "valueSet": "v"
5719
+ },
5720
+ {
5721
+ "name": "onnile-image-changed",
5722
+ "description": "`nile-image-changed` {`CustomEvent<{ src: string; alt: string; caption: string; width: number | null; }>`} - "
5723
+ }
5724
+ ]
5725
+ },
5686
5726
  {
5687
5727
  "name": "nile-rte-link",
5688
5728
  "description": "Events:\n\n * `nile-link-changed` {`CustomEvent<{ href: string; }>`} - \n\nAttributes:\n\n * `newTab` {`boolean`} - \n\n * `disabled` {`boolean`} - \n\n * `showTextSupport` {`boolean`} - \n\n * `placeholder` {`string`} - \n\n * `textPlaceholder` {`string`} - \n\n * `label` {`string`} - \n\nProperties:\n\n * `editorEl` {`HTMLElement`} - \n\n * `newTab` {`boolean`} - \n\n * `disabled` {`boolean`} - \n\n * `showTextSupport` {`boolean`} - \n\n * `placeholder` {`string`} - \n\n * `textPlaceholder` {`string`} - \n\n * `label` {`string`} - \n\n * `linkValue` {`string`} - \n\n * `textValue` {`string`} - \n\n * `hasActiveLink` {`boolean`} - \n\n * `popoverStyle` {`string`} - \n\n * `selectionRange` {`Range | null`} - \n\n * `activeAnchor` {`HTMLAnchorElement | null`} - \n\n * `ignoreBlur` {`boolean`} - \n\n * `isApplying` {`boolean`} - \n\n * `onScroll` - \n\n * `onOpen` - \n\n * `onInputKeydown` - \n\n * `onInputBlur` - \n\n * `onLinkInput` - \n\n * `onTextInput` - \n\n * `onPopoverMousedown` - \n\n * `onPopoverMouseup` - \n\n * `onToolbarButtonMousedown` - \n\n * `onActionMousedown` - \n\n * `onApplyClick` - \n\n * `onUnlinkClick` - ",
@@ -8071,6 +8111,456 @@
8071
8111
  "description": "`nile-scroll-end` {} - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced)."
8072
8112
  }
8073
8113
  ]
8114
+ },
8115
+ {
8116
+ "name": "nile-wysiwyg-editor",
8117
+ "description": "WYSIWYG rich text editor powered by ProseMirror.\n\nRequires evergreen browsers: selection inside shadow DOM relies on\n`Selection.getComposedRanges()` (Safari 17+, recent Firefox) or Chrome's\n`shadowRoot.getSelection()`.\n\nEvents:\n\n * `nile-change` {} - Debounced content change. detail: { value, json, content }\n\n * `nile-input` {} - Every document change. detail: { value, json, content }\n\n * `nile-focus` {} - Editor gained focus.\n\n * `nile-blur` {} - Editor lost focus.\n\n * `nile-selection-change` {} - detail: ToolbarState snapshot.\n\n * `nile-image-upload-request` {} - Cancelable. detail: { file, insert(src, alt) }.\nCall preventDefault() and use insert() to fully own the upload.\n\n * `nile-image-upload-error` {} - detail: { file, error } when uploadHandler rejects.\n\n * `nile-mention-query` {} - detail: { trigger, query, provide(items) } for async sources.\n\n * `nile-mention-select` {} - detail: { trigger, key, label } when a mention is inserted.\n\n * `nile-word-count` {} - detail: { words, characters } on every document change.\n\n * `nile-autosave` {} - detail: { value, json, content } on the autosave interval.\n\nAttributes:\n\n * `value` {`string`} - Document content as HTML. Not reflected to the attribute.\n\n * `placeholder` {`string`} - \n\n * `disabled` {`boolean`} - \n\n * `readonly` {`boolean`} - \n\n * `toolbar` {`string`} - Toolbar config string; `\"none\"` hides the toolbar.\n\n * `bubble-menu` {`boolean`} - Shows a balloon toolbar over text selections.\n\n * `sanitize` {`boolean`} - Sanitizes incoming HTML (value, paste, insertHTML). Leave on.\n\n * `singleline` {`boolean`} - Constrains content to a single paragraph.\n\n * `name` {`string`} - Form field name.\n\n * `required` {`boolean`} - \n\n * `upload-from-computer` {`boolean`} - Shows an \"Upload from computer\" button in the Insert Image dialog. Off by\ndefault (URL-only, like the RTE's default); files can always be added via\ndrag & drop or paste regardless.\n\n * `image-max-file-size` {`number`} - Max upload size (bytes) shown/enforced by the image dialog. Default 2 MB.\n\n * `mentions` - Mention config: trigger character → items, same shape and JSON attribute\nformat as nile-rich-text-editor. For async sources, configure the\ntrigger with an empty array and listen to nile-mention-query.\n\n * `no-slash-commands` {`boolean`} - Disables the \"/\" command menu.\n\n * `no-emoji` {`boolean`} - Disables the \":\" emoji picker.\n\n * `maxlength` {`number`} - Maximum character count; further input is rejected. 0 = unlimited.\n\n * `show-counter` {`boolean`} - Always show the word/character counter footer (implied by maxlength).\n\n * `sticky-toolbar` {`boolean`} - Keeps the toolbar pinned to the viewport while scrolling long content.\n\n * `snippets` {`SnippetConfig[]`} - Reusable snippets surfaced in the \"/\" menu (JSON attribute).\n\n * `merge-fields` {`MergeFieldConfig[]`} - Merge fields offered in the merge-field picker (JSON attribute).\n\n * `templates` {`TemplateConfig[]`} - Content templates offered in the template picker (JSON attribute).\n\n * `autosave-interval` {`number`} - Emit nile-autosave every N ms while the document has changed. 0 = off.\n\n * `paste-as-plain-text` {`boolean`} - When on, every paste drops formatting and inserts plain text.\n\n * `no-markdown-paste` {`boolean`} - Disables Markdown detection on plain-text pastes.\n\n * `no-text-transform` {`boolean`} - Disables typography autocorrect (smart quotes, dashes, (c) → ©).\n\n * `fullscreen` {`boolean`} - Expands the editor to fill the viewport. Esc exits.\n\n * `show-blocks` {`boolean`} - Outlines block boundaries (paragraphs, headings, lists…) while editing.\n\nProperties:\n\n * `formAssociated` {`boolean`} - \n\n * `value` {`string`} - Document content as HTML. Not reflected to the attribute.\n\n * `placeholder` {`string`} - \n\n * `disabled` {`boolean`} - \n\n * `readonly` {`boolean`} - \n\n * `toolbar` {`string`} - Toolbar config string; `\"none\"` hides the toolbar.\n\n * `bubbleMenu` {`boolean`} - Shows a balloon toolbar over text selections.\n\n * `sanitize` {`boolean`} - Sanitizes incoming HTML (value, paste, insertHTML). Leave on.\n\n * `singleLine` {`boolean`} - Constrains content to a single paragraph.\n\n * `name` {`string`} - Form field name.\n\n * `required` {`boolean`} - \n\n * `uploadHandler` - Async image upload handler. When set, pasted/dropped/picked image files\nare uploaded through it (an \"Uploading…\" placeholder shows meanwhile)\nand the returned src is inserted.\n\n * `allowBase64Images` {`boolean`} - Fallback when no uploadHandler is set and no nile-image-upload-request\nlistener takes over: embed image files as base64 data URLs.\n\n * `uploadFromComputer` {`boolean`} - Shows an \"Upload from computer\" button in the Insert Image dialog. Off by\ndefault (URL-only, like the RTE's default); files can always be added via\ndrag & drop or paste regardless.\n\n * `imageMaxFileSize` {`number`} - Max upload size (bytes) shown/enforced by the image dialog. Default 2 MB.\n\n * `mentions` - Mention config: trigger character → items, same shape and JSON attribute\nformat as nile-rich-text-editor. For async sources, configure the\ntrigger with an empty array and listen to nile-mention-query.\n\n * `noSlashCommands` {`boolean`} - Disables the \"/\" command menu.\n\n * `noEmoji` {`boolean`} - Disables the \":\" emoji picker.\n\n * `maxLength` {`number`} - Maximum character count; further input is rejected. 0 = unlimited.\n\n * `showCounter` {`boolean`} - Always show the word/character counter footer (implied by maxlength).\n\n * `stickyToolbar` {`boolean`} - Keeps the toolbar pinned to the viewport while scrolling long content.\n\n * `snippets` {`SnippetConfig[]`} - Reusable snippets surfaced in the \"/\" menu (JSON attribute).\n\n * `mergeFields` {`MergeFieldConfig[]`} - Merge fields offered in the merge-field picker (JSON attribute).\n\n * `templates` {`TemplateConfig[]`} - Content templates offered in the template picker (JSON attribute).\n\n * `mathRenderer` - Renders a math node's LaTeX to HTML (KaTeX/MathJax/MathML). When unset,\nthe raw LaTeX is shown. Same trust level as uploadHandler — output is\ninserted as HTML.\n\n * `autosaveInterval` {`number`} - Emit nile-autosave every N ms while the document has changed. 0 = off.\n\n * `pasteAsPlainText` {`boolean`} - When on, every paste drops formatting and inserts plain text.\n\n * `noMarkdownPaste` {`boolean`} - Disables Markdown detection on plain-text pastes.\n\n * `noTextTransform` {`boolean`} - Disables typography autocorrect (smart quotes, dashes, (c) → ©).\n\n * `fullscreen` {`boolean`} - Expands the editor to fill the viewport. Esc exits.\n\n * `showBlocks` {`boolean`} - Outlines block boundaries (paragraphs, headings, lists…) while editing.\n\n * `toolbarState` {`ToolbarState | undefined`} - \n\n * `hasFocus` {`boolean`} - \n\n * `sourceMode` {`boolean`} - \n\n * `counter` {`{ words: number; characters: number; }`} - \n\n * `insertMenuMode` {`\"template\" | \"merge\" | null`} - Which list the shared insert-menu is showing, if open.\n\n * `baseEl` {`HTMLElement`} - \n\n * `toolbarEl` {`HTMLElement | undefined`} - \n\n * `surfaceEl` {`HTMLElement`} - \n\n * `linkEditorEl` - \n\n * `bubbleMenuEl` - \n\n * `imagePanelEl` - \n\n * `tableMenuEl` - \n\n * `suggestListEl` - \n\n * `findBarEl` - \n\n * `sourceViewEl` - \n\n * `embedPanelEl` - \n\n * `bookmarkPanelEl` - \n\n * `codeMenuEl` - \n\n * `shortcutHelpEl` - \n\n * `imageMenuEl` - \n\n * `embedMenuEl` - \n\n * `specialCharsEl` - \n\n * `emojiPickerEl` - \n\n * `insertMenuEl` - \n\n * `mathPanelEl` - \n\n * `markdownPanelEl` - \n\n * `view` - \n\n * `mentionMatch` {`SuggestionMatch | null`} - \n\n * `slashMatch` {`SuggestionMatch | null`} - \n\n * `emojiMatch` {`SuggestionMatch | null`} - \n\n * `activeSuggestSource` {`\"mention\" | \"slash\" | \"emoji\" | null`} - \n\n * `suggestDismissed` {`string | null`} - \n\n * `mentionQueryToken` {`string`} - \n\n * `autosaveTimer` - \n\n * `lastAutosaveValue` {`string`} - \n\n * `internals` - \n\n * `defaultValue` {`string`} - \n\n * `syncingValue` {`boolean`} - \n\n * `changeTimer` - \n\n * `pendingChange` {`boolean`} - \n\n * `previousBodyOverflow` {`string | null`} - Body overflow value before fullscreen locked it; null = not locked.\n\n * `contentRoot` {`HTMLElement | null`} - The live, styled content element used as the source for exports.\n\n * `pmView` - The underlying ProseMirror EditorView. Advanced escape hatch.\n\n * `json` - Document as ProseMirror JSON.\n\n * `override` - \n\n * `floatingPanels` {`({ open: boolean; } | undefined)[]`} - The floating insert panels that should dismiss on outside interaction.\n\n * `onOutsidePointerDown` - Closes any open insert panel when the pointer goes down outside of it —\nwhether elsewhere in the editor (e.g. the content area) or off the widget.\n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8118
+ "attributes": [
8119
+ {
8120
+ "name": "value",
8121
+ "description": "`value` {`string`} - Document content as HTML. Not reflected to the attribute.\n\nProperty: value\n\nDefault: "
8122
+ },
8123
+ {
8124
+ "name": "placeholder",
8125
+ "description": "`placeholder` {`string`} - \n\nProperty: placeholder\n\nDefault: "
8126
+ },
8127
+ {
8128
+ "name": "disabled",
8129
+ "description": "`disabled` {`boolean`} - \n\nProperty: disabled\n\nDefault: false",
8130
+ "valueSet": "v"
8131
+ },
8132
+ {
8133
+ "name": "readonly",
8134
+ "description": "`readonly` {`boolean`} - \n\nProperty: readonly\n\nDefault: false",
8135
+ "valueSet": "v"
8136
+ },
8137
+ {
8138
+ "name": "toolbar",
8139
+ "description": "`toolbar` {`string`} - Toolbar config string; `\"none\"` hides the toolbar.\n\nProperty: toolbar\n\nDefault: DEFAULT_TOOLBAR"
8140
+ },
8141
+ {
8142
+ "name": "bubble-menu",
8143
+ "description": "`bubble-menu` {`boolean`} - Shows a balloon toolbar over text selections.\n\nProperty: bubbleMenu\n\nDefault: false",
8144
+ "valueSet": "v"
8145
+ },
8146
+ {
8147
+ "name": "sanitize",
8148
+ "description": "`sanitize` {`boolean`} - Sanitizes incoming HTML (value, paste, insertHTML). Leave on.\n\nProperty: sanitize\n\nDefault: true",
8149
+ "valueSet": "v"
8150
+ },
8151
+ {
8152
+ "name": "singleline",
8153
+ "description": "`singleline` {`boolean`} - Constrains content to a single paragraph.\n\nProperty: singleLine\n\nDefault: false",
8154
+ "valueSet": "v"
8155
+ },
8156
+ {
8157
+ "name": "name",
8158
+ "description": "`name` {`string`} - Form field name.\n\nProperty: name\n\nDefault: "
8159
+ },
8160
+ {
8161
+ "name": "required",
8162
+ "description": "`required` {`boolean`} - \n\nProperty: required\n\nDefault: false",
8163
+ "valueSet": "v"
8164
+ },
8165
+ {
8166
+ "name": "upload-from-computer",
8167
+ "description": "`upload-from-computer` {`boolean`} - Shows an \"Upload from computer\" button in the Insert Image dialog. Off by\ndefault (URL-only, like the RTE's default); files can always be added via\ndrag & drop or paste regardless.\n\nProperty: uploadFromComputer\n\nDefault: false",
8168
+ "valueSet": "v"
8169
+ },
8170
+ {
8171
+ "name": "image-max-file-size",
8172
+ "description": "`image-max-file-size` {`number`} - Max upload size (bytes) shown/enforced by the image dialog. Default 2 MB.\n\nProperty: imageMaxFileSize\n\nDefault: 2 * 1024 * 1024"
8173
+ },
8174
+ {
8175
+ "name": "mentions",
8176
+ "description": "`mentions` - Mention config: trigger character → items, same shape and JSON attribute\nformat as nile-rich-text-editor. For async sources, configure the\ntrigger with an empty array and listen to nile-mention-query.\n\nProperty: mentions\n\nDefault: [object Object]"
8177
+ },
8178
+ {
8179
+ "name": "no-slash-commands",
8180
+ "description": "`no-slash-commands` {`boolean`} - Disables the \"/\" command menu.\n\nProperty: noSlashCommands\n\nDefault: false",
8181
+ "valueSet": "v"
8182
+ },
8183
+ {
8184
+ "name": "no-emoji",
8185
+ "description": "`no-emoji` {`boolean`} - Disables the \":\" emoji picker.\n\nProperty: noEmoji\n\nDefault: false",
8186
+ "valueSet": "v"
8187
+ },
8188
+ {
8189
+ "name": "maxlength",
8190
+ "description": "`maxlength` {`number`} - Maximum character count; further input is rejected. 0 = unlimited.\n\nProperty: maxLength\n\nDefault: 0"
8191
+ },
8192
+ {
8193
+ "name": "show-counter",
8194
+ "description": "`show-counter` {`boolean`} - Always show the word/character counter footer (implied by maxlength).\n\nProperty: showCounter\n\nDefault: false",
8195
+ "valueSet": "v"
8196
+ },
8197
+ {
8198
+ "name": "sticky-toolbar",
8199
+ "description": "`sticky-toolbar` {`boolean`} - Keeps the toolbar pinned to the viewport while scrolling long content.\n\nProperty: stickyToolbar\n\nDefault: false",
8200
+ "valueSet": "v"
8201
+ },
8202
+ {
8203
+ "name": "snippets",
8204
+ "description": "`snippets` {`SnippetConfig[]`} - Reusable snippets surfaced in the \"/\" menu (JSON attribute).\n\nProperty: snippets\n\nDefault: "
8205
+ },
8206
+ {
8207
+ "name": "merge-fields",
8208
+ "description": "`merge-fields` {`MergeFieldConfig[]`} - Merge fields offered in the merge-field picker (JSON attribute).\n\nProperty: mergeFields\n\nDefault: "
8209
+ },
8210
+ {
8211
+ "name": "templates",
8212
+ "description": "`templates` {`TemplateConfig[]`} - Content templates offered in the template picker (JSON attribute).\n\nProperty: templates\n\nDefault: "
8213
+ },
8214
+ {
8215
+ "name": "autosave-interval",
8216
+ "description": "`autosave-interval` {`number`} - Emit nile-autosave every N ms while the document has changed. 0 = off.\n\nProperty: autosaveInterval\n\nDefault: 0"
8217
+ },
8218
+ {
8219
+ "name": "paste-as-plain-text",
8220
+ "description": "`paste-as-plain-text` {`boolean`} - When on, every paste drops formatting and inserts plain text.\n\nProperty: pasteAsPlainText\n\nDefault: false",
8221
+ "valueSet": "v"
8222
+ },
8223
+ {
8224
+ "name": "no-markdown-paste",
8225
+ "description": "`no-markdown-paste` {`boolean`} - Disables Markdown detection on plain-text pastes.\n\nProperty: noMarkdownPaste\n\nDefault: false",
8226
+ "valueSet": "v"
8227
+ },
8228
+ {
8229
+ "name": "no-text-transform",
8230
+ "description": "`no-text-transform` {`boolean`} - Disables typography autocorrect (smart quotes, dashes, (c) → ©).\n\nProperty: noTextTransform\n\nDefault: false",
8231
+ "valueSet": "v"
8232
+ },
8233
+ {
8234
+ "name": "fullscreen",
8235
+ "description": "`fullscreen` {`boolean`} - Expands the editor to fill the viewport. Esc exits.\n\nProperty: fullscreen\n\nDefault: false",
8236
+ "valueSet": "v"
8237
+ },
8238
+ {
8239
+ "name": "show-blocks",
8240
+ "description": "`show-blocks` {`boolean`} - Outlines block boundaries (paragraphs, headings, lists…) while editing.\n\nProperty: showBlocks\n\nDefault: false",
8241
+ "valueSet": "v"
8242
+ },
8243
+ {
8244
+ "name": "onnile-change",
8245
+ "description": "`nile-change` {} - Debounced content change. detail: { value, json, content }"
8246
+ },
8247
+ {
8248
+ "name": "onnile-input",
8249
+ "description": "`nile-input` {} - Every document change. detail: { value, json, content }"
8250
+ },
8251
+ {
8252
+ "name": "onnile-focus",
8253
+ "description": "`nile-focus` {} - Editor gained focus."
8254
+ },
8255
+ {
8256
+ "name": "onnile-blur",
8257
+ "description": "`nile-blur` {} - Editor lost focus."
8258
+ },
8259
+ {
8260
+ "name": "onnile-selection-change",
8261
+ "description": "`nile-selection-change` {} - detail: ToolbarState snapshot."
8262
+ },
8263
+ {
8264
+ "name": "onnile-image-upload-request",
8265
+ "description": "`nile-image-upload-request` {} - Cancelable. detail: { file, insert(src, alt) }.\nCall preventDefault() and use insert() to fully own the upload."
8266
+ },
8267
+ {
8268
+ "name": "onnile-image-upload-error",
8269
+ "description": "`nile-image-upload-error` {} - detail: { file, error } when uploadHandler rejects."
8270
+ },
8271
+ {
8272
+ "name": "onnile-mention-query",
8273
+ "description": "`nile-mention-query` {} - detail: { trigger, query, provide(items) } for async sources."
8274
+ },
8275
+ {
8276
+ "name": "onnile-mention-select",
8277
+ "description": "`nile-mention-select` {} - detail: { trigger, key, label } when a mention is inserted."
8278
+ },
8279
+ {
8280
+ "name": "onnile-word-count",
8281
+ "description": "`nile-word-count` {} - detail: { words, characters } on every document change."
8282
+ },
8283
+ {
8284
+ "name": "onnile-autosave",
8285
+ "description": "`nile-autosave` {} - detail: { value, json, content } on the autosave interval."
8286
+ }
8287
+ ]
8288
+ },
8289
+ {
8290
+ "name": "nile-wysiwyg-toolbar",
8291
+ "description": "Config-driven toolbar. Renders from a single immutable ToolbarState\nsnapshot; every interaction is dispatched to the host as a\n`wysiwyg-command` event — the toolbar never touches the editor directly.\n\nAttributes:\n\n * `config` {`string`} - Space-separated item names; `|` inserts a divider.\n\n * `disabled` {`boolean`} - \n\nProperties:\n\n * `config` {`string`} - Space-separated item names; `|` inserts a divider.\n\n * `disabled` {`boolean`} - \n\n * `toolbarState` {`ToolbarState | undefined`} - \n\n * `openMenu` {`string | null`} - Which dropdown/color panel is open (item name), if any.\n\n * `recentColors` - Recently used colors per color command, like nile-rte-color.\n\n * `handleOutsideClick` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8292
+ "attributes": [
8293
+ {
8294
+ "name": "config",
8295
+ "description": "`config` {`string`} - Space-separated item names; `|` inserts a divider.\n\nProperty: config\n\nDefault: DEFAULT_TOOLBAR"
8296
+ },
8297
+ {
8298
+ "name": "disabled",
8299
+ "description": "`disabled` {`boolean`} - \n\nProperty: disabled\n\nDefault: false",
8300
+ "valueSet": "v"
8301
+ }
8302
+ ]
8303
+ },
8304
+ {
8305
+ "name": "nile-wysiwyg-bookmark-panel",
8306
+ "description": "Floating bookmark-insert panel: name an in-text anchor. Emits\n`wysiwyg-bookmark-apply` detail: { id } and `wysiwyg-bookmark-cancel`.\n\nAttributes:\n\n * `open` {`boolean`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `error` {`string`} - \n\n * `nameInput` {`HTMLInputElement | undefined`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8307
+ "attributes": [
8308
+ {
8309
+ "name": "open",
8310
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8311
+ "valueSet": "v"
8312
+ }
8313
+ ]
8314
+ },
8315
+ {
8316
+ "name": "nile-wysiwyg-bubble-menu",
8317
+ "description": "Balloon toolbar shown over non-empty selections. The host owns positioning\n(absolute left/top) and visibility; commands bubble up as\n`wysiwyg-command` events, same contract as the main toolbar.\n\nAttributes:\n\n * `open` {`boolean`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `toolbarState` {`ToolbarState | undefined`} - \n\n * `items` {`BubbleItem[]`} - Same icon set as the main toolbar, so both surfaces look identical.\n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8318
+ "attributes": [
8319
+ {
8320
+ "name": "open",
8321
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8322
+ "valueSet": "v"
8323
+ }
8324
+ ]
8325
+ },
8326
+ {
8327
+ "name": "nile-wysiwyg-code-menu",
8328
+ "description": "Compact floating language picker shown while the cursor is inside a code\nblock. Selection dispatches `wysiwyg-command` with setCodeBlockLanguage.\n\nAttributes:\n\n * `open` {`boolean`} - \n\n * `language` {`string | null`} - Current language attr ('' = auto, null treated as '').\n\nProperties:\n\n * `open` {`boolean`} - \n\n * `language` {`string | null`} - Current language attr ('' = auto, null treated as '').\n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8329
+ "attributes": [
8330
+ {
8331
+ "name": "open",
8332
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8333
+ "valueSet": "v"
8334
+ },
8335
+ {
8336
+ "name": "language",
8337
+ "description": "`language` {`string | null`} - Current language attr ('' = auto, null treated as '').\n\nProperty: language\n\nDefault: null",
8338
+ "values": []
8339
+ }
8340
+ ]
8341
+ },
8342
+ {
8343
+ "name": "nile-wysiwyg-embed-menu",
8344
+ "description": "Compact floating bar shown while a video embed is selected — mirrors the\nimage menu (align left/center/right, delete). The host positions it;\noperations bubble up as `wysiwyg-command` events.\n\nAttributes:\n\n * `open` {`boolean`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `toolbarState` {`ToolbarState | undefined`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8345
+ "attributes": [
8346
+ {
8347
+ "name": "open",
8348
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8349
+ "valueSet": "v"
8350
+ }
8351
+ ]
8352
+ },
8353
+ {
8354
+ "name": "nile-wysiwyg-embed-panel",
8355
+ "description": "Floating embed-insert panel: paste a YouTube/Vimeo/Loom link. Styled to\nmatch the image panel (nile-input + nile-button). Emits\n`wysiwyg-embed-apply` detail: { src, provider } and `wysiwyg-embed-cancel`.\n\nAttributes:\n\n * `open` {`boolean`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `urlValue` {`string`} - \n\n * `error` {`string`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8356
+ "attributes": [
8357
+ {
8358
+ "name": "open",
8359
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8360
+ "valueSet": "v"
8361
+ }
8362
+ ]
8363
+ },
8364
+ {
8365
+ "name": "nile-wysiwyg-emoji-picker",
8366
+ "description": "Emoji picker panel (the 😊 toolbar item). Shares the emoji set with the\n\":\" autocomplete; the search box filters by name. Emits\n`wysiwyg-emoji-select` detail: { char } and `wysiwyg-emoji-cancel`.\n\nAttributes:\n\n * `open` {`boolean`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `filter` {`string`} - \n\n * `searchInput` {`HTMLInputElement | undefined`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8367
+ "attributes": [
8368
+ {
8369
+ "name": "open",
8370
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8371
+ "valueSet": "v"
8372
+ }
8373
+ ]
8374
+ },
8375
+ {
8376
+ "name": "nile-wysiwyg-find-bar",
8377
+ "description": "Find & replace bar pinned to the top-right of the editor. Emits:\n - `wysiwyg-find` detail: { query }\n - `wysiwyg-find-step` detail: { direction: 'next' | 'prev' }\n - `wysiwyg-replace` detail: { value }\n - `wysiwyg-replace-all` detail: { value }\n - `wysiwyg-find-close`\n\nAttributes:\n\n * `open` {`boolean`} - \n\n * `matchCount` {`number`} - \n\n * `activeIndex` {`number`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `matchCount` {`number`} - \n\n * `activeIndex` {`number`} - \n\n * `queryInput` {`HTMLInputElement | undefined`} - \n\n * `replaceInput` {`HTMLInputElement | undefined`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8378
+ "attributes": [
8379
+ {
8380
+ "name": "open",
8381
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8382
+ "valueSet": "v"
8383
+ },
8384
+ {
8385
+ "name": "matchCount",
8386
+ "description": "`matchCount` {`number`} - \n\nProperty: matchCount\n\nDefault: 0"
8387
+ },
8388
+ {
8389
+ "name": "activeIndex",
8390
+ "description": "`activeIndex` {`number`} - \n\nProperty: activeIndex\n\nDefault: 0"
8391
+ }
8392
+ ]
8393
+ },
8394
+ {
8395
+ "name": "nile-wysiwyg-image-menu",
8396
+ "description": "Compact floating bar shown while an image or figure is selected. The host\npositions it; operations bubble up as `wysiwyg-command` events.\n\nAttributes:\n\n * `open` {`boolean`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `toolbarState` {`ToolbarState | undefined`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8397
+ "attributes": [
8398
+ {
8399
+ "name": "open",
8400
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8401
+ "valueSet": "v"
8402
+ }
8403
+ ]
8404
+ },
8405
+ {
8406
+ "name": "nile-wysiwyg-image-panel",
8407
+ "description": "Floating image insert/edit panel, matching nile-rich-text-editor's image\ndialog: URL + alt + caption (nile-input) and an Insert action. When\n`upload-from-computer` is set it also offers an \"or / Upload from computer\"\nbutton (with max-size validation), matching the RTE's `uploadfromcomputer`\nflag. An edit mode pre-fills the fields and adds Remove.\n\nThe host positions it and listens for:\n - `wysiwyg-image-apply` detail: { src, alt, caption } (insert / edit)\n - `wysiwyg-image-file` detail: { file, alt, caption } (upload)\n - `wysiwyg-image-remove` (delete active image)\n - `wysiwyg-image-cancel` (Escape)\n\nAttributes:\n\n * `open` {`boolean`} - \n\n * `editing` {`boolean`} - True when editing an already-inserted image (shows Remove, \"Save\").\n\n * `upload-from-computer` {`boolean`} - Shows the \"Upload from computer\" button below the URL field.\n\n * `max-file-size` {`number`} - Maximum allowed upload size in bytes (default 2 MB).\n\nProperties:\n\n * `open` {`boolean`} - \n\n * `editing` {`boolean`} - True when editing an already-inserted image (shows Remove, \"Save\").\n\n * `uploadFromComputer` {`boolean`} - Shows the \"Upload from computer\" button below the URL field.\n\n * `maxFileSize` {`number`} - Maximum allowed upload size in bytes (default 2 MB).\n\n * `srcValue` {`string`} - \n\n * `altValue` {`string`} - \n\n * `captionValue` {`string`} - \n\n * `uploadedFileName` {`string`} - \n\n * `errorMessage` {`string`} - \n\n * `stagedFile` {`File | null`} - File staged by \"Upload from computer\", applied on Insert.\n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8408
+ "attributes": [
8409
+ {
8410
+ "name": "open",
8411
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8412
+ "valueSet": "v"
8413
+ },
8414
+ {
8415
+ "name": "editing",
8416
+ "description": "`editing` {`boolean`} - True when editing an already-inserted image (shows Remove, \"Save\").\n\nProperty: editing\n\nDefault: false",
8417
+ "valueSet": "v"
8418
+ },
8419
+ {
8420
+ "name": "upload-from-computer",
8421
+ "description": "`upload-from-computer` {`boolean`} - Shows the \"Upload from computer\" button below the URL field.\n\nProperty: uploadFromComputer\n\nDefault: false",
8422
+ "valueSet": "v"
8423
+ },
8424
+ {
8425
+ "name": "max-file-size",
8426
+ "description": "`max-file-size` {`number`} - Maximum allowed upload size in bytes (default 2 MB).\n\nProperty: maxFileSize\n\nDefault: 2 * 1024 * 1024"
8427
+ }
8428
+ ]
8429
+ },
8430
+ {
8431
+ "name": "nile-wysiwyg-insert-menu",
8432
+ "description": "Generic list popover for \"pick one and insert\" toolbar actions — used by the\ntemplate and merge-field pickers. Emits `wysiwyg-insert-select` { index } and\n`wysiwyg-insert-cancel`. Never takes focus, so the editor selection survives.\n\nAttributes:\n\n * `open` {`boolean`} - \n\n * `heading` {`string`} - \n\n * `empty-text` {`string`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `heading` {`string`} - \n\n * `emptyText` {`string`} - \n\n * `items` {`InsertMenuItem[]`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8433
+ "attributes": [
8434
+ {
8435
+ "name": "open",
8436
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8437
+ "valueSet": "v"
8438
+ },
8439
+ {
8440
+ "name": "heading",
8441
+ "description": "`heading` {`string`} - \n\nProperty: heading\n\nDefault: "
8442
+ },
8443
+ {
8444
+ "name": "empty-text",
8445
+ "description": "`empty-text` {`string`} - \n\nProperty: emptyText\n\nDefault: Nothing configured."
8446
+ }
8447
+ ]
8448
+ },
8449
+ {
8450
+ "name": "nile-wysiwyg-link-editor",
8451
+ "description": "Floating link create/edit panel. The host positions it absolutely inside\nthe editor chrome and listens for:\n - `wysiwyg-link-apply` detail: { href, text }\n - `wysiwyg-link-remove`\n - `wysiwyg-link-cancel`\n\nAttributes:\n\n * `open` {`boolean`} - \n\n * `href` {`string`} - \n\n * `text` {`string`} - \n\n * `allowText` {`boolean`} - Show the text field (only when creating a link from a cursor).\n\n * `canRemove` {`boolean`} - Show the remove button (when editing an existing link).\n\nProperties:\n\n * `open` {`boolean`} - \n\n * `href` {`string`} - \n\n * `text` {`string`} - \n\n * `allowText` {`boolean`} - Show the text field (only when creating a link from a cursor).\n\n * `canRemove` {`boolean`} - Show the remove button (when editing an existing link).\n\n * `hrefInput` {`HTMLInputElement | undefined`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8452
+ "attributes": [
8453
+ {
8454
+ "name": "open",
8455
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8456
+ "valueSet": "v"
8457
+ },
8458
+ {
8459
+ "name": "href",
8460
+ "description": "`href` {`string`} - \n\nProperty: href\n\nDefault: "
8461
+ },
8462
+ {
8463
+ "name": "text",
8464
+ "description": "`text` {`string`} - \n\nProperty: text\n\nDefault: "
8465
+ },
8466
+ {
8467
+ "name": "allowText",
8468
+ "description": "`allowText` {`boolean`} - Show the text field (only when creating a link from a cursor).\n\nProperty: allowText\n\nDefault: false",
8469
+ "valueSet": "v"
8470
+ },
8471
+ {
8472
+ "name": "canRemove",
8473
+ "description": "`canRemove` {`boolean`} - Show the remove button (when editing an existing link).\n\nProperty: canRemove\n\nDefault: false",
8474
+ "valueSet": "v"
8475
+ }
8476
+ ]
8477
+ },
8478
+ {
8479
+ "name": "nile-wysiwyg-markdown-panel",
8480
+ "description": "Floating \"Paste Markdown\" panel: paste/type Markdown and insert it into the\ndocument as formatted content. The host converts and inserts on apply.\nEmits `wysiwyg-markdown-apply` detail: { markdown } and\n`wysiwyg-markdown-cancel`.\n\nAttributes:\n\n * `open` {`boolean`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `textarea` {`HTMLTextAreaElement | undefined`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8481
+ "attributes": [
8482
+ {
8483
+ "name": "open",
8484
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8485
+ "valueSet": "v"
8486
+ }
8487
+ ]
8488
+ },
8489
+ {
8490
+ "name": "nile-wysiwyg-math-panel",
8491
+ "description": "Floating math-insert panel: enter a LaTeX expression. Styled to match the\nimage/embed panels (nile-input + nile-button). Emits `wysiwyg-math-apply`\ndetail: { latex, display } and `wysiwyg-math-cancel`. Rendering of the\nformula itself is the host's job (via a mathRenderer).\n\nAttributes:\n\n * `open` {`boolean`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `latexValue` {`string`} - \n\n * `display` {`\"inline\" | \"block\"`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8492
+ "attributes": [
8493
+ {
8494
+ "name": "open",
8495
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8496
+ "valueSet": "v"
8497
+ }
8498
+ ]
8499
+ },
8500
+ {
8501
+ "name": "nile-wysiwyg-shortcut-help",
8502
+ "description": "Keyboard shortcut reference dialog, opened from the toolbar or Mod-/.\nEmits `wysiwyg-shortcut-help-close` when dismissed (Esc, ✕ or backdrop).\n\nAttributes:\n\n * `open` {`boolean`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `panelEl` {`HTMLElement | undefined`} - \n\n * `previousBodyOverflow` {`string | null`} - Body overflow value before we locked it; null = not locked by us.\n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8503
+ "attributes": [
8504
+ {
8505
+ "name": "open",
8506
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8507
+ "valueSet": "v"
8508
+ }
8509
+ ]
8510
+ },
8511
+ {
8512
+ "name": "nile-wysiwyg-source-view",
8513
+ "description": "Raw HTML source editing mode. Replaces the rich surface while open; the\nhost re-parses (and re-sanitizes) the HTML on apply. Emits\n`wysiwyg-source-apply` detail: { html } and `wysiwyg-source-cancel`.\n\nAttributes:\n\n * `value` {`string`} - \n\nProperties:\n\n * `value` {`string`} - \n\n * `textarea` {`HTMLTextAreaElement | undefined`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8514
+ "attributes": [
8515
+ {
8516
+ "name": "value",
8517
+ "description": "`value` {`string`} - \n\nProperty: value\n\nDefault: "
8518
+ }
8519
+ ]
8520
+ },
8521
+ {
8522
+ "name": "nile-wysiwyg-special-chars",
8523
+ "description": "Special characters picker (the Ω toolbar item). Emits\n`wysiwyg-char-select` detail: { char } and `wysiwyg-char-cancel`.\n\nAttributes:\n\n * `open` {`boolean`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `category` {`string`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8524
+ "attributes": [
8525
+ {
8526
+ "name": "open",
8527
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8528
+ "valueSet": "v"
8529
+ }
8530
+ ]
8531
+ },
8532
+ {
8533
+ "name": "nile-wysiwyg-suggest-list",
8534
+ "description": "Keyboard-navigable suggestion popup shared by mentions and slash commands.\nThe host positions it, feeds `items`, and drives navigation through\nnext()/prev()/selectCurrent(); picking an item emits\n`wysiwyg-suggest-select` with the item.\n\nAttributes:\n\n * `open` {`boolean`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `items` {`SuggestItem[]`} - \n\n * `activeIndex` {`number`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8535
+ "attributes": [
8536
+ {
8537
+ "name": "open",
8538
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8539
+ "valueSet": "v"
8540
+ }
8541
+ ]
8542
+ },
8543
+ {
8544
+ "name": "nile-wysiwyg-table-picker",
8545
+ "description": "Toolbar item: a table button that opens an N×M hover grid. Picking a cell\nemits `wysiwyg-command` with `insertTable { rows, cols }`.\n\nAttributes:\n\n * `disabled` {`boolean`} - \n\nProperties:\n\n * `disabled` {`boolean`} - \n\n * `open` {`boolean`} - \n\n * `hoverRows` {`number`} - \n\n * `hoverCols` {`number`} - \n\n * `handleOutside` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8546
+ "attributes": [
8547
+ {
8548
+ "name": "disabled",
8549
+ "description": "`disabled` {`boolean`} - \n\nProperty: disabled\n\nDefault: false",
8550
+ "valueSet": "v"
8551
+ }
8552
+ ]
8553
+ },
8554
+ {
8555
+ "name": "nile-wysiwyg-table-menu",
8556
+ "description": "Compact floating bar shown while the cursor is inside a table. The host\npositions it; operations bubble up as `wysiwyg-command` events.\n\nAttributes:\n\n * `open` {`boolean`} - \n\nProperties:\n\n * `open` {`boolean`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
8557
+ "attributes": [
8558
+ {
8559
+ "name": "open",
8560
+ "description": "`open` {`boolean`} - \n\nProperty: open\n\nDefault: false",
8561
+ "valueSet": "v"
8562
+ }
8563
+ ]
8074
8564
  }
8075
8565
  ],
8076
8566
  "globalAttributes": [],