@edifice.io/react 2.6.7 → 2.6.8

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/Alert/Alert.js +47 -23
  2. package/dist/components/AppIcon/AppIcon.js +11 -5
  3. package/dist/components/Form/FormText.js +11 -6
  4. package/dist/components/Image/Image.js +5 -2
  5. package/dist/components/Input/Input.d.ts +11 -2
  6. package/dist/components/Input/Input.js +43 -21
  7. package/dist/components/Label/Label.js +4 -4
  8. package/dist/components/Layout/Layout.js +15 -11
  9. package/dist/components/LinkPill/LinkPill.d.ts +41 -0
  10. package/dist/components/LinkPill/LinkPill.js +28 -0
  11. package/dist/components/LinkPill/index.d.ts +2 -0
  12. package/dist/components/ModalBeta/ModalBeta.d.ts +47 -0
  13. package/dist/components/ModalBeta/ModalBeta.js +62 -0
  14. package/dist/components/ModalBeta/ModalBetaBody.d.ts +19 -0
  15. package/dist/components/ModalBeta/ModalBetaBody.js +15 -0
  16. package/dist/components/ModalBeta/ModalBetaContext.d.ts +7 -0
  17. package/dist/components/ModalBeta/ModalBetaContext.js +15 -0
  18. package/dist/components/ModalBeta/ModalBetaFooter.d.ts +13 -0
  19. package/dist/components/ModalBeta/ModalBetaFooter.js +7 -0
  20. package/dist/components/ModalBeta/ModalBetaHeader.d.ts +23 -0
  21. package/dist/components/ModalBeta/ModalBetaHeader.js +31 -0
  22. package/dist/components/ModalBeta/index.d.ts +2 -0
  23. package/dist/components/PageLayout/PageLayout.d.ts +4 -0
  24. package/dist/components/PageLayout/PageLayout.js +37 -14
  25. package/dist/components/PageLayout/components/PageLayoutContent.js +5 -1
  26. package/dist/components/PageLayout/components/PageLayoutHelpZone.d.ts +12 -0
  27. package/dist/components/PageLayout/components/PageLayoutHelpZone.js +6 -0
  28. package/dist/components/Table/components/Table.d.ts +2 -2
  29. package/dist/components/Table/components/TableTd.d.ts +1 -1
  30. package/dist/components/Table/components/TableTh.d.ts +1 -1
  31. package/dist/components/index.d.ts +2 -0
  32. package/dist/homepage.js +12 -1
  33. package/dist/hooks/index.d.ts +2 -0
  34. package/dist/hooks/useBackground/index.d.ts +1 -0
  35. package/dist/hooks/useBackground/useBackground.d.ts +8 -0
  36. package/dist/hooks/useBackground/useBackground.js +18 -0
  37. package/dist/hooks/useClickOutside/useClickOutside.d.ts +1 -1
  38. package/dist/hooks/useClickOutside/useClickOutside.js +3 -2
  39. package/dist/hooks/useToast/useToast.d.ts +1 -0
  40. package/dist/hooks/useToast/useToast.js +12 -9
  41. package/dist/hooks/useUserPreferences/index.d.ts +1 -0
  42. package/dist/hooks/useUserPreferences/useUserPreferences.d.ts +9 -0
  43. package/dist/hooks/useUserPreferences/useUserPreferences.js +40 -0
  44. package/dist/hooks/useZendeskGuide/useZendeskGuide.d.ts +14 -2
  45. package/dist/hooks/useZendeskGuide/useZendeskGuide.js +51 -24
  46. package/dist/index.js +168 -160
  47. package/dist/modules/HelpZone/HelpZone.d.ts +13 -0
  48. package/dist/modules/HelpZone/HelpZone.js +52 -0
  49. package/dist/modules/HelpZone/HelpZoneContainer.d.ts +4 -0
  50. package/dist/modules/HelpZone/HelpZoneContainer.js +18 -0
  51. package/dist/modules/HelpZone/index.d.ts +3 -0
  52. package/dist/modules/homepage/components/Favorites/Favorites.js +2 -2
  53. package/dist/modules/homepage/components/Header/Header.js +11 -4
  54. package/dist/modules/homepage/components/HomeCard/HomeCard.d.ts +1 -1
  55. package/dist/modules/homepage/components/HomeCard/HomeCardHeader.d.ts +15 -1
  56. package/dist/modules/homepage/components/HomeCard/HomeCardHeader.js +2 -1
  57. package/dist/modules/homepage/components/Notifications/components/NotificationFilterModal.js +36 -26
  58. package/dist/modules/homepage/components/Notifications/components/ReportNotificationModal.js +1 -1
  59. package/dist/modules/homepage/components/Notifications/services/queries/notification.js +9 -2
  60. package/dist/modules/homepage/components/UsefulLinks/LinkForm.d.ts +13 -0
  61. package/dist/modules/homepage/components/UsefulLinks/LinkForm.js +67 -0
  62. package/dist/modules/homepage/components/UsefulLinks/UsefulLinks.d.ts +6 -0
  63. package/dist/modules/homepage/components/UsefulLinks/UsefulLinks.js +31 -0
  64. package/dist/modules/homepage/components/UsefulLinks/UsefulLinksContainer.d.ts +1 -0
  65. package/dist/modules/homepage/components/UsefulLinks/UsefulLinksContainer.js +40 -0
  66. package/dist/modules/homepage/components/UsefulLinks/UsefulLinksModal.d.ts +11 -0
  67. package/dist/modules/homepage/components/UsefulLinks/UsefulLinksModal.js +65 -0
  68. package/dist/modules/homepage/components/UsefulLinks/hooks/useUsefulLinksContainer.d.ts +19 -0
  69. package/dist/modules/homepage/components/UsefulLinks/hooks/useUsefulLinksContainer.js +26 -0
  70. package/dist/modules/homepage/components/UsefulLinks/index.d.ts +5 -0
  71. package/dist/modules/homepage/components/UsefulLinks/services/api/index.d.ts +6 -0
  72. package/dist/modules/homepage/components/UsefulLinks/services/api/index.js +5 -0
  73. package/dist/modules/homepage/components/UsefulLinks/services/api/usefulLinksService.d.ts +31 -0
  74. package/dist/modules/homepage/components/UsefulLinks/services/api/usefulLinksService.js +50 -0
  75. package/dist/modules/homepage/components/UsefulLinks/services/queries/usefulLinks.d.ts +20 -0
  76. package/dist/modules/homepage/components/UsefulLinks/services/queries/usefulLinks.js +65 -0
  77. package/dist/modules/homepage/components/UserSpace/hooks/useProfileLinks.js +18 -8
  78. package/dist/modules/homepage/components/index.d.ts +1 -0
  79. package/dist/modules/icons/components/logo/IconLogoEdificeFull.d.ts +7 -0
  80. package/dist/modules/icons/components/logo/IconLogoEdificeFull.js +26 -0
  81. package/dist/modules/icons/components/logo/IconLogoEdificeSmall.d.ts +7 -0
  82. package/dist/modules/icons/components/logo/IconLogoEdificeSmall.js +17 -0
  83. package/dist/modules/icons/components/logo/index.d.ts +2 -0
  84. package/dist/modules/widgets/index.d.ts +1 -1
  85. package/package.json +6 -6
@@ -0,0 +1,20 @@
1
+ import { UsefulLink, UsefulLinkPayload } from '@edifice.io/client';
2
+ export declare const usefulLinksQueryKeys: {
3
+ all: () => readonly ["usefulLinks"];
4
+ };
5
+ export declare const usefulLinksQueryOptions: {
6
+ getUsefulLinks(): import('@tanstack/react-query').OmitKeyof<import('@tanstack/react-query').UseQueryOptions<UsefulLink[], Error, UsefulLink[], import('@tanstack/react-query').QueryKey>, "queryFn"> & {
7
+ queryFn?: import('@tanstack/react-query').QueryFunction<UsefulLink[], import('@tanstack/react-query').QueryKey, never> | undefined;
8
+ } & {
9
+ queryKey: import('@tanstack/react-query').DataTag<import('@tanstack/react-query').QueryKey, UsefulLink[]>;
10
+ };
11
+ };
12
+ export declare const useUsefulLinks: () => import('@tanstack/react-query').UseQueryResult<UsefulLink[], Error>;
13
+ export declare const useCreateUsefulLink: () => import('@tanstack/react-query').UseMutationResult<UsefulLink, Error, UsefulLinkPayload, unknown>;
14
+ export declare const useUpdateUsefulLink: () => import('@tanstack/react-query').UseMutationResult<UsefulLink, Error, {
15
+ id: string;
16
+ payload: UsefulLinkPayload;
17
+ }, unknown>;
18
+ export declare const useDeleteUsefulLink: () => import('@tanstack/react-query').UseMutationResult<void, Error, string, {
19
+ previousLinks: UsefulLink[] | undefined;
20
+ }>;
@@ -0,0 +1,65 @@
1
+ import { useQuery, useQueryClient, useMutation, queryOptions } from "@tanstack/react-query";
2
+ import { usefulLinksService } from "../api/index.js";
3
+ const usefulLinksQueryKeys = {
4
+ all: () => ["usefulLinks"]
5
+ }, usefulLinksQueryOptions = {
6
+ getUsefulLinks() {
7
+ return queryOptions({
8
+ queryKey: usefulLinksQueryKeys.all(),
9
+ queryFn: async () => usefulLinksService.getUsefulLinks()
10
+ });
11
+ }
12
+ }, useUsefulLinks = () => useQuery(usefulLinksQueryOptions.getUsefulLinks()), useCreateUsefulLink = () => {
13
+ const queryClient = useQueryClient();
14
+ return useMutation({
15
+ mutationFn: (payload) => usefulLinksService.createUsefulLink(payload),
16
+ onSuccess: () => {
17
+ queryClient.invalidateQueries({
18
+ queryKey: usefulLinksQueryKeys.all()
19
+ });
20
+ }
21
+ });
22
+ }, useUpdateUsefulLink = () => {
23
+ const queryClient = useQueryClient();
24
+ return useMutation({
25
+ mutationFn: ({
26
+ id,
27
+ payload
28
+ }) => usefulLinksService.updateUsefulLink(id, payload),
29
+ onSuccess: () => {
30
+ queryClient.invalidateQueries({
31
+ queryKey: usefulLinksQueryKeys.all()
32
+ });
33
+ }
34
+ });
35
+ }, useDeleteUsefulLink = () => {
36
+ const queryClient = useQueryClient();
37
+ return useMutation({
38
+ mutationFn: (id) => usefulLinksService.deleteUsefulLink(id),
39
+ onMutate: async (id) => {
40
+ await queryClient.cancelQueries({
41
+ queryKey: usefulLinksQueryKeys.all()
42
+ });
43
+ const previousLinks = queryClient.getQueryData(usefulLinksQueryKeys.all());
44
+ return queryClient.setQueryData(usefulLinksQueryKeys.all(), (links) => links == null ? void 0 : links.filter((link) => link.id !== id)), {
45
+ previousLinks
46
+ };
47
+ },
48
+ onError: (_error, _id, context) => {
49
+ context != null && context.previousLinks && queryClient.setQueryData(usefulLinksQueryKeys.all(), context.previousLinks);
50
+ },
51
+ onSettled: () => {
52
+ queryClient.invalidateQueries({
53
+ queryKey: usefulLinksQueryKeys.all()
54
+ });
55
+ }
56
+ });
57
+ };
58
+ export {
59
+ useCreateUsefulLink,
60
+ useDeleteUsefulLink,
61
+ useUpdateUsefulLink,
62
+ useUsefulLinks,
63
+ usefulLinksQueryKeys,
64
+ usefulLinksQueryOptions
65
+ };
@@ -17,18 +17,20 @@ function useProfileLinks(profile) {
17
17
  structure: structureId
18
18
  });
19
19
  return `${baseUrl}?${params.toString()}`;
20
- }, buildClassesUrl = (classIds = []) => {
21
- const params = new URLSearchParams({
22
- filters: "groups",
23
- structure: structureId
24
- });
20
+ }, buildClassesUrl = (parameters, classIds = []) => {
21
+ const params = new URLSearchParams(parameters);
25
22
  return classIds.forEach((c) => params.append("class", String(c))), `${baseUrl}?${params.toString()}`;
26
23
  };
27
24
  switch (profile) {
28
25
  case "Teacher":
29
26
  return [{
30
27
  text: t("homepage.userspace.teacher.link.classes"),
31
- url: buildClassesUrl(user.classes)
28
+ url: buildClassesUrl(
29
+ {
30
+ filters: "groups"
31
+ }
32
+ /* Do not explicitely add classes ids, because none <=> see all*/
33
+ )
32
34
  }];
33
35
  case "Student":
34
36
  return [{
@@ -36,7 +38,12 @@ function useProfileLinks(profile) {
36
38
  url: "/userbook/annuaire#/search?filters=groups&profile=Teacher"
37
39
  }, {
38
40
  text: t("homepage.userspace.student.link.classes"),
39
- url: buildClassesUrl(user.classes)
41
+ url: buildClassesUrl(
42
+ {
43
+ filters: "groups"
44
+ }
45
+ /* Do not explicitely add classes ids, because none <=> see all*/
46
+ )
40
47
  }];
41
48
  case "Relative":
42
49
  return children != null && children.length ? children.map((child) => {
@@ -45,7 +52,10 @@ function useProfileLinks(profile) {
45
52
  text: t("homepage.userspace.relative.link.classes", {
46
53
  childName: child.firstName
47
54
  }),
48
- url: buildClassesUrl((_a2 = child.classes) == null ? void 0 : _a2.map(({
55
+ url: buildClassesUrl({
56
+ filters: "groups",
57
+ structure: structureId
58
+ }, (_a2 = child.classes) == null ? void 0 : _a2.map(({
49
59
  id
50
60
  }) => id))
51
61
  };
@@ -5,5 +5,6 @@ export * from './LastInfos';
5
5
  export * from './MessageFlashList';
6
6
  export * from './Notifications';
7
7
  export * from './SchoolSpace';
8
+ export * from './UsefulLinks';
8
9
  export * from './UserSpace';
9
10
  export * from './Communities';
@@ -0,0 +1,7 @@
1
+ import { SVGProps } from 'react';
2
+ interface SVGRProps {
3
+ title?: string;
4
+ titleId?: string;
5
+ }
6
+ declare const SvgIconLogoEdificeFull: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default SvgIconLogoEdificeFull;
@@ -0,0 +1,26 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ const SvgIconLogoEdificeFull = ({
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 81 18", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
7
+ title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
8
+ /* @__PURE__ */ jsxs("g", { clipPath: "url(#icon-logo-edifice-full_svg__a)", children: [
9
+ /* @__PURE__ */ jsx("path", { fill: "#C8D3FE", d: "M72.667 1.944c-4.424 0-8.01 3.602-8.01 8.045h16.02c0-4.443-3.586-8.045-8.01-8.045" }),
10
+ /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M76.346 12.173a4.3 4.3 0 0 1-.659.84 4.25 4.25 0 0 1-3.02 1.249 4.26 4.26 0 0 1-3.02-1.249 4.3 4.3 0 0 1-1.27-3.02V9.99h-3.72v.038c.04 4.408 3.61 7.969 8.009 7.969 3.657 0 6.74-2.462 7.7-5.825h-4.022zM55.596 10.014a4.28 4.28 0 0 1 1.253-2.998 4.2 4.2 0 0 1 2.98-1.24h3.618V2.07h-3.67c-4.317.029-7.812 3.552-7.852 7.908v.077c.04 4.356 3.535 7.879 7.85 7.907h3.672v-3.707h-3.618a4.2 4.2 0 0 1-2.98-1.24 4.28 4.28 0 0 1-1.255-2.997v-.007z" }),
11
+ /* @__PURE__ */ jsx("path", { fill: "#C8D3FE", d: "M50.302 7.711h-3.56v10.252h3.56z" }),
12
+ /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M50.302 2.07h-3.56v3.608h3.56z" }),
13
+ /* @__PURE__ */ jsx("path", { fill: "#C8D3FE", d: "M40.983 2.07h-3.56v15.893h3.56z" }),
14
+ /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M44.529 2.07h-3.56v3.576h.222a3.345 3.345 0 0 0 3.337-3.353zM44.529 7.711h-3.56v3.576h.222a3.345 3.345 0 0 0 3.337-3.353z" }),
15
+ /* @__PURE__ */ jsx("path", { fill: "#C8D3FE", d: "M35.19 7.711h-3.56v10.252h3.56z" }),
16
+ /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M35.19 2.07h-3.56v3.608h3.56zM29.636 10.017c0-4.39-3.542-7.947-7.911-7.947v15.893c4.369 0 7.91-3.558 7.91-7.946" }),
17
+ /* @__PURE__ */ jsx("path", { fill: "#C8D3FE", d: "M21.726 2.07h-3.56v15.893h3.56z" }),
18
+ /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M11.677 0H4.952v1.987h6.725z" }),
19
+ /* @__PURE__ */ jsx("path", { fill: "#C8D3FE", d: "M8.316 1.949c-4.424 0-8.01 3.601-8.01 8.045h16.02c0-4.444-3.586-8.045-8.01-8.045" }),
20
+ /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M11.995 12.176a4.3 4.3 0 0 1-.658.84 4.25 4.25 0 0 1-3.021 1.25 4.26 4.26 0 0 1-3.02-1.25 4.3 4.3 0 0 1-1.27-3.02v-.003H.305v.039C.346 14.439 3.916 18 8.315 18c3.657 0 6.74-2.461 7.7-5.825h-4.022z" })
21
+ ] }),
22
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "icon-logo-edifice-full_svg__a", children: /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M0 0h81v18H0z" }) }) })
23
+ ] });
24
+ export {
25
+ SvgIconLogoEdificeFull as default
26
+ };
@@ -0,0 +1,7 @@
1
+ import { SVGProps } from 'react';
2
+ interface SVGRProps {
3
+ title?: string;
4
+ titleId?: string;
5
+ }
6
+ declare const SvgIconLogoEdificeSmall: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default SvgIconLogoEdificeSmall;
@@ -0,0 +1,17 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ const SvgIconLogoEdificeSmall = ({
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 18", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
7
+ title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
8
+ /* @__PURE__ */ jsxs("g", { clipPath: "url(#icon-logo-edifice-small_svg__a)", children: [
9
+ /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M12.36 0H5.637v1.987h6.725z" }),
10
+ /* @__PURE__ */ jsx("path", { fill: "#C8D3FE", d: "M9 1.949C4.576 1.949.99 5.55.99 9.994h16.02C17.01 5.55 13.424 1.95 9 1.95" }),
11
+ /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M12.679 12.176a4.3 4.3 0 0 1-.659.84A4.25 4.25 0 0 1 9 14.266a4.26 4.26 0 0 1-3.02-1.25 4.3 4.3 0 0 1-1.27-3.02v-.003H.99v.039C1.03 14.439 4.6 18 8.999 18c3.656 0 6.74-2.461 7.7-5.825h-4.022z" })
12
+ ] }),
13
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "icon-logo-edifice-small_svg__a", children: /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M0 0h18v18H0z" }) }) })
14
+ ] });
15
+ export {
16
+ SvgIconLogoEdificeSmall as default
17
+ };
@@ -0,0 +1,2 @@
1
+ export { default as IconLogoEdificeFull } from './IconLogoEdificeFull';
2
+ export { default as IconLogoEdificeSmall } from './IconLogoEdificeSmall';
@@ -1,2 +1,2 @@
1
- export * from './Widget';
2
1
  export * from './BookmarkedApps';
2
+ export * from './Widget';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edifice.io/react",
3
- "version": "2.6.7",
3
+ "version": "2.6.8",
4
4
  "description": "Edifice React Library",
5
5
  "keywords": [
6
6
  "react",
@@ -140,9 +140,9 @@
140
140
  "swiper": "10.1.0",
141
141
  "ua-parser-js": "1.0.36",
142
142
  "zustand": "4.5.7",
143
- "@edifice.io/bootstrap": "2.6.7",
144
- "@edifice.io/tiptap-extensions": "2.6.7",
145
- "@edifice.io/utilities": "2.6.7"
143
+ "@edifice.io/bootstrap": "2.6.8",
144
+ "@edifice.io/tiptap-extensions": "2.6.8",
145
+ "@edifice.io/utilities": "2.6.8"
146
146
  },
147
147
  "devDependencies": {
148
148
  "@babel/plugin-transform-react-pure-annotations": "7.27.1",
@@ -173,8 +173,8 @@
173
173
  "vite": "5.4.14",
174
174
  "vite-plugin-dts": "4.5.4",
175
175
  "vite-tsconfig-paths": "5.1.4",
176
- "@edifice.io/client": "2.6.7",
177
- "@edifice.io/config": "2.6.7"
176
+ "@edifice.io/client": "2.6.8",
177
+ "@edifice.io/config": "2.6.8"
178
178
  },
179
179
  "peerDependencies": {
180
180
  "@react-spring/web": "9.7.5",