@aquera/nile-elements 1.9.7 → 1.9.9

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 (244) hide show
  1. package/README.md +6 -0
  2. package/dist/{index-249de90a.esm.js → index-289706c7.esm.js} +1 -1
  3. package/dist/{index-df196058.cjs.js → index-d7e6f1c6.cjs.js} +2 -2
  4. package/dist/index-d7e6f1c6.cjs.js.map +1 -0
  5. package/dist/index.cjs.js +1 -1
  6. package/dist/index.esm.js +1 -1
  7. package/dist/index.js +1587 -1276
  8. package/dist/katex-44476ab4.esm.js +1 -0
  9. package/dist/katex-f4186f87.cjs.js +2 -0
  10. package/dist/katex-f4186f87.cjs.js.map +1 -0
  11. package/dist/nile-color-picker/index.cjs.js +1 -1
  12. package/dist/nile-color-picker/index.esm.js +1 -1
  13. package/dist/nile-color-picker/nile-color-picker.cjs.js +1 -1
  14. package/dist/nile-color-picker/nile-color-picker.cjs.js.map +1 -1
  15. package/dist/nile-color-picker/nile-color-picker.esm.js +1 -1
  16. package/dist/nile-select/virtual-scroll-helper.cjs.js +1 -1
  17. package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -1
  18. package/dist/nile-select/virtual-scroll-helper.esm.js +52 -44
  19. package/dist/nile-virtual-select/renderer.cjs.js +1 -1
  20. package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
  21. package/dist/nile-virtual-select/renderer.esm.js +23 -22
  22. package/dist/nile-wysiwyg-editor/engine/commands.cjs.js +1 -1
  23. package/dist/nile-wysiwyg-editor/engine/commands.cjs.js.map +1 -1
  24. package/dist/nile-wysiwyg-editor/engine/commands.esm.js +1 -1
  25. package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js +1 -1
  26. package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js.map +1 -1
  27. package/dist/nile-wysiwyg-editor/engine/create-state.esm.js +1 -1
  28. package/dist/nile-wysiwyg-editor/engine/index.cjs.js +1 -1
  29. package/dist/nile-wysiwyg-editor/engine/index.esm.js +1 -1
  30. package/dist/nile-wysiwyg-editor/engine/inputrules.cjs.js +1 -1
  31. package/dist/nile-wysiwyg-editor/engine/keymap.cjs.js +1 -1
  32. package/dist/nile-wysiwyg-editor/engine/keymap.esm.js +1 -1
  33. package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js +1 -1
  34. package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js.map +1 -1
  35. package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.esm.js +1 -1
  36. package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js +1 -1
  37. package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js.map +1 -1
  38. package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.esm.js +1 -1
  39. package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js +1 -1
  40. package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js.map +1 -1
  41. package/dist/nile-wysiwyg-editor/engine/plugins/embeds.esm.js +1 -1
  42. package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js +1 -1
  43. package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js.map +1 -1
  44. package/dist/nile-wysiwyg-editor/engine/plugins/math-view.esm.js +1 -1
  45. package/dist/nile-wysiwyg-editor/engine/plugins/style-block-view.cjs.js +2 -0
  46. package/dist/nile-wysiwyg-editor/engine/plugins/style-block-view.cjs.js.map +1 -0
  47. package/dist/nile-wysiwyg-editor/engine/plugins/style-block-view.esm.js +1 -0
  48. package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js +1 -1
  49. package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js.map +1 -1
  50. package/dist/nile-wysiwyg-editor/engine/plugins/tables.esm.js +1 -1
  51. package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js +1 -1
  52. package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js.map +1 -1
  53. package/dist/nile-wysiwyg-editor/engine/sanitize.esm.js +1 -1
  54. package/dist/nile-wysiwyg-editor/engine/schema.cjs.js +1 -1
  55. package/dist/nile-wysiwyg-editor/engine/schema.cjs.js.map +1 -1
  56. package/dist/nile-wysiwyg-editor/engine/schema.esm.js +1 -1
  57. package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js +1 -1
  58. package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js.map +1 -1
  59. package/dist/nile-wysiwyg-editor/engine/selection-state.esm.js +1 -1
  60. package/dist/nile-wysiwyg-editor/index.cjs.js +1 -1
  61. package/dist/nile-wysiwyg-editor/index.esm.js +1 -1
  62. package/dist/nile-wysiwyg-editor/math/katex-renderer.cjs.js +2 -0
  63. package/dist/nile-wysiwyg-editor/math/katex-renderer.cjs.js.map +1 -0
  64. package/dist/nile-wysiwyg-editor/math/katex-renderer.esm.js +1 -0
  65. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js +1 -1
  66. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js.map +1 -1
  67. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js +1 -1
  68. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js.map +1 -1
  69. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.esm.js +22 -3
  70. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.esm.js +7 -6
  71. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.cjs.js +1 -1
  72. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.esm.js +1 -1
  73. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.cjs.js +2 -0
  74. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.cjs.js.map +1 -0
  75. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.esm.js +1 -0
  76. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js +1 -1
  77. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js.map +1 -1
  78. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js +1 -1
  79. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js.map +1 -1
  80. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.esm.js +33 -54
  81. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.esm.js +83 -95
  82. package/dist/nile-wysiwyg-editor/types.cjs.js +1 -1
  83. package/dist/nile-wysiwyg-editor/types.cjs.js.map +1 -1
  84. package/dist/nile-wysiwyg-editor/types.esm.js +1 -1
  85. package/dist/nile-wysiwyg-editor/ui/bubble-item.cjs.js +2 -0
  86. package/dist/nile-wysiwyg-editor/ui/bubble-item.cjs.js.map +1 -0
  87. package/dist/nile-wysiwyg-editor/ui/bubble-item.esm.js +1 -0
  88. package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js +1 -1
  89. package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js.map +1 -1
  90. package/dist/nile-wysiwyg-editor/ui/bubble-menu.esm.js +23 -15
  91. package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js +1 -1
  92. package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js.map +1 -1
  93. package/dist/nile-wysiwyg-editor/ui/code-block-menu.esm.js +3 -3
  94. package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js +1 -1
  95. package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js.map +1 -1
  96. package/dist/nile-wysiwyg-editor/ui/embed-panel.esm.js +2 -2
  97. package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js +1 -1
  98. package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js.map +1 -1
  99. package/dist/nile-wysiwyg-editor/ui/math-panel.esm.js +0 -3
  100. package/dist/nile-wysiwyg-editor/ui/preview.cjs.js +2 -0
  101. package/dist/nile-wysiwyg-editor/ui/preview.cjs.js.map +1 -0
  102. package/dist/nile-wysiwyg-editor/ui/preview.esm.js +8 -0
  103. package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js +1 -1
  104. package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js.map +1 -1
  105. package/dist/nile-wysiwyg-editor/ui/source-view.esm.js +225 -24
  106. package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js +1 -1
  107. package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js.map +1 -1
  108. package/dist/nile-wysiwyg-editor/ui/suggest-list.esm.js +9 -9
  109. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js +1 -1
  110. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js.map +1 -1
  111. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.esm.js +115 -13
  112. package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js +1 -1
  113. package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js.map +1 -1
  114. package/dist/nile-wysiwyg-editor/ui/table-menu.esm.js +13 -12
  115. package/dist/src/index.d.ts +5 -0
  116. package/dist/src/index.js +3 -0
  117. package/dist/src/index.js.map +1 -1
  118. package/dist/src/nile-color-picker/nile-color-picker.d.ts +1 -0
  119. package/dist/src/nile-color-picker/nile-color-picker.js +1 -0
  120. package/dist/src/nile-color-picker/nile-color-picker.js.map +1 -1
  121. package/dist/src/nile-select/virtual-scroll-helper.js +9 -1
  122. package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -1
  123. package/dist/src/nile-virtual-select/renderer.js +1 -0
  124. package/dist/src/nile-virtual-select/renderer.js.map +1 -1
  125. package/dist/src/nile-wysiwyg-editor/engine/index.d.ts +1 -0
  126. package/dist/src/nile-wysiwyg-editor/engine/index.js +1 -0
  127. package/dist/src/nile-wysiwyg-editor/engine/index.js.map +1 -1
  128. package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js +3 -0
  129. package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js.map +1 -1
  130. package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.d.ts +19 -4
  131. package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js +23 -18
  132. package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js.map +1 -1
  133. package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.d.ts +8 -3
  134. package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js +41 -4
  135. package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js.map +1 -1
  136. package/dist/src/nile-wysiwyg-editor/engine/plugins/style-block-view.d.ts +17 -0
  137. package/dist/src/nile-wysiwyg-editor/engine/plugins/style-block-view.js +174 -0
  138. package/dist/src/nile-wysiwyg-editor/engine/plugins/style-block-view.js.map +1 -0
  139. package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js +33 -2
  140. package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js.map +1 -1
  141. package/dist/src/nile-wysiwyg-editor/engine/pm.test.js +49 -8
  142. package/dist/src/nile-wysiwyg-editor/engine/pm.test.js.map +1 -1
  143. package/dist/src/nile-wysiwyg-editor/engine/sanitize.d.ts +12 -0
  144. package/dist/src/nile-wysiwyg-editor/engine/sanitize.js +76 -8
  145. package/dist/src/nile-wysiwyg-editor/engine/sanitize.js.map +1 -1
  146. package/dist/src/nile-wysiwyg-editor/engine/schema.d.ts +2 -0
  147. package/dist/src/nile-wysiwyg-editor/engine/schema.js +154 -2
  148. package/dist/src/nile-wysiwyg-editor/engine/schema.js.map +1 -1
  149. package/dist/src/nile-wysiwyg-editor/index.d.ts +5 -0
  150. package/dist/src/nile-wysiwyg-editor/index.js +3 -0
  151. package/dist/src/nile-wysiwyg-editor/index.js.map +1 -1
  152. package/dist/src/nile-wysiwyg-editor/math/katex-renderer.d.ts +38 -0
  153. package/dist/src/nile-wysiwyg-editor/math/katex-renderer.js +40 -0
  154. package/dist/src/nile-wysiwyg-editor/math/katex-renderer.js.map +1 -0
  155. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js +22 -3
  156. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js.map +1 -1
  157. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.d.ts +36 -0
  158. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js +125 -8
  159. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js.map +1 -1
  160. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js +5 -2
  161. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js.map +1 -1
  162. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.d.ts +2 -0
  163. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js +1 -0
  164. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js.map +1 -1
  165. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.d.ts +55 -0
  166. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.js +79 -0
  167. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.js.map +1 -0
  168. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js +33 -54
  169. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js.map +1 -1
  170. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.d.ts +50 -2
  171. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js +158 -102
  172. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js.map +1 -1
  173. package/dist/src/nile-wysiwyg-editor/types.d.ts +4 -2
  174. package/dist/src/nile-wysiwyg-editor/types.js +2 -2
  175. package/dist/src/nile-wysiwyg-editor/types.js.map +1 -1
  176. package/dist/src/nile-wysiwyg-editor/ui/bubble-item.d.ts +48 -0
  177. package/dist/src/nile-wysiwyg-editor/ui/bubble-item.js +69 -0
  178. package/dist/src/nile-wysiwyg-editor/ui/bubble-item.js.map +1 -0
  179. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.d.ts +17 -2
  180. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js +128 -35
  181. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js.map +1 -1
  182. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.d.ts +2 -1
  183. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js +4 -3
  184. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js.map +1 -1
  185. package/dist/src/nile-wysiwyg-editor/ui/math-panel.js +0 -3
  186. package/dist/src/nile-wysiwyg-editor/ui/math-panel.js.map +1 -1
  187. package/dist/src/nile-wysiwyg-editor/ui/preview.d.ts +20 -0
  188. package/dist/src/nile-wysiwyg-editor/ui/preview.js +44 -0
  189. package/dist/src/nile-wysiwyg-editor/ui/preview.js.map +1 -0
  190. package/dist/src/nile-wysiwyg-editor/ui/source-view.d.ts +35 -3
  191. package/dist/src/nile-wysiwyg-editor/ui/source-view.js +337 -24
  192. package/dist/src/nile-wysiwyg-editor/ui/source-view.js.map +1 -1
  193. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.d.ts +1 -0
  194. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js +9 -0
  195. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js.map +1 -1
  196. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.d.ts +13 -2
  197. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js +166 -10
  198. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js.map +1 -1
  199. package/dist/src/nile-wysiwyg-editor/ui/table-menu.d.ts +1 -0
  200. package/dist/src/nile-wysiwyg-editor/ui/table-menu.js +10 -8
  201. package/dist/src/nile-wysiwyg-editor/ui/table-menu.js.map +1 -1
  202. package/dist/src/version.js +1 -1
  203. package/dist/src/version.js.map +1 -1
  204. package/dist/tsconfig.tsbuildinfo +1 -1
  205. package/dist/xml-25c4108a.esm.js +1 -0
  206. package/dist/xml-90fd974e.cjs.js +2 -0
  207. package/dist/xml-90fd974e.cjs.js.map +1 -0
  208. package/package.json +2 -1
  209. package/rollup.config.js +1 -0
  210. package/src/index.ts +8 -0
  211. package/src/nile-color-picker/nile-color-picker.ts +1 -0
  212. package/src/nile-select/virtual-scroll-helper.ts +9 -1
  213. package/src/nile-virtual-select/renderer.ts +1 -1
  214. package/src/nile-wysiwyg-editor/engine/index.ts +1 -0
  215. package/src/nile-wysiwyg-editor/engine/plugins/embed-view.ts +3 -0
  216. package/src/nile-wysiwyg-editor/engine/plugins/embeds.ts +26 -20
  217. package/src/nile-wysiwyg-editor/engine/plugins/math-view.ts +45 -4
  218. package/src/nile-wysiwyg-editor/engine/plugins/style-block-view.ts +178 -0
  219. package/src/nile-wysiwyg-editor/engine/plugins/tables.ts +34 -2
  220. package/src/nile-wysiwyg-editor/engine/pm.test.ts +58 -8
  221. package/src/nile-wysiwyg-editor/engine/sanitize.ts +71 -8
  222. package/src/nile-wysiwyg-editor/engine/schema.ts +158 -7
  223. package/src/nile-wysiwyg-editor/index.ts +5 -0
  224. package/src/nile-wysiwyg-editor/math/katex-renderer.ts +59 -0
  225. package/src/nile-wysiwyg-editor/math/katex.d.ts +17 -0
  226. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.ts +22 -3
  227. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.ts +5 -2
  228. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.ts +142 -7
  229. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.ts +2 -0
  230. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.ts +68 -0
  231. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.ts +33 -54
  232. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.ts +202 -108
  233. package/src/nile-wysiwyg-editor/types.ts +6 -4
  234. package/src/nile-wysiwyg-editor/ui/bubble-item.ts +60 -0
  235. package/src/nile-wysiwyg-editor/ui/bubble-menu.ts +147 -40
  236. package/src/nile-wysiwyg-editor/ui/embed-panel.ts +4 -3
  237. package/src/nile-wysiwyg-editor/ui/math-panel.ts +0 -3
  238. package/src/nile-wysiwyg-editor/ui/preview.ts +42 -0
  239. package/src/nile-wysiwyg-editor/ui/source-view.ts +339 -31
  240. package/src/nile-wysiwyg-editor/ui/suggest-list.ts +10 -0
  241. package/src/nile-wysiwyg-editor/ui/table-grid-picker.ts +160 -10
  242. package/src/nile-wysiwyg-editor/ui/table-menu.ts +10 -8
  243. package/vscode-html-custom-data.json +75 -6
  244. package/dist/index-df196058.cjs.js.map +0 -1
@@ -1,137 +1,125 @@
1
- import{__decorate as e}from"tslib";import{html as t,nothing as l}from"lit";import{property as a,state as n,customElement as i}from"lit/decorators.js";import{N as o}from"../../internal/nile-element.esm.js";import{r as s}from"../../internal/glyph.esm.js";import{s as c}from"./nile-wysiwyg-toolbar.css.esm.js";import{D as r}from"../types.esm.js";import"../ui/table-grid-picker.esm.js";import"../../internal/accessibility/a11y.state.enum.esm.js";import"../../internal/accessibility/a11y.property.enum.esm.js";import"../../internal/accessibility/role.enum.esm.js";const d=["#000000","#444444","#666666","#999999","#cccccc","#eeeeee","#ffffff","#d32f2f","#f44336","#ff9800","#ffeb3b","#4caf50","#2196f3","#3f51b5","#9c27b0","#03a9f4","#00bcd4","#009688","#8bc34a","#cddc39","#ffc107","#ff5722"],b={undo:{kind:"button",command:"undo",label:"Undo (Ctrl+Z)",icon:"undo",disabled:e=>!e.canUndo},redo:{kind:"button",command:"redo",label:"Redo (Ctrl+Y)",icon:"redo",disabled:e=>!e.canRedo},findReplace:{kind:"button",command:"openFind",label:"Find & replace (Ctrl+F)",icon:"ng-text-search"},bold:{kind:"button",command:"bold",label:"Bold (Ctrl+B)",icon:"format_bold",active:e=>e.bold},italic:{kind:"button",command:"italic",label:"Italic (Ctrl+I)",icon:"format_italic",active:e=>e.italic},underline:{kind:"button",command:"underline",label:"Underline (Ctrl+U)",icon:"format_underline",active:e=>e.underline},strike:{kind:"button",command:"strike",label:"Strikethrough",icon:"ng-strikethrough",active:e=>e.strike},subscript:{kind:"button",command:"subscript",label:"Subscript (Ctrl+,)",icon:"ng-subscript",active:e=>e.subscript},superscript:{kind:"button",command:"superscript",label:"Superscript (Ctrl+.)",icon:"ng-superscript",active:e=>e.superscript},code:{kind:"button",command:"code",label:"Inline code",text:"</>",active:e=>e.code},alignLeft:{kind:"button",command:"align",attrs:{align:"left"},label:"Align left",icon:"format_align_left",active:e=>"left"===e.align},alignCenter:{kind:"button",command:"align",attrs:{align:"center"},label:"Align center",icon:"format_align_middle",active:e=>"center"===e.align},alignRight:{kind:"button",command:"align",attrs:{align:"right"},label:"Align right",icon:"format_align_right",active:e=>"right"===e.align},alignJustify:{kind:"button",command:"align",attrs:{align:"justify"},label:"Justify",icon:"format_align_justify",active:e=>"justify"===e.align},bulletList:{kind:"button",command:"bulletList",label:"Bulleted list",icon:"format_list_bulleted",active:e=>e.inBulletList},orderedList:{kind:"button",command:"orderedList",label:"Numbered list",icon:"format_list_numbered",active:e=>e.inOrderedList},taskList:{kind:"button",command:"taskList",label:"Checklist",icon:"ng-list-checks",active:e=>e.inTaskList},indent:{kind:"button",command:"indent",label:"Increase indent (Ctrl+])",icon:"ng-list-indent-increase",disabled:e=>e.inCodeBlock},outdent:{kind:"button",command:"outdent",label:"Decrease indent (Ctrl+[)",icon:"ng-list-indent-decrease",disabled:e=>!(e.inBulletList||e.inOrderedList||e.inTaskList||e.inBlockquote||0!==e.blockIndent)},listStyle:{kind:"select",label:"List style",options:e=>e?.inOrderedList?[{value:"",label:"1, 2, 3"},{value:"lower-alpha",label:"a, b, c"},{value:"upper-alpha",label:"A, B, C"},{value:"lower-roman",label:"i, ii, iii"},{value:"upper-roman",label:"I, II, III"},{value:"multilevel",label:"1.1, 1.1.1"}]:[{value:"",label:"• Disc"},{value:"circle",label:"○ Circle"},{value:"square",label:"▪ Square"}],value:e=>e.listStyle??"",command:e=>({name:"setListStyle",attrs:{style:e||null}}),disabled:e=>!e.inBulletList&&!e.inOrderedList},blockquote:{kind:"button",command:"blockquote",label:"Blockquote",text:"❝",active:e=>e.inBlockquote},link:{kind:"button",command:"openLink",label:"Link (Ctrl+K)",icon:"link_2",active:e=>e.linkActive},bookmark:{kind:"button",command:"openBookmark",label:"Insert bookmark (in-text anchor)",icon:"ng-bookmark"},horizontalRule:{kind:"button",command:"horizontalRule",label:"Horizontal rule",icon:"minus"},specialChars:{kind:"button",command:"openSpecialChars",label:"Special characters",text:"Ω"},emoji:{kind:"button",command:"openEmoji",label:"Emoji",icon:"ng-smile"},codeBlock:{kind:"button",command:"codeBlock",label:"Code block (Ctrl+Alt+C)",icon:"ng-code",active:e=>e.inCodeBlock},image:{kind:"button",command:"openImage",label:"Insert image",icon:"image_2"},embed:{kind:"button",command:"openEmbed",label:"Embed video (YouTube, Vimeo, Loom)",icon:"ng-video"},sourceView:{kind:"button",command:"toggleSource",label:"HTML source",icon:"ng-code-xml"},showBlocks:{kind:"button",command:"toggleShowBlocks",label:"Show blocks",icon:"ng-square-pilcrow",active:e=>!!e.showBlocks},clearFormatting:{kind:"button",command:"clearFormatting",label:"Clear formatting",icon:"format_clear"},pastePlainText:{kind:"button",command:"togglePastePlainText",label:"Paste as plain text",icon:"ng-clipboard-paste",active:e=>!!e.pasteAsPlainText},fullscreen:{kind:"button",command:"toggleFullscreen",label:"Fullscreen (Esc to exit)",icon:"ng-maximize-2",iconActive:"ng-minimize-2",active:e=>!!e.fullscreen},shortcutHelp:{kind:"button",command:"openShortcutHelp",label:"Keyboard shortcuts (Ctrl+/)",icon:"ng-keyboard"},exportPdf:{kind:"button",command:"exportPdf",label:"Export to PDF",icon:"ng-printer"},exportWord:{kind:"button",command:"exportWord",label:"Export to Word",icon:"ng-file-text"},exportInlineHtml:{kind:"button",command:"exportInlineHtml",label:"Export HTML with inline styles (email)",icon:"ng-file-code"},importMarkdown:{kind:"button",command:"openMarkdown",label:"Insert from Markdown",icon:"ng-clipboard-paste"},importWord:{kind:"button",command:"importWord",label:"Import from Word",icon:"ng-file-input"},formatPainter:{kind:"button",command:"toggleFormatPainter",label:"Format painter (copy formatting)",icon:"ng-paintbrush",active:e=>!!e.formatPainter},caseChange:{kind:"select",label:"Change case",options:[{value:"",label:"Case"},{value:"upper",label:"UPPERCASE"},{value:"lower",label:"lowercase"},{value:"title",label:"Title Case"},{value:"sentence",label:"Sentence case"}],value:()=>"",command:e=>({name:"changeCase",attrs:{textCase:e||"upper"}}),disabled:e=>e.selectionEmpty},mergeField:{kind:"button",command:"openMergeField",label:"Insert merge field",icon:"ng-braces"},template:{kind:"button",command:"openTemplate",label:"Insert template",icon:"ng-layout-template"},math:{kind:"button",command:"openMath",label:"Insert math (LaTeX)",icon:"ng-sigma"},heading:{kind:"select",label:"Paragraph style",options:[{value:"",label:"Paragraph"},{value:"1",label:"Heading 1"},{value:"2",label:"Heading 2"},{value:"3",label:"Heading 3"},{value:"4",label:"Heading 4"},{value:"5",label:"Heading 5"},{value:"6",label:"Heading 6"}],value:e=>e.headingLevel?String(e.headingLevel):"",command:e=>""===e?{name:"paragraph"}:{name:"heading",attrs:{level:Number(e)}}},fontFamily:{kind:"select",label:"Font family",options:[{value:"",label:"Font"},...["Arial","Georgia","Tahoma","Times New Roman","Trebuchet MS","Verdana","Courier New"].map((e=>({value:e,label:e})))],value:e=>e.fontFamily??"",command:e=>({name:"fontFamily",attrs:{family:e||null}})},fontSize:{kind:"select",label:"Font size",options:[{value:"",label:"Size"},...["10px","12px","14px","16px","18px","20px","24px","28px","32px","48px"].map((e=>({value:e,label:e.replace("px","")})))],value:e=>e.fontSize??"",command:e=>({name:"fontSize",attrs:{size:e||null}})},lineHeight:{kind:"select",label:"Line height",options:[{value:"",label:"Spacing"},{value:"1",label:"1"},{value:"1.15",label:"1.15"},{value:"1.5",label:"1.5"},{value:"2",label:"2"},{value:"2.5",label:"2.5"},{value:"3",label:"3"}],value:e=>e.lineHeight??"",command:e=>({name:"lineHeight",attrs:{lineHeight:e||null}}),disabled:e=>e.inCodeBlock},textColor:{kind:"color",label:"Text color",glyph:"A",command:"textColor",value:e=>e.textColor},bgColor:{kind:"color",label:"Highlight color",glyph:"✎",command:"bgColor",value:e=>e.bgColor}};let m=class extends o{constructor(){super(...arguments),this.config=r,this.disabled=!1,this.openMenu=null,this.recentColors={},this.handleOutsideClick=e=>{this.openMenu&&!e.composedPath().includes(this)&&(this.openMenu=null)}}static get styles(){return[c]}connectedCallback(){super.connectedCallback(),document.addEventListener("mousedown",this.handleOutsideClick)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("mousedown",this.handleOutsideClick)}toggleMenu(e){this.openMenu=this.openMenu===e?null:e}dispatchCommand(e,t){this.emit("wysiwyg-command",{name:e,attrs:t})}withTooltip(e,l){return t`
2
- <nile-lite-tooltip content=${e} placement="bottom">${l}</nile-lite-tooltip>
3
- `}renderButton(e){const l=this.toolbarState,a=!(!l||!e.active)&&e.active(l),n=this.disabled||!(!l||!e.disabled)&&e.disabled(l),i=a&&e.iconActive?e.iconActive:e.icon;return this.withTooltip(e.label,t`
1
+ import{__decorate as i}from"tslib";import{html as s,nothing as n}from"lit";import{property as o,state as e,customElement as c}from"lit/decorators.js";import{N as t}from"../../internal/nile-element.esm.js";import{r as m}from"../../internal/glyph.esm.js";import{s as l}from"./nile-wysiwyg-toolbar.css.esm.js";import{D as r}from"../types.esm.js";import"../ui/table-grid-picker.esm.js";import"../../nile-color-picker/nile-color-picker.esm.js";import"../../internal/accessibility/a11y.state.enum.esm.js";import"../../internal/accessibility/a11y.property.enum.esm.js";import"../../internal/accessibility/role.enum.esm.js";import"../../nile-color-picker/nile-color-picker.css.esm.js";import"../../nile-dropdown/nile-dropdown.esm.js";import"../../nile-dropdown/nile-dropdown.css.esm.js";import"../../internal/animate.esm.js";import"lit/directives/class-map.js";import"../../utilities/animation-registry.esm.js";import"../../internal/tabbable.esm.js";import"../../internal/event.esm.js";import"../../internal/watch.esm.js";import"../../nile-popup/nile-popup.esm.js";import"../../floating-ui.dom-cc9126da.esm.js";import"../../nile-popup/nile-popup.css.esm.js";import"../../nile-dropdown/portal-manager.esm.js";import"../../nile-dropdown/portal-utils.esm.js";import"../../utilities/visibility-manager.esm.js";import"../../nile-menu/nile-menu.esm.js";import"../../nile-menu/nile-menu.css.esm.js";import"../../internal/slot.esm.js";import"../../nile-menu-item/nile-menu-item.esm.js";import"../../nile-menu-item/nile-menu-item.css.esm.js";import"../../nile-icon/index.esm.js";import"lit/directives/unsafe-svg.js";import"../../nile-icon/icons/svg/index.esm.js";import"../../nile-icon/icons/svg/access-request.esm.js";import"../../nile-icon/icons/svg/accessreview.esm.js";import"../../nile-icon/icons/svg/action.esm.js";import"../../nile-icon/icons/svg/activity-logs.esm.js";import"../../nile-icon/icons/svg/address.esm.js";import"../../nile-icon/icons/svg/adjustment.esm.js";import"../../nile-icon/icons/svg/admin-users.esm.js";import"../../nile-icon/icons/svg/agent.esm.js";import"../../nile-icon/icons/svg/aggregation.esm.js";import"../../nile-icon/icons/svg/alert-circle.esm.js";import"../../nile-icon/icons/svg/alert.esm.js";import"../../nile-icon/icons/svg/allapplication.esm.js";import"../../nile-icon/icons/svg/allsearch.esm.js";import"../../nile-icon/icons/svg/analytics.esm.js";import"../../nile-icon/icons/svg/api.esm.js";import"../../nile-icon/icons/svg/applications-2.esm.js";import"../../nile-icon/icons/svg/apply-filter.esm.js";import"../../nile-icon/icons/svg/apps.esm.js";import"../../nile-icon/icons/svg/aquera.esm.js";import"../../nile-icon/icons/svg/aquerasupport.esm.js";import"../../nile-icon/icons/svg/area.esm.js";import"../../nile-icon/icons/svg/array-loop.esm.js";import"../../nile-icon/icons/svg/array-of-boolean.esm.js";import"../../nile-icon/icons/svg/array-of-integer.esm.js";import"../../nile-icon/icons/svg/array-of-string.esm.js";import"../../nile-icon/icons/svg/array.esm.js";import"../../nile-icon/icons/svg/arrayofobject.esm.js";import"../../nile-icon/icons/svg/arrow-left-small.esm.js";import"../../nile-icon/icons/svg/arrow-narrow-left.esm.js";import"../../nile-icon/icons/svg/arrow-right-small.esm.js";import"../../nile-icon/icons/svg/arrow.esm.js";import"../../nile-icon/icons/svg/arrow_left_small.esm.js";import"../../nile-icon/icons/svg/arrow_right_small.esm.js";import"../../nile-icon/icons/svg/arrowdown.esm.js";import"../../nile-icon/icons/svg/arrowdropdown.esm.js";import"../../nile-icon/icons/svg/arrowdropup.esm.js";import"../../nile-icon/icons/svg/arrowleft.esm.js";import"../../nile-icon/icons/svg/arrowright.esm.js";import"../../nile-icon/icons/svg/arrowup.esm.js";import"../../nile-icon/icons/svg/attribute-map-analysis-icon.esm.js";import"../../nile-icon/icons/svg/attribute.esm.js";import"../../nile-icon/icons/svg/attributemap.esm.js";import"../../nile-icon/icons/svg/automation-details.esm.js";import"../../nile-icon/icons/svg/back.esm.js";import"../../nile-icon/icons/svg/bar-and-line-chart.esm.js";import"../../nile-icon/icons/svg/bar-chart-square-02.esm.js";import"../../nile-icon/icons/svg/bar-chart.esm.js";import"../../nile-icon/icons/svg/bargraph.esm.js";import"../../nile-icon/icons/svg/block.esm.js";import"../../nile-icon/icons/svg/bluedot.esm.js";import"../../nile-icon/icons/svg/book-closed.esm.js";import"../../nile-icon/icons/svg/boolean.esm.js";import"../../nile-icon/icons/svg/border_all.esm.js";import"../../nile-icon/icons/svg/box.esm.js";import"../../nile-icon/icons/svg/bubble-chart.esm.js";import"../../nile-icon/icons/svg/bulk-sync.esm.js";import"../../nile-icon/icons/svg/button-loading-black.esm.js";import"../../nile-icon/icons/svg/button-loading-blue-animated.esm.js";import"../../nile-icon/icons/svg/button-loading-blue.esm.js";import"../../nile-icon/icons/svg/button-loading-white.esm.js";import"../../nile-icon/icons/svg/calendar.esm.js";import"../../nile-icon/icons/svg/cases.esm.js";import"../../nile-icon/icons/svg/cell-loader.esm.js";import"../../nile-icon/icons/svg/certification.esm.js";import"../../nile-icon/icons/svg/check-circle.esm.js";import"../../nile-icon/icons/svg/check-done-01.esm.js";import"../../nile-icon/icons/svg/check-done-02.esm.js";import"../../nile-icon/icons/svg/chevron-left-double.esm.js";import"../../nile-icon/icons/svg/chevron-up.esm.js";import"../../nile-icon/icons/svg/class.esm.js";import"../../nile-icon/icons/svg/clock-check.esm.js";import"../../nile-icon/icons/svg/clock-rewind.esm.js";import"../../nile-icon/icons/svg/clock.esm.js";import"../../nile-icon/icons/svg/close.esm.js";import"../../nile-icon/icons/svg/cloud-01.esm.js";import"../../nile-icon/icons/svg/code-generator.esm.js";import"../../nile-icon/icons/svg/collapse-1.esm.js";import"../../nile-icon/icons/svg/collapse.esm.js";import"../../nile-icon/icons/svg/color.esm.js";import"../../nile-icon/icons/svg/column-02.esm.js";import"../../nile-icon/icons/svg/column-add.esm.js";import"../../nile-icon/icons/svg/columns-03.esm.js";import"../../nile-icon/icons/svg/combo1.esm.js";import"../../nile-icon/icons/svg/comment.esm.js";import"../../nile-icon/icons/svg/compact.esm.js";import"../../nile-icon/icons/svg/compare-tiles.esm.js";import"../../nile-icon/icons/svg/compare.esm.js";import"../../nile-icon/icons/svg/component-menu.esm.js";import"../../nile-icon/icons/svg/component.esm.js";import"../../nile-icon/icons/svg/components-icon.esm.js";import"../../nile-icon/icons/svg/componenttext.esm.js";import"../../nile-icon/icons/svg/condition.esm.js";import"../../nile-icon/icons/svg/conditions.esm.js";import"../../nile-icon/icons/svg/connect.esm.js";import"../../nile-icon/icons/svg/connectivitymap.esm.js";import"../../nile-icon/icons/svg/connectorrightarrow.esm.js";import"../../nile-icon/icons/svg/copy-06.esm.js";import"../../nile-icon/icons/svg/copy.esm.js";import"../../nile-icon/icons/svg/cor-analysis.esm.js";import"../../nile-icon/icons/svg/correlation.esm.js";import"../../nile-icon/icons/svg/cost-analytics.esm.js";import"../../nile-icon/icons/svg/create.esm.js";import"../../nile-icon/icons/svg/createuser.esm.js";import"../../nile-icon/icons/svg/dashboard.esm.js";import"../../nile-icon/icons/svg/data-insight.esm.js";import"../../nile-icon/icons/svg/data-type-array.esm.js";import"../../nile-icon/icons/svg/data-type-boolean.esm.js";import"../../nile-icon/icons/svg/data-type-json.esm.js";import"../../nile-icon/icons/svg/data-type-null.esm.js";import"../../nile-icon/icons/svg/data-type-number.esm.js";import"../../nile-icon/icons/svg/data-type-string.esm.js";import"../../nile-icon/icons/svg/data-type-unknown.esm.js";import"../../nile-icon/icons/svg/database.esm.js";import"../../nile-icon/icons/svg/databaseview.esm.js";import"../../nile-icon/icons/svg/dataflow-03.esm.js";import"../../nile-icon/icons/svg/dataflow-04.esm.js";import"../../nile-icon/icons/svg/default-cursor.esm.js";import"../../nile-icon/icons/svg/default.esm.js";import"../../nile-icon/icons/svg/delegate.esm.js";import"../../nile-icon/icons/svg/delete.esm.js";import"../../nile-icon/icons/svg/delete_history.esm.js";import"../../nile-icon/icons/svg/deligateduser.esm.js";import"../../nile-icon/icons/svg/directory.esm.js";import"../../nile-icon/icons/svg/disabled.esm.js";import"../../nile-icon/icons/svg/dock-to-right.esm.js";import"../../nile-icon/icons/svg/document-new.esm.js";import"../../nile-icon/icons/svg/done-02.esm.js";import"../../nile-icon/icons/svg/done.esm.js";import"../../nile-icon/icons/svg/dontmap.esm.js";import"../../nile-icon/icons/svg/donut.esm.js";import"../../nile-icon/icons/svg/dotpoints-02.esm.js";import"../../nile-icon/icons/svg/dots-grid.esm.js";import"../../nile-icon/icons/svg/doublearrowleft.esm.js";import"../../nile-icon/icons/svg/doublearrowright.esm.js";import"../../nile-icon/icons/svg/dowhileloop.esm.js";import"../../nile-icon/icons/svg/downgrade.esm.js";import"../../nile-icon/icons/svg/download.esm.js";import"../../nile-icon/icons/svg/drag.esm.js";import"../../nile-icon/icons/svg/edit-write.esm.js";import"../../nile-icon/icons/svg/else.esm.js";import"../../nile-icon/icons/svg/email.esm.js";import"../../nile-icon/icons/svg/enable.esm.js";import"../../nile-icon/icons/svg/entities.esm.js";import"../../nile-icon/icons/svg/entitlement.esm.js";import"../../nile-icon/icons/svg/error.esm.js";import"../../nile-icon/icons/svg/escalate.esm.js";import"../../nile-icon/icons/svg/exactmatch.esm.js";import"../../nile-icon/icons/svg/execute.esm.js";import"../../nile-icon/icons/svg/expand-03.esm.js";import"../../nile-icon/icons/svg/expand-06.esm.js";import"../../nile-icon/icons/svg/expand-2.esm.js";import"../../nile-icon/icons/svg/expand.esm.js";import"../../nile-icon/icons/svg/eye-off.esm.js";import"../../nile-icon/icons/svg/eye.esm.js";import"../../nile-icon/icons/svg/eyeclosed.esm.js";import"../../nile-icon/icons/svg/featured-icon.esm.js";import"../../nile-icon/icons/svg/file-06.esm.js";import"../../nile-icon/icons/svg/file-check-02.esm.js";import"../../nile-icon/icons/svg/file-shield-01.esm.js";import"../../nile-icon/icons/svg/file-shield-02.esm.js";import"../../nile-icon/icons/svg/file-type-icon.esm.js";import"../../nile-icon/icons/svg/file.esm.js";import"../../nile-icon/icons/svg/filter-1.esm.js";import"../../nile-icon/icons/svg/filter.esm.js";import"../../nile-icon/icons/svg/fingerprint-03.esm.js";import"../../nile-icon/icons/svg/firewall.esm.js";import"../../nile-icon/icons/svg/firewallagent.esm.js";import"../../nile-icon/icons/svg/flow.esm.js";import"../../nile-icon/icons/svg/flowmap-agent.esm.js";import"../../nile-icon/icons/svg/flowmap-application.esm.js";import"../../nile-icon/icons/svg/flowmap-colorpalatte.esm.js";import"../../nile-icon/icons/svg/flowmap-firewall-agent.esm.js";import"../../nile-icon/icons/svg/flowmap-firewall.esm.js";import"../../nile-icon/icons/svg/flowmap-gateway.esm.js";import"../../nile-icon/icons/svg/flowmap-orchestration.esm.js";import"../../nile-icon/icons/svg/flowmap-undo.esm.js";import"../../nile-icon/icons/svg/flowmap-workflow.esm.js";import"../../nile-icon/icons/svg/flowmap.esm.js";import"../../nile-icon/icons/svg/folder.esm.js";import"../../nile-icon/icons/svg/folder_delete.esm.js";import"../../nile-icon/icons/svg/foreach.esm.js";import"../../nile-icon/icons/svg/format_align_justify.esm.js";import"../../nile-icon/icons/svg/format_align_left.esm.js";import"../../nile-icon/icons/svg/format_align_middle.esm.js";import"../../nile-icon/icons/svg/format_align_right.esm.js";import"../../nile-icon/icons/svg/format_bold.esm.js";import"../../nile-icon/icons/svg/format_clear.esm.js";import"../../nile-icon/icons/svg/format_italic.esm.js";import"../../nile-icon/icons/svg/format_list_bulleted.esm.js";import"../../nile-icon/icons/svg/format_list_numbered.esm.js";import"../../nile-icon/icons/svg/format_underline.esm.js";import"../../nile-icon/icons/svg/frequency.esm.js";import"../../nile-icon/icons/svg/full-union.esm.js";import"../../nile-icon/icons/svg/fullscreen.esm.js";import"../../nile-icon/icons/svg/fullscreenexit.esm.js";import"../../nile-icon/icons/svg/fullscreenshrink.esm.js";import"../../nile-icon/icons/svg/function.esm.js";import"../../nile-icon/icons/svg/funnel-02.esm.js";import"../../nile-icon/icons/svg/funnel.esm.js";import"../../nile-icon/icons/svg/gateway.esm.js";import"../../nile-icon/icons/svg/gauge.esm.js";import"../../nile-icon/icons/svg/general.esm.js";import"../../nile-icon/icons/svg/generationphase.esm.js";import"../../nile-icon/icons/svg/global-search.esm.js";import"../../nile-icon/icons/svg/globe-03.esm.js";import"../../nile-icon/icons/svg/globe.esm.js";import"../../nile-icon/icons/svg/goal.esm.js";import"../../nile-icon/icons/svg/goto.esm.js";import"../../nile-icon/icons/svg/graph.esm.js";import"../../nile-icon/icons/svg/graphedit.esm.js";import"../../nile-icon/icons/svg/greendot.esm.js";import"../../nile-icon/icons/svg/greydot.esm.js";import"../../nile-icon/icons/svg/greylightdot.esm.js";import"../../nile-icon/icons/svg/grid-01.esm.js";import"../../nile-icon/icons/svg/group-analysis-icon.esm.js";import"../../nile-icon/icons/svg/group.esm.js";import"../../nile-icon/icons/svg/groupby.esm.js";import"../../nile-icon/icons/svg/groups.esm.js";import"../../nile-icon/icons/svg/guide-01.esm.js";import"../../nile-icon/icons/svg/guide.esm.js";import"../../nile-icon/icons/svg/handtool.esm.js";import"../../nile-icon/icons/svg/header-child-workflow.esm.js";import"../../nile-icon/icons/svg/header-flows.esm.js";import"../../nile-icon/icons/svg/header-tasks.esm.js";import"../../nile-icon/icons/svg/headphones-01.esm.js";import"../../nile-icon/icons/svg/help.esm.js";import"../../nile-icon/icons/svg/helpandsupport.esm.js";import"../../nile-icon/icons/svg/helpers.esm.js";import"../../nile-icon/icons/svg/helpsupport.esm.js";import"../../nile-icon/icons/svg/history.esm.js";import"../../nile-icon/icons/svg/horizontal_bar_chart.esm.js";import"../../nile-icon/icons/svg/identitygraph.esm.js";import"../../nile-icon/icons/svg/identityledger.esm.js";import"../../nile-icon/icons/svg/ifelse.esm.js";import"../../nile-icon/icons/svg/ifelsenew.esm.js";import"../../nile-icon/icons/svg/image.esm.js";import"../../nile-icon/icons/svg/image_2.esm.js";import"../../nile-icon/icons/svg/immutable.esm.js";import"../../nile-icon/icons/svg/info-icon.esm.js";import"../../nile-icon/icons/svg/info.esm.js";import"../../nile-icon/icons/svg/inner-union.esm.js";import"../../nile-icon/icons/svg/inprogress.esm.js";import"../../nile-icon/icons/svg/insert-at-cursor.esm.js";import"../../nile-icon/icons/svg/integer.esm.js";import"../../nile-icon/icons/svg/intersection.esm.js";import"../../nile-icon/icons/svg/js.esm.js";import"../../nile-icon/icons/svg/key-performance-indicator.esm.js";import"../../nile-icon/icons/svg/keyboard-01.esm.js";import"../../nile-icon/icons/svg/keyword.esm.js";import"../../nile-icon/icons/svg/kill.esm.js";import"../../nile-icon/icons/svg/laptop-01.esm.js";import"../../nile-icon/icons/svg/layers-three-02.esm.js";import"../../nile-icon/icons/svg/layout-alt-02.esm.js";import"../../nile-icon/icons/svg/layout-alt-03.esm.js";import"../../nile-icon/icons/svg/left-join.esm.js";import"../../nile-icon/icons/svg/left-union.esm.js";import"../../nile-icon/icons/svg/leftpointarrow.esm.js";import"../../nile-icon/icons/svg/life-buoy-01.esm.js";import"../../nile-icon/icons/svg/line.esm.js";import"../../nile-icon/icons/svg/link.esm.js";import"../../nile-icon/icons/svg/link_2.esm.js";import"../../nile-icon/icons/svg/list-attribute.esm.js";import"../../nile-icon/icons/svg/list.esm.js";import"../../nile-icon/icons/svg/loader.esm.js";import"../../nile-icon/icons/svg/loading.esm.js";import"../../nile-icon/icons/svg/loading2.esm.js";import"../../nile-icon/icons/svg/lock.esm.js";import"../../nile-icon/icons/svg/log-info.esm.js";import"../../nile-icon/icons/svg/log.esm.js";import"../../nile-icon/icons/svg/logo-white.esm.js";import"../../nile-icon/icons/svg/logout.esm.js";import"../../nile-icon/icons/svg/logs.esm.js";import"../../nile-icon/icons/svg/loop.esm.js";import"../../nile-icon/icons/svg/manage.esm.js";import"../../nile-icon/icons/svg/map.esm.js";import"../../nile-icon/icons/svg/mapcreate.esm.js";import"../../nile-icon/icons/svg/mapdont.esm.js";import"../../nile-icon/icons/svg/maponcreate.esm.js";import"../../nile-icon/icons/svg/maponupdate.esm.js";import"../../nile-icon/icons/svg/mapper.esm.js";import"../../nile-icon/icons/svg/mapupdate.esm.js";import"../../nile-icon/icons/svg/marker-pin-01.esm.js";import"../../nile-icon/icons/svg/marker_pin_02.esm.js";import"../../nile-icon/icons/svg/maximize.esm.js";import"../../nile-icon/icons/svg/menu.esm.js";import"../../nile-icon/icons/svg/menu_close.esm.js";import"../../nile-icon/icons/svg/menu_open.esm.js";import"../../nile-icon/icons/svg/message-notification-square.esm.js";import"../../nile-icon/icons/svg/metric.esm.js";import"../../nile-icon/icons/svg/minus.esm.js";import"../../nile-icon/icons/svg/monitor-01.esm.js";import"../../nile-icon/icons/svg/mouse.esm.js";import"../../nile-icon/icons/svg/move-application.esm.js";import"../../nile-icon/icons/svg/moveleft.esm.js";import"../../nile-icon/icons/svg/moveright.esm.js";import"../../nile-icon/icons/svg/mute.esm.js";import"../../nile-icon/icons/svg/my-integration.esm.js";import"../../nile-icon/icons/svg/new-calendar.esm.js";import"../../nile-icon/icons/svg/ng-action.esm.js";import"../../nile-icon/icons/svg/ng-activity.esm.js";import"../../nile-icon/icons/svg/ng-alert-circle.esm.js";import"../../nile-icon/icons/svg/ng-alert-triangle.esm.js";import"../../nile-icon/icons/svg/ng-align-center.esm.js";import"../../nile-icon/icons/svg/ng-annotation-x.esm.js";import"../../nile-icon/icons/svg/ng-arrow-down.esm.js";import"../../nile-icon/icons/svg/ng-arrow-narrow-down.esm.js";import"../../nile-icon/icons/svg/ng-arrow-narrow-left.esm.js";import"../../nile-icon/icons/svg/ng-arrow-narrow-right.esm.js";import"../../nile-icon/icons/svg/ng-arrow-up.esm.js";import"../../nile-icon/icons/svg/ng-bar-chart-12.esm.js";import"../../nile-icon/icons/svg/ng-bar-chart-square-02.esm.js";import"../../nile-icon/icons/svg/ng-battery-charging.esm.js";import"../../nile-icon/icons/svg/ng-bell-01.esm.js";import"../../nile-icon/icons/svg/ng-bell-ringing-04.esm.js";import"../../nile-icon/icons/svg/ng-bold-01.esm.js";import"../../nile-icon/icons/svg/ng-boolean.esm.js";import"../../nile-icon/icons/svg/ng-briefcase-01.esm.js";import"../../nile-icon/icons/svg/ng-building-01.esm.js";import"../../nile-icon/icons/svg/ng-building-05.esm.js";import"../../nile-icon/icons/svg/ng-building-07.esm.js";import"../../nile-icon/icons/svg/ng-button-loading-blue-animated.esm.js";import"../../nile-icon/icons/svg/ng-button-loading-blue.esm.js";import"../../nile-icon/icons/svg/ng-calendar-plus-02.esm.js";import"../../nile-icon/icons/svg/ng-calendar.esm.js";import"../../nile-icon/icons/svg/ng-check-circle-broken.esm.js";import"../../nile-icon/icons/svg/ng-check-circle.esm.js";import"../../nile-icon/icons/svg/ng-check-done-01.esm.js";import"../../nile-icon/icons/svg/ng-check-square-broken.esm.js";import"../../nile-icon/icons/svg/ng-check.esm.js";import"../../nile-icon/icons/svg/ng-chevron-down.esm.js";import"../../nile-icon/icons/svg/ng-chevron-left-double.esm.js";import"../../nile-icon/icons/svg/ng-chevron-left.esm.js";import"../../nile-icon/icons/svg/ng-chevron-right-double.esm.js";import"../../nile-icon/icons/svg/ng-chevron-right.esm.js";import"../../nile-icon/icons/svg/ng-chevron-selector-vertical.esm.js";import"../../nile-icon/icons/svg/ng-chevron-up-double.esm.js";import"../../nile-icon/icons/svg/ng-chevron-up.esm.js";import"../../nile-icon/icons/svg/ng-clock-refresh.esm.js";import"../../nile-icon/icons/svg/ng-columns-02.esm.js";import"../../nile-icon/icons/svg/ng-copy-03.esm.js";import"../../nile-icon/icons/svg/ng-dataflow-02.esm.js";import"../../nile-icon/icons/svg/ng-dataflow-04.esm.js";import"../../nile-icon/icons/svg/ng-dots-grid.esm.js";import"../../nile-icon/icons/svg/ng-dots-vertical.esm.js";import"../../nile-icon/icons/svg/ng-download-01.esm.js";import"../../nile-icon/icons/svg/ng-dropdown.esm.js";import"../../nile-icon/icons/svg/ng-edit-02.esm.js";import"../../nile-icon/icons/svg/ng-edit-05.esm.js";import"../../nile-icon/icons/svg/ng-expand-06.esm.js";import"../../nile-icon/icons/svg/ng-eye-off.esm.js";import"../../nile-icon/icons/svg/ng-eye.esm.js";import"../../nile-icon/icons/svg/ng-file-02.esm.js";import"../../nile-icon/icons/svg/ng-file-06.esm.js";import"../../nile-icon/icons/svg/ng-file-check-02.esm.js";import"../../nile-icon/icons/svg/ng-file-question-03.esm.js";import"../../nile-icon/icons/svg/ng-filter-lines.esm.js";import"../../nile-icon/icons/svg/ng-folder-code.esm.js";import"../../nile-icon/icons/svg/ng-grid-01.esm.js";import"../../nile-icon/icons/svg/ng-hash.esm.js";import"../../nile-icon/icons/svg/ng-help-circle.esm.js";import"../../nile-icon/icons/svg/ng-home-line.esm.js";import"../../nile-icon/icons/svg/ng-image-03.esm.js";import"../../nile-icon/icons/svg/ng-image-user-left.esm.js";import"../../nile-icon/icons/svg/ng-info-circle.esm.js";import"../../nile-icon/icons/svg/ng-italic-01.esm.js";import"../../nile-icon/icons/svg/ng-key-01.esm.js";import"../../nile-icon/icons/svg/ng-layers-three-01.esm.js";import"../../nile-icon/icons/svg/ng-layers-three-02.esm.js";import"../../nile-icon/icons/svg/ng-lightbulb-05.esm.js";import"../../nile-icon/icons/svg/ng-list.esm.js";import"../../nile-icon/icons/svg/ng-lock-03.esm.js";import"../../nile-icon/icons/svg/ng-log-out-01.esm.js";import"../../nile-icon/icons/svg/ng-mail-01.esm.js";import"../../nile-icon/icons/svg/ng-mail-04.esm.js";import"../../nile-icon/icons/svg/ng-marker-pin-01.esm.js";import"../../nile-icon/icons/svg/ng-menu-05.esm.js";import"../../nile-icon/icons/svg/ng-message-text-square-01.esm.js";import"../../nile-icon/icons/svg/ng-minimize-02.esm.js";import"../../nile-icon/icons/svg/ng-minus.esm.js";import"../../nile-icon/icons/svg/ng-monitor.esm.js";import"../../nile-icon/icons/svg/ng-number.esm.js";import"../../nile-icon/icons/svg/ng-pie-chart-03.esm.js";import"../../nile-icon/icons/svg/ng-plus.esm.js";import"../../nile-icon/icons/svg/ng-power-01.esm.js";import"../../nile-icon/icons/svg/ng-refresh-cw-01.esm.js";import"../../nile-icon/icons/svg/ng-refresh-cw-02.esm.js";import"../../nile-icon/icons/svg/ng-rocket-02.esm.js";import"../../nile-icon/icons/svg/ng-rows-01.esm.js";import"../../nile-icon/icons/svg/ng-search-lg.esm.js";import"../../nile-icon/icons/svg/ng-send-01.esm.js";import"../../nile-icon/icons/svg/ng-server.esm.js";import"../../nile-icon/icons/svg/ng-settings-01.esm.js";import"../../nile-icon/icons/svg/ng-share-04.esm.js";import"../../nile-icon/icons/svg/ng-share-06.esm.js";import"../../nile-icon/icons/svg/ng-shield-tick.esm.js";import"../../nile-icon/icons/svg/ng-shopping-bag-01.esm.js";import"../../nile-icon/icons/svg/ng-stars-02.esm.js";import"../../nile-icon/icons/svg/ng-string.esm.js";import"../../nile-icon/icons/svg/ng-switch-horizontal-01.esm.js";import"../../nile-icon/icons/svg/ng-tag.esm.js";import"../../nile-icon/icons/svg/ng-trash-01.esm.js";import"../../nile-icon/icons/svg/ng-trash-03.esm.js";import"../../nile-icon/icons/svg/ng-trend-up-01.esm.js";import"../../nile-icon/icons/svg/ng-underline-01.esm.js";import"../../nile-icon/icons/svg/ng-upload-01.esm.js";import"../../nile-icon/icons/svg/ng-upload-cloud-02.esm.js";import"../../nile-icon/icons/svg/ng-user-01.esm.js";import"../../nile-icon/icons/svg/ng-user-check-02-1.esm.js";import"../../nile-icon/icons/svg/ng-user-check-02.esm.js";import"../../nile-icon/icons/svg/ng-user-plus-02.esm.js";import"../../nile-icon/icons/svg/ng-user-right-01.esm.js";import"../../nile-icon/icons/svg/ng-users-01.esm.js";import"../../nile-icon/icons/svg/ng-wifi.esm.js";import"../../nile-icon/icons/svg/ng-x-circle.esm.js";import"../../nile-icon/icons/svg/ng-x-close.esm.js";import"../../nile-icon/icons/svg/ng-x-square.esm.js";import"../../nile-icon/icons/svg/ng-zap.esm.js";import"../../nile-icon/icons/svg/nightingale-chart.esm.js";import"../../nile-icon/icons/svg/nlp.esm.js";import"../../nile-icon/icons/svg/nomatch.esm.js";import"../../nile-icon/icons/svg/note.esm.js";import"../../nile-icon/icons/svg/notification.esm.js";import"../../nile-icon/icons/svg/notificationadd.esm.js";import"../../nile-icon/icons/svg/notificationadded.esm.js";import"../../nile-icon/icons/svg/null.esm.js";import"../../nile-icon/icons/svg/number.esm.js";import"../../nile-icon/icons/svg/numberinput.esm.js";import"../../nile-icon/icons/svg/numbers.esm.js";import"../../nile-icon/icons/svg/object.esm.js";import"../../nile-icon/icons/svg/operators.esm.js";import"../../nile-icon/icons/svg/options.esm.js";import"../../nile-icon/icons/svg/orchestration-solid.esm.js";import"../../nile-icon/icons/svg/orchestration.esm.js";import"../../nile-icon/icons/svg/organization.esm.js";import"../../nile-icon/icons/svg/other.esm.js";import"../../nile-icon/icons/svg/otherdetails.esm.js";import"../../nile-icon/icons/svg/override.esm.js";import"../../nile-icon/icons/svg/palletemenu.esm.js";import"../../nile-icon/icons/svg/paperclip.esm.js";import"../../nile-icon/icons/svg/partner.esm.js";import"../../nile-icon/icons/svg/partners.esm.js";import"../../nile-icon/icons/svg/pause.esm.js";import"../../nile-icon/icons/svg/pencil.esm.js";import"../../nile-icon/icons/svg/peopletask.esm.js";import"../../nile-icon/icons/svg/persistent-variable.esm.js";import"../../nile-icon/icons/svg/persistentdata.esm.js";import"../../nile-icon/icons/svg/phone.esm.js";import"../../nile-icon/icons/svg/pie.esm.js";import"../../nile-icon/icons/svg/pin.esm.js";import"../../nile-icon/icons/svg/play.esm.js";import"../../nile-icon/icons/svg/play_pause.esm.js";import"../../nile-icon/icons/svg/plus.esm.js";import"../../nile-icon/icons/svg/pluscircle.esm.js";import"../../nile-icon/icons/svg/plussquare.esm.js";import"../../nile-icon/icons/svg/policy.esm.js";import"../../nile-icon/icons/svg/potentialmatch.esm.js";import"../../nile-icon/icons/svg/poweron.esm.js";import"../../nile-icon/icons/svg/predefined.esm.js";import"../../nile-icon/icons/svg/preview.esm.js";import"../../nile-icon/icons/svg/printer.esm.js";import"../../nile-icon/icons/svg/priority-high.esm.js";import"../../nile-icon/icons/svg/priority-highest.esm.js";import"../../nile-icon/icons/svg/priority-low.esm.js";import"../../nile-icon/icons/svg/priority-medium.esm.js";import"../../nile-icon/icons/svg/privilage.esm.js";import"../../nile-icon/icons/svg/privilege.esm.js";import"../../nile-icon/icons/svg/privilegeobject.esm.js";import"../../nile-icon/icons/svg/process.esm.js";import"../../nile-icon/icons/svg/professionaldetails.esm.js";import"../../nile-icon/icons/svg/question.esm.js";import"../../nile-icon/icons/svg/radar.esm.js";import"../../nile-icon/icons/svg/radio.esm.js";import"../../nile-icon/icons/svg/radioactive.esm.js";import"../../nile-icon/icons/svg/radiodone.esm.js";import"../../nile-icon/icons/svg/read.esm.js";import"../../nile-icon/icons/svg/readexpression.esm.js";import"../../nile-icon/icons/svg/readonly.esm.js";import"../../nile-icon/icons/svg/readonlyuser.esm.js";import"../../nile-icon/icons/svg/readuser.esm.js";import"../../nile-icon/icons/svg/reddot.esm.js";import"../../nile-icon/icons/svg/redo-02.esm.js";import"../../nile-icon/icons/svg/redo.esm.js";import"../../nile-icon/icons/svg/refresh.esm.js";import"../../nile-icon/icons/svg/reminder.esm.js";import"../../nile-icon/icons/svg/resize.esm.js";import"../../nile-icon/icons/svg/resource.esm.js";import"../../nile-icon/icons/svg/resource_analysis.esm.js";import"../../nile-icon/icons/svg/resource_graph.esm.js";import"../../nile-icon/icons/svg/restart_alt.esm.js";import"../../nile-icon/icons/svg/revocation-cycle.esm.js";import"../../nile-icon/icons/svg/right-join.esm.js";import"../../nile-icon/icons/svg/right-union.esm.js";import"../../nile-icon/icons/svg/rocket-02.esm.js";import"../../nile-icon/icons/svg/role.esm.js";import"../../nile-icon/icons/svg/run.esm.js";import"../../nile-icon/icons/svg/sankey.esm.js";import"../../nile-icon/icons/svg/save.esm.js";import"../../nile-icon/icons/svg/savings.esm.js";import"../../nile-icon/icons/svg/scatter-plot.esm.js";import"../../nile-icon/icons/svg/schedule.esm.js";import"../../nile-icon/icons/svg/schema.esm.js";import"../../nile-icon/icons/svg/script.esm.js";import"../../nile-icon/icons/svg/search-steps-icon.esm.js";import"../../nile-icon/icons/svg/search.esm.js";import"../../nile-icon/icons/svg/section.esm.js";import"../../nile-icon/icons/svg/select-02.esm.js";import"../../nile-icon/icons/svg/select.esm.js";import"../../nile-icon/icons/svg/selectapplication.esm.js";import"../../nile-icon/icons/svg/selectattributes.esm.js";import"../../nile-icon/icons/svg/semi-circle-donut-chart.esm.js";import"../../nile-icon/icons/svg/send.esm.js";import"../../nile-icon/icons/svg/sendemail.esm.js";import"../../nile-icon/icons/svg/sendescalation.esm.js";import"../../nile-icon/icons/svg/sendreminder.esm.js";import"../../nile-icon/icons/svg/server-03.esm.js";import"../../nile-icon/icons/svg/settings-02.esm.js";import"../../nile-icon/icons/svg/settings.esm.js";import"../../nile-icon/icons/svg/share.esm.js";import"../../nile-icon/icons/svg/shield-01.esm.js";import"../../nile-icon/icons/svg/smartcode.esm.js";import"../../nile-icon/icons/svg/sort.esm.js";import"../../nile-icon/icons/svg/sort_ascending.esm.js";import"../../nile-icon/icons/svg/sort_descending.esm.js";import"../../nile-icon/icons/svg/sortascending.esm.js";import"../../nile-icon/icons/svg/sortdescending.esm.js";import"../../nile-icon/icons/svg/sortdown.esm.js";import"../../nile-icon/icons/svg/sortup.esm.js";import"../../nile-icon/icons/svg/stacked-bar-chart.esm.js";import"../../nile-icon/icons/svg/step_into.esm.js";import"../../nile-icon/icons/svg/step_out.esm.js";import"../../nile-icon/icons/svg/step_over.esm.js";import"../../nile-icon/icons/svg/stop.esm.js";import"../../nile-icon/icons/svg/storybook.esm.js";import"../../nile-icon/icons/svg/string.esm.js";import"../../nile-icon/icons/svg/stringinput.esm.js";import"../../nile-icon/icons/svg/stringletters.esm.js";import"../../nile-icon/icons/svg/support.esm.js";import"../../nile-icon/icons/svg/swap.esm.js";import"../../nile-icon/icons/svg/switch.esm.js";import"../../nile-icon/icons/svg/sync.esm.js";import"../../nile-icon/icons/svg/table.esm.js";import"../../nile-icon/icons/svg/tag.esm.js";import"../../nile-icon/icons/svg/tag_cloud.esm.js";import"../../nile-icon/icons/svg/test.esm.js";import"../../nile-icon/icons/svg/text-02.esm.js";import"../../nile-icon/icons/svg/text.esm.js";import"../../nile-icon/icons/svg/textarea-expander.esm.js";import"../../nile-icon/icons/svg/thumbsdown.esm.js";import"../../nile-icon/icons/svg/thumbsup.esm.js";import"../../nile-icon/icons/svg/thumsup.esm.js";import"../../nile-icon/icons/svg/tick.esm.js";import"../../nile-icon/icons/svg/timeupdate.esm.js";import"../../nile-icon/icons/svg/timezone.esm.js";import"../../nile-icon/icons/svg/transaction_monitor.esm.js";import"../../nile-icon/icons/svg/travel_map.esm.js";import"../../nile-icon/icons/svg/trend-up-02.esm.js";import"../../nile-icon/icons/svg/trigger.esm.js";import"../../nile-icon/icons/svg/undo-02.esm.js";import"../../nile-icon/icons/svg/undo.esm.js";import"../../nile-icon/icons/svg/union.esm.js";import"../../nile-icon/icons/svg/unlink.esm.js";import"../../nile-icon/icons/svg/unmute.esm.js";import"../../nile-icon/icons/svg/update.esm.js";import"../../nile-icon/icons/svg/updown.esm.js";import"../../nile-icon/icons/svg/upgrade.esm.js";import"../../nile-icon/icons/svg/upload.esm.js";import"../../nile-icon/icons/svg/user-group.esm.js";import"../../nile-icon/icons/svg/user.esm.js";import"../../nile-icon/icons/svg/useractive.esm.js";import"../../nile-icon/icons/svg/useradd.esm.js";import"../../nile-icon/icons/svg/useraddgroup.esm.js";import"../../nile-icon/icons/svg/userfind.esm.js";import"../../nile-icon/icons/svg/userimport.esm.js";import"../../nile-icon/icons/svg/userimportgroup.esm.js";import"../../nile-icon/icons/svg/usermixed.esm.js";import"../../nile-icon/icons/svg/userremove.esm.js";import"../../nile-icon/icons/svg/userremovegroup.esm.js";import"../../nile-icon/icons/svg/users-plus.esm.js";import"../../nile-icon/icons/svg/users-up.esm.js";import"../../nile-icon/icons/svg/users.esm.js";import"../../nile-icon/icons/svg/userupdate.esm.js";import"../../nile-icon/icons/svg/validationexpression.esm.js";import"../../nile-icon/icons/svg/variable-global.esm.js";import"../../nile-icon/icons/svg/variable-local.esm.js";import"../../nile-icon/icons/svg/variable-new.esm.js";import"../../nile-icon/icons/svg/variable.esm.js";import"../../nile-icon/icons/svg/video.esm.js";import"../../nile-icon/icons/svg/view.esm.js";import"../../nile-icon/icons/svg/virtualserver.esm.js";import"../../nile-icon/icons/svg/virtualservergroup.esm.js";import"../../nile-icon/icons/svg/visibility.esm.js";import"../../nile-icon/icons/svg/visibilityoff.esm.js";import"../../nile-icon/icons/svg/visual_builder.esm.js";import"../../nile-icon/icons/svg/wait.esm.js";import"../../nile-icon/icons/svg/warning-01.esm.js";import"../../nile-icon/icons/svg/warning.esm.js";import"../../nile-icon/icons/svg/whileloop.esm.js";import"../../nile-icon/icons/svg/workflow-application.esm.js";import"../../nile-icon/icons/svg/workflow-text.esm.js";import"../../nile-icon/icons/svg/workflow.esm.js";import"../../nile-icon/icons/svg/writeexpression.esm.js";import"../../nile-icon/aliasmap.esm.js";import"../../nile-checkbox/nile-checkbox.esm.js";import"../../nile-checkbox/nile-checkbox.css.esm.js";import"../../internal/default-value.esm.js";import"lit/directives/if-defined.js";import"lit/directives/live.js";import"../../nile-color-swatch/nile-color-swatch.esm.js";import"../../nile-color-swatch/nile-color-swatch.css.esm.js";const a={undo:{kind:"button",command:"undo",label:"Undo (Ctrl+Z)",icon:"undo",disabled:i=>!i.canUndo},redo:{kind:"button",command:"redo",label:"Redo (Ctrl+Y)",icon:"redo",disabled:i=>!i.canRedo},findReplace:{kind:"button",command:"openFind",label:"Find & replace (Ctrl+F)",icon:"ng-text-search"},bold:{kind:"button",command:"bold",label:"Bold (Ctrl+B)",icon:"format_bold",active:i=>i.bold},italic:{kind:"button",command:"italic",label:"Italic (Ctrl+I)",icon:"format_italic",active:i=>i.italic},underline:{kind:"button",command:"underline",label:"Underline (Ctrl+U)",icon:"format_underline",active:i=>i.underline},strike:{kind:"button",command:"strike",label:"Strikethrough",icon:"ng-strikethrough",active:i=>i.strike},subscript:{kind:"button",command:"subscript",label:"Subscript (Ctrl+,)",icon:"ng-subscript",active:i=>i.subscript},superscript:{kind:"button",command:"superscript",label:"Superscript (Ctrl+.)",icon:"ng-superscript",active:i=>i.superscript},code:{kind:"button",command:"code",label:"Inline code",text:"</>",active:i=>i.code},alignLeft:{kind:"button",command:"align",attrs:{align:"left"},label:"Align left",icon:"format_align_left",active:i=>"left"===i.align},alignCenter:{kind:"button",command:"align",attrs:{align:"center"},label:"Align center",icon:"format_align_middle",active:i=>"center"===i.align},alignRight:{kind:"button",command:"align",attrs:{align:"right"},label:"Align right",icon:"format_align_right",active:i=>"right"===i.align},alignJustify:{kind:"button",command:"align",attrs:{align:"justify"},label:"Justify",icon:"format_align_justify",active:i=>"justify"===i.align},bulletList:{kind:"button",command:"bulletList",label:"Bulleted list",icon:"format_list_bulleted",active:i=>i.inBulletList},orderedList:{kind:"button",command:"orderedList",label:"Numbered list",icon:"format_list_numbered",active:i=>i.inOrderedList},taskList:{kind:"button",command:"taskList",label:"Checklist",icon:"ng-list-checks",active:i=>i.inTaskList},indent:{kind:"button",command:"indent",label:"Increase indent (Ctrl+])",icon:"ng-list-indent-increase",disabled:i=>i.inCodeBlock},outdent:{kind:"button",command:"outdent",label:"Decrease indent (Ctrl+[)",icon:"ng-list-indent-decrease",disabled:i=>!(i.inBulletList||i.inOrderedList||i.inTaskList||i.inBlockquote||0!==i.blockIndent)},listStyle:{kind:"select",label:"List style",options:i=>i?.inOrderedList?[{value:"",label:"1, 2, 3"},{value:"lower-alpha",label:"a, b, c"},{value:"upper-alpha",label:"A, B, C"},{value:"lower-roman",label:"i, ii, iii"},{value:"upper-roman",label:"I, II, III"},{value:"multilevel",label:"1.1, 1.1.1"}]:[{value:"",label:"• Disc"},{value:"circle",label:"○ Circle"},{value:"square",label:"▪ Square"}],value:i=>i.listStyle??"",command:i=>({name:"setListStyle",attrs:{style:i||null}}),disabled:i=>!i.inBulletList&&!i.inOrderedList},blockquote:{kind:"button",command:"blockquote",label:"Blockquote",text:"❝",active:i=>i.inBlockquote},link:{kind:"button",command:"openLink",label:"Link (Ctrl+K)",icon:"link_2",active:i=>i.linkActive},bookmark:{kind:"button",command:"openBookmark",label:"Insert bookmark (in-text anchor)",icon:"ng-bookmark"},horizontalRule:{kind:"button",command:"horizontalRule",label:"Horizontal rule",icon:"minus"},specialChars:{kind:"button",command:"openSpecialChars",label:"Special characters",text:"Ω"},emoji:{kind:"button",command:"openEmoji",label:"Emoji",icon:"ng-smile"},codeBlock:{kind:"button",command:"codeBlock",label:"Code block (Ctrl+Alt+C)",icon:"ng-code",active:i=>i.inCodeBlock},image:{kind:"button",command:"openImage",label:"Insert image",icon:"image_2"},embed:{kind:"button",command:"openEmbed",label:"Embed video (YouTube, Vimeo, Loom)",icon:"ng-video"},sourceView:{kind:"button",command:"toggleSource",label:"HTML source",icon:"ng-code-xml"},showBlocks:{kind:"button",command:"toggleShowBlocks",label:"Show blocks",icon:"ng-square-pilcrow",active:i=>!!i.showBlocks},clearFormatting:{kind:"button",command:"clearFormatting",label:"Clear formatting",icon:"format_clear"},pastePlainText:{kind:"button",command:"togglePastePlainText",label:"Paste as plain text",icon:"ng-clipboard-paste",active:i=>!!i.pasteAsPlainText},fullscreen:{kind:"button",command:"toggleFullscreen",label:"Fullscreen (Esc to exit)",icon:"ng-maximize-2",iconActive:"ng-minimize-2",active:i=>!!i.fullscreen},shortcutHelp:{kind:"button",command:"openShortcutHelp",label:"Keyboard shortcuts (Ctrl+/)",icon:"ng-keyboard"},exportPdf:{kind:"button",command:"exportPdf",label:"Export to PDF",icon:"ng-printer"},exportWord:{kind:"button",command:"exportWord",label:"Export to Word",icon:"ng-file-text"},exportInlineHtml:{kind:"button",command:"exportInlineHtml",label:"Export HTML with inline styles (email)",icon:"ng-file-code"},importMarkdown:{kind:"button",command:"openMarkdown",label:"Insert from Markdown",icon:"ng-clipboard-paste"},importWord:{kind:"button",command:"importWord",label:"Import from Word",icon:"ng-file-input"},formatPainter:{kind:"button",command:"toggleFormatPainter",label:"Format painter (copy formatting)",icon:"ng-paintbrush",active:i=>!!i.formatPainter},caseChange:{kind:"select",label:"Change case",options:[{value:"",label:"Case"},{value:"upper",label:"UPPERCASE"},{value:"lower",label:"lowercase"},{value:"title",label:"Title Case"},{value:"sentence",label:"Sentence case"}],value:()=>"",command:i=>({name:"changeCase",attrs:{textCase:i||"upper"}}),disabled:i=>i.selectionEmpty},mergeField:{kind:"button",command:"openMergeField",label:"Insert merge field",icon:"ng-braces"},template:{kind:"button",command:"openTemplate",label:"Insert template",icon:"ng-layout-template"},math:{kind:"button",command:"openMath",label:"Insert math (LaTeX)",icon:"ng-sigma"},heading:{kind:"select",label:"Paragraph style",options:[{value:"",label:"Paragraph"},{value:"1",label:"Heading 1"},{value:"2",label:"Heading 2"},{value:"3",label:"Heading 3"},{value:"4",label:"Heading 4"},{value:"5",label:"Heading 5"},{value:"6",label:"Heading 6"}],value:i=>i.headingLevel?String(i.headingLevel):"",command:i=>""===i?{name:"paragraph"}:{name:"heading",attrs:{level:Number(i)}}},fontFamily:{kind:"select",label:"Font family",options:[{value:"",label:"Font"},...["Arial","Georgia","Tahoma","Times New Roman","Trebuchet MS","Verdana","Courier New"].map((i=>({value:i,label:i})))],value:i=>i.fontFamily??"",command:i=>({name:"fontFamily",attrs:{family:i||null}})},fontSize:{kind:"select",label:"Font size",options:[{value:"",label:"Size"},...["10px","12px","14px","16px","18px","20px","24px","28px","32px","48px"].map((i=>({value:i,label:i.replace("px","")})))],value:i=>i.fontSize??"",command:i=>({name:"fontSize",attrs:{size:i||null}})},lineHeight:{kind:"select",label:"Line height",options:[{value:"",label:"Spacing"},{value:"1",label:"1"},{value:"1.15",label:"1.15"},{value:"1.5",label:"1.5"},{value:"2",label:"2"},{value:"2.5",label:"2.5"},{value:"3",label:"3"}],value:i=>i.lineHeight??"",command:i=>({name:"lineHeight",attrs:{lineHeight:i||null}}),disabled:i=>i.inCodeBlock},textColor:{kind:"color",label:"Text color",glyph:"A",command:"textColor",value:i=>i.textColor},bgColor:{kind:"color",label:"Highlight color",glyph:"✎",command:"bgColor",value:i=>i.bgColor}};let p=class extends t{constructor(){super(...arguments),this.config=r,this.disabled=!1,this.openMenu=null,this.overflowOpen=!1,this.handleOutsideClick=i=>{!this.openMenu&&!this.overflowOpen||i.composedPath().includes(this)||(this.openMenu=null,this.overflowOpen=!1)},this.toggleOverflow=()=>{this.overflowOpen=!this.overflowOpen,this.openMenu=null}}static get styles(){return[l]}get isAuthoringContainer(){return!!this.closest("nile-wysiwyg-editor")}connectedCallback(){super.connectedCallback(),this.isAuthoringContainer||document.addEventListener("mousedown",this.handleOutsideClick)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("mousedown",this.handleOutsideClick)}toggleMenu(i){this.openMenu=this.openMenu===i?null:i}dispatchCommand(i,s){this.overflowOpen=!1,this.emit("wysiwyg-command",{name:i,attrs:s})}withTooltip(i,n){return s`
2
+ <nile-lite-tooltip content=${i} placement="top">${n}</nile-lite-tooltip>
3
+ `}renderButton(i,n){const o=this.toolbarState,e=!(!o||!i.active)&&i.active(o),c=this.disabled||!(!o||!i.disabled)&&i.disabled(o),t=n?.label??i.label,l=n?.icon??i.icon,r=e&&i.iconActive?i.iconActive:l;return this.withTooltip(t,s`
4
4
  <button
5
5
  type="button"
6
6
  class="toolbar__button"
7
7
  part="button"
8
- aria-label=${e.label}
9
- aria-pressed=${a?"true":"false"}
10
- ?data-active=${a}
11
- ?disabled=${n}
12
- @mousedown=${e=>e.preventDefault()}
13
- @click=${()=>this.dispatchCommand(e.command,e.attrs)}
8
+ aria-label=${t}
9
+ aria-pressed=${e?"true":"false"}
10
+ ?data-active=${e}
11
+ ?disabled=${c}
12
+ @mousedown=${i=>i.preventDefault()}
13
+ @click=${()=>this.dispatchCommand(i.command,i.attrs)}
14
14
  >
15
- ${i?s(i,18):e.text}
15
+ ${r?m(r,18):i.text}
16
16
  </button>
17
- `)}renderSelect(e,a){const n=this.toolbarState?a.value(this.toolbarState):"",i="function"==typeof a.options?a.options(this.toolbarState):a.options,o=i.find((e=>e.value===n))??i[0],s=this.disabled||!(!this.toolbarState||!a.disabled)&&a.disabled(this.toolbarState),c="fontFamily"===e;return t`
17
+ `)}renderSelect(i,o,e){const c=this.toolbarState?o.value(this.toolbarState):"",t="function"==typeof o.options?o.options(this.toolbarState):o.options,m=t.find((i=>i.value===c))??t[0],l=this.disabled||!(!this.toolbarState||!o.disabled)&&o.disabled(this.toolbarState),r="fontFamily"===i,a=e?.label??o.label;return s`
18
18
  <span class="toolbar__dropdown" part="select">
19
- ${this.withTooltip(a.label,t`
19
+ ${this.withTooltip(a,s`
20
20
  <button
21
21
  type="button"
22
22
  class="toolbar__dd-trigger"
23
- aria-label=${a.label}
24
- aria-expanded=${this.openMenu===e?"true":"false"}
25
- ?disabled=${s}
26
- style=${c&&n?`font-family: ${n}`:""}
27
- @mousedown=${e=>e.preventDefault()}
28
- @click=${()=>this.toggleMenu(e)}
23
+ aria-label=${a}
24
+ aria-expanded=${this.openMenu===i?"true":"false"}
25
+ ?disabled=${l}
26
+ style=${r&&c?`font-family: ${c}`:""}
27
+ @mousedown=${i=>i.preventDefault()}
28
+ @click=${()=>this.toggleMenu(i)}
29
29
  >
30
- ${o.label}
30
+ ${m.label}
31
31
  <nile-glyph name="arrowdown" size="16"></nile-glyph>
32
32
  </button>
33
33
  `)}
34
- ${this.openMenu===e?t`
35
- <div class="toolbar__dd-menu" @mousedown=${e=>e.preventDefault()}>
36
- ${i.map((e=>t`
34
+ ${this.openMenu===i?s`
35
+ <div class="toolbar__dd-menu" @mousedown=${i=>i.preventDefault()}>
36
+ ${t.map((i=>s`
37
37
  <div
38
38
  class="toolbar__dd-item"
39
- ?data-active=${e.value===n}
40
- style=${c&&e.value?`font-family: ${e.value}`:""}
41
- @click=${()=>{this.openMenu=null;const{name:t,attrs:l}=a.command(e.value);this.dispatchCommand(t,l)}}
39
+ ?data-active=${i.value===c}
40
+ style=${r&&i.value?`font-family: ${i.value}`:""}
41
+ @click=${()=>{this.openMenu=null;const{name:s,attrs:n}=o.command(i.value);this.dispatchCommand(s,n)}}
42
42
  >
43
- ${e.label}
43
+ ${i.label}
44
44
  </div>
45
45
  `))}
46
46
  </div>
47
- `:l}
47
+ `:n}
48
48
  </span>
49
- `}setColor(e,t,l){this.openMenu=null;const a=this.recentColors[e]??[];this.recentColors={...this.recentColors,[e]:[l,...a.filter((e=>e!==l))].slice(0,8)},this.dispatchCommand(t.command,{color:l})}renderColor(e,a){const n=this.toolbarState?a.value(this.toolbarState):null,i=n??"#000000",o=this.recentColors[e]??[],s="bgColor"===a.command;return t`
49
+ `}setColor(i,s){this.dispatchCommand(i.command,{color:"none"===s?"":s})}renderColor(i,o,e){const c=(this.toolbarState?o.value(this.toolbarState):null)??"#000000",t="bgColor"===o.command,m=e?.label??o.label;return s`
50
50
  <span class="toolbar__color" part="color">
51
- ${this.withTooltip(a.label,t`
51
+ ${this.withTooltip(m,s`
52
52
  <button
53
53
  type="button"
54
54
  class="toolbar__button"
55
- aria-label=${a.label}
56
- aria-expanded=${this.openMenu===e?"true":"false"}
55
+ aria-label=${m}
56
+ aria-expanded=${this.openMenu===i?"true":"false"}
57
57
  ?disabled=${this.disabled}
58
- @mousedown=${e=>e.preventDefault()}
59
- @click=${()=>this.toggleMenu(e)}
58
+ @mousedown=${i=>i.preventDefault()}
59
+ @click=${()=>this.toggleMenu(i)}
60
60
  >
61
- ${s?t`<span class="swatch-box" style="background: ${i}"></span>`:t`
61
+ ${t?s`<span class="swatch-box" style="background: ${c}"></span>`:s`
62
62
  <span class="glyph-stack">
63
63
  <span class="glyph">A</span>
64
- <span class="underline" style="background: ${i}"></span>
64
+ <span class="underline" style="background: ${c}"></span>
65
65
  </span>
66
66
  `}
67
67
  </button>
68
68
  `)}
69
- ${this.openMenu===e?t`
70
- <div class="toolbar__swatch-panel" @mousedown=${e=>e.preventDefault()}>
71
- <div class="section">
72
- <div class="title">Default</div>
73
- <div class="swatches">
74
- ${d.map((i=>t`
75
- <button
76
- type="button"
77
- class="swatch"
78
- style="background: ${i}"
79
- title=${i}
80
- @click=${()=>this.setColor(e,a,i)}
81
- >
82
- ${n===i?t`<span class="checkmark">✓</span>`:l}
83
- </button>
84
- `))}
85
- </div>
86
- </div>
87
- ${o.length?t`
88
- <div class="section">
89
- <div class="title">Recently Used</div>
90
- <div class="swatches">
91
- ${o.map((l=>t`
92
- <button
93
- type="button"
94
- class="swatch"
95
- style="background: ${l}"
96
- title=${l}
97
- @click=${()=>this.setColor(e,a,l)}
98
- ></button>
99
- `))}
100
- </div>
101
- </div>
102
- `:l}
103
- <div class="section">
104
- <div class="title">Custom</div>
105
- <div class="swatches">
106
- <button
107
- type="button"
108
- class="swatch add"
109
- @click=${e=>{const t=e.currentTarget.closest(".toolbar__color").querySelector('input[type="color"]');t?.click()}}
110
- >
111
- +
112
- </button>
113
- </div>
114
- </div>
69
+ ${this.openMenu===i?s`
70
+ <div class="toolbar__color-panel">
71
+ <nile-color-picker
72
+ mode="inline"
73
+ type="swatches"
74
+ .noFill=${t}
75
+ .value=${c}
76
+ @nile-change=${i=>this.setColor(o,i.detail.value)}
77
+ ></nile-color-picker>
115
78
  </div>
116
- `:l}
117
- <input
118
- type="color"
119
- tabindex="-1"
120
- aria-hidden="true"
121
- .value=${i}
122
- @input=${t=>this.setColor(e,a,t.target.value)}
123
- />
79
+ `:n}
124
80
  </span>
125
- `}renderItem(e){if("table"===e)return this.withTooltip("Insert table",t`
81
+ `}renderItem(i,o){if("table"===i)return this.withTooltip(o?.label??"Insert table",s`
126
82
  <nile-wysiwyg-table-picker
127
83
  part="button"
128
84
  ?disabled=${this.disabled}
129
85
  ></nile-wysiwyg-table-picker>
130
- `);const a=b[e];if(!a)return l;switch(a.kind){case"button":return this.renderButton(a);case"select":return this.renderSelect(e,a);case"color":return this.renderColor(e,a);default:return l}}render(){const e=this.config.split("|").map((e=>e.trim().split(/\s+/).filter(Boolean))).filter((e=>e.length>0));return t`
86
+ `);const e=a[i];if(!e)return n;switch(e.kind){case"button":return this.renderButton(e,o);case"select":return this.renderSelect(i,e,o);case"color":return this.renderColor(i,e,o);default:return n}}itemsFromConfig(i){return i.trim().split(/\s+/).filter(Boolean).map((i=>({name:i})))}groupItems(i){const s=[[]];for(const n of i)"|"!==n.name?s[s.length-1].push(n):s[s.length-1].length&&s.push([]);return s.filter((i=>i.length>0))}partitionGroups(i){const s=i.findIndex((i=>">>"===i.name));return-1!==s?{main:this.groupItems(i.slice(0,s)),overflow:this.groupItems(i.slice(s+1))}:i.some((i=>i.overflow))?{main:this.groupItems(i.filter((i=>!i.overflow))),overflow:this.groupItems(i.filter((i=>i.overflow)))}:{main:this.groupItems(i),overflow:[]}}renderOverflow(i,o){const e=this.overflowOpen;return s`
87
+ ${i?s`<span class="toolbar__divider"></span>`:n}
88
+ <span class="toolbar__overflow" part="overflow">
89
+ ${this.withTooltip("More",s`
90
+ <button
91
+ type="button"
92
+ class="toolbar__button"
93
+ aria-label="More"
94
+ aria-haspopup="true"
95
+ aria-expanded=${e?"true":"false"}
96
+ ?data-active=${e}
97
+ ?disabled=${this.disabled}
98
+ @mousedown=${i=>i.preventDefault()}
99
+ @click=${this.toggleOverflow}
100
+ >
101
+ ${m("ng-dots-vertical",18)}
102
+ </button>
103
+ `)}
104
+ ${e?s`
105
+ <div
106
+ class="toolbar__overflow-panel"
107
+ part="overflow-panel"
108
+ @mousedown=${i=>i.preventDefault()}
109
+ >
110
+ ${o.map(((i,o)=>s`
111
+ ${o>0?s`<span class="toolbar__overflow-divider"></span>`:n}
112
+ ${i.map((i=>this.renderItem(i.name,{label:i.label,icon:i.icon})))}
113
+ `))}
114
+ </div>
115
+ `:n}
116
+ </span>
117
+ `}render(){if(this.isAuthoringContainer)return s``;const i=this.items&&this.items.length?this.items:this.itemsFromConfig(this.config),{main:o,overflow:e}=this.partitionGroups(i);return s`
131
118
  <div class="toolbar" part="toolbar" role="toolbar" aria-label="Text formatting">
132
- ${e.map(((e,a)=>t`
133
- ${a>0?t`<span class="toolbar__divider"></span>`:l}
134
- ${e.map((e=>this.renderItem(e)))}
119
+ ${o.map(((i,o)=>s`
120
+ ${o>0?s`<span class="toolbar__divider"></span>`:n}
121
+ ${i.map((i=>this.renderItem(i.name,{label:i.label,icon:i.icon})))}
135
122
  `))}
123
+ ${e.length?this.renderOverflow(o.length>0,e):n}
136
124
  </div>
137
- `}};e([a({type:String})],m.prototype,"config",void 0),e([a({type:Boolean,reflect:!0})],m.prototype,"disabled",void 0),e([a({attribute:!1})],m.prototype,"toolbarState",void 0),e([n()],m.prototype,"openMenu",void 0),e([n()],m.prototype,"recentColors",void 0),m=e([i("nile-wysiwyg-toolbar")],m);export{m as N};
125
+ `}};i([o({type:String})],p.prototype,"config",void 0),i([o({attribute:!1})],p.prototype,"items",void 0),i([o({type:Boolean,reflect:!0})],p.prototype,"disabled",void 0),i([o({attribute:!1})],p.prototype,"toolbarState",void 0),i([e()],p.prototype,"openMenu",void 0),i([e()],p.prototype,"overflowOpen",void 0),p=i([c("nile-wysiwyg-toolbar")],p);
@@ -1,2 +1,2 @@
1
- System.register([],function(_export,_context){"use strict";var e;return{setters:[],execute:function execute(){_export("D",e="undo redo findReplace | heading | bold italic underline strike subscript superscript | fontFamily fontSize lineHeight | textColor bgColor | alignLeft alignCenter alignRight alignJustify | bulletList orderedList taskList listStyle indent outdent blockquote | link bookmark table image embed codeBlock math horizontalRule specialChars emoji | mergeField template | formatPainter caseChange clearFormatting pastePlainText showBlocks sourceView | importMarkdown importWord exportInlineHtml exportWord exportPdf | shortcutHelp fullscreen");}};});
1
+ System.register([],function(_export,_context){"use strict";var e;return{setters:[],execute:function execute(){_export("D",e="undo redo findReplace | heading | bold italic underline strike subscript superscript | fontFamily fontSize lineHeight | textColor bgColor | alignLeft alignCenter alignRight alignJustify | bulletList orderedList taskList listStyle indent outdent blockquote | link bookmark table image embed codeBlock math horizontalRule specialChars emoji >> mergeField template | formatPainter caseChange clearFormatting pastePlainText showBlocks sourceView | importMarkdown importWord exportInlineHtml exportWord exportPdf | shortcutHelp fullscreen");}};});
2
2
  //# sourceMappingURL=types.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs.js","sources":["../../../src/nile-wysiwyg-editor/types.ts"],"sourcesContent":["import type { CommandAttrs, CommandName } from './engine/commands';\n\n/**\n * Toolbar configuration. The string form uses space-separated item names with\n * `|` as a group divider, e.g. `\"bold italic | heading | link\"`. `\"none\"`\n * hides the toolbar entirely.\n */\nexport type ToolbarConfig = string;\n\n/** Pseudo-commands handled by the host chrome rather than the registry. */\nexport type UiCommandName =\n | 'openLink'\n | 'openImage'\n | 'openEmbed'\n | 'openBookmark'\n | 'toggleSource'\n | 'togglePastePlainText'\n | 'toggleFullscreen'\n | 'toggleShowBlocks'\n | 'openShortcutHelp'\n | 'openSpecialChars'\n | 'openEmoji'\n | 'openFind'\n | 'exportPdf'\n | 'exportWord'\n | 'exportInlineHtml'\n | 'importWord'\n | 'toggleFormatPainter'\n | 'openMergeField'\n | 'openTemplate'\n | 'openMath'\n | 'openMarkdown';\n\n/** Detail payload of the internal `wysiwyg-command` event (toolbar → host). */\nexport interface WysiwygCommandDetail {\n name: CommandName | UiCommandName;\n attrs?: CommandAttrs;\n}\n\n/** Mention configuration: trigger character → items. Same shape as the\n * legacy nile-rich-text-editor. */\nexport type MentionsConfig = Record<string, { key: string; label: string }[]>;\n\n/** Reusable content snippet, offered through the \"/\" menu. */\nexport interface SnippetConfig {\n key: string;\n label: string;\n html: string;\n}\n\n/** A mail-merge / personalization placeholder offered in the merge-field picker. */\nexport interface MergeFieldConfig {\n /** Stable identifier substituted at render time (e.g. `first_name`). */\n id: string;\n /** Human-readable label shown in the chip and picker. */\n label: string;\n}\n\n/** A predefined content structure offered in the template picker. */\nexport interface TemplateConfig {\n label: string;\n /** Optional secondary line shown under the label in the picker. */\n description?: string;\n /** HTML inserted at the cursor when chosen. */\n html: string;\n}\n\n/** Detail payload of `nile-change` / `nile-input`. */\nexport interface WysiwygChangeDetail {\n value: string;\n json: Record<string, unknown>;\n /** Alias of `value` for drop-in parity with nile-rich-text-editor. */\n content: string;\n}\n\nexport const DEFAULT_TOOLBAR =\n 'undo redo findReplace | heading | bold italic underline strike subscript superscript | fontFamily fontSize lineHeight | ' +\n 'textColor bgColor | alignLeft alignCenter alignRight alignJustify | ' +\n 'bulletList orderedList taskList listStyle indent outdent blockquote | ' +\n 'link bookmark table image embed codeBlock math horizontalRule specialChars emoji | ' +\n 'mergeField template | ' +\n 'formatPainter caseChange clearFormatting pastePlainText showBlocks sourceView | ' +\n 'importMarkdown importWord exportInlineHtml exportWord exportPdf | shortcutHelp fullscreen';\n"],"names":["DEFAULT_TOOLBAR"],"mappings":"0HA2EaA,EACX"}
1
+ {"version":3,"file":"types.cjs.js","sources":["../../../src/nile-wysiwyg-editor/types.ts"],"sourcesContent":["import type { CommandAttrs, CommandName } from './engine/commands';\n\n/**\n * Toolbar configuration. The string form uses space-separated item names with\n * `|` as a group divider, e.g. `\"bold italic | heading | link\"`. A `>>` marker\n * moves every item after it into a collapsible 3-dot \"more\" menu, e.g.\n * `\"bold italic | heading >> link image | sourceView\"`. `\"none\"` hides the\n * toolbar entirely.\n */\nexport type ToolbarConfig = string;\n\n/** Pseudo-commands handled by the host chrome rather than the registry. */\nexport type UiCommandName =\n | 'openLink'\n | 'openImage'\n | 'openEmbed'\n | 'openBookmark'\n | 'toggleSource'\n | 'togglePastePlainText'\n | 'toggleFullscreen'\n | 'toggleShowBlocks'\n | 'openShortcutHelp'\n | 'openSpecialChars'\n | 'openEmoji'\n | 'openFind'\n | 'exportPdf'\n | 'exportWord'\n | 'exportInlineHtml'\n | 'importWord'\n | 'toggleFormatPainter'\n | 'openMergeField'\n | 'openTemplate'\n | 'openMath'\n | 'openMarkdown';\n\n/** Detail payload of the internal `wysiwyg-command` event (toolbar → host). */\nexport interface WysiwygCommandDetail {\n name: CommandName | UiCommandName;\n attrs?: CommandAttrs;\n}\n\n/** Mention configuration: trigger character → items. Same shape as the\n * legacy nile-rich-text-editor. */\nexport type MentionsConfig = Record<string, { key: string; label: string }[]>;\n\n/** Reusable content snippet, offered through the \"/\" menu. */\nexport interface SnippetConfig {\n key: string;\n label: string;\n html: string;\n}\n\n/** A mail-merge / personalization placeholder offered in the merge-field picker. */\nexport interface MergeFieldConfig {\n /** Stable identifier substituted at render time (e.g. `first_name`). */\n id: string;\n /** Human-readable label shown in the chip and picker. */\n label: string;\n}\n\n/** A predefined content structure offered in the template picker. */\nexport interface TemplateConfig {\n label: string;\n /** Optional secondary line shown under the label in the picker. */\n description?: string;\n /** HTML inserted at the cursor when chosen. */\n html: string;\n}\n\n/** Detail payload of `nile-change` / `nile-input`. */\nexport interface WysiwygChangeDetail {\n value: string;\n json: Record<string, unknown>;\n /** Alias of `value` for drop-in parity with nile-rich-text-editor. */\n content: string;\n}\n\nexport const DEFAULT_TOOLBAR =\n 'undo redo findReplace | heading | bold italic underline strike subscript superscript | fontFamily fontSize lineHeight | ' +\n 'textColor bgColor | alignLeft alignCenter alignRight alignJustify | ' +\n 'bulletList orderedList taskList listStyle indent outdent blockquote | ' +\n 'link bookmark table image embed codeBlock math horizontalRule specialChars emoji ' +\n '>> mergeField template | ' +\n 'formatPainter caseChange clearFormatting pastePlainText showBlocks sourceView | ' +\n 'importMarkdown importWord exportInlineHtml exportWord exportPdf | shortcutHelp fullscreen';\n"],"names":["DEFAULT_TOOLBAR"],"mappings":"0HA6EaA,EACX"}
@@ -1 +1 @@
1
- const e="undo redo findReplace | heading | bold italic underline strike subscript superscript | fontFamily fontSize lineHeight | textColor bgColor | alignLeft alignCenter alignRight alignJustify | bulletList orderedList taskList listStyle indent outdent blockquote | link bookmark table image embed codeBlock math horizontalRule specialChars emoji | mergeField template | formatPainter caseChange clearFormatting pastePlainText showBlocks sourceView | importMarkdown importWord exportInlineHtml exportWord exportPdf | shortcutHelp fullscreen";export{e as D};
1
+ const e="undo redo findReplace | heading | bold italic underline strike subscript superscript | fontFamily fontSize lineHeight | textColor bgColor | alignLeft alignCenter alignRight alignJustify | bulletList orderedList taskList listStyle indent outdent blockquote | link bookmark table image embed codeBlock math horizontalRule specialChars emoji >> mergeField template | formatPainter caseChange clearFormatting pastePlainText showBlocks sourceView | importMarkdown importWord exportInlineHtml exportWord exportPdf | shortcutHelp fullscreen";export{e as D};
@@ -0,0 +1,2 @@
1
+ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js"],function(_export,_context){"use strict";var t,e,r,i,o;function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e));}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t);}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e;}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t);},_getPrototypeOf(t);}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e);}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t;},_setPrototypeOf(t,e);}return{setters:[function(_tslib){t=_tslib.__decorate;},function(_lit){e=_lit.LitElement;},function(_litDecoratorsJs){r=_litDecoratorsJs.property;i=_litDecoratorsJs.customElement;}],execute:function execute(){_export("N",o=/*#__PURE__*/function(_e){function o(){var _this;_classCallCheck(this,o);_this=_callSuper(this,o,arguments),_this.name="",_this.label="",_this.icon="",_this.divider=!1;return _this;}_inherits(o,_e);return _createClass(o,[{key:"createRenderRoot",value:function createRenderRoot(){return this;}},{key:"shouldUpdate",value:function shouldUpdate(){return!1;}}]);}(e));t([r({type:String,reflect:!0})],o.prototype,"name",void 0),t([r({type:String,reflect:!0})],o.prototype,"label",void 0),t([r({type:String,reflect:!0})],o.prototype,"icon",void 0),t([r({type:Boolean,reflect:!0})],o.prototype,"divider",void 0),_export("N",o=t([i("nile-wysiwyg-bubble-item")],o));}};});
2
+ //# sourceMappingURL=bubble-item.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bubble-item.cjs.js","sources":["../../../../src/nile-wysiwyg-editor/ui/bubble-item.ts"],"sourcesContent":["import { LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n/**\n * Declarative, light-DOM marker for a single selection bubble-menu control.\n *\n * Author these as children of `<nile-wysiwyg-editor>` to build the bubble menu\n * shown over a text selection by hand, instead of the built-in five\n * (bold / italic / underline / strike / link) — the same pattern as\n * `<nile-wysiwyg-toolbar-item>`:\n *\n * ```html\n * <nile-wysiwyg-editor bubble-menu>\n * <nile-wysiwyg-bubble-item name=\"bold\"></nile-wysiwyg-bubble-item>\n * <nile-wysiwyg-bubble-item name=\"italic\"></nile-wysiwyg-bubble-item>\n * <nile-wysiwyg-bubble-item divider></nile-wysiwyg-bubble-item>\n * <nile-wysiwyg-bubble-item name=\"link\" label=\"Add link\"></nile-wysiwyg-bubble-item>\n * </nile-wysiwyg-editor>\n * ```\n *\n * `name` maps to a built-in control (`bold`, `italic`, `underline`, `strike`,\n * `code`, `subscript`, `superscript`, `link`, `bulletList`, `orderedList`,\n * `alignLeft`, `alignCenter`, `alignRight`, `clearFormatting`). `label` and\n * `icon` override the built-in tooltip/glyph; set `divider` for a separator.\n *\n * Any other `name` is dispatched as a raw `wysiwyg-command` (so custom editor\n * commands work) as long as an `icon` is supplied.\n *\n * The element renders nothing itself — the editor discovers it and renders the\n * real control inside the bubble menu's shadow DOM.\n *\n * @tag nile-wysiwyg-bubble-item\n */\n@customElement('nile-wysiwyg-bubble-item')\nexport class NileWysiwygBubbleItem extends LitElement {\n protected createRenderRoot(): this {\n return this;\n }\n protected shouldUpdate(): boolean {\n return false;\n }\n\n /** Built-in control name, or a raw command name when paired with `icon`. */\n @property({ type: String, reflect: true }) name = '';\n\n /** Overrides the control's tooltip / accessible label. */\n @property({ type: String, reflect: true }) label = '';\n\n /** Overrides the control's glyph (a `nile-glyph` name). */\n @property({ type: String, reflect: true }) icon = '';\n\n /** Renders a separator instead of a control. */\n @property({ type: Boolean, reflect: true }) divider = false;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-wysiwyg-bubble-item': NileWysiwygBubbleItem;\n }\n}\n"],"names":["NileWysiwygBubbleItem","_e","o","constructor","this","name","label","icon","divider","_this","_inherits","_createClass","key","value","createRenderRoot","shouldUpdate","LitElement","__decorate","property","type","String","reflect","prototype","Boolean","customElement"],"mappings":"4yFAkCaA,CAAN,uBAAAC,EAAA,EAAA,SAAAC,EAAA,CAAAC,KAAAA,KAAAA,CAAAA,eAAAA,MAAAA,CAAAA,mCASsCC,EAAAA,KAAAA,CAAIC,KAAG,EAGPD,CAAAA,KAAAA,CAAKE,MAAG,EAGRF,CAAAA,KAAAA,CAAIG,KAAG,EAGNH,CAAAA,KAAAA,CAAOI,SAAG,CACvD,QAAAC,KAAA,EAlBWC,SAAA,CAAAR,CAAA,CAAAD,EAAA,SAAAU,YAAA,CAAAT,CAAA,GAAAU,GAAA,oBAAAC,KAAA,UAAAC,gBAAAA,CAAAA,CACR,CAAA,MAAOV,KACR,EACS,GAAAQ,GAAA,gBAAAC,KAAA,UAAAE,YAAAA,CAAAA,EACR,MAAO,CAAA,CACR,QANwCC,IASEC,CAAA,CAAA,CAA1CC,EAAS,CAAEC,IAAAA,CAAMC,OAAQC,OAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkBrB,CAAAsB,CAAAA,SAAAA,CAAA,WAAA,EAGVL,CAAAA,CAAAA,CAAAA,CAAA,CAA1CC,CAAS,CAAA,CAAEC,KAAMC,MAAQC,CAAAA,OAAAA,CAAAA,CAAS,KAAmBrB,CAAAsB,CAAAA,SAAAA,CAAA,YAAA,EAGXL,CAAAA,CAAAA,CAAAA,CAAA,CAA1CC,CAAS,CAAA,CAAEC,KAAMC,MAAQC,CAAAA,OAAAA,CAAAA,CAAS,KAAkBrB,CAAAsB,CAAAA,SAAAA,CAAA,WAAA,EAGTL,CAAAA,CAAAA,CAAAA,CAAA,CAA3CC,CAAS,CAAA,CAAEC,KAAMI,OAASF,CAAAA,OAAAA,CAAAA,CAAS,KAAwBrB,CAAAsB,CAAAA,SAAAA,CAAA,cAAA,EAlBjDtB,CAAAA,CAAAA,OAAAA,KAAAA,CAAAA,CAAqBiB,EAAA,CADjCO,CAAAA,CAAc,6BACFxB"}
@@ -0,0 +1 @@
1
+ import{__decorate as t}from"tslib";import{LitElement as e}from"lit";import{property as r,customElement as i}from"lit/decorators.js";let o=class extends e{constructor(){super(...arguments),this.name="",this.label="",this.icon="",this.divider=!1}createRenderRoot(){return this}shouldUpdate(){return!1}};t([r({type:String,reflect:!0})],o.prototype,"name",void 0),t([r({type:String,reflect:!0})],o.prototype,"label",void 0),t([r({type:String,reflect:!0})],o.prototype,"icon",void 0),t([r({type:Boolean,reflect:!0})],o.prototype,"divider",void 0),o=t([i("nile-wysiwyg-bubble-item")],o);export{o as N};
@@ -1,2 +1,2 @@
1
- function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js","../../internal/nile-element.cjs.js","../../internal/glyph.cjs.js","../../internal/accessibility/a11y.state.enum.cjs.js","../../internal/accessibility/a11y.property.enum.cjs.js","../../internal/accessibility/role.enum.cjs.js"],function(_export,_context){"use strict";var e,i,t,o,r,n,a,_templateObject,_templateObject2,_templateObject3,l;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e));}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t);}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e;}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t);},_getPrototypeOf(t);}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e);}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t;},_setPrototypeOf(t,e);}return{setters:[function(_tslib){e=_tslib.__decorate;},function(_lit){i=_lit.css;t=_lit.html;},function(_litDecoratorsJs){o=_litDecoratorsJs.property;r=_litDecoratorsJs.customElement;},function(_internalNileElementCjsJs){n=_internalNileElementCjsJs.N;},function(_internalGlyphCjsJs){a=_internalGlyphCjsJs.r;},function(_internalAccessibilityA11yStateEnumCjsJs){},function(_internalAccessibilityA11yPropertyEnumCjsJs){},function(_internalAccessibilityRoleEnumCjsJs){}],execute:function execute(){l=/*#__PURE__*/function(_n){function l(){var _this;_classCallCheck(this,l);_this=_callSuper(this,l,arguments),_this.open=!1,_this.items=[{name:"bold",label:"Bold",icon:"format_bold",active:function active(e){return e.bold;}},{name:"italic",label:"Italic",icon:"format_italic",active:function active(e){return e.italic;}},{name:"underline",label:"Underline",icon:"format_underline",active:function active(e){return e.underline;}},{name:"strike",label:"Strikethrough",icon:"ng-strikethrough",active:function active(e){return e.strike;}},{name:"openLink",label:"Link",icon:"link_2",active:function active(e){return e.linkActive;}}];return _this;}_inherits(l,_n);return _createClass(l,[{key:"render",value:function render(){var _this2=this;var e=this.toolbarState;return t(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n <div class=\"bubble\" part=\"bubble-menu\" @mousedown=",">\n ","\n </div>\n "])),function(e){return e.preventDefault();},this.items.map(function(i){return t(_templateObject2||(_templateObject2=_taggedTemplateLiteral(["\n <button\n type=\"button\"\n title=","\n aria-label=","\n ?data-active=","\n @click=","\n >\n ","\n </button>\n "])),i.label,i.label,!!e&&i.active(e),function(){return _this2.emit("wysiwyg-command",{name:i.name});},a(i.icon,16));}));}}],[{key:"styles",get:function get(){return[i(_templateObject3||(_templateObject3=_taggedTemplateLiteral(["\n :host {\n font-family: var(\n --nile-font-family-sans-serif,\n var(--ng-font-family-body, system-ui, -apple-system, sans-serif)\n );\n position: absolute;\n z-index: 15;\n display: none;\n }\n\n :host([open]) {\n display: block;\n }\n\n .bubble {\n display: flex;\n gap: 2px;\n padding: 4px;\n background: var(--nile-wysiwyg-popover-bg, #ffffff);\n border: 1px solid\n var(--nile-wysiwyg-border-color, var(--nile-colors-neutral-400, #d0d5dd));\n border-radius: var(--nile-wysiwyg-radius, 8px);\n box-shadow: var(\n --nile-wysiwyg-popover-shadow,\n 0 4px 12px rgba(16, 24, 40, 0.12)\n );\n }\n\n button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n border-radius: 5px;\n background: transparent;\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n color: var(--nile-colors-neutral-700, #344054);\n }\n\n button:hover {\n background: var(--nile-colors-neutral-100, #f2f4f7);\n }\n\n button[data-active] {\n background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50, #eff4ff));\n color: var(--nile-colors-primary-700, var(--ng-componentcolors-utility-blue-700, #1d4ed8));\n }\n "])))];}}]);}(n);e([o({type:Boolean,reflect:!0})],l.prototype,"open",void 0),e([o({attribute:!1})],l.prototype,"toolbarState",void 0),l=e([r("nile-wysiwyg-bubble-menu")],l);}};});
1
+ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js","../../internal/nile-element.cjs.js","../../internal/glyph.cjs.js","../../nile-lite-tooltip/nile-lite-tooltip.cjs.js","../../internal/accessibility/a11y.state.enum.cjs.js","../../internal/accessibility/a11y.property.enum.cjs.js","../../internal/accessibility/role.enum.cjs.js","../../nile-lite-tooltip/nile-lite-tooltip.css.cjs.js","../../tippy.esm-78baa8f2.cjs.js","../../nile-lite-tooltip/utils.cjs.js","../../utilities/visibility-manager.cjs.js"],function(_export,_context){"use strict";var i,t,e,n,r,l,o,a,_templateObject,_templateObject2,_templateObject3,_templateObject4,_templateObject5,s,c,d;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e));}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t);}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e;}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t);},_getPrototypeOf(t);}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e);}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t;},_setPrototypeOf(t,e);}return{setters:[function(_tslib){i=_tslib.__decorate;},function(_lit){t=_lit.css;e=_lit.html;n=_lit.nothing;},function(_litDecoratorsJs){r=_litDecoratorsJs.property;l=_litDecoratorsJs.customElement;},function(_internalNileElementCjsJs){o=_internalNileElementCjsJs.N;},function(_internalGlyphCjsJs){a=_internalGlyphCjsJs.r;},function(_nileLiteTooltipNileLiteTooltipCjsJs){},function(_internalAccessibilityA11yStateEnumCjsJs){},function(_internalAccessibilityA11yPropertyEnumCjsJs){},function(_internalAccessibilityRoleEnumCjsJs){},function(_nileLiteTooltipNileLiteTooltipCssCjsJs){},function(_tippyEsm008CjsJs){},function(_nileLiteTooltipUtilsCjsJs){},function(_utilitiesVisibilityManagerCjsJs){}],execute:function execute(){s={bold:{command:"bold",label:"Bold",icon:"format_bold",active:function active(i){return i.bold;}},italic:{command:"italic",label:"Italic",icon:"format_italic",active:function active(i){return i.italic;}},underline:{command:"underline",label:"Underline",icon:"format_underline",active:function active(i){return i.underline;}},strike:{command:"strike",label:"Strikethrough",icon:"ng-strikethrough",active:function active(i){return i.strike;}},code:{command:"code",label:"Inline code",icon:"ng-code",active:function active(i){return i.code;}},subscript:{command:"subscript",label:"Subscript",icon:"ng-subscript",active:function active(i){return i.subscript;}},superscript:{command:"superscript",label:"Superscript",icon:"ng-superscript",active:function active(i){return i.superscript;}},link:{command:"openLink",label:"Link",icon:"link_2",active:function active(i){return i.linkActive;}},bulletList:{command:"bulletList",label:"Bulleted list",icon:"format_list_bulleted",active:function active(i){return i.inBulletList;}},orderedList:{command:"orderedList",label:"Numbered list",icon:"format_list_numbered",active:function active(i){return i.inOrderedList;}},alignLeft:{command:"align",label:"Align left",icon:"format_align_left",attrs:{align:"left"},active:function active(i){return"left"===i.align;}},alignCenter:{command:"align",label:"Align center",icon:"format_align_middle",attrs:{align:"center"},active:function active(i){return"center"===i.align;}},alignRight:{command:"align",label:"Align right",icon:"format_align_right",attrs:{align:"right"},active:function active(i){return"right"===i.align;}},clearFormatting:{command:"clearFormatting",label:"Clear formatting",icon:"format_clear"}},c=["bold","italic","underline","strike","link"];d=/*#__PURE__*/function(_o){function d(){var _this;_classCallCheck(this,d);_this=_callSuper(this,d,arguments),_this.open=!1;return _this;}_inherits(d,_o);return _createClass(d,[{key:"isAuthoringContainer",get:function get(){return!!this.closest("nile-wysiwyg-editor");}},{key:"render",value:function render(){var _this2=this;if(this.isAuthoringContainer)return e(_templateObject||(_templateObject=_taggedTemplateLiteral([""])));var i=this.toolbarState,t=this.items&&this.items.length?this.items:c.map(function(i){return{name:i};});return e(_templateObject2||(_templateObject2=_taggedTemplateLiteral(["\n <div class=\"bubble\" part=\"bubble-menu\" @mousedown=",">\n ","\n </div>\n "])),function(i){return i.preventDefault();},t.map(function(t){return _this2.renderEntry(t,i);}));}},{key:"renderEntry",value:function renderEntry(i,t){var _r$command,_this3=this;if("|"===i.name)return e(_templateObject3||(_templateObject3=_taggedTemplateLiteral(["<span class=\"divider\" part=\"bubble-divider\"></span>"])));var r=s[i.name],l=i.label||(r===null||r===void 0?void 0:r.label)||i.name,o=i.icon||(r===null||r===void 0?void 0:r.icon);if(!o)return n;var c=(_r$command=r===null||r===void 0?void 0:r.command)!==null&&_r$command!==void 0?_r$command:i.name,_d=r===null||r===void 0?void 0:r.attrs,m=!(!(r!==null&&r!==void 0&&r.active)||!t)&&r.active(t);return e(_templateObject4||(_templateObject4=_taggedTemplateLiteral(["\n <nile-lite-tooltip content="," placement=\"top\">\n <button\n type=\"button\"\n aria-label=","\n ?data-active=","\n @click=","\n >\n ","\n </button>\n </nile-lite-tooltip>\n "])),l,l,m,function(){return _this3.emit("wysiwyg-command",_d?{name:c,attrs:_d}:{name:c});},a(o,16));}}],[{key:"styles",get:function get(){return[t(_templateObject5||(_templateObject5=_taggedTemplateLiteral(["\n :host {\n font-family: var(\n --nile-font-family-sans-serif,\n var(--ng-font-family-body, system-ui, -apple-system, sans-serif)\n );\n position: absolute;\n z-index: 15;\n display: none;\n }\n\n :host([open]) {\n display: block;\n }\n\n .bubble {\n display: flex;\n gap: 2px;\n padding: 4px;\n background: var(--nile-wysiwyg-popover-bg, #ffffff);\n border: 1px solid\n var(--nile-wysiwyg-border-color, var(--nile-colors-neutral-400, #d0d5dd));\n border-radius: var(--nile-wysiwyg-radius, 8px);\n box-shadow: var(\n --nile-wysiwyg-popover-shadow,\n 0 4px 12px rgba(16, 24, 40, 0.12)\n );\n }\n\n button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n border-radius: 5px;\n background: transparent;\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n color: var(--nile-colors-neutral-700, #344054);\n }\n\n button:hover {\n background: var(--nile-colors-neutral-100, #f2f4f7);\n }\n\n button[data-active] {\n background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50, #eff4ff));\n color: var(--nile-colors-primary-700, var(--ng-componentcolors-utility-blue-700, #1d4ed8));\n }\n\n .divider {\n align-self: stretch;\n width: 1px;\n margin: 3px 2px;\n background: var(--nile-colors-neutral-300, #e4e7ec);\n }\n "])))];}}]);}(o);i([r({type:Boolean,reflect:!0})],d.prototype,"open",void 0),i([r({attribute:!1})],d.prototype,"toolbarState",void 0),i([r({attribute:!1})],d.prototype,"items",void 0),d=i([l("nile-wysiwyg-bubble-menu")],d);}};});
2
2
  //# sourceMappingURL=bubble-menu.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bubble-menu.cjs.js","sources":["../../../../src/nile-wysiwyg-editor/ui/bubble-menu.ts"],"sourcesContent":["import { html, css, TemplateResult, CSSResultArray } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport NileElement from '../../internal/nile-element';\nimport { renderGlyph } from '../../internal/glyph';\nimport type { ToolbarState } from '../engine/selection-state';\nimport type { WysiwygCommandDetail } from '../types';\n\ninterface BubbleItem {\n name: WysiwygCommandDetail['name'];\n label: string;\n /** nile-glyph icon name (ng-* names are stroke-drawn). */\n icon: string;\n active: (state: ToolbarState) => boolean;\n}\n\n/**\n * 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 */\n@customElement('nile-wysiwyg-bubble-menu')\nexport class NileWysiwygBubbleMenu extends NileElement {\n @property({ type: Boolean, reflect: true }) open = false;\n\n @property({ attribute: false }) toolbarState?: ToolbarState;\n\n public static get styles(): CSSResultArray {\n return [\n css`\n :host {\n font-family: var(\n --nile-font-family-sans-serif,\n var(--ng-font-family-body, system-ui, -apple-system, sans-serif)\n );\n position: absolute;\n z-index: 15;\n display: none;\n }\n\n :host([open]) {\n display: block;\n }\n\n .bubble {\n display: flex;\n gap: 2px;\n padding: 4px;\n background: var(--nile-wysiwyg-popover-bg, #ffffff);\n border: 1px solid\n var(--nile-wysiwyg-border-color, var(--nile-colors-neutral-400, #d0d5dd));\n border-radius: var(--nile-wysiwyg-radius, 8px);\n box-shadow: var(\n --nile-wysiwyg-popover-shadow,\n 0 4px 12px rgba(16, 24, 40, 0.12)\n );\n }\n\n button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n border-radius: 5px;\n background: transparent;\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n color: var(--nile-colors-neutral-700, #344054);\n }\n\n button:hover {\n background: var(--nile-colors-neutral-100, #f2f4f7);\n }\n\n button[data-active] {\n background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50, #eff4ff));\n color: var(--nile-colors-primary-700, var(--ng-componentcolors-utility-blue-700, #1d4ed8));\n }\n `,\n ];\n }\n\n /** Same icon set as the main toolbar, so both surfaces look identical. */\n private items: BubbleItem[] = [\n { name: 'bold', label: 'Bold', icon: 'format_bold', active: s => s.bold },\n { name: 'italic', label: 'Italic', icon: 'format_italic', active: s => s.italic },\n {\n name: 'underline',\n label: 'Underline',\n icon: 'format_underline',\n active: s => s.underline,\n },\n {\n name: 'strike',\n label: 'Strikethrough',\n icon: 'ng-strikethrough',\n active: s => s.strike,\n },\n {\n name: 'openLink',\n label: 'Link',\n icon: 'link_2',\n active: s => s.linkActive,\n },\n ];\n\n public render(): TemplateResult {\n const state = this.toolbarState;\n return html`\n <div class=\"bubble\" part=\"bubble-menu\" @mousedown=${(e: Event) => e.preventDefault()}>\n ${this.items.map(\n item => html`\n <button\n type=\"button\"\n title=${item.label}\n aria-label=${item.label}\n ?data-active=${state ? item.active(state) : false}\n @click=${() => this.emit('wysiwyg-command', { name: item.name })}\n >\n ${renderGlyph(item.icon, 16)}\n </button>\n `\n )}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-wysiwyg-bubble-menu': NileWysiwygBubbleMenu;\n }\n}\n"],"names":["NileWysiwygBubbleMenu","l","this","open","items","name","label","icon","active","s","bold","italic","underline","strike","linkActive","_this","_inherits","_n","_createClass","key","value","render","_this2","state","toolbarState","html","_templateObject","_taggedTemplateLiteral","e","preventDefault","map","item","_templateObject2","emit","renderGlyph","__decorate","get","css","_templateObject3","NileElement","property","type","Boolean","reflect","prototype","attribute","customElement"],"mappings":"g+GAqBaA,4BAAN,SAAAC,EAAA,qEACuCC,EAAAA,KAAAA,CAAIC,MAAG,CA+D3CD,CAAAA,KAAAA,CAAAE,MAAsB,CAC5B,CAAEC,KAAM,MAAQC,CAAAA,KAAAA,CAAO,OAAQC,IAAM,CAAA,aAAA,CAAeC,OAAQC,QAARD,CAAAA,OAAQC,CAAKA,QAAAA,CAAAA,CAAAA,CAAEC,QACnE,CAAEL,IAAAA,CAAM,SAAUC,KAAO,CAAA,QAAA,CAAUC,IAAM,CAAA,eAAA,CAAiBC,OAAQC,QAARD,CAAAA,OAAQC,CAAKA,QAAAA,CAAAA,CAAAA,CAAEE,UACzE,CACEN,IAAAA,CAAM,YACNC,KAAO,CAAA,WAAA,CACPC,KAAM,kBACNC,CAAAA,MAAAA,CAAQC,QAARD,CAAAA,MAAAA,CAAQC,SAAKA,CAAAA,CAAEG,CAAAA,SAAAA,GAAAA,CAEjB,CACEP,IAAM,CAAA,QAAA,CACNC,MAAO,eACPC,CAAAA,IAAAA,CAAM,kBACNC,CAAAA,MAAAA,CAAQC,QAARD,CAAAA,MAAAA,CAAQC,SAAKA,CAAAA,CAAEI,CAAAA,MAAAA,GAAAA,CAEjB,CACER,IAAM,CAAA,UAAA,CACNC,MAAO,MACPC,CAAAA,IAAAA,CAAM,SACNC,MAAQC,CAAAA,QAARD,CAAAA,MAAQC,CAAAA,CAAAA,QAAKA,CAAAA,EAAEK,UAwBpB,GAAA,CAAA,QAAAC,KAAA,EAtGQC,SAAA,CAAAf,CAAA,CAAAgB,EAAA,SAAAC,YAAA,CAAAjB,CAAA,GAAAkB,GAAA,UAAAC,KAAA,CAkFA,SAAAC,MAAAA,CAAAA,CACL,KAAAC,MAAA,MAAA,GAAMC,CAAAA,EAAQrB,IAAKsB,CAAAA,YAAAA,CACnB,MAAOC,CAAAA,CAAI,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA,2GAC4CC,SAAAA,CAAAA,QAAaA,CAAAA,CAAEC,CAAAA,cAAAA,CAAAA,CAAAA,GAChE3B,IAAKE,CAAAA,KAAAA,CAAM0B,GACXC,CAAAA,SAAAA,CAAAA,QAAQN,CAAAA,CAAI,CAAAO,gBAAA,GAAAA,gBAAA,CAAAL,sBAAA,kPAGAI,CAAKzB,CAAAA,KAAAA,CACAyB,CAAKzB,CAAAA,KAAAA,CACHiB,CAAAA,CAAAA,CAAAA,EAAQQ,EAAKvB,MAAOe,CAAAA,CAAAA,CAAAA,CAC1B,iBAAMrB,CAAAA,MAAK+B,CAAAA,IAAAA,CAAK,iBAAmB,CAAA,CAAE5B,KAAM0B,CAAK1B,CAAAA,IAAAA,CAAAA,CAAAA,GAEvD6B,CAAAA,CAAYH,EAAKxB,IAAM,CAAA,EAAA,CAAA,MAMpC,CAzG2C4B,KAAAA,GAAAA,UAAAA,GAAAA,CAIrC,SAAAC,IAAA,CACL,CAAA,MAAO,CACLC,CAAG,CAAAC,gBAAA,GAAAA,gBAAA,CAAAX,sBAAA,okDAsDN,EA0BM,MAvFkCY,CAAAA,EACGJ,CAAAA,CAAA,CAA3CK,CAAAA,CAAS,CAAEC,IAAAA,CAAMC,OAASC,CAAAA,OAAAA,CAAAA,CAAS,CAAqB3C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA4C,SAAA,CAAA,MAAA,CAAA,IAAA,EAEzBT,CAAAA,CAAAA,CAAAA,CAAA,CAA/BK,CAAS,CAAA,CAAEK,SAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqC7C,CAAA4C,CAAAA,SAAAA,CAAA,cAAA,CAAA,IAAA,EAAA,CAAA,CAHjD5C,CAAqBmC,CAAAA,CAAAA,CAAA,CADjCW,CAAAA,CAAc,0BACF9C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA"}
1
+ {"version":3,"file":"bubble-menu.cjs.js","sources":["../../../../src/nile-wysiwyg-editor/ui/bubble-menu.ts"],"sourcesContent":["import { html, css, TemplateResult, CSSResultArray, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport NileElement from '../../internal/nile-element';\nimport { renderGlyph } from '../../internal/glyph';\nimport type { ToolbarState } from '../engine/selection-state';\nimport type { WysiwygCommandDetail } from '../types';\nimport type { AuthoredToolbarItem } from '../nile-wysiwyg-toolbar/nile-wysiwyg-toolbar';\nimport '../../nile-lite-tooltip/nile-lite-tooltip';\n\n/** A control the bubble menu knows how to render, keyed by its authored name. */\ninterface BubbleDef {\n /** The command dispatched on click. */\n command: WysiwygCommandDetail['name'];\n label: string;\n /** nile-glyph icon name (ng-* names are stroke-drawn). */\n icon: string;\n /** Static attrs sent with the command (e.g. alignment direction). */\n attrs?: WysiwygCommandDetail['attrs'];\n active?: (state: ToolbarState) => boolean;\n}\n\n/**\n * Registry of controls addressable by `<nile-wysiwyg-bubble-item name=\"…\">`.\n * Icons/labels mirror the main toolbar so both surfaces look identical.\n */\nconst BUBBLE_ITEMS: Record<string, BubbleDef> = {\n bold: { command: 'bold', label: 'Bold', icon: 'format_bold', active: s => s.bold },\n italic: { command: 'italic', label: 'Italic', icon: 'format_italic', active: s => s.italic },\n underline: {\n command: 'underline',\n label: 'Underline',\n icon: 'format_underline',\n active: s => s.underline,\n },\n strike: {\n command: 'strike',\n label: 'Strikethrough',\n icon: 'ng-strikethrough',\n active: s => s.strike,\n },\n code: { command: 'code', label: 'Inline code', icon: 'ng-code', active: s => s.code },\n subscript: {\n command: 'subscript',\n label: 'Subscript',\n icon: 'ng-subscript',\n active: s => s.subscript,\n },\n superscript: {\n command: 'superscript',\n label: 'Superscript',\n icon: 'ng-superscript',\n active: s => s.superscript,\n },\n link: { command: 'openLink', label: 'Link', icon: 'link_2', active: s => s.linkActive },\n bulletList: {\n command: 'bulletList',\n label: 'Bulleted list',\n icon: 'format_list_bulleted',\n active: s => s.inBulletList,\n },\n orderedList: {\n command: 'orderedList',\n label: 'Numbered list',\n icon: 'format_list_numbered',\n active: s => s.inOrderedList,\n },\n alignLeft: {\n command: 'align',\n label: 'Align left',\n icon: 'format_align_left',\n attrs: { align: 'left' },\n active: s => s.align === 'left',\n },\n alignCenter: {\n command: 'align',\n label: 'Align center',\n icon: 'format_align_middle',\n attrs: { align: 'center' },\n active: s => s.align === 'center',\n },\n alignRight: {\n command: 'align',\n label: 'Align right',\n icon: 'format_align_right',\n attrs: { align: 'right' },\n active: s => s.align === 'right',\n },\n clearFormatting: {\n command: 'clearFormatting',\n label: 'Clear formatting',\n icon: 'format_clear',\n },\n};\n\n/** Built-in default when no `<nile-wysiwyg-bubble-item>` children are authored. */\nconst DEFAULT_BUBBLE = ['bold', 'italic', 'underline', 'strike', 'link'];\n\n/**\n * 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 */\n@customElement('nile-wysiwyg-bubble-menu')\nexport class NileWysiwygBubbleMenu extends NileElement {\n @property({ type: Boolean, reflect: true }) open = false;\n\n @property({ attribute: false }) toolbarState?: ToolbarState;\n\n /**\n * Structured item list authored in light DOM (from\n * `<nile-wysiwyg-bubble-item>` children). `'|'` is a separator. Falls back to\n * {@link DEFAULT_BUBBLE} when empty.\n */\n @property({ attribute: false }) items?: AuthoredToolbarItem[];\n\n public static get styles(): CSSResultArray {\n return [\n css`\n :host {\n font-family: var(\n --nile-font-family-sans-serif,\n var(--ng-font-family-body, system-ui, -apple-system, sans-serif)\n );\n position: absolute;\n z-index: 15;\n display: none;\n }\n\n :host([open]) {\n display: block;\n }\n\n .bubble {\n display: flex;\n gap: 2px;\n padding: 4px;\n background: var(--nile-wysiwyg-popover-bg, #ffffff);\n border: 1px solid\n var(--nile-wysiwyg-border-color, var(--nile-colors-neutral-400, #d0d5dd));\n border-radius: var(--nile-wysiwyg-radius, 8px);\n box-shadow: var(\n --nile-wysiwyg-popover-shadow,\n 0 4px 12px rgba(16, 24, 40, 0.12)\n );\n }\n\n button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n border-radius: 5px;\n background: transparent;\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n color: var(--nile-colors-neutral-700, #344054);\n }\n\n button:hover {\n background: var(--nile-colors-neutral-100, #f2f4f7);\n }\n\n button[data-active] {\n background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50, #eff4ff));\n color: var(--nile-colors-primary-700, var(--ng-componentcolors-utility-blue-700, #1d4ed8));\n }\n\n .divider {\n align-self: stretch;\n width: 1px;\n margin: 3px 2px;\n background: var(--nile-colors-neutral-300, #e4e7ec);\n }\n `,\n ];\n }\n\n /**\n * True when this instance is an author's declarative `<nile-wysiwyg-bubble-menu>`\n * container in an editor's light DOM (holding `<nile-wysiwyg-bubble-item>`\n * children). It renders nothing — the editor reads the items and renders the\n * real bubble menu in its own shadow DOM. The editor's internal instance\n * lives in a shadow root, so `closest` never matches it.\n */\n private get isAuthoringContainer(): boolean {\n return !!this.closest('nile-wysiwyg-editor');\n }\n\n public render(): TemplateResult {\n if (this.isAuthoringContainer) return html``;\n\n const state = this.toolbarState;\n const entries: AuthoredToolbarItem[] =\n this.items && this.items.length\n ? this.items\n : DEFAULT_BUBBLE.map(name => ({ name }));\n return html`\n <div class=\"bubble\" part=\"bubble-menu\" @mousedown=${(e: Event) => e.preventDefault()}>\n ${entries.map(entry => this.renderEntry(entry, state))}\n </div>\n `;\n }\n\n private renderEntry(\n entry: AuthoredToolbarItem,\n state?: ToolbarState\n ): TemplateResult | typeof nothing {\n if (entry.name === '|') {\n return html`<span class=\"divider\" part=\"bubble-divider\"></span>`;\n }\n const base = BUBBLE_ITEMS[entry.name];\n const label = entry.label || base?.label || entry.name;\n const icon = entry.icon || base?.icon;\n // Unknown command with no icon to draw → nothing to render.\n if (!icon) return nothing;\n const command = base?.command ?? (entry.name as WysiwygCommandDetail['name']);\n const attrs = base?.attrs;\n const isActive = base?.active && state ? base.active(state) : false;\n return html`\n <nile-lite-tooltip content=${label} placement=\"top\">\n <button\n type=\"button\"\n aria-label=${label}\n ?data-active=${isActive}\n @click=${() =>\n this.emit('wysiwyg-command', attrs ? { name: command, attrs } : { name: command })}\n >\n ${renderGlyph(icon, 16)}\n </button>\n </nile-lite-tooltip>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-wysiwyg-bubble-menu': NileWysiwygBubbleMenu;\n }\n}\n"],"names":["BUBBLE_ITEMS","bold","command","label","icon","active","s","italic","underline","strike","code","subscript","superscript","link","linkActive","bulletList","inBulletList","orderedList","inOrderedList","alignLeft","attrs","align","alignCenter","alignRight","clearFormatting","DEFAULT_BUBBLE","NileWysiwygBubbleMenu","_o","d","constructor","this","open","_this","_inherits","_createClass","key","get","isAuthoringContainer","closest","value","render","html","_templateObject","_taggedTemplateLiteral","state","toolbarState","entries","items","length","map","name","_templateObject2","e","preventDefault","entry","renderEntry","_templateObject3","base","nothing","isActive","_templateObject4","emit","renderGlyph","styles","css","_templateObject5","NileElement","__decorate","property","type","Boolean","reflect","prototype","attribute","customElement"],"mappings":"68HAyBMA,CAAAA,CAA0C,CAC9CC,IAAAA,CAAM,CAAEC,OAAAA,CAAS,OAAQC,KAAO,CAAA,MAAA,CAAQC,IAAM,CAAA,aAAA,CAAeC,MAAQC,CAAAA,QAARD,CAAAA,MAAQC,CAAAA,CAAAA,QAAKA,CAAAA,EAAEL,IAC5EM,GAAAA,CAAAA,MAAAA,CAAQ,CAAEL,OAAAA,CAAS,QAAUC,CAAAA,KAAAA,CAAO,SAAUC,IAAM,CAAA,eAAA,CAAiBC,MAAQC,CAAAA,QAARD,CAAAA,MAAQC,CAAAA,CAAAA,QAAKA,CAAAA,CAAEC,CAAAA,MAAAA,GAAAA,CACpFC,SAAW,CAAA,CACTN,OAAS,CAAA,WAAA,CACTC,KAAO,CAAA,WAAA,CACPC,IAAM,CAAA,kBAAA,CACNC,OAAQC,QAARD,CAAAA,OAAQC,CAAKA,QAAAA,CAAAA,CAAAA,CAAEE,SAEjBC,GAAAA,CAAAA,MAAAA,CAAQ,CACNP,OAAAA,CAAS,SACTC,KAAO,CAAA,eAAA,CACPC,IAAM,CAAA,kBAAA,CACNC,MAAQC,CAAAA,QAARD,CAAAA,MAAQC,CAAAA,CAAAA,QAAKA,CAAAA,EAAEG,MAEjBC,GAAAA,CAAAA,IAAAA,CAAM,CAAER,OAAAA,CAAS,MAAQC,CAAAA,KAAAA,CAAO,cAAeC,IAAM,CAAA,SAAA,CAAWC,MAAQC,CAAAA,QAARD,CAAAA,MAAQC,CAAAA,CAAAA,QAAKA,CAAAA,CAAEI,CAAAA,IAAAA,GAAAA,CAC/EC,UAAW,CACTT,OAAAA,CAAS,WACTC,CAAAA,KAAAA,CAAO,WACPC,CAAAA,IAAAA,CAAM,eACNC,MAAQC,CAAAA,QAARD,CAAAA,MAAQC,CAAAA,CAAAA,QAAKA,CAAAA,CAAEK,CAAAA,SAAAA,GAAAA,CAEjBC,WAAa,CAAA,CACXV,QAAS,aACTC,CAAAA,KAAAA,CAAO,aACPC,CAAAA,IAAAA,CAAM,gBACNC,CAAAA,MAAAA,CAAQC,QAARD,CAAAA,MAAAA,CAAQC,CAAKA,QAAAA,CAAAA,CAAAA,CAAEM,WAEjBC,GAAAA,CAAAA,IAAAA,CAAM,CAAEX,OAAAA,CAAS,UAAYC,CAAAA,KAAAA,CAAO,OAAQC,IAAM,CAAA,QAAA,CAAUC,MAAQC,CAAAA,QAARD,CAAAA,MAAQC,CAAAA,CAAAA,QAAKA,CAAAA,CAAEQ,CAAAA,UAAAA,GAAAA,CAC3EC,WAAY,CACVb,OAAAA,CAAS,YACTC,CAAAA,KAAAA,CAAO,eACPC,CAAAA,IAAAA,CAAM,uBACNC,MAAQC,CAAAA,QAARD,CAAAA,MAAQC,CAAAA,CAAAA,QAAKA,CAAAA,CAAEU,CAAAA,YAAAA,GAAAA,CAEjBC,WAAa,CAAA,CACXf,QAAS,aACTC,CAAAA,KAAAA,CAAO,eACPC,CAAAA,IAAAA,CAAM,sBACNC,CAAAA,MAAAA,CAAQC,QAARD,CAAAA,MAAAA,CAAQC,SAAKA,CAAAA,CAAEY,CAAAA,aAAAA,GAAAA,CAEjBC,SAAW,CAAA,CACTjB,OAAS,CAAA,OAAA,CACTC,MAAO,YACPC,CAAAA,IAAAA,CAAM,mBACNgB,CAAAA,KAAAA,CAAO,CAAEC,KAAAA,CAAO,QAChBhB,MAAQC,CAAAA,QAARD,CAAAA,MAAQC,CAAAA,CAAAA,QAAiB,MAAZA,GAAAA,CAAAA,CAAEe,KAEjBC,GAAAA,CAAAA,WAAAA,CAAa,CACXpB,OAAAA,CAAS,OACTC,CAAAA,KAAAA,CAAO,cACPC,CAAAA,IAAAA,CAAM,qBACNgB,CAAAA,KAAAA,CAAO,CAAEC,KAAO,CAAA,QAAA,CAAA,CAChBhB,MAAQC,CAAAA,QAARD,CAAAA,MAAQC,CAAAA,CAAAA,QAAiB,QAAZA,GAAAA,CAAAA,CAAEe,SAEjBE,UAAY,CAAA,CACVrB,OAAS,CAAA,OAAA,CACTC,KAAO,CAAA,aAAA,CACPC,KAAM,oBACNgB,CAAAA,KAAAA,CAAO,CAAEC,KAAAA,CAAO,OAChBhB,CAAAA,CAAAA,MAAAA,CAAQC,QAARD,CAAAA,MAAAA,CAAQC,CAAiB,QAAA,OAAA,GAAZA,CAAEe,CAAAA,KAAAA,GAAAA,CAEjBG,eAAiB,CAAA,CACftB,OAAS,CAAA,iBAAA,CACTC,MAAO,kBACPC,CAAAA,IAAAA,CAAM,cAKJqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAC,MAAA,CAAQ,SAAU,WAAa,CAAA,QAAA,CAAU,MAQ1D,CAAA,CAAMC,CAAN,uBAAAC,EAAA,EAAA,SAAAC,EAAA,CAAAC,KAAAA,KAAAA,CAAAA,eAAAA,MAAAA,CAAAA,qCACuCC,KAAAA,CAAIC,IAAAA,CAAAA,CAAG,CAmIpD,QAAAC,KAAA,EAxHQC,SAAA,CAAAL,CAAA,CAAAD,EAAA,SAAAO,YAAA,CAAAN,CAAA,GAAAO,GAAA,wBAAAC,GAAA,CAwEP,SAAAA,IAAA,CAAYC,CACV,MAASP,CAAAA,CAAAA,IAAAA,CAAKQ,QAAQ,qBACvB,CAAA,EAEM,GAAAH,GAAA,UAAAI,KAAA,UAAAC,MAAAA,CAAAA,CAAAA,KAAAA,MAAAA,MACL,GAAIV,IAAAA,CAAKO,oBAAsB,CAAA,MAAOI,CAAAA,CAAI,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA,SAE1C,GAAMC,CAAAA,CAAQd,CAAAA,IAAAA,CAAKe,YACbC,CAAAA,CAAAA,CACJhB,IAAKiB,CAAAA,KAAAA,EAASjB,KAAKiB,KAAMC,CAAAA,MAAAA,CACrBlB,IAAKiB,CAAAA,KAAAA,CACLtB,EAAewB,GAAIC,CAAAA,SAAAA,CAAAA,QAAS,CAAEA,IAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CACpC,MAAOT,CAAAA,CAAI,CAAAU,gBAAA,GAAAA,gBAAA,CAAAR,sBAAA,2GAC4CS,SAAAA,CAAAA,QAAaA,CAAAA,CAAEC,CAAAA,cAAAA,CAAAA,CAAAA,GAChEP,CAAAA,CAAQG,GAAIK,CAAAA,SAAAA,CAAAA,QAASxB,CAAAA,MAAKyB,CAAAA,WAAAA,CAAYD,CAAOV,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAGpD,CAEO,GAAAT,GAAA,eAAAI,KAAA,UAAAgB,WAAAA,CACND,CACAV,CAAAA,CAAAA,CAAAA,KAAAA,UAAAA,CAAAA,MAAAA,MAEA,GAAmB,GAAfU,GAAAA,CAAAA,CAAMJ,IACR,CAAA,MAAOT,CAAAA,CAAI,CAAAe,gBAAA,GAAAA,gBAAA,CAAAb,sBAAA,gEAEb,GAAMc,CAAAA,CAAOzD,CAAAA,CAAAA,CAAasD,EAAMJ,IAC1B/C,CAAAA,CAAAA,CAAAA,CAAQmD,EAAMnD,KAASsD,GAAAA,CAAAA,SAAAA,CAAAA,iBAAAA,CAAAA,CAAMtD,KAASmD,GAAAA,CAAAA,CAAMJ,IAC5C9C,CAAAA,CAAAA,CAAOkD,EAAMlD,IAAQqD,GAAAA,CAAAA,SAAAA,CAAAA,iBAAAA,CAAAA,CAAMrD,MAEjC,GAAKA,CAAAA,CAAAA,CAAM,MAAOsD,CAAAA,CAClB,CAAA,GAAMxD,CAAAA,CAAUuD,EAAAA,UAAAA,CAAAA,CAAAA,SAAAA,CAAAA,iBAAAA,CAAAA,CAAMvD,OAAYoD,UAAAA,UAAAA,UAAAA,UAAAA,CAAAA,CAAAA,CAAMJ,KAClC9B,EAAQqC,CAAAA,CAAAA,SAAAA,CAAAA,iBAAAA,CAAAA,CAAMrC,KACduC,CAAAA,CAAAA,CAAAA,EAAAA,EAAWF,CAAMpD,SAANoD,CAAMpD,WAANoD,CAAMpD,CAAAA,MAAAA,GAAAA,CAAUuC,IAAQa,CAAKpD,CAAAA,MAAAA,CAAOuC,CACrD,CAAA,CAAA,MAAOH,CAAAA,CAAI,CAAAmB,gBAAA,GAAAA,gBAAA,CAAAjB,sBAAA,wQACoBxC,CAAAA,CAGZA,CAAAA,CACEwD,CAAAA,CACN,iBACP7B,CAAAA,MAAAA,CAAK+B,KAAK,iBAAmBzC,CAAAA,EAAAA,CAAQ,CAAE8B,IAAMhD,CAAAA,CAAAA,CAASkB,KAAU,CAAAQ,EAAA,CAAA,CAAA,CAAEsB,IAAMhD,CAAAA,CAAAA,CAAAA,CAAAA,GAExE4D,CAAAA,CAAY1D,CAAM,CAAA,EAAA,CAAA,EAI3B,CAAA,KAAA+B,GAAA,UAAAC,GAAA,CAvHM,SAAAA,IAAA,CAAW2B,CAChB,MAAO,CACLC,CAAG,CAAAC,gBAAA,GAAAA,gBAAA,CAAAtB,sBAAA,wvDA6DN,EASD,MApFyCuB,GACGC,EAAA,CAA3CC,CAAAA,CAAS,CAAEC,IAAAA,CAAMC,QAASC,OAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB7C,CAAA8C,CAAAA,SAAAA,CAAA,WAAA,EAEzBL,CAAAA,CAAAA,CAAAA,CAAA,CAA/BC,CAAAA,CAAS,CAAEK,SAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqC/C,CAAA8C,CAAAA,SAAAA,CAAA,mBAAA,EAO5BL,CAAAA,CAAAA,CAAAA,CAAA,CAA/BC,CAAAA,CAAS,CAAEK,SAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuC/C,CAAA8C,CAAAA,SAAAA,CAAA,YAAA,EAVnD9C,CAAAA,CAAAA,CAAAA,CAAqByC,CAAA,CAAA,CADjCO,EAAc,0BACFhD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA"}