@edifice.io/react 2.5.2-develop-b2school-actualites.20251202141821 → 2.5.2-develop-integration.20251203162637

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 (61) hide show
  1. package/dist/components/AppIcon/index.d.ts +0 -1
  2. package/dist/components/Flex/Flex.js +1 -1
  3. package/dist/components/Menu/components/MenuButton.d.ts +0 -2
  4. package/dist/components/Menu/components/MenuButton.js +4 -13
  5. package/dist/components/Select/Select.d.ts +2 -6
  6. package/dist/components/Select/Select.js +4 -10
  7. package/dist/components/index.d.ts +0 -2
  8. package/dist/editor.js +36 -40
  9. package/dist/hooks/index.d.ts +0 -1
  10. package/dist/icons-apps.js +234 -232
  11. package/dist/icons.js +262 -262
  12. package/dist/index.js +74 -84
  13. package/dist/modals.js +6 -8
  14. package/dist/modules/comments/components/Comment.js +3 -5
  15. package/dist/modules/comments/components/CommentList.js +1 -1
  16. package/dist/modules/comments/constants.d.ts +1 -4
  17. package/dist/modules/comments/constants.js +2 -2
  18. package/dist/modules/comments/provider/CommentProvider.js +2 -2
  19. package/dist/modules/comments/types.d.ts +2 -2
  20. package/dist/modules/editor/components/Editor/index.d.ts +0 -2
  21. package/dist/modules/icons/components/IconUndoSlashed.d.ts +7 -0
  22. package/dist/modules/icons/components/IconUndoSlashed.js +12 -0
  23. package/dist/modules/icons/components/apps/IconAssistancetic.d.ts +7 -0
  24. package/dist/modules/icons/components/apps/IconAssistancetic.js +14 -0
  25. package/dist/modules/icons/components/apps/index.d.ts +1 -0
  26. package/dist/modules/icons/components/index.d.ts +1 -1
  27. package/dist/modules/modals/ResourceModal/ResourceModal.d.ts +1 -0
  28. package/dist/modules/modals/ResourceModal/ResourceModal.js +10 -3
  29. package/dist/modules/modals/ShareModal/ShareBookmark.d.ts +1 -1
  30. package/dist/modules/modals/ShareModal/ShareBookmark.js +2 -5
  31. package/dist/modules/modals/ShareModal/ShareModal.d.ts +11 -1
  32. package/dist/modules/modals/ShareModal/ShareModal.js +105 -13
  33. package/dist/modules/modals/ShareModal/hooks/useSearch.d.ts +1 -2
  34. package/dist/modules/modals/ShareModal/hooks/useSearch.js +2 -3
  35. package/dist/modules/modals/ShareModal/hooks/useShare.d.ts +5 -12
  36. package/dist/modules/modals/ShareModal/hooks/useShare.js +13 -20
  37. package/dist/modules/modals/ShareModal/hooks/useShareBookmark.d.ts +1 -1
  38. package/dist/modules/modals/ShareModal/hooks/useShareBookmark.js +1 -1
  39. package/dist/modules/modals/ShareModal/index.d.ts +1 -3
  40. package/dist/utilities/index.d.ts +0 -1
  41. package/package.json +6 -6
  42. package/dist/components/Divider/Divider.d.ts +0 -5
  43. package/dist/components/Divider/Divider.js +0 -21
  44. package/dist/components/Divider/index.d.ts +0 -1
  45. package/dist/components/SeparatedInfo/SeparatedInfo.d.ts +0 -6
  46. package/dist/components/SeparatedInfo/SeparatedInfo.js +0 -13
  47. package/dist/components/SeparatedInfo/index.d.ts +0 -1
  48. package/dist/hooks/useInfiniteScroll/index.d.ts +0 -1
  49. package/dist/hooks/useInfiniteScroll/useInfiniteScroll.d.ts +0 -33
  50. package/dist/hooks/useInfiniteScroll/useInfiniteScroll.js +0 -20
  51. package/dist/modules/editor/components/Editor/EditorPreview.d.ts +0 -14
  52. package/dist/modules/editor/components/Editor/EditorPreview.js +0 -56
  53. package/dist/modules/editor/components/Editor/EditorPreviewSkeleton.d.ts +0 -8
  54. package/dist/modules/editor/components/Editor/EditorPreviewSkeleton.js +0 -24
  55. package/dist/modules/icons/components/IconClockAlert.d.ts +0 -7
  56. package/dist/modules/icons/components/IconClockAlert.js +0 -17
  57. package/dist/modules/modals/ShareModal/ShareResources.d.ts +0 -173
  58. package/dist/modules/modals/ShareModal/ShareResources.js +0 -137
  59. package/dist/utilities/react-query/index.d.ts +0 -1
  60. package/dist/utilities/react-query/react-query-utils.d.ts +0 -21
  61. package/dist/utilities/react-query/react-query-utils.js +0 -13
@@ -1,173 +0,0 @@
1
- import { ID, PutShareResponse, RightStringified, ShareRight, ShareRightActionDisplayName, ShareUrls } from '@edifice.io/client';
2
- import { UseMutationResult } from '../../../node_modules/@tanstack/react-query';
3
- /**
4
- * Configuration options for sharing a resource
5
- *
6
- * @typedef {Object} ShareOptions
7
- * @property {ID} resourceId - Unique identifier of the resource to share
8
- * @property {RightStringified[]} resourceRights - Current rights assigned to the resource
9
- * @property {string} resourceCreatorId - User ID of the resource creator
10
- * @property {ShareRightActionDisplayName[]} [filteredActions] - Optional list of allowed actions to display
11
- * @property {ShareUrls} [shareUrls] - Optional custom URLs for API endpoints related to sharing operations default endpoints are used if not provided
12
- * default: {
13
- * getResourceRights: `/${app}/share/json/${resourceId}?search=`,
14
- * saveResourceRights: `/${app}/share/resource/${resourceId}`,
15
- * getShareMapping: `/${app}/rights/sharing`
16
- * }
17
- *
18
- * @example Example related to sharing thread resources:
19
- * ```ts
20
- * const shareOptions: ShareOptions = {
21
- * resourceId: '12345',
22
- * resourceRights: [],
23
- * resourceCreatorId: 'user-67890',
24
- * filteredActions: ['read', 'contrib'],
25
- * shareUrls: {
26
- * getResourceRights: '/api/V1/thread/shares', (get endpoint)
27
- * saveResourceRights: '/api/V1/thread/shares', (put endpoint)
28
- * getShareMapping: '/api/V1/rights/sharing'
29
- * }
30
- * };
31
- * ```
32
- *
33
- * @example Example related to sharing info resources:
34
- * ```ts
35
- * const shareOptions: ShareOptions = {
36
- * resourceId: '12345',
37
- * resourceRights: [],
38
- * resourceCreatorId: 'user-67890',
39
- * filteredActions: ['read', 'contrib'],
40
- * shareUrls: {
41
- * getResourceRights: '/api/V1/info/shares', (get endpoint)
42
- * saveResourceRights: '/api/V1/info/shares', (put endpoint)
43
- * getShareMapping: '/api/V1/rights/sharing'
44
- * }
45
- * };
46
- * ```
47
- */
48
- export type ShareOptions = {
49
- resourceId: ID;
50
- resourceRights: RightStringified[];
51
- resourceCreatorId: string;
52
- filteredActions?: ShareRightActionDisplayName[];
53
- shareUrls?: ShareUrls;
54
- };
55
- /**
56
- * React Query mutation result for share operations
57
- *
58
- * @typedef {UseMutationResult<PutShareResponse, unknown, {resourceId: string; rights: ShareRight[]}, unknown>} ShareResourceMutation
59
- */
60
- export type ShareResourceMutation = UseMutationResult<PutShareResponse, unknown, {
61
- resourceId: string;
62
- rights: ShareRight[];
63
- }, unknown>;
64
- /**
65
- * Props for the ShareResources component
66
- *
67
- * @interface ShareResourceProps
68
- * @property {ShareOptions} shareOptions - Configuration for the resource being shared
69
- * @property {ShareResourceMutation} [shareResource] - Optional React Query mutation for optimistic UI updates
70
- * @property {() => void} [onSuccess] - Callback fired after successful share operation
71
- * @property {(shareRights: ShareRight[], isDirty: boolean) => void} [onChange] - Callback fired when share rights change
72
- * @property {string} [classNameSearchInput] - Optional CSS class for the search input wrapper (default: 'col-6')
73
- */
74
- interface ShareResourceProps {
75
- /**
76
- * Expect resourceId,
77
- * new rights array (replace shared array),
78
- * creatorId
79
- * of a resource */
80
- shareOptions: ShareOptions;
81
- /**
82
- * Use the `shareResource` props when you need to do Optimistic UI
83
- * otherwise ShareModal handles everything
84
- * Must use React Query */
85
- shareResource?: ShareResourceMutation;
86
- /**
87
- * onSuccess callback when a resource is successfully shared
88
- */
89
- onSuccess?: () => void;
90
- /**
91
- * Callback when share rights change
92
- */
93
- onChange?: (shareRights: ShareRight[], isDirty: boolean) => void;
94
- /**
95
- * Callback when ShareResources component is submitting share rights or bookmark
96
- */
97
- onSubmit?: () => void;
98
- /**
99
- * Optional className for the search input wrapper (default: 'col-6')
100
- */
101
- classNameSearchInput?: string;
102
- }
103
- /**
104
- * Ref interface exposed by ShareResources component
105
- *
106
- * @interface ShareResourcesRef
107
- * @property {() => void} handleShare - Method to trigger the share operation
108
- *
109
- * @example
110
- * ```tsx
111
- * const ref = useRef<ShareResourcesRef>(null);
112
- *
113
- * // Trigger share programmatically
114
- * ref.current?.handleShare();
115
- *
116
- * // Check sharing status
117
- * const sharing = ref.current?.isSharing();
118
- * ```
119
- */
120
- export interface ShareResourcesRef {
121
- handleShare: (notify?: boolean) => void;
122
- }
123
- /**
124
- * ShareResources Component
125
- *
126
- * A component for managing resource sharing permissions with users and groups.
127
- * Provides search functionality, bookmark management, and granular rights control.
128
- *
129
- * @example
130
- * ```tsx
131
- * import { useRef } from 'react';
132
- * import ShareResources, { ShareResourcesRef, ShareOptions } from './ShareResources';
133
- *
134
- * function MyComponent() {
135
- * const shareRef = useRef<ShareResourcesRef>(null);
136
- *
137
- * const shareOptions: ShareOptions = {
138
- * resourceId: '123',
139
- * resourceRights: [],
140
- * resourceCreatorId: 'user-456',
141
- * filteredActions: ['read', 'contrib'],
142
- * urls: {
143
- * getResourceRights: '/api/share/rights',
144
- * putResourceRights: '/api/share/update'
145
- * }
146
- * };
147
- *
148
- * const handleSave = () => {
149
- * if (shareRef.current) {
150
- * shareRef.current.handleShare();
151
- * }
152
- * };
153
- *
154
- * return (
155
- * <>
156
- * <ShareResources
157
- * ref={shareRef}
158
- * shareOptions={shareOptions}
159
- * onSuccess={() => console.log('Shared successfully')}
160
- * onChange={(rights, isDirty) => console.log('Rights changed:', isDirty)}
161
- * onSubmit={() => console.log('Submitting share...')}
162
- * />
163
- * <button onClick={handleSave}>Save Changes</button>
164
- * </>
165
- * );
166
- * }
167
- * ```
168
- *
169
- * @component
170
- * @forwardRef
171
- */
172
- declare const ShareResources: import('react').ForwardRefExoticComponent<ShareResourceProps & import('react').RefAttributes<ShareResourcesRef>>;
173
- export default ShareResources;
@@ -1,137 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { forwardRef, useState, useImperativeHandle, useEffect } from "react";
3
- import { useTranslation } from "react-i18next";
4
- import SvgIconBookmark from "../../icons/components/IconBookmark.js";
5
- import SvgIconInfoCircle from "../../icons/components/IconInfoCircle.js";
6
- import SvgIconRafterDown from "../../icons/components/IconRafterDown.js";
7
- import { ShareBookmark } from "./ShareBookmark.js";
8
- import { ShareBookmarkLine } from "./ShareBookmarkLine.js";
9
- import { useSearch } from "./hooks/useSearch.js";
10
- import useShare from "./hooks/useShare.js";
11
- import { useShareBookmark } from "./hooks/useShareBookmark.js";
12
- import Heading from "../../../components/Heading/Heading.js";
13
- import Tooltip from "../../../components/Tooltip/Tooltip.js";
14
- import Combobox from "../../../components/Combobox/Combobox.js";
15
- import LoadingScreen from "../../../components/LoadingScreen/LoadingScreen.js";
16
- import VisuallyHidden from "../../../components/VisuallyHidden/VisuallyHidden.js";
17
- import Avatar from "../../../components/Avatar/Avatar.js";
18
- import Checkbox from "../../../components/Checkbox/Checkbox.js";
19
- import Button from "../../../components/Button/Button.js";
20
- const ShareResources = /* @__PURE__ */ forwardRef(({
21
- shareOptions,
22
- shareResource,
23
- onSuccess = () => {
24
- },
25
- onChange = () => {
26
- },
27
- onSubmit = () => {
28
- },
29
- classNameSearchInput = "col-6"
30
- }, ref) => {
31
- const {
32
- resourceId,
33
- resourceCreatorId,
34
- resourceRights,
35
- filteredActions,
36
- shareUrls
37
- } = shareOptions, [isLoading, setIsLoading] = useState(!0), [isSavingBookmark, setIsSavingBookmark] = useState(!1), {
38
- state: {
39
- isSharing,
40
- shareRights,
41
- shareRightActions
42
- },
43
- dispatch: shareDispatch,
44
- myAvatar,
45
- currentIsAuthor,
46
- toggleRight,
47
- handleShare,
48
- handleDeleteRow,
49
- isDirty
50
- } = useShare({
51
- resourceId,
52
- resourceCreatorId,
53
- resourceRights,
54
- shareResource,
55
- setIsLoading,
56
- onSuccess,
57
- filteredActions,
58
- shareUrls
59
- }), {
60
- state: {
61
- searchResults,
62
- searchInputValue
63
- },
64
- showSearchAdmlHint,
65
- showSearchLoading,
66
- showSearchNoResults,
67
- getSearchMinLength,
68
- handleSearchInputChange,
69
- handleSearchResultsChange
70
- } = useSearch({
71
- resourceId,
72
- resourceCreatorId,
73
- shareRights,
74
- shareDispatch,
75
- urlResourceRights: shareUrls == null ? void 0 : shareUrls.getResourceRights
76
- }), {
77
- refBookmark,
78
- showBookmark,
79
- handleBookmarkChange,
80
- toggleBookmark,
81
- bookmark,
82
- handleOnSave,
83
- showBookmarkInput,
84
- toggleBookmarkInput
85
- } = useShareBookmark({
86
- shareRights,
87
- shareDispatch
88
- }), handleOnSaveBookmark = () => (setIsSavingBookmark(!0), handleOnSave().then(() => {
89
- setIsSavingBookmark(!1);
90
- }));
91
- useImperativeHandle(ref, () => ({
92
- handleShare
93
- }), [handleShare]), useEffect(() => {
94
- onChange(shareRights.rights, isDirty);
95
- }, [isDirty, shareRights.rights, onChange]), useEffect(() => {
96
- (isSavingBookmark || isSharing) && onSubmit();
97
- }, [isSavingBookmark, isSharing, onSubmit]);
98
- const {
99
- t
100
- } = useTranslation(), searchPlaceholder = showSearchAdmlHint() ? t("explorer.search.adml.hint") : t("explorer.modal.share.search.placeholder");
101
- return /* @__PURE__ */ jsxs("div", { children: [
102
- /* @__PURE__ */ jsxs(Heading, { headingStyle: "h4", level: "h3", className: "mb-16 d-flex align-items-center", children: [
103
- /* @__PURE__ */ jsx("div", { className: "me-8", children: t("explorer.modal.share.search") }),
104
- /* @__PURE__ */ jsx(Tooltip, { message: "Vos favoris de partage s’affichent en priorité dans votre liste lorsque vous recherchez un groupe ou une personne, vous pouvez les retrouver dans l’annuaire.", placement: "top", children: /* @__PURE__ */ jsx(SvgIconInfoCircle, { className: "c-pointer", height: "18" }) })
105
- ] }),
106
- /* @__PURE__ */ jsx("div", { className: "row mb-16", children: /* @__PURE__ */ jsx("div", { className: classNameSearchInput, children: /* @__PURE__ */ jsx(Combobox, { value: searchInputValue, placeholder: searchPlaceholder, isLoading: showSearchLoading(), noResult: showSearchNoResults(), options: searchResults, searchMinLength: getSearchMinLength(), onSearchInputChange: handleSearchInputChange, onSearchResultsChange: handleSearchResultsChange }) }) }),
107
- /* @__PURE__ */ jsx("div", { className: "table-responsive", children: isLoading ? /* @__PURE__ */ jsx(LoadingScreen, {}) : /* @__PURE__ */ jsxs("table", { className: "table border align-middle mb-0 rounded-3", children: [
108
- /* @__PURE__ */ jsx("thead", { className: "bg-blue-200", children: /* @__PURE__ */ jsxs("tr", { children: [
109
- /* @__PURE__ */ jsx("th", { scope: "col", className: "w-32", children: /* @__PURE__ */ jsx(VisuallyHidden, { children: t("explorer.modal.share.avatar.shared.alt") }) }),
110
- /* @__PURE__ */ jsx("th", { scope: "col", children: /* @__PURE__ */ jsx(VisuallyHidden, { children: t("explorer.modal.share.search.placeholder") }) }),
111
- shareRightActions.map((shareRightAction) => /* @__PURE__ */ jsx("th", { scope: "col", className: "text-center text-gray-800", children: t(shareRightAction.displayName) }, shareRightAction.displayName)),
112
- /* @__PURE__ */ jsx("th", { scope: "col", children: /* @__PURE__ */ jsx(VisuallyHidden, { children: t("close") }) })
113
- ] }) }),
114
- /* @__PURE__ */ jsxs("tbody", { children: [
115
- currentIsAuthor() && /* @__PURE__ */ jsxs("tr", { children: [
116
- /* @__PURE__ */ jsx("th", { scope: "row", children: /* @__PURE__ */ jsx(Avatar, { alt: t("explorer.modal.share.avatar.me.alt"), size: "xs", src: myAvatar, variant: "circle" }) }),
117
- /* @__PURE__ */ jsx("td", { children: t("share.me") }),
118
- shareRightActions.map((shareRightAction) => /* @__PURE__ */ jsx("td", { style: {
119
- width: "80px"
120
- }, className: "text-center text-white", children: /* @__PURE__ */ jsx(Checkbox, { checked: !0, disabled: !0 }) }, shareRightAction.displayName)),
121
- /* @__PURE__ */ jsx("td", {})
122
- ] }),
123
- /* @__PURE__ */ jsx(ShareBookmarkLine, { showBookmark, shareRightActions, shareRights, onDeleteRow: handleDeleteRow, toggleRight, toggleBookmark })
124
- ] })
125
- ] }) }),
126
- /* @__PURE__ */ jsxs("div", { className: "mt-16", children: [
127
- /* @__PURE__ */ jsx(Button, { color: "tertiary", leftIcon: /* @__PURE__ */ jsx(SvgIconBookmark, {}), rightIcon: /* @__PURE__ */ jsx(SvgIconRafterDown, { title: t("show"), className: "w-16 min-w-0", style: {
128
- transition: "rotate 0.2s ease-out",
129
- rotate: showBookmarkInput ? "-180deg" : "0deg"
130
- } }), type: "button", variant: "ghost", className: "fw-normal", onClick: () => toggleBookmarkInput(!showBookmarkInput), children: t("share.save.sharebookmark") }),
131
- showBookmarkInput && /* @__PURE__ */ jsx(ShareBookmark, { refBookmark, bookmark, onBookmarkChange: handleBookmarkChange, onSave: handleOnSaveBookmark })
132
- ] })
133
- ] });
134
- });
135
- export {
136
- ShareResources as default
137
- };
@@ -1 +0,0 @@
1
- export * from './react-query-utils';
@@ -1,21 +0,0 @@
1
- import { InvalidateQueryFilters, QueryClient } from '../../node_modules/@tanstack/react-query';
2
- /**
3
- * Invalidates queries and resets infinite query data to only contain the first page.
4
- *
5
- * This utility function is useful when you want to invalidate a query but also ensure
6
- * that any infinite query data is reset to show only the first page, removing any
7
- * previously loaded subsequent pages.
8
- *
9
- * @param queryClient - The TanStack Query client instance used to manage queries
10
- * @param options - The invalidate query filters that specify which queries to invalidate
11
- * @returns The result of the invalidateQueries operation, or undefined if no queryKey is provided
12
- *
13
- * @example
14
- * ```typescript
15
- * // Invalidate user queries and reset to first page only
16
- * invalidateQueriesWithFirstPage(queryClient, {
17
- * queryKey: ['users']
18
- * });
19
- * ```
20
- */
21
- export declare function invalidateQueriesWithFirstPage(queryClient: QueryClient, options: InvalidateQueryFilters): Promise<void> | undefined;
@@ -1,13 +0,0 @@
1
- function invalidateQueriesWithFirstPage(queryClient, options) {
2
- if (options.queryKey)
3
- return queryClient.setQueriesData({
4
- queryKey: options.queryKey
5
- }, (oldData) => oldData != null && oldData.pages ? {
6
- ...oldData,
7
- pages: [oldData.pages[0]],
8
- pageParams: [oldData.pageParams[0]]
9
- } : oldData), queryClient.invalidateQueries(options);
10
- }
11
- export {
12
- invalidateQueriesWithFirstPage
13
- };