@aquera/nile-elements 1.9.8 → 1.9.10
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 +7 -0
- package/dist/{index-df196058.cjs.js → index-50880eb7.cjs.js} +2 -2
- package/dist/index-50880eb7.cjs.js.map +1 -0
- package/dist/index-6832c52b.cjs.js +2 -0
- package/dist/index-6832c52b.cjs.js.map +1 -0
- package/dist/index-747d1880.cjs.js +2 -0
- package/dist/index-747d1880.cjs.js.map +1 -0
- package/dist/{index-249de90a.esm.js → index-7b1c9857.esm.js} +1 -1
- package/dist/index-a487d8b4.esm.js +1 -0
- package/dist/index-ba47645d.esm.js +1 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1589 -1277
- package/dist/katex-44476ab4.esm.js +1 -0
- package/dist/katex-f4186f87.cjs.js +2 -0
- package/dist/katex-f4186f87.cjs.js.map +1 -0
- package/dist/nile-checkbox/nile-checkbox.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.cjs.js.map +1 -1
- package/dist/nile-checkbox/nile-checkbox.esm.js +1 -1
- package/dist/nile-color-picker/index.cjs.js +1 -1
- package/dist/nile-color-picker/index.esm.js +1 -1
- package/dist/nile-color-picker/nile-color-picker.cjs.js +1 -1
- package/dist/nile-color-picker/nile-color-picker.cjs.js.map +1 -1
- package/dist/nile-color-picker/nile-color-picker.esm.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-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-nav-tab/nile-nav-tab.cjs.js +1 -1
- package/dist/nile-nav-tab/nile-nav-tab.cjs.js.map +1 -1
- package/dist/nile-nav-tab/nile-nav-tab.css.cjs.js +1 -1
- package/dist/nile-nav-tab/nile-nav-tab.css.cjs.js.map +1 -1
- package/dist/nile-nav-tab/nile-nav-tab.css.esm.js +11 -0
- package/dist/nile-nav-tab/nile-nav-tab.esm.js +1 -1
- package/dist/nile-nav-tab-group/nile-nav-tab-group.css.cjs.js +1 -1
- package/dist/nile-nav-tab-group/nile-nav-tab-group.css.cjs.js.map +1 -1
- package/dist/nile-nav-tab-group/nile-nav-tab-group.css.esm.js +1 -2
- package/dist/nile-wysiwyg-editor/engine/commands.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/commands.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/commands.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/create-state.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/index.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/index.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/inputrules.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/keymap.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/keymap.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/embeds.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/find-replace.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/find-replace.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/image.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/image.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/math-view.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/placeholder.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/placeholder.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/style-block-view.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/style-block-view.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/style-block-view.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/plugins/suggestions.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/suggestions.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/plugins/tables.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/sanitize.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/schema.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/schema.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/schema.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/selection-state.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/index.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/index.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/math/katex-renderer.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/math/katex-renderer.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/math/katex-renderer.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.esm.js +22 -3
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.esm.js +7 -6
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.esm.js +33 -54
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.esm.js +83 -95
- package/dist/nile-wysiwyg-editor/types.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/types.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/types.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/bubble-item.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/bubble-item.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/bubble-item.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.esm.js +23 -15
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/code-block-menu.esm.js +3 -3
- package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/embed-panel.esm.js +2 -2
- package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/math-panel.esm.js +0 -3
- package/dist/nile-wysiwyg-editor/ui/preview.cjs.js +2 -0
- package/dist/nile-wysiwyg-editor/ui/preview.cjs.js.map +1 -0
- package/dist/nile-wysiwyg-editor/ui/preview.esm.js +8 -0
- package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/source-view.esm.js +225 -24
- package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/suggest-list.esm.js +9 -9
- package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-grid-picker.esm.js +115 -13
- package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-menu.esm.js +13 -12
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-checkbox/nile-checkbox.js +1 -0
- package/dist/src/nile-checkbox/nile-checkbox.js.map +1 -1
- package/dist/src/nile-color-picker/nile-color-picker.d.ts +1 -0
- package/dist/src/nile-color-picker/nile-color-picker.js +1 -0
- package/dist/src/nile-color-picker/nile-color-picker.js.map +1 -1
- package/dist/src/nile-nav-tab/nile-nav-tab.css.js +11 -0
- package/dist/src/nile-nav-tab/nile-nav-tab.css.js.map +1 -1
- package/dist/src/nile-nav-tab/nile-nav-tab.d.ts +2 -0
- package/dist/src/nile-nav-tab/nile-nav-tab.js +13 -0
- package/dist/src/nile-nav-tab/nile-nav-tab.js.map +1 -1
- package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.js +1 -2
- package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/index.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/index.js +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/index.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js +3 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.d.ts +19 -4
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js +23 -18
- package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.d.ts +8 -3
- package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js +41 -4
- package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/plugins/style-block-view.d.ts +17 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/style-block-view.js +174 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/style-block-view.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js +33 -2
- package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/pm.test.js +49 -8
- package/dist/src/nile-wysiwyg-editor/engine/pm.test.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/sanitize.d.ts +12 -0
- package/dist/src/nile-wysiwyg-editor/engine/sanitize.js +76 -8
- package/dist/src/nile-wysiwyg-editor/engine/sanitize.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/engine/schema.d.ts +2 -0
- package/dist/src/nile-wysiwyg-editor/engine/schema.js +154 -2
- package/dist/src/nile-wysiwyg-editor/engine/schema.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/index.d.ts +5 -0
- package/dist/src/nile-wysiwyg-editor/index.js +3 -0
- package/dist/src/nile-wysiwyg-editor/index.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/math/katex-renderer.d.ts +38 -0
- package/dist/src/nile-wysiwyg-editor/math/katex-renderer.js +40 -0
- package/dist/src/nile-wysiwyg-editor/math/katex-renderer.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js +22 -3
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.d.ts +36 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js +125 -8
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js +5 -2
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.d.ts +2 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.d.ts +55 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.js +79 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js +33 -54
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.d.ts +50 -2
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js +158 -102
- package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/types.d.ts +4 -2
- package/dist/src/nile-wysiwyg-editor/types.js +2 -2
- package/dist/src/nile-wysiwyg-editor/types.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/bubble-item.d.ts +48 -0
- package/dist/src/nile-wysiwyg-editor/ui/bubble-item.js +69 -0
- package/dist/src/nile-wysiwyg-editor/ui/bubble-item.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.d.ts +17 -2
- package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js +128 -35
- package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/embed-panel.d.ts +2 -1
- package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js +4 -3
- package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/math-panel.js +0 -3
- package/dist/src/nile-wysiwyg-editor/ui/math-panel.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/preview.d.ts +20 -0
- package/dist/src/nile-wysiwyg-editor/ui/preview.js +44 -0
- package/dist/src/nile-wysiwyg-editor/ui/preview.js.map +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/source-view.d.ts +35 -3
- package/dist/src/nile-wysiwyg-editor/ui/source-view.js +337 -24
- package/dist/src/nile-wysiwyg-editor/ui/source-view.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/suggest-list.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js +9 -0
- package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.d.ts +13 -2
- package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js +166 -10
- package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js.map +1 -1
- package/dist/src/nile-wysiwyg-editor/ui/table-menu.d.ts +1 -0
- package/dist/src/nile-wysiwyg-editor/ui/table-menu.js +10 -8
- package/dist/src/nile-wysiwyg-editor/ui/table-menu.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/xml-25c4108a.esm.js +1 -0
- package/dist/xml-90fd974e.cjs.js +2 -0
- package/dist/xml-90fd974e.cjs.js.map +1 -0
- package/package.json +2 -1
- package/rollup.config.js +1 -0
- package/src/index.ts +8 -0
- package/src/nile-checkbox/nile-checkbox.ts +1 -0
- package/src/nile-color-picker/nile-color-picker.ts +1 -0
- package/src/nile-nav-tab/nile-nav-tab.css.ts +11 -0
- package/src/nile-nav-tab/nile-nav-tab.ts +17 -0
- package/src/nile-nav-tab-group/nile-nav-tab-group.css.ts +1 -2
- package/src/nile-wysiwyg-editor/engine/index.ts +1 -0
- package/src/nile-wysiwyg-editor/engine/plugins/embed-view.ts +3 -0
- package/src/nile-wysiwyg-editor/engine/plugins/embeds.ts +26 -20
- package/src/nile-wysiwyg-editor/engine/plugins/math-view.ts +45 -4
- package/src/nile-wysiwyg-editor/engine/plugins/style-block-view.ts +178 -0
- package/src/nile-wysiwyg-editor/engine/plugins/tables.ts +34 -2
- package/src/nile-wysiwyg-editor/engine/pm.test.ts +58 -8
- package/src/nile-wysiwyg-editor/engine/sanitize.ts +71 -8
- package/src/nile-wysiwyg-editor/engine/schema.ts +158 -7
- package/src/nile-wysiwyg-editor/index.ts +5 -0
- package/src/nile-wysiwyg-editor/math/katex-renderer.ts +59 -0
- package/src/nile-wysiwyg-editor/math/katex.d.ts +17 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.ts +22 -3
- package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.ts +5 -2
- package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.ts +142 -7
- package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.ts +2 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.ts +68 -0
- package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.ts +33 -54
- package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.ts +202 -108
- package/src/nile-wysiwyg-editor/types.ts +6 -4
- package/src/nile-wysiwyg-editor/ui/bubble-item.ts +60 -0
- package/src/nile-wysiwyg-editor/ui/bubble-menu.ts +147 -40
- package/src/nile-wysiwyg-editor/ui/embed-panel.ts +4 -3
- package/src/nile-wysiwyg-editor/ui/math-panel.ts +0 -3
- package/src/nile-wysiwyg-editor/ui/preview.ts +42 -0
- package/src/nile-wysiwyg-editor/ui/source-view.ts +339 -31
- package/src/nile-wysiwyg-editor/ui/suggest-list.ts +10 -0
- package/src/nile-wysiwyg-editor/ui/table-grid-picker.ts +160 -10
- package/src/nile-wysiwyg-editor/ui/table-menu.ts +10 -8
- package/vscode-html-custom-data.json +75 -6
- package/dist/index-353172ed.esm.js +0 -1
- package/dist/index-b387a9f4.cjs.js +0 -2
- package/dist/index-b387a9f4.cjs.js.map +0 -1
- package/dist/index-cc1385e0.cjs.js +0 -2
- package/dist/index-cc1385e0.cjs.js.map +0 -1
- package/dist/index-dedc38a6.esm.js +0 -1
- package/dist/index-df196058.cjs.js.map +0 -1
|
@@ -1,18 +1,100 @@
|
|
|
1
|
-
import { html, css, TemplateResult, CSSResultArray } from 'lit';
|
|
1
|
+
import { html, css, TemplateResult, CSSResultArray, nothing } from 'lit';
|
|
2
2
|
import { customElement, property } from 'lit/decorators.js';
|
|
3
3
|
import NileElement from '../../internal/nile-element';
|
|
4
4
|
import { renderGlyph } from '../../internal/glyph';
|
|
5
5
|
import type { ToolbarState } from '../engine/selection-state';
|
|
6
6
|
import type { WysiwygCommandDetail } from '../types';
|
|
7
|
+
import type { AuthoredToolbarItem } from '../nile-wysiwyg-toolbar/nile-wysiwyg-toolbar';
|
|
8
|
+
import '../../nile-lite-tooltip/nile-lite-tooltip';
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
/** A control the bubble menu knows how to render, keyed by its authored name. */
|
|
11
|
+
interface BubbleDef {
|
|
12
|
+
/** The command dispatched on click. */
|
|
13
|
+
command: WysiwygCommandDetail['name'];
|
|
10
14
|
label: string;
|
|
11
15
|
/** nile-glyph icon name (ng-* names are stroke-drawn). */
|
|
12
16
|
icon: string;
|
|
13
|
-
|
|
17
|
+
/** Static attrs sent with the command (e.g. alignment direction). */
|
|
18
|
+
attrs?: WysiwygCommandDetail['attrs'];
|
|
19
|
+
active?: (state: ToolbarState) => boolean;
|
|
14
20
|
}
|
|
15
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Registry of controls addressable by `<nile-wysiwyg-bubble-item name="…">`.
|
|
24
|
+
* Icons/labels mirror the main toolbar so both surfaces look identical.
|
|
25
|
+
*/
|
|
26
|
+
const BUBBLE_ITEMS: Record<string, BubbleDef> = {
|
|
27
|
+
bold: { command: 'bold', label: 'Bold', icon: 'format_bold', active: s => s.bold },
|
|
28
|
+
italic: { command: 'italic', label: 'Italic', icon: 'format_italic', active: s => s.italic },
|
|
29
|
+
underline: {
|
|
30
|
+
command: 'underline',
|
|
31
|
+
label: 'Underline',
|
|
32
|
+
icon: 'format_underline',
|
|
33
|
+
active: s => s.underline,
|
|
34
|
+
},
|
|
35
|
+
strike: {
|
|
36
|
+
command: 'strike',
|
|
37
|
+
label: 'Strikethrough',
|
|
38
|
+
icon: 'ng-strikethrough',
|
|
39
|
+
active: s => s.strike,
|
|
40
|
+
},
|
|
41
|
+
code: { command: 'code', label: 'Inline code', icon: 'ng-code', active: s => s.code },
|
|
42
|
+
subscript: {
|
|
43
|
+
command: 'subscript',
|
|
44
|
+
label: 'Subscript',
|
|
45
|
+
icon: 'ng-subscript',
|
|
46
|
+
active: s => s.subscript,
|
|
47
|
+
},
|
|
48
|
+
superscript: {
|
|
49
|
+
command: 'superscript',
|
|
50
|
+
label: 'Superscript',
|
|
51
|
+
icon: 'ng-superscript',
|
|
52
|
+
active: s => s.superscript,
|
|
53
|
+
},
|
|
54
|
+
link: { command: 'openLink', label: 'Link', icon: 'link_2', active: s => s.linkActive },
|
|
55
|
+
bulletList: {
|
|
56
|
+
command: 'bulletList',
|
|
57
|
+
label: 'Bulleted list',
|
|
58
|
+
icon: 'format_list_bulleted',
|
|
59
|
+
active: s => s.inBulletList,
|
|
60
|
+
},
|
|
61
|
+
orderedList: {
|
|
62
|
+
command: 'orderedList',
|
|
63
|
+
label: 'Numbered list',
|
|
64
|
+
icon: 'format_list_numbered',
|
|
65
|
+
active: s => s.inOrderedList,
|
|
66
|
+
},
|
|
67
|
+
alignLeft: {
|
|
68
|
+
command: 'align',
|
|
69
|
+
label: 'Align left',
|
|
70
|
+
icon: 'format_align_left',
|
|
71
|
+
attrs: { align: 'left' },
|
|
72
|
+
active: s => s.align === 'left',
|
|
73
|
+
},
|
|
74
|
+
alignCenter: {
|
|
75
|
+
command: 'align',
|
|
76
|
+
label: 'Align center',
|
|
77
|
+
icon: 'format_align_middle',
|
|
78
|
+
attrs: { align: 'center' },
|
|
79
|
+
active: s => s.align === 'center',
|
|
80
|
+
},
|
|
81
|
+
alignRight: {
|
|
82
|
+
command: 'align',
|
|
83
|
+
label: 'Align right',
|
|
84
|
+
icon: 'format_align_right',
|
|
85
|
+
attrs: { align: 'right' },
|
|
86
|
+
active: s => s.align === 'right',
|
|
87
|
+
},
|
|
88
|
+
clearFormatting: {
|
|
89
|
+
command: 'clearFormatting',
|
|
90
|
+
label: 'Clear formatting',
|
|
91
|
+
icon: 'format_clear',
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
/** Built-in default when no `<nile-wysiwyg-bubble-item>` children are authored. */
|
|
96
|
+
const DEFAULT_BUBBLE = ['bold', 'italic', 'underline', 'strike', 'link'];
|
|
97
|
+
|
|
16
98
|
/**
|
|
17
99
|
* Balloon toolbar shown over non-empty selections. The host owns positioning
|
|
18
100
|
* (absolute left/top) and visibility; commands bubble up as
|
|
@@ -24,6 +106,13 @@ export class NileWysiwygBubbleMenu extends NileElement {
|
|
|
24
106
|
|
|
25
107
|
@property({ attribute: false }) toolbarState?: ToolbarState;
|
|
26
108
|
|
|
109
|
+
/**
|
|
110
|
+
* Structured item list authored in light DOM (from
|
|
111
|
+
* `<nile-wysiwyg-bubble-item>` children). `'|'` is a separator. Falls back to
|
|
112
|
+
* {@link DEFAULT_BUBBLE} when empty.
|
|
113
|
+
*/
|
|
114
|
+
@property({ attribute: false }) items?: AuthoredToolbarItem[];
|
|
115
|
+
|
|
27
116
|
public static get styles(): CSSResultArray {
|
|
28
117
|
return [
|
|
29
118
|
css`
|
|
@@ -78,54 +167,72 @@ export class NileWysiwygBubbleMenu extends NileElement {
|
|
|
78
167
|
background: var(--nile-colors-primary-50, var(--ng-componentcolors-utility-blue-50, #eff4ff));
|
|
79
168
|
color: var(--nile-colors-primary-700, var(--ng-componentcolors-utility-blue-700, #1d4ed8));
|
|
80
169
|
}
|
|
170
|
+
|
|
171
|
+
.divider {
|
|
172
|
+
align-self: stretch;
|
|
173
|
+
width: 1px;
|
|
174
|
+
margin: 3px 2px;
|
|
175
|
+
background: var(--nile-colors-neutral-300, #e4e7ec);
|
|
176
|
+
}
|
|
81
177
|
`,
|
|
82
178
|
];
|
|
83
179
|
}
|
|
84
180
|
|
|
85
|
-
/**
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
{
|
|
96
|
-
name: 'strike',
|
|
97
|
-
label: 'Strikethrough',
|
|
98
|
-
icon: 'ng-strikethrough',
|
|
99
|
-
active: s => s.strike,
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
name: 'openLink',
|
|
103
|
-
label: 'Link',
|
|
104
|
-
icon: 'link_2',
|
|
105
|
-
active: s => s.linkActive,
|
|
106
|
-
},
|
|
107
|
-
];
|
|
181
|
+
/**
|
|
182
|
+
* True when this instance is an author's declarative `<nile-wysiwyg-bubble-menu>`
|
|
183
|
+
* container in an editor's light DOM (holding `<nile-wysiwyg-bubble-item>`
|
|
184
|
+
* children). It renders nothing — the editor reads the items and renders the
|
|
185
|
+
* real bubble menu in its own shadow DOM. The editor's internal instance
|
|
186
|
+
* lives in a shadow root, so `closest` never matches it.
|
|
187
|
+
*/
|
|
188
|
+
private get isAuthoringContainer(): boolean {
|
|
189
|
+
return !!this.closest('nile-wysiwyg-editor');
|
|
190
|
+
}
|
|
108
191
|
|
|
109
192
|
public render(): TemplateResult {
|
|
193
|
+
if (this.isAuthoringContainer) return html``;
|
|
194
|
+
|
|
110
195
|
const state = this.toolbarState;
|
|
196
|
+
const entries: AuthoredToolbarItem[] =
|
|
197
|
+
this.items && this.items.length
|
|
198
|
+
? this.items
|
|
199
|
+
: DEFAULT_BUBBLE.map(name => ({ name }));
|
|
111
200
|
return html`
|
|
112
201
|
<div class="bubble" part="bubble-menu" @mousedown=${(e: Event) => e.preventDefault()}>
|
|
113
|
-
${
|
|
114
|
-
item => html`
|
|
115
|
-
<button
|
|
116
|
-
type="button"
|
|
117
|
-
title=${item.label}
|
|
118
|
-
aria-label=${item.label}
|
|
119
|
-
?data-active=${state ? item.active(state) : false}
|
|
120
|
-
@click=${() => this.emit('wysiwyg-command', { name: item.name })}
|
|
121
|
-
>
|
|
122
|
-
${renderGlyph(item.icon, 16)}
|
|
123
|
-
</button>
|
|
124
|
-
`
|
|
125
|
-
)}
|
|
202
|
+
${entries.map(entry => this.renderEntry(entry, state))}
|
|
126
203
|
</div>
|
|
127
204
|
`;
|
|
128
205
|
}
|
|
206
|
+
|
|
207
|
+
private renderEntry(
|
|
208
|
+
entry: AuthoredToolbarItem,
|
|
209
|
+
state?: ToolbarState
|
|
210
|
+
): TemplateResult | typeof nothing {
|
|
211
|
+
if (entry.name === '|') {
|
|
212
|
+
return html`<span class="divider" part="bubble-divider"></span>`;
|
|
213
|
+
}
|
|
214
|
+
const base = BUBBLE_ITEMS[entry.name];
|
|
215
|
+
const label = entry.label || base?.label || entry.name;
|
|
216
|
+
const icon = entry.icon || base?.icon;
|
|
217
|
+
// Unknown command with no icon to draw → nothing to render.
|
|
218
|
+
if (!icon) return nothing;
|
|
219
|
+
const command = base?.command ?? (entry.name as WysiwygCommandDetail['name']);
|
|
220
|
+
const attrs = base?.attrs;
|
|
221
|
+
const isActive = base?.active && state ? base.active(state) : false;
|
|
222
|
+
return html`
|
|
223
|
+
<nile-lite-tooltip content=${label} placement="top">
|
|
224
|
+
<button
|
|
225
|
+
type="button"
|
|
226
|
+
aria-label=${label}
|
|
227
|
+
?data-active=${isActive}
|
|
228
|
+
@click=${() =>
|
|
229
|
+
this.emit('wysiwyg-command', attrs ? { name: command, attrs } : { name: command })}
|
|
230
|
+
>
|
|
231
|
+
${renderGlyph(icon, 16)}
|
|
232
|
+
</button>
|
|
233
|
+
</nile-lite-tooltip>
|
|
234
|
+
`;
|
|
235
|
+
}
|
|
129
236
|
}
|
|
130
237
|
|
|
131
238
|
declare global {
|
|
@@ -6,7 +6,8 @@ import '../../nile-input/index';
|
|
|
6
6
|
import '../../nile-button/index';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Floating embed-insert panel: paste
|
|
9
|
+
* Floating embed-insert panel: paste any https:// link (YouTube/Vimeo/Loom
|
|
10
|
+
* are auto-formatted; anything else embeds as a sandboxed iframe). Styled to
|
|
10
11
|
* match the image panel (nile-input + nile-button). Emits
|
|
11
12
|
* `wysiwyg-embed-apply` detail: { src, provider } and `wysiwyg-embed-cancel`.
|
|
12
13
|
*/
|
|
@@ -94,7 +95,7 @@ export class NileWysiwygEmbedPanel extends NileElement {
|
|
|
94
95
|
private handleSubmit(): void {
|
|
95
96
|
const target = toEmbedUrl(this.urlValue.trim());
|
|
96
97
|
if (!target) {
|
|
97
|
-
this.error = '
|
|
98
|
+
this.error = 'Enter a valid https:// URL.';
|
|
98
99
|
return;
|
|
99
100
|
}
|
|
100
101
|
this.error = '';
|
|
@@ -124,7 +125,7 @@ export class NileWysiwygEmbedPanel extends NileElement {
|
|
|
124
125
|
|
|
125
126
|
${this.error
|
|
126
127
|
? html`<span class="error" part="error">${this.error}</span>`
|
|
127
|
-
: html`<span class="hint">
|
|
128
|
+
: html`<span class="hint">Add any link to it</span>`}
|
|
128
129
|
|
|
129
130
|
<div class="actions">
|
|
130
131
|
<nile-button variant="primary" @click=${() => this.handleSubmit()}
|
|
@@ -148,9 +148,6 @@ export class NileWysiwygMathPanel extends NileElement {
|
|
|
148
148
|
</nile-button-toggle-group>
|
|
149
149
|
</div>
|
|
150
150
|
|
|
151
|
-
<span class="hint"
|
|
152
|
-
>LaTeX is stored as-is; rendering uses your math renderer if configured.</span
|
|
153
|
-
>
|
|
154
151
|
|
|
155
152
|
<div class="actions">
|
|
156
153
|
<nile-button variant="primary" @click=${() => this.handleSubmit()}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { LitElement, html, css, TemplateResult, CSSResultArray } from 'lit';
|
|
2
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
3
|
+
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
|
|
4
|
+
import { styles as editorStyles } from '../nile-wysiwyg-editor.css';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Renders sanitized document HTML inside its OWN shadow root. Any author
|
|
8
|
+
* `<style>` block in the content is therefore scoped to this element and
|
|
9
|
+
* cannot leak into the surrounding source-view / editor chrome (which lives in
|
|
10
|
+
* a different shadow root). Reuses the editor's content styles so the render
|
|
11
|
+
* matches the live editor. The content wrapper is an `<article>`, not a
|
|
12
|
+
* `<div>`, so a blanket `div { … }` rule doesn't paint the wrapper itself.
|
|
13
|
+
*/
|
|
14
|
+
@customElement('nile-wysiwyg-preview')
|
|
15
|
+
export class NileWysiwygPreview extends LitElement {
|
|
16
|
+
/** Sanitized HTML to render (already run through sanitizeHtml). */
|
|
17
|
+
@property({ type: String }) content = '';
|
|
18
|
+
|
|
19
|
+
public static get styles(): CSSResultArray {
|
|
20
|
+
return [
|
|
21
|
+
editorStyles,
|
|
22
|
+
css`
|
|
23
|
+
:host {
|
|
24
|
+
display: block;
|
|
25
|
+
}
|
|
26
|
+
.ProseMirror {
|
|
27
|
+
min-height: 0;
|
|
28
|
+
}
|
|
29
|
+
`,
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public render(): TemplateResult {
|
|
34
|
+
return html`<article class="ProseMirror">${unsafeHTML(this.content)}</article>`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
declare global {
|
|
39
|
+
interface HTMLElementTagNameMap {
|
|
40
|
+
'nile-wysiwyg-preview': NileWysiwygPreview;
|
|
41
|
+
}
|
|
42
|
+
}
|