@edifice.io/react 2.5.5-develop-b2school.20251223095127 → 2.5.5-develop-b2school.20260106144020

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.
@@ -51,7 +51,7 @@ const ComboboxComponent = /* @__PURE__ */ forwardRef(({
51
51
  /* @__PURE__ */ jsx(Combobox.Trigger, { placeholder, searchMinLength, handleSearchInputChange: onSearchInputChange, handleSearchInputKeyUp: (event) => {
52
52
  onSearchInputKeyUp == null || onSearchInputKeyUp(event);
53
53
  }, value, variant, renderInputGroup, renderSelectedItems, hasDefault: !!options.length, onFocus, onBlur, inputRef }),
54
- /* @__PURE__ */ jsx(Dropdown.Menu, { children: renderContent() })
54
+ /* @__PURE__ */ jsx(Dropdown.Menu, { "data-testid": "combobox-search-menu", children: renderContent() })
55
55
  ] });
56
56
  }), Combobox = /* @__PURE__ */ Object.assign(ComboboxComponent, {
57
57
  Trigger: ComboboxTrigger
@@ -48,7 +48,7 @@ const ComboboxTrigger = ({
48
48
  !!renderInputGroup && /* @__PURE__ */ jsx("label", { className: "input-group-text pe-0" + classNameVariant, htmlFor: triggerProps.id, children: renderInputGroup }),
49
49
  /* @__PURE__ */ jsxs("div", { className: "d-flex align-items-center flex-wrap flex-fill", children: [
50
50
  renderSelectedItems,
51
- /* @__PURE__ */ jsx(Input, { ...inputProps, className: classNameInput, onFocus, onBlur, noValidationIcon: !0, placeholder, size: "md", type: "search", onKeyDown: itemProps.onMenuItemKeyDown })
51
+ /* @__PURE__ */ jsx(Input, { "data-testid": "combobox-search-input", ...inputProps, className: classNameInput, onFocus, onBlur, noValidationIcon: !0, placeholder, size: "md", type: "search", onKeyDown: itemProps.onMenuItemKeyDown })
52
52
  ] })
53
53
  ] });
54
54
  };
package/dist/icons.js CHANGED
@@ -135,45 +135,46 @@ import { default as default135 } from "./modules/icons/components/IconSplitCells
135
135
  import { default as default136 } from "./modules/icons/components/IconSquareRoot.js";
136
136
  import { default as default137 } from "./modules/icons/components/IconStarFull.js";
137
137
  import { default as default138 } from "./modules/icons/components/IconStar.js";
138
- import { default as default139 } from "./modules/icons/components/IconSubscript.js";
139
- import { default as default140 } from "./modules/icons/components/IconSuccessFill.js";
140
- import { default as default141 } from "./modules/icons/components/IconSuccessOutline.js";
141
- import { default as default142 } from "./modules/icons/components/IconSuperscript.js";
142
- import { default as default143 } from "./modules/icons/components/IconTable.js";
143
- import { default as default144 } from "./modules/icons/components/IconTextBold.js";
144
- import { default as default145 } from "./modules/icons/components/IconTextColor.js";
145
- import { default as default146 } from "./modules/icons/components/IconTextHighlight.js";
146
- import { default as default147 } from "./modules/icons/components/IconTextItalic.js";
147
- import { default as default148 } from "./modules/icons/components/IconTextPage.js";
148
- import { default as default149 } from "./modules/icons/components/IconTextSize.js";
149
- import { default as default150 } from "./modules/icons/components/IconTextToSpeechOff.js";
150
- import { default as default151 } from "./modules/icons/components/IconTextToSpeech.js";
151
- import { default as default152 } from "./modules/icons/components/IconTextTypo.js";
152
- import { default as default153 } from "./modules/icons/components/IconTextUnderline.js";
153
- import { default as default154 } from "./modules/icons/components/IconTextVanilla.js";
154
- import { default as default155 } from "./modules/icons/components/IconThumbDown.js";
155
- import { default as default156 } from "./modules/icons/components/IconThumbUp.js";
156
- import { default as default157 } from "./modules/icons/components/IconToolCenter.js";
157
- import { default as default158 } from "./modules/icons/components/IconTool.js";
158
- import { default as default159 } from "./modules/icons/components/IconTrendingUp.js";
159
- import { default as default160 } from "./modules/icons/components/IconUndoAll.js";
160
- import { default as default161 } from "./modules/icons/components/IconUndoSlashed.js";
161
- import { default as default162 } from "./modules/icons/components/IconUndo.js";
162
- import { default as default163 } from "./modules/icons/components/IconUnion.js";
163
- import { default as default164 } from "./modules/icons/components/IconUnlink.js";
164
- import { default as default165 } from "./modules/icons/components/IconUnlock.js";
165
- import { default as default166 } from "./modules/icons/components/IconUnreadMail.js";
166
- import { default as default167 } from "./modules/icons/components/IconUpload.js";
167
- import { default as default168 } from "./modules/icons/components/IconUserSearch.js";
168
- import { default as default169 } from "./modules/icons/components/IconUser.js";
169
- import { default as default170 } from "./modules/icons/components/IconUsers.js";
170
- import { default as default171 } from "./modules/icons/components/IconVideo.js";
171
- import { default as default172 } from "./modules/icons/components/IconViewCalendar.js";
172
- import { default as default173 } from "./modules/icons/components/IconViewList.js";
173
- import { default as default174 } from "./modules/icons/components/IconWand.js";
174
- import { default as default175 } from "./modules/icons/components/IconWrite.js";
175
- import { default as default176 } from "./modules/icons/components/IconZoomIn.js";
176
- import { default as default177 } from "./modules/icons/components/IconZoomOut.js";
138
+ import { default as default139 } from "./modules/icons/components/IconSubmitToValidate.js";
139
+ import { default as default140 } from "./modules/icons/components/IconSubscript.js";
140
+ import { default as default141 } from "./modules/icons/components/IconSuccessFill.js";
141
+ import { default as default142 } from "./modules/icons/components/IconSuccessOutline.js";
142
+ import { default as default143 } from "./modules/icons/components/IconSuperscript.js";
143
+ import { default as default144 } from "./modules/icons/components/IconTable.js";
144
+ import { default as default145 } from "./modules/icons/components/IconTextBold.js";
145
+ import { default as default146 } from "./modules/icons/components/IconTextColor.js";
146
+ import { default as default147 } from "./modules/icons/components/IconTextHighlight.js";
147
+ import { default as default148 } from "./modules/icons/components/IconTextItalic.js";
148
+ import { default as default149 } from "./modules/icons/components/IconTextPage.js";
149
+ import { default as default150 } from "./modules/icons/components/IconTextSize.js";
150
+ import { default as default151 } from "./modules/icons/components/IconTextToSpeechOff.js";
151
+ import { default as default152 } from "./modules/icons/components/IconTextToSpeech.js";
152
+ import { default as default153 } from "./modules/icons/components/IconTextTypo.js";
153
+ import { default as default154 } from "./modules/icons/components/IconTextUnderline.js";
154
+ import { default as default155 } from "./modules/icons/components/IconTextVanilla.js";
155
+ import { default as default156 } from "./modules/icons/components/IconThumbDown.js";
156
+ import { default as default157 } from "./modules/icons/components/IconThumbUp.js";
157
+ import { default as default158 } from "./modules/icons/components/IconToolCenter.js";
158
+ import { default as default159 } from "./modules/icons/components/IconTool.js";
159
+ import { default as default160 } from "./modules/icons/components/IconTrendingUp.js";
160
+ import { default as default161 } from "./modules/icons/components/IconUndoAll.js";
161
+ import { default as default162 } from "./modules/icons/components/IconUndoSlashed.js";
162
+ import { default as default163 } from "./modules/icons/components/IconUndo.js";
163
+ import { default as default164 } from "./modules/icons/components/IconUnion.js";
164
+ import { default as default165 } from "./modules/icons/components/IconUnlink.js";
165
+ import { default as default166 } from "./modules/icons/components/IconUnlock.js";
166
+ import { default as default167 } from "./modules/icons/components/IconUnreadMail.js";
167
+ import { default as default168 } from "./modules/icons/components/IconUpload.js";
168
+ import { default as default169 } from "./modules/icons/components/IconUserSearch.js";
169
+ import { default as default170 } from "./modules/icons/components/IconUser.js";
170
+ import { default as default171 } from "./modules/icons/components/IconUsers.js";
171
+ import { default as default172 } from "./modules/icons/components/IconVideo.js";
172
+ import { default as default173 } from "./modules/icons/components/IconViewCalendar.js";
173
+ import { default as default174 } from "./modules/icons/components/IconViewList.js";
174
+ import { default as default175 } from "./modules/icons/components/IconWand.js";
175
+ import { default as default176 } from "./modules/icons/components/IconWrite.js";
176
+ import { default as default177 } from "./modules/icons/components/IconZoomIn.js";
177
+ import { default as default178 } from "./modules/icons/components/IconZoomOut.js";
177
178
  export {
178
179
  default3 as IconAdd,
179
180
  default2 as IconAddUser,
@@ -312,43 +313,44 @@ export {
312
313
  default136 as IconSquareRoot,
313
314
  default138 as IconStar,
314
315
  default137 as IconStarFull,
315
- default139 as IconSubscript,
316
- default140 as IconSuccessFill,
317
- default141 as IconSuccessOutline,
318
- default142 as IconSuperscript,
319
- default143 as IconTable,
320
- default144 as IconTextBold,
321
- default145 as IconTextColor,
322
- default146 as IconTextHighlight,
323
- default147 as IconTextItalic,
324
- default148 as IconTextPage,
325
- default149 as IconTextSize,
326
- default151 as IconTextToSpeech,
327
- default150 as IconTextToSpeechOff,
328
- default152 as IconTextTypo,
329
- default153 as IconTextUnderline,
330
- default154 as IconTextVanilla,
331
- default155 as IconThumbDown,
332
- default156 as IconThumbUp,
333
- default158 as IconTool,
334
- default157 as IconToolCenter,
335
- default159 as IconTrendingUp,
336
- default162 as IconUndo,
337
- default160 as IconUndoAll,
338
- default161 as IconUndoSlashed,
339
- default163 as IconUnion,
340
- default164 as IconUnlink,
341
- default165 as IconUnlock,
342
- default166 as IconUnreadMail,
343
- default167 as IconUpload,
344
- default169 as IconUser,
345
- default168 as IconUserSearch,
346
- default170 as IconUsers,
347
- default171 as IconVideo,
348
- default172 as IconViewCalendar,
349
- default173 as IconViewList,
350
- default174 as IconWand,
351
- default175 as IconWrite,
352
- default176 as IconZoomIn,
353
- default177 as IconZoomOut
316
+ default139 as IconSubmitToValidate,
317
+ default140 as IconSubscript,
318
+ default141 as IconSuccessFill,
319
+ default142 as IconSuccessOutline,
320
+ default143 as IconSuperscript,
321
+ default144 as IconTable,
322
+ default145 as IconTextBold,
323
+ default146 as IconTextColor,
324
+ default147 as IconTextHighlight,
325
+ default148 as IconTextItalic,
326
+ default149 as IconTextPage,
327
+ default150 as IconTextSize,
328
+ default152 as IconTextToSpeech,
329
+ default151 as IconTextToSpeechOff,
330
+ default153 as IconTextTypo,
331
+ default154 as IconTextUnderline,
332
+ default155 as IconTextVanilla,
333
+ default156 as IconThumbDown,
334
+ default157 as IconThumbUp,
335
+ default159 as IconTool,
336
+ default158 as IconToolCenter,
337
+ default160 as IconTrendingUp,
338
+ default163 as IconUndo,
339
+ default161 as IconUndoAll,
340
+ default162 as IconUndoSlashed,
341
+ default164 as IconUnion,
342
+ default165 as IconUnlink,
343
+ default166 as IconUnlock,
344
+ default167 as IconUnreadMail,
345
+ default168 as IconUpload,
346
+ default170 as IconUser,
347
+ default169 as IconUserSearch,
348
+ default171 as IconUsers,
349
+ default172 as IconVideo,
350
+ default173 as IconViewCalendar,
351
+ default174 as IconViewList,
352
+ default175 as IconWand,
353
+ default176 as IconWrite,
354
+ default177 as IconZoomIn,
355
+ default178 as IconZoomOut
354
356
  };
@@ -78,7 +78,7 @@ const MathsModal = /* @__PURE__ */ lazy(async () => await import("../MathsModal/
78
78
  /* @__PURE__ */ jsxs("div", { className: borderClass, children: [
79
79
  toolbar !== "none" && editable && /* @__PURE__ */ jsx(EditorToolbar, { mediaLibraryRef: mediaLibraryModalRef, toggleMathsModal, cantooEditor: contooEditor }),
80
80
  /* @__PURE__ */ jsxs(Flex, { direction: "row", children: [
81
- /* @__PURE__ */ jsx(EditorContent, { id: id ?? editorId, editor, className: contentClass, style: {
81
+ /* @__PURE__ */ jsx(EditorContent, { "data-testid": "editor-content", id: id ?? editorId, editor, className: contentClass, style: {
82
82
  flex: 1
83
83
  } }),
84
84
  editable && contooEditor.openPositionAdaptText.right && /* @__PURE__ */ jsx(CantooAdaptTextBoxView, { openPosition: contooEditor.openPositionAdaptText })
@@ -0,0 +1,7 @@
1
+ import { SVGProps } from 'react';
2
+ interface SVGRProps {
3
+ title?: string;
4
+ titleId?: string;
5
+ }
6
+ declare const SvgIconSubmitToValidate: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default SvgIconSubmitToValidate;
@@ -0,0 +1,12 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ const SvgIconSubmitToValidate = ({
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__ */ jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M10.844 7.9a1 1 0 0 0-.085 1.41c.366.417.998.463 1.412.1l4.18-3.656a.99.99 0 0 0 .337-.762 1.01 1.01 0 0 0-.363-.757L12.019.632a1 1 0 0 0-1.408.118 1 1 0 0 0 .134 1.41l2.2 1.84h-.939c-5.617-.067-9.838 4.478-9.905 9.887-.05 4.03 2.374 7.51 5.865 9.091a1 1 0 0 0 .825-1.822c-2.815-1.274-4.73-4.058-4.69-7.244C4.156 9.521 7.554 5.945 11.988 6h1.028zm10.785.822a1 1 0 0 1 .148 1.407l-6.875 8.5a1 1 0 0 1-1.572-.022l-3.125-4.09a1 1 0 0 1 1.59-1.215l2.352 3.08 6.076-7.51a1 1 0 0 1 1.406-.15", clipRule: "evenodd" })
9
+ ] });
10
+ export {
11
+ SvgIconSubmitToValidate as default
12
+ };
@@ -135,6 +135,7 @@ export { default as IconSplitCells } from './IconSplitCells';
135
135
  export { default as IconSquareRoot } from './IconSquareRoot';
136
136
  export { default as IconStarFull } from './IconStarFull';
137
137
  export { default as IconStar } from './IconStar';
138
+ export { default as IconSubmitToValidate } from './IconSubmitToValidate';
138
139
  export { default as IconSubscript } from './IconSubscript';
139
140
  export { default as IconSuccessFill } from './IconSuccessFill';
140
141
  export { default as IconSuccessOutline } from './IconSuccessOutline';
@@ -16,8 +16,8 @@ const ShareBookmark = ({
16
16
  setIsSaving(!0), await onSave(), setIsSaving(!1);
17
17
  };
18
18
  return /* @__PURE__ */ jsx("div", { className: "mt-16", children: /* @__PURE__ */ jsxs(FormControl, { id: "bookmarkName", className: "d-flex flex-wrap align-items-center gap-16", children: [
19
- /* @__PURE__ */ jsx("div", { className: "flex-fill", children: /* @__PURE__ */ jsx(FormControl.Input, { ref: refBookmark, onChange: onBookmarkChange, placeholder: t("explorer.modal.share.sharebookmark.placeholder"), size: "sm", type: "text" }, bookmark.id) }),
20
- /* @__PURE__ */ jsx(Button, { type: "button", color: "primary", variant: "ghost", disabled: bookmark.name.length === 0 || isSaving, leftIcon: /* @__PURE__ */ jsx(SvgIconSave, {}), onClick: handleSaveClick, className: "text-nowrap", isLoading: isSaving, children: t("explorer.modal.share.sharebookmark.save") })
19
+ /* @__PURE__ */ jsx("div", { className: "flex-fill", children: /* @__PURE__ */ jsx(FormControl.Input, { "data-testid": "share-bookmark-name-input", ref: refBookmark, onChange: onBookmarkChange, placeholder: t("explorer.modal.share.sharebookmark.placeholder"), size: "sm", type: "text" }, bookmark.id) }),
20
+ /* @__PURE__ */ jsx(Button, { "data-testid": "share-bookmark-save-button", type: "button", color: "primary", variant: "ghost", disabled: bookmark.name.length === 0 || isSaving, leftIcon: /* @__PURE__ */ jsx(SvgIconSave, {}), onClick: handleSaveClick, className: "text-nowrap", isLoading: isSaving, children: t("explorer.modal.share.sharebookmark.save") })
21
21
  ] }) });
22
22
  };
23
23
  export {
@@ -4,10 +4,10 @@ import SvgIconBookmark from "../../icons/components/IconBookmark.js";
4
4
  import SvgIconClose from "../../icons/components/IconClose.js";
5
5
  import SvgIconRafterDown from "../../icons/components/IconRafterDown.js";
6
6
  import SvgIconUsers from "../../icons/components/IconUsers.js";
7
- import { hasRight } from "./utils/hasRight.js";
8
- import { showShareRightLine } from "./utils/showShareRightLine.js";
9
7
  import { useShareRightDisabled } from "./hooks/useShareRightDisabled.js";
10
8
  import { useShareRightVisible } from "./hooks/useShareRightVisible.js";
9
+ import { hasRight } from "./utils/hasRight.js";
10
+ import { showShareRightLine } from "./utils/showShareRightLine.js";
11
11
  import Avatar from "../../../components/Avatar/Avatar.js";
12
12
  import Button from "../../../components/Button/Button.js";
13
13
  import Checkbox from "../../../components/Checkbox/Checkbox.js";
@@ -45,8 +45,8 @@ const ShareBookmarkLine = ({
45
45
  ] }) }),
46
46
  shareRightActions.map((shareRightAction) => /* @__PURE__ */ jsx("td", { style: {
47
47
  width: "80px"
48
- }, className: "text-center text-white", children: /* @__PURE__ */ jsx(Checkbox, { checked: hasRight(shareRight, shareRightAction), onChange: () => toggleRight(shareRight, shareRightAction.id), disabled: isDisabled }) }, shareRightAction.displayName)),
49
- /* @__PURE__ */ jsx("td", { children: !shareRight.isBookmarkMember && !isDisabled && /* @__PURE__ */ jsx(IconButton, { "aria-label": t("close"), color: "tertiary", icon: /* @__PURE__ */ jsx(SvgIconClose, {}), type: "button", variant: "ghost", title: t("close"), onClick: () => onDeleteRow(shareRight) }) })
48
+ }, className: "text-center text-white", children: /* @__PURE__ */ jsx(Checkbox, { checked: hasRight(shareRight, shareRightAction), onChange: () => toggleRight(shareRight, shareRightAction.id), disabled: isDisabled, "data-testid": `share-right-${shareRightAction.id}-checkbox` }) }, shareRightAction.displayName)),
49
+ /* @__PURE__ */ jsx("td", { children: !shareRight.isBookmarkMember && !isDisabled && /* @__PURE__ */ jsx(IconButton, { "data-testid": "share-right-close-button", "aria-label": t("close"), color: "tertiary", icon: /* @__PURE__ */ jsx(SvgIconClose, {}), type: "button", variant: "ghost", title: t("close"), onClick: () => onDeleteRow(shareRight) }) })
50
50
  ] }, shareRight.id) : null;
51
51
  });
52
52
  };
@@ -124,7 +124,7 @@ const ShareResources = /* @__PURE__ */ forwardRef(({
124
124
  ] })
125
125
  ] }) }),
126
126
  /* @__PURE__ */ jsxs("div", { className: "mt-16", children: [
127
- /* @__PURE__ */ jsx(Button, { color: "tertiary", leftIcon: /* @__PURE__ */ jsx(SvgIconBookmark, {}), rightIcon: /* @__PURE__ */ jsx(SvgIconRafterDown, { title: t("show"), className: "w-16 min-w-0", style: {
127
+ /* @__PURE__ */ jsx(Button, { "data-testid": "share-bookmark-show-button", color: "tertiary", leftIcon: /* @__PURE__ */ jsx(SvgIconBookmark, {}), rightIcon: /* @__PURE__ */ jsx(SvgIconRafterDown, { title: t("show"), className: "w-16 min-w-0", style: {
128
128
  transition: "rotate 0.2s ease-out",
129
129
  rotate: showBookmarkInput ? "-180deg" : "0deg"
130
130
  } }), type: "button", variant: "ghost", className: "fw-normal", onClick: () => toggleBookmarkInput(!showBookmarkInput), children: t("share.save.sharebookmark") }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edifice.io/react",
3
- "version": "2.5.5-develop-b2school.20251223095127",
3
+ "version": "2.5.5-develop-b2school.20260106144020",
4
4
  "description": "Edifice React Library",
5
5
  "keywords": [
6
6
  "react",
@@ -133,9 +133,9 @@
133
133
  "react-slugify": "^3.0.3",
134
134
  "swiper": "^10.1.0",
135
135
  "ua-parser-js": "^1.0.36",
136
- "@edifice.io/bootstrap": "2.5.5-develop-b2school.20251223095127",
137
- "@edifice.io/tiptap-extensions": "2.5.5-develop-b2school.20251223095127",
138
- "@edifice.io/utilities": "2.5.5-develop-b2school.20251223095127"
136
+ "@edifice.io/bootstrap": "2.5.5-develop-b2school.20260106144020",
137
+ "@edifice.io/tiptap-extensions": "2.5.5-develop-b2school.20260106144020",
138
+ "@edifice.io/utilities": "2.5.5-develop-b2school.20260106144020"
139
139
  },
140
140
  "devDependencies": {
141
141
  "@babel/plugin-transform-react-pure-annotations": "^7.23.3",
@@ -166,8 +166,8 @@
166
166
  "vite": "^5.4.11",
167
167
  "vite-plugin-dts": "^4.1.0",
168
168
  "vite-tsconfig-paths": "^5.0.1",
169
- "@edifice.io/client": "2.5.5-develop-b2school.20251223095127",
170
- "@edifice.io/config": "2.5.5-develop-b2school.20251223095127"
169
+ "@edifice.io/client": "2.5.5-develop-b2school.20260106144020",
170
+ "@edifice.io/config": "2.5.5-develop-b2school.20260106144020"
171
171
  },
172
172
  "peerDependencies": {
173
173
  "@react-spring/web": "^9.7.5",