@edifice.io/react 2.5.17-develop.20260430122259 → 2.5.17-epic-homepage.20260505094633

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 (108) hide show
  1. package/dist/components/Dropdown/Dropdown.d.ts +3 -7
  2. package/dist/components/Dropdown/Dropdown.js +6 -21
  3. package/dist/components/Dropdown/DropdownCheckboxItem.d.ts +1 -6
  4. package/dist/components/Dropdown/DropdownCheckboxItem.js +6 -11
  5. package/dist/components/Dropdown/DropdownContext.d.ts +0 -5
  6. package/dist/components/Dropdown/DropdownItem.d.ts +1 -6
  7. package/dist/components/Dropdown/DropdownItem.js +5 -10
  8. package/dist/components/Dropdown/DropdownRadioItem.d.ts +1 -6
  9. package/dist/components/Dropdown/DropdownRadioItem.js +6 -11
  10. package/dist/components/Logo/index.d.ts +1 -1
  11. package/dist/components/LogoBeta/LogoBeta.d.ts +7 -0
  12. package/dist/components/LogoBeta/LogoBeta.js +14 -0
  13. package/dist/components/LogoBeta/index.d.ts +2 -0
  14. package/dist/components/PageLayout/PageLayout.d.ts +45 -0
  15. package/dist/components/PageLayout/PageLayout.js +94 -0
  16. package/dist/components/PageLayout/PageLayoutContext.d.ts +14 -0
  17. package/dist/components/PageLayout/PageLayoutContext.js +8 -0
  18. package/dist/components/PageLayout/components/PageLayoutBreadcrumb.d.ts +9 -0
  19. package/dist/components/PageLayout/components/PageLayoutBreadcrumb.js +10 -0
  20. package/dist/components/PageLayout/components/PageLayoutContent.d.ts +9 -0
  21. package/dist/components/PageLayout/components/PageLayoutContent.js +18 -0
  22. package/dist/components/PageLayout/components/PageLayoutHeader.d.ts +9 -0
  23. package/dist/components/PageLayout/components/PageLayoutHeader.js +17 -0
  24. package/dist/components/PageLayout/components/PageLayoutOverlay.d.ts +15 -0
  25. package/dist/components/PageLayout/components/PageLayoutOverlay.js +34 -0
  26. package/dist/components/PageLayout/components/PageLayoutSidebarLeft.d.ts +9 -0
  27. package/dist/components/PageLayout/components/PageLayoutSidebarLeft.js +18 -0
  28. package/dist/components/PageLayout/components/PageLayoutSidebarRight.d.ts +9 -0
  29. package/dist/components/PageLayout/components/PageLayoutSidebarRight.js +18 -0
  30. package/dist/components/PageLayout/index.d.ts +3 -0
  31. package/dist/components/index.d.ts +2 -1
  32. package/dist/homepage.js +18 -0
  33. package/dist/hooks/index.d.ts +1 -1
  34. package/dist/hooks/useDropdown/useDropdown.js +8 -7
  35. package/dist/hooks/useZendeskGuide/useZendeskGuide.js +1 -1
  36. package/dist/icons-apps.js +134 -136
  37. package/dist/icons-nav.js +38 -28
  38. package/dist/index.js +153 -148
  39. package/dist/modules/homepage/components/Header/Header.d.ts +8 -0
  40. package/dist/modules/homepage/components/Header/Header.js +74 -0
  41. package/dist/modules/homepage/components/Header/index.d.ts +2 -0
  42. package/dist/modules/homepage/components/LastInfos/LastInfos.d.ts +33 -0
  43. package/dist/modules/homepage/components/LastInfos/LastInfos.js +7 -0
  44. package/dist/modules/homepage/components/LastInfos/LastInfosContainer.d.ts +4 -0
  45. package/dist/modules/homepage/components/LastInfos/LastInfosContainer.js +32 -0
  46. package/dist/modules/homepage/components/LastInfos/LastInfosList.d.ts +8 -0
  47. package/dist/modules/homepage/components/LastInfos/LastInfosList.js +27 -0
  48. package/dist/modules/homepage/components/LastInfos/index.d.ts +4 -0
  49. package/dist/modules/homepage/components/LastInfos/useLastInfos.d.ts +17 -0
  50. package/dist/modules/homepage/components/LastInfos/useLastInfos.js +25 -0
  51. package/dist/modules/homepage/components/MessageFlashList/MessageFlash.d.ts +12 -0
  52. package/dist/modules/homepage/components/MessageFlashList/MessageFlash.js +60 -0
  53. package/dist/modules/homepage/components/MessageFlashList/MessageFlashList.d.ts +12 -0
  54. package/dist/modules/homepage/components/MessageFlashList/MessageFlashList.js +10 -0
  55. package/dist/modules/homepage/components/MessageFlashList/MessageFlashListContainer.d.ts +5 -0
  56. package/dist/modules/homepage/components/MessageFlashList/MessageFlashListContainer.js +14 -0
  57. package/dist/modules/homepage/components/MessageFlashList/hooks/useMessageFlashList.d.ts +16 -0
  58. package/dist/modules/homepage/components/MessageFlashList/hooks/useMessageFlashList.js +19 -0
  59. package/dist/modules/homepage/components/MessageFlashList/index.d.ts +4 -0
  60. package/dist/modules/homepage/components/MessageFlashList/services/api/index.d.ts +4 -0
  61. package/dist/modules/homepage/components/MessageFlashList/services/api/index.js +5 -0
  62. package/dist/modules/homepage/components/MessageFlashList/services/api/messagesFlashService.d.ts +20 -0
  63. package/dist/modules/homepage/components/MessageFlashList/services/api/messagesFlashService.js +21 -0
  64. package/dist/modules/homepage/components/MessageFlashList/services/queries/messagesFlash.d.ts +13 -0
  65. package/dist/modules/homepage/components/MessageFlashList/services/queries/messagesFlash.js +31 -0
  66. package/dist/modules/homepage/components/SchoolSpace/SchoolSpace.d.ts +15 -0
  67. package/dist/modules/homepage/components/SchoolSpace/SchoolSpace.js +35 -0
  68. package/dist/modules/homepage/components/SchoolSpace/SchoolSpaceContainer.d.ts +4 -0
  69. package/dist/modules/homepage/components/SchoolSpace/SchoolSpaceContainer.js +10 -0
  70. package/dist/modules/homepage/components/SchoolSpace/index.d.ts +3 -0
  71. package/dist/modules/homepage/components/SchoolSpace/useUserSchools.d.ts +6 -0
  72. package/dist/modules/homepage/components/SchoolSpace/useUserSchools.js +34 -0
  73. package/dist/modules/homepage/components/index.d.ts +4 -0
  74. package/dist/modules/homepage/hooks/useWidgetPreferences.d.ts +5 -0
  75. package/dist/modules/homepage/hooks/useWidgetPreferences.js +19 -0
  76. package/dist/modules/homepage/index.d.ts +1 -0
  77. package/dist/modules/icons/components/apps/index.d.ts +0 -1
  78. package/dist/modules/icons/components/nav/IconCommunitiesBeta.d.ts +7 -0
  79. package/dist/modules/icons/components/nav/IconCommunitiesBeta.js +18 -0
  80. package/dist/modules/icons/components/nav/IconHomeBeta.d.ts +7 -0
  81. package/dist/modules/icons/components/nav/IconHomeBeta.js +13 -0
  82. package/dist/modules/icons/components/nav/IconMessagesBeta.d.ts +7 -0
  83. package/dist/modules/icons/components/nav/IconMessagesBeta.js +18 -0
  84. package/dist/modules/icons/components/nav/IconMyAppsBeta.d.ts +7 -0
  85. package/dist/modules/icons/components/nav/IconMyAppsBeta.js +13 -0
  86. package/dist/modules/icons/components/nav/IconNotificationBeta.d.ts +7 -0
  87. package/dist/modules/icons/components/nav/IconNotificationBeta.js +14 -0
  88. package/dist/modules/icons/components/nav/IconNotificationsBeta.d.ts +7 -0
  89. package/dist/modules/icons/components/nav/index.d.ts +5 -0
  90. package/dist/modules/modals/OnboardingModal/index.d.ts +1 -1
  91. package/dist/modules/multimedia/ImageEditor/effects/blur.js +7 -9
  92. package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isSameOrAfter.js +1 -1
  93. package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isToday.js +1 -1
  94. package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/localeData.js +1 -1
  95. package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/weekday.js +1 -1
  96. package/dist/providers/EdificeClientProvider/EdificeClientProvider.d.ts +0 -7
  97. package/package.json +10 -6
  98. package/dist/components/Dropdown/DropdownItemHidden.d.ts +0 -12
  99. package/dist/components/Dropdown/DropdownItemHidden.js +0 -19
  100. package/dist/components/Dropdown/DropdownSearchInput.d.ts +0 -20
  101. package/dist/components/Dropdown/DropdownSearchInput.js +0 -25
  102. package/dist/components/Dropdown/useDropdownItemFilter.d.ts +0 -12
  103. package/dist/components/Dropdown/useDropdownItemFilter.js +0 -19
  104. package/dist/components/Pagination/Pagination.d.ts +0 -17
  105. package/dist/components/Pagination/Pagination.js +0 -14
  106. package/dist/components/Pagination/index.d.ts +0 -1
  107. package/dist/modules/icons/components/apps/IconLivretScolaire.d.ts +0 -7
  108. package/dist/modules/icons/components/apps/IconLivretScolaire.js +0 -13
@@ -81,7 +81,7 @@ declare const Dropdown: import('react').ForwardRefExoticComponent<DropdownProps
81
81
  Trigger: import('react').ForwardRefExoticComponent<Omit<import('./DropdownTrigger').DropdownTriggerProps, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
82
82
  Menu: import('react').ForwardRefExoticComponent<Omit<import('./DropdownMenu').DropdownMenuProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
83
83
  Item: {
84
- ({ type, icon, onClick, children, className, minWidth, disabled, searchValue, ...restProps }: import('./DropdownItem').DropdownItemProps): import("react/jsx-runtime").JSX.Element;
84
+ ({ type, icon, onClick, children, className, minWidth, disabled, ...restProps }: import('./DropdownItem').DropdownItemProps): import("react/jsx-runtime").JSX.Element;
85
85
  displayName: string;
86
86
  };
87
87
  Separator: {
@@ -89,17 +89,13 @@ declare const Dropdown: import('react').ForwardRefExoticComponent<DropdownProps
89
89
  displayName: string;
90
90
  };
91
91
  CheckboxItem: {
92
- ({ children, value, model, onChange, searchValue, }: DropdownCheckboxItem): import("react/jsx-runtime").JSX.Element;
92
+ ({ children, value, model, onChange, }: DropdownCheckboxItem): import("react/jsx-runtime").JSX.Element;
93
93
  displayName: string;
94
94
  };
95
95
  RadioItem: {
96
- ({ children, value, model, onChange, searchValue, }: import('./DropdownRadioItem').DropdownRadioItemProps): import("react/jsx-runtime").JSX.Element;
96
+ ({ children, value, model, onChange, }: import('./DropdownRadioItem').DropdownRadioItemProps): import("react/jsx-runtime").JSX.Element;
97
97
  displayName: string;
98
98
  };
99
99
  MenuGroup: import('react').ForwardRefExoticComponent<import('./DropdownMenuGroup').DropdownMenuGroupProps & import('react').RefAttributes<HTMLDivElement>>;
100
- SearchInput: {
101
- ({ placeholder, noResultsLabel, onSearch, }: import('./DropdownSearchInput').DropdownSearchInputProps): import("react/jsx-runtime").JSX.Element;
102
- displayName: string;
103
- };
104
100
  };
105
101
  export default Dropdown;
@@ -1,5 +1,5 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { forwardRef, useState, useRef, useCallback, useImperativeHandle, useMemo, useEffect } from "react";
2
+ import { forwardRef, useImperativeHandle, useMemo, useEffect } from "react";
3
3
  import clsx from "clsx";
4
4
  import useDropdown from "../../hooks/useDropdown/useDropdown.js";
5
5
  import DropdownCheckboxItem from "./DropdownCheckboxItem.js";
@@ -8,7 +8,6 @@ import DropdownItem from "./DropdownItem.js";
8
8
  import DropdownMenu from "./DropdownMenu.js";
9
9
  import DropdownMenuGroup from "./DropdownMenuGroup.js";
10
10
  import DropdownRadioItem from "./DropdownRadioItem.js";
11
- import DropdownSearchInput from "./DropdownSearchInput.js";
12
11
  import DropdownSeparator from "./DropdownSeparator.js";
13
12
  import DropdownTrigger from "./DropdownTrigger.js";
14
13
  import useClickOutside from "../../hooks/useClickOutside/useClickOutside.js";
@@ -25,15 +24,7 @@ const Root = /* @__PURE__ */ forwardRef(({
25
24
  openOnSpace = !0,
26
25
  focusOnMouseEnter = !0
27
26
  }, refDropdown) => {
28
- const [searchQuery, setSearchQuery] = useState(""), [hasMatches, setHasMatches] = useState(!0), matchMapRef = useRef(/* @__PURE__ */ new Map()), reportMatch = useCallback((id, isMatch) => {
29
- matchMapRef.current.set(id, isMatch);
30
- const next = [...matchMapRef.current.values()].some(Boolean);
31
- setHasMatches((prev) => prev !== next ? next : prev);
32
- }, []), unregisterMatch = useCallback((id) => {
33
- matchMapRef.current.delete(id);
34
- const next = matchMapRef.current.size === 0 || [...matchMapRef.current.values()].some(Boolean);
35
- setHasMatches((prev) => prev !== next ? next : prev);
36
- }, []), {
27
+ const {
37
28
  visible,
38
29
  isFocused,
39
30
  triggerProps,
@@ -67,19 +58,14 @@ const Root = /* @__PURE__ */ forwardRef(({
67
58
  block,
68
59
  setVisible,
69
60
  openDropdown,
70
- closeDropdown,
71
- searchQuery,
72
- setSearchQuery,
73
- hasMatches,
74
- reportMatch,
75
- unregisterMatch
76
- }), [visible, isFocused, triggerProps, menuProps, itemProps, itemRefs, block, setVisible, openDropdown, closeDropdown, searchQuery, hasMatches, reportMatch, unregisterMatch]), dropdown = clsx("dropdown", {
61
+ closeDropdown
62
+ }), [visible, isFocused, triggerProps, menuProps, itemProps, itemRefs, block, setVisible, openDropdown, closeDropdown]), dropdown = clsx("dropdown", {
77
63
  "w-100": block,
78
64
  "dropdown-nowrap": noWrap,
79
65
  overflow
80
66
  });
81
67
  return useEffect(() => {
82
- onToggle == null || onToggle(visible), visible || setSearchQuery("");
68
+ onToggle == null || onToggle(visible);
83
69
  }, [visible]), /* @__PURE__ */ jsx(DropdownContext.Provider, { value, children: /* @__PURE__ */ jsx("div", { ref, className: dropdown, children: typeof children == "function" ? children(triggerProps, itemRefs, setVisible) : children }) });
84
70
  }), Dropdown = /* @__PURE__ */ Object.assign(Root, {
85
71
  Trigger: DropdownTrigger,
@@ -88,8 +74,7 @@ const Root = /* @__PURE__ */ forwardRef(({
88
74
  Separator: DropdownSeparator,
89
75
  CheckboxItem: DropdownCheckboxItem,
90
76
  RadioItem: DropdownRadioItem,
91
- MenuGroup: DropdownMenuGroup,
92
- SearchInput: DropdownSearchInput
77
+ MenuGroup: DropdownMenuGroup
93
78
  });
94
79
  export {
95
80
  Dropdown as default
@@ -16,14 +16,9 @@ interface DropdownCheckboxItem {
16
16
  * OnKeyDown handler
17
17
  */
18
18
  onChange: (value: string | number) => void;
19
- /**
20
- * Value used to filter this item when `Dropdown.SearchInput` is present.
21
- * If provided, the item is hidden when the search query doesn't match.
22
- */
23
- searchValue?: string;
24
19
  }
25
20
  declare const DropdownCheckboxItem: {
26
- ({ children, value, model, onChange, searchValue, }: DropdownCheckboxItem): import("react/jsx-runtime").JSX.Element;
21
+ ({ children, value, model, onChange, }: DropdownCheckboxItem): import("react/jsx-runtime").JSX.Element;
27
22
  displayName: string;
28
23
  };
29
24
  export default DropdownCheckboxItem;
@@ -1,38 +1,33 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
2
3
  import clsx from "clsx";
3
4
  import { useDropdownContext } from "./DropdownContext.js";
4
- import { useDropdownItemFilter } from "./useDropdownItemFilter.js";
5
- import DropdownItemHidden from "./DropdownItemHidden.js";
6
5
  import Checkbox from "../Checkbox/Checkbox.js";
7
6
  const DropdownCheckboxItem = ({
8
7
  children,
9
8
  value,
10
9
  model,
11
- onChange,
12
- searchValue
10
+ onChange
13
11
  }) => {
14
12
  const {
15
13
  itemProps,
16
14
  itemRefs,
17
15
  isFocused
18
16
  } = useDropdownContext(), {
19
- id,
20
- isFiltered
21
- } = useDropdownItemFilter(searchValue), {
22
17
  onMenuItemKeyDown,
23
18
  onMenuItemMouseEnter
24
- } = itemProps, checked = model.includes(value), checkboxProps = {
19
+ } = itemProps, id = useId(), checked = model.includes(value), checkboxProps = {
25
20
  value,
26
21
  model,
27
22
  checked,
28
23
  readOnly: !0
29
24
  }, dropdownCheckboxItem = clsx("dropdown-item c-pointer", {
30
25
  focus: isFocused === id
31
- }), content = /* @__PURE__ */ jsxs("div", { className: "d-flex gap-8 align-items-center justify-content-between position-relative", children: [
26
+ });
27
+ return /* @__PURE__ */ jsx("div", { id, ref: (el) => itemRefs.current[id] = el, role: "menuitemcheckbox", "aria-checked": checked, onMouseUp: () => onChange(value), onKeyDown: (event) => onMenuItemKeyDown(event, () => onChange(value)), onMouseEnter: onMenuItemMouseEnter, tabIndex: checked ? 0 : -1, className: dropdownCheckboxItem, children: /* @__PURE__ */ jsxs("div", { className: "d-flex gap-8 align-items-center justify-content-between position-relative", children: [
32
28
  children,
33
29
  /* @__PURE__ */ jsx(Checkbox, { ...checkboxProps })
34
- ] });
35
- return isFiltered ? /* @__PURE__ */ jsx(DropdownItemHidden, { collapse: !0, children: content }) : /* @__PURE__ */ jsx("div", { id, ref: (el) => itemRefs.current[id] = el, role: "menuitemcheckbox", "aria-checked": checked, onMouseUp: () => onChange(value), onKeyDown: (event) => onMenuItemKeyDown(event, () => onChange(value)), onMouseEnter: onMenuItemMouseEnter, tabIndex: checked ? 0 : -1, className: dropdownCheckboxItem, children: content });
30
+ ] }) });
36
31
  };
37
32
  export {
38
33
  DropdownCheckboxItem as default
@@ -2,11 +2,6 @@ import { UseDropdownProps } from '../../hooks/useDropdown/useDropdown';
2
2
  type OmittedProps = Omit<UseDropdownProps, 'triggerRef' | 'menuRef'>;
3
3
  export interface DropdownContextProps extends OmittedProps {
4
4
  block?: boolean;
5
- searchQuery: string;
6
- setSearchQuery: (query: string) => void;
7
- hasMatches: boolean;
8
- reportMatch: (id: string, isMatch: boolean) => void;
9
- unregisterMatch: (id: string) => void;
10
5
  }
11
6
  export declare const DropdownContext: import('react').Context<DropdownContextProps | null>;
12
7
  export declare const useDropdownContext: () => DropdownContextProps;
@@ -29,14 +29,9 @@ export interface DropdownItemProps {
29
29
  * Disabled status
30
30
  */
31
31
  disabled?: boolean;
32
- /**
33
- * Value used to filter this item when `Dropdown.SearchInput` is present.
34
- * If provided, the item is hidden when the search query doesn't match.
35
- */
36
- searchValue?: string;
37
32
  }
38
33
  declare const DropdownItem: {
39
- ({ type, icon, onClick, children, className, minWidth, disabled, searchValue, ...restProps }: DropdownItemProps): import("react/jsx-runtime").JSX.Element;
34
+ ({ type, icon, onClick, children, className, minWidth, disabled, ...restProps }: DropdownItemProps): import("react/jsx-runtime").JSX.Element;
40
35
  displayName: string;
41
36
  };
42
37
  export default DropdownItem;
@@ -1,8 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
2
3
  import clsx from "clsx";
3
4
  import { useDropdownContext } from "./DropdownContext.js";
4
- import { useDropdownItemFilter } from "./useDropdownItemFilter.js";
5
- import DropdownItemHidden from "./DropdownItemHidden.js";
6
5
  const DropdownItem = ({
7
6
  type = "action",
8
7
  icon,
@@ -11,7 +10,6 @@ const DropdownItem = ({
11
10
  className,
12
11
  minWidth,
13
12
  disabled,
14
- searchValue,
15
13
  ...restProps
16
14
  }) => {
17
15
  const {
@@ -19,15 +17,12 @@ const DropdownItem = ({
19
17
  itemRefs,
20
18
  isFocused
21
19
  } = useDropdownContext(), {
22
- id,
23
- isFiltered
24
- } = useDropdownItemFilter(searchValue), {
25
20
  onMenuItemKeyDown,
26
21
  onMenuItemMouseEnter,
27
22
  onMenuItemClick
28
23
  } = itemProps, handleOnClick = (event) => {
29
24
  disabled || (onClick == null || onClick(event), type === "action" && (onMenuItemClick(), event.stopPropagation()));
30
- }, dropdownItem = clsx("dropdown-item", {
25
+ }, id = useId(), dropdownItem = clsx("dropdown-item", {
31
26
  focus: isFocused === id
32
27
  }, {
33
28
  "text-gray-600": disabled
@@ -35,11 +30,11 @@ const DropdownItem = ({
35
30
  ...minWidth && {
36
31
  minWidth: `${minWidth}px`
37
32
  }
38
- }, content = /* @__PURE__ */ jsxs("div", { className: "d-flex gap-8 align-items-center", children: [
33
+ };
34
+ return /* @__PURE__ */ jsx("div", { id, role: "menuitem", style, ref: (el) => itemRefs.current[id] = el, tabIndex: isFocused === id ? 0 : -1, className: dropdownItem, "aria-current": isFocused === id, onClick: handleOnClick, onMouseEnter: onMenuItemMouseEnter, onKeyDown: (event) => onMenuItemKeyDown(event, onClick), ...restProps, children: /* @__PURE__ */ jsxs("div", { className: "d-flex gap-8 align-items-center", children: [
39
35
  icon,
40
36
  children
41
- ] });
42
- return isFiltered ? /* @__PURE__ */ jsx(DropdownItemHidden, { children: content }) : /* @__PURE__ */ jsx("div", { id, role: "menuitem", style, ref: (el) => itemRefs.current[id] = el, tabIndex: isFocused === id ? 0 : -1, className: dropdownItem, "aria-current": isFocused === id, onClick: handleOnClick, onMouseEnter: onMenuItemMouseEnter, onKeyDown: (event) => onMenuItemKeyDown(event, onClick), ...restProps, children: content });
37
+ ] }) });
43
38
  };
44
39
  export {
45
40
  DropdownItem as default
@@ -16,14 +16,9 @@ export interface DropdownRadioItemProps {
16
16
  * onKeyDown, onMouseUp handlers
17
17
  */
18
18
  onChange: (value: string) => void;
19
- /**
20
- * Value used to filter this item when `Dropdown.SearchInput` is present.
21
- * If provided, the item is hidden when the search query doesn't match.
22
- */
23
- searchValue?: string;
24
19
  }
25
20
  declare const DropdownRadioItem: {
26
- ({ children, value, model, onChange, searchValue, }: DropdownRadioItemProps): import("react/jsx-runtime").JSX.Element;
21
+ ({ children, value, model, onChange, }: DropdownRadioItemProps): import("react/jsx-runtime").JSX.Element;
27
22
  displayName: string;
28
23
  };
29
24
  export default DropdownRadioItem;
@@ -1,38 +1,33 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
2
3
  import clsx from "clsx";
3
4
  import { useDropdownContext } from "./DropdownContext.js";
4
- import { useDropdownItemFilter } from "./useDropdownItemFilter.js";
5
- import DropdownItemHidden from "./DropdownItemHidden.js";
6
5
  import Radio from "../Radio/Radio.js";
7
6
  const DropdownRadioItem = ({
8
7
  children,
9
8
  value,
10
9
  model,
11
- onChange,
12
- searchValue
10
+ onChange
13
11
  }) => {
14
12
  const {
15
13
  itemProps,
16
14
  itemRefs,
17
15
  isFocused
18
16
  } = useDropdownContext(), {
19
- id,
20
- isFiltered
21
- } = useDropdownItemFilter(searchValue), {
22
17
  onMenuItemKeyDown,
23
18
  onMenuItemMouseEnter
24
- } = itemProps, radioProps = {
19
+ } = itemProps, id = useId(), radioProps = {
25
20
  value,
26
21
  model,
27
22
  checked: value === model,
28
23
  readOnly: !0
29
24
  }, dropdownRadioItem = clsx("dropdown-item c-pointer", {
30
25
  focus: isFocused === id
31
- }), content = /* @__PURE__ */ jsxs("div", { className: "d-flex gap-8 align-items-center justify-content-between position-relative", children: [
26
+ });
27
+ return /* @__PURE__ */ jsx("div", { id, ref: (el) => itemRefs.current[id] = el, role: "menuitemradio", "aria-checked": value === model, onMouseUp: () => onChange(value), onKeyDown: (event) => onMenuItemKeyDown(event, () => onChange(value)), onMouseEnter: onMenuItemMouseEnter, tabIndex: value === model ? 0 : -1, className: dropdownRadioItem, children: /* @__PURE__ */ jsxs("div", { className: "d-flex gap-8 align-items-center justify-content-between position-relative", children: [
32
28
  children,
33
29
  /* @__PURE__ */ jsx(Radio, { ...radioProps, className: "position-absolute start-0 end-0 top-0 bottom-0 opacity-0" })
34
- ] });
35
- return isFiltered ? /* @__PURE__ */ jsx(DropdownItemHidden, { children: content }) : /* @__PURE__ */ jsx("div", { id, ref: (el) => itemRefs.current[id] = el, role: "menuitemradio", "aria-checked": value === model, onMouseUp: () => onChange(value), onKeyDown: (event) => onMenuItemKeyDown(event, () => onChange(value)), onMouseEnter: onMenuItemMouseEnter, tabIndex: value === model ? 0 : -1, className: dropdownRadioItem, children: content });
30
+ ] }) });
36
31
  };
37
32
  export {
38
33
  DropdownRadioItem as default
@@ -1,2 +1,2 @@
1
- export { default as Logo } from './Logo';
2
1
  export * from './Logo';
2
+ export { default as Logo } from './Logo';
@@ -0,0 +1,7 @@
1
+ export interface LogoBetaProps {
2
+ src: string;
3
+ is1d?: boolean;
4
+ translate?: string;
5
+ }
6
+ declare const LogoBeta: import('react').ForwardRefExoticComponent<LogoBetaProps & import('react').RefAttributes<HTMLAnchorElement>>;
7
+ export default LogoBeta;
@@ -0,0 +1,14 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import clsx from "clsx";
4
+ const LogoBeta = /* @__PURE__ */ forwardRef(({
5
+ src,
6
+ is1d,
7
+ translate = "Retour accueil"
8
+ }, ref) => {
9
+ const classes = clsx("navbar-brand");
10
+ return /* @__PURE__ */ jsx("a", { ref, className: classes, href: "/timeline/timeline", "aria-label": translate, children: /* @__PURE__ */ jsx("img", { className: "logo", src, alt: `logo ${is1d ? "ONE" : "NEO"}`, width: "300", height: "52" }) });
11
+ });
12
+ export {
13
+ LogoBeta as default
14
+ };
@@ -0,0 +1,2 @@
1
+ export * from './LogoBeta';
2
+ export { default as LogoBeta } from './LogoBeta';
@@ -0,0 +1,45 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import { NoPaddingConfig, PageLayoutScrollMode, PageLayoutVariant } from './PageLayoutContext';
3
+ export interface PageLayoutProps extends ComponentPropsWithoutRef<'div'> {
4
+ children: ReactNode;
5
+ /** Layout variant: "centered" (default) centers everything in a max-width container,
6
+ * "fullpage" extends sidebars to screen edges with centered content */
7
+ variant?: PageLayoutVariant;
8
+ /** Add a gap between sidebars and content */
9
+ withGap?: boolean;
10
+ /** Scroll mode: "columns" — each column scrolls independently (header not fixed),
11
+ * "page" — normal page scroll with sticky breadcrumb (header not fixed) */
12
+ scrollMode?: PageLayoutScrollMode;
13
+ /** Disable padding on specific columns */
14
+ noPadding?: NoPaddingConfig;
15
+ }
16
+ declare const PageLayout: {
17
+ ({ children, variant, withGap, scrollMode, noPadding, className, ...props }: PageLayoutProps): import("react/jsx-runtime").JSX.Element;
18
+ displayName: string;
19
+ } & {
20
+ Header: {
21
+ ({ children, className, ...props }: import('./components/PageLayoutHeader').PageLayoutHeaderProps): import("react/jsx-runtime").JSX.Element;
22
+ displayName: string;
23
+ };
24
+ Breadcrumb: {
25
+ ({ children, className, ...props }: import('./components/PageLayoutBreadcrumb').PageLayoutBreadcrumbProps): import("react/jsx-runtime").JSX.Element;
26
+ displayName: string;
27
+ };
28
+ SidebarLeft: {
29
+ ({ children, className, ...props }: import('./components/PageLayoutSidebarLeft').PageLayoutSidebarLeftProps): import("react/jsx-runtime").JSX.Element;
30
+ displayName: string;
31
+ };
32
+ Content: {
33
+ ({ children, className, ...props }: import('./components/PageLayoutContent').PageLayoutContentProps): import("react/jsx-runtime").JSX.Element;
34
+ displayName: string;
35
+ };
36
+ SidebarRight: {
37
+ ({ children, className, ...props }: import('./components/PageLayoutSidebarRight').PageLayoutSidebarRightProps): import("react/jsx-runtime").JSX.Element;
38
+ displayName: string;
39
+ };
40
+ Overlay: {
41
+ ({ children, open, onClose, backdrop, className, ...props }: import('./components/PageLayoutOverlay').PageLayoutOverlayProps): import("react/jsx-runtime").JSX.Element;
42
+ displayName: string;
43
+ };
44
+ };
45
+ export default PageLayout;
@@ -0,0 +1,94 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useMemo, Children, isValidElement } from "react";
3
+ import clsx from "clsx";
4
+ import PageLayoutBreadcrumb from "./components/PageLayoutBreadcrumb.js";
5
+ import PageLayoutContent from "./components/PageLayoutContent.js";
6
+ import PageLayoutHeader from "./components/PageLayoutHeader.js";
7
+ import PageLayoutOverlay from "./components/PageLayoutOverlay.js";
8
+ import PageLayoutSidebarLeft from "./components/PageLayoutSidebarLeft.js";
9
+ import PageLayoutSidebarRight from "./components/PageLayoutSidebarRight.js";
10
+ import { PageLayoutContext } from "./PageLayoutContext.js";
11
+ function analyzeChildren(children) {
12
+ let hasLeftSidebar = !1, hasRightSidebar = !1, breadcrumb = null, overlay = null;
13
+ const headerChildren = [], mainChildren = [];
14
+ return Children.toArray(children).forEach((child) => {
15
+ if (/* @__PURE__ */ isValidElement(child))
16
+ switch (child.type) {
17
+ case PageLayoutHeader:
18
+ headerChildren.push(child);
19
+ break;
20
+ case PageLayoutBreadcrumb:
21
+ breadcrumb = child;
22
+ break;
23
+ case PageLayoutOverlay:
24
+ overlay = child;
25
+ break;
26
+ case PageLayoutSidebarLeft:
27
+ hasLeftSidebar = !0, mainChildren.push(child);
28
+ break;
29
+ case PageLayoutSidebarRight:
30
+ hasRightSidebar = !0, mainChildren.push(child);
31
+ break;
32
+ case PageLayoutContent:
33
+ mainChildren.push(child);
34
+ break;
35
+ default:
36
+ mainChildren.push(child);
37
+ break;
38
+ }
39
+ }), {
40
+ hasLeftSidebar,
41
+ hasRightSidebar,
42
+ breadcrumb,
43
+ overlay,
44
+ headerChildren,
45
+ mainChildren
46
+ };
47
+ }
48
+ const Root = ({
49
+ children,
50
+ variant = "centered",
51
+ withGap = !1,
52
+ scrollMode,
53
+ noPadding,
54
+ className,
55
+ ...props
56
+ }) => {
57
+ const contextValue = useMemo(() => ({
58
+ variant,
59
+ scrollMode,
60
+ noPadding
61
+ }), [variant, scrollMode, noPadding]), {
62
+ hasLeftSidebar,
63
+ hasRightSidebar,
64
+ breadcrumb,
65
+ overlay,
66
+ headerChildren,
67
+ mainChildren
68
+ } = analyzeChildren(children), mainAreaClasses = clsx("pagelayout-mainarea", {
69
+ "has-both-sidebars": hasLeftSidebar && hasRightSidebar,
70
+ "has-left-sidebar-only": hasLeftSidebar && !hasRightSidebar,
71
+ "has-right-sidebar-only": !hasLeftSidebar && hasRightSidebar,
72
+ "has-gap": withGap
73
+ }), isFullpage = variant === "fullpage";
74
+ return /* @__PURE__ */ jsx(PageLayoutContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs("div", { className: clsx("pagelayout", `pagelayout-${variant}`, scrollMode && `pagelayout-scroll-${scrollMode}`, className), ...props, children: [
75
+ headerChildren,
76
+ headerChildren.length > 0 && /* @__PURE__ */ jsx("div", { className: "pagelayout-headerspacer" }),
77
+ !isFullpage && breadcrumb,
78
+ /* @__PURE__ */ jsxs("div", { className: mainAreaClasses, children: [
79
+ isFullpage && breadcrumb,
80
+ mainChildren
81
+ ] }),
82
+ overlay
83
+ ] }) });
84
+ }, PageLayout = /* @__PURE__ */ Object.assign(Root, {
85
+ Header: PageLayoutHeader,
86
+ Breadcrumb: PageLayoutBreadcrumb,
87
+ SidebarLeft: PageLayoutSidebarLeft,
88
+ Content: PageLayoutContent,
89
+ SidebarRight: PageLayoutSidebarRight,
90
+ Overlay: PageLayoutOverlay
91
+ });
92
+ export {
93
+ PageLayout as default
94
+ };
@@ -0,0 +1,14 @@
1
+ export type PageLayoutVariant = 'centered' | 'fullpage';
2
+ export type PageLayoutScrollMode = 'columns' | 'page';
3
+ export interface NoPaddingConfig {
4
+ sidebarLeft?: boolean;
5
+ content?: boolean;
6
+ sidebarRight?: boolean;
7
+ }
8
+ export interface PageLayoutContextValue {
9
+ variant: PageLayoutVariant;
10
+ scrollMode?: PageLayoutScrollMode;
11
+ noPadding?: NoPaddingConfig;
12
+ }
13
+ export declare const PageLayoutContext: import('react').Context<PageLayoutContextValue>;
14
+ export declare const usePageLayout: () => PageLayoutContextValue;
@@ -0,0 +1,8 @@
1
+ import { createContext, useContext } from "react";
2
+ const PageLayoutContext = /* @__PURE__ */ createContext({
3
+ variant: "centered"
4
+ }), usePageLayout = () => useContext(PageLayoutContext);
5
+ export {
6
+ PageLayoutContext,
7
+ usePageLayout
8
+ };
@@ -0,0 +1,9 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export interface PageLayoutBreadcrumbProps extends ComponentPropsWithoutRef<'div'> {
3
+ children: ReactNode;
4
+ }
5
+ declare const PageLayoutBreadcrumb: {
6
+ ({ children, className, ...props }: PageLayoutBreadcrumbProps): import("react/jsx-runtime").JSX.Element;
7
+ displayName: string;
8
+ };
9
+ export default PageLayoutBreadcrumb;
@@ -0,0 +1,10 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import clsx from "clsx";
3
+ const PageLayoutBreadcrumb = ({
4
+ children,
5
+ className,
6
+ ...props
7
+ }) => /* @__PURE__ */ jsx("div", { className: clsx("pagelayout-breadcrumb", className), ...props, children });
8
+ export {
9
+ PageLayoutBreadcrumb as default
10
+ };
@@ -0,0 +1,9 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export interface PageLayoutContentProps extends ComponentPropsWithoutRef<'main'> {
3
+ children: ReactNode;
4
+ }
5
+ declare const PageLayoutContent: {
6
+ ({ children, className, ...props }: PageLayoutContentProps): import("react/jsx-runtime").JSX.Element;
7
+ displayName: string;
8
+ };
9
+ export default PageLayoutContent;
@@ -0,0 +1,18 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import clsx from "clsx";
3
+ import { usePageLayout } from "../PageLayoutContext.js";
4
+ const PageLayoutContent = ({
5
+ children,
6
+ className,
7
+ ...props
8
+ }) => {
9
+ const {
10
+ noPadding
11
+ } = usePageLayout();
12
+ return /* @__PURE__ */ jsx("main", { className: clsx("pagelayout-content", {
13
+ "pagelayout-content--no-padding": noPadding == null ? void 0 : noPadding.content
14
+ }, className), ...props, children });
15
+ };
16
+ export {
17
+ PageLayoutContent as default
18
+ };
@@ -0,0 +1,9 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export interface PageLayoutHeaderProps extends ComponentPropsWithoutRef<'header'> {
3
+ children?: ReactNode;
4
+ }
5
+ declare const PageLayoutHeader: {
6
+ ({ children, className, ...props }: PageLayoutHeaderProps): import("react/jsx-runtime").JSX.Element;
7
+ displayName: string;
8
+ };
9
+ export default PageLayoutHeader;
@@ -0,0 +1,17 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import clsx from "clsx";
3
+ import Header from "../../../modules/homepage/components/Header/Header.js";
4
+ import { useEdificeTheme } from "../../../providers/EdificeThemeProvider/EdificeThemeProvider.hook.js";
5
+ const PageLayoutHeader = ({
6
+ children,
7
+ className,
8
+ ...props
9
+ }) => {
10
+ const {
11
+ theme
12
+ } = useEdificeTheme();
13
+ return /* @__PURE__ */ jsx("header", { className: clsx("pagelayout-header", className), ...props, children: children ?? /* @__PURE__ */ jsx(Header, { src: theme == null ? void 0 : theme.basePath }) });
14
+ };
15
+ export {
16
+ PageLayoutHeader as default
17
+ };
@@ -0,0 +1,15 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export interface PageLayoutOverlayProps extends ComponentPropsWithoutRef<'aside'> {
3
+ children: ReactNode;
4
+ /** Whether the overlay panel is open */
5
+ open: boolean;
6
+ /** Called when the overlay requests to be closed (e.g. clicking the backdrop) */
7
+ onClose?: () => void;
8
+ /** Show a backdrop behind the overlay. Defaults to false. */
9
+ backdrop?: boolean;
10
+ }
11
+ declare const PageLayoutOverlay: {
12
+ ({ children, open, onClose, backdrop, className, ...props }: PageLayoutOverlayProps): import("react/jsx-runtime").JSX.Element;
13
+ displayName: string;
14
+ };
15
+ export default PageLayoutOverlay;
@@ -0,0 +1,34 @@
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
+ import { useEffect } from "react";
3
+ import clsx from "clsx";
4
+ const PageLayoutOverlay = ({
5
+ children,
6
+ open,
7
+ onClose,
8
+ backdrop = !1,
9
+ className,
10
+ ...props
11
+ }) => (useEffect(() => {
12
+ if (!open) return;
13
+ const handleKeyDown = (e) => {
14
+ e.key === "Escape" && (onClose == null || onClose());
15
+ };
16
+ return document.addEventListener("keydown", handleKeyDown), () => document.removeEventListener("keydown", handleKeyDown);
17
+ }, [open, onClose]), /* @__PURE__ */ jsxs(Fragment, { children: [
18
+ open && backdrop && /* @__PURE__ */ jsx("div", { className: "pagelayout-overlaybackdrop", "aria-hidden": "true", onClick: onClose }),
19
+ /* @__PURE__ */ jsx(
20
+ "aside",
21
+ {
22
+ className: clsx("pagelayout-overlay", {
23
+ "pagelayout-overlay-open": open
24
+ }, className),
25
+ "aria-hidden": !open,
26
+ inert: open ? void 0 : "",
27
+ ...props,
28
+ children
29
+ }
30
+ )
31
+ ] }));
32
+ export {
33
+ PageLayoutOverlay as default
34
+ };
@@ -0,0 +1,9 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export interface PageLayoutSidebarLeftProps extends ComponentPropsWithoutRef<'aside'> {
3
+ children: ReactNode;
4
+ }
5
+ declare const PageLayoutSidebarLeft: {
6
+ ({ children, className, ...props }: PageLayoutSidebarLeftProps): import("react/jsx-runtime").JSX.Element;
7
+ displayName: string;
8
+ };
9
+ export default PageLayoutSidebarLeft;