@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.
- package/dist/components/Dropdown/Dropdown.d.ts +3 -7
- package/dist/components/Dropdown/Dropdown.js +6 -21
- package/dist/components/Dropdown/DropdownCheckboxItem.d.ts +1 -6
- package/dist/components/Dropdown/DropdownCheckboxItem.js +6 -11
- package/dist/components/Dropdown/DropdownContext.d.ts +0 -5
- package/dist/components/Dropdown/DropdownItem.d.ts +1 -6
- package/dist/components/Dropdown/DropdownItem.js +5 -10
- package/dist/components/Dropdown/DropdownRadioItem.d.ts +1 -6
- package/dist/components/Dropdown/DropdownRadioItem.js +6 -11
- package/dist/components/Logo/index.d.ts +1 -1
- package/dist/components/LogoBeta/LogoBeta.d.ts +7 -0
- package/dist/components/LogoBeta/LogoBeta.js +14 -0
- package/dist/components/LogoBeta/index.d.ts +2 -0
- package/dist/components/PageLayout/PageLayout.d.ts +45 -0
- package/dist/components/PageLayout/PageLayout.js +94 -0
- package/dist/components/PageLayout/PageLayoutContext.d.ts +14 -0
- package/dist/components/PageLayout/PageLayoutContext.js +8 -0
- package/dist/components/PageLayout/components/PageLayoutBreadcrumb.d.ts +9 -0
- package/dist/components/PageLayout/components/PageLayoutBreadcrumb.js +10 -0
- package/dist/components/PageLayout/components/PageLayoutContent.d.ts +9 -0
- package/dist/components/PageLayout/components/PageLayoutContent.js +18 -0
- package/dist/components/PageLayout/components/PageLayoutHeader.d.ts +9 -0
- package/dist/components/PageLayout/components/PageLayoutHeader.js +17 -0
- package/dist/components/PageLayout/components/PageLayoutOverlay.d.ts +15 -0
- package/dist/components/PageLayout/components/PageLayoutOverlay.js +34 -0
- package/dist/components/PageLayout/components/PageLayoutSidebarLeft.d.ts +9 -0
- package/dist/components/PageLayout/components/PageLayoutSidebarLeft.js +18 -0
- package/dist/components/PageLayout/components/PageLayoutSidebarRight.d.ts +9 -0
- package/dist/components/PageLayout/components/PageLayoutSidebarRight.js +18 -0
- package/dist/components/PageLayout/index.d.ts +3 -0
- package/dist/components/index.d.ts +2 -1
- package/dist/homepage.js +18 -0
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/useDropdown/useDropdown.js +8 -7
- package/dist/hooks/useZendeskGuide/useZendeskGuide.js +1 -1
- package/dist/icons-apps.js +134 -136
- package/dist/icons-nav.js +38 -28
- package/dist/index.js +153 -148
- package/dist/modules/homepage/components/Header/Header.d.ts +8 -0
- package/dist/modules/homepage/components/Header/Header.js +74 -0
- package/dist/modules/homepage/components/Header/index.d.ts +2 -0
- package/dist/modules/homepage/components/LastInfos/LastInfos.d.ts +33 -0
- package/dist/modules/homepage/components/LastInfos/LastInfos.js +7 -0
- package/dist/modules/homepage/components/LastInfos/LastInfosContainer.d.ts +4 -0
- package/dist/modules/homepage/components/LastInfos/LastInfosContainer.js +32 -0
- package/dist/modules/homepage/components/LastInfos/LastInfosList.d.ts +8 -0
- package/dist/modules/homepage/components/LastInfos/LastInfosList.js +27 -0
- package/dist/modules/homepage/components/LastInfos/index.d.ts +4 -0
- package/dist/modules/homepage/components/LastInfos/useLastInfos.d.ts +17 -0
- package/dist/modules/homepage/components/LastInfos/useLastInfos.js +25 -0
- package/dist/modules/homepage/components/MessageFlashList/MessageFlash.d.ts +12 -0
- package/dist/modules/homepage/components/MessageFlashList/MessageFlash.js +60 -0
- package/dist/modules/homepage/components/MessageFlashList/MessageFlashList.d.ts +12 -0
- package/dist/modules/homepage/components/MessageFlashList/MessageFlashList.js +10 -0
- package/dist/modules/homepage/components/MessageFlashList/MessageFlashListContainer.d.ts +5 -0
- package/dist/modules/homepage/components/MessageFlashList/MessageFlashListContainer.js +14 -0
- package/dist/modules/homepage/components/MessageFlashList/hooks/useMessageFlashList.d.ts +16 -0
- package/dist/modules/homepage/components/MessageFlashList/hooks/useMessageFlashList.js +19 -0
- package/dist/modules/homepage/components/MessageFlashList/index.d.ts +4 -0
- package/dist/modules/homepage/components/MessageFlashList/services/api/index.d.ts +4 -0
- package/dist/modules/homepage/components/MessageFlashList/services/api/index.js +5 -0
- package/dist/modules/homepage/components/MessageFlashList/services/api/messagesFlashService.d.ts +20 -0
- package/dist/modules/homepage/components/MessageFlashList/services/api/messagesFlashService.js +21 -0
- package/dist/modules/homepage/components/MessageFlashList/services/queries/messagesFlash.d.ts +13 -0
- package/dist/modules/homepage/components/MessageFlashList/services/queries/messagesFlash.js +31 -0
- package/dist/modules/homepage/components/SchoolSpace/SchoolSpace.d.ts +15 -0
- package/dist/modules/homepage/components/SchoolSpace/SchoolSpace.js +35 -0
- package/dist/modules/homepage/components/SchoolSpace/SchoolSpaceContainer.d.ts +4 -0
- package/dist/modules/homepage/components/SchoolSpace/SchoolSpaceContainer.js +10 -0
- package/dist/modules/homepage/components/SchoolSpace/index.d.ts +3 -0
- package/dist/modules/homepage/components/SchoolSpace/useUserSchools.d.ts +6 -0
- package/dist/modules/homepage/components/SchoolSpace/useUserSchools.js +34 -0
- package/dist/modules/homepage/components/index.d.ts +4 -0
- package/dist/modules/homepage/hooks/useWidgetPreferences.d.ts +5 -0
- package/dist/modules/homepage/hooks/useWidgetPreferences.js +19 -0
- package/dist/modules/homepage/index.d.ts +1 -0
- package/dist/modules/icons/components/apps/index.d.ts +0 -1
- package/dist/modules/icons/components/nav/IconCommunitiesBeta.d.ts +7 -0
- package/dist/modules/icons/components/nav/IconCommunitiesBeta.js +18 -0
- package/dist/modules/icons/components/nav/IconHomeBeta.d.ts +7 -0
- package/dist/modules/icons/components/nav/IconHomeBeta.js +13 -0
- package/dist/modules/icons/components/nav/IconMessagesBeta.d.ts +7 -0
- package/dist/modules/icons/components/nav/IconMessagesBeta.js +18 -0
- package/dist/modules/icons/components/nav/IconMyAppsBeta.d.ts +7 -0
- package/dist/modules/icons/components/nav/IconMyAppsBeta.js +13 -0
- package/dist/modules/icons/components/nav/IconNotificationBeta.d.ts +7 -0
- package/dist/modules/icons/components/nav/IconNotificationBeta.js +14 -0
- package/dist/modules/icons/components/nav/IconNotificationsBeta.d.ts +7 -0
- package/dist/modules/icons/components/nav/index.d.ts +5 -0
- package/dist/modules/modals/OnboardingModal/index.d.ts +1 -1
- package/dist/modules/multimedia/ImageEditor/effects/blur.js +7 -9
- package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isSameOrAfter.js +1 -1
- package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isToday.js +1 -1
- package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/localeData.js +1 -1
- package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/weekday.js +1 -1
- package/dist/providers/EdificeClientProvider/EdificeClientProvider.d.ts +0 -7
- package/package.json +10 -6
- package/dist/components/Dropdown/DropdownItemHidden.d.ts +0 -12
- package/dist/components/Dropdown/DropdownItemHidden.js +0 -19
- package/dist/components/Dropdown/DropdownSearchInput.d.ts +0 -20
- package/dist/components/Dropdown/DropdownSearchInput.js +0 -25
- package/dist/components/Dropdown/useDropdownItemFilter.d.ts +0 -12
- package/dist/components/Dropdown/useDropdownItemFilter.js +0 -19
- package/dist/components/Pagination/Pagination.d.ts +0 -17
- package/dist/components/Pagination/Pagination.js +0 -14
- package/dist/components/Pagination/index.d.ts +0 -1
- package/dist/modules/icons/components/apps/IconLivretScolaire.d.ts +0 -7
- 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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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
|
-
|
|
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)
|
|
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,
|
|
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
|
-
})
|
|
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,
|
|
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
|
-
}
|
|
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,
|
|
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
|
-
})
|
|
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
|
|
@@ -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,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,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;
|