carbon-react 148.0.0 → 149.0.0
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/esm/__internal__/label/label.component.js +4 -1
- package/esm/components/note/note.component.d.ts +1 -2
- package/esm/components/note/note.component.js +6 -9
- package/esm/components/tabs/__internal__/tab-title/tab-title.style.js +2 -1
- package/esm/components/text-editor/__internal__/constants.d.ts +21 -0
- package/esm/components/text-editor/__internal__/constants.js +29 -0
- package/esm/components/text-editor/__internal__/helpers.d.ts +20 -0
- package/esm/components/text-editor/__internal__/helpers.js +84 -0
- package/esm/components/text-editor/__internal__/index.d.ts +2 -0
- package/esm/components/text-editor/__internal__/index.js +2 -0
- package/esm/components/text-editor/__internal__/plugins/AutoLinker/auto-link.component.d.ts +3 -0
- package/esm/components/text-editor/__internal__/plugins/AutoLinker/auto-link.component.js +28 -0
- package/esm/components/text-editor/__internal__/plugins/AutoLinker/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/AutoLinker/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/__test__/character-counter.component.d.ts +10 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/__test__/character-counter.component.js +33 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.component.d.ts +9 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.component.js +59 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.style.d.ts +3 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.style.js +17 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/CharacterCounter/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/ContentEditor/content-editor.component.d.ts +17 -0
- package/esm/components/text-editor/__internal__/plugins/ContentEditor/content-editor.component.js +40 -0
- package/esm/components/text-editor/__internal__/plugins/ContentEditor/content-editor.style.d.ts +6 -0
- package/esm/components/text-editor/__internal__/plugins/ContentEditor/content-editor.style.js +34 -0
- package/esm/components/text-editor/__internal__/plugins/ContentEditor/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/ContentEditor/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/LinkMonitor/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/LinkMonitor/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/LinkMonitor/link-monitor.plugin.d.ts +2 -0
- package/esm/components/text-editor/__internal__/plugins/LinkMonitor/link-monitor.plugin.js +62 -0
- package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.component.d.ts +11 -0
- package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.component.js +19 -0
- package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.style.d.ts +6 -0
- package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.style.js +29 -0
- package/esm/components/text-editor/__internal__/plugins/OnChange/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/OnChange/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/OnChange/on-change.plugin.d.ts +5 -0
- package/esm/components/text-editor/__internal__/plugins/OnChange/on-change.plugin.js +25 -0
- package/esm/components/text-editor/__internal__/plugins/Placeholder/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/Placeholder/index.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/Placeholder/placeholder.component.d.ts +14 -0
- package/esm/components/text-editor/__internal__/plugins/Placeholder/placeholder.component.js +17 -0
- package/esm/components/text-editor/__internal__/plugins/Placeholder/placeholder.style.d.ts +2 -0
- package/esm/components/text-editor/__internal__/plugins/Placeholder/placeholder.style.js +8 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/bold.component.d.ts +4 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/bold.component.js +41 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/common.d.ts +6 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/common.js +1 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/index.d.ts +4 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/index.js +4 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/italic.component.d.ts +4 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/italic.component.js +41 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/list.component.d.ts +5 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/list.component.js +317 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/save.component.d.ts +34 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/save.component.js +29 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/index.d.ts +1 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/toolbar.component.d.ts +12 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/toolbar.component.js +111 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/toolbar.style.d.ts +11 -0
- package/esm/components/text-editor/__internal__/plugins/Toolbar/toolbar.style.js +57 -0
- package/esm/components/text-editor/__internal__/plugins/index.d.ts +9 -0
- package/esm/components/text-editor/__internal__/plugins/index.js +9 -0
- package/esm/components/text-editor/__internal__/plugins/useCursorAtEnd/index.d.ts +2 -0
- package/esm/components/text-editor/__internal__/plugins/useCursorAtEnd/index.js +71 -0
- package/esm/components/text-editor/__internal__/read-only-rte.component.d.ts +4 -0
- package/esm/components/text-editor/__internal__/read-only-rte.component.js +62 -0
- package/esm/components/text-editor/__internal__/style.css +7 -0
- package/esm/components/text-editor/__internal__/utils.d.ts +4 -0
- package/esm/components/text-editor/__internal__/utils.js +14 -0
- package/esm/components/text-editor/index.d.ts +2 -1
- package/esm/components/text-editor/index.js +2 -1
- package/esm/components/text-editor/text-editor.component.d.ts +32 -28
- package/esm/components/text-editor/text-editor.component.js +139 -478
- package/esm/components/text-editor/text-editor.context.d.ts +6 -0
- package/esm/components/text-editor/text-editor.context.js +4 -0
- package/esm/components/text-editor/text-editor.style.d.ts +18 -11
- package/esm/components/text-editor/text-editor.style.js +55 -52
- package/esm/locales/de-de.js +0 -14
- package/esm/locales/en-gb.js +18 -14
- package/esm/locales/es-es.js +0 -14
- package/esm/locales/fr-ca.js +0 -14
- package/esm/locales/fr-fr.js +0 -14
- package/esm/locales/locale.d.ts +14 -14
- package/lib/__internal__/label/label.component.js +3 -0
- package/lib/components/note/note.component.d.ts +1 -2
- package/lib/components/note/note.component.js +6 -9
- package/lib/components/tabs/__internal__/tab-title/tab-title.style.js +2 -1
- package/lib/components/text-editor/__internal__/constants.d.ts +21 -0
- package/lib/components/text-editor/__internal__/constants.js +33 -0
- package/lib/components/text-editor/__internal__/helpers.d.ts +20 -0
- package/lib/components/text-editor/__internal__/helpers.js +91 -0
- package/lib/components/text-editor/__internal__/index.d.ts +2 -0
- package/lib/components/text-editor/__internal__/index.js +26 -0
- package/lib/components/text-editor/__internal__/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/AutoLinker/auto-link.component.d.ts +3 -0
- package/lib/components/text-editor/__internal__/plugins/AutoLinker/auto-link.component.js +36 -0
- package/lib/components/text-editor/__internal__/plugins/AutoLinker/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/{editor-link → plugins/AutoLinker}/index.js +2 -2
- package/lib/components/text-editor/__internal__/{toolbar/toolbar-button → plugins/AutoLinker}/package.json +1 -1
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/__test__/character-counter.component.d.ts +10 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/__test__/character-counter.component.js +42 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.component.d.ts +9 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.component.js +68 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.style.d.ts +3 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.style.js +24 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/index.js +13 -0
- package/lib/components/text-editor/__internal__/plugins/CharacterCounter/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/ContentEditor/content-editor.component.d.ts +17 -0
- package/lib/components/text-editor/__internal__/plugins/ContentEditor/content-editor.component.js +48 -0
- package/lib/components/text-editor/__internal__/plugins/ContentEditor/content-editor.style.d.ts +6 -0
- package/lib/components/text-editor/__internal__/plugins/ContentEditor/content-editor.style.js +42 -0
- package/lib/components/text-editor/__internal__/plugins/ContentEditor/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/{toolbar/toolbar-button → plugins/ContentEditor}/index.js +2 -2
- package/lib/components/text-editor/__internal__/plugins/ContentEditor/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/LinkMonitor/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/{label-wrapper → plugins/LinkMonitor}/index.js +2 -2
- package/lib/components/text-editor/__internal__/plugins/LinkMonitor/link-monitor.plugin.d.ts +2 -0
- package/lib/components/text-editor/__internal__/plugins/LinkMonitor/link-monitor.plugin.js +70 -0
- package/lib/components/text-editor/__internal__/plugins/LinkMonitor/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/index.js +13 -0
- package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.component.d.ts +11 -0
- package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.component.js +28 -0
- package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.style.d.ts +6 -0
- package/lib/components/text-editor/__internal__/{toolbar/toolbar-button/toolbar-button.style.js → plugins/LinkPreviewer/link-previewer.style.js} +21 -31
- package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/OnChange/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/plugins/OnChange/index.js +13 -0
- package/lib/components/text-editor/__internal__/plugins/OnChange/on-change.plugin.d.ts +5 -0
- package/lib/components/text-editor/__internal__/plugins/OnChange/on-change.plugin.js +32 -0
- package/lib/components/text-editor/__internal__/plugins/OnChange/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/index.js +13 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/placeholder.component.d.ts +14 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/placeholder.component.js +25 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/placeholder.style.d.ts +2 -0
- package/lib/components/text-editor/__internal__/plugins/Placeholder/placeholder.style.js +15 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/bold.component.d.ts +4 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/bold.component.js +48 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/common.d.ts +6 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/common.js +5 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/index.d.ts +4 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/index.js +34 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/italic.component.d.ts +4 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/italic.component.js +47 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/list.component.d.ts +5 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/list.component.js +325 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/save.component.d.ts +34 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/save.component.js +36 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/index.d.ts +1 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/package.json +6 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/toolbar.component.d.ts +12 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/toolbar.component.js +120 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/toolbar.style.d.ts +11 -0
- package/lib/components/text-editor/__internal__/plugins/Toolbar/toolbar.style.js +65 -0
- package/lib/components/text-editor/__internal__/plugins/index.d.ts +9 -0
- package/lib/components/text-editor/__internal__/plugins/index.js +69 -0
- package/lib/components/text-editor/__internal__/{toolbar → plugins}/package.json +1 -1
- package/lib/components/text-editor/__internal__/plugins/useCursorAtEnd/index.d.ts +2 -0
- package/lib/components/text-editor/__internal__/plugins/useCursorAtEnd/index.js +78 -0
- package/lib/components/text-editor/__internal__/plugins/useCursorAtEnd/package.json +6 -0
- package/lib/components/text-editor/__internal__/read-only-rte.component.d.ts +4 -0
- package/lib/components/text-editor/__internal__/read-only-rte.component.js +72 -0
- package/lib/components/text-editor/__internal__/style.css +7 -0
- package/lib/components/text-editor/__internal__/utils.d.ts +4 -0
- package/lib/components/text-editor/__internal__/utils.js +21 -0
- package/lib/components/text-editor/index.d.ts +2 -1
- package/lib/components/text-editor/index.js +7 -7
- package/lib/components/text-editor/text-editor.component.d.ts +32 -28
- package/lib/components/text-editor/text-editor.component.js +141 -477
- package/lib/components/text-editor/text-editor.context.d.ts +6 -0
- package/lib/components/text-editor/{__internal__/editor.context.js → text-editor.context.js} +1 -0
- package/lib/components/text-editor/text-editor.style.d.ts +18 -11
- package/lib/components/text-editor/text-editor.style.js +57 -53
- package/lib/locales/de-de.js +0 -14
- package/lib/locales/en-gb.js +18 -14
- package/lib/locales/es-es.js +0 -14
- package/lib/locales/fr-ca.js +0 -14
- package/lib/locales/fr-fr.js +0 -14
- package/lib/locales/locale.d.ts +14 -14
- package/package.json +7 -4
- package/esm/components/text-editor/__internal__/decorators/index.d.ts +0 -3
- package/esm/components/text-editor/__internal__/decorators/index.js +0 -3
- package/esm/components/text-editor/__internal__/decorators/link-decorator.d.ts +0 -8
- package/esm/components/text-editor/__internal__/decorators/link-decorator.js +0 -37
- package/esm/components/text-editor/__internal__/editor-link/editor-link.component.d.ts +0 -9
- package/esm/components/text-editor/__internal__/editor-link/editor-link.component.js +0 -36
- package/esm/components/text-editor/__internal__/editor-link/editor-link.style.d.ts +0 -3
- package/esm/components/text-editor/__internal__/editor-link/editor-link.style.js +0 -13
- package/esm/components/text-editor/__internal__/editor-link/index.d.ts +0 -2
- package/esm/components/text-editor/__internal__/editor-link/index.js +0 -1
- package/esm/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.component.d.ts +0 -11
- package/esm/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.component.js +0 -18
- package/esm/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.style.d.ts +0 -2
- package/esm/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.style.js +0 -11
- package/esm/components/text-editor/__internal__/editor-validation-wrapper/index.d.ts +0 -2
- package/esm/components/text-editor/__internal__/editor-validation-wrapper/index.js +0 -1
- package/esm/components/text-editor/__internal__/editor.context.d.ts +0 -6
- package/esm/components/text-editor/__internal__/editor.context.js +0 -2
- package/esm/components/text-editor/__internal__/label-wrapper/index.d.ts +0 -2
- package/esm/components/text-editor/__internal__/label-wrapper/index.js +0 -1
- package/esm/components/text-editor/__internal__/label-wrapper/label-wrapper.component.d.ts +0 -12
- package/esm/components/text-editor/__internal__/label-wrapper/label-wrapper.component.js +0 -18
- package/esm/components/text-editor/__internal__/toolbar/index.d.ts +0 -2
- package/esm/components/text-editor/__internal__/toolbar/toolbar-button/index.d.ts +0 -2
- package/esm/components/text-editor/__internal__/toolbar/toolbar-button/index.js +0 -1
- package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.d.ts +0 -25
- package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.js +0 -50
- package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.style.d.ts +0 -6
- package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.style.js +0 -38
- package/esm/components/text-editor/__internal__/toolbar/toolbar.component.d.ts +0 -16
- package/esm/components/text-editor/__internal__/toolbar/toolbar.component.js +0 -158
- package/esm/components/text-editor/__internal__/toolbar/toolbar.style.d.ts +0 -4
- package/esm/components/text-editor/__internal__/toolbar/toolbar.style.js +0 -28
- package/esm/components/text-editor/__internal__/utils/index.d.ts +0 -1
- package/esm/components/text-editor/__internal__/utils/index.js +0 -1
- package/esm/components/text-editor/__internal__/utils/utils.d.ts +0 -29
- package/esm/components/text-editor/__internal__/utils/utils.js +0 -174
- package/esm/components/text-editor/types.d.ts +0 -6
- package/esm/components/text-editor/types.js +0 -4
- package/lib/components/text-editor/__internal__/decorators/index.d.ts +0 -3
- package/lib/components/text-editor/__internal__/decorators/index.js +0 -10
- package/lib/components/text-editor/__internal__/decorators/link-decorator.d.ts +0 -8
- package/lib/components/text-editor/__internal__/decorators/link-decorator.js +0 -44
- package/lib/components/text-editor/__internal__/decorators/package.json +0 -6
- package/lib/components/text-editor/__internal__/editor-link/editor-link.component.d.ts +0 -9
- package/lib/components/text-editor/__internal__/editor-link/editor-link.component.js +0 -45
- package/lib/components/text-editor/__internal__/editor-link/editor-link.style.d.ts +0 -3
- package/lib/components/text-editor/__internal__/editor-link/editor-link.style.js +0 -20
- package/lib/components/text-editor/__internal__/editor-link/index.d.ts +0 -2
- package/lib/components/text-editor/__internal__/editor-link/package.json +0 -6
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.component.d.ts +0 -11
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.component.js +0 -25
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.style.d.ts +0 -2
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.style.js +0 -18
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/index.d.ts +0 -2
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/index.js +0 -13
- package/lib/components/text-editor/__internal__/editor-validation-wrapper/package.json +0 -6
- package/lib/components/text-editor/__internal__/editor.context.d.ts +0 -6
- package/lib/components/text-editor/__internal__/label-wrapper/index.d.ts +0 -2
- package/lib/components/text-editor/__internal__/label-wrapper/label-wrapper.component.d.ts +0 -12
- package/lib/components/text-editor/__internal__/label-wrapper/label-wrapper.component.js +0 -25
- package/lib/components/text-editor/__internal__/label-wrapper/package.json +0 -6
- package/lib/components/text-editor/__internal__/toolbar/index.d.ts +0 -2
- package/lib/components/text-editor/__internal__/toolbar/toolbar-button/index.d.ts +0 -2
- package/lib/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.d.ts +0 -25
- package/lib/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.js +0 -56
- package/lib/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.style.d.ts +0 -6
- package/lib/components/text-editor/__internal__/toolbar/toolbar.component.d.ts +0 -16
- package/lib/components/text-editor/__internal__/toolbar/toolbar.component.js +0 -167
- package/lib/components/text-editor/__internal__/toolbar/toolbar.style.d.ts +0 -4
- package/lib/components/text-editor/__internal__/toolbar/toolbar.style.js +0 -34
- package/lib/components/text-editor/__internal__/utils/index.d.ts +0 -1
- package/lib/components/text-editor/__internal__/utils/index.js +0 -90
- package/lib/components/text-editor/__internal__/utils/package.json +0 -6
- package/lib/components/text-editor/__internal__/utils/utils.d.ts +0 -29
- package/lib/components/text-editor/__internal__/utils/utils.js +0 -197
- package/lib/components/text-editor/types.d.ts +0 -6
- package/lib/components/text-editor/types.js +0 -10
- /package/esm/components/text-editor/__internal__/{toolbar → plugins/Toolbar}/index.js +0 -0
- /package/lib/components/text-editor/__internal__/{toolbar → plugins/Toolbar}/index.js +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface SaveObjectProps {
|
|
3
|
+
detail: number;
|
|
4
|
+
format: number;
|
|
5
|
+
mode: string;
|
|
6
|
+
style: string;
|
|
7
|
+
text: string;
|
|
8
|
+
type: string;
|
|
9
|
+
version: number;
|
|
10
|
+
}
|
|
11
|
+
interface SaveProps {
|
|
12
|
+
children: SaveObjectProps[];
|
|
13
|
+
}
|
|
14
|
+
export interface SaveCallbackProps {
|
|
15
|
+
htmlString?: string;
|
|
16
|
+
json?: {
|
|
17
|
+
root: {
|
|
18
|
+
children: SaveProps[];
|
|
19
|
+
direction: string;
|
|
20
|
+
format: string;
|
|
21
|
+
indent: number;
|
|
22
|
+
type: string;
|
|
23
|
+
version: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
interface SaveButtonProps {
|
|
28
|
+
/** The namespace of the editor that this button belongs to */
|
|
29
|
+
namespace: string;
|
|
30
|
+
/** The callback to call when the save button is clicked */
|
|
31
|
+
onSave: (value: SaveCallbackProps) => void;
|
|
32
|
+
}
|
|
33
|
+
declare const SaveButton: ({ namespace, onSave }: SaveButtonProps) => React.JSX.Element;
|
|
34
|
+
export default SaveButton;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _helpers = require("../../../helpers");
|
|
11
|
+
var _button = _interopRequireDefault(require("../../../../../button"));
|
|
12
|
+
var _useLocale = _interopRequireDefault(require("../../../../../../hooks/__internal__/useLocale"));
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
// The `SaveButton` component is a button that saves the current state of the editor
|
|
15
|
+
const SaveButton = ({
|
|
16
|
+
namespace,
|
|
17
|
+
onSave
|
|
18
|
+
}) => {
|
|
19
|
+
// Get the editor instance
|
|
20
|
+
const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
|
|
21
|
+
// Get the locale to enable translations
|
|
22
|
+
const locale = (0, _useLocale.default)();
|
|
23
|
+
return /*#__PURE__*/_react.default.createElement(_button.default, {
|
|
24
|
+
"data-role": `${namespace}-save-button`,
|
|
25
|
+
buttonType: "primary",
|
|
26
|
+
"aria-label": locale.textEditor.saveButtonAria(),
|
|
27
|
+
onClick: () => {
|
|
28
|
+
const isEditable = editor.isEditable();
|
|
29
|
+
/* istanbul ignore if */
|
|
30
|
+
if (!isEditable) return;
|
|
31
|
+
const values = (0, _helpers.SerializeLexical)(editor);
|
|
32
|
+
onSave?.(values);
|
|
33
|
+
}
|
|
34
|
+
}, locale.textEditor.saveButton());
|
|
35
|
+
};
|
|
36
|
+
var _default = exports.default = SaveButton;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./toolbar.component";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { SaveCallbackProps } from "./buttons/save.component";
|
|
3
|
+
interface ToolbarProps {
|
|
4
|
+
/** The namespace of the editor that this toolbar belongs to */
|
|
5
|
+
namespace: string;
|
|
6
|
+
/** The callback to call when the cancel button is clicked */
|
|
7
|
+
onCancel?: () => void;
|
|
8
|
+
/** The callback to call when the save button is clicked */
|
|
9
|
+
onSave?: (value: SaveCallbackProps) => void;
|
|
10
|
+
}
|
|
11
|
+
declare const Toolbar: ({ namespace, onCancel, onSave }: ToolbarProps) => React.JSX.Element;
|
|
12
|
+
export default Toolbar;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
8
|
+
var _utils = require("@lexical/utils");
|
|
9
|
+
var _lexical = require("lexical");
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _toolbar = require("./toolbar.style");
|
|
13
|
+
var _constants = require("../../constants");
|
|
14
|
+
var _button = _interopRequireDefault(require("../../../../button"));
|
|
15
|
+
var _useLocale = _interopRequireDefault(require("../../../../../hooks/__internal__/useLocale"));
|
|
16
|
+
var _buttons = require("./buttons");
|
|
17
|
+
var _save = _interopRequireDefault(require("./buttons/save.component"));
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
21
|
+
const Toolbar = ({
|
|
22
|
+
namespace,
|
|
23
|
+
onCancel,
|
|
24
|
+
onSave
|
|
25
|
+
}) => {
|
|
26
|
+
// Get the editor instance
|
|
27
|
+
const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
|
|
28
|
+
const toolbarRef = (0, _react.useRef)(null);
|
|
29
|
+
|
|
30
|
+
// Set the initial state of the formatting buttons
|
|
31
|
+
const [isBold, setIsBold] = (0, _react.useState)(false);
|
|
32
|
+
const [isItalic, setIsItalic] = (0, _react.useState)(false);
|
|
33
|
+
const [buttons, setButtons] = (0, _react.useState)([]);
|
|
34
|
+
|
|
35
|
+
// If the UI updates, re-fetch the formatting buttons
|
|
36
|
+
(0, _react.useLayoutEffect)(() => {
|
|
37
|
+
const formattingButtons = document.querySelectorAll(`[data-role="${namespace}-formatting-buttons"] button`);
|
|
38
|
+
setButtons(Array.from(formattingButtons));
|
|
39
|
+
}, [namespace]);
|
|
40
|
+
|
|
41
|
+
// Get the locale to enable translations
|
|
42
|
+
const locale = (0, _useLocale.default)();
|
|
43
|
+
|
|
44
|
+
// Update the toolbar based on the current selection
|
|
45
|
+
const updateToolbar = (0, _react.useCallback)(() => {
|
|
46
|
+
// Get the current selection
|
|
47
|
+
const selection = (0, _lexical.$getSelection)();
|
|
48
|
+
// If the selection is a range selection, update the formatting buttons
|
|
49
|
+
if ((0, _lexical.$isRangeSelection)(selection)) {
|
|
50
|
+
setIsBold(selection.hasFormat(_constants.TextEditorActionTypes.Bold));
|
|
51
|
+
setIsItalic(selection.hasFormat(_constants.TextEditorActionTypes.Italic));
|
|
52
|
+
}
|
|
53
|
+
}, []);
|
|
54
|
+
|
|
55
|
+
// Register an update listener to update the toolbar when the editor state changes
|
|
56
|
+
(0, _react.useEffect)(() => {
|
|
57
|
+
return (0, _utils.mergeRegister)(editor.registerUpdateListener(({
|
|
58
|
+
editorState
|
|
59
|
+
}) => {
|
|
60
|
+
editorState.read(() => {
|
|
61
|
+
const isEditable = editor.isEditable();
|
|
62
|
+
/* istanbul ignore else */
|
|
63
|
+
if (isEditable) updateToolbar();
|
|
64
|
+
});
|
|
65
|
+
}));
|
|
66
|
+
}, [updateToolbar, editor]);
|
|
67
|
+
|
|
68
|
+
// Register a keydown listener to enable keyboard navigation
|
|
69
|
+
(0, _react.useEffect)(() => {
|
|
70
|
+
const tbRef = toolbarRef.current;
|
|
71
|
+
const handleKeyDown = event => {
|
|
72
|
+
// Get the current index of the active button
|
|
73
|
+
const currentIndex = buttons.findIndex(button => button === document.activeElement);
|
|
74
|
+
|
|
75
|
+
// If the key pressed is the right arrow key, focus the next button
|
|
76
|
+
/* istanbul ignore next */
|
|
77
|
+
if (event.key === "ArrowRight") {
|
|
78
|
+
const nextIndex = (currentIndex + 1) % buttons.length;
|
|
79
|
+
buttons[nextIndex].focus();
|
|
80
|
+
// If the key pressed is the left arrow key, focus the previous button
|
|
81
|
+
} else if (event.key === "ArrowLeft") {
|
|
82
|
+
const prevIndex = (currentIndex - 1 + buttons.length) % buttons.length;
|
|
83
|
+
buttons[prevIndex].focus();
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
toolbarRef.current?.addEventListener("keydown", handleKeyDown);
|
|
87
|
+
return () => {
|
|
88
|
+
tbRef?.removeEventListener("keydown", handleKeyDown);
|
|
89
|
+
};
|
|
90
|
+
}, [buttons]);
|
|
91
|
+
return /*#__PURE__*/_react.default.createElement(_toolbar.StyledToolbar, {
|
|
92
|
+
role: "toolbar",
|
|
93
|
+
"aria-label": locale.textEditor.toolbarAriaLabel(),
|
|
94
|
+
"data-role": `${namespace}-toolbar`,
|
|
95
|
+
id: `${namespace}-toolbar`,
|
|
96
|
+
onFocus: e => e.stopPropagation(),
|
|
97
|
+
ref: toolbarRef
|
|
98
|
+
}, /*#__PURE__*/_react.default.createElement(_toolbar.FormattingButtons, {
|
|
99
|
+
"data-role": `${namespace}-formatting-buttons`
|
|
100
|
+
}, /*#__PURE__*/_react.default.createElement(_buttons.BoldButton, {
|
|
101
|
+
isActive: isBold,
|
|
102
|
+
namespace: namespace
|
|
103
|
+
}), /*#__PURE__*/_react.default.createElement(_buttons.ItalicButton, {
|
|
104
|
+
isActive: isItalic,
|
|
105
|
+
namespace: namespace
|
|
106
|
+
}), /*#__PURE__*/_react.default.createElement(_buttons.ListControls, {
|
|
107
|
+
namespace: namespace
|
|
108
|
+
})), /*#__PURE__*/_react.default.createElement(_toolbar.CommandButtons, {
|
|
109
|
+
"data-role": `${namespace}-command-buttons`
|
|
110
|
+
}, onCancel && /*#__PURE__*/_react.default.createElement(_button.default, {
|
|
111
|
+
buttonType: "tertiary",
|
|
112
|
+
"data-role": `${namespace}-cancel-button`,
|
|
113
|
+
"aria-label": locale.textEditor.cancelButtonAria(),
|
|
114
|
+
onClick: () => onCancel?.()
|
|
115
|
+
}, locale.textEditor.cancelButton()), onSave && /*#__PURE__*/_react.default.createElement(_save.default, {
|
|
116
|
+
namespace: namespace,
|
|
117
|
+
onSave: onSave
|
|
118
|
+
})));
|
|
119
|
+
};
|
|
120
|
+
var _default = exports.default = Toolbar;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ButtonProps } from "../../../../button";
|
|
3
|
+
interface FormattingButtonProps extends ButtonProps {
|
|
4
|
+
tabIndex?: number;
|
|
5
|
+
isActive?: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const StyledToolbar: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
8
|
+
declare const FormattingButtons: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
9
|
+
declare const CommandButtons: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
10
|
+
declare const FormattingButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>, any, FormattingButtonProps, never>;
|
|
11
|
+
export { StyledToolbar, FormattingButtons, CommandButtons, FormattingButton };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StyledToolbar = exports.FormattingButtons = exports.FormattingButton = exports.CommandButtons = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
8
|
+
var _button = _interopRequireDefault(require("../../../../button"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
+
const StyledToolbar = exports.StyledToolbar = _styledComponents.default.div`
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: row;
|
|
15
|
+
gap: 8px;
|
|
16
|
+
background-color: var(--colorsUtilityMajor025);
|
|
17
|
+
outline: 1px solid var(--colorsUtilityMajor200);
|
|
18
|
+
padding: 12px;
|
|
19
|
+
border-radius: var(--borderRadius100);
|
|
20
|
+
border-top-left-radius: 0;
|
|
21
|
+
border-top-right-radius: 0;
|
|
22
|
+
justify-content: space-between;
|
|
23
|
+
align-items: center;
|
|
24
|
+
margin-left: 1px;
|
|
25
|
+
margin-right: 1px;
|
|
26
|
+
`;
|
|
27
|
+
const FormattingButtons = exports.FormattingButtons = _styledComponents.default.div`
|
|
28
|
+
display: flex;
|
|
29
|
+
flex-direction: row;
|
|
30
|
+
gap: 8px;
|
|
31
|
+
`;
|
|
32
|
+
const CommandButtons = exports.CommandButtons = _styledComponents.default.div`
|
|
33
|
+
display: flex;
|
|
34
|
+
flex-direction: row;
|
|
35
|
+
gap: 8px;
|
|
36
|
+
`;
|
|
37
|
+
const FormattingButton = exports.FormattingButton = (0, _styledComponents.default)(_button.default)`
|
|
38
|
+
display: inline-flex;
|
|
39
|
+
justify-content: center;
|
|
40
|
+
align-items: center;
|
|
41
|
+
padding: 6px;
|
|
42
|
+
border-radius: var(--borderRadius100);
|
|
43
|
+
border: medium;
|
|
44
|
+
cursor: pointer;
|
|
45
|
+
|
|
46
|
+
&:hover {
|
|
47
|
+
> span {
|
|
48
|
+
color: var(--colorsUtilityYang100) !important;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
${({
|
|
53
|
+
isActive
|
|
54
|
+
}) => (0, _styledComponents.css)`
|
|
55
|
+
background-color: ${isActive ? "var(--colorsActionMajor600)" : "transparent"};
|
|
56
|
+
`}
|
|
57
|
+
|
|
58
|
+
> span {
|
|
59
|
+
${({
|
|
60
|
+
isActive
|
|
61
|
+
}) => (0, _styledComponents.css)`
|
|
62
|
+
color: ${isActive ? "var(--colorsUtilityYang100)" : "var(--colorsUtilityYin100) "} !important;
|
|
63
|
+
`}
|
|
64
|
+
}
|
|
65
|
+
`;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { default as AutoLinkerPlugin } from "./AutoLinker";
|
|
2
|
+
export { default as CharacterCounterPlugin } from "./CharacterCounter";
|
|
3
|
+
export { default as ContentEditor } from "./ContentEditor";
|
|
4
|
+
export { default as LinkMonitorPlugin } from "./LinkMonitor";
|
|
5
|
+
export { default as LinkPreviewerPlugin } from "./LinkPreviewer";
|
|
6
|
+
export { default as OnChangePlugin } from "./OnChange";
|
|
7
|
+
export { default as Placeholder } from "./Placeholder";
|
|
8
|
+
export { default as ToolbarPlugin } from "./Toolbar";
|
|
9
|
+
export { default as useCursorAtEnd } from "./useCursorAtEnd";
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "AutoLinkerPlugin", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _AutoLinker.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "CharacterCounterPlugin", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _CharacterCounter.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "ContentEditor", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _ContentEditor.default;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "LinkMonitorPlugin", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _LinkMonitor.default;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "LinkPreviewerPlugin", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _LinkPreviewer.default;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "OnChangePlugin", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _OnChange.default;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "Placeholder", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _Placeholder.default;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "ToolbarPlugin", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _Toolbar.default;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "useCursorAtEnd", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _useCursorAtEnd.default;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
var _AutoLinker = _interopRequireDefault(require("./AutoLinker"));
|
|
61
|
+
var _CharacterCounter = _interopRequireDefault(require("./CharacterCounter"));
|
|
62
|
+
var _ContentEditor = _interopRequireDefault(require("./ContentEditor"));
|
|
63
|
+
var _LinkMonitor = _interopRequireDefault(require("./LinkMonitor"));
|
|
64
|
+
var _LinkPreviewer = _interopRequireDefault(require("./LinkPreviewer"));
|
|
65
|
+
var _OnChange = _interopRequireDefault(require("./OnChange"));
|
|
66
|
+
var _Placeholder = _interopRequireDefault(require("./Placeholder"));
|
|
67
|
+
var _Toolbar = _interopRequireDefault(require("./Toolbar"));
|
|
68
|
+
var _useCursorAtEnd = _interopRequireDefault(require("./useCursorAtEnd"));
|
|
69
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _lexical = require("lexical");
|
|
10
|
+
/* istanbul ignore file */
|
|
11
|
+
// Ignore this file in coverage reports because it's a plugin and not part of the main logic.
|
|
12
|
+
|
|
13
|
+
const FOCUS_COMMAND = (0, _lexical.createCommand)("FOCUS_COMMAND");
|
|
14
|
+
// This hook sets the cursor at the end of the editor when it receives focus
|
|
15
|
+
// via keyboard, or at the relevant position when it receives focus via mouse
|
|
16
|
+
function useCursorAtEnd() {
|
|
17
|
+
const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
|
|
18
|
+
(0, _react.useEffect)(() => {
|
|
19
|
+
return editor.registerCommand(FOCUS_COMMAND, payload => {
|
|
20
|
+
editor.update(() => {
|
|
21
|
+
if (!payload.defaultToEnd) {
|
|
22
|
+
const currentSelection = (0, _lexical.$getSelection)();
|
|
23
|
+
if (currentSelection) {
|
|
24
|
+
(0, _lexical.$setSelection)(currentSelection);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const root = (0, _lexical.$getRoot)();
|
|
29
|
+
const numberOfChildren = root.getChildrenSize();
|
|
30
|
+
const selection = (0, _lexical.$createRangeSelection)();
|
|
31
|
+
if (numberOfChildren === 1) {
|
|
32
|
+
const firstNode = root.getFirstChild();
|
|
33
|
+
if (firstNode) {
|
|
34
|
+
if (firstNode && firstNode.getType() === "paragraph") {
|
|
35
|
+
const firstNodeChildren = firstNode.getChildrenSize();
|
|
36
|
+
if (firstNode.getType() === "paragraph" && firstNodeChildren === 0) {
|
|
37
|
+
const emptyTextNode = (0, _lexical.$createTextNode)("");
|
|
38
|
+
firstNode.append(emptyTextNode);
|
|
39
|
+
selection.anchor.set(emptyTextNode.getKey(), 0, "text");
|
|
40
|
+
selection.focus.set(emptyTextNode.getKey(), 0, "text");
|
|
41
|
+
} else {
|
|
42
|
+
const lastNode = firstNode.getLastChild();
|
|
43
|
+
if (lastNode && lastNode.getType() === "text") {
|
|
44
|
+
const contentSize = lastNode.getTextContentSize();
|
|
45
|
+
const lastNodeKey = lastNode.getKey();
|
|
46
|
+
selection.anchor.set(lastNodeKey, contentSize, "text");
|
|
47
|
+
selection.focus.set(lastNodeKey, contentSize, "text");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
(0, _lexical.$setSelection)(selection);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
} else {
|
|
54
|
+
const allTextNodes = root.getAllTextNodes();
|
|
55
|
+
if (allTextNodes.length === 0) return;
|
|
56
|
+
const lastNode = allTextNodes[allTextNodes.length - 1];
|
|
57
|
+
if (lastNode) {
|
|
58
|
+
const offset = lastNode.getTextContentSize();
|
|
59
|
+
selection.anchor.set(lastNode.getKey(), offset, "text");
|
|
60
|
+
selection.focus.set(lastNode.getKey(), offset, "text");
|
|
61
|
+
(0, _lexical.$setSelection)(selection);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
return true;
|
|
66
|
+
}, _lexical.COMMAND_PRIORITY_NORMAL);
|
|
67
|
+
}, [editor]);
|
|
68
|
+
const handleFocus = e => {
|
|
69
|
+
// Check if the focus was triggered by a mouse click
|
|
70
|
+
// relatedTarget is null for mouse clicks, but set for keyboard navigation
|
|
71
|
+
const defaultToEnd = e.relatedTarget !== null;
|
|
72
|
+
editor.dispatchCommand(FOCUS_COMMAND, {
|
|
73
|
+
defaultToEnd
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
return handleFocus;
|
|
77
|
+
}
|
|
78
|
+
var _default = exports.default = useCursorAtEnd;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _LexicalComposer = require("@lexical/react/LexicalComposer");
|
|
8
|
+
var _LexicalContentEditable = require("@lexical/react/LexicalContentEditable");
|
|
9
|
+
var _LexicalErrorBoundary = require("@lexical/react/LexicalErrorBoundary");
|
|
10
|
+
var _LexicalRichTextPlugin = require("@lexical/react/LexicalRichTextPlugin");
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
var _utils = require("./utils");
|
|
14
|
+
var _constants = require("./constants");
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
17
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
|
+
/* eslint-disable no-console */
|
|
19
|
+
|
|
20
|
+
const wrapLinksInAnchors = value => {
|
|
21
|
+
const urlRegex = /((https?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?)/g;
|
|
22
|
+
return value.replace(urlRegex, "<a href='$1'>$1</a>");
|
|
23
|
+
};
|
|
24
|
+
const determineFormat = value => {
|
|
25
|
+
let isJson;
|
|
26
|
+
if (!value) {
|
|
27
|
+
return (0, _utils.createFromHTML)("<p><br></p>");
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const isValidJSON = JSON.parse(value);
|
|
31
|
+
/* istanbul ignore else */
|
|
32
|
+
if (isValidJSON) isJson = true;
|
|
33
|
+
} catch (e) {
|
|
34
|
+
isJson = false;
|
|
35
|
+
}
|
|
36
|
+
if (!isJson) {
|
|
37
|
+
const isHTML = /<[a-z][\s\S]*>/i.test(value);
|
|
38
|
+
if (isHTML) {
|
|
39
|
+
return (0, _utils.createFromHTML)(value);
|
|
40
|
+
}
|
|
41
|
+
const wrappedPlainText = `<p dir="ltr"><span data-lexical-text="true">${wrapLinksInAnchors(value)}</span></p>`;
|
|
42
|
+
return (0, _utils.createFromHTML)(wrappedPlainText);
|
|
43
|
+
}
|
|
44
|
+
return value;
|
|
45
|
+
};
|
|
46
|
+
const ReadOnlyEditor = ({
|
|
47
|
+
namespace = "carbon-rte-readonly",
|
|
48
|
+
value
|
|
49
|
+
}) => {
|
|
50
|
+
const initialConfig = (0, _react.useMemo)(() => {
|
|
51
|
+
return {
|
|
52
|
+
namespace,
|
|
53
|
+
nodes: _constants.markdownNodes,
|
|
54
|
+
onError: console.error,
|
|
55
|
+
theme: _constants.theme,
|
|
56
|
+
editorState: determineFormat(value),
|
|
57
|
+
editable: false
|
|
58
|
+
};
|
|
59
|
+
}, [namespace, value]);
|
|
60
|
+
return /*#__PURE__*/_react.default.createElement(_LexicalComposer.LexicalComposer, {
|
|
61
|
+
initialConfig: initialConfig
|
|
62
|
+
}, /*#__PURE__*/_react.default.createElement(_LexicalRichTextPlugin.RichTextPlugin, {
|
|
63
|
+
contentEditable: /*#__PURE__*/_react.default.createElement(_LexicalContentEditable.ContentEditable, {
|
|
64
|
+
"data-role": `${namespace}-content-editor`
|
|
65
|
+
/** The following are automatically added by Lexical but violate WCAG 4.1.2 Name, Role, Value and so have been overriden */,
|
|
66
|
+
"aria-autocomplete": undefined,
|
|
67
|
+
"aria-readonly": undefined
|
|
68
|
+
}),
|
|
69
|
+
ErrorBoundary: _LexicalErrorBoundary.LexicalErrorBoundary
|
|
70
|
+
}));
|
|
71
|
+
};
|
|
72
|
+
var _default = exports.default = ReadOnlyEditor;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createFromHTML = exports.createEmpty = void 0;
|
|
7
|
+
var _helpers = require("./helpers");
|
|
8
|
+
const createFromHTML = html => {
|
|
9
|
+
// DeserializeHTML is tested as part of the helper tests
|
|
10
|
+
/* istanbul ignore next */
|
|
11
|
+
return (0, _helpers.DeserializeHTML)(html);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/** Creates and returns a string representation of an empty editor */
|
|
15
|
+
exports.createFromHTML = createFromHTML;
|
|
16
|
+
const createEmpty = () => {
|
|
17
|
+
// Create a default empty state
|
|
18
|
+
const value = '{"root":{"children":[{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1}],"direction":null,"format":"","indent":0,"type":"root","version":1}}';
|
|
19
|
+
return value;
|
|
20
|
+
};
|
|
21
|
+
exports.createEmpty = createEmpty;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { default
|
|
1
|
+
export { default } from "./text-editor.component";
|
|
2
|
+
export { createEmpty, createFromHTML } from "./__internal__";
|
|
2
3
|
export type { TextEditorProps } from "./text-editor.component";
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
6
|
+
Object.defineProperty(exports, "createEmpty", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return
|
|
9
|
+
return _internal__.createEmpty;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "createFromHTML", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function () {
|
|
15
|
-
return
|
|
15
|
+
return _internal__.createFromHTML;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
Object.defineProperty(exports, "default", {
|
|
@@ -21,6 +21,6 @@ Object.defineProperty(exports, "default", {
|
|
|
21
21
|
return _textEditor.default;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
-
var _textEditor =
|
|
25
|
-
|
|
26
|
-
function
|
|
24
|
+
var _textEditor = _interopRequireDefault(require("./text-editor.component"));
|
|
25
|
+
var _internal__ = require("./__internal__");
|
|
26
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|