wizr-quiz 1.0.0 → 2.0.0
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.d.ts +102 -1
- package/dist/index.js +1 -11
- package/dist/index.mjs +1 -11
- package/package.json +17 -4
- package/rollup.config-1745339193645.cjs +0 -50
- package/rollup.config.js +0 -45
- package/src/assets/Timer.svg +0 -3
- package/src/assets/close.svg +0 -4
- package/src/assets/downArrow.svg +0 -11
- package/src/assets/fonts/patron/patron-black.woff2 +0 -0
- package/src/assets/fonts/patron/patron-blackitalic.woff2 +0 -0
- package/src/assets/fonts/patron/patron-bold.woff2 +0 -0
- package/src/assets/fonts/patron/patron-bolditalic.woff2 +0 -0
- package/src/assets/fonts/patron/patron-italic.woff2 +0 -0
- package/src/assets/fonts/patron/patron-light.woff2 +0 -0
- package/src/assets/fonts/patron/patron-lightitalic.woff2 +0 -0
- package/src/assets/fonts/patron/patron-medium.woff2 +0 -0
- package/src/assets/fonts/patron/patron-mediumitalic.woff2 +0 -0
- package/src/assets/fonts/patron/patron-regular.woff2 +0 -0
- package/src/assets/fonts/patron/patron-thin.woff2 +0 -0
- package/src/assets/fonts/patron/patron-thinitalic.woff2 +0 -0
- package/src/assets/fonts/quintus/Quintus_B_trial.ttf +0 -0
- package/src/assets/fonts/quintus/Quintus_R_trial.ttf +0 -0
- package/src/assets/react.svg +0 -1
- package/src/components/Options.tsx +0 -27
- package/src/components/Question.tsx +0 -18
- package/src/components/Quiz.tsx +0 -297
- package/src/components/Timer.tsx +0 -53
- package/src/components/loader.tsx +0 -12
- package/src/components/quizEndScreen.tsx +0 -20
- package/src/components/tabSwitchModal.tsx +0 -30
- package/src/hooks/useDisableCopyPaste.ts +0 -25
- package/src/hooks/useTabSwitch.tsx +0 -29
- package/src/index.ts +0 -3
- package/src/styles/fonts.css +0 -44
- package/src/styles/loader.css +0 -27
- package/src/styles/options.css +0 -58
- package/src/styles/question.css +0 -40
- package/src/styles/quiz.css +0 -267
- package/src/styles/quizEndScreen.css +0 -33
- package/src/styles/tabSwitchModal.css +0 -78
- package/src/styles/timer.css +0 -5
- package/src/svg.d.ts +0 -6
- package/src/types/index.ts +0 -60
- package/tsconfig.json +0 -20
- package/wizr-quiz-1.0.0.tgz +0 -0
- package/wizr-sdk-1.0.0.tgz +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -7,8 +7,109 @@ interface IQuizProps {
|
|
|
7
7
|
onQuizComplete: () => Promise<void>;
|
|
8
8
|
baseURL: string;
|
|
9
9
|
token: string;
|
|
10
|
+
theme?: QuizTheme;
|
|
11
|
+
direction?: string;
|
|
12
|
+
handleClose?: () => void;
|
|
13
|
+
}
|
|
14
|
+
interface QuizTheme {
|
|
15
|
+
colors?: {
|
|
16
|
+
primary?: string;
|
|
17
|
+
secondary?: string;
|
|
18
|
+
background?: string;
|
|
19
|
+
surface?: string;
|
|
20
|
+
text?: {
|
|
21
|
+
primary?: string;
|
|
22
|
+
secondary?: string;
|
|
23
|
+
};
|
|
24
|
+
button?: {
|
|
25
|
+
primary?: string;
|
|
26
|
+
primaryText?: string;
|
|
27
|
+
secondary?: string;
|
|
28
|
+
secondaryText?: string;
|
|
29
|
+
disabled?: string;
|
|
30
|
+
disabledText?: string;
|
|
31
|
+
};
|
|
32
|
+
option?: {
|
|
33
|
+
background?: string;
|
|
34
|
+
hover?: string;
|
|
35
|
+
selected?: string;
|
|
36
|
+
border?: string;
|
|
37
|
+
text?: string;
|
|
38
|
+
};
|
|
39
|
+
border?: string;
|
|
40
|
+
scrollButton?: string;
|
|
41
|
+
};
|
|
42
|
+
typography?: {
|
|
43
|
+
fontFamily?: string;
|
|
44
|
+
fontSize?: {
|
|
45
|
+
small?: string;
|
|
46
|
+
medium?: string;
|
|
47
|
+
large?: string;
|
|
48
|
+
xlarge?: string;
|
|
49
|
+
};
|
|
50
|
+
fontWeight?: {
|
|
51
|
+
normal?: string;
|
|
52
|
+
medium?: string;
|
|
53
|
+
bold?: string;
|
|
54
|
+
};
|
|
55
|
+
lineHeight?: {
|
|
56
|
+
small?: string;
|
|
57
|
+
medium?: string;
|
|
58
|
+
large?: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
spacing?: {
|
|
62
|
+
small?: string;
|
|
63
|
+
medium?: string;
|
|
64
|
+
large?: string;
|
|
65
|
+
xlarge?: string;
|
|
66
|
+
};
|
|
67
|
+
borderRadius?: {
|
|
68
|
+
small?: string;
|
|
69
|
+
medium?: string;
|
|
70
|
+
large?: string;
|
|
71
|
+
};
|
|
72
|
+
transitions?: {
|
|
73
|
+
fast?: string;
|
|
74
|
+
medium?: string;
|
|
75
|
+
slow?: string;
|
|
76
|
+
};
|
|
77
|
+
loader?: {
|
|
78
|
+
background?: string;
|
|
79
|
+
spinnerColor?: string;
|
|
80
|
+
spinnerBorder?: string;
|
|
81
|
+
};
|
|
82
|
+
endScreen?: {
|
|
83
|
+
background?: string;
|
|
84
|
+
textColor?: string;
|
|
85
|
+
closeColor?: string;
|
|
86
|
+
fontSize?: string;
|
|
87
|
+
fontWeight?: string;
|
|
88
|
+
fontFamily?: string;
|
|
89
|
+
};
|
|
90
|
+
tabSwitchModal?: {
|
|
91
|
+
background?: string;
|
|
92
|
+
textColor?: string;
|
|
93
|
+
closeColor?: string;
|
|
94
|
+
textSecondaryColor?: string;
|
|
95
|
+
iconColor?: string;
|
|
96
|
+
buttonBackground?: string;
|
|
97
|
+
buttonTextColor?: string;
|
|
98
|
+
buttonHoverBackground?: string;
|
|
99
|
+
buttonHoverTextColor?: string;
|
|
100
|
+
fontFamily?: string;
|
|
101
|
+
textFontSize?: string;
|
|
102
|
+
buttonFontSize?: string;
|
|
103
|
+
padding?: string;
|
|
104
|
+
headerMargin?: string;
|
|
105
|
+
textMargin?: string;
|
|
106
|
+
buttonPadding?: string;
|
|
107
|
+
borderRadius?: string;
|
|
108
|
+
buttonBorderRadius?: string;
|
|
109
|
+
buttonTransition?: string;
|
|
110
|
+
};
|
|
10
111
|
}
|
|
11
112
|
|
|
12
|
-
declare const Quiz: ({ quizId, userId, tabSwitchLimit, onQuizComplete, baseURL, token, }: IQuizProps) => react_jsx_runtime.JSX.Element | null;
|
|
113
|
+
declare const Quiz: ({ quizId, userId, tabSwitchLimit, onQuizComplete, baseURL, token, theme, direction, handleClose, }: IQuizProps) => react_jsx_runtime.JSX.Element | null;
|
|
13
114
|
|
|
14
115
|
export { Quiz as default };
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1 @@
|
|
|
1
|
-
"use strict";var n=require("react");function e(n){var e=Object.create(null);return n&&Object.keys(n).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:function(){return n[t]}})}})),e.default=n,Object.freeze(e)}var t=e(n);function r(n,e,t,r){return new(t||(t=Promise))((function(o,i){function a(n){try{c(r.next(n))}catch(n){i(n)}}function s(n){try{c(r.throw(n))}catch(n){i(n)}}function c(n){var e;n.done?o(n.value):(e=n.value,e instanceof t?e:new t((function(n){n(e)}))).then(a,s)}c((r=r.apply(n,e||[])).next())}))}function o(n,e){var t,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(t=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=e.call(n,i)}catch(n){s=[6,n],r=0}finally{t=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}"function"==typeof SuppressedError&&SuppressedError;var i,a={exports:{}},s={};var c,l,u={};
|
|
2
|
-
/**
|
|
3
|
-
* @license React
|
|
4
|
-
* react-jsx-runtime.development.js
|
|
5
|
-
*
|
|
6
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
7
|
-
*
|
|
8
|
-
* This source code is licensed under the MIT license found in the
|
|
9
|
-
* LICENSE file in the root directory of this source tree.
|
|
10
|
-
*/function f(){return c||(c=1,"production"!==process.env.NODE_ENV&&function(){var e=n,t=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),c=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),d=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),h=Symbol.for("react.offscreen"),y=Symbol.iterator;var b=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function g(n){for(var e=arguments.length,t=new Array(e>1?e-1:0),r=1;r<e;r++)t[r-1]=arguments[r];!function(n,e,t){var r=b.ReactDebugCurrentFrame,o=r.getStackAddendum();""!==o&&(e+="%s",t=t.concat([o]));var i=t.map((function(n){return String(n)}));i.unshift("Warning: "+e),Function.prototype.apply.call(console[n],console,i)}("error",n,t)}var v;function x(n){return n.displayName||"Context"}function w(n){if(null==n)return null;if("number"==typeof n.tag&&g("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),"function"==typeof n)return n.displayName||n.name||null;if("string"==typeof n)return n;switch(n){case o:return"Fragment";case r:return"Portal";case a:return"Profiler";case i:return"StrictMode";case f:return"Suspense";case p:return"SuspenseList"}if("object"==typeof n)switch(n.$$typeof){case c:return x(n)+".Consumer";case s:return x(n._context)+".Provider";case l:return function(n,e,t){var r=n.displayName;if(r)return r;var o=e.displayName||e.name||"";return""!==o?t+"("+o+")":t}(n,n.render,"ForwardRef");case d:var e=n.displayName||null;return null!==e?e:w(n.type)||"Memo";case m:var t=n,u=t._payload,h=t._init;try{return w(h(u))}catch(n){return null}}return null}v=Symbol.for("react.module.reference");var k,j,E,S,z,_,O,N=Object.assign,P=0;function R(){}R.__reactDisabledLog=!0;var T,q=b.ReactCurrentDispatcher;function C(n,e,t){if(void 0===T)try{throw Error()}catch(n){var r=n.stack.trim().match(/\n( *(at )?)/);T=r&&r[1]||""}return"\n"+T+n}var L,I=!1,D="function"==typeof WeakMap?WeakMap:Map;function $(n,e){if(!n||I)return"";var t,r=L.get(n);if(void 0!==r)return r;I=!0;var o,i=Error.prepareStackTrace;Error.prepareStackTrace=void 0,o=q.current,q.current=null,function(){if(0===P){k=console.log,j=console.info,E=console.warn,S=console.error,z=console.group,_=console.groupCollapsed,O=console.groupEnd;var n={configurable:!0,enumerable:!0,value:R,writable:!0};Object.defineProperties(console,{info:n,log:n,warn:n,error:n,group:n,groupCollapsed:n,groupEnd:n})}P++}();try{if(e){var a=function(){throw Error()};if(Object.defineProperty(a.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(a,[])}catch(n){t=n}Reflect.construct(n,[],a)}else{try{a.call()}catch(n){t=n}n.call(a.prototype)}}else{try{throw Error()}catch(n){t=n}n()}}catch(e){if(e&&t&&"string"==typeof e.stack){for(var s=e.stack.split("\n"),c=t.stack.split("\n"),l=s.length-1,u=c.length-1;l>=1&&u>=0&&s[l]!==c[u];)u--;for(;l>=1&&u>=0;l--,u--)if(s[l]!==c[u]){if(1!==l||1!==u)do{if(l--,--u<0||s[l]!==c[u]){var f="\n"+s[l].replace(" at new "," at ");return n.displayName&&f.includes("<anonymous>")&&(f=f.replace("<anonymous>",n.displayName)),"function"==typeof n&&L.set(n,f),f}}while(l>=1&&u>=0);break}}}finally{I=!1,q.current=o,function(){if(0==--P){var n={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:N({},n,{value:k}),info:N({},n,{value:j}),warn:N({},n,{value:E}),error:N({},n,{value:S}),group:N({},n,{value:z}),groupCollapsed:N({},n,{value:_}),groupEnd:N({},n,{value:O})})}P<0&&g("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=i}var p=n?n.displayName||n.name:"",d=p?C(p):"";return"function"==typeof n&&L.set(n,d),d}function F(n,e,t){if(null==n)return"";if("function"==typeof n)return $(n,!(!(r=n.prototype)||!r.isReactComponent));var r;if("string"==typeof n)return C(n);switch(n){case f:return C("Suspense");case p:return C("SuspenseList")}if("object"==typeof n)switch(n.$$typeof){case l:return $(n.render,!1);case d:return F(n.type,e,t);case m:var o=n,i=o._payload,a=o._init;try{return F(a(i),e,t)}catch(n){}}return""}L=new D;var A=Object.prototype.hasOwnProperty,B={},M=b.ReactDebugCurrentFrame;function W(n){if(n){var e=n._owner,t=F(n.type,n._source,e?e.type:null);M.setExtraStackFrame(t)}else M.setExtraStackFrame(null)}var U=Array.isArray;function H(n){return U(n)}function Y(n){return""+n}function V(n){if(function(n){try{return Y(n),!1}catch(n){return!0}}(n))return g("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",function(n){return"function"==typeof Symbol&&Symbol.toStringTag&&n[Symbol.toStringTag]||n.constructor.name||"Object"}(n)),Y(n)}var K,J,Q=b.ReactCurrentOwner,X={key:!0,ref:!0,__self:!0,__source:!0};function G(n,e,r,o,i){var a,s={},c=null,l=null;for(a in void 0!==r&&(V(r),c=""+r),function(n){if(A.call(n,"key")){var e=Object.getOwnPropertyDescriptor(n,"key").get;if(e&&e.isReactWarning)return!1}return void 0!==n.key}(e)&&(V(e.key),c=""+e.key),function(n){if(A.call(n,"ref")){var e=Object.getOwnPropertyDescriptor(n,"ref").get;if(e&&e.isReactWarning)return!1}return void 0!==n.ref}(e)&&(l=e.ref,function(n){"string"==typeof n.ref&&Q.current}(e)),e)A.call(e,a)&&!X.hasOwnProperty(a)&&(s[a]=e[a]);if(n&&n.defaultProps){var u=n.defaultProps;for(a in u)void 0===s[a]&&(s[a]=u[a])}if(c||l){var f="function"==typeof n?n.displayName||n.name||"Unknown":n;c&&function(n,e){var t=function(){K||(K=!0,g("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",e))};t.isReactWarning=!0,Object.defineProperty(n,"key",{get:t,configurable:!0})}(s,f),l&&function(n,e){var t=function(){J||(J=!0,g("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",e))};t.isReactWarning=!0,Object.defineProperty(n,"ref",{get:t,configurable:!0})}(s,f)}return function(n,e,r,o,i,a,s){var c={$$typeof:t,type:n,key:e,ref:r,props:s,_owner:a,_store:{}};return Object.defineProperty(c._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(c,"_self",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(c,"_source",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(c.props),Object.freeze(c)),c}(n,c,l,i,o,Q.current,s)}var Z,nn=b.ReactCurrentOwner,en=b.ReactDebugCurrentFrame;function tn(n){if(n){var e=n._owner,t=F(n.type,n._source,e?e.type:null);en.setExtraStackFrame(t)}else en.setExtraStackFrame(null)}function rn(n){return"object"==typeof n&&null!==n&&n.$$typeof===t}function on(){if(nn.current){var n=w(nn.current.type);if(n)return"\n\nCheck the render method of `"+n+"`."}return""}Z=!1;var an={};function sn(n,e){if(n._store&&!n._store.validated&&null==n.key){n._store.validated=!0;var t=function(n){var e=on();if(!e){var t="string"==typeof n?n:n.displayName||n.name;t&&(e="\n\nCheck the top-level render call using <"+t+">.")}return e}(e);if(!an[t]){an[t]=!0;var r="";n&&n._owner&&n._owner!==nn.current&&(r=" It was passed a child from "+w(n._owner.type)+"."),tn(n),g('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,r),tn(null)}}}function cn(n,e){if("object"==typeof n)if(H(n))for(var t=0;t<n.length;t++){var r=n[t];rn(r)&&sn(r,e)}else if(rn(n))n._store&&(n._store.validated=!0);else if(n){var o=function(n){if(null===n||"object"!=typeof n)return null;var e=y&&n[y]||n["@@iterator"];return"function"==typeof e?e:null}(n);if("function"==typeof o&&o!==n.entries)for(var i,a=o.call(n);!(i=a.next()).done;)rn(i.value)&&sn(i.value,e)}}function ln(n){var e,t=n.type;if(null!=t&&"string"!=typeof t){if("function"==typeof t)e=t.propTypes;else{if("object"!=typeof t||t.$$typeof!==l&&t.$$typeof!==d)return;e=t.propTypes}if(e){var r=w(t);!function(n,e,t,r,o){var i=Function.call.bind(A);for(var a in n)if(i(n,a)){var s=void 0;try{if("function"!=typeof n[a]){var c=Error((r||"React class")+": "+t+" type `"+a+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof n[a]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw c.name="Invariant Violation",c}s=n[a](e,a,r,t,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(n){s=n}!s||s instanceof Error||(W(o),g("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",r||"React class",t,a,typeof s),W(null)),s instanceof Error&&!(s.message in B)&&(B[s.message]=!0,W(o),g("Failed %s type: %s",t,s.message),W(null))}}(e,n.props,"prop",r,n)}else if(void 0!==t.PropTypes&&!Z){Z=!0,g("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",w(t)||"Unknown")}"function"!=typeof t.getDefaultProps||t.getDefaultProps.isReactClassApproved||g("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}var un={};function fn(n,e,r,u,y,b){var x=function(n){return"string"==typeof n||"function"==typeof n||n===o||n===a||n===i||n===f||n===p||n===h||"object"==typeof n&&null!==n&&(n.$$typeof===m||n.$$typeof===d||n.$$typeof===s||n.$$typeof===c||n.$$typeof===l||n.$$typeof===v||void 0!==n.getModuleId)}(n);if(!x){var k="";(void 0===n||"object"==typeof n&&null!==n&&0===Object.keys(n).length)&&(k+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var j;k+=on(),null===n?j="null":H(n)?j="array":void 0!==n&&n.$$typeof===t?(j="<"+(w(n.type)||"Unknown")+" />",k=" Did you accidentally export a JSX literal instead of a component?"):j=typeof n,g("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",j,k)}var E=G(n,e,r,y,b);if(null==E)return E;if(x){var S=e.children;if(void 0!==S)if(u)if(H(S)){for(var z=0;z<S.length;z++)cn(S[z],n);Object.freeze&&Object.freeze(S)}else g("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else cn(S,n)}if(A.call(e,"key")){var _=w(n),O=Object.keys(e).filter((function(n){return"key"!==n})),N=O.length>0?"{key: someKey, "+O.join(": ..., ")+": ...}":"{key: someKey}";if(!un[_+N])g('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',N,_,O.length>0?"{"+O.join(": ..., ")+": ...}":"{}",_),un[_+N]=!0}return n===o?function(n){for(var e=Object.keys(n.props),t=0;t<e.length;t++){var r=e[t];if("children"!==r&&"key"!==r){tn(n),g("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",r),tn(null);break}}null!==n.ref&&(tn(n),g("Invalid attribute `ref` supplied to `React.Fragment`."),tn(null))}(E):ln(E),E}var pn=function(n,e,t){return fn(n,e,t,!1)},dn=function(n,e,t){return fn(n,e,t,!0)};u.Fragment=o,u.jsx=pn,u.jsxs=dn}()),u}var p=(l||(l=1,"production"===process.env.NODE_ENV?a.exports=function(){if(i)return s;i=1;var e=n,t=Symbol.for("react.element"),r=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,a=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function l(n,e,r){var i,s={},l=null,u=null;for(i in void 0!==r&&(l=""+r),void 0!==e.key&&(l=""+e.key),void 0!==e.ref&&(u=e.ref),e)o.call(e,i)&&!c.hasOwnProperty(i)&&(s[i]=e[i]);if(n&&n.defaultProps)for(i in e=n.defaultProps)void 0===s[i]&&(s[i]=e[i]);return{$$typeof:t,type:n,key:l,ref:u,props:s,_owner:a.current}}return s.Fragment=r,s.jsx=l,s.jsxs=l,s}():a.exports=f()),a.exports);function d(n,e){void 0===e&&(e={});var t=e.insertAt;if(n&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===t&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=n:o.appendChild(document.createTextNode(n))}}d('/* .questionHtmlWrapper ul {\n list-style-type: disc;\n padding-left: 1.5rem;\n list-style-position: inside;\n}\n\n.questionHtmlWrapper ol {\n list-style-type: disc;\n padding-left: 1.5rem;\n list-style-position: inside;\n} */\n\n.question-text {\n font-size: 1.15rem;\n font-weight: 600;\n color: #161c20;\n font-family: "Patron", sans-serif;\n line-height: 25px;\n}\n\ncode {\n font-size: 0.8rem;\n font-weight: normal;\n}\n\n@media (max-width: 1320px) {\n .question-text {\n font-size: 1rem;\n }\n .questionHtmlWrapper code {\n font-size: 0.8rem;\n }\n}\n\n@media (max-width: 768px) {\n .question-text {\n font-size: 0.95rem;\n line-height: 22px;\n }\n}\n');var m=function(n){var e=n.question;return p.jsx("div",{className:"question-html-wrapper",children:p.jsx("h2",{className:"question-text",dangerouslySetInnerHTML:{__html:e}})})};d('.options-container {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.option-btn {\n width: 100%;\n padding: 12px;\n border-radius: 8px;\n background: #ffffff;\n cursor: pointer;\n transition: 0.3s;\n color: #161c20;\n border: none;\n text-align: left;\n border: 1px solid #e7e7e7;\n}\n\n.option-btn:hover {\n background: #e1d8c9;\n}\n\n.option-btn.selected {\n background: #b59b7b;\n}\n\n.option-text {\n font-size: 1rem;\n font-weight: 500;\n line-height: 22px;\n letter-spacing: -0.1%;\n font-family: "Patron", sans-serif;\n}\n\n.option-image {\n max-width: 100%;\n height: auto;\n border-radius: 5px;\n}\n\n.option-code {\n background-color: #1e1e1e;\n color: white;\n padding: 8px;\n border-radius: 5px;\n}\n\n@media (max-width: 768px) {\n .option-text {\n font-size: 0.95rem;\n line-height: 21px;\n }\n\n .option-btn:hover {\n background: #b59b7b;\n }\n}\n');var h,y=function(n){var e=n.options,t=n.selectedOption,r=n.onSelect,o=n.loading;return p.jsx("div",{className:"options-container",children:e.map((function(n){return p.jsx("button",{disabled:o,className:"option-btn ".concat(t===n.id&&"selected"),onClick:function(){return r(n.id)},children:n.text&&p.jsx("span",{className:"option-text",children:n.text})},n.id)}))})};function b(){return b=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},b.apply(null,arguments)}var g=function(n){return t.createElement("svg",b({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none"},n),h||(h=t.createElement("path",{fill:"#1D1B21",d:"M8 2.5a6 6 0 1 0 6 6 6.006 6.006 0 0 0-6-6m2.854 3.854-2.5 2.5a.5.5 0 0 1-.708-.708l2.5-2.5a.5.5 0 1 1 .708.708M6 1a.5.5 0 0 1 .5-.5h3a.5.5 0 1 1 0 1h-3A.5.5 0 0 1 6 1"})))};d(".timer {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n");var v=function(e){var t=e.duration,r=e.markQuizComplete,o=e.isEndScreenOpen,i=n.useState(t),a=i[0],s=i[1],c=n.useRef(null);n.useEffect((function(){return c.current&&clearInterval(c.current),c.current=setInterval((function(){s((function(n){return n>0?n-1:0}))}),1e3),function(){c.current&&clearInterval(c.current)}}),[t]),n.useEffect((function(){0===a&&(r(),c.current&&clearInterval(c.current))}),[a,r]),n.useEffect((function(){o&&c.current&&clearInterval(c.current)}),[o]);var l,u,f;return p.jsxs("div",{className:"timer",children:[p.jsx(g,{}),p.jsx("span",{children:(l=a,u=Math.floor(l/60),f=l%60,"".concat(u,":").concat(f<10?"0":"").concat(f))})]})};d('/* Modal Background Overlay */\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n}\n\n/* Modal Box */\n.modal-content {\n background: #222;\n color: #fff;\n padding: 20px;\n border-radius: 10px;\n width: 400px;\n text-align: center;\n position: relative;\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);\n}\n\n/* Close Button */\n.modal-close {\n position: absolute;\n top: 10px;\n right: 15px;\n background: none;\n border: none;\n font-size: 24px;\n color: #fff;\n cursor: pointer;\n font-family: "Patron", sans-serif;\n}\n\n/* Header */\n.modal-header {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-bottom: 10px;\n font-family: "Patron", sans-serif;\n}\n\n/* Warning Icon */\n.modal-icon {\n font-size: 32px;\n color: #ffcc00;\n}\n\n/* Text */\n.modal-text {\n font-size: 14px;\n color: #ccc;\n margin-bottom: 20px;\n font-family: "Patron", sans-serif;\n}\n\n/* Button */\n.modal-button {\n background: #fff;\n color: #222;\n border: none;\n padding: 10px 20px;\n border-radius: 20px;\n font-size: 14px;\n cursor: pointer;\n transition: 0.3s;\n font-family: "Patron", sans-serif;\n}\n\n.modal-button:hover {\n background: #ddd;\n}\n');var x=function(n){var e=n.open,t=n.onClose;return e?p.jsx("div",{className:"modal-overlay",children:p.jsxs("div",{className:"modal-content",children:[p.jsx("button",{className:"modal-close",onClick:t,children:"×"}),p.jsxs("div",{className:"modal-header",children:[p.jsx("span",{className:"modal-icon",children:"⚠️"}),p.jsx("h2",{children:"Tab Switch Detected"})]}),p.jsx("p",{className:"modal-text",children:"Any further attempts to switch tabs or change browser windows will result in disqualification from the assessment."}),p.jsx("button",{className:"modal-button",onClick:t,children:"Understood"})]})}):null};d('.end-screen-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: #222;\n color: #fff;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n}\n\n/* Content */\n.end-screen-content {\n text-align: center;\n font-size: 20px;\n font-weight: bold;\n font-family: "Patron", sans-serif;\n}\n\n.end-screen-close {\n position: absolute;\n top: 20px;\n right: 20px;\n background: none;\n border: none;\n font-size: 24px;\n color: #fff;\n cursor: pointer;\n font-family: "Patron", sans-serif;\n}\n');var w,k,j,E=function(n){var e=n.open;return n.onClose,e?p.jsx("div",{className:"end-screen-overlay",children:p.jsx("div",{className:"end-screen-content",children:p.jsx("p",{children:"Your quiz has ended due to switching tabs too many times."})})}):null};function S(){return S=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},S.apply(null,arguments)}var z=function(n){return t.createElement("svg",S({xmlns:"http://www.w3.org/2000/svg",width:38,height:38,fill:"none"},n),w||(w=t.createElement("rect",{width:38,height:38,fill:"#151515",rx:19})),k||(k=t.createElement("g",{clipPath:"url(#downArrow_svg__a)"},t.createElement("path",{fill:"#fff",d:"M8.758 21.194c.037.14.145.36.234.492.09.136 2.138 2.222 4.556 4.636 5.035 5.03 4.594 4.655 5.452 4.655.427 0 .525-.015.727-.113.182-.094 1.18-1.06 4.725-4.594 2.47-2.465 4.546-4.57 4.612-4.678.145-.243.248-.623.248-.91 0-.454-.295-1.077-.637-1.335-.342-.263-.97-.399-1.397-.3-.534.122-.576.16-3.319 2.873-2.667 2.649-2.878 2.883-3.117 3.46-.08.201-.084-.043-.108-8.442l-.023-8.649-.127-.267a1.84 1.84 0 0 0-.796-.84c-.282-.154-.32-.159-.788-.159-.445 0-.516.015-.75.132-.464.239-.788.633-.919 1.12-.056.211-.065 1.608-.065 8.756v8.508l-.136-.281a3.7 3.7 0 0 0-.347-.563c-.117-.154-1.36-1.425-2.761-2.817-1.945-1.94-2.602-2.569-2.78-2.658-.914-.454-1.94-.13-2.376.75-.178.361-.22.83-.108 1.224"}))),j||(j=t.createElement("defs",null,t.createElement("clipPath",{id:"downArrow_svg__a"},t.createElement("path",{fill:"#fff",d:"M7 31V7h24v24z"})))))};d(".loader-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: black;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9999;\n}\n\n.loader-spinner {\n border: 8px solid rgba(255, 255, 255, 0.2);\n border-top: 8px solid white;\n border-radius: 50%;\n width: 60px;\n height: 60px;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n");var _=function(){return p.jsx("div",{className:"loader-overlay",children:p.jsx("div",{className:"loader-spinner"})})};d('* {\n box-sizing: border-box;\n}\n\n.quiz-page {\n position: fixed;\n background: white;\n width: 100vw;\n min-height: 100dvh;\n top: 0;\n left: 0;\n z-index: 100;\n box-sizing: border-box;\n overflow-y: auto; /* ensure scrolling works */\n display: flex;\n flex-direction: column;\n}\n\n.quiz-page-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n border-radius: 16px;\n margin: 24px 16px 0px 16px;\n height: 100%;\n background: #f8f5f2; /* Same background color */\n}\n\n/* Ticker stays in a row on all devices */\n.quiz-ticker {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 20px;\n border-bottom: 1px solid #e1d8c9;\n}\n\n.quiz-ticker-right {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 2rem;\n padding-right: 2rem;\n}\n\n.quiz-container {\n flex-grow: 1;\n width: 100%;\n display: flex;\n flex-direction: row; /* side-by-side on desktop */\n align-items: flex-start;\n padding: 24px 56px 24px;\n border-radius: 10px;\n justify-content: space-between;\n box-sizing: border-box;\n max-width: 1600px;\n margin: 0 auto;\n max-height: 80dvh;\n overflow: auto;\n gap: 2rem;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* Internet Explorer 10+ */\n}\n\n.quiz-container::-webkit-scrollbar {\n display: none;\n}\n\n/* Left & Right columns on desktop */\n.quiz-left {\n width: 100%;\n max-width: 650px;\n overflow: auto;\n scrollbar-width: thin;\n scrollbar-color: #ccc transparent; /* thumb color, track color */\n}\n\n/* WebKit-based browsers (Chrome, Safari, Edge) */\n.quiz-left::-webkit-scrollbar {\n width: 6px; /* slim scrollbar */\n}\n\n.quiz-left::-webkit-scrollbar-thumb {\n background-color: #ccc; /* grey thumb */\n border-radius: 4px;\n}\n\n.quiz-left::-webkit-scrollbar-track {\n background: transparent; /* optional: transparent track */\n}\n\n.quiz-right {\n max-width: 622px;\n width: 100%;\n}\n\n.quiz-right-head {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.choose-option {\n font-size: 1rem;\n font-family: "Patron", sans-serif;\n font-weight: 500;\n line-height: 32px;\n letter-spacing: 0.2%;\n}\n\n.question-count {\n font-size: 0.9rem;\n font-family: "Patron", sans-serif;\n color: #161c20;\n font-weight: 500;\n line-height: 1.2rem;\n}\n\n.options-container {\n display: flex;\n flex-direction: column;\n gap: 18px;\n margin-top: 12px;\n}\n\n.mobile-next-btn {\n display: none;\n}\n\n/* Button Styles */\n.prev-btn,\n.next-btn {\n padding: 10px 54px;\n background: #000000;\n color: #ffffff;\n border: none;\n border-radius: 24px;\n cursor: pointer;\n transition: 0.3s;\n font-size: 0.9rem;\n font-weight: 500;\n font-family: "Patron", sans-serif;\n line-height: 21px;\n}\n\n.prev-btn {\n background: #5d4037;\n}\n\n.next-btn:disabled {\n background: #d7ccc8;\n cursor: not-allowed;\n}\n\n.scroll-down-btn {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 999;\n border: none;\n border-radius: 50%;\n padding: 4px;\n cursor: pointer;\n font-size: 20px;\n transition: background 0.3s;\n}\n\n.bounce {\n animation: bounce 1.6s infinite;\n}\n\n@keyframes bounce {\n 0%,\n 20%,\n 50%,\n 80%,\n 100% {\n transform: translateY(0px);\n }\n 40% {\n transform: translateY(-4px);\n }\n 60% {\n transform: translateY(-2px);\n }\n}\n\n/* RESPONSIVE LAYOUT */\n@media (max-width: 768px) {\n /* Stack quiz content vertically on mobile */\n\n .quiz-page-container {\n flex-direction: column;\n padding: 16px;\n gap: 1rem;\n overflow-y: auto;\n margin: 0;\n border-radius: 0;\n }\n\n .quiz-container {\n flex-direction: column;\n padding: 0;\n justify-content: space-between;\n }\n\n .quiz-ticker {\n padding: 3px 20px;\n }\n\n .quiz-left {\n max-height: none;\n overflow: initial;\n }\n\n .quiz-ticker-right {\n padding-right: 0px;\n }\n\n .choose-option {\n font-size: 0.95rem;\n }\n /* Keep the ticker in a row at the top (no change) */\n\n /* Fix the next button at the bottom on mobile */\n .next-btn-container {\n display: none;\n }\n\n .mobile-next-btn {\n display: block;\n position: fixed;\n left: 0;\n bottom: 0;\n margin: 0 auto;\n text-align: center;\n z-index: 101;\n width: 100%;\n padding: 12px 0;\n border-top: 1px solid #dddddd;\n background: #f8f5f2; /* Same background color */\n }\n\n .next-btn {\n padding: 12px 72px;\n }\n\n .question-count {\n font-size: 0.95rem;\n }\n .option-btn {\n font-size: 0.8rem;\n padding: 10px;\n }\n}\n\n@media (max-width: 768px) and (max-height: 800px) {\n .quiz-container {\n padding-bottom: 65px;\n }\n}\n\n@media (max-width: 768px) and (max-height: 500px) {\n .quiz-container {\n padding-bottom: 100px;\n }\n}\n');d('/* Thin (100) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-thin.woff2") format("woff2");\n font-weight: 100;\n font-style: normal;\n font-display: swap;\n}\n\n/* Light (300) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-light.woff2") format("woff2");\n font-weight: 300;\n font-style: normal;\n font-display: swap;\n}\n\n/* Regular (400) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-regular.woff2") format("woff2");\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n}\n\n/* Medium (500) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-medium.woff2") format("woff2");\n font-weight: 500;\n font-style: normal;\n font-display: swap;\n}\n\n/* Bold (700) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-bold.woff2") format("woff2");\n font-weight: 700;\n font-style: normal;\n font-display: swap;\n}\n');module.exports=function(e){var t=e.quizId,i=e.userId,a=e.tabSwitchLimit,s=e.onQuizComplete,c=e.baseURL,l=e.token,u=n.useState(!1),f=u[0],d=u[1],h=n.useState(0),b=h[0],g=h[1],w=n.useState(null),k=w[0],j=w[1],S=n.useState(null),O=S[0],N=S[1],P=n.useState(!1),R=P[0],T=P[1],q=n.useState(!1),C=q[0],L=q[1],I=n.useState(!1),D=I[0],$=I[1],F=function(e){void 0===e&&(e=3);var t=n.useState(0),r=t[0],o=t[1],i=n.useState(!1),a=i[0],s=i[1];return n.useEffect((function(){var n=function(){document.hidden&&o((function(n){return n+1}))};return document.addEventListener("visibilitychange",n),function(){document.removeEventListener("visibilitychange",n)}}),[]),n.useEffect((function(){r>=e&&s(!0)}),[r,e]),{switchCount:r,isLimitReached:a}}(a),A=F.isLimitReached,B=F.switchCount,M=n.useRef([]);n.useEffect((function(){var n=function(n){return n.preventDefault()},e=function(n){return n.preventDefault()},t=function(n){return n.preventDefault()};return document.addEventListener("copy",n),document.addEventListener("cut",n),document.addEventListener("paste",n),document.addEventListener("selectstart",e),document.addEventListener("contextmenu",t),function(){document.removeEventListener("copy",n),document.removeEventListener("cut",n),document.removeEventListener("paste",n),document.removeEventListener("selectstart",e),document.removeEventListener("contextmenu",t)}}),[]),n.useEffect((function(){r(void 0,void 0,void 0,(function(){var n;return o(this,(function(e){switch(e.label){case 0:return e.trys.push([0,3,,4]),[4,fetch("".concat(c,"/user-assessment/").concat(t,"/").concat(i,"/get-session-data"),{headers:{Authorization:"Bearer ".concat(l)}})];case 1:return[4,e.sent().json()];case 2:return n=e.sent(),N(n),[3,4];case 3:return e.sent(),[3,4];case 4:return[2]}}))}))}),[t,i]);var W=n.useRef(null),U=n.useState(!1),H=U[0],Y=U[1],V=n.useState(!1),K=V[0],J=V[1];n.useEffect((function(){if(O){var n=W.current;if(n){var e=function(){var e=n.scrollHeight>n.clientHeight,t=n.scrollTop+n.clientHeight>=n.scrollHeight-15;e?(t&&J(!0),Y(!t&&!K)):(Y(!1),J(!1))},t=requestAnimationFrame((function(){setTimeout(e,100)}));return n.addEventListener("scroll",e),window.addEventListener("resize",e),function(){cancelAnimationFrame(t),n.removeEventListener("scroll",e),window.removeEventListener("resize",e)}}}}),[O,b,K]);if(n.useEffect((function(){B>0&&B<3&&T(!0)}),[B]),n.useEffect((function(){A&&L(!0)}),[A]),n.useEffect((function(){return function(){M.current.forEach((function(n){return clearTimeout(n)})),M.current=[]}}),[]),!O)return p.jsx(_,{});function Q(){T(!1),L(!1)}var X=O.questions,G=function(n,e,t,i){return r(void 0,void 0,void 0,(function(){return o(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,fetch("".concat(c,"/user-assessment/").concat(n,"/").concat(t,"/").concat(e,"/submit-answer"),{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(l)},body:JSON.stringify({optionIds:[i]})})];case 1:case 2:return r.sent(),[3,3];case 3:return[2]}}))}))},Z=function(){return r(void 0,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return n.trys.push([0,4,,5]),[4,fetch("".concat(c,"/user-assessment/").concat(t,"/").concat(i,"/mark-quiz-complete"),{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(l)}})];case 1:return n.sent().ok?(d(!0),[4,s()]):[3,3];case 2:return n.sent(),[3,3];case 3:return[3,5];case 4:return n.sent(),[3,5];case 5:return[2]}}))}))},nn=function(){return r(void 0,void 0,void 0,(function(){var n;return o(this,(function(e){switch(e.label){case 0:if(!k)return[2];$(!0),e.label=1;case 1:return e.trys.push([1,,6,7]),[4,G(t,X[b].id,i,k)];case 2:return e.sent(),b!==X.length-1?[3,4]:[4,Z()];case 3:return e.sent(),[3,5];case 4:j(null),n=null===window||void 0===window?void 0:window.setTimeout((function(){g((function(n){return n+1}));var n=window.setTimeout((function(){J(!1)}),150);M.current.push(n)}),300),M.current.push(n),e.label=5;case 5:return[3,7];case 6:return n=null===window||void 0===window?void 0:window.setTimeout((function(){$(!1)}),300),M.current.push(n),[7];case 7:return[2]}}))}))};function en(){return D?"Submitting":b===X.length-1?"Submit":"Next"}return f?null:p.jsxs("div",{className:"quiz-page",children:[p.jsxs("div",{className:"quiz-page-container",children:[p.jsxs("div",{className:"quiz-ticker",children:[p.jsxs("h3",{className:"question-count",children:["Questions: ",b+1,"/",X.length]}),p.jsx("div",{className:"quiz-ticker-right",children:p.jsx(v,{markQuizComplete:Z,duration:O.duration,isEndScreenOpen:C})})]}),p.jsxs("div",{className:"quiz-container",ref:W,children:[p.jsx("div",{className:"quiz-left",children:p.jsx(m,{question:X[b].text})}),p.jsxs("div",{className:"quiz-right",children:[p.jsxs("div",{className:"quiz-right-head",children:[p.jsx("h3",{className:"choose-option",children:"Choose the right option"}),p.jsx("div",{className:"next-btn-container",children:p.jsx("button",{className:"next-btn",disabled:!k||D,onClick:nn,children:en()})}),p.jsx("div",{className:"mobile-next-btn",children:p.jsx("button",{className:"next-btn",disabled:!k||D,onClick:nn,children:en()})})]}),p.jsx(y,{loading:D,options:X[b].options,selectedOption:k,onSelect:j})]})]})]}),p.jsx(x,{open:R,onClose:Q}),p.jsx(E,{open:C,onClose:Q}),H&&p.jsx("button",{className:"scroll-down-btn bounce",onClick:function(){var n=W.current;n&&(n.scrollTo({top:n.scrollHeight+10,behavior:"smooth"}),J(!0),Y(!1))},children:p.jsx(z,{})})]})};
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
"use strict";var n=require("react/jsx-runtime"),t=require("react");function e(n){var t=Object.create(null);return n&&Object.keys(n).forEach((function(e){if("default"!==e){var o=Object.getOwnPropertyDescriptor(n,e);Object.defineProperty(t,e,o.get?o:{enumerable:!0,get:function(){return n[e]}})}})),t.default=n,Object.freeze(t)}var o=e(t),i=function(){return i=Object.assign||function(n){for(var t,e=1,o=arguments.length;e<o;e++)for(var i in t=arguments[e])Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n},i.apply(this,arguments)};function r(n,t,e,o){return new(e||(e=Promise))((function(i,r){function a(n){try{s(o.next(n))}catch(n){r(n)}}function l(n){try{s(o.throw(n))}catch(n){r(n)}}function s(n){var t;n.done?i(n.value):(t=n.value,t instanceof e?t:new e((function(n){n(t)}))).then(a,l)}s((o=o.apply(n,t||[])).next())}))}function a(n,t){var e,o,i,r={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=l(0),a.throw=l(1),a.return=l(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(l){return function(s){return function(l){if(e)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(r=0)),r;)try{if(e=1,o&&(i=2&l[0]?o.return:l[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,l[1])).done)return i;switch(o=0,i&&(l=[2&l[0],i.value]),l[0]){case 0:case 1:i=l;break;case 4:return r.label++,{value:l[1],done:!1};case 5:r.label++,o=l[1],l=[0];continue;case 7:l=r.ops.pop(),r.trys.pop();continue;default:if(!(i=r.trys,(i=i.length>0&&i[i.length-1])||6!==l[0]&&2!==l[0])){r=0;continue}if(3===l[0]&&(!i||l[1]>i[0]&&l[1]<i[3])){r.label=l[1];break}if(6===l[0]&&r.label<i[1]){r.label=i[1],i=l;break}if(i&&r.label<i[2]){r.label=i[2],r.ops.push(l);break}i[2]&&r.ops.pop(),r.trys.pop();continue}l=t.call(n,r)}catch(n){l=[6,n],o=0}finally{e=i=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,s])}}}function l(n,t){void 0===t&&(t={});var e=t.insertAt;if(n&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===e&&o.firstChild?o.insertBefore(i,o.firstChild):o.appendChild(i),i.styleSheet?i.styleSheet.cssText=n:i.appendChild(document.createTextNode(n))}}"function"==typeof SuppressedError&&SuppressedError;l('/* .questionHtmlWrapper ul {\n list-style-type: disc;\n padding-left: 1.5rem;\n list-style-position: inside;\n}\n\n.questionHtmlWrapper ol {\n list-style-type: disc;\n padding-left: 1.5rem;\n list-style-position: inside;\n} */\n\n.question-text {\n font-size: var(--quiz-font-size-large, 1.15rem);\n font-weight: var(--quiz-font-weight-bold, 600);\n color: var(--quiz-color-text-primary, #161c20);\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n line-height: 25px;\n}\n\ncode {\n font-size: 0.8rem;\n font-weight: normal;\n}\n\n@media (max-width: 1320px) {\n .question-text {\n font-size: var(--quiz-font-size-medium, 1rem);\n }\n .questionHtmlWrapper code {\n font-size: 0.8rem;\n }\n}\n\n@media (max-width: 768px) {\n .question-text {\n font-size: 0.95rem;\n line-height: 22px;\n }\n}\n');var s=function(t){var e=t.question;return n.jsx("div",{className:"question-html-wrapper",children:n.jsx("h2",{className:"question-text",dangerouslySetInnerHTML:{__html:e}})})};l('.options-container {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.option-btn {\n width: 100%;\n padding: 12px;\n border-radius: var(--quiz-border-radius-medium, 8px);\n background: var(--quiz-color-option-background, #ffffff);\n cursor: pointer;\n transition: var(--quiz-transition-medium, 0.3s);\n color: var(--quiz-color-option-text, #161c20);\n border: none;\n text-align: left;\n border: 1px solid var(--quiz-color-option-border, #e7e7e7);\n /* display: flex; */\n}\n\n.option-btn:hover {\n background: var(--quiz-color-option-hover, #e1d8c9);\n}\n\n.option-btn.selected {\n background: var(--quiz-color-option-selected, #b59b7b);\n}\n\n.option-text {\n font-size: var(--quiz-font-size-medium, 1rem);\n font-weight: var(--quiz-font-weight-medium, 500);\n line-height: 22px;\n letter-spacing: -0.1%;\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n}\n\n.option-image {\n max-width: 100%;\n height: auto;\n border-radius: var(--quiz-border-radius-small, 4px);\n}\n\n.option-code {\n background-color: #1e1e1e;\n color: white;\n padding: var(--quiz-spacing-small, 8px);\n border-radius: var(--quiz-border-radius-small, 4px);\n}\n\n@media (max-width: 768px) {\n .option-text {\n font-size: 0.95rem;\n line-height: 21px;\n }\n\n .option-btn:hover {\n background: var(--quiz-color-option-selected, #b59b7b);\n }\n}\n');var c,d=function(t){var e=t.options,o=t.selectedOption,i=t.onSelect,r=t.loading,a=t.direction;return n.jsx("div",{className:"options-container",children:null==e?void 0:e.map((function(t){return n.jsx("button",{disabled:r,className:"option-btn ".concat(o===t.id&&"selected"),style:"rtl"===a?{textAlign:"unset"}:{},onClick:function(){return i(t.id)},children:t.text&&n.jsx("span",{className:"option-text",children:t.text})},t.id)}))})};function u(){return u=Object.assign?Object.assign.bind():function(n){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var o in e)({}).hasOwnProperty.call(e,o)&&(n[o]=e[o])}return n},u.apply(null,arguments)}var f=function(n){return o.createElement("svg",u({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none"},n),c||(c=o.createElement("path",{fill:"#1D1B21",d:"M8 2.5a6 6 0 1 0 6 6 6.006 6.006 0 0 0-6-6m2.854 3.854-2.5 2.5a.5.5 0 0 1-.708-.708l2.5-2.5a.5.5 0 1 1 .708.708M6 1a.5.5 0 0 1 .5-.5h3a.5.5 0 1 1 0 1h-3A.5.5 0 0 1 6 1"})))};l('.timer {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 8px;\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n font-size: var(--quiz-font-size-medium, 0.9rem);\n font-weight: var(--quiz-font-weight-medium, 500);\n color: var(--quiz-color-text-primary, #161c20);\n}\n\n.timer span {\n color: var(--quiz-color-text-primary, #161c20);\n font-size: var(--quiz-font-size-medium, 0.9rem);\n font-weight: var(--quiz-font-weight-medium, 500);\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n}\n\n.timer svg {\n width: 18px;\n height: 18px;\n fill: var(--quiz-color-text-primary, #161c20);\n}\n\n@media (max-width: 768px) {\n .timer {\n font-size: var(--quiz-font-size-small, 0.85rem);\n }\n \n .timer span {\n font-size: var(--quiz-font-size-small, 0.85rem);\n }\n \n .timer svg {\n width: 16px;\n height: 16px;\n }\n}\n');var m=function(e){var o=e.duration,i=e.markQuizComplete,r=e.isEndScreenOpen,a=t.useState(o),l=a[0],s=a[1],c=t.useRef(null);t.useEffect((function(){if(0!==o)return c.current&&clearInterval(c.current),c.current=setInterval((function(){s((function(n){return n>0?n-1:0}))}),1e3),function(){c.current&&clearInterval(c.current)}}),[o]),t.useEffect((function(){0!==o&&0===l&&(i(),c.current&&clearInterval(c.current))}),[l,i]),t.useEffect((function(){r&&c.current&&clearInterval(c.current)}),[r]);var d,u,m;return n.jsxs("div",{className:"timer",children:[n.jsx(f,{}),n.jsx("span",{children:(d=l,u=Math.floor(d/60),m=d%60,"".concat(u,":").concat(m<10?"0":"").concat(m))})]})};l('/* Modal Background Overlay */\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n}\n\n/* Modal Box */\n.modal-content {\n background: var(--quiz-tab-switch-modal-background, #222);\n color: var(--quiz-tab-switch-modal-text-color, #fff);\n padding: var(--quiz-tab-switch-modal-padding, 20px);\n border-radius: var(--quiz-tab-switch-modal-border-radius, 10px);\n width: 400px;\n text-align: center;\n position: relative;\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);\n}\n\n/* Close Button */\n.modal-close {\n position: absolute;\n top: 10px;\n right: 15px;\n background: none;\n border: none;\n font-size: 24px;\n color: var(--quiz-tab-switch-modal-close-color, #fff);\n cursor: pointer;\n font-family: var(--quiz-tab-switch-modal-font-family, "Patron", sans-serif);\n}\n\n/* Header */\n.modal-header {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-bottom: var(--quiz-tab-switch-modal-header-margin, 10px);\n font-family: var(--quiz-tab-switch-modal-font-family, "Patron", sans-serif);\n}\n\n/* Warning Icon */\n.modal-icon {\n font-size: 32px;\n color: var(--quiz-tab-switch-modal-icon-color, #ffcc00);\n}\n\n/* Text */\n.modal-text {\n font-size: var(--quiz-tab-switch-modal-text-font-size, 14px);\n color: var(--quiz-tab-switch-modal-text-secondary-color, #ccc);\n margin-bottom: var(--quiz-tab-switch-modal-text-margin, 20px);\n font-family: var(--quiz-tab-switch-modal-font-family, "Patron", sans-serif);\n}\n\n/* Button */\n.modal-button {\n background: var(--quiz-tab-switch-modal-button-background, #fff);\n color: var(--quiz-tab-switch-modal-button-text-color, #222);\n border: none;\n padding: var(--quiz-tab-switch-modal-button-padding, 10px 20px);\n border-radius: var(--quiz-tab-switch-modal-button-border-radius, 20px);\n font-size: var(--quiz-tab-switch-modal-button-font-size, 14px);\n cursor: pointer;\n transition: var(--quiz-tab-switch-modal-button-transition, 0.3s);\n font-family: var(--quiz-tab-switch-modal-font-family, "Patron", sans-serif);\n}\n\n.modal-button:hover {\n background: var(--quiz-tab-switch-modal-button-hover-background, #ddd);\n color: var(--quiz-tab-switch-modal-button-hover-text-color, #222);\n}\n');var p=function(t){var e=t.open,o=t.onClose;return e?n.jsx("div",{className:"modal-overlay",children:n.jsxs("div",{className:"modal-content",children:[n.jsx("button",{className:"modal-close",onClick:o,children:"×"}),n.jsxs("div",{className:"modal-header",children:[n.jsx("span",{className:"modal-icon",children:"⚠️"}),n.jsx("h2",{children:"Tab Switch Detected"})]}),n.jsx("p",{className:"modal-text",children:"Any further attempts to switch tabs or change browser windows will result in disqualification from the assessment."}),n.jsx("button",{className:"modal-button",onClick:o,children:"Understood"})]})}):null};l('.end-screen-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--quiz-end-screen-background, #222);\n color: var(--quiz-end-screen-text-color, #fff);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n}\n\n/* Content */\n.end-screen-content {\n text-align: center;\n font-size: var(--quiz-end-screen-font-size, 20px);\n font-weight: var(--quiz-end-screen-font-weight, bold);\n font-family: var(--quiz-end-screen-font-family, "Patron", sans-serif);\n color: var(--quiz-end-screen-text-color, #fff);\n}\n\n.end-screen-close {\n position: absolute;\n top: 20px;\n right: 25px;\n background: none;\n border: none;\n font-size: 24px;\n color: var(--quiz-end-screen-close-color, #fff);\n cursor: pointer;\n font-family: var(--quiz-end-screen-font-family, "Patron", sans-serif);\n}\n');var h,b,v,g=function(t){var e=t.open,o=t.onClose,i=t.message;return e?n.jsxs("div",{className:"end-screen-overlay",children:[o&&n.jsx("button",{className:"end-screen-close",onClick:o,children:"×"}),n.jsx("div",{className:"end-screen-content",children:n.jsx("p",{children:i||"Your quiz has ended due to switching tabs too many times."})})]}):null};function x(){return x=Object.assign?Object.assign.bind():function(n){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var o in e)({}).hasOwnProperty.call(e,o)&&(n[o]=e[o])}return n},x.apply(null,arguments)}var z,y=function(n){return o.createElement("svg",x({xmlns:"http://www.w3.org/2000/svg",width:38,height:38,fill:"none"},n),h||(h=o.createElement("rect",{width:38,height:38,fill:"#151515",rx:19})),b||(b=o.createElement("g",{clipPath:"url(#downArrow_svg__a)"},o.createElement("path",{fill:"#fff",d:"M8.758 21.194c.037.14.145.36.234.492.09.136 2.138 2.222 4.556 4.636 5.035 5.03 4.594 4.655 5.452 4.655.427 0 .525-.015.727-.113.182-.094 1.18-1.06 4.725-4.594 2.47-2.465 4.546-4.57 4.612-4.678.145-.243.248-.623.248-.91 0-.454-.295-1.077-.637-1.335-.342-.263-.97-.399-1.397-.3-.534.122-.576.16-3.319 2.873-2.667 2.649-2.878 2.883-3.117 3.46-.08.201-.084-.043-.108-8.442l-.023-8.649-.127-.267a1.84 1.84 0 0 0-.796-.84c-.282-.154-.32-.159-.788-.159-.445 0-.516.015-.75.132-.464.239-.788.633-.919 1.12-.056.211-.065 1.608-.065 8.756v8.508l-.136-.281a3.7 3.7 0 0 0-.347-.563c-.117-.154-1.36-1.425-2.761-2.817-1.945-1.94-2.602-2.569-2.78-2.658-.914-.454-1.94-.13-2.376.75-.178.361-.22.83-.108 1.224"}))),v||(v=o.createElement("defs",null,o.createElement("clipPath",{id:"downArrow_svg__a"},o.createElement("path",{fill:"#fff",d:"M7 31V7h24v24z"})))))};function w(){return w=Object.assign?Object.assign.bind():function(n){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var o in e)({}).hasOwnProperty.call(e,o)&&(n[o]=e[o])}return n},w.apply(null,arguments)}var q=function(n){return o.createElement("svg",w({xmlns:"http://www.w3.org/2000/svg",width:24,height:23,fill:"none"},n),z||(z=o.createElement("path",{fill:"#000",d:"M17.837 5.797a.94.94 0 0 0-1.328 0l-4.305 4.306-4.306-4.306a.939.939 0 0 0-1.327 1.328l4.305 4.306-4.305 4.305a.939.939 0 0 0 1.327 1.328l4.306-4.306 4.305 4.306a.94.94 0 0 0 1.328-1.328l-4.306-4.305 4.306-4.306a.94.94 0 0 0 0-1.328"})))};l(".loader-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--quiz-loader-background, black);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9999;\n}\n\n.loader-spinner {\n border: 8px solid var(--quiz-loader-spinner-border, rgba(255, 255, 255, 0.2));\n border-top: 8px solid var(--quiz-loader-spinner-color, white);\n border-radius: 50%;\n width: 60px;\n height: 60px;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n");var S=function(){return n.jsx("div",{className:"loader-overlay",children:n.jsx("div",{className:"loader-spinner"})})},k={colors:{primary:"#000000",secondary:"#5d4037",background:"#ffffff",surface:"#f8f5f2",text:{primary:"#161c20",secondary:"#666666"},button:{primary:"#000000",primaryText:"#ffffff",secondary:"#5d4037",secondaryText:"#ffffff",disabled:"#d7ccc8",disabledText:"#ffffff"},option:{background:"#ffffff",hover:"#e1d8c9",selected:"#b59b7b",border:"#e7e7e7",text:"#161c20"},border:"#e1d8c9",scrollButton:"#ffffff"},typography:{fontFamily:"Patron, sans-serif",fontSize:{small:"0.9rem",medium:"1rem",large:"1.15rem",xlarge:"1.5rem"},fontWeight:{normal:"400",medium:"500",bold:"600"},lineHeight:{small:"1.2rem",medium:"1.4rem",large:"1.6rem"}},spacing:{small:"8px",medium:"16px",large:"24px",xlarge:"32px"},borderRadius:{small:"4px",medium:"8px",large:"16px"},transitions:{fast:"0.15s",medium:"0.3s",slow:"0.5s"},loader:{background:"black",spinnerColor:"white",spinnerBorder:"rgba(255, 255, 255, 0.2)"},endScreen:{background:"#222",textColor:"#fff",closeColor:"#fff",fontSize:"20px",fontWeight:"bold",fontFamily:'"Patron", sans-serif'},tabSwitchModal:{background:"#222",textColor:"#fff",closeColor:"#fff",textSecondaryColor:"#ccc",iconColor:"#ffcc00",buttonBackground:"#fff",buttonTextColor:"#222",buttonHoverBackground:"#ddd",buttonHoverTextColor:"#222",fontFamily:'"Patron", sans-serif',textFontSize:"14px",buttonFontSize:"14px",padding:"20px",headerMargin:"10px",textMargin:"20px",buttonPadding:"10px 20px",borderRadius:"10px",buttonBorderRadius:"20px",buttonTransition:"0.3s"}};function j(n,t){var e=i({},n);for(var o in t)void 0!==t[o]&&null!==t[o]&&(t[o]&&"object"==typeof t[o]&&!Array.isArray(t[o])?e[o]=j(n[o]||{},t[o]):e[o]=t[o]);return e}function C(n,t){return t?j(n,t):n}var M=function(t){var e,o=t.theme,i=t.targetClass,r=void 0===i?".quiz-page":i;if(!o||(!(e=o)||"object"!=typeof e||0===Object.keys(e).length))return null;var a=function(n){return function(n){var t,e,o,i,r,a,l,s,c,d,u,f,m,p,h,b,v,g,x,z,y,w,q,S,k,j,C,M,E,P,N,T,O,B,L,R,H,F,W,A,I,_,Q,D,Y,U,V,G,J,K,X,Z={};return n.colors&&(n.colors.primary&&(Z["--quiz-color-primary"]=n.colors.primary),n.colors.secondary&&(Z["--quiz-color-secondary"]=n.colors.secondary),n.colors.background&&(Z["--quiz-color-background"]=n.colors.background),n.colors.surface&&(Z["--quiz-color-surface"]=n.colors.surface),n.colors.border&&(Z["--quiz-color-border"]=n.colors.border),n.colors.scrollButton&&(Z["--quiz-color-scroll-button"]=n.colors.scrollButton),(null===(t=n.colors.text)||void 0===t?void 0:t.primary)&&(Z["--quiz-color-text-primary"]=n.colors.text.primary),(null===(e=n.colors.text)||void 0===e?void 0:e.secondary)&&(Z["--quiz-color-text-secondary"]=n.colors.text.secondary),(null===(o=n.colors.button)||void 0===o?void 0:o.primary)&&(Z["--quiz-color-button-primary"]=n.colors.button.primary),(null===(i=n.colors.button)||void 0===i?void 0:i.primaryText)&&(Z["--quiz-color-button-primary-text"]=n.colors.button.primaryText),(null===(r=n.colors.button)||void 0===r?void 0:r.secondary)&&(Z["--quiz-color-button-secondary"]=n.colors.button.secondary),(null===(a=n.colors.button)||void 0===a?void 0:a.secondaryText)&&(Z["--quiz-color-button-secondary-text"]=n.colors.button.secondaryText),(null===(l=n.colors.button)||void 0===l?void 0:l.disabled)&&(Z["--quiz-color-button-disabled"]=n.colors.button.disabled),(null===(s=n.colors.button)||void 0===s?void 0:s.disabledText)&&(Z["--quiz-color-button-disabled-text"]=n.colors.button.disabledText),(null===(c=n.colors.option)||void 0===c?void 0:c.background)&&(Z["--quiz-color-option-background"]=n.colors.option.background),(null===(d=n.colors.option)||void 0===d?void 0:d.hover)&&(Z["--quiz-color-option-hover"]=n.colors.option.hover),(null===(u=n.colors.option)||void 0===u?void 0:u.selected)&&(Z["--quiz-color-option-selected"]=n.colors.option.selected),(null===(f=n.colors.option)||void 0===f?void 0:f.border)&&(Z["--quiz-color-option-border"]=n.colors.option.border),(null===(m=n.colors.option)||void 0===m?void 0:m.text)&&(Z["--quiz-color-option-text"]=n.colors.option.text)),n.typography&&(n.typography.fontFamily&&(Z["--quiz-font-family"]=n.typography.fontFamily),(null===(p=n.typography.fontSize)||void 0===p?void 0:p.small)&&(Z["--quiz-font-size-small"]=n.typography.fontSize.small),(null===(h=n.typography.fontSize)||void 0===h?void 0:h.medium)&&(Z["--quiz-font-size-medium"]=n.typography.fontSize.medium),(null===(b=n.typography.fontSize)||void 0===b?void 0:b.large)&&(Z["--quiz-font-size-large"]=n.typography.fontSize.large),(null===(v=n.typography.fontSize)||void 0===v?void 0:v.xlarge)&&(Z["--quiz-font-size-xlarge"]=n.typography.fontSize.xlarge),(null===(g=n.typography.fontWeight)||void 0===g?void 0:g.normal)&&(Z["--quiz-font-weight-normal"]=n.typography.fontWeight.normal),(null===(x=n.typography.fontWeight)||void 0===x?void 0:x.medium)&&(Z["--quiz-font-weight-medium"]=n.typography.fontWeight.medium),(null===(z=n.typography.fontWeight)||void 0===z?void 0:z.bold)&&(Z["--quiz-font-weight-bold"]=n.typography.fontWeight.bold),(null===(y=n.typography.lineHeight)||void 0===y?void 0:y.small)&&(Z["--quiz-line-height-small"]=n.typography.lineHeight.small),(null===(w=n.typography.lineHeight)||void 0===w?void 0:w.medium)&&(Z["--quiz-line-height-medium"]=n.typography.lineHeight.medium),(null===(q=n.typography.lineHeight)||void 0===q?void 0:q.large)&&(Z["--quiz-line-height-large"]=n.typography.lineHeight.large)),n.spacing&&(n.spacing.small&&(Z["--quiz-spacing-small"]=n.spacing.small),n.spacing.medium&&(Z["--quiz-spacing-medium"]=n.spacing.medium),n.spacing.large&&(Z["--quiz-spacing-large"]=n.spacing.large),n.spacing.xlarge&&(Z["--quiz-spacing-xlarge"]=n.spacing.xlarge)),n.borderRadius&&(n.borderRadius.small&&(Z["--quiz-border-radius-small"]=n.borderRadius.small),n.borderRadius.medium&&(Z["--quiz-border-radius-medium"]=n.borderRadius.medium),n.borderRadius.large&&(Z["--quiz-border-radius-large"]=n.borderRadius.large)),n.transitions&&(n.transitions.fast&&(Z["--quiz-transition-fast"]=n.transitions.fast),n.transitions.medium&&(Z["--quiz-transition-medium"]=n.transitions.medium),n.transitions.slow&&(Z["--quiz-transition-slow"]=n.transitions.slow)),(null===(S=n.loader)||void 0===S?void 0:S.background)&&(Z["--quiz-loader-background"]=n.loader.background),(null===(k=n.loader)||void 0===k?void 0:k.spinnerColor)&&(Z["--quiz-loader-spinner-color"]=n.loader.spinnerColor),(null===(j=n.loader)||void 0===j?void 0:j.spinnerBorder)&&(Z["--quiz-loader-spinner-border"]=n.loader.spinnerBorder),(null===(C=n.endScreen)||void 0===C?void 0:C.background)&&(Z["--quiz-end-screen-background"]=n.endScreen.background),(null===(M=n.endScreen)||void 0===M?void 0:M.textColor)&&(Z["--quiz-end-screen-text-color"]=n.endScreen.textColor),(null===(E=n.endScreen)||void 0===E?void 0:E.closeColor)&&(Z["--quiz-end-screen-close-color"]=n.endScreen.closeColor),(null===(P=n.endScreen)||void 0===P?void 0:P.fontSize)&&(Z["--quiz-end-screen-font-size"]=n.endScreen.fontSize),(null===(N=n.endScreen)||void 0===N?void 0:N.fontWeight)&&(Z["--quiz-end-screen-font-weight"]=n.endScreen.fontWeight),(null===(T=n.endScreen)||void 0===T?void 0:T.fontFamily)&&(Z["--quiz-end-screen-font-family"]=n.endScreen.fontFamily),(null===(O=n.tabSwitchModal)||void 0===O?void 0:O.background)&&(Z["--quiz-tab-switch-modal-background"]=n.tabSwitchModal.background),(null===(B=n.tabSwitchModal)||void 0===B?void 0:B.textColor)&&(Z["--quiz-tab-switch-modal-text-color"]=n.tabSwitchModal.textColor),(null===(L=n.tabSwitchModal)||void 0===L?void 0:L.closeColor)&&(Z["--quiz-tab-switch-modal-close-color"]=n.tabSwitchModal.closeColor),(null===(R=n.tabSwitchModal)||void 0===R?void 0:R.textSecondaryColor)&&(Z["--quiz-tab-switch-modal-text-secondary-color"]=n.tabSwitchModal.textSecondaryColor),(null===(H=n.tabSwitchModal)||void 0===H?void 0:H.iconColor)&&(Z["--quiz-tab-switch-modal-icon-color"]=n.tabSwitchModal.iconColor),(null===(F=n.tabSwitchModal)||void 0===F?void 0:F.buttonBackground)&&(Z["--quiz-tab-switch-modal-button-background"]=n.tabSwitchModal.buttonBackground),(null===(W=n.tabSwitchModal)||void 0===W?void 0:W.buttonTextColor)&&(Z["--quiz-tab-switch-modal-button-text-color"]=n.tabSwitchModal.buttonTextColor),(null===(A=n.tabSwitchModal)||void 0===A?void 0:A.buttonHoverBackground)&&(Z["--quiz-tab-switch-modal-button-hover-background"]=n.tabSwitchModal.buttonHoverBackground),(null===(I=n.tabSwitchModal)||void 0===I?void 0:I.buttonHoverTextColor)&&(Z["--quiz-tab-switch-modal-button-hover-text-color"]=n.tabSwitchModal.buttonHoverTextColor),(null===(_=n.tabSwitchModal)||void 0===_?void 0:_.fontFamily)&&(Z["--quiz-tab-switch-modal-font-family"]=n.tabSwitchModal.fontFamily),(null===(Q=n.tabSwitchModal)||void 0===Q?void 0:Q.textFontSize)&&(Z["--quiz-tab-switch-modal-text-font-size"]=n.tabSwitchModal.textFontSize),(null===(D=n.tabSwitchModal)||void 0===D?void 0:D.buttonFontSize)&&(Z["--quiz-tab-switch-modal-button-font-size"]=n.tabSwitchModal.buttonFontSize),(null===(Y=n.tabSwitchModal)||void 0===Y?void 0:Y.padding)&&(Z["--quiz-tab-switch-modal-padding"]=n.tabSwitchModal.padding),(null===(U=n.tabSwitchModal)||void 0===U?void 0:U.headerMargin)&&(Z["--quiz-tab-switch-modal-header-margin"]=n.tabSwitchModal.headerMargin),(null===(V=n.tabSwitchModal)||void 0===V?void 0:V.textMargin)&&(Z["--quiz-tab-switch-modal-text-margin"]=n.tabSwitchModal.textMargin),(null===(G=n.tabSwitchModal)||void 0===G?void 0:G.buttonPadding)&&(Z["--quiz-tab-switch-modal-button-padding"]=n.tabSwitchModal.buttonPadding),(null===(J=n.tabSwitchModal)||void 0===J?void 0:J.borderRadius)&&(Z["--quiz-tab-switch-modal-border-radius"]=n.tabSwitchModal.borderRadius),(null===(K=n.tabSwitchModal)||void 0===K?void 0:K.buttonBorderRadius)&&(Z["--quiz-tab-switch-modal-button-border-radius"]=n.tabSwitchModal.buttonBorderRadius),(null===(X=n.tabSwitchModal)||void 0===X?void 0:X.buttonTransition)&&(Z["--quiz-tab-switch-modal-button-transition"]=n.tabSwitchModal.buttonTransition),Z}(C(k,n))}(o);if(0===Object.keys(a).length)return null;var l=Object.entries(a).map((function(n){var t=n[0],e=n[1];return"".concat(t,": ").concat(e,";")})).join("\n ");return n.jsx("style",{children:"\n ".concat(r," {\n ").concat(l,"\n }\n ")})};l('\n* {\n box-sizing: border-box;\n}\n\n.quiz-page {\n position: fixed;\n background: var(--quiz-color-background, #ffffff);\n width: 100vw;\n min-height: 100dvh;\n top: 0;\n left: 0;\n z-index: 100;\n box-sizing: border-box;\n overflow-y: auto; /* ensure scrolling works */\n display: flex;\n flex-direction: column;\n}\n\n.quiz-page-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n border-radius: var(--quiz-border-radius-large, 16px);\n margin: var(--quiz-spacing-large, 24px) var(--quiz-spacing-medium, 16px) 0px var(--quiz-spacing-medium, 16px);\n height: 100%;\n background: var(--quiz-color-surface, #f8f5f2);\n}\n\n/* Ticker stays in a row on all devices */\n.quiz-ticker {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 20px;\n border-bottom: 1px solid var(--quiz-color-border, #e1d8c9);\n}\n\n.quiz-ticker-right {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n padding-right: 2rem;\n}\n\n.close-btn{\n border: none;\n background: none;\n cursor: pointer;\n padding: 0;\n margin: 0;\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 4px;\n}\n\n.close-btn svg {\n width: 18px;\n height: 18px;\n flex-shrink: 0;\n}\n\n.quiz-container {\n flex-grow: 1;\n width: 100%;\n display: flex;\n flex-direction: row; /* side-by-side on desktop */\n align-items: flex-start;\n padding: var(--quiz-spacing-large, 24px) 56px var(--quiz-spacing-large, 24px);\n border-radius: 10px;\n justify-content: space-between;\n box-sizing: border-box;\n max-width: 1600px;\n margin: 0 auto;\n max-height: 80dvh;\n overflow: auto;\n gap: 2rem;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* Internet Explorer 10+ */\n}\n\n.quiz-container::-webkit-scrollbar {\n display: none;\n}\n\n/* Left & Right columns on desktop */\n.quiz-left {\n width: 100%;\n max-width: 650px;\n overflow: auto;\n scrollbar-width: thin;\n scrollbar-color: #ccc transparent; /* thumb color, track color */\n}\n\n/* WebKit-based browsers (Chrome, Safari, Edge) */\n.quiz-left::-webkit-scrollbar {\n width: 6px; /* slim scrollbar */\n}\n\n.quiz-left::-webkit-scrollbar-thumb {\n background-color: #ccc; /* grey thumb */\n border-radius: 4px;\n}\n\n.quiz-left::-webkit-scrollbar-track {\n background: transparent; /* optional: transparent track */\n}\n\n.quiz-right {\n max-width: 622px;\n width: 100%;\n}\n\n.quiz-right-head {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.choose-option {\n font-size: var(--quiz-font-size-medium, 1rem);\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n font-weight: var(--quiz-font-weight-medium, 500);\n line-height: var(--quiz-line-height-xlarge, 32px);\n letter-spacing: 0.2%;\n color: var(--quiz-color-text-primary, #161c20);\n}\n\n.question-count {\n font-size: var(--quiz-font-size-small, 0.9rem);\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n color: var(--quiz-color-text-primary, #161c20);\n font-weight: var(--quiz-font-weight-medium, 500);\n line-height: var(--quiz-line-height-small, 1.2rem);\n}\n\n.options-container {\n display: flex;\n flex-direction: column;\n gap: 18px;\n margin-top: 12px;\n}\n\n.mobile-next-btn {\n display: none;\n}\n\n/* Button Styles */\n.prev-btn,\n.next-btn {\n padding: 10px 54px;\n background: var(--quiz-color-button-primary, #000000);\n color: var(--quiz-color-button-primary-text, #ffffff);\n border: none;\n border-radius: var(--quiz-spacing-large, 24px);\n cursor: pointer;\n transition: var(--quiz-transition-medium, 0.3s);\n font-size: var(--quiz-font-size-small, 0.9rem);\n font-weight: var(--quiz-font-weight-medium, 500);\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n line-height: 21px;\n}\n\n.prev-btn {\n background: var(--quiz-color-button-secondary, #5d4037);\n color: var(--quiz-color-button-secondary-text, #ffffff);\n}\n\n.next-btn:disabled {\n background: var(--quiz-color-button-disabled, #d7ccc8);\n color: var(--quiz-color-button-disabled-text, #ffffff);\n cursor: not-allowed;\n}\n\n.scroll-down-btn {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 999;\n border: none;\n border-radius: 50%;\n padding: 4px;\n cursor: pointer;\n font-size: 20px;\n transition: background var(--quiz-transition-medium, 0.3s);\n background: var(--quiz-color-scroll-button, #ffffff);\n}\n\n.bounce {\n animation: bounce 1.6s infinite;\n}\n\n@keyframes bounce {\n 0%,\n 20%,\n 50%,\n 80%,\n 100% {\n transform: translateY(0px);\n }\n 40% {\n transform: translateY(-4px);\n }\n 60% {\n transform: translateY(-2px);\n }\n}\n\n/* RESPONSIVE LAYOUT */\n@media (max-width: 768px) {\n .quiz-page-container {\n flex-direction: column;\n padding: var(--quiz-spacing-medium, 16px);\n gap: 1rem;\n overflow-y: auto;\n margin: 0;\n border-radius: 0;\n }\n\n .quiz-container {\n flex-direction: column;\n padding: 0;\n justify-content: space-between;\n}\n\n\n .quiz-ticker {\n padding: var(--quiz-spacing-medium, 16px);\n gap: 1rem;\n }\n\n .quiz-left {\n max-width: 100%;\n margin-bottom: 1rem;\n }\n\n .quiz-ticker-right {\n gap: 1rem;\n padding-right: 0;\n }\n\n .choose-option {\n font-size: var(--quiz-font-size-small, 0.9rem);\n line-height: var(--quiz-line-height-medium, 1.4rem);\n }\n\n .next-btn-container {\n display: none;\n }\n\n .mobile-next-btn {\n display: block;\n position: fixed;\n bottom: 20px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1000;\n width: calc(100% - 40px);\n max-width: 350px;\n }\n\n .next-btn {\n width: 100%;\n padding: var(--quiz-spacing-medium, 16px) var(--quiz-spacing-large, 24px);\n font-size: var(--quiz-font-size-medium, 1rem);\n }\n\n .question-count {\n font-size: 0.85rem;\n }\n\n .option-btn {\n padding: var(--quiz-spacing-medium, 16px);\n }\n}\n\n@media (max-width: 768px) and (max-height: 800px) {\n .quiz-container {\n max-height: 70dvh;\n }\n}\n\n@media (max-width: 768px) and (max-height: 500px) {\n .quiz-container {\n max-height: 60dvh;\n }\n}\n');l('/* Thin (100) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-thin.woff2") format("woff2");\n font-weight: 100;\n font-style: normal;\n font-display: swap;\n}\n\n/* Light (300) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-light.woff2") format("woff2");\n font-weight: 300;\n font-style: normal;\n font-display: swap;\n}\n\n/* Regular (400) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-regular.woff2") format("woff2");\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n}\n\n/* Medium (500) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-medium.woff2") format("woff2");\n font-weight: 500;\n font-style: normal;\n font-display: swap;\n}\n\n/* Bold (700) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-bold.woff2") format("woff2");\n font-weight: 700;\n font-style: normal;\n font-display: swap;\n}\n');module.exports=function(e){var o,i,l=e.quizId,c=e.userId,u=e.tabSwitchLimit,f=e.onQuizComplete,h=e.baseURL,b=e.token,v=e.theme,x=e.direction,z=e.handleClose,w=t.useState(!1),k=w[0],j=w[1],C=t.useState(0),E=C[0],P=C[1],N=t.useState(null),T=N[0],O=N[1],B=t.useState(null),L=B[0],R=B[1],H=t.useState(!1),F=H[0],W=H[1],A=t.useState(!1),I=A[0],_=A[1],Q=t.useState(!0),D=Q[0],Y=Q[1],U=function(n){void 0===n&&(n=3);var e=t.useState(0),o=e[0],i=e[1],r=t.useState(!1),a=r[0],l=r[1];return t.useEffect((function(){var n=function(){document.hidden&&i((function(n){return n+1}))};return document.addEventListener("visibilitychange",n),function(){document.removeEventListener("visibilitychange",n)}}),[]),t.useEffect((function(){o>=n&&l(!0)}),[o,n]),{switchCount:o,isLimitReached:a}}(u),V=U.isLimitReached,G=U.switchCount,J=t.useState(""),K=J[0],X=J[1],Z=t.useRef([]),$=t.useRef(null);t.useEffect((function(){var n=function(n){return n.preventDefault()},t=function(n){return n.preventDefault()},e=function(n){return n.preventDefault()};return document.addEventListener("copy",n),document.addEventListener("cut",n),document.addEventListener("paste",n),document.addEventListener("selectstart",t),document.addEventListener("contextmenu",e),function(){document.removeEventListener("copy",n),document.removeEventListener("cut",n),document.removeEventListener("paste",n),document.removeEventListener("selectstart",t),document.removeEventListener("contextmenu",e)}}),[]),t.useEffect((function(){if(!(l&&c&&h&&b))return Y(!1),X("Missing required parameters to load quiz."),void _(!0);r(void 0,void 0,void 0,(function(){var n,t,e;return a(this,(function(o){switch(o.label){case 0:return o.trys.push([0,5,6,7]),Y(!0),[4,fetch("".concat(h,"/user-assessment/").concat(l,"/").concat(c,"/get-session-data"),{headers:{Authorization:"Bearer ".concat(b)}})];case 1:return(n=o.sent()).ok?[4,n.json()]:[3,3];case 2:return t=o.sent(),R(t),[3,4];case 3:X("Something went wrong. Please try again."),_(!0),o.label=4;case 4:return[3,7];case 5:return e=o.sent(),console.error("Error fetching quiz data:",e),X("Something went wrong. Please try again."),_(!0),[3,7];case 6:return Y(!1),[7];case 7:return[2]}}))}))}),[l,c,h,b]);var nn=t.useRef(null),tn=t.useState(!1),en=tn[0],on=tn[1],rn=t.useState(!1),an=rn[0],ln=rn[1];t.useEffect((function(){if(L){var n=nn.current;if(n){var t=function(){var t=n.scrollHeight>n.clientHeight,e=n.scrollTop+n.clientHeight>=n.scrollHeight-15;t?(e&&ln(!0),on(!e&&!an)):(on(!1),ln(!1))},e=requestAnimationFrame((function(){setTimeout(t,100)}));return n.addEventListener("scroll",t),window.addEventListener("resize",t),function(){cancelAnimationFrame(e),n.removeEventListener("scroll",t),window.removeEventListener("resize",t)}}}}),[L,E,an]);if(t.useEffect((function(){G>0&&G<3&&W(!0)}),[G]),t.useEffect((function(){V&&(X("Your quiz has ended due to switching tabs too many times."),_(!0))}),[V]),t.useEffect((function(){return function(){Z.current.forEach((function(n){return clearTimeout(n)})),Z.current=[]}}),[]),!L&&D)return n.jsxs("div",{className:"quiz-page",style:"rtl"==x?{direction:"rtl"}:{},ref:$,children:[n.jsx(M,{theme:v,targetClass:".quiz-page"}),n.jsx(S,{})]});var sn=(null==L?void 0:L.questions)||[],cn=function(n,t,e,o){return r(void 0,void 0,void 0,(function(){return a(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),[4,fetch("".concat(h,"/user-assessment/").concat(n,"/").concat(e,"/").concat(t,"/submit-answer"),{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(b)},body:JSON.stringify({optionIds:[o]})})];case 1:return i.sent().ok||(X("Something went wrong. Please try again."),_(!0)),[3,3];case 2:return i.sent(),[3,3];case 3:return[2]}}))}))},dn=function(){return r(void 0,void 0,void 0,(function(){return a(this,(function(n){switch(n.label){case 0:return n.trys.push([0,5,,6]),[4,fetch("".concat(h,"/user-assessment/").concat(l,"/").concat(c,"/mark-quiz-complete"),{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(b)}})];case 1:return n.sent().ok?(j(!0),[4,f()]):[3,3];case 2:return n.sent(),[3,4];case 3:X("Quiz completed, but there was an issue saving your progress."),_(!0),n.label=4;case 4:return[3,6];case 5:return n.sent(),X("Quiz completed, but there was a network error. Please check your connection."),_(!0),[3,6];case 6:return[2]}}))}))},un=function(){return r(void 0,void 0,void 0,(function(){var n;return a(this,(function(t){switch(t.label){case 0:if(!T)return[2];if(!L||!sn.length)return X("Quiz data is not available. Please try again."),_(!0),[2];Y(!0),t.label=1;case 1:return t.trys.push([1,,6,7]),[4,cn(l,sn[E].id,c,T)];case 2:return t.sent(),E!==(null==sn?void 0:sn.length)-1?[3,4]:[4,dn()];case 3:return t.sent(),[3,5];case 4:O(null),n=null===window||void 0===window?void 0:window.setTimeout((function(){P((function(n){return n+1}));var n=window.setTimeout((function(){ln(!1)}),150);Z.current.push(n)}),300),Z.current.push(n),t.label=5;case 5:return[3,7];case 6:return n=null===window||void 0===window?void 0:window.setTimeout((function(){Y(!1)}),300),Z.current.push(n),[7];case 7:return[2]}}))}))};function fn(){return D?"Submitting":E===(null==sn?void 0:sn.length)-1?"Submit":"Next"}return k?null:n.jsxs("div",{className:"quiz-page",style:"rtl"==x?{direction:"rtl"}:{},children:[n.jsx(M,{theme:v,targetClass:".quiz-page"}),n.jsxs("div",{className:"quiz-page-container",children:[n.jsxs("div",{className:"quiz-ticker",children:[n.jsxs("h3",{className:"question-count",children:["Questions: ",E+1,"/",(null==sn?void 0:sn.length)||0]}),n.jsxs("div",{className:"quiz-ticker-right",children:[n.jsx(m,{markQuizComplete:dn,duration:(null==L?void 0:L.duration)||0,isEndScreenOpen:I}),z&&n.jsx("button",{className:"close-btn",onClick:z,children:n.jsx(q,{})})]})]}),n.jsxs("div",{className:"quiz-container",ref:nn,children:[n.jsx("div",{className:"quiz-left",children:n.jsx(s,{question:(null===(o=sn[E])||void 0===o?void 0:o.text)||""})}),n.jsxs("div",{className:"quiz-right",children:[n.jsxs("div",{className:"quiz-right-head",children:[n.jsx("h3",{className:"choose-option",children:"Choose the right option"}),n.jsx("div",{className:"next-btn-container",children:n.jsx("button",{className:"next-btn",disabled:!T||D||!L,onClick:un,children:fn()})}),n.jsx("div",{className:"mobile-next-btn",children:n.jsx("button",{className:"next-btn",disabled:!T||D||!L,onClick:un,children:fn()})})]}),n.jsx(d,{loading:D,options:(null===(i=sn[E])||void 0===i?void 0:i.options)||[],selectedOption:T,onSelect:O,direction:x})]})]})]}),n.jsx(p,{open:F,onClose:function(){W(!1),_(!1),X("")}}),n.jsx(g,{open:I,onClose:z,message:K}),en&&n.jsx("button",{className:"scroll-down-btn bounce",onClick:function(){var n=nn.current;n&&(n.scrollTo({top:n.scrollHeight+10,behavior:"smooth"}),ln(!0),on(!1))},children:n.jsx(y,{})})]})};
|
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1 @@
|
|
|
1
|
-
import*as n from"react";import e,{useState as t,useRef as r,useEffect as o}from"react";function i(n,e,t,r){return new(t||(t=Promise))((function(o,i){function a(n){try{c(r.next(n))}catch(n){i(n)}}function s(n){try{c(r.throw(n))}catch(n){i(n)}}function c(n){var e;n.done?o(n.value):(e=n.value,e instanceof t?e:new t((function(n){n(e)}))).then(a,s)}c((r=r.apply(n,e||[])).next())}))}function a(n,e){var t,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(t=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=e.call(n,i)}catch(n){s=[6,n],r=0}finally{t=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}"function"==typeof SuppressedError&&SuppressedError;var s,c={exports:{}},l={};var u,f,p={};
|
|
2
|
-
/**
|
|
3
|
-
* @license React
|
|
4
|
-
* react-jsx-runtime.development.js
|
|
5
|
-
*
|
|
6
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
7
|
-
*
|
|
8
|
-
* This source code is licensed under the MIT license found in the
|
|
9
|
-
* LICENSE file in the root directory of this source tree.
|
|
10
|
-
*/function d(){return u||(u=1,"production"!==process.env.NODE_ENV&&function(){var n=e,t=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),c=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),d=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),h=Symbol.for("react.offscreen"),y=Symbol.iterator;var b=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function g(n){for(var e=arguments.length,t=new Array(e>1?e-1:0),r=1;r<e;r++)t[r-1]=arguments[r];!function(n,e,t){var r=b.ReactDebugCurrentFrame,o=r.getStackAddendum();""!==o&&(e+="%s",t=t.concat([o]));var i=t.map((function(n){return String(n)}));i.unshift("Warning: "+e),Function.prototype.apply.call(console[n],console,i)}("error",n,t)}var v;function x(n){return n.displayName||"Context"}function w(n){if(null==n)return null;if("number"==typeof n.tag&&g("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),"function"==typeof n)return n.displayName||n.name||null;if("string"==typeof n)return n;switch(n){case o:return"Fragment";case r:return"Portal";case a:return"Profiler";case i:return"StrictMode";case u:return"Suspense";case f:return"SuspenseList"}if("object"==typeof n)switch(n.$$typeof){case c:return x(n)+".Consumer";case s:return x(n._context)+".Provider";case l:return function(n,e,t){var r=n.displayName;if(r)return r;var o=e.displayName||e.name||"";return""!==o?t+"("+o+")":t}(n,n.render,"ForwardRef");case d:var e=n.displayName||null;return null!==e?e:w(n.type)||"Memo";case m:var t=n,p=t._payload,h=t._init;try{return w(h(p))}catch(n){return null}}return null}v=Symbol.for("react.module.reference");var k,j,E,_,z,S,O,N=Object.assign,P=0;function T(){}T.__reactDisabledLog=!0;var q,R=b.ReactCurrentDispatcher;function C(n,e,t){if(void 0===q)try{throw Error()}catch(n){var r=n.stack.trim().match(/\n( *(at )?)/);q=r&&r[1]||""}return"\n"+q+n}var L,I=!1,$="function"==typeof WeakMap?WeakMap:Map;function D(n,e){if(!n||I)return"";var t,r=L.get(n);if(void 0!==r)return r;I=!0;var o,i=Error.prepareStackTrace;Error.prepareStackTrace=void 0,o=R.current,R.current=null,function(){if(0===P){k=console.log,j=console.info,E=console.warn,_=console.error,z=console.group,S=console.groupCollapsed,O=console.groupEnd;var n={configurable:!0,enumerable:!0,value:T,writable:!0};Object.defineProperties(console,{info:n,log:n,warn:n,error:n,group:n,groupCollapsed:n,groupEnd:n})}P++}();try{if(e){var a=function(){throw Error()};if(Object.defineProperty(a.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(a,[])}catch(n){t=n}Reflect.construct(n,[],a)}else{try{a.call()}catch(n){t=n}n.call(a.prototype)}}else{try{throw Error()}catch(n){t=n}n()}}catch(e){if(e&&t&&"string"==typeof e.stack){for(var s=e.stack.split("\n"),c=t.stack.split("\n"),l=s.length-1,u=c.length-1;l>=1&&u>=0&&s[l]!==c[u];)u--;for(;l>=1&&u>=0;l--,u--)if(s[l]!==c[u]){if(1!==l||1!==u)do{if(l--,--u<0||s[l]!==c[u]){var f="\n"+s[l].replace(" at new "," at ");return n.displayName&&f.includes("<anonymous>")&&(f=f.replace("<anonymous>",n.displayName)),"function"==typeof n&&L.set(n,f),f}}while(l>=1&&u>=0);break}}}finally{I=!1,R.current=o,function(){if(0==--P){var n={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:N({},n,{value:k}),info:N({},n,{value:j}),warn:N({},n,{value:E}),error:N({},n,{value:_}),group:N({},n,{value:z}),groupCollapsed:N({},n,{value:S}),groupEnd:N({},n,{value:O})})}P<0&&g("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=i}var p=n?n.displayName||n.name:"",d=p?C(p):"";return"function"==typeof n&&L.set(n,d),d}function F(n,e,t){if(null==n)return"";if("function"==typeof n)return D(n,!(!(r=n.prototype)||!r.isReactComponent));var r;if("string"==typeof n)return C(n);switch(n){case u:return C("Suspense");case f:return C("SuspenseList")}if("object"==typeof n)switch(n.$$typeof){case l:return D(n.render,!1);case d:return F(n.type,e,t);case m:var o=n,i=o._payload,a=o._init;try{return F(a(i),e,t)}catch(n){}}return""}L=new $;var A=Object.prototype.hasOwnProperty,B={},M=b.ReactDebugCurrentFrame;function W(n){if(n){var e=n._owner,t=F(n.type,n._source,e?e.type:null);M.setExtraStackFrame(t)}else M.setExtraStackFrame(null)}var U=Array.isArray;function H(n){return U(n)}function Y(n){return""+n}function V(n){if(function(n){try{return Y(n),!1}catch(n){return!0}}(n))return g("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",function(n){return"function"==typeof Symbol&&Symbol.toStringTag&&n[Symbol.toStringTag]||n.constructor.name||"Object"}(n)),Y(n)}var K,J,Q=b.ReactCurrentOwner,X={key:!0,ref:!0,__self:!0,__source:!0};function G(n,e,r,o,i){var a,s={},c=null,l=null;for(a in void 0!==r&&(V(r),c=""+r),function(n){if(A.call(n,"key")){var e=Object.getOwnPropertyDescriptor(n,"key").get;if(e&&e.isReactWarning)return!1}return void 0!==n.key}(e)&&(V(e.key),c=""+e.key),function(n){if(A.call(n,"ref")){var e=Object.getOwnPropertyDescriptor(n,"ref").get;if(e&&e.isReactWarning)return!1}return void 0!==n.ref}(e)&&(l=e.ref,function(n){"string"==typeof n.ref&&Q.current}(e)),e)A.call(e,a)&&!X.hasOwnProperty(a)&&(s[a]=e[a]);if(n&&n.defaultProps){var u=n.defaultProps;for(a in u)void 0===s[a]&&(s[a]=u[a])}if(c||l){var f="function"==typeof n?n.displayName||n.name||"Unknown":n;c&&function(n,e){var t=function(){K||(K=!0,g("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",e))};t.isReactWarning=!0,Object.defineProperty(n,"key",{get:t,configurable:!0})}(s,f),l&&function(n,e){var t=function(){J||(J=!0,g("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",e))};t.isReactWarning=!0,Object.defineProperty(n,"ref",{get:t,configurable:!0})}(s,f)}return function(n,e,r,o,i,a,s){var c={$$typeof:t,type:n,key:e,ref:r,props:s,_owner:a,_store:{}};return Object.defineProperty(c._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(c,"_self",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(c,"_source",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(c.props),Object.freeze(c)),c}(n,c,l,i,o,Q.current,s)}var Z,nn=b.ReactCurrentOwner,en=b.ReactDebugCurrentFrame;function tn(n){if(n){var e=n._owner,t=F(n.type,n._source,e?e.type:null);en.setExtraStackFrame(t)}else en.setExtraStackFrame(null)}function rn(n){return"object"==typeof n&&null!==n&&n.$$typeof===t}function on(){if(nn.current){var n=w(nn.current.type);if(n)return"\n\nCheck the render method of `"+n+"`."}return""}Z=!1;var an={};function sn(n,e){if(n._store&&!n._store.validated&&null==n.key){n._store.validated=!0;var t=function(n){var e=on();if(!e){var t="string"==typeof n?n:n.displayName||n.name;t&&(e="\n\nCheck the top-level render call using <"+t+">.")}return e}(e);if(!an[t]){an[t]=!0;var r="";n&&n._owner&&n._owner!==nn.current&&(r=" It was passed a child from "+w(n._owner.type)+"."),tn(n),g('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,r),tn(null)}}}function cn(n,e){if("object"==typeof n)if(H(n))for(var t=0;t<n.length;t++){var r=n[t];rn(r)&&sn(r,e)}else if(rn(n))n._store&&(n._store.validated=!0);else if(n){var o=function(n){if(null===n||"object"!=typeof n)return null;var e=y&&n[y]||n["@@iterator"];return"function"==typeof e?e:null}(n);if("function"==typeof o&&o!==n.entries)for(var i,a=o.call(n);!(i=a.next()).done;)rn(i.value)&&sn(i.value,e)}}function ln(n){var e,t=n.type;if(null!=t&&"string"!=typeof t){if("function"==typeof t)e=t.propTypes;else{if("object"!=typeof t||t.$$typeof!==l&&t.$$typeof!==d)return;e=t.propTypes}if(e){var r=w(t);!function(n,e,t,r,o){var i=Function.call.bind(A);for(var a in n)if(i(n,a)){var s=void 0;try{if("function"!=typeof n[a]){var c=Error((r||"React class")+": "+t+" type `"+a+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof n[a]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw c.name="Invariant Violation",c}s=n[a](e,a,r,t,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(n){s=n}!s||s instanceof Error||(W(o),g("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",r||"React class",t,a,typeof s),W(null)),s instanceof Error&&!(s.message in B)&&(B[s.message]=!0,W(o),g("Failed %s type: %s",t,s.message),W(null))}}(e,n.props,"prop",r,n)}else if(void 0!==t.PropTypes&&!Z){Z=!0,g("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",w(t)||"Unknown")}"function"!=typeof t.getDefaultProps||t.getDefaultProps.isReactClassApproved||g("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}var un={};function fn(n,e,r,p,y,b){var x=function(n){return"string"==typeof n||"function"==typeof n||n===o||n===a||n===i||n===u||n===f||n===h||"object"==typeof n&&null!==n&&(n.$$typeof===m||n.$$typeof===d||n.$$typeof===s||n.$$typeof===c||n.$$typeof===l||n.$$typeof===v||void 0!==n.getModuleId)}(n);if(!x){var k="";(void 0===n||"object"==typeof n&&null!==n&&0===Object.keys(n).length)&&(k+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var j;k+=on(),null===n?j="null":H(n)?j="array":void 0!==n&&n.$$typeof===t?(j="<"+(w(n.type)||"Unknown")+" />",k=" Did you accidentally export a JSX literal instead of a component?"):j=typeof n,g("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",j,k)}var E=G(n,e,r,y,b);if(null==E)return E;if(x){var _=e.children;if(void 0!==_)if(p)if(H(_)){for(var z=0;z<_.length;z++)cn(_[z],n);Object.freeze&&Object.freeze(_)}else g("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else cn(_,n)}if(A.call(e,"key")){var S=w(n),O=Object.keys(e).filter((function(n){return"key"!==n})),N=O.length>0?"{key: someKey, "+O.join(": ..., ")+": ...}":"{key: someKey}";if(!un[S+N])g('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',N,S,O.length>0?"{"+O.join(": ..., ")+": ...}":"{}",S),un[S+N]=!0}return n===o?function(n){for(var e=Object.keys(n.props),t=0;t<e.length;t++){var r=e[t];if("children"!==r&&"key"!==r){tn(n),g("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",r),tn(null);break}}null!==n.ref&&(tn(n),g("Invalid attribute `ref` supplied to `React.Fragment`."),tn(null))}(E):ln(E),E}var pn=function(n,e,t){return fn(n,e,t,!1)},dn=function(n,e,t){return fn(n,e,t,!0)};p.Fragment=o,p.jsx=pn,p.jsxs=dn}()),p}var m=(f||(f=1,"production"===process.env.NODE_ENV?c.exports=function(){if(s)return l;s=1;var n=e,t=Symbol.for("react.element"),r=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,i=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function c(n,e,r){var s,c={},l=null,u=null;for(s in void 0!==r&&(l=""+r),void 0!==e.key&&(l=""+e.key),void 0!==e.ref&&(u=e.ref),e)o.call(e,s)&&!a.hasOwnProperty(s)&&(c[s]=e[s]);if(n&&n.defaultProps)for(s in e=n.defaultProps)void 0===c[s]&&(c[s]=e[s]);return{$$typeof:t,type:n,key:l,ref:u,props:c,_owner:i.current}}return l.Fragment=r,l.jsx=c,l.jsxs=c,l}():c.exports=d()),c.exports);function h(n,e){void 0===e&&(e={});var t=e.insertAt;if(n&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===t&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=n:o.appendChild(document.createTextNode(n))}}h('/* .questionHtmlWrapper ul {\n list-style-type: disc;\n padding-left: 1.5rem;\n list-style-position: inside;\n}\n\n.questionHtmlWrapper ol {\n list-style-type: disc;\n padding-left: 1.5rem;\n list-style-position: inside;\n} */\n\n.question-text {\n font-size: 1.15rem;\n font-weight: 600;\n color: #161c20;\n font-family: "Patron", sans-serif;\n line-height: 25px;\n}\n\ncode {\n font-size: 0.8rem;\n font-weight: normal;\n}\n\n@media (max-width: 1320px) {\n .question-text {\n font-size: 1rem;\n }\n .questionHtmlWrapper code {\n font-size: 0.8rem;\n }\n}\n\n@media (max-width: 768px) {\n .question-text {\n font-size: 0.95rem;\n line-height: 22px;\n }\n}\n');var y=function(n){var e=n.question;return m.jsx("div",{className:"question-html-wrapper",children:m.jsx("h2",{className:"question-text",dangerouslySetInnerHTML:{__html:e}})})};h('.options-container {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.option-btn {\n width: 100%;\n padding: 12px;\n border-radius: 8px;\n background: #ffffff;\n cursor: pointer;\n transition: 0.3s;\n color: #161c20;\n border: none;\n text-align: left;\n border: 1px solid #e7e7e7;\n}\n\n.option-btn:hover {\n background: #e1d8c9;\n}\n\n.option-btn.selected {\n background: #b59b7b;\n}\n\n.option-text {\n font-size: 1rem;\n font-weight: 500;\n line-height: 22px;\n letter-spacing: -0.1%;\n font-family: "Patron", sans-serif;\n}\n\n.option-image {\n max-width: 100%;\n height: auto;\n border-radius: 5px;\n}\n\n.option-code {\n background-color: #1e1e1e;\n color: white;\n padding: 8px;\n border-radius: 5px;\n}\n\n@media (max-width: 768px) {\n .option-text {\n font-size: 0.95rem;\n line-height: 21px;\n }\n\n .option-btn:hover {\n background: #b59b7b;\n }\n}\n');var b,g=function(n){var e=n.options,t=n.selectedOption,r=n.onSelect,o=n.loading;return m.jsx("div",{className:"options-container",children:e.map((function(n){return m.jsx("button",{disabled:o,className:"option-btn ".concat(t===n.id&&"selected"),onClick:function(){return r(n.id)},children:n.text&&m.jsx("span",{className:"option-text",children:n.text})},n.id)}))})};function v(){return v=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},v.apply(null,arguments)}var x=function(e){return n.createElement("svg",v({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none"},e),b||(b=n.createElement("path",{fill:"#1D1B21",d:"M8 2.5a6 6 0 1 0 6 6 6.006 6.006 0 0 0-6-6m2.854 3.854-2.5 2.5a.5.5 0 0 1-.708-.708l2.5-2.5a.5.5 0 1 1 .708.708M6 1a.5.5 0 0 1 .5-.5h3a.5.5 0 1 1 0 1h-3A.5.5 0 0 1 6 1"})))};h(".timer {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n");var w=function(n){var e=n.duration,i=n.markQuizComplete,a=n.isEndScreenOpen,s=t(e),c=s[0],l=s[1],u=r(null);o((function(){return u.current&&clearInterval(u.current),u.current=setInterval((function(){l((function(n){return n>0?n-1:0}))}),1e3),function(){u.current&&clearInterval(u.current)}}),[e]),o((function(){0===c&&(i(),u.current&&clearInterval(u.current))}),[c,i]),o((function(){a&&u.current&&clearInterval(u.current)}),[a]);var f,p,d;return m.jsxs("div",{className:"timer",children:[m.jsx(x,{}),m.jsx("span",{children:(f=c,p=Math.floor(f/60),d=f%60,"".concat(p,":").concat(d<10?"0":"").concat(d))})]})};h('/* Modal Background Overlay */\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n}\n\n/* Modal Box */\n.modal-content {\n background: #222;\n color: #fff;\n padding: 20px;\n border-radius: 10px;\n width: 400px;\n text-align: center;\n position: relative;\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);\n}\n\n/* Close Button */\n.modal-close {\n position: absolute;\n top: 10px;\n right: 15px;\n background: none;\n border: none;\n font-size: 24px;\n color: #fff;\n cursor: pointer;\n font-family: "Patron", sans-serif;\n}\n\n/* Header */\n.modal-header {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-bottom: 10px;\n font-family: "Patron", sans-serif;\n}\n\n/* Warning Icon */\n.modal-icon {\n font-size: 32px;\n color: #ffcc00;\n}\n\n/* Text */\n.modal-text {\n font-size: 14px;\n color: #ccc;\n margin-bottom: 20px;\n font-family: "Patron", sans-serif;\n}\n\n/* Button */\n.modal-button {\n background: #fff;\n color: #222;\n border: none;\n padding: 10px 20px;\n border-radius: 20px;\n font-size: 14px;\n cursor: pointer;\n transition: 0.3s;\n font-family: "Patron", sans-serif;\n}\n\n.modal-button:hover {\n background: #ddd;\n}\n');var k=function(n){var e=n.open,t=n.onClose;return e?m.jsx("div",{className:"modal-overlay",children:m.jsxs("div",{className:"modal-content",children:[m.jsx("button",{className:"modal-close",onClick:t,children:"×"}),m.jsxs("div",{className:"modal-header",children:[m.jsx("span",{className:"modal-icon",children:"⚠️"}),m.jsx("h2",{children:"Tab Switch Detected"})]}),m.jsx("p",{className:"modal-text",children:"Any further attempts to switch tabs or change browser windows will result in disqualification from the assessment."}),m.jsx("button",{className:"modal-button",onClick:t,children:"Understood"})]})}):null};h('.end-screen-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: #222;\n color: #fff;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n}\n\n/* Content */\n.end-screen-content {\n text-align: center;\n font-size: 20px;\n font-weight: bold;\n font-family: "Patron", sans-serif;\n}\n\n.end-screen-close {\n position: absolute;\n top: 20px;\n right: 20px;\n background: none;\n border: none;\n font-size: 24px;\n color: #fff;\n cursor: pointer;\n font-family: "Patron", sans-serif;\n}\n');var j,E,_,z=function(n){var e=n.open;return n.onClose,e?m.jsx("div",{className:"end-screen-overlay",children:m.jsx("div",{className:"end-screen-content",children:m.jsx("p",{children:"Your quiz has ended due to switching tabs too many times."})})}):null};function S(){return S=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},S.apply(null,arguments)}var O=function(e){return n.createElement("svg",S({xmlns:"http://www.w3.org/2000/svg",width:38,height:38,fill:"none"},e),j||(j=n.createElement("rect",{width:38,height:38,fill:"#151515",rx:19})),E||(E=n.createElement("g",{clipPath:"url(#downArrow_svg__a)"},n.createElement("path",{fill:"#fff",d:"M8.758 21.194c.037.14.145.36.234.492.09.136 2.138 2.222 4.556 4.636 5.035 5.03 4.594 4.655 5.452 4.655.427 0 .525-.015.727-.113.182-.094 1.18-1.06 4.725-4.594 2.47-2.465 4.546-4.57 4.612-4.678.145-.243.248-.623.248-.91 0-.454-.295-1.077-.637-1.335-.342-.263-.97-.399-1.397-.3-.534.122-.576.16-3.319 2.873-2.667 2.649-2.878 2.883-3.117 3.46-.08.201-.084-.043-.108-8.442l-.023-8.649-.127-.267a1.84 1.84 0 0 0-.796-.84c-.282-.154-.32-.159-.788-.159-.445 0-.516.015-.75.132-.464.239-.788.633-.919 1.12-.056.211-.065 1.608-.065 8.756v8.508l-.136-.281a3.7 3.7 0 0 0-.347-.563c-.117-.154-1.36-1.425-2.761-2.817-1.945-1.94-2.602-2.569-2.78-2.658-.914-.454-1.94-.13-2.376.75-.178.361-.22.83-.108 1.224"}))),_||(_=n.createElement("defs",null,n.createElement("clipPath",{id:"downArrow_svg__a"},n.createElement("path",{fill:"#fff",d:"M7 31V7h24v24z"})))))};h(".loader-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: black;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9999;\n}\n\n.loader-spinner {\n border: 8px solid rgba(255, 255, 255, 0.2);\n border-top: 8px solid white;\n border-radius: 50%;\n width: 60px;\n height: 60px;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n");var N=function(){return m.jsx("div",{className:"loader-overlay",children:m.jsx("div",{className:"loader-spinner"})})};h('* {\n box-sizing: border-box;\n}\n\n.quiz-page {\n position: fixed;\n background: white;\n width: 100vw;\n min-height: 100dvh;\n top: 0;\n left: 0;\n z-index: 100;\n box-sizing: border-box;\n overflow-y: auto; /* ensure scrolling works */\n display: flex;\n flex-direction: column;\n}\n\n.quiz-page-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n border-radius: 16px;\n margin: 24px 16px 0px 16px;\n height: 100%;\n background: #f8f5f2; /* Same background color */\n}\n\n/* Ticker stays in a row on all devices */\n.quiz-ticker {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 20px;\n border-bottom: 1px solid #e1d8c9;\n}\n\n.quiz-ticker-right {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 2rem;\n padding-right: 2rem;\n}\n\n.quiz-container {\n flex-grow: 1;\n width: 100%;\n display: flex;\n flex-direction: row; /* side-by-side on desktop */\n align-items: flex-start;\n padding: 24px 56px 24px;\n border-radius: 10px;\n justify-content: space-between;\n box-sizing: border-box;\n max-width: 1600px;\n margin: 0 auto;\n max-height: 80dvh;\n overflow: auto;\n gap: 2rem;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* Internet Explorer 10+ */\n}\n\n.quiz-container::-webkit-scrollbar {\n display: none;\n}\n\n/* Left & Right columns on desktop */\n.quiz-left {\n width: 100%;\n max-width: 650px;\n overflow: auto;\n scrollbar-width: thin;\n scrollbar-color: #ccc transparent; /* thumb color, track color */\n}\n\n/* WebKit-based browsers (Chrome, Safari, Edge) */\n.quiz-left::-webkit-scrollbar {\n width: 6px; /* slim scrollbar */\n}\n\n.quiz-left::-webkit-scrollbar-thumb {\n background-color: #ccc; /* grey thumb */\n border-radius: 4px;\n}\n\n.quiz-left::-webkit-scrollbar-track {\n background: transparent; /* optional: transparent track */\n}\n\n.quiz-right {\n max-width: 622px;\n width: 100%;\n}\n\n.quiz-right-head {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.choose-option {\n font-size: 1rem;\n font-family: "Patron", sans-serif;\n font-weight: 500;\n line-height: 32px;\n letter-spacing: 0.2%;\n}\n\n.question-count {\n font-size: 0.9rem;\n font-family: "Patron", sans-serif;\n color: #161c20;\n font-weight: 500;\n line-height: 1.2rem;\n}\n\n.options-container {\n display: flex;\n flex-direction: column;\n gap: 18px;\n margin-top: 12px;\n}\n\n.mobile-next-btn {\n display: none;\n}\n\n/* Button Styles */\n.prev-btn,\n.next-btn {\n padding: 10px 54px;\n background: #000000;\n color: #ffffff;\n border: none;\n border-radius: 24px;\n cursor: pointer;\n transition: 0.3s;\n font-size: 0.9rem;\n font-weight: 500;\n font-family: "Patron", sans-serif;\n line-height: 21px;\n}\n\n.prev-btn {\n background: #5d4037;\n}\n\n.next-btn:disabled {\n background: #d7ccc8;\n cursor: not-allowed;\n}\n\n.scroll-down-btn {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 999;\n border: none;\n border-radius: 50%;\n padding: 4px;\n cursor: pointer;\n font-size: 20px;\n transition: background 0.3s;\n}\n\n.bounce {\n animation: bounce 1.6s infinite;\n}\n\n@keyframes bounce {\n 0%,\n 20%,\n 50%,\n 80%,\n 100% {\n transform: translateY(0px);\n }\n 40% {\n transform: translateY(-4px);\n }\n 60% {\n transform: translateY(-2px);\n }\n}\n\n/* RESPONSIVE LAYOUT */\n@media (max-width: 768px) {\n /* Stack quiz content vertically on mobile */\n\n .quiz-page-container {\n flex-direction: column;\n padding: 16px;\n gap: 1rem;\n overflow-y: auto;\n margin: 0;\n border-radius: 0;\n }\n\n .quiz-container {\n flex-direction: column;\n padding: 0;\n justify-content: space-between;\n }\n\n .quiz-ticker {\n padding: 3px 20px;\n }\n\n .quiz-left {\n max-height: none;\n overflow: initial;\n }\n\n .quiz-ticker-right {\n padding-right: 0px;\n }\n\n .choose-option {\n font-size: 0.95rem;\n }\n /* Keep the ticker in a row at the top (no change) */\n\n /* Fix the next button at the bottom on mobile */\n .next-btn-container {\n display: none;\n }\n\n .mobile-next-btn {\n display: block;\n position: fixed;\n left: 0;\n bottom: 0;\n margin: 0 auto;\n text-align: center;\n z-index: 101;\n width: 100%;\n padding: 12px 0;\n border-top: 1px solid #dddddd;\n background: #f8f5f2; /* Same background color */\n }\n\n .next-btn {\n padding: 12px 72px;\n }\n\n .question-count {\n font-size: 0.95rem;\n }\n .option-btn {\n font-size: 0.8rem;\n padding: 10px;\n }\n}\n\n@media (max-width: 768px) and (max-height: 800px) {\n .quiz-container {\n padding-bottom: 65px;\n }\n}\n\n@media (max-width: 768px) and (max-height: 500px) {\n .quiz-container {\n padding-bottom: 100px;\n }\n}\n');h('/* Thin (100) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-thin.woff2") format("woff2");\n font-weight: 100;\n font-style: normal;\n font-display: swap;\n}\n\n/* Light (300) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-light.woff2") format("woff2");\n font-weight: 300;\n font-style: normal;\n font-display: swap;\n}\n\n/* Regular (400) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-regular.woff2") format("woff2");\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n}\n\n/* Medium (500) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-medium.woff2") format("woff2");\n font-weight: 500;\n font-style: normal;\n font-display: swap;\n}\n\n/* Bold (700) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-bold.woff2") format("woff2");\n font-weight: 700;\n font-style: normal;\n font-display: swap;\n}\n');var P=function(n){var e=n.quizId,s=n.userId,c=n.tabSwitchLimit,l=n.onQuizComplete,u=n.baseURL,f=n.token,p=t(!1),d=p[0],h=p[1],b=t(0),v=b[0],x=b[1],j=t(null),E=j[0],_=j[1],S=t(null),P=S[0],T=S[1],q=t(!1),R=q[0],C=q[1],L=t(!1),I=L[0],$=L[1],D=t(!1),F=D[0],A=D[1],B=function(n){void 0===n&&(n=3);var e=t(0),r=e[0],i=e[1],a=t(!1),s=a[0],c=a[1];return o((function(){var n=function(){document.hidden&&i((function(n){return n+1}))};return document.addEventListener("visibilitychange",n),function(){document.removeEventListener("visibilitychange",n)}}),[]),o((function(){r>=n&&c(!0)}),[r,n]),{switchCount:r,isLimitReached:s}}(c),M=B.isLimitReached,W=B.switchCount,U=r([]);o((function(){var n=function(n){return n.preventDefault()},e=function(n){return n.preventDefault()},t=function(n){return n.preventDefault()};return document.addEventListener("copy",n),document.addEventListener("cut",n),document.addEventListener("paste",n),document.addEventListener("selectstart",e),document.addEventListener("contextmenu",t),function(){document.removeEventListener("copy",n),document.removeEventListener("cut",n),document.removeEventListener("paste",n),document.removeEventListener("selectstart",e),document.removeEventListener("contextmenu",t)}}),[]),o((function(){i(void 0,void 0,void 0,(function(){var n;return a(this,(function(t){switch(t.label){case 0:return t.trys.push([0,3,,4]),[4,fetch("".concat(u,"/user-assessment/").concat(e,"/").concat(s,"/get-session-data"),{headers:{Authorization:"Bearer ".concat(f)}})];case 1:return[4,t.sent().json()];case 2:return n=t.sent(),T(n),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}}))}))}),[e,s]);var H=r(null),Y=t(!1),V=Y[0],K=Y[1],J=t(!1),Q=J[0],X=J[1];o((function(){if(P){var n=H.current;if(n){var e=function(){var e=n.scrollHeight>n.clientHeight,t=n.scrollTop+n.clientHeight>=n.scrollHeight-15;e?(t&&X(!0),K(!t&&!Q)):(K(!1),X(!1))},t=requestAnimationFrame((function(){setTimeout(e,100)}));return n.addEventListener("scroll",e),window.addEventListener("resize",e),function(){cancelAnimationFrame(t),n.removeEventListener("scroll",e),window.removeEventListener("resize",e)}}}}),[P,v,Q]);if(o((function(){W>0&&W<3&&C(!0)}),[W]),o((function(){M&&$(!0)}),[M]),o((function(){return function(){U.current.forEach((function(n){return clearTimeout(n)})),U.current=[]}}),[]),!P)return m.jsx(N,{});function G(){C(!1),$(!1)}var Z=P.questions,nn=function(n,e,t,r){return i(void 0,void 0,void 0,(function(){return a(this,(function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),[4,fetch("".concat(u,"/user-assessment/").concat(n,"/").concat(t,"/").concat(e,"/submit-answer"),{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(f)},body:JSON.stringify({optionIds:[r]})})];case 1:case 2:return o.sent(),[3,3];case 3:return[2]}}))}))},en=function(){return i(void 0,void 0,void 0,(function(){return a(this,(function(n){switch(n.label){case 0:return n.trys.push([0,4,,5]),[4,fetch("".concat(u,"/user-assessment/").concat(e,"/").concat(s,"/mark-quiz-complete"),{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(f)}})];case 1:return n.sent().ok?(h(!0),[4,l()]):[3,3];case 2:return n.sent(),[3,3];case 3:return[3,5];case 4:return n.sent(),[3,5];case 5:return[2]}}))}))},tn=function(){return i(void 0,void 0,void 0,(function(){var n;return a(this,(function(t){switch(t.label){case 0:if(!E)return[2];A(!0),t.label=1;case 1:return t.trys.push([1,,6,7]),[4,nn(e,Z[v].id,s,E)];case 2:return t.sent(),v!==Z.length-1?[3,4]:[4,en()];case 3:return t.sent(),[3,5];case 4:_(null),n=null===window||void 0===window?void 0:window.setTimeout((function(){x((function(n){return n+1}));var n=window.setTimeout((function(){X(!1)}),150);U.current.push(n)}),300),U.current.push(n),t.label=5;case 5:return[3,7];case 6:return n=null===window||void 0===window?void 0:window.setTimeout((function(){A(!1)}),300),U.current.push(n),[7];case 7:return[2]}}))}))};function rn(){return F?"Submitting":v===Z.length-1?"Submit":"Next"}return d?null:m.jsxs("div",{className:"quiz-page",children:[m.jsxs("div",{className:"quiz-page-container",children:[m.jsxs("div",{className:"quiz-ticker",children:[m.jsxs("h3",{className:"question-count",children:["Questions: ",v+1,"/",Z.length]}),m.jsx("div",{className:"quiz-ticker-right",children:m.jsx(w,{markQuizComplete:en,duration:P.duration,isEndScreenOpen:I})})]}),m.jsxs("div",{className:"quiz-container",ref:H,children:[m.jsx("div",{className:"quiz-left",children:m.jsx(y,{question:Z[v].text})}),m.jsxs("div",{className:"quiz-right",children:[m.jsxs("div",{className:"quiz-right-head",children:[m.jsx("h3",{className:"choose-option",children:"Choose the right option"}),m.jsx("div",{className:"next-btn-container",children:m.jsx("button",{className:"next-btn",disabled:!E||F,onClick:tn,children:rn()})}),m.jsx("div",{className:"mobile-next-btn",children:m.jsx("button",{className:"next-btn",disabled:!E||F,onClick:tn,children:rn()})})]}),m.jsx(g,{loading:F,options:Z[v].options,selectedOption:E,onSelect:_})]})]})]}),m.jsx(k,{open:R,onClose:G}),m.jsx(z,{open:I,onClose:G}),V&&m.jsx("button",{className:"scroll-down-btn bounce",onClick:function(){var n=H.current;n&&(n.scrollTo({top:n.scrollHeight+10,behavior:"smooth"}),X(!0),K(!1))},children:m.jsx(O,{})})]})};export{P as default};
|
|
11
|
-
//# sourceMappingURL=index.mjs.map
|
|
1
|
+
import{jsx as n,jsxs as t}from"react/jsx-runtime";import*as o from"react";import{useState as e,useRef as i,useEffect as r}from"react";var a=function(){return a=Object.assign||function(n){for(var t,o=1,e=arguments.length;o<e;o++)for(var i in t=arguments[o])Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n},a.apply(this,arguments)};function l(n,t,o,e){return new(o||(o=Promise))((function(i,r){function a(n){try{s(e.next(n))}catch(n){r(n)}}function l(n){try{s(e.throw(n))}catch(n){r(n)}}function s(n){var t;n.done?i(n.value):(t=n.value,t instanceof o?t:new o((function(n){n(t)}))).then(a,l)}s((e=e.apply(n,t||[])).next())}))}function s(n,t){var o,e,i,r={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=l(0),a.throw=l(1),a.return=l(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(l){return function(s){return function(l){if(o)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(r=0)),r;)try{if(o=1,e&&(i=2&l[0]?e.return:l[0]?e.throw||((i=e.return)&&i.call(e),0):e.next)&&!(i=i.call(e,l[1])).done)return i;switch(e=0,i&&(l=[2&l[0],i.value]),l[0]){case 0:case 1:i=l;break;case 4:return r.label++,{value:l[1],done:!1};case 5:r.label++,e=l[1],l=[0];continue;case 7:l=r.ops.pop(),r.trys.pop();continue;default:if(!(i=r.trys,(i=i.length>0&&i[i.length-1])||6!==l[0]&&2!==l[0])){r=0;continue}if(3===l[0]&&(!i||l[1]>i[0]&&l[1]<i[3])){r.label=l[1];break}if(6===l[0]&&r.label<i[1]){r.label=i[1],i=l;break}if(i&&r.label<i[2]){r.label=i[2],r.ops.push(l);break}i[2]&&r.ops.pop(),r.trys.pop();continue}l=t.call(n,r)}catch(n){l=[6,n],e=0}finally{o=i=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,s])}}}function c(n,t){void 0===t&&(t={});var o=t.insertAt;if(n&&"undefined"!=typeof document){var e=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===o&&e.firstChild?e.insertBefore(i,e.firstChild):e.appendChild(i),i.styleSheet?i.styleSheet.cssText=n:i.appendChild(document.createTextNode(n))}}"function"==typeof SuppressedError&&SuppressedError;c('/* .questionHtmlWrapper ul {\n list-style-type: disc;\n padding-left: 1.5rem;\n list-style-position: inside;\n}\n\n.questionHtmlWrapper ol {\n list-style-type: disc;\n padding-left: 1.5rem;\n list-style-position: inside;\n} */\n\n.question-text {\n font-size: var(--quiz-font-size-large, 1.15rem);\n font-weight: var(--quiz-font-weight-bold, 600);\n color: var(--quiz-color-text-primary, #161c20);\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n line-height: 25px;\n}\n\ncode {\n font-size: 0.8rem;\n font-weight: normal;\n}\n\n@media (max-width: 1320px) {\n .question-text {\n font-size: var(--quiz-font-size-medium, 1rem);\n }\n .questionHtmlWrapper code {\n font-size: 0.8rem;\n }\n}\n\n@media (max-width: 768px) {\n .question-text {\n font-size: 0.95rem;\n line-height: 22px;\n }\n}\n');var d=function(t){var o=t.question;return n("div",{className:"question-html-wrapper",children:n("h2",{className:"question-text",dangerouslySetInnerHTML:{__html:o}})})};c('.options-container {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.option-btn {\n width: 100%;\n padding: 12px;\n border-radius: var(--quiz-border-radius-medium, 8px);\n background: var(--quiz-color-option-background, #ffffff);\n cursor: pointer;\n transition: var(--quiz-transition-medium, 0.3s);\n color: var(--quiz-color-option-text, #161c20);\n border: none;\n text-align: left;\n border: 1px solid var(--quiz-color-option-border, #e7e7e7);\n /* display: flex; */\n}\n\n.option-btn:hover {\n background: var(--quiz-color-option-hover, #e1d8c9);\n}\n\n.option-btn.selected {\n background: var(--quiz-color-option-selected, #b59b7b);\n}\n\n.option-text {\n font-size: var(--quiz-font-size-medium, 1rem);\n font-weight: var(--quiz-font-weight-medium, 500);\n line-height: 22px;\n letter-spacing: -0.1%;\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n}\n\n.option-image {\n max-width: 100%;\n height: auto;\n border-radius: var(--quiz-border-radius-small, 4px);\n}\n\n.option-code {\n background-color: #1e1e1e;\n color: white;\n padding: var(--quiz-spacing-small, 8px);\n border-radius: var(--quiz-border-radius-small, 4px);\n}\n\n@media (max-width: 768px) {\n .option-text {\n font-size: 0.95rem;\n line-height: 21px;\n }\n\n .option-btn:hover {\n background: var(--quiz-color-option-selected, #b59b7b);\n }\n}\n');var u,f=function(t){var o=t.options,e=t.selectedOption,i=t.onSelect,r=t.loading,a=t.direction;return n("div",{className:"options-container",children:null==o?void 0:o.map((function(t){return n("button",{disabled:r,className:"option-btn ".concat(e===t.id&&"selected"),style:"rtl"===a?{textAlign:"unset"}:{},onClick:function(){return i(t.id)},children:t.text&&n("span",{className:"option-text",children:t.text})},t.id)}))})};function m(){return m=Object.assign?Object.assign.bind():function(n){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var e in o)({}).hasOwnProperty.call(o,e)&&(n[e]=o[e])}return n},m.apply(null,arguments)}var p=function(n){return o.createElement("svg",m({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none"},n),u||(u=o.createElement("path",{fill:"#1D1B21",d:"M8 2.5a6 6 0 1 0 6 6 6.006 6.006 0 0 0-6-6m2.854 3.854-2.5 2.5a.5.5 0 0 1-.708-.708l2.5-2.5a.5.5 0 1 1 .708.708M6 1a.5.5 0 0 1 .5-.5h3a.5.5 0 1 1 0 1h-3A.5.5 0 0 1 6 1"})))};c('.timer {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 8px;\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n font-size: var(--quiz-font-size-medium, 0.9rem);\n font-weight: var(--quiz-font-weight-medium, 500);\n color: var(--quiz-color-text-primary, #161c20);\n}\n\n.timer span {\n color: var(--quiz-color-text-primary, #161c20);\n font-size: var(--quiz-font-size-medium, 0.9rem);\n font-weight: var(--quiz-font-weight-medium, 500);\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n}\n\n.timer svg {\n width: 18px;\n height: 18px;\n fill: var(--quiz-color-text-primary, #161c20);\n}\n\n@media (max-width: 768px) {\n .timer {\n font-size: var(--quiz-font-size-small, 0.85rem);\n }\n \n .timer span {\n font-size: var(--quiz-font-size-small, 0.85rem);\n }\n \n .timer svg {\n width: 16px;\n height: 16px;\n }\n}\n');var h=function(o){var a=o.duration,l=o.markQuizComplete,s=o.isEndScreenOpen,c=e(a),d=c[0],u=c[1],f=i(null);r((function(){if(0!==a)return f.current&&clearInterval(f.current),f.current=setInterval((function(){u((function(n){return n>0?n-1:0}))}),1e3),function(){f.current&&clearInterval(f.current)}}),[a]),r((function(){0!==a&&0===d&&(l(),f.current&&clearInterval(f.current))}),[d,l]),r((function(){s&&f.current&&clearInterval(f.current)}),[s]);var m,h,b;return t("div",{className:"timer",children:[n(p,{}),n("span",{children:(m=d,h=Math.floor(m/60),b=m%60,"".concat(h,":").concat(b<10?"0":"").concat(b))})]})};c('/* Modal Background Overlay */\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n}\n\n/* Modal Box */\n.modal-content {\n background: var(--quiz-tab-switch-modal-background, #222);\n color: var(--quiz-tab-switch-modal-text-color, #fff);\n padding: var(--quiz-tab-switch-modal-padding, 20px);\n border-radius: var(--quiz-tab-switch-modal-border-radius, 10px);\n width: 400px;\n text-align: center;\n position: relative;\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);\n}\n\n/* Close Button */\n.modal-close {\n position: absolute;\n top: 10px;\n right: 15px;\n background: none;\n border: none;\n font-size: 24px;\n color: var(--quiz-tab-switch-modal-close-color, #fff);\n cursor: pointer;\n font-family: var(--quiz-tab-switch-modal-font-family, "Patron", sans-serif);\n}\n\n/* Header */\n.modal-header {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-bottom: var(--quiz-tab-switch-modal-header-margin, 10px);\n font-family: var(--quiz-tab-switch-modal-font-family, "Patron", sans-serif);\n}\n\n/* Warning Icon */\n.modal-icon {\n font-size: 32px;\n color: var(--quiz-tab-switch-modal-icon-color, #ffcc00);\n}\n\n/* Text */\n.modal-text {\n font-size: var(--quiz-tab-switch-modal-text-font-size, 14px);\n color: var(--quiz-tab-switch-modal-text-secondary-color, #ccc);\n margin-bottom: var(--quiz-tab-switch-modal-text-margin, 20px);\n font-family: var(--quiz-tab-switch-modal-font-family, "Patron", sans-serif);\n}\n\n/* Button */\n.modal-button {\n background: var(--quiz-tab-switch-modal-button-background, #fff);\n color: var(--quiz-tab-switch-modal-button-text-color, #222);\n border: none;\n padding: var(--quiz-tab-switch-modal-button-padding, 10px 20px);\n border-radius: var(--quiz-tab-switch-modal-button-border-radius, 20px);\n font-size: var(--quiz-tab-switch-modal-button-font-size, 14px);\n cursor: pointer;\n transition: var(--quiz-tab-switch-modal-button-transition, 0.3s);\n font-family: var(--quiz-tab-switch-modal-font-family, "Patron", sans-serif);\n}\n\n.modal-button:hover {\n background: var(--quiz-tab-switch-modal-button-hover-background, #ddd);\n color: var(--quiz-tab-switch-modal-button-hover-text-color, #222);\n}\n');var b=function(o){var e=o.open,i=o.onClose;return e?n("div",{className:"modal-overlay",children:t("div",{className:"modal-content",children:[n("button",{className:"modal-close",onClick:i,children:"×"}),t("div",{className:"modal-header",children:[n("span",{className:"modal-icon",children:"⚠️"}),n("h2",{children:"Tab Switch Detected"})]}),n("p",{className:"modal-text",children:"Any further attempts to switch tabs or change browser windows will result in disqualification from the assessment."}),n("button",{className:"modal-button",onClick:i,children:"Understood"})]})}):null};c('.end-screen-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--quiz-end-screen-background, #222);\n color: var(--quiz-end-screen-text-color, #fff);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n}\n\n/* Content */\n.end-screen-content {\n text-align: center;\n font-size: var(--quiz-end-screen-font-size, 20px);\n font-weight: var(--quiz-end-screen-font-weight, bold);\n font-family: var(--quiz-end-screen-font-family, "Patron", sans-serif);\n color: var(--quiz-end-screen-text-color, #fff);\n}\n\n.end-screen-close {\n position: absolute;\n top: 20px;\n right: 25px;\n background: none;\n border: none;\n font-size: 24px;\n color: var(--quiz-end-screen-close-color, #fff);\n cursor: pointer;\n font-family: var(--quiz-end-screen-font-family, "Patron", sans-serif);\n}\n');var v,g,x,z=function(o){var e=o.open,i=o.onClose,r=o.message;return e?t("div",{className:"end-screen-overlay",children:[i&&n("button",{className:"end-screen-close",onClick:i,children:"×"}),n("div",{className:"end-screen-content",children:n("p",{children:r||"Your quiz has ended due to switching tabs too many times."})})]}):null};function y(){return y=Object.assign?Object.assign.bind():function(n){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var e in o)({}).hasOwnProperty.call(o,e)&&(n[e]=o[e])}return n},y.apply(null,arguments)}var w,q=function(n){return o.createElement("svg",y({xmlns:"http://www.w3.org/2000/svg",width:38,height:38,fill:"none"},n),v||(v=o.createElement("rect",{width:38,height:38,fill:"#151515",rx:19})),g||(g=o.createElement("g",{clipPath:"url(#downArrow_svg__a)"},o.createElement("path",{fill:"#fff",d:"M8.758 21.194c.037.14.145.36.234.492.09.136 2.138 2.222 4.556 4.636 5.035 5.03 4.594 4.655 5.452 4.655.427 0 .525-.015.727-.113.182-.094 1.18-1.06 4.725-4.594 2.47-2.465 4.546-4.57 4.612-4.678.145-.243.248-.623.248-.91 0-.454-.295-1.077-.637-1.335-.342-.263-.97-.399-1.397-.3-.534.122-.576.16-3.319 2.873-2.667 2.649-2.878 2.883-3.117 3.46-.08.201-.084-.043-.108-8.442l-.023-8.649-.127-.267a1.84 1.84 0 0 0-.796-.84c-.282-.154-.32-.159-.788-.159-.445 0-.516.015-.75.132-.464.239-.788.633-.919 1.12-.056.211-.065 1.608-.065 8.756v8.508l-.136-.281a3.7 3.7 0 0 0-.347-.563c-.117-.154-1.36-1.425-2.761-2.817-1.945-1.94-2.602-2.569-2.78-2.658-.914-.454-1.94-.13-2.376.75-.178.361-.22.83-.108 1.224"}))),x||(x=o.createElement("defs",null,o.createElement("clipPath",{id:"downArrow_svg__a"},o.createElement("path",{fill:"#fff",d:"M7 31V7h24v24z"})))))};function k(){return k=Object.assign?Object.assign.bind():function(n){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var e in o)({}).hasOwnProperty.call(o,e)&&(n[e]=o[e])}return n},k.apply(null,arguments)}var S=function(n){return o.createElement("svg",k({xmlns:"http://www.w3.org/2000/svg",width:24,height:23,fill:"none"},n),w||(w=o.createElement("path",{fill:"#000",d:"M17.837 5.797a.94.94 0 0 0-1.328 0l-4.305 4.306-4.306-4.306a.939.939 0 0 0-1.327 1.328l4.305 4.306-4.305 4.305a.939.939 0 0 0 1.327 1.328l4.306-4.306 4.305 4.306a.94.94 0 0 0 1.328-1.328l-4.306-4.305 4.306-4.306a.94.94 0 0 0 0-1.328"})))};c(".loader-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--quiz-loader-background, black);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9999;\n}\n\n.loader-spinner {\n border: 8px solid var(--quiz-loader-spinner-border, rgba(255, 255, 255, 0.2));\n border-top: 8px solid var(--quiz-loader-spinner-color, white);\n border-radius: 50%;\n width: 60px;\n height: 60px;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n");var C=function(){return n("div",{className:"loader-overlay",children:n("div",{className:"loader-spinner"})})},M={colors:{primary:"#000000",secondary:"#5d4037",background:"#ffffff",surface:"#f8f5f2",text:{primary:"#161c20",secondary:"#666666"},button:{primary:"#000000",primaryText:"#ffffff",secondary:"#5d4037",secondaryText:"#ffffff",disabled:"#d7ccc8",disabledText:"#ffffff"},option:{background:"#ffffff",hover:"#e1d8c9",selected:"#b59b7b",border:"#e7e7e7",text:"#161c20"},border:"#e1d8c9",scrollButton:"#ffffff"},typography:{fontFamily:"Patron, sans-serif",fontSize:{small:"0.9rem",medium:"1rem",large:"1.15rem",xlarge:"1.5rem"},fontWeight:{normal:"400",medium:"500",bold:"600"},lineHeight:{small:"1.2rem",medium:"1.4rem",large:"1.6rem"}},spacing:{small:"8px",medium:"16px",large:"24px",xlarge:"32px"},borderRadius:{small:"4px",medium:"8px",large:"16px"},transitions:{fast:"0.15s",medium:"0.3s",slow:"0.5s"},loader:{background:"black",spinnerColor:"white",spinnerBorder:"rgba(255, 255, 255, 0.2)"},endScreen:{background:"#222",textColor:"#fff",closeColor:"#fff",fontSize:"20px",fontWeight:"bold",fontFamily:'"Patron", sans-serif'},tabSwitchModal:{background:"#222",textColor:"#fff",closeColor:"#fff",textSecondaryColor:"#ccc",iconColor:"#ffcc00",buttonBackground:"#fff",buttonTextColor:"#222",buttonHoverBackground:"#ddd",buttonHoverTextColor:"#222",fontFamily:'"Patron", sans-serif',textFontSize:"14px",buttonFontSize:"14px",padding:"20px",headerMargin:"10px",textMargin:"20px",buttonPadding:"10px 20px",borderRadius:"10px",buttonBorderRadius:"20px",buttonTransition:"0.3s"}};function E(n,t){var o=a({},n);for(var e in t)void 0!==t[e]&&null!==t[e]&&(t[e]&&"object"==typeof t[e]&&!Array.isArray(t[e])?o[e]=E(n[e]||{},t[e]):o[e]=t[e]);return o}function N(n,t){return t?E(n,t):n}var P=function(t){var o,e=t.theme,i=t.targetClass,r=void 0===i?".quiz-page":i;if(!e||(!(o=e)||"object"!=typeof o||0===Object.keys(o).length))return null;var a=function(n){return function(n){var t,o,e,i,r,a,l,s,c,d,u,f,m,p,h,b,v,g,x,z,y,w,q,k,S,C,M,E,N,P,T,j,B,O,L,H,R,F,W,A,I,_,Q,Y,D,U,V,G,J,K,X,Z={};return n.colors&&(n.colors.primary&&(Z["--quiz-color-primary"]=n.colors.primary),n.colors.secondary&&(Z["--quiz-color-secondary"]=n.colors.secondary),n.colors.background&&(Z["--quiz-color-background"]=n.colors.background),n.colors.surface&&(Z["--quiz-color-surface"]=n.colors.surface),n.colors.border&&(Z["--quiz-color-border"]=n.colors.border),n.colors.scrollButton&&(Z["--quiz-color-scroll-button"]=n.colors.scrollButton),(null===(t=n.colors.text)||void 0===t?void 0:t.primary)&&(Z["--quiz-color-text-primary"]=n.colors.text.primary),(null===(o=n.colors.text)||void 0===o?void 0:o.secondary)&&(Z["--quiz-color-text-secondary"]=n.colors.text.secondary),(null===(e=n.colors.button)||void 0===e?void 0:e.primary)&&(Z["--quiz-color-button-primary"]=n.colors.button.primary),(null===(i=n.colors.button)||void 0===i?void 0:i.primaryText)&&(Z["--quiz-color-button-primary-text"]=n.colors.button.primaryText),(null===(r=n.colors.button)||void 0===r?void 0:r.secondary)&&(Z["--quiz-color-button-secondary"]=n.colors.button.secondary),(null===(a=n.colors.button)||void 0===a?void 0:a.secondaryText)&&(Z["--quiz-color-button-secondary-text"]=n.colors.button.secondaryText),(null===(l=n.colors.button)||void 0===l?void 0:l.disabled)&&(Z["--quiz-color-button-disabled"]=n.colors.button.disabled),(null===(s=n.colors.button)||void 0===s?void 0:s.disabledText)&&(Z["--quiz-color-button-disabled-text"]=n.colors.button.disabledText),(null===(c=n.colors.option)||void 0===c?void 0:c.background)&&(Z["--quiz-color-option-background"]=n.colors.option.background),(null===(d=n.colors.option)||void 0===d?void 0:d.hover)&&(Z["--quiz-color-option-hover"]=n.colors.option.hover),(null===(u=n.colors.option)||void 0===u?void 0:u.selected)&&(Z["--quiz-color-option-selected"]=n.colors.option.selected),(null===(f=n.colors.option)||void 0===f?void 0:f.border)&&(Z["--quiz-color-option-border"]=n.colors.option.border),(null===(m=n.colors.option)||void 0===m?void 0:m.text)&&(Z["--quiz-color-option-text"]=n.colors.option.text)),n.typography&&(n.typography.fontFamily&&(Z["--quiz-font-family"]=n.typography.fontFamily),(null===(p=n.typography.fontSize)||void 0===p?void 0:p.small)&&(Z["--quiz-font-size-small"]=n.typography.fontSize.small),(null===(h=n.typography.fontSize)||void 0===h?void 0:h.medium)&&(Z["--quiz-font-size-medium"]=n.typography.fontSize.medium),(null===(b=n.typography.fontSize)||void 0===b?void 0:b.large)&&(Z["--quiz-font-size-large"]=n.typography.fontSize.large),(null===(v=n.typography.fontSize)||void 0===v?void 0:v.xlarge)&&(Z["--quiz-font-size-xlarge"]=n.typography.fontSize.xlarge),(null===(g=n.typography.fontWeight)||void 0===g?void 0:g.normal)&&(Z["--quiz-font-weight-normal"]=n.typography.fontWeight.normal),(null===(x=n.typography.fontWeight)||void 0===x?void 0:x.medium)&&(Z["--quiz-font-weight-medium"]=n.typography.fontWeight.medium),(null===(z=n.typography.fontWeight)||void 0===z?void 0:z.bold)&&(Z["--quiz-font-weight-bold"]=n.typography.fontWeight.bold),(null===(y=n.typography.lineHeight)||void 0===y?void 0:y.small)&&(Z["--quiz-line-height-small"]=n.typography.lineHeight.small),(null===(w=n.typography.lineHeight)||void 0===w?void 0:w.medium)&&(Z["--quiz-line-height-medium"]=n.typography.lineHeight.medium),(null===(q=n.typography.lineHeight)||void 0===q?void 0:q.large)&&(Z["--quiz-line-height-large"]=n.typography.lineHeight.large)),n.spacing&&(n.spacing.small&&(Z["--quiz-spacing-small"]=n.spacing.small),n.spacing.medium&&(Z["--quiz-spacing-medium"]=n.spacing.medium),n.spacing.large&&(Z["--quiz-spacing-large"]=n.spacing.large),n.spacing.xlarge&&(Z["--quiz-spacing-xlarge"]=n.spacing.xlarge)),n.borderRadius&&(n.borderRadius.small&&(Z["--quiz-border-radius-small"]=n.borderRadius.small),n.borderRadius.medium&&(Z["--quiz-border-radius-medium"]=n.borderRadius.medium),n.borderRadius.large&&(Z["--quiz-border-radius-large"]=n.borderRadius.large)),n.transitions&&(n.transitions.fast&&(Z["--quiz-transition-fast"]=n.transitions.fast),n.transitions.medium&&(Z["--quiz-transition-medium"]=n.transitions.medium),n.transitions.slow&&(Z["--quiz-transition-slow"]=n.transitions.slow)),(null===(k=n.loader)||void 0===k?void 0:k.background)&&(Z["--quiz-loader-background"]=n.loader.background),(null===(S=n.loader)||void 0===S?void 0:S.spinnerColor)&&(Z["--quiz-loader-spinner-color"]=n.loader.spinnerColor),(null===(C=n.loader)||void 0===C?void 0:C.spinnerBorder)&&(Z["--quiz-loader-spinner-border"]=n.loader.spinnerBorder),(null===(M=n.endScreen)||void 0===M?void 0:M.background)&&(Z["--quiz-end-screen-background"]=n.endScreen.background),(null===(E=n.endScreen)||void 0===E?void 0:E.textColor)&&(Z["--quiz-end-screen-text-color"]=n.endScreen.textColor),(null===(N=n.endScreen)||void 0===N?void 0:N.closeColor)&&(Z["--quiz-end-screen-close-color"]=n.endScreen.closeColor),(null===(P=n.endScreen)||void 0===P?void 0:P.fontSize)&&(Z["--quiz-end-screen-font-size"]=n.endScreen.fontSize),(null===(T=n.endScreen)||void 0===T?void 0:T.fontWeight)&&(Z["--quiz-end-screen-font-weight"]=n.endScreen.fontWeight),(null===(j=n.endScreen)||void 0===j?void 0:j.fontFamily)&&(Z["--quiz-end-screen-font-family"]=n.endScreen.fontFamily),(null===(B=n.tabSwitchModal)||void 0===B?void 0:B.background)&&(Z["--quiz-tab-switch-modal-background"]=n.tabSwitchModal.background),(null===(O=n.tabSwitchModal)||void 0===O?void 0:O.textColor)&&(Z["--quiz-tab-switch-modal-text-color"]=n.tabSwitchModal.textColor),(null===(L=n.tabSwitchModal)||void 0===L?void 0:L.closeColor)&&(Z["--quiz-tab-switch-modal-close-color"]=n.tabSwitchModal.closeColor),(null===(H=n.tabSwitchModal)||void 0===H?void 0:H.textSecondaryColor)&&(Z["--quiz-tab-switch-modal-text-secondary-color"]=n.tabSwitchModal.textSecondaryColor),(null===(R=n.tabSwitchModal)||void 0===R?void 0:R.iconColor)&&(Z["--quiz-tab-switch-modal-icon-color"]=n.tabSwitchModal.iconColor),(null===(F=n.tabSwitchModal)||void 0===F?void 0:F.buttonBackground)&&(Z["--quiz-tab-switch-modal-button-background"]=n.tabSwitchModal.buttonBackground),(null===(W=n.tabSwitchModal)||void 0===W?void 0:W.buttonTextColor)&&(Z["--quiz-tab-switch-modal-button-text-color"]=n.tabSwitchModal.buttonTextColor),(null===(A=n.tabSwitchModal)||void 0===A?void 0:A.buttonHoverBackground)&&(Z["--quiz-tab-switch-modal-button-hover-background"]=n.tabSwitchModal.buttonHoverBackground),(null===(I=n.tabSwitchModal)||void 0===I?void 0:I.buttonHoverTextColor)&&(Z["--quiz-tab-switch-modal-button-hover-text-color"]=n.tabSwitchModal.buttonHoverTextColor),(null===(_=n.tabSwitchModal)||void 0===_?void 0:_.fontFamily)&&(Z["--quiz-tab-switch-modal-font-family"]=n.tabSwitchModal.fontFamily),(null===(Q=n.tabSwitchModal)||void 0===Q?void 0:Q.textFontSize)&&(Z["--quiz-tab-switch-modal-text-font-size"]=n.tabSwitchModal.textFontSize),(null===(Y=n.tabSwitchModal)||void 0===Y?void 0:Y.buttonFontSize)&&(Z["--quiz-tab-switch-modal-button-font-size"]=n.tabSwitchModal.buttonFontSize),(null===(D=n.tabSwitchModal)||void 0===D?void 0:D.padding)&&(Z["--quiz-tab-switch-modal-padding"]=n.tabSwitchModal.padding),(null===(U=n.tabSwitchModal)||void 0===U?void 0:U.headerMargin)&&(Z["--quiz-tab-switch-modal-header-margin"]=n.tabSwitchModal.headerMargin),(null===(V=n.tabSwitchModal)||void 0===V?void 0:V.textMargin)&&(Z["--quiz-tab-switch-modal-text-margin"]=n.tabSwitchModal.textMargin),(null===(G=n.tabSwitchModal)||void 0===G?void 0:G.buttonPadding)&&(Z["--quiz-tab-switch-modal-button-padding"]=n.tabSwitchModal.buttonPadding),(null===(J=n.tabSwitchModal)||void 0===J?void 0:J.borderRadius)&&(Z["--quiz-tab-switch-modal-border-radius"]=n.tabSwitchModal.borderRadius),(null===(K=n.tabSwitchModal)||void 0===K?void 0:K.buttonBorderRadius)&&(Z["--quiz-tab-switch-modal-button-border-radius"]=n.tabSwitchModal.buttonBorderRadius),(null===(X=n.tabSwitchModal)||void 0===X?void 0:X.buttonTransition)&&(Z["--quiz-tab-switch-modal-button-transition"]=n.tabSwitchModal.buttonTransition),Z}(N(M,n))}(e);if(0===Object.keys(a).length)return null;var l=Object.entries(a).map((function(n){var t=n[0],o=n[1];return"".concat(t,": ").concat(o,";")})).join("\n ");return n("style",{children:"\n ".concat(r," {\n ").concat(l,"\n }\n ")})};c('\n* {\n box-sizing: border-box;\n}\n\n.quiz-page {\n position: fixed;\n background: var(--quiz-color-background, #ffffff);\n width: 100vw;\n min-height: 100dvh;\n top: 0;\n left: 0;\n z-index: 100;\n box-sizing: border-box;\n overflow-y: auto; /* ensure scrolling works */\n display: flex;\n flex-direction: column;\n}\n\n.quiz-page-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n border-radius: var(--quiz-border-radius-large, 16px);\n margin: var(--quiz-spacing-large, 24px) var(--quiz-spacing-medium, 16px) 0px var(--quiz-spacing-medium, 16px);\n height: 100%;\n background: var(--quiz-color-surface, #f8f5f2);\n}\n\n/* Ticker stays in a row on all devices */\n.quiz-ticker {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 20px;\n border-bottom: 1px solid var(--quiz-color-border, #e1d8c9);\n}\n\n.quiz-ticker-right {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n padding-right: 2rem;\n}\n\n.close-btn{\n border: none;\n background: none;\n cursor: pointer;\n padding: 0;\n margin: 0;\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 4px;\n}\n\n.close-btn svg {\n width: 18px;\n height: 18px;\n flex-shrink: 0;\n}\n\n.quiz-container {\n flex-grow: 1;\n width: 100%;\n display: flex;\n flex-direction: row; /* side-by-side on desktop */\n align-items: flex-start;\n padding: var(--quiz-spacing-large, 24px) 56px var(--quiz-spacing-large, 24px);\n border-radius: 10px;\n justify-content: space-between;\n box-sizing: border-box;\n max-width: 1600px;\n margin: 0 auto;\n max-height: 80dvh;\n overflow: auto;\n gap: 2rem;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* Internet Explorer 10+ */\n}\n\n.quiz-container::-webkit-scrollbar {\n display: none;\n}\n\n/* Left & Right columns on desktop */\n.quiz-left {\n width: 100%;\n max-width: 650px;\n overflow: auto;\n scrollbar-width: thin;\n scrollbar-color: #ccc transparent; /* thumb color, track color */\n}\n\n/* WebKit-based browsers (Chrome, Safari, Edge) */\n.quiz-left::-webkit-scrollbar {\n width: 6px; /* slim scrollbar */\n}\n\n.quiz-left::-webkit-scrollbar-thumb {\n background-color: #ccc; /* grey thumb */\n border-radius: 4px;\n}\n\n.quiz-left::-webkit-scrollbar-track {\n background: transparent; /* optional: transparent track */\n}\n\n.quiz-right {\n max-width: 622px;\n width: 100%;\n}\n\n.quiz-right-head {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.choose-option {\n font-size: var(--quiz-font-size-medium, 1rem);\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n font-weight: var(--quiz-font-weight-medium, 500);\n line-height: var(--quiz-line-height-xlarge, 32px);\n letter-spacing: 0.2%;\n color: var(--quiz-color-text-primary, #161c20);\n}\n\n.question-count {\n font-size: var(--quiz-font-size-small, 0.9rem);\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n color: var(--quiz-color-text-primary, #161c20);\n font-weight: var(--quiz-font-weight-medium, 500);\n line-height: var(--quiz-line-height-small, 1.2rem);\n}\n\n.options-container {\n display: flex;\n flex-direction: column;\n gap: 18px;\n margin-top: 12px;\n}\n\n.mobile-next-btn {\n display: none;\n}\n\n/* Button Styles */\n.prev-btn,\n.next-btn {\n padding: 10px 54px;\n background: var(--quiz-color-button-primary, #000000);\n color: var(--quiz-color-button-primary-text, #ffffff);\n border: none;\n border-radius: var(--quiz-spacing-large, 24px);\n cursor: pointer;\n transition: var(--quiz-transition-medium, 0.3s);\n font-size: var(--quiz-font-size-small, 0.9rem);\n font-weight: var(--quiz-font-weight-medium, 500);\n font-family: var(--quiz-font-family, "Patron", sans-serif);\n line-height: 21px;\n}\n\n.prev-btn {\n background: var(--quiz-color-button-secondary, #5d4037);\n color: var(--quiz-color-button-secondary-text, #ffffff);\n}\n\n.next-btn:disabled {\n background: var(--quiz-color-button-disabled, #d7ccc8);\n color: var(--quiz-color-button-disabled-text, #ffffff);\n cursor: not-allowed;\n}\n\n.scroll-down-btn {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 999;\n border: none;\n border-radius: 50%;\n padding: 4px;\n cursor: pointer;\n font-size: 20px;\n transition: background var(--quiz-transition-medium, 0.3s);\n background: var(--quiz-color-scroll-button, #ffffff);\n}\n\n.bounce {\n animation: bounce 1.6s infinite;\n}\n\n@keyframes bounce {\n 0%,\n 20%,\n 50%,\n 80%,\n 100% {\n transform: translateY(0px);\n }\n 40% {\n transform: translateY(-4px);\n }\n 60% {\n transform: translateY(-2px);\n }\n}\n\n/* RESPONSIVE LAYOUT */\n@media (max-width: 768px) {\n .quiz-page-container {\n flex-direction: column;\n padding: var(--quiz-spacing-medium, 16px);\n gap: 1rem;\n overflow-y: auto;\n margin: 0;\n border-radius: 0;\n }\n\n .quiz-container {\n flex-direction: column;\n padding: 0;\n justify-content: space-between;\n}\n\n\n .quiz-ticker {\n padding: var(--quiz-spacing-medium, 16px);\n gap: 1rem;\n }\n\n .quiz-left {\n max-width: 100%;\n margin-bottom: 1rem;\n }\n\n .quiz-ticker-right {\n gap: 1rem;\n padding-right: 0;\n }\n\n .choose-option {\n font-size: var(--quiz-font-size-small, 0.9rem);\n line-height: var(--quiz-line-height-medium, 1.4rem);\n }\n\n .next-btn-container {\n display: none;\n }\n\n .mobile-next-btn {\n display: block;\n position: fixed;\n bottom: 20px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1000;\n width: calc(100% - 40px);\n max-width: 350px;\n }\n\n .next-btn {\n width: 100%;\n padding: var(--quiz-spacing-medium, 16px) var(--quiz-spacing-large, 24px);\n font-size: var(--quiz-font-size-medium, 1rem);\n }\n\n .question-count {\n font-size: 0.85rem;\n }\n\n .option-btn {\n padding: var(--quiz-spacing-medium, 16px);\n }\n}\n\n@media (max-width: 768px) and (max-height: 800px) {\n .quiz-container {\n max-height: 70dvh;\n }\n}\n\n@media (max-width: 768px) and (max-height: 500px) {\n .quiz-container {\n max-height: 60dvh;\n }\n}\n');c('/* Thin (100) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-thin.woff2") format("woff2");\n font-weight: 100;\n font-style: normal;\n font-display: swap;\n}\n\n/* Light (300) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-light.woff2") format("woff2");\n font-weight: 300;\n font-style: normal;\n font-display: swap;\n}\n\n/* Regular (400) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-regular.woff2") format("woff2");\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n}\n\n/* Medium (500) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-medium.woff2") format("woff2");\n font-weight: 500;\n font-style: normal;\n font-display: swap;\n}\n\n/* Bold (700) */\n@font-face {\n font-family: "Patron";\n src: url("../assets/fonts/patron/patron-bold.woff2") format("woff2");\n font-weight: 700;\n font-style: normal;\n font-display: swap;\n}\n');var T=function(o){var a,c,u=o.quizId,m=o.userId,p=o.tabSwitchLimit,v=o.onQuizComplete,g=o.baseURL,x=o.token,y=o.theme,w=o.direction,k=o.handleClose,M=e(!1),E=M[0],N=M[1],T=e(0),j=T[0],B=T[1],O=e(null),L=O[0],H=O[1],R=e(null),F=R[0],W=R[1],A=e(!1),I=A[0],_=A[1],Q=e(!1),Y=Q[0],D=Q[1],U=e(!0),V=U[0],G=U[1],J=function(n){void 0===n&&(n=3);var t=e(0),o=t[0],i=t[1],a=e(!1),l=a[0],s=a[1];return r((function(){var n=function(){document.hidden&&i((function(n){return n+1}))};return document.addEventListener("visibilitychange",n),function(){document.removeEventListener("visibilitychange",n)}}),[]),r((function(){o>=n&&s(!0)}),[o,n]),{switchCount:o,isLimitReached:l}}(p),K=J.isLimitReached,X=J.switchCount,Z=e(""),$=Z[0],nn=Z[1],tn=i([]),on=i(null);r((function(){var n=function(n){return n.preventDefault()},t=function(n){return n.preventDefault()},o=function(n){return n.preventDefault()};return document.addEventListener("copy",n),document.addEventListener("cut",n),document.addEventListener("paste",n),document.addEventListener("selectstart",t),document.addEventListener("contextmenu",o),function(){document.removeEventListener("copy",n),document.removeEventListener("cut",n),document.removeEventListener("paste",n),document.removeEventListener("selectstart",t),document.removeEventListener("contextmenu",o)}}),[]),r((function(){if(!(u&&m&&g&&x))return G(!1),nn("Missing required parameters to load quiz."),void D(!0);l(void 0,void 0,void 0,(function(){var n,t,o;return s(this,(function(e){switch(e.label){case 0:return e.trys.push([0,5,6,7]),G(!0),[4,fetch("".concat(g,"/user-assessment/").concat(u,"/").concat(m,"/get-session-data"),{headers:{Authorization:"Bearer ".concat(x)}})];case 1:return(n=e.sent()).ok?[4,n.json()]:[3,3];case 2:return t=e.sent(),W(t),[3,4];case 3:nn("Something went wrong. Please try again."),D(!0),e.label=4;case 4:return[3,7];case 5:return o=e.sent(),console.error("Error fetching quiz data:",o),nn("Something went wrong. Please try again."),D(!0),[3,7];case 6:return G(!1),[7];case 7:return[2]}}))}))}),[u,m,g,x]);var en=i(null),rn=e(!1),an=rn[0],ln=rn[1],sn=e(!1),cn=sn[0],dn=sn[1];r((function(){if(F){var n=en.current;if(n){var t=function(){var t=n.scrollHeight>n.clientHeight,o=n.scrollTop+n.clientHeight>=n.scrollHeight-15;t?(o&&dn(!0),ln(!o&&!cn)):(ln(!1),dn(!1))},o=requestAnimationFrame((function(){setTimeout(t,100)}));return n.addEventListener("scroll",t),window.addEventListener("resize",t),function(){cancelAnimationFrame(o),n.removeEventListener("scroll",t),window.removeEventListener("resize",t)}}}}),[F,j,cn]);if(r((function(){X>0&&X<3&&_(!0)}),[X]),r((function(){K&&(nn("Your quiz has ended due to switching tabs too many times."),D(!0))}),[K]),r((function(){return function(){tn.current.forEach((function(n){return clearTimeout(n)})),tn.current=[]}}),[]),!F&&V)return t("div",{className:"quiz-page",style:"rtl"==w?{direction:"rtl"}:{},ref:on,children:[n(P,{theme:y,targetClass:".quiz-page"}),n(C,{})]});var un=(null==F?void 0:F.questions)||[],fn=function(n,t,o,e){return l(void 0,void 0,void 0,(function(){return s(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),[4,fetch("".concat(g,"/user-assessment/").concat(n,"/").concat(o,"/").concat(t,"/submit-answer"),{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(x)},body:JSON.stringify({optionIds:[e]})})];case 1:return i.sent().ok||(nn("Something went wrong. Please try again."),D(!0)),[3,3];case 2:return i.sent(),[3,3];case 3:return[2]}}))}))},mn=function(){return l(void 0,void 0,void 0,(function(){return s(this,(function(n){switch(n.label){case 0:return n.trys.push([0,5,,6]),[4,fetch("".concat(g,"/user-assessment/").concat(u,"/").concat(m,"/mark-quiz-complete"),{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(x)}})];case 1:return n.sent().ok?(N(!0),[4,v()]):[3,3];case 2:return n.sent(),[3,4];case 3:nn("Quiz completed, but there was an issue saving your progress."),D(!0),n.label=4;case 4:return[3,6];case 5:return n.sent(),nn("Quiz completed, but there was a network error. Please check your connection."),D(!0),[3,6];case 6:return[2]}}))}))},pn=function(){return l(void 0,void 0,void 0,(function(){var n;return s(this,(function(t){switch(t.label){case 0:if(!L)return[2];if(!F||!un.length)return nn("Quiz data is not available. Please try again."),D(!0),[2];G(!0),t.label=1;case 1:return t.trys.push([1,,6,7]),[4,fn(u,un[j].id,m,L)];case 2:return t.sent(),j!==(null==un?void 0:un.length)-1?[3,4]:[4,mn()];case 3:return t.sent(),[3,5];case 4:H(null),n=null===window||void 0===window?void 0:window.setTimeout((function(){B((function(n){return n+1}));var n=window.setTimeout((function(){dn(!1)}),150);tn.current.push(n)}),300),tn.current.push(n),t.label=5;case 5:return[3,7];case 6:return n=null===window||void 0===window?void 0:window.setTimeout((function(){G(!1)}),300),tn.current.push(n),[7];case 7:return[2]}}))}))};function hn(){return V?"Submitting":j===(null==un?void 0:un.length)-1?"Submit":"Next"}return E?null:t("div",{className:"quiz-page",style:"rtl"==w?{direction:"rtl"}:{},children:[n(P,{theme:y,targetClass:".quiz-page"}),t("div",{className:"quiz-page-container",children:[t("div",{className:"quiz-ticker",children:[t("h3",{className:"question-count",children:["Questions: ",j+1,"/",(null==un?void 0:un.length)||0]}),t("div",{className:"quiz-ticker-right",children:[n(h,{markQuizComplete:mn,duration:(null==F?void 0:F.duration)||0,isEndScreenOpen:Y}),k&&n("button",{className:"close-btn",onClick:k,children:n(S,{})})]})]}),t("div",{className:"quiz-container",ref:en,children:[n("div",{className:"quiz-left",children:n(d,{question:(null===(a=un[j])||void 0===a?void 0:a.text)||""})}),t("div",{className:"quiz-right",children:[t("div",{className:"quiz-right-head",children:[n("h3",{className:"choose-option",children:"Choose the right option"}),n("div",{className:"next-btn-container",children:n("button",{className:"next-btn",disabled:!L||V||!F,onClick:pn,children:hn()})}),n("div",{className:"mobile-next-btn",children:n("button",{className:"next-btn",disabled:!L||V||!F,onClick:pn,children:hn()})})]}),n(f,{loading:V,options:(null===(c=un[j])||void 0===c?void 0:c.options)||[],selectedOption:L,onSelect:H,direction:w})]})]})]}),n(b,{open:I,onClose:function(){_(!1),D(!1),nn("")}}),n(z,{open:Y,onClose:k,message:$}),an&&n("button",{className:"scroll-down-btn bounce",onClick:function(){var n=en.current;n&&(n.scrollTo({top:n.scrollHeight+10,behavior:"smooth"}),dn(!0),ln(!1))},children:n(q,{})})]})};export{T as default};
|
package/package.json
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wizr-quiz",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/index.mjs",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist/"
|
|
9
|
+
],
|
|
7
10
|
"scripts": {
|
|
8
11
|
"build": "rollup -c --bundleConfigAsCjs"
|
|
9
12
|
},
|
|
10
|
-
"keywords": [
|
|
11
|
-
|
|
13
|
+
"keywords": [
|
|
14
|
+
"react",
|
|
15
|
+
"quiz",
|
|
16
|
+
"typescript",
|
|
17
|
+
"sdk"
|
|
18
|
+
],
|
|
19
|
+
"author": "Wizr",
|
|
12
20
|
"license": "ISC",
|
|
13
|
-
"description": "",
|
|
21
|
+
"description": "A React SDK for creating interactive quizzes",
|
|
22
|
+
"peerDependencies": {
|
|
23
|
+
"react": "^18.0.0",
|
|
24
|
+
"react-dom": "^18.0.0"
|
|
25
|
+
},
|
|
14
26
|
"devDependencies": {
|
|
15
27
|
"@rollup/plugin-commonjs": "^28.0.3",
|
|
16
28
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
@@ -20,6 +32,7 @@
|
|
|
20
32
|
"@types/react": "^19.0.12",
|
|
21
33
|
"postcss": "^8.5.6",
|
|
22
34
|
"react": "^18.3.1",
|
|
35
|
+
"react-dom": "^18.3.1",
|
|
23
36
|
"rollup": "^4.36.0",
|
|
24
37
|
"rollup-plugin-dts": "^6.2.1",
|
|
25
38
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var resolve = require('@rollup/plugin-node-resolve');
|
|
6
|
-
var commonjs = require('@rollup/plugin-commonjs');
|
|
7
|
-
var typescript = require('@rollup/plugin-typescript');
|
|
8
|
-
var dts = require('rollup-plugin-dts');
|
|
9
|
-
var terser = require('@rollup/plugin-terser');
|
|
10
|
-
var peerDepsExternal = require('rollup-plugin-peer-deps-external');
|
|
11
|
-
var svgr = require('@svgr/rollup');
|
|
12
|
-
var postcss = require('rollup-plugin-postcss');
|
|
13
|
-
|
|
14
|
-
const packageJson = require("./package.json");
|
|
15
|
-
|
|
16
|
-
var rollup_config = [
|
|
17
|
-
{
|
|
18
|
-
input: "src/index.ts",
|
|
19
|
-
output: [
|
|
20
|
-
{
|
|
21
|
-
file: packageJson.main,
|
|
22
|
-
format: "cjs",
|
|
23
|
-
sourcemap: true,
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
file: packageJson.module,
|
|
27
|
-
format: "esm",
|
|
28
|
-
sourcemap: true,
|
|
29
|
-
},
|
|
30
|
-
],
|
|
31
|
-
plugins: [
|
|
32
|
-
peerDepsExternal(),
|
|
33
|
-
resolve(),
|
|
34
|
-
commonjs(),
|
|
35
|
-
typescript({ tsconfig: "./tsconfig.json" }),
|
|
36
|
-
terser(),
|
|
37
|
-
svgr(),
|
|
38
|
-
postcss(),
|
|
39
|
-
],
|
|
40
|
-
external: ["react", "react-dom"],
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
input: "src/index.ts",
|
|
44
|
-
output: [{ file: packageJson.types }],
|
|
45
|
-
plugins: [dts.default()],
|
|
46
|
-
external: [/\.css$/],
|
|
47
|
-
},
|
|
48
|
-
];
|
|
49
|
-
|
|
50
|
-
exports.default = rollup_config;
|