From ee470775b2c16c6723b317ddfc215c2ce985fff6 Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Thu, 18 Sep 2025 14:23:42 +0000 Subject: [PATCH] feat: Add WYSIWYG editor components and utilities - Implemented WysiwygModalManager for managing modals related to code blocks and block settings. - Created WysiwygSelection for handling text selection across Shadow DOM boundaries. - Introduced WysiwygShortcuts for managing keyboard shortcuts and slash menu items. - Developed wysiwygStyles for consistent styling of the WYSIWYG editor. - Defined types for blocks, slash menu items, and shortcut patterns in wysiwyg.types.ts. --- .../{wysiwyg => dees-input-wysiwyg}/blocks/MIGRATION-KNOWLEDGE.md | 0 .../elements/{wysiwyg => dees-input-wysiwyg}/blocks/block.base.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/blocks/block.registry.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/blocks/block.styles.ts | 0 .../blocks/content/divider.block.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/blocks/content/html.block.ts | 0 .../blocks/content/markdown.block.ts | 0 ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/index.ts | 0 .../blocks/media/attachment.block.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/blocks/media/image.block.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/blocks/media/youtube.block.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/blocks/text/code.block.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/blocks/text/heading.block.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/blocks/text/list.block.ts | 0 .../blocks/text/paragraph.block.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/blocks/text/quote.block.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/dees-formatting-menu.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/dees-input-wysiwyg.ts | 0 .../elements/{wysiwyg => dees-input-wysiwyg}/dees-slash-menu.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/dees-wysiwyg-block.ts | 0 ts_web/elements/{wysiwyg => dees-input-wysiwyg}/index.ts | 0 ts_web/elements/{wysiwyg => dees-input-wysiwyg}/phase2-summary.md | 0 ts_web/elements/{wysiwyg => dees-input-wysiwyg}/phase4-summary.md | 0 .../{wysiwyg => dees-input-wysiwyg}/wysiwyg.blockoperations.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/wysiwyg.blockregistration.ts | 0 ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.blocks.ts | 0 .../elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.constants.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/wysiwyg.converters.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/wysiwyg.dragdrophandler.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/wysiwyg.formatting.ts | 0 .../elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.history.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/wysiwyg.inputhandler.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/wysiwyg.interfaces.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/wysiwyg.keyboardhandler.ts | 0 .../{wysiwyg => dees-input-wysiwyg}/wysiwyg.modalmanager.ts | 0 .../elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.selection.ts | 0 .../elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.shortcuts.ts | 0 ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.styles.ts | 0 ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.types.ts | 0 39 files changed, 0 insertions(+), 0 deletions(-) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/MIGRATION-KNOWLEDGE.md (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/block.base.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/block.registry.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/block.styles.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/content/divider.block.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/content/html.block.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/content/markdown.block.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/index.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/media/attachment.block.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/media/image.block.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/media/youtube.block.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/text/code.block.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/text/heading.block.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/text/list.block.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/text/paragraph.block.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/blocks/text/quote.block.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/dees-formatting-menu.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/dees-input-wysiwyg.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/dees-slash-menu.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/dees-wysiwyg-block.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/index.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/phase2-summary.md (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/phase4-summary.md (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.blockoperations.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.blockregistration.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.blocks.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.constants.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.converters.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.dragdrophandler.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.formatting.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.history.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.inputhandler.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.interfaces.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.keyboardhandler.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.modalmanager.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.selection.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.shortcuts.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.styles.ts (100%) rename ts_web/elements/{wysiwyg => dees-input-wysiwyg}/wysiwyg.types.ts (100%) diff --git a/ts_web/elements/wysiwyg/blocks/MIGRATION-KNOWLEDGE.md b/ts_web/elements/dees-input-wysiwyg/blocks/MIGRATION-KNOWLEDGE.md similarity index 100% rename from ts_web/elements/wysiwyg/blocks/MIGRATION-KNOWLEDGE.md rename to ts_web/elements/dees-input-wysiwyg/blocks/MIGRATION-KNOWLEDGE.md diff --git a/ts_web/elements/wysiwyg/blocks/block.base.ts b/ts_web/elements/dees-input-wysiwyg/blocks/block.base.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/block.base.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/block.base.ts diff --git a/ts_web/elements/wysiwyg/blocks/block.registry.ts b/ts_web/elements/dees-input-wysiwyg/blocks/block.registry.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/block.registry.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/block.registry.ts diff --git a/ts_web/elements/wysiwyg/blocks/block.styles.ts b/ts_web/elements/dees-input-wysiwyg/blocks/block.styles.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/block.styles.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/block.styles.ts diff --git a/ts_web/elements/wysiwyg/blocks/content/divider.block.ts b/ts_web/elements/dees-input-wysiwyg/blocks/content/divider.block.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/content/divider.block.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/content/divider.block.ts diff --git a/ts_web/elements/wysiwyg/blocks/content/html.block.ts b/ts_web/elements/dees-input-wysiwyg/blocks/content/html.block.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/content/html.block.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/content/html.block.ts diff --git a/ts_web/elements/wysiwyg/blocks/content/markdown.block.ts b/ts_web/elements/dees-input-wysiwyg/blocks/content/markdown.block.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/content/markdown.block.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/content/markdown.block.ts diff --git a/ts_web/elements/wysiwyg/blocks/index.ts b/ts_web/elements/dees-input-wysiwyg/blocks/index.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/index.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/index.ts diff --git a/ts_web/elements/wysiwyg/blocks/media/attachment.block.ts b/ts_web/elements/dees-input-wysiwyg/blocks/media/attachment.block.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/media/attachment.block.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/media/attachment.block.ts diff --git a/ts_web/elements/wysiwyg/blocks/media/image.block.ts b/ts_web/elements/dees-input-wysiwyg/blocks/media/image.block.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/media/image.block.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/media/image.block.ts diff --git a/ts_web/elements/wysiwyg/blocks/media/youtube.block.ts b/ts_web/elements/dees-input-wysiwyg/blocks/media/youtube.block.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/media/youtube.block.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/media/youtube.block.ts diff --git a/ts_web/elements/wysiwyg/blocks/text/code.block.ts b/ts_web/elements/dees-input-wysiwyg/blocks/text/code.block.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/text/code.block.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/text/code.block.ts diff --git a/ts_web/elements/wysiwyg/blocks/text/heading.block.ts b/ts_web/elements/dees-input-wysiwyg/blocks/text/heading.block.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/text/heading.block.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/text/heading.block.ts diff --git a/ts_web/elements/wysiwyg/blocks/text/list.block.ts b/ts_web/elements/dees-input-wysiwyg/blocks/text/list.block.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/text/list.block.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/text/list.block.ts diff --git a/ts_web/elements/wysiwyg/blocks/text/paragraph.block.ts b/ts_web/elements/dees-input-wysiwyg/blocks/text/paragraph.block.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/text/paragraph.block.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/text/paragraph.block.ts diff --git a/ts_web/elements/wysiwyg/blocks/text/quote.block.ts b/ts_web/elements/dees-input-wysiwyg/blocks/text/quote.block.ts similarity index 100% rename from ts_web/elements/wysiwyg/blocks/text/quote.block.ts rename to ts_web/elements/dees-input-wysiwyg/blocks/text/quote.block.ts diff --git a/ts_web/elements/wysiwyg/dees-formatting-menu.ts b/ts_web/elements/dees-input-wysiwyg/dees-formatting-menu.ts similarity index 100% rename from ts_web/elements/wysiwyg/dees-formatting-menu.ts rename to ts_web/elements/dees-input-wysiwyg/dees-formatting-menu.ts diff --git a/ts_web/elements/wysiwyg/dees-input-wysiwyg.ts b/ts_web/elements/dees-input-wysiwyg/dees-input-wysiwyg.ts similarity index 100% rename from ts_web/elements/wysiwyg/dees-input-wysiwyg.ts rename to ts_web/elements/dees-input-wysiwyg/dees-input-wysiwyg.ts diff --git a/ts_web/elements/wysiwyg/dees-slash-menu.ts b/ts_web/elements/dees-input-wysiwyg/dees-slash-menu.ts similarity index 100% rename from ts_web/elements/wysiwyg/dees-slash-menu.ts rename to ts_web/elements/dees-input-wysiwyg/dees-slash-menu.ts diff --git a/ts_web/elements/wysiwyg/dees-wysiwyg-block.ts b/ts_web/elements/dees-input-wysiwyg/dees-wysiwyg-block.ts similarity index 100% rename from ts_web/elements/wysiwyg/dees-wysiwyg-block.ts rename to ts_web/elements/dees-input-wysiwyg/dees-wysiwyg-block.ts diff --git a/ts_web/elements/wysiwyg/index.ts b/ts_web/elements/dees-input-wysiwyg/index.ts similarity index 100% rename from ts_web/elements/wysiwyg/index.ts rename to ts_web/elements/dees-input-wysiwyg/index.ts diff --git a/ts_web/elements/wysiwyg/phase2-summary.md b/ts_web/elements/dees-input-wysiwyg/phase2-summary.md similarity index 100% rename from ts_web/elements/wysiwyg/phase2-summary.md rename to ts_web/elements/dees-input-wysiwyg/phase2-summary.md diff --git a/ts_web/elements/wysiwyg/phase4-summary.md b/ts_web/elements/dees-input-wysiwyg/phase4-summary.md similarity index 100% rename from ts_web/elements/wysiwyg/phase4-summary.md rename to ts_web/elements/dees-input-wysiwyg/phase4-summary.md diff --git a/ts_web/elements/wysiwyg/wysiwyg.blockoperations.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.blockoperations.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.blockoperations.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.blockoperations.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.blockregistration.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.blockregistration.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.blockregistration.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.blockregistration.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.blocks.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.blocks.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.blocks.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.blocks.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.constants.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.constants.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.constants.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.constants.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.converters.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.converters.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.converters.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.converters.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.dragdrophandler.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.dragdrophandler.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.dragdrophandler.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.dragdrophandler.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.formatting.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.formatting.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.formatting.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.formatting.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.history.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.history.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.history.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.history.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.inputhandler.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.inputhandler.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.inputhandler.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.inputhandler.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.interfaces.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.interfaces.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.interfaces.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.interfaces.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.keyboardhandler.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.keyboardhandler.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.keyboardhandler.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.keyboardhandler.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.modalmanager.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.modalmanager.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.modalmanager.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.modalmanager.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.selection.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.selection.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.selection.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.selection.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.shortcuts.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.shortcuts.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.shortcuts.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.shortcuts.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.styles.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.styles.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.styles.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.styles.ts diff --git a/ts_web/elements/wysiwyg/wysiwyg.types.ts b/ts_web/elements/dees-input-wysiwyg/wysiwyg.types.ts similarity index 100% rename from ts_web/elements/wysiwyg/wysiwyg.types.ts rename to ts_web/elements/dees-input-wysiwyg/wysiwyg.types.ts