evelearn-theme 1.0.6 → 2.0.1
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/chunk-XLPRFXMF.mjs +248 -0
- package/dist/index.d.mts +21 -104
- package/dist/index.d.ts +21 -104
- package/dist/index.js +277 -279
- package/dist/index.mjs +174 -375
- package/dist/server.d.mts +88 -0
- package/dist/server.d.ts +88 -0
- package/dist/server.js +271 -0
- package/dist/server.mjs +42 -0
- package/package.json +11 -2
package/dist/index.js
CHANGED
|
@@ -56,7 +56,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
56
56
|
));
|
|
57
57
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
58
58
|
|
|
59
|
-
// src/index.
|
|
59
|
+
// src/index.ts
|
|
60
60
|
var index_exports = {};
|
|
61
61
|
__export(index_exports, {
|
|
62
62
|
AnimateLogo: () => AnimateLogo_default,
|
|
@@ -78,7 +78,7 @@ __export(index_exports, {
|
|
|
78
78
|
NoticeBox: () => NoticeBox_default,
|
|
79
79
|
Overlay: () => Overlay_default,
|
|
80
80
|
OverlaySpinner: () => OverlaySpinner_default,
|
|
81
|
-
PRIMARY_COLOR: () =>
|
|
81
|
+
PRIMARY_COLOR: () => PRIMARY_COLOR,
|
|
82
82
|
Pill: () => Pill_default,
|
|
83
83
|
ProgressBar: () => ProgressBar_default,
|
|
84
84
|
ProgressBarSimple: () => ProgressBarSimple_default,
|
|
@@ -103,81 +103,55 @@ __export(index_exports, {
|
|
|
103
103
|
});
|
|
104
104
|
module.exports = __toCommonJS(index_exports);
|
|
105
105
|
|
|
106
|
-
// src/
|
|
106
|
+
// src/constants.tsx
|
|
107
|
+
var PRIMARY_COLOR = "#00b4d8";
|
|
108
|
+
|
|
109
|
+
// src/Common/Container.tsx
|
|
107
110
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
108
|
-
var
|
|
109
|
-
|
|
110
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
111
|
+
var Container = ({ backgroundImage, style, children, onClick }) => {
|
|
112
|
+
return backgroundImage ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
111
113
|
"div",
|
|
112
114
|
{
|
|
113
|
-
style: {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
},
|
|
117
|
-
className:
|
|
118
|
-
onClick
|
|
115
|
+
style: __spreadValues({
|
|
116
|
+
backgroundImage,
|
|
117
|
+
backgroundSize: "cover"
|
|
118
|
+
}, style),
|
|
119
|
+
className: "w-full md:min-h-screen dark:bg-slate-950 mx-auto overflow-y-auto overflow-x-clip px-0 md:px-2 sm:py-4 py-1 relative",
|
|
120
|
+
onClick,
|
|
121
|
+
children: children ? children : null
|
|
122
|
+
}
|
|
123
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
124
|
+
"div",
|
|
125
|
+
{
|
|
126
|
+
className: `w-full dark:bg-slate-950 mx-auto overflow-y-auto overflow-x-clip px-0 sm:px-16 relative pt-20`,
|
|
127
|
+
onClick,
|
|
128
|
+
style: style || { minHeight: "100vh" },
|
|
129
|
+
children: children ? children : null
|
|
119
130
|
}
|
|
120
131
|
);
|
|
121
132
|
};
|
|
122
|
-
var
|
|
133
|
+
var Container_default = Container;
|
|
123
134
|
|
|
124
|
-
// src/
|
|
125
|
-
var import_react = require("react");
|
|
126
|
-
var import_react_dom = __toESM(require("react-dom"));
|
|
135
|
+
// src/Common/ErrorText.tsx
|
|
127
136
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
128
|
-
var
|
|
129
|
-
|
|
130
|
-
(0, import_react.useEffect)(() => {
|
|
131
|
-
let root = document.getElementById("modal-root");
|
|
132
|
-
if (!root) {
|
|
133
|
-
root = document.createElement("div");
|
|
134
|
-
root.id = "modal-root";
|
|
135
|
-
document.body.appendChild(root);
|
|
136
|
-
}
|
|
137
|
-
setModalRoot(root);
|
|
138
|
-
return () => {
|
|
139
|
-
const root2 = document.getElementById("modal-root");
|
|
140
|
-
if (root2) {
|
|
141
|
-
document.body.removeChild(root2);
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
}, [visible]);
|
|
145
|
-
if (!visible || !modalRoot) return null;
|
|
146
|
-
return import_react_dom.default.createPortal(
|
|
147
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "animate-fade-in", children: withContainer ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
148
|
-
"div",
|
|
149
|
-
{
|
|
150
|
-
onClick: onDismissed || onClick,
|
|
151
|
-
className: `top-0 left-0 fixed w-full h-screen flex items-center justify-center`,
|
|
152
|
-
style: {
|
|
153
|
-
background: isDark ? `rgba(0, 0, 0, ${opacity || "0.7"})` : `rgba(255, 255, 255, ${opacity || "0.6"})`,
|
|
154
|
-
zIndex: zIndex || 9999
|
|
155
|
-
},
|
|
156
|
-
children
|
|
157
|
-
}
|
|
158
|
-
) : children }),
|
|
159
|
-
modalRoot
|
|
160
|
-
);
|
|
137
|
+
var ErrorText = ({ text, style, classNames }) => {
|
|
138
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: classNames ? classNames : "text-red-500 font-semibold text-wrap py-auto", style, children: text });
|
|
161
139
|
};
|
|
162
|
-
var
|
|
140
|
+
var ErrorText_default = ErrorText;
|
|
163
141
|
|
|
164
|
-
// src/
|
|
165
|
-
var
|
|
166
|
-
var
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
}
|
|
175
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className, children });
|
|
176
|
-
};
|
|
177
|
-
var Breakpoint_default = Breakpoint;
|
|
142
|
+
// src/Common/fieldStyle.ts
|
|
143
|
+
var baseFieldStyle = "font-sans form-input h-11 w-full bg-white border-gray-200 dark:border-gray-500 dark:bg-slate-800 dark:text-gray-200 text-gray-700 dark:placeholder-gray-400 placeholder-gray-400 rounded-md px-2 py-1 focus:outline-none focus:border-blue-300 focus:ring focus:ring-blue-200 focus:ring-opacity-50";
|
|
144
|
+
var createExerciseElementStyle = "flex flex-col justify-between space-y-2 w-full p-4 bg-white dark:bg-slate-800 rounded-xl text-gray-800 dark:text-gray-200 border-2 border-slate-200 dark:border-slate-400 overflow-hidden transition-all";
|
|
145
|
+
var exerciseDeleteButton = "w-6 h-6 flex justify-center text-gray-700 dark:text-gray-200 hover:text-red-600 dark:hover:text-red-500 transition-all duration-150 hover:scale-125";
|
|
146
|
+
var xIconButton = "w-6 h-6 flex justify-center text-gray-700 dark:text-gray-200 hover:text-gray-950 dark:hover:text-gray-100 transition-all duration-150 hover:scale-125";
|
|
147
|
+
var exerciseEditButton = "w-6 h-6 flex justify-center text-gray-700 dark:text-gray-200 hover:text-red-600 dark:hover:text-green-500 transition-all duration-150 hover:scale-125";
|
|
148
|
+
var tippyClassname = "p-2 bg-slate-600 dark:bg-slate-900 opacity-90 text-white font-medium font-header rounded-lg";
|
|
149
|
+
var headerTippyClass = "rounded-lg p-2 bg-slate-950 opacity-95 text-white font-medium";
|
|
150
|
+
var headerButtonClass = "w-10 h-10 rounded-full dark:hover:bg-slate-600 hover:bg-slate-200 bg-transparent flex justify-center items-center flex justify-center items-center text-slate-600 dark:text-slate-100 hover:text-primary dark:hover:text-primary transition-colors duration-50";
|
|
151
|
+
var toolbarExerciseButton = "flex bg-gray-50/90 items-center sm:justify-between p-4 shadow-sm w-full rounded-xl border-4 border-transparent hover:border-white text-gray-700 hover:text-white hover:bg-indigo-500 transition-colors duration-75";
|
|
178
152
|
|
|
179
153
|
// src/Spinners/Spinner.tsx
|
|
180
|
-
var
|
|
154
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
181
155
|
var Spinner = ({ visible = true, size, white, isDark }) => {
|
|
182
156
|
if (visible === false) return null;
|
|
183
157
|
const isWhite = white || isDark;
|
|
@@ -190,18 +164,18 @@ var Spinner = ({ visible = true, size, white, isDark }) => {
|
|
|
190
164
|
animate-spin
|
|
191
165
|
${dimensions}
|
|
192
166
|
`;
|
|
193
|
-
return /* @__PURE__ */ (0,
|
|
194
|
-
/* @__PURE__ */ (0,
|
|
167
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "relative h-8 w-8 flex justify-center items-center", children: [
|
|
168
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
195
169
|
"svg",
|
|
196
170
|
{
|
|
197
171
|
className: `absolute top-0 ${dimensions} ${bgColor}`,
|
|
198
172
|
viewBox: "0 0 24 24",
|
|
199
173
|
fill: "none",
|
|
200
174
|
strokeWidth: "2.4",
|
|
201
|
-
children: /* @__PURE__ */ (0,
|
|
175
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("circle", { cx: "12", cy: "12", r: "10" })
|
|
202
176
|
}
|
|
203
177
|
),
|
|
204
|
-
/* @__PURE__ */ (0,
|
|
178
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
205
179
|
"svg",
|
|
206
180
|
{
|
|
207
181
|
className: spinnerClasses,
|
|
@@ -209,7 +183,7 @@ var Spinner = ({ visible = true, size, white, isDark }) => {
|
|
|
209
183
|
fill: "none",
|
|
210
184
|
strokeWidth: "2.4",
|
|
211
185
|
strokeLinecap: "round",
|
|
212
|
-
children: /* @__PURE__ */ (0,
|
|
186
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
213
187
|
"path",
|
|
214
188
|
{
|
|
215
189
|
d: `
|
|
@@ -230,15 +204,139 @@ var Spinner = ({ visible = true, size, white, isDark }) => {
|
|
|
230
204
|
};
|
|
231
205
|
var SpinnerCentered = (props) => {
|
|
232
206
|
if (props.visible === false) return null;
|
|
233
|
-
return /* @__PURE__ */ (0,
|
|
207
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "w-full flex justify-center items-center", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Spinner, __spreadValues({}, props)) });
|
|
234
208
|
};
|
|
235
209
|
Spinner.displayName = "Spinner";
|
|
236
210
|
SpinnerCentered.displayName = "Spinner.Centered";
|
|
237
211
|
Spinner.Centered = SpinnerCentered;
|
|
238
212
|
var Spinner_default = Spinner;
|
|
239
213
|
|
|
240
|
-
// src/
|
|
214
|
+
// src/Common/NoResults.tsx
|
|
215
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
216
|
+
var HEIGHT = 160;
|
|
217
|
+
var WIDTH = HEIGHT * (16 / 9);
|
|
218
|
+
var NoResults = ({ loading, message }) => {
|
|
219
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "relative w-full flex justify-center items-center", children: [
|
|
220
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex justify-start w-full space-x-2 py-3 p-4 bg-slate-100 dark:bg-slate-800 rounded-md", children: [
|
|
221
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { style: { width: `calc(${WIDTH}px + 1rem)`, height: 320 }, className: "rounded-lg overflow-hidden cursor-pointer hover:shadow-md transition-shadow duration-150 px-2 pt-2 bg-slate-200 dark:bg-slate-700 animate-pulse" }),
|
|
222
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { style: { width: `calc(${WIDTH}px + 1rem)`, height: 320 }, className: "rounded-lg overflow-hidden cursor-pointer hover:shadow-md transition-shadow duration-150 px-2 pt-2 bg-slate-200 dark:bg-slate-700 animate-pulse" })
|
|
223
|
+
] }),
|
|
224
|
+
!loading && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "absolute w-full h-full flex justify-center items-center m-auto", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "p-4 rounded-lg bg-white dark:bg-slate-700 shadow-xl", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "font-semibold text-lg text-gray-700 dark:text-gray-300", children: message || "No results" }) }) })
|
|
225
|
+
] });
|
|
226
|
+
};
|
|
227
|
+
var NoResults_default = NoResults;
|
|
228
|
+
|
|
229
|
+
// src/Common/Pill.tsx
|
|
241
230
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
231
|
+
var Pill = ({ text }) => {
|
|
232
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "rounded-full px-3 py-1 text-sm font-header font-medium bg-white dark:bg-slate-900 text-gray-700 dark:text-gray-300 mr-2 mb-2", children: text });
|
|
233
|
+
};
|
|
234
|
+
var Pill_default = Pill;
|
|
235
|
+
|
|
236
|
+
// src/Common/StepsComponent.tsx
|
|
237
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
238
|
+
var StepsComponent = ({ steps, activeStep, onStepPress }) => {
|
|
239
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "flex justify-between items-center w-full p-1 mb-2", children: steps.map((step, index) => {
|
|
240
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "flex justify-center items-center space-x-2 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
241
|
+
"button",
|
|
242
|
+
{
|
|
243
|
+
type: "button",
|
|
244
|
+
onClick: () => onStepPress(index),
|
|
245
|
+
className: `flex items-center space-x-2 px-4 py-2 rounded-lg min-w-10 md:min-w-20 sm:min-w-40 font-header transition-all duration-150
|
|
246
|
+
${activeStep === index ? "bg-primary text-white shadow-lg scale-110 border-2 border-primary" : "bg-gray-100 dark:bg-slate-800 text-gray-700 dark:text-gray-200 hover:bg-gray-200 dark:hover:bg-slate-700 border-2 border-transparent hover:border-primary/30"}`,
|
|
247
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { className: "font-medium truncate", children: [
|
|
248
|
+
index + 1,
|
|
249
|
+
". ",
|
|
250
|
+
step.label
|
|
251
|
+
] })
|
|
252
|
+
}
|
|
253
|
+
) }) }, `step_${index}_${step.label}`);
|
|
254
|
+
}) });
|
|
255
|
+
};
|
|
256
|
+
var StepsComponent_default = StepsComponent;
|
|
257
|
+
|
|
258
|
+
// src/Fade/Fade.tsx
|
|
259
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
260
|
+
var Fade = ({ children, inProp }) => {
|
|
261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "animate-fade-in", children });
|
|
262
|
+
};
|
|
263
|
+
var Fade_default = Fade;
|
|
264
|
+
|
|
265
|
+
// src/Backdrop/Backdrop.tsx
|
|
266
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
267
|
+
var Backdrop = ({ visible, onClick, opacity }) => {
|
|
268
|
+
if (!visible) return null;
|
|
269
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
270
|
+
"div",
|
|
271
|
+
{
|
|
272
|
+
style: {
|
|
273
|
+
opacity: opacity ? opacity : 90,
|
|
274
|
+
zIndex: 21
|
|
275
|
+
},
|
|
276
|
+
className: `fixed top-0 left-0 w-full h-screen bg-gray-100 dark:bg-slate-900`,
|
|
277
|
+
onClick
|
|
278
|
+
}
|
|
279
|
+
);
|
|
280
|
+
};
|
|
281
|
+
var Backdrop_default = Backdrop;
|
|
282
|
+
|
|
283
|
+
// src/Breakpoint/Breakpoint.tsx
|
|
284
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
285
|
+
var Breakpoint = ({ children, fromSize, toSize }) => {
|
|
286
|
+
let className = "";
|
|
287
|
+
if (fromSize && toSize) {
|
|
288
|
+
className = `hidden ${fromSize}:block ${toSize}:hidden`;
|
|
289
|
+
} else if (fromSize) {
|
|
290
|
+
className = `hidden ${fromSize}:block`;
|
|
291
|
+
} else if (toSize) {
|
|
292
|
+
className = `block ${toSize}:hidden`;
|
|
293
|
+
}
|
|
294
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className, children });
|
|
295
|
+
};
|
|
296
|
+
var Breakpoint_default = Breakpoint;
|
|
297
|
+
|
|
298
|
+
// src/Backdrop/Overlay.tsx
|
|
299
|
+
var import_react = require("react");
|
|
300
|
+
var import_react_dom = __toESM(require("react-dom"));
|
|
301
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
302
|
+
var Overlay = ({ visible, onDismissed, onClick, zIndex, isDark, children, opacity, withContainer = true }) => {
|
|
303
|
+
const [modalRoot, setModalRoot] = (0, import_react.useState)(null);
|
|
304
|
+
(0, import_react.useEffect)(() => {
|
|
305
|
+
let root = document.getElementById("modal-root");
|
|
306
|
+
if (!root) {
|
|
307
|
+
root = document.createElement("div");
|
|
308
|
+
root.id = "modal-root";
|
|
309
|
+
document.body.appendChild(root);
|
|
310
|
+
}
|
|
311
|
+
setModalRoot(root);
|
|
312
|
+
return () => {
|
|
313
|
+
const root2 = document.getElementById("modal-root");
|
|
314
|
+
if (root2) {
|
|
315
|
+
document.body.removeChild(root2);
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
}, [visible]);
|
|
319
|
+
if (!visible || !modalRoot) return null;
|
|
320
|
+
return import_react_dom.default.createPortal(
|
|
321
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "animate-fade-in", children: withContainer ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
322
|
+
"div",
|
|
323
|
+
{
|
|
324
|
+
onClick: onDismissed || onClick,
|
|
325
|
+
className: `top-0 left-0 fixed w-full h-screen flex items-center justify-center`,
|
|
326
|
+
style: {
|
|
327
|
+
background: isDark ? `rgba(0, 0, 0, ${opacity || "0.7"})` : `rgba(255, 255, 255, ${opacity || "0.6"})`,
|
|
328
|
+
zIndex: zIndex || 9999
|
|
329
|
+
},
|
|
330
|
+
children
|
|
331
|
+
}
|
|
332
|
+
) : children }),
|
|
333
|
+
modalRoot
|
|
334
|
+
);
|
|
335
|
+
};
|
|
336
|
+
var Overlay_default = Overlay;
|
|
337
|
+
|
|
338
|
+
// src/Button/Button.tsx
|
|
339
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
242
340
|
var Button = ({ disabled = false, loading, onClick, kind = "primary", size = "small", type = "button", children }) => {
|
|
243
341
|
const styled = () => {
|
|
244
342
|
switch (kind) {
|
|
@@ -276,14 +374,14 @@ var Button = ({ disabled = false, loading, onClick, kind = "primary", size = "sm
|
|
|
276
374
|
return "px-2 py-1";
|
|
277
375
|
}
|
|
278
376
|
};
|
|
279
|
-
return /* @__PURE__ */ (0,
|
|
377
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("button", { type: type || "button", disabled, className: `rounded-lg focus:outline-none transition duration-100 ${styled()} ${sized()}`, onClick, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "w-full max-h-11", children: loading ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "flex w-full justify-center items-center", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Spinner_default, { white: true }) }) : children }) });
|
|
280
378
|
};
|
|
281
379
|
var Button_default = Button;
|
|
282
380
|
|
|
283
381
|
// src/Button/FunButton.tsx
|
|
284
382
|
var import_react2 = require("react");
|
|
285
383
|
var import_framer_motion = require("framer-motion");
|
|
286
|
-
var
|
|
384
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
287
385
|
var FunButton = ({
|
|
288
386
|
onClick,
|
|
289
387
|
disabled,
|
|
@@ -337,7 +435,7 @@ var FunButton = ({
|
|
|
337
435
|
const cName = classStyle;
|
|
338
436
|
return cName + (disabled ? " opacity-70 cursor-default hover:bg-black/70" : "");
|
|
339
437
|
}, [classStyle, disabled]);
|
|
340
|
-
return /* @__PURE__ */ (0,
|
|
438
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
341
439
|
import_framer_motion.motion.button,
|
|
342
440
|
{
|
|
343
441
|
className: `${computedClassName}`,
|
|
@@ -346,7 +444,7 @@ var FunButton = ({
|
|
|
346
444
|
onMouseDown: onClick,
|
|
347
445
|
whileTap: { y: disabled ? 0 : 2 },
|
|
348
446
|
transition: { duration: 0.1, ease: "easeInOut" },
|
|
349
|
-
children: /* @__PURE__ */ (0,
|
|
447
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
350
448
|
import_framer_motion.motion.span,
|
|
351
449
|
{
|
|
352
450
|
className: computedClassStyle,
|
|
@@ -358,7 +456,7 @@ var FunButton = ({
|
|
|
358
456
|
animate: { y: active ? 0 : -6 },
|
|
359
457
|
whileTap: { y: disabled ? -6 : 0 },
|
|
360
458
|
transition: { duration: 0.1, ease: "easeInOut" },
|
|
361
|
-
children: loading ? /* @__PURE__ */ (0,
|
|
459
|
+
children: loading ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: size === "small" ? "min-h-6" : "min-h-10", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Spinner_default.Centered, { visible: true, size: size === "small" ? "small" : "base", white: true }) }) : children
|
|
362
460
|
}
|
|
363
461
|
)
|
|
364
462
|
}
|
|
@@ -369,7 +467,7 @@ var FunButton_default = FunButton;
|
|
|
369
467
|
// src/Button/FunRoundButton.tsx
|
|
370
468
|
var import_react3 = require("react");
|
|
371
469
|
var import_framer_motion2 = require("framer-motion");
|
|
372
|
-
var
|
|
470
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
373
471
|
var FunRoundButton = ({ onClick, disabled, type, children, color, active, className, size = 44 }) => {
|
|
374
472
|
const { front, bottom } = (0, import_react3.useMemo)(() => {
|
|
375
473
|
switch (color) {
|
|
@@ -389,7 +487,7 @@ var FunRoundButton = ({ onClick, disabled, type, children, color, active, classN
|
|
|
389
487
|
return { bottom: disabled ? "#d1d5db" : "#00b4d8", front: disabled ? "#38bdf8" : "#0369a1" };
|
|
390
488
|
}
|
|
391
489
|
}, [color, disabled]);
|
|
392
|
-
return /* @__PURE__ */ (0,
|
|
490
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
393
491
|
import_framer_motion2.motion.button,
|
|
394
492
|
{
|
|
395
493
|
className: `${className || "border-none p-0 flex justify-center items-center cursor-pointer z-10"} ${disabled ? "opacity-70 cursor-default" : "hover:opacity-95"}`,
|
|
@@ -405,7 +503,7 @@ var FunRoundButton = ({ onClick, disabled, type, children, color, active, classN
|
|
|
405
503
|
onClick,
|
|
406
504
|
whileHover: { opacity: 0.95 },
|
|
407
505
|
whileTap: { y: disabled ? 0 : 2 },
|
|
408
|
-
children: /* @__PURE__ */ (0,
|
|
506
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
409
507
|
import_framer_motion2.motion.span,
|
|
410
508
|
{
|
|
411
509
|
className: "flex justify-center items-center z-10",
|
|
@@ -431,16 +529,7 @@ var FunRoundButton_default = FunRoundButton;
|
|
|
431
529
|
// src/Checkbox/Checkbox.tsx
|
|
432
530
|
var import_react4 = require("react");
|
|
433
531
|
var import_formik = require("formik");
|
|
434
|
-
|
|
435
|
-
// src/Common/ErrorText.tsx
|
|
436
|
-
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
437
|
-
var ErrorText = ({ text, style, classNames }) => {
|
|
438
|
-
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: classNames ? classNames : "text-red-500 font-semibold text-wrap py-auto", style, children: text });
|
|
439
|
-
};
|
|
440
|
-
var ErrorText_default = ErrorText;
|
|
441
|
-
|
|
442
|
-
// src/Checkbox/Checkbox.tsx
|
|
443
|
-
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
532
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
444
533
|
var Checkbox = ({ name, labelText, isLarge, onChange, isDisabled }) => {
|
|
445
534
|
const [{ value }, { error }, { setValue, setTouched }] = (0, import_formik.useField)(name);
|
|
446
535
|
const onCheck = (e) => {
|
|
@@ -450,9 +539,9 @@ var Checkbox = ({ name, labelText, isLarge, onChange, isDisabled }) => {
|
|
|
450
539
|
const rand = (0, import_react4.useMemo)(() => {
|
|
451
540
|
return Math.random();
|
|
452
541
|
}, []);
|
|
453
|
-
return /* @__PURE__ */ (0,
|
|
454
|
-
/* @__PURE__ */ (0,
|
|
455
|
-
/* @__PURE__ */ (0,
|
|
542
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "relative flex flex-col justify-center items-center", children: [
|
|
543
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex items-center", children: [
|
|
544
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
456
545
|
"input",
|
|
457
546
|
{
|
|
458
547
|
disabled: !!isDisabled,
|
|
@@ -468,9 +557,9 @@ var Checkbox = ({ name, labelText, isLarge, onChange, isDisabled }) => {
|
|
|
468
557
|
className: `form-checkbox text-blue-600 focus:ring-blue-500 border-gray-300 rounded ${isLarge ? "h-5 w-5" : "h-4 w-4"}`
|
|
469
558
|
}
|
|
470
559
|
),
|
|
471
|
-
typeof labelText === "string" ? /* @__PURE__ */ (0,
|
|
560
|
+
typeof labelText === "string" ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("label", { htmlFor: `${name}${rand}`, className: "ml-2 block text-sm text-gray-800 dark:text-gray-200", children: labelText }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("label", { htmlFor: `${name}${rand}`, children: labelText })
|
|
472
561
|
] }),
|
|
473
|
-
error && /* @__PURE__ */ (0,
|
|
562
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ErrorText_default, { classNames: "absolute w-64 left-6 top-4 text-xs text-red-500", text: error })
|
|
474
563
|
] });
|
|
475
564
|
};
|
|
476
565
|
var MultiChoiceCheckBox = ({ name, hasMultipleAnswers, index, isLarge, allOptionsName }) => {
|
|
@@ -484,7 +573,7 @@ var MultiChoiceCheckBox = ({ name, hasMultipleAnswers, index, isLarge, allOption
|
|
|
484
573
|
}
|
|
485
574
|
setOptionsValue(optionsValue == null ? void 0 : optionsValue.map((el, idx) => ({ option: el.option, id: el.id, isCorrectAnswer: index === idx ? !el.isCorrectAnswer : false })));
|
|
486
575
|
};
|
|
487
|
-
return /* @__PURE__ */ (0,
|
|
576
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex flex-col justify-center items-center", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
488
577
|
"input",
|
|
489
578
|
{
|
|
490
579
|
onChange: (e) => onCheck(e),
|
|
@@ -502,11 +591,11 @@ var Checkbox_default = Checkbox;
|
|
|
502
591
|
|
|
503
592
|
// src/Checkbox/RadioOption.tsx
|
|
504
593
|
var import_formik2 = require("formik");
|
|
505
|
-
var
|
|
594
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
506
595
|
var RadioOption = ({ name, isLarge, labelText, option, onSelect }) => {
|
|
507
596
|
const [{ value }, {}, { setValue }] = (0, import_formik2.useField)(name);
|
|
508
|
-
return /* @__PURE__ */ (0,
|
|
509
|
-
/* @__PURE__ */ (0,
|
|
597
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-center", children: [
|
|
598
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
510
599
|
"input",
|
|
511
600
|
{
|
|
512
601
|
onChange: () => {
|
|
@@ -521,19 +610,19 @@ var RadioOption = ({ name, isLarge, labelText, option, onSelect }) => {
|
|
|
521
610
|
className: `form-checkbox text-blue-600 focus:ring-blue-500 border-gray-300 rounded ${isLarge ? "h-5 w-5" : "h-4 w-4"}`
|
|
522
611
|
}
|
|
523
612
|
),
|
|
524
|
-
typeof labelText === "string" ? /* @__PURE__ */ (0,
|
|
613
|
+
typeof labelText === "string" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("label", { htmlFor: option, className: "ml-2 block text-sm text-gray-900", children: labelText }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("label", { htmlFor: option, children: labelText })
|
|
525
614
|
] });
|
|
526
615
|
};
|
|
527
616
|
var RadioOption_default = RadioOption;
|
|
528
617
|
|
|
529
618
|
// src/Common/BottomAlert.tsx
|
|
530
619
|
var import_react_dom2 = __toESM(require("react-dom"));
|
|
531
|
-
var
|
|
620
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
532
621
|
var BottomAlert = ({ isDark, setDontShowAgain, dontShowAgain, title, borderColor, onDismissed, cancelText, confirmText, onConfirm, onCancel, isSingleAction, children, buttonColor }) => {
|
|
533
622
|
const dismiss = () => {
|
|
534
623
|
onDismissed == null ? void 0 : onDismissed();
|
|
535
624
|
};
|
|
536
|
-
return /* @__PURE__ */ (0,
|
|
625
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
537
626
|
"div",
|
|
538
627
|
{
|
|
539
628
|
className: "top-0 left-0 fixed w-full h-screen flex justify-center",
|
|
@@ -541,11 +630,11 @@ var BottomAlert = ({ isDark, setDontShowAgain, dontShowAgain, title, borderColor
|
|
|
541
630
|
background: isDark ? "rgba(0, 0, 0, 0.1)" : "rgba(255, 255, 255, 0.1)",
|
|
542
631
|
zIndex: 9999
|
|
543
632
|
},
|
|
544
|
-
children: /* @__PURE__ */ (0,
|
|
545
|
-
/* @__PURE__ */ (0,
|
|
546
|
-
/* @__PURE__ */ (0,
|
|
547
|
-
setDontShowAgain ? /* @__PURE__ */ (0,
|
|
548
|
-
/* @__PURE__ */ (0,
|
|
633
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "absolute top-0 w-full h-screen flex justify-center bg-gray-200/90 dark:bg-slate-800/50", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "absolute sm:w-1/2 w-full mx-auto shadow-xl rounded-md p-6 flex z-50 flex-col top-24 bg-white dark:bg-slate-900 overflow-clip rounded-bl-lg rounded-br-lg border-b-8 border-b-blue-500", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { borderColor: borderColor || "#0ea5e9" }, children: [
|
|
634
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h3", { className: "font-semibold font-header text-gray-700 dark:text-gray-300 text-xl", children: title }),
|
|
635
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "mt-2 text-lg", children }),
|
|
636
|
+
setDontShowAgain ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex items-center space-x-1", children: [
|
|
637
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
549
638
|
"input",
|
|
550
639
|
{
|
|
551
640
|
onChange: () => {
|
|
@@ -557,9 +646,9 @@ var BottomAlert = ({ isDark, setDontShowAgain, dontShowAgain, title, borderColor
|
|
|
557
646
|
className: `form-checkbox text-blue-600 focus:ring-blue-500 border-gray-300 rounded h-4 w-4`
|
|
558
647
|
}
|
|
559
648
|
),
|
|
560
|
-
/* @__PURE__ */ (0,
|
|
649
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("label", { htmlFor: "show_again_check", className: "dark:text-gray-200 text-gray-700", children: "Don't show again" })
|
|
561
650
|
] }) : null,
|
|
562
|
-
/* @__PURE__ */ (0,
|
|
651
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "mt-4 flex items-center justify-end space-x-4 z-10", children: isSingleAction ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
563
652
|
Button_default,
|
|
564
653
|
{
|
|
565
654
|
type: "button",
|
|
@@ -570,8 +659,8 @@ var BottomAlert = ({ isDark, setDontShowAgain, dontShowAgain, title, borderColor
|
|
|
570
659
|
},
|
|
571
660
|
children: confirmText || "Okay"
|
|
572
661
|
}
|
|
573
|
-
) : /* @__PURE__ */ (0,
|
|
574
|
-
/* @__PURE__ */ (0,
|
|
662
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "w-1/3 flex justify-end space-x-4", children: [
|
|
663
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "w-full flex flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
575
664
|
Button_default,
|
|
576
665
|
{
|
|
577
666
|
type: "button",
|
|
@@ -583,7 +672,7 @@ var BottomAlert = ({ isDark, setDontShowAgain, dontShowAgain, title, borderColor
|
|
|
583
672
|
children: cancelText || "Cancel"
|
|
584
673
|
}
|
|
585
674
|
) }),
|
|
586
|
-
/* @__PURE__ */ (0,
|
|
675
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "w-full flex flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
587
676
|
Button_default,
|
|
588
677
|
{
|
|
589
678
|
type: "button",
|
|
@@ -603,53 +692,16 @@ var BottomAlert = ({ isDark, setDontShowAgain, dontShowAgain, title, borderColor
|
|
|
603
692
|
var BAWrapper = (props) => {
|
|
604
693
|
if (!props.isVisible) return null;
|
|
605
694
|
return import_react_dom2.default.createPortal(
|
|
606
|
-
/* @__PURE__ */ (0,
|
|
695
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(BottomAlert, __spreadValues({}, props)),
|
|
607
696
|
document.body
|
|
608
697
|
);
|
|
609
698
|
};
|
|
610
699
|
var BottomAlert_default = BAWrapper;
|
|
611
700
|
|
|
612
|
-
// src/Common/Container.tsx
|
|
613
|
-
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
614
|
-
var Container = ({ backgroundImage, style, children, onClick }) => {
|
|
615
|
-
return backgroundImage ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
616
|
-
"div",
|
|
617
|
-
{
|
|
618
|
-
style: __spreadValues({
|
|
619
|
-
backgroundImage,
|
|
620
|
-
backgroundSize: "cover"
|
|
621
|
-
}, style),
|
|
622
|
-
className: "w-full md:min-h-screen dark:bg-slate-950 mx-auto overflow-y-auto overflow-x-clip px-0 md:px-2 sm:py-4 py-1 relative",
|
|
623
|
-
onClick,
|
|
624
|
-
children: children ? children : null
|
|
625
|
-
}
|
|
626
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
627
|
-
"div",
|
|
628
|
-
{
|
|
629
|
-
className: `w-full dark:bg-slate-950 mx-auto overflow-y-auto overflow-x-clip px-0 sm:px-16 relative pt-20`,
|
|
630
|
-
onClick,
|
|
631
|
-
style: style || { minHeight: "100vh" },
|
|
632
|
-
children: children ? children : null
|
|
633
|
-
}
|
|
634
|
-
);
|
|
635
|
-
};
|
|
636
|
-
var Container_default = Container;
|
|
637
|
-
|
|
638
|
-
// src/Common/fieldStyle.ts
|
|
639
|
-
var baseFieldStyle = "font-sans form-input h-11 w-full bg-white border-gray-200 dark:border-gray-500 dark:bg-slate-800 dark:text-gray-200 text-gray-700 dark:placeholder-gray-400 placeholder-gray-400 rounded-md px-2 py-1 focus:outline-none focus:border-blue-300 focus:ring focus:ring-blue-200 focus:ring-opacity-50";
|
|
640
|
-
var createExerciseElementStyle = "flex flex-col justify-between space-y-2 w-full p-4 bg-white dark:bg-slate-800 rounded-xl text-gray-800 dark:text-gray-200 border-2 border-slate-200 dark:border-slate-400 overflow-hidden transition-all";
|
|
641
|
-
var exerciseDeleteButton = "w-6 h-6 flex justify-center text-gray-700 dark:text-gray-200 hover:text-red-600 dark:hover:text-red-500 transition-all duration-150 hover:scale-125";
|
|
642
|
-
var xIconButton = "w-6 h-6 flex justify-center text-gray-700 dark:text-gray-200 hover:text-gray-950 dark:hover:text-gray-100 transition-all duration-150 hover:scale-125";
|
|
643
|
-
var exerciseEditButton = "w-6 h-6 flex justify-center text-gray-700 dark:text-gray-200 hover:text-red-600 dark:hover:text-green-500 transition-all duration-150 hover:scale-125";
|
|
644
|
-
var tippyClassname = "p-2 bg-slate-600 dark:bg-slate-900 opacity-90 text-white font-medium font-header rounded-lg";
|
|
645
|
-
var headerTippyClass = "rounded-lg p-2 bg-slate-950 opacity-95 text-white font-medium";
|
|
646
|
-
var headerButtonClass = "w-10 h-10 rounded-full dark:hover:bg-slate-600 hover:bg-slate-200 bg-transparent flex justify-center items-center flex justify-center items-center text-slate-600 dark:text-slate-100 hover:text-primary dark:hover:text-primary transition-colors duration-50";
|
|
647
|
-
var toolbarExerciseButton = "flex bg-gray-50/90 items-center sm:justify-between p-4 shadow-sm w-full rounded-xl border-4 border-transparent hover:border-white text-gray-700 hover:text-white hover:bg-indigo-500 transition-colors duration-75";
|
|
648
|
-
|
|
649
701
|
// src/Common/Tippy.tsx
|
|
650
702
|
var import_react5 = require("react");
|
|
651
703
|
var import_react6 = require("@floating-ui/react");
|
|
652
|
-
var
|
|
704
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
653
705
|
var Tippy = ({ children, content, placement = "top", className = "", wrapperClassname = "", disabled = false, arrow: useArrow = false, visible }) => {
|
|
654
706
|
const [isOpen, setIsOpen] = (0, import_react5.useState)(false);
|
|
655
707
|
const arrowRef = (0, import_react5.useRef)(null);
|
|
@@ -685,9 +737,9 @@ var Tippy = ({ children, content, placement = "top", className = "", wrapperClas
|
|
|
685
737
|
dismiss,
|
|
686
738
|
role
|
|
687
739
|
]);
|
|
688
|
-
return /* @__PURE__ */ (0,
|
|
689
|
-
isOpen && /* @__PURE__ */ (0,
|
|
690
|
-
/* @__PURE__ */ (0,
|
|
740
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
|
|
741
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_react6.FloatingPortal, { children: [
|
|
742
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
691
743
|
"div",
|
|
692
744
|
__spreadProps(__spreadValues({
|
|
693
745
|
ref: refs.setFloating,
|
|
@@ -702,7 +754,7 @@ var Tippy = ({ children, content, placement = "top", className = "", wrapperClas
|
|
|
702
754
|
children: content
|
|
703
755
|
})
|
|
704
756
|
),
|
|
705
|
-
useArrow && /* @__PURE__ */ (0,
|
|
757
|
+
useArrow && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
706
758
|
import_react6.FloatingArrow,
|
|
707
759
|
{
|
|
708
760
|
ref: arrowRef,
|
|
@@ -712,22 +764,22 @@ var Tippy = ({ children, content, placement = "top", className = "", wrapperClas
|
|
|
712
764
|
}
|
|
713
765
|
)
|
|
714
766
|
] }),
|
|
715
|
-
/* @__PURE__ */ (0,
|
|
767
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", __spreadProps(__spreadValues({ ref: refs.setReference }, getReferenceProps()), { className: wrapperClassname, children }))
|
|
716
768
|
] });
|
|
717
769
|
};
|
|
718
770
|
var Tippy_default = Tippy;
|
|
719
771
|
|
|
720
772
|
// src/Common/IconInfo.tsx
|
|
721
|
-
var
|
|
773
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
722
774
|
var IconInfo = ({ content, icon, number, color }) => {
|
|
723
|
-
return /* @__PURE__ */ (0,
|
|
775
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "flex flex-shrink-0 items-center justify-center w-8 h-8 rounded-full bg-slate-400 dark:bg-slate-600 dark:border dark:border-white", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
724
776
|
Tippy_default,
|
|
725
777
|
{
|
|
726
778
|
className: tippyClassname,
|
|
727
779
|
content,
|
|
728
|
-
children: /* @__PURE__ */ (0,
|
|
780
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "relative", children: [
|
|
729
781
|
icon,
|
|
730
|
-
/* @__PURE__ */ (0,
|
|
782
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: `absolute -bottom-1 ${number > 9 ? number > 99 ? number > 999 ? "w-8 h-8 -right-6 -bottom-3" : "w-6 h-6 -right-5 -bottom-2" : "w-5 h-5 -right-3" : "w-4 -right-3"} flex justify-center items-center text-xs font-sans rounded-full text-white ${color || "bg-secondary"}`, children: number })
|
|
731
783
|
] })
|
|
732
784
|
}
|
|
733
785
|
) });
|
|
@@ -738,37 +790,37 @@ var IconInfo_default = IconInfo;
|
|
|
738
790
|
var import_link = __toESM(require("next/link"));
|
|
739
791
|
|
|
740
792
|
// src/Icons/XIcon.tsx
|
|
741
|
-
var
|
|
793
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
742
794
|
var XIcon = ({ className }) => {
|
|
743
|
-
return /* @__PURE__ */ (0,
|
|
795
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", className: className || "h-5 w-5", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("path", { fillRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z", clipRule: "evenodd" }) });
|
|
744
796
|
};
|
|
745
797
|
var XIcon_default = XIcon;
|
|
746
798
|
|
|
747
799
|
// src/Common/Modal.tsx
|
|
748
|
-
var
|
|
800
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
749
801
|
var Modal = (_a) => {
|
|
750
802
|
var _b = _a, { visible, children, fullscreen, displayDark, dismissLink, bgOpacity, onDismissed, dismissable = true, dismissOnBackdropClick = true, style } = _b, props = __objRest(_b, ["visible", "children", "fullscreen", "displayDark", "dismissLink", "bgOpacity", "onDismissed", "dismissable", "dismissOnBackdropClick", "style"]);
|
|
751
803
|
if (!visible) return null;
|
|
752
|
-
return /* @__PURE__ */ (0,
|
|
804
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Overlay_default, __spreadProps(__spreadValues({ visible, onClick: dismissOnBackdropClick ? onDismissed : void 0, isDark: displayDark, withContainer: true }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
753
805
|
"div",
|
|
754
806
|
{
|
|
755
807
|
className: `${displayDark && "dark"} bg-slate-900/20 fixed inset-0 flex items-center justify-center`,
|
|
756
808
|
style: { zIndex: 1e4 },
|
|
757
|
-
children: /* @__PURE__ */ (0,
|
|
758
|
-
/* @__PURE__ */ (0,
|
|
809
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: ["relative mx-1 w-full md:mx-auto md:w-3/4 lg:w-1/2", fullscreen && `md:w-5/6 lg:w-5/6`].join(" "), children: [
|
|
810
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_jsx_runtime20.Fragment, { children: dismissLink ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
759
811
|
import_link.default,
|
|
760
812
|
{
|
|
761
813
|
href: dismissLink,
|
|
762
814
|
scroll: false,
|
|
763
|
-
children: /* @__PURE__ */ (0,
|
|
815
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { onClick: onDismissed, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(XIcon_default, { className: "absolute h-5 w-5 top-5 sm:top-20 right-4 transition-colors cursor-pointer duration-75 hover:text-blue-500 dark:text-gray-200 dark:hover:text-blue-500" }) })
|
|
764
816
|
}
|
|
765
|
-
) : dismissable ? /* @__PURE__ */ (0,
|
|
817
|
+
) : dismissable ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
766
818
|
"button",
|
|
767
819
|
{
|
|
768
820
|
className: "absolute top-5 sm:top-20 right-4 transition-colors cursor-pointer duration-75 hover:text-blue-500 dark:text-gray-200 dark:hover:text-blue-500",
|
|
769
821
|
type: "button",
|
|
770
822
|
onClick: onDismissed,
|
|
771
|
-
children: /* @__PURE__ */ (0,
|
|
823
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
772
824
|
XIcon_default,
|
|
773
825
|
{
|
|
774
826
|
className: "h-5 w-5"
|
|
@@ -776,13 +828,13 @@ var Modal = (_a) => {
|
|
|
776
828
|
)
|
|
777
829
|
}
|
|
778
830
|
) : null }),
|
|
779
|
-
/* @__PURE__ */ (0,
|
|
831
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
780
832
|
"div",
|
|
781
833
|
{
|
|
782
834
|
className: "my-1 sm:mt-16 bg-white dark:bg-slate-900 shadow-lg border border-gray-100 dark:border-none rounded-xl overflow-x-visible overflow-y-visible no-scrollbar",
|
|
783
835
|
onClick: (e) => e.stopPropagation(),
|
|
784
836
|
style: __spreadValues({ maxHeight: "calc(100vh - 6rem)" }, style),
|
|
785
|
-
children: /* @__PURE__ */ (0,
|
|
837
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "p-4 sm:p-10", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "mt-8 sm:mt-0", children }) })
|
|
786
838
|
}
|
|
787
839
|
)
|
|
788
840
|
] })
|
|
@@ -791,24 +843,9 @@ var Modal = (_a) => {
|
|
|
791
843
|
};
|
|
792
844
|
var Modal_default = Modal;
|
|
793
845
|
|
|
794
|
-
// src/Common/NoResults.tsx
|
|
795
|
-
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
796
|
-
var HEIGHT = 160;
|
|
797
|
-
var WIDTH = HEIGHT * (16 / 9);
|
|
798
|
-
var NoResults = ({ loading, message }) => {
|
|
799
|
-
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "relative w-full flex justify-center items-center", children: [
|
|
800
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex justify-start w-full space-x-2 py-3 p-4 bg-slate-100 dark:bg-slate-800 rounded-md", children: [
|
|
801
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { width: `calc(${WIDTH}px + 1rem)`, height: 320 }, className: "rounded-lg overflow-hidden cursor-pointer hover:shadow-md transition-shadow duration-150 px-2 pt-2 bg-slate-200 dark:bg-slate-700 animate-pulse" }),
|
|
802
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { width: `calc(${WIDTH}px + 1rem)`, height: 320 }, className: "rounded-lg overflow-hidden cursor-pointer hover:shadow-md transition-shadow duration-150 px-2 pt-2 bg-slate-200 dark:bg-slate-700 animate-pulse" })
|
|
803
|
-
] }),
|
|
804
|
-
!loading && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "absolute w-full h-full flex justify-center items-center m-auto", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "p-4 rounded-lg bg-white dark:bg-slate-700 shadow-xl", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "font-semibold text-lg text-gray-700 dark:text-gray-300", children: message || "No results" }) }) })
|
|
805
|
-
] });
|
|
806
|
-
};
|
|
807
|
-
var NoResults_default = NoResults;
|
|
808
|
-
|
|
809
846
|
// src/Common/NoticeBox.tsx
|
|
810
847
|
var import_react7 = require("react");
|
|
811
|
-
var
|
|
848
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
812
849
|
var NoticeBox = ({ children, type, isDismissible, isVisible, onDismiss }) => {
|
|
813
850
|
const [visible, setVisible] = (0, import_react7.useState)(true);
|
|
814
851
|
const styles = (0, import_react7.useMemo)(() => {
|
|
@@ -829,15 +866,15 @@ var NoticeBox = ({ children, type, isDismissible, isVisible, onDismiss }) => {
|
|
|
829
866
|
setVisible(isVisible);
|
|
830
867
|
}, [isVisible]);
|
|
831
868
|
if (!isVisible) return null;
|
|
832
|
-
return /* @__PURE__ */ (0,
|
|
869
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
833
870
|
"div",
|
|
834
871
|
{
|
|
835
872
|
style: {
|
|
836
873
|
zIndex: 100
|
|
837
874
|
},
|
|
838
875
|
className: styles,
|
|
839
|
-
children: /* @__PURE__ */ (0,
|
|
840
|
-
isDismissible && /* @__PURE__ */ (0,
|
|
876
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "relative", children: [
|
|
877
|
+
isDismissible && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
841
878
|
"button",
|
|
842
879
|
{
|
|
843
880
|
type: "button",
|
|
@@ -846,7 +883,7 @@ var NoticeBox = ({ children, type, isDismissible, isVisible, onDismiss }) => {
|
|
|
846
883
|
onDismiss == null ? void 0 : onDismiss();
|
|
847
884
|
},
|
|
848
885
|
className: "absolute bottom-1 right-1 transition-colors cursor-pointer duration-75 hover:text-blue-500",
|
|
849
|
-
children: /* @__PURE__ */ (0,
|
|
886
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(XIcon_default, { className: "h-5 w-5" })
|
|
850
887
|
}
|
|
851
888
|
),
|
|
852
889
|
children
|
|
@@ -856,58 +893,51 @@ var NoticeBox = ({ children, type, isDismissible, isVisible, onDismiss }) => {
|
|
|
856
893
|
};
|
|
857
894
|
var NoticeBox_default = NoticeBox;
|
|
858
895
|
|
|
859
|
-
// src/Common/Pill.tsx
|
|
860
|
-
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
861
|
-
var Pill = ({ text }) => {
|
|
862
|
-
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "rounded-full px-3 py-1 text-sm font-header font-medium bg-white dark:bg-slate-900 text-gray-700 dark:text-gray-300 mr-2 mb-2", children: text });
|
|
863
|
-
};
|
|
864
|
-
var Pill_default = Pill;
|
|
865
|
-
|
|
866
896
|
// src/Icons/StarIcon.tsx
|
|
867
|
-
var
|
|
897
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
868
898
|
var StarIcon = ({ className, percentage, color }) => {
|
|
869
|
-
return /* @__PURE__ */ (0,
|
|
870
|
-
/* @__PURE__ */ (0,
|
|
871
|
-
/* @__PURE__ */ (0,
|
|
872
|
-
/* @__PURE__ */ (0,
|
|
899
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", className: className || "h-5 w-5", viewBox: "0 0 20 20", fill: "currentColor", children: [
|
|
900
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("linearGradient", { id: "grad", children: [
|
|
901
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("stop", { offset: `${(percentage || 0.5) * 100}%`, "stop-color": color ? color : "#4b5563" }),
|
|
902
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("stop", { offset: `${100 - (percentage || 0.5) * 100}%`, "stop-color": "white" })
|
|
873
903
|
] }) }),
|
|
874
|
-
/* @__PURE__ */ (0,
|
|
904
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { fill: "url(#grad)", d: "M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" })
|
|
875
905
|
] });
|
|
876
906
|
};
|
|
877
907
|
var StarIcon_default = StarIcon;
|
|
878
908
|
|
|
879
909
|
// src/Icons/StarIconSolid.tsx
|
|
880
|
-
var
|
|
910
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
881
911
|
var StartIconSolid = ({ className }) => {
|
|
882
|
-
return /* @__PURE__ */ (0,
|
|
912
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", className: className || "h-5 w-5", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" }) });
|
|
883
913
|
};
|
|
884
914
|
var StarIconSolid_default = StartIconSolid;
|
|
885
915
|
|
|
886
916
|
// src/Common/RatingStars.tsx
|
|
887
|
-
var
|
|
917
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
888
918
|
var RatingStars = ({ avgRating, large }) => {
|
|
889
919
|
const icons = [1, 2, 3, 4, 5].map((el) => {
|
|
890
920
|
if (avgRating === 0) {
|
|
891
|
-
return /* @__PURE__ */ (0,
|
|
921
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(StarIconSolid_default, { className: `${large ? "h-5 w-5" : "h-3 w-3"} text-gray-200 dark:text-gray-400` }, `rating_star_${el}`);
|
|
892
922
|
}
|
|
893
923
|
if (Number.isInteger(avgRating)) {
|
|
894
924
|
if (el <= avgRating) {
|
|
895
|
-
return /* @__PURE__ */ (0,
|
|
925
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(StarIconSolid_default, { className: `${large ? "h-5 w-5" : "h-3 w-3"} text-blue-500` }, `rating_star_${el}`);
|
|
896
926
|
}
|
|
897
|
-
return /* @__PURE__ */ (0,
|
|
927
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(StarIconSolid_default, { className: `${large ? "h-5 w-5" : "h-3 w-3"} text-gray-200 dark:text-gray-400` }, `rating_star_${el}`);
|
|
898
928
|
}
|
|
899
929
|
const whole = Math.floor(avgRating);
|
|
900
930
|
if (el <= whole) {
|
|
901
|
-
return /* @__PURE__ */ (0,
|
|
931
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(StarIconSolid_default, { className: `${large ? "h-5 w-5" : "h-3 w-3"} text-blue-500` }, `rating_star_${el}`);
|
|
902
932
|
}
|
|
903
|
-
return /* @__PURE__ */ (0,
|
|
933
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(StarIcon_default, { percentage: avgRating - whole, color: "#00b4d8", className: `${large ? "h-5 w-5" : "h-3 w-3"}` }, `rating_star_${el}`);
|
|
904
934
|
});
|
|
905
|
-
return /* @__PURE__ */ (0,
|
|
935
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
906
936
|
Tippy_default,
|
|
907
937
|
{
|
|
908
938
|
content: avgRating === 0 ? "No ratings" : "Average Rating " + avgRating,
|
|
909
939
|
className: "bg-gray-800 opacity-90 text-white rounded-md px-2 py-1 cursor-pointer h-fit",
|
|
910
|
-
children: /* @__PURE__ */ (0,
|
|
940
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex items-center space-x-0 justify-start", children: icons })
|
|
911
941
|
}
|
|
912
942
|
);
|
|
913
943
|
};
|
|
@@ -916,12 +946,12 @@ var RatingStars_default = RatingStars;
|
|
|
916
946
|
// src/Common/Slider.tsx
|
|
917
947
|
var import_react8 = require("react");
|
|
918
948
|
var import_use_debounce = require("use-debounce");
|
|
919
|
-
var
|
|
949
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
920
950
|
var Slider = ({ min, max, step, value, onChange }) => {
|
|
921
951
|
const handleChange = (event) => {
|
|
922
952
|
onChange(parseFloat(event.target.value));
|
|
923
953
|
};
|
|
924
|
-
return /* @__PURE__ */ (0,
|
|
954
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
925
955
|
"input",
|
|
926
956
|
{
|
|
927
957
|
type: "range",
|
|
@@ -939,7 +969,7 @@ var DebouncedSlider = ({ min, max, handleUpdate, initialValue }) => {
|
|
|
939
969
|
const debouncedUpdate = (0, import_use_debounce.useDebouncedCallback)((v) => {
|
|
940
970
|
handleUpdate(v);
|
|
941
971
|
}, 120, { trailing: true, leading: false });
|
|
942
|
-
return /* @__PURE__ */ (0,
|
|
972
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
943
973
|
Slider,
|
|
944
974
|
{
|
|
945
975
|
min,
|
|
@@ -956,40 +986,18 @@ var DebouncedSlider = ({ min, max, handleUpdate, initialValue }) => {
|
|
|
956
986
|
Slider.Debounced = DebouncedSlider;
|
|
957
987
|
var Slider_default = Slider;
|
|
958
988
|
|
|
959
|
-
// src/Common/StepsComponent.tsx
|
|
960
|
-
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
961
|
-
var StepsComponent = ({ steps, activeStep, onStepPress }) => {
|
|
962
|
-
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex justify-between items-center w-full p-1 mb-2", children: steps.map((step, index) => {
|
|
963
|
-
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex justify-center items-center space-x-2 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
964
|
-
"button",
|
|
965
|
-
{
|
|
966
|
-
type: "button",
|
|
967
|
-
onClick: () => onStepPress(index),
|
|
968
|
-
className: `flex items-center space-x-2 px-4 py-2 rounded-lg min-w-10 md:min-w-20 sm:min-w-40 font-header transition-all duration-150
|
|
969
|
-
${activeStep === index ? "bg-primary text-white shadow-lg scale-110 border-2 border-primary" : "bg-gray-100 dark:bg-slate-800 text-gray-700 dark:text-gray-200 hover:bg-gray-200 dark:hover:bg-slate-700 border-2 border-transparent hover:border-primary/30"}`,
|
|
970
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("span", { className: "font-medium truncate", children: [
|
|
971
|
-
index + 1,
|
|
972
|
-
". ",
|
|
973
|
-
step.label
|
|
974
|
-
] })
|
|
975
|
-
}
|
|
976
|
-
) }) }, `step_${index}_${step.label}`);
|
|
977
|
-
}) });
|
|
978
|
-
};
|
|
979
|
-
var StepsComponent_default = StepsComponent;
|
|
980
|
-
|
|
981
989
|
// src/Common/ToggleSwitch.tsx
|
|
982
990
|
var import_formik3 = require("formik");
|
|
983
991
|
var import_framer_motion3 = require("framer-motion");
|
|
984
|
-
var
|
|
992
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
985
993
|
var Formik = ({ label, name }) => {
|
|
986
994
|
const [{ value }, , { setValue }] = (0, import_formik3.useField)(name);
|
|
987
995
|
const handleChange = (e) => {
|
|
988
996
|
setValue(e.target.checked);
|
|
989
997
|
};
|
|
990
|
-
return /* @__PURE__ */ (0,
|
|
991
|
-
/* @__PURE__ */ (0,
|
|
992
|
-
/* @__PURE__ */ (0,
|
|
998
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("label", { className: "flex items-center space-x-2 cursor-pointer", children: [
|
|
999
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "relative", children: [
|
|
1000
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
993
1001
|
"input",
|
|
994
1002
|
{
|
|
995
1003
|
type: "checkbox",
|
|
@@ -998,7 +1006,7 @@ var Formik = ({ label, name }) => {
|
|
|
998
1006
|
onChange: handleChange
|
|
999
1007
|
}
|
|
1000
1008
|
),
|
|
1001
|
-
/* @__PURE__ */ (0,
|
|
1009
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: `w-10 h-6 rounded-full p-[4px] transition-colors duration-300 ${value ? "bg-[#00b4d8]" : "bg-[#64748b]"}`, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1002
1010
|
import_framer_motion3.motion.div,
|
|
1003
1011
|
{
|
|
1004
1012
|
className: "w-4 h-4 bg-white rounded-full absolute top-1",
|
|
@@ -1010,16 +1018,16 @@ var Formik = ({ label, name }) => {
|
|
|
1010
1018
|
}
|
|
1011
1019
|
) })
|
|
1012
1020
|
] }),
|
|
1013
|
-
/* @__PURE__ */ (0,
|
|
1021
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-sm font-medium text-gray-800 dark:text-gray-200", children: label })
|
|
1014
1022
|
] });
|
|
1015
1023
|
};
|
|
1016
1024
|
var ToggleSwitch = ({ label, onChange, value }) => {
|
|
1017
1025
|
const handleChange = (e) => {
|
|
1018
1026
|
onChange(e.target.checked);
|
|
1019
1027
|
};
|
|
1020
|
-
return /* @__PURE__ */ (0,
|
|
1021
|
-
/* @__PURE__ */ (0,
|
|
1022
|
-
/* @__PURE__ */ (0,
|
|
1028
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("label", { className: "flex items-center space-x-2 cursor-pointer", children: [
|
|
1029
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "relative", children: [
|
|
1030
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1023
1031
|
"input",
|
|
1024
1032
|
{
|
|
1025
1033
|
type: "checkbox",
|
|
@@ -1028,7 +1036,7 @@ var ToggleSwitch = ({ label, onChange, value }) => {
|
|
|
1028
1036
|
onChange: handleChange
|
|
1029
1037
|
}
|
|
1030
1038
|
),
|
|
1031
|
-
/* @__PURE__ */ (0,
|
|
1039
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: `w-10 h-6 rounded-full p-[4px] transition-colors duration-300 ${value ? "bg-[#00b4d8]" : "bg-[#64748b]"}`, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1032
1040
|
import_framer_motion3.motion.div,
|
|
1033
1041
|
{
|
|
1034
1042
|
className: "w-4 h-4 bg-white rounded-full absolute top-1",
|
|
@@ -1040,7 +1048,7 @@ var ToggleSwitch = ({ label, onChange, value }) => {
|
|
|
1040
1048
|
}
|
|
1041
1049
|
) })
|
|
1042
1050
|
] }),
|
|
1043
|
-
/* @__PURE__ */ (0,
|
|
1051
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-sm font-medium text-gray-800 dark:text-gray-200", children: label })
|
|
1044
1052
|
] });
|
|
1045
1053
|
};
|
|
1046
1054
|
ToggleSwitch.Formik = Formik;
|
|
@@ -1050,24 +1058,24 @@ var ToggleSwitch_default = ToggleSwitch;
|
|
|
1050
1058
|
var import_framer_motion4 = require("framer-motion");
|
|
1051
1059
|
|
|
1052
1060
|
// src/Icons/PlusCircleIcon.tsx
|
|
1053
|
-
var
|
|
1061
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1054
1062
|
var PlusCircleIcon = ({ className }) => {
|
|
1055
|
-
return /* @__PURE__ */ (0,
|
|
1063
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", className: className || "h-5 w-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z" }) });
|
|
1056
1064
|
};
|
|
1057
1065
|
var PlusCircleIcon_default = PlusCircleIcon;
|
|
1058
1066
|
|
|
1059
1067
|
// src/Icons/ArrowCircleRight.tsx
|
|
1060
|
-
var
|
|
1068
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1061
1069
|
var StartIconSolid2 = ({ className }) => {
|
|
1062
|
-
return /* @__PURE__ */ (0,
|
|
1070
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", className: className || "h-5 w-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M13 9l3 3m0 0l-3 3m3-3H8m13 0a9 9 0 11-18 0 9 9 0 0118 0z" }) });
|
|
1063
1071
|
};
|
|
1064
1072
|
var ArrowCircleRight_default = StartIconSolid2;
|
|
1065
1073
|
|
|
1066
1074
|
// src/Common/UserContentSwitcher.tsx
|
|
1067
|
-
var
|
|
1075
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1068
1076
|
var UserContentSwitcher = ({ icon1: Icon1, icon2: Icon2, setGalleryMode, galleryMode, title1, title2 }) => {
|
|
1069
|
-
return /* @__PURE__ */ (0,
|
|
1070
|
-
/* @__PURE__ */ (0,
|
|
1077
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "relative flex flex-row items-center my-2 bg-slate-100 dark:bg-slate-900 w-full h-14 rounded-lg", children: [
|
|
1078
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1071
1079
|
import_framer_motion4.motion.div,
|
|
1072
1080
|
{
|
|
1073
1081
|
className: "absolute w-1/2 h-11 rounded-md bg-white dark:bg-slate-600",
|
|
@@ -1081,25 +1089,25 @@ var UserContentSwitcher = ({ icon1: Icon1, icon2: Icon2, setGalleryMode, gallery
|
|
|
1081
1089
|
}
|
|
1082
1090
|
}
|
|
1083
1091
|
),
|
|
1084
|
-
/* @__PURE__ */ (0,
|
|
1092
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
1085
1093
|
"button",
|
|
1086
1094
|
{
|
|
1087
1095
|
onClick: () => setGalleryMode(title1.toLowerCase()),
|
|
1088
1096
|
className: "py-2 flex flex-row w-1/2 justify-center items-center gap-1 z-10",
|
|
1089
1097
|
children: [
|
|
1090
|
-
/* @__PURE__ */ (0,
|
|
1098
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1091
1099
|
"span",
|
|
1092
1100
|
{
|
|
1093
1101
|
className: `truncate ${galleryMode === title1.toLowerCase() ? "text-primary dark:text-blue-400" : "text-slate-500 dark:text-slate-400 opacity-90"}`,
|
|
1094
1102
|
children: title1.toLocaleUpperCase()
|
|
1095
1103
|
}
|
|
1096
1104
|
),
|
|
1097
|
-
Icon1 ? /* @__PURE__ */ (0,
|
|
1105
|
+
Icon1 ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1098
1106
|
Icon1,
|
|
1099
1107
|
{
|
|
1100
1108
|
className: `h-5 w-5 ${galleryMode === title1.toLowerCase() ? "text-primary dark:text-blue-400" : "text-slate-500 dark:text-slate-400 opacity-90"}`
|
|
1101
1109
|
}
|
|
1102
|
-
) : /* @__PURE__ */ (0,
|
|
1110
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1103
1111
|
PlusCircleIcon_default,
|
|
1104
1112
|
{
|
|
1105
1113
|
className: `h-5 w-5 ${galleryMode === title1.toLowerCase() ? "text-primary dark:text-blue-400" : "text-slate-500 dark:text-slate-400 opacity-90"}`
|
|
@@ -1108,25 +1116,25 @@ var UserContentSwitcher = ({ icon1: Icon1, icon2: Icon2, setGalleryMode, gallery
|
|
|
1108
1116
|
]
|
|
1109
1117
|
}
|
|
1110
1118
|
),
|
|
1111
|
-
/* @__PURE__ */ (0,
|
|
1119
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
1112
1120
|
"button",
|
|
1113
1121
|
{
|
|
1114
1122
|
onClick: () => setGalleryMode(title2.toLowerCase()),
|
|
1115
1123
|
className: "py-2 flex flex-row w-1/2 justify-center items-center gap-1 z-10",
|
|
1116
1124
|
children: [
|
|
1117
|
-
/* @__PURE__ */ (0,
|
|
1125
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1118
1126
|
"span",
|
|
1119
1127
|
{
|
|
1120
1128
|
className: `truncate ${galleryMode === title2.toLowerCase() ? "text-primary dark:text-blue-400" : "text-slate-500 dark:text-slate-400 opacity-90"}`,
|
|
1121
1129
|
children: title2.toLocaleUpperCase()
|
|
1122
1130
|
}
|
|
1123
1131
|
),
|
|
1124
|
-
Icon2 ? /* @__PURE__ */ (0,
|
|
1132
|
+
Icon2 ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1125
1133
|
Icon2,
|
|
1126
1134
|
{
|
|
1127
1135
|
className: `h-5 w-5 ${galleryMode === title2.toLowerCase() ? "text-primary dark:text-blue-400" : "text-slate-500 dark:text-slate-400 opacity-90"}`
|
|
1128
1136
|
}
|
|
1129
|
-
) : /* @__PURE__ */ (0,
|
|
1137
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1130
1138
|
ArrowCircleRight_default,
|
|
1131
1139
|
{
|
|
1132
1140
|
className: `h-5 w-5 ${galleryMode === title2.toLowerCase() ? "text-primary dark:text-blue-400" : "text-slate-500 dark:text-slate-400 opacity-90"}`
|
|
@@ -1139,13 +1147,6 @@ var UserContentSwitcher = ({ icon1: Icon1, icon2: Icon2, setGalleryMode, gallery
|
|
|
1139
1147
|
};
|
|
1140
1148
|
var UserContentSwitcher_default = UserContentSwitcher;
|
|
1141
1149
|
|
|
1142
|
-
// src/Fade/Fade.tsx
|
|
1143
|
-
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1144
|
-
var Fade = ({ children, inProp }) => {
|
|
1145
|
-
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "animate-fade-in", children });
|
|
1146
|
-
};
|
|
1147
|
-
var Fade_default = Fade;
|
|
1148
|
-
|
|
1149
1150
|
// src/ProgressBar/ProgressBarSimple.tsx
|
|
1150
1151
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1151
1152
|
var ProgressBarSimple = ({ progress, color, height = 10, backgroundColor = "#ccc" }) => {
|
|
@@ -1261,7 +1262,7 @@ var CircleProgress_default = CircleProgress;
|
|
|
1261
1262
|
|
|
1262
1263
|
// src/ProgressBar/CourseProgress.tsx
|
|
1263
1264
|
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
1264
|
-
var
|
|
1265
|
+
var PRIMARY_COLOR2 = "#00b4d8";
|
|
1265
1266
|
var CourseProgress = ({ twColor, percentage, label }) => {
|
|
1266
1267
|
const cx = "50%";
|
|
1267
1268
|
const cy = "50%";
|
|
@@ -1289,7 +1290,7 @@ var CourseProgress = ({ twColor, percentage, label }) => {
|
|
|
1289
1290
|
"circle",
|
|
1290
1291
|
{
|
|
1291
1292
|
style: { strokeDashoffset },
|
|
1292
|
-
color: twColor ||
|
|
1293
|
+
color: twColor || PRIMARY_COLOR2,
|
|
1293
1294
|
ref: (ref) => {
|
|
1294
1295
|
if (ref) {
|
|
1295
1296
|
}
|
|
@@ -1363,7 +1364,7 @@ var CourseProgress_default = CourseProgress;
|
|
|
1363
1364
|
// src/ProgressBar/ScrollProgress.tsx
|
|
1364
1365
|
var import_react9 = require("react");
|
|
1365
1366
|
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
1366
|
-
var
|
|
1367
|
+
var PRIMARY_COLOR3 = "#00b4d8";
|
|
1367
1368
|
var ScrollProgress = () => {
|
|
1368
1369
|
const [scrollPercentage, setScrollPercentage] = (0, import_react9.useState)(0);
|
|
1369
1370
|
(0, import_react9.useEffect)(() => {
|
|
@@ -1397,7 +1398,7 @@ var ScrollProgress = () => {
|
|
|
1397
1398
|
{
|
|
1398
1399
|
style: {
|
|
1399
1400
|
height: "100%",
|
|
1400
|
-
backgroundColor:
|
|
1401
|
+
backgroundColor: PRIMARY_COLOR3,
|
|
1401
1402
|
borderRadius: 2,
|
|
1402
1403
|
width: `${scrollPercentage}%`
|
|
1403
1404
|
}
|
|
@@ -1547,9 +1548,6 @@ var OverlaySpinner = ({ visible }) => {
|
|
|
1547
1548
|
);
|
|
1548
1549
|
};
|
|
1549
1550
|
var OverlaySpinner_default = OverlaySpinner;
|
|
1550
|
-
|
|
1551
|
-
// src/constants.tsx
|
|
1552
|
-
var PRIMARY_COLOR3 = "#00b4d8";
|
|
1553
1551
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1554
1552
|
0 && (module.exports = {
|
|
1555
1553
|
AnimateLogo,
|