@goralys/ui 0.1.2 → 0.2.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.
Files changed (3) hide show
  1. package/dist/index.d.ts +75 -53
  2. package/dist/index.js +2040 -328
  3. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -227,7 +227,7 @@ function FloatingInput({
227
227
  /* @__PURE__ */ jsx6(
228
228
  "span",
229
229
  {
230
- className: "\n pointer-events-none\n absolute left-0 bottom-0 h-0.5 w-full\n origin-left\n bg-sky-500\n transition-transform duration-250\n group-focus-within:scale-x-100\n "
230
+ className: "\n pointer-events-none\n absolute left-0 bottom-0 h-0.5 w-full\n origin-left scale-x-0\n bg-sky-500\n transition-transform duration-250\n group-focus-within:scale-x-100\n "
231
231
  }
232
232
  ),
233
233
  /* @__PURE__ */ jsx6(
@@ -307,7 +307,7 @@ function AuditActionCard({ actions }) {
307
307
  import { buildApiUrl, fetchCsrfClient, goralysFetchClient, handleToastRequest, parsePhpDateTime as parsePhpDateTime2 } from "@goralys/core";
308
308
 
309
309
  // src/ui/toast/toast-provider.tsx
310
- import { createContext as createContext2, useCallback as useCallback2, useContext as useContext2, useEffect as useEffect4, useMemo as useMemo2, useState as useState4 } from "react";
310
+ import { createContext as createContext2, useCallback as useCallback2, useContext as useContext2, useEffect as useEffect4, useMemo as useMemo2, useRef, useState as useState4 } from "react";
311
311
 
312
312
  // src/ui/toast/toast-element.tsx
313
313
  import { clsx as clsx3 } from "clsx";
@@ -357,7 +357,11 @@ import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
357
357
  var ToastContext = createContext2(null);
358
358
  function ToastProvider({ children }) {
359
359
  const [toast, setToast] = useState4(null);
360
+ const toastRef = useRef(toast);
360
361
  const [visible, setVisible] = useState4(false);
362
+ useEffect4(() => {
363
+ toastRef.current = toast;
364
+ }, [toast]);
361
365
  const cacheToast = useCallback2((toastInput, duration = 5500) => {
362
366
  if (!toastInput.expires) toastInput.expires = Date.now() + duration;
363
367
  storageSet(FLASH_TOAST_KEY, JSON.stringify(toastInput));
@@ -366,12 +370,13 @@ function ToastProvider({ children }) {
366
370
  (toastInput, animate = true, duration = 5500) => {
367
371
  cacheToast(toastInput, duration);
368
372
  if (!toastInput.expires) toastInput.expires = Date.now() + duration;
369
- if (toastInput.expires === toast?.expires) return;
373
+ if (toastInput.expires === toastRef.current?.expires) return;
374
+ toastRef.current = toastInput;
370
375
  setToast(toastInput);
371
376
  setVisible(!animate);
372
377
  if (animate) requestAnimationFrame(() => setVisible(true));
373
378
  },
374
- [cacheToast, toast]
379
+ [cacheToast]
375
380
  );
376
381
  useEffect4(() => {
377
382
  if (!toast || !toast.expires) return;
@@ -403,10 +408,10 @@ import { createContext as createContext3, useCallback as useCallback3, useContex
403
408
  // src/ui/modals/confirm/confirm-element.tsx
404
409
  import { clsx as clsx4 } from "clsx";
405
410
  import { QuestionMarkCircleIcon } from "@heroicons/react/24/outline";
406
- import { useRef } from "react";
411
+ import { useRef as useRef2 } from "react";
407
412
  import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
408
413
  function ConfirmElement({ title, message, visible, onConfirmAction, onCancelAction }) {
409
- const modalRef = useRef(null);
414
+ const modalRef = useRef2(null);
410
415
  useModalClose(modalRef, visible, onCancelAction);
411
416
  return /* @__PURE__ */ jsxs7(
412
417
  "div",
@@ -556,11 +561,11 @@ import { createContext as createContext4, useCallback as useCallback4, useContex
556
561
  // src/ui/modals/password/password-modal-element.tsx
557
562
  import { LockClosedIcon } from "@heroicons/react/16/solid";
558
563
  import { clsx as clsx5 } from "clsx";
559
- import { useRef as useRef2, useState as useState6 } from "react";
564
+ import { useRef as useRef3, useState as useState6 } from "react";
560
565
  import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
561
566
  function PasswordModalElement({ visible, onConfirmAction, onCancelAction, onCloseModalAction, message }) {
562
567
  const [password, setPassword] = useState6("");
563
- const modalRef = useRef2(null);
568
+ const modalRef = useRef3(null);
564
569
  useModalClose(modalRef, visible, onCloseModalAction);
565
570
  const onConfirm = () => {
566
571
  onConfirmAction(password);
@@ -1176,14 +1181,14 @@ function CookieBanner() {
1176
1181
  }
1177
1182
 
1178
1183
  // src/ui/basic/goralys-logo-loader.tsx
1179
- import { useEffect as useEffect9, useRef as useRef3 } from "react";
1184
+ import { useEffect as useEffect9, useRef as useRef4 } from "react";
1180
1185
  import { LOGO_PATH } from "@goralys/core";
1181
1186
  import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
1182
1187
  function GoralysLogoLoader() {
1183
- const mainPathRef = useRef3(null);
1184
- const eyePathRef = useRef3(null);
1185
- const mainColorRef = useRef3(null);
1186
- const eyeColorRef = useRef3(null);
1188
+ const mainPathRef = useRef4(null);
1189
+ const eyePathRef = useRef4(null);
1190
+ const mainColorRef = useRef4(null);
1191
+ const eyeColorRef = useRef4(null);
1187
1192
  useEffect9(() => {
1188
1193
  [mainPathRef, eyePathRef, mainColorRef, eyeColorRef].forEach((ref) => {
1189
1194
  const path = ref.current;
@@ -1616,6 +1621,7 @@ import { ArrowDownTrayIcon } from "@heroicons/react/24/outline";
1616
1621
  import { jsx as jsx34, jsxs as jsxs29 } from "react/jsx-runtime";
1617
1622
  function SubjectInputTeacher({ id, label, helper, subjectData, onChangeAction }) {
1618
1623
  helper = getStatusHelper3(subjectData.status, "teacher");
1624
+ const { showToast } = useToast();
1619
1625
  const initialValue = subjectData.status == "rejected" ? subjectData.lastRejected ?? "" : subjectData.subject ?? "";
1620
1626
  const MAX_CHARS = 250;
1621
1627
  const handleOnChange = (e) => {
@@ -1625,6 +1631,14 @@ function SubjectInputTeacher({ id, label, helper, subjectData, onChangeAction })
1625
1631
  };
1626
1632
  const getDraft = () => {
1627
1633
  const cfg = getGoralysClientConfig();
1634
+ if (cfg.isNative) {
1635
+ showToast({
1636
+ type: "info",
1637
+ title: "Brouillon",
1638
+ message: "Veuillez utiliser un ordinateur pour t\xE9l\xE9charger le brouillon d'un \xE9l\xE8ve."
1639
+ });
1640
+ return;
1641
+ }
1628
1642
  window.location.href = buildApiUrl2(
1629
1643
  "subjects/draft",
1630
1644
  {
@@ -1778,12 +1792,12 @@ import { createContext as createContext5, useCallback as useCallback5, useContex
1778
1792
 
1779
1793
  // src/ui/modals/drafts/draft-modal-element.tsx
1780
1794
  import { clsx as clsx10 } from "clsx";
1781
- import { useRef as useRef4, useState as useState18 } from "react";
1795
+ import { useRef as useRef5, useState as useState18 } from "react";
1782
1796
  import { QuestionMarkCircleIcon as QuestionMarkCircleIcon2 } from "@heroicons/react/24/outline";
1783
1797
  import { jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
1784
1798
  function DraftModalElement({ visible, onChooseDraftAction, onCancelAction, onCloseModalAction }) {
1785
1799
  const [draftFile, setDraftFile] = useState18(null);
1786
- const modalRef = useRef4(null);
1800
+ const modalRef = useRef5(null);
1787
1801
  useModalClose(modalRef, visible, onCloseModalAction);
1788
1802
  const onConfirm = () => {
1789
1803
  onChooseDraftAction(draftFile);
@@ -1902,12 +1916,12 @@ import { createContext as createContext6, useCallback as useCallback6, useContex
1902
1916
 
1903
1917
  // src/ui/modals/import-topics/import-topics-modal-element.tsx
1904
1918
  import { clsx as clsx11 } from "clsx";
1905
- import { useRef as useRef5, useState as useState20 } from "react";
1919
+ import { useRef as useRef6, useState as useState20 } from "react";
1906
1920
  import { QuestionMarkCircleIcon as QuestionMarkCircleIcon3 } from "@heroicons/react/24/outline";
1907
1921
  import { jsx as jsx38, jsxs as jsxs33 } from "react/jsx-runtime";
1908
1922
  function ImportTopicsModalElement({ visible, onImportTopicsAction, onCancelAction, onCloseModalAction }) {
1909
1923
  const [topicsFile, setTopicsFile] = useState20(null);
1910
- const modalRef = useRef5(null);
1924
+ const modalRef = useRef6(null);
1911
1925
  useModalClose(modalRef, visible, onCloseModalAction);
1912
1926
  const onConfirm = () => {
1913
1927
  onImportTopicsAction(topicsFile);
@@ -2026,12 +2040,12 @@ import { createContext as createContext7, useCallback as useCallback7, useContex
2026
2040
 
2027
2041
  // src/ui/modals/email/email-modal-element.tsx
2028
2042
  import { clsx as clsx12 } from "clsx";
2029
- import { useRef as useRef6, useState as useState22 } from "react";
2043
+ import { useRef as useRef7, useState as useState22 } from "react";
2030
2044
  import { AtSymbolIcon } from "@heroicons/react/24/outline";
2031
2045
  import { jsx as jsx40, jsxs as jsxs35 } from "react/jsx-runtime";
2032
2046
  function EmailModalElement({ visible, onConfirmAction, onCancelAction, onCloseModalAction, message }) {
2033
2047
  const [email, setEmail] = useState22("");
2034
- const modalRef = useRef6(null);
2048
+ const modalRef = useRef7(null);
2035
2049
  useModalClose(modalRef, visible, onCloseModalAction);
2036
2050
  const onConfirm = () => {
2037
2051
  onConfirmAction(email);
@@ -2163,31 +2177,150 @@ function useEmailModal() {
2163
2177
  return context;
2164
2178
  }
2165
2179
 
2180
+ // src/ui/modals/auth-token/confirm-token-provider.tsx
2181
+ import { createContext as createContext8, useCallback as useCallback8, useContext as useContext8, useMemo as useMemo8, useState as useState25 } from "react";
2182
+ import { createPortal as createPortal7 } from "react-dom";
2183
+
2184
+ // src/ui/modals/auth-token/confirm-token-element.tsx
2185
+ import { clsx as clsx13 } from "clsx";
2186
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon4 } from "@heroicons/react/24/outline";
2187
+ import { useRef as useRef8, useState as useState24 } from "react";
2188
+ import { jsx as jsx42, jsxs as jsxs37 } from "react/jsx-runtime";
2189
+ function ConfirmTokenElement({ savedUsername, visible, onConfirmAction, onCancelAction }) {
2190
+ const [doNotAskAgain, setDoNotAskAgain] = useState24(true);
2191
+ const modalRef = useRef8(null);
2192
+ useModalClose(modalRef, visible, onCancelAction);
2193
+ return /* @__PURE__ */ jsxs37(
2194
+ "div",
2195
+ {
2196
+ ref: modalRef,
2197
+ className: clsx13(
2198
+ "fixed flex flex-col gap-2 p-3 sm:w-115 w-96 bg-sky-200 rounded shadow overflow-hidden left-1/2 -translate-x-1/2 top-1 ",
2199
+ "after:absolute after:left-0 after:top-0 after:h-full after:w-1.25 after:content-[''] after:bg-blue-500",
2200
+ "transition-all duration-500 z-50 ",
2201
+ {
2202
+ "translate-y-0 opacity-100": visible,
2203
+ "-translate-y-5 opacity-0": !visible
2204
+ }
2205
+ ),
2206
+ role: "dialog",
2207
+ "aria-modal": "true",
2208
+ children: [
2209
+ /* @__PURE__ */ jsxs37("div", { className: "flex gap-3", children: [
2210
+ /* @__PURE__ */ jsx42("div", { className: "w-11 h-11 flex self-center items-center justify-center", children: /* @__PURE__ */ jsx42(QuestionMarkCircleIcon4, { className: "size-15 text-blue-500" }) }),
2211
+ /* @__PURE__ */ jsxs37("div", { className: "flex flex-col justify-center flex-1", children: [
2212
+ /* @__PURE__ */ jsx42("strong", { className: "text-md", children: "Connexion" }),
2213
+ /* @__PURE__ */ jsxs37("span", { className: "text-sm", children: [
2214
+ "Voulez-vous utiliser le compte sauvegard\xE9 (",
2215
+ savedUsername,
2216
+ ") pour vous connecter ?"
2217
+ ] })
2218
+ ] })
2219
+ ] }),
2220
+ /* @__PURE__ */ jsx42(Checkbox, { label: "Ne plus me demander", setValueAction: setDoNotAskAgain, defaultValue: doNotAskAgain }),
2221
+ /* @__PURE__ */ jsxs37("div", { className: "flex justify-between gap-2 mt-2", children: [
2222
+ /* @__PURE__ */ jsx42(
2223
+ Button,
2224
+ {
2225
+ className: "bg-gray-400! before:bg-gray-500! text-white! border-none! shadow-none! mt-0! mb-0! w-25!",
2226
+ text: "Annuler",
2227
+ type: "button",
2228
+ onClick: onCancelAction
2229
+ }
2230
+ ),
2231
+ /* @__PURE__ */ jsx42(
2232
+ Button,
2233
+ {
2234
+ className: "bg-blue-500! before:bg-blue-600! text-white! border-none! shadow-none! mt-0! mb-0! w-25!",
2235
+ text: "Confirmer",
2236
+ type: "button",
2237
+ onClick: () => onConfirmAction(!doNotAskAgain)
2238
+ }
2239
+ )
2240
+ ] })
2241
+ ]
2242
+ }
2243
+ );
2244
+ }
2245
+
2246
+ // src/ui/modals/auth-token/confirm-token-provider.tsx
2247
+ import { jsx as jsx43, jsxs as jsxs38 } from "react/jsx-runtime";
2248
+ var ConfirmTokenContext = createContext8(null);
2249
+ function ConfirmTokenProvider({ children }) {
2250
+ const [confirmState, setConfirmState] = useState25(null);
2251
+ const [visible, setVisible] = useState25(false);
2252
+ const showConfirmToken = useCallback8((username) => {
2253
+ return new Promise((resolve) => {
2254
+ setConfirmState({ username, resolve });
2255
+ setVisible(false);
2256
+ requestAnimationFrame(() => setVisible(true));
2257
+ });
2258
+ }, []);
2259
+ function handleConfirm(askAgain) {
2260
+ setVisible(false);
2261
+ setTimeout(() => {
2262
+ confirmState?.resolve({ confirm: true, askAgain });
2263
+ setConfirmState(null);
2264
+ }, 500);
2265
+ }
2266
+ function handleCancel() {
2267
+ setVisible(false);
2268
+ setTimeout(() => {
2269
+ confirmState?.resolve({ confirm: false, askAgain: false });
2270
+ setConfirmState(null);
2271
+ }, 500);
2272
+ }
2273
+ const value = useMemo8(() => ({ showConfirmToken }), [showConfirmToken]);
2274
+ return /* @__PURE__ */ jsxs38(ConfirmTokenContext.Provider, { value, children: [
2275
+ children,
2276
+ confirmState && typeof document !== "undefined" && createPortal7(
2277
+ /* @__PURE__ */ jsx43("div", { className: "fixed inset-0 z-40 bg-black/20 backdrop-blur-sm", children: /* @__PURE__ */ jsx43(
2278
+ ConfirmTokenElement,
2279
+ {
2280
+ savedUsername: confirmState.username,
2281
+ visible,
2282
+ onConfirmAction: handleConfirm,
2283
+ onCancelAction: handleCancel
2284
+ }
2285
+ ) }),
2286
+ document.getElementById("confirm-token-root")
2287
+ )
2288
+ ] });
2289
+ }
2290
+ function useConfirmToken() {
2291
+ const context = useContext8(ConfirmTokenContext);
2292
+ if (!context) {
2293
+ throw new Error("useConfirmToken must be used within a ConfirmTokenProvider");
2294
+ }
2295
+ return context;
2296
+ }
2297
+
2166
2298
  // src/ui/modals/providers.tsx
2167
- import { Fragment as Fragment6, jsx as jsx42, jsxs as jsxs37 } from "react/jsx-runtime";
2299
+ import { Fragment as Fragment6, jsx as jsx44, jsxs as jsxs39 } from "react/jsx-runtime";
2168
2300
  function Providers({ children }) {
2169
- return /* @__PURE__ */ jsxs37(Fragment6, { children: [
2170
- /* @__PURE__ */ jsx42("div", { id: "toast-root" }),
2171
- /* @__PURE__ */ jsx42("div", { id: "confirm-root" }),
2172
- /* @__PURE__ */ jsx42("div", { id: "draft-modal-root" }),
2173
- /* @__PURE__ */ jsx42("div", { id: "import-topics-modal-root" }),
2174
- /* @__PURE__ */ jsx42("div", { id: "password-modal-root" }),
2175
- /* @__PURE__ */ jsx42("div", { id: "email-modal-root" }),
2176
- /* @__PURE__ */ jsx42(ToastProvider, { children: /* @__PURE__ */ jsx42(ConfirmProvider, { children: /* @__PURE__ */ jsx42(DraftModalProvider, { children: /* @__PURE__ */ jsx42(ImportTopicsModalProvider, { children: /* @__PURE__ */ jsx42(EmailModalProvider, { children: /* @__PURE__ */ jsx42(PasswordModalProvider, { children }) }) }) }) }) })
2301
+ return /* @__PURE__ */ jsxs39(Fragment6, { children: [
2302
+ /* @__PURE__ */ jsx44("div", { id: "toast-root" }),
2303
+ /* @__PURE__ */ jsx44("div", { id: "confirm-root" }),
2304
+ /* @__PURE__ */ jsx44("div", { id: "confirm-token-root" }),
2305
+ /* @__PURE__ */ jsx44("div", { id: "draft-modal-root" }),
2306
+ /* @__PURE__ */ jsx44("div", { id: "import-topics-modal-root" }),
2307
+ /* @__PURE__ */ jsx44("div", { id: "password-modal-root" }),
2308
+ /* @__PURE__ */ jsx44("div", { id: "email-modal-root" }),
2309
+ /* @__PURE__ */ jsx44(ToastProvider, { children: /* @__PURE__ */ jsx44(ConfirmProvider, { children: /* @__PURE__ */ jsx44(ConfirmTokenProvider, { children: /* @__PURE__ */ jsx44(DraftModalProvider, { children: /* @__PURE__ */ jsx44(ImportTopicsModalProvider, { children: /* @__PURE__ */ jsx44(EmailModalProvider, { children: /* @__PURE__ */ jsx44(PasswordModalProvider, { children }) }) }) }) }) }) })
2177
2310
  ] });
2178
2311
  }
2179
2312
 
2180
2313
  // src/ui/nav/desktop/nav-link.tsx
2181
- import { clsx as clsx13 } from "clsx";
2182
- import { jsx as jsx43 } from "react/jsx-runtime";
2314
+ import { clsx as clsx14 } from "clsx";
2315
+ import { jsx as jsx45 } from "react/jsx-runtime";
2183
2316
  function NavLink({ name, url, exact = false }) {
2184
2317
  const Link = useGoralysUI().Link;
2185
2318
  const current = useGoralysUI().usePathname();
2186
2319
  const isActive = exact || url === "/" ? current === url : current === url || current.startsWith(`${url}/`);
2187
- return /* @__PURE__ */ jsx43(
2320
+ return /* @__PURE__ */ jsx45(
2188
2321
  Link,
2189
2322
  {
2190
- className: clsx13(
2323
+ className: clsx14(
2191
2324
  "hover:bg-sky-200 h-12.5 w-full items-center flex flex-row hover:text-sky-600 left-1 rounded-md transition-colors p-2",
2192
2325
  {
2193
2326
  "bg-sky-200 text-sky-600": isActive,
@@ -2201,15 +2334,15 @@ function NavLink({ name, url, exact = false }) {
2201
2334
  }
2202
2335
 
2203
2336
  // src/ui/nav/desktop/user-nav.tsx
2204
- import { useEffect as useEffect10, useState as useState24 } from "react";
2337
+ import { useEffect as useEffect10, useState as useState26 } from "react";
2205
2338
  import { cookiesGet as cookiesGet3, emptyUserCacheClient, FULL_NAME_KEY, onUserEvent, USERNAME_KEY } from "@goralys/core";
2206
2339
  import { UserCircleIcon } from "@heroicons/react/24/outline";
2207
- import clsx14 from "clsx";
2208
- import { jsx as jsx44, jsxs as jsxs38 } from "react/jsx-runtime";
2340
+ import clsx15 from "clsx";
2341
+ import { jsx as jsx46, jsxs as jsxs40 } from "react/jsx-runtime";
2209
2342
  function UserNav() {
2210
2343
  const Link = useGoralysUI().Link;
2211
- const [text, setText] = useState24(null);
2212
- const [loggedIn, setLoggedIn] = useState24(false);
2344
+ const [text, setText] = useState26(null);
2345
+ const [loggedIn, setLoggedIn] = useState26(false);
2213
2346
  const current = useGoralysUI().usePathname();
2214
2347
  const targetUrl = loggedIn ? "/user/me" : "/user/login";
2215
2348
  const isActive = current === targetUrl || current.startsWith(`${targetUrl}/`);
@@ -2238,10 +2371,10 @@ function UserNav() {
2238
2371
  unsubscribe?.();
2239
2372
  };
2240
2373
  }, []);
2241
- return /* @__PURE__ */ jsxs38(
2374
+ return /* @__PURE__ */ jsxs40(
2242
2375
  Link,
2243
2376
  {
2244
- className: clsx14(
2377
+ className: clsx15(
2245
2378
  "h-12.5 w-full flex items-center gap-2 rounded-md transition-colors p-1.5",
2246
2379
  "hover:bg-sky-200 hover:text-sky-600",
2247
2380
  {
@@ -2251,7 +2384,7 @@ function UserNav() {
2251
2384
  ),
2252
2385
  href: targetUrl,
2253
2386
  children: [
2254
- loggedIn && /* @__PURE__ */ jsx44(UserCircleIcon, { width: 27.5, className: "-mr-1.25" }),
2387
+ loggedIn && /* @__PURE__ */ jsx46(UserCircleIcon, { width: 27.5, className: "-mr-1.25" }),
2255
2388
  text
2256
2389
  ]
2257
2390
  }
@@ -2259,12 +2392,12 @@ function UserNav() {
2259
2392
  }
2260
2393
 
2261
2394
  // src/ui/nav/desktop/side-nav.tsx
2262
- import { useEffect as useEffect11, useState as useState25 } from "react";
2395
+ import { useEffect as useEffect11, useState as useState27 } from "react";
2263
2396
  import { buildArray, cookiesGet as cookiesGet4, cookiesOnChange, ROLE_KEY, USER_ROLES } from "@goralys/core";
2264
- import { jsx as jsx45, jsxs as jsxs39 } from "react/jsx-runtime";
2397
+ import { jsx as jsx47, jsxs as jsxs41 } from "react/jsx-runtime";
2265
2398
  function SideNav() {
2266
2399
  const Image = useGoralysUI().Image;
2267
- const [role, setRole] = useState25("none");
2400
+ const [role, setRole] = useState27("none");
2268
2401
  useEffect11(() => {
2269
2402
  const run = () => {
2270
2403
  const current = cookiesGet4(ROLE_KEY) ?? "none";
@@ -2296,8 +2429,8 @@ function SideNav() {
2296
2429
  role == "admin" && { name: "Acc\xE8s", url: "/admin/admins" },
2297
2430
  role == "admin" && { name: "Support", url: "/support" }
2298
2431
  );
2299
- return /* @__PURE__ */ jsxs39("div", { className: "min-w-50 w-55 h-auto min-h-screen fixed top-0 flex flex-col m-0 p-2 rounded-xl", children: [
2300
- /* @__PURE__ */ jsx45("div", { className: "flex rounded-md min-w-full h-25 bg-sky-500 mb-2 p-4", children: /* @__PURE__ */ jsx45(
2432
+ return /* @__PURE__ */ jsxs41("div", { className: "min-w-50 w-55 h-auto min-h-screen fixed top-0 flex flex-col m-0 p-2 rounded-xl", children: [
2433
+ /* @__PURE__ */ jsx47("div", { className: "flex rounded-md min-w-full h-25 bg-sky-500 mb-2 p-4", children: /* @__PURE__ */ jsx47(
2301
2434
  Image,
2302
2435
  {
2303
2436
  src: "/logo/goralys-logo.svg",
@@ -2309,31 +2442,32 @@ function SideNav() {
2309
2442
  className: "-ml-3 self-center w-auto h-auto"
2310
2443
  }
2311
2444
  ) }),
2312
- /* @__PURE__ */ jsx45("div", { className: "flex flex-col gap-2", children: links.map((link) => /* @__PURE__ */ jsx45(NavLink, { name: link.name, url: link.url }, link.url)) }),
2313
- /* @__PURE__ */ jsx45("div", { className: "grow bg-gray-100 rounded-xl my-3" }),
2314
- /* @__PURE__ */ jsx45(NavLink, { name: "Centre d'Aide", url: "/help" }, "/help"),
2315
- /* @__PURE__ */ jsx45(UserNav, {})
2445
+ /* @__PURE__ */ jsx47("div", { className: "flex flex-col gap-2", children: links.map((link) => /* @__PURE__ */ jsx47(NavLink, { name: link.name, url: link.url }, link.url)) }),
2446
+ /* @__PURE__ */ jsx47("div", { className: "grow bg-gray-100 rounded-xl my-3" }),
2447
+ /* @__PURE__ */ jsx47(NavLink, { name: "Centre d'Aide", url: "/help" }, "/help"),
2448
+ /* @__PURE__ */ jsx47(UserNav, {})
2316
2449
  ] });
2317
2450
  }
2318
2451
 
2319
2452
  // src/ui/nav/mobile/tap-bar.tsx
2320
- import { buildArray as buildArray2 } from "@goralys/core";
2453
+ import { useEffect as useEffect13, useState as useState29 } from "react";
2454
+ import { buildArray as buildArray2, cookiesGet as cookiesGet6, cookiesOnChange as cookiesOnChange2, ROLE_KEY as ROLE_KEY2, USER_ROLES as USER_ROLES2 } from "@goralys/core";
2321
2455
  import { AcademicCapIcon as AcademicCapIcon2, HomeIcon } from "@heroicons/react/24/outline";
2322
2456
 
2323
2457
  // src/ui/nav/mobile/tap-bar-link.tsx
2324
- import { clsx as clsx15 } from "clsx";
2325
- import { jsx as jsx46, jsxs as jsxs40 } from "react/jsx-runtime";
2458
+ import { clsx as clsx16 } from "clsx";
2459
+ import { jsx as jsx48, jsxs as jsxs42 } from "react/jsx-runtime";
2326
2460
  function TapBarLink({ name, url, icon: Icon, exact = false }) {
2327
2461
  const Link = useGoralysUI().Link;
2328
2462
  const current = useGoralysUI().usePathname();
2329
2463
  const isActive = exact || url === "/" ? current === url : current === url || current.startsWith(`${url}/`);
2330
- return /* @__PURE__ */ jsxs40(Link, { className: "flex flex-col w-15 items-center", href: url, children: [
2331
- /* @__PURE__ */ jsx46(Icon, { className: "w-6 h-6 relative top-1" }),
2332
- /* @__PURE__ */ jsx46("p", { className: "text-sm", children: name }),
2333
- /* @__PURE__ */ jsx46(
2464
+ return /* @__PURE__ */ jsxs42(Link, { className: "flex flex-col w-20 items-center", href: url, children: [
2465
+ /* @__PURE__ */ jsx48(Icon, { className: "w-6 h-6 relative top-1" }),
2466
+ /* @__PURE__ */ jsx48("p", { className: "text-sm", children: name }),
2467
+ /* @__PURE__ */ jsx48(
2334
2468
  "span",
2335
2469
  {
2336
- className: clsx15("relative bottom-0 w-full h-0.5", {
2470
+ className: clsx16("relative bottom-0 w-full h-0.5", {
2337
2471
  "bg-sky-400": isActive,
2338
2472
  "bg-sky-200": !isActive
2339
2473
  })
@@ -2343,15 +2477,15 @@ function TapBarLink({ name, url, icon: Icon, exact = false }) {
2343
2477
  }
2344
2478
 
2345
2479
  // src/ui/nav/mobile/tap-bar-user.tsx
2346
- import { useEffect as useEffect12, useState as useState26 } from "react";
2480
+ import { useEffect as useEffect12, useState as useState28 } from "react";
2347
2481
  import { cookiesGet as cookiesGet5, emptyUserCacheClient as emptyUserCacheClient2, onUserEvent as onUserEvent2, USERNAME_KEY as USERNAME_KEY2 } from "@goralys/core";
2348
2482
  import { UserCircleIcon as UserCircleIcon2 } from "@heroicons/react/24/outline";
2349
- import clsx16 from "clsx";
2350
- import { jsx as jsx47, jsxs as jsxs41 } from "react/jsx-runtime";
2483
+ import clsx17 from "clsx";
2484
+ import { jsx as jsx49, jsxs as jsxs43 } from "react/jsx-runtime";
2351
2485
  function TapBarUser() {
2352
2486
  const Link = useGoralysUI().Link;
2353
- const [text, setText] = useState26(null);
2354
- const [loggedIn, setLoggedIn] = useState26(false);
2487
+ const [text, setText] = useState28(null);
2488
+ const [loggedIn, setLoggedIn] = useState28(false);
2355
2489
  const current = useGoralysUI().usePathname();
2356
2490
  const targetUrl = loggedIn ? "/user/me" : "/user/login";
2357
2491
  const isActive = current === targetUrl || current.startsWith(`${targetUrl}/`);
@@ -2376,13 +2510,13 @@ function TapBarUser() {
2376
2510
  unsubscribe?.();
2377
2511
  };
2378
2512
  }, []);
2379
- return /* @__PURE__ */ jsxs41(Link, { className: "flex flex-col w-20 items-center", href: targetUrl, children: [
2380
- /* @__PURE__ */ jsx47(UserCircleIcon2, { className: "w-6 h-6 relative top-1" }),
2381
- /* @__PURE__ */ jsx47("p", { className: "text-sm", children: text }),
2382
- /* @__PURE__ */ jsx47(
2513
+ return /* @__PURE__ */ jsxs43(Link, { className: "flex flex-col w-20 items-center", href: targetUrl, children: [
2514
+ /* @__PURE__ */ jsx49(UserCircleIcon2, { className: "w-6 h-6 relative top-1" }),
2515
+ /* @__PURE__ */ jsx49("p", { className: "text-sm", children: text }),
2516
+ /* @__PURE__ */ jsx49(
2383
2517
  "span",
2384
2518
  {
2385
- className: clsx16("relative bottom-0 w-full h-0.5", {
2519
+ className: clsx17("relative bottom-0 w-full h-0.5", {
2386
2520
  "bg-sky-400": isActive,
2387
2521
  "bg-sky-200": !isActive
2388
2522
  })
@@ -2392,175 +2526,201 @@ function TapBarUser() {
2392
2526
  }
2393
2527
 
2394
2528
  // src/ui/nav/mobile/tap-bar.tsx
2395
- import { jsx as jsx48, jsxs as jsxs42 } from "react/jsx-runtime";
2529
+ import { jsx as jsx50, jsxs as jsxs44 } from "react/jsx-runtime";
2396
2530
  function TapBar() {
2397
- const links = buildArray2(
2398
- { name: "Accueil", url: "/", icon: HomeIcon },
2399
- { name: "Sujets", url: "/subject", icon: AcademicCapIcon2 }
2400
- );
2401
- return /* @__PURE__ */ jsxs42("div", { className: "z-50 fixed bottom-0 w-full h-12 bg-white flex flex-row content-center justify-evenly", children: [
2402
- links.map((l) => /* @__PURE__ */ jsx48(TapBarLink, { name: l.name, url: l.url, icon: l.icon }, l.url)),
2403
- /* @__PURE__ */ jsx48(TapBarUser, {})
2531
+ const [role, setRole] = useState29("none");
2532
+ useEffect13(() => {
2533
+ const run = () => {
2534
+ const current = cookiesGet6(ROLE_KEY2) ?? "none";
2535
+ setRole(USER_ROLES2.includes(current) ? current : "none");
2536
+ };
2537
+ const onChange = () => {
2538
+ const role2 = cookiesGet6(ROLE_KEY2) ?? "none";
2539
+ setRole(USER_ROLES2.includes(role2) ? role2 : "none");
2540
+ };
2541
+ run();
2542
+ return cookiesOnChange2(onChange);
2543
+ }, []);
2544
+ function getSubjectLinkText() {
2545
+ switch (role) {
2546
+ case "student":
2547
+ return "Mes Questions";
2548
+ case "teacher":
2549
+ return "Mes \xC9l\xE8ves";
2550
+ case "admin":
2551
+ return "Questions";
2552
+ case "none":
2553
+ return "Mon Espace";
2554
+ }
2555
+ }
2556
+ const links = buildArray2(!useGoralysUI().isMobile && { name: "Accueil", url: "/", icon: HomeIcon }, {
2557
+ name: getSubjectLinkText(),
2558
+ url: "/subject",
2559
+ icon: AcademicCapIcon2
2560
+ });
2561
+ return /* @__PURE__ */ jsxs44("div", { className: "z-50 fixed bottom-0 w-full h-12 bg-white flex flex-row content-center justify-evenly", children: [
2562
+ links.map((l) => /* @__PURE__ */ jsx50(TapBarLink, { name: l.name, url: l.url, icon: l.icon }, l.url)),
2563
+ /* @__PURE__ */ jsx50(TapBarUser, {})
2404
2564
  ] });
2405
2565
  }
2406
2566
 
2407
2567
  // src/ui/nav/dynamic-nav.tsx
2408
- import { jsx as jsx49 } from "react/jsx-runtime";
2568
+ import { jsx as jsx51 } from "react/jsx-runtime";
2409
2569
  function DynamicNav() {
2410
2570
  const isDesktop = useMediaQuery("(min-width: 640px)");
2411
- return isDesktop ? /* @__PURE__ */ jsx49(SideNav, {}) : /* @__PURE__ */ jsx49(TapBar, {});
2571
+ return isDesktop ? /* @__PURE__ */ jsx51(SideNav, {}) : /* @__PURE__ */ jsx51(TapBar, {});
2412
2572
  }
2413
2573
 
2414
2574
  // src/ui/skeletons/button.tsx
2415
- import { jsx as jsx50 } from "react/jsx-runtime";
2575
+ import { jsx as jsx52 } from "react/jsx-runtime";
2416
2576
  function ButtonSkeleton({ className }) {
2417
- return /* @__PURE__ */ jsx50("div", { className: `skeleton w-full h-10 mt-2 mb-2 rounded-xs ${className ?? ""}` });
2577
+ return /* @__PURE__ */ jsx52("div", { className: `skeleton w-full h-10 mt-2 mb-2 rounded-xs ${className ?? ""}` });
2418
2578
  }
2419
2579
 
2420
2580
  // src/ui/skeletons/admin-panel/admin-card.tsx
2421
- import { jsx as jsx51, jsxs as jsxs43 } from "react/jsx-runtime";
2581
+ import { jsx as jsx53, jsxs as jsxs45 } from "react/jsx-runtime";
2422
2582
  function AdminPanelCardSkeleton() {
2423
- return /* @__PURE__ */ jsx51(Card, { className: "flex-col w-175! bg-sky-200 gap-1 p-1 mb-1 mt-1", children: /* @__PURE__ */ jsxs43("div", { className: "flex flex-row justify-between items-center", children: [
2424
- /* @__PURE__ */ jsxs43("div", { className: "flex flex-row", children: [
2425
- /* @__PURE__ */ jsx51("div", { className: "skeleton h-7 w-7 rounded-xs mr-1.5" }),
2426
- /* @__PURE__ */ jsx51("div", { className: "skeleton h-5 w-48 rounded-xs self-center" })
2583
+ return /* @__PURE__ */ jsx53(Card, { className: "flex-col w-175! bg-sky-200 gap-1 p-1 mb-1 mt-1", children: /* @__PURE__ */ jsxs45("div", { className: "flex flex-row justify-between items-center", children: [
2584
+ /* @__PURE__ */ jsxs45("div", { className: "flex flex-row", children: [
2585
+ /* @__PURE__ */ jsx53("div", { className: "skeleton h-7 w-7 rounded-xs mr-1.5" }),
2586
+ /* @__PURE__ */ jsx53("div", { className: "skeleton h-5 w-48 rounded-xs self-center" })
2427
2587
  ] }),
2428
- /* @__PURE__ */ jsx51("div", { className: "flex flex-row w-50 gap-1", children: /* @__PURE__ */ jsx51(ButtonSkeleton, { className: "w-50!" }) })
2588
+ /* @__PURE__ */ jsx53("div", { className: "flex flex-row w-50 gap-1", children: /* @__PURE__ */ jsx53(ButtonSkeleton, { className: "w-50!" }) })
2429
2589
  ] }) });
2430
2590
  }
2431
2591
 
2432
2592
  // src/ui/skeletons/admin-panel/audit-action-card.tsx
2433
- import clsx17 from "clsx";
2434
- import { jsx as jsx52, jsxs as jsxs44 } from "react/jsx-runtime";
2593
+ import clsx18 from "clsx";
2594
+ import { jsx as jsx54, jsxs as jsxs46 } from "react/jsx-runtime";
2435
2595
  var ROWS = ["w-40", "w-56", "w-32", "w-48", "w-36"];
2436
2596
  function AuditActionCardSkeleton() {
2437
- return /* @__PURE__ */ jsxs44(Card, { className: "flex flex-col grow bg-sky-200 m-2", children: [
2438
- /* @__PURE__ */ jsx52(CardTitle, { title: "Actions" }),
2439
- ROWS.map((width, i) => /* @__PURE__ */ jsxs44("div", { className: "w-full h-5 flex flex-row items-center", children: [
2440
- /* @__PURE__ */ jsx52("div", { className: "skeleton h-3 w-28 rounded-xs shrink-0 mr-2" }),
2441
- /* @__PURE__ */ jsx52("div", { className: clsx17("skeleton h-4 rounded-xs", width) })
2597
+ return /* @__PURE__ */ jsxs46(Card, { className: "flex flex-col grow bg-sky-200 m-2", children: [
2598
+ /* @__PURE__ */ jsx54(CardTitle, { title: "Actions" }),
2599
+ ROWS.map((width, i) => /* @__PURE__ */ jsxs46("div", { className: "w-full h-5 flex flex-row items-center", children: [
2600
+ /* @__PURE__ */ jsx54("div", { className: "skeleton h-3 w-28 rounded-xs shrink-0 mr-2" }),
2601
+ /* @__PURE__ */ jsx54("div", { className: clsx18("skeleton h-4 rounded-xs", width) })
2442
2602
  ] }, i))
2443
2603
  ] });
2444
2604
  }
2445
2605
 
2446
2606
  // src/ui/skeletons/admin-panel/user-card.tsx
2447
- import { jsx as jsx53, jsxs as jsxs45 } from "react/jsx-runtime";
2607
+ import { jsx as jsx55, jsxs as jsxs47 } from "react/jsx-runtime";
2448
2608
  function UserCardSkeleton() {
2449
- return /* @__PURE__ */ jsx53(Card, { className: "flex-col w-200! bg-sky-200 gap-1 p-1 mb-1 mt-1", children: /* @__PURE__ */ jsxs45("div", { className: "flex flex-row justify-between items-center", children: [
2450
- /* @__PURE__ */ jsxs45("div", { className: "flex flex-row", children: [
2451
- /* @__PURE__ */ jsx53("div", { className: "skeleton h-7 w-7 rounded-xs mr-1.5" }),
2452
- /* @__PURE__ */ jsx53("div", { className: "skeleton h-5 w-48 rounded-xs self-center" })
2609
+ return /* @__PURE__ */ jsx55(Card, { className: "flex-col w-200! bg-sky-200 gap-1 p-1 mb-1 mt-1", children: /* @__PURE__ */ jsxs47("div", { className: "flex flex-row justify-between items-center", children: [
2610
+ /* @__PURE__ */ jsxs47("div", { className: "flex flex-row", children: [
2611
+ /* @__PURE__ */ jsx55("div", { className: "skeleton h-7 w-7 rounded-xs mr-1.5" }),
2612
+ /* @__PURE__ */ jsx55("div", { className: "skeleton h-5 w-48 rounded-xs self-center" })
2453
2613
  ] }),
2454
- /* @__PURE__ */ jsx53("div", { className: "flex flex-row w-50 gap-1", children: /* @__PURE__ */ jsx53(ButtonSkeleton, { className: "w-50!" }) })
2614
+ /* @__PURE__ */ jsx55("div", { className: "flex flex-row w-50 gap-1", children: /* @__PURE__ */ jsx55(ButtonSkeleton, { className: "w-50!" }) })
2455
2615
  ] }) });
2456
2616
  }
2457
2617
 
2458
2618
  // src/ui/skeletons/admin-panel/subjects/user-subjects-teacher-card.tsx
2459
- import { jsx as jsx54, jsxs as jsxs46 } from "react/jsx-runtime";
2619
+ import { jsx as jsx56, jsxs as jsxs48 } from "react/jsx-runtime";
2460
2620
  function UserSubjectsTeacherCardSkeleton() {
2461
- return /* @__PURE__ */ jsxs46(Card, { className: "flex flex-col grow bg-sky-200 m-2", children: [
2462
- /* @__PURE__ */ jsx54(CardTitle, { title: "Sujets" }),
2463
- /* @__PURE__ */ jsxs46(Card, { className: "flex flex-row w-full", children: [
2464
- /* @__PURE__ */ jsx54("div", { className: "skeleton h-48 w-48 rounded-full shrink-0 mr-2 relative", children: /* @__PURE__ */ jsx54("div", { className: "absolute inset-[15%] rounded-full bg-sky-200" }) }),
2465
- /* @__PURE__ */ jsx54("span", { className: "basis-1/6 grow-0 shrink min-w-0" }),
2466
- /* @__PURE__ */ jsx54("ul", { className: "flex flex-col gap-1 self-center mr-10", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ jsxs46("li", { className: "flex items-center gap-2", children: [
2467
- /* @__PURE__ */ jsx54("div", { className: "skeleton h-2.5 w-2.5 rounded-full shrink-0" }),
2468
- /* @__PURE__ */ jsx54("div", { className: "skeleton h-4 w-16 rounded-xs" }),
2469
- /* @__PURE__ */ jsx54("div", { className: "skeleton h-4 w-10 rounded-xs ml-auto" })
2621
+ return /* @__PURE__ */ jsxs48(Card, { className: "flex flex-col grow bg-sky-200 m-2", children: [
2622
+ /* @__PURE__ */ jsx56(CardTitle, { title: "Sujets" }),
2623
+ /* @__PURE__ */ jsxs48(Card, { className: "flex flex-row w-full", children: [
2624
+ /* @__PURE__ */ jsx56("div", { className: "skeleton h-48 w-48 rounded-full shrink-0 mr-2 relative", children: /* @__PURE__ */ jsx56("div", { className: "absolute inset-[15%] rounded-full bg-sky-200" }) }),
2625
+ /* @__PURE__ */ jsx56("span", { className: "basis-1/6 grow-0 shrink min-w-0" }),
2626
+ /* @__PURE__ */ jsx56("ul", { className: "flex flex-col gap-1 self-center mr-10", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ jsxs48("li", { className: "flex items-center gap-2", children: [
2627
+ /* @__PURE__ */ jsx56("div", { className: "skeleton h-2.5 w-2.5 rounded-full shrink-0" }),
2628
+ /* @__PURE__ */ jsx56("div", { className: "skeleton h-4 w-16 rounded-xs" }),
2629
+ /* @__PURE__ */ jsx56("div", { className: "skeleton h-4 w-10 rounded-xs ml-auto" })
2470
2630
  ] }, i)) })
2471
2631
  ] })
2472
2632
  ] });
2473
2633
  }
2474
2634
 
2475
2635
  // src/ui/skeletons/admin-panel/subjects/user-subjetcs-student-card.tsx
2476
- import { jsx as jsx55, jsxs as jsxs47 } from "react/jsx-runtime";
2636
+ import { jsx as jsx57, jsxs as jsxs49 } from "react/jsx-runtime";
2477
2637
  function UserSubjectsStudentCardSkeleton() {
2478
- return /* @__PURE__ */ jsx55(Card, { className: "flex flex-col grow bg-sky-200 m-2", children: Array.from({ length: 2 }).map((_, i) => /* @__PURE__ */ jsxs47(Card, { className: "flex flex-row w-full justify-between", children: [
2479
- /* @__PURE__ */ jsxs47("div", { className: "flex flex-col gap-1.5", children: [
2480
- /* @__PURE__ */ jsx55("div", { className: "skeleton h-5 w-16 rounded-xs" }),
2481
- /* @__PURE__ */ jsx55("div", { className: "skeleton h-4 w-24 rounded-xs" })
2638
+ return /* @__PURE__ */ jsx57(Card, { className: "flex flex-col grow bg-sky-200 m-2", children: Array.from({ length: 2 }).map((_, i) => /* @__PURE__ */ jsxs49(Card, { className: "flex flex-row w-full justify-between", children: [
2639
+ /* @__PURE__ */ jsxs49("div", { className: "flex flex-col gap-1.5", children: [
2640
+ /* @__PURE__ */ jsx57("div", { className: "skeleton h-5 w-16 rounded-xs" }),
2641
+ /* @__PURE__ */ jsx57("div", { className: "skeleton h-4 w-24 rounded-xs" })
2482
2642
  ] }),
2483
- /* @__PURE__ */ jsx55("div", { className: "skeleton h-12 w-12 rounded-full shrink-0 relative", children: /* @__PURE__ */ jsx55("div", { className: "absolute inset-[15%] rounded-full bg-sky-200" }) })
2643
+ /* @__PURE__ */ jsx57("div", { className: "skeleton h-12 w-12 rounded-full shrink-0 relative", children: /* @__PURE__ */ jsx57("div", { className: "absolute inset-[15%] rounded-full bg-sky-200" }) })
2484
2644
  ] }, i)) });
2485
2645
  }
2486
2646
 
2487
2647
  // src/ui/skeletons/inputs/subject-input.tsx
2488
- import { jsx as jsx56, jsxs as jsxs48 } from "react/jsx-runtime";
2648
+ import { jsx as jsx58, jsxs as jsxs50 } from "react/jsx-runtime";
2489
2649
  function SubjectInputSkeleton({ showMeta = true }) {
2490
- return /* @__PURE__ */ jsxs48("div", { className: "relative mt-3 min-w-50 mb-5", children: [
2491
- /* @__PURE__ */ jsx56("div", { className: "skeleton w-full h-10 rounded-xs" }),
2492
- showMeta && /* @__PURE__ */ jsxs48("div", { className: "flex flex-row justify-between mt-1.5", children: [
2493
- /* @__PURE__ */ jsx56("div", { className: "skeleton h-3 w-24 rounded-xs" }),
2494
- /* @__PURE__ */ jsx56("div", { className: "skeleton h-4 w-32 rounded-xs" })
2650
+ return /* @__PURE__ */ jsxs50("div", { className: "relative mt-3 min-w-50 mb-5", children: [
2651
+ /* @__PURE__ */ jsx58("div", { className: "skeleton w-full h-10 rounded-xs" }),
2652
+ showMeta && /* @__PURE__ */ jsxs50("div", { className: "flex flex-row justify-between mt-1.5", children: [
2653
+ /* @__PURE__ */ jsx58("div", { className: "skeleton h-3 w-24 rounded-xs" }),
2654
+ /* @__PURE__ */ jsx58("div", { className: "skeleton h-4 w-32 rounded-xs" })
2495
2655
  ] })
2496
2656
  ] });
2497
2657
  }
2498
2658
 
2499
2659
  // src/ui/skeletons/subjects/admin-card.tsx
2500
- import { jsx as jsx57, jsxs as jsxs49 } from "react/jsx-runtime";
2660
+ import { jsx as jsx59, jsxs as jsxs51 } from "react/jsx-runtime";
2501
2661
  function AdminSubjectCardSkeleton() {
2502
- return /* @__PURE__ */ jsxs49("div", { className: "h-fit w-200 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
2503
- /* @__PURE__ */ jsxs49("div", { className: "flex flex-row w-full justify-between", children: [
2504
- /* @__PURE__ */ jsx57("div", { className: "skeleton h-5 w-24 rounded-xs" }),
2505
- /* @__PURE__ */ jsx57("div", { className: "skeleton h-5 w-40 rounded-xs" })
2662
+ return /* @__PURE__ */ jsxs51("div", { className: "h-fit w-200 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
2663
+ /* @__PURE__ */ jsxs51("div", { className: "flex flex-row w-full justify-between", children: [
2664
+ /* @__PURE__ */ jsx59("div", { className: "skeleton h-5 w-24 rounded-xs" }),
2665
+ /* @__PURE__ */ jsx59("div", { className: "skeleton h-5 w-40 rounded-xs" })
2506
2666
  ] }),
2507
- /* @__PURE__ */ jsx57(SubjectInputSkeleton, { showMeta: false })
2667
+ /* @__PURE__ */ jsx59(SubjectInputSkeleton, { showMeta: false })
2508
2668
  ] });
2509
2669
  }
2510
2670
 
2511
2671
  // src/ui/skeletons/subjects/comment.tsx
2512
- import { jsx as jsx58, jsxs as jsxs50 } from "react/jsx-runtime";
2672
+ import { jsx as jsx60, jsxs as jsxs52 } from "react/jsx-runtime";
2513
2673
  function CommentSkeleton() {
2514
- return /* @__PURE__ */ jsxs50("div", { className: "flex flex-row items-center gap-1.5", children: [
2515
- /* @__PURE__ */ jsx58("div", { className: "skeleton h-4 w-4 rounded-xs" }),
2516
- /* @__PURE__ */ jsx58("div", { className: "skeleton h-4 w-44 rounded-xs" })
2674
+ return /* @__PURE__ */ jsxs52("div", { className: "flex flex-row items-center gap-1.5", children: [
2675
+ /* @__PURE__ */ jsx60("div", { className: "skeleton h-4 w-4 rounded-xs" }),
2676
+ /* @__PURE__ */ jsx60("div", { className: "skeleton h-4 w-44 rounded-xs" })
2517
2677
  ] });
2518
2678
  }
2519
2679
 
2520
2680
  // src/ui/skeletons/subjects/student-card.tsx
2521
- import { Fragment as Fragment7, jsx as jsx59, jsxs as jsxs51 } from "react/jsx-runtime";
2681
+ import { Fragment as Fragment7, jsx as jsx61, jsxs as jsxs53 } from "react/jsx-runtime";
2522
2682
  function StudentCardSkeleton({ showButtons = true }) {
2523
- return /* @__PURE__ */ jsxs51("div", { className: "h-fit sm:w-200 w-96 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
2524
- /* @__PURE__ */ jsxs51("div", { className: "flex flex-row w-full justify-between", children: [
2525
- /* @__PURE__ */ jsx59("div", { className: "skeleton h-5 w-24 rounded-xs" }),
2526
- /* @__PURE__ */ jsx59("div", { className: "skeleton h-5 w-24 rounded-xs" })
2683
+ return /* @__PURE__ */ jsxs53("div", { className: "h-fit sm:w-200 w-96 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
2684
+ /* @__PURE__ */ jsxs53("div", { className: "flex flex-row w-full justify-between", children: [
2685
+ /* @__PURE__ */ jsx61("div", { className: "skeleton h-5 w-24 rounded-xs" }),
2686
+ /* @__PURE__ */ jsx61("div", { className: "skeleton h-5 w-24 rounded-xs" })
2527
2687
  ] }),
2528
- /* @__PURE__ */ jsx59(SubjectInputSkeleton, {}),
2529
- /* @__PURE__ */ jsx59(CommentSkeleton, {}),
2530
- showButtons && /* @__PURE__ */ jsxs51(Fragment7, { children: [
2531
- /* @__PURE__ */ jsx59(ButtonSkeleton, { className: "mb-1! mt-1!" }),
2532
- /* @__PURE__ */ jsx59(ButtonSkeleton, { className: "mb-1! mt-1!" })
2688
+ /* @__PURE__ */ jsx61(SubjectInputSkeleton, {}),
2689
+ /* @__PURE__ */ jsx61(CommentSkeleton, {}),
2690
+ showButtons && /* @__PURE__ */ jsxs53(Fragment7, { children: [
2691
+ /* @__PURE__ */ jsx61(ButtonSkeleton, { className: "mb-1! mt-1!" }),
2692
+ /* @__PURE__ */ jsx61(ButtonSkeleton, { className: "mb-1! mt-1!" })
2533
2693
  ] })
2534
2694
  ] });
2535
2695
  }
2536
2696
 
2537
2697
  // src/ui/skeletons/subjects/teacher-card.tsx
2538
- import { Fragment as Fragment8, jsx as jsx60, jsxs as jsxs52 } from "react/jsx-runtime";
2698
+ import { Fragment as Fragment8, jsx as jsx62, jsxs as jsxs54 } from "react/jsx-runtime";
2539
2699
  function TeacherCardSkeleton({ showButtons = false }) {
2540
- return /* @__PURE__ */ jsxs52("div", { className: "h-fit sm:w-200 w-96 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
2541
- /* @__PURE__ */ jsxs52("div", { className: "flex flex-row w-full justify-between", children: [
2542
- /* @__PURE__ */ jsx60("div", { className: "skeleton h-5 w-24 rounded-xs" }),
2543
- /* @__PURE__ */ jsx60("div", { className: "skeleton h-5 w-24 rounded-xs" })
2700
+ return /* @__PURE__ */ jsxs54("div", { className: "h-fit sm:w-200 w-96 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
2701
+ /* @__PURE__ */ jsxs54("div", { className: "flex flex-row w-full justify-between", children: [
2702
+ /* @__PURE__ */ jsx62("div", { className: "skeleton h-5 w-24 rounded-xs" }),
2703
+ /* @__PURE__ */ jsx62("div", { className: "skeleton h-5 w-24 rounded-xs" })
2544
2704
  ] }),
2545
- /* @__PURE__ */ jsx60(SubjectInputSkeleton, {}),
2546
- /* @__PURE__ */ jsx60(CommentSkeleton, {}),
2547
- showButtons && /* @__PURE__ */ jsxs52(Fragment8, { children: [
2548
- /* @__PURE__ */ jsx60(ButtonSkeleton, { className: "-mb-1! mt-1!" }),
2549
- /* @__PURE__ */ jsx60(ButtonSkeleton, { className: "mb-1! mt-1!" })
2705
+ /* @__PURE__ */ jsx62(SubjectInputSkeleton, {}),
2706
+ /* @__PURE__ */ jsx62(CommentSkeleton, {}),
2707
+ showButtons && /* @__PURE__ */ jsxs54(Fragment8, { children: [
2708
+ /* @__PURE__ */ jsx62(ButtonSkeleton, { className: "-mb-1! mt-1!" }),
2709
+ /* @__PURE__ */ jsx62(ButtonSkeleton, { className: "mb-1! mt-1!" })
2550
2710
  ] })
2551
2711
  ] });
2552
2712
  }
2553
2713
 
2554
2714
  // src/ui/skeletons/support/support-ticket-card.tsx
2555
- import { jsx as jsx61, jsxs as jsxs53 } from "react/jsx-runtime";
2715
+ import { jsx as jsx63, jsxs as jsxs55 } from "react/jsx-runtime";
2556
2716
  function SupportTicketCardSkeleton() {
2557
- return /* @__PURE__ */ jsxs53("div", { className: "h-fit w-200 flex flex-col bg-sky-200 gap-1 gap-y-3 p-1 mt-1", children: [
2558
- /* @__PURE__ */ jsxs53("div", { className: "flex flex-row w-full justify-between", children: [
2559
- /* @__PURE__ */ jsx61("div", { className: "skeleton h-5 w-32 rounded-xs" }),
2560
- /* @__PURE__ */ jsx61("div", { className: "skeleton h-5 w-24 rounded-xs" })
2717
+ return /* @__PURE__ */ jsxs55("div", { className: "h-fit w-200 flex flex-col bg-sky-200 gap-1 gap-y-3 p-1 mt-1", children: [
2718
+ /* @__PURE__ */ jsxs55("div", { className: "flex flex-row w-full justify-between", children: [
2719
+ /* @__PURE__ */ jsx63("div", { className: "skeleton h-5 w-32 rounded-xs" }),
2720
+ /* @__PURE__ */ jsx63("div", { className: "skeleton h-5 w-24 rounded-xs" })
2561
2721
  ] }),
2562
- /* @__PURE__ */ jsx61("div", { className: "skeleton h-24 w-full rounded-xs" }),
2563
- /* @__PURE__ */ jsx61("div", { className: "skeleton h-10 w-full rounded-xs" })
2722
+ /* @__PURE__ */ jsx63("div", { className: "skeleton h-24 w-full rounded-xs" }),
2723
+ /* @__PURE__ */ jsx63("div", { className: "skeleton h-10 w-full rounded-xs" })
2564
2724
  ] });
2565
2725
  }
2566
2726
 
@@ -2573,7 +2733,7 @@ import {
2573
2733
  handleToastRequest as handleToastRequest3,
2574
2734
  SubjectStatusConfig
2575
2735
  } from "@goralys/core";
2576
- import { jsx as jsx62, jsxs as jsxs54 } from "react/jsx-runtime";
2736
+ import { jsx as jsx64, jsxs as jsxs56 } from "react/jsx-runtime";
2577
2737
  function AdminSubjectsCard({ subjectData, onUpdateAction, syncKey }) {
2578
2738
  const password = usePasswordModal();
2579
2739
  const toast = useToast();
@@ -2606,17 +2766,17 @@ function AdminSubjectsCard({ subjectData, onUpdateAction, syncKey }) {
2606
2766
  onUpdateAction();
2607
2767
  }
2608
2768
  };
2609
- return /* @__PURE__ */ jsxs54("div", { className: "h-fit w-200 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
2610
- /* @__PURE__ */ jsxs54("div", { className: "flex flex-row w-full justify-between", children: [
2611
- /* @__PURE__ */ jsx62("strong", { children: subjectData.student }),
2612
- /* @__PURE__ */ jsxs54("strong", { children: [
2769
+ return /* @__PURE__ */ jsxs56("div", { className: "h-fit w-200 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
2770
+ /* @__PURE__ */ jsxs56("div", { className: "flex flex-row w-full justify-between", children: [
2771
+ /* @__PURE__ */ jsx64("strong", { children: subjectData.student }),
2772
+ /* @__PURE__ */ jsxs56("strong", { children: [
2613
2773
  subjectData.topic,
2614
2774
  " (",
2615
2775
  subjectData.teacher,
2616
2776
  ")"
2617
2777
  ] })
2618
2778
  ] }),
2619
- /* @__PURE__ */ jsx62(
2779
+ /* @__PURE__ */ jsx64(
2620
2780
  SubjectInputAdmin,
2621
2781
  {
2622
2782
  id: subjectData.studentToken + subjectData.teacherToken + "-input",
@@ -2624,22 +2784,22 @@ function AdminSubjectsCard({ subjectData, onUpdateAction, syncKey }) {
2624
2784
  label: "Question de l'El\xE8ve"
2625
2785
  }
2626
2786
  ),
2627
- /* @__PURE__ */ jsxs54("div", { className: "flex flex-row justify-between", children: [
2628
- /* @__PURE__ */ jsxs54("p", { children: [
2787
+ /* @__PURE__ */ jsxs56("div", { className: "flex flex-row justify-between", children: [
2788
+ /* @__PURE__ */ jsxs56("p", { children: [
2629
2789
  "Statut de la question: ",
2630
2790
  getStatusLabel2(subjectData.status)
2631
2791
  ] }),
2632
- /* @__PURE__ */ jsxs54("div", { className: "relative pb-0 mb-1", children: [
2633
- /* @__PURE__ */ jsx62(
2792
+ /* @__PURE__ */ jsxs56("div", { className: "relative pb-0 mb-1", children: [
2793
+ /* @__PURE__ */ jsx64(
2634
2794
  "select",
2635
2795
  {
2636
2796
  className: "border-0 border-b-2 border-sky-300 appearance-none\n cursor-pointer outline-none focus:ring-0 text-base leading-5\n text-heading pb-0 pr-5 subjects-search-select",
2637
2797
  value: subjectData.status,
2638
2798
  onChange: (e) => updateStatus(e.target.value),
2639
- children: Object.entries(SubjectStatusConfig).map(([key, info]) => /* @__PURE__ */ jsx62("option", { value: key, children: info.label }, key))
2799
+ children: Object.entries(SubjectStatusConfig).map(([key, info]) => /* @__PURE__ */ jsx64("option", { value: key, children: info.label }, key))
2640
2800
  }
2641
2801
  ),
2642
- /* @__PURE__ */ jsx62(
2802
+ /* @__PURE__ */ jsx64(
2643
2803
  "span",
2644
2804
  {
2645
2805
  className: "absolute bottom-0 left-0 w-0 h-0.5 bg-sky-500\n transition-all duration-300 ease-in-out\n peer-focus:w-full subjects-search-underline"
@@ -2652,26 +2812,26 @@ function AdminSubjectsCard({ subjectData, onUpdateAction, syncKey }) {
2652
2812
 
2653
2813
  // src/ui/subjects/comment-student.tsx
2654
2814
  import { ChevronRightIcon } from "@heroicons/react/24/outline";
2655
- import { Fragment as Fragment9, jsx as jsx63, jsxs as jsxs55 } from "react/jsx-runtime";
2815
+ import { Fragment as Fragment9, jsx as jsx65, jsxs as jsxs57 } from "react/jsx-runtime";
2656
2816
  function CommentStudent({ subjectData, disabled, onChange }) {
2657
2817
  const visible = !!subjectData?.comment && !(subjectData.status === "submitted" || subjectData.status === "approved");
2658
2818
  const showLastRejected = subjectData.status === "not_submitted" && subjectData.lastRejected;
2659
2819
  if (!visible) {
2660
- return /* @__PURE__ */ jsx63(Fragment9, {});
2820
+ return /* @__PURE__ */ jsx65(Fragment9, {});
2661
2821
  }
2662
- return /* @__PURE__ */ jsx63(Fragment9, { children: /* @__PURE__ */ jsxs55(
2822
+ return /* @__PURE__ */ jsx65(Fragment9, { children: /* @__PURE__ */ jsxs57(
2663
2823
  "details",
2664
2824
  {
2665
2825
  className: "group",
2666
2826
  open: subjectData.status === "rejected",
2667
2827
  children: [
2668
- /* @__PURE__ */ jsxs55("summary", { className: "flex flex-row cursor-pointer", children: [
2669
- /* @__PURE__ */ jsx63(ChevronRightIcon, { className: "w-5 h-5 transition-transform duration-200 group-open:rotate-90" }),
2670
- /* @__PURE__ */ jsx63("span", { children: "Commentaire du professeur" })
2828
+ /* @__PURE__ */ jsxs57("summary", { className: "flex flex-row cursor-pointer", children: [
2829
+ /* @__PURE__ */ jsx65(ChevronRightIcon, { className: "w-5 h-5 transition-transform duration-200 group-open:rotate-90" }),
2830
+ /* @__PURE__ */ jsx65("span", { children: "Commentaire du professeur" })
2671
2831
  ] }),
2672
- showLastRejected && /* @__PURE__ */ jsxs55(Fragment9, { children: [
2673
- /* @__PURE__ */ jsx63("span", { className: "h-2 w-full block" }),
2674
- /* @__PURE__ */ jsx63(
2832
+ showLastRejected && /* @__PURE__ */ jsxs57(Fragment9, { children: [
2833
+ /* @__PURE__ */ jsx65("span", { className: "h-2 w-full block" }),
2834
+ /* @__PURE__ */ jsx65(
2675
2835
  SubjectTextArea,
2676
2836
  {
2677
2837
  id: subjectData.studentToken + subjectData.teacherToken + "-last-rejected",
@@ -2683,8 +2843,8 @@ function CommentStudent({ subjectData, disabled, onChange }) {
2683
2843
  }
2684
2844
  )
2685
2845
  ] }),
2686
- /* @__PURE__ */ jsx63("span", { className: "h-1.5 w-full block" }),
2687
- /* @__PURE__ */ jsx63(
2846
+ /* @__PURE__ */ jsx65("span", { className: "h-1.5 w-full block" }),
2847
+ /* @__PURE__ */ jsx65(
2688
2848
  TextArea,
2689
2849
  {
2690
2850
  id: subjectData.studentToken + subjectData.teacherToken + "-subject-comment",
@@ -2702,23 +2862,23 @@ function CommentStudent({ subjectData, disabled, onChange }) {
2702
2862
 
2703
2863
  // src/ui/subjects/comment-teacher.tsx
2704
2864
  import { ChevronRightIcon as ChevronRightIcon2 } from "@heroicons/react/24/outline";
2705
- import { Fragment as Fragment10, jsx as jsx64, jsxs as jsxs56 } from "react/jsx-runtime";
2865
+ import { Fragment as Fragment10, jsx as jsx66, jsxs as jsxs58 } from "react/jsx-runtime";
2706
2866
  function CommentTeacher({ subjectData, disabled, ref, onChange }) {
2707
2867
  const visible = subjectData.status === "submitted";
2708
2868
  if (!visible) {
2709
- return /* @__PURE__ */ jsx64(Fragment10, {});
2869
+ return /* @__PURE__ */ jsx66(Fragment10, {});
2710
2870
  }
2711
- return /* @__PURE__ */ jsx64(Fragment10, { children: /* @__PURE__ */ jsxs56(
2871
+ return /* @__PURE__ */ jsx66(Fragment10, { children: /* @__PURE__ */ jsxs58(
2712
2872
  "details",
2713
2873
  {
2714
2874
  className: "group",
2715
2875
  open: subjectData.status === "rejected",
2716
2876
  children: [
2717
- /* @__PURE__ */ jsxs56("summary", { className: "flex flex-row cursor-pointer", children: [
2718
- /* @__PURE__ */ jsx64(ChevronRightIcon2, { className: "w-5 h-5 transition-transform duration-200 group-open:rotate-90" }),
2719
- /* @__PURE__ */ jsx64("span", { children: "Votre commentaire" })
2877
+ /* @__PURE__ */ jsxs58("summary", { className: "flex flex-row cursor-pointer", children: [
2878
+ /* @__PURE__ */ jsx66(ChevronRightIcon2, { className: "w-5 h-5 transition-transform duration-200 group-open:rotate-90" }),
2879
+ /* @__PURE__ */ jsx66("span", { children: "Votre commentaire" })
2720
2880
  ] }),
2721
- /* @__PURE__ */ jsx64(
2881
+ /* @__PURE__ */ jsx66(
2722
2882
  TextArea,
2723
2883
  {
2724
2884
  id: subjectData.studentToken + subjectData.teacherToken + "-subject-comment",
@@ -2738,19 +2898,19 @@ function CommentTeacher({ subjectData, disabled, ref, onChange }) {
2738
2898
 
2739
2899
  // src/ui/subjects/readonly-card.tsx
2740
2900
  import { getStatusLabel as getStatusLabel3 } from "@goralys/core";
2741
- import { jsx as jsx65, jsxs as jsxs57 } from "react/jsx-runtime";
2901
+ import { jsx as jsx67, jsxs as jsxs59 } from "react/jsx-runtime";
2742
2902
  function ReadonlyCard({ subjectData }) {
2743
- return /* @__PURE__ */ jsxs57("div", { className: "h-fit w-200 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
2744
- /* @__PURE__ */ jsxs57("div", { className: "flex flex-row w-full justify-between", children: [
2745
- /* @__PURE__ */ jsx65("strong", { children: subjectData.student }),
2746
- /* @__PURE__ */ jsxs57("strong", { children: [
2903
+ return /* @__PURE__ */ jsxs59("div", { className: "h-fit w-200 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
2904
+ /* @__PURE__ */ jsxs59("div", { className: "flex flex-row w-full justify-between", children: [
2905
+ /* @__PURE__ */ jsx67("strong", { children: subjectData.student }),
2906
+ /* @__PURE__ */ jsxs59("strong", { children: [
2747
2907
  subjectData.topic,
2748
2908
  " (",
2749
2909
  subjectData.teacher,
2750
2910
  ")"
2751
2911
  ] })
2752
2912
  ] }),
2753
- /* @__PURE__ */ jsx65(
2913
+ /* @__PURE__ */ jsx67(
2754
2914
  SubjectInputAdmin,
2755
2915
  {
2756
2916
  id: subjectData.studentToken + subjectData.teacherToken + "-input",
@@ -2758,7 +2918,7 @@ function ReadonlyCard({ subjectData }) {
2758
2918
  label: "Question de l'El\xE8ve"
2759
2919
  }
2760
2920
  ),
2761
- /* @__PURE__ */ jsx65("div", { className: "flex flex-row justify-between", children: /* @__PURE__ */ jsxs57("p", { children: [
2921
+ /* @__PURE__ */ jsx67("div", { className: "flex flex-row justify-between", children: /* @__PURE__ */ jsxs59("p", { children: [
2762
2922
  "Statut de la question: ",
2763
2923
  getStatusLabel3(subjectData.status)
2764
2924
  ] }) })
@@ -2774,14 +2934,14 @@ import {
2774
2934
  handleToastRequest as handleToastRequest4,
2775
2935
  SUBJECT_SYNCS
2776
2936
  } from "@goralys/core";
2777
- import { useState as useState27 } from "react";
2778
- import { Fragment as Fragment11, jsx as jsx66, jsxs as jsxs58 } from "react/jsx-runtime";
2937
+ import { useState as useState30 } from "react";
2938
+ import { Fragment as Fragment11, jsx as jsx68, jsxs as jsxs60 } from "react/jsx-runtime";
2779
2939
  function StudentCard({ subjectData, onUpdateAction }) {
2780
2940
  const toast = useToast();
2781
2941
  const confirm = useConfirm();
2782
2942
  const isDesktop = useMediaQuery("(min-width:640px)");
2783
- const [subject, setSubject] = useState27(subjectData.subject);
2784
- const [isInterdisciplinary, setIsInterdisciplinary] = useState27(subjectData.interdisciplinary);
2943
+ const [subject, setSubject] = useState30(subjectData.subject);
2944
+ const [isInterdisciplinary, setIsInterdisciplinary] = useState30(subjectData.interdisciplinary);
2785
2945
  const modal = useDraftModal();
2786
2946
  const saveDraft = async () => {
2787
2947
  if (!subject || subject.trim() == "") {
@@ -2864,12 +3024,12 @@ function StudentCard({ subjectData, onUpdateAction }) {
2864
3024
  }
2865
3025
  };
2866
3026
  const key = subjectData.teacher + subjectData.topic;
2867
- return /* @__PURE__ */ jsxs58("div", { className: "h-fit sm:w-200 w-96 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
2868
- /* @__PURE__ */ jsxs58("div", { className: "flex flex-row w-full justify-between", children: [
2869
- /* @__PURE__ */ jsx66("strong", { children: isDesktop ? subjectData.topic : getShortFromLong2(subjectData.topic) }),
2870
- isDesktop && /* @__PURE__ */ jsx66("strong", { children: subjectData.teacher })
3027
+ return /* @__PURE__ */ jsxs60("div", { className: "h-fit sm:w-200 w-96 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
3028
+ /* @__PURE__ */ jsxs60("div", { className: "flex flex-row w-full justify-between", children: [
3029
+ /* @__PURE__ */ jsx68("strong", { children: isDesktop ? subjectData.topic : getShortFromLong2(subjectData.topic) }),
3030
+ isDesktop && /* @__PURE__ */ jsx68("strong", { children: subjectData.teacher })
2871
3031
  ] }),
2872
- /* @__PURE__ */ jsx66(
3032
+ /* @__PURE__ */ jsx68(
2873
3033
  SubjectInputStudent,
2874
3034
  {
2875
3035
  id: `subject-input-student-for-${key}`,
@@ -2881,18 +3041,18 @@ function StudentCard({ subjectData, onUpdateAction }) {
2881
3041
  setIsInterdisciplinaryAction: setIsInterdisciplinary
2882
3042
  }
2883
3043
  ),
2884
- /* @__PURE__ */ jsx66(CommentStudent, { subjectData, disabled: true }, `comment-student-for-${key}`),
2885
- !(subjectData.status === "submitted" || subjectData.status === "approved") && /* @__PURE__ */ jsxs58(Fragment11, { children: [
2886
- /* @__PURE__ */ jsx66(Button, { className: "mb-1! mt-1!", text: "Enregistrer comme brouillon", type: "button", onClick: saveDraft }),
2887
- /* @__PURE__ */ jsx66(Button, { className: "mb-1! mt-1!", text: "Envoyer la question", type: "button", onClick: sendSubject })
3044
+ /* @__PURE__ */ jsx68(CommentStudent, { subjectData, disabled: true }, `comment-student-for-${key}`),
3045
+ !(subjectData.status === "submitted" || subjectData.status === "approved") && /* @__PURE__ */ jsxs60(Fragment11, { children: [
3046
+ /* @__PURE__ */ jsx68(Button, { className: "mb-1! mt-1!", text: "Enregistrer comme brouillon", type: "button", onClick: saveDraft }),
3047
+ /* @__PURE__ */ jsx68(Button, { className: "mb-1! mt-1!", text: "Envoyer la question", type: "button", onClick: sendSubject })
2888
3048
  ] })
2889
3049
  ] });
2890
3050
  }
2891
3051
 
2892
3052
  // src/ui/subjects/subjects-filter.tsx
2893
- import { useCallback as useCallback8, useEffect as useEffect13, useState as useState28 } from "react";
3053
+ import { useCallback as useCallback9, useEffect as useEffect14, useState as useState31 } from "react";
2894
3054
  import { getStatusLabel as getStatusLabel4 } from "@goralys/core";
2895
- import { jsx as jsx67 } from "react/jsx-runtime";
3055
+ import { jsx as jsx69 } from "react/jsx-runtime";
2896
3056
  function SubjectsFilter({ subjects, setCurrentSubjects, defaults }) {
2897
3057
  const DEFAULT_STATUS = {
2898
3058
  not_submitted: { default: defaults?.not_submitted ?? false, label: getStatusLabel4("not_submitted") },
@@ -2900,7 +3060,7 @@ function SubjectsFilter({ subjects, setCurrentSubjects, defaults }) {
2900
3060
  rejected: { default: defaults?.rejected ?? false, label: getStatusLabel4("rejected") },
2901
3061
  approved: { default: defaults?.approved ?? false, label: getStatusLabel4("approved") }
2902
3062
  };
2903
- const [shownStatus, setShownStatus] = useState28(
3063
+ const [shownStatus, setShownStatus] = useState31(
2904
3064
  Object.keys(DEFAULT_STATUS).filter((k) => DEFAULT_STATUS[k].default)
2905
3065
  );
2906
3066
  const toggleStatus = (s) => {
@@ -2918,7 +3078,7 @@ function SubjectsFilter({ subjects, setCurrentSubjects, defaults }) {
2918
3078
  filter();
2919
3079
  console.log("filtering done");
2920
3080
  };
2921
- const filter = useCallback8(() => {
3081
+ const filter = useCallback9(() => {
2922
3082
  const filtered = [];
2923
3083
  subjects.forEach((s) => {
2924
3084
  if (shownStatus.includes(s.status)) filtered.push(s);
@@ -2926,10 +3086,10 @@ function SubjectsFilter({ subjects, setCurrentSubjects, defaults }) {
2926
3086
  console.log(filtered);
2927
3087
  setCurrentSubjects(filtered);
2928
3088
  }, [shownStatus, subjects, setCurrentSubjects]);
2929
- useEffect13(() => {
3089
+ useEffect14(() => {
2930
3090
  filter();
2931
3091
  }, [filter]);
2932
- return /* @__PURE__ */ jsx67("div", { className: "flex flex-row gap-2 w-full", children: Object.entries(DEFAULT_STATUS).map(([k, v]) => /* @__PURE__ */ jsx67(
3092
+ return /* @__PURE__ */ jsx69("div", { className: "flex flex-row gap-2 w-full", children: Object.entries(DEFAULT_STATUS).map(([k, v]) => /* @__PURE__ */ jsx69(
2933
3093
  Checkbox,
2934
3094
  {
2935
3095
  label: v.label,
@@ -2941,12 +3101,12 @@ function SubjectsFilter({ subjects, setCurrentSubjects, defaults }) {
2941
3101
  }
2942
3102
 
2943
3103
  // src/ui/subjects/subjects-search-bar.tsx
2944
- import { useEffect as useEffect14, useState as useState29 } from "react";
3104
+ import { useEffect as useEffect15, useState as useState32 } from "react";
2945
3105
  import { getLongFromShort, searchFields } from "@goralys/core";
2946
- import { jsx as jsx68, jsxs as jsxs59 } from "react/jsx-runtime";
3106
+ import { jsx as jsx70, jsxs as jsxs61 } from "react/jsx-runtime";
2947
3107
  function SubjectsSearchBar({ subjects, setCurrentSubjects }) {
2948
- const [currentField, setCurrentField] = useState29("all");
2949
- const [searchText, setSearchText] = useState29("");
3108
+ const [currentField, setCurrentField] = useState32("all");
3109
+ const [searchText, setSearchText] = useState32("");
2950
3110
  const handleSearch = (e) => {
2951
3111
  const value = e.currentTarget.value;
2952
3112
  setSearchText(value);
@@ -2962,7 +3122,7 @@ function SubjectsSearchBar({ subjects, setCurrentSubjects }) {
2962
3122
  return nameA.localeCompare(nameB, "fr");
2963
3123
  });
2964
3124
  };
2965
- useEffect14(() => {
3125
+ useEffect15(() => {
2966
3126
  if (!subjects) return;
2967
3127
  const search = searchText.trim().toLowerCase();
2968
3128
  const sorted = sortSubjects(
@@ -2988,19 +3148,19 @@ function SubjectsSearchBar({ subjects, setCurrentSubjects }) {
2988
3148
  return sorted;
2989
3149
  });
2990
3150
  }, [searchText, currentField, subjects, setCurrentSubjects]);
2991
- return /* @__PURE__ */ jsxs59("div", { className: "flex flex-row gap-2 items-end mb-4", children: [
2992
- /* @__PURE__ */ jsx68(FloatingInput, { id: "admins-subjects-search", label: "Rechercher", onInput: handleSearch }),
2993
- /* @__PURE__ */ jsxs59("div", { className: "relative pb-0 mb-1", children: [
2994
- /* @__PURE__ */ jsx68(
3151
+ return /* @__PURE__ */ jsxs61("div", { className: "flex flex-row gap-2 items-end mb-4", children: [
3152
+ /* @__PURE__ */ jsx70(FloatingInput, { id: "admins-subjects-search", label: "Rechercher", onInput: handleSearch }),
3153
+ /* @__PURE__ */ jsxs61("div", { className: "relative pb-0 mb-1", children: [
3154
+ /* @__PURE__ */ jsx70(
2995
3155
  "select",
2996
3156
  {
2997
3157
  className: "border-0 border-b-2 border-sky-300 appearance-none\n cursor-pointer outline-none focus:ring-0 text-base leading-5\n text-heading pb-0 pr-5 subjects-search-select",
2998
3158
  value: currentField,
2999
3159
  onChange: (e) => setCurrentField(e.target.value),
3000
- children: Object.entries(searchFields).map(([key, label]) => /* @__PURE__ */ jsx68("option", { value: key, children: label }, key))
3160
+ children: Object.entries(searchFields).map(([key, label]) => /* @__PURE__ */ jsx70("option", { value: key, children: label }, key))
3001
3161
  }
3002
3162
  ),
3003
- /* @__PURE__ */ jsx68(
3163
+ /* @__PURE__ */ jsx70(
3004
3164
  "span",
3005
3165
  {
3006
3166
  className: "absolute bottom-0 left-0 w-0 h-0.5 bg-sky-500\n transition-all duration-300 ease-in-out\n peer-focus:w-full subjects-search-underline"
@@ -3019,13 +3179,13 @@ import {
3019
3179
  handleToastRequest as handleToastRequest5,
3020
3180
  SUBJECT_SYNCS as SUBJECT_SYNCS2
3021
3181
  } from "@goralys/core";
3022
- import { useRef as useRef7, useState as useState30 } from "react";
3023
- import { Fragment as Fragment12, jsx as jsx69, jsxs as jsxs60 } from "react/jsx-runtime";
3182
+ import { useRef as useRef9, useState as useState33 } from "react";
3183
+ import { Fragment as Fragment12, jsx as jsx71, jsxs as jsxs62 } from "react/jsx-runtime";
3024
3184
  function TeacherCard({ subjectData, onUpdateAction }) {
3025
3185
  const toast = useToast();
3026
3186
  const confirm = useConfirm();
3027
- const [comment, setComment] = useState30(subjectData.comment);
3028
- const commentRef = useRef7(null);
3187
+ const [comment, setComment] = useState33(subjectData.comment);
3188
+ const commentRef = useRef9(null);
3029
3189
  const isDesktop = useMediaQuery("(min-width: 640px)");
3030
3190
  const rejectSubject = async () => {
3031
3191
  if (comment?.trim() === "" || !comment) {
@@ -3094,12 +3254,12 @@ function TeacherCard({ subjectData, onUpdateAction }) {
3094
3254
  }
3095
3255
  }
3096
3256
  };
3097
- return /* @__PURE__ */ jsxs60("div", { className: "h-fit sm:w-200 w-96 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
3098
- /* @__PURE__ */ jsxs60("div", { className: "flex flex-row w-full justify-between", children: [
3099
- /* @__PURE__ */ jsx69("strong", { children: subjectData.student }),
3100
- /* @__PURE__ */ jsx69("strong", { children: isDesktop ? subjectData.topic : getShortFromLong3(subjectData.topic) })
3257
+ return /* @__PURE__ */ jsxs62("div", { className: "h-fit sm:w-200 w-96 flex flex-col bg-sky-200 gap-1 p-1 mb-1 mt-1", children: [
3258
+ /* @__PURE__ */ jsxs62("div", { className: "flex flex-row w-full justify-between", children: [
3259
+ /* @__PURE__ */ jsx71("strong", { children: subjectData.student }),
3260
+ /* @__PURE__ */ jsx71("strong", { children: isDesktop ? subjectData.topic : getShortFromLong3(subjectData.topic) })
3101
3261
  ] }),
3102
- /* @__PURE__ */ jsx69(
3262
+ /* @__PURE__ */ jsx71(
3103
3263
  SubjectInputTeacher,
3104
3264
  {
3105
3265
  id: subjectData.studentToken + subjectData.teacherToken + "-comment",
@@ -3107,7 +3267,7 @@ function TeacherCard({ subjectData, onUpdateAction }) {
3107
3267
  label: "Question de l'El\xE8ve"
3108
3268
  }
3109
3269
  ),
3110
- /* @__PURE__ */ jsx69(
3270
+ /* @__PURE__ */ jsx71(
3111
3271
  CommentTeacher,
3112
3272
  {
3113
3273
  subjectData,
@@ -3119,8 +3279,8 @@ function TeacherCard({ subjectData, onUpdateAction }) {
3119
3279
  },
3120
3280
  `comment-teacher-for-${subjectData.student}-${subjectData.topic}`
3121
3281
  ),
3122
- subjectData.status === "submitted" && /* @__PURE__ */ jsxs60(Fragment12, { children: [
3123
- /* @__PURE__ */ jsx69(
3282
+ subjectData.status === "submitted" && /* @__PURE__ */ jsxs62(Fragment12, { children: [
3283
+ /* @__PURE__ */ jsx71(
3124
3284
  Button,
3125
3285
  {
3126
3286
  className: "-mb-1! mt-1! shadow-none!",
@@ -3130,7 +3290,7 @@ function TeacherCard({ subjectData, onUpdateAction }) {
3130
3290
  color: "sky"
3131
3291
  }
3132
3292
  ),
3133
- /* @__PURE__ */ jsx69(
3293
+ /* @__PURE__ */ jsx71(
3134
3294
  Button,
3135
3295
  {
3136
3296
  className: "mb-1! mt-1! shadow-none!",
@@ -3145,26 +3305,26 @@ function TeacherCard({ subjectData, onUpdateAction }) {
3145
3305
  }
3146
3306
 
3147
3307
  // src/ui/support/support-form.tsx
3148
- import { useEffect as useEffect15, useState as useState31 } from "react";
3149
- import { cookiesGet as cookiesGet6, EMAIL_KEY, fetchCsrfClient as fetchCsrfClient6, getGoralysClientConfig as getGoralysClientConfig2, reasonsConfig, USERNAME_KEY as USERNAME_KEY3 } from "@goralys/core";
3150
- import { jsx as jsx70, jsxs as jsxs61 } from "react/jsx-runtime";
3308
+ import { useEffect as useEffect16, useState as useState34 } from "react";
3309
+ import { cookiesGet as cookiesGet7, EMAIL_KEY, fetchCsrfClient as fetchCsrfClient6, getGoralysClientConfig as getGoralysClientConfig2, reasonsConfig, USERNAME_KEY as USERNAME_KEY3 } from "@goralys/core";
3310
+ import { jsx as jsx72, jsxs as jsxs63 } from "react/jsx-runtime";
3151
3311
  function SupportForm() {
3152
3312
  const { apiDomain, getSchoolToken } = getGoralysClientConfig2();
3153
- const [loggedIn, setLoggedIn] = useState31(true);
3154
- const [csrfToken, setCsrfToken] = useState31(null);
3313
+ const [loggedIn, setLoggedIn] = useState34(true);
3314
+ const [csrfToken, setCsrfToken] = useState34(null);
3155
3315
  const requestUrl = `${apiDomain}/support/contact?high-school-token=${getSchoolToken()}`;
3156
- const [reason, setReason] = useState31("password-forgot");
3157
- useEffect15(() => {
3316
+ const [reason, setReason] = useState34("password-forgot");
3317
+ useEffect16(() => {
3158
3318
  const run = async () => {
3159
3319
  setCsrfToken(await fetchCsrfClient6("support-ticket"));
3160
- setLoggedIn(!!cookiesGet6(USERNAME_KEY3));
3320
+ setLoggedIn(!!cookiesGet7(USERNAME_KEY3));
3161
3321
  };
3162
3322
  run().then();
3163
3323
  }, []);
3164
- return /* @__PURE__ */ jsxs61(Card, { className: "flex-col min-h-73 bg-sky-200 order-1 sm:order-2 h-fit", children: [
3165
- /* @__PURE__ */ jsx70("h1", { className: "text-xl", children: "Contactez le support Goralys" }),
3166
- /* @__PURE__ */ jsxs61("form", { className: "relative flex flex-col h-full", method: "POST", action: requestUrl, autoComplete: "on", children: [
3167
- !loggedIn && /* @__PURE__ */ jsx70(
3324
+ return /* @__PURE__ */ jsxs63(Card, { className: "flex-col min-h-73 bg-sky-200 order-1 sm:order-2 h-fit", children: [
3325
+ /* @__PURE__ */ jsx72("h1", { className: "text-xl", children: "Contactez le support Goralys" }),
3326
+ /* @__PURE__ */ jsxs63("form", { className: "relative flex flex-col h-full", method: "POST", action: requestUrl, autoComplete: "on", children: [
3327
+ !loggedIn && /* @__PURE__ */ jsx72(
3168
3328
  FloatingInput,
3169
3329
  {
3170
3330
  id: "full-name",
@@ -3174,71 +3334,1583 @@ function SupportForm() {
3174
3334
  required: !loggedIn
3175
3335
  }
3176
3336
  ),
3177
- /* @__PURE__ */ jsx70(
3337
+ /* @__PURE__ */ jsx72(
3178
3338
  FloatingInput,
3179
3339
  {
3180
3340
  id: "user-email",
3181
3341
  label: "Votre email",
3182
3342
  helper: "Votre email sera simplement utilis\xE9 pour vous r\xE9pondre.",
3183
- defaultValue: cookiesGet6(EMAIL_KEY) ?? "",
3343
+ defaultValue: cookiesGet7(EMAIL_KEY) ?? "",
3184
3344
  autocomplete: "email",
3185
3345
  required: true,
3186
3346
  email: true
3187
3347
  }
3188
3348
  ),
3189
- /* @__PURE__ */ jsxs61("div", { className: "relative pb-0 mb-3", children: [
3190
- /* @__PURE__ */ jsx70(
3349
+ /* @__PURE__ */ jsxs63("div", { className: "relative pb-0 mb-3", children: [
3350
+ /* @__PURE__ */ jsx72(
3191
3351
  "select",
3192
3352
  {
3193
3353
  className: "w-full border-0 border-b-2 border-sky-300 appearance-none\n cursor-pointer outline-none focus:ring-0 text-base leading-5\n text-heading pb-0 pr-5 subjects-search-select",
3194
3354
  value: reason,
3195
3355
  name: "raw-reason",
3196
3356
  onChange: (e) => setReason(e.target.value),
3197
- children: Object.entries(reasonsConfig).map(([key, { label }]) => /* @__PURE__ */ jsx70("option", { value: key, children: label }, key))
3357
+ children: Object.entries(reasonsConfig).map(([key, { label }]) => /* @__PURE__ */ jsx72("option", { value: key, children: label }, key))
3198
3358
  }
3199
3359
  ),
3200
- /* @__PURE__ */ jsx70(
3360
+ /* @__PURE__ */ jsx72(
3201
3361
  "span",
3202
3362
  {
3203
3363
  className: "absolute bottom-0 left-0 w-0 h-0.5 bg-sky-500\n transition-all duration-300 ease-in-out\n peer-focus:w-full subjects-search-underline"
3204
3364
  }
3205
3365
  )
3206
3366
  ] }),
3207
- /* @__PURE__ */ jsx70(TextArea, { maxLength: 250, id: "message", label: "Message", helper: "Veuillez d\xE9crire pr\xE9cis\xE9ment votre probl\xE8me.", required: true }),
3208
- /* @__PURE__ */ jsx70("input", { type: "hidden", name: "csrf-token", value: (csrfToken ? csrfToken : "no-token").trim() }),
3209
- /* @__PURE__ */ jsx70("input", { type: "hidden", name: "reason", value: reason }),
3210
- /* @__PURE__ */ jsx70(Button, { type: "submit", text: "Envoyer mon message", className: "bottom-0 mt-2.5", disabled: !csrfToken })
3367
+ /* @__PURE__ */ jsx72(TextArea, { maxLength: 250, id: "message", label: "Message", helper: "Veuillez d\xE9crire pr\xE9cis\xE9ment votre probl\xE8me.", required: true }),
3368
+ /* @__PURE__ */ jsx72("input", { type: "hidden", name: "csrf-token", value: (csrfToken ? csrfToken : "no-token").trim() }),
3369
+ /* @__PURE__ */ jsx72("input", { type: "hidden", name: "reason", value: reason }),
3370
+ /* @__PURE__ */ jsx72(Button, { type: "submit", text: "Envoyer mon message", className: "bottom-0 mt-2.5", disabled: !csrfToken })
3211
3371
  ] })
3212
3372
  ] });
3213
3373
  }
3214
3374
 
3215
3375
  // src/ui/support/support-ticket-card.tsx
3216
- import { buildApiUrl as buildApiUrl3, reasonsConfig as reasonsConfig2 } from "@goralys/core";
3217
- import { jsx as jsx71, jsxs as jsxs62 } from "react/jsx-runtime";
3376
+ import { buildApiUrl as buildApiUrl17, reasonsConfig as reasonsConfig9 } from "@goralys/core";
3377
+
3378
+ // dist/index.js
3379
+ import { createContext as createContext9, useContext as useContext9, useMemo as useMemo9 } from "react";
3380
+ import { jsx as jsx73 } from "react/jsx-runtime";
3381
+ import { useEffect as useEffect17, useState as useState35 } from "react";
3382
+ import { useCallback as useCallback10 } from "react";
3383
+ import { useEffect as useEffect22 } from "react";
3384
+ import clsx19 from "clsx";
3385
+ import { jsx as jsx210 } from "react/jsx-runtime";
3386
+ import { Fragment as Fragment13, jsx as jsx310, jsxs as jsxs64 } from "react/jsx-runtime";
3387
+ import { jsx as jsx410 } from "react/jsx-runtime";
3388
+ import { cookiesGet as cookiesGet8, PUB_ID_KEY as PUB_ID_KEY2 } from "@goralys/core";
3389
+ import { ShieldExclamationIcon as ShieldExclamationIcon2 } from "@heroicons/react/24/outline";
3390
+ import { Fragment as Fragment22, jsx as jsx510, jsxs as jsxs210 } from "react/jsx-runtime";
3391
+ import { clsx as clsx22 } from "clsx";
3392
+ import { useState as useState210 } from "react";
3393
+ import { EyeIcon as EyeIcon2, EyeSlashIcon as EyeSlashIcon2 } from "@heroicons/react/24/outline";
3394
+ import { jsx as jsx610, jsxs as jsxs310 } from "react/jsx-runtime";
3395
+ import { useEffect as useEffect32, useState as useState36 } from "react";
3396
+ import { jsx as jsx74 } from "react/jsx-runtime";
3397
+ import { parsePhpDateTime as parsePhpDateTime3 } from "@goralys/core";
3398
+ import { Fragment as Fragment32, jsx as jsx82, jsxs as jsxs410 } from "react/jsx-runtime";
3399
+ import { buildApiUrl as buildApiUrl3, fetchCsrfClient as fetchCsrfClient7, goralysFetchClient as goralysFetchClient6, handleToastRequest as handleToastRequest6, parsePhpDateTime as parsePhpDateTime22 } from "@goralys/core";
3400
+ import { createContext as createContext22, useCallback as useCallback22, useContext as useContext22, useEffect as useEffect42, useMemo as useMemo22, useRef as useRef10, useState as useState42 } from "react";
3401
+ import { clsx as clsx32 } from "clsx";
3402
+ import { CheckCircleIcon as CheckCircleIcon2, ExclamationCircleIcon as ExclamationCircleIcon2, InformationCircleIcon as InformationCircleIcon2, XCircleIcon as XCircleIcon2 } from "@heroicons/react/24/outline";
3403
+ import { jsx as jsx92, jsxs as jsxs510 } from "react/jsx-runtime";
3404
+ import { FLASH_TOAST_KEY as FLASH_TOAST_KEY2, storageSet as storageSet2 } from "@goralys/core";
3405
+ import { createPortal as createPortal8 } from "react-dom";
3406
+ import { jsx as jsx102, jsxs as jsxs65 } from "react/jsx-runtime";
3407
+ import { createContext as createContext32, useCallback as useCallback32, useContext as useContext32, useMemo as useMemo32, useState as useState52 } from "react";
3408
+ import { clsx as clsx42 } from "clsx";
3409
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon5 } from "@heroicons/react/24/outline";
3410
+ import { useRef as useRef22 } from "react";
3411
+ import { jsx as jsx112, jsxs as jsxs72 } from "react/jsx-runtime";
3412
+ import { createPortal as createPortal22 } from "react-dom";
3413
+ import { jsx as jsx122, jsxs as jsxs82 } from "react/jsx-runtime";
3414
+ import { jsx as jsx132, jsxs as jsxs92 } from "react/jsx-runtime";
3415
+ import { useState as useState82 } from "react";
3416
+ import { createContext as createContext42, useCallback as useCallback42, useContext as useContext42, useMemo as useMemo42, useState as useState72 } from "react";
3417
+ import { LockClosedIcon as LockClosedIcon2 } from "@heroicons/react/16/solid";
3418
+ import { clsx as clsx52 } from "clsx";
3419
+ import { useRef as useRef32, useState as useState62 } from "react";
3420
+ import { jsx as jsx142, jsxs as jsxs102 } from "react/jsx-runtime";
3421
+ import { createPortal as createPortal32 } from "react-dom";
3422
+ import { jsx as jsx152, jsxs as jsxs112 } from "react/jsx-runtime";
3423
+ import { cookiesSet as cookiesSet6, fetchCsrfClient as fetchCsrfClient22, goralysFetchClient as goralysFetchClient22, handleToastRequest as handleToastRequest22 } from "@goralys/core";
3424
+ import { jsx as jsx162, jsxs as jsxs122 } from "react/jsx-runtime";
3425
+ import { useState as useState92 } from "react";
3426
+ import { jsx as jsx172, jsxs as jsxs132 } from "react/jsx-runtime";
3427
+ import { Fragment as Fragment42, jsx as jsx182, jsxs as jsxs142 } from "react/jsx-runtime";
3428
+ import { AcademicCapIcon as AcademicCapIcon3, BookOpenIcon as BookOpenIcon2 } from "@heroicons/react/24/outline";
3429
+ import { jsx as jsx192, jsxs as jsxs152 } from "react/jsx-runtime";
3430
+ import { useEffect as useEffect52, useState as useState102 } from "react";
3431
+ import { jsx as jsx202, jsxs as jsxs162 } from "react/jsx-runtime";
3432
+ import { jsx as jsx212, jsxs as jsxs172 } from "react/jsx-runtime";
3433
+ import { useEffect as useEffect62, useState as useState112 } from "react";
3434
+ import { jsx as jsx222, jsxs as jsxs182 } from "react/jsx-runtime";
3435
+ import { useEffect as useEffect72, useState as useState122 } from "react";
3436
+ import { jsx as jsx232, jsxs as jsxs192 } from "react/jsx-runtime";
3437
+ import { getShortFromLong as getShortFromLong4, getStatusLabel as getStatusLabel5 } from "@goralys/core";
3438
+ import { jsx as jsx242, jsxs as jsxs202 } from "react/jsx-runtime";
3439
+ import { Fragment as Fragment52, jsx as jsx252, jsxs as jsxs212 } from "react/jsx-runtime";
3440
+ import { useEffect as useEffect82, useState as useState132 } from "react";
3441
+ import * as React52 from "react";
3442
+ import { XMarkIcon as XMarkIcon2 } from "@heroicons/react/24/outline";
3443
+ import { COOKIES_DISMISSED_KEY as COOKIES_DISMISSED_KEY2, cookiesGet as cookiesGet22, cookiesSet as cookiesSet22 } from "@goralys/core";
3444
+ import { jsx as jsx262, jsxs as jsxs222 } from "react/jsx-runtime";
3445
+ import { useEffect as useEffect92, useRef as useRef42 } from "react";
3446
+ import { LOGO_PATH as LOGO_PATH2 } from "@goralys/core";
3447
+ import { jsx as jsx272, jsxs as jsxs232 } from "react/jsx-runtime";
3448
+ import { useId as useId2 } from "react";
3449
+ import { jsx as jsx282, jsxs as jsxs242 } from "react/jsx-runtime";
3450
+ import { useState as useState142 } from "react";
3451
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon3 } from "@heroicons/react/24/outline";
3452
+ import clsx62 from "clsx";
3453
+ import { jsx as jsx292, jsxs as jsxs252 } from "react/jsx-runtime";
3454
+ import { useState as useState152 } from "react";
3455
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon22 } from "@heroicons/react/24/outline";
3456
+ import clsx72 from "clsx";
3457
+ import { jsx as jsx302, jsxs as jsxs262 } from "react/jsx-runtime";
3458
+ import { getStatusHelper as getStatusHelper4 } from "@goralys/core";
3459
+ import { clsx as clsx82 } from "clsx";
3460
+ import { useState as useState162 } from "react";
3461
+ import { jsx as jsx312, jsxs as jsxs272 } from "react/jsx-runtime";
3462
+ import { jsx as jsx322 } from "react/jsx-runtime";
3463
+ import { getStatusHelper as getStatusHelper22 } from "@goralys/core";
3464
+ import { jsx as jsx332, jsxs as jsxs282 } from "react/jsx-runtime";
3465
+ import { buildApiUrl as buildApiUrl22, getGoralysClientConfig as getGoralysClientConfig3, getStatusHelper as getStatusHelper32 } from "@goralys/core";
3466
+ import { ArrowDownTrayIcon as ArrowDownTrayIcon2 } from "@heroicons/react/24/outline";
3467
+ import { jsx as jsx342, jsxs as jsxs292 } from "react/jsx-runtime";
3468
+ import { clsx as clsx92 } from "clsx";
3469
+ import { useState as useState172 } from "react";
3470
+ import { jsx as jsx352, jsxs as jsxs302 } from "react/jsx-runtime";
3471
+ import { createContext as createContext52, useCallback as useCallback52, useContext as useContext52, useMemo as useMemo52, useState as useState192 } from "react";
3472
+ import { clsx as clsx102 } from "clsx";
3473
+ import { useRef as useRef52, useState as useState182 } from "react";
3474
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon22 } from "@heroicons/react/24/outline";
3475
+ import { jsx as jsx362, jsxs as jsxs312 } from "react/jsx-runtime";
3476
+ import { createPortal as createPortal42 } from "react-dom";
3477
+ import { jsx as jsx372, jsxs as jsxs322 } from "react/jsx-runtime";
3478
+ import { createContext as createContext62, useCallback as useCallback62, useContext as useContext62, useMemo as useMemo62, useState as useState212 } from "react";
3479
+ import { clsx as clsx112 } from "clsx";
3480
+ import { useRef as useRef62, useState as useState202 } from "react";
3481
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon32 } from "@heroicons/react/24/outline";
3482
+ import { jsx as jsx382, jsxs as jsxs332 } from "react/jsx-runtime";
3483
+ import { createPortal as createPortal52 } from "react-dom";
3484
+ import { jsx as jsx392, jsxs as jsxs342 } from "react/jsx-runtime";
3485
+ import { createContext as createContext72, useCallback as useCallback72, useContext as useContext72, useMemo as useMemo72, useState as useState232 } from "react";
3486
+ import { clsx as clsx122 } from "clsx";
3487
+ import { useRef as useRef72, useState as useState222 } from "react";
3488
+ import { AtSymbolIcon as AtSymbolIcon2 } from "@heroicons/react/24/outline";
3489
+ import { jsx as jsx402, jsxs as jsxs352 } from "react/jsx-runtime";
3490
+ import { createPortal as createPortal62 } from "react-dom";
3491
+ import { jsx as jsx412, jsxs as jsxs362 } from "react/jsx-runtime";
3492
+ import { createContext as createContext82, useCallback as useCallback82, useContext as useContext82, useMemo as useMemo82, useState as useState252 } from "react";
3493
+ import { createPortal as createPortal72 } from "react-dom";
3494
+ import { clsx as clsx132 } from "clsx";
3495
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon42 } from "@heroicons/react/24/outline";
3496
+ import { useRef as useRef82, useState as useState242 } from "react";
3497
+ import { jsx as jsx422, jsxs as jsxs372 } from "react/jsx-runtime";
3498
+ import { jsx as jsx432, jsxs as jsxs382 } from "react/jsx-runtime";
3499
+ import { Fragment as Fragment62, jsx as jsx442, jsxs as jsxs392 } from "react/jsx-runtime";
3500
+ import { clsx as clsx142 } from "clsx";
3501
+ import { jsx as jsx452 } from "react/jsx-runtime";
3502
+ import { useEffect as useEffect102, useState as useState262 } from "react";
3503
+ import { cookiesGet as cookiesGet32, emptyUserCacheClient as emptyUserCacheClient3, FULL_NAME_KEY as FULL_NAME_KEY2, onUserEvent as onUserEvent3, USERNAME_KEY as USERNAME_KEY4 } from "@goralys/core";
3504
+ import { UserCircleIcon as UserCircleIcon3 } from "@heroicons/react/24/outline";
3505
+ import clsx152 from "clsx";
3506
+ import { jsx as jsx462, jsxs as jsxs402 } from "react/jsx-runtime";
3507
+ import { useEffect as useEffect112, useState as useState272 } from "react";
3508
+ import { buildArray as buildArray3, cookiesGet as cookiesGet42, cookiesOnChange as cookiesOnChange3, ROLE_KEY as ROLE_KEY3, USER_ROLES as USER_ROLES3 } from "@goralys/core";
3509
+ import { jsx as jsx472, jsxs as jsxs412 } from "react/jsx-runtime";
3510
+ import { useEffect as useEffect132, useState as useState292 } from "react";
3511
+ import { buildArray as buildArray22, cookiesGet as cookiesGet62, cookiesOnChange as cookiesOnChange22, ROLE_KEY as ROLE_KEY22, USER_ROLES as USER_ROLES22 } from "@goralys/core";
3512
+ import { AcademicCapIcon as AcademicCapIcon22, HomeIcon as HomeIcon2 } from "@heroicons/react/24/outline";
3513
+ import { clsx as clsx162 } from "clsx";
3514
+ import { jsx as jsx482, jsxs as jsxs422 } from "react/jsx-runtime";
3515
+ import { useEffect as useEffect122, useState as useState282 } from "react";
3516
+ import { cookiesGet as cookiesGet52, emptyUserCacheClient as emptyUserCacheClient22, onUserEvent as onUserEvent22, USERNAME_KEY as USERNAME_KEY22 } from "@goralys/core";
3517
+ import { UserCircleIcon as UserCircleIcon22 } from "@heroicons/react/24/outline";
3518
+ import clsx172 from "clsx";
3519
+ import { jsx as jsx492, jsxs as jsxs432 } from "react/jsx-runtime";
3520
+ import { jsx as jsx502, jsxs as jsxs442 } from "react/jsx-runtime";
3521
+ import { jsx as jsx512 } from "react/jsx-runtime";
3522
+ import { jsx as jsx522 } from "react/jsx-runtime";
3523
+ import { jsx as jsx532, jsxs as jsxs452 } from "react/jsx-runtime";
3524
+ import clsx182 from "clsx";
3525
+ import { jsx as jsx542, jsxs as jsxs462 } from "react/jsx-runtime";
3526
+ import { jsx as jsx552, jsxs as jsxs472 } from "react/jsx-runtime";
3527
+ import { jsx as jsx562, jsxs as jsxs482 } from "react/jsx-runtime";
3528
+ import { jsx as jsx572, jsxs as jsxs492 } from "react/jsx-runtime";
3529
+ import { jsx as jsx582, jsxs as jsxs502 } from "react/jsx-runtime";
3530
+ import { jsx as jsx592, jsxs as jsxs512 } from "react/jsx-runtime";
3531
+ import { jsx as jsx602, jsxs as jsxs522 } from "react/jsx-runtime";
3532
+ import { Fragment as Fragment72, jsx as jsx612, jsxs as jsxs532 } from "react/jsx-runtime";
3533
+ import { Fragment as Fragment82, jsx as jsx622, jsxs as jsxs542 } from "react/jsx-runtime";
3534
+ import { jsx as jsx632, jsxs as jsxs552 } from "react/jsx-runtime";
3535
+ import {
3536
+ cookiesSet as cookiesSet32,
3537
+ fetchCsrfClient as fetchCsrfClient32,
3538
+ getStatusLabel as getStatusLabel22,
3539
+ goralysFetchClient as goralysFetchClient32,
3540
+ handleToastRequest as handleToastRequest32,
3541
+ SubjectStatusConfig as SubjectStatusConfig2
3542
+ } from "@goralys/core";
3543
+ import { jsx as jsx642, jsxs as jsxs562 } from "react/jsx-runtime";
3544
+ import { ChevronRightIcon as ChevronRightIcon3 } from "@heroicons/react/24/outline";
3545
+ import { Fragment as Fragment92, jsx as jsx652, jsxs as jsxs572 } from "react/jsx-runtime";
3546
+ import { ChevronRightIcon as ChevronRightIcon22 } from "@heroicons/react/24/outline";
3547
+ import { Fragment as Fragment102, jsx as jsx662, jsxs as jsxs582 } from "react/jsx-runtime";
3548
+ import { getStatusLabel as getStatusLabel32 } from "@goralys/core";
3549
+ import { jsx as jsx672, jsxs as jsxs592 } from "react/jsx-runtime";
3550
+ import {
3551
+ cookiesSet as cookiesSet42,
3552
+ fetchCsrfClient as fetchCsrfClient42,
3553
+ getShortFromLong as getShortFromLong22,
3554
+ goralysFetchClient as goralysFetchClient42,
3555
+ handleToastRequest as handleToastRequest42,
3556
+ SUBJECT_SYNCS as SUBJECT_SYNCS3
3557
+ } from "@goralys/core";
3558
+ import { useState as useState302 } from "react";
3559
+ import { Fragment as Fragment112, jsx as jsx682, jsxs as jsxs602 } from "react/jsx-runtime";
3560
+ import { useCallback as useCallback92, useEffect as useEffect142, useState as useState312 } from "react";
3561
+ import { getStatusLabel as getStatusLabel42 } from "@goralys/core";
3562
+ import { jsx as jsx692 } from "react/jsx-runtime";
3563
+ import { useEffect as useEffect152, useState as useState322 } from "react";
3564
+ import { getLongFromShort as getLongFromShort2, searchFields as searchFields2 } from "@goralys/core";
3565
+ import { jsx as jsx702, jsxs as jsxs612 } from "react/jsx-runtime";
3566
+ import {
3567
+ cookiesSet as cookiesSet52,
3568
+ fetchCsrfClient as fetchCsrfClient52,
3569
+ getShortFromLong as getShortFromLong32,
3570
+ goralysFetchClient as goralysFetchClient52,
3571
+ handleToastRequest as handleToastRequest52,
3572
+ SUBJECT_SYNCS as SUBJECT_SYNCS22
3573
+ } from "@goralys/core";
3574
+ import { useRef as useRef92, useState as useState332 } from "react";
3575
+ import { Fragment as Fragment122, jsx as jsx712, jsxs as jsxs622 } from "react/jsx-runtime";
3576
+ import { useEffect as useEffect162, useState as useState342 } from "react";
3577
+ import { cookiesGet as cookiesGet72, EMAIL_KEY as EMAIL_KEY2, fetchCsrfClient as fetchCsrfClient62, getGoralysClientConfig as getGoralysClientConfig22, reasonsConfig as reasonsConfig2, USERNAME_KEY as USERNAME_KEY32 } from "@goralys/core";
3578
+ import { jsx as jsx722, jsxs as jsxs632 } from "react/jsx-runtime";
3579
+ import { buildApiUrl as buildApiUrl15, reasonsConfig as reasonsConfig8 } from "@goralys/core";
3580
+ import { createContext as createContext92, useContext as useContext92, useMemo as useMemo92 } from "react";
3581
+ import { jsx as jsx732 } from "react/jsx-runtime";
3582
+ import { useEffect as useEffect172, useState as useState352 } from "react";
3583
+ import { useCallback as useCallback102 } from "react";
3584
+ import { useEffect as useEffect222 } from "react";
3585
+ import clsx192 from "clsx";
3586
+ import { jsx as jsx2102 } from "react/jsx-runtime";
3587
+ import { Fragment as Fragment132, jsx as jsx3102, jsxs as jsxs642 } from "react/jsx-runtime";
3588
+ import { jsx as jsx4102 } from "react/jsx-runtime";
3589
+ import { cookiesGet as cookiesGet82, PUB_ID_KEY as PUB_ID_KEY22 } from "@goralys/core";
3590
+ import { ShieldExclamationIcon as ShieldExclamationIcon22 } from "@heroicons/react/24/outline";
3591
+ import { Fragment as Fragment222, jsx as jsx5102, jsxs as jsxs2102 } from "react/jsx-runtime";
3592
+ import { clsx as clsx222 } from "clsx";
3593
+ import { useState as useState2102 } from "react";
3594
+ import { EyeIcon as EyeIcon22, EyeSlashIcon as EyeSlashIcon22 } from "@heroicons/react/24/outline";
3595
+ import { jsx as jsx6102, jsxs as jsxs3102 } from "react/jsx-runtime";
3596
+ import { useEffect as useEffect322, useState as useState362 } from "react";
3597
+ import { jsx as jsx742 } from "react/jsx-runtime";
3598
+ import { parsePhpDateTime as parsePhpDateTime32 } from "@goralys/core";
3599
+ import { Fragment as Fragment322, jsx as jsx822, jsxs as jsxs4102 } from "react/jsx-runtime";
3600
+ import { buildApiUrl as buildApiUrl32, fetchCsrfClient as fetchCsrfClient72, goralysFetchClient as goralysFetchClient62, handleToastRequest as handleToastRequest62, parsePhpDateTime as parsePhpDateTime222 } from "@goralys/core";
3601
+ import { createContext as createContext222, useCallback as useCallback222, useContext as useContext222, useEffect as useEffect422, useMemo as useMemo222, useRef as useRef102, useState as useState422 } from "react";
3602
+ import { clsx as clsx322 } from "clsx";
3603
+ import { CheckCircleIcon as CheckCircleIcon22, ExclamationCircleIcon as ExclamationCircleIcon22, InformationCircleIcon as InformationCircleIcon22, XCircleIcon as XCircleIcon22 } from "@heroicons/react/24/outline";
3604
+ import { jsx as jsx922, jsxs as jsxs5102 } from "react/jsx-runtime";
3605
+ import { FLASH_TOAST_KEY as FLASH_TOAST_KEY22, storageSet as storageSet22 } from "@goralys/core";
3606
+ import { createPortal as createPortal82 } from "react-dom";
3607
+ import { jsx as jsx1022, jsxs as jsxs652 } from "react/jsx-runtime";
3608
+ import { createContext as createContext322, useCallback as useCallback322, useContext as useContext322, useMemo as useMemo322, useState as useState522 } from "react";
3609
+ import { clsx as clsx422 } from "clsx";
3610
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon52 } from "@heroicons/react/24/outline";
3611
+ import { useRef as useRef222 } from "react";
3612
+ import { jsx as jsx1122, jsxs as jsxs722 } from "react/jsx-runtime";
3613
+ import { createPortal as createPortal222 } from "react-dom";
3614
+ import { jsx as jsx1222, jsxs as jsxs822 } from "react/jsx-runtime";
3615
+ import { jsx as jsx1322, jsxs as jsxs922 } from "react/jsx-runtime";
3616
+ import { useState as useState822 } from "react";
3617
+ import { createContext as createContext422, useCallback as useCallback422, useContext as useContext422, useMemo as useMemo422, useState as useState722 } from "react";
3618
+ import { LockClosedIcon as LockClosedIcon22 } from "@heroicons/react/16/solid";
3619
+ import { clsx as clsx522 } from "clsx";
3620
+ import { useRef as useRef322, useState as useState622 } from "react";
3621
+ import { jsx as jsx1422, jsxs as jsxs1022 } from "react/jsx-runtime";
3622
+ import { createPortal as createPortal322 } from "react-dom";
3623
+ import { jsx as jsx1522, jsxs as jsxs1122 } from "react/jsx-runtime";
3624
+ import { cookiesSet as cookiesSet62, fetchCsrfClient as fetchCsrfClient222, goralysFetchClient as goralysFetchClient222, handleToastRequest as handleToastRequest222 } from "@goralys/core";
3625
+ import { jsx as jsx1622, jsxs as jsxs1222 } from "react/jsx-runtime";
3626
+ import { useState as useState922 } from "react";
3627
+ import { jsx as jsx1722, jsxs as jsxs1322 } from "react/jsx-runtime";
3628
+ import { Fragment as Fragment422, jsx as jsx1822, jsxs as jsxs1422 } from "react/jsx-runtime";
3629
+ import { AcademicCapIcon as AcademicCapIcon32, BookOpenIcon as BookOpenIcon22 } from "@heroicons/react/24/outline";
3630
+ import { jsx as jsx1922, jsxs as jsxs1522 } from "react/jsx-runtime";
3631
+ import { useEffect as useEffect522, useState as useState1022 } from "react";
3632
+ import { jsx as jsx2022, jsxs as jsxs1622 } from "react/jsx-runtime";
3633
+ import { jsx as jsx2122, jsxs as jsxs1722 } from "react/jsx-runtime";
3634
+ import { useEffect as useEffect622, useState as useState1122 } from "react";
3635
+ import { jsx as jsx2222, jsxs as jsxs1822 } from "react/jsx-runtime";
3636
+ import { useEffect as useEffect722, useState as useState1222 } from "react";
3637
+ import { jsx as jsx2322, jsxs as jsxs1922 } from "react/jsx-runtime";
3638
+ import { getShortFromLong as getShortFromLong42, getStatusLabel as getStatusLabel52 } from "@goralys/core";
3639
+ import { jsx as jsx2422, jsxs as jsxs2022 } from "react/jsx-runtime";
3640
+ import { Fragment as Fragment522, jsx as jsx2522, jsxs as jsxs2122 } from "react/jsx-runtime";
3641
+ import { useEffect as useEffect822, useState as useState1322 } from "react";
3642
+ import * as React522 from "react";
3643
+ import { XMarkIcon as XMarkIcon22 } from "@heroicons/react/24/outline";
3644
+ import { COOKIES_DISMISSED_KEY as COOKIES_DISMISSED_KEY22, cookiesGet as cookiesGet222, cookiesSet as cookiesSet222 } from "@goralys/core";
3645
+ import { jsx as jsx2622, jsxs as jsxs2222 } from "react/jsx-runtime";
3646
+ import { useEffect as useEffect922, useRef as useRef422 } from "react";
3647
+ import { LOGO_PATH as LOGO_PATH22 } from "@goralys/core";
3648
+ import { jsx as jsx2722, jsxs as jsxs2322 } from "react/jsx-runtime";
3649
+ import { useId as useId22 } from "react";
3650
+ import { jsx as jsx2822, jsxs as jsxs2422 } from "react/jsx-runtime";
3651
+ import { useState as useState1422 } from "react";
3652
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon32 } from "@heroicons/react/24/outline";
3653
+ import clsx622 from "clsx";
3654
+ import { jsx as jsx2922, jsxs as jsxs2522 } from "react/jsx-runtime";
3655
+ import { useState as useState1522 } from "react";
3656
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon222 } from "@heroicons/react/24/outline";
3657
+ import clsx722 from "clsx";
3658
+ import { jsx as jsx3022, jsxs as jsxs2622 } from "react/jsx-runtime";
3659
+ import { getStatusHelper as getStatusHelper42 } from "@goralys/core";
3660
+ import { clsx as clsx822 } from "clsx";
3661
+ import { useState as useState1622 } from "react";
3662
+ import { jsx as jsx3122, jsxs as jsxs2722 } from "react/jsx-runtime";
3663
+ import { jsx as jsx3222 } from "react/jsx-runtime";
3664
+ import { getStatusHelper as getStatusHelper222 } from "@goralys/core";
3665
+ import { jsx as jsx3322, jsxs as jsxs2822 } from "react/jsx-runtime";
3666
+ import { buildApiUrl as buildApiUrl222, getGoralysClientConfig as getGoralysClientConfig32, getStatusHelper as getStatusHelper322 } from "@goralys/core";
3667
+ import { ArrowDownTrayIcon as ArrowDownTrayIcon22 } from "@heroicons/react/24/outline";
3668
+ import { jsx as jsx3422, jsxs as jsxs2922 } from "react/jsx-runtime";
3669
+ import { clsx as clsx922 } from "clsx";
3670
+ import { useState as useState1722 } from "react";
3671
+ import { jsx as jsx3522, jsxs as jsxs3022 } from "react/jsx-runtime";
3672
+ import { createContext as createContext522, useCallback as useCallback522, useContext as useContext522, useMemo as useMemo522, useState as useState1922 } from "react";
3673
+ import { clsx as clsx1022 } from "clsx";
3674
+ import { useRef as useRef522, useState as useState1822 } from "react";
3675
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon222 } from "@heroicons/react/24/outline";
3676
+ import { jsx as jsx3622, jsxs as jsxs3122 } from "react/jsx-runtime";
3677
+ import { createPortal as createPortal422 } from "react-dom";
3678
+ import { jsx as jsx3722, jsxs as jsxs3222 } from "react/jsx-runtime";
3679
+ import { createContext as createContext622, useCallback as useCallback622, useContext as useContext622, useMemo as useMemo622, useState as useState2122 } from "react";
3680
+ import { clsx as clsx1122 } from "clsx";
3681
+ import { useRef as useRef622, useState as useState2022 } from "react";
3682
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon322 } from "@heroicons/react/24/outline";
3683
+ import { jsx as jsx3822, jsxs as jsxs3322 } from "react/jsx-runtime";
3684
+ import { createPortal as createPortal522 } from "react-dom";
3685
+ import { jsx as jsx3922, jsxs as jsxs3422 } from "react/jsx-runtime";
3686
+ import { createContext as createContext722, useCallback as useCallback722, useContext as useContext722, useMemo as useMemo722, useState as useState2322 } from "react";
3687
+ import { clsx as clsx1222 } from "clsx";
3688
+ import { useRef as useRef722, useState as useState2222 } from "react";
3689
+ import { AtSymbolIcon as AtSymbolIcon22 } from "@heroicons/react/24/outline";
3690
+ import { jsx as jsx4022, jsxs as jsxs3522 } from "react/jsx-runtime";
3691
+ import { createPortal as createPortal622 } from "react-dom";
3692
+ import { jsx as jsx4122, jsxs as jsxs3622 } from "react/jsx-runtime";
3693
+ import { createContext as createContext822, useCallback as useCallback822, useContext as useContext822, useMemo as useMemo822, useState as useState2522 } from "react";
3694
+ import { createPortal as createPortal722 } from "react-dom";
3695
+ import { clsx as clsx1322 } from "clsx";
3696
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon422 } from "@heroicons/react/24/outline";
3697
+ import { useRef as useRef822, useState as useState2422 } from "react";
3698
+ import { jsx as jsx4222, jsxs as jsxs3722 } from "react/jsx-runtime";
3699
+ import { jsx as jsx4322, jsxs as jsxs3822 } from "react/jsx-runtime";
3700
+ import { Fragment as Fragment622, jsx as jsx4422, jsxs as jsxs3922 } from "react/jsx-runtime";
3701
+ import { clsx as clsx1422 } from "clsx";
3702
+ import { jsx as jsx4522 } from "react/jsx-runtime";
3703
+ import { useEffect as useEffect1022, useState as useState2622 } from "react";
3704
+ import { cookiesGet as cookiesGet322, emptyUserCacheClient as emptyUserCacheClient32, FULL_NAME_KEY as FULL_NAME_KEY22, onUserEvent as onUserEvent32, USERNAME_KEY as USERNAME_KEY42 } from "@goralys/core";
3705
+ import { UserCircleIcon as UserCircleIcon32 } from "@heroicons/react/24/outline";
3706
+ import clsx1522 from "clsx";
3707
+ import { jsx as jsx4622, jsxs as jsxs4022 } from "react/jsx-runtime";
3708
+ import { useEffect as useEffect1122, useState as useState2722 } from "react";
3709
+ import { buildArray as buildArray32, cookiesGet as cookiesGet422, cookiesOnChange as cookiesOnChange32, ROLE_KEY as ROLE_KEY32, USER_ROLES as USER_ROLES32 } from "@goralys/core";
3710
+ import { jsx as jsx4722, jsxs as jsxs4122 } from "react/jsx-runtime";
3711
+ import { useEffect as useEffect1322, useState as useState2922 } from "react";
3712
+ import { buildArray as buildArray222, cookiesGet as cookiesGet622, cookiesOnChange as cookiesOnChange222, ROLE_KEY as ROLE_KEY222, USER_ROLES as USER_ROLES222 } from "@goralys/core";
3713
+ import { AcademicCapIcon as AcademicCapIcon222, HomeIcon as HomeIcon22 } from "@heroicons/react/24/outline";
3714
+ import { clsx as clsx1622 } from "clsx";
3715
+ import { jsx as jsx4822, jsxs as jsxs4222 } from "react/jsx-runtime";
3716
+ import { useEffect as useEffect1222, useState as useState2822 } from "react";
3717
+ import { cookiesGet as cookiesGet522, emptyUserCacheClient as emptyUserCacheClient222, onUserEvent as onUserEvent222, USERNAME_KEY as USERNAME_KEY222 } from "@goralys/core";
3718
+ import { UserCircleIcon as UserCircleIcon222 } from "@heroicons/react/24/outline";
3719
+ import clsx1722 from "clsx";
3720
+ import { jsx as jsx4922, jsxs as jsxs4322 } from "react/jsx-runtime";
3721
+ import { jsx as jsx5022, jsxs as jsxs4422 } from "react/jsx-runtime";
3722
+ import { jsx as jsx5122 } from "react/jsx-runtime";
3723
+ import { jsx as jsx5222 } from "react/jsx-runtime";
3724
+ import { jsx as jsx5322, jsxs as jsxs4522 } from "react/jsx-runtime";
3725
+ import clsx1822 from "clsx";
3726
+ import { jsx as jsx5422, jsxs as jsxs4622 } from "react/jsx-runtime";
3727
+ import { jsx as jsx5522, jsxs as jsxs4722 } from "react/jsx-runtime";
3728
+ import { jsx as jsx5622, jsxs as jsxs4822 } from "react/jsx-runtime";
3729
+ import { jsx as jsx5722, jsxs as jsxs4922 } from "react/jsx-runtime";
3730
+ import { jsx as jsx5822, jsxs as jsxs5022 } from "react/jsx-runtime";
3731
+ import { jsx as jsx5922, jsxs as jsxs5122 } from "react/jsx-runtime";
3732
+ import { jsx as jsx6022, jsxs as jsxs5222 } from "react/jsx-runtime";
3733
+ import { Fragment as Fragment722, jsx as jsx6122, jsxs as jsxs5322 } from "react/jsx-runtime";
3734
+ import { Fragment as Fragment822, jsx as jsx6222, jsxs as jsxs5422 } from "react/jsx-runtime";
3735
+ import { jsx as jsx6322, jsxs as jsxs5522 } from "react/jsx-runtime";
3736
+ import {
3737
+ cookiesSet as cookiesSet322,
3738
+ fetchCsrfClient as fetchCsrfClient322,
3739
+ getStatusLabel as getStatusLabel222,
3740
+ goralysFetchClient as goralysFetchClient322,
3741
+ handleToastRequest as handleToastRequest322,
3742
+ SubjectStatusConfig as SubjectStatusConfig22
3743
+ } from "@goralys/core";
3744
+ import { jsx as jsx6422, jsxs as jsxs5622 } from "react/jsx-runtime";
3745
+ import { ChevronRightIcon as ChevronRightIcon32 } from "@heroicons/react/24/outline";
3746
+ import { Fragment as Fragment922, jsx as jsx6522, jsxs as jsxs5722 } from "react/jsx-runtime";
3747
+ import { ChevronRightIcon as ChevronRightIcon222 } from "@heroicons/react/24/outline";
3748
+ import { Fragment as Fragment1022, jsx as jsx6622, jsxs as jsxs5822 } from "react/jsx-runtime";
3749
+ import { getStatusLabel as getStatusLabel322 } from "@goralys/core";
3750
+ import { jsx as jsx6722, jsxs as jsxs5922 } from "react/jsx-runtime";
3751
+ import {
3752
+ cookiesSet as cookiesSet422,
3753
+ fetchCsrfClient as fetchCsrfClient422,
3754
+ getShortFromLong as getShortFromLong222,
3755
+ goralysFetchClient as goralysFetchClient422,
3756
+ handleToastRequest as handleToastRequest422,
3757
+ SUBJECT_SYNCS as SUBJECT_SYNCS32
3758
+ } from "@goralys/core";
3759
+ import { useState as useState3022 } from "react";
3760
+ import { Fragment as Fragment1122, jsx as jsx6822, jsxs as jsxs6022 } from "react/jsx-runtime";
3761
+ import { useCallback as useCallback922, useEffect as useEffect1422, useState as useState3122 } from "react";
3762
+ import { getStatusLabel as getStatusLabel422 } from "@goralys/core";
3763
+ import { jsx as jsx6922 } from "react/jsx-runtime";
3764
+ import { useEffect as useEffect1522, useState as useState3222 } from "react";
3765
+ import { getLongFromShort as getLongFromShort22, searchFields as searchFields22 } from "@goralys/core";
3766
+ import { jsx as jsx7022, jsxs as jsxs6122 } from "react/jsx-runtime";
3767
+ import {
3768
+ cookiesSet as cookiesSet522,
3769
+ fetchCsrfClient as fetchCsrfClient522,
3770
+ getShortFromLong as getShortFromLong322,
3771
+ goralysFetchClient as goralysFetchClient522,
3772
+ handleToastRequest as handleToastRequest522,
3773
+ SUBJECT_SYNCS as SUBJECT_SYNCS222
3774
+ } from "@goralys/core";
3775
+ import { useRef as useRef922, useState as useState3322 } from "react";
3776
+ import { Fragment as Fragment1222, jsx as jsx7122, jsxs as jsxs6222 } from "react/jsx-runtime";
3777
+ import { useEffect as useEffect1622, useState as useState3422 } from "react";
3778
+ import { cookiesGet as cookiesGet722, EMAIL_KEY as EMAIL_KEY22, fetchCsrfClient as fetchCsrfClient622, getGoralysClientConfig as getGoralysClientConfig222, reasonsConfig as reasonsConfig22, USERNAME_KEY as USERNAME_KEY322 } from "@goralys/core";
3779
+ import { jsx as jsx7222, jsxs as jsxs6322 } from "react/jsx-runtime";
3780
+ import { buildApiUrl as buildApiUrl13, reasonsConfig as reasonsConfig7 } from "@goralys/core";
3781
+ import { createContext as createContext922, useContext as useContext922, useMemo as useMemo922 } from "react";
3782
+ import { jsx as jsx7322 } from "react/jsx-runtime";
3783
+ import { useEffect as useEffect1722, useState as useState3522 } from "react";
3784
+ import { useCallback as useCallback1022 } from "react";
3785
+ import { useEffect as useEffect2222 } from "react";
3786
+ import clsx1922 from "clsx";
3787
+ import { jsx as jsx21022 } from "react/jsx-runtime";
3788
+ import { Fragment as Fragment1322, jsx as jsx31022, jsxs as jsxs6422 } from "react/jsx-runtime";
3789
+ import { jsx as jsx41022 } from "react/jsx-runtime";
3790
+ import { cookiesGet as cookiesGet822, PUB_ID_KEY as PUB_ID_KEY222 } from "@goralys/core";
3791
+ import { ShieldExclamationIcon as ShieldExclamationIcon222 } from "@heroicons/react/24/outline";
3792
+ import { Fragment as Fragment2222, jsx as jsx51022, jsxs as jsxs21022 } from "react/jsx-runtime";
3793
+ import { clsx as clsx2222 } from "clsx";
3794
+ import { useState as useState21022 } from "react";
3795
+ import { EyeIcon as EyeIcon222, EyeSlashIcon as EyeSlashIcon222 } from "@heroicons/react/24/outline";
3796
+ import { jsx as jsx61022, jsxs as jsxs31022 } from "react/jsx-runtime";
3797
+ import { useEffect as useEffect3222, useState as useState3622 } from "react";
3798
+ import { jsx as jsx7422 } from "react/jsx-runtime";
3799
+ import { parsePhpDateTime as parsePhpDateTime322 } from "@goralys/core";
3800
+ import { Fragment as Fragment3222, jsx as jsx8222, jsxs as jsxs41022 } from "react/jsx-runtime";
3801
+ import { buildApiUrl as buildApiUrl322, fetchCsrfClient as fetchCsrfClient722, goralysFetchClient as goralysFetchClient622, handleToastRequest as handleToastRequest622, parsePhpDateTime as parsePhpDateTime2222 } from "@goralys/core";
3802
+ import { createContext as createContext2222, useCallback as useCallback2222, useContext as useContext2222, useEffect as useEffect4222, useMemo as useMemo2222, useRef as useRef1022, useState as useState4222 } from "react";
3803
+ import { clsx as clsx3222 } from "clsx";
3804
+ import { CheckCircleIcon as CheckCircleIcon222, ExclamationCircleIcon as ExclamationCircleIcon222, InformationCircleIcon as InformationCircleIcon222, XCircleIcon as XCircleIcon222 } from "@heroicons/react/24/outline";
3805
+ import { jsx as jsx9222, jsxs as jsxs51022 } from "react/jsx-runtime";
3806
+ import { FLASH_TOAST_KEY as FLASH_TOAST_KEY222, storageSet as storageSet222 } from "@goralys/core";
3807
+ import { createPortal as createPortal822 } from "react-dom";
3808
+ import { jsx as jsx10222, jsxs as jsxs6522 } from "react/jsx-runtime";
3809
+ import { createContext as createContext3222, useCallback as useCallback3222, useContext as useContext3222, useMemo as useMemo3222, useState as useState5222 } from "react";
3810
+ import { clsx as clsx4222 } from "clsx";
3811
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon522 } from "@heroicons/react/24/outline";
3812
+ import { useRef as useRef2222 } from "react";
3813
+ import { jsx as jsx11222, jsxs as jsxs7222 } from "react/jsx-runtime";
3814
+ import { createPortal as createPortal2222 } from "react-dom";
3815
+ import { jsx as jsx12222, jsxs as jsxs8222 } from "react/jsx-runtime";
3816
+ import { jsx as jsx13222, jsxs as jsxs9222 } from "react/jsx-runtime";
3817
+ import { useState as useState8222 } from "react";
3818
+ import { createContext as createContext4222, useCallback as useCallback4222, useContext as useContext4222, useMemo as useMemo4222, useState as useState7222 } from "react";
3819
+ import { LockClosedIcon as LockClosedIcon222 } from "@heroicons/react/16/solid";
3820
+ import { clsx as clsx5222 } from "clsx";
3821
+ import { useRef as useRef3222, useState as useState6222 } from "react";
3822
+ import { jsx as jsx14222, jsxs as jsxs10222 } from "react/jsx-runtime";
3823
+ import { createPortal as createPortal3222 } from "react-dom";
3824
+ import { jsx as jsx15222, jsxs as jsxs11222 } from "react/jsx-runtime";
3825
+ import { cookiesSet as cookiesSet622, fetchCsrfClient as fetchCsrfClient2222, goralysFetchClient as goralysFetchClient2222, handleToastRequest as handleToastRequest2222 } from "@goralys/core";
3826
+ import { jsx as jsx16222, jsxs as jsxs12222 } from "react/jsx-runtime";
3827
+ import { useState as useState9222 } from "react";
3828
+ import { jsx as jsx17222, jsxs as jsxs13222 } from "react/jsx-runtime";
3829
+ import { Fragment as Fragment4222, jsx as jsx18222, jsxs as jsxs14222 } from "react/jsx-runtime";
3830
+ import { AcademicCapIcon as AcademicCapIcon322, BookOpenIcon as BookOpenIcon222 } from "@heroicons/react/24/outline";
3831
+ import { jsx as jsx19222, jsxs as jsxs15222 } from "react/jsx-runtime";
3832
+ import { useEffect as useEffect5222, useState as useState10222 } from "react";
3833
+ import { jsx as jsx20222, jsxs as jsxs16222 } from "react/jsx-runtime";
3834
+ import { jsx as jsx21222, jsxs as jsxs17222 } from "react/jsx-runtime";
3835
+ import { useEffect as useEffect6222, useState as useState11222 } from "react";
3836
+ import { jsx as jsx22222, jsxs as jsxs18222 } from "react/jsx-runtime";
3837
+ import { useEffect as useEffect7222, useState as useState12222 } from "react";
3838
+ import { jsx as jsx23222, jsxs as jsxs19222 } from "react/jsx-runtime";
3839
+ import { getShortFromLong as getShortFromLong422, getStatusLabel as getStatusLabel522 } from "@goralys/core";
3840
+ import { jsx as jsx24222, jsxs as jsxs20222 } from "react/jsx-runtime";
3841
+ import { Fragment as Fragment5222, jsx as jsx25222, jsxs as jsxs21222 } from "react/jsx-runtime";
3842
+ import { useEffect as useEffect8222, useState as useState13222 } from "react";
3843
+ import * as React5222 from "react";
3844
+ import { XMarkIcon as XMarkIcon222 } from "@heroicons/react/24/outline";
3845
+ import { COOKIES_DISMISSED_KEY as COOKIES_DISMISSED_KEY222, cookiesGet as cookiesGet2222, cookiesSet as cookiesSet2222 } from "@goralys/core";
3846
+ import { jsx as jsx26222, jsxs as jsxs22222 } from "react/jsx-runtime";
3847
+ import { useEffect as useEffect9222, useRef as useRef4222 } from "react";
3848
+ import { LOGO_PATH as LOGO_PATH222 } from "@goralys/core";
3849
+ import { jsx as jsx27222, jsxs as jsxs23222 } from "react/jsx-runtime";
3850
+ import { useId as useId222 } from "react";
3851
+ import { jsx as jsx28222, jsxs as jsxs24222 } from "react/jsx-runtime";
3852
+ import { useState as useState14222 } from "react";
3853
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon322 } from "@heroicons/react/24/outline";
3854
+ import clsx6222 from "clsx";
3855
+ import { jsx as jsx29222, jsxs as jsxs25222 } from "react/jsx-runtime";
3856
+ import { useState as useState15222 } from "react";
3857
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon2222 } from "@heroicons/react/24/outline";
3858
+ import clsx7222 from "clsx";
3859
+ import { jsx as jsx30222, jsxs as jsxs26222 } from "react/jsx-runtime";
3860
+ import { getStatusHelper as getStatusHelper422 } from "@goralys/core";
3861
+ import { clsx as clsx8222 } from "clsx";
3862
+ import { useState as useState16222 } from "react";
3863
+ import { jsx as jsx31222, jsxs as jsxs27222 } from "react/jsx-runtime";
3864
+ import { jsx as jsx32222 } from "react/jsx-runtime";
3865
+ import { getStatusHelper as getStatusHelper2222 } from "@goralys/core";
3866
+ import { jsx as jsx33222, jsxs as jsxs28222 } from "react/jsx-runtime";
3867
+ import { buildApiUrl as buildApiUrl2222, getGoralysClientConfig as getGoralysClientConfig322, getStatusHelper as getStatusHelper3222 } from "@goralys/core";
3868
+ import { ArrowDownTrayIcon as ArrowDownTrayIcon222 } from "@heroicons/react/24/outline";
3869
+ import { jsx as jsx34222, jsxs as jsxs29222 } from "react/jsx-runtime";
3870
+ import { clsx as clsx9222 } from "clsx";
3871
+ import { useState as useState17222 } from "react";
3872
+ import { jsx as jsx35222, jsxs as jsxs30222 } from "react/jsx-runtime";
3873
+ import { createContext as createContext5222, useCallback as useCallback5222, useContext as useContext5222, useMemo as useMemo5222, useState as useState19222 } from "react";
3874
+ import { clsx as clsx10222 } from "clsx";
3875
+ import { useRef as useRef5222, useState as useState18222 } from "react";
3876
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon2222 } from "@heroicons/react/24/outline";
3877
+ import { jsx as jsx36222, jsxs as jsxs31222 } from "react/jsx-runtime";
3878
+ import { createPortal as createPortal4222 } from "react-dom";
3879
+ import { jsx as jsx37222, jsxs as jsxs32222 } from "react/jsx-runtime";
3880
+ import { createContext as createContext6222, useCallback as useCallback6222, useContext as useContext6222, useMemo as useMemo6222, useState as useState21222 } from "react";
3881
+ import { clsx as clsx11222 } from "clsx";
3882
+ import { useRef as useRef6222, useState as useState20222 } from "react";
3883
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon3222 } from "@heroicons/react/24/outline";
3884
+ import { jsx as jsx38222, jsxs as jsxs33222 } from "react/jsx-runtime";
3885
+ import { createPortal as createPortal5222 } from "react-dom";
3886
+ import { jsx as jsx39222, jsxs as jsxs34222 } from "react/jsx-runtime";
3887
+ import { createContext as createContext7222, useCallback as useCallback7222, useContext as useContext7222, useMemo as useMemo7222, useState as useState23222 } from "react";
3888
+ import { clsx as clsx12222 } from "clsx";
3889
+ import { useRef as useRef7222, useState as useState22222 } from "react";
3890
+ import { AtSymbolIcon as AtSymbolIcon222 } from "@heroicons/react/24/outline";
3891
+ import { jsx as jsx40222, jsxs as jsxs35222 } from "react/jsx-runtime";
3892
+ import { createPortal as createPortal6222 } from "react-dom";
3893
+ import { jsx as jsx41222, jsxs as jsxs36222 } from "react/jsx-runtime";
3894
+ import { createContext as createContext8222, useCallback as useCallback8222, useContext as useContext8222, useMemo as useMemo8222, useState as useState25222 } from "react";
3895
+ import { createPortal as createPortal7222 } from "react-dom";
3896
+ import { clsx as clsx13222 } from "clsx";
3897
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon4222 } from "@heroicons/react/24/outline";
3898
+ import { useRef as useRef8222, useState as useState24222 } from "react";
3899
+ import { jsx as jsx42222, jsxs as jsxs37222 } from "react/jsx-runtime";
3900
+ import { jsx as jsx43222, jsxs as jsxs38222 } from "react/jsx-runtime";
3901
+ import { Fragment as Fragment6222, jsx as jsx44222, jsxs as jsxs39222 } from "react/jsx-runtime";
3902
+ import { clsx as clsx14222 } from "clsx";
3903
+ import { jsx as jsx45222 } from "react/jsx-runtime";
3904
+ import { useEffect as useEffect10222, useState as useState26222 } from "react";
3905
+ import { cookiesGet as cookiesGet3222, emptyUserCacheClient as emptyUserCacheClient322, FULL_NAME_KEY as FULL_NAME_KEY222, onUserEvent as onUserEvent322, USERNAME_KEY as USERNAME_KEY422 } from "@goralys/core";
3906
+ import { UserCircleIcon as UserCircleIcon322 } from "@heroicons/react/24/outline";
3907
+ import clsx15222 from "clsx";
3908
+ import { jsx as jsx46222, jsxs as jsxs40222 } from "react/jsx-runtime";
3909
+ import { useEffect as useEffect11222, useState as useState27222 } from "react";
3910
+ import { buildArray as buildArray322, cookiesGet as cookiesGet4222, cookiesOnChange as cookiesOnChange322, ROLE_KEY as ROLE_KEY322, USER_ROLES as USER_ROLES322 } from "@goralys/core";
3911
+ import { jsx as jsx47222, jsxs as jsxs41222 } from "react/jsx-runtime";
3912
+ import { useEffect as useEffect13222, useState as useState29222 } from "react";
3913
+ import { buildArray as buildArray2222, cookiesGet as cookiesGet6222, cookiesOnChange as cookiesOnChange2222, ROLE_KEY as ROLE_KEY2222, USER_ROLES as USER_ROLES2222 } from "@goralys/core";
3914
+ import { AcademicCapIcon as AcademicCapIcon2222, HomeIcon as HomeIcon222 } from "@heroicons/react/24/outline";
3915
+ import { clsx as clsx16222 } from "clsx";
3916
+ import { jsx as jsx48222, jsxs as jsxs42222 } from "react/jsx-runtime";
3917
+ import { useEffect as useEffect12222, useState as useState28222 } from "react";
3918
+ import { cookiesGet as cookiesGet5222, emptyUserCacheClient as emptyUserCacheClient2222, onUserEvent as onUserEvent2222, USERNAME_KEY as USERNAME_KEY2222 } from "@goralys/core";
3919
+ import { UserCircleIcon as UserCircleIcon2222 } from "@heroicons/react/24/outline";
3920
+ import clsx17222 from "clsx";
3921
+ import { jsx as jsx49222, jsxs as jsxs43222 } from "react/jsx-runtime";
3922
+ import { jsx as jsx50222, jsxs as jsxs44222 } from "react/jsx-runtime";
3923
+ import { jsx as jsx51222 } from "react/jsx-runtime";
3924
+ import { jsx as jsx52222 } from "react/jsx-runtime";
3925
+ import { jsx as jsx53222, jsxs as jsxs45222 } from "react/jsx-runtime";
3926
+ import clsx18222 from "clsx";
3927
+ import { jsx as jsx54222, jsxs as jsxs46222 } from "react/jsx-runtime";
3928
+ import { jsx as jsx55222, jsxs as jsxs47222 } from "react/jsx-runtime";
3929
+ import { jsx as jsx56222, jsxs as jsxs48222 } from "react/jsx-runtime";
3930
+ import { jsx as jsx57222, jsxs as jsxs49222 } from "react/jsx-runtime";
3931
+ import { jsx as jsx58222, jsxs as jsxs50222 } from "react/jsx-runtime";
3932
+ import { jsx as jsx59222, jsxs as jsxs51222 } from "react/jsx-runtime";
3933
+ import { jsx as jsx60222, jsxs as jsxs52222 } from "react/jsx-runtime";
3934
+ import { Fragment as Fragment7222, jsx as jsx61222, jsxs as jsxs53222 } from "react/jsx-runtime";
3935
+ import { Fragment as Fragment8222, jsx as jsx62222, jsxs as jsxs54222 } from "react/jsx-runtime";
3936
+ import { jsx as jsx63222, jsxs as jsxs55222 } from "react/jsx-runtime";
3937
+ import {
3938
+ cookiesSet as cookiesSet3222,
3939
+ fetchCsrfClient as fetchCsrfClient3222,
3940
+ getStatusLabel as getStatusLabel2222,
3941
+ goralysFetchClient as goralysFetchClient3222,
3942
+ handleToastRequest as handleToastRequest3222,
3943
+ SubjectStatusConfig as SubjectStatusConfig222
3944
+ } from "@goralys/core";
3945
+ import { jsx as jsx64222, jsxs as jsxs56222 } from "react/jsx-runtime";
3946
+ import { ChevronRightIcon as ChevronRightIcon322 } from "@heroicons/react/24/outline";
3947
+ import { Fragment as Fragment9222, jsx as jsx65222, jsxs as jsxs57222 } from "react/jsx-runtime";
3948
+ import { ChevronRightIcon as ChevronRightIcon2222 } from "@heroicons/react/24/outline";
3949
+ import { Fragment as Fragment10222, jsx as jsx66222, jsxs as jsxs58222 } from "react/jsx-runtime";
3950
+ import { getStatusLabel as getStatusLabel3222 } from "@goralys/core";
3951
+ import { jsx as jsx67222, jsxs as jsxs59222 } from "react/jsx-runtime";
3952
+ import {
3953
+ cookiesSet as cookiesSet4222,
3954
+ fetchCsrfClient as fetchCsrfClient4222,
3955
+ getShortFromLong as getShortFromLong2222,
3956
+ goralysFetchClient as goralysFetchClient4222,
3957
+ handleToastRequest as handleToastRequest4222,
3958
+ SUBJECT_SYNCS as SUBJECT_SYNCS322
3959
+ } from "@goralys/core";
3960
+ import { useState as useState30222 } from "react";
3961
+ import { Fragment as Fragment11222, jsx as jsx68222, jsxs as jsxs60222 } from "react/jsx-runtime";
3962
+ import { useCallback as useCallback9222, useEffect as useEffect14222, useState as useState31222 } from "react";
3963
+ import { getStatusLabel as getStatusLabel4222 } from "@goralys/core";
3964
+ import { jsx as jsx69222 } from "react/jsx-runtime";
3965
+ import { useEffect as useEffect15222, useState as useState32222 } from "react";
3966
+ import { getLongFromShort as getLongFromShort222, searchFields as searchFields222 } from "@goralys/core";
3967
+ import { jsx as jsx70222, jsxs as jsxs61222 } from "react/jsx-runtime";
3968
+ import {
3969
+ cookiesSet as cookiesSet5222,
3970
+ fetchCsrfClient as fetchCsrfClient5222,
3971
+ getShortFromLong as getShortFromLong3222,
3972
+ goralysFetchClient as goralysFetchClient5222,
3973
+ handleToastRequest as handleToastRequest5222,
3974
+ SUBJECT_SYNCS as SUBJECT_SYNCS2222
3975
+ } from "@goralys/core";
3976
+ import { useRef as useRef9222, useState as useState33222 } from "react";
3977
+ import { Fragment as Fragment12222, jsx as jsx71222, jsxs as jsxs62222 } from "react/jsx-runtime";
3978
+ import { useEffect as useEffect16222, useState as useState34222 } from "react";
3979
+ import { cookiesGet as cookiesGet7222, EMAIL_KEY as EMAIL_KEY222, fetchCsrfClient as fetchCsrfClient6222, getGoralysClientConfig as getGoralysClientConfig2222, reasonsConfig as reasonsConfig222, USERNAME_KEY as USERNAME_KEY3222 } from "@goralys/core";
3980
+ import { jsx as jsx72222, jsxs as jsxs63222 } from "react/jsx-runtime";
3981
+ import { buildApiUrl as buildApiUrl11, reasonsConfig as reasonsConfig6 } from "@goralys/core";
3982
+ import { createContext as createContext9222, useContext as useContext9222, useMemo as useMemo9222 } from "react";
3983
+ import { jsx as jsx73222 } from "react/jsx-runtime";
3984
+ import { useEffect as useEffect17222, useState as useState35222 } from "react";
3985
+ import { useCallback as useCallback10222 } from "react";
3986
+ import { useEffect as useEffect22222 } from "react";
3987
+ import clsx19222 from "clsx";
3988
+ import { jsx as jsx210222 } from "react/jsx-runtime";
3989
+ import { Fragment as Fragment13222, jsx as jsx310222, jsxs as jsxs64222 } from "react/jsx-runtime";
3990
+ import { jsx as jsx410222 } from "react/jsx-runtime";
3991
+ import { cookiesGet as cookiesGet8222, PUB_ID_KEY as PUB_ID_KEY2222 } from "@goralys/core";
3992
+ import { ShieldExclamationIcon as ShieldExclamationIcon2222 } from "@heroicons/react/24/outline";
3993
+ import { Fragment as Fragment22222, jsx as jsx510222, jsxs as jsxs210222 } from "react/jsx-runtime";
3994
+ import { clsx as clsx22222 } from "clsx";
3995
+ import { useState as useState210222 } from "react";
3996
+ import { EyeIcon as EyeIcon2222, EyeSlashIcon as EyeSlashIcon2222 } from "@heroicons/react/24/outline";
3997
+ import { jsx as jsx610222, jsxs as jsxs310222 } from "react/jsx-runtime";
3998
+ import { useEffect as useEffect32222, useState as useState36222 } from "react";
3999
+ import { jsx as jsx74222 } from "react/jsx-runtime";
4000
+ import { parsePhpDateTime as parsePhpDateTime3222 } from "@goralys/core";
4001
+ import { Fragment as Fragment32222, jsx as jsx82222, jsxs as jsxs410222 } from "react/jsx-runtime";
4002
+ import { buildApiUrl as buildApiUrl3222, fetchCsrfClient as fetchCsrfClient7222, goralysFetchClient as goralysFetchClient6222, handleToastRequest as handleToastRequest6222, parsePhpDateTime as parsePhpDateTime22222 } from "@goralys/core";
4003
+ import { createContext as createContext22222, useCallback as useCallback22222, useContext as useContext22222, useEffect as useEffect42222, useMemo as useMemo22222, useRef as useRef10222, useState as useState42222 } from "react";
4004
+ import { clsx as clsx32222 } from "clsx";
4005
+ import { CheckCircleIcon as CheckCircleIcon2222, ExclamationCircleIcon as ExclamationCircleIcon2222, InformationCircleIcon as InformationCircleIcon2222, XCircleIcon as XCircleIcon2222 } from "@heroicons/react/24/outline";
4006
+ import { jsx as jsx92222, jsxs as jsxs510222 } from "react/jsx-runtime";
4007
+ import { FLASH_TOAST_KEY as FLASH_TOAST_KEY2222, storageSet as storageSet2222 } from "@goralys/core";
4008
+ import { createPortal as createPortal8222 } from "react-dom";
4009
+ import { jsx as jsx102222, jsxs as jsxs65222 } from "react/jsx-runtime";
4010
+ import { createContext as createContext32222, useCallback as useCallback32222, useContext as useContext32222, useMemo as useMemo32222, useState as useState52222 } from "react";
4011
+ import { clsx as clsx42222 } from "clsx";
4012
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon5222 } from "@heroicons/react/24/outline";
4013
+ import { useRef as useRef22222 } from "react";
4014
+ import { jsx as jsx112222, jsxs as jsxs72222 } from "react/jsx-runtime";
4015
+ import { createPortal as createPortal22222 } from "react-dom";
4016
+ import { jsx as jsx122222, jsxs as jsxs82222 } from "react/jsx-runtime";
4017
+ import { jsx as jsx132222, jsxs as jsxs92222 } from "react/jsx-runtime";
4018
+ import { useState as useState82222 } from "react";
4019
+ import { createContext as createContext42222, useCallback as useCallback42222, useContext as useContext42222, useMemo as useMemo42222, useState as useState72222 } from "react";
4020
+ import { LockClosedIcon as LockClosedIcon2222 } from "@heroicons/react/16/solid";
4021
+ import { clsx as clsx52222 } from "clsx";
4022
+ import { useRef as useRef32222, useState as useState62222 } from "react";
4023
+ import { jsx as jsx142222, jsxs as jsxs102222 } from "react/jsx-runtime";
4024
+ import { createPortal as createPortal32222 } from "react-dom";
4025
+ import { jsx as jsx152222, jsxs as jsxs112222 } from "react/jsx-runtime";
4026
+ import { cookiesSet as cookiesSet6222, fetchCsrfClient as fetchCsrfClient22222, goralysFetchClient as goralysFetchClient22222, handleToastRequest as handleToastRequest22222 } from "@goralys/core";
4027
+ import { jsx as jsx162222, jsxs as jsxs122222 } from "react/jsx-runtime";
4028
+ import { useState as useState92222 } from "react";
4029
+ import { jsx as jsx172222, jsxs as jsxs132222 } from "react/jsx-runtime";
4030
+ import { Fragment as Fragment42222, jsx as jsx182222, jsxs as jsxs142222 } from "react/jsx-runtime";
4031
+ import { AcademicCapIcon as AcademicCapIcon3222, BookOpenIcon as BookOpenIcon2222 } from "@heroicons/react/24/outline";
4032
+ import { jsx as jsx192222, jsxs as jsxs152222 } from "react/jsx-runtime";
4033
+ import { useEffect as useEffect52222, useState as useState102222 } from "react";
4034
+ import { jsx as jsx202222, jsxs as jsxs162222 } from "react/jsx-runtime";
4035
+ import { jsx as jsx212222, jsxs as jsxs172222 } from "react/jsx-runtime";
4036
+ import { useEffect as useEffect62222, useState as useState112222 } from "react";
4037
+ import { jsx as jsx222222, jsxs as jsxs182222 } from "react/jsx-runtime";
4038
+ import { useEffect as useEffect72222, useState as useState122222 } from "react";
4039
+ import { jsx as jsx232222, jsxs as jsxs192222 } from "react/jsx-runtime";
4040
+ import { getShortFromLong as getShortFromLong4222, getStatusLabel as getStatusLabel5222 } from "@goralys/core";
4041
+ import { jsx as jsx242222, jsxs as jsxs202222 } from "react/jsx-runtime";
4042
+ import { Fragment as Fragment52222, jsx as jsx252222, jsxs as jsxs212222 } from "react/jsx-runtime";
4043
+ import { useEffect as useEffect82222, useState as useState132222 } from "react";
4044
+ import * as React52222 from "react";
4045
+ import { XMarkIcon as XMarkIcon2222 } from "@heroicons/react/24/outline";
4046
+ import { COOKIES_DISMISSED_KEY as COOKIES_DISMISSED_KEY2222, cookiesGet as cookiesGet22222, cookiesSet as cookiesSet22222 } from "@goralys/core";
4047
+ import { jsx as jsx262222, jsxs as jsxs222222 } from "react/jsx-runtime";
4048
+ import { useEffect as useEffect92222, useRef as useRef42222 } from "react";
4049
+ import { LOGO_PATH as LOGO_PATH2222 } from "@goralys/core";
4050
+ import { jsx as jsx272222, jsxs as jsxs232222 } from "react/jsx-runtime";
4051
+ import { useId as useId2222 } from "react";
4052
+ import { jsx as jsx282222, jsxs as jsxs242222 } from "react/jsx-runtime";
4053
+ import { useState as useState142222 } from "react";
4054
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon3222 } from "@heroicons/react/24/outline";
4055
+ import clsx62222 from "clsx";
4056
+ import { jsx as jsx292222, jsxs as jsxs252222 } from "react/jsx-runtime";
4057
+ import { useState as useState152222 } from "react";
4058
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon22222 } from "@heroicons/react/24/outline";
4059
+ import clsx72222 from "clsx";
4060
+ import { jsx as jsx302222, jsxs as jsxs262222 } from "react/jsx-runtime";
4061
+ import { getStatusHelper as getStatusHelper4222 } from "@goralys/core";
4062
+ import { clsx as clsx82222 } from "clsx";
4063
+ import { useState as useState162222 } from "react";
4064
+ import { jsx as jsx312222, jsxs as jsxs272222 } from "react/jsx-runtime";
4065
+ import { jsx as jsx322222 } from "react/jsx-runtime";
4066
+ import { getStatusHelper as getStatusHelper22222 } from "@goralys/core";
4067
+ import { jsx as jsx332222, jsxs as jsxs282222 } from "react/jsx-runtime";
4068
+ import { buildApiUrl as buildApiUrl22222, getGoralysClientConfig as getGoralysClientConfig3222, getStatusHelper as getStatusHelper32222 } from "@goralys/core";
4069
+ import { ArrowDownTrayIcon as ArrowDownTrayIcon2222 } from "@heroicons/react/24/outline";
4070
+ import { jsx as jsx342222, jsxs as jsxs292222 } from "react/jsx-runtime";
4071
+ import { clsx as clsx92222 } from "clsx";
4072
+ import { useState as useState172222 } from "react";
4073
+ import { jsx as jsx352222, jsxs as jsxs302222 } from "react/jsx-runtime";
4074
+ import { createContext as createContext52222, useCallback as useCallback52222, useContext as useContext52222, useMemo as useMemo52222, useState as useState192222 } from "react";
4075
+ import { clsx as clsx102222 } from "clsx";
4076
+ import { useRef as useRef52222, useState as useState182222 } from "react";
4077
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon22222 } from "@heroicons/react/24/outline";
4078
+ import { jsx as jsx362222, jsxs as jsxs312222 } from "react/jsx-runtime";
4079
+ import { createPortal as createPortal42222 } from "react-dom";
4080
+ import { jsx as jsx372222, jsxs as jsxs322222 } from "react/jsx-runtime";
4081
+ import { createContext as createContext62222, useCallback as useCallback62222, useContext as useContext62222, useMemo as useMemo62222, useState as useState212222 } from "react";
4082
+ import { clsx as clsx112222 } from "clsx";
4083
+ import { useRef as useRef62222, useState as useState202222 } from "react";
4084
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon32222 } from "@heroicons/react/24/outline";
4085
+ import { jsx as jsx382222, jsxs as jsxs332222 } from "react/jsx-runtime";
4086
+ import { createPortal as createPortal52222 } from "react-dom";
4087
+ import { jsx as jsx392222, jsxs as jsxs342222 } from "react/jsx-runtime";
4088
+ import { createContext as createContext72222, useCallback as useCallback72222, useContext as useContext72222, useMemo as useMemo72222, useState as useState232222 } from "react";
4089
+ import { clsx as clsx122222 } from "clsx";
4090
+ import { useRef as useRef72222, useState as useState222222 } from "react";
4091
+ import { AtSymbolIcon as AtSymbolIcon2222 } from "@heroicons/react/24/outline";
4092
+ import { jsx as jsx402222, jsxs as jsxs352222 } from "react/jsx-runtime";
4093
+ import { createPortal as createPortal62222 } from "react-dom";
4094
+ import { jsx as jsx412222, jsxs as jsxs362222 } from "react/jsx-runtime";
4095
+ import { Fragment as Fragment62222, jsx as jsx422222, jsxs as jsxs372222 } from "react/jsx-runtime";
4096
+ import { clsx as clsx132222 } from "clsx";
4097
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon42222 } from "@heroicons/react/24/outline";
4098
+ import { useRef as useRef82222, useState as useState242222 } from "react";
4099
+ import { jsx as jsx432222, jsxs as jsxs382222 } from "react/jsx-runtime";
4100
+ import { createContext as createContext82222, useCallback as useCallback82222, useContext as useContext82222, useMemo as useMemo82222, useState as useState252222 } from "react";
4101
+ import { createPortal as createPortal72222 } from "react-dom";
4102
+ import { jsx as jsx442222, jsxs as jsxs392222 } from "react/jsx-runtime";
4103
+ import { clsx as clsx142222 } from "clsx";
4104
+ import { jsx as jsx452222 } from "react/jsx-runtime";
4105
+ import { useEffect as useEffect102222, useState as useState262222 } from "react";
4106
+ import { cookiesGet as cookiesGet32222, emptyUserCacheClient as emptyUserCacheClient3222, FULL_NAME_KEY as FULL_NAME_KEY2222, onUserEvent as onUserEvent3222, USERNAME_KEY as USERNAME_KEY4222 } from "@goralys/core";
4107
+ import { UserCircleIcon as UserCircleIcon3222 } from "@heroicons/react/24/outline";
4108
+ import clsx152222 from "clsx";
4109
+ import { jsx as jsx462222, jsxs as jsxs402222 } from "react/jsx-runtime";
4110
+ import { useEffect as useEffect112222, useState as useState272222 } from "react";
4111
+ import { buildArray as buildArray3222, cookiesGet as cookiesGet42222, cookiesOnChange as cookiesOnChange3222, ROLE_KEY as ROLE_KEY3222, USER_ROLES as USER_ROLES3222 } from "@goralys/core";
4112
+ import { jsx as jsx472222, jsxs as jsxs412222 } from "react/jsx-runtime";
4113
+ import { useEffect as useEffect132222, useState as useState292222 } from "react";
4114
+ import { buildArray as buildArray22222, cookiesGet as cookiesGet62222, cookiesOnChange as cookiesOnChange22222, ROLE_KEY as ROLE_KEY22222, USER_ROLES as USER_ROLES22222 } from "@goralys/core";
4115
+ import { AcademicCapIcon as AcademicCapIcon22222, HomeIcon as HomeIcon2222 } from "@heroicons/react/24/outline";
4116
+ import { clsx as clsx162222 } from "clsx";
4117
+ import { jsx as jsx482222, jsxs as jsxs422222 } from "react/jsx-runtime";
4118
+ import { useEffect as useEffect122222, useState as useState282222 } from "react";
4119
+ import { cookiesGet as cookiesGet52222, emptyUserCacheClient as emptyUserCacheClient22222, onUserEvent as onUserEvent22222, USERNAME_KEY as USERNAME_KEY22222 } from "@goralys/core";
4120
+ import { UserCircleIcon as UserCircleIcon22222 } from "@heroicons/react/24/outline";
4121
+ import clsx172222 from "clsx";
4122
+ import { jsx as jsx492222, jsxs as jsxs432222 } from "react/jsx-runtime";
4123
+ import { jsx as jsx502222, jsxs as jsxs442222 } from "react/jsx-runtime";
4124
+ import { jsx as jsx512222 } from "react/jsx-runtime";
4125
+ import { jsx as jsx522222 } from "react/jsx-runtime";
4126
+ import { jsx as jsx532222, jsxs as jsxs452222 } from "react/jsx-runtime";
4127
+ import clsx182222 from "clsx";
4128
+ import { jsx as jsx542222, jsxs as jsxs462222 } from "react/jsx-runtime";
4129
+ import { jsx as jsx552222, jsxs as jsxs472222 } from "react/jsx-runtime";
4130
+ import { jsx as jsx562222, jsxs as jsxs482222 } from "react/jsx-runtime";
4131
+ import { jsx as jsx572222, jsxs as jsxs492222 } from "react/jsx-runtime";
4132
+ import { jsx as jsx582222, jsxs as jsxs502222 } from "react/jsx-runtime";
4133
+ import { jsx as jsx592222, jsxs as jsxs512222 } from "react/jsx-runtime";
4134
+ import { jsx as jsx602222, jsxs as jsxs522222 } from "react/jsx-runtime";
4135
+ import { Fragment as Fragment72222, jsx as jsx612222, jsxs as jsxs532222 } from "react/jsx-runtime";
4136
+ import { Fragment as Fragment82222, jsx as jsx622222, jsxs as jsxs542222 } from "react/jsx-runtime";
4137
+ import { jsx as jsx632222, jsxs as jsxs552222 } from "react/jsx-runtime";
4138
+ import {
4139
+ cookiesSet as cookiesSet32222,
4140
+ fetchCsrfClient as fetchCsrfClient32222,
4141
+ getStatusLabel as getStatusLabel22222,
4142
+ goralysFetchClient as goralysFetchClient32222,
4143
+ handleToastRequest as handleToastRequest32222,
4144
+ SubjectStatusConfig as SubjectStatusConfig2222
4145
+ } from "@goralys/core";
4146
+ import { jsx as jsx642222, jsxs as jsxs562222 } from "react/jsx-runtime";
4147
+ import { ChevronRightIcon as ChevronRightIcon3222 } from "@heroicons/react/24/outline";
4148
+ import { Fragment as Fragment92222, jsx as jsx652222, jsxs as jsxs572222 } from "react/jsx-runtime";
4149
+ import { ChevronRightIcon as ChevronRightIcon22222 } from "@heroicons/react/24/outline";
4150
+ import { Fragment as Fragment102222, jsx as jsx662222, jsxs as jsxs582222 } from "react/jsx-runtime";
4151
+ import { getStatusLabel as getStatusLabel32222 } from "@goralys/core";
4152
+ import { jsx as jsx672222, jsxs as jsxs592222 } from "react/jsx-runtime";
4153
+ import {
4154
+ cookiesSet as cookiesSet42222,
4155
+ fetchCsrfClient as fetchCsrfClient42222,
4156
+ getShortFromLong as getShortFromLong22222,
4157
+ goralysFetchClient as goralysFetchClient42222,
4158
+ handleToastRequest as handleToastRequest42222,
4159
+ SUBJECT_SYNCS as SUBJECT_SYNCS3222
4160
+ } from "@goralys/core";
4161
+ import { useState as useState302222 } from "react";
4162
+ import { Fragment as Fragment112222, jsx as jsx682222, jsxs as jsxs602222 } from "react/jsx-runtime";
4163
+ import { useCallback as useCallback92222, useEffect as useEffect142222, useState as useState312222 } from "react";
4164
+ import { getStatusLabel as getStatusLabel42222 } from "@goralys/core";
4165
+ import { jsx as jsx692222 } from "react/jsx-runtime";
4166
+ import { useEffect as useEffect152222, useState as useState322222 } from "react";
4167
+ import { getLongFromShort as getLongFromShort2222, searchFields as searchFields2222 } from "@goralys/core";
4168
+ import { jsx as jsx702222, jsxs as jsxs612222 } from "react/jsx-runtime";
4169
+ import {
4170
+ cookiesSet as cookiesSet52222,
4171
+ fetchCsrfClient as fetchCsrfClient52222,
4172
+ getShortFromLong as getShortFromLong32222,
4173
+ goralysFetchClient as goralysFetchClient52222,
4174
+ handleToastRequest as handleToastRequest52222,
4175
+ SUBJECT_SYNCS as SUBJECT_SYNCS22222
4176
+ } from "@goralys/core";
4177
+ import { useRef as useRef92222, useState as useState332222 } from "react";
4178
+ import { Fragment as Fragment122222, jsx as jsx712222, jsxs as jsxs622222 } from "react/jsx-runtime";
4179
+ import { useEffect as useEffect162222, useState as useState342222 } from "react";
4180
+ import { cookiesGet as cookiesGet72222, EMAIL_KEY as EMAIL_KEY2222, fetchCsrfClient as fetchCsrfClient62222, getGoralysClientConfig as getGoralysClientConfig22222, reasonsConfig as reasonsConfig2222, USERNAME_KEY as USERNAME_KEY32222 } from "@goralys/core";
4181
+ import { jsx as jsx722222, jsxs as jsxs632222 } from "react/jsx-runtime";
4182
+ import { buildApiUrl as buildApiUrl9, reasonsConfig as reasonsConfig5 } from "@goralys/core";
4183
+ import { createContext as createContext92222, useContext as useContext92222, useMemo as useMemo92222 } from "react";
4184
+ import { jsx as jsx732222 } from "react/jsx-runtime";
4185
+ import { useEffect as useEffect172222, useState as useState352222 } from "react";
4186
+ import { useCallback as useCallback102222 } from "react";
4187
+ import { useEffect as useEffect222222 } from "react";
4188
+ import clsx192222 from "clsx";
4189
+ import { jsx as jsx2102222 } from "react/jsx-runtime";
4190
+ import { Fragment as Fragment132222, jsx as jsx3102222, jsxs as jsxs642222 } from "react/jsx-runtime";
4191
+ import { jsx as jsx4102222 } from "react/jsx-runtime";
4192
+ import { cookiesGet as cookiesGet82222, PUB_ID_KEY as PUB_ID_KEY22222 } from "@goralys/core";
4193
+ import { ShieldExclamationIcon as ShieldExclamationIcon22222 } from "@heroicons/react/24/outline";
4194
+ import { Fragment as Fragment222222, jsx as jsx5102222, jsxs as jsxs2102222 } from "react/jsx-runtime";
4195
+ import { clsx as clsx222222 } from "clsx";
4196
+ import { useState as useState2102222 } from "react";
4197
+ import { EyeIcon as EyeIcon22222, EyeSlashIcon as EyeSlashIcon22222 } from "@heroicons/react/24/outline";
4198
+ import { jsx as jsx6102222, jsxs as jsxs3102222 } from "react/jsx-runtime";
4199
+ import { useEffect as useEffect322222, useState as useState362222 } from "react";
4200
+ import { jsx as jsx742222 } from "react/jsx-runtime";
4201
+ import { parsePhpDateTime as parsePhpDateTime32222 } from "@goralys/core";
4202
+ import { Fragment as Fragment322222, jsx as jsx822222, jsxs as jsxs4102222 } from "react/jsx-runtime";
4203
+ import { buildApiUrl as buildApiUrl32222, fetchCsrfClient as fetchCsrfClient72222, goralysFetchClient as goralysFetchClient62222, handleToastRequest as handleToastRequest62222, parsePhpDateTime as parsePhpDateTime222222 } from "@goralys/core";
4204
+ import { createContext as createContext222222, useCallback as useCallback222222, useContext as useContext222222, useEffect as useEffect422222, useMemo as useMemo222222, useRef as useRef102222, useState as useState422222 } from "react";
4205
+ import { clsx as clsx322222 } from "clsx";
4206
+ import { CheckCircleIcon as CheckCircleIcon22222, ExclamationCircleIcon as ExclamationCircleIcon22222, InformationCircleIcon as InformationCircleIcon22222, XCircleIcon as XCircleIcon22222 } from "@heroicons/react/24/outline";
4207
+ import { jsx as jsx922222, jsxs as jsxs5102222 } from "react/jsx-runtime";
4208
+ import { FLASH_TOAST_KEY as FLASH_TOAST_KEY22222, storageSet as storageSet22222 } from "@goralys/core";
4209
+ import { createPortal as createPortal82222 } from "react-dom";
4210
+ import { jsx as jsx1022222, jsxs as jsxs652222 } from "react/jsx-runtime";
4211
+ import { createContext as createContext322222, useCallback as useCallback322222, useContext as useContext322222, useMemo as useMemo322222, useState as useState522222 } from "react";
4212
+ import { clsx as clsx422222 } from "clsx";
4213
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon52222 } from "@heroicons/react/24/outline";
4214
+ import { useRef as useRef222222 } from "react";
4215
+ import { jsx as jsx1122222, jsxs as jsxs722222 } from "react/jsx-runtime";
4216
+ import { createPortal as createPortal222222 } from "react-dom";
4217
+ import { jsx as jsx1222222, jsxs as jsxs822222 } from "react/jsx-runtime";
4218
+ import { jsx as jsx1322222, jsxs as jsxs922222 } from "react/jsx-runtime";
4219
+ import { useState as useState822222 } from "react";
4220
+ import { createContext as createContext422222, useCallback as useCallback422222, useContext as useContext422222, useMemo as useMemo422222, useState as useState722222 } from "react";
4221
+ import { LockClosedIcon as LockClosedIcon22222 } from "@heroicons/react/16/solid";
4222
+ import { clsx as clsx522222 } from "clsx";
4223
+ import { useRef as useRef322222, useState as useState622222 } from "react";
4224
+ import { jsx as jsx1422222, jsxs as jsxs1022222 } from "react/jsx-runtime";
4225
+ import { createPortal as createPortal322222 } from "react-dom";
4226
+ import { jsx as jsx1522222, jsxs as jsxs1122222 } from "react/jsx-runtime";
4227
+ import { cookiesSet as cookiesSet62222, fetchCsrfClient as fetchCsrfClient222222, goralysFetchClient as goralysFetchClient222222, handleToastRequest as handleToastRequest222222 } from "@goralys/core";
4228
+ import { jsx as jsx1622222, jsxs as jsxs1222222 } from "react/jsx-runtime";
4229
+ import { useState as useState922222 } from "react";
4230
+ import { jsx as jsx1722222, jsxs as jsxs1322222 } from "react/jsx-runtime";
4231
+ import { Fragment as Fragment422222, jsx as jsx1822222, jsxs as jsxs1422222 } from "react/jsx-runtime";
4232
+ import { AcademicCapIcon as AcademicCapIcon32222, BookOpenIcon as BookOpenIcon22222 } from "@heroicons/react/24/outline";
4233
+ import { jsx as jsx1922222, jsxs as jsxs1522222 } from "react/jsx-runtime";
4234
+ import { useEffect as useEffect522222, useState as useState1022222 } from "react";
4235
+ import { jsx as jsx2022222, jsxs as jsxs1622222 } from "react/jsx-runtime";
4236
+ import { jsx as jsx2122222, jsxs as jsxs1722222 } from "react/jsx-runtime";
4237
+ import { useEffect as useEffect622222, useState as useState1122222 } from "react";
4238
+ import { jsx as jsx2222222, jsxs as jsxs1822222 } from "react/jsx-runtime";
4239
+ import { useEffect as useEffect722222, useState as useState1222222 } from "react";
4240
+ import { jsx as jsx2322222, jsxs as jsxs1922222 } from "react/jsx-runtime";
4241
+ import { getShortFromLong as getShortFromLong42222, getStatusLabel as getStatusLabel52222 } from "@goralys/core";
4242
+ import { jsx as jsx2422222, jsxs as jsxs2022222 } from "react/jsx-runtime";
4243
+ import { Fragment as Fragment522222, jsx as jsx2522222, jsxs as jsxs2122222 } from "react/jsx-runtime";
4244
+ import { useEffect as useEffect822222, useState as useState1322222 } from "react";
4245
+ import * as React522222 from "react";
4246
+ import { XMarkIcon as XMarkIcon22222 } from "@heroicons/react/24/outline";
4247
+ import { COOKIES_DISMISSED_KEY as COOKIES_DISMISSED_KEY22222, cookiesGet as cookiesGet222222, cookiesSet as cookiesSet222222 } from "@goralys/core";
4248
+ import { jsx as jsx2622222, jsxs as jsxs2222222 } from "react/jsx-runtime";
4249
+ import { useEffect as useEffect922222, useRef as useRef422222 } from "react";
4250
+ import { LOGO_PATH as LOGO_PATH22222 } from "@goralys/core";
4251
+ import { jsx as jsx2722222, jsxs as jsxs2322222 } from "react/jsx-runtime";
4252
+ import { useId as useId22222 } from "react";
4253
+ import { jsx as jsx2822222, jsxs as jsxs2422222 } from "react/jsx-runtime";
4254
+ import { useState as useState1422222 } from "react";
4255
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon32222 } from "@heroicons/react/24/outline";
4256
+ import clsx622222 from "clsx";
4257
+ import { jsx as jsx2922222, jsxs as jsxs2522222 } from "react/jsx-runtime";
4258
+ import { useState as useState1522222 } from "react";
4259
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon222222 } from "@heroicons/react/24/outline";
4260
+ import clsx722222 from "clsx";
4261
+ import { jsx as jsx3022222, jsxs as jsxs2622222 } from "react/jsx-runtime";
4262
+ import { getStatusHelper as getStatusHelper42222 } from "@goralys/core";
4263
+ import { clsx as clsx822222 } from "clsx";
4264
+ import { useState as useState1622222 } from "react";
4265
+ import { jsx as jsx3122222, jsxs as jsxs2722222 } from "react/jsx-runtime";
4266
+ import { jsx as jsx3222222 } from "react/jsx-runtime";
4267
+ import { getStatusHelper as getStatusHelper222222 } from "@goralys/core";
4268
+ import { jsx as jsx3322222, jsxs as jsxs2822222 } from "react/jsx-runtime";
4269
+ import { buildApiUrl as buildApiUrl222222, getGoralysClientConfig as getGoralysClientConfig32222, getStatusHelper as getStatusHelper322222 } from "@goralys/core";
4270
+ import { ArrowDownTrayIcon as ArrowDownTrayIcon22222 } from "@heroicons/react/24/outline";
4271
+ import { jsx as jsx3422222, jsxs as jsxs2922222 } from "react/jsx-runtime";
4272
+ import { clsx as clsx922222 } from "clsx";
4273
+ import { useState as useState1722222 } from "react";
4274
+ import { jsx as jsx3522222, jsxs as jsxs3022222 } from "react/jsx-runtime";
4275
+ import { createContext as createContext522222, useCallback as useCallback522222, useContext as useContext522222, useMemo as useMemo522222, useState as useState1922222 } from "react";
4276
+ import { clsx as clsx1022222 } from "clsx";
4277
+ import { useRef as useRef522222, useState as useState1822222 } from "react";
4278
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon222222 } from "@heroicons/react/24/outline";
4279
+ import { jsx as jsx3622222, jsxs as jsxs3122222 } from "react/jsx-runtime";
4280
+ import { createPortal as createPortal422222 } from "react-dom";
4281
+ import { jsx as jsx3722222, jsxs as jsxs3222222 } from "react/jsx-runtime";
4282
+ import { createContext as createContext622222, useCallback as useCallback622222, useContext as useContext622222, useMemo as useMemo622222, useState as useState2122222 } from "react";
4283
+ import { clsx as clsx1122222 } from "clsx";
4284
+ import { useRef as useRef622222, useState as useState2022222 } from "react";
4285
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon322222 } from "@heroicons/react/24/outline";
4286
+ import { jsx as jsx3822222, jsxs as jsxs3322222 } from "react/jsx-runtime";
4287
+ import { createPortal as createPortal522222 } from "react-dom";
4288
+ import { jsx as jsx3922222, jsxs as jsxs3422222 } from "react/jsx-runtime";
4289
+ import { createContext as createContext722222, useCallback as useCallback722222, useContext as useContext722222, useMemo as useMemo722222, useState as useState2322222 } from "react";
4290
+ import { clsx as clsx1222222 } from "clsx";
4291
+ import { useRef as useRef722222, useState as useState2222222 } from "react";
4292
+ import { AtSymbolIcon as AtSymbolIcon22222 } from "@heroicons/react/24/outline";
4293
+ import { jsx as jsx4022222, jsxs as jsxs3522222 } from "react/jsx-runtime";
4294
+ import { createPortal as createPortal622222 } from "react-dom";
4295
+ import { jsx as jsx4122222, jsxs as jsxs3622222 } from "react/jsx-runtime";
4296
+ import { Fragment as Fragment622222, jsx as jsx4222222, jsxs as jsxs3722222 } from "react/jsx-runtime";
4297
+ import { clsx as clsx1322222 } from "clsx";
4298
+ import { jsx as jsx4322222 } from "react/jsx-runtime";
4299
+ import { useEffect as useEffect1022222, useState as useState2422222 } from "react";
4300
+ import { cookiesGet as cookiesGet322222, emptyUserCacheClient as emptyUserCacheClient32222, FULL_NAME_KEY as FULL_NAME_KEY22222, onUserEvent as onUserEvent32222, USERNAME_KEY as USERNAME_KEY42222 } from "@goralys/core";
4301
+ import { UserCircleIcon as UserCircleIcon32222 } from "@heroicons/react/24/outline";
4302
+ import clsx1422222 from "clsx";
4303
+ import { jsx as jsx4422222, jsxs as jsxs3822222 } from "react/jsx-runtime";
4304
+ import { useEffect as useEffect1122222, useState as useState2522222 } from "react";
4305
+ import { buildArray as buildArray32222, cookiesGet as cookiesGet422222, cookiesOnChange as cookiesOnChange32222, ROLE_KEY as ROLE_KEY32222, USER_ROLES as USER_ROLES32222 } from "@goralys/core";
4306
+ import { jsx as jsx4522222, jsxs as jsxs3922222 } from "react/jsx-runtime";
4307
+ import { useEffect as useEffect1322222, useState as useState2722222 } from "react";
4308
+ import { buildArray as buildArray222222, cookiesGet as cookiesGet622222, cookiesOnChange as cookiesOnChange222222, ROLE_KEY as ROLE_KEY222222, USER_ROLES as USER_ROLES222222 } from "@goralys/core";
4309
+ import { AcademicCapIcon as AcademicCapIcon222222, HomeIcon as HomeIcon22222 } from "@heroicons/react/24/outline";
4310
+ import { clsx as clsx1522222 } from "clsx";
4311
+ import { jsx as jsx4622222, jsxs as jsxs4022222 } from "react/jsx-runtime";
4312
+ import { useEffect as useEffect1222222, useState as useState2622222 } from "react";
4313
+ import { cookiesGet as cookiesGet522222, emptyUserCacheClient as emptyUserCacheClient222222, onUserEvent as onUserEvent222222, USERNAME_KEY as USERNAME_KEY222222 } from "@goralys/core";
4314
+ import { UserCircleIcon as UserCircleIcon222222 } from "@heroicons/react/24/outline";
4315
+ import clsx1622222 from "clsx";
4316
+ import { jsx as jsx4722222, jsxs as jsxs4122222 } from "react/jsx-runtime";
4317
+ import { jsx as jsx4822222, jsxs as jsxs4222222 } from "react/jsx-runtime";
4318
+ import { jsx as jsx4922222 } from "react/jsx-runtime";
4319
+ import { jsx as jsx5022222 } from "react/jsx-runtime";
4320
+ import { jsx as jsx5122222, jsxs as jsxs4322222 } from "react/jsx-runtime";
4321
+ import clsx1722222 from "clsx";
4322
+ import { jsx as jsx5222222, jsxs as jsxs4422222 } from "react/jsx-runtime";
4323
+ import { jsx as jsx5322222, jsxs as jsxs4522222 } from "react/jsx-runtime";
4324
+ import { jsx as jsx5422222, jsxs as jsxs4622222 } from "react/jsx-runtime";
4325
+ import { jsx as jsx5522222, jsxs as jsxs4722222 } from "react/jsx-runtime";
4326
+ import { jsx as jsx5622222, jsxs as jsxs4822222 } from "react/jsx-runtime";
4327
+ import { jsx as jsx5722222, jsxs as jsxs4922222 } from "react/jsx-runtime";
4328
+ import { jsx as jsx5822222, jsxs as jsxs5022222 } from "react/jsx-runtime";
4329
+ import { Fragment as Fragment722222, jsx as jsx5922222, jsxs as jsxs5122222 } from "react/jsx-runtime";
4330
+ import { Fragment as Fragment822222, jsx as jsx6022222, jsxs as jsxs5222222 } from "react/jsx-runtime";
4331
+ import { jsx as jsx6122222, jsxs as jsxs5322222 } from "react/jsx-runtime";
4332
+ import {
4333
+ cookiesSet as cookiesSet322222,
4334
+ fetchCsrfClient as fetchCsrfClient322222,
4335
+ getStatusLabel as getStatusLabel222222,
4336
+ goralysFetchClient as goralysFetchClient322222,
4337
+ handleToastRequest as handleToastRequest322222,
4338
+ SubjectStatusConfig as SubjectStatusConfig22222
4339
+ } from "@goralys/core";
4340
+ import { jsx as jsx6222222, jsxs as jsxs5422222 } from "react/jsx-runtime";
4341
+ import { ChevronRightIcon as ChevronRightIcon32222 } from "@heroicons/react/24/outline";
4342
+ import { Fragment as Fragment922222, jsx as jsx6322222, jsxs as jsxs5522222 } from "react/jsx-runtime";
4343
+ import { ChevronRightIcon as ChevronRightIcon222222 } from "@heroicons/react/24/outline";
4344
+ import { Fragment as Fragment1022222, jsx as jsx6422222, jsxs as jsxs5622222 } from "react/jsx-runtime";
4345
+ import { getStatusLabel as getStatusLabel322222 } from "@goralys/core";
4346
+ import { jsx as jsx6522222, jsxs as jsxs5722222 } from "react/jsx-runtime";
4347
+ import {
4348
+ cookiesSet as cookiesSet422222,
4349
+ fetchCsrfClient as fetchCsrfClient422222,
4350
+ getShortFromLong as getShortFromLong222222,
4351
+ goralysFetchClient as goralysFetchClient422222,
4352
+ handleToastRequest as handleToastRequest422222,
4353
+ SUBJECT_SYNCS as SUBJECT_SYNCS32222
4354
+ } from "@goralys/core";
4355
+ import { useState as useState2822222 } from "react";
4356
+ import { Fragment as Fragment1122222, jsx as jsx6622222, jsxs as jsxs5822222 } from "react/jsx-runtime";
4357
+ import { useCallback as useCallback822222, useEffect as useEffect1422222, useState as useState2922222 } from "react";
4358
+ import { getStatusLabel as getStatusLabel422222 } from "@goralys/core";
4359
+ import { jsx as jsx6722222 } from "react/jsx-runtime";
4360
+ import { useEffect as useEffect1522222, useState as useState3022222 } from "react";
4361
+ import { getLongFromShort as getLongFromShort22222, searchFields as searchFields22222 } from "@goralys/core";
4362
+ import { jsx as jsx6822222, jsxs as jsxs5922222 } from "react/jsx-runtime";
4363
+ import {
4364
+ cookiesSet as cookiesSet522222,
4365
+ fetchCsrfClient as fetchCsrfClient522222,
4366
+ getShortFromLong as getShortFromLong322222,
4367
+ goralysFetchClient as goralysFetchClient522222,
4368
+ handleToastRequest as handleToastRequest522222,
4369
+ SUBJECT_SYNCS as SUBJECT_SYNCS222222
4370
+ } from "@goralys/core";
4371
+ import { useRef as useRef822222, useState as useState3122222 } from "react";
4372
+ import { Fragment as Fragment1222222, jsx as jsx6922222, jsxs as jsxs6022222 } from "react/jsx-runtime";
4373
+ import { useEffect as useEffect1622222, useState as useState3222222 } from "react";
4374
+ import { cookiesGet as cookiesGet722222, EMAIL_KEY as EMAIL_KEY22222, fetchCsrfClient as fetchCsrfClient622222, getGoralysClientConfig as getGoralysClientConfig222222, reasonsConfig as reasonsConfig22222, USERNAME_KEY as USERNAME_KEY322222 } from "@goralys/core";
4375
+ import { jsx as jsx7022222, jsxs as jsxs6122222 } from "react/jsx-runtime";
4376
+ import { buildApiUrl as buildApiUrl7, reasonsConfig as reasonsConfig4 } from "@goralys/core";
4377
+ import { createContext as createContext822222, useContext as useContext822222, useMemo as useMemo822222 } from "react";
4378
+ import { jsx as jsx7122222 } from "react/jsx-runtime";
4379
+ import { useEffect as useEffect1722222, useState as useState3322222 } from "react";
4380
+ import { useCallback as useCallback922222 } from "react";
4381
+ import { useEffect as useEffect2222222 } from "react";
4382
+ import clsx1822222 from "clsx";
4383
+ import { jsx as jsx21022222 } from "react/jsx-runtime";
4384
+ import { Fragment as Fragment1322222, jsx as jsx31022222, jsxs as jsxs6222222 } from "react/jsx-runtime";
4385
+ import { jsx as jsx41022222 } from "react/jsx-runtime";
4386
+ import { cookiesGet as cookiesGet822222, PUB_ID_KEY as PUB_ID_KEY222222 } from "@goralys/core";
4387
+ import { ShieldExclamationIcon as ShieldExclamationIcon222222 } from "@heroicons/react/24/outline";
4388
+ import { Fragment as Fragment2222222, jsx as jsx51022222, jsxs as jsxs21022222 } from "react/jsx-runtime";
4389
+ import { clsx as clsx2222222 } from "clsx";
4390
+ import { useState as useState21022222 } from "react";
4391
+ import { EyeIcon as EyeIcon222222, EyeSlashIcon as EyeSlashIcon222222 } from "@heroicons/react/24/outline";
4392
+ import { jsx as jsx61022222, jsxs as jsxs31022222 } from "react/jsx-runtime";
4393
+ import { useEffect as useEffect3222222, useState as useState3422222 } from "react";
4394
+ import { jsx as jsx7222222 } from "react/jsx-runtime";
4395
+ import { parsePhpDateTime as parsePhpDateTime322222 } from "@goralys/core";
4396
+ import { Fragment as Fragment3222222, jsx as jsx8222222, jsxs as jsxs41022222 } from "react/jsx-runtime";
4397
+ import { buildApiUrl as buildApiUrl322222, fetchCsrfClient as fetchCsrfClient722222, goralysFetchClient as goralysFetchClient622222, handleToastRequest as handleToastRequest622222, parsePhpDateTime as parsePhpDateTime2222222 } from "@goralys/core";
4398
+ import { createContext as createContext2222222, useCallback as useCallback2222222, useContext as useContext2222222, useEffect as useEffect4222222, useMemo as useMemo2222222, useRef as useRef922222, useState as useState4222222 } from "react";
4399
+ import { clsx as clsx3222222 } from "clsx";
4400
+ import { CheckCircleIcon as CheckCircleIcon222222, ExclamationCircleIcon as ExclamationCircleIcon222222, InformationCircleIcon as InformationCircleIcon222222, XCircleIcon as XCircleIcon222222 } from "@heroicons/react/24/outline";
4401
+ import { jsx as jsx9222222, jsxs as jsxs51022222 } from "react/jsx-runtime";
4402
+ import { FLASH_TOAST_KEY as FLASH_TOAST_KEY222222, storageSet as storageSet222222 } from "@goralys/core";
4403
+ import { createPortal as createPortal722222 } from "react-dom";
4404
+ import { jsx as jsx10222222, jsxs as jsxs6322222 } from "react/jsx-runtime";
4405
+ import { createContext as createContext3222222, useCallback as useCallback3222222, useContext as useContext3222222, useMemo as useMemo3222222, useState as useState5222222 } from "react";
4406
+ import { clsx as clsx4222222 } from "clsx";
4407
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon422222 } from "@heroicons/react/24/outline";
4408
+ import { useRef as useRef2222222 } from "react";
4409
+ import { jsx as jsx11222222, jsxs as jsxs7222222 } from "react/jsx-runtime";
4410
+ import { createPortal as createPortal2222222 } from "react-dom";
4411
+ import { jsx as jsx12222222, jsxs as jsxs8222222 } from "react/jsx-runtime";
4412
+ import { jsx as jsx13222222, jsxs as jsxs9222222 } from "react/jsx-runtime";
4413
+ import { useState as useState8222222 } from "react";
4414
+ import { createContext as createContext4222222, useCallback as useCallback4222222, useContext as useContext4222222, useMemo as useMemo4222222, useState as useState7222222 } from "react";
4415
+ import { LockClosedIcon as LockClosedIcon222222 } from "@heroicons/react/16/solid";
4416
+ import { clsx as clsx5222222 } from "clsx";
4417
+ import { useRef as useRef3222222, useState as useState6222222 } from "react";
4418
+ import { jsx as jsx14222222, jsxs as jsxs10222222 } from "react/jsx-runtime";
4419
+ import { createPortal as createPortal3222222 } from "react-dom";
4420
+ import { jsx as jsx15222222, jsxs as jsxs11222222 } from "react/jsx-runtime";
4421
+ import { cookiesSet as cookiesSet622222, fetchCsrfClient as fetchCsrfClient2222222, goralysFetchClient as goralysFetchClient2222222, handleToastRequest as handleToastRequest2222222 } from "@goralys/core";
4422
+ import { jsx as jsx16222222, jsxs as jsxs12222222 } from "react/jsx-runtime";
4423
+ import { useState as useState9222222 } from "react";
4424
+ import { jsx as jsx17222222, jsxs as jsxs13222222 } from "react/jsx-runtime";
4425
+ import { Fragment as Fragment4222222, jsx as jsx18222222, jsxs as jsxs14222222 } from "react/jsx-runtime";
4426
+ import { AcademicCapIcon as AcademicCapIcon322222, BookOpenIcon as BookOpenIcon222222 } from "@heroicons/react/24/outline";
4427
+ import { jsx as jsx19222222, jsxs as jsxs15222222 } from "react/jsx-runtime";
4428
+ import { useEffect as useEffect5222222, useState as useState10222222 } from "react";
4429
+ import { jsx as jsx20222222, jsxs as jsxs16222222 } from "react/jsx-runtime";
4430
+ import { jsx as jsx21222222, jsxs as jsxs17222222 } from "react/jsx-runtime";
4431
+ import { useEffect as useEffect6222222, useState as useState11222222 } from "react";
4432
+ import { jsx as jsx22222222, jsxs as jsxs18222222 } from "react/jsx-runtime";
4433
+ import { useEffect as useEffect7222222, useState as useState12222222 } from "react";
4434
+ import { jsx as jsx23222222, jsxs as jsxs19222222 } from "react/jsx-runtime";
4435
+ import { getShortFromLong as getShortFromLong422222, getStatusLabel as getStatusLabel522222 } from "@goralys/core";
4436
+ import { jsx as jsx24222222, jsxs as jsxs20222222 } from "react/jsx-runtime";
4437
+ import { Fragment as Fragment5222222, jsx as jsx25222222, jsxs as jsxs21222222 } from "react/jsx-runtime";
4438
+ import { useEffect as useEffect8222222, useState as useState13222222 } from "react";
4439
+ import * as React5222222 from "react";
4440
+ import { XMarkIcon as XMarkIcon222222 } from "@heroicons/react/24/outline";
4441
+ import { COOKIES_DISMISSED_KEY as COOKIES_DISMISSED_KEY222222, cookiesGet as cookiesGet2222222, cookiesSet as cookiesSet2222222 } from "@goralys/core";
4442
+ import { jsx as jsx26222222, jsxs as jsxs22222222 } from "react/jsx-runtime";
4443
+ import { useEffect as useEffect9222222, useRef as useRef4222222 } from "react";
4444
+ import { LOGO_PATH as LOGO_PATH222222 } from "@goralys/core";
4445
+ import { jsx as jsx27222222, jsxs as jsxs23222222 } from "react/jsx-runtime";
4446
+ import { useId as useId222222 } from "react";
4447
+ import { jsx as jsx28222222, jsxs as jsxs24222222 } from "react/jsx-runtime";
4448
+ import { useState as useState14222222 } from "react";
4449
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon322222 } from "@heroicons/react/24/outline";
4450
+ import clsx6222222 from "clsx";
4451
+ import { jsx as jsx29222222, jsxs as jsxs25222222 } from "react/jsx-runtime";
4452
+ import { useState as useState15222222 } from "react";
4453
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon2222222 } from "@heroicons/react/24/outline";
4454
+ import clsx7222222 from "clsx";
4455
+ import { jsx as jsx30222222, jsxs as jsxs26222222 } from "react/jsx-runtime";
4456
+ import { getStatusHelper as getStatusHelper422222 } from "@goralys/core";
4457
+ import { clsx as clsx8222222 } from "clsx";
4458
+ import { useState as useState16222222 } from "react";
4459
+ import { jsx as jsx31222222, jsxs as jsxs27222222 } from "react/jsx-runtime";
4460
+ import { jsx as jsx32222222 } from "react/jsx-runtime";
4461
+ import { getStatusHelper as getStatusHelper2222222 } from "@goralys/core";
4462
+ import { jsx as jsx33222222, jsxs as jsxs28222222 } from "react/jsx-runtime";
4463
+ import { buildApiUrl as buildApiUrl2222222, getGoralysClientConfig as getGoralysClientConfig322222, getStatusHelper as getStatusHelper3222222 } from "@goralys/core";
4464
+ import { ArrowDownTrayIcon as ArrowDownTrayIcon222222 } from "@heroicons/react/24/outline";
4465
+ import { jsx as jsx34222222, jsxs as jsxs29222222 } from "react/jsx-runtime";
4466
+ import { clsx as clsx9222222 } from "clsx";
4467
+ import { useState as useState17222222 } from "react";
4468
+ import { jsx as jsx35222222, jsxs as jsxs30222222 } from "react/jsx-runtime";
4469
+ import { createContext as createContext5222222, useCallback as useCallback5222222, useContext as useContext5222222, useMemo as useMemo5222222, useState as useState19222222 } from "react";
4470
+ import { clsx as clsx10222222 } from "clsx";
4471
+ import { useRef as useRef5222222, useState as useState18222222 } from "react";
4472
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon2222222 } from "@heroicons/react/24/outline";
4473
+ import { jsx as jsx36222222, jsxs as jsxs31222222 } from "react/jsx-runtime";
4474
+ import { createPortal as createPortal4222222 } from "react-dom";
4475
+ import { jsx as jsx37222222, jsxs as jsxs32222222 } from "react/jsx-runtime";
4476
+ import { createContext as createContext6222222, useCallback as useCallback6222222, useContext as useContext6222222, useMemo as useMemo6222222, useState as useState21222222 } from "react";
4477
+ import { clsx as clsx11222222 } from "clsx";
4478
+ import { useRef as useRef6222222, useState as useState20222222 } from "react";
4479
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon3222222 } from "@heroicons/react/24/outline";
4480
+ import { jsx as jsx38222222, jsxs as jsxs33222222 } from "react/jsx-runtime";
4481
+ import { createPortal as createPortal5222222 } from "react-dom";
4482
+ import { jsx as jsx39222222, jsxs as jsxs34222222 } from "react/jsx-runtime";
4483
+ import { createContext as createContext7222222, useCallback as useCallback7222222, useContext as useContext7222222, useMemo as useMemo7222222, useState as useState23222222 } from "react";
4484
+ import { clsx as clsx12222222 } from "clsx";
4485
+ import { useRef as useRef7222222, useState as useState22222222 } from "react";
4486
+ import { AtSymbolIcon as AtSymbolIcon222222 } from "@heroicons/react/24/outline";
4487
+ import { jsx as jsx40222222, jsxs as jsxs35222222 } from "react/jsx-runtime";
4488
+ import { createPortal as createPortal6222222 } from "react-dom";
4489
+ import { jsx as jsx41222222, jsxs as jsxs36222222 } from "react/jsx-runtime";
4490
+ import { Fragment as Fragment6222222, jsx as jsx42222222, jsxs as jsxs37222222 } from "react/jsx-runtime";
4491
+ import { clsx as clsx13222222 } from "clsx";
4492
+ import { jsx as jsx43222222 } from "react/jsx-runtime";
4493
+ import { useEffect as useEffect10222222, useState as useState24222222 } from "react";
4494
+ import { cookiesGet as cookiesGet3222222, emptyUserCacheClient as emptyUserCacheClient322222, FULL_NAME_KEY as FULL_NAME_KEY222222, onUserEvent as onUserEvent322222, USERNAME_KEY as USERNAME_KEY422222 } from "@goralys/core";
4495
+ import { UserCircleIcon as UserCircleIcon322222 } from "@heroicons/react/24/outline";
4496
+ import clsx14222222 from "clsx";
4497
+ import { jsx as jsx44222222, jsxs as jsxs38222222 } from "react/jsx-runtime";
4498
+ import { useEffect as useEffect11222222, useState as useState25222222 } from "react";
4499
+ import { buildArray as buildArray322222, cookiesGet as cookiesGet4222222, cookiesOnChange as cookiesOnChange322222, ROLE_KEY as ROLE_KEY322222, USER_ROLES as USER_ROLES322222 } from "@goralys/core";
4500
+ import { jsx as jsx45222222, jsxs as jsxs39222222 } from "react/jsx-runtime";
4501
+ import { useEffect as useEffect13222222, useState as useState27222222 } from "react";
4502
+ import { buildArray as buildArray2222222, cookiesGet as cookiesGet6222222, cookiesOnChange as cookiesOnChange2222222, ROLE_KEY as ROLE_KEY2222222, USER_ROLES as USER_ROLES2222222 } from "@goralys/core";
4503
+ import { AcademicCapIcon as AcademicCapIcon2222222, HomeIcon as HomeIcon222222 } from "@heroicons/react/24/outline";
4504
+ import { clsx as clsx15222222 } from "clsx";
4505
+ import { jsx as jsx46222222, jsxs as jsxs40222222 } from "react/jsx-runtime";
4506
+ import { useEffect as useEffect12222222, useState as useState26222222 } from "react";
4507
+ import { cookiesGet as cookiesGet5222222, emptyUserCacheClient as emptyUserCacheClient2222222, onUserEvent as onUserEvent2222222, USERNAME_KEY as USERNAME_KEY2222222 } from "@goralys/core";
4508
+ import { UserCircleIcon as UserCircleIcon2222222 } from "@heroicons/react/24/outline";
4509
+ import clsx16222222 from "clsx";
4510
+ import { jsx as jsx47222222, jsxs as jsxs41222222 } from "react/jsx-runtime";
4511
+ import { jsx as jsx48222222, jsxs as jsxs42222222 } from "react/jsx-runtime";
4512
+ import { jsx as jsx49222222 } from "react/jsx-runtime";
4513
+ import { jsx as jsx50222222 } from "react/jsx-runtime";
4514
+ import { jsx as jsx51222222, jsxs as jsxs43222222 } from "react/jsx-runtime";
4515
+ import clsx17222222 from "clsx";
4516
+ import { jsx as jsx52222222, jsxs as jsxs44222222 } from "react/jsx-runtime";
4517
+ import { jsx as jsx53222222, jsxs as jsxs45222222 } from "react/jsx-runtime";
4518
+ import { jsx as jsx54222222, jsxs as jsxs46222222 } from "react/jsx-runtime";
4519
+ import { jsx as jsx55222222, jsxs as jsxs47222222 } from "react/jsx-runtime";
4520
+ import { jsx as jsx56222222, jsxs as jsxs48222222 } from "react/jsx-runtime";
4521
+ import { jsx as jsx57222222, jsxs as jsxs49222222 } from "react/jsx-runtime";
4522
+ import { jsx as jsx58222222, jsxs as jsxs50222222 } from "react/jsx-runtime";
4523
+ import { Fragment as Fragment7222222, jsx as jsx59222222, jsxs as jsxs51222222 } from "react/jsx-runtime";
4524
+ import { Fragment as Fragment8222222, jsx as jsx60222222, jsxs as jsxs52222222 } from "react/jsx-runtime";
4525
+ import { jsx as jsx61222222, jsxs as jsxs53222222 } from "react/jsx-runtime";
4526
+ import {
4527
+ cookiesSet as cookiesSet3222222,
4528
+ fetchCsrfClient as fetchCsrfClient3222222,
4529
+ getStatusLabel as getStatusLabel2222222,
4530
+ goralysFetchClient as goralysFetchClient3222222,
4531
+ handleToastRequest as handleToastRequest3222222,
4532
+ SubjectStatusConfig as SubjectStatusConfig222222
4533
+ } from "@goralys/core";
4534
+ import { jsx as jsx62222222, jsxs as jsxs54222222 } from "react/jsx-runtime";
4535
+ import { ChevronRightIcon as ChevronRightIcon322222 } from "@heroicons/react/24/outline";
4536
+ import { Fragment as Fragment9222222, jsx as jsx63222222, jsxs as jsxs55222222 } from "react/jsx-runtime";
4537
+ import { ChevronRightIcon as ChevronRightIcon2222222 } from "@heroicons/react/24/outline";
4538
+ import { Fragment as Fragment10222222, jsx as jsx64222222, jsxs as jsxs56222222 } from "react/jsx-runtime";
4539
+ import { getStatusLabel as getStatusLabel3222222 } from "@goralys/core";
4540
+ import { jsx as jsx65222222, jsxs as jsxs57222222 } from "react/jsx-runtime";
4541
+ import {
4542
+ cookiesSet as cookiesSet4222222,
4543
+ fetchCsrfClient as fetchCsrfClient4222222,
4544
+ getShortFromLong as getShortFromLong2222222,
4545
+ goralysFetchClient as goralysFetchClient4222222,
4546
+ handleToastRequest as handleToastRequest4222222,
4547
+ SUBJECT_SYNCS as SUBJECT_SYNCS322222
4548
+ } from "@goralys/core";
4549
+ import { useState as useState28222222 } from "react";
4550
+ import { Fragment as Fragment11222222, jsx as jsx66222222, jsxs as jsxs58222222 } from "react/jsx-runtime";
4551
+ import { useCallback as useCallback8222222, useEffect as useEffect14222222, useState as useState29222222 } from "react";
4552
+ import { getStatusLabel as getStatusLabel4222222 } from "@goralys/core";
4553
+ import { jsx as jsx67222222 } from "react/jsx-runtime";
4554
+ import { useEffect as useEffect15222222, useState as useState30222222 } from "react";
4555
+ import { getLongFromShort as getLongFromShort222222, searchFields as searchFields222222 } from "@goralys/core";
4556
+ import { jsx as jsx68222222, jsxs as jsxs59222222 } from "react/jsx-runtime";
4557
+ import {
4558
+ cookiesSet as cookiesSet5222222,
4559
+ fetchCsrfClient as fetchCsrfClient5222222,
4560
+ getShortFromLong as getShortFromLong3222222,
4561
+ goralysFetchClient as goralysFetchClient5222222,
4562
+ handleToastRequest as handleToastRequest5222222,
4563
+ SUBJECT_SYNCS as SUBJECT_SYNCS2222222
4564
+ } from "@goralys/core";
4565
+ import { useRef as useRef8222222, useState as useState31222222 } from "react";
4566
+ import { Fragment as Fragment12222222, jsx as jsx69222222, jsxs as jsxs60222222 } from "react/jsx-runtime";
4567
+ import { useEffect as useEffect16222222, useState as useState32222222 } from "react";
4568
+ import { cookiesGet as cookiesGet7222222, EMAIL_KEY as EMAIL_KEY222222, fetchCsrfClient as fetchCsrfClient6222222, getGoralysClientConfig as getGoralysClientConfig2222222, reasonsConfig as reasonsConfig222222, USERNAME_KEY as USERNAME_KEY3222222 } from "@goralys/core";
4569
+ import { jsx as jsx70222222, jsxs as jsxs61222222 } from "react/jsx-runtime";
4570
+ import { buildApiUrl as buildApiUrl5, reasonsConfig as reasonsConfig3 } from "@goralys/core";
4571
+ import { createContext as createContext8222222, useContext as useContext8222222, useMemo as useMemo8222222 } from "react";
4572
+ import { jsx as jsx71222222 } from "react/jsx-runtime";
4573
+ import { useEffect as useEffect17222222, useState as useState33222222 } from "react";
4574
+ import { useCallback as useCallback9222222 } from "react";
4575
+ import { useEffect as useEffect22222222 } from "react";
4576
+ import clsx18222222 from "clsx";
4577
+ import { jsx as jsx210222222 } from "react/jsx-runtime";
4578
+ import { Fragment as Fragment13222222, jsx as jsx310222222, jsxs as jsxs62222222 } from "react/jsx-runtime";
4579
+ import { jsx as jsx410222222 } from "react/jsx-runtime";
4580
+ import { cookiesGet as cookiesGet8222222, PUB_ID_KEY as PUB_ID_KEY2222222 } from "@goralys/core";
4581
+ import { ShieldExclamationIcon as ShieldExclamationIcon2222222 } from "@heroicons/react/24/outline";
4582
+ import { Fragment as Fragment22222222, jsx as jsx510222222, jsxs as jsxs210222222 } from "react/jsx-runtime";
4583
+ import { clsx as clsx22222222 } from "clsx";
4584
+ import { useState as useState210222222 } from "react";
4585
+ import { EyeIcon as EyeIcon2222222, EyeSlashIcon as EyeSlashIcon2222222 } from "@heroicons/react/24/outline";
4586
+ import { jsx as jsx610222222, jsxs as jsxs310222222 } from "react/jsx-runtime";
4587
+ import { useEffect as useEffect32222222, useState as useState34222222 } from "react";
4588
+ import { jsx as jsx72222222 } from "react/jsx-runtime";
4589
+ import { parsePhpDateTime as parsePhpDateTime3222222 } from "@goralys/core";
4590
+ import { Fragment as Fragment32222222, jsx as jsx82222222, jsxs as jsxs410222222 } from "react/jsx-runtime";
4591
+ import { buildApiUrl as buildApiUrl3222222, fetchCsrfClient as fetchCsrfClient7222222, goralysFetchClient as goralysFetchClient6222222, handleToastRequest as handleToastRequest6222222, parsePhpDateTime as parsePhpDateTime22222222 } from "@goralys/core";
4592
+ import { createContext as createContext22222222, useCallback as useCallback22222222, useContext as useContext22222222, useEffect as useEffect42222222, useMemo as useMemo22222222, useRef as useRef9222222, useState as useState42222222 } from "react";
4593
+ import { clsx as clsx32222222 } from "clsx";
4594
+ import { CheckCircleIcon as CheckCircleIcon2222222, ExclamationCircleIcon as ExclamationCircleIcon2222222, InformationCircleIcon as InformationCircleIcon2222222, XCircleIcon as XCircleIcon2222222 } from "@heroicons/react/24/outline";
4595
+ import { jsx as jsx92222222, jsxs as jsxs510222222 } from "react/jsx-runtime";
4596
+ import { FLASH_TOAST_KEY as FLASH_TOAST_KEY2222222, storageSet as storageSet2222222 } from "@goralys/core";
4597
+ import { createPortal as createPortal7222222 } from "react-dom";
4598
+ import { jsx as jsx102222222, jsxs as jsxs63222222 } from "react/jsx-runtime";
4599
+ import { createContext as createContext32222222, useCallback as useCallback32222222, useContext as useContext32222222, useMemo as useMemo32222222, useState as useState52222222 } from "react";
4600
+ import { clsx as clsx42222222 } from "clsx";
4601
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon4222222 } from "@heroicons/react/24/outline";
4602
+ import { useRef as useRef22222222 } from "react";
4603
+ import { jsx as jsx112222222, jsxs as jsxs72222222 } from "react/jsx-runtime";
4604
+ import { createPortal as createPortal22222222 } from "react-dom";
4605
+ import { jsx as jsx122222222, jsxs as jsxs82222222 } from "react/jsx-runtime";
4606
+ import { jsx as jsx132222222, jsxs as jsxs92222222 } from "react/jsx-runtime";
4607
+ import { useState as useState82222222 } from "react";
4608
+ import { createContext as createContext42222222, useCallback as useCallback42222222, useContext as useContext42222222, useMemo as useMemo42222222, useState as useState72222222 } from "react";
4609
+ import { LockClosedIcon as LockClosedIcon2222222 } from "@heroicons/react/16/solid";
4610
+ import { clsx as clsx52222222 } from "clsx";
4611
+ import { useRef as useRef32222222, useState as useState62222222 } from "react";
4612
+ import { jsx as jsx142222222, jsxs as jsxs102222222 } from "react/jsx-runtime";
4613
+ import { createPortal as createPortal32222222 } from "react-dom";
4614
+ import { jsx as jsx152222222, jsxs as jsxs112222222 } from "react/jsx-runtime";
4615
+ import { cookiesSet as cookiesSet6222222, fetchCsrfClient as fetchCsrfClient22222222, goralysFetchClient as goralysFetchClient22222222, handleToastRequest as handleToastRequest22222222 } from "@goralys/core";
4616
+ import { jsx as jsx162222222, jsxs as jsxs122222222 } from "react/jsx-runtime";
4617
+ import { useState as useState92222222 } from "react";
4618
+ import { jsx as jsx172222222, jsxs as jsxs132222222 } from "react/jsx-runtime";
4619
+ import { Fragment as Fragment42222222, jsx as jsx182222222, jsxs as jsxs142222222 } from "react/jsx-runtime";
4620
+ import { AcademicCapIcon as AcademicCapIcon3222222, BookOpenIcon as BookOpenIcon2222222 } from "@heroicons/react/24/outline";
4621
+ import { jsx as jsx192222222, jsxs as jsxs152222222 } from "react/jsx-runtime";
4622
+ import { useEffect as useEffect52222222, useState as useState102222222 } from "react";
4623
+ import { jsx as jsx202222222, jsxs as jsxs162222222 } from "react/jsx-runtime";
4624
+ import { jsx as jsx212222222, jsxs as jsxs172222222 } from "react/jsx-runtime";
4625
+ import { useEffect as useEffect62222222, useState as useState112222222 } from "react";
4626
+ import { jsx as jsx222222222, jsxs as jsxs182222222 } from "react/jsx-runtime";
4627
+ import { useEffect as useEffect72222222, useState as useState122222222 } from "react";
4628
+ import { jsx as jsx232222222, jsxs as jsxs192222222 } from "react/jsx-runtime";
4629
+ import { getShortFromLong as getShortFromLong4222222, getStatusLabel as getStatusLabel5222222 } from "@goralys/core";
4630
+ import { jsx as jsx242222222, jsxs as jsxs202222222 } from "react/jsx-runtime";
4631
+ import { Fragment as Fragment52222222, jsx as jsx252222222, jsxs as jsxs212222222 } from "react/jsx-runtime";
4632
+ import { useEffect as useEffect82222222, useState as useState132222222 } from "react";
4633
+ import * as React52222222 from "react";
4634
+ import { XMarkIcon as XMarkIcon2222222 } from "@heroicons/react/24/outline";
4635
+ import { COOKIES_DISMISSED_KEY as COOKIES_DISMISSED_KEY2222222, cookiesGet as cookiesGet22222222, cookiesSet as cookiesSet22222222 } from "@goralys/core";
4636
+ import { jsx as jsx262222222, jsxs as jsxs222222222 } from "react/jsx-runtime";
4637
+ import { useEffect as useEffect92222222, useRef as useRef42222222 } from "react";
4638
+ import { LOGO_PATH as LOGO_PATH2222222 } from "@goralys/core";
4639
+ import { jsx as jsx272222222, jsxs as jsxs232222222 } from "react/jsx-runtime";
4640
+ import { useId as useId2222222 } from "react";
4641
+ import { jsx as jsx282222222, jsxs as jsxs242222222 } from "react/jsx-runtime";
4642
+ import { useState as useState142222222 } from "react";
4643
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon3222222 } from "@heroicons/react/24/outline";
4644
+ import clsx62222222 from "clsx";
4645
+ import { jsx as jsx292222222, jsxs as jsxs252222222 } from "react/jsx-runtime";
4646
+ import { useState as useState152222222 } from "react";
4647
+ import { ArrowUpTrayIcon as ArrowUpTrayIcon22222222 } from "@heroicons/react/24/outline";
4648
+ import clsx72222222 from "clsx";
4649
+ import { jsx as jsx302222222, jsxs as jsxs262222222 } from "react/jsx-runtime";
4650
+ import { getStatusHelper as getStatusHelper4222222 } from "@goralys/core";
4651
+ import { clsx as clsx82222222 } from "clsx";
4652
+ import { useState as useState162222222 } from "react";
4653
+ import { jsx as jsx312222222, jsxs as jsxs272222222 } from "react/jsx-runtime";
4654
+ import { jsx as jsx322222222 } from "react/jsx-runtime";
4655
+ import { getStatusHelper as getStatusHelper22222222 } from "@goralys/core";
4656
+ import { jsx as jsx332222222, jsxs as jsxs282222222 } from "react/jsx-runtime";
4657
+ import { buildApiUrl as buildApiUrl22222222, getGoralysClientConfig as getGoralysClientConfig3222222, getStatusHelper as getStatusHelper32222222 } from "@goralys/core";
4658
+ import { ArrowDownTrayIcon as ArrowDownTrayIcon2222222 } from "@heroicons/react/24/outline";
4659
+ import { jsx as jsx342222222, jsxs as jsxs292222222 } from "react/jsx-runtime";
4660
+ import { clsx as clsx92222222 } from "clsx";
4661
+ import { useState as useState172222222 } from "react";
4662
+ import { jsx as jsx352222222, jsxs as jsxs302222222 } from "react/jsx-runtime";
4663
+ import { createContext as createContext52222222, useCallback as useCallback52222222, useContext as useContext52222222, useMemo as useMemo52222222, useState as useState192222222 } from "react";
4664
+ import { clsx as clsx102222222 } from "clsx";
4665
+ import { useRef as useRef52222222, useState as useState182222222 } from "react";
4666
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon22222222 } from "@heroicons/react/24/outline";
4667
+ import { jsx as jsx362222222, jsxs as jsxs312222222 } from "react/jsx-runtime";
4668
+ import { createPortal as createPortal42222222 } from "react-dom";
4669
+ import { jsx as jsx372222222, jsxs as jsxs322222222 } from "react/jsx-runtime";
4670
+ import { createContext as createContext62222222, useCallback as useCallback62222222, useContext as useContext62222222, useMemo as useMemo62222222, useState as useState212222222 } from "react";
4671
+ import { clsx as clsx112222222 } from "clsx";
4672
+ import { useRef as useRef62222222, useState as useState202222222 } from "react";
4673
+ import { QuestionMarkCircleIcon as QuestionMarkCircleIcon32222222 } from "@heroicons/react/24/outline";
4674
+ import { jsx as jsx382222222, jsxs as jsxs332222222 } from "react/jsx-runtime";
4675
+ import { createPortal as createPortal52222222 } from "react-dom";
4676
+ import { jsx as jsx392222222, jsxs as jsxs342222222 } from "react/jsx-runtime";
4677
+ import { createContext as createContext72222222, useCallback as useCallback72222222, useContext as useContext72222222, useMemo as useMemo72222222, useState as useState232222222 } from "react";
4678
+ import { clsx as clsx122222222 } from "clsx";
4679
+ import { useRef as useRef72222222, useState as useState222222222 } from "react";
4680
+ import { AtSymbolIcon as AtSymbolIcon2222222 } from "@heroicons/react/24/outline";
4681
+ import { jsx as jsx402222222, jsxs as jsxs352222222 } from "react/jsx-runtime";
4682
+ import { createPortal as createPortal62222222 } from "react-dom";
4683
+ import { jsx as jsx412222222, jsxs as jsxs362222222 } from "react/jsx-runtime";
4684
+ import { Fragment as Fragment62222222, jsx as jsx422222222, jsxs as jsxs372222222 } from "react/jsx-runtime";
4685
+ import { clsx as clsx132222222 } from "clsx";
4686
+ import { jsx as jsx432222222 } from "react/jsx-runtime";
4687
+ import { useEffect as useEffect102222222, useState as useState242222222 } from "react";
4688
+ import { cookiesGet as cookiesGet32222222, emptyUserCacheClient as emptyUserCacheClient3222222, FULL_NAME_KEY as FULL_NAME_KEY2222222, onUserEvent as onUserEvent3222222, USERNAME_KEY as USERNAME_KEY4222222 } from "@goralys/core";
4689
+ import { UserCircleIcon as UserCircleIcon3222222 } from "@heroicons/react/24/outline";
4690
+ import clsx142222222 from "clsx";
4691
+ import { jsx as jsx442222222, jsxs as jsxs382222222 } from "react/jsx-runtime";
4692
+ import { useEffect as useEffect112222222, useState as useState252222222 } from "react";
4693
+ import { buildArray as buildArray3222222, cookiesGet as cookiesGet42222222, cookiesOnChange as cookiesOnChange3222222, ROLE_KEY as ROLE_KEY3222222, USER_ROLES as USER_ROLES3222222 } from "@goralys/core";
4694
+ import { jsx as jsx452222222, jsxs as jsxs392222222 } from "react/jsx-runtime";
4695
+ import { useEffect as useEffect132222222, useState as useState272222222 } from "react";
4696
+ import { buildArray as buildArray22222222, cookiesGet as cookiesGet62222222, cookiesOnChange as cookiesOnChange22222222, ROLE_KEY as ROLE_KEY22222222, USER_ROLES as USER_ROLES22222222 } from "@goralys/core";
4697
+ import { AcademicCapIcon as AcademicCapIcon22222222, HomeIcon as HomeIcon2222222 } from "@heroicons/react/24/outline";
4698
+ import { clsx as clsx152222222 } from "clsx";
4699
+ import { jsx as jsx462222222, jsxs as jsxs402222222 } from "react/jsx-runtime";
4700
+ import { useEffect as useEffect122222222, useState as useState262222222 } from "react";
4701
+ import { cookiesGet as cookiesGet52222222, emptyUserCacheClient as emptyUserCacheClient22222222, onUserEvent as onUserEvent22222222, USERNAME_KEY as USERNAME_KEY22222222 } from "@goralys/core";
4702
+ import { UserCircleIcon as UserCircleIcon22222222 } from "@heroicons/react/24/outline";
4703
+ import clsx162222222 from "clsx";
4704
+ import { jsx as jsx472222222, jsxs as jsxs412222222 } from "react/jsx-runtime";
4705
+ import { jsx as jsx482222222, jsxs as jsxs422222222 } from "react/jsx-runtime";
4706
+ import { jsx as jsx492222222 } from "react/jsx-runtime";
4707
+ import { jsx as jsx502222222 } from "react/jsx-runtime";
4708
+ import { jsx as jsx512222222, jsxs as jsxs432222222 } from "react/jsx-runtime";
4709
+ import clsx172222222 from "clsx";
4710
+ import { jsx as jsx522222222, jsxs as jsxs442222222 } from "react/jsx-runtime";
4711
+ import { jsx as jsx532222222, jsxs as jsxs452222222 } from "react/jsx-runtime";
4712
+ import { jsx as jsx542222222, jsxs as jsxs462222222 } from "react/jsx-runtime";
4713
+ import { jsx as jsx552222222, jsxs as jsxs472222222 } from "react/jsx-runtime";
4714
+ import { jsx as jsx562222222, jsxs as jsxs482222222 } from "react/jsx-runtime";
4715
+ import { jsx as jsx572222222, jsxs as jsxs492222222 } from "react/jsx-runtime";
4716
+ import { jsx as jsx582222222, jsxs as jsxs502222222 } from "react/jsx-runtime";
4717
+ import { Fragment as Fragment72222222, jsx as jsx592222222, jsxs as jsxs512222222 } from "react/jsx-runtime";
4718
+ import { Fragment as Fragment82222222, jsx as jsx602222222, jsxs as jsxs522222222 } from "react/jsx-runtime";
4719
+ import { jsx as jsx612222222, jsxs as jsxs532222222 } from "react/jsx-runtime";
4720
+ import {
4721
+ cookiesSet as cookiesSet32222222,
4722
+ fetchCsrfClient as fetchCsrfClient32222222,
4723
+ getStatusLabel as getStatusLabel22222222,
4724
+ goralysFetchClient as goralysFetchClient32222222,
4725
+ handleToastRequest as handleToastRequest32222222,
4726
+ SubjectStatusConfig as SubjectStatusConfig2222222
4727
+ } from "@goralys/core";
4728
+ import { jsx as jsx622222222, jsxs as jsxs542222222 } from "react/jsx-runtime";
4729
+ import { ChevronRightIcon as ChevronRightIcon3222222 } from "@heroicons/react/24/outline";
4730
+ import { Fragment as Fragment92222222, jsx as jsx632222222, jsxs as jsxs552222222 } from "react/jsx-runtime";
4731
+ import { ChevronRightIcon as ChevronRightIcon22222222 } from "@heroicons/react/24/outline";
4732
+ import { Fragment as Fragment102222222, jsx as jsx642222222, jsxs as jsxs562222222 } from "react/jsx-runtime";
4733
+ import { getStatusLabel as getStatusLabel32222222 } from "@goralys/core";
4734
+ import { jsx as jsx652222222, jsxs as jsxs572222222 } from "react/jsx-runtime";
4735
+ import {
4736
+ cookiesSet as cookiesSet42222222,
4737
+ fetchCsrfClient as fetchCsrfClient42222222,
4738
+ getShortFromLong as getShortFromLong22222222,
4739
+ goralysFetchClient as goralysFetchClient42222222,
4740
+ handleToastRequest as handleToastRequest42222222,
4741
+ SUBJECT_SYNCS as SUBJECT_SYNCS3222222
4742
+ } from "@goralys/core";
4743
+ import { useState as useState282222222 } from "react";
4744
+ import { Fragment as Fragment112222222, jsx as jsx662222222, jsxs as jsxs582222222 } from "react/jsx-runtime";
4745
+ import { useCallback as useCallback82222222, useEffect as useEffect142222222, useState as useState292222222 } from "react";
4746
+ import { getStatusLabel as getStatusLabel42222222 } from "@goralys/core";
4747
+ import { jsx as jsx672222222 } from "react/jsx-runtime";
4748
+ import { useEffect as useEffect152222222, useState as useState302222222 } from "react";
4749
+ import { getLongFromShort as getLongFromShort2222222, searchFields as searchFields2222222 } from "@goralys/core";
4750
+ import { jsx as jsx682222222, jsxs as jsxs592222222 } from "react/jsx-runtime";
4751
+ import {
4752
+ cookiesSet as cookiesSet52222222,
4753
+ fetchCsrfClient as fetchCsrfClient52222222,
4754
+ getShortFromLong as getShortFromLong32222222,
4755
+ goralysFetchClient as goralysFetchClient52222222,
4756
+ handleToastRequest as handleToastRequest52222222,
4757
+ SUBJECT_SYNCS as SUBJECT_SYNCS22222222
4758
+ } from "@goralys/core";
4759
+ import { useRef as useRef82222222, useState as useState312222222 } from "react";
4760
+ import { Fragment as Fragment122222222, jsx as jsx692222222, jsxs as jsxs602222222 } from "react/jsx-runtime";
4761
+ import { useEffect as useEffect162222222, useState as useState322222222 } from "react";
4762
+ import { cookiesGet as cookiesGet72222222, EMAIL_KEY as EMAIL_KEY2222222, fetchCsrfClient as fetchCsrfClient62222222, getGoralysClientConfig as getGoralysClientConfig22222222, reasonsConfig as reasonsConfig2222222, USERNAME_KEY as USERNAME_KEY32222222 } from "@goralys/core";
4763
+ import { jsx as jsx702222222, jsxs as jsxs612222222 } from "react/jsx-runtime";
4764
+ import { buildApiUrl as buildApiUrl32222222, reasonsConfig as reasonsConfig22222222 } from "@goralys/core";
4765
+ import { jsx as jsx712222222, jsxs as jsxs622222222 } from "react/jsx-runtime";
4766
+ import { useEffect as useEffect172222222, useLayoutEffect, useRef as useRef92222222 } from "react";
4767
+ import { buildApiUrl as buildApiUrl4, FLASH_TOAST_KEY as FLASH_TOAST_KEY22222222, goralysFetchClient as goralysFetchClient62222222, storageGet, storageRemove } from "@goralys/core";
4768
+ import { useEffect as useEffect18, useRef as useRef1022222, useState as useState332222222 } from "react";
4769
+ import { fetchCsrfClient as fetchCsrfClient72222222, getGoralysClientConfig as getGoralysClientConfig32222222, goralysFetchClient as goralysFetchClient7, handleToastRequest as handleToastRequest62222222 } from "@goralys/core";
4770
+ import { jsx as jsx722222222, jsxs as jsxs632222222 } from "react/jsx-runtime";
4771
+ import { useEffect as useEffect19, useRef as useRef11, useState as useState342222222 } from "react";
4772
+ import { fetchCsrfClient as fetchCsrfClient8, getGoralysClientConfig as getGoralysClientConfig4 } from "@goralys/core";
4773
+ import { jsx as jsx7322222, jsxs as jsxs6422222 } from "react/jsx-runtime";
4774
+ import { jsx as jsx7422222, jsxs as jsxs6522222 } from "react/jsx-runtime";
4775
+ import { useEffect as useEffect20, useLayoutEffect as useLayoutEffect2, useRef as useRef12 } from "react";
4776
+ import { buildApiUrl as buildApiUrl6, FLASH_TOAST_KEY as FLASH_TOAST_KEY3, goralysFetchClient as goralysFetchClient8, storageGet as storageGet2, storageRemove as storageRemove2 } from "@goralys/core";
4777
+ import { useEffect as useEffect21, useRef as useRef13, useState as useState3522222 } from "react";
4778
+ import { fetchCsrfClient as fetchCsrfClient9, getGoralysClientConfig as getGoralysClientConfig5, goralysFetchClient as goralysFetchClient9, handleToastRequest as handleToastRequest7 } from "@goralys/core";
4779
+ import { jsx as jsx75, jsxs as jsxs66 } from "react/jsx-runtime";
4780
+ import { useEffect as useEffect23, useRef as useRef14, useState as useState3622222 } from "react";
4781
+ import { fetchCsrfClient as fetchCsrfClient10, getGoralysClientConfig as getGoralysClientConfig6 } from "@goralys/core";
4782
+ import { jsx as jsx76, jsxs as jsxs67 } from "react/jsx-runtime";
4783
+ import { jsx as jsx77, jsxs as jsxs68 } from "react/jsx-runtime";
4784
+ import { useEffect as useEffect24, useLayoutEffect as useLayoutEffect3, useRef as useRef15 } from "react";
4785
+ import { buildApiUrl as buildApiUrl8, FLASH_TOAST_KEY as FLASH_TOAST_KEY4, goralysFetchClient as goralysFetchClient10, storageGet as storageGet3, storageRemove as storageRemove3 } from "@goralys/core";
4786
+ import { useEffect as useEffect25, useRef as useRef16, useState as useState37 } from "react";
4787
+ import { fetchCsrfClient as fetchCsrfClient11, getGoralysClientConfig as getGoralysClientConfig7, goralysFetchClient as goralysFetchClient11, handleToastRequest as handleToastRequest8 } from "@goralys/core";
4788
+ import { jsx as jsx78, jsxs as jsxs69 } from "react/jsx-runtime";
4789
+ import { useEffect as useEffect26, useRef as useRef17, useState as useState38 } from "react";
4790
+ import { fetchCsrfClient as fetchCsrfClient12, getGoralysClientConfig as getGoralysClientConfig8 } from "@goralys/core";
4791
+ import { jsx as jsx79, jsxs as jsxs70 } from "react/jsx-runtime";
4792
+ import { jsx as jsx80, jsxs as jsxs71 } from "react/jsx-runtime";
4793
+ import { useEffect as useEffect27, useLayoutEffect as useLayoutEffect4, useRef as useRef18 } from "react";
4794
+ import { buildApiUrl as buildApiUrl10, FLASH_TOAST_KEY as FLASH_TOAST_KEY5, goralysFetchClient as goralysFetchClient12, storageGet as storageGet4, storageRemove as storageRemove4 } from "@goralys/core";
4795
+ import { useEffect as useEffect28, useRef as useRef19, useState as useState39 } from "react";
4796
+ import { fetchCsrfClient as fetchCsrfClient13, getGoralysClientConfig as getGoralysClientConfig9, goralysFetchClient as goralysFetchClient13, handleToastRequest as handleToastRequest9 } from "@goralys/core";
4797
+ import { jsx as jsx81, jsxs as jsxs73 } from "react/jsx-runtime";
4798
+ import { useEffect as useEffect29, useRef as useRef20, useState as useState40 } from "react";
4799
+ import { fetchCsrfClient as fetchCsrfClient14, getGoralysClientConfig as getGoralysClientConfig10 } from "@goralys/core";
4800
+ import { jsx as jsx83, jsxs as jsxs74 } from "react/jsx-runtime";
4801
+ import { jsx as jsx84, jsxs as jsxs75 } from "react/jsx-runtime";
4802
+ import { useEffect as useEffect30, useLayoutEffect as useLayoutEffect5, useRef as useRef21 } from "react";
4803
+ import { buildApiUrl as buildApiUrl12, FLASH_TOAST_KEY as FLASH_TOAST_KEY6, goralysFetchClient as goralysFetchClient14, storageGet as storageGet5, storageRemove as storageRemove5 } from "@goralys/core";
4804
+ import { useEffect as useEffect31, useRef as useRef23, useState as useState41 } from "react";
4805
+ import { fetchCsrfClient as fetchCsrfClient15, getGoralysClientConfig as getGoralysClientConfig11, goralysFetchClient as goralysFetchClient15, handleToastRequest as handleToastRequest10 } from "@goralys/core";
4806
+ import { jsx as jsx85, jsxs as jsxs76 } from "react/jsx-runtime";
4807
+ import { useEffect as useEffect33, useRef as useRef24, useState as useState43 } from "react";
4808
+ import { fetchCsrfClient as fetchCsrfClient16, getGoralysClientConfig as getGoralysClientConfig12 } from "@goralys/core";
4809
+ import { jsx as jsx86, jsxs as jsxs77 } from "react/jsx-runtime";
4810
+ import { jsx as jsx87, jsxs as jsxs78 } from "react/jsx-runtime";
4811
+ import { useEffect as useEffect34, useLayoutEffect as useLayoutEffect6, useRef as useRef25 } from "react";
4812
+ import { buildApiUrl as buildApiUrl14, FLASH_TOAST_KEY as FLASH_TOAST_KEY7, goralysFetchClient as goralysFetchClient16, storageGet as storageGet6, storageRemove as storageRemove6 } from "@goralys/core";
4813
+ import { useEffect as useEffect35, useRef as useRef26, useState as useState44 } from "react";
4814
+ import { fetchCsrfClient as fetchCsrfClient17, getGoralysClientConfig as getGoralysClientConfig13, goralysFetchClient as goralysFetchClient17, handleToastRequest as handleToastRequest11 } from "@goralys/core";
4815
+ import { jsx as jsx88, jsxs as jsxs79 } from "react/jsx-runtime";
4816
+ import { useEffect as useEffect36, useRef as useRef27, useState as useState45 } from "react";
4817
+ import { fetchCsrfClient as fetchCsrfClient18, getGoralysClientConfig as getGoralysClientConfig14 } from "@goralys/core";
4818
+ import { jsx as jsx89, jsxs as jsxs80 } from "react/jsx-runtime";
4819
+ import { jsx as jsx90, jsxs as jsxs81 } from "react/jsx-runtime";
4820
+ import { useEffect as useEffect37, useLayoutEffect as useLayoutEffect7, useRef as useRef28 } from "react";
4821
+ import { buildApiUrl as buildApiUrl16, FLASH_TOAST_KEY as FLASH_TOAST_KEY8, goralysFetchClient as goralysFetchClient18, storageGet as storageGet7, storageRemove as storageRemove7 } from "@goralys/core";
4822
+ import { useEffect as useEffect38, useRef as useRef29, useState as useState46 } from "react";
4823
+ import { fetchCsrfClient as fetchCsrfClient19, getGoralysClientConfig as getGoralysClientConfig15, goralysFetchClient as goralysFetchClient19, handleToastRequest as handleToastRequest12 } from "@goralys/core";
4824
+ import { jsx as jsx91, jsxs as jsxs83 } from "react/jsx-runtime";
4825
+ import { useEffect as useEffect39, useRef as useRef30, useState as useState47 } from "react";
4826
+ import { fetchCsrfClient as fetchCsrfClient20, getGoralysClientConfig as getGoralysClientConfig16 } from "@goralys/core";
4827
+ import { jsx as jsx93, jsxs as jsxs84 } from "react/jsx-runtime";
4828
+ var GoralysUIContext2 = createContext9(null);
4829
+ function useGoralysUI2() {
4830
+ const context = useContext9(GoralysUIContext2);
4831
+ if (!context) throw new Error("useGoralysUI must be used inside a GoralysUIProvider");
4832
+ return context;
4833
+ }
4834
+ var ToastContext2 = createContext22(null);
4835
+ var ConfirmContext2 = createContext32(null);
4836
+ var PasswordModalContext2 = createContext42(null);
4837
+ var DraftModalContext2 = createContext52(null);
4838
+ var ImportTopicsModalContext2 = createContext62(null);
4839
+ var EmailModalContext2 = createContext72(null);
4840
+ var ConfirmTokenContext2 = createContext82(null);
4841
+ var GoralysUIContext22 = createContext92(null);
4842
+ var ToastContext22 = createContext222(null);
4843
+ var ConfirmContext22 = createContext322(null);
4844
+ var PasswordModalContext22 = createContext422(null);
4845
+ var DraftModalContext22 = createContext522(null);
4846
+ var ImportTopicsModalContext22 = createContext622(null);
4847
+ var EmailModalContext22 = createContext722(null);
4848
+ var ConfirmTokenContext22 = createContext822(null);
4849
+ var GoralysUIContext222 = createContext922(null);
4850
+ var ToastContext222 = createContext2222(null);
4851
+ var ConfirmContext222 = createContext3222(null);
4852
+ var PasswordModalContext222 = createContext4222(null);
4853
+ var DraftModalContext222 = createContext5222(null);
4854
+ var ImportTopicsModalContext222 = createContext6222(null);
4855
+ var EmailModalContext222 = createContext7222(null);
4856
+ var ConfirmTokenContext222 = createContext8222(null);
4857
+ var GoralysUIContext2222 = createContext9222(null);
4858
+ var ToastContext2222 = createContext22222(null);
4859
+ var ConfirmContext2222 = createContext32222(null);
4860
+ var PasswordModalContext2222 = createContext42222(null);
4861
+ var DraftModalContext2222 = createContext52222(null);
4862
+ var ImportTopicsModalContext2222 = createContext62222(null);
4863
+ var EmailModalContext2222 = createContext72222(null);
4864
+ var ConfirmTokenContext2222 = createContext82222(null);
4865
+ var GoralysUIContext22222 = createContext92222(null);
4866
+ var ToastContext22222 = createContext222222(null);
4867
+ var ConfirmContext22222 = createContext322222(null);
4868
+ var PasswordModalContext22222 = createContext422222(null);
4869
+ var DraftModalContext22222 = createContext522222(null);
4870
+ var ImportTopicsModalContext22222 = createContext622222(null);
4871
+ var EmailModalContext22222 = createContext722222(null);
4872
+ var GoralysUIContext222222 = createContext822222(null);
4873
+ var ToastContext222222 = createContext2222222(null);
4874
+ var ConfirmContext222222 = createContext3222222(null);
4875
+ var PasswordModalContext222222 = createContext4222222(null);
4876
+ var DraftModalContext222222 = createContext5222222(null);
4877
+ var ImportTopicsModalContext222222 = createContext6222222(null);
4878
+ var EmailModalContext222222 = createContext7222222(null);
4879
+ var GoralysUIContext2222222 = createContext8222222(null);
4880
+ var ToastContext2222222 = createContext22222222(null);
4881
+ var ConfirmContext2222222 = createContext32222222(null);
4882
+ var PasswordModalContext2222222 = createContext42222222(null);
4883
+ var DraftModalContext2222222 = createContext52222222(null);
4884
+ var ImportTopicsModalContext2222222 = createContext62222222(null);
4885
+ var EmailModalContext2222222 = createContext72222222(null);
4886
+
4887
+ // src/ui/support/support-ticket-card.tsx
4888
+ import { jsx as jsx94, jsxs as jsxs85 } from "react/jsx-runtime";
3218
4889
  function SupportTicketCard({ ticket }) {
3219
- return /* @__PURE__ */ jsxs62("div", { className: "h-fit w-200 flex flex-col bg-sky-200 gap-1 gap-y-3 p-1 mt-1", children: [
3220
- /* @__PURE__ */ jsxs62("div", { className: "flex flex-row w-full justify-between", children: [
3221
- /* @__PURE__ */ jsxs62("span", { children: [
3222
- /* @__PURE__ */ jsxs62("strong", { children: [
4890
+ const router = useGoralysUI2().useRouter();
4891
+ return /* @__PURE__ */ jsxs85("div", { className: "h-fit w-200 flex flex-col bg-sky-200 gap-1 gap-y-3 p-1 mt-1", children: [
4892
+ /* @__PURE__ */ jsxs85("div", { className: "flex flex-row w-full justify-between", children: [
4893
+ /* @__PURE__ */ jsxs85("span", { children: [
4894
+ /* @__PURE__ */ jsxs85("strong", { children: [
3223
4895
  "#",
3224
4896
  ticket.id
3225
4897
  ] }),
3226
4898
  " [",
3227
- reasonsConfig2[ticket.reason].label,
4899
+ reasonsConfig9[ticket.reason].label,
3228
4900
  "]"
3229
4901
  ] }),
3230
- /* @__PURE__ */ jsx71(
4902
+ /* @__PURE__ */ jsx94(
3231
4903
  "a",
3232
4904
  {
3233
- href: buildApiUrl3("ticket/contact", { t: ticket.id.toString() }, true),
4905
+ href: buildApiUrl17("ticket/contact", { t: ticket.id.toString() }, true),
3234
4906
  target: "_blank",
3235
4907
  title: "Contactez l'utilisateur",
3236
4908
  className: "cursor-pointer",
3237
- children: /* @__PURE__ */ jsx71("strong", { children: ticket.opener })
4909
+ children: /* @__PURE__ */ jsx94("strong", { children: ticket.opener })
3238
4910
  }
3239
4911
  )
3240
4912
  ] }),
3241
- /* @__PURE__ */ jsx71(
4913
+ /* @__PURE__ */ jsx94(
3242
4914
  TextArea,
3243
4915
  {
3244
4916
  id: "message",
@@ -3248,13 +4920,13 @@ function SupportTicketCard({ ticket }) {
3248
4920
  },
3249
4921
  "support-message-" + ticket.id + ticket.opener
3250
4922
  ),
3251
- /* @__PURE__ */ jsx71(
4923
+ /* @__PURE__ */ jsx94(
3252
4924
  Button,
3253
4925
  {
3254
4926
  text: "Ce probl\xE8me a \xE9t\xE9 r\xE9solu",
3255
4927
  type: "button",
3256
4928
  onClick: () => {
3257
- window.location.href = "/support/ticket?t=" + ticket.id;
4929
+ router.push("/support/ticket?t=" + encodeURIComponent(ticket.id));
3258
4930
  }
3259
4931
  }
3260
4932
  )
@@ -3262,19 +4934,19 @@ function SupportTicketCard({ ticket }) {
3262
4934
  }
3263
4935
 
3264
4936
  // src/ui/toast/flash-toast-listener.tsx
3265
- import { useEffect as useEffect16, useLayoutEffect, useRef as useRef8 } from "react";
3266
- import { buildApiUrl as buildApiUrl4, FLASH_TOAST_KEY as FLASH_TOAST_KEY2, goralysFetchClient as goralysFetchClient6, storageGet, storageRemove } from "@goralys/core";
4937
+ import { useEffect as useEffect40, useLayoutEffect as useLayoutEffect8, useRef as useRef31 } from "react";
4938
+ import { buildApiUrl as buildApiUrl18, FLASH_TOAST_KEY as FLASH_TOAST_KEY9, goralysFetchClient as goralysFetchClient20, storageGet as storageGet8, storageRemove as storageRemove8 } from "@goralys/core";
3267
4939
  function FlashToastListener() {
3268
4940
  const { showToast } = useToast();
3269
- const showToastRef = useRef8(showToast);
3270
- useEffect16(() => {
4941
+ const showToastRef = useRef31(showToast);
4942
+ useEffect40(() => {
3271
4943
  showToastRef.current = showToast;
3272
4944
  }, [showToast]);
3273
4945
  const pathname = useGoralysUI().usePathname();
3274
4946
  const showCachedToast = (destroyCache = true) => {
3275
- const raw = storageGet(FLASH_TOAST_KEY2);
4947
+ const raw = storageGet8(FLASH_TOAST_KEY9);
3276
4948
  if (!raw) return;
3277
- if (destroyCache) storageRemove(FLASH_TOAST_KEY2);
4949
+ if (destroyCache) storageRemove8(FLASH_TOAST_KEY9);
3278
4950
  try {
3279
4951
  const parsed = JSON.parse(raw);
3280
4952
  if (!parsed.expires) return;
@@ -3284,17 +4956,17 @@ function FlashToastListener() {
3284
4956
  } catch {
3285
4957
  }
3286
4958
  };
3287
- useLayoutEffect(() => showCachedToast(false), [pathname]);
3288
- useEffect16(() => {
4959
+ useLayoutEffect8(() => showCachedToast(false), [pathname]);
4960
+ useEffect40(() => {
3289
4961
  let cancelled = false;
3290
4962
  const run = async () => {
3291
4963
  try {
3292
- const res = await goralysFetchClient6("GET", buildApiUrl4("toast/flash", {}), void 0, {
4964
+ const res = await goralysFetchClient20("GET", buildApiUrl18("toast/flash", {}), void 0, {
3293
4965
  cache: "no-store"
3294
4966
  });
3295
4967
  const data = await res.json();
3296
4968
  if (data?.toast) {
3297
- storageRemove(FLASH_TOAST_KEY2);
4969
+ storageRemove8(FLASH_TOAST_KEY9);
3298
4970
  showToastRef.current({
3299
4971
  type: data.toast.toastType,
3300
4972
  title: data.toast.toastTitle,
@@ -3316,63 +4988,100 @@ function FlashToastListener() {
3316
4988
  }
3317
4989
 
3318
4990
  // src/ui/user/forms/login-form.tsx
3319
- import { useEffect as useEffect17, useRef as useRef9, useState as useState32 } from "react";
3320
- import { fetchCsrfClient as fetchCsrfClient7, getGoralysClientConfig as getGoralysClientConfig3 } from "@goralys/core";
3321
- import { jsx as jsx72, jsxs as jsxs63 } from "react/jsx-runtime";
4991
+ import { useEffect as useEffect41, useRef as useRef33, useState as useState48 } from "react";
4992
+ import { fetchCsrfClient as fetchCsrfClient21, getGoralysClientConfig as getGoralysClientConfig17, goralysFetchClient as goralysFetchClient21, handleToastRequest as handleToastRequest13 } from "@goralys/core";
4993
+ import { jsx as jsx95, jsxs as jsxs86 } from "react/jsx-runtime";
3322
4994
  function LoginForm() {
3323
- const { apiDomain, getSchoolToken } = getGoralysClientConfig3();
4995
+ const { apiDomain, getSchoolToken } = getGoralysClientConfig17();
4996
+ const { showToast } = useToast();
3324
4997
  const isDesktop = useMediaQuery("(min-width: 640px)");
3325
- const [csrfToken, setCsrfToken] = useState32(null);
3326
- const [submitting, setSubmitting] = useState32(false);
3327
- const submittingRef = useRef9(false);
3328
- const requestUrl = `${apiDomain}/user/login?high-school-token=${getSchoolToken()}`;
3329
- useEffect17(() => {
4998
+ const [csrfToken, setCsrfToken] = useState48(null);
4999
+ const [submitting, setSubmitting] = useState48(false);
5000
+ const submittingRef = useRef33(false);
5001
+ const requestUrl = `user/login?high-school-token=${getSchoolToken()}`;
5002
+ useEffect41(() => {
3330
5003
  const canceled = false;
3331
- fetchCsrfClient7("login").then((token) => {
5004
+ fetchCsrfClient21("login").then((token) => {
3332
5005
  if (!canceled) setCsrfToken(token);
3333
5006
  }).catch(() => {
3334
5007
  if (!canceled) setCsrfToken(null);
3335
5008
  });
3336
5009
  }, []);
3337
- function handleSubmit(e) {
5010
+ const submitDesktop = (e) => {
3338
5011
  if (submittingRef.current) {
3339
5012
  e.preventDefault();
3340
5013
  return;
3341
5014
  }
3342
5015
  submittingRef.current = true;
3343
5016
  setSubmitting(true);
5017
+ };
5018
+ const submitMobile = async (e) => {
5019
+ e.preventDefault();
5020
+ if (submittingRef.current) return;
5021
+ submittingRef.current = true;
5022
+ setSubmitting(true);
5023
+ const data = new FormData(e.currentTarget);
5024
+ try {
5025
+ const res = await goralysFetchClient21("POST", requestUrl, {
5026
+ "csrf-token": csrfToken,
5027
+ client_context: "mobile",
5028
+ username: String(data.get("username") ?? ""),
5029
+ password: String(data.get("password") ?? "")
5030
+ });
5031
+ await handleToastRequest13(res, showToast, true);
5032
+ } finally {
5033
+ submittingRef.current = false;
5034
+ setSubmitting(false);
5035
+ }
5036
+ };
5037
+ function handleSubmit(e) {
5038
+ if (getGoralysClientConfig17().isNative) {
5039
+ submitMobile(e).then();
5040
+ return;
5041
+ }
5042
+ submitDesktop(e);
3344
5043
  }
3345
- return /* @__PURE__ */ jsxs63(Card, { className: "relative flex-col h-65 bg-sky-200 order-1 sm:order-2", children: [
3346
- /* @__PURE__ */ jsx72("h1", { className: "text-xl", children: "Connectez vous \xE0 votre compte Goralys" }),
3347
- /* @__PURE__ */ jsxs63("form", { className: "relative flex flex-col h-full", action: requestUrl, method: "POST", autoComplete: "on", onSubmit: handleSubmit, children: [
3348
- /* @__PURE__ */ jsx72(FloatingInput, { id: "username", label: "Identifiant", helper: "Identifiant au format p.nomX", autocomplete: "username", required: true }),
3349
- /* @__PURE__ */ jsx72(FloatingInput, { id: "password", label: "Mot de passe", autocomplete: "current-password", password: true, required: true }),
3350
- /* @__PURE__ */ jsx72("input", { type: "hidden", name: "csrf-token", value: (csrfToken ? csrfToken : "no-token").trim() }),
3351
- /* @__PURE__ */ jsx72("input", { type: "hidden", name: "client_context", value: isDesktop ? "desktop" : "mobile" }),
3352
- /* @__PURE__ */ jsx72(
3353
- Button,
3354
- {
3355
- type: "submit",
3356
- text: csrfToken === null ? "Chargement..." : submitting ? "Connexion..." : "Se connecter",
3357
- className: "absolute! bottom-0",
3358
- disabled: csrfToken === null || submitting
3359
- }
3360
- )
3361
- ] })
5044
+ return /* @__PURE__ */ jsxs86(Card, { className: "relative flex-col h-65 bg-sky-200 order-1 sm:order-2", children: [
5045
+ /* @__PURE__ */ jsx95("h1", { className: "text-xl", children: "Connectez vous \xE0 votre compte Goralys" }),
5046
+ /* @__PURE__ */ jsxs86(
5047
+ "form",
5048
+ {
5049
+ className: "relative flex flex-col h-full",
5050
+ action: `${apiDomain}/${requestUrl}`,
5051
+ method: "POST",
5052
+ autoComplete: "on",
5053
+ onSubmit: handleSubmit,
5054
+ children: [
5055
+ /* @__PURE__ */ jsx95(FloatingInput, { id: "username", label: "Identifiant", helper: "Identifiant au format p.nomX", autocomplete: "username", required: true }),
5056
+ /* @__PURE__ */ jsx95(FloatingInput, { id: "password", label: "Mot de passe", autocomplete: "current-password", password: true, required: true }),
5057
+ /* @__PURE__ */ jsx95("input", { type: "hidden", name: "csrf-token", value: (csrfToken ? csrfToken : "no-token").trim() }),
5058
+ /* @__PURE__ */ jsx95("input", { type: "hidden", name: "client_context", value: isDesktop ? "desktop" : "mobile" }),
5059
+ /* @__PURE__ */ jsx95(
5060
+ Button,
5061
+ {
5062
+ type: "submit",
5063
+ text: csrfToken === null ? "Chargement..." : submitting ? "Connexion..." : "Se connecter",
5064
+ className: "absolute! bottom-0",
5065
+ disabled: csrfToken === null || submitting
5066
+ }
5067
+ )
5068
+ ]
5069
+ }
5070
+ )
3362
5071
  ] });
3363
5072
  }
3364
5073
 
3365
5074
  // src/ui/user/forms/register-form.tsx
3366
- import { useEffect as useEffect18, useRef as useRef10, useState as useState33 } from "react";
3367
- import { fetchCsrfClient as fetchCsrfClient8, getGoralysClientConfig as getGoralysClientConfig4 } from "@goralys/core";
3368
- import { jsx as jsx73, jsxs as jsxs64 } from "react/jsx-runtime";
5075
+ import { useEffect as useEffect43, useRef as useRef34, useState as useState49 } from "react";
5076
+ import { fetchCsrfClient as fetchCsrfClient23, getGoralysClientConfig as getGoralysClientConfig18 } from "@goralys/core";
5077
+ import { jsx as jsx96, jsxs as jsxs87 } from "react/jsx-runtime";
3369
5078
  function RegisterForm() {
3370
- const { apiDomain, getSchoolToken } = getGoralysClientConfig4();
5079
+ const { apiDomain, getSchoolToken } = getGoralysClientConfig18();
3371
5080
  const searchParams = useGoralysUI().useSearchParams();
3372
5081
  const router = useGoralysUI().useRouter();
3373
- const [id, setId] = useState33(void 0);
3374
- const hasRun = useRef10(false);
3375
- useEffect18(() => {
5082
+ const [id, setId] = useState49(void 0);
5083
+ const hasRun = useRef34(false);
5084
+ useEffect43(() => {
3376
5085
  if (hasRun.current) return;
3377
5086
  hasRun.current = true;
3378
5087
  const update = () => setId(searchParams.get("id") ?? void 0);
@@ -3383,16 +5092,16 @@ function RegisterForm() {
3383
5092
  update();
3384
5093
  router.replace("/user/register");
3385
5094
  }, [searchParams, router]);
3386
- const [csrfToken, setCsrfToken] = useState33(null);
5095
+ const [csrfToken, setCsrfToken] = useState49(null);
3387
5096
  const requestUrl = `${apiDomain}/user/register?high-school-token=${getSchoolToken()}`;
3388
- useEffect18(() => {
3389
- const run = async () => setCsrfToken(await fetchCsrfClient8("register"));
5097
+ useEffect43(() => {
5098
+ const run = async () => setCsrfToken(await fetchCsrfClient23("register"));
3390
5099
  run().then();
3391
5100
  }, []);
3392
- return /* @__PURE__ */ jsxs64(Card, { className: "flex-col h-79 bg-sky-200 order-1 sm:order-2", children: [
3393
- /* @__PURE__ */ jsx73("h1", { className: "text-xl", children: "Cr\xE9ez votre compte chez Goralys" }),
3394
- /* @__PURE__ */ jsxs64("form", { className: "relative flex flex-col h-full", method: "POST", action: requestUrl, autoComplete: "on", children: [
3395
- /* @__PURE__ */ jsx73(
5101
+ return /* @__PURE__ */ jsxs87(Card, { className: "flex-col h-79 bg-sky-200 order-1 sm:order-2", children: [
5102
+ /* @__PURE__ */ jsx96("h1", { className: "text-xl", children: "Cr\xE9ez votre compte chez Goralys" }),
5103
+ /* @__PURE__ */ jsxs87("form", { className: "relative flex flex-col h-full", method: "POST", action: requestUrl, autoComplete: "on", children: [
5104
+ /* @__PURE__ */ jsx96(
3396
5105
  FloatingInput,
3397
5106
  {
3398
5107
  id: "user-name",
@@ -3403,7 +5112,7 @@ function RegisterForm() {
3403
5112
  required: true
3404
5113
  }
3405
5114
  ),
3406
- /* @__PURE__ */ jsx73(
5115
+ /* @__PURE__ */ jsx96(
3407
5116
  FloatingInput,
3408
5117
  {
3409
5118
  id: "password",
@@ -3414,9 +5123,9 @@ function RegisterForm() {
3414
5123
  required: true
3415
5124
  }
3416
5125
  ),
3417
- /* @__PURE__ */ jsx73(FloatingInput, { id: "email", label: "Addresse Mail", autocomplete: "email", helper: "Ce champ est optionnel.", email: true }),
3418
- /* @__PURE__ */ jsx73("input", { type: "hidden", name: "csrf-token", value: (csrfToken ? csrfToken : "no-token").trim() }),
3419
- /* @__PURE__ */ jsx73(
5126
+ /* @__PURE__ */ jsx96(FloatingInput, { id: "email", label: "Addresse Mail", autocomplete: "email", helper: "Ce champ est optionnel.", email: true }),
5127
+ /* @__PURE__ */ jsx96("input", { type: "hidden", name: "csrf-token", value: (csrfToken ? csrfToken : "no-token").trim() }),
5128
+ /* @__PURE__ */ jsx96(
3420
5129
  Button,
3421
5130
  {
3422
5131
  type: "submit",
@@ -3447,6 +5156,8 @@ export {
3447
5156
  CommentTeacher,
3448
5157
  ConfirmElement,
3449
5158
  ConfirmProvider,
5159
+ ConfirmTokenElement,
5160
+ ConfirmTokenProvider,
3450
5161
  CookieBanner,
3451
5162
  CreateAdminElement,
3452
5163
  DraftModalElement,
@@ -3505,6 +5216,7 @@ export {
3505
5216
  UsersSearchBar,
3506
5217
  useAutoResize,
3507
5218
  useConfirm,
5219
+ useConfirmToken,
3508
5220
  useDraftModal,
3509
5221
  useEmailModal,
3510
5222
  useGoralysUI,