@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.
- package/demo/index.html +70 -53
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +590 -545
- package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
- package/dist/nile-avatar/nile-avatar.test.cjs.js.map +1 -1
- package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
- package/dist/nile-badge/index.cjs.js +1 -1
- package/dist/nile-badge/index.esm.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
- package/dist/nile-badge/nile-badge.esm.js +1 -1
- package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.test.cjs.js.map +1 -1
- package/dist/nile-badge/nile-badge.test.esm.js +1 -1
- package/dist/nile-button/index.cjs.js +1 -1
- package/dist/nile-button/index.esm.js +1 -1
- package/dist/nile-button/nile-button.cjs.js +1 -1
- package/dist/nile-button/nile-button.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.esm.js +2 -2
- package/dist/nile-button/nile-button.test.cjs.js +1 -1
- package/dist/nile-button/nile-button.test.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.test.esm.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.test.esm.js +5 -5
- package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.test.esm.js +1 -1
- package/dist/nile-dialog/index.cjs.js +1 -1
- package/dist/nile-dialog/index.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.test.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
- package/dist/nile-drawer/index.cjs.js +1 -1
- package/dist/nile-drawer/index.esm.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
- package/dist/nile-drawer/nile-drawer.esm.js +2 -2
- package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.test.cjs.js.map +1 -1
- package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
- package/dist/nile-icon/icons/svg/bold-try.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/bold-try.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/bold-try.esm.js +1 -0
- package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/index.esm.js +1 -1
- package/dist/nile-icon/icons/svg/nile-bold.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/nile-bold.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/nile-bold.esm.js +1 -0
- package/dist/nile-icon/icons/svg/nile-centeralign.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/nile-centeralign.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/nile-centeralign.esm.js +1 -0
- package/dist/nile-icon/icons/svg/nile-italic.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/nile-italic.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/nile-italic.esm.js +1 -0
- package/dist/nile-icon/icons/svg/nile-justify.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/nile-justify.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/nile-justify.esm.js +1 -0
- package/dist/nile-icon/icons/svg/nile-leftalign.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/nile-leftalign.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/nile-leftalign.esm.js +1 -0
- package/dist/nile-icon/icons/svg/nile-ol.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/nile-ol.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/nile-ol.esm.js +1 -0
- package/dist/nile-icon/icons/svg/nile-rightalign.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/nile-rightalign.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/nile-rightalign.esm.js +1 -0
- package/dist/nile-icon/icons/svg/nile-ul.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/nile-ul.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/nile-ul.esm.js +1 -0
- package/dist/nile-icon/icons/svg/nile-underline.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/nile-underline.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/nile-underline.esm.js +1 -0
- package/dist/nile-icon/index.cjs.js +1 -1
- package/dist/nile-icon/index.cjs.js.map +1 -1
- package/dist/nile-icon/index.esm.js +1 -1
- package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
- package/dist/nile-icon/nile-icon.test.cjs.js.map +1 -1
- package/dist/nile-icon/nile-icon.test.esm.js +1 -1
- package/dist/nile-icon-button/index.cjs.js +1 -1
- package/dist/nile-icon-button/index.esm.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
- package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
- package/dist/nile-input/index.cjs.js +1 -1
- package/dist/nile-input/index.esm.js +1 -1
- package/dist/nile-input/nile-input.cjs.js +1 -1
- package/dist/nile-input/nile-input.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.esm.js +1 -1
- package/dist/nile-input/nile-input.test.cjs.js +1 -1
- package/dist/nile-input/nile-input.test.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.test.esm.js +1 -1
- package/dist/nile-menu-item/index.cjs.js +1 -1
- package/dist/nile-menu-item/index.esm.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
- package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
- package/dist/nile-option/index.cjs.js +1 -1
- package/dist/nile-option/index.esm.js +1 -1
- package/dist/nile-option/nile-option.cjs.js +1 -1
- package/dist/nile-option/nile-option.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.esm.js +1 -1
- package/dist/nile-rich-text-editor/index.cjs.js +1 -1
- package/dist/nile-rich-text-editor/index.esm.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +41 -4
- package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
- package/dist/nile-rich-text-editor/nile-rte-mentions-item.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rte-mentions-item.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rte-mentions-item.esm.js +1 -1
- package/dist/nile-rich-text-editor/nile-rte-mentions.cjs.js +2 -2
- package/dist/nile-rich-text-editor/nile-rte-mentions.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rte-mentions.esm.js +1 -1
- package/dist/nile-rich-text-editor/nile-rte-select.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rte-select.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rte-select.esm.js +14 -12
- package/dist/nile-select/index.cjs.js +1 -1
- package/dist/nile-select/index.esm.js +1 -1
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.esm.js +1 -1
- package/dist/nile-select/nile-select.test.cjs.js +1 -1
- package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.test.esm.js +1 -1
- package/dist/nile-tab/index.cjs.js +1 -1
- package/dist/nile-tab/index.esm.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
- package/dist/nile-tab/nile-tab.esm.js +1 -1
- package/dist/nile-tab-group/index.cjs.js +1 -1
- package/dist/nile-tab-group/index.esm.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.esm.js +2 -2
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
- package/dist/nile-tag/index.cjs.js +1 -1
- package/dist/nile-tag/index.esm.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
- package/dist/nile-tag/nile-tag.esm.js +1 -1
- package/dist/nile-toast/index.cjs.js +1 -1
- package/dist/nile-toast/index.esm.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
- package/dist/nile-toast/nile-toast.esm.js +1 -1
- package/dist/nile-tree/index.cjs.js +1 -1
- package/dist/nile-tree/index.esm.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
- package/dist/nile-tree/nile-tree.esm.js +1 -1
- package/dist/nile-tree-item/index.cjs.js +1 -1
- package/dist/nile-tree-item/index.esm.js +1 -1
- package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
- package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
- package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
- package/dist/src/nile-icon/icons/svg/bold-try.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/bold-try.js +5 -0
- package/dist/src/nile-icon/icons/svg/bold-try.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/index.d.ts +10 -0
- package/dist/src/nile-icon/icons/svg/index.js +10 -0
- package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/nile-bold.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/nile-bold.js +5 -0
- package/dist/src/nile-icon/icons/svg/nile-bold.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/nile-centeralign.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/nile-centeralign.js +5 -0
- package/dist/src/nile-icon/icons/svg/nile-centeralign.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/nile-italic.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/nile-italic.js +5 -0
- package/dist/src/nile-icon/icons/svg/nile-italic.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/nile-justify.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/nile-justify.js +5 -0
- package/dist/src/nile-icon/icons/svg/nile-justify.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/nile-leftalign.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/nile-leftalign.js +5 -0
- package/dist/src/nile-icon/icons/svg/nile-leftalign.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/nile-ol.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/nile-ol.js +5 -0
- package/dist/src/nile-icon/icons/svg/nile-ol.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/nile-rightalign.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/nile-rightalign.js +5 -0
- package/dist/src/nile-icon/icons/svg/nile-rightalign.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/nile-ul.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/nile-ul.js +5 -0
- package/dist/src/nile-icon/icons/svg/nile-ul.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/nile-underline.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/nile-underline.js +5 -0
- package/dist/src/nile-icon/icons/svg/nile-underline.js.map +1 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.d.ts +0 -9
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +40 -11
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +23 -70
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.d.ts +1 -0
- package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.js +5 -0
- package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rte-mentions.d.ts +3 -0
- package/dist/src/nile-rich-text-editor/nile-rte-mentions.js +39 -2
- package/dist/src/nile-rich-text-editor/nile-rte-mentions.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rte-select.js +26 -3
- package/dist/src/nile-rich-text-editor/nile-rte-select.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-icon/icons/svg/bold-try.ts +5 -0
- package/src/nile-icon/icons/svg/index.ts +10 -0
- package/src/nile-icon/icons/svg/nile-bold.ts +5 -0
- package/src/nile-icon/icons/svg/nile-centeralign.ts +5 -0
- package/src/nile-icon/icons/svg/nile-italic.ts +5 -0
- package/src/nile-icon/icons/svg/nile-justify.ts +5 -0
- package/src/nile-icon/icons/svg/nile-leftalign.ts +5 -0
- package/src/nile-icon/icons/svg/nile-ol.ts +5 -0
- package/src/nile-icon/icons/svg/nile-rightalign.ts +5 -0
- package/src/nile-icon/icons/svg/nile-ul.ts +5 -0
- package/src/nile-icon/icons/svg/nile-underline.ts +5 -0
- package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +42 -14
- package/src/nile-rich-text-editor/nile-rich-text-editor.ts +29 -67
- package/src/nile-rich-text-editor/nile-rte-mentions-item.ts +5 -0
- package/src/nile-rich-text-editor/nile-rte-mentions.ts +38 -4
- package/src/nile-rich-text-editor/nile-rte-select.ts +26 -4
- 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.
|
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
|
-
|
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
|
-
|
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: '
|
28
|
-
underline: 'underline',
|
28
|
+
bold: 'nile-bold',
|
29
|
+
italic: 'nile-italic',
|
30
|
+
underline: 'nile-underline',
|
29
31
|
link: 'user',
|
30
|
-
left: '
|
31
|
-
center: '
|
32
|
-
right: '
|
33
|
-
justify: '
|
34
|
-
ul: 'ul',
|
35
|
-
ol: 'ol',
|
36
|
-
clear: '
|
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; }
|
42
|
-
protected shouldUpdate() { return false; }
|
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.
|
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
|
-
|
126
|
+
|
117
127
|
(this.mentionsEl as any).attach?.(this.editorEl, this as HTMLElement);
|
118
|
-
|
128
|
+
|
119
129
|
(this.mentionsEl as any).setExternalConfig?.(this.mentions);
|
120
130
|
}
|
121
131
|
|
122
|
-
|
132
|
+
|
123
133
|
this.wireEditor();
|
124
134
|
|
125
|
-
|
135
|
+
|
126
136
|
this.updateToolbarState();
|
127
137
|
this.syncPreview();
|
128
138
|
|
129
|
-
|
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="
|
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
|
-
|
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: '
|
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
|
-
|
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`} - "
|