@kaizen/components 0.0.0-canary-richtexttest-20231101014014 → 0.0.0-canary-js-tokens-20231102052541
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/LikertScaleLegacy/LikertScaleLegacy.cjs +146 -0
- package/dist/cjs/LikertScaleLegacy/LikertScaleLegacy.cjs.map +1 -0
- package/dist/cjs/LikertScaleLegacy/LikertScaleLegacy.module.scss.cjs +27 -0
- package/dist/cjs/LikertScaleLegacy/LikertScaleLegacy.module.scss.cjs.map +1 -0
- package/dist/cjs/LikertScaleLegacy/utils/determineSelectionFromKeyPress.cjs +50 -0
- package/dist/cjs/LikertScaleLegacy/utils/determineSelectionFromKeyPress.cjs.map +1 -0
- package/dist/cjs/ProgressBar/ProgressBar.cjs +59 -0
- package/dist/cjs/ProgressBar/ProgressBar.cjs.map +1 -0
- package/dist/cjs/ProgressBar/ProgressBar.module.scss.cjs +15 -0
- package/dist/cjs/ProgressBar/ProgressBar.module.scss.cjs.map +1 -0
- package/dist/cjs/ProgressBar/subcomponents/Label/Label.cjs +23 -0
- package/dist/cjs/ProgressBar/subcomponents/Label/Label.cjs.map +1 -0
- package/dist/cjs/ProgressBar/subcomponents/Label/Label.module.scss.cjs +7 -0
- package/dist/cjs/ProgressBar/subcomponents/Label/Label.module.scss.cjs.map +1 -0
- package/dist/cjs/ProgressBar/utils/calculatePercentage.cjs +9 -0
- package/dist/cjs/ProgressBar/utils/calculatePercentage.cjs.map +1 -0
- package/dist/cjs/dts/LikertScaleLegacy/LikertScaleLegacy.d.ts +20 -0
- package/dist/cjs/dts/LikertScaleLegacy/index.d.ts +1 -0
- package/dist/cjs/dts/LikertScaleLegacy/types.d.ts +6 -0
- package/dist/cjs/dts/LikertScaleLegacy/utils/determineSelectionFromKeyPress.d.ts +3 -0
- package/dist/cjs/dts/Notification/ToastNotification/ToastNotification.d.ts +14 -0
- package/dist/cjs/dts/Notification/ToastNotification/index.d.ts +3 -0
- package/dist/cjs/dts/Notification/ToastNotification/subcomponents/ToastNotificationManager/ToastNotificationManager.d.ts +7 -0
- package/dist/cjs/dts/Notification/ToastNotification/subcomponents/ToastNotificationManager/index.d.ts +1 -0
- package/dist/cjs/dts/Notification/ToastNotification/subcomponents/ToastNotificationsList/ToastNotificationsList.d.ts +11 -0
- package/dist/cjs/dts/Notification/ToastNotification/subcomponents/ToastNotificationsList/index.d.ts +1 -0
- package/dist/cjs/dts/Notification/ToastNotification/subcomponents/ToastNotificationsListContainer/ToastNotificationsListContainer.d.ts +7 -0
- package/dist/cjs/dts/Notification/ToastNotification/subcomponents/ToastNotificationsListContainer/index.d.ts +1 -0
- package/dist/cjs/dts/Notification/ToastNotification/types.d.ts +23 -0
- package/dist/cjs/dts/ProgressBar/ProgressBar.d.ts +24 -0
- package/dist/cjs/dts/ProgressBar/index.d.ts +1 -0
- package/dist/cjs/dts/ProgressBar/subcomponents/Label/Label.d.ts +10 -0
- package/dist/cjs/dts/ProgressBar/subcomponents/Label/index.d.ts +1 -0
- package/dist/cjs/dts/ProgressBar/utils/calculatePercentage.d.ts +4 -0
- package/dist/cjs/dts/index.d.ts +2 -1
- package/dist/cjs/index.cjs +4 -14
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.css +6 -9
- package/dist/esm/LikertScaleLegacy/LikertScaleLegacy.mjs +144 -0
- package/dist/esm/LikertScaleLegacy/LikertScaleLegacy.mjs.map +1 -0
- package/dist/esm/LikertScaleLegacy/LikertScaleLegacy.module.scss.mjs +25 -0
- package/dist/esm/LikertScaleLegacy/LikertScaleLegacy.module.scss.mjs.map +1 -0
- package/dist/esm/LikertScaleLegacy/utils/determineSelectionFromKeyPress.mjs +48 -0
- package/dist/esm/LikertScaleLegacy/utils/determineSelectionFromKeyPress.mjs.map +1 -0
- package/dist/esm/ProgressBar/ProgressBar.mjs +57 -0
- package/dist/esm/ProgressBar/ProgressBar.mjs.map +1 -0
- package/dist/esm/ProgressBar/ProgressBar.module.scss.mjs +13 -0
- package/dist/esm/ProgressBar/ProgressBar.module.scss.mjs.map +1 -0
- package/dist/esm/ProgressBar/subcomponents/Label/Label.mjs +21 -0
- package/dist/esm/ProgressBar/subcomponents/Label/Label.mjs.map +1 -0
- package/dist/esm/ProgressBar/subcomponents/Label/Label.module.scss.mjs +5 -0
- package/dist/esm/ProgressBar/subcomponents/Label/Label.module.scss.mjs.map +1 -0
- package/dist/esm/ProgressBar/utils/calculatePercentage.mjs +7 -0
- package/dist/esm/ProgressBar/utils/calculatePercentage.mjs.map +1 -0
- package/dist/esm/dts/LikertScaleLegacy/LikertScaleLegacy.d.ts +20 -0
- package/dist/esm/dts/LikertScaleLegacy/index.d.ts +1 -0
- package/dist/esm/dts/LikertScaleLegacy/types.d.ts +6 -0
- package/dist/esm/dts/LikertScaleLegacy/utils/determineSelectionFromKeyPress.d.ts +3 -0
- package/dist/esm/dts/Notification/ToastNotification/ToastNotification.d.ts +14 -0
- package/dist/esm/dts/Notification/ToastNotification/index.d.ts +3 -0
- package/dist/esm/dts/Notification/ToastNotification/subcomponents/ToastNotificationManager/ToastNotificationManager.d.ts +7 -0
- package/dist/esm/dts/Notification/ToastNotification/subcomponents/ToastNotificationManager/index.d.ts +1 -0
- package/dist/esm/dts/Notification/ToastNotification/subcomponents/ToastNotificationsList/ToastNotificationsList.d.ts +11 -0
- package/dist/esm/dts/Notification/ToastNotification/subcomponents/ToastNotificationsList/index.d.ts +1 -0
- package/dist/esm/dts/Notification/ToastNotification/subcomponents/ToastNotificationsListContainer/ToastNotificationsListContainer.d.ts +7 -0
- package/dist/esm/dts/Notification/ToastNotification/subcomponents/ToastNotificationsListContainer/index.d.ts +1 -0
- package/dist/esm/dts/Notification/ToastNotification/types.d.ts +23 -0
- package/dist/esm/dts/ProgressBar/ProgressBar.d.ts +24 -0
- package/dist/esm/dts/ProgressBar/index.d.ts +1 -0
- package/dist/esm/dts/ProgressBar/subcomponents/Label/Label.d.ts +10 -0
- package/dist/esm/dts/ProgressBar/subcomponents/Label/index.d.ts +1 -0
- package/dist/esm/dts/ProgressBar/utils/calculatePercentage.d.ts +4 -0
- package/dist/esm/dts/index.d.ts +2 -1
- package/dist/esm/index.css +7 -10
- package/dist/esm/index.mjs +2 -7
- package/dist/esm/index.mjs.map +1 -1
- package/dist/index.d.ts +52 -104
- package/dist/styles.css +1 -1
- package/package.json +1 -8
- package/dist/cjs/RichTextEditor/src/EditableRichTextContent/EditableRichTextContent.cjs +0 -47
- package/dist/cjs/RichTextEditor/src/EditableRichTextContent/EditableRichTextContent.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/EditableRichTextContent/EditableRichTextContent.module.scss.cjs +0 -8
- package/dist/cjs/RichTextEditor/src/EditableRichTextContent/EditableRichTextContent.module.scss.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextContent/RichTextContent.cjs +0 -33
- package/dist/cjs/RichTextEditor/src/RichTextContent/RichTextContent.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextContent/RichTextContent.module.scss.cjs +0 -7
- package/dist/cjs/RichTextEditor/src/RichTextContent/RichTextContent.module.scss.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextEditor/RichTextEditor.cjs +0 -143
- package/dist/cjs/RichTextEditor/src/RichTextEditor/RichTextEditor.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextEditor/RichTextEditor.module.scss.cjs +0 -32
- package/dist/cjs/RichTextEditor/src/RichTextEditor/RichTextEditor.module.scss.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextEditor/controlmap.cjs +0 -245
- package/dist/cjs/RichTextEditor/src/RichTextEditor/controlmap.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextEditor/inputrules.cjs +0 -21
- package/dist/cjs/RichTextEditor/src/RichTextEditor/inputrules.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextEditor/keymap.cjs +0 -80
- package/dist/cjs/RichTextEditor/src/RichTextEditor/keymap.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextEditor/schema.cjs +0 -59
- package/dist/cjs/RichTextEditor/src/RichTextEditor/schema.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.cjs +0 -43
- package/dist/cjs/RichTextEditor/src/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.cjs +0 -14
- package/dist/cjs/RichTextEditor/src/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextEditor/subcomponents/Toolbar/Toolbar.cjs +0 -71
- package/dist/cjs/RichTextEditor/src/RichTextEditor/subcomponents/Toolbar/Toolbar.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.cjs +0 -7
- package/dist/cjs/RichTextEditor/src/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.cjs +0 -16
- package/dist/cjs/RichTextEditor/src/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.cjs +0 -7
- package/dist/cjs/RichTextEditor/src/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.cjs.map +0 -1
- package/dist/cjs/RichTextEditor/src/constants.cjs +0 -5
- package/dist/cjs/RichTextEditor/src/constants.cjs.map +0 -1
- package/dist/cjs/dts/RichTextEditor/index.d.ts +0 -5
- package/dist/cjs/dts/RichTextEditor/src/EditableRichTextContent/EditableRichTextContent.d.ts +0 -15
- package/dist/cjs/dts/RichTextEditor/src/EditableRichTextContent/index.d.ts +0 -1
- package/dist/cjs/dts/RichTextEditor/src/RichTextContent/RichTextContent.d.ts +0 -10
- package/dist/cjs/dts/RichTextEditor/src/RichTextContent/index.d.ts +0 -1
- package/dist/cjs/dts/RichTextEditor/src/RichTextEditor/RichTextEditor.d.ts +0 -43
- package/dist/cjs/dts/RichTextEditor/src/RichTextEditor/controlmap.d.ts +0 -13
- package/dist/cjs/dts/RichTextEditor/src/RichTextEditor/index.d.ts +0 -4
- package/dist/cjs/dts/RichTextEditor/src/RichTextEditor/inputrules.d.ts +0 -2
- package/dist/cjs/dts/RichTextEditor/src/RichTextEditor/keymap.d.ts +0 -6
- package/dist/cjs/dts/RichTextEditor/src/RichTextEditor/schema.d.ts +0 -4
- package/dist/cjs/dts/RichTextEditor/src/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.d.ts +0 -9
- package/dist/cjs/dts/RichTextEditor/src/RichTextEditor/subcomponents/ToggleIconButton/index.d.ts +0 -1
- package/dist/cjs/dts/RichTextEditor/src/RichTextEditor/subcomponents/Toolbar/Toolbar.d.ts +0 -11
- package/dist/cjs/dts/RichTextEditor/src/RichTextEditor/subcomponents/Toolbar/index.d.ts +0 -1
- package/dist/cjs/dts/RichTextEditor/src/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.d.ts +0 -8
- package/dist/cjs/dts/RichTextEditor/src/RichTextEditor/subcomponents/ToolbarSection/index.d.ts +0 -1
- package/dist/cjs/dts/RichTextEditor/src/constants.d.ts +0 -2
- package/dist/cjs/dts/RichTextEditor/src/types.d.ts +0 -12
- package/dist/esm/RichTextEditor/src/EditableRichTextContent/EditableRichTextContent.mjs +0 -45
- package/dist/esm/RichTextEditor/src/EditableRichTextContent/EditableRichTextContent.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/EditableRichTextContent/EditableRichTextContent.module.scss.mjs +0 -6
- package/dist/esm/RichTextEditor/src/EditableRichTextContent/EditableRichTextContent.module.scss.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextContent/RichTextContent.mjs +0 -31
- package/dist/esm/RichTextEditor/src/RichTextContent/RichTextContent.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextContent/RichTextContent.module.scss.mjs +0 -5
- package/dist/esm/RichTextEditor/src/RichTextContent/RichTextContent.module.scss.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextEditor/RichTextEditor.mjs +0 -141
- package/dist/esm/RichTextEditor/src/RichTextEditor/RichTextEditor.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextEditor/RichTextEditor.module.scss.mjs +0 -30
- package/dist/esm/RichTextEditor/src/RichTextEditor/RichTextEditor.module.scss.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextEditor/controlmap.mjs +0 -243
- package/dist/esm/RichTextEditor/src/RichTextEditor/controlmap.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextEditor/inputrules.mjs +0 -19
- package/dist/esm/RichTextEditor/src/RichTextEditor/inputrules.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextEditor/keymap.mjs +0 -78
- package/dist/esm/RichTextEditor/src/RichTextEditor/keymap.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextEditor/schema.mjs +0 -56
- package/dist/esm/RichTextEditor/src/RichTextEditor/schema.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.mjs +0 -41
- package/dist/esm/RichTextEditor/src/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.mjs +0 -12
- package/dist/esm/RichTextEditor/src/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextEditor/subcomponents/Toolbar/Toolbar.mjs +0 -69
- package/dist/esm/RichTextEditor/src/RichTextEditor/subcomponents/Toolbar/Toolbar.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.mjs +0 -5
- package/dist/esm/RichTextEditor/src/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.mjs +0 -14
- package/dist/esm/RichTextEditor/src/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.mjs +0 -5
- package/dist/esm/RichTextEditor/src/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.mjs.map +0 -1
- package/dist/esm/RichTextEditor/src/constants.mjs +0 -3
- package/dist/esm/RichTextEditor/src/constants.mjs.map +0 -1
- package/dist/esm/dts/RichTextEditor/index.d.ts +0 -5
- package/dist/esm/dts/RichTextEditor/src/EditableRichTextContent/EditableRichTextContent.d.ts +0 -15
- package/dist/esm/dts/RichTextEditor/src/EditableRichTextContent/index.d.ts +0 -1
- package/dist/esm/dts/RichTextEditor/src/RichTextContent/RichTextContent.d.ts +0 -10
- package/dist/esm/dts/RichTextEditor/src/RichTextContent/index.d.ts +0 -1
- package/dist/esm/dts/RichTextEditor/src/RichTextEditor/RichTextEditor.d.ts +0 -43
- package/dist/esm/dts/RichTextEditor/src/RichTextEditor/controlmap.d.ts +0 -13
- package/dist/esm/dts/RichTextEditor/src/RichTextEditor/index.d.ts +0 -4
- package/dist/esm/dts/RichTextEditor/src/RichTextEditor/inputrules.d.ts +0 -2
- package/dist/esm/dts/RichTextEditor/src/RichTextEditor/keymap.d.ts +0 -6
- package/dist/esm/dts/RichTextEditor/src/RichTextEditor/schema.d.ts +0 -4
- package/dist/esm/dts/RichTextEditor/src/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.d.ts +0 -9
- package/dist/esm/dts/RichTextEditor/src/RichTextEditor/subcomponents/ToggleIconButton/index.d.ts +0 -1
- package/dist/esm/dts/RichTextEditor/src/RichTextEditor/subcomponents/Toolbar/Toolbar.d.ts +0 -11
- package/dist/esm/dts/RichTextEditor/src/RichTextEditor/subcomponents/Toolbar/index.d.ts +0 -1
- package/dist/esm/dts/RichTextEditor/src/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.d.ts +0 -8
- package/dist/esm/dts/RichTextEditor/src/RichTextEditor/subcomponents/ToolbarSection/index.d.ts +0 -1
- package/dist/esm/dts/RichTextEditor/src/constants.d.ts +0 -2
- package/dist/esm/dts/RichTextEditor/src/types.d.ts +0 -12
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kaizen/components",
|
|
3
|
-
"version": "0.0.0-canary-
|
|
3
|
+
"version": "0.0.0-canary-js-tokens-20231102052541",
|
|
4
4
|
"description": "Kaizen component library",
|
|
5
5
|
"author": "Geoffrey Chong <geoff.chong@cultureamp.com>",
|
|
6
6
|
"homepage": "https://cultureamp.design",
|
|
@@ -93,7 +93,6 @@
|
|
|
93
93
|
"@babel/plugin-transform-react-pure-annotations": "^7.22.5",
|
|
94
94
|
"@cultureamp/frontend-apis": "^8.2.0",
|
|
95
95
|
"@cultureamp/i18n-react-intl": "^2.1.1",
|
|
96
|
-
"@cultureamp/rich-text-toolkit": "^2.0.2",
|
|
97
96
|
"@kaizen/tailwind": "^1.1.1",
|
|
98
97
|
"@rollup/plugin-alias": "^5.0.1",
|
|
99
98
|
"@rollup/plugin-babel": "^6.0.4",
|
|
@@ -124,13 +123,7 @@
|
|
|
124
123
|
},
|
|
125
124
|
"peerDependencies": {
|
|
126
125
|
"@cultureamp/i18n-react-intl": "^2.1.1",
|
|
127
|
-
"@cultureamp/rich-text-toolkit": "^2.0.3",
|
|
128
126
|
"react": "^18.2.0",
|
|
129
127
|
"react-intl": "^6.5.1"
|
|
130
|
-
},
|
|
131
|
-
"peerDependenciesMeta": {
|
|
132
|
-
"@cultureamp/rich-text-toolkit": {
|
|
133
|
-
"optional": true
|
|
134
|
-
}
|
|
135
128
|
}
|
|
136
129
|
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var tslib = require('tslib');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
var classnames = require('classnames');
|
|
6
|
-
var Label = require('../../../Label/Label.cjs');
|
|
7
|
-
var VisuallyHidden = require('../../../VisuallyHidden/VisuallyHidden.cjs');
|
|
8
|
-
var RichTextContent = require('../RichTextContent/RichTextContent.cjs');
|
|
9
|
-
var EditableRichTextContent_module = require('./EditableRichTextContent.module.scss.cjs');
|
|
10
|
-
var handleEditableClick = function (e, onClick) {
|
|
11
|
-
if (e.target.hasAttribute("href")) {
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
return onClick(e);
|
|
15
|
-
};
|
|
16
|
-
const EditableRichTextContent = /*#__PURE__*/function () {
|
|
17
|
-
const EditableRichTextContent = function (props) {
|
|
18
|
-
var onClick = props.onClick,
|
|
19
|
-
content = props.content,
|
|
20
|
-
classNameOverride = props.classNameOverride,
|
|
21
|
-
labelText = props.labelText,
|
|
22
|
-
_a = props.isLabelHidden,
|
|
23
|
-
isLabelHidden = _a === void 0 ? false : _a,
|
|
24
|
-
contentProps = props.contentProps,
|
|
25
|
-
restProps = tslib.__rest(props, ["onClick", "content", "classNameOverride", "labelText", "isLabelHidden", "contentProps"]);
|
|
26
|
-
return React.createElement(React.Fragment, null, !isLabelHidden && React.createElement(Label.Label, {
|
|
27
|
-
labelText: labelText
|
|
28
|
-
}), React.createElement("div", tslib.__assign({
|
|
29
|
-
onClick: function (e) {
|
|
30
|
-
return handleEditableClick(e, onClick);
|
|
31
|
-
},
|
|
32
|
-
className: classnames(EditableRichTextContent_module.editableContainer, classNameOverride)
|
|
33
|
-
}, restProps), React.createElement(VisuallyHidden.VisuallyHidden, {
|
|
34
|
-
classNameOverride: EditableRichTextContent_module.hiddenButton
|
|
35
|
-
}, React.createElement("button", {
|
|
36
|
-
type: "button",
|
|
37
|
-
onClick: onClick,
|
|
38
|
-
"aria-label": "Edit ".concat(labelText)
|
|
39
|
-
})), React.createElement(RichTextContent.RichTextContent, tslib.__assign({
|
|
40
|
-
content: content
|
|
41
|
-
}, contentProps))));
|
|
42
|
-
};
|
|
43
|
-
EditableRichTextContent.displayName = "EditableRichTextContent";
|
|
44
|
-
return EditableRichTextContent;
|
|
45
|
-
}();
|
|
46
|
-
exports.EditableRichTextContent = EditableRichTextContent;
|
|
47
|
-
//# sourceMappingURL=EditableRichTextContent.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditableRichTextContent.cjs","sources":["../../../../../src/RichTextEditor/src/EditableRichTextContent/EditableRichTextContent.tsx"],"sourcesContent":["import React, { MouseEvent, HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { Label } from \"~components/Label\"\nimport { VisuallyHidden } from \"~components/VisuallyHidden\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { RichTextContent, RichTextContentProps } from \"../RichTextContent\"\nimport { EditorContentArray } from \"../types\"\nimport styles from \"./EditableRichTextContent.module.scss\"\n\nexport interface EditableRichTextContentProps\n extends OverrideClassName<\n Omit<HTMLAttributes<HTMLDivElement>, \"onClick\" | \"content\">\n > {\n onClick: (event: MouseEvent<HTMLElement>) => void\n content: EditorContentArray\n labelText: string\n isLabelHidden?: boolean\n contentProps?: Omit<RichTextContentProps, \"content\">\n}\n\nconst handleEditableClick = (\n e: MouseEvent<HTMLElement>,\n onClick: (event: MouseEvent<HTMLElement>) => void\n): void => {\n if ((e.target as HTMLElement).hasAttribute(\"href\")) {\n return\n }\n return onClick(e)\n}\n\nexport const EditableRichTextContent = (\n props: EditableRichTextContentProps\n): JSX.Element => {\n const {\n onClick,\n content,\n classNameOverride,\n labelText,\n isLabelHidden = false,\n contentProps,\n ...restProps\n } = props\n\n return (\n <>\n {!isLabelHidden && <Label labelText={labelText} />}\n {/* Disabling these a11y linting errors because there is a <button> that mitigates these concerns. The onClick here is just an additional layer. */}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */}\n <div\n onClick={(e): void => handleEditableClick(e, onClick)}\n className={classnames(styles.editableContainer, classNameOverride)}\n {...restProps}\n >\n <VisuallyHidden classNameOverride={styles.hiddenButton}>\n <button\n type=\"button\"\n onClick={onClick}\n aria-label={`Edit ${labelText}`}\n />\n </VisuallyHidden>\n <RichTextContent content={content} {...contentProps} />\n </div>\n </>\n )\n}\n\nEditableRichTextContent.displayName = \"EditableRichTextContent\"\n"],"names":["handleEditableClick","e","onClick","target","hasAttribute","EditableRichTextContent","props","content","classNameOverride","labelText","_a","isLabelHidden","contentProps","restProps","__rest","React","createElement","Fragment","Label","__assign","className","classnames","styles","editableContainer","VisuallyHidden","hiddenButton","type","concat","RichTextContent","displayName"],"mappings":";;;;;;;;;AAoBA,IAAMA,mBAAmB,GAAG,SAAAA,CAC1BC,CAA0B,EAC1BC,OAAiD,EAAA;EAEjD,IAAKD,CAAC,CAACE,MAAsB,CAACC,YAAY,CAAC,MAAM,CAAC,EAAE;IAClD;EACD;EACD,OAAOF,OAAO,CAACD,CAAC,CAAC;AACnB,CAAC;AAAA,MAEYI,uBAAuB;EAAA,MAAvBA,uBAAuB,GAAG,SAAAA,CACrCC,KAAmC,EAAA;IAGjC,IAAAJ,OAAO,GAOLI,KAAK,QAPA;MACPC,OAAO,GAMLD,KAAK,CAAAC,OANA;MACPC,iBAAiB,GAKfF,KAAK,CAAAE,iBALU;MACjBC,SAAS,GAIPH,KAAK,CAJEG,SAAA;MACTC,EAGE,GAAAJ,KAAK,cAHc;MAArBK,aAAa,mBAAG,KAAK,GAAAD,EAAA;MACrBE,YAAY,GAEVN,KAAK,CAAAM,YAFK;MACTC,SAAS,GAAAC,KAAA,CAAAA,MAAA,CACVR,KAAK,EARH,CAAA,SAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,CAQL,CADa;IAGd,OACES,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EACG,CAACN,aAAa,IAAII,KAAC,CAAAC,aAAA,CAAAE,KAAK,CAAAA,KAAA;MAACT,SAAS,EAAEA;KAAa,CAAA,EAGlDM,KACE,CAAAC,aAAA,CAAA,KAAA,EAAAG,KAAA,CAAAA,QAAA,CAAA;MAAAjB,OAAO,EAAE,SAAAA,CAACD,CAAC,EAAA;QAAW,OAAAD,mBAAmB,CAACC,CAAC,EAAEC,OAAO,CAAC;MAAA,CAAA;MACrDkB,SAAS,EAAEC,UAAU,CAACC,8BAAM,CAACC,iBAAiB,EAAEf,iBAAiB;IAAC,CAAA,EAC9DK,SAAS,CAAA,EAEbE,KAAA,CAAAC,aAAA,CAACQ,cAAc,CAAAA,cAAA,EAAC;MAAAhB,iBAAiB,EAAEc,8BAAM,CAACG;IAAY,CAAA,EACpDV,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;MACEU,IAAI,EAAC,QAAQ;MACbxB,OAAO,EAAEA,OAAO;MAAA,YAAA,EACJ,OAAQ,CAAAyB,MAAA,CAAAlB,SAAS;IAAE,CAAA,CAC/B,CACa,EACjBM,KAAC,CAAAC,aAAA,CAAAY,eAAe,CAAAA,eAAA,EAACT,cAAA,CAAA;MAAAZ,OAAO,EAAEA;KAAa,EAAAK,YAAY,CAAI,CAAA,CACnD,CACL;EAEP,CAAC;EAEDP,uBAAuB,CAACwB,WAAW,GAAG,yBAAyB;EAAA,OApClDxB,uBAAuB;AAAA;"}
|
package/dist/cjs/RichTextEditor/src/EditableRichTextContent/EditableRichTextContent.module.scss.cjs
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var styles = {
|
|
4
|
-
"editableContainer": "EditableRichTextContent-module_editableContainer__jULrV",
|
|
5
|
-
"hiddenButton": "EditableRichTextContent-module_hiddenButton__fE67E"
|
|
6
|
-
};
|
|
7
|
-
module.exports = styles;
|
|
8
|
-
//# sourceMappingURL=EditableRichTextContent.module.scss.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditableRichTextContent.module.scss.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var tslib = require('tslib');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
var richTextToolkit = require('@cultureamp/rich-text-toolkit');
|
|
6
|
-
var classnames = require('classnames');
|
|
7
|
-
var schema = require('../RichTextEditor/schema.cjs');
|
|
8
|
-
var RichTextContent_module = require('./RichTextContent.module.scss.cjs');
|
|
9
|
-
const RichTextContent = /*#__PURE__*/function () {
|
|
10
|
-
const RichTextContent = function (props) {
|
|
11
|
-
var content = props.content,
|
|
12
|
-
classNameOverride = props.classNameOverride,
|
|
13
|
-
restProps = tslib.__rest(props, ["content", "classNameOverride"]);
|
|
14
|
-
var schema$1 = React.useState(schema.createSchemaWithAll())[0];
|
|
15
|
-
var editorRef = richTextToolkit.useRichTextEditor(richTextToolkit.ProseMirrorState.EditorState.create({
|
|
16
|
-
doc: richTextToolkit.ProseMirrorModel.Node.fromJSON(schema$1, {
|
|
17
|
-
type: "doc",
|
|
18
|
-
content: content
|
|
19
|
-
}),
|
|
20
|
-
schema: schema$1
|
|
21
|
-
}), undefined, {
|
|
22
|
-
editable: false
|
|
23
|
-
})[0];
|
|
24
|
-
return React.createElement("div", tslib.__assign({
|
|
25
|
-
ref: editorRef,
|
|
26
|
-
className: classnames(RichTextContent_module.content, classNameOverride)
|
|
27
|
-
}, restProps));
|
|
28
|
-
};
|
|
29
|
-
RichTextContent.displayName = "RichTextContent";
|
|
30
|
-
return RichTextContent;
|
|
31
|
-
}();
|
|
32
|
-
exports.RichTextContent = RichTextContent;
|
|
33
|
-
//# sourceMappingURL=RichTextContent.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextContent.cjs","sources":["../../../../../src/RichTextEditor/src/RichTextContent/RichTextContent.tsx"],"sourcesContent":["import React, { useState, HTMLAttributes } from \"react\"\nimport {\n ProseMirrorState,\n ProseMirrorModel,\n useRichTextEditor,\n} from \"@cultureamp/rich-text-toolkit\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { createSchemaWithAll } from \"../RichTextEditor/schema\"\nimport { EditorContentArray } from \"../types\"\nimport styles from \"./RichTextContent.module.scss\"\n\nexport interface RichTextContentProps\n extends OverrideClassName<Omit<HTMLAttributes<HTMLDivElement>, \"content\">> {\n content: EditorContentArray\n}\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":";;;;;;;;MAiBaA,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,KAAA,CAAAA,MAAA,CAAAJ,KAAK,EAApD,CAAA,SAAA,EAAA,mBAAA,CAA4C,CAAF;IACzC,IAAAK,QAAM,GAAIC,KAAQ,CAAAA,QAAA,CAA0BC,MAAmB,CAAAA,mBAAA,CAAA,CAAE,CAAC,GAA5D;IAEN,IAAAC,SAAS,GAAIC,eAAiB,CAAAA,iBAAA,CACnCC,gCAAgB,CAACC,WAAW,CAACC,MAAM,CAAC;MAClCC,GAAG,EAAEC,eAAgB,CAAAA,gBAAA,CAACC,IAAI,CAACC,QAAQ,CAACX,QAAM,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,OACEC;MACEC,GAAG,EAAEb,SAAS;MACdc,SAAS,EAAEC,UAAU,CAACC,sBAAM,CAACvB,OAAO,EAAEC,iBAAiB;OACnDC,SAAS,CAAA,CACb;EAEN,CAAC;EAEDJ,eAAe,CAAC0B,WAAW,GAAG,iBAAiB;EAAA,OA3BlC1B,eAAe;AAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextContent.module.scss.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var tslib = require('tslib');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
var richTextToolkit = require('@cultureamp/rich-text-toolkit');
|
|
6
|
-
var classnames = require('classnames');
|
|
7
|
-
var uuid = require('uuid');
|
|
8
|
-
var FieldMessage = require('../../../FieldMessage/FieldMessage.cjs');
|
|
9
|
-
var Label = require('../../../Label/Label.cjs');
|
|
10
|
-
var InlineNotification = require('../../../Notification/InlineNotification/InlineNotification.cjs');
|
|
11
|
-
require('../../../Notification/GlobalNotification/GlobalNotification.cjs');
|
|
12
|
-
var controlmap = require('./controlmap.cjs');
|
|
13
|
-
var inputrules = require('./inputrules.cjs');
|
|
14
|
-
var keymap = require('./keymap.cjs');
|
|
15
|
-
var schema = require('./schema.cjs');
|
|
16
|
-
var ToggleIconButton = require('./subcomponents/ToggleIconButton/ToggleIconButton.cjs');
|
|
17
|
-
var Toolbar = require('./subcomponents/Toolbar/Toolbar.cjs');
|
|
18
|
-
var ToolbarSection = require('./subcomponents/ToolbarSection/ToolbarSection.cjs');
|
|
19
|
-
var RichTextEditor_module = require('./RichTextEditor.module.scss.cjs');
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* {@link https://cultureamp.design/components/rich-text-editor/ Guidance} |
|
|
23
|
-
* {@link https://cultureamp.design/storybook/?path=/docs/components-rich-text-editor--default Storybook}
|
|
24
|
-
*/
|
|
25
|
-
const RichTextEditor = /*#__PURE__*/function () {
|
|
26
|
-
const RichTextEditor = function (props) {
|
|
27
|
-
var onChange = props.onChange,
|
|
28
|
-
defaultValue = props.defaultValue,
|
|
29
|
-
labelText = props.labelText,
|
|
30
|
-
labelledBy = props["aria-labelledby"],
|
|
31
|
-
classNameOverride = props.classNameOverride,
|
|
32
|
-
controls = props.controls,
|
|
33
|
-
_a = props.rows,
|
|
34
|
-
rows = _a === void 0 ? 3 : _a,
|
|
35
|
-
_b = props.dataError,
|
|
36
|
-
dataError = _b === void 0 ? "Something went wrong" : _b,
|
|
37
|
-
onDataError = props.onDataError,
|
|
38
|
-
validationMessage = props.validationMessage,
|
|
39
|
-
description = props.description,
|
|
40
|
-
_c = props.status,
|
|
41
|
-
status = _c === void 0 ? "default" : _c,
|
|
42
|
-
restProps = tslib.__rest(props, ["onChange", "defaultValue", "labelText", "aria-labelledby", "classNameOverride", "controls", "rows", "dataError", "onDataError", "validationMessage", "description", "status"]);
|
|
43
|
-
var schema$1 = React.useState(schema.createSchemaFromControls(controls))[0];
|
|
44
|
-
var labelId = React.useState(labelledBy || uuid.v4())[0];
|
|
45
|
-
var editorId = React.useState(uuid.v4())[0];
|
|
46
|
-
var useRichTextEditorResult = function () {
|
|
47
|
-
try {
|
|
48
|
-
return richTextToolkit.useRichTextEditor(richTextToolkit.ProseMirrorState.EditorState.create({
|
|
49
|
-
doc: richTextToolkit.ProseMirrorModel.Node.fromJSON(schema$1, {
|
|
50
|
-
type: "doc",
|
|
51
|
-
// we're converting empty arrays to the ProseMirror default "empty" state because when
|
|
52
|
-
// given an empty array ProseMirror returns undefined, breaking the type
|
|
53
|
-
content: (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.length) > 0 ? defaultValue : [{
|
|
54
|
-
type: "paragraph"
|
|
55
|
-
}]
|
|
56
|
-
}),
|
|
57
|
-
schema: schema$1,
|
|
58
|
-
plugins: getPlugins(controls, schema$1)
|
|
59
|
-
}), {
|
|
60
|
-
"aria-labelledby": labelId,
|
|
61
|
-
role: "textbox"
|
|
62
|
-
});
|
|
63
|
-
} catch (_a) {
|
|
64
|
-
return new Error("Bad data error");
|
|
65
|
-
}
|
|
66
|
-
}();
|
|
67
|
-
if (useRichTextEditorResult instanceof Error) {
|
|
68
|
-
onDataError && onDataError();
|
|
69
|
-
return React.createElement(InlineNotification.InlineNotification, {
|
|
70
|
-
headingProps: {
|
|
71
|
-
children: "Error",
|
|
72
|
-
variant: "heading-3"
|
|
73
|
-
},
|
|
74
|
-
type: "negative",
|
|
75
|
-
persistent: true
|
|
76
|
-
}, dataError);
|
|
77
|
-
}
|
|
78
|
-
var editorRef = useRichTextEditorResult[0],
|
|
79
|
-
editorState = useRichTextEditorResult[1],
|
|
80
|
-
dispatchTransaction = useRichTextEditorResult[2];
|
|
81
|
-
var controlMap = controlmap.buildControlMap(schema$1, editorState, controls);
|
|
82
|
-
React.useEffect(function () {
|
|
83
|
-
onChange(editorState);
|
|
84
|
-
// Including `onContentChange` in the dependencies here will cause a 'Maximum update depth exceeded' issue
|
|
85
|
-
}, [editorState]);
|
|
86
|
-
var validationMessageAria = validationMessage ? "".concat(editorId, "-rte-validation-message") : "";
|
|
87
|
-
var descriptionAria = description ? "".concat(editorId, "-rte-description") : "";
|
|
88
|
-
var ariaDescribedBy = "".concat(validationMessageAria, " ").concat(descriptionAria);
|
|
89
|
-
return React.createElement(React.Fragment, null, !labelledBy && labelText && React.createElement(Label.Label, {
|
|
90
|
-
id: labelId,
|
|
91
|
-
labelText: labelText
|
|
92
|
-
}), React.createElement("div", {
|
|
93
|
-
className: classnames(RichTextEditor_module.editorWrapper, RichTextEditor_module[status])
|
|
94
|
-
}, controls && React.createElement(Toolbar.Toolbar, {
|
|
95
|
-
"aria-controls": editorId,
|
|
96
|
-
"aria-label": "Text formatting",
|
|
97
|
-
classNameOverride: RichTextEditor_module.toolbar
|
|
98
|
-
}, controlMap.map(function (section, index) {
|
|
99
|
-
return React.createElement(ToolbarSection.ToolbarSection, {
|
|
100
|
-
key: index
|
|
101
|
-
}, section.map(function (controlConfig, controlKeyIndex) {
|
|
102
|
-
return React.createElement(ToggleIconButton.ToggleIconButton, {
|
|
103
|
-
key: controlKeyIndex,
|
|
104
|
-
icon: controlConfig.icon,
|
|
105
|
-
disabled: controlConfig.disabled,
|
|
106
|
-
label: controlConfig.label,
|
|
107
|
-
isActive: controlConfig.isActive,
|
|
108
|
-
onClick: function () {
|
|
109
|
-
return dispatchTransaction(controlConfig.action);
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
}));
|
|
113
|
-
})), React.createElement("div", tslib.__assign({
|
|
114
|
-
id: editorId,
|
|
115
|
-
ref: editorRef,
|
|
116
|
-
className: classnames(RichTextEditor_module.editor, RichTextEditor_module["rows".concat(rows)], classNameOverride, controls != null && controls.length > 0 && RichTextEditor_module.hasToolbar),
|
|
117
|
-
"aria-describedby": ariaDescribedBy
|
|
118
|
-
}, restProps))), validationMessage && React.createElement(FieldMessage.FieldMessage, {
|
|
119
|
-
id: validationMessageAria,
|
|
120
|
-
message: validationMessage,
|
|
121
|
-
status: status
|
|
122
|
-
}), description && React.createElement(FieldMessage.FieldMessage, {
|
|
123
|
-
id: descriptionAria,
|
|
124
|
-
message: description
|
|
125
|
-
}));
|
|
126
|
-
};
|
|
127
|
-
RichTextEditor.displayName = "RichTextEditor";
|
|
128
|
-
return RichTextEditor;
|
|
129
|
-
}();
|
|
130
|
-
function getPlugins(controls, schema) {
|
|
131
|
-
var allControlNames = controls ? controls.reduce(function (acc, c) {
|
|
132
|
-
return tslib.__spreadArray(tslib.__spreadArray([], acc, true), [c.name], false);
|
|
133
|
-
}, []) : [];
|
|
134
|
-
var plugins = [richTextToolkit.ProseMirrorHistory.history(), richTextToolkit.ProseMirrorKeymap.keymap(keymap.buildKeymap(schema)), richTextToolkit.ProseMirrorKeymap.keymap(richTextToolkit.ProseMirrorCommands.baseKeymap), inputrules.buildInputRules(schema)];
|
|
135
|
-
if (allControlNames.includes("link")) {
|
|
136
|
-
plugins.push(richTextToolkit.createLinkManager({
|
|
137
|
-
markType: schema.marks.link
|
|
138
|
-
}));
|
|
139
|
-
}
|
|
140
|
-
return plugins;
|
|
141
|
-
}
|
|
142
|
-
exports.RichTextEditor = RichTextEditor;
|
|
143
|
-
//# sourceMappingURL=RichTextEditor.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextEditor.cjs","sources":["../../../../../src/RichTextEditor/src/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["import React, { useState, useEffect, HTMLAttributes, ReactNode } from \"react\"\nimport {\n ProseMirrorCommands,\n ProseMirrorState,\n ProseMirrorModel,\n ProseMirrorKeymap,\n ProseMirrorHistory,\n useRichTextEditor,\n createLinkManager,\n} from \"@cultureamp/rich-text-toolkit\"\nimport classnames from \"classnames\"\nimport { v4 } from \"uuid\"\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 { buildControlMap } from \"./controlmap\"\nimport { buildInputRules } from \"./inputrules\"\nimport { buildKeymap } from \"./keymap\"\nimport { createSchemaFromControls } from \"./schema\"\nimport { ToggleIconButton } from \"./subcomponents/ToggleIconButton\"\nimport { Toolbar } from \"./subcomponents/Toolbar\"\nimport { ToolbarSection } from \"./subcomponents/ToolbarSection\"\n\nimport styles from \"./RichTextEditor.module.scss\"\n\nexport interface BaseRichTextEditorProps\n extends OverrideClassName<\n Omit<HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\">\n > {\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}\n\ninterface RTEWithLabelText extends BaseRichTextEditorProps {\n labelText: ReactNode\n \"aria-labelledby\"?: never\n}\n\ninterface RTEWithLabelledBy extends BaseRichTextEditorProps {\n labelText?: never\n \"aria-labelledby\": string\n}\n\nexport type RichTextEditorProps = RTEWithLabelText | RTEWithLabelledBy\n/**\n * {@link https://cultureamp.design/components/rich-text-editor/ Guidance} |\n * {@link https://cultureamp.design/storybook/?path=/docs/components-rich-text-editor--default Storybook}\n */\nexport const RichTextEditor = (props: RichTextEditorProps): JSX.Element => {\n const {\n onChange,\n defaultValue,\n labelText,\n \"aria-labelledby\": labelledBy,\n classNameOverride,\n controls,\n rows = 3,\n dataError = \"Something went wrong\",\n onDataError,\n validationMessage,\n description,\n status = \"default\",\n ...restProps\n } = props\n const [schema] = useState<ProseMirrorModel.Schema>(\n createSchemaFromControls(controls)\n )\n const [labelId] = useState<string>(labelledBy || v4())\n const [editorId] = useState<string>(v4())\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-3\",\n }}\n type=\"negative\"\n persistent\n >\n {dataError}\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\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\nRichTextEditor.displayName = \"RichTextEditor\"\n"],"names":["RichTextEditor","props","onChange","defaultValue","labelText","labelledBy","classNameOverride","controls","_a","rows","_b","dataError","onDataError","validationMessage","description","_c","status","restProps","__rest","schema","useState","createSchemaFromControls","labelId","v4","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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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var styles = {
|
|
4
|
-
"editor": "RichTextEditor-module_editor__okUfp",
|
|
5
|
-
"hasToolbar": "RichTextEditor-module_hasToolbar__4Owhv",
|
|
6
|
-
"editorWrapper": "RichTextEditor-module_editorWrapper__A5BhN",
|
|
7
|
-
"toolbar": "RichTextEditor-module_toolbar__3Plfs",
|
|
8
|
-
"error": "RichTextEditor-module_error__UMpSL",
|
|
9
|
-
"caution": "RichTextEditor-module_caution__6fXtL",
|
|
10
|
-
"rows1": "RichTextEditor-module_rows1__Gob2B",
|
|
11
|
-
"rows2": "RichTextEditor-module_rows2__C6VJ8",
|
|
12
|
-
"rows3": "RichTextEditor-module_rows3__qIAfH",
|
|
13
|
-
"rows4": "RichTextEditor-module_rows4__1WilX",
|
|
14
|
-
"rows5": "RichTextEditor-module_rows5__rAh8L",
|
|
15
|
-
"rows6": "RichTextEditor-module_rows6__5qPRA",
|
|
16
|
-
"rows7": "RichTextEditor-module_rows7__UoWsH",
|
|
17
|
-
"rows8": "RichTextEditor-module_rows8__L0uxX",
|
|
18
|
-
"rows9": "RichTextEditor-module_rows9__LnHZ7",
|
|
19
|
-
"rows10": "RichTextEditor-module_rows10__RGNTL",
|
|
20
|
-
"rows11": "RichTextEditor-module_rows11__-WhWa",
|
|
21
|
-
"rows12": "RichTextEditor-module_rows12__IltPs",
|
|
22
|
-
"rows13": "RichTextEditor-module_rows13__0-KRw",
|
|
23
|
-
"rows14": "RichTextEditor-module_rows14__ghHj1",
|
|
24
|
-
"rows15": "RichTextEditor-module_rows15__1JkHj",
|
|
25
|
-
"rows16": "RichTextEditor-module_rows16__np59M",
|
|
26
|
-
"rows17": "RichTextEditor-module_rows17__7W-kF",
|
|
27
|
-
"rows18": "RichTextEditor-module_rows18__q4c7D",
|
|
28
|
-
"rows19": "RichTextEditor-module_rows19__3DP0y",
|
|
29
|
-
"rows20": "RichTextEditor-module_rows20__dxZNO"
|
|
30
|
-
};
|
|
31
|
-
module.exports = styles;
|
|
32
|
-
//# sourceMappingURL=RichTextEditor.module.scss.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextEditor.module.scss.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var tslib = require('tslib');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
var richTextToolkit = require('@cultureamp/rich-text-toolkit');
|
|
6
|
-
require('uuid');
|
|
7
|
-
require('../../../Icon/subcomponents/SVG/SVG.cjs');
|
|
8
|
-
var AddLinkIcon = require('../../../Icon/AddLinkIcon.cjs');
|
|
9
|
-
var BoldIcon = require('../../../Icon/BoldIcon.cjs');
|
|
10
|
-
var BullettedListIcon = require('../../../Icon/BullettedListIcon.cjs');
|
|
11
|
-
var DecreaseIndentIcon = require('../../../Icon/DecreaseIndentIcon.cjs');
|
|
12
|
-
var IncreaseIndentIcon = require('../../../Icon/IncreaseIndentIcon.cjs');
|
|
13
|
-
var ItalicsIcon = require('../../../Icon/ItalicsIcon.cjs');
|
|
14
|
-
var NumberedListIcon = require('../../../Icon/NumberedListIcon.cjs');
|
|
15
|
-
var UnderlineIcon = require('../../../Icon/UnderlineIcon.cjs');
|
|
16
|
-
|
|
17
|
-
/** Chains multiple commands to dispatch each transitions in sequential order */
|
|
18
|
-
function chainTransactions() {
|
|
19
|
-
var commands = [];
|
|
20
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
21
|
-
commands[_i] = arguments[_i];
|
|
22
|
-
}
|
|
23
|
-
return function (state, dispatch) {
|
|
24
|
-
var updateStateAndDispatch = function (tr) {
|
|
25
|
-
state = state.apply(tr);
|
|
26
|
-
dispatch && dispatch(tr);
|
|
27
|
-
};
|
|
28
|
-
var lastCommand = commands.pop();
|
|
29
|
-
for (var _i = 0, commands_1 = commands; _i < commands_1.length; _i++) {
|
|
30
|
-
var command = commands_1[_i];
|
|
31
|
-
command(state, updateStateAndDispatch);
|
|
32
|
-
}
|
|
33
|
-
return lastCommand !== undefined && lastCommand(state, dispatch);
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
/** Dispatches a transaction to create initial p tag required for pm commands */
|
|
37
|
-
function createInitialParagraph(state, dispatch) {
|
|
38
|
-
if (dispatch) {
|
|
39
|
-
var tr = state.tr,
|
|
40
|
-
schema = state.schema;
|
|
41
|
-
dispatch(tr.replaceSelectionWith(schema.nodes.paragraph.create()));
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
/** Create command for toggling Marks */
|
|
47
|
-
function createToggleMarkCommand(mark) {
|
|
48
|
-
return function (state, dispatch) {
|
|
49
|
-
var docIsEmpty = state.doc.content.size === 0;
|
|
50
|
-
if (docIsEmpty) {
|
|
51
|
-
return chainTransactions(createInitialParagraph, richTextToolkit.ProseMirrorCommands.toggleMark(mark))(state, dispatch);
|
|
52
|
-
}
|
|
53
|
-
return richTextToolkit.ProseMirrorCommands.toggleMark(mark)(state, dispatch);
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
/** Create command for toggling Lists */
|
|
57
|
-
function createToggleListCommand(node) {
|
|
58
|
-
return function (state, dispatch) {
|
|
59
|
-
var docIsEmpty = state.doc.content.size === 0;
|
|
60
|
-
if (docIsEmpty) {
|
|
61
|
-
return chainTransactions(createInitialParagraph, richTextToolkit.ProseMirrorSchemaList.wrapInList(node))(state, dispatch);
|
|
62
|
-
}
|
|
63
|
-
return richTextToolkit.ProseMirrorSchemaList.wrapInList(node)(state, dispatch);
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
/** Create command for reducing indents in a List */
|
|
67
|
-
function createLiftListCommand() {
|
|
68
|
-
return function (state, dispatch) {
|
|
69
|
-
var _a;
|
|
70
|
-
var $from = state.selection.$from;
|
|
71
|
-
// calculate the parent node from the current tag selected
|
|
72
|
-
var listItemNode = (_a = $from.node($from.depth - 1)) === null || _a === void 0 ? void 0 : _a.type;
|
|
73
|
-
return richTextToolkit.ProseMirrorSchemaList.liftListItem(listItemNode)(state, dispatch);
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
/** Create command for indenting in a List */
|
|
77
|
-
function createIndentListCommand() {
|
|
78
|
-
return function (state, dispatch) {
|
|
79
|
-
var _a;
|
|
80
|
-
var $from = state.selection.$from;
|
|
81
|
-
var listItemNode = (_a = $from.node($from.depth - 1)) === null || _a === void 0 ? void 0 : _a.type;
|
|
82
|
-
return richTextToolkit.ProseMirrorSchemaList.sinkListItem(listItemNode)(state, dispatch);
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
/** handler lift list disabled state */
|
|
86
|
-
function liftListIsDisabled(state) {
|
|
87
|
-
var _a;
|
|
88
|
-
var $from = state.selection.$from;
|
|
89
|
-
var listItemNode = (_a = $from.node($from.depth - 1)) === null || _a === void 0 ? void 0 : _a.type;
|
|
90
|
-
var isValidListItem = (listItemNode === null || listItemNode === void 0 ? void 0 : listItemNode.name) === "listItem" || false;
|
|
91
|
-
return !isValidListItem;
|
|
92
|
-
}
|
|
93
|
-
/** handler indent list disabled state */
|
|
94
|
-
function indentListIsDisabled(state) {
|
|
95
|
-
var _a;
|
|
96
|
-
var _b = state.selection,
|
|
97
|
-
$from = _b.$from,
|
|
98
|
-
$to = _b.$to;
|
|
99
|
-
var listItemNode = (_a = $from.node($from.depth - 1)) === null || _a === void 0 ? void 0 : _a.type;
|
|
100
|
-
var isValidListItem = (listItemNode === null || listItemNode === void 0 ? void 0 : listItemNode.name) === "listItem" || false;
|
|
101
|
-
if (!isValidListItem) {
|
|
102
|
-
return true;
|
|
103
|
-
}
|
|
104
|
-
var range = $from.blockRange($to, function (node) {
|
|
105
|
-
return node.childCount > 0 && node.firstChild.type === listItemNode;
|
|
106
|
-
});
|
|
107
|
-
return !range || range.startIndex === 0 ? true : false;
|
|
108
|
-
}
|
|
109
|
-
/** Creates an object used as an index to map the controls to respective groups */
|
|
110
|
-
var createControlGroupIndex = function (controls) {
|
|
111
|
-
return controls.reduce(function (groups, currentControl) {
|
|
112
|
-
var _a;
|
|
113
|
-
if (!(currentControl === null || currentControl === void 0 ? void 0 : currentControl.name)) return groups;
|
|
114
|
-
return tslib.__assign(tslib.__assign({}, groups), (_a = {}, _a[currentControl.name] = currentControl.group || "ungrouped", _a));
|
|
115
|
-
}, {});
|
|
116
|
-
};
|
|
117
|
-
/** Creates an initial object used to map button configuration into its respective groups */
|
|
118
|
-
var createInitialControls = function (controlGroupIndex) {
|
|
119
|
-
var uniqueGroups = Array.from(new Set(Object.values(controlGroupIndex)));
|
|
120
|
-
var initialControlObject = uniqueGroups.reduce(function (controlObject, controlKey) {
|
|
121
|
-
var _a;
|
|
122
|
-
if (controlKey === "ungrouped") return controlObject;
|
|
123
|
-
return tslib.__assign(tslib.__assign({}, controlObject), (_a = {}, _a[controlKey] = [], _a));
|
|
124
|
-
}, {});
|
|
125
|
-
// This ensure that ungrouped controls are always last
|
|
126
|
-
initialControlObject["ungrouped"] = [];
|
|
127
|
-
return initialControlObject;
|
|
128
|
-
};
|
|
129
|
-
/** Retrieves the name of the group a control belongs to */
|
|
130
|
-
var getGroupIndex = function (controlGroupIndex, controlType) {
|
|
131
|
-
var _a;
|
|
132
|
-
if (controlType) {
|
|
133
|
-
return (_a = controlGroupIndex[controlType]) !== null && _a !== void 0 ? _a : "ungrouped";
|
|
134
|
-
}
|
|
135
|
-
return "ungrouped";
|
|
136
|
-
};
|
|
137
|
-
/** Filters out empty control groups and returns a multi dimensional array */
|
|
138
|
-
var filterToolbarControls = function (groupedControls) {
|
|
139
|
-
return Object.values(groupedControls).filter(function (controls) {
|
|
140
|
-
return controls.length > 0;
|
|
141
|
-
});
|
|
142
|
-
};
|
|
143
|
-
/** Builds an array of object used to map control configuration to rte toolbar buttons */
|
|
144
|
-
function buildControlMap(schema, editorState, controls) {
|
|
145
|
-
if (!controls) return [];
|
|
146
|
-
var controlGroupIndex = createControlGroupIndex(controls);
|
|
147
|
-
var toolbarControls = createInitialControls(controlGroupIndex);
|
|
148
|
-
var listNodes = [schema.nodes.bulletList, schema.nodes.orderedList];
|
|
149
|
-
if (schema.marks.strong) {
|
|
150
|
-
var type = schema.marks.strong;
|
|
151
|
-
var groupIndex = getGroupIndex(controlGroupIndex, "bold");
|
|
152
|
-
toolbarControls[groupIndex].push({
|
|
153
|
-
isActive: richTextToolkit.markIsActive(editorState, type),
|
|
154
|
-
action: createToggleMarkCommand(type),
|
|
155
|
-
label: "Bold",
|
|
156
|
-
icon: React.createElement(BoldIcon.BoldIcon, {
|
|
157
|
-
role: "presentation"
|
|
158
|
-
})
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
if (schema.marks.em) {
|
|
162
|
-
var type = schema.marks.em;
|
|
163
|
-
var groupIndex = getGroupIndex(controlGroupIndex, "italic");
|
|
164
|
-
toolbarControls[groupIndex].push({
|
|
165
|
-
isActive: richTextToolkit.markIsActive(editorState, type),
|
|
166
|
-
action: createToggleMarkCommand(type),
|
|
167
|
-
label: "Italic",
|
|
168
|
-
icon: React.createElement(ItalicsIcon.ItalicsIcon, {
|
|
169
|
-
role: "presentation"
|
|
170
|
-
})
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
if (schema.marks.underline) {
|
|
174
|
-
var type = schema.marks.underline;
|
|
175
|
-
var groupIndex = getGroupIndex(controlGroupIndex, "underline");
|
|
176
|
-
toolbarControls[groupIndex].push({
|
|
177
|
-
isActive: richTextToolkit.markIsActive(editorState, type),
|
|
178
|
-
action: createToggleMarkCommand(type),
|
|
179
|
-
label: "Underline",
|
|
180
|
-
icon: React.createElement(UnderlineIcon.UnderlineIcon, {
|
|
181
|
-
role: "presentation"
|
|
182
|
-
})
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
if (schema.nodes.bulletList) {
|
|
186
|
-
var type = schema.nodes.bulletList;
|
|
187
|
-
var groupIndex = getGroupIndex(controlGroupIndex, "bulletList");
|
|
188
|
-
toolbarControls[groupIndex].push({
|
|
189
|
-
action: createToggleListCommand(type),
|
|
190
|
-
isActive: richTextToolkit.listIsActive(editorState, type, listNodes),
|
|
191
|
-
label: "Bullet List",
|
|
192
|
-
icon: React.createElement(BullettedListIcon.BullettedListIcon, {
|
|
193
|
-
role: "presentation"
|
|
194
|
-
})
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
if (schema.nodes.orderedList) {
|
|
198
|
-
var type = schema.nodes.orderedList;
|
|
199
|
-
var groupIndex = getGroupIndex(controlGroupIndex, "orderedList");
|
|
200
|
-
toolbarControls[groupIndex].push({
|
|
201
|
-
action: createToggleListCommand(type),
|
|
202
|
-
isActive: richTextToolkit.listIsActive(editorState, type, listNodes),
|
|
203
|
-
label: "Numbered List",
|
|
204
|
-
icon: React.createElement(NumberedListIcon.NumberedListIcon, {
|
|
205
|
-
role: "presentation"
|
|
206
|
-
})
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
if (schema.nodes.orderedList || schema.nodes.bulletList) {
|
|
210
|
-
var groupIndex = controlGroupIndex["orderedList"] || controlGroupIndex["bulletList"] || "ungrouped";
|
|
211
|
-
toolbarControls[groupIndex].push({
|
|
212
|
-
action: createLiftListCommand(),
|
|
213
|
-
disabled: liftListIsDisabled(editorState),
|
|
214
|
-
isActive: false,
|
|
215
|
-
label: "Decrease indent",
|
|
216
|
-
icon: React.createElement(DecreaseIndentIcon.DecreaseIndentIcon, {
|
|
217
|
-
role: "presentation"
|
|
218
|
-
})
|
|
219
|
-
}, {
|
|
220
|
-
action: createIndentListCommand(),
|
|
221
|
-
disabled: indentListIsDisabled(editorState),
|
|
222
|
-
isActive: false,
|
|
223
|
-
label: "Increase indent",
|
|
224
|
-
icon: React.createElement(IncreaseIndentIcon.IncreaseIndentIcon, {
|
|
225
|
-
role: "presentation"
|
|
226
|
-
})
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
if (schema.marks.link) {
|
|
230
|
-
var type = schema.marks.link;
|
|
231
|
-
var groupIndex = getGroupIndex(controlGroupIndex, "link");
|
|
232
|
-
toolbarControls[groupIndex].push({
|
|
233
|
-
action: createToggleMarkCommand(type),
|
|
234
|
-
disabled: editorState.selection.empty,
|
|
235
|
-
isActive: false,
|
|
236
|
-
label: "Link",
|
|
237
|
-
icon: React.createElement(AddLinkIcon.AddLinkIcon, {
|
|
238
|
-
role: "presentation"
|
|
239
|
-
})
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
return filterToolbarControls(toolbarControls);
|
|
243
|
-
}
|
|
244
|
-
exports.buildControlMap = buildControlMap;
|
|
245
|
-
//# sourceMappingURL=controlmap.cjs.map
|