@comet/cms-admin 9.0.0-beta.3 → 9.0.0-beta.4

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.
Files changed (178) hide show
  1. package/lib/blocks/PixelImageBlock.d.ts.map +1 -1
  2. package/lib/blocks/PixelImageBlock.fragment.d.ts +2 -0
  3. package/lib/blocks/PixelImageBlock.fragment.d.ts.map +1 -0
  4. package/lib/blocks/PixelImageBlock.fragment.generated.d.ts +20 -0
  5. package/lib/blocks/PixelImageBlock.fragment.generated.d.ts.map +1 -0
  6. package/lib/blocks/PixelImageBlock.fragment.generated.js +5 -0
  7. package/lib/blocks/PixelImageBlock.fragment.js +4 -0
  8. package/lib/blocks/PixelImageBlock.js +3 -2
  9. package/lib/blocks/__stories__/RichTextBlock.stories.js +53 -0
  10. package/lib/blocks/createLinkBlock.d.ts.map +1 -1
  11. package/lib/blocks/createLinkBlock.js +50 -1
  12. package/lib/blocks/createRichTextBlock.d.ts.map +1 -1
  13. package/lib/blocks/createRichTextBlock.js +56 -20
  14. package/lib/blocks/createSeoBlock.d.ts.map +1 -1
  15. package/lib/blocks/createSeoBlock.js +6 -4
  16. package/lib/blocks/createTextLinkBlock.d.ts.map +1 -1
  17. package/lib/blocks/createTextLinkBlock.js +36 -1
  18. package/lib/blocks/factories/createBlocksBlock.d.ts.map +1 -1
  19. package/lib/blocks/factories/createBlocksBlock.js +70 -13
  20. package/lib/blocks/factories/createColumnsBlock.d.ts.map +1 -1
  21. package/lib/blocks/factories/createColumnsBlock.js +56 -6
  22. package/lib/blocks/factories/createListBlock.d.ts.map +1 -1
  23. package/lib/blocks/factories/createListBlock.js +56 -6
  24. package/lib/blocks/factories/createOneOfBlock.d.ts.map +1 -1
  25. package/lib/blocks/factories/createOneOfBlock.js +62 -5
  26. package/lib/blocks/factories/createOptionalBlock.d.ts.map +1 -1
  27. package/lib/blocks/factories/createOptionalBlock.js +38 -1
  28. package/lib/blocks/helpers/composeBlocks/composeBlocks.d.ts.map +1 -1
  29. package/lib/blocks/helpers/composeBlocks/composeBlocks.js +52 -16
  30. package/lib/blocks/helpers/composeBlocks/createCompositeBlockField.d.ts +2 -1
  31. package/lib/blocks/helpers/composeBlocks/createCompositeBlockField.d.ts.map +1 -1
  32. package/lib/blocks/helpers/composeBlocks/createCompositeBlockField.js +4 -2
  33. package/lib/blocks/helpers/composeBlocks/createSettingsBlock.d.ts +2 -1
  34. package/lib/blocks/helpers/composeBlocks/createSettingsBlock.d.ts.map +1 -1
  35. package/lib/blocks/helpers/composeBlocks/createSettingsBlock.js +5 -1
  36. package/lib/blocks/helpers/createBlockSkeleton.js +15 -1
  37. package/lib/blocks/helpers/createCompositeBlockTextField.d.ts +2 -1
  38. package/lib/blocks/helpers/createCompositeBlockTextField.d.ts.map +1 -1
  39. package/lib/blocks/helpers/createCompositeBlockTextField.js +20 -2
  40. package/lib/blocks/tipTap/BlockStyleContext.d.ts +3 -0
  41. package/lib/blocks/tipTap/BlockStyleContext.d.ts.map +1 -0
  42. package/lib/blocks/tipTap/BlockStyleContext.js +2 -0
  43. package/lib/blocks/tipTap/InlineStyleContext.d.ts +3 -0
  44. package/lib/blocks/tipTap/InlineStyleContext.d.ts.map +1 -0
  45. package/lib/blocks/tipTap/InlineStyleContext.js +2 -0
  46. package/lib/blocks/tipTap/TipTapLinkDialog.d.ts +10 -0
  47. package/lib/blocks/tipTap/TipTapLinkDialog.d.ts.map +1 -0
  48. package/lib/blocks/tipTap/TipTapLinkDialog.js +105 -0
  49. package/lib/blocks/tipTap/TipTapToolbar.d.ts +12 -0
  50. package/lib/blocks/tipTap/TipTapToolbar.d.ts.map +1 -0
  51. package/lib/blocks/tipTap/TipTapToolbar.js +611 -0
  52. package/lib/blocks/tipTap/__stories__/TipTapRichTextBlock.stories.js +1566 -0
  53. package/lib/blocks/tipTap/createTipTapRichTextBlock.d.ts +56 -0
  54. package/lib/blocks/tipTap/createTipTapRichTextBlock.d.ts.map +1 -0
  55. package/lib/blocks/tipTap/createTipTapRichTextBlock.js +418 -0
  56. package/lib/blocks/tipTap/extensions/BlockStyleHeading.d.ts +2 -0
  57. package/lib/blocks/tipTap/extensions/BlockStyleHeading.d.ts.map +1 -0
  58. package/lib/blocks/tipTap/extensions/BlockStyleHeading.js +57 -0
  59. package/lib/blocks/tipTap/extensions/BlockStyleParagraph.d.ts +2 -0
  60. package/lib/blocks/tipTap/extensions/BlockStyleParagraph.d.ts.map +1 -0
  61. package/lib/blocks/tipTap/extensions/BlockStyleParagraph.js +56 -0
  62. package/lib/blocks/tipTap/extensions/CmsLink.d.ts +13 -0
  63. package/lib/blocks/tipTap/extensions/CmsLink.d.ts.map +1 -0
  64. package/lib/blocks/tipTap/extensions/CmsLink.js +42 -0
  65. package/lib/blocks/tipTap/extensions/InlineStyleMark.d.ts +13 -0
  66. package/lib/blocks/tipTap/extensions/InlineStyleMark.d.ts.map +1 -0
  67. package/lib/blocks/tipTap/extensions/InlineStyleMark.js +71 -0
  68. package/lib/blocks/tipTap/extensions/NonBreakingSpace.d.ts +10 -0
  69. package/lib/blocks/tipTap/extensions/NonBreakingSpace.d.ts.map +1 -0
  70. package/lib/blocks/tipTap/extensions/NonBreakingSpace.js +57 -0
  71. package/lib/blocks/tipTap/extensions/SoftHyphen.d.ts +10 -0
  72. package/lib/blocks/tipTap/extensions/SoftHyphen.d.ts.map +1 -0
  73. package/lib/blocks/tipTap/extensions/SoftHyphen.js +51 -0
  74. package/lib/blocks/tipTap/listLevelMaxHelpers.d.ts +6 -0
  75. package/lib/blocks/tipTap/listLevelMaxHelpers.d.ts.map +1 -0
  76. package/lib/blocks/tipTap/listLevelMaxHelpers.js +108 -0
  77. package/lib/blocks/types.d.ts +7 -0
  78. package/lib/blocks/types.d.ts.map +1 -1
  79. package/lib/config/CometConfigContext.d.ts +2 -1
  80. package/lib/config/CometConfigContext.d.ts.map +1 -1
  81. package/lib/config/CometConfigContext.js +9 -5
  82. package/lib/contentScope/__stories__/ContentScopeProvider.stories.js +85 -0
  83. package/lib/contentScope/__stories__/ContentScopeSelect.stories.js +655 -0
  84. package/lib/contentScope/noContentScopeFallback/__stories__/NoContentScopeFallback.stories.js +7 -0
  85. package/lib/dam/DamTable.d.ts +5 -1
  86. package/lib/dam/DamTable.d.ts.map +1 -1
  87. package/lib/dam/DamTable.js +5 -1
  88. package/lib/dam/DataGrid/FolderDataGrid.d.ts +1 -1
  89. package/lib/dam/DataGrid/FolderDataGrid.d.ts.map +1 -1
  90. package/lib/dam/DataGrid/FolderDataGrid.js +52 -43
  91. package/lib/dam/DataGrid/selection/DamSelectionContext.d.ts +7 -4
  92. package/lib/dam/DataGrid/selection/DamSelectionContext.d.ts.map +1 -1
  93. package/lib/dam/DataGrid/selection/DamSelectionContext.js +11 -3
  94. package/lib/form/file/FileField.d.ts +15 -12
  95. package/lib/form/file/FileField.d.ts.map +1 -1
  96. package/lib/form/file/FileField.gql.d.ts +2 -0
  97. package/lib/form/file/FileField.gql.d.ts.map +1 -1
  98. package/lib/form/file/FileField.gql.generated.d.ts +40 -0
  99. package/lib/form/file/FileField.gql.generated.d.ts.map +1 -1
  100. package/lib/form/file/FileField.gql.generated.js +2 -1
  101. package/lib/form/file/FileField.gql.js +6 -3
  102. package/lib/form/file/FileField.js +170 -86
  103. package/lib/form/file/FileFieldMenu.d.ts +17 -0
  104. package/lib/form/file/FileFieldMenu.d.ts.map +1 -0
  105. package/lib/form/file/FileFieldMenu.js +91 -0
  106. package/lib/form/file/FileFieldRow.d.ts +12 -0
  107. package/lib/form/file/FileFieldRow.d.ts.map +1 -0
  108. package/lib/form/file/FileFieldRow.js +96 -0
  109. package/lib/form/file/chooseFile/BaseChooseDamFileDialog.d.ts +20 -0
  110. package/lib/form/file/chooseFile/BaseChooseDamFileDialog.d.ts.map +1 -0
  111. package/lib/form/file/chooseFile/BaseChooseDamFileDialog.js +106 -0
  112. package/lib/form/file/chooseFile/ChooseDamFileDialog.d.ts.map +1 -1
  113. package/lib/form/file/chooseFile/ChooseDamFileDialog.js +34 -89
  114. package/lib/form/file/chooseFile/ChooseDamFilesDialog.d.ts +9 -0
  115. package/lib/form/file/chooseFile/ChooseDamFilesDialog.d.ts.map +1 -0
  116. package/lib/form/file/chooseFile/ChooseDamFilesDialog.js +117 -0
  117. package/lib/graphql.generated.d.ts +12 -1
  118. package/lib/graphql.generated.d.ts.map +1 -1
  119. package/lib/index.d.ts +8 -1
  120. package/lib/index.d.ts.map +1 -1
  121. package/lib/index.js +5 -0
  122. package/lib/pages/createEditPageNode.d.ts.map +1 -1
  123. package/lib/pages/createEditPageNode.js +1 -12
  124. package/lib/pages/createUsePage.d.ts +1 -0
  125. package/lib/pages/createUsePage.d.ts.map +1 -1
  126. package/lib/pages/createUsePage.js +135 -6
  127. package/lib/pages/pageTree/PageActions.d.ts.map +1 -1
  128. package/lib/pages/pageTree/PageActions.js +21 -3
  129. package/lib/pages/pageTree/findAvailableSlug.d.ts +11 -0
  130. package/lib/pages/pageTree/findAvailableSlug.d.ts.map +1 -0
  131. package/lib/pages/pageTree/findAvailableSlug.generated.d.ts +16 -0
  132. package/lib/pages/pageTree/findAvailableSlug.generated.d.ts.map +1 -0
  133. package/lib/pages/pageTree/findAvailableSlug.generated.js +5 -0
  134. package/lib/pages/pageTree/findAvailableSlug.js +62 -0
  135. package/lib/pages/pageTree/transformToSlug.d.ts +2 -0
  136. package/lib/pages/pageTree/transformToSlug.d.ts.map +1 -0
  137. package/lib/pages/pageTree/transformToSlug.js +12 -0
  138. package/lib/pages/pageTree/useCopyPastePages/sendPages.d.ts.map +1 -1
  139. package/lib/pages/pageTree/useCopyPastePages/sendPages.generated.d.ts +0 -10
  140. package/lib/pages/pageTree/useCopyPastePages/sendPages.generated.d.ts.map +1 -1
  141. package/lib/pages/pageTree/useCopyPastePages/sendPages.generated.js +0 -1
  142. package/lib/pages/pageTree/useCopyPastePages/sendPages.js +19 -40
  143. package/lib/pages/pageTree/useCopyPastePages.d.ts.map +1 -1
  144. package/lib/pages/pageTree/useCopyPastePages.js +1 -1
  145. package/lib/pages/pageTree/{useCopyPastePages/ProgressDialog.d.ts → useProgressDialog.d.ts} +1 -1
  146. package/lib/pages/pageTree/useProgressDialog.d.ts.map +1 -0
  147. package/lib/pages/pageTree/useTranslatePagesAction.d.ts +16 -0
  148. package/lib/pages/pageTree/useTranslatePagesAction.d.ts.map +1 -0
  149. package/lib/pages/pageTree/useTranslatePagesAction.generated.d.ts +20 -0
  150. package/lib/pages/pageTree/useTranslatePagesAction.generated.d.ts.map +1 -0
  151. package/lib/pages/pageTree/useTranslatePagesAction.generated.js +5 -0
  152. package/lib/pages/pageTree/useTranslatePagesAction.js +339 -0
  153. package/lib/pages/pagesPage/PagesPageActionToolbar.d.ts.map +1 -1
  154. package/lib/pages/pagesPage/PagesPageActionToolbar.js +29 -2
  155. package/lib/pages/pagesPage/PagesPageActionToolbar.sc.d.ts +2 -2
  156. package/lib/translation/AzureAiTranslatorProvider.d.ts +1 -1
  157. package/lib/translation/AzureAiTranslatorProvider.d.ts.map +1 -1
  158. package/lib/translation/AzureAiTranslatorProvider.generated.d.ts +8 -0
  159. package/lib/translation/AzureAiTranslatorProvider.generated.d.ts.map +1 -1
  160. package/lib/translation/AzureAiTranslatorProvider.generated.js +2 -1
  161. package/lib/translation/AzureAiTranslatorProvider.js +31 -2
  162. package/lib/translation/TranslatableInterface.d.ts +4 -0
  163. package/lib/translation/TranslatableInterface.d.ts.map +1 -0
  164. package/lib/translation/TranslatableInterface.js +1 -0
  165. package/lib/translation/TranslateContentMenuItem.d.ts +7 -0
  166. package/lib/translation/TranslateContentMenuItem.d.ts.map +1 -0
  167. package/lib/translation/TranslateContentMenuItem.js +99 -0
  168. package/lib/translation/createDocumentTranslationMethods.d.ts +4 -0
  169. package/lib/translation/createDocumentTranslationMethods.d.ts.map +1 -0
  170. package/lib/translation/createDocumentTranslationMethods.js +62 -0
  171. package/lib/validation/validateJson.d.ts +2 -0
  172. package/lib/validation/validateJson.d.ts.map +1 -0
  173. package/lib/validation/validateJson.js +15 -0
  174. package/package.json +32 -23
  175. package/lib/dashboard/__stories__/DateTime.stories.d.ts +0 -7
  176. package/lib/dashboard/__stories__/DateTime.stories.d.ts.map +0 -1
  177. package/lib/pages/pageTree/useCopyPastePages/ProgressDialog.d.ts.map +0 -1
  178. /package/lib/pages/pageTree/{useCopyPastePages/ProgressDialog.js → useProgressDialog.js} +0 -0
@@ -0,0 +1,611 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
5
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
6
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
7
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
8
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
12
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
+ import { greyPalette, Tooltip } from "@comet/admin";
14
+ import { MoreHorizontal, RteBold, RteClearLink, RteIndentDecrease, RteIndentIncrease, RteItalic, RteLink, RteNonBreakingSpace, RteOl, RteRedo, RteSoftHyphen, RteStrikethrough, RteSub, RteSup, RteUl, RteUndo } from "@comet/admin-icons";
15
+ import { Box, FormControl, inputBaseClasses, ListItemIcon, Menu, MenuItem, Select, selectClasses } from "@mui/material";
16
+ import { grey as muiGreyPalette } from "@mui/material/colors";
17
+ import { useEditorState } from "@tiptap/react";
18
+ import { useState } from "react";
19
+ import { FormattedMessage } from "react-intl";
20
+ import { TipTapLinkDialog } from "./TipTapLinkDialog";
21
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
22
+ var toolbarButtonSx = {
23
+ display: "flex",
24
+ justifyContent: "center",
25
+ alignItems: "center",
26
+ height: 24,
27
+ width: 24,
28
+ padding: 0,
29
+ backgroundColor: "transparent",
30
+ border: "1px solid transparent",
31
+ boxSizing: "border-box",
32
+ transition: "background-color 200ms, border-color 200ms, color 200ms",
33
+ color: muiGreyPalette[600],
34
+ "&:hover": {
35
+ backgroundColor: muiGreyPalette[200],
36
+ borderColor: muiGreyPalette[400]
37
+ },
38
+ "&:disabled": {
39
+ color: muiGreyPalette[300],
40
+ "&, &:hover": {
41
+ backgroundColor: "transparent",
42
+ borderColor: "transparent"
43
+ }
44
+ }
45
+ };
46
+ var toolbarButtonSelectedSx = {
47
+ "&:not(:disabled), &:not(:disabled):hover": {
48
+ borderColor: muiGreyPalette[400],
49
+ backgroundColor: "white"
50
+ }
51
+ };
52
+ var ToolbarButton = function ToolbarButton(_ref) {
53
+ var editor = _ref.editor,
54
+ Icon = _ref.icon,
55
+ tooltip = _ref.tooltip,
56
+ isActive = _ref.isActive,
57
+ disabled = _ref.disabled,
58
+ onToggle = _ref.onToggle;
59
+ return /*#__PURE__*/_jsx(Tooltip, {
60
+ title: tooltip,
61
+ children: /*#__PURE__*/_jsx(Box, {
62
+ component: "button",
63
+ type: "button",
64
+ disabled: disabled,
65
+ onMouseDown: function onMouseDown(e) {
66
+ e.preventDefault();
67
+ onToggle();
68
+ },
69
+ sx: _objectSpread(_objectSpread({}, toolbarButtonSx), isActive && editor.isActive(isActive) ? toolbarButtonSelectedSx : {}),
70
+ children: /*#__PURE__*/_jsx(Icon, {
71
+ sx: {
72
+ fontSize: 15
73
+ },
74
+ color: "inherit"
75
+ })
76
+ })
77
+ });
78
+ };
79
+ var toolbarSlotSx = {
80
+ display: "flex",
81
+ alignItems: "center",
82
+ flexShrink: 0,
83
+ flexGrow: 0,
84
+ height: 34,
85
+ boxSizing: "border-box",
86
+ py: "5px",
87
+ pr: "6px",
88
+ mr: "5px",
89
+ borderRight: "1px solid ".concat(greyPalette[100]),
90
+ "&:last-child": {
91
+ mr: 0,
92
+ pr: 0,
93
+ borderRight: "none"
94
+ }
95
+ };
96
+ var ToolbarGroup = function ToolbarGroup(_ref2) {
97
+ var children = _ref2.children;
98
+ return /*#__PURE__*/_jsx(Box, {
99
+ sx: toolbarSlotSx,
100
+ children: children
101
+ });
102
+ };
103
+ var selectFormControlSx = _defineProperty(_defineProperty({}, "& .".concat(inputBaseClasses.root), {
104
+ backgroundColor: "transparent",
105
+ height: "auto",
106
+ border: "none",
107
+ "&, &:hover": {
108
+ "&:before, &:after": {
109
+ borderBottomWidth: 0
110
+ }
111
+ }
112
+ }), "& .".concat(selectClasses.icon), {
113
+ top: "auto",
114
+ color: "inherit"
115
+ });
116
+ var selectSx = _defineProperty({}, "& .".concat(selectClasses.select, ".").concat(inputBaseClasses.input), {
117
+ minHeight: 0,
118
+ color: muiGreyPalette[600],
119
+ minWidth: 180,
120
+ lineHeight: "24px",
121
+ fontSize: 14,
122
+ p: 0
123
+ });
124
+ export var TipTapToolbar = function TipTapToolbar(_ref3) {
125
+ var editor = _ref3.editor,
126
+ supports = _ref3.supports,
127
+ blockStyles = _ref3.blockStyles,
128
+ inlineStyles = _ref3.inlineStyles,
129
+ linkBlock = _ref3.linkBlock,
130
+ listLevelMax = _ref3.listLevelMax;
131
+ var _useState = useState(null),
132
+ _useState2 = _slicedToArray(_useState, 2),
133
+ moreAnchorEl = _useState2[0],
134
+ setMoreAnchorEl = _useState2[1];
135
+ var _useState3 = useState(false),
136
+ _useState4 = _slicedToArray(_useState3, 2),
137
+ linkDialogOpen = _useState4[0],
138
+ setLinkDialogOpen = _useState4[1];
139
+ var hasInlineFormatButtons = ["bold", "italic", "strike"].some(function (s) {
140
+ return supports.includes(s);
141
+ });
142
+ var moreOptions = ["sub", "sup"].some(function (s) {
143
+ return supports.includes(s);
144
+ });
145
+ var lists = ["ordered-list", "unordered-list"].some(function (s) {
146
+ return supports.includes(s);
147
+ });
148
+ var specialChars = ["non-breaking-space", "soft-hyphen"].some(function (s) {
149
+ return supports.includes(s);
150
+ });
151
+ var hasLink = supports.includes("link") && !!linkBlock;
152
+ var hasInlineStyles = inlineStyles.length > 0;
153
+ var editorState = useEditorState({
154
+ editor: editor,
155
+ selector: function selector(_ref4) {
156
+ var _ref6;
157
+ var e = _ref4.editor;
158
+ var activeBlockType = function () {
159
+ for (var level = 1; level <= 6; level++) {
160
+ if (e.isActive("heading", {
161
+ level: level
162
+ })) {
163
+ return String(level);
164
+ }
165
+ }
166
+ return "paragraph";
167
+ }();
168
+ var activeTipTapBlockType = function () {
169
+ if (e.isActive("orderedList")) {
170
+ return "ordered-list";
171
+ }
172
+ if (e.isActive("bulletList")) {
173
+ return "unordered-list";
174
+ }
175
+ for (var level = 1; level <= 6; level++) {
176
+ if (e.isActive("heading", {
177
+ level: level
178
+ })) {
179
+ return "heading-".concat(level);
180
+ }
181
+ }
182
+ return "paragraph";
183
+ }();
184
+ var attrs = e.isActive("heading") ? e.getAttributes("heading") : e.getAttributes("paragraph");
185
+ var activeInlineStyle = function (_ref5) {
186
+ if (!hasInlineStyles) {
187
+ return "";
188
+ }
189
+ var inlineStyleAttrs = e.getAttributes("inlineStyle");
190
+ return (_ref5 = inlineStyleAttrs.type) !== null && _ref5 !== void 0 ? _ref5 : "";
191
+ }();
192
+
193
+ // Calculate current list nesting depth for listLevelMax enforcement
194
+ var canIndent = e.can().sinkListItem("listItem");
195
+ if (canIndent && listLevelMax !== undefined) {
196
+ var $from = e.state.selection.$from;
197
+ var listDepth = 0;
198
+ for (var d = 0; d <= $from.depth; d++) {
199
+ var node = $from.node(d);
200
+ if (node.type.name === "bulletList" || node.type.name === "orderedList") {
201
+ listDepth++;
202
+ }
203
+ }
204
+ if (listDepth >= listLevelMax) {
205
+ canIndent = false;
206
+ }
207
+ }
208
+ return {
209
+ activeBlockType: activeBlockType,
210
+ activeTipTapBlockType: activeTipTapBlockType,
211
+ activeBlockStyle: (_ref6 = attrs.blockStyle) !== null && _ref6 !== void 0 ? _ref6 : "",
212
+ activeInlineStyle: activeInlineStyle,
213
+ canUndo: e.can().undo(),
214
+ canRedo: e.can().redo(),
215
+ canIndent: canIndent,
216
+ canDedent: e.can().liftListItem("listItem"),
217
+ isBoldActive: e.isActive("bold"),
218
+ isItalicActive: e.isActive("italic"),
219
+ isStrikeActive: e.isActive("strike"),
220
+ isSuperscriptActive: e.isActive("superscript"),
221
+ isSubscriptActive: e.isActive("subscript"),
222
+ isOrderedListActive: e.isActive("orderedList"),
223
+ isBulletListActive: e.isActive("bulletList"),
224
+ isLinkActive: e.isActive("link"),
225
+ selectionEmpty: e.state.selection.empty
226
+ };
227
+ }
228
+ });
229
+ var handleMoreClose = function handleMoreClose() {
230
+ setMoreAnchorEl(null);
231
+ setTimeout(function () {
232
+ return editor.commands.focus();
233
+ }, 0);
234
+ };
235
+ var applicableBlockStyles = blockStyles.filter(function (style) {
236
+ return !style.appliesTo || style.appliesTo.includes(editorState.activeTipTapBlockType);
237
+ });
238
+ var applicableInlineStyles = inlineStyles.filter(function (style) {
239
+ return !style.appliesTo || style.appliesTo.includes(editorState.activeTipTapBlockType);
240
+ });
241
+ var handleBlockTypeChange = function handleBlockTypeChange(e) {
242
+ var value = e.target.value;
243
+ if (value === "paragraph") {
244
+ editor.chain().focus().setParagraph().run();
245
+ } else {
246
+ editor.chain().focus().setHeading({
247
+ level: Number(value)
248
+ }).run();
249
+ }
250
+
251
+ // Clear blockStyle if it's not applicable to the new block type
252
+ if (blockStyles.length > 0) {
253
+ var activeBlockStyle = editorState.activeBlockStyle;
254
+ if (activeBlockStyle) {
255
+ var newType = value === "paragraph" ? "paragraph" : "heading-".concat(value);
256
+ var styleConfig = blockStyles.find(function (s) {
257
+ return s.name === activeBlockStyle;
258
+ });
259
+ if (styleConfig !== null && styleConfig !== void 0 && styleConfig.appliesTo && !styleConfig.appliesTo.includes(newType)) {
260
+ var nodeType = value === "paragraph" ? "paragraph" : "heading";
261
+ editor.chain().updateAttributes(nodeType, {
262
+ blockStyle: null
263
+ }).run();
264
+ }
265
+ }
266
+ }
267
+ };
268
+ var handleBlockStyleChange = function handleBlockStyleChange(e) {
269
+ var value = e.target.value || null;
270
+ var nodeType = editor.isActive("heading") ? "heading" : "paragraph";
271
+ editor.chain().focus().updateAttributes(nodeType, {
272
+ blockStyle: value
273
+ }).run();
274
+ };
275
+ var handleInlineStyleChange = function handleInlineStyleChange(e) {
276
+ var value = e.target.value;
277
+ if (value) {
278
+ editor.chain().focus().setInlineStyle({
279
+ type: value
280
+ }).run();
281
+ } else {
282
+ editor.chain().focus().unsetInlineStyle().run();
283
+ }
284
+ };
285
+ return /*#__PURE__*/_jsxs(Box, {
286
+ sx: {
287
+ display: "flex",
288
+ flexWrap: "wrap",
289
+ borderTop: "1px solid ".concat(greyPalette[100]),
290
+ backgroundColor: muiGreyPalette[100],
291
+ px: "6px"
292
+ },
293
+ children: [supports.includes("history") && /*#__PURE__*/_jsxs(ToolbarGroup, {
294
+ children: [/*#__PURE__*/_jsx(ToolbarButton, {
295
+ editor: editor,
296
+ icon: RteUndo,
297
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
298
+ id: "comet.blocks.tipTapRichText.undo.tooltip",
299
+ defaultMessage: "Undo"
300
+ }),
301
+ disabled: !editorState.canUndo,
302
+ onToggle: function onToggle() {
303
+ return editor.chain().focus().undo().run();
304
+ }
305
+ }), /*#__PURE__*/_jsx(ToolbarButton, {
306
+ editor: editor,
307
+ icon: RteRedo,
308
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
309
+ id: "comet.blocks.tipTapRichText.redo.tooltip",
310
+ defaultMessage: "Redo"
311
+ }),
312
+ disabled: !editorState.canRedo,
313
+ onToggle: function onToggle() {
314
+ return editor.chain().focus().redo().run();
315
+ }
316
+ })]
317
+ }), supports.includes("heading") && /*#__PURE__*/_jsx(ToolbarGroup, {
318
+ children: /*#__PURE__*/_jsx(FormControl, {
319
+ sx: selectFormControlSx,
320
+ children: /*#__PURE__*/_jsxs(Select, {
321
+ value: editorState.activeBlockType,
322
+ onChange: handleBlockTypeChange,
323
+ displayEmpty: true,
324
+ variant: "filled",
325
+ MenuProps: {
326
+ elevation: 1
327
+ },
328
+ sx: selectSx,
329
+ children: [/*#__PURE__*/_jsx(MenuItem, {
330
+ value: "paragraph",
331
+ dense: true,
332
+ children: /*#__PURE__*/_jsx(FormattedMessage, {
333
+ id: "comet.blocks.tipTapRichText.blockType.default",
334
+ defaultMessage: "Default"
335
+ })
336
+ }), [1, 2, 3, 4, 5, 6].map(function (level) {
337
+ return /*#__PURE__*/_jsx(MenuItem, {
338
+ value: String(level),
339
+ dense: true,
340
+ children: /*#__PURE__*/_jsx(FormattedMessage, {
341
+ id: "comet.blocks.tipTapRichText.blockType.heading",
342
+ defaultMessage: "Heading {level}",
343
+ values: {
344
+ level: level
345
+ }
346
+ })
347
+ }, level);
348
+ })]
349
+ })
350
+ })
351
+ }), applicableBlockStyles.length > 0 && /*#__PURE__*/_jsx(ToolbarGroup, {
352
+ children: /*#__PURE__*/_jsx(FormControl, {
353
+ sx: selectFormControlSx,
354
+ children: /*#__PURE__*/_jsxs(Select, {
355
+ value: editorState.activeBlockStyle,
356
+ onChange: handleBlockStyleChange,
357
+ displayEmpty: true,
358
+ variant: "filled",
359
+ MenuProps: {
360
+ elevation: 1
361
+ },
362
+ sx: selectSx,
363
+ children: [/*#__PURE__*/_jsx(MenuItem, {
364
+ value: "",
365
+ dense: true,
366
+ children: /*#__PURE__*/_jsx(FormattedMessage, {
367
+ id: "comet.blocks.tipTapRichText.blockStyle.default",
368
+ defaultMessage: "Default"
369
+ })
370
+ }), applicableBlockStyles.map(function (style) {
371
+ return /*#__PURE__*/_jsx(MenuItem, {
372
+ value: style.name,
373
+ dense: true,
374
+ children: style.label
375
+ }, style.name);
376
+ })]
377
+ })
378
+ })
379
+ }), applicableInlineStyles.length > 0 && /*#__PURE__*/_jsx(ToolbarGroup, {
380
+ children: /*#__PURE__*/_jsx(FormControl, {
381
+ sx: selectFormControlSx,
382
+ children: /*#__PURE__*/_jsxs(Select, {
383
+ value: editorState.activeInlineStyle,
384
+ onChange: handleInlineStyleChange,
385
+ displayEmpty: true,
386
+ variant: "filled",
387
+ MenuProps: {
388
+ elevation: 1
389
+ },
390
+ sx: selectSx,
391
+ disabled: editorState.selectionEmpty,
392
+ children: [/*#__PURE__*/_jsx(MenuItem, {
393
+ value: "",
394
+ dense: true,
395
+ children: /*#__PURE__*/_jsx(FormattedMessage, {
396
+ id: "comet.blocks.tipTapRichText.inlineStyle.default",
397
+ defaultMessage: "Default"
398
+ })
399
+ }), applicableInlineStyles.map(function (style) {
400
+ return /*#__PURE__*/_jsx(MenuItem, {
401
+ value: style.name,
402
+ dense: true,
403
+ children: style.label
404
+ }, style.name);
405
+ })]
406
+ })
407
+ })
408
+ }), (hasInlineFormatButtons || moreOptions) && /*#__PURE__*/_jsxs(ToolbarGroup, {
409
+ children: [supports.includes("bold") && /*#__PURE__*/_jsx(ToolbarButton, {
410
+ editor: editor,
411
+ icon: RteBold,
412
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
413
+ id: "comet.blocks.tipTapRichText.bold.tooltip",
414
+ defaultMessage: "Bold"
415
+ }),
416
+ isActive: "bold",
417
+ onToggle: function onToggle() {
418
+ return editor.chain().focus().toggleBold().run();
419
+ }
420
+ }), supports.includes("italic") && /*#__PURE__*/_jsx(ToolbarButton, {
421
+ editor: editor,
422
+ icon: RteItalic,
423
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
424
+ id: "comet.blocks.tipTapRichText.italic.tooltip",
425
+ defaultMessage: "Italic"
426
+ }),
427
+ isActive: "italic",
428
+ onToggle: function onToggle() {
429
+ return editor.chain().focus().toggleItalic().run();
430
+ }
431
+ }), supports.includes("strike") && /*#__PURE__*/_jsx(ToolbarButton, {
432
+ editor: editor,
433
+ icon: RteStrikethrough,
434
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
435
+ id: "comet.blocks.tipTapRichText.strike.tooltip",
436
+ defaultMessage: "Strikethrough"
437
+ }),
438
+ isActive: "strike",
439
+ onToggle: function onToggle() {
440
+ return editor.chain().focus().toggleStrike().run();
441
+ }
442
+ }), moreOptions && /*#__PURE__*/_jsxs(_Fragment, {
443
+ children: [/*#__PURE__*/_jsx(Tooltip, {
444
+ title: /*#__PURE__*/_jsx(FormattedMessage, {
445
+ id: "comet.blocks.tipTapRichText.moreOptions.tooltip",
446
+ defaultMessage: "More options"
447
+ }),
448
+ children: /*#__PURE__*/_jsx(Box, {
449
+ component: "button",
450
+ type: "button",
451
+ onMouseDown: function onMouseDown(e) {
452
+ e.preventDefault();
453
+ setMoreAnchorEl(e.currentTarget);
454
+ },
455
+ sx: toolbarButtonSx,
456
+ children: /*#__PURE__*/_jsx(MoreHorizontal, {
457
+ sx: {
458
+ fontSize: 15
459
+ },
460
+ color: "inherit"
461
+ })
462
+ })
463
+ }), /*#__PURE__*/_jsxs(Menu, {
464
+ open: Boolean(moreAnchorEl),
465
+ anchorEl: moreAnchorEl,
466
+ onClose: handleMoreClose,
467
+ children: [supports.includes("sup") && /*#__PURE__*/_jsxs(MenuItem, {
468
+ selected: editor.isActive("superscript"),
469
+ onMouseDown: function onMouseDown(e) {
470
+ handleMoreClose();
471
+ e.persist();
472
+ setTimeout(function () {
473
+ return editor.chain().focus().toggleSuperscript().run();
474
+ }, 0);
475
+ },
476
+ children: [/*#__PURE__*/_jsx(FormattedMessage, {
477
+ id: "comet.blocks.tipTapRichText.superscript.label",
478
+ defaultMessage: "Superscript"
479
+ }), /*#__PURE__*/_jsx(ListItemIcon, {
480
+ sx: {
481
+ justifyContent: "flex-end"
482
+ },
483
+ children: /*#__PURE__*/_jsx(RteSup, {})
484
+ })]
485
+ }), supports.includes("sub") && /*#__PURE__*/_jsxs(MenuItem, {
486
+ selected: editor.isActive("subscript"),
487
+ onMouseDown: function onMouseDown(e) {
488
+ handleMoreClose();
489
+ e.persist();
490
+ setTimeout(function () {
491
+ return editor.chain().focus().toggleSubscript().run();
492
+ }, 0);
493
+ },
494
+ children: [/*#__PURE__*/_jsx(FormattedMessage, {
495
+ id: "comet.blocks.tipTapRichText.subscript.label",
496
+ defaultMessage: "Subscript"
497
+ }), /*#__PURE__*/_jsx(ListItemIcon, {
498
+ sx: {
499
+ justifyContent: "flex-end"
500
+ },
501
+ children: /*#__PURE__*/_jsx(RteSub, {})
502
+ })]
503
+ })]
504
+ })]
505
+ })]
506
+ }), lists && /*#__PURE__*/_jsxs(ToolbarGroup, {
507
+ children: [supports.includes("ordered-list") && /*#__PURE__*/_jsx(ToolbarButton, {
508
+ editor: editor,
509
+ icon: RteOl,
510
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
511
+ id: "comet.blocks.tipTapRichText.orderedList.tooltip",
512
+ defaultMessage: "Ordered list"
513
+ }),
514
+ isActive: "orderedList",
515
+ onToggle: function onToggle() {
516
+ return editor.chain().focus().toggleOrderedList().run();
517
+ }
518
+ }), supports.includes("unordered-list") && /*#__PURE__*/_jsx(ToolbarButton, {
519
+ editor: editor,
520
+ icon: RteUl,
521
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
522
+ id: "comet.blocks.tipTapRichText.bulletList.tooltip",
523
+ defaultMessage: "Bullet list"
524
+ }),
525
+ isActive: "bulletList",
526
+ onToggle: function onToggle() {
527
+ return editor.chain().focus().toggleBulletList().run();
528
+ }
529
+ }), /*#__PURE__*/_jsx(ToolbarButton, {
530
+ editor: editor,
531
+ icon: RteIndentIncrease,
532
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
533
+ id: "comet.blocks.tipTapRichText.indent.tooltip",
534
+ defaultMessage: "Increase indent"
535
+ }),
536
+ disabled: !editorState.canIndent,
537
+ onToggle: function onToggle() {
538
+ return editor.chain().focus().sinkListItem("listItem").run();
539
+ }
540
+ }), /*#__PURE__*/_jsx(ToolbarButton, {
541
+ editor: editor,
542
+ icon: RteIndentDecrease,
543
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
544
+ id: "comet.blocks.tipTapRichText.dedent.tooltip",
545
+ defaultMessage: "Decrease indent"
546
+ }),
547
+ disabled: !editorState.canDedent,
548
+ onToggle: function onToggle() {
549
+ return editor.chain().focus().liftListItem("listItem").run();
550
+ }
551
+ })]
552
+ }), specialChars && /*#__PURE__*/_jsxs(ToolbarGroup, {
553
+ children: [supports.includes("non-breaking-space") && /*#__PURE__*/_jsx(ToolbarButton, {
554
+ editor: editor,
555
+ icon: RteNonBreakingSpace,
556
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
557
+ id: "comet.blocks.tipTapRichText.nonBreakingSpace.tooltip",
558
+ defaultMessage: "Insert a non-breaking space"
559
+ }),
560
+ onToggle: function onToggle() {
561
+ return editor.chain().focus().insertContent({
562
+ type: "nonBreakingSpace"
563
+ }).run();
564
+ }
565
+ }), supports.includes("soft-hyphen") && /*#__PURE__*/_jsx(ToolbarButton, {
566
+ editor: editor,
567
+ icon: RteSoftHyphen,
568
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
569
+ id: "comet.blocks.tipTapRichText.softHyphen.tooltip",
570
+ defaultMessage: "Insert a soft hyphen"
571
+ }),
572
+ onToggle: function onToggle() {
573
+ return editor.chain().focus().insertContent({
574
+ type: "softHyphen"
575
+ }).run();
576
+ }
577
+ })]
578
+ }), hasLink && linkBlock && /*#__PURE__*/_jsxs(ToolbarGroup, {
579
+ children: [/*#__PURE__*/_jsx(ToolbarButton, {
580
+ editor: editor,
581
+ icon: RteLink,
582
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
583
+ id: "comet.blocks.tipTapRichText.link.tooltip",
584
+ defaultMessage: "Link"
585
+ }),
586
+ isActive: "link",
587
+ disabled: editorState.selectionEmpty && !editorState.isLinkActive,
588
+ onToggle: function onToggle() {
589
+ return setLinkDialogOpen(true);
590
+ }
591
+ }), /*#__PURE__*/_jsx(ToolbarButton, {
592
+ editor: editor,
593
+ icon: RteClearLink,
594
+ tooltip: /*#__PURE__*/_jsx(FormattedMessage, {
595
+ id: "comet.blocks.tipTapRichText.removeLink.tooltip",
596
+ defaultMessage: "Remove link"
597
+ }),
598
+ disabled: !editorState.isLinkActive,
599
+ onToggle: function onToggle() {
600
+ return editor.chain().focus().extendMarkRange("link").unsetCmsLink().run();
601
+ }
602
+ })]
603
+ }), linkDialogOpen && linkBlock && /*#__PURE__*/_jsx(TipTapLinkDialog, {
604
+ editor: editor,
605
+ linkBlock: linkBlock,
606
+ onClose: function onClose() {
607
+ return setLinkDialogOpen(false);
608
+ }
609
+ })]
610
+ });
611
+ };