@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 +1 @@
1
- {"version":3,"file":"nile-wysiwyg-toolbar.cjs.js","sources":["../../../../src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.ts"],"sourcesContent":["import { html, TemplateResult, CSSResultArray, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport NileElement from '../../internal/nile-element';\nimport { renderGlyph } from '../../internal/glyph';\nimport { styles } from './nile-wysiwyg-toolbar.css';\nimport type { ToolbarState } from '../engine/selection-state';\nimport type { CommandAttrs, CommandName } from '../engine/commands';\nimport { DEFAULT_TOOLBAR, UiCommandName } from '../types';\nimport '../ui/table-grid-picker';\n\ninterface ButtonDef {\n kind: 'button';\n command: CommandName | UiCommandName;\n attrs?: CommandAttrs;\n label: string;\n /** nile-glyph icon name; `text` is the fallback when no glyph exists. */\n icon?: string;\n /** Glyph shown instead of `icon` while the button is active (e.g. fullscreen). */\n iconActive?: string;\n text?: TemplateResult | string;\n active?: (s: ToolbarState) => boolean;\n disabled?: (s: ToolbarState) => boolean;\n}\n\ninterface SelectDef {\n kind: 'select';\n label: string;\n /** Static list, or contextual options derived from the toolbar state. */\n options:\n | { value: string; label: string }[]\n | ((s: ToolbarState | undefined) => { value: string; label: string }[]);\n /** Current value derived from toolbar state ('' = default option). */\n value: (s: ToolbarState) => string;\n /** Maps the chosen option to a command invocation. */\n command: (value: string) => { name: CommandName; attrs?: CommandAttrs };\n disabled?: (s: ToolbarState) => boolean;\n}\n\ninterface ColorDef {\n kind: 'color';\n label: string;\n glyph: string;\n command: CommandName;\n value: (s: ToolbarState) => string | null;\n}\n\ntype ItemDef = ButtonDef | SelectDef | ColorDef;\n\nconst FONT_FAMILIES = [\n 'Arial',\n 'Georgia',\n 'Tahoma',\n 'Times New Roman',\n 'Trebuchet MS',\n 'Verdana',\n 'Courier New',\n];\n\nconst FONT_SIZES = ['10px', '12px', '14px', '16px', '18px', '20px', '24px', '28px', '32px', '48px'];\n\n\n/** Same default palette as nile-rte-color. */\nconst COLOR_PALETTE = [\n '#000000', '#444444', '#666666', '#999999', '#cccccc', '#eeeeee', '#ffffff',\n '#d32f2f', '#f44336', '#ff9800', '#ffeb3b', '#4caf50', '#2196f3', '#3f51b5', '#9c27b0',\n '#03a9f4', '#00bcd4', '#009688', '#8bc34a', '#cddc39', '#ffc107', '#ff5722',\n];\n\nconst ITEMS: Record<string, ItemDef> = {\n undo: {\n kind: 'button',\n command: 'undo',\n label: 'Undo (Ctrl+Z)',\n icon: 'undo',\n disabled: s => !s.canUndo,\n },\n redo: {\n kind: 'button',\n command: 'redo',\n label: 'Redo (Ctrl+Y)',\n icon: 'redo',\n disabled: s => !s.canRedo,\n },\n findReplace: {\n kind: 'button',\n command: 'openFind',\n label: 'Find & replace (Ctrl+F)',\n icon: 'ng-text-search',\n },\n bold: {\n kind: 'button',\n command: 'bold',\n label: 'Bold (Ctrl+B)',\n icon: 'format_bold',\n active: s => s.bold,\n },\n italic: {\n kind: 'button',\n command: 'italic',\n label: 'Italic (Ctrl+I)',\n icon: 'format_italic',\n active: s => s.italic,\n },\n underline: {\n kind: 'button',\n command: 'underline',\n label: 'Underline (Ctrl+U)',\n icon: 'format_underline',\n active: s => s.underline,\n },\n strike: {\n kind: 'button',\n command: 'strike',\n label: 'Strikethrough',\n icon: 'ng-strikethrough',\n active: s => s.strike,\n },\n subscript: {\n kind: 'button',\n command: 'subscript',\n label: 'Subscript (Ctrl+,)',\n icon: 'ng-subscript',\n active: s => s.subscript,\n },\n superscript: {\n kind: 'button',\n command: 'superscript',\n label: 'Superscript (Ctrl+.)',\n icon: 'ng-superscript',\n active: s => s.superscript,\n },\n code: {\n kind: 'button',\n command: 'code',\n label: 'Inline code',\n text: '</>',\n active: s => s.code,\n },\n alignLeft: {\n kind: 'button',\n command: 'align',\n attrs: { align: 'left' },\n label: 'Align left',\n icon: 'format_align_left',\n active: s => s.align === 'left',\n },\n alignCenter: {\n kind: 'button',\n command: 'align',\n attrs: { align: 'center' },\n label: 'Align center',\n icon: 'format_align_middle',\n active: s => s.align === 'center',\n },\n alignRight: {\n kind: 'button',\n command: 'align',\n attrs: { align: 'right' },\n label: 'Align right',\n icon: 'format_align_right',\n active: s => s.align === 'right',\n },\n alignJustify: {\n kind: 'button',\n command: 'align',\n attrs: { align: 'justify' },\n label: 'Justify',\n icon: 'format_align_justify',\n active: s => s.align === 'justify',\n },\n bulletList: {\n kind: 'button',\n command: 'bulletList',\n label: 'Bulleted list',\n icon: 'format_list_bulleted',\n active: s => s.inBulletList,\n },\n orderedList: {\n kind: 'button',\n command: 'orderedList',\n label: 'Numbered list',\n icon: 'format_list_numbered',\n active: s => s.inOrderedList,\n },\n taskList: {\n kind: 'button',\n command: 'taskList',\n label: 'Checklist',\n icon: 'ng-list-checks',\n active: s => s.inTaskList,\n },\n indent: {\n kind: 'button',\n command: 'indent',\n label: 'Increase indent (Ctrl+])',\n icon: 'ng-list-indent-increase',\n disabled: s => s.inCodeBlock,\n },\n outdent: {\n kind: 'button',\n command: 'outdent',\n label: 'Decrease indent (Ctrl+[)',\n icon: 'ng-list-indent-decrease',\n disabled: s =>\n !s.inBulletList &&\n !s.inOrderedList &&\n !s.inTaskList &&\n !s.inBlockquote &&\n s.blockIndent === 0,\n },\n listStyle: {\n kind: 'select',\n label: 'List style',\n options: s =>\n s?.inOrderedList\n ? [\n { value: '', label: '1, 2, 3' },\n { value: 'lower-alpha', label: 'a, b, c' },\n { value: 'upper-alpha', label: 'A, B, C' },\n { value: 'lower-roman', label: 'i, ii, iii' },\n { value: 'upper-roman', label: 'I, II, III' },\n { value: 'multilevel', label: '1.1, 1.1.1' },\n ]\n : [\n { value: '', label: '• Disc' },\n { value: 'circle', label: '○ Circle' },\n { value: 'square', label: '▪ Square' },\n ],\n value: s => s.listStyle ?? '',\n command: value => ({ name: 'setListStyle', attrs: { style: value || null } }),\n disabled: s => !s.inBulletList && !s.inOrderedList,\n },\n blockquote: {\n kind: 'button',\n command: 'blockquote',\n label: 'Blockquote',\n text: '❝',\n active: s => s.inBlockquote,\n },\n link: {\n kind: 'button',\n command: 'openLink',\n label: 'Link (Ctrl+K)',\n icon: 'link_2',\n active: s => s.linkActive,\n },\n bookmark: {\n kind: 'button',\n command: 'openBookmark',\n label: 'Insert bookmark (in-text anchor)',\n icon: 'ng-bookmark',\n },\n horizontalRule: {\n kind: 'button',\n command: 'horizontalRule',\n label: 'Horizontal rule',\n icon: 'minus',\n },\n specialChars: {\n kind: 'button',\n command: 'openSpecialChars',\n label: 'Special characters',\n text: 'Ω',\n },\n emoji: {\n kind: 'button',\n command: 'openEmoji',\n label: 'Emoji',\n icon: 'ng-smile',\n },\n codeBlock: {\n kind: 'button',\n command: 'codeBlock',\n label: 'Code block (Ctrl+Alt+C)',\n icon: 'ng-code',\n active: s => s.inCodeBlock,\n },\n image: {\n kind: 'button',\n command: 'openImage',\n label: 'Insert image',\n icon: 'image_2',\n },\n embed: {\n kind: 'button',\n command: 'openEmbed',\n label: 'Embed video (YouTube, Vimeo, Loom)',\n icon: 'ng-video',\n },\n sourceView: {\n kind: 'button',\n command: 'toggleSource',\n label: 'HTML source',\n icon: 'ng-code-xml',\n },\n showBlocks: {\n kind: 'button',\n command: 'toggleShowBlocks',\n label: 'Show blocks',\n icon: 'ng-square-pilcrow',\n active: s => !!s.showBlocks,\n },\n clearFormatting: {\n kind: 'button',\n command: 'clearFormatting',\n label: 'Clear formatting',\n icon: 'format_clear',\n },\n pastePlainText: {\n kind: 'button',\n command: 'togglePastePlainText',\n label: 'Paste as plain text',\n icon: 'ng-clipboard-paste',\n active: s => !!s.pasteAsPlainText,\n },\n fullscreen: {\n kind: 'button',\n command: 'toggleFullscreen',\n label: 'Fullscreen (Esc to exit)',\n icon: 'ng-maximize-2',\n iconActive: 'ng-minimize-2',\n active: s => !!s.fullscreen,\n },\n shortcutHelp: {\n kind: 'button',\n command: 'openShortcutHelp',\n label: 'Keyboard shortcuts (Ctrl+/)',\n icon: 'ng-keyboard',\n },\n exportPdf: {\n kind: 'button',\n command: 'exportPdf',\n label: 'Export to PDF',\n icon: 'ng-printer',\n },\n exportWord: {\n kind: 'button',\n command: 'exportWord',\n label: 'Export to Word',\n icon: 'ng-file-text',\n },\n exportInlineHtml: {\n kind: 'button',\n command: 'exportInlineHtml',\n label: 'Export HTML with inline styles (email)',\n icon: 'ng-file-code',\n },\n importMarkdown: {\n kind: 'button',\n command: 'openMarkdown',\n label: 'Insert from Markdown',\n icon: 'ng-clipboard-paste',\n },\n importWord: {\n kind: 'button',\n command: 'importWord',\n label: 'Import from Word',\n icon: 'ng-file-input',\n },\n formatPainter: {\n kind: 'button',\n command: 'toggleFormatPainter',\n label: 'Format painter (copy formatting)',\n icon: 'ng-paintbrush',\n active: s => !!s.formatPainter,\n },\n caseChange: {\n kind: 'select',\n label: 'Change case',\n options: [\n { value: '', label: 'Case' },\n { value: 'upper', label: 'UPPERCASE' },\n { value: 'lower', label: 'lowercase' },\n { value: 'title', label: 'Title Case' },\n { value: 'sentence', label: 'Sentence case' },\n ],\n value: () => '',\n command: value => ({\n name: 'changeCase',\n attrs: { textCase: (value || 'upper') as 'upper' | 'lower' | 'title' | 'sentence' },\n }),\n disabled: s => s.selectionEmpty,\n },\n mergeField: {\n kind: 'button',\n command: 'openMergeField',\n label: 'Insert merge field',\n icon: 'ng-braces',\n },\n template: {\n kind: 'button',\n command: 'openTemplate',\n label: 'Insert template',\n icon: 'ng-layout-template',\n },\n math: {\n kind: 'button',\n command: 'openMath',\n label: 'Insert math (LaTeX)',\n icon: 'ng-sigma',\n },\n heading: {\n kind: 'select',\n label: 'Paragraph style',\n options: [\n { value: '', label: 'Paragraph' },\n { value: '1', label: 'Heading 1' },\n { value: '2', label: 'Heading 2' },\n { value: '3', label: 'Heading 3' },\n { value: '4', label: 'Heading 4' },\n { value: '5', label: 'Heading 5' },\n { value: '6', label: 'Heading 6' },\n ],\n value: s => (s.headingLevel ? String(s.headingLevel) : ''),\n command: value =>\n value === ''\n ? { name: 'paragraph' }\n : { name: 'heading', attrs: { level: Number(value) } },\n },\n fontFamily: {\n kind: 'select',\n label: 'Font family',\n options: [\n { value: '', label: 'Font' },\n ...FONT_FAMILIES.map(f => ({ value: f, label: f })),\n ],\n value: s => s.fontFamily ?? '',\n command: value => ({ name: 'fontFamily', attrs: { family: value || null } }),\n },\n fontSize: {\n kind: 'select',\n label: 'Font size',\n options: [\n { value: '', label: 'Size' },\n ...FONT_SIZES.map(f => ({ value: f, label: f.replace('px', '') })),\n ],\n value: s => s.fontSize ?? '',\n command: value => ({ name: 'fontSize', attrs: { size: value || null } }),\n },\n lineHeight: {\n kind: 'select',\n label: 'Line height',\n options: [\n { value: '', label: 'Spacing' },\n { value: '1', label: '1' },\n { value: '1.15', label: '1.15' },\n { value: '1.5', label: '1.5' },\n { value: '2', label: '2' },\n { value: '2.5', label: '2.5' },\n { value: '3', label: '3' },\n ],\n value: s => s.lineHeight ?? '',\n command: value => ({ name: 'lineHeight', attrs: { lineHeight: value || null } }),\n disabled: s => s.inCodeBlock,\n },\n textColor: {\n kind: 'color',\n label: 'Text color',\n glyph: 'A',\n command: 'textColor',\n value: s => s.textColor,\n },\n bgColor: {\n kind: 'color',\n label: 'Highlight color',\n glyph: '✎',\n command: 'bgColor',\n value: s => s.bgColor,\n },\n};\n\n/**\n * Config-driven toolbar. Renders from a single immutable ToolbarState\n * snapshot; every interaction is dispatched to the host as a\n * `wysiwyg-command` event — the toolbar never touches the editor directly.\n *\n * @tag nile-wysiwyg-toolbar\n */\n@customElement('nile-wysiwyg-toolbar')\nexport class NileWysiwygToolbar extends NileElement {\n /** Space-separated item names; `|` inserts a divider. */\n @property({ type: String }) config = DEFAULT_TOOLBAR;\n\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n @property({ attribute: false }) toolbarState?: ToolbarState;\n\n /** Which dropdown/color panel is open (item name), if any. */\n @state() private openMenu: string | null = null;\n\n /** Recently used colors per color command, like nile-rte-color. */\n @state() private recentColors: Record<string, string[]> = {};\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('mousedown', this.handleOutsideClick);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('mousedown', this.handleOutsideClick);\n }\n\n private handleOutsideClick = (event: MouseEvent): void => {\n if (this.openMenu && !event.composedPath().includes(this)) this.openMenu = null;\n };\n\n private toggleMenu(name: string): void {\n this.openMenu = this.openMenu === name ? null : name;\n }\n\n private dispatchCommand(name: CommandName | UiCommandName, attrs?: CommandAttrs): void {\n this.emit('wysiwyg-command', { name, attrs });\n }\n\n /** Wraps a control in the design system's lightweight tooltip (same as\n * the legacy rich text editor's toolbar). */\n private withTooltip(label: string, control: TemplateResult): TemplateResult {\n return html`\n <nile-lite-tooltip content=${label} placement=\"bottom\">${control}</nile-lite-tooltip>\n `;\n }\n\n private renderButton(def: ButtonDef): TemplateResult {\n const state = this.toolbarState;\n const isActive = state && def.active ? def.active(state) : false;\n const isDisabled = this.disabled || (state && def.disabled ? def.disabled(state) : false);\n const icon = isActive && def.iconActive ? def.iconActive : def.icon;\n return this.withTooltip(\n def.label,\n html`\n <button\n type=\"button\"\n class=\"toolbar__button\"\n part=\"button\"\n aria-label=${def.label}\n aria-pressed=${isActive ? 'true' : 'false'}\n ?data-active=${isActive}\n ?disabled=${isDisabled}\n @mousedown=${(e: Event) => e.preventDefault()}\n @click=${() => this.dispatchCommand(def.command, def.attrs)}\n >\n ${icon ? renderGlyph(icon, 18) : def.text}\n </button>\n `\n );\n }\n\n private renderSelect(name: string, def: SelectDef): TemplateResult {\n const value = this.toolbarState ? def.value(this.toolbarState) : '';\n const options =\n typeof def.options === 'function' ? def.options(this.toolbarState) : def.options;\n const current = options.find(opt => opt.value === value) ?? options[0];\n const isDisabled =\n this.disabled ||\n (this.toolbarState && def.disabled ? def.disabled(this.toolbarState) : false);\n const isFont = name === 'fontFamily';\n return html`\n <span class=\"toolbar__dropdown\" part=\"select\">\n ${this.withTooltip(\n def.label,\n html`\n <button\n type=\"button\"\n class=\"toolbar__dd-trigger\"\n aria-label=${def.label}\n aria-expanded=${this.openMenu === name ? 'true' : 'false'}\n ?disabled=${isDisabled}\n style=${isFont && value ? `font-family: ${value}` : ''}\n @mousedown=${(e: Event) => e.preventDefault()}\n @click=${() => this.toggleMenu(name)}\n >\n ${current.label}\n <nile-glyph name=\"arrowdown\" size=\"16\"></nile-glyph>\n </button>\n `\n )}\n ${this.openMenu === name\n ? html`\n <div class=\"toolbar__dd-menu\" @mousedown=${(e: Event) => e.preventDefault()}>\n ${options.map(\n opt => html`\n <div\n class=\"toolbar__dd-item\"\n ?data-active=${opt.value === value}\n style=${isFont && opt.value ? `font-family: ${opt.value}` : ''}\n @click=${() => {\n this.openMenu = null;\n const { name: cmd, attrs } = def.command(opt.value);\n this.dispatchCommand(cmd, attrs);\n }}\n >\n ${opt.label}\n </div>\n `\n )}\n </div>\n `\n : nothing}\n </span>\n `;\n }\n\n private setColor(name: string, def: ColorDef, color: string): void {\n this.openMenu = null;\n const recent = this.recentColors[name] ?? [];\n this.recentColors = {\n ...this.recentColors,\n [name]: [color, ...recent.filter(c => c !== color)].slice(0, 8),\n };\n this.dispatchCommand(def.command, { color });\n }\n\n private renderColor(name: string, def: ColorDef): TemplateResult {\n const current = this.toolbarState ? def.value(this.toolbarState) : null;\n const shown = current ?? '#000000';\n const recent = this.recentColors[name] ?? [];\n const isBg = def.command === 'bgColor';\n return html`\n <span class=\"toolbar__color\" part=\"color\">\n ${this.withTooltip(\n def.label,\n html`\n <button\n type=\"button\"\n class=\"toolbar__button\"\n aria-label=${def.label}\n aria-expanded=${this.openMenu === name ? 'true' : 'false'}\n ?disabled=${this.disabled}\n @mousedown=${(e: Event) => e.preventDefault()}\n @click=${() => this.toggleMenu(name)}\n >\n ${isBg\n ? html`<span class=\"swatch-box\" style=\"background: ${shown}\"></span>`\n : html`\n <span class=\"glyph-stack\">\n <span class=\"glyph\">A</span>\n <span class=\"underline\" style=\"background: ${shown}\"></span>\n </span>\n `}\n </button>\n `\n )}\n ${this.openMenu === name\n ? html`\n <div class=\"toolbar__swatch-panel\" @mousedown=${(e: Event) => e.preventDefault()}>\n <div class=\"section\">\n <div class=\"title\">Default</div>\n <div class=\"swatches\">\n ${COLOR_PALETTE.map(\n color => html`\n <button\n type=\"button\"\n class=\"swatch\"\n style=\"background: ${color}\"\n title=${color}\n @click=${() => this.setColor(name, def, color)}\n >\n ${current === color\n ? html`<span class=\"checkmark\">✓</span>`\n : nothing}\n </button>\n `\n )}\n </div>\n </div>\n ${recent.length\n ? html`\n <div class=\"section\">\n <div class=\"title\">Recently Used</div>\n <div class=\"swatches\">\n ${recent.map(\n color => html`\n <button\n type=\"button\"\n class=\"swatch\"\n style=\"background: ${color}\"\n title=${color}\n @click=${() => this.setColor(name, def, color)}\n ></button>\n `\n )}\n </div>\n </div>\n `\n : nothing}\n <div class=\"section\">\n <div class=\"title\">Custom</div>\n <div class=\"swatches\">\n <button\n type=\"button\"\n class=\"swatch add\"\n @click=${(e: Event) => {\n const input = (e.currentTarget as HTMLElement)\n .closest('.toolbar__color')!\n .querySelector<HTMLInputElement>('input[type=\"color\"]');\n input?.click();\n }}\n >\n +\n </button>\n </div>\n </div>\n </div>\n `\n : nothing}\n <input\n type=\"color\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n .value=${shown}\n @input=${(e: Event) =>\n this.setColor(name, def, (e.target as HTMLInputElement).value)}\n />\n </span>\n `;\n }\n\n private renderItem(name: string): TemplateResult | typeof nothing {\n if (name === 'table') {\n return this.withTooltip(\n 'Insert table',\n html`\n <nile-wysiwyg-table-picker\n part=\"button\"\n ?disabled=${this.disabled}\n ></nile-wysiwyg-table-picker>\n `\n );\n }\n const def = ITEMS[name];\n if (!def) return nothing;\n switch (def.kind) {\n case 'button':\n return this.renderButton(def);\n case 'select':\n return this.renderSelect(name, def);\n case 'color':\n return this.renderColor(name, def);\n default:\n return nothing;\n }\n }\n\n public render(): TemplateResult {\n const groups = this.config\n .split('|')\n .map(group => group.trim().split(/\\s+/).filter(Boolean))\n .filter(group => group.length > 0);\n\n return html`\n <div class=\"toolbar\" part=\"toolbar\" role=\"toolbar\" aria-label=\"Text formatting\">\n ${groups.map(\n (group, index) => html`\n ${index > 0 ? html`<span class=\"toolbar__divider\"></span>` : nothing}\n ${group.map(name => this.renderItem(name))}\n `\n )}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-wysiwyg-toolbar': NileWysiwygToolbar;\n }\n}\n"],"names":["COLOR_PALETTE","ITEMS","undo","kind","command","label","icon","disabled","s","canUndo","redo","canRedo","findReplace","bold","active","italic","underline","strike","subscript","superscript","code","text","alignLeft","attrs","align","alignCenter","alignRight","alignJustify","bulletList","inBulletList","orderedList","inOrderedList","taskList","inTaskList","indent","inCodeBlock","outdent","inBlockquote","blockIndent","listStyle","options","value","name","style","blockquote","link","linkActive","bookmark","horizontalRule","specialChars","emoji","codeBlock","image","embed","sourceView","showBlocks","clearFormatting","pastePlainText","pasteAsPlainText","fullscreen","iconActive","shortcutHelp","exportPdf","exportWord","exportInlineHtml","importMarkdown","importWord","formatPainter","caseChange","textCase","selectionEmpty","mergeField","template","math","heading","headingLevel","String","level","Number","fontFamily","concat","_toConsumableArray","map","f","_t$fontFamily","family","fontSize","replace","_t$fontSize","size","lineHeight","textColor","glyph","bgColor","NileWysiwygToolbar","m","this","config","DEFAULT_TOOLBAR","openMenu","recentColors","handleOutsideClick","event","composedPath","includes","_this","_inherits","_o","_createClass","key","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","toggleMenu","dispatchCommand","emit","e","withTooltip","control","html","_templateObject","_taggedTemplateLiteral","renderButton","def","state","toolbarState","isActive","isDisabled","_templateObject2","preventDefault","renderGlyph","renderSelect","current","find","opt","isFont","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_a$command","cmd","nothing","setColor","color","recent","_objectSpread","filter","c","slice","l","renderColor","shown","_this$recentColors$t2","isBg","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","length","_templateObject14","_templateObject15","input","currentTarget","closest","querySelector","click","target","renderItem","_templateObject16","render","_this5","groups","split","group","trim","Boolean","_templateObject17","index","_templateObject18","_templateObject19","__decorate","get","styles","NileElement","property","type","prototype","reflect","attribute","_export","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"nile-wysiwyg-toolbar.cjs.js","sources":["../../../../src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.ts"],"sourcesContent":["import { html, TemplateResult, CSSResultArray, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport NileElement from '../../internal/nile-element';\nimport { renderGlyph } from '../../internal/glyph';\nimport { styles } from './nile-wysiwyg-toolbar.css';\nimport type { ToolbarState } from '../engine/selection-state';\nimport type { CommandAttrs, CommandName } from '../engine/commands';\nimport { DEFAULT_TOOLBAR, UiCommandName } from '../types';\nimport '../ui/table-grid-picker';\nimport '../../nile-color-picker/nile-color-picker';\n\ninterface ButtonDef {\n kind: 'button';\n command: CommandName | UiCommandName;\n attrs?: CommandAttrs;\n label: string;\n /** nile-glyph icon name; `text` is the fallback when no glyph exists. */\n icon?: string;\n /** Glyph shown instead of `icon` while the button is active (e.g. fullscreen). */\n iconActive?: string;\n text?: TemplateResult | string;\n active?: (s: ToolbarState) => boolean;\n disabled?: (s: ToolbarState) => boolean;\n}\n\ninterface SelectDef {\n kind: 'select';\n label: string;\n /** Static list, or contextual options derived from the toolbar state. */\n options:\n | { value: string; label: string }[]\n | ((s: ToolbarState | undefined) => { value: string; label: string }[]);\n /** Current value derived from toolbar state ('' = default option). */\n value: (s: ToolbarState) => string;\n /** Maps the chosen option to a command invocation. */\n command: (value: string) => { name: CommandName; attrs?: CommandAttrs };\n disabled?: (s: ToolbarState) => boolean;\n}\n\ninterface ColorDef {\n kind: 'color';\n label: string;\n glyph: string;\n command: CommandName;\n value: (s: ToolbarState) => string | null;\n}\n\ntype ItemDef = ButtonDef | SelectDef | ColorDef;\n\n/**\n * A single control in an author-supplied (light-DOM) toolbar. `name` is a\n * built-in control key (the same names the `config` string accepts) or `'|'`\n * for a group divider; `label`/`icon` optionally override the built-in\n * tooltip/glyph. Produced by the editor from `<nile-wysiwyg-toolbar-item>`\n * children.\n */\nexport interface AuthoredToolbarItem {\n name: string;\n label?: string;\n icon?: string;\n /** When true, the control is placed in the 3-dot overflow menu. */\n overflow?: boolean;\n}\n\n/** Per-instance overrides applied to a built-in control at render time. */\ninterface ItemOverrides {\n label?: string;\n icon?: string;\n}\n\nconst FONT_FAMILIES = [\n 'Arial',\n 'Georgia',\n 'Tahoma',\n 'Times New Roman',\n 'Trebuchet MS',\n 'Verdana',\n 'Courier New',\n];\n\nconst FONT_SIZES = ['10px', '12px', '14px', '16px', '18px', '20px', '24px', '28px', '32px', '48px'];\n\nconst ITEMS: Record<string, ItemDef> = {\n undo: {\n kind: 'button',\n command: 'undo',\n label: 'Undo (Ctrl+Z)',\n icon: 'undo',\n disabled: s => !s.canUndo,\n },\n redo: {\n kind: 'button',\n command: 'redo',\n label: 'Redo (Ctrl+Y)',\n icon: 'redo',\n disabled: s => !s.canRedo,\n },\n findReplace: {\n kind: 'button',\n command: 'openFind',\n label: 'Find & replace (Ctrl+F)',\n icon: 'ng-text-search',\n },\n bold: {\n kind: 'button',\n command: 'bold',\n label: 'Bold (Ctrl+B)',\n icon: 'format_bold',\n active: s => s.bold,\n },\n italic: {\n kind: 'button',\n command: 'italic',\n label: 'Italic (Ctrl+I)',\n icon: 'format_italic',\n active: s => s.italic,\n },\n underline: {\n kind: 'button',\n command: 'underline',\n label: 'Underline (Ctrl+U)',\n icon: 'format_underline',\n active: s => s.underline,\n },\n strike: {\n kind: 'button',\n command: 'strike',\n label: 'Strikethrough',\n icon: 'ng-strikethrough',\n active: s => s.strike,\n },\n subscript: {\n kind: 'button',\n command: 'subscript',\n label: 'Subscript (Ctrl+,)',\n icon: 'ng-subscript',\n active: s => s.subscript,\n },\n superscript: {\n kind: 'button',\n command: 'superscript',\n label: 'Superscript (Ctrl+.)',\n icon: 'ng-superscript',\n active: s => s.superscript,\n },\n code: {\n kind: 'button',\n command: 'code',\n label: 'Inline code',\n text: '</>',\n active: s => s.code,\n },\n alignLeft: {\n kind: 'button',\n command: 'align',\n attrs: { align: 'left' },\n label: 'Align left',\n icon: 'format_align_left',\n active: s => s.align === 'left',\n },\n alignCenter: {\n kind: 'button',\n command: 'align',\n attrs: { align: 'center' },\n label: 'Align center',\n icon: 'format_align_middle',\n active: s => s.align === 'center',\n },\n alignRight: {\n kind: 'button',\n command: 'align',\n attrs: { align: 'right' },\n label: 'Align right',\n icon: 'format_align_right',\n active: s => s.align === 'right',\n },\n alignJustify: {\n kind: 'button',\n command: 'align',\n attrs: { align: 'justify' },\n label: 'Justify',\n icon: 'format_align_justify',\n active: s => s.align === 'justify',\n },\n bulletList: {\n kind: 'button',\n command: 'bulletList',\n label: 'Bulleted list',\n icon: 'format_list_bulleted',\n active: s => s.inBulletList,\n },\n orderedList: {\n kind: 'button',\n command: 'orderedList',\n label: 'Numbered list',\n icon: 'format_list_numbered',\n active: s => s.inOrderedList,\n },\n taskList: {\n kind: 'button',\n command: 'taskList',\n label: 'Checklist',\n icon: 'ng-list-checks',\n active: s => s.inTaskList,\n },\n indent: {\n kind: 'button',\n command: 'indent',\n label: 'Increase indent (Ctrl+])',\n icon: 'ng-list-indent-increase',\n disabled: s => s.inCodeBlock,\n },\n outdent: {\n kind: 'button',\n command: 'outdent',\n label: 'Decrease indent (Ctrl+[)',\n icon: 'ng-list-indent-decrease',\n disabled: s =>\n !s.inBulletList &&\n !s.inOrderedList &&\n !s.inTaskList &&\n !s.inBlockquote &&\n s.blockIndent === 0,\n },\n listStyle: {\n kind: 'select',\n label: 'List style',\n options: s =>\n s?.inOrderedList\n ? [\n { value: '', label: '1, 2, 3' },\n { value: 'lower-alpha', label: 'a, b, c' },\n { value: 'upper-alpha', label: 'A, B, C' },\n { value: 'lower-roman', label: 'i, ii, iii' },\n { value: 'upper-roman', label: 'I, II, III' },\n { value: 'multilevel', label: '1.1, 1.1.1' },\n ]\n : [\n { value: '', label: '• Disc' },\n { value: 'circle', label: '○ Circle' },\n { value: 'square', label: '▪ Square' },\n ],\n value: s => s.listStyle ?? '',\n command: value => ({ name: 'setListStyle', attrs: { style: value || null } }),\n disabled: s => !s.inBulletList && !s.inOrderedList,\n },\n blockquote: {\n kind: 'button',\n command: 'blockquote',\n label: 'Blockquote',\n text: '❝',\n active: s => s.inBlockquote,\n },\n link: {\n kind: 'button',\n command: 'openLink',\n label: 'Link (Ctrl+K)',\n icon: 'link_2',\n active: s => s.linkActive,\n },\n bookmark: {\n kind: 'button',\n command: 'openBookmark',\n label: 'Insert bookmark (in-text anchor)',\n icon: 'ng-bookmark',\n },\n horizontalRule: {\n kind: 'button',\n command: 'horizontalRule',\n label: 'Horizontal rule',\n icon: 'minus',\n },\n specialChars: {\n kind: 'button',\n command: 'openSpecialChars',\n label: 'Special characters',\n text: 'Ω',\n },\n emoji: {\n kind: 'button',\n command: 'openEmoji',\n label: 'Emoji',\n icon: 'ng-smile',\n },\n codeBlock: {\n kind: 'button',\n command: 'codeBlock',\n label: 'Code block (Ctrl+Alt+C)',\n icon: 'ng-code',\n active: s => s.inCodeBlock,\n },\n image: {\n kind: 'button',\n command: 'openImage',\n label: 'Insert image',\n icon: 'image_2',\n },\n embed: {\n kind: 'button',\n command: 'openEmbed',\n label: 'Embed video (YouTube, Vimeo, Loom)',\n icon: 'ng-video',\n },\n sourceView: {\n kind: 'button',\n command: 'toggleSource',\n label: 'HTML source',\n icon: 'ng-code-xml',\n },\n showBlocks: {\n kind: 'button',\n command: 'toggleShowBlocks',\n label: 'Show blocks',\n icon: 'ng-square-pilcrow',\n active: s => !!s.showBlocks,\n },\n clearFormatting: {\n kind: 'button',\n command: 'clearFormatting',\n label: 'Clear formatting',\n icon: 'format_clear',\n },\n pastePlainText: {\n kind: 'button',\n command: 'togglePastePlainText',\n label: 'Paste as plain text',\n icon: 'ng-clipboard-paste',\n active: s => !!s.pasteAsPlainText,\n },\n fullscreen: {\n kind: 'button',\n command: 'toggleFullscreen',\n label: 'Fullscreen (Esc to exit)',\n icon: 'ng-maximize-2',\n iconActive: 'ng-minimize-2',\n active: s => !!s.fullscreen,\n },\n shortcutHelp: {\n kind: 'button',\n command: 'openShortcutHelp',\n label: 'Keyboard shortcuts (Ctrl+/)',\n icon: 'ng-keyboard',\n },\n exportPdf: {\n kind: 'button',\n command: 'exportPdf',\n label: 'Export to PDF',\n icon: 'ng-printer',\n },\n exportWord: {\n kind: 'button',\n command: 'exportWord',\n label: 'Export to Word',\n icon: 'ng-file-text',\n },\n exportInlineHtml: {\n kind: 'button',\n command: 'exportInlineHtml',\n label: 'Export HTML with inline styles (email)',\n icon: 'ng-file-code',\n },\n importMarkdown: {\n kind: 'button',\n command: 'openMarkdown',\n label: 'Insert from Markdown',\n icon: 'ng-clipboard-paste',\n },\n importWord: {\n kind: 'button',\n command: 'importWord',\n label: 'Import from Word',\n icon: 'ng-file-input',\n },\n formatPainter: {\n kind: 'button',\n command: 'toggleFormatPainter',\n label: 'Format painter (copy formatting)',\n icon: 'ng-paintbrush',\n active: s => !!s.formatPainter,\n },\n caseChange: {\n kind: 'select',\n label: 'Change case',\n options: [\n { value: '', label: 'Case' },\n { value: 'upper', label: 'UPPERCASE' },\n { value: 'lower', label: 'lowercase' },\n { value: 'title', label: 'Title Case' },\n { value: 'sentence', label: 'Sentence case' },\n ],\n value: () => '',\n command: value => ({\n name: 'changeCase',\n attrs: { textCase: (value || 'upper') as 'upper' | 'lower' | 'title' | 'sentence' },\n }),\n disabled: s => s.selectionEmpty,\n },\n mergeField: {\n kind: 'button',\n command: 'openMergeField',\n label: 'Insert merge field',\n icon: 'ng-braces',\n },\n template: {\n kind: 'button',\n command: 'openTemplate',\n label: 'Insert template',\n icon: 'ng-layout-template',\n },\n math: {\n kind: 'button',\n command: 'openMath',\n label: 'Insert math (LaTeX)',\n icon: 'ng-sigma',\n },\n heading: {\n kind: 'select',\n label: 'Paragraph style',\n options: [\n { value: '', label: 'Paragraph' },\n { value: '1', label: 'Heading 1' },\n { value: '2', label: 'Heading 2' },\n { value: '3', label: 'Heading 3' },\n { value: '4', label: 'Heading 4' },\n { value: '5', label: 'Heading 5' },\n { value: '6', label: 'Heading 6' },\n ],\n value: s => (s.headingLevel ? String(s.headingLevel) : ''),\n command: value =>\n value === ''\n ? { name: 'paragraph' }\n : { name: 'heading', attrs: { level: Number(value) } },\n },\n fontFamily: {\n kind: 'select',\n label: 'Font family',\n options: [\n { value: '', label: 'Font' },\n ...FONT_FAMILIES.map(f => ({ value: f, label: f })),\n ],\n value: s => s.fontFamily ?? '',\n command: value => ({ name: 'fontFamily', attrs: { family: value || null } }),\n },\n fontSize: {\n kind: 'select',\n label: 'Font size',\n options: [\n { value: '', label: 'Size' },\n ...FONT_SIZES.map(f => ({ value: f, label: f.replace('px', '') })),\n ],\n value: s => s.fontSize ?? '',\n command: value => ({ name: 'fontSize', attrs: { size: value || null } }),\n },\n lineHeight: {\n kind: 'select',\n label: 'Line height',\n options: [\n { value: '', label: 'Spacing' },\n { value: '1', label: '1' },\n { value: '1.15', label: '1.15' },\n { value: '1.5', label: '1.5' },\n { value: '2', label: '2' },\n { value: '2.5', label: '2.5' },\n { value: '3', label: '3' },\n ],\n value: s => s.lineHeight ?? '',\n command: value => ({ name: 'lineHeight', attrs: { lineHeight: value || null } }),\n disabled: s => s.inCodeBlock,\n },\n textColor: {\n kind: 'color',\n label: 'Text color',\n glyph: 'A',\n command: 'textColor',\n value: s => s.textColor,\n },\n bgColor: {\n kind: 'color',\n label: 'Highlight color',\n glyph: '✎',\n command: 'bgColor',\n value: s => s.bgColor,\n },\n};\n\n/**\n * Config-driven toolbar. Renders from a single immutable ToolbarState\n * snapshot; every interaction is dispatched to the host as a\n * `wysiwyg-command` event — the toolbar never touches the editor directly.\n *\n * @tag nile-wysiwyg-toolbar\n */\n@customElement('nile-wysiwyg-toolbar')\nexport class NileWysiwygToolbar extends NileElement {\n /** Space-separated item names; `|` inserts a divider. */\n @property({ type: String }) config = DEFAULT_TOOLBAR;\n\n /**\n * Structured item list authored in light DOM (from\n * `<nile-wysiwyg-toolbar-item>` children). When set and non-empty it takes\n * precedence over `config`, and each item may override the built-in\n * label/icon.\n */\n @property({ attribute: false }) items?: AuthoredToolbarItem[];\n\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n @property({ attribute: false }) toolbarState?: ToolbarState;\n\n /** Which dropdown/color panel is open (item name), if any. */\n @state() private openMenu: string | null = null;\n\n /** Whether the overflow (\"more\" / 3-dot) menu panel is open. */\n @state() private overflowOpen = false;\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n /**\n * True when this instance is an author's declarative `<nile-wysiwyg-toolbar>`\n * container sitting in an editor's light DOM (holding\n * `<nile-wysiwyg-toolbar-item>` children). Such an instance renders nothing\n * and wires up no listeners — the editor reads the items and renders the real\n * toolbar in its own shadow DOM. The editor's internal instance lives inside\n * a shadow root, so `closest` (which stops at shadow boundaries) never\n * matches it; a standalone toolbar on a page has no editor ancestor either.\n */\n private get isAuthoringContainer(): boolean {\n return !!this.closest('nile-wysiwyg-editor');\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n if (this.isAuthoringContainer) return;\n document.addEventListener('mousedown', this.handleOutsideClick);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('mousedown', this.handleOutsideClick);\n }\n\n private handleOutsideClick = (event: MouseEvent): void => {\n if ((this.openMenu || this.overflowOpen) && !event.composedPath().includes(this)) {\n this.openMenu = null;\n this.overflowOpen = false;\n }\n };\n\n private toggleMenu(name: string): void {\n this.openMenu = this.openMenu === name ? null : name;\n }\n\n private toggleOverflow = (): void => {\n this.overflowOpen = !this.overflowOpen;\n this.openMenu = null;\n };\n\n private dispatchCommand(name: CommandName | UiCommandName, attrs?: CommandAttrs): void {\n // A dispatched command means the user picked an action, so collapse the\n // overflow \"more\" panel (a select/color trigger only opens a submenu — it\n // doesn't dispatch — so it leaves the panel open until a value is chosen).\n this.overflowOpen = false;\n this.emit('wysiwyg-command', { name, attrs });\n }\n\n /** Wraps a control in the design system's lightweight tooltip (same as\n * the legacy rich text editor's toolbar). */\n private withTooltip(label: string, control: TemplateResult): TemplateResult {\n return html`\n <nile-lite-tooltip content=${label} placement=\"top\">${control}</nile-lite-tooltip>\n `;\n }\n\n private renderButton(def: ButtonDef, overrides?: ItemOverrides): TemplateResult {\n const state = this.toolbarState;\n const isActive = state && def.active ? def.active(state) : false;\n const isDisabled = this.disabled || (state && def.disabled ? def.disabled(state) : false);\n const label = overrides?.label ?? def.label;\n const baseIcon = overrides?.icon ?? def.icon;\n const icon = isActive && def.iconActive ? def.iconActive : baseIcon;\n return this.withTooltip(\n label,\n html`\n <button\n type=\"button\"\n class=\"toolbar__button\"\n part=\"button\"\n aria-label=${label}\n aria-pressed=${isActive ? 'true' : 'false'}\n ?data-active=${isActive}\n ?disabled=${isDisabled}\n @mousedown=${(e: Event) => e.preventDefault()}\n @click=${() => this.dispatchCommand(def.command, def.attrs)}\n >\n ${icon ? renderGlyph(icon, 18) : def.text}\n </button>\n `\n );\n }\n\n private renderSelect(name: string, def: SelectDef, overrides?: ItemOverrides): TemplateResult {\n const value = this.toolbarState ? def.value(this.toolbarState) : '';\n const options =\n typeof def.options === 'function' ? def.options(this.toolbarState) : def.options;\n const current = options.find(opt => opt.value === value) ?? options[0];\n const isDisabled =\n this.disabled ||\n (this.toolbarState && def.disabled ? def.disabled(this.toolbarState) : false);\n const isFont = name === 'fontFamily';\n const label = overrides?.label ?? def.label;\n return html`\n <span class=\"toolbar__dropdown\" part=\"select\">\n ${this.withTooltip(\n label,\n html`\n <button\n type=\"button\"\n class=\"toolbar__dd-trigger\"\n aria-label=${label}\n aria-expanded=${this.openMenu === name ? 'true' : 'false'}\n ?disabled=${isDisabled}\n style=${isFont && value ? `font-family: ${value}` : ''}\n @mousedown=${(e: Event) => e.preventDefault()}\n @click=${() => this.toggleMenu(name)}\n >\n ${current.label}\n <nile-glyph name=\"arrowdown\" size=\"16\"></nile-glyph>\n </button>\n `\n )}\n ${this.openMenu === name\n ? html`\n <div class=\"toolbar__dd-menu\" @mousedown=${(e: Event) => e.preventDefault()}>\n ${options.map(\n opt => html`\n <div\n class=\"toolbar__dd-item\"\n ?data-active=${opt.value === value}\n style=${isFont && opt.value ? `font-family: ${opt.value}` : ''}\n @click=${() => {\n this.openMenu = null;\n const { name: cmd, attrs } = def.command(opt.value);\n this.dispatchCommand(cmd, attrs);\n }}\n >\n ${opt.label}\n </div>\n `\n )}\n </div>\n `\n : nothing}\n </span>\n `;\n }\n\n private setColor(def: ColorDef, color: string): void {\n // nile-color-picker emits 'none' for the \"No Fill\" action; an empty color\n // clears the mark in the command engine.\n this.dispatchCommand(def.command, { color: color === 'none' ? '' : color });\n }\n\n private renderColor(name: string, def: ColorDef, overrides?: ItemOverrides): TemplateResult {\n const current = this.toolbarState ? def.value(this.toolbarState) : null;\n const shown = current ?? '#000000';\n const isBg = def.command === 'bgColor';\n const label = overrides?.label ?? def.label;\n return html`\n <span class=\"toolbar__color\" part=\"color\">\n ${this.withTooltip(\n label,\n html`\n <button\n type=\"button\"\n class=\"toolbar__button\"\n aria-label=${label}\n aria-expanded=${this.openMenu === name ? 'true' : 'false'}\n ?disabled=${this.disabled}\n @mousedown=${(e: Event) => e.preventDefault()}\n @click=${() => this.toggleMenu(name)}\n >\n ${isBg\n ? html`<span class=\"swatch-box\" style=\"background: ${shown}\"></span>`\n : html`\n <span class=\"glyph-stack\">\n <span class=\"glyph\">A</span>\n <span class=\"underline\" style=\"background: ${shown}\"></span>\n </span>\n `}\n </button>\n `\n )}\n ${this.openMenu === name\n ? html`\n <div class=\"toolbar__color-panel\">\n <nile-color-picker\n mode=\"inline\"\n type=\"swatches\"\n .noFill=${isBg}\n .value=${shown}\n @nile-change=${(e: CustomEvent<{ value: string }>) =>\n this.setColor(def, e.detail.value)}\n ></nile-color-picker>\n </div>\n `\n : nothing}\n </span>\n `;\n }\n\n private renderItem(name: string, overrides?: ItemOverrides): TemplateResult | typeof nothing {\n if (name === 'table') {\n return this.withTooltip(\n overrides?.label ?? 'Insert table',\n html`\n <nile-wysiwyg-table-picker\n part=\"button\"\n ?disabled=${this.disabled}\n ></nile-wysiwyg-table-picker>\n `\n );\n }\n const def = ITEMS[name];\n if (!def) return nothing;\n switch (def.kind) {\n case 'button':\n return this.renderButton(def, overrides);\n case 'select':\n return this.renderSelect(name, def, overrides);\n case 'color':\n return this.renderColor(name, def, overrides);\n default:\n return nothing;\n }\n }\n\n /** Parses the `config` string into a flat token list, keeping the `|`\n * (divider) and `>>` (overflow) markers as items. */\n private itemsFromConfig(config: string): AuthoredToolbarItem[] {\n return config\n .trim()\n .split(/\\s+/)\n .filter(Boolean)\n .map(name => ({ name }));\n }\n\n /** Splits a flat item list into groups, breaking on `'|'` dividers. */\n private groupItems(items: AuthoredToolbarItem[]): AuthoredToolbarItem[][] {\n const groups: AuthoredToolbarItem[][] = [[]];\n for (const item of items) {\n if (item.name === '|') {\n if (groups[groups.length - 1].length) groups.push([]);\n continue;\n }\n groups[groups.length - 1].push(item);\n }\n return groups.filter(group => group.length > 0);\n }\n\n /** Partitions the flat item list into the always-visible main groups and the\n * overflow (3-dot menu) groups. Two forms are supported: a positional `>>`\n * token in the `config` string (everything after it overflows), or a\n * per-item `overflow` flag on authored items (each flagged item overflows,\n * wherever it sits). Without either, everything stays on the main bar. */\n private partitionGroups(items: AuthoredToolbarItem[]): {\n main: AuthoredToolbarItem[][];\n overflow: AuthoredToolbarItem[][];\n } {\n const at = items.findIndex(item => item.name === '>>');\n if (at !== -1) {\n return {\n main: this.groupItems(items.slice(0, at)),\n overflow: this.groupItems(items.slice(at + 1)),\n };\n }\n if (!items.some(item => item.overflow)) {\n return { main: this.groupItems(items), overflow: [] };\n }\n return {\n main: this.groupItems(items.filter(item => !item.overflow)),\n overflow: this.groupItems(items.filter(item => item.overflow)),\n };\n }\n\n /** Renders the trailing 3-dot \"more\" button and its collapsible panel that\n * hosts the overflow groups (everything after `>>` in the config). The panel\n * drops directly beneath the button, wherever the button sits in the bar. */\n private renderOverflow(hasMain: boolean, groups: AuthoredToolbarItem[][]): TemplateResult {\n const open = this.overflowOpen;\n return html`\n ${hasMain ? html`<span class=\"toolbar__divider\"></span>` : nothing}\n <span class=\"toolbar__overflow\" part=\"overflow\">\n ${this.withTooltip(\n 'More',\n html`\n <button\n type=\"button\"\n class=\"toolbar__button\"\n aria-label=\"More\"\n aria-haspopup=\"true\"\n aria-expanded=${open ? 'true' : 'false'}\n ?data-active=${open}\n ?disabled=${this.disabled}\n @mousedown=${(e: Event) => e.preventDefault()}\n @click=${this.toggleOverflow}\n >\n ${renderGlyph('ng-dots-vertical', 18)}\n </button>\n `\n )}\n ${open\n ? html`\n <div\n class=\"toolbar__overflow-panel\"\n part=\"overflow-panel\"\n @mousedown=${(e: Event) => e.preventDefault()}\n >\n ${groups.map(\n (group, index) => html`\n ${index > 0\n ? html`<span class=\"toolbar__overflow-divider\"></span>`\n : nothing}\n ${group.map(item =>\n this.renderItem(item.name, { label: item.label, icon: item.icon })\n )}\n `\n )}\n </div>\n `\n : nothing}\n </span>\n `;\n }\n\n public render(): TemplateResult {\n // A declarative container in an editor's light DOM only carries authored\n // <nile-wysiwyg-toolbar-item> children; the editor renders the real bar.\n if (this.isAuthoringContainer) return html``;\n\n const items =\n this.items && this.items.length ? this.items : this.itemsFromConfig(this.config);\n const { main, overflow } = this.partitionGroups(items);\n\n return html`\n <div class=\"toolbar\" part=\"toolbar\" role=\"toolbar\" aria-label=\"Text formatting\">\n ${main.map(\n (group, index) => html`\n ${index > 0 ? html`<span class=\"toolbar__divider\"></span>` : nothing}\n ${group.map(item =>\n this.renderItem(item.name, { label: item.label, icon: item.icon })\n )}\n `\n )}\n ${overflow.length ? this.renderOverflow(main.length > 0, overflow) : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-wysiwyg-toolbar': NileWysiwygToolbar;\n }\n}\n"],"names":["ITEMS","undo","kind","command","label","icon","disabled","s","canUndo","redo","canRedo","findReplace","bold","active","italic","underline","strike","subscript","superscript","code","text","alignLeft","attrs","align","alignCenter","alignRight","alignJustify","bulletList","inBulletList","orderedList","inOrderedList","taskList","inTaskList","indent","inCodeBlock","outdent","inBlockquote","blockIndent","listStyle","options","value","name","style","blockquote","link","linkActive","bookmark","horizontalRule","specialChars","emoji","codeBlock","image","embed","sourceView","showBlocks","clearFormatting","pastePlainText","pasteAsPlainText","fullscreen","iconActive","shortcutHelp","exportPdf","exportWord","exportInlineHtml","importMarkdown","importWord","formatPainter","caseChange","textCase","selectionEmpty","mergeField","template","math","heading","headingLevel","String","level","Number","fontFamily","concat","_toConsumableArray","map","f","family","fontSize","replace","size","lineHeight","textColor","glyph","bgColor","NileWysiwygToolbar","_t","p","constructor","this","config","DEFAULT_TOOLBAR","openMenu","overflowOpen","handleOutsideClick","event","composedPath","includes","toggleOverflow","_this","_inherits","_createClass","key","get","closest","connectedCallback","super","isAuthoringContainer","document","addEventListener","disconnectedCallback","removeEventListener","toggleMenu","dispatchCommand","emit","withTooltip","control","html","_templateObject","_taggedTemplateLiteral","renderButton","def","overrides","state","toolbarState","isActive","isDisabled","baseIcon","_templateObject2","e","preventDefault","renderGlyph","renderSelect","current","find","opt","isFont","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_o$command","cmd","nothing","setColor","color","renderColor","shown","isBg","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","detail","renderItem","_templateObject12","itemsFromConfig","trim","split","filter","Boolean","groupItems","items","groups","_iterator","_createForOfIteratorHelper","_step","n","done","item","length","push","err","group","partitionGroups","at","findIndex","main","slice","overflow","some","renderOverflow","hasMain","open","_templateObject13","_templateObject14","_templateObject15","_templateObject16","index","_templateObject17","_templateObject18","render","_templateObject19","_templateObject20","_templateObject21","_templateObject22","styles","NileElement","__decorate","property","type","prototype","attribute","reflect","customElement"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- System.register(["lit"],function(_export,_context){"use strict";var o,_templateObject,r;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){o=_lit.css;}],execute:function execute(){_export("s",r=o(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n :host {\n display: block;\n font-family: var(\n --nile-font-family-sans-serif,\n var(--ng-font-family-body, system-ui, -apple-system, sans-serif)\n );\n }\n\n .toolbar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid\n var(--nile-colors-neutral-400, var(--ng-colors-border-neutral, #d0d5dd));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff));\n border-radius: 8px 8px 0 0;\n box-sizing: border-box;\n }\n\n .toolbar__divider {\n width: 1px;\n height: 24px;\n margin: 0 4px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral, #d0d5dd));\n }\n\n button.toolbar__button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0 6px;\n box-sizing: border-box;\n border: none;\n background: transparent;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md, 8px));\n cursor: pointer;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900, #101828));\n font-family: inherit;\n font-size: 14px;\n font-weight: 600;\n }\n\n button.toolbar__button:hover:not(:disabled) {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary, #f2f4f7));\n }\n\n button.toolbar__button[data-active] {\n background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50, #eff4ff));\n }\n\n button.toolbar__button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n /* --- Dropdown selects (heading / font / size), nile-rte-select style --- */\n .toolbar__dropdown {\n position: relative;\n display: inline-flex;\n }\n\n button.toolbar__dd-trigger {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n min-width: 32px;\n height: 32px;\n padding: 0 6px 0 10px;\n box-sizing: border-box;\n border: none;\n background: transparent;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md, 8px));\n cursor: pointer;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900, #101828));\n font-family: inherit;\n font-size: 13px;\n white-space: nowrap;\n }\n\n button.toolbar__dd-trigger:hover:not(:disabled) {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary, #f2f4f7));\n }\n\n button.toolbar__dd-trigger:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .toolbar__dd-menu {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n z-index: 30;\n min-width: 140px;\n max-height: 260px;\n overflow-y: auto;\n padding: 4px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff));\n border: 1px solid\n var(--nile-colors-neutral-300, var(--ng-colors-border-secondary, #e4e7ec));\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);\n box-sizing: border-box;\n }\n\n .toolbar__dd-item {\n display: flex;\n align-items: center;\n padding: 6px 10px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900, #101828));\n white-space: nowrap;\n }\n\n .toolbar__dd-item:hover {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary, #f2f4f7));\n }\n\n .toolbar__dd-item[data-active] {\n background: var(\n --nile-colors-primary-50,\n var(--ng-componentcolors-utility-blue-50, #eff4ff)\n );\n color: var(--nile-colors-primary-700, #1d4ed8);\n }\n\n /* --- Color pickers, nile-rte-color style --- */\n .toolbar__color {\n position: relative;\n display: inline-flex;\n }\n\n .toolbar__color .glyph-stack {\n display: grid;\n align-items: center;\n justify-items: center;\n line-height: 1;\n pointer-events: none;\n }\n\n .toolbar__color .glyph {\n font-size: 14px;\n margin-bottom: 2px;\n font-weight: 400;\n }\n\n .toolbar__color .underline {\n width: 18px;\n height: 3px;\n border-radius: 2px;\n }\n\n .toolbar__color .swatch-box {\n width: 18px;\n height: 16px;\n border-radius: 4px;\n border: 1px solid rgba(0, 0, 0, 0.35);\n pointer-events: none;\n box-sizing: border-box;\n }\n\n .toolbar__swatch-panel {\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 30;\n width: 235px;\n padding: 12px;\n background: var(--nile-colors-white-base, #ffffff);\n border: 1px solid\n var(--nile-colors-neutral-300, var(--ng-colors-border-secondary, #e4e7ec));\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);\n box-sizing: border-box;\n }\n\n .toolbar__swatch-panel .title {\n font-size: 13px;\n font-weight: 600;\n margin-bottom: 8px;\n color: var(--nile-colors-dark-900, #111);\n }\n\n .toolbar__swatch-panel .section {\n margin-bottom: 12px;\n }\n\n .toolbar__swatch-panel .section:last-child {\n margin-bottom: 0;\n }\n\n .toolbar__swatch-panel .swatches {\n display: grid;\n grid-template-columns: repeat(auto-fill, 24px);\n gap: 8px;\n }\n\n .toolbar__swatch-panel .swatch {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n border: 1px solid rgba(0, 0, 0, 0.25);\n cursor: pointer;\n position: relative;\n padding: 0;\n background-clip: content-box;\n }\n\n .toolbar__swatch-panel .swatch .checkmark {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 13px;\n color: white;\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.6);\n }\n\n .toolbar__swatch-panel .swatch.add {\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n font-size: 16px;\n background: #fff;\n }\n\n .toolbar__color input[type='color'] {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n width: 0;\n height: 0;\n border: 0;\n padding: 0;\n }\n"]))));}};});
1
+ System.register(["lit"],function(_export,_context){"use strict";var o,_templateObject,r;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){o=_lit.css;}],execute:function execute(){_export("s",r=o(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n :host {\n display: block;\n font-family: var(\n --nile-font-family-sans-serif,\n var(--ng-font-family-body, system-ui, -apple-system, sans-serif)\n );\n }\n\n .toolbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid\n var(--nile-colors-neutral-400, var(--ng-colors-border-neutral, #d0d5dd));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff));\n border-radius: 8px 8px 0 0;\n box-sizing: border-box;\n }\n\n .toolbar__divider {\n width: 1px;\n height: 24px;\n margin: 0 4px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral, #d0d5dd));\n }\n\n button.toolbar__button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0 6px;\n box-sizing: border-box;\n border: none;\n background: transparent;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md, 8px));\n cursor: pointer;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900, #101828));\n font-family: inherit;\n font-size: 14px;\n font-weight: 600;\n }\n\n button.toolbar__button:hover:not(:disabled) {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary, #f2f4f7));\n }\n\n button.toolbar__button[data-active] {\n background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50, #eff4ff));\n }\n\n button.toolbar__button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n /* --- Dropdown selects (heading / font / size), nile-rte-select style --- */\n .toolbar__dropdown {\n position: relative;\n display: inline-flex;\n }\n\n button.toolbar__dd-trigger {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n min-width: 32px;\n height: 32px;\n padding: 0 6px 0 10px;\n box-sizing: border-box;\n border: none;\n background: transparent;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md, 8px));\n cursor: pointer;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900, #101828));\n font-family: inherit;\n font-size: 13px;\n white-space: nowrap;\n }\n\n button.toolbar__dd-trigger:hover:not(:disabled) {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary, #f2f4f7));\n }\n\n button.toolbar__dd-trigger:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .toolbar__dd-menu {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n z-index: 30;\n min-width: 140px;\n max-height: 260px;\n overflow-y: auto;\n padding: 4px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff));\n border: 1px solid\n var(--nile-colors-neutral-300, var(--ng-colors-border-secondary, #e4e7ec));\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);\n box-sizing: border-box;\n }\n\n .toolbar__dd-item {\n display: flex;\n align-items: center;\n padding: 6px 10px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900, #101828));\n white-space: nowrap;\n }\n\n .toolbar__dd-item:hover {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary, #f2f4f7));\n }\n\n .toolbar__dd-item[data-active] {\n background: var(\n --nile-colors-primary-50,\n var(--ng-componentcolors-utility-blue-50, #eff4ff)\n );\n color: var(--nile-colors-primary-700, #1d4ed8);\n }\n\n /* --- Color pickers, nile-rte-color style --- */\n .toolbar__color {\n position: relative;\n display: inline-flex;\n }\n\n .toolbar__color .glyph-stack {\n display: grid;\n align-items: center;\n justify-items: center;\n line-height: 1;\n pointer-events: none;\n }\n\n .toolbar__color .glyph {\n font-size: 14px;\n margin-bottom: 2px;\n font-weight: 400;\n }\n\n .toolbar__color .underline {\n width: 18px;\n height: 3px;\n border-radius: 2px;\n }\n\n .toolbar__color .swatch-box {\n width: 18px;\n height: 16px;\n border-radius: 4px;\n border: 1px solid rgba(0, 0, 0, 0.35);\n pointer-events: none;\n box-sizing: border-box;\n }\n\n /* Floating panel that hosts the inline nile-color-picker. */\n .toolbar__color-panel {\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 30;\n background: var(--nile-colors-white-base, #ffffff);\n border: 1px solid\n var(--nile-colors-neutral-300, var(--ng-colors-border-secondary, #e4e7ec));\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);\n box-sizing: border-box;\n }\n\n /* --- Overflow (\"more\" / 3-dot) menu --- */\n /* The 3-dot button stays in its normal place in the toolbar flow. */\n .toolbar__overflow {\n position: relative;\n display: inline-flex;\n }\n\n /* Panel drops directly beneath the 3-dot button, aligned to its left edge and\n extending right, so it opens wherever the button sits. width:max-content\n sizes it to exactly its controls (rather than collapsing to the 32px\n button's shrink-to-fit width); the max-width cap wraps a full menu onto\n multiple rows instead of running off-screen. */\n .toolbar__overflow-panel {\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n right: auto;\n width: max-content;\n max-width: min(360px, calc(100vw - 32px));\n z-index: 31;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n padding: 8px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff));\n border: 1px solid\n var(--nile-colors-neutral-300, var(--ng-colors-border-secondary, #e4e7ec));\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);\n box-sizing: border-box;\n }\n\n .toolbar__overflow-divider {\n width: 1px;\n height: 24px;\n margin: 0 4px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral, #d0d5dd));\n }\n"]))));}};});
2
2
  //# sourceMappingURL=nile-wysiwyg-toolbar.css.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-wysiwyg-toolbar.css.cjs.js","sources":["../../../../src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Toolbar styled to match nile-rich-text-editor: white toolbar, 32×32\n * borderless buttons, dropdown-button selects with menu panels,\n * swatch-palette color pickers, 24px dividers.\n */\nexport const styles = css`\n :host {\n display: block;\n font-family: var(\n --nile-font-family-sans-serif,\n var(--ng-font-family-body, system-ui, -apple-system, sans-serif)\n );\n }\n\n .toolbar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid\n var(--nile-colors-neutral-400, var(--ng-colors-border-neutral, #d0d5dd));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff));\n border-radius: 8px 8px 0 0;\n box-sizing: border-box;\n }\n\n .toolbar__divider {\n width: 1px;\n height: 24px;\n margin: 0 4px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral, #d0d5dd));\n }\n\n button.toolbar__button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0 6px;\n box-sizing: border-box;\n border: none;\n background: transparent;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md, 8px));\n cursor: pointer;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900, #101828));\n font-family: inherit;\n font-size: 14px;\n font-weight: 600;\n }\n\n button.toolbar__button:hover:not(:disabled) {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary, #f2f4f7));\n }\n\n button.toolbar__button[data-active] {\n background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50, #eff4ff));\n }\n\n button.toolbar__button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n /* --- Dropdown selects (heading / font / size), nile-rte-select style --- */\n .toolbar__dropdown {\n position: relative;\n display: inline-flex;\n }\n\n button.toolbar__dd-trigger {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n min-width: 32px;\n height: 32px;\n padding: 0 6px 0 10px;\n box-sizing: border-box;\n border: none;\n background: transparent;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md, 8px));\n cursor: pointer;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900, #101828));\n font-family: inherit;\n font-size: 13px;\n white-space: nowrap;\n }\n\n button.toolbar__dd-trigger:hover:not(:disabled) {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary, #f2f4f7));\n }\n\n button.toolbar__dd-trigger:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .toolbar__dd-menu {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n z-index: 30;\n min-width: 140px;\n max-height: 260px;\n overflow-y: auto;\n padding: 4px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff));\n border: 1px solid\n var(--nile-colors-neutral-300, var(--ng-colors-border-secondary, #e4e7ec));\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);\n box-sizing: border-box;\n }\n\n .toolbar__dd-item {\n display: flex;\n align-items: center;\n padding: 6px 10px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900, #101828));\n white-space: nowrap;\n }\n\n .toolbar__dd-item:hover {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary, #f2f4f7));\n }\n\n .toolbar__dd-item[data-active] {\n background: var(\n --nile-colors-primary-50,\n var(--ng-componentcolors-utility-blue-50, #eff4ff)\n );\n color: var(--nile-colors-primary-700, #1d4ed8);\n }\n\n /* --- Color pickers, nile-rte-color style --- */\n .toolbar__color {\n position: relative;\n display: inline-flex;\n }\n\n .toolbar__color .glyph-stack {\n display: grid;\n align-items: center;\n justify-items: center;\n line-height: 1;\n pointer-events: none;\n }\n\n .toolbar__color .glyph {\n font-size: 14px;\n margin-bottom: 2px;\n font-weight: 400;\n }\n\n .toolbar__color .underline {\n width: 18px;\n height: 3px;\n border-radius: 2px;\n }\n\n .toolbar__color .swatch-box {\n width: 18px;\n height: 16px;\n border-radius: 4px;\n border: 1px solid rgba(0, 0, 0, 0.35);\n pointer-events: none;\n box-sizing: border-box;\n }\n\n .toolbar__swatch-panel {\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 30;\n width: 235px;\n padding: 12px;\n background: var(--nile-colors-white-base, #ffffff);\n border: 1px solid\n var(--nile-colors-neutral-300, var(--ng-colors-border-secondary, #e4e7ec));\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);\n box-sizing: border-box;\n }\n\n .toolbar__swatch-panel .title {\n font-size: 13px;\n font-weight: 600;\n margin-bottom: 8px;\n color: var(--nile-colors-dark-900, #111);\n }\n\n .toolbar__swatch-panel .section {\n margin-bottom: 12px;\n }\n\n .toolbar__swatch-panel .section:last-child {\n margin-bottom: 0;\n }\n\n .toolbar__swatch-panel .swatches {\n display: grid;\n grid-template-columns: repeat(auto-fill, 24px);\n gap: 8px;\n }\n\n .toolbar__swatch-panel .swatch {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n border: 1px solid rgba(0, 0, 0, 0.25);\n cursor: pointer;\n position: relative;\n padding: 0;\n background-clip: content-box;\n }\n\n .toolbar__swatch-panel .swatch .checkmark {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 13px;\n color: white;\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.6);\n }\n\n .toolbar__swatch-panel .swatch.add {\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n font-size: 16px;\n background: #fff;\n }\n\n .toolbar__color input[type='color'] {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n width: 0;\n height: 0;\n border: 0;\n padding: 0;\n }\n`;\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAOaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
1
+ {"version":3,"file":"nile-wysiwyg-toolbar.css.cjs.js","sources":["../../../../src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Toolbar styled to match nile-rich-text-editor: white toolbar, 32×32\n * borderless buttons, dropdown-button selects with menu panels,\n * swatch-palette color pickers, 24px dividers.\n */\nexport const styles = css`\n :host {\n display: block;\n font-family: var(\n --nile-font-family-sans-serif,\n var(--ng-font-family-body, system-ui, -apple-system, sans-serif)\n );\n }\n\n .toolbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid\n var(--nile-colors-neutral-400, var(--ng-colors-border-neutral, #d0d5dd));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff));\n border-radius: 8px 8px 0 0;\n box-sizing: border-box;\n }\n\n .toolbar__divider {\n width: 1px;\n height: 24px;\n margin: 0 4px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral, #d0d5dd));\n }\n\n button.toolbar__button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0 6px;\n box-sizing: border-box;\n border: none;\n background: transparent;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md, 8px));\n cursor: pointer;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900, #101828));\n font-family: inherit;\n font-size: 14px;\n font-weight: 600;\n }\n\n button.toolbar__button:hover:not(:disabled) {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary, #f2f4f7));\n }\n\n button.toolbar__button[data-active] {\n background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50, #eff4ff));\n }\n\n button.toolbar__button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n /* --- Dropdown selects (heading / font / size), nile-rte-select style --- */\n .toolbar__dropdown {\n position: relative;\n display: inline-flex;\n }\n\n button.toolbar__dd-trigger {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n min-width: 32px;\n height: 32px;\n padding: 0 6px 0 10px;\n box-sizing: border-box;\n border: none;\n background: transparent;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md, 8px));\n cursor: pointer;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900, #101828));\n font-family: inherit;\n font-size: 13px;\n white-space: nowrap;\n }\n\n button.toolbar__dd-trigger:hover:not(:disabled) {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary, #f2f4f7));\n }\n\n button.toolbar__dd-trigger:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .toolbar__dd-menu {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n z-index: 30;\n min-width: 140px;\n max-height: 260px;\n overflow-y: auto;\n padding: 4px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff));\n border: 1px solid\n var(--nile-colors-neutral-300, var(--ng-colors-border-secondary, #e4e7ec));\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);\n box-sizing: border-box;\n }\n\n .toolbar__dd-item {\n display: flex;\n align-items: center;\n padding: 6px 10px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900, #101828));\n white-space: nowrap;\n }\n\n .toolbar__dd-item:hover {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary, #f2f4f7));\n }\n\n .toolbar__dd-item[data-active] {\n background: var(\n --nile-colors-primary-50,\n var(--ng-componentcolors-utility-blue-50, #eff4ff)\n );\n color: var(--nile-colors-primary-700, #1d4ed8);\n }\n\n /* --- Color pickers, nile-rte-color style --- */\n .toolbar__color {\n position: relative;\n display: inline-flex;\n }\n\n .toolbar__color .glyph-stack {\n display: grid;\n align-items: center;\n justify-items: center;\n line-height: 1;\n pointer-events: none;\n }\n\n .toolbar__color .glyph {\n font-size: 14px;\n margin-bottom: 2px;\n font-weight: 400;\n }\n\n .toolbar__color .underline {\n width: 18px;\n height: 3px;\n border-radius: 2px;\n }\n\n .toolbar__color .swatch-box {\n width: 18px;\n height: 16px;\n border-radius: 4px;\n border: 1px solid rgba(0, 0, 0, 0.35);\n pointer-events: none;\n box-sizing: border-box;\n }\n\n /* Floating panel that hosts the inline nile-color-picker. */\n .toolbar__color-panel {\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n z-index: 30;\n background: var(--nile-colors-white-base, #ffffff);\n border: 1px solid\n var(--nile-colors-neutral-300, var(--ng-colors-border-secondary, #e4e7ec));\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);\n box-sizing: border-box;\n }\n\n /* --- Overflow (\"more\" / 3-dot) menu --- */\n /* The 3-dot button stays in its normal place in the toolbar flow. */\n .toolbar__overflow {\n position: relative;\n display: inline-flex;\n }\n\n /* Panel drops directly beneath the 3-dot button, aligned to its left edge and\n extending right, so it opens wherever the button sits. width:max-content\n sizes it to exactly its controls (rather than collapsing to the 32px\n button's shrink-to-fit width); the max-width cap wraps a full menu onto\n multiple rows instead of running off-screen. */\n .toolbar__overflow-panel {\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n right: auto;\n width: max-content;\n max-width: min(360px, calc(100vw - 32px));\n z-index: 31;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n padding: 8px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff));\n border: 1px solid\n var(--nile-colors-neutral-300, var(--ng-colors-border-secondary, #e4e7ec));\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);\n box-sizing: border-box;\n }\n\n .toolbar__overflow-divider {\n width: 1px;\n height: 24px;\n margin: 0 4px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral, #d0d5dd));\n }\n`;\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAOaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
@@ -8,6 +8,7 @@ import{css as o}from"lit";const r=o`
8
8
  }
9
9
 
10
10
  .toolbar {
11
+ position: relative;
11
12
  display: flex;
12
13
  flex-wrap: wrap;
13
14
  align-items: center;
@@ -166,13 +167,12 @@ import{css as o}from"lit";const r=o`
166
167
  box-sizing: border-box;
167
168
  }
168
169
 
169
- .toolbar__swatch-panel {
170
+ /* Floating panel that hosts the inline nile-color-picker. */
171
+ .toolbar__color-panel {
170
172
  position: absolute;
171
173
  top: calc(100% + 6px);
172
174
  left: 0;
173
175
  z-index: 30;
174
- width: 235px;
175
- padding: 12px;
176
176
  background: var(--nile-colors-white-base, #ffffff);
177
177
  border: 1px solid
178
178
  var(--nile-colors-neutral-300, var(--ng-colors-border-secondary, #e4e7ec));
@@ -181,64 +181,43 @@ import{css as o}from"lit";const r=o`
181
181
  box-sizing: border-box;
182
182
  }
183
183
 
184
- .toolbar__swatch-panel .title {
185
- font-size: 13px;
186
- font-weight: 600;
187
- margin-bottom: 8px;
188
- color: var(--nile-colors-dark-900, #111);
189
- }
190
-
191
- .toolbar__swatch-panel .section {
192
- margin-bottom: 12px;
193
- }
194
-
195
- .toolbar__swatch-panel .section:last-child {
196
- margin-bottom: 0;
197
- }
198
-
199
- .toolbar__swatch-panel .swatches {
200
- display: grid;
201
- grid-template-columns: repeat(auto-fill, 24px);
202
- gap: 8px;
203
- }
204
-
205
- .toolbar__swatch-panel .swatch {
206
- width: 24px;
207
- height: 24px;
208
- border-radius: 50%;
209
- border: 1px solid rgba(0, 0, 0, 0.25);
210
- cursor: pointer;
184
+ /* --- Overflow ("more" / 3-dot) menu --- */
185
+ /* The 3-dot button stays in its normal place in the toolbar flow. */
186
+ .toolbar__overflow {
211
187
  position: relative;
212
- padding: 0;
213
- background-clip: content-box;
188
+ display: inline-flex;
214
189
  }
215
190
 
216
- .toolbar__swatch-panel .swatch .checkmark {
191
+ /* Panel drops directly beneath the 3-dot button, aligned to its left edge and
192
+ extending right, so it opens wherever the button sits. width:max-content
193
+ sizes it to exactly its controls (rather than collapsing to the 32px
194
+ button's shrink-to-fit width); the max-width cap wraps a full menu onto
195
+ multiple rows instead of running off-screen. */
196
+ .toolbar__overflow-panel {
217
197
  position: absolute;
218
- top: 50%;
219
- left: 50%;
220
- transform: translate(-50%, -50%);
221
- font-size: 13px;
222
- color: white;
223
- text-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
224
- }
225
-
226
- .toolbar__swatch-panel .swatch.add {
198
+ top: calc(100% + 6px);
199
+ left: 0;
200
+ right: auto;
201
+ width: max-content;
202
+ max-width: min(360px, calc(100vw - 32px));
203
+ z-index: 31;
227
204
  display: flex;
205
+ flex-wrap: wrap;
228
206
  align-items: center;
229
- justify-content: center;
230
- font-weight: bold;
231
- font-size: 16px;
232
- background: #fff;
207
+ gap: 6px;
208
+ padding: 8px;
209
+ background: var(--nile-colors-white-base, var(--ng-colors-bg-primary, #ffffff));
210
+ border: 1px solid
211
+ var(--nile-colors-neutral-300, var(--ng-colors-border-secondary, #e4e7ec));
212
+ border-radius: 8px;
213
+ box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);
214
+ box-sizing: border-box;
233
215
  }
234
216
 
235
- .toolbar__color input[type='color'] {
236
- position: absolute;
237
- opacity: 0;
238
- pointer-events: none;
239
- width: 0;
240
- height: 0;
241
- border: 0;
242
- padding: 0;
217
+ .toolbar__overflow-divider {
218
+ width: 1px;
219
+ height: 24px;
220
+ margin: 0 4px;
221
+ background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral, #d0d5dd));
243
222
  }
244
223
  `;export{r as s};