@edifice.io/react 2.5.17 → 2.5.18-develop-b2school.20260504100711
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 +7 -3
- package/dist/components/Dropdown/Dropdown.js +21 -6
- package/dist/components/Dropdown/DropdownCheckboxItem.d.ts +6 -1
- package/dist/components/Dropdown/DropdownCheckboxItem.js +11 -6
- package/dist/components/Dropdown/DropdownContext.d.ts +5 -0
- package/dist/components/Dropdown/DropdownItem.d.ts +6 -1
- package/dist/components/Dropdown/DropdownItem.js +10 -5
- package/dist/components/Dropdown/DropdownItemHidden.d.ts +12 -0
- package/dist/components/Dropdown/DropdownItemHidden.js +19 -0
- package/dist/components/Dropdown/DropdownRadioItem.d.ts +6 -1
- package/dist/components/Dropdown/DropdownRadioItem.js +11 -6
- package/dist/components/Dropdown/DropdownSearchInput.d.ts +20 -0
- package/dist/components/Dropdown/DropdownSearchInput.js +25 -0
- package/dist/components/Dropdown/useDropdownItemFilter.d.ts +12 -0
- package/dist/components/Dropdown/useDropdownItemFilter.js +19 -0
- package/dist/components/Pagination/Pagination.d.ts +17 -0
- package/dist/components/Pagination/Pagination.js +14 -0
- package/dist/components/Pagination/index.d.ts +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/hooks/useDropdown/useDropdown.js +7 -8
- package/dist/hooks/useZendeskGuide/useZendeskGuide.js +1 -1
- package/dist/icons-apps.js +136 -134
- package/dist/index.js +2 -0
- package/dist/modules/icons/components/apps/IconLivretScolaire.d.ts +7 -0
- package/dist/modules/icons/components/apps/IconLivretScolaire.js +13 -0
- package/dist/modules/icons/components/apps/index.d.ts +1 -0
- package/dist/modules/modals/OnboardingModal/index.d.ts +1 -1
- package/dist/modules/multimedia/ImageEditor/effects/blur.js +7 -9
- package/package.json +6 -6
|
@@ -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, ...restProps }: import('./DropdownItem').DropdownItemProps): import("react/jsx-runtime").JSX.Element;
|
|
84
|
+
({ type, icon, onClick, children, className, minWidth, disabled, searchValue, ...restProps }: import('./DropdownItem').DropdownItemProps): import("react/jsx-runtime").JSX.Element;
|
|
85
85
|
displayName: string;
|
|
86
86
|
};
|
|
87
87
|
Separator: {
|
|
@@ -89,13 +89,17 @@ declare const Dropdown: import('react').ForwardRefExoticComponent<DropdownProps
|
|
|
89
89
|
displayName: string;
|
|
90
90
|
};
|
|
91
91
|
CheckboxItem: {
|
|
92
|
-
({ children, value, model, onChange, }: DropdownCheckboxItem): import("react/jsx-runtime").JSX.Element;
|
|
92
|
+
({ children, value, model, onChange, searchValue, }: DropdownCheckboxItem): import("react/jsx-runtime").JSX.Element;
|
|
93
93
|
displayName: string;
|
|
94
94
|
};
|
|
95
95
|
RadioItem: {
|
|
96
|
-
({ children, value, model, onChange, }: import('./DropdownRadioItem').DropdownRadioItemProps): import("react/jsx-runtime").JSX.Element;
|
|
96
|
+
({ children, value, model, onChange, searchValue, }: 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
|
+
};
|
|
100
104
|
};
|
|
101
105
|
export default Dropdown;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef, useImperativeHandle, useMemo, useEffect } from "react";
|
|
2
|
+
import { forwardRef, useState, useRef, useCallback, 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,6 +8,7 @@ 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";
|
|
11
12
|
import DropdownSeparator from "./DropdownSeparator.js";
|
|
12
13
|
import DropdownTrigger from "./DropdownTrigger.js";
|
|
13
14
|
import useClickOutside from "../../hooks/useClickOutside/useClickOutside.js";
|
|
@@ -24,7 +25,15 @@ const Root = /* @__PURE__ */ forwardRef(({
|
|
|
24
25
|
openOnSpace = !0,
|
|
25
26
|
focusOnMouseEnter = !0
|
|
26
27
|
}, refDropdown) => {
|
|
27
|
-
const {
|
|
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
|
+
}, []), {
|
|
28
37
|
visible,
|
|
29
38
|
isFocused,
|
|
30
39
|
triggerProps,
|
|
@@ -58,14 +67,19 @@ const Root = /* @__PURE__ */ forwardRef(({
|
|
|
58
67
|
block,
|
|
59
68
|
setVisible,
|
|
60
69
|
openDropdown,
|
|
61
|
-
closeDropdown
|
|
62
|
-
|
|
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", {
|
|
63
77
|
"w-100": block,
|
|
64
78
|
"dropdown-nowrap": noWrap,
|
|
65
79
|
overflow
|
|
66
80
|
});
|
|
67
81
|
return useEffect(() => {
|
|
68
|
-
onToggle == null || onToggle(visible);
|
|
82
|
+
onToggle == null || onToggle(visible), visible || setSearchQuery("");
|
|
69
83
|
}, [visible]), /* @__PURE__ */ jsx(DropdownContext.Provider, { value, children: /* @__PURE__ */ jsx("div", { ref, className: dropdown, children: typeof children == "function" ? children(triggerProps, itemRefs, setVisible) : children }) });
|
|
70
84
|
}), Dropdown = /* @__PURE__ */ Object.assign(Root, {
|
|
71
85
|
Trigger: DropdownTrigger,
|
|
@@ -74,7 +88,8 @@ const Root = /* @__PURE__ */ forwardRef(({
|
|
|
74
88
|
Separator: DropdownSeparator,
|
|
75
89
|
CheckboxItem: DropdownCheckboxItem,
|
|
76
90
|
RadioItem: DropdownRadioItem,
|
|
77
|
-
MenuGroup: DropdownMenuGroup
|
|
91
|
+
MenuGroup: DropdownMenuGroup,
|
|
92
|
+
SearchInput: DropdownSearchInput
|
|
78
93
|
});
|
|
79
94
|
export {
|
|
80
95
|
Dropdown as default
|
|
@@ -16,9 +16,14 @@ 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;
|
|
19
24
|
}
|
|
20
25
|
declare const DropdownCheckboxItem: {
|
|
21
|
-
({ children, value, model, onChange, }: DropdownCheckboxItem): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
({ children, value, model, onChange, searchValue, }: DropdownCheckboxItem): import("react/jsx-runtime").JSX.Element;
|
|
22
27
|
displayName: string;
|
|
23
28
|
};
|
|
24
29
|
export default DropdownCheckboxItem;
|
|
@@ -1,33 +1,38 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useId } from "react";
|
|
3
2
|
import clsx from "clsx";
|
|
4
3
|
import { useDropdownContext } from "./DropdownContext.js";
|
|
4
|
+
import { useDropdownItemFilter } from "./useDropdownItemFilter.js";
|
|
5
|
+
import DropdownItemHidden from "./DropdownItemHidden.js";
|
|
5
6
|
import Checkbox from "../Checkbox/Checkbox.js";
|
|
6
7
|
const DropdownCheckboxItem = ({
|
|
7
8
|
children,
|
|
8
9
|
value,
|
|
9
10
|
model,
|
|
10
|
-
onChange
|
|
11
|
+
onChange,
|
|
12
|
+
searchValue
|
|
11
13
|
}) => {
|
|
12
14
|
const {
|
|
13
15
|
itemProps,
|
|
14
16
|
itemRefs,
|
|
15
17
|
isFocused
|
|
16
18
|
} = useDropdownContext(), {
|
|
19
|
+
id,
|
|
20
|
+
isFiltered
|
|
21
|
+
} = useDropdownItemFilter(searchValue), {
|
|
17
22
|
onMenuItemKeyDown,
|
|
18
23
|
onMenuItemMouseEnter
|
|
19
|
-
} = itemProps,
|
|
24
|
+
} = itemProps, checked = model.includes(value), checkboxProps = {
|
|
20
25
|
value,
|
|
21
26
|
model,
|
|
22
27
|
checked,
|
|
23
28
|
readOnly: !0
|
|
24
29
|
}, dropdownCheckboxItem = clsx("dropdown-item c-pointer", {
|
|
25
30
|
focus: isFocused === id
|
|
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: [
|
|
31
|
+
}), content = /* @__PURE__ */ jsxs("div", { className: "d-flex gap-8 align-items-center justify-content-between position-relative", children: [
|
|
28
32
|
children,
|
|
29
33
|
/* @__PURE__ */ jsx(Checkbox, { ...checkboxProps })
|
|
30
|
-
] })
|
|
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 });
|
|
31
36
|
};
|
|
32
37
|
export {
|
|
33
38
|
DropdownCheckboxItem as default
|
|
@@ -2,6 +2,11 @@ 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;
|
|
5
10
|
}
|
|
6
11
|
export declare const DropdownContext: import('react').Context<DropdownContextProps | null>;
|
|
7
12
|
export declare const useDropdownContext: () => DropdownContextProps;
|
|
@@ -29,9 +29,14 @@ 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;
|
|
32
37
|
}
|
|
33
38
|
declare const DropdownItem: {
|
|
34
|
-
({ type, icon, onClick, children, className, minWidth, disabled, ...restProps }: DropdownItemProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
({ type, icon, onClick, children, className, minWidth, disabled, searchValue, ...restProps }: DropdownItemProps): import("react/jsx-runtime").JSX.Element;
|
|
35
40
|
displayName: string;
|
|
36
41
|
};
|
|
37
42
|
export default DropdownItem;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useId } from "react";
|
|
3
2
|
import clsx from "clsx";
|
|
4
3
|
import { useDropdownContext } from "./DropdownContext.js";
|
|
4
|
+
import { useDropdownItemFilter } from "./useDropdownItemFilter.js";
|
|
5
|
+
import DropdownItemHidden from "./DropdownItemHidden.js";
|
|
5
6
|
const DropdownItem = ({
|
|
6
7
|
type = "action",
|
|
7
8
|
icon,
|
|
@@ -10,6 +11,7 @@ const DropdownItem = ({
|
|
|
10
11
|
className,
|
|
11
12
|
minWidth,
|
|
12
13
|
disabled,
|
|
14
|
+
searchValue,
|
|
13
15
|
...restProps
|
|
14
16
|
}) => {
|
|
15
17
|
const {
|
|
@@ -17,12 +19,15 @@ const DropdownItem = ({
|
|
|
17
19
|
itemRefs,
|
|
18
20
|
isFocused
|
|
19
21
|
} = useDropdownContext(), {
|
|
22
|
+
id,
|
|
23
|
+
isFiltered
|
|
24
|
+
} = useDropdownItemFilter(searchValue), {
|
|
20
25
|
onMenuItemKeyDown,
|
|
21
26
|
onMenuItemMouseEnter,
|
|
22
27
|
onMenuItemClick
|
|
23
28
|
} = itemProps, handleOnClick = (event) => {
|
|
24
29
|
disabled || (onClick == null || onClick(event), type === "action" && (onMenuItemClick(), event.stopPropagation()));
|
|
25
|
-
},
|
|
30
|
+
}, dropdownItem = clsx("dropdown-item", {
|
|
26
31
|
focus: isFocused === id
|
|
27
32
|
}, {
|
|
28
33
|
"text-gray-600": disabled
|
|
@@ -30,11 +35,11 @@ const DropdownItem = ({
|
|
|
30
35
|
...minWidth && {
|
|
31
36
|
minWidth: `${minWidth}px`
|
|
32
37
|
}
|
|
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: [
|
|
38
|
+
}, content = /* @__PURE__ */ jsxs("div", { className: "d-flex gap-8 align-items-center", children: [
|
|
35
39
|
icon,
|
|
36
40
|
children
|
|
37
|
-
] })
|
|
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 });
|
|
38
43
|
};
|
|
39
44
|
export {
|
|
40
45
|
DropdownItem as default
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface DropdownItemHiddenProps {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
/**
|
|
5
|
+
* When true, collapses height to 0 while keeping the item in the flow.
|
|
6
|
+
* Use this when the container width must stay stable during search filtering.
|
|
7
|
+
* Defaults to false (display: none).
|
|
8
|
+
*/
|
|
9
|
+
collapse?: boolean;
|
|
10
|
+
}
|
|
11
|
+
declare const DropdownItemHidden: ({ children, collapse, }: DropdownItemHiddenProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export default DropdownItemHidden;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
const DropdownItemHidden = ({
|
|
3
|
+
children,
|
|
4
|
+
collapse
|
|
5
|
+
}) => /* @__PURE__ */ jsx("div", { "aria-hidden": "true", style: collapse ? {
|
|
6
|
+
height: 0,
|
|
7
|
+
overflow: "hidden",
|
|
8
|
+
margin: 0,
|
|
9
|
+
pointerEvents: "none",
|
|
10
|
+
width: "100%",
|
|
11
|
+
maxWidth: "max-content"
|
|
12
|
+
} : {
|
|
13
|
+
display: "none",
|
|
14
|
+
width: "100%",
|
|
15
|
+
maxWidth: "max-content"
|
|
16
|
+
}, children });
|
|
17
|
+
export {
|
|
18
|
+
DropdownItemHidden as default
|
|
19
|
+
};
|
|
@@ -16,9 +16,14 @@ 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;
|
|
19
24
|
}
|
|
20
25
|
declare const DropdownRadioItem: {
|
|
21
|
-
({ children, value, model, onChange, }: DropdownRadioItemProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
({ children, value, model, onChange, searchValue, }: DropdownRadioItemProps): import("react/jsx-runtime").JSX.Element;
|
|
22
27
|
displayName: string;
|
|
23
28
|
};
|
|
24
29
|
export default DropdownRadioItem;
|
|
@@ -1,33 +1,38 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useId } from "react";
|
|
3
2
|
import clsx from "clsx";
|
|
4
3
|
import { useDropdownContext } from "./DropdownContext.js";
|
|
4
|
+
import { useDropdownItemFilter } from "./useDropdownItemFilter.js";
|
|
5
|
+
import DropdownItemHidden from "./DropdownItemHidden.js";
|
|
5
6
|
import Radio from "../Radio/Radio.js";
|
|
6
7
|
const DropdownRadioItem = ({
|
|
7
8
|
children,
|
|
8
9
|
value,
|
|
9
10
|
model,
|
|
10
|
-
onChange
|
|
11
|
+
onChange,
|
|
12
|
+
searchValue
|
|
11
13
|
}) => {
|
|
12
14
|
const {
|
|
13
15
|
itemProps,
|
|
14
16
|
itemRefs,
|
|
15
17
|
isFocused
|
|
16
18
|
} = useDropdownContext(), {
|
|
19
|
+
id,
|
|
20
|
+
isFiltered
|
|
21
|
+
} = useDropdownItemFilter(searchValue), {
|
|
17
22
|
onMenuItemKeyDown,
|
|
18
23
|
onMenuItemMouseEnter
|
|
19
|
-
} = itemProps,
|
|
24
|
+
} = itemProps, radioProps = {
|
|
20
25
|
value,
|
|
21
26
|
model,
|
|
22
27
|
checked: value === model,
|
|
23
28
|
readOnly: !0
|
|
24
29
|
}, dropdownRadioItem = clsx("dropdown-item c-pointer", {
|
|
25
30
|
focus: isFocused === id
|
|
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: [
|
|
31
|
+
}), content = /* @__PURE__ */ jsxs("div", { className: "d-flex gap-8 align-items-center justify-content-between position-relative", children: [
|
|
28
32
|
children,
|
|
29
33
|
/* @__PURE__ */ jsx(Radio, { ...radioProps, className: "position-absolute start-0 end-0 top-0 bottom-0 opacity-0" })
|
|
30
|
-
] })
|
|
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 });
|
|
31
36
|
};
|
|
32
37
|
export {
|
|
33
38
|
DropdownRadioItem as default
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface DropdownSearchInputProps {
|
|
2
|
+
/**
|
|
3
|
+
* Placeholder text for the search input
|
|
4
|
+
*/
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Label shown when no items match the search query
|
|
8
|
+
*/
|
|
9
|
+
noResultsLabel?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Called whenever the search query changes.
|
|
12
|
+
* Useful to track the current query outside the Dropdown context.
|
|
13
|
+
*/
|
|
14
|
+
onSearch?: (query: string) => void;
|
|
15
|
+
}
|
|
16
|
+
declare const DropdownSearchInput: {
|
|
17
|
+
({ placeholder, noResultsLabel, onSearch, }: DropdownSearchInputProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
displayName: string;
|
|
19
|
+
};
|
|
20
|
+
export default DropdownSearchInput;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useDropdownContext } from "./DropdownContext.js";
|
|
3
|
+
import SearchBar from "../SearchBar/SearchBar.js";
|
|
4
|
+
const DropdownSearchInput = ({
|
|
5
|
+
placeholder = "Rechercher...",
|
|
6
|
+
noResultsLabel = "Pas de résultat",
|
|
7
|
+
onSearch
|
|
8
|
+
}) => {
|
|
9
|
+
const {
|
|
10
|
+
searchQuery,
|
|
11
|
+
setSearchQuery,
|
|
12
|
+
hasMatches
|
|
13
|
+
} = useDropdownContext();
|
|
14
|
+
return /* @__PURE__ */ jsxs("div", { className: "px-8 pb-8", children: [
|
|
15
|
+
/* @__PURE__ */ jsx(SearchBar, { isVariant: !0, clearable: !0, size: "md", placeholder, value: searchQuery, onChange: (e) => {
|
|
16
|
+
setSearchQuery(e.target.value), onSearch == null || onSearch(e.target.value);
|
|
17
|
+
}, onKeyDown: (e) => {
|
|
18
|
+
["ArrowUp", "ArrowDown", "Enter", " "].includes(e.key) && e.stopPropagation();
|
|
19
|
+
} }),
|
|
20
|
+
searchQuery && !hasMatches && /* @__PURE__ */ jsx("p", { className: "body-2 text-gray-700 text-center mt-8 mb-0", children: noResultsLabel })
|
|
21
|
+
] });
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
DropdownSearchInput as default
|
|
25
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared filtering logic for Dropdown item components.
|
|
3
|
+
* Computes whether the item is hidden by the current search query,
|
|
4
|
+
* and keeps the match registry in sync via reportMatch/unregisterMatch.
|
|
5
|
+
*
|
|
6
|
+
* @returns `id` – stable element id to spread on the DOM node and itemRefs
|
|
7
|
+
* @returns `isFiltered` – true when the item should be hidden
|
|
8
|
+
*/
|
|
9
|
+
export declare const useDropdownItemFilter: (searchValue: string | undefined) => {
|
|
10
|
+
id: string;
|
|
11
|
+
isFiltered: boolean;
|
|
12
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useId, useLayoutEffect } from "react";
|
|
2
|
+
import { useDropdownContext } from "./DropdownContext.js";
|
|
3
|
+
const useDropdownItemFilter = (searchValue) => {
|
|
4
|
+
const {
|
|
5
|
+
searchQuery,
|
|
6
|
+
reportMatch,
|
|
7
|
+
unregisterMatch
|
|
8
|
+
} = useDropdownContext(), id = useId(), isFiltered = searchValue !== void 0 && searchQuery !== "" && !searchValue.toLowerCase().includes(searchQuery.toLowerCase());
|
|
9
|
+
return useLayoutEffect(() => {
|
|
10
|
+
if (searchValue !== void 0)
|
|
11
|
+
return reportMatch(id, !isFiltered), () => unregisterMatch(id);
|
|
12
|
+
}, [id, isFiltered, searchValue, reportMatch, unregisterMatch]), {
|
|
13
|
+
id,
|
|
14
|
+
isFiltered
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
useDropdownItemFilter
|
|
19
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface PaginationProps {
|
|
2
|
+
/** Current page (1-based) */
|
|
3
|
+
current: number;
|
|
4
|
+
/** Total number of items */
|
|
5
|
+
total: number;
|
|
6
|
+
/** Number of items per page */
|
|
7
|
+
pageSize: number;
|
|
8
|
+
/** Called when the page changes */
|
|
9
|
+
onChange: (page: number) => void;
|
|
10
|
+
/** Optional class for styling purpose */
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Pagination component for navigating through pages of results.
|
|
15
|
+
* Wraps antd Pagination with a simplified, stable API.
|
|
16
|
+
*/
|
|
17
|
+
export declare function Pagination({ current, total, pageSize, onChange, className, }: PaginationProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Pagination as Pagination$1 } from "antd";
|
|
3
|
+
function Pagination({
|
|
4
|
+
current,
|
|
5
|
+
total,
|
|
6
|
+
pageSize,
|
|
7
|
+
onChange,
|
|
8
|
+
className
|
|
9
|
+
}) {
|
|
10
|
+
return /* @__PURE__ */ jsx(Pagination$1, { align: "center", showSizeChanger: !1, current, total, pageSize, onChange, className });
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
Pagination
|
|
14
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Pagination';
|
|
@@ -47,17 +47,16 @@ const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
}, [activeIndex]);
|
|
50
|
-
const nextItem = () => {
|
|
51
|
-
const
|
|
52
|
-
setActiveIndex((prevIndex) => (prevIndex + 1) %
|
|
50
|
+
const visibleItemCount = () => Object.values(itemRefs.current).filter(Boolean).length, nextItem = () => {
|
|
51
|
+
const count = visibleItemCount();
|
|
52
|
+
setActiveIndex((prevIndex) => (prevIndex + 1) % count);
|
|
53
53
|
}, previousItem = () => {
|
|
54
|
-
const
|
|
55
|
-
setActiveIndex((prevIndex) => (prevIndex - 1 +
|
|
54
|
+
const count = visibleItemCount();
|
|
55
|
+
setActiveIndex((prevIndex) => (prevIndex - 1 + count) % count);
|
|
56
56
|
}, firstItem = () => {
|
|
57
57
|
setActiveIndex(0);
|
|
58
58
|
}, lastItem = () => {
|
|
59
|
-
|
|
60
|
-
setActiveIndex(itemCount - 1);
|
|
59
|
+
setActiveIndex(visibleItemCount() - 1);
|
|
61
60
|
}, openDropdown = useCallback(() => {
|
|
62
61
|
setVisible(!0);
|
|
63
62
|
}, []), closeDropdown = useCallback(() => {
|
|
@@ -90,7 +89,7 @@ const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !
|
|
|
90
89
|
extraTriggerKeyDownHandler == null || extraTriggerKeyDownHandler(event), stopEvents(flag, event);
|
|
91
90
|
}, [closeDropdown, openDropdown]), onMenuItemMouseEnter = (event) => {
|
|
92
91
|
if (focusOnMouseEnter) {
|
|
93
|
-
const index = Object.values(itemRefs.current).findIndex((item) => item.id === event.currentTarget.getAttribute("id"));
|
|
92
|
+
const index = Object.values(itemRefs.current).filter((item) => !!item).findIndex((item) => item.id === event.currentTarget.getAttribute("id"));
|
|
94
93
|
setActiveIndex(index);
|
|
95
94
|
}
|
|
96
95
|
}, onMenuItemKeyDown = useCallback((event, onSuccess) => {
|
package/dist/icons-apps.js
CHANGED
|
@@ -57,73 +57,74 @@ import { default as default57 } from "./modules/icons/components/apps/IconLeSite
|
|
|
57
57
|
import { default as default58 } from "./modules/icons/components/apps/IconLemonde.js";
|
|
58
58
|
import { default as default59 } from "./modules/icons/components/apps/IconLesechos.js";
|
|
59
59
|
import { default as default60 } from "./modules/icons/components/apps/IconLibrary.js";
|
|
60
|
-
import { default as default61 } from "./modules/icons/components/apps/
|
|
61
|
-
import { default as default62 } from "./modules/icons/components/apps/
|
|
62
|
-
import { default as default63 } from "./modules/icons/components/apps/
|
|
63
|
-
import { default as default64 } from "./modules/icons/components/apps/
|
|
64
|
-
import { default as default65 } from "./modules/icons/components/apps/
|
|
65
|
-
import { default as default66 } from "./modules/icons/components/apps/
|
|
66
|
-
import { default as default67 } from "./modules/icons/components/apps/
|
|
67
|
-
import { default as default68 } from "./modules/icons/components/apps/
|
|
68
|
-
import { default as default69 } from "./modules/icons/components/apps/
|
|
69
|
-
import { default as default70 } from "./modules/icons/components/apps/
|
|
70
|
-
import { default as default71 } from "./modules/icons/components/apps/
|
|
71
|
-
import { default as default72 } from "./modules/icons/components/apps/
|
|
72
|
-
import { default as default73 } from "./modules/icons/components/apps/
|
|
73
|
-
import { default as default74 } from "./modules/icons/components/apps/
|
|
74
|
-
import { default as default75 } from "./modules/icons/components/apps/
|
|
75
|
-
import { default as default76 } from "./modules/icons/components/apps/
|
|
76
|
-
import { default as default77 } from "./modules/icons/components/apps/
|
|
77
|
-
import { default as default78 } from "./modules/icons/components/apps/
|
|
78
|
-
import { default as default79 } from "./modules/icons/components/apps/
|
|
79
|
-
import { default as default80 } from "./modules/icons/components/apps/
|
|
80
|
-
import { default as default81 } from "./modules/icons/components/apps/
|
|
81
|
-
import { default as default82 } from "./modules/icons/components/apps/
|
|
82
|
-
import { default as default83 } from "./modules/icons/components/apps/
|
|
83
|
-
import { default as default84 } from "./modules/icons/components/apps/
|
|
84
|
-
import { default as default85 } from "./modules/icons/components/apps/
|
|
85
|
-
import { default as default86 } from "./modules/icons/components/apps/
|
|
86
|
-
import { default as default87 } from "./modules/icons/components/apps/
|
|
87
|
-
import { default as default88 } from "./modules/icons/components/apps/
|
|
88
|
-
import { default as default89 } from "./modules/icons/components/apps/
|
|
89
|
-
import { default as default90 } from "./modules/icons/components/apps/
|
|
90
|
-
import { default as default91 } from "./modules/icons/components/apps/
|
|
91
|
-
import { default as default92 } from "./modules/icons/components/apps/
|
|
92
|
-
import { default as default93 } from "./modules/icons/components/apps/
|
|
93
|
-
import { default as default94 } from "./modules/icons/components/apps/
|
|
94
|
-
import { default as default95 } from "./modules/icons/components/apps/
|
|
95
|
-
import { default as default96 } from "./modules/icons/components/apps/
|
|
96
|
-
import { default as default97 } from "./modules/icons/components/apps/
|
|
97
|
-
import { default as default98 } from "./modules/icons/components/apps/
|
|
98
|
-
import { default as default99 } from "./modules/icons/components/apps/
|
|
99
|
-
import { default as default100 } from "./modules/icons/components/apps/
|
|
100
|
-
import { default as default101 } from "./modules/icons/components/apps/
|
|
101
|
-
import { default as default102 } from "./modules/icons/components/apps/
|
|
102
|
-
import { default as default103 } from "./modules/icons/components/apps/
|
|
103
|
-
import { default as default104 } from "./modules/icons/components/apps/
|
|
104
|
-
import { default as default105 } from "./modules/icons/components/apps/
|
|
105
|
-
import { default as default106 } from "./modules/icons/components/apps/
|
|
106
|
-
import { default as default107 } from "./modules/icons/components/apps/
|
|
107
|
-
import { default as default108 } from "./modules/icons/components/apps/
|
|
108
|
-
import { default as default109 } from "./modules/icons/components/apps/
|
|
109
|
-
import { default as default110 } from "./modules/icons/components/apps/
|
|
110
|
-
import { default as default111 } from "./modules/icons/components/apps/
|
|
111
|
-
import { default as default112 } from "./modules/icons/components/apps/
|
|
112
|
-
import { default as default113 } from "./modules/icons/components/apps/
|
|
113
|
-
import { default as default114 } from "./modules/icons/components/apps/
|
|
114
|
-
import { default as default115 } from "./modules/icons/components/apps/
|
|
115
|
-
import { default as default116 } from "./modules/icons/components/apps/
|
|
116
|
-
import { default as default117 } from "./modules/icons/components/apps/
|
|
117
|
-
import { default as default118 } from "./modules/icons/components/apps/
|
|
118
|
-
import { default as default119 } from "./modules/icons/components/apps/
|
|
119
|
-
import { default as default120 } from "./modules/icons/components/apps/
|
|
120
|
-
import { default as default121 } from "./modules/icons/components/apps/
|
|
121
|
-
import { default as default122 } from "./modules/icons/components/apps/
|
|
122
|
-
import { default as default123 } from "./modules/icons/components/apps/
|
|
123
|
-
import { default as default124 } from "./modules/icons/components/apps/
|
|
124
|
-
import { default as default125 } from "./modules/icons/components/apps/
|
|
125
|
-
import { default as default126 } from "./modules/icons/components/apps/
|
|
126
|
-
import { default as default127 } from "./modules/icons/components/apps/
|
|
60
|
+
import { default as default61 } from "./modules/icons/components/apps/IconLivretScolaire.js";
|
|
61
|
+
import { default as default62 } from "./modules/icons/components/apps/IconLool.js";
|
|
62
|
+
import { default as default63 } from "./modules/icons/components/apps/IconLsu.js";
|
|
63
|
+
import { default as default64 } from "./modules/icons/components/apps/IconMadmagz.js";
|
|
64
|
+
import { default as default65 } from "./modules/icons/components/apps/IconMagneto.js";
|
|
65
|
+
import { default as default66 } from "./modules/icons/components/apps/IconMatholycee.js";
|
|
66
|
+
import { default as default67 } from "./modules/icons/components/apps/IconMaxicours.js";
|
|
67
|
+
import { default as default68 } from "./modules/icons/components/apps/IconMediacentre.js";
|
|
68
|
+
import { default as default69 } from "./modules/icons/components/apps/IconMindmap.js";
|
|
69
|
+
import { default as default70 } from "./modules/icons/components/apps/IconMinetest.js";
|
|
70
|
+
import { default as default71 } from "./modules/icons/components/apps/IconMinibadge.js";
|
|
71
|
+
import { default as default72 } from "./modules/icons/components/apps/IconMonorientationenligne.js";
|
|
72
|
+
import { default as default73 } from "./modules/icons/components/apps/IconMonstageenligne.js";
|
|
73
|
+
import { default as default74 } from "./modules/icons/components/apps/IconMoodle.js";
|
|
74
|
+
import { default as default75 } from "./modules/icons/components/apps/IconMuseefrancaisphoto.js";
|
|
75
|
+
import { default as default76 } from "./modules/icons/components/apps/IconMyNetwork.js";
|
|
76
|
+
import { default as default77 } from "./modules/icons/components/apps/IconNabook.js";
|
|
77
|
+
import { default as default78 } from "./modules/icons/components/apps/IconNetvibes.js";
|
|
78
|
+
import { default as default79 } from "./modules/icons/components/apps/IconNote.js";
|
|
79
|
+
import { default as default80 } from "./modules/icons/components/apps/IconNotebook.js";
|
|
80
|
+
import { default as default81 } from "./modules/icons/components/apps/IconNotes.js";
|
|
81
|
+
import { default as default82 } from "./modules/icons/components/apps/IconOnisep.js";
|
|
82
|
+
import { default as default83 } from "./modules/icons/components/apps/IconOnisep2.js";
|
|
83
|
+
import { default as default84 } from "./modules/icons/components/apps/IconPad.js";
|
|
84
|
+
import { default as default85 } from "./modules/icons/components/apps/IconPages.js";
|
|
85
|
+
import { default as default86 } from "./modules/icons/components/apps/IconParametrage.js";
|
|
86
|
+
import { default as default87 } from "./modules/icons/components/apps/IconParametrages.js";
|
|
87
|
+
import { default as default88 } from "./modules/icons/components/apps/IconParaschool.js";
|
|
88
|
+
import { default as default89 } from "./modules/icons/components/apps/IconParcours.js";
|
|
89
|
+
import { default as default90 } from "./modules/icons/components/apps/IconPearltrees.js";
|
|
90
|
+
import { default as default91 } from "./modules/icons/components/apps/IconPicardieCursus.js";
|
|
91
|
+
import { default as default92 } from "./modules/icons/components/apps/IconPlaceholder.js";
|
|
92
|
+
import { default as default93 } from "./modules/icons/components/apps/IconPoll.js";
|
|
93
|
+
import { default as default94 } from "./modules/icons/components/apps/IconPresences.js";
|
|
94
|
+
import { default as default95 } from "./modules/icons/components/apps/IconProeps.js";
|
|
95
|
+
import { default as default96 } from "./modules/icons/components/apps/IconPronote.js";
|
|
96
|
+
import { default as default97 } from "./modules/icons/components/apps/IconPublic.js";
|
|
97
|
+
import { default as default98 } from "./modules/icons/components/apps/IconQwantJunior.js";
|
|
98
|
+
import { default as default99 } from "./modules/icons/components/apps/IconQwant.js";
|
|
99
|
+
import { default as default100 } from "./modules/icons/components/apps/IconRack.js";
|
|
100
|
+
import { default as default101 } from "./modules/icons/components/apps/IconRbs.js";
|
|
101
|
+
import { default as default102 } from "./modules/icons/components/apps/IconResidenceArtiste.js";
|
|
102
|
+
import { default as default103 } from "./modules/icons/components/apps/IconRessourcesdepartementale91.js";
|
|
103
|
+
import { default as default104 } from "./modules/icons/components/apps/IconSacoche.js";
|
|
104
|
+
import { default as default105 } from "./modules/icons/components/apps/IconSchoolbook.js";
|
|
105
|
+
import { default as default106 } from "./modules/icons/components/apps/IconScolinfo.js";
|
|
106
|
+
import { default as default107 } from "./modules/icons/components/apps/IconScrapbook.js";
|
|
107
|
+
import { default as default108 } from "./modules/icons/components/apps/IconSearchengine.js";
|
|
108
|
+
import { default as default109 } from "./modules/icons/components/apps/IconSettingsClass.js";
|
|
109
|
+
import { default as default110 } from "./modules/icons/components/apps/IconSharebigfiles.js";
|
|
110
|
+
import { default as default111 } from "./modules/icons/components/apps/IconStatistics.js";
|
|
111
|
+
import { default as default112 } from "./modules/icons/components/apps/IconStats.js";
|
|
112
|
+
import { default as default113 } from "./modules/icons/components/apps/IconSuitcase.js";
|
|
113
|
+
import { default as default114 } from "./modules/icons/components/apps/IconSupport.js";
|
|
114
|
+
import { default as default115 } from "./modules/icons/components/apps/IconTimeline.js";
|
|
115
|
+
import { default as default116 } from "./modules/icons/components/apps/IconTimelinegenerator.js";
|
|
116
|
+
import { default as default117 } from "./modules/icons/components/apps/IconTurboself.js";
|
|
117
|
+
import { default as default118 } from "./modules/icons/components/apps/IconUniversalis.js";
|
|
118
|
+
import { default as default119 } from "./modules/icons/components/apps/IconUnstagepourtous.js";
|
|
119
|
+
import { default as default120 } from "./modules/icons/components/apps/IconUserbook.js";
|
|
120
|
+
import { default as default121 } from "./modules/icons/components/apps/IconVideo.js";
|
|
121
|
+
import { default as default122 } from "./modules/icons/components/apps/IconVieScolaire.js";
|
|
122
|
+
import { default as default123 } from "./modules/icons/components/apps/IconVisioconf.js";
|
|
123
|
+
import { default as default124 } from "./modules/icons/components/apps/IconVotil.js";
|
|
124
|
+
import { default as default125 } from "./modules/icons/components/apps/IconWebclasseur.js";
|
|
125
|
+
import { default as default126 } from "./modules/icons/components/apps/IconWebsite.js";
|
|
126
|
+
import { default as default127 } from "./modules/icons/components/apps/IconWiki.js";
|
|
127
|
+
import { default as default128 } from "./modules/icons/components/apps/IconWorkspace.js";
|
|
127
128
|
export {
|
|
128
129
|
default2 as IconAccount,
|
|
129
130
|
default3 as IconActualites,
|
|
@@ -184,71 +185,72 @@ export {
|
|
|
184
185
|
default58 as IconLemonde,
|
|
185
186
|
default59 as IconLesechos,
|
|
186
187
|
default60 as IconLibrary,
|
|
187
|
-
default61 as
|
|
188
|
-
default62 as
|
|
189
|
-
default63 as
|
|
190
|
-
default64 as
|
|
191
|
-
default65 as
|
|
192
|
-
default66 as
|
|
193
|
-
default67 as
|
|
194
|
-
default68 as
|
|
195
|
-
default69 as
|
|
196
|
-
default70 as
|
|
197
|
-
default71 as
|
|
198
|
-
default72 as
|
|
199
|
-
default73 as
|
|
200
|
-
default74 as
|
|
201
|
-
default75 as
|
|
202
|
-
default76 as
|
|
203
|
-
default77 as
|
|
204
|
-
default78 as
|
|
205
|
-
default79 as
|
|
206
|
-
default80 as
|
|
207
|
-
default81 as
|
|
208
|
-
default82 as
|
|
209
|
-
default83 as
|
|
210
|
-
default84 as
|
|
211
|
-
default85 as
|
|
212
|
-
default86 as
|
|
213
|
-
default87 as
|
|
214
|
-
default88 as
|
|
215
|
-
default89 as
|
|
216
|
-
default90 as
|
|
217
|
-
default91 as
|
|
218
|
-
default92 as
|
|
219
|
-
default93 as
|
|
220
|
-
default94 as
|
|
221
|
-
default95 as
|
|
222
|
-
default96 as
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
default100 as
|
|
227
|
-
default101 as
|
|
228
|
-
default102 as
|
|
229
|
-
default103 as
|
|
230
|
-
default104 as
|
|
231
|
-
default105 as
|
|
232
|
-
default106 as
|
|
233
|
-
default107 as
|
|
234
|
-
default108 as
|
|
235
|
-
default109 as
|
|
236
|
-
default110 as
|
|
237
|
-
default111 as
|
|
238
|
-
default112 as
|
|
239
|
-
default113 as
|
|
240
|
-
default114 as
|
|
241
|
-
default115 as
|
|
242
|
-
default116 as
|
|
243
|
-
default117 as
|
|
244
|
-
default118 as
|
|
245
|
-
default119 as
|
|
246
|
-
default120 as
|
|
247
|
-
default121 as
|
|
248
|
-
default122 as
|
|
249
|
-
default123 as
|
|
250
|
-
default124 as
|
|
251
|
-
default125 as
|
|
252
|
-
default126 as
|
|
253
|
-
default127 as
|
|
188
|
+
default61 as IconLivretScolaire,
|
|
189
|
+
default62 as IconLool,
|
|
190
|
+
default63 as IconLsu,
|
|
191
|
+
default64 as IconMadmagz,
|
|
192
|
+
default65 as IconMagneto,
|
|
193
|
+
default66 as IconMatholycee,
|
|
194
|
+
default67 as IconMaxicours,
|
|
195
|
+
default68 as IconMediacentre,
|
|
196
|
+
default69 as IconMindmap,
|
|
197
|
+
default70 as IconMinetest,
|
|
198
|
+
default71 as IconMinibadge,
|
|
199
|
+
default72 as IconMonorientationenligne,
|
|
200
|
+
default73 as IconMonstageenligne,
|
|
201
|
+
default74 as IconMoodle,
|
|
202
|
+
default75 as IconMuseefrancaisphoto,
|
|
203
|
+
default76 as IconMyNetwork,
|
|
204
|
+
default77 as IconNabook,
|
|
205
|
+
default78 as IconNetvibes,
|
|
206
|
+
default79 as IconNote,
|
|
207
|
+
default80 as IconNotebook,
|
|
208
|
+
default81 as IconNotes,
|
|
209
|
+
default82 as IconOnisep,
|
|
210
|
+
default83 as IconOnisep2,
|
|
211
|
+
default84 as IconPad,
|
|
212
|
+
default85 as IconPages,
|
|
213
|
+
default86 as IconParametrage,
|
|
214
|
+
default87 as IconParametrages,
|
|
215
|
+
default88 as IconParaschool,
|
|
216
|
+
default89 as IconParcours,
|
|
217
|
+
default90 as IconPearltrees,
|
|
218
|
+
default91 as IconPicardieCursus,
|
|
219
|
+
default92 as IconPlaceholder,
|
|
220
|
+
default93 as IconPoll,
|
|
221
|
+
default94 as IconPresences,
|
|
222
|
+
default95 as IconProeps,
|
|
223
|
+
default96 as IconPronote,
|
|
224
|
+
default97 as IconPublic,
|
|
225
|
+
default99 as IconQwant,
|
|
226
|
+
default98 as IconQwantJunior,
|
|
227
|
+
default100 as IconRack,
|
|
228
|
+
default101 as IconRbs,
|
|
229
|
+
default102 as IconResidenceArtiste,
|
|
230
|
+
default103 as IconRessourcesdepartementale91,
|
|
231
|
+
default104 as IconSacoche,
|
|
232
|
+
default105 as IconSchoolbook,
|
|
233
|
+
default106 as IconScolinfo,
|
|
234
|
+
default107 as IconScrapbook,
|
|
235
|
+
default108 as IconSearchengine,
|
|
236
|
+
default109 as IconSettingsClass,
|
|
237
|
+
default110 as IconSharebigfiles,
|
|
238
|
+
default111 as IconStatistics,
|
|
239
|
+
default112 as IconStats,
|
|
240
|
+
default113 as IconSuitcase,
|
|
241
|
+
default114 as IconSupport,
|
|
242
|
+
default115 as IconTimeline,
|
|
243
|
+
default116 as IconTimelinegenerator,
|
|
244
|
+
default117 as IconTurboself,
|
|
245
|
+
default118 as IconUniversalis,
|
|
246
|
+
default119 as IconUnstagepourtous,
|
|
247
|
+
default120 as IconUserbook,
|
|
248
|
+
default121 as IconVideo,
|
|
249
|
+
default122 as IconVieScolaire,
|
|
250
|
+
default123 as IconVisioconf,
|
|
251
|
+
default124 as IconVotil,
|
|
252
|
+
default125 as IconWebclasseur,
|
|
253
|
+
default126 as IconWebsite,
|
|
254
|
+
default127 as IconWiki,
|
|
255
|
+
default128 as IconWorkspace
|
|
254
256
|
};
|
package/dist/index.js
CHANGED
|
@@ -126,6 +126,7 @@ import { Layout } from "./components/Layout/Layout.js";
|
|
|
126
126
|
import { List } from "./components/List/List.js";
|
|
127
127
|
import { Menu } from "./components/Menu/components/Menu.js";
|
|
128
128
|
import { MockedProvider } from "./providers/MockedProvider/MockedProvider.js";
|
|
129
|
+
import { Pagination } from "./components/Pagination/Pagination.js";
|
|
129
130
|
import { Popover, PopoverBody, PopoverFooter, PopoverHeader } from "./components/Popover/Popover.js";
|
|
130
131
|
import { ResourceModal } from "./modules/modals/ResourceModal/ResourceModal.js";
|
|
131
132
|
import { Tabs } from "./components/Tabs/components/Tabs.js";
|
|
@@ -210,6 +211,7 @@ export {
|
|
|
210
211
|
MockedProvider,
|
|
211
212
|
default43 as Modal,
|
|
212
213
|
default44 as OnboardingModal,
|
|
214
|
+
Pagination,
|
|
213
215
|
Popover,
|
|
214
216
|
PopoverBody,
|
|
215
217
|
PopoverFooter,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface SVGRProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
titleId?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgIconLivretScolaire: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgIconLivretScolaire;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
const SvgIconLivretScolaire = ({
|
|
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 50 50", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
|
|
7
|
+
title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
|
|
8
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M19.503 30.62a1.76 1.76 0 0 0-2.489-.035l-1.979 1.926-1.926-1.979a1.76 1.76 0 0 0-2.489-.035 1.763 1.763 0 0 0-.035 2.49l1.926 1.978-1.979 1.926a1.763 1.763 0 0 0-.035 2.489c.343.356.805.532 1.262.532a1.74 1.74 0 0 0 1.227-.497l1.979-1.926 1.926 1.979c.343.356.805.532 1.262.532a1.74 1.74 0 0 0 1.227-.497c.695-.677.712-1.79.035-2.489l-1.926-1.979 1.979-1.926c.695-.677.712-1.79.035-2.489M30.497 19.38c.343.356.805.532 1.262.532a1.74 1.74 0 0 0 1.227-.497l1.979-1.926 1.926 1.979c.343.356.805.532 1.262.532a1.74 1.74 0 0 0 1.227-.497c.695-.677.712-1.79.035-2.489l-1.926-1.979 1.979-1.926c.694-.677.712-1.79.035-2.489a1.76 1.76 0 0 0-2.489-.035l-1.979 1.926-1.926-1.979a1.76 1.76 0 0 0-2.489-.035 1.763 1.763 0 0 0-.035 2.49l1.926 1.978-1.979 1.926a1.763 1.763 0 0 0-.035 2.489" }),
|
|
9
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M44.222 4H5.778C4.796 4 4 4.796 4 5.778v38.444C4 45.204 4.796 46 5.778 46h38.444c.982 0 1.778-.796 1.778-1.778V5.778C46 4.796 45.204 4 44.222 4m-1.778 19.222H26.778V7.556h15.666zM7.556 7.556h15.666v15.666H7.556zm0 19.222h15.666v15.666H7.556zm34.888 15.666H26.778V26.778h15.666z" })
|
|
10
|
+
] });
|
|
11
|
+
export {
|
|
12
|
+
SvgIconLivretScolaire as default
|
|
13
|
+
};
|
|
@@ -57,6 +57,7 @@ export { default as IconLeSiteTv } from './IconLeSiteTv';
|
|
|
57
57
|
export { default as IconLemonde } from './IconLemonde';
|
|
58
58
|
export { default as IconLesechos } from './IconLesechos';
|
|
59
59
|
export { default as IconLibrary } from './IconLibrary';
|
|
60
|
+
export { default as IconLivretScolaire } from './IconLivretScolaire';
|
|
60
61
|
export { default as IconLool } from './IconLool';
|
|
61
62
|
export { default as IconLsu } from './IconLsu';
|
|
62
63
|
export { default as IconMadmagz } from './IconMadmagz';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { default as OnboardingModal } from './OnboardingModal';
|
|
2
|
-
export type { OnboardingModalRef } from './OnboardingModal';
|
|
2
|
+
export type { DisplayRuleCheckResult, OnboardingModalRef, OnboardingProps, } from './OnboardingModal';
|
|
@@ -15,16 +15,14 @@ function drawBlurListener(application, {
|
|
|
15
15
|
const child = application.stage.getChildByName(spriteName), scale = getApplicationScale(application);
|
|
16
16
|
if (child == null) return;
|
|
17
17
|
const newSprite = new PIXI.Sprite(child.texture);
|
|
18
|
-
newSprite.filters = [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Math.min(scale, 1)
|
|
25
|
-
)
|
|
18
|
+
newSprite.filters = [new PIXI.BlurFilter(
|
|
19
|
+
8,
|
|
20
|
+
// PIXI Default value for strength of the blur effect
|
|
21
|
+
4,
|
|
22
|
+
// Quality of the blur effect depending on the scale (4 is the PIXI default value)
|
|
23
|
+
Math.min(scale, 1)
|
|
26
24
|
// Resolution of the blur effect depending on the scale
|
|
27
|
-
], newSprite.width = child.width, newSprite.height = child.height, newSprite.scale = new PIXI.Point(1, 1), newSprite.anchor = child.anchor, newSprite.mask = drawBrush(points, scale), child.addChild(newSprite);
|
|
25
|
+
)], newSprite.width = child.width, newSprite.height = child.height, newSprite.scale = new PIXI.Point(1, 1), newSprite.anchor = child.anchor, newSprite.mask = drawBrush(points, scale), child.addChild(newSprite);
|
|
28
26
|
});
|
|
29
27
|
}
|
|
30
28
|
function drawCursor(application) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edifice.io/react",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.18-develop-b2school.20260504100711",
|
|
4
4
|
"description": "Edifice React Library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -135,9 +135,9 @@
|
|
|
135
135
|
"swiper": "^10.1.0",
|
|
136
136
|
"ua-parser-js": "^1.0.36",
|
|
137
137
|
"react-pdf": "10.2.0",
|
|
138
|
-
"@edifice.io/
|
|
139
|
-
"@edifice.io/
|
|
140
|
-
"@edifice.io/utilities": "2.5.
|
|
138
|
+
"@edifice.io/bootstrap": "2.5.18-develop-b2school.20260504100711",
|
|
139
|
+
"@edifice.io/tiptap-extensions": "2.5.18-develop-b2school.20260504100711",
|
|
140
|
+
"@edifice.io/utilities": "2.5.18-develop-b2school.20260504100711"
|
|
141
141
|
},
|
|
142
142
|
"devDependencies": {
|
|
143
143
|
"@babel/plugin-transform-react-pure-annotations": "^7.23.3",
|
|
@@ -168,8 +168,8 @@
|
|
|
168
168
|
"vite": "^5.4.11",
|
|
169
169
|
"vite-plugin-dts": "^4.1.0",
|
|
170
170
|
"vite-tsconfig-paths": "^5.0.1",
|
|
171
|
-
"@edifice.io/client": "2.5.
|
|
172
|
-
"@edifice.io/config": "2.5.
|
|
171
|
+
"@edifice.io/client": "2.5.18-develop-b2school.20260504100711",
|
|
172
|
+
"@edifice.io/config": "2.5.18-develop-b2school.20260504100711"
|
|
173
173
|
},
|
|
174
174
|
"peerDependencies": {
|
|
175
175
|
"@react-spring/web": "^9.7.5",
|