@edifice.io/react 2.5.17 → 2.5.18-develop-enabling.20260504105750

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 (74) hide show
  1. package/dist/components/Card/Card.js +1 -1
  2. package/dist/components/Combobox/Combobox.js +1 -1
  3. package/dist/components/Dropdown/Dropdown.d.ts +7 -3
  4. package/dist/components/Dropdown/Dropdown.js +22 -7
  5. package/dist/components/Dropdown/DropdownCheckboxItem.d.ts +6 -1
  6. package/dist/components/Dropdown/DropdownCheckboxItem.js +11 -6
  7. package/dist/components/Dropdown/DropdownContext.d.ts +5 -0
  8. package/dist/components/Dropdown/DropdownItem.d.ts +6 -1
  9. package/dist/components/Dropdown/DropdownItem.js +10 -5
  10. package/dist/components/Dropdown/DropdownItemHidden.d.ts +12 -0
  11. package/dist/components/Dropdown/DropdownItemHidden.js +19 -0
  12. package/dist/components/Dropdown/DropdownRadioItem.d.ts +6 -1
  13. package/dist/components/Dropdown/DropdownRadioItem.js +11 -6
  14. package/dist/components/Dropdown/DropdownSearchInput.d.ts +20 -0
  15. package/dist/components/Dropdown/DropdownSearchInput.js +25 -0
  16. package/dist/components/Dropdown/useDropdownItemFilter.d.ts +12 -0
  17. package/dist/components/Dropdown/useDropdownItemFilter.js +19 -0
  18. package/dist/components/Form/FormControl.js +1 -1
  19. package/dist/components/Layout/components/WidgetApps.js +1 -1
  20. package/dist/components/Modal/Modal.js +1 -1
  21. package/dist/components/Pagination/Pagination.d.ts +17 -0
  22. package/dist/components/Pagination/Pagination.js +14 -0
  23. package/dist/components/Pagination/index.d.ts +1 -0
  24. package/dist/components/PreventPropagation/PreventPropagation.js +1 -1
  25. package/dist/components/PromotionCard/PromotionCard.js +1 -1
  26. package/dist/components/SearchBar/SearchBar.d.ts +2 -2
  27. package/dist/components/Table/components/Table.js +1 -1
  28. package/dist/components/index.d.ts +1 -0
  29. package/dist/hooks/useConf/useConf.d.ts +1 -1
  30. package/dist/hooks/useDropdown/useDropdown.js +9 -8
  31. package/dist/hooks/useSession/useSession.d.ts +1 -1
  32. package/dist/hooks/useThumbnail/useThumbnail.d.ts +1 -1
  33. package/dist/hooks/useThumbnail/useThumbnail.js +5 -1
  34. package/dist/hooks/useUpload/useUpload.js +2 -5
  35. package/dist/hooks/useWorkspaceFolders/useWorkspaceFolders.d.ts +12 -0
  36. package/dist/hooks/useWorkspaceFolders/useWorkspaceFolders.js +1 -1
  37. package/dist/hooks/useZendeskGuide/useZendeskGuide.js +1 -1
  38. package/dist/icons-apps.js +136 -134
  39. package/dist/index.js +2 -0
  40. package/dist/modules/editor/components/Editor/EditorPreview.js +1 -1
  41. package/dist/modules/icons/components/apps/IconLivretScolaire.d.ts +7 -0
  42. package/dist/modules/icons/components/apps/IconLivretScolaire.js +13 -0
  43. package/dist/modules/icons/components/apps/index.d.ts +1 -0
  44. package/dist/modules/modals/ResourceModal/ResourceModal.d.ts +1 -1
  45. package/dist/modules/modals/ResourceModal/ResourceModal.js +1 -1
  46. package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.d.ts +1 -1
  47. package/dist/modules/modals/ShareModal/ShareResources.d.ts +4 -53
  48. package/dist/modules/modals/ShareModal/apps/ShareBlog.d.ts +1 -1
  49. package/dist/modules/modals/ShareModal/hooks/useShareBookmark.js +2 -1
  50. package/dist/modules/modals/ShareModal/hooks/useShareMutation.d.ts +1 -1
  51. package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js +24 -10
  52. package/dist/modules/multimedia/ImageEditor/effects/blur.d.ts +7 -5
  53. package/dist/modules/multimedia/ImageEditor/effects/blur.js +26 -18
  54. package/dist/modules/multimedia/ImageEditor/effects/constants.d.ts +2 -0
  55. package/dist/modules/multimedia/ImageEditor/effects/constants.js +4 -0
  56. package/dist/modules/multimedia/ImageEditor/effects/crop.d.ts +4 -5
  57. package/dist/modules/multimedia/ImageEditor/effects/crop.js +42 -26
  58. package/dist/modules/multimedia/ImageEditor/effects/misc.d.ts +10 -16
  59. package/dist/modules/multimedia/ImageEditor/effects/misc.js +27 -12
  60. package/dist/modules/multimedia/ImageEditor/effects/resize.d.ts +3 -7
  61. package/dist/modules/multimedia/ImageEditor/effects/resize.js +31 -22
  62. package/dist/modules/multimedia/ImageEditor/effects/rotate.js +2 -3
  63. package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js +40 -41
  64. package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.d.ts +1 -1
  65. package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js +9 -3
  66. package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js +4 -1
  67. package/dist/modules/multimedia/LinkerCard/LinkerCard._.d.ts +1 -1
  68. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js +1 -0
  69. package/dist/modules/multimedia/UploadCard/UploadCard._.d.ts +1 -1
  70. package/dist/modules/multimedia/UploadFiles/UploadFiles.js +4 -4
  71. package/dist/providers/EdificeClientProvider/EdificeClientProvider.context.d.ts +1 -1
  72. package/dist/utilities/react-query/react-query-utils.d.ts +1 -1
  73. package/package.json +52 -53
  74. package/dist/modules/multimedia/FileCard/FileCard._.d.ts +0 -17
@@ -11,49 +11,48 @@ const DEFAULT_MAX_HISTORY = 20, useHistoryTool = ({
11
11
  setHistory([]);
12
12
  }, [application]);
13
13
  const restore = async () => {
14
- const imgData = history.pop();
15
- imgData && (onRestore(await imgData.backup, imgData), setHistory(history.filter((current) => current !== imgData)));
16
- }, listSize = (arr) => (arr.length > maxSize && arr.splice(0, arr.length - maxSize), arr), historize = async (callback) => {
17
- {
18
- if (!application)
19
- return;
20
- const sprite = application.stage.getChildByName(spriteName, !0);
21
- if (sprite == null)
22
- return;
23
- const promise = toBlob(application), state = {
24
- backup: promise,
25
- sprite: {
26
- rotation: sprite.rotation,
27
- size: {
28
- width: sprite.width,
29
- height: sprite.height
30
- },
31
- position: {
32
- x: sprite.position.x,
33
- y: sprite.position.y
34
- },
35
- scale: {
36
- x: sprite.scale.x,
37
- y: sprite.scale.y
38
- },
39
- anchor: {
40
- x: sprite.anchor.x,
41
- y: sprite.anchor.y
42
- }
14
+ if (history.length === 0) return;
15
+ const imgData = history[history.length - 1];
16
+ onRestore(await imgData.backup, imgData), setHistory(history.slice(0, -1));
17
+ }, trimHistory = (arr) => arr.length > maxSize ? arr.slice(arr.length - maxSize) : arr, historize = async (callback) => {
18
+ if (!application)
19
+ return;
20
+ const sprite = application.stage.getChildByLabel(spriteName, !0);
21
+ if (!sprite)
22
+ return;
23
+ const promise = toBlob(application), state = {
24
+ backup: promise,
25
+ sprite: {
26
+ rotation: sprite.rotation,
27
+ size: {
28
+ width: sprite.width,
29
+ height: sprite.height
43
30
  },
44
- stage: {
45
- size: {
46
- width: application.stage.width,
47
- height: application.stage.height
48
- },
49
- scale: {
50
- x: application.stage.scale.x,
51
- y: application.stage.scale.y
52
- }
31
+ position: {
32
+ x: sprite.position.x,
33
+ y: sprite.position.y
34
+ },
35
+ scale: {
36
+ x: sprite.scale.x,
37
+ y: sprite.scale.y
38
+ },
39
+ anchor: {
40
+ x: sprite.anchor.x,
41
+ y: sprite.anchor.y
42
+ }
43
+ },
44
+ stage: {
45
+ size: {
46
+ width: application.stage.width,
47
+ height: application.stage.height
48
+ },
49
+ scale: {
50
+ x: application.stage.scale.x,
51
+ y: application.stage.scale.y
53
52
  }
54
- };
55
- return setHistory([...listSize(history), state]), await promise, callback.call(callback);
56
- }
53
+ }
54
+ };
55
+ return setHistory(trimHistory([...history, state])), await promise, callback.call(callback);
57
56
  };
58
57
  return {
59
58
  historyCount: history.length,
@@ -14,7 +14,7 @@ export default function useImageEditor({ imageSrc, spriteName, }: {
14
14
  spriteName?: string;
15
15
  }): {
16
16
  historyCount: number;
17
- setApplication: import('react').Dispatch<import('react').SetStateAction<PIXI.Application<PIXI.ICanvas> | undefined>>;
17
+ setApplication: import('react').Dispatch<import('react').SetStateAction<PIXI.Application<PIXI.Renderer> | undefined>>;
18
18
  restore: () => Promise<void>;
19
19
  stopCrop: (save: boolean) => void;
20
20
  stopBlur: () => void;
@@ -1,8 +1,7 @@
1
1
  import { useState, useEffect } from "react";
2
- import "@pixi/mixin-get-child-by-name";
3
2
  import useHistoryTool from "./useHistoryTool.js";
4
3
  import useImageEffects from "./useImageEffects.js";
5
- import { updateImage, DEFAULT_SPRITE_NAME, saveAsBlob, saveAsDataURL, updateImageFromBlob } from "../effects/misc.js";
4
+ import { updateImage, DEFAULT_SPRITE_NAME, saveAsBlob, saveAsDataURL, autoResize, updateImageFromBlob } from "../effects/misc.js";
6
5
  function useImageEditor({
7
6
  imageSrc,
8
7
  spriteName = DEFAULT_SPRITE_NAME
@@ -47,7 +46,14 @@ function useImageEditor({
47
46
  spriteName,
48
47
  imgDatasource: imageSrc
49
48
  }).finally(() => setLoading(!1)));
50
- }, [application, imageSrc, spriteName]), {
49
+ }, [application, imageSrc, spriteName]), useEffect(() => {
50
+ if (!application) return;
51
+ const handleResize = () => {
52
+ const sprite = application.stage.getChildByLabel(spriteName, !0);
53
+ sprite && autoResize(application, sprite);
54
+ };
55
+ return window.addEventListener("resize", handleResize), () => window.removeEventListener("resize", handleResize);
56
+ }, [application, spriteName]), {
51
57
  historyCount,
52
58
  setApplication,
53
59
  restore,
@@ -20,7 +20,10 @@ function useImageEffects({
20
20
  if (application) {
21
21
  if (save$12) {
22
22
  const result = save(application);
23
- result && onSave(result);
23
+ if (result) {
24
+ onSave(result);
25
+ return;
26
+ }
24
27
  }
25
28
  stop(application);
26
29
  }
@@ -1,4 +1,4 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
2
  import { default as LinkerCard } from './LinkerCard';
3
3
  declare const meta: Meta<typeof LinkerCard>;
4
4
  export default meta;
@@ -220,6 +220,7 @@ const orderedTabs = [
220
220
  ] })
221
221
  ] }) });
222
222
  });
223
+ Object.assign(MediaLibrary, InnerTabs);
223
224
  export {
224
225
  MediaLibrary as default
225
226
  };
@@ -1,4 +1,4 @@
1
- import { Meta, StoryObj } from '@storybook/react';
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
2
  import { default as UploadCard } from './UploadCard';
3
3
  declare const meta: Meta<typeof UploadCard>;
4
4
  export default meta;
@@ -1,10 +1,10 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { customSize } from "@edifice.io/utilities";
3
- import { useRef, useEffect } from "react";
3
+ import { useRef, useEffect, Suspense, lazy } from "react";
4
4
  import useUploadFiles from "../../../hooks/useUploadFiles/useUploadFiles.js";
5
5
  import UploadCard from "../UploadCard/UploadCard.js";
6
- import ImageEditor from "../ImageEditor/components/ImageEditor.js";
7
- const UploadFiles = ({
6
+ import LoadingScreen from "../../../components/LoadingScreen/LoadingScreen.js";
7
+ const ImageEditor = /* @__PURE__ */ lazy(async () => await import("../ImageEditor/components/ImageEditor.js")), UploadFiles = ({
8
8
  onFilesChange,
9
9
  visibility = "protected"
10
10
  }) => {
@@ -48,7 +48,7 @@ const UploadFiles = ({
48
48
  const resource = uploadedFiles.find((uploadedFile) => uploadedFile.name === file.name);
49
49
  return /* @__PURE__ */ jsx(UploadCard, { status: getUploadStatus(file), item: renderItem(file), onEdit: () => setEditingImage(resource), onRetry: () => uploadFile(file), onDelete: () => handleRemoveFile(file) }, file.name);
50
50
  }),
51
- editingImage && /* @__PURE__ */ jsx(ImageEditor, { altText: editingImage.alt, legend: editingImage.title, image: getUrl(editingImage, !0), isOpen: !!editingImage, onCancel: () => setEditingImage(void 0), onSave: updateImage, onError: console.error })
51
+ editingImage && /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(LoadingScreen, { position: !1 }), children: /* @__PURE__ */ jsx(ImageEditor, { altText: editingImage.alt, legend: editingImage.title, image: getUrl(editingImage, !0), isOpen: !!editingImage, onCancel: () => setEditingImage(void 0), onSave: updateImage, onError: console.error }) })
52
52
  ] });
53
53
  };
54
54
  export {
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { App, IGetConf, IGetSession, IUserDescription, IUserInfo, IWebApp, UserProfile } from '@edifice.io/client';
3
- import { UseQueryResult } from '../../../node_modules/@tanstack/react-query';
3
+ import { UseQueryResult } from '@tanstack/react-query';
4
4
  export interface EdificeClientParams {
5
5
  alternativeApp?: boolean;
6
6
  app: App;
@@ -1,4 +1,4 @@
1
- import { InvalidateQueryFilters, QueryClient } from '../../../node_modules/@tanstack/react-query';
1
+ import { InvalidateQueryFilters, QueryClient } from '@tanstack/react-query';
2
2
  /**
3
3
  * Invalidates queries and resets infinite query data to only contain the first page.
4
4
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edifice.io/react",
3
- "version": "2.5.17",
3
+ "version": "2.5.18-develop-enabling.20260504105750",
4
4
  "description": "Edifice React Library",
5
5
  "keywords": [
6
6
  "react",
@@ -73,13 +73,11 @@
73
73
  "dist"
74
74
  ],
75
75
  "dependencies": {
76
- "@ant-design/icons": "^5.4.0",
77
- "@dnd-kit/core": "^6.1.0",
78
- "@dnd-kit/sortable": "^8.0.0",
79
- "@dnd-kit/utilities": "^3.2.2",
76
+ "@ant-design/icons": "5.4.0",
77
+ "@dnd-kit/core": "6.3.1",
78
+ "@dnd-kit/sortable": "8.0.0",
79
+ "@dnd-kit/utilities": "3.2.2",
80
80
  "@floating-ui/react": "0.26.0",
81
- "@pixi/mixin-get-child-by-name": "7.4.2",
82
- "@pixi/react": "7.1.2",
83
81
  "@popperjs/core": "2.11.8",
84
82
  "@tiptap/core": "2.11.0",
85
83
  "@tiptap/extension-blockquote": "2.11.0",
@@ -118,66 +116,66 @@
118
116
  "@tiptap/pm": "2.11.0",
119
117
  "@tiptap/react": "2.11.0",
120
118
  "@tiptap/starter-kit": "2.11.0",
121
- "@uidotdev/usehooks": "^2.4.1",
122
- "antd": "^5.29.1",
123
- "clsx": "^2.1.1",
119
+ "@uidotdev/usehooks": "2.4.1",
120
+ "antd": "5.29.1",
121
+ "clsx": "2.1.1",
124
122
  "dayjs": "1.11.19",
125
- "emoji-picker-react": "4.5.2",
123
+ "emoji-picker-react": "4.17.4",
126
124
  "heic-to": "1.4.2",
127
125
  "html-react-parser": "4.2.1",
128
126
  "ohash": "1.1.3",
129
127
  "pako": "2.1.0",
130
- "pixi.js": "7.4.2",
131
- "react-hot-toast": "^2.4.1",
128
+ "pixi.js": "8.15.0",
129
+ "react-hot-toast": "2.6.0",
132
130
  "react-intersection-observer": "9.5.3",
133
- "react-popper": "^2.3.0",
134
- "react-slugify": "^3.0.3",
135
- "swiper": "^10.1.0",
136
- "ua-parser-js": "^1.0.36",
137
- "react-pdf": "10.2.0",
138
- "@edifice.io/tiptap-extensions": "2.5.17",
139
- "@edifice.io/bootstrap": "2.5.17",
140
- "@edifice.io/utilities": "2.5.17"
131
+ "react-pdf": "10.3.0",
132
+ "react-popper": "2.3.0",
133
+ "react-slugify": "3.0.3",
134
+ "swiper": "10.1.0",
135
+ "ua-parser-js": "1.0.36",
136
+ "@edifice.io/bootstrap": "2.5.18-develop-enabling.20260504105750",
137
+ "@edifice.io/utilities": "2.5.18-develop-enabling.20260504105750",
138
+ "@edifice.io/tiptap-extensions": "2.5.18-develop-enabling.20260504105750"
141
139
  },
142
140
  "devDependencies": {
143
- "@babel/plugin-transform-react-pure-annotations": "^7.23.3",
144
- "@eslint/js": "^9.12.0",
145
- "@react-spring/web": "^9.7.5",
146
- "@svgr/cli": "^8.1.0",
147
- "@tanstack/query-core": "5.62.7",
141
+ "@babel/plugin-transform-react-pure-annotations": "7.27.1",
142
+ "@eslint/js": "9.39.2",
143
+ "@react-spring/web": "9.7.5",
144
+ "@svgr/cli": "8.1.0",
145
+ "@tanstack/query-core": "5.90.20",
148
146
  "@tanstack/react-query": "5.62.7",
149
- "@testing-library/jest-dom": "^6.5.0",
150
- "@testing-library/react": "^16.0.1",
151
- "@testing-library/user-event": "^14.5.2",
152
- "@types/node": "^22.9.1",
153
- "@types/pako": "^2.0.3",
154
- "@types/react": "^18.2.33",
155
- "@types/react-dom": "^18.2.14",
156
- "@types/ua-parser-js": "^0.7.37",
157
- "@vitejs/plugin-react": "^4.3.2",
158
- "eslint": "^9.12.0",
147
+ "@testing-library/jest-dom": "6.5.0",
148
+ "@testing-library/react": "16.0.1",
149
+ "@testing-library/user-event": "14.5.2",
150
+ "@types/node": "22.19.8",
151
+ "@types/pako": "2.0.4",
152
+ "@types/react": "18.3.27",
153
+ "@types/react-dom": "18.3.7",
154
+ "@types/ua-parser-js": "0.7.37",
155
+ "@vitejs/plugin-react": "4.7.0",
156
+ "eslint": "9.39.2",
159
157
  "eslint-plugin-react-hooks": "5.1.0-rc.0",
160
- "eslint-plugin-react-refresh": "^0.4.12",
161
- "react": "^18.3.1",
162
- "react-dom": "^18.3.1",
163
- "react-hook-form": "^7.53.0",
164
- "react-i18next": "^14.1.0",
165
- "rollup-plugin-pure": "^0.2.1",
158
+ "eslint-plugin-react-refresh": "0.4.26",
159
+ "react": "18.3.1",
160
+ "react-dom": "18.3.1",
161
+ "react-hook-form": "7.71.1",
162
+ "react-i18next": "14.1.3",
163
+ "rollup-plugin-pure": "0.4.0",
166
164
  "rollup-plugin-visualizer": "5.12.0",
167
- "typescript-eslint": "^8.8.1",
168
- "vite": "^5.4.11",
169
- "vite-plugin-dts": "^4.1.0",
170
- "vite-tsconfig-paths": "^5.0.1",
171
- "@edifice.io/client": "2.5.17",
172
- "@edifice.io/config": "2.5.17"
165
+ "typescript-eslint": "8.54.0",
166
+ "vite": "5.4.14",
167
+ "vite-plugin-dts": "4.5.4",
168
+ "vite-tsconfig-paths": "5.1.4",
169
+ "@edifice.io/client": "2.5.18-develop-enabling.20260504105750",
170
+ "@edifice.io/config": "2.5.18-develop-enabling.20260504105750"
173
171
  },
174
172
  "peerDependencies": {
175
- "@react-spring/web": "^9.7.5",
173
+ "@react-spring/web": "9.7.5",
176
174
  "@tanstack/react-query": "5.62.7",
177
- "react": "^18.3.1",
178
- "react-dom": "^18.3.1",
179
- "react-hook-form": "^7.53.0",
180
- "react-i18next": "^14.1.0"
175
+ "react": "18.3.1",
176
+ "react-dom": "18.3.1",
177
+ "react-hook-form": "7.71.1",
178
+ "react-i18next": "14.1.3"
181
179
  },
182
180
  "publishConfig": {
183
181
  "access": "public"
@@ -186,6 +184,7 @@
186
184
  "scripts": {
187
185
  "build": "pnpm build:icons && vite build",
188
186
  "build:icons": "svgr src/modules/icons/assets --config-file ./svgr.config.cjs",
187
+ "build:analyze": "vite build --mode analyze",
189
188
  "fix": "eslint --fix --report-unused-disable-directives --max-warnings 0",
190
189
  "format": "pnpm run format:write && pnpm run format:check",
191
190
  "format:check": "npx prettier --check \"src/**/*.{ts,tsx}\"",
@@ -1,17 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { default as FileCard } from './FileCard';
3
- declare const meta: Meta<typeof FileCard>;
4
- export default meta;
5
- type Story = StoryObj<typeof FileCard>;
6
- export declare const Base: Story;
7
- export declare const AudioFile: Story;
8
- export declare const ImageFile: Story;
9
- export declare const VideoFile: Story;
10
- export declare const TextFile: Story;
11
- export declare const DocFile: Story;
12
- export declare const PptFile: Story;
13
- export declare const PdfFile: Story;
14
- export declare const ZipFile: Story;
15
- export declare const CsvFile: Story;
16
- export declare const XlsFile: Story;
17
- export declare const MdFile: Story;