@aquera/nile-elements 1.9.5 → 1.9.7
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/README.md +9 -0
- package/dist/index-178e1e57.cjs.js +2 -0
- package/dist/index-178e1e57.cjs.js.map +1 -0
- package/dist/index-1faa963c.esm.js +1 -0
- package/dist/index-249de90a.esm.js +1 -0
- package/dist/index-353172ed.esm.js +1 -0
- package/dist/index-6f3fa4ab.esm.js +1 -0
- package/dist/index-89c520e9.cjs.js +5 -0
- package/dist/index-89c520e9.cjs.js.map +1 -0
- package/dist/index-920675c4.esm.js +1 -0
- package/dist/index-b387a9f4.cjs.js +2 -0
- package/dist/index-b387a9f4.cjs.js.map +1 -0
- package/dist/index-cc1385e0.cjs.js +2 -0
- package/dist/index-cc1385e0.cjs.js.map +1 -0
- package/dist/index-dedc38a6.esm.js +1 -0
- package/dist/index-df196058.cjs.js +2 -0
- package/dist/index-df196058.cjs.js.map +1 -0
- package/dist/index-f956f56d.cjs.js +7 -0
- package/dist/index-f956f56d.cjs.js.map +1 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +3802 -664
- package/dist/internal/glyph.cjs.js +2 -0
- package/dist/internal/glyph.cjs.js.map +1 -0
- package/dist/internal/glyph.esm.js +5 -0
- package/dist/nile-auto-complete/index.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
- package/dist/nile-auto-complete/portal-manager.cjs.js +1 -1
- package/dist/nile-auto-complete/portal-utils.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.css.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.css.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.css.esm.js +8 -1
- package/dist/nile-code-editor/extensionSetup.cjs.js +7 -7
- package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
- package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
- package/dist/nile-code-editor/index.cjs.js +1 -1
- package/dist/nile-code-editor/index.esm.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.esm.js +4 -4
- package/dist/nile-color-picker/index.cjs.js +1 -1
- package/dist/nile-color-picker/nile-color-picker.cjs.js +1 -1
- package/dist/nile-combobox/index.cjs.js +1 -1
- package/dist/nile-combobox/index.esm.js +1 -1
- package/dist/nile-combobox/nile-combobox.cjs.js +1 -1
- package/dist/nile-combobox/nile-combobox.esm.js +1 -1
- package/dist/nile-combobox/portal-manager.cjs.js +1 -1
- package/dist/nile-context-menu/index.cjs.js +1 -1
- package/dist/nile-context-menu/nile-context-menu.cjs.js +1 -1
- package/dist/nile-context-submenu/index.cjs.js +1 -1
- package/dist/nile-context-submenu/nile-context-submenu.cjs.js +1 -1
- package/dist/nile-detail/index.cjs.js +1 -1
- package/dist/nile-detail/index.esm.js +1 -1
- package/dist/nile-detail/nile-detail.cjs.js +1 -1
- package/dist/nile-detail/nile-detail.esm.js +1 -1
- package/dist/nile-dropdown/index.cjs.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
- package/dist/nile-dropdown/portal-manager.cjs.js +1 -1
- package/dist/nile-file-upload/index.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.template.cjs.js +1 -1
- package/dist/nile-floating-panel/index.cjs.js +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.cjs.js.map +1 -1
- package/dist/nile-hero/nile-hero.css.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.css.cjs.js.map +1 -1
- package/dist/nile-hero/nile-hero.css.esm.js +14 -14
- package/dist/nile-hero/nile-hero.esm.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.cjs.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.cjs.js.map +1 -1
- package/dist/nile-hero-header/nile-hero-header.css.cjs.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.css.cjs.js.map +1 -1
- package/dist/nile-hero-header/nile-hero-header.css.esm.js +11 -11
- package/dist/nile-hero-header/nile-hero-header.esm.js +3 -3
- package/dist/nile-lite-tooltip/index.cjs.js +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js +1 -1
- package/dist/nile-markdown-editor/index.cjs.js +1 -1
- package/dist/nile-markdown-editor/nile-markdown-editor.cjs.js +1 -1
- package/dist/nile-popover/index.cjs.js +1 -1
- package/dist/nile-popover/nile-popover.cjs.js +1 -1
- package/dist/nile-popover/portal-manager.cjs.js +1 -1
- package/dist/nile-popup/index.cjs.js +1 -1
- package/dist/nile-popup/nile-popup.cjs.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 +70 -0
- package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
- package/dist/nile-rich-text-editor/nile-rte-image.cjs.js +3 -0
- package/dist/nile-rich-text-editor/nile-rte-image.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rte-image.esm.js +96 -0
- package/dist/nile-select/index.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/portal-manager.cjs.js +1 -1
- package/dist/nile-side-bar-action/index.cjs.js +1 -1
- package/dist/nile-side-bar-action/nile-side-bar-action.cjs.js +1 -1
- package/dist/nile-side-bar-action/portal-manager.cjs.js +1 -1
- package/dist/nile-tooltip/index.cjs.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.cjs.js +1 -1
- package/dist/nile-virtual-select/index.cjs.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js +1 -1
- package/dist/nile-virtual-select/portal-manager.cjs.js +1 -1
- package/dist/nile-virtual-select/renderer.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/emoji.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/emoji.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/emoji.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/commands.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/commands.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/commands.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/create-state.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/export.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/export.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/export.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/index.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/index.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/index.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/inputrules.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/inputrules.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/inputrules.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/keymap.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/keymap.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/keymap.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/markdown-parse.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/markdown-parse.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/markdown-parse.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/markdown.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/markdown.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/markdown.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/office-paste.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/office-paste.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/office-paste.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/embeds.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/find-replace.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/find-replace.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/find-replace.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/format-painter.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/format-painter.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/format-painter.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/image-view.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/image-view.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/image-view.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/image.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/image.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/image.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/link.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/link.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/link.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/math-view.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/max-length.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/max-length.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/max-length.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/paste.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/paste.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/paste.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/placeholder.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/placeholder.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/placeholder.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/single-line.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/single-line.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/single-line.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/suggestions.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/suggestions.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/suggestions.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/tables.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/task-list.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/task-list.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/task-list.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/sanitize.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/schema.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/schema.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/schema.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/selection-state.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/serializer.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/serializer.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/serializer.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/index.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/index.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/index.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.esm.js +780 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.esm.js +97 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.esm.js +244 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.esm.js +137 -0
- package/dist/nile-wysiwyg-editor/types.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/types.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/types.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/ui/bookmark-panel.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/bookmark-panel.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/bookmark-panel.esm.js +97 -0
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.esm.js +67 -0
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.esm.js +65 -0
- package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/embed-menu.esm.js +64 -0
- package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/embed-panel.esm.js +68 -0
- package/dist/nile-wysiwyg-editor/ui/emoji-picker.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/emoji-picker.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/emoji-picker.esm.js +96 -0
- package/dist/nile-wysiwyg-editor/ui/find-replace.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/find-replace.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/find-replace.esm.js +112 -0
- package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/image-menu.esm.js +64 -0
- package/dist/nile-wysiwyg-editor/ui/image-panel.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/image-panel.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/image-panel.esm.js +171 -0
- package/dist/nile-wysiwyg-editor/ui/insert-menu.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/insert-menu.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/insert-menu.esm.js +90 -0
- package/dist/nile-wysiwyg-editor/ui/link-editor.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/link-editor.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/link-editor.esm.js +114 -0
- package/dist/nile-wysiwyg-editor/ui/markdown-panel.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/markdown-panel.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/markdown-panel.esm.js +80 -0
- package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/math-panel.esm.js +92 -0
- package/dist/nile-wysiwyg-editor/ui/shortcut-help.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/shortcut-help.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/shortcut-help.esm.js +147 -0
- package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/source-view.esm.js +79 -0
- package/dist/nile-wysiwyg-editor/ui/special-chars.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/special-chars.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/special-chars.esm.js +96 -0
- package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/suggest-list.esm.js +67 -0
- package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/table-grid-picker.esm.js +100 -0
- package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/table-menu.esm.js +58 -0
- package/dist/src/index.d.ts +24 -0
- package/dist/src/index.js +19 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal/glyph.d.ts +6 -0
- package/dist/src/internal/glyph.js +13 -0
- package/dist/src/internal/glyph.js.map +1 -0
- package/dist/src/nile-chip/nile-chip.css.js +8 -1
- package/dist/src/nile-chip/nile-chip.css.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.js +3 -3
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-hero/nile-hero.css.js +12 -12
- package/dist/src/nile-hero/nile-hero.css.js.map +1 -1
- package/dist/src/nile-hero/nile-hero.js +1 -1
- package/dist/src/nile-hero/nile-hero.js.map +1 -1
- package/dist/src/nile-hero-header/nile-hero-header.css.js +9 -9
- package/dist/src/nile-hero-header/nile-hero-header.css.js.map +1 -1
- package/dist/src/nile-hero-header/nile-hero-header.js +1 -1
- package/dist/src/nile-hero-header/nile-hero-header.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +70 -0
- 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 +3 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +81 -3
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rte-image.d.ts +87 -0
- package/dist/src/nile-rich-text-editor/nile-rte-image.js +1073 -0
- package/dist/src/nile-rich-text-editor/nile-rte-image.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/emoji.d.ts +5 -0
- package/dist/src/nile-wysiwyg-editor/emoji.js +138 -0
- package/dist/src/nile-wysiwyg-editor/emoji.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/commands.d.ts +69 -0
- package/dist/src/nile-wysiwyg-editor/engine/commands.js +863 -0
- package/dist/src/nile-wysiwyg-editor/engine/commands.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/create-state.d.ts +35 -0
- package/dist/src/nile-wysiwyg-editor/engine/create-state.js +67 -0
- package/dist/src/nile-wysiwyg-editor/engine/create-state.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/export.d.ts +38 -0
- package/dist/src/nile-wysiwyg-editor/engine/export.js +208 -0
- package/dist/src/nile-wysiwyg-editor/engine/export.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/export.test.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/export.test.js +96 -0
- package/dist/src/nile-wysiwyg-editor/engine/export.test.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/index.d.ts +37 -0
- package/dist/src/nile-wysiwyg-editor/engine/index.js +29 -0
- package/dist/src/nile-wysiwyg-editor/engine/index.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/inputrules.d.ts +12 -0
- package/dist/src/nile-wysiwyg-editor/engine/inputrules.js +144 -0
- package/dist/src/nile-wysiwyg-editor/engine/inputrules.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/keymap.d.ts +15 -0
- package/dist/src/nile-wysiwyg-editor/engine/keymap.js +94 -0
- package/dist/src/nile-wysiwyg-editor/engine/keymap.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.d.ts +22 -0
- package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.js +287 -0
- package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.test.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.test.js +106 -0
- package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.test.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/markdown.d.ts +10 -0
- package/dist/src/nile-wysiwyg-editor/engine/markdown.js +162 -0
- package/dist/src/nile-wysiwyg-editor/engine/markdown.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/office-paste.d.ts +13 -0
- package/dist/src/nile-wysiwyg-editor/engine/office-paste.js +182 -0
- package/dist/src/nile-wysiwyg-editor/engine/office-paste.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/code-highlight.d.ts +10 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/code-highlight.js +165 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/code-highlight.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.d.ts +17 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js +69 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.d.ts +17 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js +96 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/find-replace.d.ts +26 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/find-replace.js +123 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/find-replace.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/format-painter.d.ts +28 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/format-painter.js +72 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/format-painter.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/image-view.d.ts +41 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/image-view.js +176 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/image-view.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/image.d.ts +15 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/image.js +64 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/image.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/link.d.ts +11 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/link.js +42 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/link.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.d.ts +18 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js +46 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/max-length.d.ts +7 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/max-length.js +26 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/max-length.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/paste.d.ts +31 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/paste.js +55 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/paste.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/placeholder.d.ts +7 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/placeholder.js +25 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/placeholder.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/single-line.d.ts +10 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/single-line.js +48 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/single-line.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/suggestions.d.ts +29 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/suggestions.js +87 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/suggestions.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.d.ts +8 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js +11 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/task-list.d.ts +16 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/task-list.js +49 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/task-list.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/pm.test.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/pm.test.js +883 -0
- package/dist/src/nile-wysiwyg-editor/engine/pm.test.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/productivity.test.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/productivity.test.js +129 -0
- package/dist/src/nile-wysiwyg-editor/engine/productivity.test.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/sanitize.d.ts +13 -0
- package/dist/src/nile-wysiwyg-editor/engine/sanitize.js +155 -0
- package/dist/src/nile-wysiwyg-editor/engine/sanitize.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/schema.d.ts +20 -0
- package/dist/src/nile-wysiwyg-editor/engine/schema.js +823 -0
- package/dist/src/nile-wysiwyg-editor/engine/schema.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/selection-state.d.ts +70 -0
- package/dist/src/nile-wysiwyg-editor/engine/selection-state.js +138 -0
- package/dist/src/nile-wysiwyg-editor/engine/selection-state.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/serializer.d.ts +18 -0
- package/dist/src/nile-wysiwyg-editor/engine/serializer.js +63 -0
- package/dist/src/nile-wysiwyg-editor/engine/serializer.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/index.d.ts +3 -0
- package/dist/src/nile-wysiwyg-editor/index.js +3 -0
- package/dist/src/nile-wysiwyg-editor/index.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js +782 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.d.ts +364 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js +2038 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js +636 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js +2 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.d.ts +6 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js +251 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.d.ts +41 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js +700 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/types.d.ts +49 -0
- package/dist/src/nile-wysiwyg-editor/types.js +8 -0
- package/dist/src/nile-wysiwyg-editor/types.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.d.ts +20 -0
- package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.js +159 -0
- package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.d.ts +21 -0
- package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js +125 -0
- package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.d.ts +18 -0
- package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.js +107 -0
- package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/embed-menu.d.ts +19 -0
- package/dist/src/nile-wysiwyg-editor/ui/embed-menu.js +123 -0
- package/dist/src/nile-wysiwyg-editor/ui/embed-menu.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/embed-panel.d.ts +27 -0
- package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js +146 -0
- package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.d.ts +21 -0
- package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.js +154 -0
- package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/find-replace.d.ts +26 -0
- package/dist/src/nile-wysiwyg-editor/ui/find-replace.js +178 -0
- package/dist/src/nile-wysiwyg-editor/ui/find-replace.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/image-menu.d.ts +18 -0
- package/dist/src/nile-wysiwyg-editor/ui/image-menu.js +129 -0
- package/dist/src/nile-wysiwyg-editor/ui/image-menu.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/image-panel.d.ts +56 -0
- package/dist/src/nile-wysiwyg-editor/ui/image-panel.js +349 -0
- package/dist/src/nile-wysiwyg-editor/ui/image-panel.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/insert-menu.d.ts +25 -0
- package/dist/src/nile-wysiwyg-editor/ui/insert-menu.js +142 -0
- package/dist/src/nile-wysiwyg-editor/ui/insert-menu.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/link-editor.d.ts +30 -0
- package/dist/src/nile-wysiwyg-editor/ui/link-editor.js +189 -0
- package/dist/src/nile-wysiwyg-editor/ui/link-editor.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.d.ts +24 -0
- package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.js +144 -0
- package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/math-panel.d.ts +31 -0
- package/dist/src/nile-wysiwyg-editor/ui/math-panel.js +172 -0
- package/dist/src/nile-wysiwyg-editor/ui/math-panel.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.d.ts +30 -0
- package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.js +296 -0
- package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/source-view.d.ts +19 -0
- package/dist/src/nile-wysiwyg-editor/ui/source-view.js +120 -0
- package/dist/src/nile-wysiwyg-editor/ui/source-view.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/special-chars.d.ts +20 -0
- package/dist/src/nile-wysiwyg-editor/ui/special-chars.js +199 -0
- package/dist/src/nile-wysiwyg-editor/ui/special-chars.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/suggest-list.d.ts +31 -0
- package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js +133 -0
- package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.d.ts +23 -0
- package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js +177 -0
- package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/table-menu.d.ts +16 -0
- package/dist/src/nile-wysiwyg-editor/ui/table-menu.js +101 -0
- package/dist/src/nile-wysiwyg-editor/ui/table-menu.js.map +1 -0
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -2
- package/src/index.ts +57 -1
- package/src/internal/glyph.ts +13 -0
- package/src/nile-chip/nile-chip.css.ts +8 -1
- package/src/nile-code-editor/nile-code-editor.ts +3 -3
- package/src/nile-hero/nile-hero.css.ts +12 -12
- package/src/nile-hero/nile-hero.ts +1 -1
- package/src/nile-hero-header/nile-hero-header.css.ts +9 -9
- package/src/nile-hero-header/nile-hero-header.ts +1 -1
- package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +70 -0
- package/src/nile-rich-text-editor/nile-rich-text-editor.ts +89 -3
- package/src/nile-rich-text-editor/nile-rte-image.ts +1132 -0
- package/src/nile-wysiwyg-editor/emoji.ts +137 -0
- package/src/nile-wysiwyg-editor/engine/commands.ts +1035 -0
- package/src/nile-wysiwyg-editor/engine/create-state.ts +117 -0
- package/src/nile-wysiwyg-editor/engine/export.test.ts +113 -0
- package/src/nile-wysiwyg-editor/engine/export.ts +242 -0
- package/src/nile-wysiwyg-editor/engine/index.ts +69 -0
- package/src/nile-wysiwyg-editor/engine/inputrules.ts +169 -0
- package/src/nile-wysiwyg-editor/engine/keymap.ts +146 -0
- package/src/nile-wysiwyg-editor/engine/markdown-parse.test.ts +148 -0
- package/src/nile-wysiwyg-editor/engine/markdown-parse.ts +337 -0
- package/src/nile-wysiwyg-editor/engine/markdown.ts +165 -0
- package/src/nile-wysiwyg-editor/engine/office-paste.ts +199 -0
- package/src/nile-wysiwyg-editor/engine/plugins/code-highlight.ts +173 -0
- package/src/nile-wysiwyg-editor/engine/plugins/embed-view.ts +85 -0
- package/src/nile-wysiwyg-editor/engine/plugins/embeds.ts +99 -0
- package/src/nile-wysiwyg-editor/engine/plugins/find-replace.ts +155 -0
- package/src/nile-wysiwyg-editor/engine/plugins/format-painter.ts +80 -0
- package/src/nile-wysiwyg-editor/engine/plugins/image-view.ts +220 -0
- package/src/nile-wysiwyg-editor/engine/plugins/image.ts +80 -0
- package/src/nile-wysiwyg-editor/engine/plugins/link.ts +42 -0
- package/src/nile-wysiwyg-editor/engine/plugins/math-view.ts +56 -0
- package/src/nile-wysiwyg-editor/engine/plugins/max-length.ts +24 -0
- package/src/nile-wysiwyg-editor/engine/plugins/paste.ts +74 -0
- package/src/nile-wysiwyg-editor/engine/plugins/placeholder.ts +24 -0
- package/src/nile-wysiwyg-editor/engine/plugins/single-line.ts +47 -0
- package/src/nile-wysiwyg-editor/engine/plugins/suggestions.ts +110 -0
- package/src/nile-wysiwyg-editor/engine/plugins/tables.ts +12 -0
- package/src/nile-wysiwyg-editor/engine/plugins/task-list.ts +65 -0
- package/src/nile-wysiwyg-editor/engine/pm.test.ts +1088 -0
- package/src/nile-wysiwyg-editor/engine/productivity.test.ts +163 -0
- package/src/nile-wysiwyg-editor/engine/sanitize.ts +156 -0
- package/src/nile-wysiwyg-editor/engine/schema.ts +859 -0
- package/src/nile-wysiwyg-editor/engine/selection-state.ts +210 -0
- package/src/nile-wysiwyg-editor/engine/serializer.ts +78 -0
- package/src/nile-wysiwyg-editor/index.ts +3 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.ts +782 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.ts +750 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.ts +2155 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.ts +1 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.ts +251 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.ts +772 -0
- package/src/nile-wysiwyg-editor/types.ts +83 -0
- package/src/nile-wysiwyg-editor/ui/bookmark-panel.ts +155 -0
- package/src/nile-wysiwyg-editor/ui/bubble-menu.ts +135 -0
- package/src/nile-wysiwyg-editor/ui/code-block-menu.ts +105 -0
- package/src/nile-wysiwyg-editor/ui/embed-menu.ts +133 -0
- package/src/nile-wysiwyg-editor/ui/embed-panel.ts +143 -0
- package/src/nile-wysiwyg-editor/ui/emoji-picker.ts +152 -0
- package/src/nile-wysiwyg-editor/ui/find-replace.ts +174 -0
- package/src/nile-wysiwyg-editor/ui/image-menu.ts +140 -0
- package/src/nile-wysiwyg-editor/ui/image-panel.ts +337 -0
- package/src/nile-wysiwyg-editor/ui/insert-menu.ts +142 -0
- package/src/nile-wysiwyg-editor/ui/link-editor.ts +180 -0
- package/src/nile-wysiwyg-editor/ui/markdown-panel.ts +143 -0
- package/src/nile-wysiwyg-editor/ui/math-panel.ts +169 -0
- package/src/nile-wysiwyg-editor/ui/shortcut-help.ts +311 -0
- package/src/nile-wysiwyg-editor/ui/source-view.ts +119 -0
- package/src/nile-wysiwyg-editor/ui/special-chars.ts +209 -0
- package/src/nile-wysiwyg-editor/ui/suggest-list.ts +138 -0
- package/src/nile-wysiwyg-editor/ui/table-grid-picker.ts +173 -0
- package/src/nile-wysiwyg-editor/ui/table-menu.ts +109 -0
- package/vscode-html-custom-data.json +491 -1
- package/web-dev-server.config.mjs +6 -2
- package/dist/index-5fef1a0d.esm.js +0 -1
- package/dist/index-8f38fae3.cjs.js +0 -2
- package/dist/index-8f38fae3.cjs.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-rte-image.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rte-image.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\n@customElement('nile-rte-image')\nexport class NileRteImage extends LitElement {\n protected createRenderRoot() {\n return this;\n }\n\n @property({ attribute: false }) editorEl!: HTMLElement;\n @property({ type: Boolean, reflect: true, attribute: true }) disabled = false;\n @property({ type: String, reflect: true, attribute: true }) label = 'Image';\n @property({ type: String, reflect: true, attribute: true }) placeholder = 'Paste image link here';\n @property({ type: String, reflect: true, attribute: true }) altPlaceholder = 'Describe the image';\n @property({ type: String, reflect: true, attribute: true }) captionPlaceholder = 'Add a caption (optional)';\n @property({ type: Number, reflect: true, attribute: 'maxfilesize' }) maxFileSize = 2 * 1024 * 1024;\n @property({ type: Boolean, reflect: true, attribute: 'uploadfromcomputer' }) uploadFromComputer = false;\n\n @state() private srcValue = '';\n @state() private altValue = '';\n @state() private captionValue = '';\n @state() private hasActiveImage = false;\n @state() private uploadedFileName = '';\n @state() private errorMessage = '';\n @state() private popoverStyle = '';\n\n private selectionRange: Range | null = null;\n private activeFigure: HTMLElement | null = null;\n\n private ignoreBlur = false;\n private isApplying = false;\n\n private selectedFigure: HTMLElement | null = null;\n private resizeOverlay: HTMLElement | null = null;\n private dragStartX = 0;\n private dragStartWidth = 0;\n private dragDir = '';\n private isDragging = false;\n private trackingRaf = 0;\n\n connectedCallback() {\n super.connectedCallback();\n\n this.injectCss(`\n nile-popover.rte-image-popover::part(popover) {\n min-width: 340px;\n max-width: 420px;\n background: white;\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-componentcolors-utility-gray-400));\n border-radius: 8px;\n padding: 0;\n gap: 0;\n overflow: hidden;\n height: auto;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);\n }\n\n .image-popup-wrap {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n }\n\n .image-popup-wrap nile-input {\n width: 100%;\n }\n\n .image-popup-wrap .image-upload-row {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n width: 100%;\n }\n\n .image-popup-wrap .image-upload-row nile-button {\n flex-shrink: 0;\n }\n\n .image-popup-wrap .image-upload-filename {\n font-size: 12px;\n color: var(--nile-colors-neutral-600, var(--ng-colors-text-secondary));\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n }\n\n .image-popup-wrap .image-error {\n font-size: 12px;\n color: var(--nile-colors-error-600, var(--ng-colors-text-error-primary-600));\n }\n\n .image-popup-wrap .image-divider-row {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));\n font-size: 12px;\n }\n\n .image-popup-wrap .image-divider-row::before,\n .image-popup-wrap .image-divider-row::after {\n content: '';\n flex: 1;\n height: 1px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n }\n\n .image-popup-wrap .image-actions-row {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n width: 100%;\n }\n\n nile-button.rte-image-button::part(base) {\n border: none;\n height: 32px;\n width: 32px;\n }\n\n nile-rte-image input[type='file'] {\n display: none;\n }\n\n .rte-image-resize-overlay {\n position: fixed;\n z-index: 999;\n pointer-events: none;\n border: 2px solid var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n box-sizing: border-box;\n }\n\n .rte-image-resize-overlay .rte-resize-handle {\n position: absolute;\n width: 12px;\n height: 12px;\n background: var(--nile-colors-white-base, #fff);\n border: 2px solid var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n border-radius: 50%;\n pointer-events: auto;\n box-sizing: border-box;\n }\n\n .rte-image-resize-overlay .rte-resize-handle[data-dir='nw'] { top: -7px; left: -7px; cursor: nwse-resize; }\n .rte-image-resize-overlay .rte-resize-handle[data-dir='ne'] { top: -7px; right: -7px; cursor: nesw-resize; }\n .rte-image-resize-overlay .rte-resize-handle[data-dir='sw'] { bottom: -7px; left: -7px; cursor: nesw-resize; }\n .rte-image-resize-overlay .rte-resize-handle[data-dir='se'] { bottom: -7px; right: -7px; cursor: nwse-resize; }\n\n .rte-image-resize-overlay .rte-image-align-bar {\n position: absolute;\n top: -44px;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n gap: 2px;\n padding: 4px;\n background: var(--nile-colors-white-base, #fff);\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n pointer-events: auto;\n }\n\n .rte-image-resize-overlay .rte-image-align-bar button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n border-radius: 6px;\n cursor: pointer;\n padding: 0;\n }\n\n .rte-image-resize-overlay .rte-image-align-bar button:hover {\n background: var(--nile-colors-neutral-200, var(--ng-componentcolors-utility-gray-200));\n }\n\n .rte-image-resize-overlay .rte-image-align-bar button[data-active] {\n background: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n }\n\n .rte-image-resize-overlay .rte-image-align-bar button nile-icon {\n pointer-events: none;\n }\n\n .rte-image-resize-overlay .rte-resize-size-label {\n position: absolute;\n bottom: -26px;\n right: 0;\n background: var(--nile-colors-dark-900, #101828);\n color: #fff;\n font-size: 11px;\n line-height: 1;\n padding: 4px 6px;\n border-radius: 4px;\n white-space: nowrap;\n pointer-events: none;\n }\n `);\n }\n\n private injectCss(cssText: string) {\n if (this.querySelector('style[data-rte-image-style]')) return;\n const style = document.createElement('style');\n style.setAttribute('data-rte-image-style', 'true');\n style.textContent = cssText;\n this.insertBefore(style, this.firstChild);\n }\n\n protected updated(changed: Map<string, any>) {\n if (changed.has('editorEl')) {\n const prev = changed.get('editorEl') as HTMLElement | undefined;\n prev?.removeEventListener('click', this.onEditorImageClick);\n prev?.removeEventListener('dblclick', this.onEditorImageDblClick);\n prev?.removeEventListener('input', this.onEditorInput);\n prev?.removeEventListener('paste', this.onEditorImagePaste);\n this.editorEl?.addEventListener('click', this.onEditorImageClick);\n this.editorEl?.addEventListener('dblclick', this.onEditorImageDblClick);\n this.editorEl?.addEventListener('input', this.onEditorInput);\n this.editorEl?.addEventListener('paste', this.onEditorImagePaste);\n }\n if (changed.has('disabled') && this.disabled) {\n this.deselectImage();\n }\n }\n\n disconnectedCallback(): void {\n this.editorEl?.removeEventListener('click', this.onEditorImageClick);\n this.editorEl?.removeEventListener('dblclick', this.onEditorImageDblClick);\n this.editorEl?.removeEventListener('input', this.onEditorInput);\n this.editorEl?.removeEventListener('paste', this.onEditorImagePaste);\n window.removeEventListener('scroll', this.onScroll, true);\n this.deselectImage();\n super.disconnectedCallback();\n }\n\n private onEditorInput = () => {\n // content edits can remove or reflow the figure\n if (this.selectedFigure && !this.selectedFigure.isConnected) {\n this.deselectImage();\n } else {\n this.updateOverlayPosition();\n }\n };\n\n private onEditorImagePaste = (e: ClipboardEvent) => {\n if (this.disabled) return;\n\n const items = Array.from(e.clipboardData?.items ?? []);\n const imageFiles = items\n .filter(i => i.kind === 'file' && i.type.startsWith('image/'))\n .map(i => i.getAsFile())\n .filter((f): f is File => !!f);\n if (!imageFiles.length) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n for (const file of imageFiles) {\n if (this.maxFileSize > 0 && file.size > this.maxFileSize) {\n console.warn(\n `nile-rte-image: pasted image \"${file.name}\" skipped — exceeds the ${this.maxFileSize} byte limit`\n );\n continue;\n }\n const reader = new FileReader();\n reader.onload = () => {\n this.insertPastedImage(\n String(reader.result || ''),\n file.name.replace(/\\.[^.]+$/, '')\n );\n };\n reader.readAsDataURL(file);\n }\n };\n\n private insertPastedImage(src: string, alt: string) {\n if (!src.startsWith('data:image/')) return;\n\n let range: Range;\n const sel = document.getSelection();\n if (\n sel &&\n sel.rangeCount > 0 &&\n this.editorEl.contains(sel.getRangeAt(0).commonAncestorContainer)\n ) {\n range = sel.getRangeAt(0).cloneRange();\n } else {\n range = document.createRange();\n range.selectNodeContents(this.editorEl);\n range.collapse(false);\n }\n\n const figure = this.buildFigure(src, alt);\n this.insertFigureAt(range, figure);\n this.emit(src);\n }\n\n private isSafeSrc(src: string): boolean {\n return /^(https?:\\/\\/|data:image\\/|blob:|\\/)/i.test(src);\n }\n\n private normalizeSrc(src: string): string {\n if (this.isSafeSrc(src)) return src;\n if (/^[a-z][a-z0-9+.-]*:/i.test(src)) return '';\n return `https://${src}`;\n }\n\n private getSelectionRect(): DOMRect | null {\n if (!this.selectionRange) return null;\n\n let rect = this.selectionRange.getBoundingClientRect();\n if (rect.width === 0 && rect.height === 0) {\n const span = document.createElement('span');\n span.textContent = '\\u200b';\n const tempRange = this.selectionRange.cloneRange();\n tempRange.insertNode(span);\n rect = span.getBoundingClientRect();\n span.remove();\n }\n return rect;\n }\n\n private positionPopover(anchorRect?: DOMRect | null) {\n const rect = anchorRect ?? this.getSelectionRect();\n if (!rect) return;\n\n const half = 170;\n const centerX = Math.min(\n Math.max(rect.left + rect.width / 2, half + 8),\n window.innerWidth - half - 8\n );\n\n this.popoverStyle = `\n position: fixed;\n top: ${rect.bottom + 8}px;\n left: ${centerX}px;\n transform: translateX(-50%);\n z-index: 1000;\n `;\n }\n\n private onScroll = () => {\n this.closePopover();\n };\n\n private openPopover() {\n requestAnimationFrame(() => {\n const pop = this.querySelector('nile-popover') as any;\n pop && (pop.isShow = true);\n window.addEventListener('scroll', this.onScroll, true);\n });\n }\n\n private closePopover() {\n const pop = this.querySelector('nile-popover') as any;\n pop && (pop.isShow = false);\n\n window.removeEventListener('scroll', this.onScroll, true);\n\n this.srcValue = '';\n this.altValue = '';\n this.captionValue = '';\n this.uploadedFileName = '';\n this.errorMessage = '';\n this.selectionRange = null;\n this.activeFigure = null;\n this.hasActiveImage = false;\n this.popoverStyle = '';\n }\n\n private onEditorImageClick = (e: MouseEvent) => {\n if (this.disabled) return;\n const target = e.target as HTMLElement;\n const figure = target.closest?.('figure.rte-image') as HTMLElement | null;\n if (!figure || !this.editorEl.contains(figure)) {\n this.deselectImage();\n return;\n }\n\n e.preventDefault();\n this.selectImage(figure);\n };\n\n private onEditorImageDblClick = (e: MouseEvent) => {\n if (this.disabled) return;\n const target = e.target as HTMLElement;\n const figure = target.closest?.('figure.rte-image') as HTMLElement | null;\n if (!figure || !this.editorEl.contains(figure)) return;\n\n e.preventDefault();\n this.openEditFor(figure);\n };\n\n private openEditFor(figure: HTMLElement, anchorRect?: DOMRect | null) {\n const range = document.createRange();\n range.selectNode(figure);\n this.selectionRange = range;\n\n this.activeFigure = figure;\n this.hasActiveImage = true;\n\n const img = figure.querySelector('img');\n const figcaption = figure.querySelector('figcaption');\n this.srcValue = img?.getAttribute('src') || '';\n this.altValue = img?.getAttribute('alt') || '';\n this.captionValue = figcaption?.textContent || '';\n this.uploadedFileName = '';\n this.errorMessage = '';\n\n this.positionPopover(anchorRect ?? figure.getBoundingClientRect());\n this.openPopover();\n }\n\n private getToolbarButtonRect(): DOMRect | null {\n const btn = this.querySelector('nile-button.rte-image-button');\n return btn ? btn.getBoundingClientRect() : null;\n }\n\n // ---------- resize ----------\n\n private selectImage(figure: HTMLElement) {\n if (this.selectedFigure === figure) {\n this.updateOverlayPosition();\n return;\n }\n this.deselectImage();\n this.selectedFigure = figure;\n\n const img = figure.querySelector('img');\n if (img && !img.complete) {\n img.addEventListener('load', this.onSelectedImageLoad, { once: true });\n }\n\n this.buildOverlay();\n this.syncAlignBar();\n this.updateOverlayPosition();\n this.startOverlayTracking();\n\n document.addEventListener('mousedown', this.onDocMousedown, true);\n document.addEventListener('keydown', this.onDocKeydown, true);\n }\n\n private deselectImage() {\n if (!this.selectedFigure && !this.resizeOverlay) return;\n this.selectedFigure = null;\n this.resizeOverlay?.remove();\n this.resizeOverlay = null;\n this.isDragging = false;\n this.stopOverlayTracking();\n\n document.removeEventListener('mousedown', this.onDocMousedown, true);\n document.removeEventListener('keydown', this.onDocKeydown, true);\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.onDragEnd);\n }\n\n private onDocKeydown = (e: KeyboardEvent) => {\n if (!this.selectedFigure) return;\n\n if (e.key === 'Escape') {\n this.deselectImage();\n return;\n }\n if (e.key !== 'Backspace' && e.key !== 'Delete') return;\n\n // don't hijack deletions typed into inputs (e.g. the edit popover)\n const target = e.target as HTMLElement;\n if (target?.closest?.('input, textarea, nile-input, nile-popover')) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n const figure = this.selectedFigure;\n this.deselectImage();\n const parent = figure.parentNode;\n figure.remove();\n if (parent instanceof HTMLElement && !parent.hasChildNodes()) {\n parent.innerHTML = '<br>';\n }\n this.emit('');\n };\n\n private onSelectedImageLoad = () => {\n this.updateOverlayPosition();\n };\n\n // re-sync the overlay to the image every frame while selected — this keeps\n // it glued to the image through scrolling (any container), layout shifts,\n // and image loads without needing to enumerate those events\n private startOverlayTracking() {\n this.stopOverlayTracking();\n const tick = () => {\n if (!this.selectedFigure || !this.resizeOverlay) return;\n if (!this.selectedFigure.isConnected) {\n this.deselectImage();\n return;\n }\n this.updateOverlayPosition();\n this.trackingRaf = requestAnimationFrame(tick);\n };\n this.trackingRaf = requestAnimationFrame(tick);\n }\n\n private stopOverlayTracking() {\n if (this.trackingRaf !== 0) {\n cancelAnimationFrame(this.trackingRaf);\n this.trackingRaf = 0;\n }\n }\n\n private onDocMousedown = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n if (this.resizeOverlay?.contains(target)) return;\n if (this.selectedFigure?.contains(target)) return;\n // clicks on our own UI (toolbar image button, popover) must not clear the\n // selection, otherwise pressing the toolbar button while an image is\n // selected would drop into insert mode instead of edit mode\n if (this.contains(target)) return;\n this.deselectImage();\n };\n\n private buildOverlay() {\n const overlay = document.createElement('div');\n overlay.className = 'rte-image-resize-overlay';\n\n for (const dir of ['nw', 'ne', 'sw', 'se']) {\n const handle = document.createElement('div');\n handle.className = 'rte-resize-handle';\n handle.dataset.dir = dir;\n handle.addEventListener('mousedown', this.onHandleMousedown);\n overlay.appendChild(handle);\n }\n\n const label = document.createElement('span');\n label.className = 'rte-resize-size-label';\n overlay.appendChild(label);\n\n const alignBar = document.createElement('div');\n alignBar.className = 'rte-image-align-bar';\n const alignments: Array<{ dir: string; icon: string; title: string }> = [\n { dir: 'left', icon: 'format_align_left', title: 'Align left' },\n { dir: 'center', icon: 'format_align_middle', title: 'Align center' },\n { dir: 'right', icon: 'format_align_right', title: 'Align right' },\n { dir: 'justify', icon: 'format_align_justify', title: 'Full width' },\n ];\n for (const { dir, icon, title } of alignments) {\n const btn = document.createElement('button');\n btn.type = 'button';\n btn.dataset.dir = dir;\n btn.title = title;\n btn.setAttribute('aria-label', title);\n btn.innerHTML = `<nile-icon name=\"${icon}\" size=\"18\"></nile-icon>`;\n btn.addEventListener('mousedown', e => e.preventDefault());\n btn.addEventListener('click', this.onAlignClick);\n alignBar.appendChild(btn);\n }\n overlay.appendChild(alignBar);\n\n // append to <body>: a transformed/filtered ancestor (drawer, modal,\n // animated panel) would otherwise become the containing block for\n // position:fixed and the overlay would render far from the image\n document.body.appendChild(overlay);\n this.resizeOverlay = overlay;\n }\n\n private updateOverlayPosition() {\n if (!this.resizeOverlay || !this.selectedFigure) return;\n const img = this.selectedFigure.querySelector('img');\n if (!img) {\n this.deselectImage();\n return;\n }\n const rect = img.getBoundingClientRect();\n this.resizeOverlay.style.top = `${rect.top}px`;\n this.resizeOverlay.style.left = `${rect.left}px`;\n this.resizeOverlay.style.width = `${rect.width}px`;\n this.resizeOverlay.style.height = `${rect.height}px`;\n\n // keep the align bar reachable: above the image by default, flipped to\n // just inside the top edge when the image touches the viewport top\n const bar = this.resizeOverlay.querySelector(\n '.rte-image-align-bar'\n ) as HTMLElement | null;\n if (bar) {\n if (rect.top < 56) {\n bar.style.top = '8px';\n } else {\n bar.style.top = '-44px';\n }\n }\n\n const label = this.resizeOverlay.querySelector(\n '.rte-resize-size-label'\n ) as HTMLElement | null;\n if (label) {\n label.textContent = `${Math.round(rect.width)} × ${Math.round(rect.height)}`;\n label.style.display = this.isDragging ? '' : 'none';\n }\n }\n\n private onAlignClick = (e: Event) => {\n if (!this.selectedFigure) return;\n const dir = (e.currentTarget as HTMLElement).dataset.dir || 'left';\n\n if (dir === 'left') {\n this.selectedFigure.removeAttribute('data-align');\n } else {\n this.selectedFigure.setAttribute('data-align', dir);\n }\n this.syncAlignBar();\n this.updateOverlayPosition();\n\n const img = this.selectedFigure.querySelector('img');\n this.emit(img?.getAttribute('src') || '');\n };\n\n private syncAlignBar() {\n if (!this.resizeOverlay || !this.selectedFigure) return;\n const current = this.selectedFigure.getAttribute('data-align') || 'left';\n this.resizeOverlay\n .querySelectorAll<HTMLElement>('.rte-image-align-bar button')\n .forEach(btn => {\n btn.toggleAttribute('data-active', btn.dataset.dir === current);\n });\n }\n\n private onHandleMousedown = (e: MouseEvent) => {\n if (this.disabled || !this.selectedFigure) return;\n e.preventDefault();\n e.stopPropagation();\n\n const img = this.selectedFigure.querySelector('img');\n if (!img) return;\n\n // a full-width image can't be hand-resized — dragging implies a custom\n // width, so drop back to default alignment first\n if (this.selectedFigure.getAttribute('data-align') === 'justify') {\n this.selectedFigure.removeAttribute('data-align');\n this.syncAlignBar();\n }\n\n this.isDragging = true;\n this.dragDir = (e.currentTarget as HTMLElement).dataset.dir || 'se';\n this.dragStartX = e.clientX;\n this.dragStartWidth = img.getBoundingClientRect().width;\n\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.onDragEnd);\n };\n\n private onDragMove = (e: MouseEvent) => {\n if (!this.isDragging || !this.selectedFigure) return;\n const img = this.selectedFigure.querySelector('img');\n if (!img) return;\n\n const dx = e.clientX - this.dragStartX;\n const growsRight = this.dragDir === 'ne' || this.dragDir === 'se';\n let width = this.dragStartWidth + (growsRight ? dx : -dx);\n\n const maxWidth = this.getEditorContentWidth();\n width = Math.max(48, Math.min(width, maxWidth));\n\n img.setAttribute('width', String(Math.round(width)));\n this.updateOverlayPosition();\n };\n\n private onDragEnd = () => {\n if (!this.isDragging) return;\n this.isDragging = false;\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.onDragEnd);\n this.updateOverlayPosition();\n\n const img = this.selectedFigure?.querySelector('img');\n this.dispatchEvent(\n new CustomEvent('nile-image-changed', {\n detail: {\n src: img?.getAttribute('src') || '',\n alt: img?.getAttribute('alt') || '',\n caption:\n this.selectedFigure?.querySelector('figcaption')?.textContent || '',\n width: img ? Number(img.getAttribute('width')) || null : null,\n },\n bubbles: true,\n composed: true,\n })\n );\n };\n\n private getEditorContentWidth(): number {\n const style = getComputedStyle(this.editorEl);\n return (\n this.editorEl.clientWidth -\n parseFloat(style.paddingLeft || '0') -\n parseFloat(style.paddingRight || '0') || Infinity\n );\n }\n\n private onOpen = () => {\n if (this.disabled) return;\n\n if (this.selectedFigure) {\n this.openEditFor(this.selectedFigure, this.getToolbarButtonRect());\n return;\n }\n\n const sel = document.getSelection();\n if (\n sel &&\n sel.rangeCount > 0 &&\n this.editorEl.contains(sel.getRangeAt(0).commonAncestorContainer)\n ) {\n this.selectionRange = sel.getRangeAt(0).cloneRange();\n } else {\n const range = document.createRange();\n range.selectNodeContents(this.editorEl);\n range.collapse(false);\n this.selectionRange = range;\n }\n\n this.activeFigure = null;\n this.hasActiveImage = false;\n this.srcValue = '';\n this.altValue = '';\n this.captionValue = '';\n this.uploadedFileName = '';\n this.errorMessage = '';\n this.positionPopover(this.getToolbarButtonRect());\n this.openPopover();\n\n requestAnimationFrame(() => {\n const input = this.querySelector('nile-input');\n (input as any)?.focus();\n });\n };\n\n private onInputKeydown = (e: KeyboardEvent) => {\n if (e.key !== 'Escape' && e.key !== 'Enter') return;\n e.preventDefault();\n e.stopPropagation();\n if (e.key === 'Escape') {\n this.closePopover();\n return;\n }\n this.isApplying = true;\n try {\n this.applyImage();\n } finally {\n this.isApplying = false;\n }\n };\n\n private onInputBlur = () => {\n if (this.ignoreBlur || this.isApplying) return;\n requestAnimationFrame(() => {\n if (this.ignoreBlur || this.isApplying) return;\n const pop = this.querySelector('nile-popover');\n if (pop?.matches(':focus-within')) return;\n this.closePopover();\n });\n };\n\n private onSrcInput = (e: CustomEvent) => {\n this.srcValue = e.detail.value;\n this.uploadedFileName = '';\n this.errorMessage = '';\n };\n\n private onAltInput = (e: CustomEvent) => {\n this.altValue = e.detail.value;\n };\n\n private onCaptionInput = (e: CustomEvent) => {\n this.captionValue = e.detail.value;\n };\n\n private onPopoverMousedown = () => {\n this.ignoreBlur = true;\n };\n\n private onPopoverMouseup = () => {\n this.ignoreBlur = false;\n };\n\n private onToolbarButtonMousedown = (e: Event) => {\n e.preventDefault();\n };\n\n private onUploadClick = () => {\n // keep the popover open while the OS file dialog steals focus\n this.ignoreBlur = true;\n const fileInput = this.querySelector(\n 'input[type=\"file\"]'\n ) as HTMLInputElement | null;\n fileInput?.click();\n window.addEventListener(\n 'focus',\n () => {\n setTimeout(() => {\n this.ignoreBlur = false;\n }, 200);\n },\n { once: true }\n );\n };\n\n private onFileChange = (e: Event) => {\n const input = e.target as HTMLInputElement;\n const file = input.files?.[0];\n input.value = '';\n if (!file) return;\n\n if (!file.type.startsWith('image/')) {\n this.errorMessage = 'Only image files are supported';\n return;\n }\n if (this.maxFileSize > 0 && file.size > this.maxFileSize) {\n const mb = (this.maxFileSize / (1024 * 1024)).toFixed(1);\n this.errorMessage = `File is too large. Maximum size is ${mb} MB`;\n return;\n }\n\n const reader = new FileReader();\n reader.onload = () => {\n this.srcValue = String(reader.result || '');\n this.uploadedFileName = file.name;\n this.errorMessage = '';\n if (!this.altValue) {\n this.altValue = file.name.replace(/\\.[^.]+$/, '');\n }\n };\n reader.onerror = () => {\n this.errorMessage = 'Could not read the selected file';\n };\n reader.readAsDataURL(file);\n };\n\n private onApplyClick = () => {\n this.isApplying = true;\n this.applyImage();\n this.isApplying = false;\n this.ignoreBlur = false;\n };\n\n private onRemoveClick = () => {\n this.isApplying = true;\n this.removeImage();\n this.isApplying = false;\n this.ignoreBlur = false;\n };\n\n private buildFigure(src: string, alt = '', caption = ''): HTMLElement {\n const figure = document.createElement('figure');\n figure.className = 'rte-image';\n figure.setAttribute('contenteditable', 'false');\n\n const img = document.createElement('img');\n img.src = src;\n if (alt.trim()) img.alt = alt.trim();\n figure.appendChild(img);\n\n if (caption.trim()) {\n const figcaption = document.createElement('figcaption');\n figcaption.textContent = caption.trim();\n figure.appendChild(figcaption);\n }\n return figure;\n }\n\n private insertFigureAt(insertRange: Range, figure: HTMLElement) {\n const sel = document.getSelection();\n if (!sel) return;\n\n // a <figure> is not valid inside <p>/<h*>, so place it after the\n // block that holds the caret instead of splitting it at the range\n let block: HTMLElement | null = null;\n let n: Node | null = insertRange.startContainer;\n while (n && n !== this.editorEl) {\n if (\n n instanceof HTMLElement &&\n /^(P|H[1-6]|UL|OL|BLOCKQUOTE|PRE|TABLE|FIGURE|DIV)$/.test(n.tagName)\n ) {\n block = n;\n break;\n }\n n = n.parentNode;\n }\n // an empty paragraph (the default '<p><br></p>' of a fresh editor) would\n // otherwise remain above the image as a blank gap — take its place instead\n const isEmptyBlock =\n block &&\n /^(P|H[1-6])$/.test(block.tagName) &&\n (block.textContent ?? '').replace(/\\u200B/g, '').trim() === '' &&\n !block.querySelector('img');\n\n if (block?.parentNode) {\n if (isEmptyBlock) {\n block.parentNode.insertBefore(figure, block);\n block.remove();\n } else {\n block.parentNode.insertBefore(figure, block.nextSibling);\n }\n } else {\n this.editorEl.appendChild(figure);\n }\n\n // keep a paragraph after the image so typing can continue below it\n let after = figure.nextElementSibling;\n if (!after) {\n const p = document.createElement('p');\n p.innerHTML = '<br>';\n figure.parentNode?.insertBefore(p, figure.nextSibling);\n after = p;\n }\n\n const range = document.createRange();\n range.setStart(after, 0);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n private applyImage() {\n const raw = this.srcValue.trim();\n if (!raw) {\n if (this.uploadFromComputer) {\n this.errorMessage = 'Enter an image link or upload a file';\n }\n return;\n }\n\n const src = this.normalizeSrc(raw);\n if (!src) {\n this.errorMessage = 'Enter a valid image link';\n return;\n }\n\n if (this.activeFigure) {\n const img = this.activeFigure.querySelector('img');\n if (img) {\n img.src = src;\n if (this.altValue.trim()) {\n img.alt = this.altValue.trim();\n } else {\n img.removeAttribute('alt');\n }\n }\n\n let figcaption = this.activeFigure.querySelector('figcaption');\n if (this.captionValue.trim()) {\n if (!figcaption) {\n figcaption = document.createElement('figcaption');\n this.activeFigure.appendChild(figcaption);\n }\n figcaption.textContent = this.captionValue.trim();\n } else {\n figcaption?.remove();\n }\n\n this.emit(src);\n this.closePopover();\n requestAnimationFrame(() => this.updateOverlayPosition());\n return;\n }\n\n if (!(this.selectionRange instanceof Range)) return;\n\n this.editorEl.focus();\n\n const sel = document.getSelection();\n if (!sel) return;\n sel.removeAllRanges();\n sel.addRange(this.selectionRange);\n\n const figure = this.buildFigure(src, this.altValue, this.captionValue);\n this.insertFigureAt(this.selectionRange, figure);\n\n this.emit(src);\n this.closePopover();\n }\n\n private removeImage() {\n if (!this.activeFigure) return;\n this.deselectImage();\n const parent = this.activeFigure.parentNode;\n this.activeFigure.remove();\n if (parent instanceof HTMLElement && !parent.hasChildNodes()) {\n parent.innerHTML = '<br>';\n }\n this.emit('');\n this.closePopover();\n }\n\n private emit(src: string) {\n this.dispatchEvent(\n new CustomEvent('nile-image-changed', {\n detail: {\n src,\n alt: this.altValue.trim(),\n caption: this.captionValue.trim(),\n },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n render() {\n const iconColor = this.disabled\n ? 'var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))'\n : 'var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))';\n\n return html`\n <nile-lite-tooltip content=${this.label}>\n <nile-button\n variant=\"tertiary\"\n size=\"small\"\n ?disabled=${this.disabled}\n @mousedown=${this.onToolbarButtonMousedown}\n @click=${this.onOpen}\n class=\"rte-image-button\"\n >\n <nile-glyph name=\"image\" color=${iconColor}></nile-glyph>\n </nile-button>\n </nile-lite-tooltip>\n\n <nile-popover\n class=\"rte-image-popover\"\n .arrow=${false}\n style=${this.popoverStyle}\n @mousedown=${this.onPopoverMousedown}\n @mouseup=${this.onPopoverMouseup}\n >\n <div class=\"image-popup-wrap\">\n <nile-input\n label=\"Image URL\"\n placeholder=${this.placeholder}\n .value=${this.srcValue}\n @nile-input=${this.onSrcInput}\n @keydown=${this.onInputKeydown}\n @nile-blur=${this.onInputBlur}\n ></nile-input>\n\n ${this.uploadFromComputer\n ? html`\n <div class=\"image-divider-row\" part=\"divider\">or</div>\n\n <div class=\"image-upload-row\" part=\"upload-row\">\n <nile-button\n part=\"upload-button\"\n size=\"small\"\n variant=\"secondary\"\n @click=${this.onUploadClick}\n >\n <nile-glyph name=\"upload\" slot=\"prefix\"></nile-glyph>\n Upload from computer\n </nile-button>\n ${this.uploadedFileName\n ? html`<span class=\"image-upload-filename\" part=\"upload-filename\"\n >${this.uploadedFileName}</span\n >`\n : null}\n </div>\n <input\n part=\"upload-input\"\n type=\"file\"\n accept=\"image/*\"\n @change=${this.onFileChange}\n />\n `\n : null}\n\n ${this.errorMessage\n ? html`<span class=\"image-error\" part=\"error\">${this.errorMessage}</span>`\n : null}\n\n <nile-input\n label=\"Alt text\"\n placeholder=${this.altPlaceholder}\n .value=${this.altValue}\n @nile-input=${this.onAltInput}\n @keydown=${this.onInputKeydown}\n @nile-blur=${this.onInputBlur}\n part=\"alt-input\"\n ></nile-input>\n\n <nile-input\n label=\"Caption\"\n placeholder=${this.captionPlaceholder}\n .value=${this.captionValue}\n @nile-input=${this.onCaptionInput}\n @keydown=${this.onInputKeydown}\n @nile-blur=${this.onInputBlur}\n part=\"caption-input\"\n ></nile-input>\n\n <div class=\"image-actions-row\" part=\"actions-row\">\n ${this.hasActiveImage\n ? html`\n <nile-button\n part=\"remove-button\"\n size=\"small\"\n variant=\"secondary\"\n @click=${this.onRemoveClick}\n >\n Remove\n </nile-button>\n `\n : null}\n <nile-button part=\"apply-button\" size=\"small\" variant=\"primary\" @click=${this.onApplyClick}>\n ${this.hasActiveImage ? 'Update' : 'Insert'}\n </nile-button>\n </div>\n </div>\n </nile-popover>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-rte-image': NileRteImage;\n }\n}\n"]}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/** Curated emoji set for the ":" picker. Keys are the search names. */
|
|
2
|
+
export const EMOJI = [
|
|
3
|
+
{ name: 'smile', char: '😄' },
|
|
4
|
+
{ name: 'grin', char: '😁' },
|
|
5
|
+
{ name: 'joy', char: '😂' },
|
|
6
|
+
{ name: 'rofl', char: '🤣' },
|
|
7
|
+
{ name: 'slight_smile', char: '🙂' },
|
|
8
|
+
{ name: 'wink', char: '😉' },
|
|
9
|
+
{ name: 'blush', char: '😊' },
|
|
10
|
+
{ name: 'heart_eyes', char: '😍' },
|
|
11
|
+
{ name: 'kiss', char: '😘' },
|
|
12
|
+
{ name: 'thinking', char: '🤔' },
|
|
13
|
+
{ name: 'neutral', char: '😐' },
|
|
14
|
+
{ name: 'smirk', char: '😏' },
|
|
15
|
+
{ name: 'unamused', char: '😒' },
|
|
16
|
+
{ name: 'roll_eyes', char: '🙄' },
|
|
17
|
+
{ name: 'grimacing', char: '😬' },
|
|
18
|
+
{ name: 'relieved', char: '😌' },
|
|
19
|
+
{ name: 'pensive', char: '😔' },
|
|
20
|
+
{ name: 'sleepy', char: '😴' },
|
|
21
|
+
{ name: 'mask', char: '😷' },
|
|
22
|
+
{ name: 'sunglasses', char: '😎' },
|
|
23
|
+
{ name: 'nerd', char: '🤓' },
|
|
24
|
+
{ name: 'confused', char: '😕' },
|
|
25
|
+
{ name: 'worried', char: '😟' },
|
|
26
|
+
{ name: 'frown', char: '🙁' },
|
|
27
|
+
{ name: 'open_mouth', char: '😮' },
|
|
28
|
+
{ name: 'astonished', char: '😲' },
|
|
29
|
+
{ name: 'scream', char: '😱' },
|
|
30
|
+
{ name: 'cry', char: '😢' },
|
|
31
|
+
{ name: 'sob', char: '😭' },
|
|
32
|
+
{ name: 'sweat', char: '😓' },
|
|
33
|
+
{ name: 'angry', char: '😠' },
|
|
34
|
+
{ name: 'rage', char: '😡' },
|
|
35
|
+
{ name: 'exploding_head', char: '🤯' },
|
|
36
|
+
{ name: 'party', char: '🥳' },
|
|
37
|
+
{ name: 'cowboy', char: '🤠' },
|
|
38
|
+
{ name: 'clown', char: '🤡' },
|
|
39
|
+
{ name: 'ghost', char: '👻' },
|
|
40
|
+
{ name: 'alien', char: '👽' },
|
|
41
|
+
{ name: 'robot', char: '🤖' },
|
|
42
|
+
{ name: 'poop', char: '💩' },
|
|
43
|
+
{ name: 'skull', char: '💀' },
|
|
44
|
+
{ name: 'heart', char: '❤️' },
|
|
45
|
+
{ name: 'broken_heart', char: '💔' },
|
|
46
|
+
{ name: 'sparkling_heart', char: '💖' },
|
|
47
|
+
{ name: 'fire', char: '🔥' },
|
|
48
|
+
{ name: 'sparkles', char: '✨' },
|
|
49
|
+
{ name: 'star', char: '⭐' },
|
|
50
|
+
{ name: 'boom', char: '💥' },
|
|
51
|
+
{ name: 'zap', char: '⚡' },
|
|
52
|
+
{ name: 'rainbow', char: '🌈' },
|
|
53
|
+
{ name: 'sun', char: '☀️' },
|
|
54
|
+
{ name: 'cloud', char: '☁️' },
|
|
55
|
+
{ name: 'rain', char: '🌧️' },
|
|
56
|
+
{ name: 'snowflake', char: '❄️' },
|
|
57
|
+
{ name: 'thumbsup', char: '👍' },
|
|
58
|
+
{ name: 'thumbsdown', char: '👎' },
|
|
59
|
+
{ name: 'ok_hand', char: '👌' },
|
|
60
|
+
{ name: 'clap', char: '👏' },
|
|
61
|
+
{ name: 'wave', char: '👋' },
|
|
62
|
+
{ name: 'raised_hands', char: '🙌' },
|
|
63
|
+
{ name: 'pray', char: '🙏' },
|
|
64
|
+
{ name: 'muscle', char: '💪' },
|
|
65
|
+
{ name: 'point_right', char: '👉' },
|
|
66
|
+
{ name: 'point_left', char: '👈' },
|
|
67
|
+
{ name: 'point_up', char: '☝️' },
|
|
68
|
+
{ name: 'point_down', char: '👇' },
|
|
69
|
+
{ name: 'handshake', char: '🤝' },
|
|
70
|
+
{ name: 'crossed_fingers', char: '🤞' },
|
|
71
|
+
{ name: 'victory', char: '✌️' },
|
|
72
|
+
{ name: 'eyes', char: '👀' },
|
|
73
|
+
{ name: 'brain', char: '🧠' },
|
|
74
|
+
{ name: 'tada', char: '🎉' },
|
|
75
|
+
{ name: 'confetti', char: '🎊' },
|
|
76
|
+
{ name: 'balloon', char: '🎈' },
|
|
77
|
+
{ name: 'gift', char: '🎁' },
|
|
78
|
+
{ name: 'trophy', char: '🏆' },
|
|
79
|
+
{ name: 'medal', char: '🥇' },
|
|
80
|
+
{ name: 'rocket', char: '🚀' },
|
|
81
|
+
{ name: 'airplane', char: '✈️' },
|
|
82
|
+
{ name: 'car', char: '🚗' },
|
|
83
|
+
{ name: 'bike', char: '🚲' },
|
|
84
|
+
{ name: 'hourglass', char: '⏳' },
|
|
85
|
+
{ name: 'clock', char: '🕐' },
|
|
86
|
+
{ name: 'alarm', char: '⏰' },
|
|
87
|
+
{ name: 'calendar', char: '📅' },
|
|
88
|
+
{ name: 'pushpin', char: '📌' },
|
|
89
|
+
{ name: 'paperclip', char: '📎' },
|
|
90
|
+
{ name: 'scissors', char: '✂️' },
|
|
91
|
+
{ name: 'pencil', char: '✏️' },
|
|
92
|
+
{ name: 'memo', char: '📝' },
|
|
93
|
+
{ name: 'book', char: '📖' },
|
|
94
|
+
{ name: 'books', char: '📚' },
|
|
95
|
+
{ name: 'bulb', char: '💡' },
|
|
96
|
+
{ name: 'mag', char: '🔍' },
|
|
97
|
+
{ name: 'lock', char: '🔒' },
|
|
98
|
+
{ name: 'unlock', char: '🔓' },
|
|
99
|
+
{ name: 'key', char: '🔑' },
|
|
100
|
+
{ name: 'hammer', char: '🔨' },
|
|
101
|
+
{ name: 'wrench', char: '🔧' },
|
|
102
|
+
{ name: 'gear', char: '⚙️' },
|
|
103
|
+
{ name: 'link', char: '🔗' },
|
|
104
|
+
{ name: 'bell', char: '🔔' },
|
|
105
|
+
{ name: 'mega', char: '📣' },
|
|
106
|
+
{ name: 'email', char: '📧' },
|
|
107
|
+
{ name: 'phone', char: '📱' },
|
|
108
|
+
{ name: 'computer', char: '💻' },
|
|
109
|
+
{ name: 'bug', char: '🐛' },
|
|
110
|
+
{ name: 'check', char: '✅' },
|
|
111
|
+
{ name: 'x', char: '❌' },
|
|
112
|
+
{ name: 'warning', char: '⚠️' },
|
|
113
|
+
{ name: 'question', char: '❓' },
|
|
114
|
+
{ name: 'exclamation', char: '❗' },
|
|
115
|
+
{ name: 'hundred', char: '💯' },
|
|
116
|
+
{ name: 'money', char: '💰' },
|
|
117
|
+
{ name: 'chart_up', char: '📈' },
|
|
118
|
+
{ name: 'chart_down', char: '📉' },
|
|
119
|
+
{ name: 'coffee', char: '☕' },
|
|
120
|
+
{ name: 'beer', char: '🍺' },
|
|
121
|
+
{ name: 'pizza', char: '🍕' },
|
|
122
|
+
{ name: 'burger', char: '🍔' },
|
|
123
|
+
{ name: 'cake', char: '🎂' },
|
|
124
|
+
{ name: 'apple', char: '🍎' },
|
|
125
|
+
{ name: 'banana', char: '🍌' },
|
|
126
|
+
{ name: 'dog', char: '🐶' },
|
|
127
|
+
{ name: 'cat', char: '🐱' },
|
|
128
|
+
{ name: 'unicorn', char: '🦄' },
|
|
129
|
+
{ name: 'bee', char: '🐝' },
|
|
130
|
+
{ name: 'turtle', char: '🐢' },
|
|
131
|
+
{ name: 'penguin', char: '🐧' },
|
|
132
|
+
{ name: 'flower', char: '🌸' },
|
|
133
|
+
{ name: 'tree', char: '🌳' },
|
|
134
|
+
{ name: 'earth', char: '🌍' },
|
|
135
|
+
{ name: 'moon', char: '🌙' },
|
|
136
|
+
{ name: 'wave_water', char: '🌊' },
|
|
137
|
+
];
|
|
138
|
+
//# sourceMappingURL=emoji.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emoji.js","sourceRoot":"","sources":["../../../src/nile-wysiwyg-editor/emoji.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,CAAC,MAAM,KAAK,GAAqC;IACrD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE;IACpC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;IAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;IACjC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;IACjC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;IAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;IAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;IAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE;IACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE;IACpC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE;IACvC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE;IAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;IAC3B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE;IAC1B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;IAC7B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;IACjC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;IAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE;IACpC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE;IACnC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;IAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;IAClC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;IACjC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE;IACvC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE;IAChC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;IAC5B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;IACjC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;IAC5B,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;IACxB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE;IAC/B,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE;IAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;IAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;IAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;IAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5B,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;CACnC,CAAC","sourcesContent":["/** Curated emoji set for the \":\" picker. Keys are the search names. */\nexport const EMOJI: { name: string; char: string }[] = [\n { name: 'smile', char: '😄' },\n { name: 'grin', char: '😁' },\n { name: 'joy', char: '😂' },\n { name: 'rofl', char: '🤣' },\n { name: 'slight_smile', char: '🙂' },\n { name: 'wink', char: '😉' },\n { name: 'blush', char: '😊' },\n { name: 'heart_eyes', char: '😍' },\n { name: 'kiss', char: '😘' },\n { name: 'thinking', char: '🤔' },\n { name: 'neutral', char: '😐' },\n { name: 'smirk', char: '😏' },\n { name: 'unamused', char: '😒' },\n { name: 'roll_eyes', char: '🙄' },\n { name: 'grimacing', char: '😬' },\n { name: 'relieved', char: '😌' },\n { name: 'pensive', char: '😔' },\n { name: 'sleepy', char: '😴' },\n { name: 'mask', char: '😷' },\n { name: 'sunglasses', char: '😎' },\n { name: 'nerd', char: '🤓' },\n { name: 'confused', char: '😕' },\n { name: 'worried', char: '😟' },\n { name: 'frown', char: '🙁' },\n { name: 'open_mouth', char: '😮' },\n { name: 'astonished', char: '😲' },\n { name: 'scream', char: '😱' },\n { name: 'cry', char: '😢' },\n { name: 'sob', char: '😭' },\n { name: 'sweat', char: '😓' },\n { name: 'angry', char: '😠' },\n { name: 'rage', char: '😡' },\n { name: 'exploding_head', char: '🤯' },\n { name: 'party', char: '🥳' },\n { name: 'cowboy', char: '🤠' },\n { name: 'clown', char: '🤡' },\n { name: 'ghost', char: '👻' },\n { name: 'alien', char: '👽' },\n { name: 'robot', char: '🤖' },\n { name: 'poop', char: '💩' },\n { name: 'skull', char: '💀' },\n { name: 'heart', char: '❤️' },\n { name: 'broken_heart', char: '💔' },\n { name: 'sparkling_heart', char: '💖' },\n { name: 'fire', char: '🔥' },\n { name: 'sparkles', char: '✨' },\n { name: 'star', char: '⭐' },\n { name: 'boom', char: '💥' },\n { name: 'zap', char: '⚡' },\n { name: 'rainbow', char: '🌈' },\n { name: 'sun', char: '☀️' },\n { name: 'cloud', char: '☁️' },\n { name: 'rain', char: '🌧️' },\n { name: 'snowflake', char: '❄️' },\n { name: 'thumbsup', char: '👍' },\n { name: 'thumbsdown', char: '👎' },\n { name: 'ok_hand', char: '👌' },\n { name: 'clap', char: '👏' },\n { name: 'wave', char: '👋' },\n { name: 'raised_hands', char: '🙌' },\n { name: 'pray', char: '🙏' },\n { name: 'muscle', char: '💪' },\n { name: 'point_right', char: '👉' },\n { name: 'point_left', char: '👈' },\n { name: 'point_up', char: '☝️' },\n { name: 'point_down', char: '👇' },\n { name: 'handshake', char: '🤝' },\n { name: 'crossed_fingers', char: '🤞' },\n { name: 'victory', char: '✌️' },\n { name: 'eyes', char: '👀' },\n { name: 'brain', char: '🧠' },\n { name: 'tada', char: '🎉' },\n { name: 'confetti', char: '🎊' },\n { name: 'balloon', char: '🎈' },\n { name: 'gift', char: '🎁' },\n { name: 'trophy', char: '🏆' },\n { name: 'medal', char: '🥇' },\n { name: 'rocket', char: '🚀' },\n { name: 'airplane', char: '✈️' },\n { name: 'car', char: '🚗' },\n { name: 'bike', char: '🚲' },\n { name: 'hourglass', char: '⏳' },\n { name: 'clock', char: '🕐' },\n { name: 'alarm', char: '⏰' },\n { name: 'calendar', char: '📅' },\n { name: 'pushpin', char: '📌' },\n { name: 'paperclip', char: '📎' },\n { name: 'scissors', char: '✂️' },\n { name: 'pencil', char: '✏️' },\n { name: 'memo', char: '📝' },\n { name: 'book', char: '📖' },\n { name: 'books', char: '📚' },\n { name: 'bulb', char: '💡' },\n { name: 'mag', char: '🔍' },\n { name: 'lock', char: '🔒' },\n { name: 'unlock', char: '🔓' },\n { name: 'key', char: '🔑' },\n { name: 'hammer', char: '🔨' },\n { name: 'wrench', char: '🔧' },\n { name: 'gear', char: '⚙️' },\n { name: 'link', char: '🔗' },\n { name: 'bell', char: '🔔' },\n { name: 'mega', char: '📣' },\n { name: 'email', char: '📧' },\n { name: 'phone', char: '📱' },\n { name: 'computer', char: '💻' },\n { name: 'bug', char: '🐛' },\n { name: 'check', char: '✅' },\n { name: 'x', char: '❌' },\n { name: 'warning', char: '⚠️' },\n { name: 'question', char: '❓' },\n { name: 'exclamation', char: '❗' },\n { name: 'hundred', char: '💯' },\n { name: 'money', char: '💰' },\n { name: 'chart_up', char: '📈' },\n { name: 'chart_down', char: '📉' },\n { name: 'coffee', char: '☕' },\n { name: 'beer', char: '🍺' },\n { name: 'pizza', char: '🍕' },\n { name: 'burger', char: '🍔' },\n { name: 'cake', char: '🎂' },\n { name: 'apple', char: '🍎' },\n { name: 'banana', char: '🍌' },\n { name: 'dog', char: '🐶' },\n { name: 'cat', char: '🐱' },\n { name: 'unicorn', char: '🦄' },\n { name: 'bee', char: '🐝' },\n { name: 'turtle', char: '🐢' },\n { name: 'penguin', char: '🐧' },\n { name: 'flower', char: '🌸' },\n { name: 'tree', char: '🌳' },\n { name: 'earth', char: '🌍' },\n { name: 'moon', char: '🌙' },\n { name: 'wave_water', char: '🌊' },\n];\n"]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Command, EditorState } from 'prosemirror-state';
|
|
2
|
+
import { MarkType, ResolvedPos, Node as PMNode } from 'prosemirror-model';
|
|
3
|
+
import type { Alignment } from './schema';
|
|
4
|
+
export type CommandName = 'bold' | 'italic' | 'underline' | 'strike' | 'subscript' | 'superscript' | 'code' | 'paragraph' | 'heading' | 'blockquote' | 'align' | 'lineHeight' | 'bulletList' | 'orderedList' | 'taskList' | 'indent' | 'outdent' | 'setListStyle' | 'setListStart' | 'toggleImageCaption' | 'setImageAlign' | 'setImageWidth' | 'deleteImage' | 'updateImage' | 'setEmbedAlign' | 'deleteEmbed' | 'link' | 'unlink' | 'insertBookmark' | 'textColor' | 'bgColor' | 'fontFamily' | 'fontSize' | 'horizontalRule' | 'clearFormatting' | 'undo' | 'redo' | 'codeBlock' | 'setCodeBlockLanguage' | 'insertEmbed' | 'insertImage' | 'insertTable' | 'addRowBefore' | 'addRowAfter' | 'addColumnBefore' | 'addColumnAfter' | 'deleteRow' | 'deleteColumn' | 'mergeCells' | 'splitCell' | 'toggleHeaderRow' | 'toggleLayoutTable' | 'deleteTable' | 'changeCase' | 'insertMergeField' | 'insertMath';
|
|
5
|
+
export interface CommandAttrs {
|
|
6
|
+
level?: number;
|
|
7
|
+
align?: Alignment | null;
|
|
8
|
+
href?: string;
|
|
9
|
+
title?: string;
|
|
10
|
+
target?: string | null;
|
|
11
|
+
color?: string | null;
|
|
12
|
+
family?: string | null;
|
|
13
|
+
size?: string | null;
|
|
14
|
+
/** insertImage / updateImage */
|
|
15
|
+
src?: string;
|
|
16
|
+
alt?: string | null;
|
|
17
|
+
/** insertImage / updateImage: figcaption text; empty/null = plain inline image */
|
|
18
|
+
caption?: string | null;
|
|
19
|
+
/** insertTable */
|
|
20
|
+
rows?: number;
|
|
21
|
+
cols?: number;
|
|
22
|
+
withHeaderRow?: boolean;
|
|
23
|
+
/** codeBlock */
|
|
24
|
+
language?: string | null;
|
|
25
|
+
/** insertEmbed */
|
|
26
|
+
provider?: string | null;
|
|
27
|
+
/** setListStyle: a CSS list-style-type, null = default */
|
|
28
|
+
style?: string | null;
|
|
29
|
+
/** setListStart */
|
|
30
|
+
start?: number;
|
|
31
|
+
/** setImageWidth: px, null = natural size */
|
|
32
|
+
width?: number | null;
|
|
33
|
+
/** lineHeight: unitless multiplier ('1.5'), null = default */
|
|
34
|
+
lineHeight?: string | null;
|
|
35
|
+
/** insertBookmark / insertMergeField: the anchor or field id */
|
|
36
|
+
id?: string;
|
|
37
|
+
/** changeCase: which transform to apply */
|
|
38
|
+
textCase?: 'upper' | 'lower' | 'title' | 'sentence';
|
|
39
|
+
/** insertMergeField: human-readable label */
|
|
40
|
+
label?: string | null;
|
|
41
|
+
/** insertMath: LaTeX source */
|
|
42
|
+
latex?: string;
|
|
43
|
+
/** insertMath: inline vs block presentation */
|
|
44
|
+
mathDisplay?: 'inline' | 'block';
|
|
45
|
+
}
|
|
46
|
+
/** Finds the extent of a mark around a resolved position (cursor in a link). */
|
|
47
|
+
export declare function getMarkRange($pos: ResolvedPos, markType: MarkType): {
|
|
48
|
+
from: number;
|
|
49
|
+
to: number;
|
|
50
|
+
} | null;
|
|
51
|
+
/**
|
|
52
|
+
* The image (inline `image` or block `figure`) the selection points at:
|
|
53
|
+
* a NodeSelection on either type, or a cursor inside a figure's caption.
|
|
54
|
+
*/
|
|
55
|
+
export declare function selectedImageInfo(state: EditorState): {
|
|
56
|
+
node: PMNode;
|
|
57
|
+
pos: number;
|
|
58
|
+
isFigure: boolean;
|
|
59
|
+
} | null;
|
|
60
|
+
/** The selected embed node (a NodeSelection on an `embed`), or null. */
|
|
61
|
+
export declare function selectedEmbedInfo(state: EditorState): {
|
|
62
|
+
node: PMNode;
|
|
63
|
+
pos: number;
|
|
64
|
+
} | null;
|
|
65
|
+
/**
|
|
66
|
+
* Resolves a named command against a schema. Returns null for unknown names
|
|
67
|
+
* so callers can treat the registry as data.
|
|
68
|
+
*/
|
|
69
|
+
export declare function getCommand(state: EditorState, name: CommandName, attrs?: CommandAttrs): Command | null;
|