@edifice.io/react 2.5.8 → 2.5.9-develop.20260202140207
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/README.md +5 -0
- package/dist/_virtual/isSameOrAfter.js +4 -0
- package/dist/_virtual/isToday.js +4 -0
- package/dist/components/Badge/Badge.d.ts +7 -1
- package/dist/components/Badge/Badge.js +13 -1
- package/dist/components/DatePicker/DatePicker.d.ts +57 -0
- package/dist/components/DatePicker/DatePicker.js +6 -3
- package/dist/components/Dropdown/DropdownContext.js +1 -1
- package/dist/components/Form/FormContext.js +1 -1
- package/dist/components/Layout/Layout.js +1 -2
- package/dist/components/Layout/components/Header.js +5 -2
- package/dist/components/Layout/components/WidgetApps.js +2 -2
- package/dist/components/MediaViewer/MediaViewer.d.ts +17 -0
- package/dist/components/MediaViewer/MediaViewer.js +36 -0
- package/dist/components/MediaViewer/MediaWrapper.d.ts +7 -0
- package/dist/components/MediaViewer/MediaWrapper.js +72 -0
- package/dist/components/MediaViewer/PdfViewer.d.ts +4 -0
- package/dist/components/MediaViewer/PdfViewer.js +26 -0
- package/dist/components/MediaViewer/ToolbarViewer.d.ts +7 -0
- package/dist/components/MediaViewer/ToolbarViewer.js +41 -0
- package/dist/components/MediaViewer/ToolbarZoom.d.ts +4 -0
- package/dist/components/MediaViewer/ToolbarZoom.js +19 -0
- package/dist/components/MediaViewer/index.d.ts +2 -0
- package/dist/components/Modal/Modal.d.ts +4 -0
- package/dist/components/Modal/Modal.js +13 -12
- package/dist/components/PromotionCard/PromotionCard.d.ts +74 -0
- package/dist/components/PromotionCard/PromotionCard.js +31 -0
- package/dist/components/PromotionCard/PromotionCardBody.d.ts +10 -0
- package/dist/components/PromotionCard/PromotionCardBody.js +15 -0
- package/dist/components/PromotionCard/PromotionCardDescription.d.ts +9 -0
- package/dist/components/PromotionCard/PromotionCardDescription.js +12 -0
- package/dist/components/PromotionCard/PromotionCardFooter.d.ts +9 -0
- package/dist/components/PromotionCard/PromotionCardFooter.js +12 -0
- package/dist/components/PromotionCard/PromotionCardHeader.d.ts +11 -0
- package/dist/components/PromotionCard/PromotionCardHeader.js +17 -0
- package/dist/components/PromotionCard/PromotionCardIcon.d.ts +10 -0
- package/dist/components/PromotionCard/PromotionCardIcon.js +15 -0
- package/dist/components/PromotionCard/PromotionCardTitle.d.ts +9 -0
- package/dist/components/PromotionCard/PromotionCardTitle.js +12 -0
- package/dist/components/PromotionCard/index.d.ts +2 -0
- package/dist/components/SmartEllipsis/SmartEllipsis.d.ts +5 -0
- package/dist/components/SmartEllipsis/SmartEllipsis.js +21 -0
- package/dist/components/SmartEllipsis/index.d.ts +2 -0
- package/dist/components/Toolbar/Toolbar.js +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/editor.js +40 -40
- package/dist/hooks/useConversation/useConversation.js +3 -1
- package/dist/hooks/useDate/useDate.d.ts +5 -1
- package/dist/hooks/useDate/useDate.js +18 -2
- package/dist/hooks/useDropdown/useDropdown.js +1 -1
- package/dist/hooks/useDropzone/useDropzone.js +21 -16
- package/dist/hooks/useEdificeIcons/useEdificeIcons.d.ts +1 -0
- package/dist/hooks/useEdificeIcons/useEdificeIcons.js +5 -0
- package/dist/hooks/useZoom/index.d.ts +1 -0
- package/dist/hooks/useZoom/useZoom.d.ts +7 -0
- package/dist/hooks/useZoom/useZoom.js +14 -0
- package/dist/icons-apps.js +234 -232
- package/dist/icons.js +362 -350
- package/dist/index.js +231 -226
- package/dist/modals.js +18 -18
- package/dist/modules/audience/ViewsCounter.d.ts +3 -17
- package/dist/modules/audience/ViewsCounter.js +9 -7
- package/dist/modules/comments/components/Comment.js +4 -4
- package/dist/modules/comments/components/CommentDate.js +7 -10
- package/dist/modules/comments/components/CommentDeleted.js +1 -1
- package/dist/modules/comments/components/CommentForm.d.ts +1 -1
- package/dist/modules/comments/components/CommentForm.js +6 -6
- package/dist/modules/comments/components/CommentTitle.js +1 -1
- package/dist/modules/comments/provider/CommentProvider.js +4 -4
- package/dist/modules/comments/types.d.ts +3 -1
- package/dist/modules/editor/hooks/useTipTapEditor.js +4 -4
- package/dist/modules/icons/components/IconAdjustSettings.d.ts +7 -0
- package/dist/modules/icons/components/IconAdjustSettings.js +12 -0
- package/dist/modules/icons/components/IconAiFill.d.ts +7 -0
- package/dist/modules/icons/components/IconAiFill.js +12 -0
- package/dist/modules/icons/components/IconCalendarEdit.d.ts +7 -0
- package/dist/modules/icons/components/IconCalendarEdit.js +12 -0
- package/dist/modules/icons/components/IconExercizerAi.d.ts +7 -0
- package/dist/modules/icons/components/IconExercizerAi.js +14 -0
- package/dist/modules/icons/components/IconLabel.d.ts +7 -0
- package/dist/modules/icons/components/IconLabel.js +12 -0
- package/dist/modules/icons/components/IconTeacher.d.ts +7 -0
- package/dist/modules/icons/components/IconTeacher.js +12 -0
- package/dist/modules/icons/components/apps/IconAssistancetic.d.ts +7 -0
- package/dist/modules/icons/components/apps/IconAssistancetic.js +14 -0
- package/dist/modules/icons/components/apps/index.d.ts +1 -0
- package/dist/modules/icons/components/index.d.ts +6 -0
- package/dist/modules/modals/OnboardingModal/OnboardingModal.js +5 -5
- package/dist/modules/modals/ResourceModal/ResourceModal.js +1 -2
- package/dist/modules/modals/ShareModal/ShareResources.d.ts +3 -0
- package/dist/modules/modals/ShareModal/ShareResources.js +9 -5
- package/dist/modules/multimedia/FileCard/FileCard.js +1 -1
- package/dist/modules/multimedia/Linker/ExternalLinker/ExternalLinker.js +1 -2
- package/dist/modules/multimedia/Linker/InternalLinker/InternalLinker.js +1 -2
- package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js +1 -1
- package/dist/multimedia.js +10 -10
- package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isSameOrAfter.js +18 -0
- package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isToday.js +19 -0
- package/dist/providers/AntThemeProvider/antThemeConfig.js +1 -2
- package/dist/utilities/mime-types/index.d.ts +1 -0
- package/dist/utilities/mime-types/mime-types-utils.d.ts +1 -0
- package/dist/utilities/mime-types/mime-types-utils.js +4 -0
- package/package.json +7 -6
- package/dist/modules/comments/components/CommentHeader.d.ts +0 -3
- package/dist/modules/comments/components/CommentHeader.js +0 -8
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { StringUtils } from "@edifice.io/utilities";
|
|
3
3
|
import clsx from "clsx";
|
|
4
|
+
import { forwardRef } from "react";
|
|
4
5
|
import SvgIconSee from "../icons/components/IconSee.js";
|
|
5
6
|
import Button from "../../components/Button/Button.js";
|
|
6
|
-
const ViewsCounter = ({
|
|
7
|
+
const ViewsCounter = /* @__PURE__ */ forwardRef(({
|
|
7
8
|
viewsCounter,
|
|
8
9
|
onClick,
|
|
9
|
-
className
|
|
10
|
-
|
|
10
|
+
className,
|
|
11
|
+
...restProps
|
|
12
|
+
}, ref) => {
|
|
11
13
|
const handleButtonClick = (event) => {
|
|
12
|
-
event.preventDefault(), event.stopPropagation(), onClick == null || onClick();
|
|
13
|
-
};
|
|
14
|
-
return className = clsx("text-gray-700 fw-normal py-4 px-8 btn-icon", className), /* @__PURE__ */ jsx(Button, { rightIcon: /* @__PURE__ */ jsx(SvgIconSee, {}),
|
|
15
|
-
};
|
|
14
|
+
event.preventDefault(), event.stopPropagation(), onClick == null || onClick(event);
|
|
15
|
+
}, isDisabled = viewsCounter <= 0;
|
|
16
|
+
return className = clsx("text-gray-700 fw-normal py-4 px-8 btn-icon", className), /* @__PURE__ */ jsx(Button, { ref, rightIcon: /* @__PURE__ */ jsx(SvgIconSee, {}), className, onClick: handleButtonClick, disabled: isDisabled, ...restProps, color: "tertiary", variant: "ghost", children: StringUtils.toCounter(viewsCounter) });
|
|
17
|
+
});
|
|
16
18
|
export {
|
|
17
19
|
ViewsCounter as default
|
|
18
20
|
};
|
|
@@ -50,7 +50,7 @@ const DeleteModal = /* @__PURE__ */ lazy(() => import("./DeleteModal.js")), Comm
|
|
|
50
50
|
/* @__PURE__ */ jsx(CommentReplies, { parentComment: comment })
|
|
51
51
|
] }),
|
|
52
52
|
!comment.deleted && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
53
|
-
/* @__PURE__ */ jsxs("div", { className: `${isEditing ? "border rounded-3 p-12 pb-8 d-flex gap-12 bg-gray-200 my-16" : "border rounded-3 p-12 pb-8 d-flex gap-12 mt-16"}`, children: [
|
|
53
|
+
/* @__PURE__ */ jsxs("div", { "data-testid": "div-comment-read", className: `${isEditing ? "border rounded-3 p-12 pb-8 d-flex gap-12 bg-gray-200 my-16" : "border rounded-3 p-12 pb-8 d-flex gap-12 mt-16"}`, children: [
|
|
54
54
|
/* @__PURE__ */ jsx(CommentAvatar, { id: authorId }),
|
|
55
55
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-fill", children: [
|
|
56
56
|
/* @__PURE__ */ jsxs("div", { className: "d-flex align-items-center gap-12", children: [
|
|
@@ -67,7 +67,7 @@ const DeleteModal = /* @__PURE__ */ lazy(() => import("./DeleteModal.js")), Comm
|
|
|
67
67
|
/* @__PURE__ */ jsx(Button, { variant: "ghost", color: "tertiary", size: "sm", onClick: handleReset, children: t("comment.cancel") }),
|
|
68
68
|
/* @__PURE__ */ jsxs("div", { className: "d-flex justify-content-end align-items-center gap-4", children: [
|
|
69
69
|
/* @__PURE__ */ jsx(TextCounter, { content: value, maxLength: options.maxCommentLength }),
|
|
70
|
-
/* @__PURE__ */ jsx(Button, { type: "submit", variant: "ghost", size: "sm", leftIcon: /* @__PURE__ */ jsx(SvgIconSave, {}), disabled: !(content != null && content.length), onClick: () => handleUpdateComment(value), children: t("comment.save") })
|
|
70
|
+
/* @__PURE__ */ jsx(Button, { "data-testid": "comment-save", type: "submit", variant: "ghost", size: "sm", leftIcon: /* @__PURE__ */ jsx(SvgIconSave, {}), disabled: !(content != null && content.length), onClick: () => handleUpdateComment(value), children: t("comment.save") })
|
|
71
71
|
] })
|
|
72
72
|
] })
|
|
73
73
|
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -76,10 +76,10 @@ const DeleteModal = /* @__PURE__ */ lazy(() => import("./DeleteModal.js")), Comm
|
|
|
76
76
|
}, children: content }),
|
|
77
77
|
type === "edit" && /* @__PURE__ */ jsxs("div", { className: "ms-n8", children: [
|
|
78
78
|
!replyTo && options.allowReplies && /* @__PURE__ */ jsx(Button, { variant: "ghost", color: "tertiary", size: "sm", onClick: () => handleReplyToComment(comment.id), children: t("comment.reply") }),
|
|
79
|
-
userId === authorId && /* @__PURE__ */ jsx(Button, { variant: "ghost", color: "tertiary", size: "sm", onClick: () => {
|
|
79
|
+
userId === authorId && /* @__PURE__ */ jsx(Button, { "data-testid": "comment-edit", variant: "ghost", color: "tertiary", size: "sm", onClick: () => {
|
|
80
80
|
handleModifyComment(comment.id), setValue(content);
|
|
81
81
|
}, children: t("comment.edit") }),
|
|
82
|
-
(userId === authorId || (userRights == null ? void 0 : userRights.manager)) && /* @__PURE__ */ jsx(Button, { variant: "ghost", color: "tertiary", size: "sm", onClick: () => setIsDeleteModalOpen(!0), children: t("comment.remove") })
|
|
82
|
+
(userId === authorId || (userRights == null ? void 0 : userRights.manager)) && /* @__PURE__ */ jsx(Button, { "data-testid": "comment-delete", variant: "ghost", color: "tertiary", size: "sm", onClick: () => setIsDeleteModalOpen(!0), children: t("comment.remove") })
|
|
83
83
|
] })
|
|
84
84
|
] })
|
|
85
85
|
] })
|
|
@@ -9,17 +9,14 @@ const CommentDate = ({
|
|
|
9
9
|
fromNow
|
|
10
10
|
} = useDate(), {
|
|
11
11
|
t
|
|
12
|
-
} = useTranslation()
|
|
13
|
-
|
|
14
|
-
}), getUpdatedDate = (date) => t("comment.update.date", {
|
|
15
|
-
date: fromNow(date)
|
|
16
|
-
});
|
|
17
|
-
return updatedAt ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
12
|
+
} = useTranslation();
|
|
13
|
+
return updatedAt || createdAt ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
18
14
|
/* @__PURE__ */ jsx("span", { className: "small text-gray-700", children: "|" }),
|
|
19
|
-
/* @__PURE__ */ jsx("span", { className: "small text-gray-700", children:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
/* @__PURE__ */ jsx("span", { "data-testid": "comment-info-date", className: "small text-gray-700", children: updatedAt ? ((date) => t("comment.update.date", {
|
|
16
|
+
date: fromNow(date)
|
|
17
|
+
}))(updatedAt) : ((date) => t("comment.publish.date", {
|
|
18
|
+
date: fromNow(date)
|
|
19
|
+
}))(createdAt) })
|
|
23
20
|
] }) : null;
|
|
24
21
|
};
|
|
25
22
|
export {
|
|
@@ -4,7 +4,7 @@ const CommentDeleted = () => {
|
|
|
4
4
|
const {
|
|
5
5
|
t
|
|
6
6
|
} = useTranslation();
|
|
7
|
-
return /* @__PURE__ */ jsx("div", { className: "border rounded-3 p-12 pb-8 d-flex gap-12 bg-gray-200 my-16", children: t("comment.deleted") });
|
|
7
|
+
return /* @__PURE__ */ jsx("div", { "data-testid": "div-comment-deleted", className: "border rounded-3 p-12 pb-8 d-flex gap-12 bg-gray-200 my-16", children: t("comment.deleted") });
|
|
8
8
|
};
|
|
9
9
|
export {
|
|
10
10
|
CommentDeleted
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
2
3
|
import { useTranslation } from "react-i18next";
|
|
3
4
|
import SvgIconSend from "../../icons/components/IconSend.js";
|
|
4
5
|
import { useAutosizeTextarea } from "../hooks/useAutosizeTextarea.js";
|
|
5
6
|
import { useCommentsContext } from "../hooks/useCommentsContext.js";
|
|
6
7
|
import { CommentAvatar } from "./CommentAvatar.js";
|
|
7
8
|
import { TextCounter } from "./TextCounter.js";
|
|
8
|
-
import { useState } from "react";
|
|
9
9
|
import Button from "../../../components/Button/Button.js";
|
|
10
10
|
const CommentForm = ({
|
|
11
11
|
userId,
|
|
@@ -22,19 +22,19 @@ const CommentForm = ({
|
|
|
22
22
|
}, handleSubmit = () => {
|
|
23
23
|
handleCreateComment(content, replyTo), setContent("");
|
|
24
24
|
};
|
|
25
|
-
return
|
|
25
|
+
return type === "edit" && /* @__PURE__ */ jsxs("div", { "data-testid": "div-comment-create", className: "border rounded-3 p-12 pb-8 d-flex gap-12 bg-gray-200 d-print-none", children: [
|
|
26
26
|
/* @__PURE__ */ jsx(CommentAvatar, { id: userId }),
|
|
27
27
|
/* @__PURE__ */ jsxs("div", { className: "d-flex flex-column flex-fill gap-4", children: [
|
|
28
|
-
/* @__PURE__ */ jsx("textarea", { id: "add-comment", ref, value: content, className: "form-control", placeholder: t("comment.placeholder.textarea"), maxLength: options.maxCommentLength, onChange: handleChangeContent, onFocus, rows: 1, style: {
|
|
28
|
+
/* @__PURE__ */ jsx("textarea", { id: "add-comment", "data-testid": "comment-form", ref, value: content, className: "form-control", placeholder: t("comment.placeholder.textarea"), maxLength: options.maxCommentLength, onChange: handleChangeContent, onFocus, rows: 1, style: {
|
|
29
29
|
resize: "none",
|
|
30
30
|
overflow: "hidden"
|
|
31
31
|
} }),
|
|
32
32
|
/* @__PURE__ */ jsxs("div", { className: "d-flex justify-content-end align-items-center gap-4", children: [
|
|
33
33
|
/* @__PURE__ */ jsx(TextCounter, { content, maxLength: options.maxCommentLength }),
|
|
34
|
-
/* @__PURE__ */ jsx(Button, { type: "submit", variant: "ghost", size: "sm", leftIcon: /* @__PURE__ */ jsx(SvgIconSend, {}), disabled: !(content != null && content.length), onClick: handleSubmit, children: t("comment.post") })
|
|
34
|
+
/* @__PURE__ */ jsx(Button, { "data-testid": "comment-publish", type: "submit", variant: "ghost", size: "sm", leftIcon: /* @__PURE__ */ jsx(SvgIconSend, {}), disabled: !(content != null && content.length), onClick: handleSubmit, children: t("comment.post") })
|
|
35
35
|
] })
|
|
36
36
|
] })
|
|
37
|
-
] })
|
|
37
|
+
] });
|
|
38
38
|
};
|
|
39
39
|
export {
|
|
40
40
|
CommentForm
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
const CommentTitle = ({
|
|
3
3
|
children
|
|
4
|
-
}) => /* @__PURE__ */ jsx("span", { className: "small text-gray-800", children });
|
|
4
|
+
}) => /* @__PURE__ */ jsx("span", { "data-testid": "comment-info-author", className: "small text-gray-800", children });
|
|
5
5
|
export {
|
|
6
6
|
CommentTitle
|
|
7
7
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
3
|
import { CommentForm } from "../components/CommentForm.js";
|
|
4
|
-
import { CommentHeader } from "../components/CommentHeader.js";
|
|
5
4
|
import { CommentList } from "../components/CommentList.js";
|
|
6
5
|
import { DEFAULT_ALLOW_REPLIES, DEFAULT_ADD_REPLIES, DEFAULT_MAX_REPLIES, DEFAULT_ADD_COMMENTS, DEFAULT_MAX_COMMENTS, DEFAULT_MAX_REPLY_LENGTH, DEFAULT_MAX_COMMENT_LENGTH } from "../constants.js";
|
|
7
6
|
import { CommentContext } from "../context/Context.js";
|
|
8
7
|
import { useComments } from "../hooks/useComments.js";
|
|
8
|
+
import Heading from "../../../components/Heading/Heading.js";
|
|
9
9
|
import Button from "../../../components/Button/Button.js";
|
|
10
10
|
import EmptyScreen from "../../../components/EmptyScreen/EmptyScreen.js";
|
|
11
11
|
const CommentProvider = ({
|
|
@@ -71,15 +71,15 @@ const CommentProvider = ({
|
|
|
71
71
|
[displayedComments, editCommentId, profilesQueries, options]
|
|
72
72
|
);
|
|
73
73
|
return /* @__PURE__ */ jsx(CommentContext.Provider, { value: values, children: /* @__PURE__ */ jsxs("div", { className: "my-24", children: [
|
|
74
|
-
/* @__PURE__ */ jsx(
|
|
74
|
+
/* @__PURE__ */ jsx(Heading, { "data-testid": "comments-info-count-text", level: "h3", headingStyle: "h3", className: displayedComments.length === 0 ? "d-print-none" : "", children: title }),
|
|
75
75
|
/* @__PURE__ */ jsxs("div", { className: "my-24", children: [
|
|
76
76
|
user && /* @__PURE__ */ jsx(CommentForm, { userId: user.userId }),
|
|
77
|
-
profilesQueries.isLoading
|
|
77
|
+
!profilesQueries.isLoading && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
78
78
|
/* @__PURE__ */ jsx(CommentList, {}),
|
|
79
79
|
showMoreComments && /* @__PURE__ */ jsx(Button, { variant: "ghost", color: "tertiary", onClick: handleMoreComments, className: "my-16", children: t("comment.more") })
|
|
80
80
|
] })
|
|
81
81
|
] }),
|
|
82
|
-
!displayedComments.length && type === "edit" && /* @__PURE__ */ jsxs("div", { className: "comments-emptyscreen", children: [
|
|
82
|
+
!displayedComments.length && type === "edit" && /* @__PURE__ */ jsxs("div", { className: "comments-emptyscreen d-print-none", children: [
|
|
83
83
|
/* @__PURE__ */ jsx("div", { className: "comments-emptyscreen-wrapper", children: /* @__PURE__ */ jsx(EmptyScreen, { imageSrc: emptyscreenPath, size: 150 }) }),
|
|
84
84
|
/* @__PURE__ */ jsx("p", { children: t("comment.emptyscreen") })
|
|
85
85
|
] })
|
|
@@ -71,7 +71,9 @@ interface EditRootProps extends BaseProps {
|
|
|
71
71
|
*/
|
|
72
72
|
callbacks: CommentCallbacks;
|
|
73
73
|
/**
|
|
74
|
-
* Rights to perform CRUD on comment
|
|
74
|
+
* Rights to perform CRUD on comment (type=`edit` required):
|
|
75
|
+
* - manager => delete
|
|
76
|
+
* Also, comment's author can update, delete
|
|
75
77
|
*/
|
|
76
78
|
rights?: Record<RightRole, boolean>;
|
|
77
79
|
}
|
|
@@ -27,16 +27,16 @@ import { useTranslation } from "react-i18next";
|
|
|
27
27
|
import { useEdificeClient } from "../../../providers/EdificeClientProvider/EdificeClientProvider.hook.js";
|
|
28
28
|
import useUpload from "../../../hooks/useUpload/useUpload.js";
|
|
29
29
|
import IframeNodeView from "../components/NodeView/IframeNodeView.js";
|
|
30
|
+
import MediaRenderer from "../components/Renderer/MediaRenderer.js";
|
|
30
31
|
import VideoNodeView from "../components/NodeView/VideoNodeView.js";
|
|
31
32
|
import AudioNodeView from "../components/NodeView/AudioNodeView.js";
|
|
33
|
+
import AudioRenderer from "../components/Renderer/AudioRenderer.js";
|
|
32
34
|
import LinkerNodeView from "../components/NodeView/LinkerNodeView.js";
|
|
35
|
+
import LinkerRenderer from "../components/Renderer/LinkerRenderer.js";
|
|
33
36
|
import ImageNodeView from "../components/NodeView/ImageNodeView.js";
|
|
34
37
|
import AttachmentNodeView from "../components/NodeView/AttachmentNodeView.js";
|
|
35
|
-
import InformationPaneNodeView from "../components/NodeView/InformationPaneNodeView.js";
|
|
36
|
-
import MediaRenderer from "../components/Renderer/MediaRenderer.js";
|
|
37
|
-
import AudioRenderer from "../components/Renderer/AudioRenderer.js";
|
|
38
|
-
import LinkerRenderer from "../components/Renderer/LinkerRenderer.js";
|
|
39
38
|
import AttachmentRenderer from "../components/Renderer/AttachmentRenderer.js";
|
|
39
|
+
import InformationPaneNodeView from "../components/NodeView/InformationPaneNodeView.js";
|
|
40
40
|
import InformationPaneRenderer from "../components/Renderer/InformationPaneRenderer.js";
|
|
41
41
|
const useTipTapEditor = (editable, content, focus, placeholder, onContentChange, visibility = "protected", extensions) => {
|
|
42
42
|
const {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface SVGRProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
titleId?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgIconAdjustSettings: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgIconAdjustSettings;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
const SvgIconAdjustSettings = ({
|
|
3
|
+
title,
|
|
4
|
+
titleId,
|
|
5
|
+
...props
|
|
6
|
+
}) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", fill: "none", viewBox: "0 0 24 24", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
|
|
7
|
+
title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
|
|
8
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M10 17c1.306 0 2.414.835 2.826 2H21.9c.608 0 1.1.448 1.1 1s-.492 1-1.1 1h-9.074a2.998 2.998 0 0 1-5.652 0H2.1c-.608 0-1.1-.448-1.1-1s.492-1 1.1-1h5.074c.412-1.165 1.52-2 2.826-2m8-8c1.306 0 2.414.835 2.826 2H21.9c.608 0 1.1.448 1.1 1s-.492 1-1.1 1h-1.074a2.998 2.998 0 0 1-5.652 0H2.1c-.608 0-1.1-.448-1.1-1s.492-1 1.1-1h13.074c.412-1.165 1.52-2 2.826-2M7 1c1.306 0 2.414.835 2.826 2H21.9c.608 0 1.1.448 1.1 1s-.492 1-1.1 1H9.826A3 3 0 0 1 7 7a3 3 0 0 1-2.826-2H2.1C1.492 5 1 4.552 1 4s.492-1 1.1-1h2.074C4.586 1.835 5.694 1 7 1" })
|
|
9
|
+
] });
|
|
10
|
+
export {
|
|
11
|
+
SvgIconAdjustSettings as default
|
|
12
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface SVGRProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
titleId?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgIconAiFill: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgIconAiFill;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
const SvgIconAiFill = ({
|
|
3
|
+
title,
|
|
4
|
+
titleId,
|
|
5
|
+
...props
|
|
6
|
+
}) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", fill: "none", viewBox: "0 0 24 24", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
|
|
7
|
+
title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
|
|
8
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "m12.61 21.262.585-1.344a10.35 10.35 0 0 1 5.27-5.342l1.805-.802a1.258 1.258 0 0 0 0-2.283l-1.705-.76A10.38 10.38 0 0 1 13.22 5.21l-.601-1.448a1.201 1.201 0 0 0-2.237 0l-.601 1.45a10.37 10.37 0 0 1-5.346 5.52l-1.703.757a1.258 1.258 0 0 0 0 2.285l1.802.805a10.35 10.35 0 0 1 5.273 5.34l.584 1.343a1.201 1.201 0 0 0 2.218 0M19.35 7.767l.185-.424A3.27 3.27 0 0 1 21.2 5.656l.57-.254a.398.398 0 0 0 0-.72l-.539-.24a3.28 3.28 0 0 1-1.688-1.744l-.19-.457a.38.38 0 0 0-.706 0l-.19.458a3.28 3.28 0 0 1-1.688 1.743l-.538.239a.398.398 0 0 0 0 .721l.57.254c.746.335 1.34.936 1.665 1.687l.184.424a.38.38 0 0 0 .7 0" })
|
|
9
|
+
] });
|
|
10
|
+
export {
|
|
11
|
+
SvgIconAiFill as default
|
|
12
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface SVGRProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
titleId?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgIconCalendarEdit: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgIconCalendarEdit;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
const SvgIconCalendarEdit = ({
|
|
3
|
+
title,
|
|
4
|
+
titleId,
|
|
5
|
+
...props
|
|
6
|
+
}) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", fill: "none", viewBox: "0 0 24 24", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
|
|
7
|
+
title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
|
|
8
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M16 1a1 1 0 0 1 1 1v1h1.5a1 1 0 1 1 0 2H17v1a1 1 0 1 1-2 0V5H9v1a1 1 0 0 1-2 0V5H5a1 1 0 0 0-1 1v3h7a1 1 0 1 1 0 2H4v9a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-4a1 1 0 1 1 2 0v4a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3h2V2a1 1 0 0 1 2 0v1h6V2a1 1 0 0 1 1-1m3.584 5.92a2.685 2.685 0 0 1 3.142 4.353l-11.38 8.21c-.147.106-.32.17-.501.185l-3.261.277a1 1 0 0 1-1.003-1.391l1.29-3.007.063-.121q.106-.176.272-.296zm1.68 1.503a.69.69 0 0 0-.51.12L9.599 16.591l-.523 1.22 1.325-.113 11.154-8.046a.686.686 0 0 0-.041-1.136.7.7 0 0 0-.25-.093" })
|
|
9
|
+
] });
|
|
10
|
+
export {
|
|
11
|
+
SvgIconCalendarEdit as default
|
|
12
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface SVGRProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
titleId?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgIconExercizerAi: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgIconExercizerAi;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
const SvgIconExercizerAi = ({
|
|
3
|
+
title,
|
|
4
|
+
titleId,
|
|
5
|
+
...props
|
|
6
|
+
}) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", fill: "none", viewBox: "0 0 24 24", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
|
|
7
|
+
title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
|
|
8
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M6.5 5a.5.5 0 0 0-.5.5v15a.5.5 0 0 0 .5.5h12a.5.5 0 0 0 .5-.5v-8a1 1 0 1 1 2 0v8a2.5 2.5 0 0 1-2.5 2.5h-12A2.5 2.5 0 0 1 4 20.5v-15A2.5 2.5 0 0 1 6.5 3h5a1 1 0 1 1 0 2z", clipRule: "evenodd" }),
|
|
9
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M8 9a1 1 0 0 1 1-1h3a1 1 0 1 1 0 2H9a1 1 0 0 1-1-1M8 13a1 1 0 0 1 1-1h7a1 1 0 1 1 0 2H9a1 1 0 0 1-1-1M8 17a1 1 0 0 1 1-1h7a1 1 0 1 1 0 2H9a1 1 0 0 1-1-1", clipRule: "evenodd" }),
|
|
10
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "m18.584 10.611.308-.707a5.45 5.45 0 0 1 2.774-2.811l.95-.422a.662.662 0 0 0 0-1.202l-.898-.4a5.46 5.46 0 0 1-2.812-2.906l-.317-.762a.631.631 0 0 0-1.177 0l-.316.763a5.46 5.46 0 0 1-2.814 2.905l-.896.399a.662.662 0 0 0 0 1.203l.948.423a5.45 5.45 0 0 1 2.775 2.81l.308.707a.633.633 0 0 0 1.167 0" })
|
|
11
|
+
] });
|
|
12
|
+
export {
|
|
13
|
+
SvgIconExercizerAi as default
|
|
14
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface SVGRProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
titleId?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgIconLabel: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgIconLabel;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
const SvgIconLabel = ({
|
|
3
|
+
title,
|
|
4
|
+
titleId,
|
|
5
|
+
...props
|
|
6
|
+
}) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", fill: "none", viewBox: "0 0 18 12", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
|
|
7
|
+
title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
|
|
8
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M2.25 1.5a.75.75 0 0 0-.75.75v7.5c0 .414.336.75.75.75h9.512a.75.75 0 0 0 .552-.242l3.45-3.75a.75.75 0 0 0 0-1.016l-3.45-3.75a.75.75 0 0 0-.552-.242zM0 2.25A2.25 2.25 0 0 1 2.25 0h9.512c.63 0 1.23.264 1.656.727l3.45 3.75a2.25 2.25 0 0 1 0 3.046l-3.45 3.75a2.25 2.25 0 0 1-1.656.727H2.25A2.25 2.25 0 0 1 0 9.75z", clipRule: "evenodd" })
|
|
9
|
+
] });
|
|
10
|
+
export {
|
|
11
|
+
SvgIconLabel as default
|
|
12
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface SVGRProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
titleId?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgIconTeacher: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgIconTeacher;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
const SvgIconTeacher = ({
|
|
3
|
+
title,
|
|
4
|
+
titleId,
|
|
5
|
+
...props
|
|
6
|
+
}) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", fill: "none", viewBox: "0 0 24 24", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
|
|
7
|
+
title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
|
|
8
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M2 17.944V10q0-.89.653-1.5.653-.611 1.541-.556A14.6 14.6 0 0 1 12 11.722a14.6 14.6 0 0 1 7.806-3.778 1.99 1.99 0 0 1 1.541.556Q22 9.11 22 10v7.944q0 .89-.583 1.514-.584.626-1.473.68a17 17 0 0 0-3.444.918q-1.666.638-3.111 1.694a2.2 2.2 0 0 1-.653.375 2.2 2.2 0 0 1-.736.125q-.39 0-.736-.125a2.2 2.2 0 0 1-.653-.375Q9.167 21.695 7.5 21.056a17 17 0 0 0-3.444-.917q-.89-.056-1.473-.68A2.14 2.14 0 0 1 2 17.943M12 21a16 16 0 0 1 3.722-2.083 16.3 16.3 0 0 1 4.056-1.028v-7.667q-2.027.361-3.986 1.459-1.959 1.097-3.792 2.93-1.833-1.833-3.792-2.93t-3.986-1.459v7.667q2.084.25 4.056 1.028A16 16 0 0 1 12 21m0-12.111q-1.834 0-3.139-1.306-1.305-1.305-1.305-3.139T8.86 1.306Q10.166 0 12 0q1.833 0 3.139 1.306 1.305 1.305 1.305 3.138 0 1.834-1.305 3.14Q13.834 8.888 12 8.888m0-2.222a2.14 2.14 0 0 0 1.57-.653 2.14 2.14 0 0 0 .652-1.57 2.14 2.14 0 0 0-.653-1.569A2.14 2.14 0 0 0 12 2.222a2.14 2.14 0 0 0-1.57.653 2.14 2.14 0 0 0-.652 1.57q0 .916.653 1.569A2.14 2.14 0 0 0 12 6.667" })
|
|
9
|
+
] });
|
|
10
|
+
export {
|
|
11
|
+
SvgIconTeacher as default
|
|
12
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface SVGRProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
titleId?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgIconAssistancetic: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgIconAssistancetic;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
const SvgIconAssistancetic = ({
|
|
3
|
+
title,
|
|
4
|
+
titleId,
|
|
5
|
+
...props
|
|
6
|
+
}) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", fill: "none", viewBox: "0 0 60 60", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
|
|
7
|
+
title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
|
|
8
|
+
/* @__PURE__ */ jsx("path", { fill: "#ECBE30", d: "M0 8a8 8 0 0 1 8-8h44a8 8 0 0 1 8 8v44a8 8 0 0 1-8 8H8a8 8 0 0 1-8-8z" }),
|
|
9
|
+
/* @__PURE__ */ jsx("path", { fill: "#fff", fillRule: "evenodd", d: "M30 22.667c1.013 0 1.833.82 1.833 1.833v9.167a1.833 1.833 0 0 1-3.666 0V24.5c0-1.012.82-1.833 1.833-1.833M28.167 40.083c0-1.012.82-1.833 1.833-1.833h.018a1.833 1.833 0 0 1 0 3.667H30a1.833 1.833 0 0 1-1.833-1.834", clipRule: "evenodd" }),
|
|
10
|
+
/* @__PURE__ */ jsx("path", { fill: "#fff", fillRule: "evenodd", d: "M26.787 11.87c1.393-2.532 5.033-2.532 6.426 0L50.279 42.9c1.344 2.443-.424 5.433-3.213 5.433H12.934c-2.789 0-4.557-2.99-3.213-5.433zm20.28 32.796L30 13.638l-17.066 31.03z", clipRule: "evenodd" })
|
|
11
|
+
] });
|
|
12
|
+
export {
|
|
13
|
+
SvgIconAssistancetic as default
|
|
14
|
+
};
|
|
@@ -7,6 +7,7 @@ export { default as IconAgenda } from './IconAgenda';
|
|
|
7
7
|
export { default as IconAppointments } from './IconAppointments';
|
|
8
8
|
export { default as IconArchive } from './IconArchive';
|
|
9
9
|
export { default as IconAssistance } from './IconAssistance';
|
|
10
|
+
export { default as IconAssistancetic } from './IconAssistancetic';
|
|
10
11
|
export { default as IconAssr } from './IconAssr';
|
|
11
12
|
export { default as IconAward } from './IconAward';
|
|
12
13
|
export { default as IconBanquesavoir } from './IconBanquesavoir';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { default as IconAddUser } from './IconAddUser';
|
|
2
2
|
export { default as IconAdd } from './IconAdd';
|
|
3
|
+
export { default as IconAdjustSettings } from './IconAdjustSettings';
|
|
4
|
+
export { default as IconAiFill } from './IconAiFill';
|
|
3
5
|
export { default as IconAlertCircle } from './IconAlertCircle';
|
|
4
6
|
export { default as IconAlertTriangle } from './IconAlertTriangle';
|
|
5
7
|
export { default as IconAlignCenter } from './IconAlignCenter';
|
|
@@ -17,6 +19,7 @@ export { default as IconBlur } from './IconBlur';
|
|
|
17
19
|
export { default as IconBookmark } from './IconBookmark';
|
|
18
20
|
export { default as IconBulletList } from './IconBulletList';
|
|
19
21
|
export { default as IconBurgerMenu } from './IconBurgerMenu';
|
|
22
|
+
export { default as IconCalendarEdit } from './IconCalendarEdit';
|
|
20
23
|
export { default as IconCalendarLight } from './IconCalendarLight';
|
|
21
24
|
export { default as IconCalendar } from './IconCalendar';
|
|
22
25
|
export { default as IconCamera } from './IconCamera';
|
|
@@ -42,6 +45,7 @@ export { default as IconDepositeInbox } from './IconDepositeInbox';
|
|
|
42
45
|
export { default as IconDownload } from './IconDownload';
|
|
43
46
|
export { default as IconEdit } from './IconEdit';
|
|
44
47
|
export { default as IconError } from './IconError';
|
|
48
|
+
export { default as IconExercizerAi } from './IconExercizerAi';
|
|
45
49
|
export { default as IconExternalLink } from './IconExternalLink';
|
|
46
50
|
export { default as IconFiles } from './IconFiles';
|
|
47
51
|
export { default as IconFilter } from './IconFilter';
|
|
@@ -68,6 +72,7 @@ export { default as IconImageSizeSmall } from './IconImageSizeSmall';
|
|
|
68
72
|
export { default as IconInbox } from './IconInbox';
|
|
69
73
|
export { default as IconInfoCircle } from './IconInfoCircle';
|
|
70
74
|
export { default as IconInfoRectangle } from './IconInfoRectangle';
|
|
75
|
+
export { default as IconLabel } from './IconLabel';
|
|
71
76
|
export { default as IconLandscape } from './IconLandscape';
|
|
72
77
|
export { default as IconLibrary } from './IconLibrary';
|
|
73
78
|
export { default as IconLink } from './IconLink';
|
|
@@ -141,6 +146,7 @@ export { default as IconSuccessFill } from './IconSuccessFill';
|
|
|
141
146
|
export { default as IconSuccessOutline } from './IconSuccessOutline';
|
|
142
147
|
export { default as IconSuperscript } from './IconSuperscript';
|
|
143
148
|
export { default as IconTable } from './IconTable';
|
|
149
|
+
export { default as IconTeacher } from './IconTeacher';
|
|
144
150
|
export { default as IconTextBold } from './IconTextBold';
|
|
145
151
|
export { default as IconTextColor } from './IconTextColor';
|
|
146
152
|
export { default as IconTextHighlight } from './IconTextHighlight';
|
|
@@ -44,7 +44,7 @@ const OnboardingModal = /* @__PURE__ */ forwardRef(({
|
|
|
44
44
|
}, handleCloseWithoutPreference = () => {
|
|
45
45
|
setIsOpen(!1), setSwiperprogress(0);
|
|
46
46
|
};
|
|
47
|
-
return /* @__PURE__ */ createPortal(/* @__PURE__ */ jsxs(Modal, { id: "onboarding-modal", size: "md", isOpen, focusId: "nextButtonId", onModalClose: handleCloseWithoutPreference, children: [
|
|
47
|
+
return /* @__PURE__ */ createPortal(/* @__PURE__ */ jsxs(Modal, { id: "onboarding-modal", "data-testid": "modal-onboarding", size: "md", isOpen, focusId: "nextButtonId", onModalClose: handleCloseWithoutPreference, children: [
|
|
48
48
|
/* @__PURE__ */ jsx(Modal.Header, { onModalClose: handleCloseWithoutPreference, centered: !0, children: t(currentTitle || "explorer.modal.onboarding.trash.title") }),
|
|
49
49
|
/* @__PURE__ */ jsx(Modal.Body, { children: /* @__PURE__ */ jsx(Swiper, { modules: [Pagination], onSwiper: (swiper) => {
|
|
50
50
|
setSwiperInstance(swiper);
|
|
@@ -59,10 +59,10 @@ const OnboardingModal = /* @__PURE__ */ forwardRef(({
|
|
|
59
59
|
} })
|
|
60
60
|
] }, index)) }) }),
|
|
61
61
|
/* @__PURE__ */ jsxs(Modal.Footer, { children: [
|
|
62
|
-
/* @__PURE__ */ jsx(Button, { type: "button", color: "tertiary", variant: "ghost", onClick: handleCloseWithoutPreference, children: t("explorer.modal.onboarding.trash.later") }),
|
|
63
|
-
swiperProgress > 0 && /* @__PURE__ */ jsx(Button, { type: "button", color: "primary", variant: "outline", onClick: () => swiperInstance.slidePrev(), children: t(prevText || "explorer.modal.onboarding.trash.prev") }),
|
|
64
|
-
swiperProgress < 1 && /* @__PURE__ */ jsx(Button, { id: "nextButtonId", type: "button", color: "primary", variant: "filled", onClick: () => swiperInstance.slideNext(), children: t(nextText || "explorer.modal.onboarding.trash.next") }),
|
|
65
|
-
swiperProgress === 1 && /* @__PURE__ */ jsx(Button, { type: "button", color: "primary", variant: "filled", onClick: () => {
|
|
62
|
+
/* @__PURE__ */ jsx(Button, { "data-testid": "modal-onboarding-later", type: "button", color: "tertiary", variant: "ghost", onClick: handleCloseWithoutPreference, children: t("explorer.modal.onboarding.trash.later") }),
|
|
63
|
+
swiperProgress > 0 && /* @__PURE__ */ jsx(Button, { "data-testid": "modal-onboarding-previous", type: "button", color: "primary", variant: "outline", onClick: () => swiperInstance.slidePrev(), children: t(prevText || "explorer.modal.onboarding.trash.prev") }),
|
|
64
|
+
swiperProgress < 1 && /* @__PURE__ */ jsx(Button, { id: "nextButtonId", "data-testid": "modal-onboarding-next", type: "button", color: "primary", variant: "filled", onClick: () => swiperInstance.slideNext(), children: t(nextText || "explorer.modal.onboarding.trash.next") }),
|
|
65
|
+
swiperProgress === 1 && /* @__PURE__ */ jsx(Button, { "data-testid": "modal-onboarding-close", type: "button", color: "primary", variant: "filled", onClick: () => {
|
|
66
66
|
isOnboarding ? handleCloseWithPreference() : handleCloseWithoutPreference();
|
|
67
67
|
}, children: t(closeText || "explorer.modal.onboarding.trash.close") })
|
|
68
68
|
] })
|
|
@@ -7,6 +7,7 @@ import { UseMutationResult } from '../../../node_modules/@tanstack/react-query';
|
|
|
7
7
|
* @property {ID} resourceId - Unique identifier of the resource to share
|
|
8
8
|
* @property {RightStringified[]} resourceRights - Current rights assigned to the resource
|
|
9
9
|
* @property {string} resourceCreatorId - User ID of the resource creator
|
|
10
|
+
* @property {string} resourceCreatorDisplayName - (optional) Name of the resource creator to display
|
|
10
11
|
* @property {ShareRightActionDisplayName[]} [filteredActions] - Optional list of allowed actions to display
|
|
11
12
|
* @property {ShareUrls} [shareUrls] - Optional custom URLs for API endpoints related to sharing operations default endpoints are used if not provided
|
|
12
13
|
* default: {
|
|
@@ -42,6 +43,7 @@ import { UseMutationResult } from '../../../node_modules/@tanstack/react-query';
|
|
|
42
43
|
* resourceId: '12345',
|
|
43
44
|
* resourceRights: [],
|
|
44
45
|
* resourceCreatorId: 'user-67890',
|
|
46
|
+
* resourceCreatorDisplayName: 'Jim',
|
|
45
47
|
* filteredActions: ['read', 'contrib'],
|
|
46
48
|
* defaultActions: [
|
|
47
49
|
* {
|
|
@@ -61,6 +63,7 @@ export type ShareOptions = {
|
|
|
61
63
|
resourceId: ID;
|
|
62
64
|
resourceRights: RightStringified[];
|
|
63
65
|
resourceCreatorId: string;
|
|
66
|
+
resourceCreatorDisplayName?: string;
|
|
64
67
|
filteredActions?: ShareRightActionDisplayName[];
|
|
65
68
|
shareUrls?: ShareUrls;
|
|
66
69
|
defaultActions?: ShareRightAction[];
|
|
@@ -9,6 +9,7 @@ import { ShareBookmarkLine } from "./ShareBookmarkLine.js";
|
|
|
9
9
|
import { useSearch } from "./hooks/useSearch.js";
|
|
10
10
|
import useShare from "./hooks/useShare.js";
|
|
11
11
|
import { useShareBookmark } from "./hooks/useShareBookmark.js";
|
|
12
|
+
import useDirectory from "../../../hooks/useDirectory/useDirectory.js";
|
|
12
13
|
import Heading from "../../../components/Heading/Heading.js";
|
|
13
14
|
import Tooltip from "../../../components/Tooltip/Tooltip.js";
|
|
14
15
|
import Combobox from "../../../components/Combobox/Combobox.js";
|
|
@@ -31,6 +32,7 @@ const ShareResources = /* @__PURE__ */ forwardRef(({
|
|
|
31
32
|
const {
|
|
32
33
|
resourceId,
|
|
33
34
|
resourceCreatorId,
|
|
35
|
+
resourceCreatorDisplayName,
|
|
34
36
|
resourceRights,
|
|
35
37
|
filteredActions,
|
|
36
38
|
shareUrls,
|
|
@@ -95,7 +97,9 @@ const ShareResources = /* @__PURE__ */ forwardRef(({
|
|
|
95
97
|
shareDispatch
|
|
96
98
|
}), handleOnSaveBookmark = () => (setIsSavingBookmark(!0), handleOnSave().then(() => {
|
|
97
99
|
setIsSavingBookmark(!1);
|
|
98
|
-
}))
|
|
100
|
+
})), {
|
|
101
|
+
getAvatarURL
|
|
102
|
+
} = useDirectory();
|
|
99
103
|
useImperativeHandle(ref, () => ({
|
|
100
104
|
handleShare
|
|
101
105
|
}), [handleShare]), useEffect(() => {
|
|
@@ -105,7 +109,7 @@ const ShareResources = /* @__PURE__ */ forwardRef(({
|
|
|
105
109
|
}, [isSavingBookmark, isSharing, onSubmit]);
|
|
106
110
|
const {
|
|
107
111
|
t
|
|
108
|
-
} = useTranslation(), searchPlaceholder = showSearchAdmlHint() ? t("explorer.search.adml.hint") : t("explorer.modal.share.search.placeholder");
|
|
112
|
+
} = useTranslation(), userIsAuthor = currentIsAuthor(), searchPlaceholder = showSearchAdmlHint() ? t("explorer.search.adml.hint") : t("explorer.modal.share.search.placeholder");
|
|
109
113
|
return /* @__PURE__ */ jsxs("div", { children: [
|
|
110
114
|
/* @__PURE__ */ jsxs(Heading, { headingStyle: "h4", level: "h3", className: "mb-16 d-flex align-items-center", children: [
|
|
111
115
|
/* @__PURE__ */ jsx("div", { className: "me-8", children: t("explorer.modal.share.search") }),
|
|
@@ -120,9 +124,9 @@ const ShareResources = /* @__PURE__ */ forwardRef(({
|
|
|
120
124
|
/* @__PURE__ */ jsx("th", { scope: "col", children: /* @__PURE__ */ jsx(VisuallyHidden, { children: t("close") }) })
|
|
121
125
|
] }) }),
|
|
122
126
|
/* @__PURE__ */ jsxs("tbody", { children: [
|
|
123
|
-
|
|
124
|
-
/* @__PURE__ */ jsx("th", { scope: "row", children: /* @__PURE__ */ jsx(Avatar, { alt: t("explorer.modal.share.avatar.me.alt"), size: "xs", src: myAvatar, variant: "circle" }) }),
|
|
125
|
-
/* @__PURE__ */ jsx("td", { children: t("share.me") }),
|
|
127
|
+
/* @__PURE__ */ jsxs("tr", { children: [
|
|
128
|
+
/* @__PURE__ */ jsx("th", { scope: "row", children: /* @__PURE__ */ jsx(Avatar, { alt: t("explorer.modal.share.avatar.me.alt"), size: "xs", src: userIsAuthor ? myAvatar : getAvatarURL(resourceCreatorId, "user"), variant: "circle" }) }),
|
|
129
|
+
/* @__PURE__ */ jsx("td", { children: userIsAuthor ? t("share.me") : resourceCreatorDisplayName ?? t("share.author") }),
|
|
126
130
|
shareRightActions.map((shareRightAction) => /* @__PURE__ */ jsx("td", { style: {
|
|
127
131
|
width: "80px"
|
|
128
132
|
}, className: "text-center text-white", children: /* @__PURE__ */ jsx(Checkbox, { checked: !0, disabled: !0 }) }, shareRightAction.displayName)),
|
|
@@ -12,7 +12,7 @@ import SvgIconSmartphone from "../../icons/components/IconSmartphone.js";
|
|
|
12
12
|
import { InnerTabs } from "./innertabs/index.js";
|
|
13
13
|
import { MediaLibraryContext } from "./MediaLibraryContext.js";
|
|
14
14
|
import useHasWorkflow from "../../../hooks/useHasWorkflow/useHasWorkflow.js";
|
|
15
|
-
import
|
|
15
|
+
import useHttpErrorToast from "../../../hooks/useHttpErrorToast/useHttpErrorToast.js";
|
|
16
16
|
import Modal from "../../../components/Modal/Modal.js";
|
|
17
17
|
import { Tabs } from "../../../components/Tabs/components/Tabs.js";
|
|
18
18
|
import Button from "../../../components/Button/Button.js";
|