@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
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Webcomponent nile-elements following open-wc recommendations",
4
4
  "license": "MIT",
5
5
  "author": "nile-elements",
6
- "version": "0.1.64-beta-1.1",
6
+ "version": "0.1.64-beta-1.2",
7
7
  "main": "dist/src/index.js",
8
8
  "type": "module",
9
9
  "module": "dist/src/index.js",
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNi4xMTUyMyAxNS41MjA5VjQuNDc5MjVIMTAuMTY2NUMxMS4wMTU4IDQuNDc5MjUgMTEuNzgzNyA0Ljc0MzY5IDEyLjQ3MDIgNS4yNzI1OEMxMy4xNTY2IDUuODAxMzMgMTMuNDk5OCA2LjUxMzQxIDEzLjQ5OTggNy40MDg4M0MxMy40OTk4IDguMDMxNjEgMTMuMzQ5NCA4LjUzOTMyIDEzLjA0ODYgOC45MzE5NkMxMi43NDc5IDkuMzI0NiAxMi40MjM5IDkuNjA5NiAxMi4wNzY3IDkuNzg2OTZDMTIuNTA0MSA5LjkzNDMyIDEyLjkxMjIgMTAuMjI1NyAxMy4zMDExIDEwLjY2MTFDMTMuNjkgMTEuMDk2NSAxMy44ODQ0IDExLjY4MjggMTMuODg0NCAxMi40MTk5QzEzLjg4NDQgMTMuNDg1IDEzLjQ5MTggMTQuMjY4MSAxMi43MDY1IDE0Ljc2OTJDMTEuOTIxMiAxNS4yNzA0IDExLjEzMDEgMTUuNTIwOSAxMC4zMzMyIDE1LjUyMDlINi4xMTUyM1pNNy45MDY5IDEzLjg2MDdIMTAuMjY1OUMxMC45MjE4IDEzLjg2MDcgMTEuMzg1NSAxMy42Nzg2IDExLjY1NjkgMTMuMzE0MkMxMS45MjgzIDEyLjk0OTkgMTIuMDY0IDEyLjYwMDYgMTIuMDY0IDEyLjI2NjFDMTIuMDY0IDExLjkzMTcgMTEuOTI4MyAxMS41ODIzIDExLjY1NjkgMTEuMjE4QzExLjM4NTUgMTAuODUzNyAxMC45MDkgMTAuNjcxNSAxMC4yMjczIDEwLjY3MTVINy45MDY5VjEzLjg2MDdaTTcuOTA2OSA5LjA2MjU4SDEwLjA2ODhDMTAuNTc1MiA5LjA2MjU4IDEwLjk3NjYgOC45MTc3OSAxMS4yNzMyIDguNjI4MjFDMTEuNTY5NSA4LjMzODc2IDExLjcxNzcgNy45OTIxIDExLjcxNzcgNy41ODgyMUMxMS43MTc3IDcuMTU4NzYgMTEuNTYxIDYuODA3NzkgMTEuMjQ3NSA2LjUzNTI5QzEwLjkzMzkgNi4yNjI5MyAxMC41NDk1IDYuMTI2NzUgMTAuMDk0NCA2LjEyNjc1SDcuOTA2OVY5LjA2MjU4WiIgZmlsbD0iYmxhY2siLz48L3N2Zz4=";
@@ -42,6 +42,7 @@ export { default as barchart } from './bar-chart';
42
42
  export { default as bargraph } from './bargraph';
43
43
  export { default as block } from './block';
44
44
  export { default as bluedot } from './bluedot';
45
+ export { default as boldtry } from './bold-try';
45
46
  export { default as bold } from './bold';
46
47
  export { default as bookclosed } from './book-closed';
47
48
  export { default as boolean } from './boolean';
@@ -276,6 +277,15 @@ export { default as mute } from './mute';
276
277
  export { default as myintegration } from './my-integration';
277
278
  export { default as newcalendar } from './new-calendar';
278
279
  export { default as nightingalechart } from './nightingale-chart';
280
+ export { default as nilebold } from './nile-bold';
281
+ export { default as nilecenteralign } from './nile-centeralign';
282
+ export { default as nileitalic } from './nile-italic';
283
+ export { default as nilejustify } from './nile-justify';
284
+ export { default as nileleftalign } from './nile-leftalign';
285
+ export { default as nileol } from './nile-ol';
286
+ export { default as nilerightalign } from './nile-rightalign';
287
+ export { default as nileul } from './nile-ul';
288
+ export { default as nileunderline } from './nile-underline';
279
289
  export { default as nlp } from './nlp';
280
290
  export { default as nomatch } from './nomatch';
281
291
  export { default as note } from './note';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNi4xMTUyMyAxNS41MjA5VjQuNDc5MjVIMTAuMTY2NUMxMS4wMTU4IDQuNDc5MjUgMTEuNzgzNyA0Ljc0MzY5IDEyLjQ3MDIgNS4yNzI1OEMxMy4xNTY2IDUuODAxMzMgMTMuNDk5OCA2LjUxMzQxIDEzLjQ5OTggNy40MDg4M0MxMy40OTk4IDguMDMxNjEgMTMuMzQ5NCA4LjUzOTMyIDEzLjA0ODYgOC45MzE5NkMxMi43NDc5IDkuMzI0NiAxMi40MjM5IDkuNjA5NiAxMi4wNzY3IDkuNzg2OTZDMTIuNTA0MSA5LjkzNDMyIDEyLjkxMjIgMTAuMjI1NyAxMy4zMDExIDEwLjY2MTFDMTMuNjkgMTEuMDk2NSAxMy44ODQ0IDExLjY4MjggMTMuODg0NCAxMi40MTk5QzEzLjg4NDQgMTMuNDg1IDEzLjQ5MTggMTQuMjY4MSAxMi43MDY1IDE0Ljc2OTJDMTEuOTIxMiAxNS4yNzA0IDExLjEzMDEgMTUuNTIwOSAxMC4zMzMyIDE1LjUyMDlINi4xMTUyM1pNNy45MDY5IDEzLjg2MDdIMTAuMjY1OUMxMC45MjE4IDEzLjg2MDcgMTEuMzg1NSAxMy42Nzg2IDExLjY1NjkgMTMuMzE0MkMxMS45MjgzIDEyLjk0OTkgMTIuMDY0IDEyLjYwMDYgMTIuMDY0IDEyLjI2NjFDMTIuMDY0IDExLjkzMTcgMTEuOTI4MyAxMS41ODIzIDExLjY1NjkgMTEuMjE4QzExLjM4NTUgMTAuODUzNyAxMC45MDkgMTAuNjcxNSAxMC4yMjczIDEwLjY3MTVINy45MDY5VjEzLjg2MDdaTTcuOTA2OSA5LjA2MjU4SDEwLjA2ODhDMTAuNTc1MiA5LjA2MjU4IDEwLjk3NjYgOC45MTc3OSAxMS4yNzMyIDguNjI4MjFDMTEuNTY5NSA4LjMzODc2IDExLjcxNzcgNy45OTIxIDExLjcxNzcgNy41ODgyMUMxMS43MTc3IDcuMTU4NzYgMTEuNTYxIDYuODA3NzkgMTEuMjQ3NSA2LjUzNTI5QzEwLjkzMzkgNi4yNjI5MyAxMC41NDk1IDYuMTI2NzUgMTAuMDk0NCA2LjEyNjc1SDcuOTA2OVY5LjA2MjU4WiIgZmlsbD0iYmxhY2siLz48L3N2Zz4=";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjA4MzJWMTUuODMzMkgxNy4wODMyVjE3LjA4MzJIMi45MTY1Wk02LjI0OTg0IDEzLjg1NFYxMi42MDRIMTMuNzQ5OFYxMy44NTRINi4yNDk4NFpNMi45MTY1IDEwLjYyNDhWOS4zNzQ4NEgxNy4wODMyVjEwLjYyNDhIMi45MTY1Wk02LjI0OTg0IDcuMzk1NjdWNi4xNDU2N0gxMy43NDk4VjcuMzk1NjdINi4yNDk4NFpNMi45MTY1IDQuMTY2NVYyLjkxNjVIMTcuMDgzMlY0LjE2NjVIMi45MTY1WiIgZmlsbD0iYmxhY2siLz48L3N2Zz4=";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40OTUxMiAxNS41MjA3VjE0LjAxNDJINy42NzYxNkwxMC4zNzY2IDUuOTg1NDZINy4xOTU1M1Y0LjQ3OUgxNC44MjM3VjUuOTg1NDZIMTEuODk4OUw5LjE5ODY2IDE0LjAxNDJIMTIuMTIzMlYxNS41MjA3SDQuNDk1MTJaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjA4MzJWMTUuODMzMkgxNy4wODMyVjE3LjA4MzJIMi45MTY1Wk0yLjkxNjUgMTMuODU0VjEyLjYwNEgxNy4wODMyVjEzLjg1NEgyLjkxNjVaTTIuOTE2NSAxMC42MjQ4VjkuMzc0ODRIMTcuMDgzMlYxMC42MjQ4SDIuOTE2NVpNMi45MTY1IDcuMzk1NjdWNi4xNDU2N0gxNy4wODMyVjcuMzk1NjdIMi45MTY1Wk0yLjkxNjUgNC4xNjY1VjIuOTE2NUgxNy4wODMyVjQuMTY2NUgyLjkxNjVaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjA4MzJWMTUuODMzMkgxNy4wODMyVjE3LjA4MzJIMi45MTY1Wk0yLjkxNjUgMTMuODU0VjEyLjYwNEgxMi4wODMyVjEzLjg1NEgyLjkxNjVaTTIuOTE2NSAxMC42MjQ4VjkuMzc0ODRIMTcuMDgzMlYxMC42MjQ4SDIuOTE2NVpNMi45MTY1IDcuMzk1NjdWNi4xNDU2N0gxMi4wODMyVjcuMzk1NjdIMi45MTY1Wk0yLjkxNjUgNC4xNjY1VjIuOTE2NUgxNy4wODMyVjQuMTY2NUgyLjkxNjVaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDE3LjkxNjhWMTYuOTIzM0g0Ljk5OTg0VjE2LjA0MThIMy43NDk4NFYxNS4wNDgzSDQuOTk5ODRWMTQuMTY2OEgyLjkxNjVWMTMuMTczM0g1LjI4ODM4QzUuNDg4MSAxMy4xNzMzIDUuNjU1NTMgMTMuMjQwOSA1Ljc5MDY3IDEzLjM3NkM1LjkyNTgxIDEzLjUxMTEgNS45OTMzOCAxMy42Nzg2IDUuOTkzMzggMTMuODc4M1YxNC44NzJDNS45OTMzOCAxNS4wNzE4IDUuOTI1ODEgMTUuMjM5MiA1Ljc5MDY3IDE1LjM3NDNDNS42NTU1MyAxNS41MDk1IDUuNDg4MSAxNS41NzcgNS4yODgzOCAxNS41NzdDNS40ODgxIDE1LjU3NyA1LjY1NTUzIDE1LjY0NDYgNS43OTA2NyAxNS43Nzk3QzUuOTI1ODEgMTUuOTE0OSA1Ljk5MzM4IDE2LjA4MjQgNS45OTMzOCAxNi4yODIyVjE3LjIxMTZDNS45OTMzOCAxNy40MTE1IDUuOTI1ODEgMTcuNTc5IDUuNzkwNjcgMTcuNzE0MUM1LjY1NTUzIDE3Ljg0OTMgNS40ODgxIDE3LjkxNjggNS4yODgzOCAxNy45MTY4SDIuOTE2NVpNMi45MTY1IDEyLjM3MlYxMC4yMDg1QzIuOTE2NSAxMC4wMDg4IDIuOTg0MDcgOS44NDEyNyAzLjExOTIxIDkuNzA2QzMuMjU0MzUgOS41NzA4NiAzLjQyMTg1IDkuNTAzMjkgMy42MjE3MSA5LjUwMzI5SDQuOTk5ODRWOC42MjIwNEgyLjkxNjVWNy42MjgyOUg1LjI4ODM4QzUuNDg4MSA3LjYyODI5IDUuNjU1NTMgNy42OTU4NiA1Ljc5MDY3IDcuODMxQzUuOTI1ODEgNy45NjYyNyA1Ljk5MzM4IDguMTMzNzcgNS45OTMzOCA4LjMzMzVWOS43OTE4M0M1Ljk5MzM4IDkuOTkxNTUgNS45MjU4MSAxMC4xNTkxIDUuNzkwNjcgMTAuMjk0M0M1LjY1NTUzIDEwLjQyOTUgNS40ODgxIDEwLjQ5NyA1LjI4ODM4IDEwLjQ5N0gzLjkxMDA1VjExLjM3ODNINS45OTMzOFYxMi4zNzJIMi45MTY1Wk00LjE2NjUgNi44MjcwNFYzLjA3NzA0SDIuOTE2NVYyLjA4MzVINS4xNjAwNVY2LjgyNzA0SDQuMTY2NVpNNy43NTYzIDE1LjYyNTJWMTQuMzc1MkgxNy4wODMyVjE1LjYyNTJINy43NTYzWk03Ljc1NjMgMTAuNjI1MlY5LjM3NTE2SDE3LjA4MzJWMTAuNjI1Mkg3Ljc1NjNaTTcuNzU2MyA1LjYyNTE2VjQuMzc1MTZIMTcuMDgzMlY1LjYyNTE2SDcuNzU2M1oiIGZpbGw9ImJsYWNrIi8+PC9zdmc+";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMi45MTY1IDQuMTY2NVYyLjkxNjVIMTcuMDgzMlY0LjE2NjVIMi45MTY1Wk03LjkxNjUgNy4zOTU2N1Y2LjE0NTY3SDE3LjA4MzJWNy4zOTU2N0g3LjkxNjVaTTIuOTE2NSAxMC42MjQ4VjkuMzc0ODRIMTcuMDgzMlYxMC42MjQ4SDIuOTE2NVpNNy45MTY1IDEzLjg1NFYxMi42MDRIMTcuMDgzMlYxMy44NTRINy45MTY1Wk0yLjkxNjUgMTcuMDgzMlYxNS44MzMySDE3LjA4MzJWMTcuMDgzMkgyLjkxNjVaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg==";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNy43NTYzIDE1LjYyNVYxNC4zNzVIMTcuMDgzMlYxNS42MjVINy43NTYzWk03Ljc1NjMgMTAuNjI1VjkuMzc1MDJIMTcuMDgzMlYxMC42MjVINy43NTYzWk03Ljc1NjMgNS42MjUwMlY0LjM3NTAySDE3LjA4MzJWNS42MjUwMkg3Ljc1NjNaTTQuMzAyNzUgMTYuMzg2M0MzLjkyMTUgMTYuMzg2MyAzLjU5NTE4IDE2LjI1MDUgMy4zMjM4IDE1Ljk3OUMzLjA1MjI3IDE1LjcwNzYgMi45MTY1IDE1LjM4MTMgMi45MTY1IDE1QzIuOTE2NSAxNC42MTg4IDMuMDUyMjcgMTQuMjkyNCAzLjMyMzggMTQuMDIxMUMzLjU5NTE4IDEzLjc0OTUgMy45MjE1IDEzLjYxMzggNC4zMDI3NSAxMy42MTM4QzQuNjg0IDEzLjYxMzggNS4wMTAzMiAxMy43NDk1IDUuMjgxNzEgMTQuMDIxMUM1LjU1MzI0IDE0LjI5MjQgNS42ODkgMTQuNjE4OCA1LjY4OSAxNUM1LjY4OSAxNS4zODEzIDUuNTUzMjQgMTUuNzA3NiA1LjI4MTcxIDE1Ljk3OUM1LjAxMDMyIDE2LjI1MDUgNC42ODQgMTYuMzg2MyA0LjMwMjc1IDE2LjM4NjNaTTQuMzAyNzUgMTEuMzg2M0MzLjkyMTUgMTEuMzg2MyAzLjU5NTE4IDExLjI1MDUgMy4zMjM4IDEwLjk3OUMzLjA1MjI3IDEwLjcwNzYgMi45MTY1IDEwLjM4MTMgMi45MTY1IDEwQzIuOTE2NSA5LjYxODc3IDMuMDUyMjcgOS4yOTI0NSAzLjMyMzggOS4wMjEwNkMzLjU5NTE4IDguNzQ5NTMgMy45MjE1IDguNjEzNzcgNC4zMDI3NSA4LjYxMzc3QzQuNjg0IDguNjEzNzcgNS4wMTAzMiA4Ljc0OTUzIDUuMjgxNzEgOS4wMjEwNkM1LjU1MzI0IDkuMjkyNDUgNS42ODkgOS42MTg3NyA1LjY4OSAxMEM1LjY4OSAxMC4zODEzIDUuNTUzMjQgMTAuNzA3NiA1LjI4MTcxIDEwLjk3OUM1LjAxMDMyIDExLjI1MDUgNC42ODQgMTEuMzg2MyA0LjMwMjc1IDExLjM4NjNaTTQuMzAyNzUgNi4zODYyN0MzLjkyMTUgNi4zODYyNyAzLjU5NTE4IDYuMjUwNSAzLjMyMzggNS45Nzg5OEMzLjA1MjI3IDUuNzA3NTkgMi45MTY1IDUuMzgxMjcgMi45MTY1IDUuMDAwMDJDMi45MTY1IDQuNjE4NzcgMy4wNTIyNyA0LjI5MjQ1IDMuMzIzOCA0LjAyMTA2QzMuNTk1MTggMy43NDk1MyAzLjkyMTUgMy42MTM3NyA0LjMwMjc1IDMuNjEzNzdDNC42ODQgMy42MTM3NyA1LjAxMDMyIDMuNzQ5NTMgNS4yODE3MSA0LjAyMTA2QzUuNTUzMjQgNC4yOTI0NSA1LjY4OSA0LjYxODc3IDUuNjg5IDUuMDAwMDJDNS42ODkgNS4zODEyNyA1LjU1MzI0IDUuNzA3NTkgNS4yODE3MSA1Ljk3ODk4QzUuMDEwMzIgNi4yNTA1IDQuNjg0IDYuMzg2MjcgNC4zMDI3NSA2LjM4NjI3WiIgZmlsbD0iYmxhY2siLz48L3N2Zz4=";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40NTUwOCAxNi43NzFWMTUuNTIxSDE1LjU0NDdWMTYuNzcxSDQuNDU1MDhaTTkuOTk5ODcgMTMuNzc0MUM4LjcwMzkgMTMuNzc0MSA3LjY5MjQ0IDEzLjM4MDcgNi45NjU0OSAxMi41OTM5QzYuMjM4NDEgMTEuODA3MSA1Ljg3NDg3IDEwLjc1MjkgNS44NzQ4NyA5LjQzMTE5VjIuODQ0NzNINy40MTk2NlY5LjUwODA2QzcuNDE5NjYgMTAuMzUgNy42NDM0OCAxMS4wMjQ3IDguMDkxMTIgMTEuNTMyMkM4LjUzODc2IDEyLjAzOTcgOS4xNzUwMSAxMi4yOTM1IDkuOTk5ODcgMTIuMjkzNUMxMC44MjQ3IDEyLjI5MzUgMTEuNDYxIDEyLjAzOTcgMTEuOTA4NiAxMS41MzIyQzEyLjM1NjMgMTEuMDI0NyAxMi41ODAxIDEwLjM1IDEyLjU4MDEgOS41MDgwNlYyLjg0NDczSDE0LjEyNDlWOS40MzExOUMxNC4xMjQ5IDEwLjc1MjkgMTMuNzYxMyAxMS44MDcxIDEzLjAzNDIgMTIuNTkzOUMxMi4zMDczIDEzLjM4MDcgMTEuMjk1OCAxMy43NzQxIDkuOTk5ODcgMTMuNzc0MVoiIGZpbGw9ImJsYWNrIi8+PC9zdmc+";
@@ -1,21 +1,49 @@
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
- import {css} from 'lit';
9
-
10
- /**
11
- * RichTextEditor CSS
12
- */
1
+ // rte-styles.ts
2
+ import { css } from 'lit';
3
+
13
4
  export const styles = css`
14
- :host {
5
+ /* Host positioning for overlays */
6
+ nile-rich-text-editor { position: relative; display: block; font-family: inherit; }
7
+
8
+
9
+ nile-rte-toolbar-item > nile-button::part(base) {
10
+
11
+ width:32px; height:32px; padding:0px 6px;
12
+ border: none;
13
+ }
14
+
15
+
16
+
17
+
18
+ .toolbar, nile-rte-toolbar {
19
+ display:flex; align-items:center; gap:8px; padding:8px;
20
+ border:1px solid #e5e7eb; border-bottom:none; border-radius:8px 8px 0 0; background:#fff;
21
+ }
22
+
23
+ nile-rte-toolbar-item > button, .toolbar button, nile-rte-toolbar button {
24
+ border:1px solid #e5e7eb; background:#fff; border-radius:6px;
25
+ cursor:pointer;
26
+ }
27
+
28
+
29
+ /* Ensure clicks hit the button (not nested icon internals) */
30
+ nile-rte-toolbar-item > button nile-icon { pointer-events:none; }
15
31
 
16
- },
32
+ nile-rte-toolbar-item > button.active { border-color:#2563eb; background:#eff6ff; }
33
+ nile-rte-select select { height:32px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; }
34
+ nile-rte-color input[type="color"] { height:32px; width:36px; border:1px solid #e5e7eb; padding:0; border-radius:6px; background:#fff; }
35
+ nile-rte-divider { width:1px; height:20px; background:#e5e7eb; display:inline-block; margin:0 4px; }
17
36
 
37
+ .editor p { margin:1em 0; }
38
+ .editor h1 { font-size:2em }
39
+ .editor h2 { font-size:1.5em }
40
+ .editor h3 { font-size:1.17em }
41
+ .editor h4 { font-size:1em }
42
+ .editor h5 { font-size:0.83em }
43
+ .editor h6 { font-size:0.67em }
18
44
 
45
+ .editor { min-height:160px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none; }
46
+ nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; }
19
47
  `;
20
48
 
21
49
  export default [styles];
@@ -16,6 +16,8 @@ import {
16
16
  setFontFamily, setForeColor, insertOrEditLink
17
17
  } from './utils';
18
18
 
19
+ import {styles} from './nile-rich-text-editor.css';
20
+
19
21
  type MentionsConfig = Record<string, { key: string; label: string }[]>;
20
22
 
21
23
  /**
@@ -23,23 +25,23 @@ type MentionsConfig = Record<string, { key: string; label: string }[]>;
23
25
  * Adjust values to match the real names you have.
24
26
  */
25
27
  const DEFAULT_ICONS: Record<string, string> = {
26
- bold: 'bold',
27
- italic: 'itallic',
28
- underline: 'underline',
28
+ bold: 'nile-bold',
29
+ italic: 'nile-italic',
30
+ underline: 'nile-underline',
29
31
  link: 'user',
30
- left: 'user',
31
- center: 'user',
32
- right: 'user',
33
- justify: 'user',
34
- ul: 'ul',
35
- ol: 'ol',
36
- clear: 'close',
32
+ left: 'nile-leftalign',
33
+ center: 'nile-centeralign',
34
+ right: 'nile-rightalign',
35
+ justify: 'nile-justify',
36
+ ul: 'nile-ul',
37
+ ol: 'nile-ol',
38
+ clear: 'error',
37
39
  };
38
40
 
39
41
  @customElement('nile-rich-text-editor')
40
42
  export class NileRichTextEditor extends LitElement {
41
- protected createRenderRoot() { return this; } // Light DOM
42
- protected shouldUpdate() { return false; } // Preserve authored DOM; no Lit re-render
43
+ protected createRenderRoot() { return this; }
44
+ protected shouldUpdate() { return false; }
43
45
 
44
46
  /** Initial HTML content */
45
47
  @property({ type: String }) value = '';
@@ -87,11 +89,19 @@ export class NileRichTextEditor extends LitElement {
87
89
 
88
90
 
89
91
 
92
+ private injectCss(cssText: string) {
93
+ if (this.querySelector('style[data-rte-style]')) return;
94
+ const style = document.createElement('style');
95
+ style.setAttribute('data-rte-style', 'true');
96
+ style.textContent = cssText;
97
+ this.insertBefore(style, this.firstChild);
98
+ }
99
+
90
100
  connectedCallback(): void {
91
101
  super.connectedCallback();
92
102
 
93
103
  // 1) Inject styles once (so authored DOM stays as-is)
94
- this.injectStyles();
104
+ this.injectCss(styles.cssText);
95
105
 
96
106
 
97
107
  // 2) Keep authored nodes
@@ -113,20 +123,20 @@ export class NileRichTextEditor extends LitElement {
113
123
  // 6) Mentions: delegate to child controller
114
124
  this.mentionsEl = this.querySelector('nile-rte-mentions');
115
125
  if (this.mentionsEl) {
116
- // pass the editor and host for positioning
126
+
117
127
  (this.mentionsEl as any).attach?.(this.editorEl, this as HTMLElement);
118
- // pass parent-provided config so child can merge with its own attribute config
128
+
119
129
  (this.mentionsEl as any).setExternalConfig?.(this.mentions);
120
130
  }
121
131
 
122
- // 7) Wire editor listeners (selection + input)
132
+
123
133
  this.wireEditor();
124
134
 
125
- // 8) Initial active state + preview
135
+
126
136
  this.updateToolbarState();
127
137
  this.syncPreview();
128
138
 
129
- // 9) Global selection tracking (for toolbar state)
139
+
130
140
  document.addEventListener('selectionchange', this.onSelectionChange, true);
131
141
  }
132
142
 
@@ -139,57 +149,9 @@ export class NileRichTextEditor extends LitElement {
139
149
  super.disconnectedCallback();
140
150
  }
141
151
 
142
- // ---------- DOM helpers ----------
143
- private injectStyles() {
144
- if (this.querySelector('style[data-rte-style]')) return;
145
- const style = document.createElement('style');
146
- style.setAttribute('data-rte-style', 'true');
147
- style.textContent = `
148
- /* Host positioning for overlays */
149
- nile-rich-text-editor { position: relative; display: block; }
150
-
151
-
152
- nile-rte-toolbar-item > nile-button::part(base) {
153
-
154
- width:32px; height:32px; padding:0px 6px;
155
- }
156
152
 
157
153
 
158
154
 
159
-
160
- .toolbar, nile-rte-toolbar {
161
- display:flex; align-items:center; gap:8px; padding-top:8px; padding-left: 8px; padding-right: 8px;
162
- border:1px solid #e5e7eb; border-bottom:none; border-radius:8px 8px 0 0; background:#fff;
163
- }
164
-
165
- nile-rte-toolbar-item > button, .toolbar button, nile-rte-toolbar button {
166
- border:1px solid #e5e7eb; background:#fff; border-radius:6px;
167
- cursor:pointer;
168
- }
169
-
170
-
171
- /* Ensure clicks hit the button (not nested icon internals) */
172
- nile-rte-toolbar-item > button nile-icon { pointer-events:none; }
173
-
174
- nile-rte-toolbar-item > button.active { border-color:#2563eb; background:#eff6ff; }
175
- nile-rte-select select { height:32px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; }
176
- nile-rte-color input[type="color"] { height:32px; width:36px; border:1px solid #e5e7eb; padding:0; border-radius:6px; background:#fff; }
177
- nile-rte-divider { width:1px; height:20px; background:#e5e7eb; display:inline-block; margin:0 4px; }
178
-
179
- .editor p { margin:1em 0; }
180
- .editor h1 { font-size:2em }
181
- .editor h2 { font-size:1.5em }
182
- .editor h3 { font-size:1.17em }
183
- .editor h4 { font-size:1em }
184
- .editor h5 { font-size:0.83em }
185
- .editor h6 { font-size:0.67em }
186
-
187
- .editor { min-height:160px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none; }
188
- nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; }
189
- `;
190
- this.insertBefore(style, this.firstChild);
191
- }
192
-
193
155
  private ensureEditor() {
194
156
  this.editorEl = this.querySelector('.editor') as HTMLElement;
195
157
  if (!this.editorEl) {
@@ -268,7 +230,7 @@ nile-rte-toolbar-item > nile-button::part(base) {
268
230
  } else if (!authoredHasContent) {
269
231
  const defaultIcon = DEFAULT_ICONS[cmd];
270
232
  if (defaultIcon) {
271
- btn.innerHTML = `<nile-icon name="${defaultIcon}" size="26" aria-label="${label}"></nile-icon>`;
233
+ btn.innerHTML = `<nile-icon name="${defaultIcon}" size="20" color="black" aria-label="${label}"></nile-icon>`;
272
234
  } else {
273
235
  btn.textContent = label || cmd;
274
236
  }
@@ -1,3 +1,4 @@
1
+ // nile-rte-mentions-item.ts
1
2
  import { LitElement } from 'lit';
2
3
  import { customElement, property } from 'lit/decorators.js';
3
4
 
@@ -11,6 +12,10 @@ export class NileRteMentionsItem extends LitElement {
11
12
  @property({ attribute: 'mentionscharacter' })
12
13
  mentionsCharacter: string = '';
13
14
 
15
+
16
+ @property({ attribute: 'mentionscolor' })
17
+ mentionsColor: string = ''; // NEW
18
+
14
19
  /** JSON array of { key, label } */
15
20
  @property({
16
21
  attribute: 'mentionsdata',
@@ -32,12 +32,26 @@ export class NileRteMentions extends LitElement {
32
32
  })
33
33
  mentions: MentionsConfig = {};
34
34
 
35
+ @property({
36
+ attribute: 'mentioncolors',
37
+ converter: {
38
+ fromAttribute: (value: string): Record<string,string> => {
39
+ try { const o = JSON.parse(value); return (o && typeof o === 'object') ? o : {}; }
40
+ catch { return {}; }
41
+ },
42
+ toAttribute: (v: Record<string,string>) => JSON.stringify(v ?? {})
43
+ }
44
+ })
45
+ mentionColors: Record<string, string> = {}; // NEW
46
+
35
47
  /** External config from the editor (lowest priority) */
36
48
  @state() private externalConfig: MentionsConfig = {};
37
49
 
38
50
  /** Config gathered from child <nile-rte-mentions-item> (highest priority) */
39
51
  @state() private itemsConfig: MentionsConfig = {};
40
52
 
53
+ @state() private itemsColors: Record<string,string> = {}; // NEW
54
+
41
55
  private get config(): MentionsConfig {
42
56
  // Priority: external < attribute < child-items
43
57
  return { ...this.externalConfig, ...this.mentions, ...this.itemsConfig };
@@ -47,7 +61,7 @@ export class NileRteMentions extends LitElement {
47
61
  private editorEl: HTMLElement | null = null;
48
62
  private hostEl: HTMLElement | null = null;
49
63
 
50
- // dropdown & menu elements we’ll create once and reuse
64
+
51
65
  private dropdownEl: HTMLElement | null = null; // <nile-dropdown>
52
66
  private menuEl: HTMLElement | null = null; // <nile-menu>
53
67
 
@@ -118,12 +132,13 @@ private triggerBtn: HTMLElement | null = null;
118
132
  // ---------- gather child items ----------
119
133
  private rebuildConfigFromChildren() {
120
134
  const cfg: MentionsConfig = {};
135
+ const colors: Record<string,string> = {}; // NEW
136
+
121
137
  const items = Array.from(this.querySelectorAll('nile-rte-mentions-item')) as Array<
122
- HTMLElement & { mentionsCharacter?: string; mentionsData?: MentionItem[] }
138
+ HTMLElement & { mentionsCharacter?: string; mentionsData?: MentionItem[]; mentionsColor?: string }
123
139
  >;
124
140
 
125
141
  for (const item of items) {
126
- // read live properties first (if Lit already upgraded), else read attributes
127
142
  const trig =
128
143
  (item as any).mentionsCharacter ??
129
144
  item.getAttribute('mentionscharacter') ??
@@ -144,12 +159,19 @@ private triggerBtn: HTMLElement | null = null;
144
159
  } catch { return []; }
145
160
  })();
146
161
 
162
+ const color =
163
+ (item as any).mentionsColor ??
164
+ item.getAttribute('mentionscolor') ??
165
+ '';
166
+
147
167
  if (!Array.isArray(data)) data = [];
148
168
  cfg[trig] = data;
169
+ if (color) colors[trig] = String(color); // record color if provided
149
170
  }
171
+
150
172
  this.itemsConfig = cfg;
173
+ this.itemsColors = colors; // NEW
151
174
  }
152
-
153
175
  // ---------- styles ----------
154
176
  private injectStyles() {
155
177
  if (this.querySelector('style[data-mentions-style]')) return;
@@ -168,6 +190,11 @@ private triggerBtn: HTMLElement | null = null;
168
190
  this.insertBefore(style, this.firstChild);
169
191
  }
170
192
 
193
+ private getTriggerColor(trigger: string): string | undefined {
194
+ // Priority: child item color > attribute JSON color
195
+ return this.itemsColors[trigger] ?? this.mentionColors[trigger];
196
+ }
197
+
171
198
 
172
199
  private ensureMentionDropdown() {
173
200
  if (this.dropdownEl || !this.hostEl) return;
@@ -401,6 +428,13 @@ private ensureMentionDropdown() {
401
428
  const span = document.createElement('span');
402
429
  span.classList.add('mention');
403
430
  span.textContent = `${this.mentionTrigger}${item.label}`;
431
+ const bg = this.getTriggerColor(this.mentionTrigger);
432
+ if (bg) {
433
+ span.style.backgroundColor = bg;
434
+ // Optional: if you prefer colored text instead of bg
435
+ // span.style.color = bg;
436
+ }
437
+
404
438
  mentionRange.insertNode(span);
405
439
 
406
440
  const spaceNode = document.createTextNode('\u00A0');
@@ -21,7 +21,7 @@ export class NileRteSelect extends LitElement {
21
21
  left: 'align-left',
22
22
  center: 'align-center',
23
23
  right: 'align-right',
24
- justify: 'align-justify'
24
+ justify: 'nile-justify'
25
25
  };
26
26
  return map[v] || 'align-left';
27
27
  }
@@ -73,7 +73,7 @@ export class NileRteSelect extends LitElement {
73
73
  display: flex;
74
74
  }
75
75
  nile-menu.rte-align-menu,nile-menu.rte-default-menu{
76
- margin-bottom: 1px;
76
+ margin-top: 0px;
77
77
  }
78
78
 
79
79
  nile-button.rte-align-trigger::part(base),nile-button.rte-default-trigger::part(base){
@@ -99,7 +99,6 @@ export class NileRteSelect extends LitElement {
99
99
  const trigger = current?.icon
100
100
  ? html`<nile-icon name="${current.icon}"></nile-icon>`
101
101
  : (this.label || 'Align');
102
-
103
102
  return html`
104
103
  <nile-dropdown class="rte-align-dd">
105
104
  <nile-button slot="trigger" variant="tertiary" class="rte-align-trigger">
@@ -116,7 +115,30 @@ export class NileRteSelect extends LitElement {
116
115
  `)}
117
116
  </nile-menu>
118
117
  </nile-dropdown>
118
+
119
+
119
120
  `;
121
+ if (this.type === 'font') {
122
+ const triggerText = current?.label || this.label || 'Font';
123
+ return html`
124
+ <nile-dropdown class="rte-default-dd">
125
+ <nile-button slot="trigger" variant="tertiary" class="rte-default-trigger"
126
+ style="font-family: ${current?.value || 'inherit'}">
127
+ ${triggerText} <nile-icon name="arrowdown"></nile-icon>
128
+ </nile-button>
129
+ <nile-menu class="rte-default-menu">
130
+ ${opts.map(o => html`
131
+ <nile-menu-item
132
+ style="font-family: ${o.value}"
133
+ ?active=${o.value === this.selectedValue}
134
+ @click=${() => this.onSelect(o.value)}>
135
+ ${o.label}
136
+ </nile-menu-item>
137
+ `)}
138
+ </nile-menu>
139
+ </nile-dropdown>
140
+ `;
141
+ }
120
142
  }
121
143
 
122
144
  // ► Everything else: default (text) dropdown
@@ -124,7 +146,7 @@ export class NileRteSelect extends LitElement {
124
146
  return html`
125
147
  <nile-dropdown class="rte-default-dd">
126
148
  <nile-button slot="trigger" variant="tertiary" class="rte-default-trigger">
127
- ${triggerText}
149
+ ${triggerText} <nile-icon name="arrowdown"></nile-icon>
128
150
  </nile-button>
129
151
  <nile-menu class="rte-default-menu">
130
152
  ${opts.map(o => html`
@@ -2860,12 +2860,16 @@
2860
2860
  },
2861
2861
  {
2862
2862
  "name": "nile-rte-mentions-item",
2863
- "description": "Attributes:\n\n * `mentionscharacter` {`string`} - Single-character trigger, e.g., '@' or '#'\n\n * `mentionsdata` {`MentionItem[]`} - JSON array of { key, label }\n\nProperties:\n\n * `mentionsCharacter` {`string`} - Single-character trigger, e.g., '@' or '#'\n\n * `mentionsData` {`MentionItem[]`} - JSON array of { key, label }",
2863
+ "description": "Attributes:\n\n * `mentionscharacter` {`string`} - Single-character trigger, e.g., '@' or '#'\n\n * `mentionscolor` {`string`} - \n\n * `mentionsdata` {`MentionItem[]`} - JSON array of { key, label }\n\nProperties:\n\n * `mentionsCharacter` {`string`} - Single-character trigger, e.g., '@' or '#'\n\n * `mentionsColor` {`string`} - \n\n * `mentionsData` {`MentionItem[]`} - JSON array of { key, label }",
2864
2864
  "attributes": [
2865
2865
  {
2866
2866
  "name": "mentionscharacter",
2867
2867
  "description": "`mentionscharacter` {`string`} - Single-character trigger, e.g., '@' or '#'\n\nProperty: mentionsCharacter\n\nDefault: "
2868
2868
  },
2869
+ {
2870
+ "name": "mentionscolor",
2871
+ "description": "`mentionscolor` {`string`} - \n\nProperty: mentionsColor\n\nDefault: "
2872
+ },
2869
2873
  {
2870
2874
  "name": "mentionsdata",
2871
2875
  "description": "`mentionsdata` {`MentionItem[]`} - JSON array of { key, label }\n\nProperty: mentionsData\n\nDefault: "
@@ -2874,12 +2878,16 @@
2874
2878
  },
2875
2879
  {
2876
2880
  "name": "nile-rte-mentions",
2877
- "description": "Events:\n\n * `input` {`InputEvent`} - \n\nAttributes:\n\n * `mentions` - \n\nProperties:\n\n * `mentions` - \n\n * `externalConfig` - External config from the editor (lowest priority)\n\n * `itemsConfig` - Config gathered from child <nile-rte-mentions-item> (highest priority)\n\n * `config` - \n\n * `editorEl` {`HTMLElement | null`} - \n\n * `hostEl` {`HTMLElement | null`} - \n\n * `dropdownEl` {`HTMLElement | null`} - \n\n * `menuEl` {`HTMLElement | null`} - \n\n * `lastRange` {`Range | null`} - \n\n * `mentionOpen` {`boolean`} - \n\n * `mentionTrigger` {`string | null`} - \n\n * `mentionQuery` {`string`} - \n\n * `mentionSuggestions` {`MentionItem[]`} - \n\n * `mentionFiltered` {`MentionItem[]`} - \n\n * `mentionX` {`number`} - \n\n * `mentionY` {`number`} - \n\n * `triggerBtn` {`HTMLElement | null`} - \n\n * `mo` {`MutationObserver | null`} - \n\n * `onSelectionChange` - \n\n * `saveSelection` - \n\n * `onEditorInput` - \n\n * `onEditorKeyUp` - \n\n * `onEditorKeyDown` - \n\n * `repositionMention` - ",
2881
+ "description": "Events:\n\n * `input` {`InputEvent`} - \n\nAttributes:\n\n * `mentions` - \n\n * `mentioncolors` - \n\nProperties:\n\n * `mentions` - \n\n * `mentionColors` - \n\n * `externalConfig` - External config from the editor (lowest priority)\n\n * `itemsConfig` - Config gathered from child <nile-rte-mentions-item> (highest priority)\n\n * `itemsColors` - \n\n * `config` - \n\n * `editorEl` {`HTMLElement | null`} - \n\n * `hostEl` {`HTMLElement | null`} - \n\n * `dropdownEl` {`HTMLElement | null`} - \n\n * `menuEl` {`HTMLElement | null`} - \n\n * `lastRange` {`Range | null`} - \n\n * `mentionOpen` {`boolean`} - \n\n * `mentionTrigger` {`string | null`} - \n\n * `mentionQuery` {`string`} - \n\n * `mentionSuggestions` {`MentionItem[]`} - \n\n * `mentionFiltered` {`MentionItem[]`} - \n\n * `mentionX` {`number`} - \n\n * `mentionY` {`number`} - \n\n * `triggerBtn` {`HTMLElement | null`} - \n\n * `mo` {`MutationObserver | null`} - \n\n * `onSelectionChange` - \n\n * `saveSelection` - \n\n * `onEditorInput` - \n\n * `onEditorKeyUp` - \n\n * `onEditorKeyDown` - \n\n * `repositionMention` - ",
2878
2882
  "attributes": [
2879
2883
  {
2880
2884
  "name": "mentions",
2881
2885
  "description": "`mentions` - \n\nProperty: mentions\n\nDefault: [object Object]"
2882
2886
  },
2887
+ {
2888
+ "name": "mentioncolors",
2889
+ "description": "`mentioncolors` - \n\nProperty: mentionColors\n\nDefault: [object Object]"
2890
+ },
2883
2891
  {
2884
2892
  "name": "oninput",
2885
2893
  "description": "`input` {`InputEvent`} - "