@aquera/nile-elements 0.1.64-beta-1.1 → 0.1.64-beta-1.2

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 (230) hide show
  1. package/demo/index.html +70 -53
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +590 -545
  5. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  6. package/dist/nile-avatar/nile-avatar.test.cjs.js.map +1 -1
  7. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  8. package/dist/nile-badge/index.cjs.js +1 -1
  9. package/dist/nile-badge/index.esm.js +1 -1
  10. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  11. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  12. package/dist/nile-badge/nile-badge.esm.js +1 -1
  13. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  14. package/dist/nile-badge/nile-badge.test.cjs.js.map +1 -1
  15. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  16. package/dist/nile-button/index.cjs.js +1 -1
  17. package/dist/nile-button/index.esm.js +1 -1
  18. package/dist/nile-button/nile-button.cjs.js +1 -1
  19. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  20. package/dist/nile-button/nile-button.esm.js +2 -2
  21. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  22. package/dist/nile-button/nile-button.test.cjs.js.map +1 -1
  23. package/dist/nile-button/nile-button.test.esm.js +1 -1
  24. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  25. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
  26. package/dist/nile-calendar/nile-calendar.test.esm.js +5 -5
  27. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  28. package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
  29. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  30. package/dist/nile-dialog/index.cjs.js +1 -1
  31. package/dist/nile-dialog/index.esm.js +1 -1
  32. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  33. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  34. package/dist/nile-dialog/nile-dialog.esm.js +1 -1
  35. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  36. package/dist/nile-dialog/nile-dialog.test.cjs.js.map +1 -1
  37. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  38. package/dist/nile-drawer/index.cjs.js +1 -1
  39. package/dist/nile-drawer/index.esm.js +1 -1
  40. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  41. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  42. package/dist/nile-drawer/nile-drawer.esm.js +2 -2
  43. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  44. package/dist/nile-drawer/nile-drawer.test.cjs.js.map +1 -1
  45. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  46. package/dist/nile-icon/icons/svg/bold-try.cjs.js +2 -0
  47. package/dist/nile-icon/icons/svg/bold-try.cjs.js.map +1 -0
  48. package/dist/nile-icon/icons/svg/bold-try.esm.js +1 -0
  49. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  50. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  51. package/dist/nile-icon/icons/svg/nile-bold.cjs.js +2 -0
  52. package/dist/nile-icon/icons/svg/nile-bold.cjs.js.map +1 -0
  53. package/dist/nile-icon/icons/svg/nile-bold.esm.js +1 -0
  54. package/dist/nile-icon/icons/svg/nile-centeralign.cjs.js +2 -0
  55. package/dist/nile-icon/icons/svg/nile-centeralign.cjs.js.map +1 -0
  56. package/dist/nile-icon/icons/svg/nile-centeralign.esm.js +1 -0
  57. package/dist/nile-icon/icons/svg/nile-italic.cjs.js +2 -0
  58. package/dist/nile-icon/icons/svg/nile-italic.cjs.js.map +1 -0
  59. package/dist/nile-icon/icons/svg/nile-italic.esm.js +1 -0
  60. package/dist/nile-icon/icons/svg/nile-justify.cjs.js +2 -0
  61. package/dist/nile-icon/icons/svg/nile-justify.cjs.js.map +1 -0
  62. package/dist/nile-icon/icons/svg/nile-justify.esm.js +1 -0
  63. package/dist/nile-icon/icons/svg/nile-leftalign.cjs.js +2 -0
  64. package/dist/nile-icon/icons/svg/nile-leftalign.cjs.js.map +1 -0
  65. package/dist/nile-icon/icons/svg/nile-leftalign.esm.js +1 -0
  66. package/dist/nile-icon/icons/svg/nile-ol.cjs.js +2 -0
  67. package/dist/nile-icon/icons/svg/nile-ol.cjs.js.map +1 -0
  68. package/dist/nile-icon/icons/svg/nile-ol.esm.js +1 -0
  69. package/dist/nile-icon/icons/svg/nile-rightalign.cjs.js +2 -0
  70. package/dist/nile-icon/icons/svg/nile-rightalign.cjs.js.map +1 -0
  71. package/dist/nile-icon/icons/svg/nile-rightalign.esm.js +1 -0
  72. package/dist/nile-icon/icons/svg/nile-ul.cjs.js +2 -0
  73. package/dist/nile-icon/icons/svg/nile-ul.cjs.js.map +1 -0
  74. package/dist/nile-icon/icons/svg/nile-ul.esm.js +1 -0
  75. package/dist/nile-icon/icons/svg/nile-underline.cjs.js +2 -0
  76. package/dist/nile-icon/icons/svg/nile-underline.cjs.js.map +1 -0
  77. package/dist/nile-icon/icons/svg/nile-underline.esm.js +1 -0
  78. package/dist/nile-icon/index.cjs.js +1 -1
  79. package/dist/nile-icon/index.cjs.js.map +1 -1
  80. package/dist/nile-icon/index.esm.js +1 -1
  81. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  82. package/dist/nile-icon/nile-icon.test.cjs.js.map +1 -1
  83. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  84. package/dist/nile-icon-button/index.cjs.js +1 -1
  85. package/dist/nile-icon-button/index.esm.js +1 -1
  86. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  87. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  88. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  89. package/dist/nile-input/index.cjs.js +1 -1
  90. package/dist/nile-input/index.esm.js +1 -1
  91. package/dist/nile-input/nile-input.cjs.js +1 -1
  92. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  93. package/dist/nile-input/nile-input.esm.js +1 -1
  94. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  95. package/dist/nile-input/nile-input.test.cjs.js.map +1 -1
  96. package/dist/nile-input/nile-input.test.esm.js +1 -1
  97. package/dist/nile-menu-item/index.cjs.js +1 -1
  98. package/dist/nile-menu-item/index.esm.js +1 -1
  99. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  100. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  101. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  102. package/dist/nile-option/index.cjs.js +1 -1
  103. package/dist/nile-option/index.esm.js +1 -1
  104. package/dist/nile-option/nile-option.cjs.js +1 -1
  105. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  106. package/dist/nile-option/nile-option.esm.js +1 -1
  107. package/dist/nile-rich-text-editor/index.cjs.js +1 -1
  108. package/dist/nile-rich-text-editor/index.esm.js +1 -1
  109. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
  110. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
  111. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
  112. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
  113. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +41 -4
  114. package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
  115. package/dist/nile-rich-text-editor/nile-rte-mentions-item.cjs.js +1 -1
  116. package/dist/nile-rich-text-editor/nile-rte-mentions-item.cjs.js.map +1 -1
  117. package/dist/nile-rich-text-editor/nile-rte-mentions-item.esm.js +1 -1
  118. package/dist/nile-rich-text-editor/nile-rte-mentions.cjs.js +2 -2
  119. package/dist/nile-rich-text-editor/nile-rte-mentions.cjs.js.map +1 -1
  120. package/dist/nile-rich-text-editor/nile-rte-mentions.esm.js +1 -1
  121. package/dist/nile-rich-text-editor/nile-rte-select.cjs.js +1 -1
  122. package/dist/nile-rich-text-editor/nile-rte-select.cjs.js.map +1 -1
  123. package/dist/nile-rich-text-editor/nile-rte-select.esm.js +14 -12
  124. package/dist/nile-select/index.cjs.js +1 -1
  125. package/dist/nile-select/index.esm.js +1 -1
  126. package/dist/nile-select/nile-select.cjs.js +1 -1
  127. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  128. package/dist/nile-select/nile-select.esm.js +1 -1
  129. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  130. package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
  131. package/dist/nile-select/nile-select.test.esm.js +1 -1
  132. package/dist/nile-tab/index.cjs.js +1 -1
  133. package/dist/nile-tab/index.esm.js +1 -1
  134. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  135. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  136. package/dist/nile-tab/nile-tab.esm.js +1 -1
  137. package/dist/nile-tab-group/index.cjs.js +1 -1
  138. package/dist/nile-tab-group/index.esm.js +1 -1
  139. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  140. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  141. package/dist/nile-tab-group/nile-tab-group.esm.js +2 -2
  142. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  143. package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +1 -1
  144. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  145. package/dist/nile-tag/index.cjs.js +1 -1
  146. package/dist/nile-tag/index.esm.js +1 -1
  147. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  148. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  149. package/dist/nile-tag/nile-tag.esm.js +1 -1
  150. package/dist/nile-toast/index.cjs.js +1 -1
  151. package/dist/nile-toast/index.esm.js +1 -1
  152. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  153. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  154. package/dist/nile-toast/nile-toast.esm.js +1 -1
  155. package/dist/nile-tree/index.cjs.js +1 -1
  156. package/dist/nile-tree/index.esm.js +1 -1
  157. package/dist/nile-tree/nile-tree.cjs.js +1 -1
  158. package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
  159. package/dist/nile-tree/nile-tree.esm.js +1 -1
  160. package/dist/nile-tree-item/index.cjs.js +1 -1
  161. package/dist/nile-tree-item/index.esm.js +1 -1
  162. package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
  163. package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
  164. package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
  165. package/dist/src/nile-icon/icons/svg/bold-try.d.ts +5 -0
  166. package/dist/src/nile-icon/icons/svg/bold-try.js +5 -0
  167. package/dist/src/nile-icon/icons/svg/bold-try.js.map +1 -0
  168. package/dist/src/nile-icon/icons/svg/index.d.ts +10 -0
  169. package/dist/src/nile-icon/icons/svg/index.js +10 -0
  170. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  171. package/dist/src/nile-icon/icons/svg/nile-bold.d.ts +5 -0
  172. package/dist/src/nile-icon/icons/svg/nile-bold.js +5 -0
  173. package/dist/src/nile-icon/icons/svg/nile-bold.js.map +1 -0
  174. package/dist/src/nile-icon/icons/svg/nile-centeralign.d.ts +5 -0
  175. package/dist/src/nile-icon/icons/svg/nile-centeralign.js +5 -0
  176. package/dist/src/nile-icon/icons/svg/nile-centeralign.js.map +1 -0
  177. package/dist/src/nile-icon/icons/svg/nile-italic.d.ts +5 -0
  178. package/dist/src/nile-icon/icons/svg/nile-italic.js +5 -0
  179. package/dist/src/nile-icon/icons/svg/nile-italic.js.map +1 -0
  180. package/dist/src/nile-icon/icons/svg/nile-justify.d.ts +5 -0
  181. package/dist/src/nile-icon/icons/svg/nile-justify.js +5 -0
  182. package/dist/src/nile-icon/icons/svg/nile-justify.js.map +1 -0
  183. package/dist/src/nile-icon/icons/svg/nile-leftalign.d.ts +5 -0
  184. package/dist/src/nile-icon/icons/svg/nile-leftalign.js +5 -0
  185. package/dist/src/nile-icon/icons/svg/nile-leftalign.js.map +1 -0
  186. package/dist/src/nile-icon/icons/svg/nile-ol.d.ts +5 -0
  187. package/dist/src/nile-icon/icons/svg/nile-ol.js +5 -0
  188. package/dist/src/nile-icon/icons/svg/nile-ol.js.map +1 -0
  189. package/dist/src/nile-icon/icons/svg/nile-rightalign.d.ts +5 -0
  190. package/dist/src/nile-icon/icons/svg/nile-rightalign.js +5 -0
  191. package/dist/src/nile-icon/icons/svg/nile-rightalign.js.map +1 -0
  192. package/dist/src/nile-icon/icons/svg/nile-ul.d.ts +5 -0
  193. package/dist/src/nile-icon/icons/svg/nile-ul.js +5 -0
  194. package/dist/src/nile-icon/icons/svg/nile-ul.js.map +1 -0
  195. package/dist/src/nile-icon/icons/svg/nile-underline.d.ts +5 -0
  196. package/dist/src/nile-icon/icons/svg/nile-underline.js +5 -0
  197. package/dist/src/nile-icon/icons/svg/nile-underline.js.map +1 -0
  198. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.d.ts +0 -9
  199. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +40 -11
  200. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
  201. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +1 -1
  202. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +23 -70
  203. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
  204. package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.d.ts +1 -0
  205. package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.js +5 -0
  206. package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.js.map +1 -1
  207. package/dist/src/nile-rich-text-editor/nile-rte-mentions.d.ts +3 -0
  208. package/dist/src/nile-rich-text-editor/nile-rte-mentions.js +39 -2
  209. package/dist/src/nile-rich-text-editor/nile-rte-mentions.js.map +1 -1
  210. package/dist/src/nile-rich-text-editor/nile-rte-select.js +26 -3
  211. package/dist/src/nile-rich-text-editor/nile-rte-select.js.map +1 -1
  212. package/dist/tsconfig.tsbuildinfo +1 -1
  213. package/package.json +1 -1
  214. package/src/nile-icon/icons/svg/bold-try.ts +5 -0
  215. package/src/nile-icon/icons/svg/index.ts +10 -0
  216. package/src/nile-icon/icons/svg/nile-bold.ts +5 -0
  217. package/src/nile-icon/icons/svg/nile-centeralign.ts +5 -0
  218. package/src/nile-icon/icons/svg/nile-italic.ts +5 -0
  219. package/src/nile-icon/icons/svg/nile-justify.ts +5 -0
  220. package/src/nile-icon/icons/svg/nile-leftalign.ts +5 -0
  221. package/src/nile-icon/icons/svg/nile-ol.ts +5 -0
  222. package/src/nile-icon/icons/svg/nile-rightalign.ts +5 -0
  223. package/src/nile-icon/icons/svg/nile-ul.ts +5 -0
  224. package/src/nile-icon/icons/svg/nile-underline.ts +5 -0
  225. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +42 -14
  226. package/src/nile-rich-text-editor/nile-rich-text-editor.ts +29 -67
  227. package/src/nile-rich-text-editor/nile-rte-mentions-item.ts +5 -0
  228. package/src/nile-rich-text-editor/nile-rte-mentions.ts +38 -4
  229. package/src/nile-rich-text-editor/nile-rte-select.ts +26 -4
  230. package/vscode-html-custom-data.json +10 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-italic.js","sourceRoot":"","sources":["../../../../../src/nile-icon/icons/svg/nile-italic.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAe,sVAAsV,CAAC","sourcesContent":["/**\n * Do not edit directly\n */\n\nexport default \"PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40OTUxMiAxNS41MjA3VjE0LjAxNDJINy42NzYxNkwxMC4zNzY2IDUuOTg1NDZINy4xOTU1M1Y0LjQ3OUgxNC44MjM3VjUuOTg1NDZIMTEuODk4OUw5LjE5ODY2IDE0LjAxNDJIMTIuMTIzMlYxNS41MjA3SDQuNDk1MTJaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==\";"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+ declare const _default: "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjA4MzJWMTUuODMzMkgxNy4wODMyVjE3LjA4MzJIMi45MTY1Wk0yLjkxNjUgMTMuODU0VjEyLjYwNEgxNy4wODMyVjEzLjg1NEgyLjkxNjVaTTIuOTE2NSAxMC42MjQ4VjkuMzc0ODRIMTcuMDgzMlYxMC42MjQ4SDIuOTE2NVpNMi45MTY1IDcuMzk1NjdWNi4xNDU2N0gxNy4wODMyVjcuMzk1NjdIMi45MTY1Wk0yLjkxNjUgNC4xNjY1VjIuOTE2NUgxNy4wODMyVjQuMTY2NUgyLjkxNjVaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==";
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjA4MzJWMTUuODMzMkgxNy4wODMyVjE3LjA4MzJIMi45MTY1Wk0yLjkxNjUgMTMuODU0VjEyLjYwNEgxNy4wODMyVjEzLjg1NEgyLjkxNjVaTTIuOTE2NSAxMC42MjQ4VjkuMzc0ODRIMTcuMDgzMlYxMC42MjQ4SDIuOTE2NVpNMi45MTY1IDcuMzk1NjdWNi4xNDU2N0gxNy4wODMyVjcuMzk1NjdIMi45MTY1Wk0yLjkxNjUgNC4xNjY1VjIuOTE2NUgxNy4wODMyVjQuMTY2NUgyLjkxNjVaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==";
5
+ //# sourceMappingURL=nile-justify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-justify.js","sourceRoot":"","sources":["../../../../../src/nile-icon/icons/svg/nile-justify.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAe,8dAA8d,CAAC","sourcesContent":["/**\n * Do not edit directly\n */\n\nexport default \"PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjA4MzJWMTUuODMzMkgxNy4wODMyVjE3LjA4MzJIMi45MTY1Wk0yLjkxNjUgMTMuODU0VjEyLjYwNEgxNy4wODMyVjEzLjg1NEgyLjkxNjVaTTIuOTE2NSAxMC42MjQ4VjkuMzc0ODRIMTcuMDgzMlYxMC42MjQ4SDIuOTE2NVpNMi45MTY1IDcuMzk1NjdWNi4xNDU2N0gxNy4wODMyVjcuMzk1NjdIMi45MTY1Wk0yLjkxNjUgNC4xNjY1VjIuOTE2NUgxNy4wODMyVjQuMTY2NUgyLjkxNjVaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==\";"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+ declare const _default: "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjA4MzJWMTUuODMzMkgxNy4wODMyVjE3LjA4MzJIMi45MTY1Wk0yLjkxNjUgMTMuODU0VjEyLjYwNEgxMi4wODMyVjEzLjg1NEgyLjkxNjVaTTIuOTE2NSAxMC42MjQ4VjkuMzc0ODRIMTcuMDgzMlYxMC42MjQ4SDIuOTE2NVpNMi45MTY1IDcuMzk1NjdWNi4xNDU2N0gxMi4wODMyVjcuMzk1NjdIMi45MTY1Wk0yLjkxNjUgNC4xNjY1VjIuOTE2NUgxNy4wODMyVjQuMTY2NUgyLjkxNjVaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==";
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjA4MzJWMTUuODMzMkgxNy4wODMyVjE3LjA4MzJIMi45MTY1Wk0yLjkxNjUgMTMuODU0VjEyLjYwNEgxMi4wODMyVjEzLjg1NEgyLjkxNjVaTTIuOTE2NSAxMC42MjQ4VjkuMzc0ODRIMTcuMDgzMlYxMC42MjQ4SDIuOTE2NVpNMi45MTY1IDcuMzk1NjdWNi4xNDU2N0gxMi4wODMyVjcuMzk1NjdIMi45MTY1Wk0yLjkxNjUgNC4xNjY1VjIuOTE2NUgxNy4wODMyVjQuMTY2NUgyLjkxNjVaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==";
5
+ //# sourceMappingURL=nile-leftalign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-leftalign.js","sourceRoot":"","sources":["../../../../../src/nile-icon/icons/svg/nile-leftalign.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAe,8dAA8d,CAAC","sourcesContent":["/**\n * Do not edit directly\n */\n\nexport default \"PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjA4MzJWMTUuODMzMkgxNy4wODMyVjE3LjA4MzJIMi45MTY1Wk0yLjkxNjUgMTMuODU0VjEyLjYwNEgxMi4wODMyVjEzLjg1NEgyLjkxNjVaTTIuOTE2NSAxMC42MjQ4VjkuMzc0ODRIMTcuMDgzMlYxMC42MjQ4SDIuOTE2NVpNMi45MTY1IDcuMzk1NjdWNi4xNDU2N0gxMi4wODMyVjcuMzk1NjdIMi45MTY1Wk0yLjkxNjUgNC4xNjY1VjIuOTE2NUgxNy4wODMyVjQuMTY2NUgyLjkxNjVaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==\";"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+ declare const _default: "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjkxNjhWMTYuOTIzM0g0Ljk5OTg0VjE2LjA0MThIMy43NDk4NFYxNS4wNDgzSDQuOTk5ODRWMTQuMTY2OEgyLjkxNjVWMTMuMTczM0g1LjI4ODM4QzUuNDg4MSAxMy4xNzMzIDUuNjU1NTMgMTMuMjQwOSA1Ljc5MDY3IDEzLjM3NkM1LjkyNTgxIDEzLjUxMTEgNS45OTMzOCAxMy42Nzg2IDUuOTkzMzggMTMuODc4M1YxNC44NzJDNS45OTMzOCAxNS4wNzE4IDUuOTI1ODEgMTUuMjM5MiA1Ljc5MDY3IDE1LjM3NDNDNS42NTU1MyAxNS41MDk1IDUuNDg4MSAxNS41NzcgNS4yODgzOCAxNS41NzdDNS40ODgxIDE1LjU3NyA1LjY1NTUzIDE1LjY0NDYgNS43OTA2NyAxNS43Nzk3QzUuOTI1ODEgMTUuOTE0OSA1Ljk5MzM4IDE2LjA4MjQgNS45OTMzOCAxNi4yODIyVjE3LjIxMTZDNS45OTMzOCAxNy40MTE1IDUuOTI1ODEgMTcuNTc5IDUuNzkwNjcgMTcuNzE0MUM1LjY1NTUzIDE3Ljg0OTMgNS40ODgxIDE3LjkxNjggNS4yODgzOCAxNy45MTY4SDIuOTE2NVpNMi45MTY1IDEyLjM3MlYxMC4yMDg1QzIuOTE2NSAxMC4wMDg4IDIuOTg0MDcgOS44NDEyNyAzLjExOTIxIDkuNzA2QzMuMjU0MzUgOS41NzA4NiAzLjQyMTg1IDkuNTAzMjkgMy42MjE3MSA5LjUwMzI5SDQuOTk5ODRWOC42MjIwNEgyLjkxNjVWNy42MjgyOUg1LjI4ODM4QzUuNDg4MSA3LjYyODI5IDUuNjU1NTMgNy42OTU4NiA1Ljc5MDY3IDcuODMxQzUuOTI1ODEgNy45NjYyNyA1Ljk5MzM4IDguMTMzNzcgNS45OTMzOCA4LjMzMzVWOS43OTE4M0M1Ljk5MzM4IDkuOTkxNTUgNS45MjU4MSAxMC4xNTkxIDUuNzkwNjcgMTAuMjk0M0M1LjY1NTUzIDEwLjQyOTUgNS40ODgxIDEwLjQ5NyA1LjI4ODM4IDEwLjQ5N0gzLjkxMDA1VjExLjM3ODNINS45OTMzOFYxMi4zNzJIMi45MTY1Wk00LjE2NjUgNi44MjcwNFYzLjA3NzA0SDIuOTE2NVYyLjA4MzVINS4xNjAwNVY2LjgyNzA0SDQuMTY2NVpNNy43NTYzIDE1LjYyNTJWMTQuMzc1MkgxNy4wODMyVjE1LjYyNTJINy43NTYzWk03Ljc1NjMgMTAuNjI1MlY5LjM3NTE2SDE3LjA4MzJWMTAuNjI1Mkg3Ljc1NjNaTTcuNzU2MyA1LjYyNTE2VjQuMzc1MTZIMTcuMDgzMlY1LjYyNTE2SDcuNzU2M1oiIGZpbGw9ImJsYWNrIi8+PC9zdmc+";
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjkxNjhWMTYuOTIzM0g0Ljk5OTg0VjE2LjA0MThIMy43NDk4NFYxNS4wNDgzSDQuOTk5ODRWMTQuMTY2OEgyLjkxNjVWMTMuMTczM0g1LjI4ODM4QzUuNDg4MSAxMy4xNzMzIDUuNjU1NTMgMTMuMjQwOSA1Ljc5MDY3IDEzLjM3NkM1LjkyNTgxIDEzLjUxMTEgNS45OTMzOCAxMy42Nzg2IDUuOTkzMzggMTMuODc4M1YxNC44NzJDNS45OTMzOCAxNS4wNzE4IDUuOTI1ODEgMTUuMjM5MiA1Ljc5MDY3IDE1LjM3NDNDNS42NTU1MyAxNS41MDk1IDUuNDg4MSAxNS41NzcgNS4yODgzOCAxNS41NzdDNS40ODgxIDE1LjU3NyA1LjY1NTUzIDE1LjY0NDYgNS43OTA2NyAxNS43Nzk3QzUuOTI1ODEgMTUuOTE0OSA1Ljk5MzM4IDE2LjA4MjQgNS45OTMzOCAxNi4yODIyVjE3LjIxMTZDNS45OTMzOCAxNy40MTE1IDUuOTI1ODEgMTcuNTc5IDUuNzkwNjcgMTcuNzE0MUM1LjY1NTUzIDE3Ljg0OTMgNS40ODgxIDE3LjkxNjggNS4yODgzOCAxNy45MTY4SDIuOTE2NVpNMi45MTY1IDEyLjM3MlYxMC4yMDg1QzIuOTE2NSAxMC4wMDg4IDIuOTg0MDcgOS44NDEyNyAzLjExOTIxIDkuNzA2QzMuMjU0MzUgOS41NzA4NiAzLjQyMTg1IDkuNTAzMjkgMy42MjE3MSA5LjUwMzI5SDQuOTk5ODRWOC42MjIwNEgyLjkxNjVWNy42MjgyOUg1LjI4ODM4QzUuNDg4MSA3LjYyODI5IDUuNjU1NTMgNy42OTU4NiA1Ljc5MDY3IDcuODMxQzUuOTI1ODEgNy45NjYyNyA1Ljk5MzM4IDguMTMzNzcgNS45OTMzOCA4LjMzMzVWOS43OTE4M0M1Ljk5MzM4IDkuOTkxNTUgNS45MjU4MSAxMC4xNTkxIDUuNzkwNjcgMTAuMjk0M0M1LjY1NTUzIDEwLjQyOTUgNS40ODgxIDEwLjQ5NyA1LjI4ODM4IDEwLjQ5N0gzLjkxMDA1VjExLjM3ODNINS45OTMzOFYxMi4zNzJIMi45MTY1Wk00LjE2NjUgNi44MjcwNFYzLjA3NzA0SDIuOTE2NVYyLjA4MzVINS4xNjAwNVY2LjgyNzA0SDQuMTY2NVpNNy43NTYzIDE1LjYyNTJWMTQuMzc1MkgxNy4wODMyVjE1LjYyNTJINy43NTYzWk03Ljc1NjMgMTAuNjI1MlY5LjM3NTE2SDE3LjA4MzJWMTAuNjI1Mkg3Ljc1NjNaTTcuNzU2MyA1LjYyNTE2VjQuMzc1MTZIMTcuMDgzMlY1LjYyNTE2SDcuNzU2M1oiIGZpbGw9ImJsYWNrIi8+PC9zdmc+";
5
+ //# sourceMappingURL=nile-ol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-ol.js","sourceRoot":"","sources":["../../../../../src/nile-icon/icons/svg/nile-ol.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAe,0kDAA0kD,CAAC","sourcesContent":["/**\n * Do not edit directly\n */\n\nexport default \"PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjkxNjhWMTYuOTIzM0g0Ljk5OTg0VjE2LjA0MThIMy43NDk4NFYxNS4wNDgzSDQuOTk5ODRWMTQuMTY2OEgyLjkxNjVWMTMuMTczM0g1LjI4ODM4QzUuNDg4MSAxMy4xNzMzIDUuNjU1NTMgMTMuMjQwOSA1Ljc5MDY3IDEzLjM3NkM1LjkyNTgxIDEzLjUxMTEgNS45OTMzOCAxMy42Nzg2IDUuOTkzMzggMTMuODc4M1YxNC44NzJDNS45OTMzOCAxNS4wNzE4IDUuOTI1ODEgMTUuMjM5MiA1Ljc5MDY3IDE1LjM3NDNDNS42NTU1MyAxNS41MDk1IDUuNDg4MSAxNS41NzcgNS4yODgzOCAxNS41NzdDNS40ODgxIDE1LjU3NyA1LjY1NTUzIDE1LjY0NDYgNS43OTA2NyAxNS43Nzk3QzUuOTI1ODEgMTUuOTE0OSA1Ljk5MzM4IDE2LjA4MjQgNS45OTMzOCAxNi4yODIyVjE3LjIxMTZDNS45OTMzOCAxNy40MTE1IDUuOTI1ODEgMTcuNTc5IDUuNzkwNjcgMTcuNzE0MUM1LjY1NTUzIDE3Ljg0OTMgNS40ODgxIDE3LjkxNjggNS4yODgzOCAxNy45MTY4SDIuOTE2NVpNMi45MTY1IDEyLjM3MlYxMC4yMDg1QzIuOTE2NSAxMC4wMDg4IDIuOTg0MDcgOS44NDEyNyAzLjExOTIxIDkuNzA2QzMuMjU0MzUgOS41NzA4NiAzLjQyMTg1IDkuNTAzMjkgMy42MjE3MSA5LjUwMzI5SDQuOTk5ODRWOC42MjIwNEgyLjkxNjVWNy42MjgyOUg1LjI4ODM4QzUuNDg4MSA3LjYyODI5IDUuNjU1NTMgNy42OTU4NiA1Ljc5MDY3IDcuODMxQzUuOTI1ODEgNy45NjYyNyA1Ljk5MzM4IDguMTMzNzcgNS45OTMzOCA4LjMzMzVWOS43OTE4M0M1Ljk5MzM4IDkuOTkxNTUgNS45MjU4MSAxMC4xNTkxIDUuNzkwNjcgMTAuMjk0M0M1LjY1NTUzIDEwLjQyOTUgNS40ODgxIDEwLjQ5NyA1LjI4ODM4IDEwLjQ5N0gzLjkxMDA1VjExLjM3ODNINS45OTMzOFYxMi4zNzJIMi45MTY1Wk00LjE2NjUgNi44MjcwNFYzLjA3NzA0SDIuOTE2NVYyLjA4MzVINS4xNjAwNVY2LjgyNzA0SDQuMTY2NVpNNy43NTYzIDE1LjYyNTJWMTQuMzc1MkgxNy4wODMyVjE1LjYyNTJINy43NTYzWk03Ljc1NjMgMTAuNjI1MlY5LjM3NTE2SDE3LjA4MzJWMTAuNjI1Mkg3Ljc1NjNaTTcuNzU2MyA1LjYyNTE2VjQuMzc1MTZIMTcuMDgzMlY1LjYyNTE2SDcuNzU2M1oiIGZpbGw9ImJsYWNrIi8+PC9zdmc+\";"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+ declare const _default: "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDQuMTY2NVYyLjkxNjVIMTcuMDgzMlY0LjE2NjVIMi45MTY1Wk03LjkxNjUgNy4zOTU2N1Y2LjE0NTY3SDE3LjA4MzJWNy4zOTU2N0g3LjkxNjVaTTIuOTE2NSAxMC42MjQ4VjkuMzc0ODRIMTcuMDgzMlYxMC42MjQ4SDIuOTE2NVpNNy45MTY1IDEzLjg1NFYxMi42MDRIMTcuMDgzMlYxMy44NTRINy45MTY1Wk0yLjkxNjUgMTcuMDgzMlYxNS44MzMySDE3LjA4MzJWMTcuMDgzMkgyLjkxNjVaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==";
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDQuMTY2NVYyLjkxNjVIMTcuMDgzMlY0LjE2NjVIMi45MTY1Wk03LjkxNjUgNy4zOTU2N1Y2LjE0NTY3SDE3LjA4MzJWNy4zOTU2N0g3LjkxNjVaTTIuOTE2NSAxMC42MjQ4VjkuMzc0ODRIMTcuMDgzMlYxMC42MjQ4SDIuOTE2NVpNNy45MTY1IDEzLjg1NFYxMi42MDRIMTcuMDgzMlYxMy44NTRINy45MTY1Wk0yLjkxNjUgMTcuMDgzMlYxNS44MzMySDE3LjA4MzJWMTcuMDgzMkgyLjkxNjVaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==";
5
+ //# sourceMappingURL=nile-rightalign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-rightalign.js","sourceRoot":"","sources":["../../../../../src/nile-icon/icons/svg/nile-rightalign.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAe,8dAA8d,CAAC","sourcesContent":["/**\n * Do not edit directly\n */\n\nexport default \"PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDQuMTY2NVYyLjkxNjVIMTcuMDgzMlY0LjE2NjVIMi45MTY1Wk03LjkxNjUgNy4zOTU2N1Y2LjE0NTY3SDE3LjA4MzJWNy4zOTU2N0g3LjkxNjVaTTIuOTE2NSAxMC42MjQ4VjkuMzc0ODRIMTcuMDgzMlYxMC42MjQ4SDIuOTE2NVpNNy45MTY1IDEzLjg1NFYxMi42MDRIMTcuMDgzMlYxMy44NTRINy45MTY1Wk0yLjkxNjUgMTcuMDgzMlYxNS44MzMySDE3LjA4MzJWMTcuMDgzMkgyLjkxNjVaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==\";"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+ declare const _default: "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNy43NTYzIDE1LjYyNVYxNC4zNzVIMTcuMDgzMlYxNS42MjVINy43NTYzWk03Ljc1NjMgMTAuNjI1VjkuMzc1MDJIMTcuMDgzMlYxMC42MjVINy43NTYzWk03Ljc1NjMgNS42MjUwMlY0LjM3NTAySDE3LjA4MzJWNS42MjUwMkg3Ljc1NjNaTTQuMzAyNzUgMTYuMzg2M0MzLjkyMTUgMTYuMzg2MyAzLjU5NTE4IDE2LjI1MDUgMy4zMjM4IDE1Ljk3OUMzLjA1MjI3IDE1LjcwNzYgMi45MTY1IDE1LjM4MTMgMi45MTY1IDE1QzIuOTE2NSAxNC42MTg4IDMuMDUyMjcgMTQuMjkyNCAzLjMyMzggMTQuMDIxMUMzLjU5NTE4IDEzLjc0OTUgMy45MjE1IDEzLjYxMzggNC4zMDI3NSAxMy42MTM4QzQuNjg0IDEzLjYxMzggNS4wMTAzMiAxMy43NDk1IDUuMjgxNzEgMTQuMDIxMUM1LjU1MzI0IDE0LjI5MjQgNS42ODkgMTQuNjE4OCA1LjY4OSAxNUM1LjY4OSAxNS4zODEzIDUuNTUzMjQgMTUuNzA3NiA1LjI4MTcxIDE1Ljk3OUM1LjAxMDMyIDE2LjI1MDUgNC42ODQgMTYuMzg2MyA0LjMwMjc1IDE2LjM4NjNaTTQuMzAyNzUgMTEuMzg2M0MzLjkyMTUgMTEuMzg2MyAzLjU5NTE4IDExLjI1MDUgMy4zMjM4IDEwLjk3OUMzLjA1MjI3IDEwLjcwNzYgMi45MTY1IDEwLjM4MTMgMi45MTY1IDEwQzIuOTE2NSA5LjYxODc3IDMuMDUyMjcgOS4yOTI0NSAzLjMyMzggOS4wMjEwNkMzLjU5NTE4IDguNzQ5NTMgMy45MjE1IDguNjEzNzcgNC4zMDI3NSA4LjYxMzc3QzQuNjg0IDguNjEzNzcgNS4wMTAzMiA4Ljc0OTUzIDUuMjgxNzEgOS4wMjEwNkM1LjU1MzI0IDkuMjkyNDUgNS42ODkgOS42MTg3NyA1LjY4OSAxMEM1LjY4OSAxMC4zODEzIDUuNTUzMjQgMTAuNzA3NiA1LjI4MTcxIDEwLjk3OUM1LjAxMDMyIDExLjI1MDUgNC42ODQgMTEuMzg2MyA0LjMwMjc1IDExLjM4NjNaTTQuMzAyNzUgNi4zODYyN0MzLjkyMTUgNi4zODYyNyAzLjU5NTE4IDYuMjUwNSAzLjMyMzggNS45Nzg5OEMzLjA1MjI3IDUuNzA3NTkgMi45MTY1IDUuMzgxMjcgMi45MTY1IDUuMDAwMDJDMi45MTY1IDQuNjE4NzcgMy4wNTIyNyA0LjI5MjQ1IDMuMzIzOCA0LjAyMTA2QzMuNTk1MTggMy43NDk1MyAzLjkyMTUgMy42MTM3NyA0LjMwMjc1IDMuNjEzNzdDNC42ODQgMy42MTM3NyA1LjAxMDMyIDMuNzQ5NTMgNS4yODE3MSA0LjAyMTA2QzUuNTUzMjQgNC4yOTI0NSA1LjY4OSA0LjYxODc3IDUuNjg5IDUuMDAwMDJDNS42ODkgNS4zODEyNyA1LjU1MzI0IDUuNzA3NTkgNS4yODE3MSA1Ljk3ODk4QzUuMDEwMzIgNi4yNTA1IDQuNjg0IDYuMzg2MjcgNC4zMDI3NSA2LjM4NjI3WiIgZmlsbD0iYmxhY2siLz48L3N2Zz4=";
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNy43NTYzIDE1LjYyNVYxNC4zNzVIMTcuMDgzMlYxNS42MjVINy43NTYzWk03Ljc1NjMgMTAuNjI1VjkuMzc1MDJIMTcuMDgzMlYxMC42MjVINy43NTYzWk03Ljc1NjMgNS42MjUwMlY0LjM3NTAySDE3LjA4MzJWNS42MjUwMkg3Ljc1NjNaTTQuMzAyNzUgMTYuMzg2M0MzLjkyMTUgMTYuMzg2MyAzLjU5NTE4IDE2LjI1MDUgMy4zMjM4IDE1Ljk3OUMzLjA1MjI3IDE1LjcwNzYgMi45MTY1IDE1LjM4MTMgMi45MTY1IDE1QzIuOTE2NSAxNC42MTg4IDMuMDUyMjcgMTQuMjkyNCAzLjMyMzggMTQuMDIxMUMzLjU5NTE4IDEzLjc0OTUgMy45MjE1IDEzLjYxMzggNC4zMDI3NSAxMy42MTM4QzQuNjg0IDEzLjYxMzggNS4wMTAzMiAxMy43NDk1IDUuMjgxNzEgMTQuMDIxMUM1LjU1MzI0IDE0LjI5MjQgNS42ODkgMTQuNjE4OCA1LjY4OSAxNUM1LjY4OSAxNS4zODEzIDUuNTUzMjQgMTUuNzA3NiA1LjI4MTcxIDE1Ljk3OUM1LjAxMDMyIDE2LjI1MDUgNC42ODQgMTYuMzg2MyA0LjMwMjc1IDE2LjM4NjNaTTQuMzAyNzUgMTEuMzg2M0MzLjkyMTUgMTEuMzg2MyAzLjU5NTE4IDExLjI1MDUgMy4zMjM4IDEwLjk3OUMzLjA1MjI3IDEwLjcwNzYgMi45MTY1IDEwLjM4MTMgMi45MTY1IDEwQzIuOTE2NSA5LjYxODc3IDMuMDUyMjcgOS4yOTI0NSAzLjMyMzggOS4wMjEwNkMzLjU5NTE4IDguNzQ5NTMgMy45MjE1IDguNjEzNzcgNC4zMDI3NSA4LjYxMzc3QzQuNjg0IDguNjEzNzcgNS4wMTAzMiA4Ljc0OTUzIDUuMjgxNzEgOS4wMjEwNkM1LjU1MzI0IDkuMjkyNDUgNS42ODkgOS42MTg3NyA1LjY4OSAxMEM1LjY4OSAxMC4zODEzIDUuNTUzMjQgMTAuNzA3NiA1LjI4MTcxIDEwLjk3OUM1LjAxMDMyIDExLjI1MDUgNC42ODQgMTEuMzg2MyA0LjMwMjc1IDExLjM4NjNaTTQuMzAyNzUgNi4zODYyN0MzLjkyMTUgNi4zODYyNyAzLjU5NTE4IDYuMjUwNSAzLjMyMzggNS45Nzg5OEMzLjA1MjI3IDUuNzA3NTkgMi45MTY1IDUuMzgxMjcgMi45MTY1IDUuMDAwMDJDMi45MTY1IDQuNjE4NzcgMy4wNTIyNyA0LjI5MjQ1IDMuMzIzOCA0LjAyMTA2QzMuNTk1MTggMy43NDk1MyAzLjkyMTUgMy42MTM3NyA0LjMwMjc1IDMuNjEzNzdDNC42ODQgMy42MTM3NyA1LjAxMDMyIDMuNzQ5NTMgNS4yODE3MSA0LjAyMTA2QzUuNTUzMjQgNC4yOTI0NSA1LjY4OSA0LjYxODc3IDUuNjg5IDUuMDAwMDJDNS42ODkgNS4zODEyNyA1LjU1MzI0IDUuNzA3NTkgNS4yODE3MSA1Ljk3ODk4QzUuMDEwMzIgNi4yNTA1IDQuNjg0IDYuMzg2MjcgNC4zMDI3NSA2LjM4NjI3WiIgZmlsbD0iYmxhY2siLz48L3N2Zz4=";
5
+ //# sourceMappingURL=nile-ul.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-ul.js","sourceRoot":"","sources":["../../../../../src/nile-icon/icons/svg/nile-ul.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAe,8zDAA8zD,CAAC","sourcesContent":["/**\n * Do not edit directly\n */\n\nexport default \"PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNy43NTYzIDE1LjYyNVYxNC4zNzVIMTcuMDgzMlYxNS42MjVINy43NTYzWk03Ljc1NjMgMTAuNjI1VjkuMzc1MDJIMTcuMDgzMlYxMC42MjVINy43NTYzWk03Ljc1NjMgNS42MjUwMlY0LjM3NTAySDE3LjA4MzJWNS42MjUwMkg3Ljc1NjNaTTQuMzAyNzUgMTYuMzg2M0MzLjkyMTUgMTYuMzg2MyAzLjU5NTE4IDE2LjI1MDUgMy4zMjM4IDE1Ljk3OUMzLjA1MjI3IDE1LjcwNzYgMi45MTY1IDE1LjM4MTMgMi45MTY1IDE1QzIuOTE2NSAxNC42MTg4IDMuMDUyMjcgMTQuMjkyNCAzLjMyMzggMTQuMDIxMUMzLjU5NTE4IDEzLjc0OTUgMy45MjE1IDEzLjYxMzggNC4zMDI3NSAxMy42MTM4QzQuNjg0IDEzLjYxMzggNS4wMTAzMiAxMy43NDk1IDUuMjgxNzEgMTQuMDIxMUM1LjU1MzI0IDE0LjI5MjQgNS42ODkgMTQuNjE4OCA1LjY4OSAxNUM1LjY4OSAxNS4zODEzIDUuNTUzMjQgMTUuNzA3NiA1LjI4MTcxIDE1Ljk3OUM1LjAxMDMyIDE2LjI1MDUgNC42ODQgMTYuMzg2MyA0LjMwMjc1IDE2LjM4NjNaTTQuMzAyNzUgMTEuMzg2M0MzLjkyMTUgMTEuMzg2MyAzLjU5NTE4IDExLjI1MDUgMy4zMjM4IDEwLjk3OUMzLjA1MjI3IDEwLjcwNzYgMi45MTY1IDEwLjM4MTMgMi45MTY1IDEwQzIuOTE2NSA5LjYxODc3IDMuMDUyMjcgOS4yOTI0NSAzLjMyMzggOS4wMjEwNkMzLjU5NTE4IDguNzQ5NTMgMy45MjE1IDguNjEzNzcgNC4zMDI3NSA4LjYxMzc3QzQuNjg0IDguNjEzNzcgNS4wMTAzMiA4Ljc0OTUzIDUuMjgxNzEgOS4wMjEwNkM1LjU1MzI0IDkuMjkyNDUgNS42ODkgOS42MTg3NyA1LjY4OSAxMEM1LjY4OSAxMC4zODEzIDUuNTUzMjQgMTAuNzA3NiA1LjI4MTcxIDEwLjk3OUM1LjAxMDMyIDExLjI1MDUgNC42ODQgMTEuMzg2MyA0LjMwMjc1IDExLjM4NjNaTTQuMzAyNzUgNi4zODYyN0MzLjkyMTUgNi4zODYyNyAzLjU5NTE4IDYuMjUwNSAzLjMyMzggNS45Nzg5OEMzLjA1MjI3IDUuNzA3NTkgMi45MTY1IDUuMzgxMjcgMi45MTY1IDUuMDAwMDJDMi45MTY1IDQuNjE4NzcgMy4wNTIyNyA0LjI5MjQ1IDMuMzIzOCA0LjAyMTA2QzMuNTk1MTggMy43NDk1MyAzLjkyMTUgMy42MTM3NyA0LjMwMjc1IDMuNjEzNzdDNC42ODQgMy42MTM3NyA1LjAxMDMyIDMuNzQ5NTMgNS4yODE3MSA0LjAyMTA2QzUuNTUzMjQgNC4yOTI0NSA1LjY4OSA0LjYxODc3IDUuNjg5IDUuMDAwMDJDNS42ODkgNS4zODEyNyA1LjU1MzI0IDUuNzA3NTkgNS4yODE3MSA1Ljk3ODk4QzUuMDEwMzIgNi4yNTA1IDQuNjg0IDYuMzg2MjcgNC4zMDI3NSA2LjM4NjI3WiIgZmlsbD0iYmxhY2siLz48L3N2Zz4=\";"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+ declare const _default: "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40NTUwOCAxNi43NzFWMTUuNTIxSDE1LjU0NDdWMTYuNzcxSDQuNDU1MDhaTTkuOTk5ODcgMTMuNzc0MUM4LjcwMzkgMTMuNzc0MSA3LjY5MjQ0IDEzLjM4MDcgNi45NjU0OSAxMi41OTM5QzYuMjM4NDEgMTEuODA3MSA1Ljg3NDg3IDEwLjc1MjkgNS44NzQ4NyA5LjQzMTE5VjIuODQ0NzNINy40MTk2NlY5LjUwODA2QzcuNDE5NjYgMTAuMzUgNy42NDM0OCAxMS4wMjQ3IDguMDkxMTIgMTEuNTMyMkM4LjUzODc2IDEyLjAzOTcgOS4xNzUwMSAxMi4yOTM1IDkuOTk5ODcgMTIuMjkzNUMxMC44MjQ3IDEyLjI5MzUgMTEuNDYxIDEyLjAzOTcgMTEuOTA4NiAxMS41MzIyQzEyLjM1NjMgMTEuMDI0NyAxMi41ODAxIDEwLjM1IDEyLjU4MDEgOS41MDgwNlYyLjg0NDczSDE0LjEyNDlWOS40MzExOUMxNC4xMjQ5IDEwLjc1MjkgMTMuNzYxMyAxMS44MDcxIDEzLjAzNDIgMTIuNTkzOUMxMi4zMDczIDEzLjM4MDcgMTEuMjk1OCAxMy43NzQxIDkuOTk5ODcgMTMuNzc0MVoiIGZpbGw9ImJsYWNrIi8+PC9zdmc+";
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40NTUwOCAxNi43NzFWMTUuNTIxSDE1LjU0NDdWMTYuNzcxSDQuNDU1MDhaTTkuOTk5ODcgMTMuNzc0MUM4LjcwMzkgMTMuNzc0MSA3LjY5MjQ0IDEzLjM4MDcgNi45NjU0OSAxMi41OTM5QzYuMjM4NDEgMTEuODA3MSA1Ljg3NDg3IDEwLjc1MjkgNS44NzQ4NyA5LjQzMTE5VjIuODQ0NzNINy40MTk2NlY5LjUwODA2QzcuNDE5NjYgMTAuMzUgNy42NDM0OCAxMS4wMjQ3IDguMDkxMTIgMTEuNTMyMkM4LjUzODc2IDEyLjAzOTcgOS4xNzUwMSAxMi4yOTM1IDkuOTk5ODcgMTIuMjkzNUMxMC44MjQ3IDEyLjI5MzUgMTEuNDYxIDEyLjAzOTcgMTEuOTA4NiAxMS41MzIyQzEyLjM1NjMgMTEuMDI0NyAxMi41ODAxIDEwLjM1IDEyLjU4MDEgOS41MDgwNlYyLjg0NDczSDE0LjEyNDlWOS40MzExOUMxNC4xMjQ5IDEwLjc1MjkgMTMuNzYxMyAxMS44MDcxIDEzLjAzNDIgMTIuNTkzOUMxMi4zMDczIDEzLjM4MDcgMTEuMjk1OCAxMy43NzQxIDkuOTk5ODcgMTMuNzc0MVoiIGZpbGw9ImJsYWNrIi8+PC9zdmc+";
5
+ //# sourceMappingURL=nile-underline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-underline.js","sourceRoot":"","sources":["../../../../../src/nile-icon/icons/svg/nile-underline.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAe,szBAAszB,CAAC","sourcesContent":["/**\n * Do not edit directly\n */\n\nexport default \"PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40NTUwOCAxNi43NzFWMTUuNTIxSDE1LjU0NDdWMTYuNzcxSDQuNDU1MDhaTTkuOTk5ODcgMTMuNzc0MUM4LjcwMzkgMTMuNzc0MSA3LjY5MjQ0IDEzLjM4MDcgNi45NjU0OSAxMi41OTM5QzYuMjM4NDEgMTEuODA3MSA1Ljg3NDg3IDEwLjc1MjkgNS44NzQ4NyA5LjQzMTE5VjIuODQ0NzNINy40MTk2NlY5LjUwODA2QzcuNDE5NjYgMTAuMzUgNy42NDM0OCAxMS4wMjQ3IDguMDkxMTIgMTEuNTMyMkM4LjUzODc2IDEyLjAzOTcgOS4xNzUwMSAxMi4yOTM1IDkuOTk5ODcgMTIuMjkzNUMxMC44MjQ3IDEyLjI5MzUgMTEuNDYxIDEyLjAzOTcgMTEuOTA4NiAxMS41MzIyQzEyLjM1NjMgMTEuMDI0NyAxMi41ODAxIDEwLjM1IDEyLjU4MDEgOS41MDgwNlYyLjg0NDczSDE0LjEyNDlWOS40MzExOUMxNC4xMjQ5IDEwLjc1MjkgMTMuNzYxMyAxMS44MDcxIDEzLjAzNDIgMTIuNTkzOUMxMi4zMDczIDEzLjM4MDcgMTEuMjk1OCAxMy43NzQxIDkuOTk5ODcgMTMuNzc0MVoiIGZpbGw9ImJsYWNrIi8+PC9zdmc+\";"]}
@@ -1,12 +1,3 @@
1
- /**
2
- * Copyright Aquera Inc 2023
3
- *
4
- * This source code is licensed under the BSD-3-Clause license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- /**
8
- * RichTextEditor CSS
9
- */
10
1
  export declare const styles: import("lit").CSSResult;
11
2
  declare const _default: import("lit").CSSResult[];
12
3
  export default _default;
@@ -1,19 +1,48 @@
1
- /**
2
- * Copyright Aquera Inc 2023
3
- *
4
- * This source code is licensed under the BSD-3-Clause license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
1
+ // rte-styles.ts
7
2
  import { css } from 'lit';
8
- /**
9
- * RichTextEditor CSS
10
- */
11
3
  export const styles = css `
12
- :host {
4
+ /* Host positioning for overlays */
5
+ nile-rich-text-editor { position: relative; display: block; font-family: inherit; }
13
6
 
14
- },
7
+
8
+ nile-rte-toolbar-item > nile-button::part(base) {
9
+
10
+ width:32px; height:32px; padding:0px 6px;
11
+ border: none;
12
+ }
13
+
14
+
15
15
 
16
16
 
17
+ .toolbar, nile-rte-toolbar {
18
+ display:flex; align-items:center; gap:8px; padding:8px;
19
+ border:1px solid #e5e7eb; border-bottom:none; border-radius:8px 8px 0 0; background:#fff;
20
+ }
21
+
22
+ nile-rte-toolbar-item > button, .toolbar button, nile-rte-toolbar button {
23
+ border:1px solid #e5e7eb; background:#fff; border-radius:6px;
24
+ cursor:pointer;
25
+ }
26
+
27
+
28
+ /* Ensure clicks hit the button (not nested icon internals) */
29
+ nile-rte-toolbar-item > button nile-icon { pointer-events:none; }
30
+
31
+ nile-rte-toolbar-item > button.active { border-color:#2563eb; background:#eff6ff; }
32
+ nile-rte-select select { height:32px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; }
33
+ nile-rte-color input[type="color"] { height:32px; width:36px; border:1px solid #e5e7eb; padding:0; border-radius:6px; background:#fff; }
34
+ nile-rte-divider { width:1px; height:20px; background:#e5e7eb; display:inline-block; margin:0 4px; }
35
+
36
+ .editor p { margin:1em 0; }
37
+ .editor h1 { font-size:2em }
38
+ .editor h2 { font-size:1.5em }
39
+ .editor h3 { font-size:1.17em }
40
+ .editor h4 { font-size:1em }
41
+ .editor h5 { font-size:0.83em }
42
+ .editor h6 { font-size:0.67em }
43
+
44
+ .editor { min-height:160px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none; }
45
+ nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; }
17
46
  `;
18
47
  export default [styles];
19
48
  //# sourceMappingURL=nile-rich-text-editor.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-rich-text-editor.css.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;CAMxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n* Copyright Aquera Inc 2023\n*\n* This source code is licensed under the BSD-3-Clause license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nimport {css} from 'lit';\n\n/**\n * RichTextEditor CSS\n */\nexport const styles = css`\n\t:host {\n\n\t},\n\n\n`;\n\nexport default [styles];"]}
1
+ {"version":3,"file":"nile-rich-text-editor.css.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["// rte-styles.ts\nimport { css } from 'lit';\n\nexport const styles = css`\n /* Host positioning for overlays */\n nile-rich-text-editor { position: relative; display: block; font-family: inherit; }\n\n \nnile-rte-toolbar-item > nile-button::part(base) {\n \n width:32px; height:32px; padding:0px 6px;\n border: none;\n}\n \n \n\n\n .toolbar, nile-rte-toolbar {\n display:flex; align-items:center; gap:8px; padding:8px; \n border:1px solid #e5e7eb; border-bottom:none; border-radius:8px 8px 0 0; background:#fff;\n }\n\n nile-rte-toolbar-item > button, .toolbar button, nile-rte-toolbar button {\n border:1px solid #e5e7eb; background:#fff; border-radius:6px;\n cursor:pointer;\n }\n\n \n /* Ensure clicks hit the button (not nested icon internals) */\n nile-rte-toolbar-item > button nile-icon { pointer-events:none; }\n\n nile-rte-toolbar-item > button.active { border-color:#2563eb; background:#eff6ff; }\n nile-rte-select select { height:32px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; }\n nile-rte-color input[type=\"color\"] { height:32px; width:36px; border:1px solid #e5e7eb; padding:0; border-radius:6px; background:#fff; }\n nile-rte-divider { width:1px; height:20px; background:#e5e7eb; display:inline-block; margin:0 4px; }\n\n .editor p { margin:1em 0; }\n .editor h1 { font-size:2em }\n .editor h2 { font-size:1.5em }\n .editor h3 { font-size:1.17em }\n .editor h4 { font-size:1em }\n .editor h5 { font-size:0.83em }\n .editor h6 { font-size:0.67em }\n\n .editor { min-height:160px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none; }\n nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; }\n`;\n\nexport default [styles];"]}
@@ -27,9 +27,9 @@ export declare class NileRichTextEditor extends LitElement {
27
27
  private fontSelect;
28
28
  private colorInput;
29
29
  private mentionsEl;
30
+ private injectCss;
30
31
  connectedCallback(): void;
31
32
  disconnectedCallback(): void;
32
- private injectStyles;
33
33
  private ensureEditor;
34
34
  private wireEditor;
35
35
  private wireAuthoredToolbar;
@@ -10,22 +10,23 @@ import './nile-rte-divider';
10
10
  import './nile-rte-preview';
11
11
  import './nile-rte-mentions';
12
12
  import { closestBlock, nearestElement, rgbToHex, toggleInlineTag, setBlockTag, setAlignment, setFontFamily, setForeColor, insertOrEditLink } from './utils';
13
+ import { styles } from './nile-rich-text-editor.css';
13
14
  /**
14
15
  * Map commands → default icon names from your <nile-icon> set.
15
16
  * Adjust values to match the real names you have.
16
17
  */
17
18
  const DEFAULT_ICONS = {
18
- bold: 'bold',
19
- italic: 'itallic',
20
- underline: 'underline',
19
+ bold: 'nile-bold',
20
+ italic: 'nile-italic',
21
+ underline: 'nile-underline',
21
22
  link: 'user',
22
- left: 'user',
23
- center: 'user',
24
- right: 'user',
25
- justify: 'user',
26
- ul: 'ul',
27
- ol: 'ol',
28
- clear: 'close',
23
+ left: 'nile-leftalign',
24
+ center: 'nile-centeralign',
25
+ right: 'nile-rightalign',
26
+ justify: 'nile-justify',
27
+ ul: 'nile-ul',
28
+ ol: 'nile-ol',
29
+ clear: 'error',
29
30
  };
30
31
  let NileRichTextEditor = class NileRichTextEditor extends LitElement {
31
32
  constructor() {
@@ -60,12 +61,20 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
60
61
  }
61
62
  };
62
63
  }
63
- createRenderRoot() { return this; } // Light DOM
64
- shouldUpdate() { return false; } // Preserve authored DOM; no Lit re-render
64
+ createRenderRoot() { return this; }
65
+ shouldUpdate() { return false; }
66
+ injectCss(cssText) {
67
+ if (this.querySelector('style[data-rte-style]'))
68
+ return;
69
+ const style = document.createElement('style');
70
+ style.setAttribute('data-rte-style', 'true');
71
+ style.textContent = cssText;
72
+ this.insertBefore(style, this.firstChild);
73
+ }
65
74
  connectedCallback() {
66
75
  super.connectedCallback();
67
76
  // 1) Inject styles once (so authored DOM stays as-is)
68
- this.injectStyles();
77
+ this.injectCss(styles.cssText);
69
78
  // 2) Keep authored nodes
70
79
  this.toolbarEl = this.querySelector('nile-rte-toolbar');
71
80
  this.previewEl = this.querySelector('nile-rte-preview');
@@ -82,17 +91,12 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
82
91
  // 6) Mentions: delegate to child controller
83
92
  this.mentionsEl = this.querySelector('nile-rte-mentions');
84
93
  if (this.mentionsEl) {
85
- // pass the editor and host for positioning
86
94
  this.mentionsEl.attach?.(this.editorEl, this);
87
- // pass parent-provided config so child can merge with its own attribute config
88
95
  this.mentionsEl.setExternalConfig?.(this.mentions);
89
96
  }
90
- // 7) Wire editor listeners (selection + input)
91
97
  this.wireEditor();
92
- // 8) Initial active state + preview
93
98
  this.updateToolbarState();
94
99
  this.syncPreview();
95
- // 9) Global selection tracking (for toolbar state)
96
100
  document.addEventListener('selectionchange', this.onSelectionChange, true);
97
101
  }
98
102
  disconnectedCallback() {
@@ -103,57 +107,6 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
103
107
  }
104
108
  super.disconnectedCallback();
105
109
  }
106
- // ---------- DOM helpers ----------
107
- injectStyles() {
108
- if (this.querySelector('style[data-rte-style]'))
109
- return;
110
- const style = document.createElement('style');
111
- style.setAttribute('data-rte-style', 'true');
112
- style.textContent = `
113
- /* Host positioning for overlays */
114
- nile-rich-text-editor { position: relative; display: block; }
115
-
116
-
117
- nile-rte-toolbar-item > nile-button::part(base) {
118
-
119
- width:32px; height:32px; padding:0px 6px;
120
- }
121
-
122
-
123
-
124
-
125
- .toolbar, nile-rte-toolbar {
126
- display:flex; align-items:center; gap:8px; padding-top:8px; padding-left: 8px; padding-right: 8px;
127
- border:1px solid #e5e7eb; border-bottom:none; border-radius:8px 8px 0 0; background:#fff;
128
- }
129
-
130
- nile-rte-toolbar-item > button, .toolbar button, nile-rte-toolbar button {
131
- border:1px solid #e5e7eb; background:#fff; border-radius:6px;
132
- cursor:pointer;
133
- }
134
-
135
-
136
- /* Ensure clicks hit the button (not nested icon internals) */
137
- nile-rte-toolbar-item > button nile-icon { pointer-events:none; }
138
-
139
- nile-rte-toolbar-item > button.active { border-color:#2563eb; background:#eff6ff; }
140
- nile-rte-select select { height:32px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; }
141
- nile-rte-color input[type="color"] { height:32px; width:36px; border:1px solid #e5e7eb; padding:0; border-radius:6px; background:#fff; }
142
- nile-rte-divider { width:1px; height:20px; background:#e5e7eb; display:inline-block; margin:0 4px; }
143
-
144
- .editor p { margin:1em 0; }
145
- .editor h1 { font-size:2em }
146
- .editor h2 { font-size:1.5em }
147
- .editor h3 { font-size:1.17em }
148
- .editor h4 { font-size:1em }
149
- .editor h5 { font-size:0.83em }
150
- .editor h6 { font-size:0.67em }
151
-
152
- .editor { min-height:160px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none; }
153
- nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; }
154
- `;
155
- this.insertBefore(style, this.firstChild);
156
- }
157
110
  ensureEditor() {
158
111
  this.editorEl = this.querySelector('.editor');
159
112
  if (!this.editorEl) {
@@ -226,7 +179,7 @@ nile-rte-toolbar-item > nile-button::part(base) {
226
179
  else if (!authoredHasContent) {
227
180
  const defaultIcon = DEFAULT_ICONS[cmd];
228
181
  if (defaultIcon) {
229
- btn.innerHTML = `<nile-icon name="${defaultIcon}" size="26" aria-label="${label}"></nile-icon>`;
182
+ btn.innerHTML = `<nile-icon name="${defaultIcon}" size="20" color="black" aria-label="${label}"></nile-icon>`;
230
183
  }
231
184
  else {
232
185
  btn.textContent = label || cmd;
@@ -1 +1 @@
1
- {"version":3,"file":"nile-rich-text-editor.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.ts"],"names":[],"mappings":"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","sourcesContent":["// nile-rich-text-editor.ts\nimport { LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport './nile-rte-toolbar';\nimport './nile-rte-toolbar-item';\nimport './nile-rte-select';\nimport './nile-rte-color';\nimport './nile-rte-divider';\nimport './nile-rte-preview';\nimport './nile-rte-mentions';\n\nimport {\n closestBlock, nearestElement, rgbToHex,\n toggleInlineTag, setBlockTag, setAlignment,\n setFontFamily, setForeColor, insertOrEditLink\n} from './utils';\n\ntype MentionsConfig = Record<string, { key: string; label: string }[]>;\n\n/**\n * Map commands → default icon names from your <nile-icon> set.\n * Adjust values to match the real names you have.\n */\nconst DEFAULT_ICONS: Record<string, string> = {\n bold: 'bold',\n italic: 'itallic',\n underline: 'underline',\n link: 'user',\n left: 'user',\n center: 'user',\n right: 'user',\n justify: 'user',\n ul: 'ul',\n ol: 'ol',\n clear: 'close',\n};\n\n@customElement('nile-rich-text-editor')\nexport class NileRichTextEditor extends LitElement {\n protected createRenderRoot() { return this; } // Light DOM\n protected shouldUpdate() { return false; } // Preserve authored DOM; no Lit re-render\n\n /** Initial HTML content */\n @property({ type: String }) value = '';\n\n /** Optional mentions config (can also be on <nile-rte-mentions mentions=\"...\">) */\n @property({\n attribute: 'mentions',\n converter: {\n fromAttribute: (value: string): MentionsConfig => {\n try {\n const parsed = JSON.parse(value);\n const out: MentionsConfig = {};\n for (const trig of Object.keys(parsed)) {\n const arr = parsed[trig];\n if (Array.isArray(arr)) {\n out[trig] = arr\n .filter(i => i && typeof i.key === 'string' && typeof i.label === 'string')\n .map(i => ({ key: i.key, label: i.label }));\n }\n }\n return out;\n } catch { return {}; }\n },\n toAttribute: (v: MentionsConfig) => JSON.stringify(v),\n }\n })\n mentions: MentionsConfig = {};\n\n // ----- internal state (no Lit render) -----\n @state() private content = '';\n private editorEl!: HTMLElement;\n private previewEl: HTMLElement | null = null;\n private toolbarEl: HTMLElement | null = null;\n\n private lastRange: Range | null = null;\n\n // map for button active reflections\n private buttonMap = new Map<string, HTMLElement[]>();\n private headingSelect: HTMLSelectElement | null = null;\n private fontSelect: HTMLSelectElement | null = null;\n private colorInput: HTMLInputElement | null = null;\n\n // Mentions controller (child)\n private mentionsEl: HTMLElement | null = null;\n\n \n\n connectedCallback(): void {\n super.connectedCallback();\n\n // 1) Inject styles once (so authored DOM stays as-is)\n this.injectStyles();\n \n\n // 2) Keep authored nodes\n this.toolbarEl = this.querySelector('nile-rte-toolbar');\n this.previewEl = this.querySelector('nile-rte-preview');\n\n // 3) Ensure there is an editor element; create if missing.\n this.ensureEditor();\n\n // 4) Fill initial content\n if (this.value && !this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = this.value;\n }\n this.content = this.editorEl.innerHTML;\n\n // 5) Wire toolbar authored children directly\n if (this.toolbarEl) this.wireAuthoredToolbar(this.toolbarEl);\n\n // 6) Mentions: delegate to child controller\n this.mentionsEl = this.querySelector('nile-rte-mentions');\n if (this.mentionsEl) {\n // pass the editor and host for positioning\n (this.mentionsEl as any).attach?.(this.editorEl, this as HTMLElement);\n // pass parent-provided config so child can merge with its own attribute config\n (this.mentionsEl as any).setExternalConfig?.(this.mentions);\n }\n\n // 7) Wire editor listeners (selection + input)\n this.wireEditor();\n\n // 8) Initial active state + preview\n this.updateToolbarState();\n this.syncPreview();\n\n // 9) Global selection tracking (for toolbar state)\n document.addEventListener('selectionchange', this.onSelectionChange, true);\n }\n\n disconnectedCallback(): void {\n document.removeEventListener('selectionchange', this.onSelectionChange, true);\n // Optionally tell mentions to cleanup\n if (this.mentionsEl && (this.mentionsEl as any).detach) {\n (this.mentionsEl as any).detach();\n }\n super.disconnectedCallback();\n }\n\n // ---------- DOM helpers ----------\n private injectStyles() {\n if (this.querySelector('style[data-rte-style]')) return;\n const style = document.createElement('style');\n style.setAttribute('data-rte-style', 'true');\n style.textContent = `\n /* Host positioning for overlays */\n nile-rich-text-editor { position: relative; display: block; }\n\n \nnile-rte-toolbar-item > nile-button::part(base) {\n \n width:32px; height:32px; padding:0px 6px;\n}\n \n \n\n\n .toolbar, nile-rte-toolbar {\n display:flex; align-items:center; gap:8px; padding-top:8px; padding-left: 8px; padding-right: 8px;\n border:1px solid #e5e7eb; border-bottom:none; border-radius:8px 8px 0 0; background:#fff;\n }\n\n nile-rte-toolbar-item > button, .toolbar button, nile-rte-toolbar button {\n border:1px solid #e5e7eb; background:#fff; border-radius:6px;\n cursor:pointer;\n }\n\n \n /* Ensure clicks hit the button (not nested icon internals) */\n nile-rte-toolbar-item > button nile-icon { pointer-events:none; }\n\n nile-rte-toolbar-item > button.active { border-color:#2563eb; background:#eff6ff; }\n nile-rte-select select { height:32px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; }\n nile-rte-color input[type=\"color\"] { height:32px; width:36px; border:1px solid #e5e7eb; padding:0; border-radius:6px; background:#fff; }\n nile-rte-divider { width:1px; height:20px; background:#e5e7eb; display:inline-block; margin:0 4px; }\n\n .editor p { margin:1em 0; }\n .editor h1 { font-size:2em }\n .editor h2 { font-size:1.5em }\n .editor h3 { font-size:1.17em }\n .editor h4 { font-size:1em }\n .editor h5 { font-size:0.83em }\n .editor h6 { font-size:0.67em }\n\n .editor { min-height:160px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none; }\n nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; }\n `;\n this.insertBefore(style, this.firstChild);\n }\n\n private ensureEditor() {\n this.editorEl = this.querySelector('.editor') as HTMLElement;\n if (!this.editorEl) {\n const editor = document.createElement('div');\n editor.className = 'editor';\n editor.setAttribute('contenteditable','true');\n if (this.toolbarEl?.nextSibling) {\n this.insertBefore(editor, this.toolbarEl.nextSibling);\n } else if (this.previewEl) {\n this.insertBefore(editor, this.previewEl);\n } else {\n this.appendChild(editor);\n }\n this.editorEl = editor;\n }\n // **NEW**: seed an empty paragraph so setBlockTag() has something to swap\n if (!this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = '<p><br></p>';\n }\n this.ensureAtLeastOneParagraph();\n }\n\n private wireEditor() {\n // Input & selection preservation\n this.editorEl.addEventListener('input', () => { \n this.ensureAtLeastOneParagraph();\n this.updateContent();\n });\n this.editorEl.addEventListener('mouseup', () => this.saveSelection());\n this.editorEl.addEventListener('keyup', () => this.saveSelection()); // keep range fresh for toolbar\n }\n\n private wireAuthoredToolbar(tb: HTMLElement) {\n // Clear previous map\n this.buttonMap.clear();\n this.headingSelect = null;\n this.fontSelect = null;\n this.colorInput = null;\n\n // Process children\n Array.from(tb.children).forEach(child => {\n const tag = child.tagName.toLowerCase();\n\n if (tag === 'nile-rte-select' && child.getAttribute('type') === 'align') {\n child.addEventListener('change', (e: any) => {\n this.focusAndRestore();\n const alignment = e.detail as 'left'|'center'|'right'|'justify';\n setAlignment(this.editorEl, alignment);\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n \n\n if (tag === 'nile-rte-toolbar-item') {\n // Look for an authored <nile-button> (so authors can override)\n let btn = child.querySelector(':scope > nile-button') as HTMLElement | null;\n \n const cmd = child.getAttribute('name') || '';\n const label = child.getAttribute('label') || cmd;\n const iconAttr = child.getAttribute('icon');\n const authoredHasContent = child.innerHTML.trim().length > 0;\n \n // If none, create one\n if (!btn) {\n btn = document.createElement('nile-button');\n (btn as any).variant = 'tertiary';\n (btn as any).size = 'small'; // optional\n }\n \n // Fill visual content\n if (iconAttr) {\n btn.innerHTML = `<nile-icon name=\"${iconAttr}\" aria-label=\"${label}\"></nile-icon>`;\n child.innerHTML = '';\n } else if (!authoredHasContent) {\n const defaultIcon = DEFAULT_ICONS[cmd];\n if (defaultIcon) {\n btn.innerHTML = `<nile-icon name=\"${defaultIcon}\" size=\"26\" aria-label=\"${label}\"></nile-icon>`;\n } else {\n btn.textContent = label || cmd;\n }\n child.innerHTML = '';\n } else {\n // Author provided custom content (could be a <nile-icon> already)\n btn.innerHTML = child.innerHTML;\n child.innerHTML = '';\n }\n \n // Mount it\n if (!btn.isConnected) child.appendChild(btn);\n \n // Interactions\n btn.setAttribute('aria-label', label);\n btn.addEventListener('mousedown', e => e.preventDefault());\n btn.addEventListener('click', () => this.onToolbarCommand(cmd));\n \n // Register for active reflection\n const arr = this.buttonMap.get(cmd) ?? [];\n arr.push(btn);\n this.buttonMap.set(cmd, arr);\n \n return; // done with this child\n }\n if (tag === 'nile-rte-select') {\n const type = child.getAttribute('type') || '';\n\n // listen for our custom dropdown’s change event\n child.addEventListener('change', (e: any) => {\n // restore focus & selection\n this.focusAndRestore();\n\n const val = e.detail as string;\n\n if (type === 'heading') {\n // apply block tag\n setBlockTag(this.editorEl, val as any);\n }\n else if (type === 'font') {\n setFontFamily(this.editorEl, val);\n }\n \n // update the editor content & toolbar UI\n this.updateContent();\n this.updateToolbarState();\n });\n\n // nothing else to inject into the DOM\n return;\n }\n \n\n if (tag === 'nile-rte-color') {\n const label = child.getAttribute('label') ?? 'Text color';\n const value = child.getAttribute('value') ?? '#000000';\n // render internal <input type=\"color\">\n let input = child.querySelector(':scope > input[type=\"color\"]') as HTMLInputElement | null;\n if (!input) {\n input = document.createElement('input');\n input.type = 'color';\n child.appendChild(input);\n }\n input.title = label;\n input.value = value;\n input.addEventListener('mousedown', e => e.preventDefault());\n input.addEventListener('input', () => {\n this.focusAndRestore();\n setForeColor(this.editorEl, input!.value);\n this.updateContent(); this.updateToolbarState();\n });\n this.colorInput = input;\n }\n\n // nile-rte-divider: no-op (purely visual)\n });\n }\n\n // ---------- Selection helpers (for toolbar state only) ----------\n private onSelectionChange = () => {\n if (!this.editorEl) return;\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (this.editorEl.contains(range.commonAncestorContainer)) {\n this.lastRange = range.cloneRange();\n this.updateToolbarState();\n }\n };\n private saveSelection() {\n const sel = window.getSelection();\n if (sel && sel.rangeCount) this.lastRange = sel.getRangeAt(0).cloneRange();\n }\n private restoreSelection() {\n if (!this.lastRange) return;\n const sel = document.getSelection(); if (!sel) return;\n sel.removeAllRanges(); sel.addRange(this.lastRange);\n }\n private focusAndRestore() { this.editorEl?.focus(); this.restoreSelection(); }\n\n /*──────────────────────── LIST HELPERS ────────────────────────*/\nprivate insertList(type: 'ul' | 'ol') {\n this.restoreSelection();\n if (!this.lastRange) return;\n\n // build <ul>/<ol>\n const list = document.createElement(type);\n\n // grab the selected fragment\n const frag = this.lastRange.extractContents();\n const temp = document.createElement('div');\n temp.appendChild(frag);\n\n // wrap each top-level node in an <li>\n Array.from(temp.childNodes).forEach(n => {\n // skip empty whitespace text nodes\n if (n.nodeType === Node.TEXT_NODE && !n.textContent?.trim()) return;\n const li = document.createElement('li');\n li.appendChild(n); // moves the node!\n list.appendChild(li);\n });\n\n // insert list where the selection was\n this.lastRange.insertNode(list);\n this.afterListEdit(list);\n}\n\nprivate afterListEdit(node: Node) {\n const range = document.createRange();\n range.setStartAfter(node);\n range.collapse(true);\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(range);\n\n this.saveSelection();\n this.updateContent();\n this.updateToolbarState();\n}\n // Keep at least one <p><br></p> and wrap stray inline/text into a <p>\nprivate ensureAtLeastOneParagraph() {\n const el = this.editorEl;\n if (!el) return;\n\n // 1) If completely empty → seed a paragraph\n const onlyWhitespace =\n (el.textContent ?? '').replace(/\\u200B/g, '').trim() === '';\n if (el.childNodes.length === 0 || onlyWhitespace) {\n el.innerHTML = '<p><br></p>';\n return;\n }\n\n // 2) If no block elements exist, wrap whatever is there into a <p>\n const hasBlock = el.querySelector('p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre');\n if (!hasBlock) {\n const p = document.createElement('p');\n while (el.firstChild) p.appendChild(el.firstChild);\n if (!p.hasChildNodes()) p.appendChild(document.createElement('br'));\n el.appendChild(p);\n return;\n }\n\n // 3) Make sure the first/only empty <p> still has a <br>\n el.querySelectorAll('p').forEach(p => {\n if ((p.textContent ?? '').replace(/\\u200B/g, '') === '') {\n if (!p.innerHTML.toLowerCase().includes('<br')) p.innerHTML = '<br>';\n }\n });\n}\n\n\n\n // ---------- Toolbar/commands ----------\n private onToolbarCommand(cmd: string) {\n this.focusAndRestore();\n switch (cmd) {\n case 'bold': toggleInlineTag(this.editorEl, 'strong'); break;\n case 'italic': toggleInlineTag(this.editorEl, 'em'); break;\n case 'underline': toggleInlineTag(this.editorEl, 'u'); break;\n case 'left': setAlignment(this.editorEl, 'left'); break;\n case 'center': setAlignment(this.editorEl, 'center'); break;\n case 'right': setAlignment(this.editorEl, 'right'); break;\n case 'justify': setAlignment(this.editorEl, 'justify'); break;\n case 'ul': this.insertList('ul'); break;\n case 'ol': this.insertList('ol'); break;\n case 'link': insertOrEditLink(this.editorEl); break;\n case 'clear':\n const walker = document.createTreeWalker(this.editorEl, NodeFilter.SHOW_ELEMENT);\n const toUnwrap: HTMLElement[] = [];\n while (walker.nextNode()) {\n const el = walker.currentNode as HTMLElement;\n el.removeAttribute('style');\n if (['B','STRONG','I','EM','U','SPAN','FONT'].includes(el.tagName)) {\n toUnwrap.push(el);\n }\n }\n for (const el of toUnwrap) {\n while (el.firstChild) el.parentNode?.insertBefore(el.firstChild, el);\n el.remove();\n }\n this.ensureAtLeastOneParagraph();\n break;\n\n default: break;\n }\n this.updateContent(); this.updateToolbarState();\n }\n\n private setBtnActive(cmd: string, active: boolean) {\n const arr = this.buttonMap.get(cmd); if (!arr) return;\n for (const btn of arr) btn.toggleAttribute('data-active', !!active);\n }\n\n private updateToolbarState() {\n if (!this.editorEl) return;\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (!this.editorEl.contains(range.commonAncestorContainer)) return;\n\n const startElm = nearestElement(range.startContainer) || this.editorEl;\n const comp = getComputedStyle(startElm);\n const block = closestBlock(range.startContainer, this.editorEl) || this.editorEl;\n\n const isBold = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const t = n.tagName.toLowerCase();\n if (t === 'strong' || t === 'b') return true;\n const w = getComputedStyle(n).fontWeight;\n if (parseInt(w, 10) >= 600) return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const isItalic = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const t = n.tagName.toLowerCase();\n if (t === 'em' || t === 'i') return true;\n if (getComputedStyle(n).fontStyle === 'italic') return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const isUnderline = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const tdl = getComputedStyle(n).textDecorationLine;\n if (tdl && tdl.includes('underline')) return true;\n if (n.tagName.toLowerCase() === 'u') return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const inLink = !!startElm.closest('a');\n\n const align = (block.style.textAlign || getComputedStyle(block).textAlign || 'start') as string;\n const alignNorm = align === 'start' ? 'left' : align;\n\n const inLi = !!startElm.closest('li');\n const listType = inLi ? (startElm.closest('ul,ol')?.tagName.toLowerCase() || '') : '';\n\n this.setBtnActive('bold', isBold);\n this.setBtnActive('italic', isItalic);\n this.setBtnActive('underline', isUnderline);\n this.setBtnActive('link', inLink);\n\n this.setBtnActive('left', alignNorm === 'left' && !['center','right','justify'].includes(alignNorm));\n this.setBtnActive('center', alignNorm === 'center');\n this.setBtnActive('right', alignNorm === 'right');\n this.setBtnActive('justify', alignNorm === 'justify');\n\n this.setBtnActive('ul', listType === 'ul');\n this.setBtnActive('ol', listType === 'ol');\n\n // Reflect heading\n if (this.headingSelect) {\n const tag = block.tagName.toLowerCase();\n const v = ['h1','h2','h3'].includes(tag) ? tag : 'p';\n if (this.headingSelect.value !== v) this.headingSelect.value = v;\n }\n\n // Reflect font family\n if (this.fontSelect) {\n const ff = (comp.fontFamily || '').replace(/[\"']/g, '').split(',')[0].trim().toLowerCase();\n if (ff) {\n for (const opt of Array.from(this.fontSelect.options)) {\n if (opt.value.toLowerCase() === ff) { this.fontSelect.value = opt.value; break; }\n }\n }\n }\n\n // Reflect color\n if (this.colorInput) {\n const hex = rgbToHex(comp.color);\n if (hex && this.colorInput.value.toLowerCase() !== hex.toLowerCase()) {\n this.colorInput.value = hex;\n }\n }\n }\n\n private syncPreview() {\n this.updateContent();\n }\n\n private updateContent() {\n if (!this.editorEl) return;\n this.ensureAtLeastOneParagraph();\n this.content = this.editorEl.innerHTML;\n\n // live preview on the authored node (kept in place)\n if (this.previewEl) this.previewEl.innerHTML = this.content;\n\n this.dispatchEvent(new CustomEvent('content-changed', {\n detail: { content: this.content }, bubbles: true, composed: true\n }));\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-rich-text-editor': NileRichTextEditor;\n }\n}\n\n"]}
1
+ {"version":3,"file":"nile-rich-text-editor.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.ts"],"names":[],"mappings":";AAAA,2BAA2B;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,mBAAmB,CAAC;AAC3B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EACL,YAAY,EAAE,cAAc,EAAE,QAAQ,EACtC,eAAe,EAAE,WAAW,EAAE,YAAY,EAC1C,aAAa,EAAE,YAAY,EAAG,gBAAgB,EAC/C,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAC,MAAM,EAAC,MAAM,6BAA6B,CAAC;AAInD;;;GAGG;AACH,MAAM,aAAa,GAA2B;IAC5C,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,aAAa;IACrB,SAAS,EAAE,gBAAgB;IAC3B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,kBAAkB;IAC1B,KAAK,EAAE,iBAAiB;IACxB,OAAO,EAAE,cAAc;IACvB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,OAAO;CACf,CAAC;AAGK,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,UAAU;IAA3C;;QAIL,2BAA2B;QACC,UAAK,GAAG,EAAE,CAAC;QAEvC,mFAAmF;QAsBnF,aAAQ,GAAmB,EAAE,CAAC;QAE9B,6CAA6C;QAC5B,YAAO,GAAG,EAAE,CAAC;QAEtB,cAAS,GAAuB,IAAI,CAAC;QACrC,cAAS,GAAuB,IAAI,CAAC;QAErC,cAAS,GAAiB,IAAI,CAAC;QAEvC,oCAAoC;QAC5B,cAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC7C,kBAAa,GAA6B,IAAI,CAAC;QAC/C,eAAU,GAA6B,IAAI,CAAC;QAC5C,eAAU,GAA4B,IAAI,CAAC;QAEnD,8BAA8B;QACtB,eAAU,GAAuB,IAAI,CAAC;QAgO9C,mEAAmE;QAC3D,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC;gBAAE,OAAO;YACzC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBAC1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;gBACpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;IA+OJ,CAAC;IAtgBW,gBAAgB,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IACnC,YAAY,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;IAgDlC,SAAS,CAAC,OAAe;QAC/B,IAAI,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC;YAAE,OAAO;QACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC7C,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,sDAAsD;QACtD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAG/B,yBAAyB;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAExD,2DAA2D;QAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,0BAA0B;QAC1B,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAEvC,6CAA6C;QAC7C,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7D,4CAA4C;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAEnB,IAAI,CAAC,UAAkB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAmB,CAAC,CAAC;YAErE,IAAI,CAAC,UAAkB,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,CAAC;QAGD,IAAI,CAAC,UAAU,EAAE,CAAC;QAGlB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;QAGnB,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,oBAAoB;QAClB,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAC9E,sCAAsC;QACtC,IAAI,IAAI,CAAC,UAAU,IAAK,IAAI,CAAC,UAAkB,CAAC,MAAM,EAAE,CAAC;YACtD,IAAI,CAAC,UAAkB,CAAC,MAAM,EAAE,CAAC;QACpC,CAAC;QACD,KAAK,CAAC,oBAAoB,EAAE,CAAC;IAC/B,CAAC;IAKO,YAAY;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAgB,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC5B,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;gBAChC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,0EAA0E;QAC1E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,aAAa,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAEO,UAAU;QAChB,iCAAiC;QACjC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3C,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,+BAA+B;IACtG,CAAC;IAEO,mBAAmB,CAAC,EAAe;QACzC,qBAAqB;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,mBAAmB;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAExC,IAAI,GAAG,KAAK,iBAAiB,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC;gBACxE,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAM,EAAE,EAAE;oBAC1C,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,MAAM,SAAS,GAAG,CAAC,CAAC,MAA2C,CAAC;oBAChE,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACvC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAGD,IAAI,GAAG,KAAK,uBAAuB,EAAE,CAAC;gBACpC,+DAA+D;gBAC/D,IAAI,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,sBAAsB,CAAuB,CAAC;gBAE5E,MAAM,GAAG,GAAK,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAK,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;gBACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;gBAE7D,sBAAsB;gBACtB,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;oBAC3C,GAAW,CAAC,OAAO,GAAG,UAAU,CAAC;oBACjC,GAAW,CAAC,IAAI,GAAG,OAAO,CAAC,CAAG,WAAW;gBAC5C,CAAC;gBAED,sBAAsB;gBACtB,IAAI,QAAQ,EAAE,CAAC;oBACb,GAAG,CAAC,SAAS,GAAG,oBAAoB,QAAQ,iBAAiB,KAAK,gBAAgB,CAAC;oBACnF,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;gBACvB,CAAC;qBAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC/B,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;oBACvC,IAAI,WAAW,EAAE,CAAC;wBAChB,GAAG,CAAC,SAAS,GAAG,oBAAoB,WAAW,yCAAyC,KAAK,gBAAgB,CAAC;oBAChH,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,WAAW,GAAG,KAAK,IAAI,GAAG,CAAC;oBACjC,CAAC;oBACD,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,kEAAkE;oBAClE,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;oBAChC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;gBACvB,CAAC;gBAED,WAAW;gBACX,IAAI,CAAC,GAAG,CAAC,WAAW;oBAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAE7C,eAAe;gBACf,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBACtC,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEhE,iCAAiC;gBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC1C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAE7B,OAAO,CAAC,uBAAuB;YACjC,CAAC;YACD,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAE7C,gDAAgD;gBAChD,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAM,EAAE,EAAE;oBAC1C,4BAA4B;oBAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;oBAEvB,MAAM,GAAG,GAAG,CAAC,CAAC,MAAgB,CAAC;oBAE/B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBACvB,kBAAkB;wBAClB,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAU,CAAC,CAAC;oBACzC,CAAC;yBACI,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;wBACzB,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBACpC,CAAC;oBAED,yCAAyC;oBACzC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBAEC,sCAAsC;gBACxC,OAAO;YACV,CAAC;YAGR,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC;gBAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;gBACvD,uCAAuC;gBACvC,IAAI,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,8BAA8B,CAA4B,CAAC;gBAC3F,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBACxC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;oBACrB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;gBACD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBACpB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBACpB,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;gBAC7D,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBACnC,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAM,CAAC,KAAK,CAAC,CAAC;oBAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;oBAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAClD,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC;YAED,0CAA0C;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAaO,aAAa;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAClC,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC7E,CAAC;IACO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QACtD,GAAG,CAAC,eAAe,EAAE,CAAC;QAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IACO,eAAe,KAAK,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAE9E,oEAAoE;IAC9D,UAAU,CAAC,IAAiB;QAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,kBAAkB;QAClB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE1C,6BAA6B;QAC7B,MAAM,IAAI,GAAI,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvB,sCAAsC;QACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACtC,mCAAmC;YACnC,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE;gBAAE,OAAO;YACpE,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAU,kBAAkB;YAC9C,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,sCAAsC;QACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEO,aAAa,CAAC,IAAU;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAClC,GAAG,EAAE,eAAe,EAAE,CAAC;QACvB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAErB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IACA,sEAAsE;IAC/D,yBAAyB;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,4CAA4C;QAC5C,MAAM,cAAc,GAClB,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAC9D,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;YACjD,EAAE,CAAC,SAAS,GAAG,aAAa,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,mEAAmE;QACnE,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,CAAC,gDAAgD,CAAC,CAAC;QACpF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO,EAAE,CAAC,UAAU;gBAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YACnD,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE;gBAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACpE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QAED,yDAAyD;QACzD,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnC,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;gBACxD,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC;YACvE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAIC,yCAAyC;IACjC,gBAAgB,CAAC,GAAW;QAClC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,MAAM;gBAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YAC7D,KAAK,QAAQ;gBAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM;YAC3D,KAAK,WAAW;gBAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAAC,MAAM;YAC7D,KAAK,MAAM;gBAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAAC,MAAM;YACxD,KAAK,QAAQ;gBAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YAC5D,KAAK,OAAO;gBAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAAC,MAAM;YAC1D,KAAK,SAAS;gBAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAAC,MAAM;YAC9D,KAAK,IAAI;gBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM;YACxC,KAAK,IAAI;gBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM;YACxC,KAAK,MAAM;gBAAE,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACpD,KAAK,OAAO;gBAChB,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;gBACjF,MAAM,QAAQ,GAAkB,EAAE,CAAC;gBACnC,OAAO,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACzB,MAAM,EAAE,GAAG,MAAM,CAAC,WAA0B,CAAC;oBAC7C,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBAC5B,IAAI,CAAC,GAAG,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,MAAM,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;wBACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC;gBACD,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;oBAC1B,OAAO,EAAE,CAAC,UAAU;wBAAE,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;oBACrE,EAAE,CAAC,MAAM,EAAE,CAAC;gBACd,CAAC;gBACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACjC,MAAM;YAEF,OAAO,CAAC,CAAC,MAAM;QACjB,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;QAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAClD,CAAC;IAEO,YAAY,CAAC,GAAW,EAAE,MAAe;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QACtD,KAAK,MAAM,GAAG,IAAI,GAAG;YAAE,GAAG,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC;YAAE,OAAO;QACzC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC;YAAE,OAAO;QAEnE,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;QACvE,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;QAEjF,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,GAAgB,QAAQ,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;oBAClC,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,GAAG;wBAAE,OAAO,IAAI,CAAC;oBAC7C,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACzC,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG;wBAAE,OAAO,IAAI,CAAC;gBAC1C,CAAC;gBACD,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;YACnB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,GAAgB,QAAQ,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;oBAClC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG;wBAAE,OAAO,IAAI,CAAC;oBACzC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ;wBAAE,OAAO,IAAI,CAAC;gBAC9D,CAAC;gBACD,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;YACnB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,GAAgB,QAAQ,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;oBAC7B,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBACnD,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;wBAAE,OAAO,IAAI,CAAC;oBAClD,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG;wBAAE,OAAO,IAAI,CAAC;gBACnD,CAAC;gBACD,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;YACnB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,OAAO,CAAW,CAAC;QAChG,MAAM,SAAS,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAErD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAElC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC;QAEtD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC;QAE3C,kBAAkB;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACrD,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC;gBAAE,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC;QACnE,CAAC;QAED,sBAAsB;QACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3F,IAAI,EAAE,EAAE,CAAC;gBACP,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtD,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;wBAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;wBAAC,MAAM;oBAAC,CAAC;gBACnF,CAAC;YACH,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrE,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAEvC,oDAAoD;QACpD,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAE5D,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,iBAAiB,EAAE;YACpD,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;SACjE,CAAC,CAAC,CAAC;IACN,CAAC;CACF,CAAA;AAlgB6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iDAAY;AAwBvC;IArBC,QAAQ,CAAC;QACR,SAAS,EAAE,UAAU;QACrB,SAAS,EAAE;YACT,aAAa,EAAE,CAAC,KAAa,EAAkB,EAAE;gBAC/C,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACjC,MAAM,GAAG,GAAmB,EAAE,CAAC;oBAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;wBACvC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;wBACzB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;4BACvB,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG;iCACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;iCAC1E,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAChD,CAAC;oBACH,CAAC;oBACD,OAAO,GAAG,CAAC;gBACb,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,EAAE,CAAC;gBAAC,CAAC;YACxB,CAAC;YACD,WAAW,EAAE,CAAC,CAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SACtD;KACF,CAAC;oDAC4B;AAGb;IAAhB,KAAK,EAAE;mDAAsB;AAhCnB,kBAAkB;IAD9B,aAAa,CAAC,uBAAuB,CAAC;GAC1B,kBAAkB,CAugB9B","sourcesContent":["// nile-rich-text-editor.ts\nimport { LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport './nile-rte-toolbar';\nimport './nile-rte-toolbar-item';\nimport './nile-rte-select';\nimport './nile-rte-color';\nimport './nile-rte-divider';\nimport './nile-rte-preview';\nimport './nile-rte-mentions';\n\nimport {\n closestBlock, nearestElement, rgbToHex,\n toggleInlineTag, setBlockTag, setAlignment,\n setFontFamily, setForeColor, insertOrEditLink\n} from './utils';\n\nimport {styles} from './nile-rich-text-editor.css'; \n\ntype MentionsConfig = Record<string, { key: string; label: string }[]>;\n\n/**\n * Map commands → default icon names from your <nile-icon> set.\n * Adjust values to match the real names you have.\n */\nconst DEFAULT_ICONS: Record<string, string> = {\n bold: 'nile-bold',\n italic: 'nile-italic',\n underline: 'nile-underline',\n link: 'user',\n left: 'nile-leftalign',\n center: 'nile-centeralign',\n right: 'nile-rightalign',\n justify: 'nile-justify',\n ul: 'nile-ul',\n ol: 'nile-ol',\n clear: 'error',\n};\n\n@customElement('nile-rich-text-editor')\nexport class NileRichTextEditor extends LitElement {\n protected createRenderRoot() { return this; } \n protected shouldUpdate() { return false; } \n\n /** Initial HTML content */\n @property({ type: String }) value = '';\n\n /** Optional mentions config (can also be on <nile-rte-mentions mentions=\"...\">) */\n @property({\n attribute: 'mentions',\n converter: {\n fromAttribute: (value: string): MentionsConfig => {\n try {\n const parsed = JSON.parse(value);\n const out: MentionsConfig = {};\n for (const trig of Object.keys(parsed)) {\n const arr = parsed[trig];\n if (Array.isArray(arr)) {\n out[trig] = arr\n .filter(i => i && typeof i.key === 'string' && typeof i.label === 'string')\n .map(i => ({ key: i.key, label: i.label }));\n }\n }\n return out;\n } catch { return {}; }\n },\n toAttribute: (v: MentionsConfig) => JSON.stringify(v),\n }\n })\n mentions: MentionsConfig = {};\n\n // ----- internal state (no Lit render) -----\n @state() private content = '';\n private editorEl!: HTMLElement;\n private previewEl: HTMLElement | null = null;\n private toolbarEl: HTMLElement | null = null;\n\n private lastRange: Range | null = null;\n\n // map for button active reflections\n private buttonMap = new Map<string, HTMLElement[]>();\n private headingSelect: HTMLSelectElement | null = null;\n private fontSelect: HTMLSelectElement | null = null;\n private colorInput: HTMLInputElement | null = null;\n\n // Mentions controller (child)\n private mentionsEl: HTMLElement | null = null;\n\n \n\n private injectCss(cssText: string) {\n if (this.querySelector('style[data-rte-style]')) return;\n const style = document.createElement('style');\n style.setAttribute('data-rte-style', 'true');\n style.textContent = cssText;\n this.insertBefore(style, this.firstChild);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n // 1) Inject styles once (so authored DOM stays as-is)\n this.injectCss(styles.cssText); \n \n\n // 2) Keep authored nodes\n this.toolbarEl = this.querySelector('nile-rte-toolbar');\n this.previewEl = this.querySelector('nile-rte-preview');\n\n // 3) Ensure there is an editor element; create if missing.\n this.ensureEditor();\n\n // 4) Fill initial content\n if (this.value && !this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = this.value;\n }\n this.content = this.editorEl.innerHTML;\n\n // 5) Wire toolbar authored children directly\n if (this.toolbarEl) this.wireAuthoredToolbar(this.toolbarEl);\n\n // 6) Mentions: delegate to child controller\n this.mentionsEl = this.querySelector('nile-rte-mentions');\n if (this.mentionsEl) {\n \n (this.mentionsEl as any).attach?.(this.editorEl, this as HTMLElement);\n \n (this.mentionsEl as any).setExternalConfig?.(this.mentions);\n }\n\n \n this.wireEditor();\n\n \n this.updateToolbarState();\n this.syncPreview();\n\n \n document.addEventListener('selectionchange', this.onSelectionChange, true);\n }\n\n disconnectedCallback(): void {\n document.removeEventListener('selectionchange', this.onSelectionChange, true);\n // Optionally tell mentions to cleanup\n if (this.mentionsEl && (this.mentionsEl as any).detach) {\n (this.mentionsEl as any).detach();\n }\n super.disconnectedCallback();\n }\n\n \n \n\n private ensureEditor() {\n this.editorEl = this.querySelector('.editor') as HTMLElement;\n if (!this.editorEl) {\n const editor = document.createElement('div');\n editor.className = 'editor';\n editor.setAttribute('contenteditable','true');\n if (this.toolbarEl?.nextSibling) {\n this.insertBefore(editor, this.toolbarEl.nextSibling);\n } else if (this.previewEl) {\n this.insertBefore(editor, this.previewEl);\n } else {\n this.appendChild(editor);\n }\n this.editorEl = editor;\n }\n // **NEW**: seed an empty paragraph so setBlockTag() has something to swap\n if (!this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = '<p><br></p>';\n }\n this.ensureAtLeastOneParagraph();\n }\n\n private wireEditor() {\n // Input & selection preservation\n this.editorEl.addEventListener('input', () => { \n this.ensureAtLeastOneParagraph();\n this.updateContent();\n });\n this.editorEl.addEventListener('mouseup', () => this.saveSelection());\n this.editorEl.addEventListener('keyup', () => this.saveSelection()); // keep range fresh for toolbar\n }\n\n private wireAuthoredToolbar(tb: HTMLElement) {\n // Clear previous map\n this.buttonMap.clear();\n this.headingSelect = null;\n this.fontSelect = null;\n this.colorInput = null;\n\n // Process children\n Array.from(tb.children).forEach(child => {\n const tag = child.tagName.toLowerCase();\n\n if (tag === 'nile-rte-select' && child.getAttribute('type') === 'align') {\n child.addEventListener('change', (e: any) => {\n this.focusAndRestore();\n const alignment = e.detail as 'left'|'center'|'right'|'justify';\n setAlignment(this.editorEl, alignment);\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n \n\n if (tag === 'nile-rte-toolbar-item') {\n // Look for an authored <nile-button> (so authors can override)\n let btn = child.querySelector(':scope > nile-button') as HTMLElement | null;\n \n const cmd = child.getAttribute('name') || '';\n const label = child.getAttribute('label') || cmd;\n const iconAttr = child.getAttribute('icon');\n const authoredHasContent = child.innerHTML.trim().length > 0;\n \n // If none, create one\n if (!btn) {\n btn = document.createElement('nile-button');\n (btn as any).variant = 'tertiary';\n (btn as any).size = 'small'; // optional\n }\n \n // Fill visual content\n if (iconAttr) {\n btn.innerHTML = `<nile-icon name=\"${iconAttr}\" aria-label=\"${label}\"></nile-icon>`;\n child.innerHTML = '';\n } else if (!authoredHasContent) {\n const defaultIcon = DEFAULT_ICONS[cmd];\n if (defaultIcon) {\n btn.innerHTML = `<nile-icon name=\"${defaultIcon}\" size=\"20\" color=\"black\" aria-label=\"${label}\"></nile-icon>`;\n } else {\n btn.textContent = label || cmd;\n }\n child.innerHTML = '';\n } else {\n // Author provided custom content (could be a <nile-icon> already)\n btn.innerHTML = child.innerHTML;\n child.innerHTML = '';\n }\n \n // Mount it\n if (!btn.isConnected) child.appendChild(btn);\n \n // Interactions\n btn.setAttribute('aria-label', label);\n btn.addEventListener('mousedown', e => e.preventDefault());\n btn.addEventListener('click', () => this.onToolbarCommand(cmd));\n \n // Register for active reflection\n const arr = this.buttonMap.get(cmd) ?? [];\n arr.push(btn);\n this.buttonMap.set(cmd, arr);\n \n return; // done with this child\n }\n if (tag === 'nile-rte-select') {\n const type = child.getAttribute('type') || '';\n\n // listen for our custom dropdown’s change event\n child.addEventListener('change', (e: any) => {\n // restore focus & selection\n this.focusAndRestore();\n\n const val = e.detail as string;\n\n if (type === 'heading') {\n // apply block tag\n setBlockTag(this.editorEl, val as any);\n }\n else if (type === 'font') {\n setFontFamily(this.editorEl, val);\n }\n \n // update the editor content & toolbar UI\n this.updateContent();\n this.updateToolbarState();\n });\n\n // nothing else to inject into the DOM\n return;\n }\n \n\n if (tag === 'nile-rte-color') {\n const label = child.getAttribute('label') ?? 'Text color';\n const value = child.getAttribute('value') ?? '#000000';\n // render internal <input type=\"color\">\n let input = child.querySelector(':scope > input[type=\"color\"]') as HTMLInputElement | null;\n if (!input) {\n input = document.createElement('input');\n input.type = 'color';\n child.appendChild(input);\n }\n input.title = label;\n input.value = value;\n input.addEventListener('mousedown', e => e.preventDefault());\n input.addEventListener('input', () => {\n this.focusAndRestore();\n setForeColor(this.editorEl, input!.value);\n this.updateContent(); this.updateToolbarState();\n });\n this.colorInput = input;\n }\n\n // nile-rte-divider: no-op (purely visual)\n });\n }\n\n // ---------- Selection helpers (for toolbar state only) ----------\n private onSelectionChange = () => {\n if (!this.editorEl) return;\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (this.editorEl.contains(range.commonAncestorContainer)) {\n this.lastRange = range.cloneRange();\n this.updateToolbarState();\n }\n };\n private saveSelection() {\n const sel = window.getSelection();\n if (sel && sel.rangeCount) this.lastRange = sel.getRangeAt(0).cloneRange();\n }\n private restoreSelection() {\n if (!this.lastRange) return;\n const sel = document.getSelection(); if (!sel) return;\n sel.removeAllRanges(); sel.addRange(this.lastRange);\n }\n private focusAndRestore() { this.editorEl?.focus(); this.restoreSelection(); }\n\n /*──────────────────────── LIST HELPERS ────────────────────────*/\nprivate insertList(type: 'ul' | 'ol') {\n this.restoreSelection();\n if (!this.lastRange) return;\n\n // build <ul>/<ol>\n const list = document.createElement(type);\n\n // grab the selected fragment\n const frag = this.lastRange.extractContents();\n const temp = document.createElement('div');\n temp.appendChild(frag);\n\n // wrap each top-level node in an <li>\n Array.from(temp.childNodes).forEach(n => {\n // skip empty whitespace text nodes\n if (n.nodeType === Node.TEXT_NODE && !n.textContent?.trim()) return;\n const li = document.createElement('li');\n li.appendChild(n); // moves the node!\n list.appendChild(li);\n });\n\n // insert list where the selection was\n this.lastRange.insertNode(list);\n this.afterListEdit(list);\n}\n\nprivate afterListEdit(node: Node) {\n const range = document.createRange();\n range.setStartAfter(node);\n range.collapse(true);\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(range);\n\n this.saveSelection();\n this.updateContent();\n this.updateToolbarState();\n}\n // Keep at least one <p><br></p> and wrap stray inline/text into a <p>\nprivate ensureAtLeastOneParagraph() {\n const el = this.editorEl;\n if (!el) return;\n\n // 1) If completely empty → seed a paragraph\n const onlyWhitespace =\n (el.textContent ?? '').replace(/\\u200B/g, '').trim() === '';\n if (el.childNodes.length === 0 || onlyWhitespace) {\n el.innerHTML = '<p><br></p>';\n return;\n }\n\n // 2) If no block elements exist, wrap whatever is there into a <p>\n const hasBlock = el.querySelector('p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre');\n if (!hasBlock) {\n const p = document.createElement('p');\n while (el.firstChild) p.appendChild(el.firstChild);\n if (!p.hasChildNodes()) p.appendChild(document.createElement('br'));\n el.appendChild(p);\n return;\n }\n\n // 3) Make sure the first/only empty <p> still has a <br>\n el.querySelectorAll('p').forEach(p => {\n if ((p.textContent ?? '').replace(/\\u200B/g, '') === '') {\n if (!p.innerHTML.toLowerCase().includes('<br')) p.innerHTML = '<br>';\n }\n });\n}\n\n\n\n // ---------- Toolbar/commands ----------\n private onToolbarCommand(cmd: string) {\n this.focusAndRestore();\n switch (cmd) {\n case 'bold': toggleInlineTag(this.editorEl, 'strong'); break;\n case 'italic': toggleInlineTag(this.editorEl, 'em'); break;\n case 'underline': toggleInlineTag(this.editorEl, 'u'); break;\n case 'left': setAlignment(this.editorEl, 'left'); break;\n case 'center': setAlignment(this.editorEl, 'center'); break;\n case 'right': setAlignment(this.editorEl, 'right'); break;\n case 'justify': setAlignment(this.editorEl, 'justify'); break;\n case 'ul': this.insertList('ul'); break;\n case 'ol': this.insertList('ol'); break;\n case 'link': insertOrEditLink(this.editorEl); break;\n case 'clear':\n const walker = document.createTreeWalker(this.editorEl, NodeFilter.SHOW_ELEMENT);\n const toUnwrap: HTMLElement[] = [];\n while (walker.nextNode()) {\n const el = walker.currentNode as HTMLElement;\n el.removeAttribute('style');\n if (['B','STRONG','I','EM','U','SPAN','FONT'].includes(el.tagName)) {\n toUnwrap.push(el);\n }\n }\n for (const el of toUnwrap) {\n while (el.firstChild) el.parentNode?.insertBefore(el.firstChild, el);\n el.remove();\n }\n this.ensureAtLeastOneParagraph();\n break;\n\n default: break;\n }\n this.updateContent(); this.updateToolbarState();\n }\n\n private setBtnActive(cmd: string, active: boolean) {\n const arr = this.buttonMap.get(cmd); if (!arr) return;\n for (const btn of arr) btn.toggleAttribute('data-active', !!active);\n }\n\n private updateToolbarState() {\n if (!this.editorEl) return;\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (!this.editorEl.contains(range.commonAncestorContainer)) return;\n\n const startElm = nearestElement(range.startContainer) || this.editorEl;\n const comp = getComputedStyle(startElm);\n const block = closestBlock(range.startContainer, this.editorEl) || this.editorEl;\n\n const isBold = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const t = n.tagName.toLowerCase();\n if (t === 'strong' || t === 'b') return true;\n const w = getComputedStyle(n).fontWeight;\n if (parseInt(w, 10) >= 600) return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const isItalic = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const t = n.tagName.toLowerCase();\n if (t === 'em' || t === 'i') return true;\n if (getComputedStyle(n).fontStyle === 'italic') return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const isUnderline = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const tdl = getComputedStyle(n).textDecorationLine;\n if (tdl && tdl.includes('underline')) return true;\n if (n.tagName.toLowerCase() === 'u') return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const inLink = !!startElm.closest('a');\n\n const align = (block.style.textAlign || getComputedStyle(block).textAlign || 'start') as string;\n const alignNorm = align === 'start' ? 'left' : align;\n\n const inLi = !!startElm.closest('li');\n const listType = inLi ? (startElm.closest('ul,ol')?.tagName.toLowerCase() || '') : '';\n\n this.setBtnActive('bold', isBold);\n this.setBtnActive('italic', isItalic);\n this.setBtnActive('underline', isUnderline);\n this.setBtnActive('link', inLink);\n\n this.setBtnActive('left', alignNorm === 'left' && !['center','right','justify'].includes(alignNorm));\n this.setBtnActive('center', alignNorm === 'center');\n this.setBtnActive('right', alignNorm === 'right');\n this.setBtnActive('justify', alignNorm === 'justify');\n\n this.setBtnActive('ul', listType === 'ul');\n this.setBtnActive('ol', listType === 'ol');\n\n // Reflect heading\n if (this.headingSelect) {\n const tag = block.tagName.toLowerCase();\n const v = ['h1','h2','h3'].includes(tag) ? tag : 'p';\n if (this.headingSelect.value !== v) this.headingSelect.value = v;\n }\n\n // Reflect font family\n if (this.fontSelect) {\n const ff = (comp.fontFamily || '').replace(/[\"']/g, '').split(',')[0].trim().toLowerCase();\n if (ff) {\n for (const opt of Array.from(this.fontSelect.options)) {\n if (opt.value.toLowerCase() === ff) { this.fontSelect.value = opt.value; break; }\n }\n }\n }\n\n // Reflect color\n if (this.colorInput) {\n const hex = rgbToHex(comp.color);\n if (hex && this.colorInput.value.toLowerCase() !== hex.toLowerCase()) {\n this.colorInput.value = hex;\n }\n }\n }\n\n private syncPreview() {\n this.updateContent();\n }\n\n private updateContent() {\n if (!this.editorEl) return;\n this.ensureAtLeastOneParagraph();\n this.content = this.editorEl.innerHTML;\n\n // live preview on the authored node (kept in place)\n if (this.previewEl) this.previewEl.innerHTML = this.content;\n\n this.dispatchEvent(new CustomEvent('content-changed', {\n detail: { content: this.content }, bubbles: true, composed: true\n }));\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-rich-text-editor': NileRichTextEditor;\n }\n}\n\n"]}
@@ -7,6 +7,7 @@ export declare class NileRteMentionsItem extends LitElement {
7
7
  protected createRenderRoot(): this;
8
8
  /** Single-character trigger, e.g., '@' or '#' */
9
9
  mentionsCharacter: string;
10
+ mentionsColor: string;
10
11
  /** JSON array of { key, label } */
11
12
  mentionsData: MentionItem[];
12
13
  }
@@ -1,4 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
+ // nile-rte-mentions-item.ts
2
3
  import { LitElement } from 'lit';
3
4
  import { customElement, property } from 'lit/decorators.js';
4
5
  let NileRteMentionsItem = class NileRteMentionsItem extends LitElement {
@@ -6,6 +7,7 @@ let NileRteMentionsItem = class NileRteMentionsItem extends LitElement {
6
7
  super(...arguments);
7
8
  /** Single-character trigger, e.g., '@' or '#' */
8
9
  this.mentionsCharacter = '';
10
+ this.mentionsColor = ''; // NEW
9
11
  /** JSON array of { key, label } */
10
12
  this.mentionsData = [];
11
13
  }
@@ -14,6 +16,9 @@ let NileRteMentionsItem = class NileRteMentionsItem extends LitElement {
14
16
  __decorate([
15
17
  property({ attribute: 'mentionscharacter' })
16
18
  ], NileRteMentionsItem.prototype, "mentionsCharacter", void 0);
19
+ __decorate([
20
+ property({ attribute: 'mentionscolor' })
21
+ ], NileRteMentionsItem.prototype, "mentionsColor", void 0);
17
22
  __decorate([
18
23
  property({
19
24
  attribute: 'mentionsdata',