@edifice.io/react 2.2.3-develop-integration.20250417103951 → 2.2.3-develop-b2school.20250418102516

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 (85) hide show
  1. package/dist/components/Combobox/Combobox.d.ts +56 -5
  2. package/dist/components/Combobox/Combobox.js +16 -7
  3. package/dist/components/Combobox/ComboboxTrigger.d.ts +31 -2
  4. package/dist/components/Combobox/ComboboxTrigger.js +31 -8
  5. package/dist/components/Dropdown/Dropdown.d.ts +10 -2
  6. package/dist/components/Dropdown/Dropdown.js +5 -3
  7. package/dist/components/Dropdown/DropdownItem.d.ts +5 -1
  8. package/dist/components/Dropdown/DropdownItem.js +4 -1
  9. package/dist/components/Dropdown/DropdownTrigger.js +5 -1
  10. package/dist/components/List/List.d.ts +9 -1
  11. package/dist/components/List/List.js +9 -9
  12. package/dist/components/SearchBar/SearchBar.d.ts +1 -1
  13. package/dist/components/SearchBar/SearchBar.js +3 -1
  14. package/dist/editor.js +28 -28
  15. package/dist/hooks/index.d.ts +1 -0
  16. package/dist/hooks/useCheckable/useCheckable.js +10 -3
  17. package/dist/hooks/useConversation/useConversation.d.ts +1 -1
  18. package/dist/hooks/useConversation/useConversation.js +13 -17
  19. package/dist/hooks/useDropdown/useDropdown.d.ts +2 -1
  20. package/dist/hooks/useDropdown/useDropdown.js +5 -3
  21. package/dist/hooks/useWorkspaceFolders/index.d.ts +2 -0
  22. package/dist/hooks/useWorkspaceFolders/useWorkspaceFolders.d.ts +28 -0
  23. package/dist/hooks/useWorkspaceFolders/useWorkspaceFolders.js +74 -0
  24. package/dist/icons.js +280 -266
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.js +48 -20
  27. package/dist/modals.js +16 -14
  28. package/dist/modules/editor/components/Editor/Editor.d.ts +3 -1
  29. package/dist/modules/editor/components/Editor/Editor.js +9 -18
  30. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.d.ts +1 -4
  31. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js +4 -19
  32. package/dist/modules/editor/components/NodeView/ConversationHistoryNodeView.d.ts +2 -0
  33. package/dist/modules/editor/components/NodeView/ConversationHistoryNodeView.js +10 -0
  34. package/dist/modules/editor/components/NodeView/index.d.ts +2 -1
  35. package/dist/modules/editor/components/Renderer/ConversationHistoryRenderer.d.ts +8 -0
  36. package/dist/modules/editor/components/Renderer/ConversationHistoryRenderer.js +28 -0
  37. package/dist/modules/editor/components/Renderer/index.d.ts +2 -1
  38. package/dist/modules/editor/hooks/index.d.ts +0 -2
  39. package/dist/modules/editor/hooks/useTipTapEditor.d.ts +6 -2
  40. package/dist/modules/editor/hooks/useTipTapEditor.js +2 -2
  41. package/dist/modules/icons/components/IconFolderAdd.d.ts +7 -0
  42. package/dist/modules/icons/components/IconFolderAdd.js +13 -0
  43. package/dist/modules/icons/components/IconFolderDelete.d.ts +7 -0
  44. package/dist/modules/icons/components/IconFolderDelete.js +12 -0
  45. package/dist/modules/icons/components/{IconCantoo.d.ts → IconGlobe2.d.ts} +2 -2
  46. package/dist/modules/icons/components/IconGlobe2.js +16 -0
  47. package/dist/modules/icons/components/IconGroupAvatar.d.ts +7 -0
  48. package/dist/modules/icons/components/IconGroupAvatar.js +12 -0
  49. package/dist/modules/icons/components/IconMailRecall.d.ts +7 -0
  50. package/dist/modules/icons/components/IconMailRecall.js +13 -0
  51. package/dist/modules/icons/components/IconQuestionMark.d.ts +7 -0
  52. package/dist/modules/icons/components/IconQuestionMark.js +13 -0
  53. package/dist/modules/icons/components/IconReadMail.d.ts +7 -0
  54. package/dist/modules/icons/components/IconReadMail.js +16 -0
  55. package/dist/modules/icons/components/IconSignature.d.ts +7 -0
  56. package/dist/modules/icons/components/IconSignature.js +13 -0
  57. package/dist/modules/icons/components/IconUndoAll.d.ts +7 -0
  58. package/dist/modules/icons/components/IconUndoAll.js +14 -0
  59. package/dist/modules/icons/components/IconUnreadMail.d.ts +7 -0
  60. package/dist/modules/icons/components/IconUnreadMail.js +16 -0
  61. package/dist/modules/icons/components/index.d.ts +10 -3
  62. package/dist/modules/modals/ConfirmModal/ConfirmModal.d.ts +47 -0
  63. package/dist/modules/modals/ConfirmModal/ConfirmModal.js +37 -0
  64. package/dist/modules/modals/ConfirmModal/index.d.ts +1 -0
  65. package/dist/modules/modals/ShareModal/hooks/useShare.js +1 -1
  66. package/dist/modules/modals/index.d.ts +1 -0
  67. package/dist/modules/multimedia/WorkspaceFolders/WorkspaceFolders.d.ts +8 -0
  68. package/dist/modules/multimedia/WorkspaceFolders/WorkspaceFolders.js +31 -0
  69. package/dist/modules/multimedia/WorkspaceFolders/index.d.ts +1 -0
  70. package/dist/modules/multimedia/index.d.ts +1 -0
  71. package/dist/multimedia.js +3 -1
  72. package/package.json +6 -6
  73. package/dist/modules/editor/components/Editor/CantooAdaptTextBoxView.d.ts +0 -7
  74. package/dist/modules/editor/components/Editor/CantooAdaptTextBoxView.js +0 -32
  75. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Cantoo.d.ts +0 -12
  76. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Cantoo.js +0 -97
  77. package/dist/modules/editor/hooks/useCantooAdaptTextBox.d.ts +0 -15
  78. package/dist/modules/editor/hooks/useCantooAdaptTextBox.js +0 -29
  79. package/dist/modules/editor/hooks/useCantooEditor.d.ts +0 -9
  80. package/dist/modules/editor/hooks/useCantooEditor.js +0 -55
  81. package/dist/modules/icons/components/IconCantoo.js +0 -23
  82. package/dist/modules/icons/components/IconMicOff.d.ts +0 -7
  83. package/dist/modules/icons/components/IconMicOff.js +0 -12
  84. package/dist/modules/icons/components/IconTextToSpeechOff.d.ts +0 -7
  85. package/dist/modules/icons/components/IconTextToSpeechOff.js +0 -12
@@ -27,6 +27,7 @@ export interface UseDropdownProps {
27
27
  menuProps: Record<string, any>;
28
28
  itemProps: Record<string, any>;
29
29
  setVisible: Dispatch<SetStateAction<boolean>>;
30
+ openOnSpace?: boolean;
30
31
  }
31
- declare const useDropdown: (placement: Placement | undefined, extraTriggerKeyDownHandler?: (event: React.KeyboardEvent<HTMLButtonElement>) => void, isTriggerHovered?: boolean) => UseDropdownProps;
32
+ declare const useDropdown: (placement: Placement | undefined, extraTriggerKeyDownHandler?: (event: React.KeyboardEvent<HTMLButtonElement>) => void, isTriggerHovered?: boolean, focusOnVisible?: boolean, openOnSpace?: boolean) => UseDropdownProps;
32
33
  export default useDropdown;
@@ -1,7 +1,7 @@
1
1
  import { useId, useState, useRef, useEffect, useCallback } from "react";
2
2
  import { useFloating, offset, size, flip, autoUpdate, useHover, safePolygon } from "@floating-ui/react";
3
3
  import { mergeRefs } from "../../utilities/refs/ref.js";
4
- const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !1) => {
4
+ const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !1, focusOnVisible = !0, openOnSpace = !0) => {
5
5
  const id = useId(), [visible, setVisible] = useState(!1), [activeIndex, setActiveIndex] = useState(-1), [isFocused, setIsFocused] = useState(null), {
6
6
  refs,
7
7
  floatingStyles,
@@ -11,7 +11,7 @@ const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !
11
11
  open: visible,
12
12
  onOpenChange: setVisible,
13
13
  whileElementsMounted: autoUpdate,
14
- middleware: [offset(4), size({
14
+ middleware: [offset(0), size({
15
15
  apply({
16
16
  rects,
17
17
  elements
@@ -32,7 +32,7 @@ const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !
32
32
  });
33
33
  const menuRef = useRef(null), triggerRef = useRef(null), itemRefs = useRef({});
34
34
  useEffect(() => {
35
- visible ? menuRef.current && (menuRef.current.focus(), setActiveIndex(0)) : (setActiveIndex(-1), itemRefs.current = {});
35
+ visible && menuRef.current && focusOnVisible ? (menuRef.current.focus(), setActiveIndex(0)) : (setActiveIndex(-1), itemRefs.current = {});
36
36
  }, [visible]), useEffect(() => {
37
37
  if (activeIndex !== -1) {
38
38
  const currentItem = Object.values(itemRefs.current)[activeIndex];
@@ -66,6 +66,8 @@ const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !
66
66
  switch (event.code) {
67
67
  case " ":
68
68
  case "Space":
69
+ if (!openOnSpace)
70
+ break;
69
71
  case "Enter":
70
72
  case "ArrowDown":
71
73
  case "Down":
@@ -0,0 +1,2 @@
1
+ export { default as useWorkspaceFolders } from './useWorkspaceFolders';
2
+ export * from './useWorkspaceFolders';
@@ -0,0 +1,28 @@
1
+ import { IUserInfo } from '@edifice.io/client';
2
+ interface FolderTreeNode {
3
+ id: string;
4
+ name: string;
5
+ children?: FolderTreeNode[];
6
+ canCopyFileInto: boolean;
7
+ disabled?: boolean;
8
+ }
9
+ export declare const WORKSPACE_OWNER_FOLDER_ID = "workspace-owner-folder-id";
10
+ export declare const WORKSPACE_SHARED_FOLDER_ID = "workspace-shared-folder-id";
11
+ declare function useWorkspaceFolders(): {
12
+ folderTree: ({
13
+ id: string;
14
+ name: string;
15
+ children: FolderTreeNode[];
16
+ canCopyFileInto: boolean;
17
+ disabled?: undefined;
18
+ } | {
19
+ id: string;
20
+ name: string;
21
+ children: FolderTreeNode[];
22
+ canCopyFileInto: boolean;
23
+ disabled: boolean;
24
+ })[];
25
+ setSearchQuery: import('react').Dispatch<import('react').SetStateAction<string>>;
26
+ user: IUserInfo | undefined;
27
+ };
28
+ export default useWorkspaceFolders;
@@ -0,0 +1,74 @@
1
+ import { odeServices } from "@edifice.io/client";
2
+ import { useQuery } from "@tanstack/react-query";
3
+ import { useState, useMemo } from "react";
4
+ import { useTranslation } from "react-i18next";
5
+ import { useEdificeClient } from "../../providers/EdificeClientProvider/EdificeClientProvider.hook.js";
6
+ const WORKSPACE_OWNER_FOLDER_ID = "workspace-owner-folder-id", WORKSPACE_SHARED_FOLDER_ID = "workspace-shared-folder-id";
7
+ function useWorkspaceFolders() {
8
+ const {
9
+ t
10
+ } = useTranslation(), {
11
+ user
12
+ } = useEdificeClient(), {
13
+ data: ownerWorkspaceData = []
14
+ } = useQuery({
15
+ queryKey: ["workspace-owner-folders"],
16
+ queryFn: () => odeServices.workspace().listOwnerFolders(!0)
17
+ }), {
18
+ data: sharedWorkspaceData = []
19
+ } = useQuery({
20
+ queryKey: ["workspace-shared-folders"],
21
+ queryFn: () => odeServices.workspace().listSharedFolders(!0)
22
+ }), [searchQuery, setSearchQuery] = useState("");
23
+ return {
24
+ folderTree: useMemo(() => {
25
+ const buildWorkspaceTree = (ownerTree, sharedTree) => [{
26
+ id: WORKSPACE_OWNER_FOLDER_ID,
27
+ name: t("workspace.myDocuments"),
28
+ children: ownerTree,
29
+ canCopyFileInto: !0
30
+ }, {
31
+ id: WORKSPACE_SHARED_FOLDER_ID,
32
+ name: t("workspace.sharedDocuments"),
33
+ children: sharedTree,
34
+ canCopyFileInto: !1,
35
+ disabled: !0
36
+ }], ownerFolders = buildTree(ownerWorkspaceData, user), sharedFolders = buildTree(sharedWorkspaceData, user);
37
+ return buildWorkspaceTree(searchQuery ? filterTree(ownerFolders, searchQuery) : ownerFolders, searchQuery ? filterTree(sharedFolders, searchQuery) : sharedFolders);
38
+ }, [ownerWorkspaceData, sharedWorkspaceData, searchQuery, user]),
39
+ setSearchQuery,
40
+ user
41
+ };
42
+ }
43
+ const buildTree = (workspaceData, user) => {
44
+ const nodes = /* @__PURE__ */ new Map(), fullTree = [];
45
+ return workspaceData.forEach((item) => {
46
+ const canCopyFileInto = user && canWriteOnFolder(item, user.userId, user.groupsIds);
47
+ nodes.set(item._id, {
48
+ id: item._id,
49
+ name: item.name,
50
+ children: [],
51
+ canCopyFileInto
52
+ });
53
+ }), workspaceData.forEach((item) => {
54
+ var _a;
55
+ const nodeItem = nodes.get(item._id);
56
+ nodeItem.canCopyFileInto && (item.eParent && nodes.has(item.eParent) ? (_a = nodes.get(item.eParent)) == null || _a.children.push(nodeItem) : fullTree.push(nodeItem));
57
+ }), fullTree;
58
+ }, filterTree = (nodes, search) => nodes.map((node) => {
59
+ const filteredChildren = node.children ? filterTree(node.children, search) : [];
60
+ return node.name.toLowerCase().includes(search.toLowerCase()) || filteredChildren.length > 0 ? {
61
+ ...node,
62
+ children: filteredChildren
63
+ } : null;
64
+ }).filter((node) => node !== null), canWriteOnFolder = (folderData, userId, userGroupsIds) => {
65
+ var _a;
66
+ if (folderData.owner === userId) return !0;
67
+ const userRights = (_a = folderData.inheritedShares) == null ? void 0 : _a.filter((right) => right.userId === userId || userGroupsIds.includes(right.groupId)), contrib = "org-entcore-workspace-controllers-WorkspaceController|updateDocument";
68
+ return !!(userRights != null && userRights.find((right) => right[contrib]));
69
+ };
70
+ export {
71
+ WORKSPACE_OWNER_FOLDER_ID,
72
+ WORKSPACE_SHARED_FOLDER_ID,
73
+ useWorkspaceFolders as default
74
+ };