catchup-library-web 1.11.0 → 1.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -71,6 +71,7 @@ __export(index_exports, {
71
71
  ActivityEmptyContent: () => ActivityEmptyContent_default,
72
72
  ActivityEvaluationRubricContent: () => ActivityEvaluationRubricContent_default,
73
73
  ActivityLabel: () => ActivityLabel_default,
74
+ ActivityPreviewByAnswerData: () => ActivityPreviewByAnswerData_default,
74
75
  ActivityPreviewByData: () => ActivityPreviewByData_default,
75
76
  ActivitySolutionContent: () => ActivitySolutionContent_default,
76
77
  ActivityTemplateLabel: () => ActivityTemplateLabel_default,
@@ -6711,10 +6712,203 @@ var ActivityPreviewByData = ({
6711
6712
  };
6712
6713
  var ActivityPreviewByData_default = ActivityPreviewByData;
6713
6714
 
6714
- // src/components/dividers/BlueVerticalDividerLine.tsx
6715
+ // src/components/activities/ActivityPreviewByAnswerData.tsx
6716
+ var import_react27 = require("react");
6715
6717
  var import_jsx_runtime44 = require("react/jsx-runtime");
6718
+ var ActivityPreviewByAnswerData = ({
6719
+ data,
6720
+ showType = true,
6721
+ showDescription = true,
6722
+ lockedType = null,
6723
+ typeOptionList = [],
6724
+ showSolution = false,
6725
+ showEvaluationRubric = false,
6726
+ showTaxonomy = true,
6727
+ isFullScreen = false,
6728
+ showCorrectAnswer = false
6729
+ }) => {
6730
+ var _a;
6731
+ const [key, setKey] = (0, import_react27.useState)((/* @__PURE__ */ new Date()).getTime());
6732
+ const [selectedType, setSelectedType] = (0, import_react27.useState)(null);
6733
+ const [optionList, setOptionList] = (0, import_react27.useState)([]);
6734
+ const [answer, setAnswer] = (0, import_react27.useState)({ data: [] });
6735
+ (0, import_react27.useEffect)(() => {
6736
+ if (!data) return;
6737
+ setKey((/* @__PURE__ */ new Date()).getTime());
6738
+ }, [data]);
6739
+ const checkAnswerMapExists = (type) => {
6740
+ if (data && data.answerMap && Array.isArray(data.answerMap)) {
6741
+ const foundAnswer = data.answerMap.find(
6742
+ (answer2) => answer2.type === type
6743
+ );
6744
+ return foundAnswer || null;
6745
+ }
6746
+ return null;
6747
+ };
6748
+ const retrieveTaxonomyNameFromActivityType = (type) => {
6749
+ if (!data) return "";
6750
+ let taxonomyMap = { name: "" };
6751
+ const taxonomyMapNames = {
6752
+ ORDERING: "orderingTaxonomyMap",
6753
+ DROPDOWN: "dropdownTaxonomyMap",
6754
+ MCSA: "MCSATaxonomyMap",
6755
+ MCMA: "MCMATaxonomyMap",
6756
+ MATCHING: "matchingTaxonomyMap",
6757
+ GROUPING: "groupingTaxonomyMap",
6758
+ FILL_IN_THE_BLANKS: "fillInTheBlanksTaxonomyMap",
6759
+ OPEN_ENDED: "openEndedTaxonomyMap",
6760
+ TRUE_FALSE: "trueFalseTaxonomyMap"
6761
+ };
6762
+ const mapName = taxonomyMapNames[type];
6763
+ if (mapName && data[mapName]) {
6764
+ try {
6765
+ taxonomyMap = JSON.parse(data[mapName]);
6766
+ } catch (error) {
6767
+ console.error(`Error parsing taxonomy map for ${type}:`, error);
6768
+ }
6769
+ }
6770
+ return taxonomyMap.name || "";
6771
+ };
6772
+ (0, import_react27.useEffect)(() => {
6773
+ if (!data) return;
6774
+ const constructAnswerBasedOnData2 = () => {
6775
+ const newAnswer = { data: [] };
6776
+ const activityTypes = [
6777
+ { type: "ORDERING", materialMap: "orderingMaterialMap" },
6778
+ { type: "DROPDOWN", materialMap: "dropdownMaterialMap" },
6779
+ { type: "MCSA", materialMap: "MCSAMaterialMap" },
6780
+ { type: "MCMA", materialMap: "MCMAMaterialMap" },
6781
+ { type: "MATCHING", materialMap: "matchingMaterialMap" },
6782
+ { type: "GROUPING", materialMap: "groupingMaterialMap" },
6783
+ {
6784
+ type: "FILL_IN_THE_BLANKS",
6785
+ materialMap: "fillInTheBlanksMaterialMap"
6786
+ },
6787
+ { type: "OPEN_ENDED", materialMap: "openEndedMaterialMap" },
6788
+ { type: "TRUE_FALSE", materialMap: "trueFalseMaterialMap" }
6789
+ ];
6790
+ activityTypes.forEach(({ type, materialMap }) => {
6791
+ if (data[materialMap]) {
6792
+ const foundAnswer = checkAnswerMapExists(type);
6793
+ const answerItem = foundAnswer || constructActivityAnswerMap(
6794
+ { type },
6795
+ JSON.parse(JSON.stringify(data))
6796
+ );
6797
+ newAnswer.data.push(answerItem);
6798
+ }
6799
+ });
6800
+ setAnswer(newAnswer);
6801
+ if (newAnswer.data.length > 0) {
6802
+ if (lockedType && newAnswer.data.find((item) => item.type === lockedType)) {
6803
+ setSelectedType(lockedType);
6804
+ } else {
6805
+ setSelectedType(newAnswer.data[0].type);
6806
+ }
6807
+ }
6808
+ };
6809
+ constructAnswerBasedOnData2();
6810
+ }, [data, lockedType]);
6811
+ (0, import_react27.useEffect)(() => {
6812
+ if (!data || !answer.data.length) return;
6813
+ let currentTypeOptionList = typeOptionList || answer.data.map((item) => ({
6814
+ id: item.type,
6815
+ text: i18n_default.t(item.type)
6816
+ }));
6817
+ if (lockedType) {
6818
+ currentTypeOptionList = currentTypeOptionList.filter(
6819
+ (typeOption) => typeOption.id === lockedType
6820
+ );
6821
+ }
6822
+ if (showTaxonomy) {
6823
+ setOptionList(
6824
+ currentTypeOptionList.map((typeOption) => __spreadProps(__spreadValues({}, typeOption), {
6825
+ subText: i18n_default.t(retrieveTaxonomyNameFromActivityType(typeOption.id))
6826
+ }))
6827
+ );
6828
+ } else {
6829
+ setOptionList(currentTypeOptionList);
6830
+ }
6831
+ }, [data, answer.data, lockedType, typeOptionList, showTaxonomy]);
6832
+ const RenderSelectedActivityContent = () => {
6833
+ const commonProps = {
6834
+ answer,
6835
+ data,
6836
+ canAnswerQuestion: () => true,
6837
+ changeAnswer: (newAnswer) => setAnswer(JSON.parse(JSON.stringify(newAnswer))),
6838
+ isPreview: true,
6839
+ showCorrectAnswer,
6840
+ isFullScreen
6841
+ };
6842
+ switch (selectedType) {
6843
+ case "ORDERING":
6844
+ return data.orderingBodyMap && data.orderingMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(OrderingActivityContent_default, __spreadValues({}, commonProps)) : null;
6845
+ case "DROPDOWN":
6846
+ return data.dropdownBodyMap && data.dropdownMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(DropdownActivityContent_default, __spreadValues({}, commonProps)) : null;
6847
+ case "MCSA":
6848
+ return data.MCSABodyMap && data.MCSAMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(MCSAActivityContent_default, __spreadValues({}, commonProps)) : null;
6849
+ case "MCMA":
6850
+ return data.MCMABodyMap && data.MCMAMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(MCMAActivityContent_default, __spreadValues({}, commonProps)) : null;
6851
+ case "MATCHING":
6852
+ return data.matchingBodyMap && data.matchingMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(MatchingActivityContent_default, __spreadValues({}, commonProps)) : null;
6853
+ case "GROUPING":
6854
+ return data.groupingBodyMap && data.groupingMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(GroupingActivityContent_default, __spreadValues({}, commonProps)) : null;
6855
+ case "FILL_IN_THE_BLANKS":
6856
+ return data.fillInTheBlanksBodyMap && data.fillInTheBlanksMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(FillInTheBlanksActivityContent_default, __spreadValues({}, commonProps)) : null;
6857
+ case "OPEN_ENDED":
6858
+ return data.openEndedBodyMap ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
6859
+ OpenEndedActivityContent_default,
6860
+ __spreadProps(__spreadValues({}, commonProps), {
6861
+ showMaterialContent: true
6862
+ })
6863
+ ) : null;
6864
+ case "TRUE_FALSE":
6865
+ return data.trueFalseBodyMap && data.trueFalseMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(TrueFalseActivityContent_default, __spreadValues({}, commonProps)) : null;
6866
+ default:
6867
+ return null;
6868
+ }
6869
+ };
6870
+ if (!data) return null;
6871
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { children: [
6872
+ showType && optionList.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "mb-4", children: [
6873
+ showDescription ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "my-2", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "font-semibold text-lg", children: i18n_default.t("activity_template") }) }) : null,
6874
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
6875
+ SelectionBox_default,
6876
+ {
6877
+ optionList,
6878
+ selectedId: selectedType,
6879
+ handleSelectOnClick: (itemId) => {
6880
+ setSelectedType(itemId);
6881
+ }
6882
+ }
6883
+ )
6884
+ ] }) : null,
6885
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(DividerLine_default, {}),
6886
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-col my-2 w-full p-5", children: [
6887
+ ((_a = answer == null ? void 0 : answer.data[0]) == null ? void 0 : _a.isEmpty) ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ActivityEmptyContent_default, {}) : null,
6888
+ selectedType ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { children: RenderSelectedActivityContent() }, selectedType) : null
6889
+ ] }),
6890
+ selectedType && showSolution ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "my-4", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
6891
+ ActivitySolutionContent_default,
6892
+ {
6893
+ activityTemplateType: selectedType,
6894
+ data
6895
+ }
6896
+ ) }) : null,
6897
+ selectedType && showEvaluationRubric ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "my-4", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
6898
+ ActivityEvaluationRubricContent_default,
6899
+ {
6900
+ activityTemplateType: selectedType,
6901
+ data
6902
+ }
6903
+ ) }) : null
6904
+ ] }, key);
6905
+ };
6906
+ var ActivityPreviewByAnswerData_default = ActivityPreviewByAnswerData;
6907
+
6908
+ // src/components/dividers/BlueVerticalDividerLine.tsx
6909
+ var import_jsx_runtime45 = require("react/jsx-runtime");
6716
6910
  var BlueVerticalDividerLine = ({ opacity }) => {
6717
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
6911
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
6718
6912
  "div",
6719
6913
  {
6720
6914
  className: `w-[2px] h-[40px] my-4 bg-catchup-blue ${opacity === "medium" ? "opacity-50" : ""}`
@@ -6724,7 +6918,7 @@ var BlueVerticalDividerLine = ({ opacity }) => {
6724
6918
  var BlueVerticalDividerLine_default = BlueVerticalDividerLine;
6725
6919
 
6726
6920
  // src/components/groups/LeftTextRightInputGroup.tsx
6727
- var import_jsx_runtime45 = require("react/jsx-runtime");
6921
+ var import_jsx_runtime46 = require("react/jsx-runtime");
6728
6922
  var LeftTextRightInputGroup = ({
6729
6923
  type,
6730
6924
  title,
@@ -6734,9 +6928,9 @@ var LeftTextRightInputGroup = ({
6734
6928
  disabled,
6735
6929
  errorText
6736
6930
  }) => {
6737
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "w-full flex flex-row mx-2", children: [
6738
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "w-catchup-input-group-title py-5", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("p", { children: title }) }),
6739
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
6931
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "w-full flex flex-row mx-2", children: [
6932
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "w-catchup-input-group-title py-5", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("p", { children: title }) }),
6933
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6740
6934
  InputGroup_default,
6741
6935
  {
6742
6936
  type,
@@ -6752,14 +6946,14 @@ var LeftTextRightInputGroup = ({
6752
6946
  var LeftTextRightInputGroup_default = LeftTextRightInputGroup;
6753
6947
 
6754
6948
  // src/components/boxes/SelectionCheckbox.tsx
6755
- var import_jsx_runtime46 = require("react/jsx-runtime");
6949
+ var import_jsx_runtime47 = require("react/jsx-runtime");
6756
6950
  var SelectionCheckbox = ({
6757
6951
  optionList,
6758
6952
  selectedIdList,
6759
6953
  handleSelectOnClick,
6760
6954
  handleRemoveOnClick
6761
6955
  }) => {
6762
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6956
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
6763
6957
  "div",
6764
6958
  {
6765
6959
  className: `${selectedIdList.findIndex(
@@ -6774,14 +6968,14 @@ var SelectionCheckbox = ({
6774
6968
  handleRemoveOnClick(option.id);
6775
6969
  }
6776
6970
  },
6777
- children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
6971
+ children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
6778
6972
  "div",
6779
6973
  {
6780
6974
  className: `flex flex-row items-center gap-x-1 ${selectedIdList.findIndex(
6781
6975
  (selectedId) => selectedId === option.id
6782
6976
  ) > -1 ? "opacity-100" : "opacity-50"}`,
6783
6977
  children: [
6784
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6978
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
6785
6979
  BaseImage_default,
6786
6980
  {
6787
6981
  src: selectedIdList.findIndex(
@@ -6791,7 +6985,7 @@ var SelectionCheckbox = ({
6791
6985
  size: "small"
6792
6986
  }
6793
6987
  ),
6794
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("p", { children: option.text }) })
6988
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("p", { children: option.text }) })
6795
6989
  ]
6796
6990
  }
6797
6991
  )
@@ -6802,7 +6996,7 @@ var SelectionCheckbox = ({
6802
6996
  var SelectionCheckbox_default = SelectionCheckbox;
6803
6997
 
6804
6998
  // src/components/tabs/SelectionTab.tsx
6805
- var import_jsx_runtime47 = require("react/jsx-runtime");
6999
+ var import_jsx_runtime48 = require("react/jsx-runtime");
6806
7000
  var SelectionTab = ({
6807
7001
  optionList,
6808
7002
  selectedId,
@@ -6812,7 +7006,7 @@ var SelectionTab = ({
6812
7006
  textColor,
6813
7007
  borderColor
6814
7008
  }) => {
6815
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap mb-2 text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
7009
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap mb-2 text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
6816
7010
  "div",
6817
7011
  {
6818
7012
  className: `${selectedId === option.id ? selectedTextColor ? selectedTextColor : "text-catchup-blue-500" : textColor ? textColor : "text-catchup-gray-300"} ${selectedId === option.id ? selectedBorderColor ? selectedBorderColor : "border-catchup-blue-500" : borderColor ? borderColor : "border-catchup-gray-50"} border-b-2 transition-all duration-300 p-3 cursor-pointer`,
@@ -6820,8 +7014,8 @@ var SelectionTab = ({
6820
7014
  handleSelectOnClick(option.id);
6821
7015
  },
6822
7016
  children: [
6823
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("p", { className: "text-lg", children: option.title }),
6824
- option.subTitle ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("p", { className: "text-md", children: option.subTitle }) : null
7017
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("p", { className: "text-lg", children: option.title }),
7018
+ option.subTitle ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("p", { className: "text-md", children: option.subTitle }) : null
6825
7019
  ]
6826
7020
  },
6827
7021
  index
@@ -6830,20 +7024,20 @@ var SelectionTab = ({
6830
7024
  var SelectionTab_default = SelectionTab;
6831
7025
 
6832
7026
  // src/components/tabs/SelectionTabFill.tsx
6833
- var import_jsx_runtime48 = require("react/jsx-runtime");
7027
+ var import_jsx_runtime49 = require("react/jsx-runtime");
6834
7028
  var SelectionTabFill = ({
6835
7029
  optionList,
6836
7030
  selectedId,
6837
7031
  handleSelectOnClick
6838
7032
  }) => {
6839
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "w-full flex flex-row bg-catchup-gray-50 gap-x-2 rounded-catchup-medium px-4 py-2 justify-center text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
7033
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "w-full flex flex-row bg-catchup-gray-50 gap-x-2 rounded-catchup-medium px-4 py-2 justify-center text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
6840
7034
  "div",
6841
7035
  {
6842
7036
  className: "cursor-pointer",
6843
7037
  onClick: () => {
6844
7038
  handleSelectOnClick(option.id);
6845
7039
  },
6846
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
7040
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
6847
7041
  "p",
6848
7042
  {
6849
7043
  className: `${selectedId === option.id ? "text-catchup-white bg-catchup-blue-500" : "text-catchup-gray-300"} transition-all duration-300 rounded-catchup-medium px-2 py-1`,
@@ -6857,57 +7051,57 @@ var SelectionTabFill = ({
6857
7051
  var SelectionTabFill_default = SelectionTabFill;
6858
7052
 
6859
7053
  // src/components/labels/ActivityTemplateLabel.tsx
6860
- var import_jsx_runtime49 = require("react/jsx-runtime");
7054
+ var import_jsx_runtime50 = require("react/jsx-runtime");
6861
7055
  var ActivityTemplateLabel = ({
6862
7056
  title,
6863
7057
  font
6864
7058
  }) => {
6865
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
6866
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(BaseImage_default, { src: "/icons/activity.webp", alt: "label", size: "xsmall" }),
6867
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: font ? font : "text-sm", children: title })
7059
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7060
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(BaseImage_default, { src: "/icons/activity.webp", alt: "label", size: "xsmall" }),
7061
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { className: font ? font : "text-sm", children: title })
6868
7062
  ] }) });
6869
7063
  };
6870
7064
  var ActivityTemplateLabel_default = ActivityTemplateLabel;
6871
7065
 
6872
7066
  // src/components/labels/BrandLabel.tsx
6873
- var import_jsx_runtime50 = require("react/jsx-runtime");
7067
+ var import_jsx_runtime51 = require("react/jsx-runtime");
6874
7068
  var BrandLabel = ({ title, icon, font }) => {
6875
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
6876
- icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(BaseImage_default, { src: "/icons/brand-label.webp", alt: "label", size: "xsmall" }),
6877
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { className: font ? font : "text-sm", children: title })
7069
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7070
+ icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(BaseImage_default, { src: "/icons/brand-label.webp", alt: "label", size: "xsmall" }),
7071
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("p", { className: font ? font : "text-sm", children: title })
6878
7072
  ] }) });
6879
7073
  };
6880
7074
  var BrandLabel_default = BrandLabel;
6881
7075
 
6882
7076
  // src/components/labels/CoterieLabel.tsx
6883
- var import_jsx_runtime51 = require("react/jsx-runtime");
7077
+ var import_jsx_runtime52 = require("react/jsx-runtime");
6884
7078
  var CoterieLabel = ({ title, font }) => {
6885
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("p", { className: font ? font : "text-sm", children: title }) });
7079
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: font ? font : "text-sm", children: title }) });
6886
7080
  };
6887
7081
  var CoterieLabel_default = CoterieLabel;
6888
7082
 
6889
7083
  // src/components/labels/GradeLabel.tsx
6890
- var import_jsx_runtime52 = require("react/jsx-runtime");
7084
+ var import_jsx_runtime53 = require("react/jsx-runtime");
6891
7085
  var GradeLabel = ({ title, font }) => {
6892
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: font ? font : "text-sm", children: title }) });
7086
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: font ? font : "text-sm", children: title }) });
6893
7087
  };
6894
7088
  var GradeLabel_default = GradeLabel;
6895
7089
 
6896
7090
  // src/components/labels/OutcomeLabel.tsx
6897
- var import_jsx_runtime53 = require("react/jsx-runtime");
7091
+ var import_jsx_runtime54 = require("react/jsx-runtime");
6898
7092
  var OutcomeLabel = ({ title, font }) => {
6899
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
6900
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(BaseImage_default, { src: "/icons/category.webp", alt: "label", size: "xsmall" }),
6901
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: font ? font : "text-sm", children: title })
7093
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7094
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(BaseImage_default, { src: "/icons/category.webp", alt: "label", size: "xsmall" }),
7095
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: font ? font : "text-sm", children: title })
6902
7096
  ] }) });
6903
7097
  };
6904
7098
  var OutcomeLabel_default = OutcomeLabel;
6905
7099
 
6906
7100
  // src/components/labels/PersonalLabel.tsx
6907
- var import_jsx_runtime54 = require("react/jsx-runtime");
7101
+ var import_jsx_runtime55 = require("react/jsx-runtime");
6908
7102
  var PersonalLabel = ({ title, icon, font }) => {
6909
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-personal-label-border bg-personal-label text-personal-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
6910
- icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
7103
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-personal-label-border bg-personal-label text-personal-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7104
+ icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6911
7105
  BaseImage_default,
6912
7106
  {
6913
7107
  src: "/icons/personal-label.webp",
@@ -6915,16 +7109,16 @@ var PersonalLabel = ({ title, icon, font }) => {
6915
7109
  size: "xsmall"
6916
7110
  }
6917
7111
  ),
6918
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: font ? font : "text-sm", children: title })
7112
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: font ? font : "text-sm", children: title })
6919
7113
  ] }) });
6920
7114
  };
6921
7115
  var PersonalLabel_default = PersonalLabel;
6922
7116
 
6923
7117
  // src/components/labels/PublishingHouseLabel.tsx
6924
- var import_jsx_runtime55 = require("react/jsx-runtime");
7118
+ var import_jsx_runtime56 = require("react/jsx-runtime");
6925
7119
  var PublishingHouseLabel = ({ title, icon, font }) => {
6926
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
6927
- icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
7120
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7121
+ icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
6928
7122
  BaseImage_default,
6929
7123
  {
6930
7124
  src: "/icons/publishing-house-label.webp",
@@ -6932,79 +7126,79 @@ var PublishingHouseLabel = ({ title, icon, font }) => {
6932
7126
  size: "xsmall"
6933
7127
  }
6934
7128
  ),
6935
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: font ? font : "text-sm", children: title })
7129
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: font ? font : "text-sm", children: title })
6936
7130
  ] }) });
6937
7131
  };
6938
7132
  var PublishingHouseLabel_default = PublishingHouseLabel;
6939
7133
 
6940
7134
  // src/components/labels/ActivityLabel.tsx
6941
- var import_jsx_runtime56 = require("react/jsx-runtime");
7135
+ var import_jsx_runtime57 = require("react/jsx-runtime");
6942
7136
  var ActivityLabel = ({ title, font }) => {
6943
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: font ? font : "text-sm", children: title }) });
7137
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: font ? font : "text-sm", children: title }) });
6944
7138
  };
6945
7139
  var ActivityLabel_default = ActivityLabel;
6946
7140
 
6947
7141
  // src/components/infos/InfoWithText.tsx
6948
- var import_jsx_runtime57 = require("react/jsx-runtime");
7142
+ var import_jsx_runtime58 = require("react/jsx-runtime");
6949
7143
  var InfoWithText = (props) => {
6950
7144
  const { value } = props;
6951
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "w-full flex flex-row items-center gap-x-2 my-2", children: [
6952
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(BaseImage_default, { src: "/icons/info.webp", alt: "info", size: "small" }),
6953
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "", children: value }) })
7145
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "w-full flex flex-row items-center gap-x-2 my-2", children: [
7146
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(BaseImage_default, { src: "/icons/info.webp", alt: "info", size: "small" }),
7147
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "", children: value }) })
6954
7148
  ] });
6955
7149
  };
6956
7150
  var InfoWithText_default = InfoWithText;
6957
7151
 
6958
7152
  // src/components/texts/InputWithSpecialExpression.tsx
6959
7153
  var import_react_katex12 = require("react-katex");
6960
- var import_jsx_runtime58 = require("react/jsx-runtime");
7154
+ var import_jsx_runtime59 = require("react/jsx-runtime");
6961
7155
  var InputWithSpecialExpression = ({
6962
7156
  value,
6963
7157
  showSpecialOnly
6964
7158
  }) => {
6965
7159
  const inputWithSpecialExpressionList = constructInputWithSpecialExpressionList(value);
6966
- return showSpecialOnly ? inputWithSpecialExpressionList.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "m-2", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
7160
+ return showSpecialOnly ? inputWithSpecialExpressionList.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "m-2", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6967
7161
  "span",
6968
7162
  {
6969
7163
  className: `${inputPart.isBold ? "font-semibold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
6970
- children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-lg", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_katex12.InlineMath, { math: inputPart.value }, index) }) : inputPart.value
7164
+ children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-lg", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_katex12.InlineMath, { math: inputPart.value }, index) }) : inputPart.value
6971
7165
  }
6972
- )) }) }) : null : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "m-2", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
7166
+ )) }) }) : null : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "m-2", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6973
7167
  "span",
6974
7168
  {
6975
7169
  className: `${inputPart.isBold ? "font-semibold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
6976
- children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-lg", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_katex12.InlineMath, { math: inputPart.value }, index) }) : inputPart.value
7170
+ children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-lg", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_katex12.InlineMath, { math: inputPart.value }, index) }) : inputPart.value
6977
7171
  }
6978
7172
  )) }) });
6979
7173
  };
6980
7174
  var InputWithSpecialExpression_default = InputWithSpecialExpression;
6981
7175
 
6982
7176
  // src/components/titles/BaseTitle.tsx
6983
- var import_jsx_runtime59 = require("react/jsx-runtime");
7177
+ var import_jsx_runtime60 = require("react/jsx-runtime");
6984
7178
  var BaseTitle = ({
6985
7179
  title,
6986
7180
  totalItemCount,
6987
7181
  itemName,
6988
7182
  description
6989
7183
  }) => {
6990
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex flex-col gap-y-2", children: [
6991
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("p", { className: "text-2xl font-medium", children: [
7184
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex flex-col gap-y-2", children: [
7185
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("p", { className: "text-2xl font-medium", children: [
6992
7186
  title,
6993
- totalItemCount && itemName ? /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("span", { className: "p-2 text-base text-catchup-blue-600 border border-catchup-blue-300 rounded-catchup-3xlarge mx-2 bg-catchup-blue-100", children: [
7187
+ totalItemCount && itemName ? /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("span", { className: "p-2 text-base text-catchup-blue-600 border border-catchup-blue-300 rounded-catchup-3xlarge mx-2 bg-catchup-blue-100", children: [
6994
7188
  totalItemCount,
6995
7189
  " ",
6996
7190
  itemName
6997
7191
  ] }) : null
6998
7192
  ] }),
6999
- description ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "", children: description }) : null
7193
+ description ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "", children: description }) : null
7000
7194
  ] });
7001
7195
  };
7002
7196
  var BaseTitle_default = BaseTitle;
7003
7197
 
7004
7198
  // src/components/titles/SubTitle.tsx
7005
- var import_jsx_runtime60 = require("react/jsx-runtime");
7199
+ var import_jsx_runtime61 = require("react/jsx-runtime");
7006
7200
  var SubTitle = ({ title }) => {
7007
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "text-xl font-medium text-catchup-darker-blue", children: title });
7201
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-xl font-medium text-catchup-darker-blue", children: title });
7008
7202
  };
7009
7203
  var SubTitle_default = SubTitle;
7010
7204
 
@@ -9455,6 +9649,7 @@ var retrieveActivityMethodologyOptionList = () => {
9455
9649
  ActivityEmptyContent,
9456
9650
  ActivityEvaluationRubricContent,
9457
9651
  ActivityLabel,
9652
+ ActivityPreviewByAnswerData,
9458
9653
  ActivityPreviewByData,
9459
9654
  ActivitySolutionContent,
9460
9655
  ActivityTemplateLabel,