@edifice.io/react 2.6.0-develop-pedago.20260721150256 → 2.6.0-develop-integration.20260722215838

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 (40) hide show
  1. package/dist/components/Badge/Badge.d.ts +13 -24
  2. package/dist/components/Badge/Badge.js +6 -6
  3. package/dist/components/Layout/Layout.js +10 -3
  4. package/dist/components/Layout/components/HeaderNotificationsOverlay.d.ts +5 -0
  5. package/dist/components/Layout/components/HeaderNotificationsOverlay.js +18 -0
  6. package/dist/components/PageLayout/store/overlayStore.js +1 -1
  7. package/dist/homepage.js +12 -10
  8. package/dist/hooks/index.d.ts +2 -0
  9. package/dist/hooks/useBrowserInfo/useBrowserInfo.js +1 -2
  10. package/dist/hooks/useNextcloudSearch/index.d.ts +1 -0
  11. package/dist/hooks/useNextcloudSearch/useNextcloudSearch.d.ts +9 -0
  12. package/dist/hooks/useNextcloudSearch/useNextcloudSearch.js +48 -0
  13. package/dist/hooks/useUiOverride/index.d.ts +1 -0
  14. package/dist/hooks/useUiOverride/useUiOverride.d.ts +5 -0
  15. package/dist/hooks/useUiOverride/useUiOverride.js +13 -0
  16. package/dist/index.js +154 -144
  17. package/dist/modules/homepage/components/Header/Header.d.ts +3 -1
  18. package/dist/modules/homepage/components/Header/Header.js +3 -2
  19. package/dist/modules/homepage/components/MessageFlashList/index.d.ts +1 -0
  20. package/dist/modules/multimedia/FileCard/NextcloudFileCard.d.ts +25 -0
  21. package/dist/modules/multimedia/FileCard/NextcloudFileCard.js +105 -0
  22. package/dist/modules/multimedia/FileCard/index.d.ts +2 -0
  23. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.d.ts +2 -2
  24. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js +20 -7
  25. package/dist/modules/multimedia/MediaLibrary/innertabs/Nextcloud.d.ts +1 -0
  26. package/dist/modules/multimedia/MediaLibrary/innertabs/Nextcloud.js +35 -0
  27. package/dist/modules/multimedia/MediaLibrary/innertabs/index.d.ts +1 -0
  28. package/dist/modules/multimedia/MediaLibrary/innertabs/index.js +2 -0
  29. package/dist/modules/multimedia/Nextcloud/Nextcloud.d.ts +24 -0
  30. package/dist/modules/multimedia/Nextcloud/Nextcloud.js +93 -0
  31. package/dist/modules/multimedia/Nextcloud/index.d.ts +2 -0
  32. package/dist/modules/multimedia/index.d.ts +1 -0
  33. package/dist/multimedia.js +16 -12
  34. package/dist/providers/MockedProvider/MockedProvider.js +4 -3
  35. package/dist/utilities/create-selectors/create-selectors.d.ts +37 -0
  36. package/dist/utilities/create-selectors/index.d.ts +1 -0
  37. package/dist/utilities/index.d.ts +1 -0
  38. package/package.json +8 -7
  39. package/dist/utilities/create-selectors/createSelectors.d.ts +0 -10
  40. /package/dist/utilities/create-selectors/{createSelectors.js → create-selectors.js} +0 -0
package/dist/index.js CHANGED
@@ -44,78 +44,82 @@ import { default as default42 } from "./components/LogoBeta/LogoBeta.js";
44
44
  import { default as default43 } from "./modules/multimedia/MediaLibrary/MediaLibrary.js";
45
45
  import { default as default44 } from "./components/MediaViewer/MediaViewer.js";
46
46
  import { default as default45 } from "./components/Modal/Modal.js";
47
- import { default as default46 } from "./modules/modals/OnboardingModal/OnboardingModal.js";
48
- import { default as default47 } from "./components/PageLayout/PageLayout.js";
49
- import { default as default48 } from "./components/PreventPropagation/PreventPropagation.js";
50
- import { default as default49, Root } from "./components/PromotionCard/PromotionCard.js";
51
- import { default as default50 } from "./modules/modals/PublishModal/PublishModal.js";
52
- import { default as default51 } from "./components/Radio/Radio.js";
53
- import { default as default52 } from "./components/RadioCard/RadioCard.js";
54
- import { default as default53 } from "./components/SearchBar/SearchBar.js";
55
- import { default as default54 } from "./components/Button/SearchButton.js";
56
- import { default as default55 } from "./components/SegmentedControl/SegmentedControl.js";
57
- import { default as default56 } from "./components/Select/Select.js";
58
- import { default as default57 } from "./modules/modals/ShareModal/apps/ShareBlog.js";
59
- import { default as default58 } from "./modules/modals/ShareModal/ShareModal.js";
60
- import { default as default59 } from "./modules/modals/ShareModal/ShareResources.js";
61
- import { default as default60 } from "./components/Tree/components/SortableTree.js";
62
- import { default as default61 } from "./components/StackedGroup/StackedGroup.js";
63
- import { default as default62 } from "./components/Stepper/Stepper.js";
64
- import { default as default63 } from "./components/Switch/Switch.js";
65
- import { default as default64 } from "./components/Table/components/Table.js";
66
- import { default as default65 } from "./components/TextArea/TextArea.js";
67
- import { default as default66 } from "./components/Skeleton/TextSkeleton.js";
68
- import { default as default67 } from "./components/Tooltip/Tooltip.js";
69
- import { default as default68 } from "./components/Tree/components/Tree.js";
70
- import { default as default69 } from "./components/TreeView/TreeView.js";
71
- import { default as default70 } from "./modules/multimedia/UploadCard/UploadCard.js";
72
- import { default as default71 } from "./modules/multimedia/UploadFiles/UploadFiles.js";
73
- import { default as default72 } from "./modules/multimedia/VideoEmbed/VideoEmbed.js";
74
- import { default as default73 } from "./modules/multimedia/VideoRecorder/VideoRecorder.js";
75
- import { default as default74 } from "./components/VisuallyHidden/VisuallyHidden.js";
76
- import { default as default75 } from "./modules/multimedia/Workspace/Workspace.js";
77
- import { default as default76 } from "./modules/multimedia/WorkspaceFolders/WorkspaceFolders.js";
78
- import { default as default77 } from "./hooks/useBookmark/useBookmark.js";
79
- import { default as default78 } from "./hooks/useBreakpoint/useBreakpoint.js";
80
- import { default as default79 } from "./hooks/useBrowserInfo/useBrowserInfo.js";
81
- import { default as default80 } from "./hooks/useCantoo/useCantoo.js";
82
- import { default as default81 } from "./hooks/useClickOutside/useClickOutside.js";
83
- import { default as default82 } from "./hooks/useConversation/useConversation.js";
84
- import { default as default83 } from "./hooks/useDate/useDate.js";
85
- import { default as default84 } from "./hooks/useDebounce/useDebounce.js";
86
- import { default as default85 } from "./hooks/useDirectory/useDirectory.js";
87
- import { default as default86 } from "./hooks/useDropdown/useDropdown.js";
88
- import { default as default87 } from "./hooks/useDropzone/useDropzone.js";
89
- import { default as default88 } from "./hooks/useEdificeIcons/useEdificeIcons.js";
90
- import { default as default89 } from "./hooks/useHasWorkflow/useHasWorkflow.js";
91
- import { default as default90 } from "./hooks/useHover/useHover.js";
92
- import { default as default91 } from "./hooks/useHttpErrorToast/useHttpErrorToast.js";
93
- import { default as default92 } from "./hooks/useImage/useImage.js";
94
- import { default as default93 } from "./hooks/useInfiniteScroll/useInfiniteScroll.js";
95
- import { default as default94 } from "./hooks/useIsAdmc/useIsAdmc.js";
96
- import { default as default95 } from "./hooks/useIsAdml/useIsAdml.js";
97
- import { default as default96 } from "./hooks/useIsAdmlcOrAdmc/useIsAdmlcOrAdmc.js";
98
- import { default as default97 } from "./hooks/useKeyPress/useKeyPress.js";
99
- import { default as default98 } from "./hooks/useLibraryUrl/useLibraryUrl.js";
100
- import { default as default99 } from "./hooks/useMediaLibrary/useMediaLibrary.js";
101
- import { default as default100 } from "./hooks/usePublicConf/usePublicConf.js";
102
- import { default as default101 } from "./hooks/useScrollToTop/useScrollToTop.js";
103
- import { default as default102 } from "./modules/modals/ShareModal/hooks/useShareMutation.js";
104
- import { default as default103 } from "./hooks/useTitle/useTitle.js";
105
- import { default as default104 } from "./hooks/useToast/useToast.js";
106
- import { default as default105 } from "./hooks/useToggle/useToggle.js";
107
- import { default as default106 } from "./hooks/useTrapFocus/useTrapFocus.js";
108
- import { default as default107 } from "./hooks/useTrashedResource/useTrashedResource.js";
109
- import { default as default108 } from "./modules/modals/ResourceModal/hooks/useUpdateMutation.js";
110
- import { default as default109 } from "./hooks/useUpload/useUpload.js";
111
- import { default as default110 } from "./hooks/useUploadFiles/useUploadFiles.js";
112
- import { default as default111 } from "./hooks/useUser/useUser.js";
113
- import { default as default112 } from "./hooks/useWorkspaceFile/useWorkspaceFile.js";
114
- import { default as default113 } from "./hooks/useWorkspaceFolders/useWorkspaceFolders.js";
115
- import { WORKSPACE_SHARED_FOLDER_ID, WORKSPACE_USER_FOLDER_ID, default as default114 } from "./hooks/useWorkspaceFolders/useWorkspaceFoldersTree.js";
116
- import { default as default115 } from "./hooks/useWorkspaceSearch/useWorkspaceSearch.js";
117
- import { default as default116 } from "./hooks/useXitiTrackPageLoad/useXitiTrackPageLoad.js";
118
- import { default as default117 } from "./hooks/useZendeskGuide/useZendeskGuide.js";
47
+ import { default as default46 } from "./modules/multimedia/Nextcloud/Nextcloud.js";
48
+ import { default as default47 } from "./modules/multimedia/FileCard/NextcloudFileCard.js";
49
+ import { default as default48 } from "./modules/modals/OnboardingModal/OnboardingModal.js";
50
+ import { default as default49 } from "./components/PageLayout/PageLayout.js";
51
+ import { default as default50 } from "./components/PreventPropagation/PreventPropagation.js";
52
+ import { default as default51, Root } from "./components/PromotionCard/PromotionCard.js";
53
+ import { default as default52 } from "./modules/modals/PublishModal/PublishModal.js";
54
+ import { default as default53 } from "./components/Radio/Radio.js";
55
+ import { default as default54 } from "./components/RadioCard/RadioCard.js";
56
+ import { default as default55 } from "./components/SearchBar/SearchBar.js";
57
+ import { default as default56 } from "./components/Button/SearchButton.js";
58
+ import { default as default57 } from "./components/SegmentedControl/SegmentedControl.js";
59
+ import { default as default58 } from "./components/Select/Select.js";
60
+ import { default as default59 } from "./modules/modals/ShareModal/apps/ShareBlog.js";
61
+ import { default as default60 } from "./modules/modals/ShareModal/ShareModal.js";
62
+ import { default as default61 } from "./modules/modals/ShareModal/ShareResources.js";
63
+ import { default as default62 } from "./components/Tree/components/SortableTree.js";
64
+ import { default as default63 } from "./components/StackedGroup/StackedGroup.js";
65
+ import { default as default64 } from "./components/Stepper/Stepper.js";
66
+ import { default as default65 } from "./components/Switch/Switch.js";
67
+ import { default as default66 } from "./components/Table/components/Table.js";
68
+ import { default as default67 } from "./components/TextArea/TextArea.js";
69
+ import { default as default68 } from "./components/Skeleton/TextSkeleton.js";
70
+ import { default as default69 } from "./components/Tooltip/Tooltip.js";
71
+ import { default as default70 } from "./components/Tree/components/Tree.js";
72
+ import { default as default71 } from "./components/TreeView/TreeView.js";
73
+ import { default as default72 } from "./modules/multimedia/UploadCard/UploadCard.js";
74
+ import { default as default73 } from "./modules/multimedia/UploadFiles/UploadFiles.js";
75
+ import { default as default74 } from "./modules/multimedia/VideoEmbed/VideoEmbed.js";
76
+ import { default as default75 } from "./modules/multimedia/VideoRecorder/VideoRecorder.js";
77
+ import { default as default76 } from "./components/VisuallyHidden/VisuallyHidden.js";
78
+ import { default as default77 } from "./modules/multimedia/Workspace/Workspace.js";
79
+ import { default as default78 } from "./modules/multimedia/WorkspaceFolders/WorkspaceFolders.js";
80
+ import { default as default79 } from "./hooks/useBookmark/useBookmark.js";
81
+ import { default as default80 } from "./hooks/useBreakpoint/useBreakpoint.js";
82
+ import { default as default81 } from "./hooks/useBrowserInfo/useBrowserInfo.js";
83
+ import { default as default82 } from "./hooks/useCantoo/useCantoo.js";
84
+ import { default as default83 } from "./hooks/useClickOutside/useClickOutside.js";
85
+ import { default as default84 } from "./hooks/useConversation/useConversation.js";
86
+ import { default as default85 } from "./hooks/useDate/useDate.js";
87
+ import { default as default86 } from "./hooks/useDebounce/useDebounce.js";
88
+ import { default as default87 } from "./hooks/useDirectory/useDirectory.js";
89
+ import { default as default88 } from "./hooks/useDropdown/useDropdown.js";
90
+ import { default as default89 } from "./hooks/useDropzone/useDropzone.js";
91
+ import { default as default90 } from "./hooks/useEdificeIcons/useEdificeIcons.js";
92
+ import { default as default91 } from "./hooks/useHasWorkflow/useHasWorkflow.js";
93
+ import { default as default92 } from "./hooks/useHover/useHover.js";
94
+ import { default as default93 } from "./hooks/useHttpErrorToast/useHttpErrorToast.js";
95
+ import { default as default94 } from "./hooks/useImage/useImage.js";
96
+ import { default as default95 } from "./hooks/useInfiniteScroll/useInfiniteScroll.js";
97
+ import { default as default96 } from "./hooks/useIsAdmc/useIsAdmc.js";
98
+ import { default as default97 } from "./hooks/useIsAdml/useIsAdml.js";
99
+ import { default as default98 } from "./hooks/useIsAdmlcOrAdmc/useIsAdmlcOrAdmc.js";
100
+ import { default as default99 } from "./hooks/useKeyPress/useKeyPress.js";
101
+ import { default as default100 } from "./hooks/useLibraryUrl/useLibraryUrl.js";
102
+ import { default as default101 } from "./hooks/useMediaLibrary/useMediaLibrary.js";
103
+ import { default as default102 } from "./hooks/useNextcloudSearch/useNextcloudSearch.js";
104
+ import { default as default103 } from "./hooks/usePublicConf/usePublicConf.js";
105
+ import { default as default104 } from "./hooks/useScrollToTop/useScrollToTop.js";
106
+ import { default as default105 } from "./modules/modals/ShareModal/hooks/useShareMutation.js";
107
+ import { default as default106 } from "./hooks/useTitle/useTitle.js";
108
+ import { default as default107 } from "./hooks/useToast/useToast.js";
109
+ import { default as default108 } from "./hooks/useToggle/useToggle.js";
110
+ import { default as default109 } from "./hooks/useTrapFocus/useTrapFocus.js";
111
+ import { default as default110 } from "./hooks/useTrashedResource/useTrashedResource.js";
112
+ import { default as default111 } from "./hooks/useUiOverride/useUiOverride.js";
113
+ import { default as default112 } from "./modules/modals/ResourceModal/hooks/useUpdateMutation.js";
114
+ import { default as default113 } from "./hooks/useUpload/useUpload.js";
115
+ import { default as default114 } from "./hooks/useUploadFiles/useUploadFiles.js";
116
+ import { default as default115 } from "./hooks/useUser/useUser.js";
117
+ import { default as default116 } from "./hooks/useWorkspaceFile/useWorkspaceFile.js";
118
+ import { default as default117 } from "./hooks/useWorkspaceFolders/useWorkspaceFolders.js";
119
+ import { WORKSPACE_SHARED_FOLDER_ID, WORKSPACE_USER_FOLDER_ID, default as default118 } from "./hooks/useWorkspaceFolders/useWorkspaceFoldersTree.js";
120
+ import { default as default119 } from "./hooks/useWorkspaceSearch/useWorkspaceSearch.js";
121
+ import { default as default120 } from "./hooks/useXitiTrackPageLoad/useXitiTrackPageLoad.js";
122
+ import { default as default121 } from "./hooks/useZendeskGuide/useZendeskGuide.js";
119
123
  import { AccessiblePalette, DefaultPalette } from "./components/ColorPicker/ColorPalette.js";
120
124
  import { AntProvider } from "./providers/AntThemeProvider/AntProvider.js";
121
125
  import { BetaSwitch } from "./components/BetaSwitch/BetaSwitch.js";
@@ -146,6 +150,7 @@ import { UserSearch } from "./components/UserSearch/UserSearch.js";
146
150
  import { VisibleType } from "./components/UserSearch/types/visible.js";
147
151
  import { buildTree, determineNewParentId, findItemIndexInTree, flattenNodes, flattenTree, generateUpdateData, getActiveAndOverNodes, getDragDepth, getIndicesToUpdate, getProjection, updateParentIds } from "./components/Tree/utilities/tree-sortable.js";
148
152
  import { checkUserRight } from "./utilities/check-user-rights/check-user-rights.js";
153
+ import { createSelectors } from "./utilities/create-selectors/create-selectors.js";
149
154
  import { emptyScreenMapping } from "./utilities/emptyscreen-mapping/emptyscreen-mapping.js";
150
155
  import { getRotateTransitionStyle } from "./utilities/rotate-transition-style/get-rotate-transition-style.js";
151
156
  import { invalidateQueriesWithFirstPage } from "./utilities/react-query/react-query-utils.js";
@@ -223,59 +228,62 @@ export {
223
228
  Menu,
224
229
  MockedProvider,
225
230
  default45 as Modal,
226
- default46 as OnboardingModal,
227
- default47 as PageLayout,
231
+ default46 as Nextcloud,
232
+ default47 as NextcloudFileCard,
233
+ default48 as OnboardingModal,
234
+ default49 as PageLayout,
228
235
  PageLayoutContext,
229
236
  Pagination,
230
237
  Popover,
231
238
  PopoverBody,
232
239
  PopoverFooter,
233
240
  PopoverHeader,
234
- default48 as PreventPropagation,
235
- default49 as PromotionCard,
236
- default50 as PublishModal,
237
- default51 as Radio,
238
- default52 as RadioCard,
241
+ default50 as PreventPropagation,
242
+ default51 as PromotionCard,
243
+ default52 as PublishModal,
244
+ default53 as Radio,
245
+ default54 as RadioCard,
239
246
  ResourceModal,
240
247
  Root,
241
- default53 as SearchBar,
242
- default54 as SearchButton,
243
- default55 as SegmentedControl,
244
- default56 as Select,
245
- default57 as ShareBlog,
246
- default58 as ShareModal,
247
- default59 as ShareResources,
248
- default60 as SortableTree,
249
- default61 as StackedGroup,
250
- default62 as Stepper,
251
- default63 as Switch,
252
- default64 as Table,
248
+ default55 as SearchBar,
249
+ default56 as SearchButton,
250
+ default57 as SegmentedControl,
251
+ default58 as Select,
252
+ default59 as ShareBlog,
253
+ default60 as ShareModal,
254
+ default61 as ShareResources,
255
+ default62 as SortableTree,
256
+ default63 as StackedGroup,
257
+ default64 as Stepper,
258
+ default65 as Switch,
259
+ default66 as Table,
253
260
  Tabs,
254
- default65 as TextArea,
255
- default66 as TextSkeleton,
261
+ default67 as TextArea,
262
+ default68 as TextSkeleton,
256
263
  Toolbar,
257
- default67 as Tooltip,
258
- default68 as Tree,
264
+ default69 as Tooltip,
265
+ default70 as Tree,
259
266
  TreeNode,
260
267
  TreeNodeFolderWrapper,
261
- default69 as TreeView,
268
+ default71 as TreeView,
262
269
  Upload,
263
- default70 as UploadCard,
264
- default71 as UploadFiles,
270
+ default72 as UploadCard,
271
+ default73 as UploadFiles,
265
272
  UserRightsList,
266
273
  UserSearch,
267
- default72 as VideoEmbed,
268
- default73 as VideoRecorder,
274
+ default74 as VideoEmbed,
275
+ default75 as VideoRecorder,
269
276
  VisibleType,
270
- default74 as VisuallyHidden,
277
+ default76 as VisuallyHidden,
271
278
  WORKSPACE_SHARED_FOLDER_ID,
272
279
  WORKSPACE_USER_FOLDER_ID,
273
- default75 as Workspace,
274
- default76 as WorkspaceFolders,
280
+ default77 as Workspace,
281
+ default78 as WorkspaceFolders,
275
282
  addNode,
276
283
  arrayUnique,
277
284
  buildTree,
278
285
  checkUserRight,
286
+ createSelectors,
279
287
  deleteNode,
280
288
  determineNewParentId,
281
289
  emptyScreenMapping,
@@ -301,56 +309,58 @@ export {
301
309
  setRef,
302
310
  updateNode,
303
311
  updateParentIds,
304
- default77 as useBookmark,
305
- default78 as useBreakpoint,
306
- default79 as useBrowserInfo,
307
- default80 as useCantoo,
312
+ default79 as useBookmark,
313
+ default80 as useBreakpoint,
314
+ default81 as useBrowserInfo,
315
+ default82 as useCantoo,
308
316
  useCheckable,
309
- default81 as useClickOutside,
310
- default82 as useConversation,
311
- default83 as useDate,
312
- default84 as useDebounce,
313
- default85 as useDirectory,
314
- default86 as useDropdown,
315
- default87 as useDropzone,
317
+ default83 as useClickOutside,
318
+ default84 as useConversation,
319
+ default85 as useDate,
320
+ default86 as useDebounce,
321
+ default87 as useDirectory,
322
+ default88 as useDropdown,
323
+ default89 as useDropzone,
316
324
  useDropzoneContext,
317
325
  useEdificeClient,
318
- default88 as useEdificeIcons,
326
+ default90 as useEdificeIcons,
319
327
  useEdificeTheme,
320
328
  useFileToAttachment,
321
- default89 as useHasWorkflow,
322
- default90 as useHover,
323
- default91 as useHttpErrorToast,
324
- default92 as useImage,
325
- default93 as useInfiniteScroll,
326
- default94 as useIsAdmc,
327
- default95 as useIsAdml,
328
- default96 as useIsAdmlcOrAdmc,
329
- default97 as useKeyPress,
330
- default98 as useLibraryUrl,
331
- default99 as useMediaLibrary,
329
+ default91 as useHasWorkflow,
330
+ default92 as useHover,
331
+ default93 as useHttpErrorToast,
332
+ default94 as useImage,
333
+ default95 as useInfiniteScroll,
334
+ default96 as useIsAdmc,
335
+ default97 as useIsAdml,
336
+ default98 as useIsAdmlcOrAdmc,
337
+ default99 as useKeyPress,
338
+ default100 as useLibraryUrl,
339
+ default101 as useMediaLibrary,
340
+ default102 as useNextcloudSearch,
332
341
  useOverlay,
333
342
  usePageLayout,
334
- default100 as usePublicConf,
343
+ default103 as usePublicConf,
335
344
  useScreeb,
336
- default101 as useScrollToTop,
337
- default102 as useShareMutation,
338
- default103 as useTitle,
339
- default104 as useToast,
340
- default105 as useToggle,
341
- default106 as useTrapFocus,
342
- default107 as useTrashedResource,
345
+ default104 as useScrollToTop,
346
+ default105 as useShareMutation,
347
+ default106 as useTitle,
348
+ default107 as useToast,
349
+ default108 as useToggle,
350
+ default109 as useTrapFocus,
351
+ default110 as useTrashedResource,
343
352
  useTreeSortable,
344
353
  useTreeView,
345
- default108 as useUpdateMutation,
346
- default109 as useUpload,
347
- default110 as useUploadFiles,
348
- default111 as useUser,
349
- default112 as useWorkspaceFile,
350
- default113 as useWorkspaceFolders,
351
- default114 as useWorkspaceFoldersTree,
352
- default115 as useWorkspaceSearch,
353
- default116 as useXitiTrackPageLoad,
354
- default117 as useZendeskGuide,
354
+ default111 as useUiOverride,
355
+ default112 as useUpdateMutation,
356
+ default113 as useUpload,
357
+ default114 as useUploadFiles,
358
+ default115 as useUser,
359
+ default116 as useWorkspaceFile,
360
+ default117 as useWorkspaceFolders,
361
+ default118 as useWorkspaceFoldersTree,
362
+ default119 as useWorkspaceSearch,
363
+ default120 as useXitiTrackPageLoad,
364
+ default121 as useZendeskGuide,
355
365
  wrapTreeNode
356
366
  };
@@ -1,9 +1,11 @@
1
1
  export interface HeaderProps {
2
2
  src: string | undefined;
3
3
  onNotificationsClick?: () => void;
4
+ /** Scope this header's CSS theme (`data-product`) to its own subtree, independently of the page's ambient theme. */
5
+ dataProduct?: string;
4
6
  }
5
7
  declare const Header: {
6
- ({ src, onNotificationsClick, }: HeaderProps): JSX.Element;
8
+ ({ src, onNotificationsClick, dataProduct, }: HeaderProps): JSX.Element;
7
9
  displayName: string;
8
10
  };
9
11
  export default Header;
@@ -25,7 +25,8 @@ import Avatar from "../../../../components/Avatar/Avatar.js";
25
25
  import { Popover, PopoverBody } from "../../../../components/Popover/Popover.js";
26
26
  const Header = ({
27
27
  src = "",
28
- onNotificationsClick
28
+ onNotificationsClick,
29
+ dataProduct
29
30
  }) => {
30
31
  const {
31
32
  t
@@ -47,7 +48,7 @@ const Header = ({
47
48
  } = useEdificeTheme(), hasMessages = messages > 0, [userRef, isUserHovered] = useHover(), popoverUserId = useId(), handleNotificationsClick = () => {
48
49
  onNotificationsClick == null || onNotificationsClick();
49
50
  };
50
- return /* @__PURE__ */ jsx("header", { className: classes, children: /* @__PURE__ */ jsxs(Navbar, { className: "px-24", children: [
51
+ return /* @__PURE__ */ jsx("header", { className: classes, "data-product": dataProduct, children: /* @__PURE__ */ jsxs(Navbar, { className: "px-24", children: [
51
52
  /* @__PURE__ */ jsx(LogoBeta, { src: `${src}/img/illustrations/logo.png` }),
52
53
  /* @__PURE__ */ jsxs("ul", { className: "navbar-nav", children: [
53
54
  /* @__PURE__ */ jsx(NavItem, { children: /* @__PURE__ */ jsx(NavLink, { link: "/timeline/timeline", translate: t("navbar.home"), "data-testid": "header-home-button", children: /* @__PURE__ */ jsx(SvgIconHomeBeta, {}) }) }),
@@ -1,4 +1,5 @@
1
1
  export * from './MessageFlash';
2
2
  export * from './MessageFlashList';
3
3
  export * from './MessageFlashListContainer';
4
+ export { default as MessageFlash } from './MessageFlash';
4
5
  export { default as MessageFlashList } from './MessageFlashList';
@@ -0,0 +1,25 @@
1
+ import { ReactNode } from 'react';
2
+ import { NextcloudDocument } from '@edifice.io/client';
3
+ import { CardProps } from '../../../components/Card';
4
+ export interface NextcloudFileCardProps extends CardProps {
5
+ doc: NextcloudDocument;
6
+ /**
7
+ * Id of the user who owns the Nextcloud document, used to build the preview URL.
8
+ */
9
+ userId: string;
10
+ /**
11
+ * Custom icon to override the default based on file type
12
+ * Can be a string or a React node
13
+ */
14
+ customIcon?: ReactNode;
15
+ /**
16
+ * Custom color class to override the default based on file type
17
+ * Example: "bg-purple-300" or any valid CSS class
18
+ */
19
+ customColor?: string;
20
+ }
21
+ declare const NextcloudFileCard: {
22
+ ({ doc, userId, isClickable, isSelectable, isSelected, onClick, className, onSelect, isFocused, app, customIcon, customColor, }: NextcloudFileCardProps): import("react/jsx-runtime").JSX.Element;
23
+ displayName: string;
24
+ };
25
+ export default NextcloudFileCard;
@@ -0,0 +1,105 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useRef } from "react";
3
+ import { DocumentHelper, odeServices } from "@edifice.io/client";
4
+ import clsx from "clsx";
5
+ import SvgIconLandscape from "../../icons/components/IconLandscape.js";
6
+ import SvgIconMic from "../../icons/components/IconMic.js";
7
+ import SvgIconTextPage from "../../icons/components/IconTextPage.js";
8
+ import SvgIconVideo from "../../icons/components/IconVideo.js";
9
+ import FileIcon from "./FileIcon.js";
10
+ import useThumbnail from "../../../hooks/useThumbnail/useThumbnail.js";
11
+ import Card from "../../../components/Card/Card.js";
12
+ const NextcloudFileCard = ({
13
+ doc,
14
+ userId,
15
+ isClickable = !0,
16
+ isSelectable = !1,
17
+ isSelected = !1,
18
+ onClick,
19
+ className,
20
+ onSelect,
21
+ isFocused,
22
+ app,
23
+ customIcon,
24
+ customColor
25
+ }) => {
26
+ const ref = useRef(null), type = DocumentHelper.role(doc.contentType, !1);
27
+ function getRoleMap(type2) {
28
+ if (customIcon !== void 0 || customColor !== void 0)
29
+ return {
30
+ icon: customIcon || /* @__PURE__ */ jsx(SvgIconTextPage, { width: 22, height: 22 }),
31
+ color: customColor || "bg-gray-300",
32
+ hasShadow: !1
33
+ };
34
+ const roleMappings = {
35
+ csv: {
36
+ icon: ".CSV",
37
+ color: "bg-orange-200"
38
+ },
39
+ xls: {
40
+ icon: ".XLS",
41
+ color: "bg-green-200"
42
+ },
43
+ doc: {
44
+ icon: ".DOC",
45
+ color: "bg-blue-200"
46
+ },
47
+ txt: {
48
+ icon: ".TXT",
49
+ color: "bg-blue-200"
50
+ },
51
+ pdf: {
52
+ icon: ".PDF",
53
+ color: "bg-red-200"
54
+ },
55
+ audio: {
56
+ icon: /* @__PURE__ */ jsx(SvgIconMic, { width: 22, height: 22 }),
57
+ color: "bg-red-200"
58
+ },
59
+ ppt: {
60
+ icon: ".PPT",
61
+ color: "bg-red-200"
62
+ },
63
+ img: {
64
+ icon: /* @__PURE__ */ jsx(SvgIconLandscape, { width: 22, height: 22 }),
65
+ color: "bg-green-200"
66
+ },
67
+ video: {
68
+ icon: /* @__PURE__ */ jsx(SvgIconVideo, { width: 22, height: 22 }),
69
+ color: "bg-purple-200"
70
+ },
71
+ zip: {
72
+ icon: ".ZIP",
73
+ color: "bg-gray-300"
74
+ },
75
+ md: {
76
+ icon: ".MD",
77
+ color: "bg-blue-200"
78
+ },
79
+ unknown: {
80
+ icon: /* @__PURE__ */ jsx(SvgIconTextPage, { width: 22, height: 22 }),
81
+ color: "bg-gray-300"
82
+ }
83
+ };
84
+ return roleMappings[type2] || roleMappings.unknown;
85
+ }
86
+ const roleMap = getRoleMap(type ?? "unknown"), file = clsx("file position-relative rounded", (roleMap == null ? void 0 : roleMap.color) ?? "bg-yellow-200"), mediaSrc = type === "img" ? odeServices.nextcloud().getFileUrl(userId, doc) : null, hasThumbnail = useThumbnail(mediaSrc, {
87
+ ref
88
+ }), imageStyles = hasThumbnail && {
89
+ backgroundImage: `url(${mediaSrc})`,
90
+ backgroundSize: "cover"
91
+ };
92
+ return /* @__PURE__ */ jsx(Card, { className: clsx("card-file", className), isClickable, isSelectable, isSelected, onClick, app, isFocused, onSelect, children: /* @__PURE__ */ jsxs(Card.Body, { space: "8", children: [
93
+ /* @__PURE__ */ jsx("div", { ref, className: file, style: {
94
+ aspectRatio: "16/10",
95
+ ...imageStyles
96
+ }, children: type !== "img" || type === "img" && !hasThumbnail ? /* @__PURE__ */ jsx(FileIcon, { type, roleMap }) : null }),
97
+ /* @__PURE__ */ jsxs("div", { className: "mt-4", children: [
98
+ /* @__PURE__ */ jsx(Card.Text, { children: doc.name }),
99
+ /* @__PURE__ */ jsx(Card.Text, { className: "text-black-50", children: doc == null ? void 0 : doc.ownerDisplayName })
100
+ ] })
101
+ ] }) });
102
+ };
103
+ export {
104
+ NextcloudFileCard as default
105
+ };
@@ -1,2 +1,4 @@
1
1
  export { default as FileCard } from './FileCard';
2
2
  export * from './FileCard';
3
+ export { default as NextcloudFileCard } from './NextcloudFileCard';
4
+ export * from './NextcloudFileCard';
@@ -1,4 +1,4 @@
1
- import { WorkspaceElement, WorkspaceVisibility } from '@edifice.io/client';
1
+ import { NextcloudDocument, WorkspaceElement, WorkspaceVisibility } from '@edifice.io/client';
2
2
  import { TabsItemProps } from '../../../components';
3
3
  import { ExternalLinkTabProps } from './innertabs/ExternalLink';
4
4
  import { InternalLinkTabProps, InternalLinkTabResult } from './innertabs/InternalLink';
@@ -54,7 +54,7 @@ export interface MediaLibraryRef {
54
54
  /**
55
55
  * The resulting type depends on the actual selected Tab when modal is closed.
56
56
  */
57
- export type MediaLibraryResult = WorkspaceElement[] | WorkspaceElement | InternalLinkTabResult | string | /*TODO type des autres résultats ?*/ any;
57
+ export type MediaLibraryResult = WorkspaceElement[] | WorkspaceElement | NextcloudDocument[] | InternalLinkTabResult | string | /*TODO type des autres résultats ?*/ any;
58
58
  /**
59
59
  * MediaLibrary component properties
60
60
  */
@@ -12,6 +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 usePublicConf from "../../../hooks/usePublicConf/usePublicConf.js";
15
16
  import useHttpErrorToast from "../../../hooks/useHttpErrorToast/useHttpErrorToast.js";
16
17
  import Modal from "../../../components/Modal/Modal.js";
17
18
  import { Tabs } from "../../../components/Tabs/components/Tabs.js";
@@ -29,6 +30,8 @@ const orderedTabs = [
29
30
  // Filesystem browser + drag'n'drop of files
30
31
  "workspace",
31
32
  // Media browser
33
+ "nextcloud",
34
+ // Nextcloud media browser
32
35
  "video-embedder"
33
36
  // Link to a hosted video
34
37
  ], mediaLibraryTypes = {
@@ -70,7 +73,7 @@ const orderedTabs = [
70
73
  onCancel,
71
74
  onTabChange
72
75
  }, ref) => {
73
- var _a;
76
+ var _a, _b;
74
77
  const linkTabProps = useRef(), refModal = useRef(null);
75
78
  useImperativeHandle(ref, () => ({
76
79
  show,
@@ -81,7 +84,9 @@ const orderedTabs = [
81
84
  }));
82
85
  const {
83
86
  t
84
- } = useTranslation(), workspaceCreateWorkflow = useHasWorkflow("org.entcore.workspace.controllers.WorkspaceController|addDocument"), videoCaptureWorkflow = useHasWorkflow("com.opendigitaleducation.video.controllers.VideoController|capture"), [type, setType] = useState(null);
87
+ } = useTranslation(), workspaceCreateWorkflow = useHasWorkflow("org.entcore.workspace.controllers.WorkspaceController|addDocument"), videoCaptureWorkflow = useHasWorkflow("com.opendigitaleducation.video.controllers.VideoController|capture"), nextcloudViewWorkflow = useHasWorkflow("fr.openent.nextcloud.controller.NextcloudController|view"), {
88
+ data: workspacePublicConf
89
+ } = usePublicConf("workspace"), enableNextcloudTab = ((_a = workspacePublicConf == null ? void 0 : workspacePublicConf["folder-service"]) == null ? void 0 : _a.includes("nextcloud")) && nextcloudViewWorkflow, [type, setType] = useState(null);
85
90
  useHttpErrorToast({
86
91
  active: !!type,
87
92
  isDismissible: !0,
@@ -96,6 +101,14 @@ const orderedTabs = [
96
101
  availableFor: ["audio", "video", "image", "attachment"],
97
102
  isEnable: null
98
103
  },
104
+ nextcloud: {
105
+ id: "nextcloud",
106
+ icon: /* @__PURE__ */ jsx(SvgIconGlobe, {}),
107
+ label: t("bbm.nextcloud"),
108
+ content: /* @__PURE__ */ jsx(InnerTabs.Nextcloud, {}),
109
+ availableFor: ["audio", "video", "image", "attachment"],
110
+ isEnable: () => !!enableNextcloudTab
111
+ },
99
112
  upload: {
100
113
  id: "upload",
101
114
  icon: /* @__PURE__ */ jsx(SvgIconSmartphone, {}),
@@ -177,17 +190,17 @@ const orderedTabs = [
177
190
  linkTabProps.current = props, "resourceId" in props || "appPrefix" in props || setDefaultTabId("external-link"), setType("hyperlink");
178
191
  };
179
192
  useEffect(() => {
180
- var _a2, _b;
193
+ var _a2, _b2;
181
194
  const typeKey = type || "none";
182
- !defaultTabId && typeof ((_a2 = mediaLibraryTypes[typeKey]) == null ? void 0 : _a2.defaultTab) == "string" && setDefaultTabId((_b = mediaLibraryTypes[typeKey]) == null ? void 0 : _b.defaultTab);
195
+ !defaultTabId && typeof ((_a2 = mediaLibraryTypes[typeKey]) == null ? void 0 : _a2.defaultTab) == "string" && setDefaultTabId((_b2 = mediaLibraryTypes[typeKey]) == null ? void 0 : _b2.defaultTab);
183
196
  }, [defaultTabId, type]);
184
- const modalHeader = t(((_a = mediaLibraryTypes[type ?? "none"]) == null ? void 0 : _a.title) ?? "bbm"), resetState = () => {
197
+ const modalHeader = t(((_b = mediaLibraryTypes[type ?? "none"]) == null ? void 0 : _b.title) ?? "bbm"), resetState = () => {
185
198
  linkTabProps.current = void 0, setResult(void 0), setResultCounter(void 0), setDefaultTabId(void 0), setPreSuccess(void 0), setDeletionsOnCancel([]);
186
199
  }, handleTabChange = (tab) => {
187
200
  onTabChange == null || onTabChange(tab, deletionsOnCancel), resetState();
188
- }, handleOnSuccess = useCallback(() => {
201
+ }, isWorkspaceElementArray = (result2) => Array.isArray(result2) && (result2.length === 0 || "eType" in result2[0]), handleOnSuccess = useCallback(() => {
189
202
  const triggerSuccess = async (result2) => {
190
- result2 instanceof Array && ["protected", "public"].findIndex((v) => v === visibility) >= 0 && (result2 = await odeServices.workspace().transferDocuments(result2, appCode ?? "media-library", visibility)), onSuccess(result2);
203
+ isWorkspaceElementArray(result2) && ["protected", "public"].findIndex((v) => v === visibility) >= 0 && (result2 = await odeServices.workspace().transferDocuments(result2, appCode ?? "media-library", visibility)), onSuccess(result2);
191
204
  };
192
205
  onSuccessAction ? onSuccessAction().then((result2) => {
193
206
  triggerSuccess(result2);
@@ -0,0 +1 @@
1
+ export declare const Nextcloud: () => import("react/jsx-runtime").JSX.Element;