@edifice.io/react 2.0.1 → 2.0.3-develop-b2school.20250116141052

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.
@@ -5,6 +5,10 @@ export type ListProps<T> = {
5
5
  * Toolbar data items
6
6
  */
7
7
  items?: ToolbarItem[];
8
+ /**
9
+ * Checkable list
10
+ */
11
+ isCheckable?: boolean;
8
12
  /**
9
13
  * Generic data
10
14
  */
@@ -17,7 +21,11 @@ export type ListProps<T> = {
17
21
  * Callback to get selected ids
18
22
  */
19
23
  onSelectedItems?: (selectedIds: string[]) => void;
24
+ /**
25
+ * Custom class name
26
+ */
27
+ className?: string;
20
28
  };
21
29
  export declare const List: <T extends {
22
30
  _id: string;
23
- }>({ items, data, renderNode, onSelectedItems, }: ListProps<T>) => import("react/jsx-runtime").JSX.Element;
31
+ }>({ items, isCheckable, data, renderNode, onSelectedItems, className, }: ListProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -7,9 +7,11 @@ import Checkbox from "../Checkbox/Checkbox.js";
7
7
  import { Toolbar } from "../Toolbar/Toolbar.js";
8
8
  const List = ({
9
9
  items,
10
+ isCheckable = !1,
10
11
  data,
11
12
  renderNode,
12
- onSelectedItems
13
+ onSelectedItems,
14
+ className
13
15
  }) => {
14
16
  const {
15
17
  selectedItems,
@@ -21,11 +23,9 @@ const List = ({
21
23
  return useEffect(() => {
22
24
  selectedItems && (onSelectedItems == null || onSelectedItems(selectedItems));
23
25
  }, [onSelectedItems, selectedItems]), /* @__PURE__ */ jsxs(Fragment, { children: [
24
- items && /* @__PURE__ */ jsxs(Fragment, { children: [
25
- /* @__PURE__ */ jsx("div", { className: clsx("d-flex align-items-center gap-8", {
26
- "px-12": items
27
- }), children: /* @__PURE__ */ jsxs(Fragment, { children: [
28
- /* @__PURE__ */ jsxs("div", { className: "d-flex align-items-center gap-8", children: [
26
+ (items || isCheckable) && /* @__PURE__ */ jsxs(Fragment, { children: [
27
+ /* @__PURE__ */ jsx("div", { className: clsx("list-header d-flex align-items-center gap-8 px-12", className), children: /* @__PURE__ */ jsxs(Fragment, { children: [
28
+ /* @__PURE__ */ jsxs("div", { className: "d-flex align-items-center gap-8 py-12", children: [
29
29
  /* @__PURE__ */ jsx(Checkbox, { checked: allItemsSelected, indeterminate: isIndeterminate, onChange: () => handleOnSelectAllItems(allItemsSelected) }),
30
30
  /* @__PURE__ */ jsxs("span", { children: [
31
31
  "(",
@@ -33,15 +33,15 @@ const List = ({
33
33
  ")"
34
34
  ] })
35
35
  ] }),
36
- /* @__PURE__ */ jsx(Toolbar, { items, isBlock: !0, align: "left", variant: "no-shadow", className: clsx("gap-4 py-4", {
36
+ items && /* @__PURE__ */ jsx(Toolbar, { items, isBlock: !0, align: "left", variant: "no-shadow", className: clsx("gap-4 py-4", {
37
37
  "px-0 ms-auto": !isDesktopDevice
38
38
  }) })
39
39
  ] }) }),
40
40
  /* @__PURE__ */ jsx("div", { className: "border-top" })
41
41
  ] }),
42
42
  /* @__PURE__ */ jsx("div", { className: "mt-8", children: data == null ? void 0 : data.map((node) => {
43
- const checkbox = /* @__PURE__ */ jsx(Checkbox, { checked: selectedItems.includes(node._id), onChange: () => handleOnSelectItem(node._id) }), checked = selectedItems.includes(node._id);
44
- return /* @__PURE__ */ jsx(Fragment$1, { children: renderNode(node, checkbox, checked) }, node._id);
43
+ const checked = selectedItems.includes(node._id);
44
+ return /* @__PURE__ */ jsx(Fragment$1, { children: renderNode(node, /* @__PURE__ */ jsx(Checkbox, { checked, onChange: () => handleOnSelectItem(node._id), onClick: (event) => event.stopPropagation() }), checked) }, node._id);
45
45
  }) })
46
46
  ] });
47
47
  };
@@ -1,6 +1,6 @@
1
1
  import { ChangeEvent } from 'react';
2
2
  import { Size } from '../../types';
3
- export interface BaseProps {
3
+ export interface BaseProps extends Omit<React.ComponentPropsWithoutRef<'input'>, 'size'> {
4
4
  /**
5
5
  * String or Template literal with React i18next namespace
6
6
  */
@@ -24,10 +24,12 @@ const SearchBar = ({
24
24
  "ps-48": isVariant
25
25
  }), handleClick = () => {
26
26
  onClick == null || onClick();
27
+ }, handleKeyDown = (e) => {
28
+ e.key === "Enter" && (e.preventDefault(), handleClick());
27
29
  };
28
30
  return /* @__PURE__ */ jsxs(FormControl, { id: "search-bar", className: searchbar, children: [
29
31
  isVariant && /* @__PURE__ */ jsx("div", { className: "position-absolute z-1 top-50 start-0 translate-middle-y border-0 ps-12 bg-transparent", children: /* @__PURE__ */ jsx(SvgIconSearch, {}) }),
30
- /* @__PURE__ */ jsx(FormControl.Input, { type: "search", placeholder: t(placeholder), size, noValidationIcon: !0, className: input, onChange, disabled, ...restProps }),
32
+ /* @__PURE__ */ jsx(FormControl.Input, { type: "search", placeholder: t(placeholder), size, noValidationIcon: !0, className: input, onChange, disabled, onKeyDown: handleKeyDown, ...restProps }),
31
33
  !isVariant && /* @__PURE__ */ jsx(SearchButton, { type: "submit", "aria-label": t("search"), icon: /* @__PURE__ */ jsx(SvgIconSearch, {}), className: "border-start-0", onClick: handleClick })
32
34
  ] });
33
35
  };
@@ -7,7 +7,7 @@ const useCheckable = (data) => {
7
7
  });
8
8
  }, handleOnSelectAllItems = (deselect) => {
9
9
  setSelectedItems(() => deselect ? [] : (data == null ? void 0 : data.map((item) => item._id)) ?? []);
10
- }, allItemsSelected = (selectedItems == null ? void 0 : selectedItems.length) === (data == null ? void 0 : data.length), isIndeterminate = data ? (selectedItems == null ? void 0 : selectedItems.length) > 0 && (selectedItems == null ? void 0 : selectedItems.length) < (data == null ? void 0 : data.length) : !1;
10
+ }, allItemsSelected = (selectedItems == null ? void 0 : selectedItems.length) === (data == null ? void 0 : data.length) && (data == null ? void 0 : data.length) > 0, isIndeterminate = data ? (selectedItems == null ? void 0 : selectedItems.length) > 0 && (selectedItems == null ? void 0 : selectedItems.length) < (data == null ? void 0 : data.length) : !1;
11
11
  return {
12
12
  selectedItems,
13
13
  allItemsSelected,
package/dist/icons.js CHANGED
@@ -91,62 +91,64 @@ import { default as default91 } from "./modules/icons/components/IconRafterLeft.
91
91
  import { default as default92 } from "./modules/icons/components/IconRafterRight.js";
92
92
  import { default as default93 } from "./modules/icons/components/IconRafterUp.js";
93
93
  import { default as default94 } from "./modules/icons/components/IconReaction.js";
94
- import { default as default95 } from "./modules/icons/components/IconRecordPause.js";
95
- import { default as default96 } from "./modules/icons/components/IconRecordStop.js";
96
- import { default as default97 } from "./modules/icons/components/IconRecordVideo.js";
97
- import { default as default98 } from "./modules/icons/components/IconRecord.js";
98
- import { default as default99 } from "./modules/icons/components/IconRedo.js";
99
- import { default as default100 } from "./modules/icons/components/IconRefresh.js";
100
- import { default as default101 } from "./modules/icons/components/IconReset.js";
101
- import { default as default102 } from "./modules/icons/components/IconRestart.js";
102
- import { default as default103 } from "./modules/icons/components/IconRestore.js";
103
- import { default as default104 } from "./modules/icons/components/IconSave.js";
104
- import { default as default105 } from "./modules/icons/components/IconSearch.js";
105
- import { default as default106 } from "./modules/icons/components/IconSee.js";
106
- import { default as default107 } from "./modules/icons/components/IconSend.js";
107
- import { default as default108 } from "./modules/icons/components/IconSetBackground.js";
108
- import { default as default109 } from "./modules/icons/components/IconSettings.js";
109
- import { default as default110 } from "./modules/icons/components/IconShare.js";
110
- import { default as default111 } from "./modules/icons/components/IconSmartphone.js";
111
- import { default as default112 } from "./modules/icons/components/IconSmiley.js";
112
- import { default as default113 } from "./modules/icons/components/IconSortAscendingLetters.js";
113
- import { default as default114 } from "./modules/icons/components/IconSortDescendingLetters.js";
114
- import { default as default115 } from "./modules/icons/components/IconSortDescending.js";
115
- import { default as default116 } from "./modules/icons/components/IconSortTime.js";
116
- import { default as default117 } from "./modules/icons/components/IconSpeechToText.js";
117
- import { default as default118 } from "./modules/icons/components/IconSplitCells.js";
118
- import { default as default119 } from "./modules/icons/components/IconSquareRoot.js";
119
- import { default as default120 } from "./modules/icons/components/IconSubscript.js";
120
- import { default as default121 } from "./modules/icons/components/IconSuccessFill.js";
121
- import { default as default122 } from "./modules/icons/components/IconSuccessOutline.js";
122
- import { default as default123 } from "./modules/icons/components/IconSuperscript.js";
123
- import { default as default124 } from "./modules/icons/components/IconTable.js";
124
- import { default as default125 } from "./modules/icons/components/IconTextBold.js";
125
- import { default as default126 } from "./modules/icons/components/IconTextColor.js";
126
- import { default as default127 } from "./modules/icons/components/IconTextHighlight.js";
127
- import { default as default128 } from "./modules/icons/components/IconTextItalic.js";
128
- import { default as default129 } from "./modules/icons/components/IconTextPage.js";
129
- import { default as default130 } from "./modules/icons/components/IconTextSize.js";
130
- import { default as default131 } from "./modules/icons/components/IconTextToSpeech.js";
131
- import { default as default132 } from "./modules/icons/components/IconTextTypo.js";
132
- import { default as default133 } from "./modules/icons/components/IconTextUnderline.js";
133
- import { default as default134 } from "./modules/icons/components/IconTextVanilla.js";
134
- import { default as default135 } from "./modules/icons/components/IconTool.js";
135
- import { default as default136 } from "./modules/icons/components/IconTrendingUp.js";
136
- import { default as default137 } from "./modules/icons/components/IconUndo.js";
137
- import { default as default138 } from "./modules/icons/components/IconUnlink.js";
138
- import { default as default139 } from "./modules/icons/components/IconUnlock.js";
139
- import { default as default140 } from "./modules/icons/components/IconUpload.js";
140
- import { default as default141 } from "./modules/icons/components/IconUserSearch.js";
141
- import { default as default142 } from "./modules/icons/components/IconUser.js";
142
- import { default as default143 } from "./modules/icons/components/IconUsers.js";
143
- import { default as default144 } from "./modules/icons/components/IconVideo.js";
144
- import { default as default145 } from "./modules/icons/components/IconViewCalendar.js";
145
- import { default as default146 } from "./modules/icons/components/IconViewList.js";
146
- import { default as default147 } from "./modules/icons/components/IconWand.js";
147
- import { default as default148 } from "./modules/icons/components/IconWrite.js";
148
- import { default as default149 } from "./modules/icons/components/IconZoomIn.js";
149
- import { default as default150 } from "./modules/icons/components/IconZoomOut.js";
94
+ import { default as default95 } from "./modules/icons/components/IconReadMail.js";
95
+ import { default as default96 } from "./modules/icons/components/IconRecordPause.js";
96
+ import { default as default97 } from "./modules/icons/components/IconRecordStop.js";
97
+ import { default as default98 } from "./modules/icons/components/IconRecordVideo.js";
98
+ import { default as default99 } from "./modules/icons/components/IconRecord.js";
99
+ import { default as default100 } from "./modules/icons/components/IconRedo.js";
100
+ import { default as default101 } from "./modules/icons/components/IconRefresh.js";
101
+ import { default as default102 } from "./modules/icons/components/IconReset.js";
102
+ import { default as default103 } from "./modules/icons/components/IconRestart.js";
103
+ import { default as default104 } from "./modules/icons/components/IconRestore.js";
104
+ import { default as default105 } from "./modules/icons/components/IconSave.js";
105
+ import { default as default106 } from "./modules/icons/components/IconSearch.js";
106
+ import { default as default107 } from "./modules/icons/components/IconSee.js";
107
+ import { default as default108 } from "./modules/icons/components/IconSend.js";
108
+ import { default as default109 } from "./modules/icons/components/IconSetBackground.js";
109
+ import { default as default110 } from "./modules/icons/components/IconSettings.js";
110
+ import { default as default111 } from "./modules/icons/components/IconShare.js";
111
+ import { default as default112 } from "./modules/icons/components/IconSmartphone.js";
112
+ import { default as default113 } from "./modules/icons/components/IconSmiley.js";
113
+ import { default as default114 } from "./modules/icons/components/IconSortAscendingLetters.js";
114
+ import { default as default115 } from "./modules/icons/components/IconSortDescendingLetters.js";
115
+ import { default as default116 } from "./modules/icons/components/IconSortDescending.js";
116
+ import { default as default117 } from "./modules/icons/components/IconSortTime.js";
117
+ import { default as default118 } from "./modules/icons/components/IconSpeechToText.js";
118
+ import { default as default119 } from "./modules/icons/components/IconSplitCells.js";
119
+ import { default as default120 } from "./modules/icons/components/IconSquareRoot.js";
120
+ import { default as default121 } from "./modules/icons/components/IconSubscript.js";
121
+ import { default as default122 } from "./modules/icons/components/IconSuccessFill.js";
122
+ import { default as default123 } from "./modules/icons/components/IconSuccessOutline.js";
123
+ import { default as default124 } from "./modules/icons/components/IconSuperscript.js";
124
+ import { default as default125 } from "./modules/icons/components/IconTable.js";
125
+ import { default as default126 } from "./modules/icons/components/IconTextBold.js";
126
+ import { default as default127 } from "./modules/icons/components/IconTextColor.js";
127
+ import { default as default128 } from "./modules/icons/components/IconTextHighlight.js";
128
+ import { default as default129 } from "./modules/icons/components/IconTextItalic.js";
129
+ import { default as default130 } from "./modules/icons/components/IconTextPage.js";
130
+ import { default as default131 } from "./modules/icons/components/IconTextSize.js";
131
+ import { default as default132 } from "./modules/icons/components/IconTextToSpeech.js";
132
+ import { default as default133 } from "./modules/icons/components/IconTextTypo.js";
133
+ import { default as default134 } from "./modules/icons/components/IconTextUnderline.js";
134
+ import { default as default135 } from "./modules/icons/components/IconTextVanilla.js";
135
+ import { default as default136 } from "./modules/icons/components/IconTool.js";
136
+ import { default as default137 } from "./modules/icons/components/IconTrendingUp.js";
137
+ import { default as default138 } from "./modules/icons/components/IconUndo.js";
138
+ import { default as default139 } from "./modules/icons/components/IconUnlink.js";
139
+ import { default as default140 } from "./modules/icons/components/IconUnlock.js";
140
+ import { default as default141 } from "./modules/icons/components/IconUnreadMail.js";
141
+ import { default as default142 } from "./modules/icons/components/IconUpload.js";
142
+ import { default as default143 } from "./modules/icons/components/IconUserSearch.js";
143
+ import { default as default144 } from "./modules/icons/components/IconUser.js";
144
+ import { default as default145 } from "./modules/icons/components/IconUsers.js";
145
+ import { default as default146 } from "./modules/icons/components/IconVideo.js";
146
+ import { default as default147 } from "./modules/icons/components/IconViewCalendar.js";
147
+ import { default as default148 } from "./modules/icons/components/IconViewList.js";
148
+ import { default as default149 } from "./modules/icons/components/IconWand.js";
149
+ import { default as default150 } from "./modules/icons/components/IconWrite.js";
150
+ import { default as default151 } from "./modules/icons/components/IconZoomIn.js";
151
+ import { default as default152 } from "./modules/icons/components/IconZoomOut.js";
150
152
  export {
151
153
  default3 as IconAdd,
152
154
  default2 as IconAddUser,
@@ -241,60 +243,62 @@ export {
241
243
  default92 as IconRafterRight,
242
244
  default93 as IconRafterUp,
243
245
  default94 as IconReaction,
244
- default98 as IconRecord,
245
- default95 as IconRecordPause,
246
- default96 as IconRecordStop,
247
- default97 as IconRecordVideo,
248
- default99 as IconRedo,
249
- default100 as IconRefresh,
250
- default101 as IconReset,
251
- default102 as IconRestart,
252
- default103 as IconRestore,
253
- default104 as IconSave,
254
- default105 as IconSearch,
255
- default106 as IconSee,
256
- default107 as IconSend,
257
- default108 as IconSetBackground,
258
- default109 as IconSettings,
259
- default110 as IconShare,
260
- default111 as IconSmartphone,
261
- default112 as IconSmiley,
262
- default113 as IconSortAscendingLetters,
263
- default115 as IconSortDescending,
264
- default114 as IconSortDescendingLetters,
265
- default116 as IconSortTime,
266
- default117 as IconSpeechToText,
267
- default118 as IconSplitCells,
268
- default119 as IconSquareRoot,
269
- default120 as IconSubscript,
270
- default121 as IconSuccessFill,
271
- default122 as IconSuccessOutline,
272
- default123 as IconSuperscript,
273
- default124 as IconTable,
274
- default125 as IconTextBold,
275
- default126 as IconTextColor,
276
- default127 as IconTextHighlight,
277
- default128 as IconTextItalic,
278
- default129 as IconTextPage,
279
- default130 as IconTextSize,
280
- default131 as IconTextToSpeech,
281
- default132 as IconTextTypo,
282
- default133 as IconTextUnderline,
283
- default134 as IconTextVanilla,
284
- default135 as IconTool,
285
- default136 as IconTrendingUp,
286
- default137 as IconUndo,
287
- default138 as IconUnlink,
288
- default139 as IconUnlock,
289
- default140 as IconUpload,
290
- default142 as IconUser,
291
- default141 as IconUserSearch,
292
- default143 as IconUsers,
293
- default144 as IconVideo,
294
- default145 as IconViewCalendar,
295
- default146 as IconViewList,
296
- default147 as IconWand,
297
- default148 as IconWrite,
298
- default149 as IconZoomIn,
299
- default150 as IconZoomOut
246
+ default95 as IconReadMail,
247
+ default99 as IconRecord,
248
+ default96 as IconRecordPause,
249
+ default97 as IconRecordStop,
250
+ default98 as IconRecordVideo,
251
+ default100 as IconRedo,
252
+ default101 as IconRefresh,
253
+ default102 as IconReset,
254
+ default103 as IconRestart,
255
+ default104 as IconRestore,
256
+ default105 as IconSave,
257
+ default106 as IconSearch,
258
+ default107 as IconSee,
259
+ default108 as IconSend,
260
+ default109 as IconSetBackground,
261
+ default110 as IconSettings,
262
+ default111 as IconShare,
263
+ default112 as IconSmartphone,
264
+ default113 as IconSmiley,
265
+ default114 as IconSortAscendingLetters,
266
+ default116 as IconSortDescending,
267
+ default115 as IconSortDescendingLetters,
268
+ default117 as IconSortTime,
269
+ default118 as IconSpeechToText,
270
+ default119 as IconSplitCells,
271
+ default120 as IconSquareRoot,
272
+ default121 as IconSubscript,
273
+ default122 as IconSuccessFill,
274
+ default123 as IconSuccessOutline,
275
+ default124 as IconSuperscript,
276
+ default125 as IconTable,
277
+ default126 as IconTextBold,
278
+ default127 as IconTextColor,
279
+ default128 as IconTextHighlight,
280
+ default129 as IconTextItalic,
281
+ default130 as IconTextPage,
282
+ default131 as IconTextSize,
283
+ default132 as IconTextToSpeech,
284
+ default133 as IconTextTypo,
285
+ default134 as IconTextUnderline,
286
+ default135 as IconTextVanilla,
287
+ default136 as IconTool,
288
+ default137 as IconTrendingUp,
289
+ default138 as IconUndo,
290
+ default139 as IconUnlink,
291
+ default140 as IconUnlock,
292
+ default141 as IconUnreadMail,
293
+ default142 as IconUpload,
294
+ default144 as IconUser,
295
+ default143 as IconUserSearch,
296
+ default145 as IconUsers,
297
+ default146 as IconVideo,
298
+ default147 as IconViewCalendar,
299
+ default148 as IconViewList,
300
+ default149 as IconWand,
301
+ default150 as IconWrite,
302
+ default151 as IconZoomIn,
303
+ default152 as IconZoomOut
300
304
  };
@@ -17,7 +17,7 @@ import TableToolbar from "../Toolbar/TableToolbar.js";
17
17
  import BubbleMenuEditImage from "../BubbleMenuEditImage/BubbleMenuEditImage.js";
18
18
  import LoadingScreen from "../../../../components/LoadingScreen/LoadingScreen.js";
19
19
  import MediaLibrary from "../../../multimedia/MediaLibrary/MediaLibrary.js";
20
- const MathsModal = /* @__PURE__ */ lazy(async () => await import("./MathsModal.js")), ImageEditor = /* @__PURE__ */ lazy(async () => await import("../../../multimedia/ImageEditor/components/ImageEditor.js")), Editor = /* @__PURE__ */ forwardRef(({
20
+ const MathsModal = /* @__PURE__ */ lazy(async () => await import("../MathsModal/MathsModal.js")), ImageEditor = /* @__PURE__ */ lazy(async () => await import("../../../multimedia/ImageEditor/components/ImageEditor.js")), Editor = /* @__PURE__ */ forwardRef(({
21
21
  id,
22
22
  content,
23
23
  mode = "read",
@@ -3,5 +3,5 @@ interface ModalProps {
3
3
  onSuccess?: (formulaEditor: string) => void;
4
4
  onCancel?: () => void;
5
5
  }
6
- declare const MathsModal: ({ isOpen, onSuccess, onCancel }: ModalProps) => import('react').ReactPortal;
6
+ declare const MathsModal: ({ isOpen, onSuccess, onCancel }: ModalProps) => import("react/jsx-runtime").JSX.Element;
7
7
  export default MathsModal;
@@ -3,7 +3,6 @@ import { useState, useEffect } from "react";
3
3
  import Mathematics from "@tiptap-pro/extension-mathematics";
4
4
  import { useEditor, EditorContent } from "@tiptap/react";
5
5
  import StarterKit from "@tiptap/starter-kit";
6
- import { createPortal } from "react-dom";
7
6
  import { useTranslation } from "react-i18next";
8
7
  import Modal from "../../../../components/Modal/Modal.js";
9
8
  import Button from "../../../../components/Button/Button.js";
@@ -29,7 +28,7 @@ const MathsModal = ({
29
28
  }, handleOnCancel = () => {
30
29
  onCancel == null || onCancel();
31
30
  };
32
- return /* @__PURE__ */ createPortal(/* @__PURE__ */ jsxs(Modal, { id: "MathsModal", isOpen, onModalClose: handleOnCancel, children: [
31
+ return /* @__PURE__ */ jsxs(Modal, { id: "MathsModal", isOpen, onModalClose: handleOnCancel, children: [
33
32
  /* @__PURE__ */ jsx(Modal.Header, { onModalClose: handleOnCancel, children: t("tiptap.maths.title") }),
34
33
  /* @__PURE__ */ jsxs(Modal.Subtitle, { children: [
35
34
  t("tiptap.maths.subtitle.1"),
@@ -43,7 +42,7 @@ const MathsModal = ({
43
42
  /* @__PURE__ */ jsx(Button, { color: "tertiary", onClick: onCancel, type: "button", variant: "ghost", children: t("tiptap.maths.cancel") }),
44
43
  /* @__PURE__ */ jsx(Button, { color: "primary", onClick: () => onSuccess == null ? void 0 : onSuccess(formulaEditor), type: "button", variant: "filled", children: t("tiptap.maths.add") })
45
44
  ] })
46
- ] }), document.getElementById("portal"));
45
+ ] });
47
46
  };
48
47
  export {
49
48
  MathsModal as default
@@ -0,0 +1 @@
1
+ export { default as MathsModal } from './MathsModal';
@@ -0,0 +1,7 @@
1
+ import { SVGProps } from 'react';
2
+ interface SVGRProps {
3
+ title?: string;
4
+ titleId?: string;
5
+ }
6
+ declare const SvgIconReadMail: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default SvgIconReadMail;
@@ -0,0 +1,16 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ const SvgIconReadMail = ({
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 24 24", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
7
+ title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
8
+ /* @__PURE__ */ jsxs("g", { fill: "currentColor", fillRule: "evenodd", clipPath: "url(#icon-read-mail_svg__a)", clipRule: "evenodd", children: [
9
+ /* @__PURE__ */ jsx("path", { d: "M1.143 8.986a1 1 0 0 1 1.372-.343l8.97 5.382a1 1 0 0 0 1.03 0l8.97-5.382a1 1 0 1 1 1.03 1.714l-8.971 5.383a3 3 0 0 1-3.088 0l-8.97-5.382a1 1 0 0 1-.343-1.373" }),
10
+ /* @__PURE__ */ jsx("path", { d: "M12.466 2.4a.95.95 0 0 0-.932 0c-1.333.74-3.83 2.146-5.99 3.465-1.083.662-2.063 1.29-2.764 1.797a8 8 0 0 0-.78.62v11.003H0V8c0-.38.191-.664.272-.776.107-.148.238-.285.364-.404.254-.24.594-.506.973-.78.765-.552 1.797-1.212 2.892-1.881C6.697 2.817 9.224 1.395 10.563.65a2.95 2.95 0 0 1 2.874 0c1.34.744 3.866 2.166 6.062 3.508 1.095.669 2.127 1.33 2.892 1.882.38.273.719.54.973.78.126.118.257.255.364.403.08.112.272.395.272.776v11.285h-2V8.284l-.009-.008a8 8 0 0 0-.77-.613c-.702-.506-1.682-1.135-2.765-1.797-2.16-1.32-4.657-2.725-5.99-3.466M2.321 19.802c.253.192.647.34 1.123.34h17.112c.476 0 .87-.148 1.123-.34.252-.192.321-.384.321-.517h2c0 .892-.479 1.629-1.111 2.11-.632.479-1.46.747-2.333.747H3.444c-.873 0-1.701-.268-2.333-.748S0 20.178 0 19.285h2c0 .133.069.326.32.518" })
11
+ ] }),
12
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "icon-read-mail_svg__a", children: /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M0 0h24v24H0z" }) }) })
13
+ ] });
14
+ export {
15
+ SvgIconReadMail as default
16
+ };
@@ -0,0 +1,7 @@
1
+ import { SVGProps } from 'react';
2
+ interface SVGRProps {
3
+ title?: string;
4
+ titleId?: string;
5
+ }
6
+ declare const SvgIconUnreadMail: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default SvgIconUnreadMail;
@@ -0,0 +1,16 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ const SvgIconUnreadMail = ({
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 24 24", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
7
+ title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
8
+ /* @__PURE__ */ jsxs("g", { fill: "currentColor", fillRule: "evenodd", clipPath: "url(#icon-unread-mail_svg__a)", clipRule: "evenodd", children: [
9
+ /* @__PURE__ */ jsx("path", { d: "M7.975 4.5a5.1 5.1 0 0 0-.204-2h12.785A3.437 3.437 0 0 1 24 5.948V18.07c0 1.9-1.548 3.429-3.444 3.429H3.444A3.437 3.437 0 0 1 0 18.071V8.001c.581.436 1.261.749 2 .899v9.171c0 .783.64 1.429 1.444 1.429h17.112c.803 0 1.444-.646 1.444-1.429V7.79l-9.448 6.257a1 1 0 0 1-1.104 0L3.744 8.945a5 5 0 0 0 2.228-.924L12 12.014l9.916-6.567c-.2-.55-.73-.947-1.36-.947z" }),
10
+ /* @__PURE__ */ jsx("path", { d: "M3 7a3 3 0 1 0 0-6 3 3 0 0 0 0 6" })
11
+ ] }),
12
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "icon-unread-mail_svg__a", children: /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M0 0h24v24H0z" }) }) })
13
+ ] });
14
+ export {
15
+ SvgIconUnreadMail as default
16
+ };
@@ -91,6 +91,7 @@ export { default as IconRafterLeft } from './IconRafterLeft';
91
91
  export { default as IconRafterRight } from './IconRafterRight';
92
92
  export { default as IconRafterUp } from './IconRafterUp';
93
93
  export { default as IconReaction } from './IconReaction';
94
+ export { default as IconReadMail } from './IconReadMail';
94
95
  export { default as IconRecordPause } from './IconRecordPause';
95
96
  export { default as IconRecordStop } from './IconRecordStop';
96
97
  export { default as IconRecordVideo } from './IconRecordVideo';
@@ -136,6 +137,7 @@ export { default as IconTrendingUp } from './IconTrendingUp';
136
137
  export { default as IconUndo } from './IconUndo';
137
138
  export { default as IconUnlink } from './IconUnlink';
138
139
  export { default as IconUnlock } from './IconUnlock';
140
+ export { default as IconUnreadMail } from './IconUnreadMail';
139
141
  export { default as IconUpload } from './IconUpload';
140
142
  export { default as IconUserSearch } from './IconUserSearch';
141
143
  export { default as IconUser } from './IconUser';
@@ -1,7 +1,9 @@
1
1
  export * from './AudioRecorder';
2
2
  export * from './Embed';
3
3
  export * from './ImageEditor';
4
+ export * from './ImagePicker';
4
5
  export * from './Linker';
5
6
  export * from './MediaLibrary';
7
+ export * from './VideoEmbed';
6
8
  export * from './VideoRecorder';
7
9
  export * from './Workspace';
@@ -1,18 +1,22 @@
1
1
  import { default as default2 } from "./modules/multimedia/AudioRecorder/AudioRecorder.js";
2
2
  import { default as default3 } from "./modules/multimedia/Embed/Embed.js";
3
3
  import { default as default4 } from "./modules/multimedia/ImageEditor/components/ImageEditor.js";
4
- import { default as default5 } from "./modules/multimedia/VideoRecorder/VideoRecorder.js";
5
- import { default as default6 } from "./modules/multimedia/Workspace/Workspace.js";
4
+ import { default as default5 } from "./modules/multimedia/VideoEmbed/VideoEmbed.js";
5
+ import { default as default6 } from "./modules/multimedia/VideoRecorder/VideoRecorder.js";
6
+ import { default as default7 } from "./modules/multimedia/Workspace/Workspace.js";
7
+ import { default as default8 } from "./modules/multimedia/ImagePicker/ImagePicker.js";
6
8
  import { ExternalLinker } from "./modules/multimedia/Linker/ExternalLinker/ExternalLinker.js";
7
9
  import { InternalLinker } from "./modules/multimedia/Linker/InternalLinker/InternalLinker.js";
8
- import { default as default7 } from "./modules/multimedia/MediaLibrary/MediaLibrary.js";
10
+ import { default as default9 } from "./modules/multimedia/MediaLibrary/MediaLibrary.js";
9
11
  export {
10
12
  default2 as AudioRecorder,
11
13
  default3 as Embed,
12
14
  ExternalLinker,
13
15
  default4 as ImageEditor,
16
+ default8 as ImagePicker,
14
17
  InternalLinker,
15
- default7 as MediaLibrary,
16
- default5 as VideoRecorder,
17
- default6 as Workspace
18
+ default9 as MediaLibrary,
19
+ default5 as VideoEmbed,
20
+ default6 as VideoRecorder,
21
+ default7 as Workspace
18
22
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edifice.io/react",
3
- "version": "2.0.1",
3
+ "version": "2.0.3-develop-b2school.20250116141052",
4
4
  "description": "Edifice React Library",
5
5
  "keywords": [
6
6
  "react",
@@ -119,9 +119,9 @@
119
119
  "react-slugify": "^3.0.3",
120
120
  "swiper": "^10.1.0",
121
121
  "ua-parser-js": "^1.0.36",
122
- "@edifice.io/bootstrap": "2.0.1",
123
- "@edifice.io/tiptap-extensions": "2.0.1",
124
- "@edifice.io/utilities": "2.0.1"
122
+ "@edifice.io/bootstrap": "2.0.3-develop-b2school.20250116141052",
123
+ "@edifice.io/utilities": "2.0.3-develop-b2school.20250116141052",
124
+ "@edifice.io/tiptap-extensions": "2.0.3-develop-b2school.20250116141052"
125
125
  },
126
126
  "devDependencies": {
127
127
  "@babel/plugin-transform-react-pure-annotations": "^7.23.3",
@@ -147,7 +147,7 @@
147
147
  "typescript-eslint": "^8.8.1",
148
148
  "vite": "^5.4.11",
149
149
  "vite-plugin-dts": "^4.1.0",
150
- "@edifice.io/client": "2.0.1"
150
+ "@edifice.io/client": "2.0.3-develop-b2school.20250116141052"
151
151
  },
152
152
  "peerDependencies": {
153
153
  "@react-spring/web": "^9.7.5",