@kaizen/components 1.33.0 → 1.34.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/dist/cjs/Input/Input/types.cjs +7 -0
- package/dist/cjs/Input/Input/types.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/EditableRichTextContent/EditableRichTextContent.cjs +47 -0
- package/dist/cjs/RichTextEditor/EditableRichTextContent/EditableRichTextContent.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/EditableRichTextContent/EditableRichTextContent.module.scss.cjs +8 -0
- package/dist/cjs/RichTextEditor/EditableRichTextContent/EditableRichTextContent.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.cjs +61 -0
- package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.module.scss.cjs +7 -0
- package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/RichTextEditor.cjs +177 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/RichTextEditor.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/RichTextEditor.module.scss.cjs +32 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/RichTextEditor.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/schema.cjs +88 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/schema.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.cjs +43 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.cjs +14 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.cjs +71 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.cjs +7 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.cjs +16 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.cjs +7 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/utils/controlmap.cjs +274 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/utils/controlmap.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/utils/inputrules.cjs +50 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/utils/inputrules.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/utils/keymap.cjs +108 -0
- package/dist/cjs/RichTextEditor/RichTextEditor/utils/keymap.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/constants.cjs +5 -0
- package/dist/cjs/RichTextEditor/constants.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/addMark.cjs +21 -0
- package/dist/cjs/RichTextEditor/utils/commands/addMark.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/getMarkAttrs.cjs +26 -0
- package/dist/cjs/RichTextEditor/utils/commands/getMarkAttrs.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/getMarkRange.cjs +44 -0
- package/dist/cjs/RichTextEditor/utils/commands/getMarkRange.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/listIsActive.cjs +9 -0
- package/dist/cjs/RichTextEditor/utils/commands/listIsActive.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/markContainsSelection.cjs +17 -0
- package/dist/cjs/RichTextEditor/utils/commands/markContainsSelection.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/markIsActive.cjs +15 -0
- package/dist/cjs/RichTextEditor/utils/commands/markIsActive.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/removeMark.cjs +40 -0
- package/dist/cjs/RichTextEditor/utils/commands/removeMark.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/updateMark.cjs +38 -0
- package/dist/cjs/RichTextEditor/utils/commands/updateMark.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/commands/validateAndRemoveMarks.cjs +36 -0
- package/dist/cjs/RichTextEditor/utils/commands/validateAndRemoveMarks.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/core/createRichTextEditor.cjs +53 -0
- package/dist/cjs/RichTextEditor/utils/core/createRichTextEditor.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/core/hooks/useRichTextEditor.cjs +76 -0
- package/dist/cjs/RichTextEditor/utils/core/hooks/useRichTextEditor.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/core/inputrules.cjs +26 -0
- package/dist/cjs/RichTextEditor/utils/core/inputrules.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/core/state.cjs +41 -0
- package/dist/cjs/RichTextEditor/utils/core/state.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/LinkManager.cjs +136 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/LinkManager.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.cjs +62 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.cjs +68 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.cjs +58 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.module.scss.cjs +11 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.module.scss.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.cjs +43 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.cjs +52 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/validation.cjs +16 -0
- package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/validation.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/schema/marks.cjs +73 -0
- package/dist/cjs/RichTextEditor/utils/schema/marks.cjs.map +1 -0
- package/dist/cjs/RichTextEditor/utils/schema/nodes.cjs +35 -0
- package/dist/cjs/RichTextEditor/utils/schema/nodes.cjs.map +1 -0
- package/dist/cjs/TextField/TextField.cjs +3 -1
- package/dist/cjs/TextField/TextField.cjs.map +1 -1
- package/dist/cjs/dts/Input/Input/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/EditableRichTextContent/EditableRichTextContent.d.ts +15 -0
- package/dist/cjs/dts/RichTextEditor/EditableRichTextContent/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/RichTextContent/RichTextContent.d.ts +10 -0
- package/dist/cjs/dts/RichTextEditor/RichTextContent/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/RichTextEditor.d.ts +43 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/index.d.ts +4 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/schema.d.ts +4 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.d.ts +17 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/types.d.ts +2 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.d.ts +11 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/Toolbar/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.d.ts +8 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/utils/controlmap.d.ts +14 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/utils/inputrules.d.ts +2 -0
- package/dist/cjs/dts/RichTextEditor/RichTextEditor/utils/keymap.d.ts +6 -0
- package/dist/cjs/dts/RichTextEditor/constants.d.ts +2 -0
- package/dist/cjs/dts/RichTextEditor/index.d.ts +9 -0
- package/dist/cjs/dts/RichTextEditor/types.d.ts +12 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/addMark.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/fixtures/helpers.d.ts +8 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/fixtures/test-state.d.ts +17 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/getMarkAttrs.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/getMarkRange.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/index.d.ts +9 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/listIsActive.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/markContainsSelection.d.ts +4 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/markIsActive.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/removeMark.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/updateMark.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/commands/validateAndRemoveMarks.d.ts +12 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/createRichTextEditor.d.ts +21 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/fixtures/testState.d.ts +21 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/hooks/useRichTextEditor.d.ts +23 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/index.d.ts +5 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/inputrules.d.ts +4 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/state.d.ts +19 -0
- package/dist/cjs/dts/RichTextEditor/utils/core/types.d.ts +28 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/LinkManager.d.ts +12 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.d.ts +19 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.d.ts +13 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.d.ts +12 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/index.d.ts +3 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.d.ts +10 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/index.d.ts +2 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/types.d.ts +13 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/validation.d.ts +6 -0
- package/dist/cjs/dts/RichTextEditor/utils/plugins/index.d.ts +1 -0
- package/dist/cjs/dts/RichTextEditor/utils/prosemirror/index.d.ts +7 -0
- package/dist/cjs/dts/RichTextEditor/utils/schema/index.d.ts +2 -0
- package/dist/cjs/dts/RichTextEditor/utils/schema/marks.d.ts +2 -0
- package/dist/cjs/dts/RichTextEditor/utils/schema/nodes.d.ts +2 -0
- package/dist/cjs/dts/TextField/TextField.d.ts +2 -2
- package/dist/cjs/dts/index.d.ts +1 -0
- package/dist/cjs/index.cjs +95 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.css +14 -7
- package/dist/esm/Input/Input/types.mjs +4 -0
- package/dist/esm/Input/Input/types.mjs.map +1 -0
- package/dist/esm/RichTextEditor/EditableRichTextContent/EditableRichTextContent.mjs +45 -0
- package/dist/esm/RichTextEditor/EditableRichTextContent/EditableRichTextContent.mjs.map +1 -0
- package/dist/esm/RichTextEditor/EditableRichTextContent/EditableRichTextContent.module.scss.mjs +6 -0
- package/dist/esm/RichTextEditor/EditableRichTextContent/EditableRichTextContent.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.mjs +39 -0
- package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.module.scss.mjs +5 -0
- package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/RichTextEditor.mjs +152 -0
- package/dist/esm/RichTextEditor/RichTextEditor/RichTextEditor.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/RichTextEditor.module.scss.mjs +30 -0
- package/dist/esm/RichTextEditor/RichTextEditor/RichTextEditor.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/schema.mjs +66 -0
- package/dist/esm/RichTextEditor/RichTextEditor/schema.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.mjs +41 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.mjs +12 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.mjs +69 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.mjs +5 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.mjs +14 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.mjs +5 -0
- package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/utils/controlmap.mjs +252 -0
- package/dist/esm/RichTextEditor/RichTextEditor/utils/controlmap.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/utils/inputrules.mjs +29 -0
- package/dist/esm/RichTextEditor/RichTextEditor/utils/inputrules.mjs.map +1 -0
- package/dist/esm/RichTextEditor/RichTextEditor/utils/keymap.mjs +84 -0
- package/dist/esm/RichTextEditor/RichTextEditor/utils/keymap.mjs.map +1 -0
- package/dist/esm/RichTextEditor/constants.mjs +3 -0
- package/dist/esm/RichTextEditor/constants.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/addMark.mjs +19 -0
- package/dist/esm/RichTextEditor/utils/commands/addMark.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/getMarkAttrs.mjs +24 -0
- package/dist/esm/RichTextEditor/utils/commands/getMarkAttrs.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/getMarkRange.mjs +42 -0
- package/dist/esm/RichTextEditor/utils/commands/getMarkRange.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/listIsActive.mjs +7 -0
- package/dist/esm/RichTextEditor/utils/commands/listIsActive.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/markContainsSelection.mjs +15 -0
- package/dist/esm/RichTextEditor/utils/commands/markContainsSelection.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/markIsActive.mjs +13 -0
- package/dist/esm/RichTextEditor/utils/commands/markIsActive.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/removeMark.mjs +38 -0
- package/dist/esm/RichTextEditor/utils/commands/removeMark.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/updateMark.mjs +36 -0
- package/dist/esm/RichTextEditor/utils/commands/updateMark.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/commands/validateAndRemoveMarks.mjs +34 -0
- package/dist/esm/RichTextEditor/utils/commands/validateAndRemoveMarks.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/core/createRichTextEditor.mjs +51 -0
- package/dist/esm/RichTextEditor/utils/core/createRichTextEditor.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/core/hooks/useRichTextEditor.mjs +74 -0
- package/dist/esm/RichTextEditor/utils/core/hooks/useRichTextEditor.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/core/inputrules.mjs +23 -0
- package/dist/esm/RichTextEditor/utils/core/inputrules.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/core/state.mjs +37 -0
- package/dist/esm/RichTextEditor/utils/core/state.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/LinkManager.mjs +134 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/LinkManager.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.mjs +60 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.mjs +66 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.mjs +56 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.module.scss.mjs +9 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.module.scss.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.mjs +41 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.mjs +50 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/validation.mjs +14 -0
- package/dist/esm/RichTextEditor/utils/plugins/LinkManager/validation.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/schema/marks.mjs +71 -0
- package/dist/esm/RichTextEditor/utils/schema/marks.mjs.map +1 -0
- package/dist/esm/RichTextEditor/utils/schema/nodes.mjs +33 -0
- package/dist/esm/RichTextEditor/utils/schema/nodes.mjs.map +1 -0
- package/dist/esm/TextField/TextField.mjs +3 -1
- package/dist/esm/TextField/TextField.mjs.map +1 -1
- package/dist/esm/dts/Input/Input/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/EditableRichTextContent/EditableRichTextContent.d.ts +15 -0
- package/dist/esm/dts/RichTextEditor/EditableRichTextContent/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/RichTextContent/RichTextContent.d.ts +10 -0
- package/dist/esm/dts/RichTextEditor/RichTextContent/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/RichTextEditor.d.ts +43 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/index.d.ts +4 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/schema.d.ts +4 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.d.ts +17 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/types.d.ts +2 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.d.ts +11 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/Toolbar/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.d.ts +8 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/utils/controlmap.d.ts +14 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/utils/inputrules.d.ts +2 -0
- package/dist/esm/dts/RichTextEditor/RichTextEditor/utils/keymap.d.ts +6 -0
- package/dist/esm/dts/RichTextEditor/constants.d.ts +2 -0
- package/dist/esm/dts/RichTextEditor/index.d.ts +9 -0
- package/dist/esm/dts/RichTextEditor/types.d.ts +12 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/addMark.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/fixtures/helpers.d.ts +8 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/fixtures/test-state.d.ts +17 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/getMarkAttrs.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/getMarkRange.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/index.d.ts +9 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/listIsActive.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/markContainsSelection.d.ts +4 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/markIsActive.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/removeMark.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/updateMark.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/commands/validateAndRemoveMarks.d.ts +12 -0
- package/dist/esm/dts/RichTextEditor/utils/core/createRichTextEditor.d.ts +21 -0
- package/dist/esm/dts/RichTextEditor/utils/core/fixtures/testState.d.ts +21 -0
- package/dist/esm/dts/RichTextEditor/utils/core/hooks/useRichTextEditor.d.ts +23 -0
- package/dist/esm/dts/RichTextEditor/utils/core/index.d.ts +5 -0
- package/dist/esm/dts/RichTextEditor/utils/core/inputrules.d.ts +4 -0
- package/dist/esm/dts/RichTextEditor/utils/core/state.d.ts +19 -0
- package/dist/esm/dts/RichTextEditor/utils/core/types.d.ts +28 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/LinkManager.d.ts +12 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.d.ts +19 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.d.ts +13 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.d.ts +12 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/index.d.ts +3 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.d.ts +10 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/index.d.ts +2 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/types.d.ts +13 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/validation.d.ts +6 -0
- package/dist/esm/dts/RichTextEditor/utils/plugins/index.d.ts +1 -0
- package/dist/esm/dts/RichTextEditor/utils/prosemirror/index.d.ts +7 -0
- package/dist/esm/dts/RichTextEditor/utils/schema/index.d.ts +2 -0
- package/dist/esm/dts/RichTextEditor/utils/schema/marks.d.ts +2 -0
- package/dist/esm/dts/RichTextEditor/utils/schema/nodes.d.ts +2 -0
- package/dist/esm/dts/TextField/TextField.d.ts +2 -2
- package/dist/esm/dts/index.d.ts +1 -0
- package/dist/esm/index.css +11 -4
- package/dist/esm/index.mjs +40 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/index.d.ts +304 -3
- package/dist/styles.css +1 -1
- package/locales/cy.json +1 -1
- package/locales/ht.json +1 -1
- package/locales/km-KH.json +1 -1
- package/locales/si-LK.json +1 -1
- package/locales/sk.json +1 -1
- package/package.json +15 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { __rest, __assign } from 'tslib';
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
|
+
import classnames from 'classnames';
|
|
4
|
+
import { createSchemaWithAll } from '../RichTextEditor/schema.mjs';
|
|
5
|
+
import * as ProseMirrorState from 'prosemirror-state';
|
|
6
|
+
import 'prosemirror-view';
|
|
7
|
+
import { useRichTextEditor } from '../utils/core/hooks/useRichTextEditor.mjs';
|
|
8
|
+
import * as ProseMirrorModel from 'prosemirror-model';
|
|
9
|
+
import 'prosemirror-inputrules';
|
|
10
|
+
import 'prosemirror-commands';
|
|
11
|
+
import 'prosemirror-keymap';
|
|
12
|
+
import 'prosemirror-history';
|
|
13
|
+
import 'prosemirror-schema-list';
|
|
14
|
+
import styles from './RichTextContent.module.scss.mjs';
|
|
15
|
+
const RichTextContent = /*#__PURE__*/function () {
|
|
16
|
+
const RichTextContent = function (props) {
|
|
17
|
+
var content = props.content,
|
|
18
|
+
classNameOverride = props.classNameOverride,
|
|
19
|
+
restProps = __rest(props, ["content", "classNameOverride"]);
|
|
20
|
+
var schema = useState(createSchemaWithAll())[0];
|
|
21
|
+
var editorRef = useRichTextEditor(ProseMirrorState.EditorState.create({
|
|
22
|
+
doc: ProseMirrorModel.Node.fromJSON(schema, {
|
|
23
|
+
type: "doc",
|
|
24
|
+
content: content
|
|
25
|
+
}),
|
|
26
|
+
schema: schema
|
|
27
|
+
}), undefined, {
|
|
28
|
+
editable: false
|
|
29
|
+
})[0];
|
|
30
|
+
return /*#__PURE__*/React.createElement("div", __assign({
|
|
31
|
+
ref: editorRef,
|
|
32
|
+
className: classnames(styles.content, classNameOverride)
|
|
33
|
+
}, restProps));
|
|
34
|
+
};
|
|
35
|
+
RichTextContent.displayName = "RichTextContent";
|
|
36
|
+
return RichTextContent;
|
|
37
|
+
}();
|
|
38
|
+
export { RichTextContent };
|
|
39
|
+
//# sourceMappingURL=RichTextContent.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RichTextContent.mjs","sources":["../../../../src/RichTextEditor/RichTextContent/RichTextContent.tsx"],"sourcesContent":["import React, { useState, HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { createSchemaWithAll } from \"../RichTextEditor/schema\"\nimport { EditorContentArray } from \"../types\"\nimport { useRichTextEditor } from \"../utils/core\"\nimport { ProseMirrorModel, ProseMirrorState } from \"../utils/prosemirror\"\nimport styles from \"./RichTextContent.module.scss\"\n\nexport type RichTextContentProps = {\n content: EditorContentArray\n} & OverrideClassName<Omit<HTMLAttributes<HTMLDivElement>, \"content\">>\n\nexport const RichTextContent = (props: RichTextContentProps): JSX.Element => {\n const { content, classNameOverride, ...restProps } = props\n const [schema] = useState<ProseMirrorModel.Schema>(createSchemaWithAll())\n\n const [editorRef] = useRichTextEditor(\n ProseMirrorState.EditorState.create({\n doc: ProseMirrorModel.Node.fromJSON(schema, {\n type: \"doc\",\n content,\n }),\n schema,\n }),\n undefined,\n {\n editable: false,\n }\n )\n\n return (\n <div\n ref={editorRef}\n className={classnames(styles.content, classNameOverride)}\n {...restProps}\n />\n )\n}\n\nRichTextContent.displayName = \"RichTextContent\"\n"],"names":["RichTextContent","props","content","classNameOverride","restProps","__rest","schema","useState","createSchemaWithAll","editorRef","useRichTextEditor","ProseMirrorState","EditorState","create","doc","ProseMirrorModel","Node","fromJSON","type","undefined","editable","React","ref","className","classnames","styles","displayName"],"mappings":";;;;;;;;;;;;;;MAaaA,eAAe;EAAA,MAAfA,eAAe,GAAG,SAAAA,CAACC,KAA2B,EAAA;IACjD,IAAAC,OAAO,GAAsCD,KAAK,CAA3CC,OAAA;MAAEC,iBAAiB,GAAmBF,KAAK,CAAxBE,iBAAA;MAAKC,SAAS,GAAKC,MAAA,CAAAJ,KAAK,EAApD,CAAA,SAAA,EAAA,mBAAA,CAA4C,CAAF;IACzC,IAAAK,MAAM,GAAIC,QAAQ,CAA0BC,mBAAmB,CAAA,CAAE,CAAC,GAA5D;IAEN,IAAAC,SAAS,GAAIC,iBAAiB,CACnCC,gBAAgB,CAACC,WAAW,CAACC,MAAM,CAAC;MAClCC,GAAG,EAAEC,gBAAgB,CAACC,IAAI,CAACC,QAAQ,CAACX,MAAM,EAAE;QAC1CY,IAAI,EAAE,KAAK;QACXhB,OAAO,EAAAA;OACR,CAAC;MACFI,MAAM,EAAAA;IACP,CAAA,CAAC,EACFa,SAAS,EACT;MACEC,QAAQ,EAAE;IACX,CAAA,CACF,GAZe;IAchB,oBACEC;MACEC,GAAG,EAAEb,SAAS;MACdc,SAAS,EAAEC,UAAU,CAACC,MAAM,CAACvB,OAAO,EAAEC,iBAAiB;OACnDC,SAAS,CAAA,CACb;EAEN,CAAC;EAEDJ,eAAe,CAAC0B,WAAW,GAAG,iBAAiB;EAAA,OA3BlC1B,eAAe;AAAA;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RichTextContent.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { __rest, __assign, __spreadArray } from 'tslib';
|
|
2
|
+
import React, { useId, useState, useEffect } from 'react';
|
|
3
|
+
import classnames from 'classnames';
|
|
4
|
+
import { FieldMessage } from '../../FieldMessage/FieldMessage.mjs';
|
|
5
|
+
import { Label } from '../../Label/Label.mjs';
|
|
6
|
+
import { InlineNotification } from '../../Notification/InlineNotification/InlineNotification.mjs';
|
|
7
|
+
import '../../Notification/GlobalNotification/GlobalNotification.mjs';
|
|
8
|
+
import * as ProseMirrorState from 'prosemirror-state';
|
|
9
|
+
import 'prosemirror-view';
|
|
10
|
+
import { useRichTextEditor } from '../utils/core/hooks/useRichTextEditor.mjs';
|
|
11
|
+
import * as ProseMirrorModel from 'prosemirror-model';
|
|
12
|
+
import 'prosemirror-inputrules';
|
|
13
|
+
import { createLinkManager } from '../utils/plugins/LinkManager/LinkManager.mjs';
|
|
14
|
+
import '../utils/plugins/LinkManager/components/LinkEditor/LinkEditor.mjs';
|
|
15
|
+
import '../utils/plugins/LinkManager/components/LinkModal/LinkModal.mjs';
|
|
16
|
+
import '../utils/plugins/LinkManager/components/LinkPopover/LinkPopover.mjs';
|
|
17
|
+
import * as ProseMirrorCommands from 'prosemirror-commands';
|
|
18
|
+
import * as ProseMirrorKeymap from 'prosemirror-keymap';
|
|
19
|
+
import * as ProseMirrorHistory from 'prosemirror-history';
|
|
20
|
+
import 'prosemirror-schema-list';
|
|
21
|
+
import { createSchemaFromControls } from './schema.mjs';
|
|
22
|
+
import { ToggleIconButton } from './subcomponents/ToggleIconButton/ToggleIconButton.mjs';
|
|
23
|
+
import { Toolbar } from './subcomponents/Toolbar/Toolbar.mjs';
|
|
24
|
+
import { ToolbarSection } from './subcomponents/ToolbarSection/ToolbarSection.mjs';
|
|
25
|
+
import { buildControlMap } from './utils/controlmap.mjs';
|
|
26
|
+
import { buildInputRules } from './utils/inputrules.mjs';
|
|
27
|
+
import { buildKeymap } from './utils/keymap.mjs';
|
|
28
|
+
import styles from './RichTextEditor.module.scss.mjs';
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* {@link https://cultureamp.atlassian.net/wiki/spaces/DesignSystem/pages/3081896752/Rich+Text+Editor Guidance} |
|
|
32
|
+
* {@link https://cultureamp.design/?path=/docs/components-richtexteditor--docs Storybook}
|
|
33
|
+
*/
|
|
34
|
+
const RichTextEditor = /*#__PURE__*/function () {
|
|
35
|
+
const RichTextEditor = function (_a) {
|
|
36
|
+
var onChange = _a.onChange,
|
|
37
|
+
defaultValue = _a.defaultValue,
|
|
38
|
+
labelText = _a.labelText,
|
|
39
|
+
labelledBy = _a["aria-labelledby"],
|
|
40
|
+
classNameOverride = _a.classNameOverride,
|
|
41
|
+
controls = _a.controls,
|
|
42
|
+
_b = _a.rows,
|
|
43
|
+
rows = _b === void 0 ? 3 : _b,
|
|
44
|
+
dataError = _a.dataError,
|
|
45
|
+
onDataError = _a.onDataError,
|
|
46
|
+
validationMessage = _a.validationMessage,
|
|
47
|
+
description = _a.description,
|
|
48
|
+
_c = _a.status,
|
|
49
|
+
status = _c === void 0 ? "default" : _c,
|
|
50
|
+
restProps = __rest(_a, ["onChange", "defaultValue", "labelText", "aria-labelledby", "classNameOverride", "controls", "rows", "dataError", "onDataError", "validationMessage", "description", "status"]);
|
|
51
|
+
var reactId = useId();
|
|
52
|
+
var schema = useState(createSchemaFromControls(controls))[0];
|
|
53
|
+
var labelId = useState(labelledBy || reactId)[0];
|
|
54
|
+
var editorId = useState(reactId)[0];
|
|
55
|
+
var useRichTextEditorResult = function () {
|
|
56
|
+
try {
|
|
57
|
+
return useRichTextEditor(ProseMirrorState.EditorState.create({
|
|
58
|
+
doc: ProseMirrorModel.Node.fromJSON(schema, {
|
|
59
|
+
type: "doc",
|
|
60
|
+
// we're converting empty arrays to the ProseMirror default "empty" state because when
|
|
61
|
+
// given an empty array ProseMirror returns undefined, breaking the type
|
|
62
|
+
content: (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.length) > 0 ? defaultValue : [{
|
|
63
|
+
type: "paragraph"
|
|
64
|
+
}]
|
|
65
|
+
}),
|
|
66
|
+
schema: schema,
|
|
67
|
+
plugins: getPlugins(controls, schema)
|
|
68
|
+
}), {
|
|
69
|
+
"aria-labelledby": labelId,
|
|
70
|
+
role: "textbox"
|
|
71
|
+
});
|
|
72
|
+
} catch (_a) {
|
|
73
|
+
return new Error("Bad data error");
|
|
74
|
+
}
|
|
75
|
+
}();
|
|
76
|
+
if (useRichTextEditorResult instanceof Error) {
|
|
77
|
+
onDataError && onDataError();
|
|
78
|
+
return /*#__PURE__*/React.createElement(InlineNotification, {
|
|
79
|
+
headingProps: {
|
|
80
|
+
children: "Error",
|
|
81
|
+
variant: "heading-6"
|
|
82
|
+
},
|
|
83
|
+
type: "negative",
|
|
84
|
+
persistent: true
|
|
85
|
+
}, dataError || "Something went wrong");
|
|
86
|
+
}
|
|
87
|
+
var editorRef = useRichTextEditorResult[0],
|
|
88
|
+
editorState = useRichTextEditorResult[1],
|
|
89
|
+
dispatchTransaction = useRichTextEditorResult[2];
|
|
90
|
+
var controlMap = buildControlMap(schema, editorState, controls);
|
|
91
|
+
useEffect(function () {
|
|
92
|
+
onChange(editorState);
|
|
93
|
+
// Including `onContentChange` in the dependencies here will cause a 'Maximum update depth exceeded' issue
|
|
94
|
+
}, [editorState]);
|
|
95
|
+
var validationMessageAria = validationMessage ? "".concat(editorId, "-rte-validation-message") : "";
|
|
96
|
+
var descriptionAria = description ? "".concat(editorId, "-rte-description") : "";
|
|
97
|
+
var ariaDescribedBy = "".concat(validationMessageAria, " ").concat(descriptionAria);
|
|
98
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, !labelledBy && labelText && /*#__PURE__*/React.createElement(Label, {
|
|
99
|
+
id: labelId,
|
|
100
|
+
labelText: labelText
|
|
101
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
102
|
+
className: classnames(styles.editorWrapper, styles[status])
|
|
103
|
+
}, controls && /*#__PURE__*/React.createElement(Toolbar, {
|
|
104
|
+
"aria-controls": editorId,
|
|
105
|
+
"aria-label": "Text formatting",
|
|
106
|
+
classNameOverride: styles.toolbar
|
|
107
|
+
}, controlMap.map(function (section, index) {
|
|
108
|
+
return /*#__PURE__*/React.createElement(ToolbarSection, {
|
|
109
|
+
key: index
|
|
110
|
+
}, section.map(function (controlConfig, controlKeyIndex) {
|
|
111
|
+
return /*#__PURE__*/React.createElement(ToggleIconButton, {
|
|
112
|
+
key: controlKeyIndex,
|
|
113
|
+
icon: controlConfig.icon,
|
|
114
|
+
disabled: controlConfig.disabled,
|
|
115
|
+
label: controlConfig.label,
|
|
116
|
+
isActive: controlConfig.isActive,
|
|
117
|
+
onClick: function () {
|
|
118
|
+
return dispatchTransaction(controlConfig.action);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}));
|
|
122
|
+
})), /*#__PURE__*/React.createElement("div", __assign({
|
|
123
|
+
id: editorId,
|
|
124
|
+
ref: editorRef,
|
|
125
|
+
className: classnames(styles.editor, styles["rows".concat(rows)], classNameOverride, controls != null && controls.length > 0 && styles.hasToolbar),
|
|
126
|
+
"aria-describedby": ariaDescribedBy
|
|
127
|
+
}, restProps))), validationMessage && /*#__PURE__*/React.createElement(FieldMessage, {
|
|
128
|
+
id: validationMessageAria,
|
|
129
|
+
message: validationMessage,
|
|
130
|
+
status: status
|
|
131
|
+
}), description && /*#__PURE__*/React.createElement(FieldMessage, {
|
|
132
|
+
id: descriptionAria,
|
|
133
|
+
message: description
|
|
134
|
+
}));
|
|
135
|
+
};
|
|
136
|
+
RichTextEditor.displayName = "RichTextEditor";
|
|
137
|
+
return RichTextEditor;
|
|
138
|
+
}();
|
|
139
|
+
function getPlugins(controls, schema) {
|
|
140
|
+
var allControlNames = controls ? controls.reduce(function (acc, c) {
|
|
141
|
+
return __spreadArray(__spreadArray([], acc, true), [c.name], false);
|
|
142
|
+
}, []) : [];
|
|
143
|
+
var plugins = [ProseMirrorHistory.history(), ProseMirrorKeymap.keymap(buildKeymap(schema)), ProseMirrorKeymap.keymap(ProseMirrorCommands.baseKeymap), buildInputRules(schema)];
|
|
144
|
+
if (allControlNames.includes("link")) {
|
|
145
|
+
plugins.push(createLinkManager({
|
|
146
|
+
markType: schema.marks.link
|
|
147
|
+
}));
|
|
148
|
+
}
|
|
149
|
+
return plugins;
|
|
150
|
+
}
|
|
151
|
+
export { RichTextEditor };
|
|
152
|
+
//# sourceMappingURL=RichTextEditor.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RichTextEditor.mjs","sources":["../../../../src/RichTextEditor/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["import React, {\n useState,\n useEffect,\n HTMLAttributes,\n ReactNode,\n useId,\n} from \"react\"\nimport classnames from \"classnames\"\nimport { FieldMessage } from \"~components/FieldMessage\"\nimport { Label } from \"~components/Label\"\nimport { InlineNotification } from \"~components/Notification\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { ToolbarItems, EditorContentArray, EditorRows } from \"../types\"\nimport { useRichTextEditor } from \"../utils/core\"\nimport { createLinkManager } from \"../utils/plugins\"\nimport {\n ProseMirrorCommands,\n ProseMirrorHistory,\n ProseMirrorKeymap,\n ProseMirrorModel,\n ProseMirrorState,\n} from \"../utils/prosemirror\"\nimport { createSchemaFromControls } from \"./schema\"\nimport { ToggleIconButton } from \"./subcomponents/ToggleIconButton\"\nimport { Toolbar } from \"./subcomponents/Toolbar\"\nimport { ToolbarSection } from \"./subcomponents/ToolbarSection\"\nimport { buildControlMap } from \"./utils/controlmap\"\nimport { buildInputRules } from \"./utils/inputrules\"\nimport { buildKeymap } from \"./utils/keymap\"\nimport styles from \"./RichTextEditor.module.scss\"\n\ntype BaseRichTextEditorProps = {\n onChange: (content: ProseMirrorState.EditorState) => void\n defaultValue: EditorContentArray\n controls?: ToolbarItems[]\n /**\n * Sets a default min-height for the editable area in units of body paragraph line height, similar to the 'rows' attribute on <textarea>.\n * The editable area will autogrow, so this only affects the component when the content doesn't exceed this height.\n */\n rows?: EditorRows\n dataError?: React.ReactElement\n onDataError?: () => void\n status?: \"default\" | \"error\" | \"caution\"\n /**\n * A descriptive message for `error` or `caution` states\n */\n validationMessage?: React.ReactNode\n /**\n * A description that provides context\n */\n description?: React.ReactNode\n} & OverrideClassName<\n Omit<HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\">\n>\n\ntype WithLabelText = {\n labelText: ReactNode\n \"aria-labelledby\"?: never\n}\n\ntype WithLabelledBy = {\n labelText?: never\n \"aria-labelledby\": string\n}\n\nexport type RichTextEditorProps = BaseRichTextEditorProps &\n (WithLabelText | WithLabelledBy)\n/**\n * {@link https://cultureamp.atlassian.net/wiki/spaces/DesignSystem/pages/3081896752/Rich+Text+Editor Guidance} |\n * {@link https://cultureamp.design/?path=/docs/components-richtexteditor--docs Storybook}\n */\nexport const RichTextEditor = ({\n onChange,\n defaultValue,\n labelText,\n \"aria-labelledby\": labelledBy,\n classNameOverride,\n controls,\n rows = 3,\n dataError,\n onDataError,\n validationMessage,\n description,\n status = \"default\",\n ...restProps\n}: RichTextEditorProps): JSX.Element => {\n const reactId = useId()\n const [schema] = useState<ProseMirrorModel.Schema>(\n createSchemaFromControls(controls)\n )\n const [labelId] = useState<string>(labelledBy || reactId)\n const [editorId] = useState<string>(reactId)\n\n const useRichTextEditorResult = (():\n | ReturnType<typeof useRichTextEditor>\n | Error => {\n try {\n return useRichTextEditor(\n ProseMirrorState.EditorState.create({\n doc: ProseMirrorModel.Node.fromJSON(schema, {\n type: \"doc\",\n // we're converting empty arrays to the ProseMirror default \"empty\" state because when\n // given an empty array ProseMirror returns undefined, breaking the type\n content:\n defaultValue?.length > 0 ? defaultValue : [{ type: \"paragraph\" }],\n }),\n schema,\n plugins: getPlugins(controls, schema),\n }),\n { \"aria-labelledby\": labelId, role: \"textbox\" }\n )\n } catch {\n return new Error(\"Bad data error\")\n }\n })()\n\n if (useRichTextEditorResult instanceof Error) {\n onDataError && onDataError()\n return (\n <InlineNotification\n headingProps={{\n children: \"Error\",\n variant: \"heading-6\",\n }}\n type=\"negative\"\n persistent\n >\n {dataError || \"Something went wrong\"}\n </InlineNotification>\n )\n }\n\n const [editorRef, editorState, dispatchTransaction] = useRichTextEditorResult\n\n const controlMap = buildControlMap(schema, editorState, controls)\n\n useEffect(() => {\n onChange(editorState)\n // Including `onContentChange` in the dependencies here will cause a 'Maximum update depth exceeded' issue\n }, [editorState])\n\n const validationMessageAria = validationMessage\n ? `${editorId}-rte-validation-message`\n : \"\"\n const descriptionAria = description ? `${editorId}-rte-description` : \"\"\n\n const ariaDescribedBy = `${validationMessageAria} ${descriptionAria}`\n\n return (\n <>\n {!labelledBy && labelText && <Label id={labelId} labelText={labelText} />}\n {/* TODO: add a bit of margin here once we have a classNameOverride on Label */}\n <div className={classnames(styles.editorWrapper, styles[status])}>\n {controls && (\n <Toolbar\n aria-controls={editorId}\n aria-label=\"Text formatting\"\n classNameOverride={styles.toolbar}\n >\n {controlMap.map((section, index) => (\n <ToolbarSection key={index}>\n {section.map((controlConfig, controlKeyIndex) => (\n <ToggleIconButton\n key={controlKeyIndex}\n icon={controlConfig.icon}\n disabled={controlConfig.disabled}\n label={controlConfig.label}\n isActive={controlConfig.isActive}\n onClick={(): void =>\n dispatchTransaction(controlConfig.action)\n }\n />\n ))}\n </ToolbarSection>\n ))}\n </Toolbar>\n )}\n <div\n id={editorId}\n ref={editorRef}\n className={classnames(\n styles.editor,\n styles[`rows${rows}`],\n classNameOverride,\n controls != null && controls.length > 0 && styles.hasToolbar\n )}\n aria-describedby={ariaDescribedBy}\n {...restProps}\n />\n </div>\n\n {validationMessage && (\n <FieldMessage\n id={validationMessageAria}\n message={validationMessage}\n status={status}\n />\n )}\n\n {description && (\n <FieldMessage id={descriptionAria} message={description} />\n )}\n </>\n )\n}\n\nRichTextEditor.displayName = \"RichTextEditor\"\n\nfunction getPlugins(\n controls: ToolbarItems[] | undefined,\n schema: ProseMirrorModel.Schema\n): Array<\n | ProseMirrorState.Plugin<unknown>\n | ProseMirrorState.Plugin<{\n transform: ProseMirrorState.Transaction\n from: number\n to: number\n text: string\n } | null>\n> {\n const allControlNames: string[] = controls\n ? controls.reduce((acc: string[], c: ToolbarItems) => [...acc, c.name], [])\n : []\n const plugins = [\n ProseMirrorHistory.history(),\n ProseMirrorKeymap.keymap(buildKeymap(schema)),\n ProseMirrorKeymap.keymap(ProseMirrorCommands.baseKeymap),\n buildInputRules(schema),\n ]\n\n if (allControlNames.includes(\"link\")) {\n plugins.push(\n createLinkManager({\n markType: schema.marks.link,\n })\n )\n }\n\n return plugins\n}\n"],"names":["RichTextEditor","_a","onChange","defaultValue","labelText","labelledBy","classNameOverride","controls","_b","rows","dataError","onDataError","validationMessage","description","_c","status","restProps","__rest","reactId","useId","schema","useState","createSchemaFromControls","labelId","editorId","useRichTextEditorResult","useRichTextEditor","ProseMirrorState","EditorState","create","doc","ProseMirrorModel","Node","fromJSON","type","content","length","plugins","getPlugins","role","Error","React","createElement","InlineNotification","headingProps","children","variant","persistent","editorRef","editorState","dispatchTransaction","controlMap","buildControlMap","useEffect","validationMessageAria","concat","descriptionAria","ariaDescribedBy","Fragment","Label","id","className","classnames","styles","editorWrapper","Toolbar","toolbar","map","section","index","ToolbarSection","key","controlConfig","controlKeyIndex","ToggleIconButton","icon","disabled","label","isActive","onClick","action","__assign","ref","editor","hasToolbar","FieldMessage","message","displayName","allControlNames","reduce","acc","c","name","ProseMirrorHistory","history","ProseMirrorKeymap","keymap","buildKeymap","ProseMirrorCommands","baseKeymap","buildInputRules","includes","push","createLinkManager","markType","marks","link"],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
var styles = {
|
|
2
|
+
"editor": "RichTextEditor-module_editor__pVKqW",
|
|
3
|
+
"hasToolbar": "RichTextEditor-module_hasToolbar__EBxnG",
|
|
4
|
+
"editorWrapper": "RichTextEditor-module_editorWrapper__5q3mG",
|
|
5
|
+
"toolbar": "RichTextEditor-module_toolbar__ceLvw",
|
|
6
|
+
"error": "RichTextEditor-module_error__Xugz8",
|
|
7
|
+
"caution": "RichTextEditor-module_caution__6q0z6",
|
|
8
|
+
"rows1": "RichTextEditor-module_rows1__DDEf4",
|
|
9
|
+
"rows2": "RichTextEditor-module_rows2__kzYgh",
|
|
10
|
+
"rows3": "RichTextEditor-module_rows3__SA7Zu",
|
|
11
|
+
"rows4": "RichTextEditor-module_rows4__gkZry",
|
|
12
|
+
"rows5": "RichTextEditor-module_rows5__4Rq2z",
|
|
13
|
+
"rows6": "RichTextEditor-module_rows6__SH-4R",
|
|
14
|
+
"rows7": "RichTextEditor-module_rows7__z02vY",
|
|
15
|
+
"rows8": "RichTextEditor-module_rows8__4j-9e",
|
|
16
|
+
"rows9": "RichTextEditor-module_rows9__67hDj",
|
|
17
|
+
"rows10": "RichTextEditor-module_rows10__qysh1",
|
|
18
|
+
"rows11": "RichTextEditor-module_rows11__o5iYX",
|
|
19
|
+
"rows12": "RichTextEditor-module_rows12__ug-Nv",
|
|
20
|
+
"rows13": "RichTextEditor-module_rows13__tFBG7",
|
|
21
|
+
"rows14": "RichTextEditor-module_rows14__xqS6h",
|
|
22
|
+
"rows15": "RichTextEditor-module_rows15__dzeUM",
|
|
23
|
+
"rows16": "RichTextEditor-module_rows16__GyRco",
|
|
24
|
+
"rows17": "RichTextEditor-module_rows17__GyNby",
|
|
25
|
+
"rows18": "RichTextEditor-module_rows18__fe-Rb",
|
|
26
|
+
"rows19": "RichTextEditor-module_rows19__fc0-T",
|
|
27
|
+
"rows20": "RichTextEditor-module_rows20__p9rwF"
|
|
28
|
+
};
|
|
29
|
+
export { styles as default };
|
|
30
|
+
//# sourceMappingURL=RichTextEditor.module.scss.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RichTextEditor.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { __spreadArray, __assign } from 'tslib';
|
|
2
|
+
import { TOOLBAR_CONTROLS } from '../constants.mjs';
|
|
3
|
+
import 'prosemirror-commands';
|
|
4
|
+
import 'prosemirror-keymap';
|
|
5
|
+
import 'prosemirror-history';
|
|
6
|
+
import 'prosemirror-state';
|
|
7
|
+
import * as ProseMirrorModel from 'prosemirror-model';
|
|
8
|
+
import 'prosemirror-inputrules';
|
|
9
|
+
import 'prosemirror-schema-list';
|
|
10
|
+
import { getMarks } from '../utils/schema/marks.mjs';
|
|
11
|
+
import { getNodes } from '../utils/schema/nodes.mjs';
|
|
12
|
+
var createSchemaFromControls = function (controls) {
|
|
13
|
+
if (!controls) {
|
|
14
|
+
return createSchema();
|
|
15
|
+
}
|
|
16
|
+
var namesFromControls = controls.reduce(function (acc, c) {
|
|
17
|
+
return __spreadArray(__spreadArray([], acc, true), [c.name], false);
|
|
18
|
+
}, []);
|
|
19
|
+
return createSchema(namesFromControls);
|
|
20
|
+
};
|
|
21
|
+
var createSchemaWithAll = function () {
|
|
22
|
+
return createSchema(TOOLBAR_CONTROLS);
|
|
23
|
+
};
|
|
24
|
+
var createSchema = function (controls) {
|
|
25
|
+
var nodes = getNodes();
|
|
26
|
+
var marks = getMarks();
|
|
27
|
+
var defaultNodes = {
|
|
28
|
+
doc: nodes.doc,
|
|
29
|
+
paragraph: nodes.paragraph,
|
|
30
|
+
text: nodes.text,
|
|
31
|
+
hardBreak: nodes.hardBreak
|
|
32
|
+
};
|
|
33
|
+
if (!controls) {
|
|
34
|
+
return new ProseMirrorModel.Schema({
|
|
35
|
+
nodes: defaultNodes
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
var newNodes = __assign({}, defaultNodes);
|
|
39
|
+
var newMarks = {};
|
|
40
|
+
if (controls.includes("bold")) {
|
|
41
|
+
newMarks["strong"] = marks.strong;
|
|
42
|
+
}
|
|
43
|
+
if (controls.includes("italic")) {
|
|
44
|
+
newMarks["em"] = marks.em;
|
|
45
|
+
}
|
|
46
|
+
if (controls.includes("underline")) {
|
|
47
|
+
newMarks["underline"] = marks.underline;
|
|
48
|
+
}
|
|
49
|
+
if (controls.includes("bulletList")) {
|
|
50
|
+
newNodes["bulletList"] = nodes.bulletList;
|
|
51
|
+
newNodes["listItem"] = nodes.listItem;
|
|
52
|
+
}
|
|
53
|
+
if (controls.includes("orderedList")) {
|
|
54
|
+
newNodes["orderedList"] = nodes.orderedList;
|
|
55
|
+
newNodes["listItem"] = nodes.listItem;
|
|
56
|
+
}
|
|
57
|
+
if (controls.includes("link")) {
|
|
58
|
+
newMarks["link"] = marks.link;
|
|
59
|
+
}
|
|
60
|
+
return new ProseMirrorModel.Schema({
|
|
61
|
+
nodes: newNodes,
|
|
62
|
+
marks: newMarks
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
export { createSchemaFromControls, createSchemaWithAll };
|
|
66
|
+
//# sourceMappingURL=schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.mjs","sources":["../../../../src/RichTextEditor/RichTextEditor/schema.ts"],"sourcesContent":["import { MarkSpec } from \"prosemirror-model\"\nimport { TOOLBAR_CONTROLS } from \"../constants\"\nimport { ToolbarItems, ToolbarControlTypes } from \"../types\"\nimport { ProseMirrorModel } from \"../utils/prosemirror\"\nimport { getMarks, getNodes } from \"../utils/schema\"\n\nexport const createSchemaFromControls = (\n controls?: ToolbarItems[]\n): ProseMirrorModel.Schema<string> => {\n if (!controls) {\n return createSchema()\n }\n\n const namesFromControls = controls.reduce(\n (acc: ToolbarControlTypes[], c: ToolbarItems) => [...acc, c.name],\n []\n )\n\n return createSchema(namesFromControls)\n}\n\nexport const createSchemaWithAll = (): ProseMirrorModel.Schema<string> =>\n createSchema(TOOLBAR_CONTROLS)\n\nconst createSchema = (\n controls?: ToolbarControlTypes[]\n): ProseMirrorModel.Schema<string> => {\n const nodes = getNodes()\n const marks = getMarks()\n\n const defaultNodes: ProseMirrorModel.NodeSpec = {\n doc: nodes.doc,\n paragraph: nodes.paragraph,\n text: nodes.text,\n hardBreak: nodes.hardBreak,\n }\n\n if (!controls) {\n return new ProseMirrorModel.Schema({\n nodes: defaultNodes,\n })\n }\n\n const newNodes: typeof nodes = { ...defaultNodes }\n const newMarks: MarkSpec = {}\n\n if (controls.includes(\"bold\")) {\n newMarks[\"strong\"] = marks.strong\n }\n\n if (controls.includes(\"italic\")) {\n newMarks[\"em\"] = marks.em\n }\n\n if (controls.includes(\"underline\")) {\n newMarks[\"underline\"] = marks.underline\n }\n\n if (controls.includes(\"bulletList\")) {\n newNodes[\"bulletList\"] = nodes.bulletList\n newNodes[\"listItem\"] = nodes.listItem\n }\n\n if (controls.includes(\"orderedList\")) {\n newNodes[\"orderedList\"] = nodes.orderedList\n newNodes[\"listItem\"] = nodes.listItem\n }\n\n if (controls.includes(\"link\")) {\n newMarks[\"link\"] = marks.link\n }\n\n return new ProseMirrorModel.Schema({\n nodes: newNodes,\n marks: newMarks,\n })\n}\n"],"names":["createSchemaFromControls","controls","createSchema","namesFromControls","reduce","acc","c","name","createSchemaWithAll","TOOLBAR_CONTROLS","nodes","getNodes","marks","getMarks","defaultNodes","doc","paragraph","text","hardBreak","ProseMirrorModel","Schema","newNodes","__assign","newMarks","includes","strong","em","underline","bulletList","listItem","orderedList","link"],"mappings":";;;;;;;;;;;AAMO,IAAMA,wBAAwB,GAAG,SAAAA,CACtCC,QAAyB,EAAA;EAEzB,IAAI,CAACA,QAAQ,EAAE;IACb,OAAOC,YAAY,CAAA,CAAE;EACtB;EAED,IAAMC,iBAAiB,GAAGF,QAAQ,CAACG,MAAM,CACvC,UAACC,GAA0B,EAAEC,CAAe,EAAA;IAAK,uCAAID,GAAG,EAAA,IAAA,CAAA,EAAA,CAAEC,CAAC,CAACC,IAAI;GAAC,EACjE,EAAE,CACH;EAED,OAAOL,YAAY,CAACC,iBAAiB,CAAC;AACxC,CAAC;AAEY,IAAAK,mBAAmB,GAAG,SAAAA,CAAA,EAAA;EACjC,OAAAN,YAAY,CAACO,gBAAgB,CAAC;AAA9B,CAA8B;AAEhC,IAAMP,YAAY,GAAG,SAAAA,CACnBD,QAAgC,EAAA;EAEhC,IAAMS,KAAK,GAAGC,QAAQ,EAAE;EACxB,IAAMC,KAAK,GAAGC,QAAQ,EAAE;EAExB,IAAMC,YAAY,GAA8B;IAC9CC,GAAG,EAAEL,KAAK,CAACK,GAAG;IACdC,SAAS,EAAEN,KAAK,CAACM,SAAS;IAC1BC,IAAI,EAAEP,KAAK,CAACO,IAAI;IAChBC,SAAS,EAAER,KAAK,CAACQ;GAClB;EAED,IAAI,CAACjB,QAAQ,EAAE;IACb,OAAO,IAAIkB,gBAAgB,CAACC,MAAM,CAAC;MACjCV,KAAK,EAAEI;IACR,CAAA,CAAC;EACH;EAED,IAAMO,QAAQ,GAAAC,QAAA,CAAA,CAAA,CAAA,EAAsBR,YAAY,CAAE;EAClD,IAAMS,QAAQ,GAAa,CAAA,CAAE;EAE7B,IAAItB,QAAQ,CAACuB,QAAQ,CAAC,MAAM,CAAC,EAAE;IAC7BD,QAAQ,CAAC,QAAQ,CAAC,GAAGX,KAAK,CAACa,MAAM;EAClC;EAED,IAAIxB,QAAQ,CAACuB,QAAQ,CAAC,QAAQ,CAAC,EAAE;IAC/BD,QAAQ,CAAC,IAAI,CAAC,GAAGX,KAAK,CAACc,EAAE;EAC1B;EAED,IAAIzB,QAAQ,CAACuB,QAAQ,CAAC,WAAW,CAAC,EAAE;IAClCD,QAAQ,CAAC,WAAW,CAAC,GAAGX,KAAK,CAACe,SAAS;EACxC;EAED,IAAI1B,QAAQ,CAACuB,QAAQ,CAAC,YAAY,CAAC,EAAE;IACnCH,QAAQ,CAAC,YAAY,CAAC,GAAGX,KAAK,CAACkB,UAAU;IACzCP,QAAQ,CAAC,UAAU,CAAC,GAAGX,KAAK,CAACmB,QAAQ;EACtC;EAED,IAAI5B,QAAQ,CAACuB,QAAQ,CAAC,aAAa,CAAC,EAAE;IACpCH,QAAQ,CAAC,aAAa,CAAC,GAAGX,KAAK,CAACoB,WAAW;IAC3CT,QAAQ,CAAC,UAAU,CAAC,GAAGX,KAAK,CAACmB,QAAQ;EACtC;EAED,IAAI5B,QAAQ,CAACuB,QAAQ,CAAC,MAAM,CAAC,EAAE;IAC7BD,QAAQ,CAAC,MAAM,CAAC,GAAGX,KAAK,CAACmB,IAAI;EAC9B;EAED,OAAO,IAAIZ,gBAAgB,CAACC,MAAM,CAAC;IACjCV,KAAK,EAAEW,QAAQ;IACfT,KAAK,EAAEW;EACR,CAAA,CAAC;AACJ,CAAC;"}
|
package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.mjs
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { __rest, __assign } from 'tslib';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import classnames from 'classnames';
|
|
4
|
+
import { Tooltip } from '../../../../Tooltip/Tooltip.mjs';
|
|
5
|
+
import styles from './ToggleIconButton.module.scss.mjs';
|
|
6
|
+
const ToggleIconButton = /*#__PURE__*/function () {
|
|
7
|
+
const ToggleIconButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
8
|
+
var label = props.label,
|
|
9
|
+
icon = props.icon,
|
|
10
|
+
_a = props.isActive,
|
|
11
|
+
isActive = _a === void 0 ? false : _a,
|
|
12
|
+
_b = props.mood,
|
|
13
|
+
mood = _b === void 0 ? "default" : _b,
|
|
14
|
+
_c = props.disabled,
|
|
15
|
+
disabled = _c === void 0 ? false : _c,
|
|
16
|
+
classNameOverride = props.classNameOverride,
|
|
17
|
+
onClick = props.onClick,
|
|
18
|
+
nativeButtonProps = __rest(props, ["label", "icon", "isActive", "mood", "disabled", "classNameOverride", "onClick"]);
|
|
19
|
+
return /*#__PURE__*/React.createElement(Tooltip, {
|
|
20
|
+
text: label,
|
|
21
|
+
display: "inline-block",
|
|
22
|
+
position: "above",
|
|
23
|
+
animationDuration: 5
|
|
24
|
+
}, /*#__PURE__*/React.createElement("button", __assign({
|
|
25
|
+
ref: ref,
|
|
26
|
+
type: "button",
|
|
27
|
+
"aria-pressed": isActive,
|
|
28
|
+
"aria-label": label,
|
|
29
|
+
"aria-disabled": disabled,
|
|
30
|
+
onMouseDown: function (e) {
|
|
31
|
+
return e.preventDefault();
|
|
32
|
+
},
|
|
33
|
+
onClick: !disabled ? onClick : undefined,
|
|
34
|
+
className: classnames(styles.button, classNameOverride, styles[mood], isActive && styles.active, disabled && styles.disabled)
|
|
35
|
+
}, nativeButtonProps), icon));
|
|
36
|
+
});
|
|
37
|
+
ToggleIconButton.displayName = "ToggleIconButton";
|
|
38
|
+
return ToggleIconButton;
|
|
39
|
+
}();
|
|
40
|
+
export { ToggleIconButton };
|
|
41
|
+
//# sourceMappingURL=ToggleIconButton.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleIconButton.mjs","sources":["../../../../../../src/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.tsx"],"sourcesContent":["import React from \"react\"\nimport classnames from \"classnames\"\nimport { Tooltip } from \"~components/Tooltip\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { ToggleIconButtonMoods } from \"./types\"\nimport styles from \"./ToggleIconButton.module.scss\"\n\nexport type ToggleIconButtonProps = {\n icon: JSX.Element\n label: string\n /*\n * determines the active or inactive state along with the \"aria-pressed\" attribute\n */\n isActive?: boolean\n mood?: ToggleIconButtonMoods\n} & OverrideClassName<React.ButtonHTMLAttributes<HTMLButtonElement>>\n\nexport const ToggleIconButton = React.forwardRef<\n HTMLButtonElement,\n ToggleIconButtonProps\n>((props, ref) => {\n const {\n label,\n icon,\n isActive = false,\n mood = \"default\",\n disabled = false,\n classNameOverride,\n onClick,\n ...nativeButtonProps\n } = props\n return (\n <Tooltip\n text={label}\n display=\"inline-block\"\n position=\"above\"\n animationDuration={5}\n >\n <button\n ref={ref}\n type=\"button\"\n aria-pressed={isActive}\n aria-label={label}\n aria-disabled={disabled}\n onMouseDown={(e): void => e.preventDefault()}\n onClick={!disabled ? onClick : undefined}\n className={classnames(\n styles.button,\n classNameOverride,\n styles[mood],\n isActive && styles.active,\n disabled && styles.disabled\n )}\n {...nativeButtonProps}\n >\n {icon}\n </button>\n </Tooltip>\n )\n})\n\nToggleIconButton.displayName = \"ToggleIconButton\"\n"],"names":["ToggleIconButton","React","forwardRef","props","ref","label","icon","_a","isActive","_b","mood","_c","disabled","classNameOverride","onClick","nativeButtonProps","__rest","createElement","Tooltip","text","display","position","animationDuration","__assign","type","onMouseDown","e","preventDefault","undefined","className","classnames","styles","button","active","displayName"],"mappings":";;;;;MAiBaA,gBAAgB;EAAA,MAAhBA,gBAAgB,gBAAGC,KAAK,CAACC,UAAU,CAG9C,UAACC,KAAK,EAAEC,GAAG,EAAA;IAET,IAAAC,KAAK,GAQHF,KAAK,CARFE,KAAA;MACLC,IAAI,GAOFH,KAAK,CAPHG,IAAA;MACJC,EAME,GAAAJ,KAAK,SANS;MAAhBK,QAAQ,GAAGD,EAAA,KAAA,KAAA,CAAA,GAAA,KAAK,GAAAA,EAAA;MAChBE,KAKEN,KAAK,CAAAO,IALS;MAAhBA,IAAI,GAAGD,EAAA,KAAA,KAAA,CAAA,GAAA,SAAS,KAAA;MAChBE,EAAA,GAIER,KAAK,CAAAS,QAJS;MAAhBA,QAAQ,mBAAG,KAAK,GAAAD,EAAA;MAChBE,iBAAiB,GAGfV,KAAK,kBAHU;MACjBW,OAAO,GAELX,KAAK,CAFAW,OAAA;MACJC,iBAAiB,GAAAC,MAAA,CAClBb,KAAK,EATH,CASL,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,SAAA,CAAA,CADqB;IAEtB,oBACEF,KAAC,CAAAgB,aAAA,CAAAC,OAAO;MACNC,IAAI,EAAEd,KAAK;MACXe,OAAO,EAAC,cAAc;MACtBC,QAAQ,EAAC,OAAO;MAChBC,iBAAiB,EAAE;IAAC,CAAA,eAEpBrB,KAAA,CAAAgB,aAAA,CAAA,QAAA,EAAAM,QAAA,CAAA;MACEnB,GAAG,EAAEA,GAAG;MACRoB,IAAI,EAAC,QAAQ;MACC,cAAA,EAAAhB,QAAQ;oBACVH,KAAK;MAAA,eAAA,EACFO,QAAQ;MACvBa,WAAW,EAAE,SAAAA,CAACC,CAAC,EAAA;QAAW,OAAAA,CAAC,CAACC,cAAc,CAAA,CAAE;MAAA,CAAA;MAC5Cb,OAAO,EAAE,CAACF,QAAQ,GAAGE,OAAO,GAAGc,SAAS;MACxCC,SAAS,EAAEC,UAAU,CACnBC,MAAM,CAACC,MAAM,EACbnB,iBAAiB,EACjBkB,MAAM,CAACrB,IAAI,CAAC,EACZF,QAAQ,IAAIuB,MAAM,CAACE,MAAM,EACzBrB,QAAQ,IAAImB,MAAM,CAACnB,QAAQ;IAC5B,CAAA,EACGG,iBAAiB,CAEpB,EAAAT,IAAI,CACE,CACD;EAEd,CAAC,CAAC;EAEFN,gBAAgB,CAACkC,WAAW,GAAG,kBAAkB;EAAA,OA5CpClC,gBAAgB;AAAA;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
var styles = {
|
|
2
|
+
"button": "ToggleIconButton-module_button__86Iau",
|
|
3
|
+
"disabled": "ToggleIconButton-module_disabled__rwpBC",
|
|
4
|
+
"default": "ToggleIconButton-module_default__2fWS1",
|
|
5
|
+
"active": "ToggleIconButton-module_active__YLYx9",
|
|
6
|
+
"secondary": "ToggleIconButton-module_secondary__2bzRa",
|
|
7
|
+
"primary": "ToggleIconButton-module_primary__-y-0m",
|
|
8
|
+
"destructive": "ToggleIconButton-module_destructive__-PY2A",
|
|
9
|
+
"secondary-destructive": "ToggleIconButton-module_secondary-destructive__t6UEj"
|
|
10
|
+
};
|
|
11
|
+
export { styles as default };
|
|
12
|
+
//# sourceMappingURL=ToggleIconButton.module.scss.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleIconButton.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { __rest, __assign } from 'tslib';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import classnames from 'classnames';
|
|
4
|
+
import styles from './Toolbar.module.scss.mjs';
|
|
5
|
+
var determineValidKeypress = function (event) {
|
|
6
|
+
var validKeys = {
|
|
7
|
+
left: "ArrowLeft",
|
|
8
|
+
right: "ArrowRight"
|
|
9
|
+
};
|
|
10
|
+
return Object.values(validKeys).includes(event.key);
|
|
11
|
+
};
|
|
12
|
+
var handleKeyDown = function (e, buttonIndex, buttonFocusIndex, setFocusIndex, toolbarButtons) {
|
|
13
|
+
if (!determineValidKeypress(e)) return;
|
|
14
|
+
var newFocusIndex;
|
|
15
|
+
var lastButtonIndex = toolbarButtons.current.length - 1;
|
|
16
|
+
if (e.key === "ArrowLeft") {
|
|
17
|
+
newFocusIndex = buttonIndex === 0 ? lastButtonIndex : buttonFocusIndex - 1;
|
|
18
|
+
} else {
|
|
19
|
+
newFocusIndex = buttonIndex === lastButtonIndex ? 0 : buttonFocusIndex + 1;
|
|
20
|
+
}
|
|
21
|
+
setFocusIndex(newFocusIndex);
|
|
22
|
+
toolbarButtons.current[newFocusIndex].focus();
|
|
23
|
+
};
|
|
24
|
+
const Toolbar = /*#__PURE__*/function () {
|
|
25
|
+
const Toolbar = function (props) {
|
|
26
|
+
var toolbarChildren = props.children,
|
|
27
|
+
classNameOverride = props.classNameOverride,
|
|
28
|
+
toolbarProps = __rest(props, ["children", "classNameOverride"]);
|
|
29
|
+
var _a = React.useState(0),
|
|
30
|
+
buttonFocusIndex = _a[0],
|
|
31
|
+
setButtonFocusIndex = _a[1];
|
|
32
|
+
var toolbarButtonsRef = React.useRef([]);
|
|
33
|
+
var buttonCount = 0;
|
|
34
|
+
return /*#__PURE__*/React.createElement("div", __assign({
|
|
35
|
+
className: classnames(styles.toolbar, classNameOverride),
|
|
36
|
+
role: "toolbar"
|
|
37
|
+
}, toolbarProps), React.Children.map(toolbarChildren, function (toolbarSection, sectionIndex) {
|
|
38
|
+
if (! /*#__PURE__*/React.isValidElement(toolbarSection)) {
|
|
39
|
+
return toolbarChildren;
|
|
40
|
+
}
|
|
41
|
+
var _a = toolbarSection.props,
|
|
42
|
+
sectionChildren = _a.children,
|
|
43
|
+
toolbarSectionProps = __rest(_a, ["children"]);
|
|
44
|
+
return /*#__PURE__*/React.createElement(toolbarSection.type, __assign({}, toolbarSectionProps, {
|
|
45
|
+
key: "rte-section-".concat(sectionIndex)
|
|
46
|
+
}), React.Children.map(sectionChildren, function (toolbarButton) {
|
|
47
|
+
if (! /*#__PURE__*/React.isValidElement(toolbarButton)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
var buttonIndex = buttonCount;
|
|
51
|
+
buttonCount += 1;
|
|
52
|
+
return /*#__PURE__*/React.createElement(toolbarButton.type, __assign({}, toolbarButton.props, {
|
|
53
|
+
key: "rte-button-".concat(buttonIndex),
|
|
54
|
+
tabIndex: buttonIndex === buttonFocusIndex ? 0 : -1,
|
|
55
|
+
onKeyDown: function (e) {
|
|
56
|
+
return handleKeyDown(e, buttonIndex, buttonFocusIndex, setButtonFocusIndex, toolbarButtonsRef);
|
|
57
|
+
},
|
|
58
|
+
ref: function (ref) {
|
|
59
|
+
return toolbarButtonsRef.current[buttonIndex] = ref;
|
|
60
|
+
}
|
|
61
|
+
}));
|
|
62
|
+
}));
|
|
63
|
+
}));
|
|
64
|
+
};
|
|
65
|
+
Toolbar.displayName = "Toolbar";
|
|
66
|
+
return Toolbar;
|
|
67
|
+
}();
|
|
68
|
+
export { Toolbar };
|
|
69
|
+
//# sourceMappingURL=Toolbar.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.mjs","sources":["../../../../../../src/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.tsx"],"sourcesContent":["import React from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { ToolbarSectionProps } from \"../ToolbarSection\"\nimport styles from \"./Toolbar.module.scss\"\n\nexport type ToolbarProps = {\n children: React.ReactNode\n /*\n * Connect the Toolbar with the editable content area through its ID\n */\n \"aria-controls\": string\n /*\n * Provide an accessible name for screen readers for the Toolbar\n */\n \"aria-label\": string\n} & OverrideClassName<React.HTMLAttributes<HTMLElement>>\n\nconst determineValidKeypress = (\n event: React.KeyboardEvent<HTMLElement>\n): boolean => {\n const validKeys = {\n left: \"ArrowLeft\",\n right: \"ArrowRight\",\n }\n return Object.values(validKeys).includes(event.key)\n}\n\nconst handleKeyDown = (\n e: React.KeyboardEvent<HTMLElement>,\n buttonIndex: number,\n buttonFocusIndex: number,\n setFocusIndex: React.Dispatch<React.SetStateAction<number>>,\n toolbarButtons: React.MutableRefObject<any>\n): void => {\n if (!determineValidKeypress(e)) return\n let newFocusIndex\n const lastButtonIndex = toolbarButtons.current.length - 1\n if (e.key === \"ArrowLeft\") {\n newFocusIndex = buttonIndex === 0 ? lastButtonIndex : buttonFocusIndex - 1\n } else {\n newFocusIndex = buttonIndex === lastButtonIndex ? 0 : buttonFocusIndex + 1\n }\n\n setFocusIndex(newFocusIndex)\n toolbarButtons.current[newFocusIndex].focus()\n}\n\nexport const Toolbar = (props: ToolbarProps): JSX.Element => {\n const {\n children: toolbarChildren,\n classNameOverride,\n ...toolbarProps\n } = props\n const [buttonFocusIndex, setButtonFocusIndex] = React.useState<number>(0)\n const toolbarButtonsRef = React.useRef<React.ReactNode[]>([])\n let buttonCount: number = 0\n\n return (\n <div\n className={classnames(styles.toolbar, classNameOverride)}\n role=\"toolbar\"\n {...toolbarProps}\n >\n {React.Children.map(toolbarChildren, (toolbarSection, sectionIndex) => {\n if (!React.isValidElement(toolbarSection)) {\n return toolbarChildren\n }\n\n const {\n children: sectionChildren,\n ...toolbarSectionProps\n }: ToolbarSectionProps = toolbarSection.props\n\n return (\n <toolbarSection.type\n {...toolbarSectionProps}\n key={`rte-section-${sectionIndex}`}\n >\n {React.Children.map(sectionChildren, toolbarButton => {\n if (!React.isValidElement(toolbarButton)) {\n return\n }\n const buttonIndex = buttonCount\n buttonCount += 1\n return (\n <toolbarButton.type\n {...toolbarButton.props}\n key={`rte-button-${buttonIndex}`}\n tabIndex={buttonIndex === buttonFocusIndex ? 0 : -1}\n onKeyDown={(e: React.KeyboardEvent<HTMLElement>): void =>\n handleKeyDown(\n e,\n buttonIndex,\n buttonFocusIndex,\n setButtonFocusIndex,\n toolbarButtonsRef\n )\n }\n ref={(ref: React.ReactNode | undefined): React.ReactNode =>\n (toolbarButtonsRef.current[buttonIndex] = ref)\n }\n />\n )\n })}\n </toolbarSection.type>\n )\n })}\n </div>\n )\n}\n\nToolbar.displayName = \"Toolbar\"\n"],"names":["determineValidKeypress","event","validKeys","left","right","Object","values","includes","key","handleKeyDown","e","buttonIndex","buttonFocusIndex","setFocusIndex","toolbarButtons","newFocusIndex","lastButtonIndex","current","length","focus","Toolbar","props","toolbarChildren","children","classNameOverride","toolbarProps","__rest","_a","React","useState","setButtonFocusIndex","toolbarButtonsRef","useRef","buttonCount","createElement","__assign","className","classnames","styles","toolbar","role","Children","map","toolbarSection","sectionIndex","isValidElement","sectionChildren","toolbarSectionProps","type","concat","toolbarButton","tabIndex","onKeyDown","ref","displayName"],"mappings":"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"}
|
package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.mjs
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { __assign } from 'tslib';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import styles from './ToolbarSection.module.scss.mjs';
|
|
4
|
+
const ToolbarSection = /*#__PURE__*/function () {
|
|
5
|
+
const ToolbarSection = function (props) {
|
|
6
|
+
return /*#__PURE__*/React.createElement("div", __assign({
|
|
7
|
+
className: styles.toolbarSection
|
|
8
|
+
}, props));
|
|
9
|
+
};
|
|
10
|
+
ToolbarSection.displayName = "ToolbarSection";
|
|
11
|
+
return ToolbarSection;
|
|
12
|
+
}();
|
|
13
|
+
export { ToolbarSection };
|
|
14
|
+
//# sourceMappingURL=ToolbarSection.mjs.map
|
package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolbarSection.mjs","sources":["../../../../../../src/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.tsx"],"sourcesContent":["import React from \"react\"\nimport styles from \"./ToolbarSection.module.scss\"\n\nexport type ToolbarSectionProps = {\n children: React.ReactNode\n} & React.HTMLAttributes<HTMLDivElement>\n\nexport const ToolbarSection = (props: ToolbarSectionProps): JSX.Element => (\n <div className={styles.toolbarSection} {...props}></div>\n)\n\nToolbarSection.displayName = \"ToolbarSection\"\n"],"names":["ToolbarSection","props","React","createElement","__assign","className","styles","toolbarSection","displayName"],"mappings":";;;MAOaA,cAAc;EAAA,MAAdA,cAAc,GAAG,SAAAA,CAACC,KAA0B,EAAA;IAAkB,oBACzEC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,QAAA,CAAA;MAAKC,SAAS,EAAEC,MAAM,CAACC;IAAc,CAAA,EAAMN,KAAK,CAAQ,CAAA;EACzD,CAAA;EAEDD,cAAc,CAACQ,WAAW,GAAG,gBAAgB;EAAA,OAJhCR,cAAc;AAAA;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolbarSection.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|