@edifice.io/react 2.5.17-develop-b2school.20260427101009 → 2.5.17-develop.20260430122259

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 (28) hide show
  1. package/dist/components/Dropdown/Dropdown.d.ts +7 -3
  2. package/dist/components/Dropdown/Dropdown.js +21 -6
  3. package/dist/components/Dropdown/DropdownCheckboxItem.d.ts +6 -1
  4. package/dist/components/Dropdown/DropdownCheckboxItem.js +11 -6
  5. package/dist/components/Dropdown/DropdownContext.d.ts +5 -0
  6. package/dist/components/Dropdown/DropdownItem.d.ts +6 -1
  7. package/dist/components/Dropdown/DropdownItem.js +10 -5
  8. package/dist/components/Dropdown/DropdownItemHidden.d.ts +12 -0
  9. package/dist/components/Dropdown/DropdownItemHidden.js +19 -0
  10. package/dist/components/Dropdown/DropdownRadioItem.d.ts +6 -1
  11. package/dist/components/Dropdown/DropdownRadioItem.js +11 -6
  12. package/dist/components/Dropdown/DropdownSearchInput.d.ts +20 -0
  13. package/dist/components/Dropdown/DropdownSearchInput.js +25 -0
  14. package/dist/components/Dropdown/useDropdownItemFilter.d.ts +12 -0
  15. package/dist/components/Dropdown/useDropdownItemFilter.js +19 -0
  16. package/dist/components/Pagination/Pagination.d.ts +17 -0
  17. package/dist/components/Pagination/Pagination.js +14 -0
  18. package/dist/components/Pagination/index.d.ts +1 -0
  19. package/dist/components/index.d.ts +1 -0
  20. package/dist/hooks/useDropdown/useDropdown.js +7 -8
  21. package/dist/hooks/useZendeskGuide/useZendeskGuide.js +1 -1
  22. package/dist/icons-apps.js +136 -134
  23. package/dist/index.js +2 -0
  24. package/dist/modules/icons/components/apps/IconLivretScolaire.d.ts +7 -0
  25. package/dist/modules/icons/components/apps/IconLivretScolaire.js +13 -0
  26. package/dist/modules/icons/components/apps/index.d.ts +1 -0
  27. package/dist/modules/modals/OnboardingModal/index.d.ts +1 -1
  28. 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
- }), [visible, isFocused, triggerProps, menuProps, itemProps, itemRefs, block, setVisible, openDropdown, closeDropdown]), dropdown = clsx("dropdown", {
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, id = useId(), checked = model.includes(value), checkboxProps = {
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
- }, id = useId(), dropdownItem = clsx("dropdown-item", {
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, id = useId(), radioProps = {
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';
@@ -33,6 +33,7 @@ export * from './Logo';
33
33
  export * from './MediaViewer';
34
34
  export * from './Menu';
35
35
  export * from './Modal';
36
+ export * from './Pagination';
36
37
  export * from './Popover';
37
38
  export * from './PreventPropagation';
38
39
  export * from './PromotionCard';
@@ -47,17 +47,16 @@ const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !
47
47
  }
48
48
  }
49
49
  }, [activeIndex]);
50
- const nextItem = () => {
51
- const itemCount = Object.values(itemRefs.current).length;
52
- setActiveIndex((prevIndex) => (prevIndex + 1) % itemCount);
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 itemCount = Object.values(itemRefs.current).length;
55
- setActiveIndex((prevIndex) => (prevIndex - 1 + itemCount) % itemCount);
54
+ const count = visibleItemCount();
55
+ setActiveIndex((prevIndex) => (prevIndex - 1 + count) % count);
56
56
  }, firstItem = () => {
57
57
  setActiveIndex(0);
58
58
  }, lastItem = () => {
59
- const itemCount = Object.values(itemRefs.current).length;
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) => {
@@ -90,7 +90,7 @@ function useZendeskGuide() {
90
90
  suppress: !0
91
91
  }
92
92
  }
93
- }), window.zE("webWidget", "close"), window.open("/support", "_blank"));
93
+ }), window.zE("webWidget", "close"), window.open("/support/tickets/new", "_blank"));
94
94
  });
95
95
  };
96
96
  }
@@ -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/IconLool.js";
61
- import { default as default62 } from "./modules/icons/components/apps/IconLsu.js";
62
- import { default as default63 } from "./modules/icons/components/apps/IconMadmagz.js";
63
- import { default as default64 } from "./modules/icons/components/apps/IconMagneto.js";
64
- import { default as default65 } from "./modules/icons/components/apps/IconMatholycee.js";
65
- import { default as default66 } from "./modules/icons/components/apps/IconMaxicours.js";
66
- import { default as default67 } from "./modules/icons/components/apps/IconMediacentre.js";
67
- import { default as default68 } from "./modules/icons/components/apps/IconMindmap.js";
68
- import { default as default69 } from "./modules/icons/components/apps/IconMinetest.js";
69
- import { default as default70 } from "./modules/icons/components/apps/IconMinibadge.js";
70
- import { default as default71 } from "./modules/icons/components/apps/IconMonorientationenligne.js";
71
- import { default as default72 } from "./modules/icons/components/apps/IconMonstageenligne.js";
72
- import { default as default73 } from "./modules/icons/components/apps/IconMoodle.js";
73
- import { default as default74 } from "./modules/icons/components/apps/IconMuseefrancaisphoto.js";
74
- import { default as default75 } from "./modules/icons/components/apps/IconMyNetwork.js";
75
- import { default as default76 } from "./modules/icons/components/apps/IconNabook.js";
76
- import { default as default77 } from "./modules/icons/components/apps/IconNetvibes.js";
77
- import { default as default78 } from "./modules/icons/components/apps/IconNote.js";
78
- import { default as default79 } from "./modules/icons/components/apps/IconNotebook.js";
79
- import { default as default80 } from "./modules/icons/components/apps/IconNotes.js";
80
- import { default as default81 } from "./modules/icons/components/apps/IconOnisep.js";
81
- import { default as default82 } from "./modules/icons/components/apps/IconOnisep2.js";
82
- import { default as default83 } from "./modules/icons/components/apps/IconPad.js";
83
- import { default as default84 } from "./modules/icons/components/apps/IconPages.js";
84
- import { default as default85 } from "./modules/icons/components/apps/IconParametrage.js";
85
- import { default as default86 } from "./modules/icons/components/apps/IconParametrages.js";
86
- import { default as default87 } from "./modules/icons/components/apps/IconParaschool.js";
87
- import { default as default88 } from "./modules/icons/components/apps/IconParcours.js";
88
- import { default as default89 } from "./modules/icons/components/apps/IconPearltrees.js";
89
- import { default as default90 } from "./modules/icons/components/apps/IconPicardieCursus.js";
90
- import { default as default91 } from "./modules/icons/components/apps/IconPlaceholder.js";
91
- import { default as default92 } from "./modules/icons/components/apps/IconPoll.js";
92
- import { default as default93 } from "./modules/icons/components/apps/IconPresences.js";
93
- import { default as default94 } from "./modules/icons/components/apps/IconProeps.js";
94
- import { default as default95 } from "./modules/icons/components/apps/IconPronote.js";
95
- import { default as default96 } from "./modules/icons/components/apps/IconPublic.js";
96
- import { default as default97 } from "./modules/icons/components/apps/IconQwantJunior.js";
97
- import { default as default98 } from "./modules/icons/components/apps/IconQwant.js";
98
- import { default as default99 } from "./modules/icons/components/apps/IconRack.js";
99
- import { default as default100 } from "./modules/icons/components/apps/IconRbs.js";
100
- import { default as default101 } from "./modules/icons/components/apps/IconResidenceArtiste.js";
101
- import { default as default102 } from "./modules/icons/components/apps/IconRessourcesdepartementale91.js";
102
- import { default as default103 } from "./modules/icons/components/apps/IconSacoche.js";
103
- import { default as default104 } from "./modules/icons/components/apps/IconSchoolbook.js";
104
- import { default as default105 } from "./modules/icons/components/apps/IconScolinfo.js";
105
- import { default as default106 } from "./modules/icons/components/apps/IconScrapbook.js";
106
- import { default as default107 } from "./modules/icons/components/apps/IconSearchengine.js";
107
- import { default as default108 } from "./modules/icons/components/apps/IconSettingsClass.js";
108
- import { default as default109 } from "./modules/icons/components/apps/IconSharebigfiles.js";
109
- import { default as default110 } from "./modules/icons/components/apps/IconStatistics.js";
110
- import { default as default111 } from "./modules/icons/components/apps/IconStats.js";
111
- import { default as default112 } from "./modules/icons/components/apps/IconSuitcase.js";
112
- import { default as default113 } from "./modules/icons/components/apps/IconSupport.js";
113
- import { default as default114 } from "./modules/icons/components/apps/IconTimeline.js";
114
- import { default as default115 } from "./modules/icons/components/apps/IconTimelinegenerator.js";
115
- import { default as default116 } from "./modules/icons/components/apps/IconTurboself.js";
116
- import { default as default117 } from "./modules/icons/components/apps/IconUniversalis.js";
117
- import { default as default118 } from "./modules/icons/components/apps/IconUnstagepourtous.js";
118
- import { default as default119 } from "./modules/icons/components/apps/IconUserbook.js";
119
- import { default as default120 } from "./modules/icons/components/apps/IconVideo.js";
120
- import { default as default121 } from "./modules/icons/components/apps/IconVieScolaire.js";
121
- import { default as default122 } from "./modules/icons/components/apps/IconVisioconf.js";
122
- import { default as default123 } from "./modules/icons/components/apps/IconVotil.js";
123
- import { default as default124 } from "./modules/icons/components/apps/IconWebclasseur.js";
124
- import { default as default125 } from "./modules/icons/components/apps/IconWebsite.js";
125
- import { default as default126 } from "./modules/icons/components/apps/IconWiki.js";
126
- import { default as default127 } from "./modules/icons/components/apps/IconWorkspace.js";
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 IconLool,
188
- default62 as IconLsu,
189
- default63 as IconMadmagz,
190
- default64 as IconMagneto,
191
- default65 as IconMatholycee,
192
- default66 as IconMaxicours,
193
- default67 as IconMediacentre,
194
- default68 as IconMindmap,
195
- default69 as IconMinetest,
196
- default70 as IconMinibadge,
197
- default71 as IconMonorientationenligne,
198
- default72 as IconMonstageenligne,
199
- default73 as IconMoodle,
200
- default74 as IconMuseefrancaisphoto,
201
- default75 as IconMyNetwork,
202
- default76 as IconNabook,
203
- default77 as IconNetvibes,
204
- default78 as IconNote,
205
- default79 as IconNotebook,
206
- default80 as IconNotes,
207
- default81 as IconOnisep,
208
- default82 as IconOnisep2,
209
- default83 as IconPad,
210
- default84 as IconPages,
211
- default85 as IconParametrage,
212
- default86 as IconParametrages,
213
- default87 as IconParaschool,
214
- default88 as IconParcours,
215
- default89 as IconPearltrees,
216
- default90 as IconPicardieCursus,
217
- default91 as IconPlaceholder,
218
- default92 as IconPoll,
219
- default93 as IconPresences,
220
- default94 as IconProeps,
221
- default95 as IconPronote,
222
- default96 as IconPublic,
223
- default98 as IconQwant,
224
- default97 as IconQwantJunior,
225
- default99 as IconRack,
226
- default100 as IconRbs,
227
- default101 as IconResidenceArtiste,
228
- default102 as IconRessourcesdepartementale91,
229
- default103 as IconSacoche,
230
- default104 as IconSchoolbook,
231
- default105 as IconScolinfo,
232
- default106 as IconScrapbook,
233
- default107 as IconSearchengine,
234
- default108 as IconSettingsClass,
235
- default109 as IconSharebigfiles,
236
- default110 as IconStatistics,
237
- default111 as IconStats,
238
- default112 as IconSuitcase,
239
- default113 as IconSupport,
240
- default114 as IconTimeline,
241
- default115 as IconTimelinegenerator,
242
- default116 as IconTurboself,
243
- default117 as IconUniversalis,
244
- default118 as IconUnstagepourtous,
245
- default119 as IconUserbook,
246
- default120 as IconVideo,
247
- default121 as IconVieScolaire,
248
- default122 as IconVisioconf,
249
- default123 as IconVotil,
250
- default124 as IconWebclasseur,
251
- default125 as IconWebsite,
252
- default126 as IconWiki,
253
- default127 as IconWorkspace
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 { DisplayRuleCheckResult, OnboardingModalRef, OnboardingProps, } from './OnboardingModal';
2
+ export type { OnboardingModalRef } from './OnboardingModal';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edifice.io/react",
3
- "version": "2.5.17-develop-b2school.20260427101009",
3
+ "version": "2.5.17-develop.20260430122259",
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/bootstrap": "2.5.17-develop-b2school.20260427101009",
139
- "@edifice.io/tiptap-extensions": "2.5.17-develop-b2school.20260427101009",
140
- "@edifice.io/utilities": "2.5.17-develop-b2school.20260427101009"
138
+ "@edifice.io/utilities": "2.5.17-develop.20260430122259",
139
+ "@edifice.io/tiptap-extensions": "2.5.17-develop.20260430122259",
140
+ "@edifice.io/bootstrap": "2.5.17-develop.20260430122259"
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.17-develop-b2school.20260427101009",
172
- "@edifice.io/config": "2.5.17-develop-b2school.20260427101009"
171
+ "@edifice.io/client": "2.5.17-develop.20260430122259",
172
+ "@edifice.io/config": "2.5.17-develop.20260430122259"
173
173
  },
174
174
  "peerDependencies": {
175
175
  "@react-spring/web": "^9.7.5",