your-ai-workflow-firebase-os 2.0.8 → 2.0.10

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 (144) hide show
  1. package/dist/{Assets-Dd_96avv.js → Assets-BKXpQmMS.js} +5 -5
  2. package/dist/{Assets-CBBNIHrw.cjs → Assets-DoZlHuud.cjs} +1 -1
  3. package/dist/{Attachments-C6QrTcNt.cjs → Attachments-BMuQ0CD4.cjs} +1 -1
  4. package/dist/{Attachments-YyjQmhBx.js → Attachments-Co1UkdWB.js} +2 -2
  5. package/dist/{Billing-BZafAizg.js → Billing-A6rwfQRT.js} +4 -4
  6. package/dist/{Billing-B6f49cGH.cjs → Billing-CBxVy-CG.cjs} +1 -1
  7. package/dist/{BookingCalendar-DYsA71vl.cjs → BookingCalendar-BcvJiyaq.cjs} +1 -1
  8. package/dist/{BookingCalendar-_xoRa2tL.js → BookingCalendar-Bej__mIs.js} +1 -1
  9. package/dist/{Button-DSldWACF.js → Button-BGN6q7lY.js} +1 -1
  10. package/dist/{Button-PyTaaoyu.cjs → Button-Ccy4wFZ1.cjs} +1 -1
  11. package/dist/{ConfirmModal-CQ73WYUg.cjs → ConfirmModal-BUNtss4a.cjs} +1 -1
  12. package/dist/{ConfirmModal-C1dM-bzk.js → ConfirmModal-BW9e6Y7d.js} +3 -3
  13. package/dist/{ContactPopup-D5Hh0bfE.cjs → ContactPopup-D8aSSlmS.cjs} +1 -1
  14. package/dist/{ContactPopup-CL4AMwK9.js → ContactPopup-Fs7wzrOX.js} +7 -7
  15. package/dist/{CopyLink-BnYpVy6H.cjs → CopyLink-D6QTWSoK.cjs} +1 -1
  16. package/dist/{CopyLink-rLr_5eNM.js → CopyLink-kROJG9Qf.js} +2 -2
  17. package/dist/{DashboardNav-DOl9gJuu.cjs → DashboardNav-Bc619nqn.cjs} +1 -1
  18. package/dist/{DashboardNav-B0G943ux.js → DashboardNav-CxS3Qnl-.js} +3 -3
  19. package/dist/{EmailAdmin-humrSTzI.js → EmailAdmin-DbWK_5Kw.js} +9 -9
  20. package/dist/{EmailAdmin-CWHMMybh.cjs → EmailAdmin-sa9C5jOw.cjs} +1 -1
  21. package/dist/{EventCard-6eCfvOA-.cjs → EventCard-D57elnQo.cjs} +1 -1
  22. package/dist/{EventCard-CrPswwyG.js → EventCard-DnoR91KN.js} +2 -2
  23. package/dist/{FileViewerPopup-DQmhXMSg.cjs → FileViewerPopup-CkLUYCNo.cjs} +1 -1
  24. package/dist/{FileViewerPopup-Dnl3td2o.js → FileViewerPopup-gqhRT22v.js} +2 -2
  25. package/dist/{FormNote-BWGLs9lx.js → FormNote-DJ9HBokL.js} +1 -1
  26. package/dist/{FormNote-CX2rSBDB.cjs → FormNote-DP0GK9ya.cjs} +1 -1
  27. package/dist/{FormsAdmin-Tg20B0iA.cjs → FormsAdmin-Ck7ssCHd.cjs} +1 -1
  28. package/dist/{FormsAdmin-CHwmKnYU.js → FormsAdmin-DOes2Ajy.js} +9 -9
  29. package/dist/{Inbox-BPwIiThg.cjs → Inbox-ChBLxjCi.cjs} +1 -1
  30. package/dist/{Inbox-Cgq4MALU.js → Inbox-CyteB2LL.js} +9 -9
  31. package/dist/{Loader-DP_dL5qC.js → Loader-CVoz1Zf0.js} +1 -1
  32. package/dist/{Loader-p3eNQDUU.cjs → Loader-QHqQsXLr.cjs} +1 -1
  33. package/dist/{ManagePlanButton-BRW7Sevd.cjs → ManagePlanButton-Buwfs2bU.cjs} +1 -1
  34. package/dist/{ManagePlanButton-CNLCxK-o.js → ManagePlanButton-CE4uyh_7.js} +2 -2
  35. package/dist/{MyBookings-BC5sn_fE.cjs → MyBookings-B424zfVj.cjs} +1 -1
  36. package/dist/{MyBookings-C_pqsSEk.js → MyBookings-DLQefkDS.js} +7 -7
  37. package/dist/{PageTitle-BWmE74WQ.cjs → PageTitle-BL50s4qY.cjs} +1 -1
  38. package/dist/{PageTitle-DFGW71q8.js → PageTitle-CkZriz8K.js} +2 -2
  39. package/dist/{PagesAdmin-BZZ3by92.cjs → PagesAdmin-1U73GM_o.cjs} +1 -1
  40. package/dist/PagesAdmin-8smM_SDx.cjs +1 -0
  41. package/dist/{PagesAdmin-jjnDLYmF.js → PagesAdmin-CORR24DJ.js} +21 -21
  42. package/dist/PagesAdmin-hhVAwuuy.js +3 -0
  43. package/dist/{PaymentsAdmin-DeBMmFFo.js → PaymentsAdmin-CoaSATtY.js} +15 -15
  44. package/dist/{PaymentsAdmin-CI0zXraR.cjs → PaymentsAdmin-DdP5FeXc.cjs} +1 -1
  45. package/dist/{Popup-DmPEk98h.js → Popup-Bi63lzoS.js} +1 -1
  46. package/dist/{Popup-nq7YNM4N.cjs → Popup-COnHpbrY.cjs} +1 -1
  47. package/dist/{ProviderMark-DJ5mYjYn.cjs → ProviderMark-BCQRu5Gs.cjs} +1 -1
  48. package/dist/{ProviderMark-CAeOnBsB.js → ProviderMark-Celkjuth.js} +1 -1
  49. package/dist/{PublishApp-DI96gX9b.cjs → PublishApp-CYHX36oo.cjs} +1 -1
  50. package/dist/{PublishApp-mMMwf_in.js → PublishApp-Dagc4TYm.js} +7 -7
  51. package/dist/{Said-DAD7Ctp_.js → Said-BvSRaEfZ.js} +1 -1
  52. package/dist/{Said-DlJOjNMN.cjs → Said-W3KFi5uX.cjs} +1 -1
  53. package/dist/{ScheduleAdmin-C4W8Ls0D.js → ScheduleAdmin-D8siv7ZQ.js} +14 -14
  54. package/dist/{ScheduleAdmin-dWj_N_tf.cjs → ScheduleAdmin-ohFzK-5E.cjs} +1 -1
  55. package/dist/{SchedulePicker-CwKId9JF.cjs → SchedulePicker-BpPGI5VZ.cjs} +1 -1
  56. package/dist/{SchedulePicker-BOSJEcfL.js → SchedulePicker-sZIZec9L.js} +2 -2
  57. package/dist/{Setup-NOvtplUS.js → Setup-DOGI-_8f.js} +3 -3
  58. package/dist/{Setup-DcZzh6Xd.cjs → Setup-DiFnnzdd.cjs} +1 -1
  59. package/dist/{SetupPayments-CZ0KqXdR.cjs → SetupPayments-BLq0W5DU.cjs} +1 -1
  60. package/dist/{SetupPayments-DrXK0LQa.js → SetupPayments-ICqCoZeQ.js} +5 -5
  61. package/dist/{SignInAdmin-Cb65ChHL.js → SignInAdmin-CQzPqUui.js} +9 -9
  62. package/dist/{SignInAdmin-CwIUAJrv.cjs → SignInAdmin-JnhCefKY.cjs} +1 -1
  63. package/dist/{SupportBar-528kXe-Z.js → SupportBar-0nIiQp-_.js} +108 -107
  64. package/dist/SupportBar-DR52UpBq.cjs +1 -0
  65. package/dist/{SystemTabContent-EegzTuLd.cjs → SystemTabContent-BWhRHoXx.cjs} +1 -1
  66. package/dist/{SystemTabContent-C4azXKMs.js → SystemTabContent-CMyT7mDN.js} +2 -2
  67. package/dist/{TemplateDrive-CfPXKMKX.js → TemplateDrive-6aV9Hmh3.js} +10 -10
  68. package/dist/{TemplateDrive-XDRPkxIj.cjs → TemplateDrive-ElNPzwv3.cjs} +1 -1
  69. package/dist/ThemeAdmin-B4CIxIjh.cjs +1 -0
  70. package/dist/ThemeAdmin-B9VnH5xH.js +2 -0
  71. package/dist/{ThemeAdmin-BrEozdpZ.cjs → ThemeAdmin-BhaTfgKX.cjs} +1 -1
  72. package/dist/{ThemeAdmin-XLbC9fX7.js → ThemeAdmin-C_8phTKX.js} +6 -6
  73. package/dist/TimeZoneField-Ckn1pKAL.cjs +11 -0
  74. package/dist/{TimeZoneField-Dv389mAe.js → TimeZoneField-oIMwb5_X.js} +119 -107
  75. package/dist/{TransactionsAdmin-DgsG629u.cjs → TransactionsAdmin-BiV8VgD0.cjs} +1 -1
  76. package/dist/{TransactionsAdmin-X-NjI4NB.js → TransactionsAdmin-DAENRmVO.js} +11 -11
  77. package/dist/{Trouble-qjWYeKzC.js → Trouble-CtFq7tjk.js} +1 -1
  78. package/dist/{Trouble-DokPNHQZ.cjs → Trouble-KQZyf6aY.cjs} +1 -1
  79. package/dist/{Users-BEjl_Vjc.cjs → Users-Ayu_S4cd.cjs} +1 -1
  80. package/dist/{Users-BUGb7-Kz.js → Users-CNRVFf3-.js} +15 -15
  81. package/dist/{VideoPlayer-BVOkrJBR.cjs → VideoPlayer-CggwpVXH.cjs} +1 -1
  82. package/dist/{VideoPlayer-DB0oz6lM.js → VideoPlayer-QI1Jc3bS.js} +1 -1
  83. package/dist/{appIcons-CUXAX_gJ.js → appIcons-DfjKL0tw.js} +761 -735
  84. package/dist/appIcons-Xjk-LuQ5.cjs +130 -0
  85. package/dist/{arrivalRoads-CD7pt03E.cjs → arrivalRoads-1OeHArA0.cjs} +0 -0
  86. package/dist/{arrivalRoads-BZk39p8Z.js → arrivalRoads-BZ4SWRAw.js} +0 -0
  87. package/dist/{bookingPages-BxqkyZ-M.js → bookingPages-BFSY3Riv.js} +1 -1
  88. package/dist/{bookingPages-2fn9xPiA.cjs → bookingPages-Dx1ViiwW.cjs} +1 -1
  89. package/dist/components/TutorialVideo.d.ts +3 -1
  90. package/dist/{contentFallback-C6xLwXTs.js → contentFallback-BGGpI1Ts.js} +2 -2
  91. package/dist/{contentFallback-DLm_iHo9.cjs → contentFallback-DVCrIUvK.cjs} +1 -1
  92. package/dist/{email-DxxovRtf.js → email-PBHbXXgR.js} +1 -1
  93. package/dist/{email-DD48BP42.cjs → email-Sya6gl4F.cjs} +1 -1
  94. package/dist/index.d.ts +1 -0
  95. package/dist/lib/basket.d.ts +29 -9
  96. package/dist/lib/recordPrice.d.ts +1 -1
  97. package/dist/{notices-Cwon5Q0Y.cjs → notices-CKm9-Pqt.cjs} +1 -1
  98. package/dist/{notices-C4yqYzBw.js → notices-CysS7BLF.js} +1 -1
  99. package/dist/{ownerMail-CGmDk7aP.cjs → ownerMail-BS9SjJ2u.cjs} +1 -1
  100. package/dist/{ownerMail-Chzy5Ehy.js → ownerMail-DepG5-Qw.js} +2 -2
  101. package/dist/{pageFiles-BClshvXs.cjs → pageFiles-Cn0YQ4Ur.cjs} +1 -1
  102. package/dist/{pageFiles-D-GYqRgZ.js → pageFiles-ZFPSCDZz.js} +1 -1
  103. package/dist/{paidInFull-KuStok9_.cjs → paidInFull-CZywIs-V.cjs} +1 -1
  104. package/dist/{paidInFull-D14Eh0QV.js → paidInFull-mBOh9iwN.js} +1 -1
  105. package/dist/{paidSessions-QXv7SHeb.cjs → paidSessions-BK9qlIyL.cjs} +1 -1
  106. package/dist/{paidSessions-Cr_93LGa.js → paidSessions-C9392hZH.js} +7 -7
  107. package/dist/{people-D8nPPMlM.cjs → people-BwWVVLfy.cjs} +1 -1
  108. package/dist/{people-sk2DcHPi.js → people-Wk2opW4G.js} +1 -1
  109. package/dist/{publishSteps-DB1Hxr6H.js → publishSteps-Cf5pSB_H.js} +1 -1
  110. package/dist/{publishSteps-CaZRpC3C.cjs → publishSteps-DvWlF0p_.cjs} +1 -1
  111. package/dist/{recordLock-Dnz61J-_.js → recordLock-CMOiezNC.js} +1 -1
  112. package/dist/{recordLock-CLUp3QNh.cjs → recordLock-CiulizO1.cjs} +1 -1
  113. package/dist/{recordsKey-R5BjLoGQ.cjs → recordsKey-B3lWGd8C.cjs} +1 -1
  114. package/dist/{recordsKey-DHJJWWOo.js → recordsKey-CJL-dAYF.js} +2 -2
  115. package/dist/{registrationFields-COv8jW4n.cjs → registrationFields-DHHTptcl.cjs} +1 -1
  116. package/dist/{registrationFields-CeTZSerx.js → registrationFields-DdHoMPAQ.js} +1 -1
  117. package/dist/renderer.cjs.js +1 -1
  118. package/dist/renderer.es.js +1 -1
  119. package/dist/{roles-5juCr5sY.cjs → roles-BmnoAilb.cjs} +1 -1
  120. package/dist/{roles-hzcMnn_M.js → roles-D3T8p-hA.js} +3 -3
  121. package/dist/{scheduleData-BpkfnBjP.cjs → scheduleData-BXjNXVHY.cjs} +1 -1
  122. package/dist/{scheduleData-BLCUm84s.js → scheduleData-DR6A-Q7Z.js} +1 -1
  123. package/dist/server.cjs.js +1 -1
  124. package/dist/server.es.js +1 -1
  125. package/dist/{serviceStatus-5sk8MPjW.js → serviceStatus-C9izcuQz.js} +2 -2
  126. package/dist/{serviceStatus-1pGLLilF.cjs → serviceStatus-Cde96_OO.cjs} +1 -1
  127. package/dist/{serviceSwitches-BWnZBooS.js → serviceSwitches-CZHwvVfP.js} +1 -1
  128. package/dist/{serviceSwitches-Do_pkFCu.cjs → serviceSwitches-mhJbQBrV.cjs} +1 -1
  129. package/dist/vite.cjs.js +1 -1
  130. package/dist/vite.es.js +1 -1
  131. package/dist/your-ai-workflow-firebase-os.cjs.js +13 -13
  132. package/dist/your-ai-workflow-firebase-os.css +1 -1
  133. package/dist/your-ai-workflow-firebase-os.es.js +2258 -2221
  134. package/package.json +1 -1
  135. package/scripts/postinstall.js +2 -1
  136. package/src/index.css +41 -6
  137. package/src/pages/Home.tsx +11 -14
  138. package/dist/PagesAdmin-B-XopEi9.js +0 -3
  139. package/dist/PagesAdmin-nL5ZltFn.cjs +0 -1
  140. package/dist/SupportBar-CNVXSYwT.cjs +0 -1
  141. package/dist/ThemeAdmin-CwCiTp2I.js +0 -2
  142. package/dist/ThemeAdmin-Db5edTYj.cjs +0 -1
  143. package/dist/TimeZoneField-zR8N2Fj0.cjs +0 -11
  144. package/dist/appIcons-BNovDw6_.cjs +0 -130
@@ -1,14 +1,14 @@
1
1
  import { a as e, u as t } from "./mediaKind-BtaMpGy8.js";
2
- import { h as n, y as r } from "./PageTitle-DFGW71q8.js";
3
- import { i } from "./Trouble-qjWYeKzC.js";
2
+ import { h as n, y as r } from "./PageTitle-CkZriz8K.js";
3
+ import { i } from "./Trouble-CtFq7tjk.js";
4
4
  import { n as a, t as o } from "./chevron-down--LwXEv9w.js";
5
- import { r as s, t as c } from "./VideoPlayer-DB0oz6lM.js";
6
- import { t as l } from "./Popup-DmPEk98h.js";
5
+ import { r as s, t as c } from "./VideoPlayer-QI1Jc3bS.js";
6
+ import { t as l } from "./Popup-Bi63lzoS.js";
7
7
  import { useEffect as u, useLayoutEffect as d, useRef as f, useState as p, useSyncExternalStore as m } from "react";
8
- import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
9
- import { createPortal as v } from "react-dom";
8
+ import { Fragment as ee, jsx as h, jsxs as g } from "react/jsx-runtime";
9
+ import { createPortal as _ } from "react-dom";
10
10
  //#region node_modules/lucide-react/dist/esm/icons/chevron-up.mjs
11
- var y = {
11
+ var v = {
12
12
  name: "chevron-up",
13
13
  size: 24,
14
14
  node: [["path", {
@@ -16,8 +16,8 @@ var y = {
16
16
  key: "153udz"
17
17
  }]]
18
18
  };
19
- y.node;
20
- var b = a(y), x = {
19
+ v.node;
20
+ var y = a(v), b = {
21
21
  name: "headset",
22
22
  size: 24,
23
23
  node: [["path", {
@@ -28,70 +28,12 @@ var b = a(y), x = {
28
28
  key: "1x7m43"
29
29
  }]]
30
30
  };
31
- x.node;
32
- var S = a(x), C = {
33
- setup: "",
34
- publish: "",
35
- payments: "",
36
- users: "",
37
- signin: ""
38
- }, w = (e) => {
39
- let t = String(e || "").trim();
40
- return /^\d+(?::\d{1,2}){1,2}$/.test(t) ? t.split(":").map(Number).reduce((e, t) => e * 60 + t, 0) : /^\d+$/.test(t) ? Number(t.slice(0, -4) || 0) * 3600 + Number(t.slice(-4, -2) || 0) * 60 + Number(t.slice(-2)) : 0;
41
- }, T = (e) => e && !/^[a-z][a-z0-9+.-]*:/i.test(e) && /^[\w.-]+\.[a-z]{2,}(?:[/?#]|$)/i.test(e) ? `https://${e}` : e, E = (e, t) => {
42
- if (!e || !(t > 0)) return e;
43
- try {
44
- let n = new URL(e), r = n.hostname.replace(/^(?:www|m|music|player)\./, "");
45
- return r === "youtu.be" || /(?:^|\.)youtube(?:-nocookie)?\.com$/.test(r) ? n.searchParams.set("t", `${t}s`) : /(?:^|\.)vimeo\.com$/.test(r) ? n.hash = `t=${t}s` : /(?:^|\.)loom\.com$/.test(r) ? n.searchParams.set("t", String(t)) : n.hash = `t=${t}`, n.toString();
46
- } catch {
47
- return e;
48
- }
49
- }, D = (e) => {
50
- let [t = "", n = ""] = String(e || "").trim().split(/\s+/);
51
- return E(T(t), w(n));
52
- }, ee = (e) => D(C[e]), O = "https://www.youraiworkflow.co/tutorials.json", k = 5e3, A = "fbos_tutorials", j = !0, M = null, N = null, P = 0, F = (e) => !!e && typeof e == "object" && !Array.isArray(e), I = () => {
53
- try {
54
- let e = JSON.parse(localStorage.getItem(A) || "null");
55
- return F(e) ? e : {};
56
- } catch {
57
- return {};
58
- }
59
- }, te = (e) => {
60
- try {
61
- localStorage.setItem(A, JSON.stringify(e));
62
- } catch {}
63
- };
64
- function L() {
65
- if (N) return Promise.resolve(N);
66
- if (M) return M;
67
- if (!j || typeof fetch != "function" || Date.now() - P < 3e5) return Promise.resolve(I());
68
- let e = typeof AbortController == "function" ? new AbortController() : null, t = e ? setTimeout(() => e.abort(), k) : null;
69
- return M = fetch(O, { signal: e?.signal }).then((e) => e.ok ? e.json() : Promise.reject(/* @__PURE__ */ Error(`tutorials.json: ${e.status}`))).then((e) => {
70
- if (!F(e)) throw Error("tutorials.json: not the file");
71
- return N = e, te(e), e;
72
- }).catch(() => (P = Date.now(), I())).finally(() => {
73
- M = null, t && clearTimeout(t);
74
- }), M;
75
- }
76
- function R(e) {
77
- let [t, n] = p(N);
78
- return u(() => {
79
- if (!e) return;
80
- let t = !0;
81
- return L().then((e) => {
82
- t && n(e);
83
- }), () => {
84
- t = !1;
85
- };
86
- }, [e]), e ? D(String(t?.[e] || "")) : "";
87
- }
88
- //#endregion
89
- //#region src/components/TutorialVideo.tsx
90
- var z = "Video not available", B = (n) => {
31
+ b.node;
32
+ var x = a(b), S = "Video not available", C = (n) => {
91
33
  let r = (n || "").trim();
92
34
  return /^https?:\/\//i.test(r) && e(r) !== null ? !0 : /^https:\/\//i.test(r) && t(r) === "video";
93
35
  };
94
- function V({ children: e }) {
36
+ function w({ children: e }) {
95
37
  let t = f(null), [n, r] = p(0);
96
38
  return d(() => {
97
39
  let e = t.current;
@@ -105,33 +47,92 @@ function V({ children: e }) {
105
47
  return i.observe(e), () => {
106
48
  i.disconnect(), window.removeEventListener("resize", n);
107
49
  };
108
- }, []), /* @__PURE__ */ g("div", {
50
+ }, []), /* @__PURE__ */ h("div", {
109
51
  ref: t,
110
52
  className: "flex items-center justify-center",
111
53
  style: { maxHeight: "min(calc(92dvh - 112px), 760px)" },
112
- children: /* @__PURE__ */ g("div", {
54
+ children: /* @__PURE__ */ h("div", {
113
55
  className: "w-full",
114
56
  style: n ? { width: n } : void 0,
115
57
  children: e
116
58
  })
117
59
  });
118
60
  }
119
- function H({ open: e, href: t, onClose: n }) {
120
- let r = (t || "").trim();
121
- return /* @__PURE__ */ g(l, {
61
+ function T({ open: e, href: t, onClose: n, autoPlay: r }) {
62
+ let i = (t || "").trim();
63
+ return /* @__PURE__ */ h(l, {
122
64
  open: e,
123
65
  onClose: n,
124
66
  size: "xl",
125
67
  title: "Tutorial",
126
- children: /* @__PURE__ */ g(V, { children: B(r) ? /* @__PURE__ */ g(c, { src: r }) : /* @__PURE__ */ g("div", {
68
+ children: /* @__PURE__ */ h(w, { children: C(i) ? /* @__PURE__ */ h(c, {
69
+ src: i,
70
+ autoPlay: r
71
+ }) : /* @__PURE__ */ h("div", {
127
72
  className: "relative w-full aspect-video overflow-hidden rounded-2xl border border-[var(--panel-border)] bg-foreground/[0.04]",
128
- children: /* @__PURE__ */ g("p", {
73
+ children: /* @__PURE__ */ h("p", {
129
74
  className: "absolute inset-0 flex items-center justify-center text-[13px] font-semibold text-foreground/40",
130
- children: z
75
+ children: S
131
76
  })
132
77
  }) })
133
78
  });
134
79
  }
80
+ var E = {
81
+ setup: "",
82
+ publish: "",
83
+ payments: "",
84
+ users: "",
85
+ signin: ""
86
+ }, D = (e) => {
87
+ let t = String(e || "").trim();
88
+ return /^\d+(?::\d{1,2}){1,2}$/.test(t) ? t.split(":").map(Number).reduce((e, t) => e * 60 + t, 0) : /^\d+$/.test(t) ? Number(t.slice(0, -4) || 0) * 3600 + Number(t.slice(-4, -2) || 0) * 60 + Number(t.slice(-2)) : 0;
89
+ }, O = (e) => e && !/^[a-z][a-z0-9+.-]*:/i.test(e) && /^[\w.-]+\.[a-z]{2,}(?:[/?#]|$)/i.test(e) ? `https://${e}` : e, te = (e, t) => {
90
+ if (!e || !(t > 0)) return e;
91
+ try {
92
+ let n = new URL(e), r = n.hostname.replace(/^(?:www|m|music|player)\./, "");
93
+ return r === "youtu.be" || /(?:^|\.)youtube(?:-nocookie)?\.com$/.test(r) ? n.searchParams.set("t", `${t}s`) : /(?:^|\.)vimeo\.com$/.test(r) ? n.hash = `t=${t}s` : /(?:^|\.)loom\.com$/.test(r) ? n.searchParams.set("t", String(t)) : n.hash = `t=${t}`, n.toString();
94
+ } catch {
95
+ return e;
96
+ }
97
+ }, k = (e) => {
98
+ let [t = "", n = ""] = String(e || "").trim().split(/\s+/);
99
+ return te(O(t), D(n));
100
+ }, A = (e) => k(E[e]), j = "https://www.youraiworkflow.co/tutorials.json", M = 5e3, N = "fbos_tutorials", P = !0, F = null, I = null, L = 0, R = (e) => !!e && typeof e == "object" && !Array.isArray(e), z = () => {
101
+ try {
102
+ let e = JSON.parse(localStorage.getItem(N) || "null");
103
+ return R(e) ? e : {};
104
+ } catch {
105
+ return {};
106
+ }
107
+ }, B = (e) => {
108
+ try {
109
+ localStorage.setItem(N, JSON.stringify(e));
110
+ } catch {}
111
+ };
112
+ function V() {
113
+ if (I) return Promise.resolve(I);
114
+ if (F) return F;
115
+ if (!P || typeof fetch != "function" || Date.now() - L < 3e5) return Promise.resolve(z());
116
+ let e = typeof AbortController == "function" ? new AbortController() : null, t = e ? setTimeout(() => e.abort(), M) : null;
117
+ return F = fetch(j, { signal: e?.signal }).then((e) => e.ok ? e.json() : Promise.reject(/* @__PURE__ */ Error(`tutorials.json: ${e.status}`))).then((e) => {
118
+ if (!R(e)) throw Error("tutorials.json: not the file");
119
+ return I = e, B(e), e;
120
+ }).catch(() => (L = Date.now(), z())).finally(() => {
121
+ F = null, t && clearTimeout(t);
122
+ }), F;
123
+ }
124
+ function H(e) {
125
+ let [t, n] = p(I);
126
+ return u(() => {
127
+ if (!e) return;
128
+ let t = !0;
129
+ return V().then((e) => {
130
+ t && n(e);
131
+ }), () => {
132
+ t = !1;
133
+ };
134
+ }, [e]), e ? k(String(t?.[e] || "")) : "";
135
+ }
135
136
  //#endregion
136
137
  //#region src/components/SupportBar.tsx
137
138
  var U = "https://youraiworkflow.co", W = "antonina@youraiworkflow.co", G = (e = r) => e && e !== "dev" ? `${U}/report?v=${encodeURIComponent(e)}` : `${U}/report`, K = {
@@ -151,7 +152,7 @@ var U = "https://youraiworkflow.co", W = "antonina@youraiworkflow.co", G = (e =
151
152
  function oe({ video: e } = {}) {
152
153
  let t = i(), [r, a] = p(!0), [c, l] = p(!1), d = f(null);
153
154
  d.current === null && (d.current = Symbol("support-bar"));
154
- let y = m($, ne, () => void 0), x = m($, re, () => void 0), C = R(x), w = m(ae, ie, () => !1);
155
+ let v = m($, ne, () => void 0), b = m($, re, () => void 0), S = H(b), C = m(ae, ie, () => !1);
155
156
  if (u(() => {
156
157
  let t = d.current;
157
158
  return X = [...X, {
@@ -160,99 +161,99 @@ function oe({ video: e } = {}) {
160
161
  }], Q(), () => {
161
162
  X = X.filter((e) => e.token !== t), Q();
162
163
  };
163
- }, [e]), y !== void 0 && y !== d.current) return null;
164
- let T = r ? /* @__PURE__ */ _("button", {
164
+ }, [e]), v !== void 0 && v !== d.current) return null;
165
+ let w = r ? /* @__PURE__ */ g("button", {
165
166
  type: "button",
166
167
  onClick: () => a(!1),
167
168
  "aria-expanded": !1,
168
169
  "aria-label": "Show help",
169
170
  className: `${Y} h-10 pl-3.5 pr-3 flex items-center gap-2 text-[13px] font-semibold text-foreground/60 hover:text-accent hover:border-accent/40 transition-colors cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-accent`,
170
171
  children: [
171
- /* @__PURE__ */ g(S, { className: "w-4 h-4 shrink-0" }),
172
+ /* @__PURE__ */ h(x, { className: "w-4 h-4 shrink-0" }),
172
173
  "Help",
173
- /* @__PURE__ */ g(b, { className: "w-4 h-4 shrink-0 text-foreground/35" })
174
+ /* @__PURE__ */ h(y, { className: "w-4 h-4 shrink-0 text-foreground/35" })
174
175
  ]
175
- }) : /* @__PURE__ */ _("nav", {
176
+ }) : /* @__PURE__ */ g("nav", {
176
177
  "aria-label": "Help",
177
178
  className: `${Y} p-1.5 flex items-center gap-3`,
178
179
  children: [
179
- /* @__PURE__ */ _("div", {
180
+ /* @__PURE__ */ g("div", {
180
181
  className: "flex items-center gap-1.5 shrink-0",
181
- children: [/* @__PURE__ */ g("a", {
182
+ children: [/* @__PURE__ */ h("a", {
182
183
  href: `mailto:${W}`,
183
184
  title: W,
184
185
  "aria-label": "Email me",
185
186
  className: `${q} w-9`,
186
- children: /* @__PURE__ */ g(n, { className: "w-4 h-4 text-foreground/80" })
187
- }), /* @__PURE__ */ _("a", {
187
+ children: /* @__PURE__ */ h(n, { className: "w-4 h-4 text-foreground/80" })
188
+ }), /* @__PURE__ */ g("a", {
188
189
  href: `${U}/book`,
189
190
  ...K,
190
191
  className: `${q} gap-2 px-3.5 text-[13px] font-semibold text-foreground/80 whitespace-nowrap`,
191
192
  children: [
192
- /* @__PURE__ */ g(S, { className: "w-4 h-4 shrink-0" }),
193
- /* @__PURE__ */ g("span", {
193
+ /* @__PURE__ */ h(x, { className: "w-4 h-4 shrink-0" }),
194
+ /* @__PURE__ */ h("span", {
194
195
  className: "max-sm:hidden",
195
196
  children: "Book a session"
196
197
  }),
197
- /* @__PURE__ */ g("span", {
198
+ /* @__PURE__ */ h("span", {
198
199
  className: "sm:hidden",
199
200
  children: "Book"
200
201
  })
201
202
  ]
202
203
  })]
203
204
  }),
204
- /* @__PURE__ */ g("span", {
205
+ /* @__PURE__ */ h("span", {
205
206
  "aria-hidden": "true",
206
207
  className: "w-px h-5 shrink-0 bg-[var(--panel-border)]"
207
208
  }),
208
- /* @__PURE__ */ _("a", {
209
+ /* @__PURE__ */ g("a", {
209
210
  href: `${U}/quote`,
210
211
  ...K,
211
212
  className: J,
212
- children: [/* @__PURE__ */ g("span", {
213
+ children: [/* @__PURE__ */ h("span", {
213
214
  className: "max-sm:hidden",
214
215
  children: "Request a quote"
215
- }), /* @__PURE__ */ g("span", {
216
+ }), /* @__PURE__ */ h("span", {
216
217
  className: "sm:hidden",
217
218
  children: "Quote"
218
219
  })]
219
220
  }),
220
- /* @__PURE__ */ _("a", {
221
+ /* @__PURE__ */ g("a", {
221
222
  href: G(),
222
223
  ...K,
223
224
  className: J,
224
- children: [/* @__PURE__ */ g("span", {
225
+ children: [/* @__PURE__ */ h("span", {
225
226
  className: "max-sm:hidden",
226
227
  children: "Report an issue"
227
- }), /* @__PURE__ */ g("span", {
228
+ }), /* @__PURE__ */ h("span", {
228
229
  className: "sm:hidden",
229
230
  children: "Report"
230
231
  })]
231
232
  }),
232
- /* @__PURE__ */ g("button", {
233
+ /* @__PURE__ */ h("button", {
233
234
  type: "button",
234
235
  onClick: () => a(!0),
235
236
  "aria-expanded": !0,
236
237
  "aria-label": "Fold help away",
237
238
  title: "Fold away",
238
239
  className: "w-8 h-9 -ml-1 shrink-0 flex items-center justify-center rounded-xl text-foreground/35 hover:text-foreground/70 transition-colors cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-accent",
239
- children: /* @__PURE__ */ g(o, { className: "w-4 h-4" })
240
+ children: /* @__PURE__ */ h(o, { className: "w-4 h-4" })
240
241
  })
241
242
  ]
242
- }), E = x && r ? /* @__PURE__ */ _("button", {
243
+ }), E = b && r ? /* @__PURE__ */ g("button", {
243
244
  type: "button",
244
245
  onClick: () => l(!0),
245
246
  className: `${Y} h-10 pl-3.5 pr-4 flex items-center gap-2 text-[13px] font-semibold text-foreground/60 hover:text-accent hover:border-accent/40 transition-colors whitespace-nowrap cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-accent`,
246
- children: [/* @__PURE__ */ g(s, { className: "w-4 h-4 shrink-0" }), "Tutorial"]
247
+ children: [/* @__PURE__ */ h(s, { className: "w-4 h-4 shrink-0" }), "Tutorial"]
247
248
  }) : null;
248
- return /* @__PURE__ */ _(h, { children: [w ? null : v(/* @__PURE__ */ _("div", {
249
+ return /* @__PURE__ */ g(ee, { children: [C ? null : _(/* @__PURE__ */ g("div", {
249
250
  className: `fixed inset-x-0 z-30 px-4 flex justify-center gap-2 pointer-events-none transition-[bottom] duration-300 ${t ? "bottom-24" : "bottom-4"}`,
250
- children: [T, E]
251
- }), document.body), x ? /* @__PURE__ */ g(H, {
251
+ children: [w, E]
252
+ }), document.body), b ? /* @__PURE__ */ h(T, {
252
253
  open: c,
253
- href: C || ee(x),
254
+ href: S || A(b),
254
255
  onClose: () => l(!1)
255
256
  }) : null] });
256
257
  }
257
258
  //#endregion
258
- export { oe as t };
259
+ export { T as n, oe as t };
@@ -0,0 +1 @@
1
+ require(`./chunk-CiTBaPhY.cjs`);const e=require(`./PageTitle-BL50s4qY.cjs`),t=require(`./Trouble-KQZyf6aY.cjs`),n=require(`./chevron-down-lyDK1rfL.cjs`),r=require(`./VideoPlayer-CggwpVXH.cjs`),i=require(`./Popup-COnHpbrY.cjs`),a=require(`./mediaKind-ButDya5f.cjs`);let o=require(`react`),s=require(`react/jsx-runtime`),c=require(`react-dom`);var l={name:`chevron-up`,size:24,node:[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]};l.node;var u=n.n(l),d={name:`headset`,size:24,node:[[`path`,{d:`M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z`,key:`12oyoe`}],[`path`,{d:`M21 16v2a4 4 0 0 1-4 4h-5`,key:`1x7m43`}]]};d.node;var f=n.n(d),p=`Video not available`,m=e=>{let t=(e||``).trim();return/^https?:\/\//i.test(t)&&a.a(t)!==null?!0:/^https:\/\//i.test(t)&&a.u(t)===`video`};function h({children:e}){let t=(0,o.useRef)(null),[n,r]=(0,o.useState)(0);return(0,o.useLayoutEffect)(()=>{let e=t.current;if(!e)return;let n=()=>{let t=Math.min((typeof window>`u`?900:window.innerHeight)*.92-112,760);r(Math.min(e.clientWidth,16/9*Math.max(0,t)))};if(n(),window.addEventListener(`resize`,n),typeof ResizeObserver>`u`)return()=>window.removeEventListener(`resize`,n);let i=new ResizeObserver(n);return i.observe(e),()=>{i.disconnect(),window.removeEventListener(`resize`,n)}},[]),(0,s.jsx)(`div`,{ref:t,className:`flex items-center justify-center`,style:{maxHeight:`min(calc(92dvh - 112px), 760px)`},children:(0,s.jsx)(`div`,{className:`w-full`,style:n?{width:n}:void 0,children:e})})}function g({open:e,href:t,onClose:n,autoPlay:a}){let o=(t||``).trim();return(0,s.jsx)(i.t,{open:e,onClose:n,size:`xl`,title:`Tutorial`,children:(0,s.jsx)(h,{children:m(o)?(0,s.jsx)(r.t,{src:o,autoPlay:a}):(0,s.jsx)(`div`,{className:`relative w-full aspect-video overflow-hidden rounded-2xl border border-[var(--panel-border)] bg-foreground/[0.04]`,children:(0,s.jsx)(`p`,{className:`absolute inset-0 flex items-center justify-center text-[13px] font-semibold text-foreground/40`,children:p})})})})}var _={setup:``,publish:``,payments:``,users:``,signin:``},v=e=>{let t=String(e||``).trim();return/^\d+(?::\d{1,2}){1,2}$/.test(t)?t.split(`:`).map(Number).reduce((e,t)=>e*60+t,0):/^\d+$/.test(t)?Number(t.slice(0,-4)||0)*3600+Number(t.slice(-4,-2)||0)*60+Number(t.slice(-2)):0},y=e=>e&&!/^[a-z][a-z0-9+.-]*:/i.test(e)&&/^[\w.-]+\.[a-z]{2,}(?:[/?#]|$)/i.test(e)?`https://${e}`:e,b=(e,t)=>{if(!e||!(t>0))return e;try{let n=new URL(e),r=n.hostname.replace(/^(?:www|m|music|player)\./,``);return r===`youtu.be`||/(?:^|\.)youtube(?:-nocookie)?\.com$/.test(r)?n.searchParams.set(`t`,`${t}s`):/(?:^|\.)vimeo\.com$/.test(r)?n.hash=`t=${t}s`:/(?:^|\.)loom\.com$/.test(r)?n.searchParams.set(`t`,String(t)):n.hash=`t=${t}`,n.toString()}catch{return e}},x=e=>{let[t=``,n=``]=String(e||``).trim().split(/\s+/);return b(y(t),v(n))},S=e=>x(_[e]),C=`https://www.youraiworkflow.co/tutorials.json`,w=5e3,T=`fbos_tutorials`,E=!0,D=null,O=null,k=0,A=e=>!!e&&typeof e==`object`&&!Array.isArray(e),j=()=>{try{let e=JSON.parse(localStorage.getItem(T)||`null`);return A(e)?e:{}}catch{return{}}},M=e=>{try{localStorage.setItem(T,JSON.stringify(e))}catch{}};function N(){if(O)return Promise.resolve(O);if(D)return D;if(!E||typeof fetch!=`function`||Date.now()-k<3e5)return Promise.resolve(j());let e=typeof AbortController==`function`?new AbortController:null,t=e?setTimeout(()=>e.abort(),w):null;return D=fetch(C,{signal:e?.signal}).then(e=>e.ok?e.json():Promise.reject(Error(`tutorials.json: ${e.status}`))).then(e=>{if(!A(e))throw Error(`tutorials.json: not the file`);return O=e,M(e),e}).catch(()=>(k=Date.now(),j())).finally(()=>{D=null,t&&clearTimeout(t)}),D}function P(e){let[t,n]=(0,o.useState)(O);return(0,o.useEffect)(()=>{if(!e)return;let t=!0;return N().then(e=>{t&&n(e)}),()=>{t=!1}},[e]),e?x(String(t?.[e]||``)):``}var F=`https://youraiworkflow.co`,I=`antonina@youraiworkflow.co`,L=(t=e.y)=>t&&t!==`dev`?`${F}/report?v=${encodeURIComponent(t)}`:`${F}/report`,R={target:`_blank`,rel:`noopener noreferrer`},z=`h-9 flex items-center justify-center rounded-xl btn-secondary cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-accent`,B=`text-[13px] font-semibold text-foreground/50 hover:text-accent transition-colors whitespace-nowrap outline-none focus-visible:text-accent`,V=`pointer-events-auto max-w-full glass-popover rounded-2xl`,H=[],U=new Set,W=()=>U.forEach(e=>e()),G=e=>(U.add(e),()=>{U.delete(e)}),K=()=>H[0]?.token,q=()=>H.find(e=>e.video)?.video,J=()=>document.querySelector(`[aria-modal="true"]`)!==null,Y=e=>{let t=new MutationObserver(e);return t.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`aria-modal`]}),()=>t.disconnect()};function X({video:i}={}){let a=t.i(),[l,d]=(0,o.useState)(!0),[p,m]=(0,o.useState)(!1),h=(0,o.useRef)(null);h.current===null&&(h.current=Symbol(`support-bar`));let _=(0,o.useSyncExternalStore)(G,K,()=>void 0),v=(0,o.useSyncExternalStore)(G,q,()=>void 0),y=P(v),b=(0,o.useSyncExternalStore)(Y,J,()=>!1);if((0,o.useEffect)(()=>{let e=h.current;return H=[...H,{token:e,video:i}],W(),()=>{H=H.filter(t=>t.token!==e),W()}},[i]),_!==void 0&&_!==h.current)return null;let x=l?(0,s.jsxs)(`button`,{type:`button`,onClick:()=>d(!1),"aria-expanded":!1,"aria-label":`Show help`,className:`${V} h-10 pl-3.5 pr-3 flex items-center gap-2 text-[13px] font-semibold text-foreground/60 hover:text-accent hover:border-accent/40 transition-colors cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[(0,s.jsx)(f,{className:`w-4 h-4 shrink-0`}),`Help`,(0,s.jsx)(u,{className:`w-4 h-4 shrink-0 text-foreground/35`})]}):(0,s.jsxs)(`nav`,{"aria-label":`Help`,className:`${V} p-1.5 flex items-center gap-3`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-1.5 shrink-0`,children:[(0,s.jsx)(`a`,{href:`mailto:${I}`,title:I,"aria-label":`Email me`,className:`${z} w-9`,children:(0,s.jsx)(e.h,{className:`w-4 h-4 text-foreground/80`})}),(0,s.jsxs)(`a`,{href:`${F}/book`,...R,className:`${z} gap-2 px-3.5 text-[13px] font-semibold text-foreground/80 whitespace-nowrap`,children:[(0,s.jsx)(f,{className:`w-4 h-4 shrink-0`}),(0,s.jsx)(`span`,{className:`max-sm:hidden`,children:`Book a session`}),(0,s.jsx)(`span`,{className:`sm:hidden`,children:`Book`})]})]}),(0,s.jsx)(`span`,{"aria-hidden":`true`,className:`w-px h-5 shrink-0 bg-[var(--panel-border)]`}),(0,s.jsxs)(`a`,{href:`${F}/quote`,...R,className:B,children:[(0,s.jsx)(`span`,{className:`max-sm:hidden`,children:`Request a quote`}),(0,s.jsx)(`span`,{className:`sm:hidden`,children:`Quote`})]}),(0,s.jsxs)(`a`,{href:L(),...R,className:B,children:[(0,s.jsx)(`span`,{className:`max-sm:hidden`,children:`Report an issue`}),(0,s.jsx)(`span`,{className:`sm:hidden`,children:`Report`})]}),(0,s.jsx)(`button`,{type:`button`,onClick:()=>d(!0),"aria-expanded":!0,"aria-label":`Fold help away`,title:`Fold away`,className:`w-8 h-9 -ml-1 shrink-0 flex items-center justify-center rounded-xl text-foreground/35 hover:text-foreground/70 transition-colors cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:(0,s.jsx)(n.t,{className:`w-4 h-4`})})]}),C=v&&l?(0,s.jsxs)(`button`,{type:`button`,onClick:()=>m(!0),className:`${V} h-10 pl-3.5 pr-4 flex items-center gap-2 text-[13px] font-semibold text-foreground/60 hover:text-accent hover:border-accent/40 transition-colors whitespace-nowrap cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[(0,s.jsx)(r.r,{className:`w-4 h-4 shrink-0`}),`Tutorial`]}):null;return(0,s.jsxs)(s.Fragment,{children:[b?null:(0,c.createPortal)((0,s.jsxs)(`div`,{className:`fixed inset-x-0 z-30 px-4 flex justify-center gap-2 pointer-events-none transition-[bottom] duration-300 ${a?`bottom-24`:`bottom-4`}`,children:[x,C]}),document.body),v?(0,s.jsx)(g,{open:p,href:y||S(v),onClose:()=>m(!1)}):null]})}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return X}});
@@ -1 +1 @@
1
- require(`./chunk-CiTBaPhY.cjs`);const e=require(`./TimeZoneField-zR8N2Fj0.cjs`),t=require(`./contentFallback-DLm_iHo9.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);var i={inbox:`inbox_tab`,users:`users_tab`,schedule:`schedule_tab`,mybookings:`my_bookings_tab`,assets:`assets_tab`};function a({tab:a}){let o=i[a],s=e.mi();e.Rr();let[c,l]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e={contentKey:o};if(t.r(e))return;let n=!1;return t.n(e).then(e=>{!n&&e&&l(()=>e)}),()=>{n=!0}},[o]);let u=s.microcomponents?.[o]||(typeof window<`u`?window.__FBOS_MICROCOMPONENTS__?.[o]:void 0)||c||void 0;return u?(0,r.jsx)(`div`,{className:`fbos-content-slot relative w-full`,children:(0,r.jsx)(t.p,{size:`part`,children:(0,r.jsx)(u,{})})}):null}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
1
+ require(`./chunk-CiTBaPhY.cjs`);const e=require(`./TimeZoneField-Ckn1pKAL.cjs`),t=require(`./contentFallback-DVCrIUvK.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);var i={inbox:`inbox_tab`,users:`users_tab`,schedule:`schedule_tab`,mybookings:`my_bookings_tab`,assets:`assets_tab`};function a({tab:a}){let o=i[a],s=e.mi();e.Rr();let[c,l]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e={contentKey:o};if(t.r(e))return;let n=!1;return t.n(e).then(e=>{!n&&e&&l(()=>e)}),()=>{n=!0}},[o]);let u=s.microcomponents?.[o]||(typeof window<`u`?window.__FBOS_MICROCOMPONENTS__?.[o]:void 0)||c||void 0;return u?(0,r.jsx)(`div`,{className:`fbos-content-slot relative w-full`,children:(0,r.jsx)(t.p,{size:`part`,children:(0,r.jsx)(u,{})})}):null}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
@@ -1,5 +1,5 @@
1
- import { Rr as e, mi as t } from "./TimeZoneField-Dv389mAe.js";
2
- import { n, p as r, r as i } from "./contentFallback-C6xLwXTs.js";
1
+ import { Rr as e, mi as t } from "./TimeZoneField-oIMwb5_X.js";
2
+ import { n, p as r, r as i } from "./contentFallback-BGGpI1Ts.js";
3
3
  import { useEffect as a, useState as o } from "react";
4
4
  import { jsx as s } from "react/jsx-runtime";
5
5
  //#region src/components/SystemTabContent.tsx
@@ -1,21 +1,21 @@
1
1
  import { _ as e, g as t } from "./mediaKind-BtaMpGy8.js";
2
- import { t as n, v as r } from "./PageTitle-DFGW71q8.js";
3
- import { At as i, F as a, Ft as o, M as s, O as c, R as l, W as u, Y as d, Z as f, Zr as p, fi as m, j as h, nt as g, rt as ee, ui as _, z as v } from "./TimeZoneField-Dv389mAe.js";
4
- import { t as te } from "./DashboardNav-B0G943ux.js";
2
+ import { t as n, v as r } from "./PageTitle-CkZriz8K.js";
3
+ import { At as i, F as a, Ft as o, M as s, O as c, R as l, W as u, Y as d, Z as f, Zr as p, fi as m, j as h, nt as g, rt as ee, ui as _, z as v } from "./TimeZoneField-oIMwb5_X.js";
4
+ import { t as te } from "./DashboardNav-CxS3Qnl-.js";
5
5
  import { Ln as ne, Mn as re, Tn as y, pn as ie } from "./schedule-C13m_kiO.js";
6
6
  import { n as b } from "./chevron-down--LwXEv9w.js";
7
7
  import { t as ae } from "./arrow-left-DdRja6es.js";
8
- import { d as oe, l as se, s as ce, t as le, u as ue } from "./FileViewerPopup-Dnl3td2o.js";
8
+ import { d as oe, l as se, s as ce, t as le, u as ue } from "./FileViewerPopup-gqhRT22v.js";
9
9
  import { t as x } from "./eye-DBR-sZWU.js";
10
- import { n as de } from "./VideoPlayer-DB0oz6lM.js";
10
+ import { n as de } from "./VideoPlayer-QI1Jc3bS.js";
11
11
  import { r as fe, t as pe } from "./x-hax8aKt8.js";
12
12
  import { t as me } from "./plus-BKrt0Qx5.js";
13
13
  import { t as he } from "./trash-6Wj66gJi.js";
14
- import { p as ge } from "./contentFallback-C6xLwXTs.js";
15
- import { t as _e } from "./Button-DSldWACF.js";
16
- import { t as ve } from "./ConfirmModal-C1dM-bzk.js";
17
- import { i as S, n as ye } from "./pageFiles-D-GYqRgZ.js";
18
- import { d as be, f as C } from "./recordLock-Dnz61J-_.js";
14
+ import { p as ge } from "./contentFallback-BGGpI1Ts.js";
15
+ import { t as _e } from "./Button-BGN6q7lY.js";
16
+ import { t as ve } from "./ConfirmModal-BW9e6Y7d.js";
17
+ import { i as S, n as ye } from "./pageFiles-ZFPSCDZz.js";
18
+ import { d as be, f as C } from "./recordLock-CMOiezNC.js";
19
19
  import { n as xe } from "./personName-DeDpef0M.js";
20
20
  import { createContext as Se, useContext as Ce, useEffect as w, useLayoutEffect as we, useMemo as T, useRef as E, useState as D, useSyncExternalStore as O } from "react";
21
21
  import { Fragment as Te, jsx as k, jsxs as A } from "react/jsx-runtime";
@@ -1 +1 @@
1
- const e=require(`./chunk-CiTBaPhY.cjs`),t=require(`./PageTitle-BWmE74WQ.cjs`),n=require(`./TimeZoneField-zR8N2Fj0.cjs`),r=require(`./DashboardNav-DOl9gJuu.cjs`),i=require(`./schedule-BAea6q8_.cjs`),a=require(`./chevron-down-lyDK1rfL.cjs`),o=require(`./arrow-left-C39sNUA7.cjs`),s=require(`./FileViewerPopup-DQmhXMSg.cjs`),c=require(`./eye-DU2g57PD.cjs`),l=require(`./VideoPlayer-BVOkrJBR.cjs`),u=require(`./x-Ci8c5p6T.cjs`),d=require(`./plus-zsWFCu4F.cjs`),f=require(`./trash-D-CpYHCs.cjs`),p=require(`./contentFallback-DLm_iHo9.cjs`),m=require(`./Button-PyTaaoyu.cjs`),h=require(`./mediaKind-ButDya5f.cjs`),ee=require(`./ConfirmModal-CQ73WYUg.cjs`),g=require(`./pageFiles-BClshvXs.cjs`),_=require(`./recordLock-CLUp3QNh.cjs`),v=require(`./personName-BvH1NWNy.cjs`);let y=require(`react`);y=e.a(y,1);let b=require(`react/jsx-runtime`),x=require(`firebase/firestore`),S=require(`firebase/storage`),te=require(`react-router-dom`);var ne={name:`archive`,size:24,node:[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]};ne.node;var re=a.n(ne),C={name:`code`,size:24,node:[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]};C.node;var ie=a.n(C),w={name:`link`,size:24,node:[[`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`,key:`1cjeqo`}],[`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`,key:`19qd67`}]]};w.node;var ae=a.n(w),oe={name:`video`,size:24,node:[[`path`,{d:`m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5`,key:`ftymec`}],[`rect`,{x:`2`,y:`6`,width:`14`,height:`12`,rx:`2`,key:`158x01`}]]};oe.node;var se=a.n(oe),T=e=>`uid:${String(e||``).trim()}`,ce=e=>`role:${i.Ln(String(e||``))}`,E=(e,t)=>[T(e),`role:${String(t||`user`)}`],D=e=>{let t=String(e||``).trim().toLowerCase();return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)?`email:${t}`:`email:`},O=`everyone`,k=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`&&e):[],A=e=>k(e?.access).includes(O),j=(e,t)=>A(e)||k(e?.access).some(e=>t.includes(e)),le=(e,t)=>k(e?.editors).some(e=>t.includes(e));function ue(e,{uid:t,editors:n=!0}){let r=T(t),i=k(e.access),a=k(e.editors);return{...e,uid:e.uid||t,access:i.includes(r)?i:[...i,r],editors:n&&!a.includes(r)?[...a,r]:a}}var de=e=>{if(typeof e==`number`)return Number.isFinite(e)?e:0;if(e&&typeof e.toMillis==`function`){let t=e.toMillis();return Number.isFinite(t)?t:0}if(e&&typeof e.seconds==`number`)return e.seconds*1e3;if(typeof e==`string`){let t=Date.parse(e);return Number.isFinite(t)?t:0}return 0},fe=(e,t)=>de(t.createdAt)-de(e.createdAt)||e.id.localeCompare(t.id),M=(e,t)=>({...t,id:e,access:k(t?.access),editors:k(t?.editors)}),N=e=>e?.code===`permission-denied`?`These entries could not be read. The security rules may need pasting again from the Setup screen.`:`These entries could not be read just now.`;function pe(e,{max:t=200,mine:r=!1}={}){let{user:a,userRole:o,isAdmin:s,roleConfirmed:c}=n.Ft(),l=a?.uid||``,u=a?.emailVerified?D(a.email||``):`email:`,d=(0,y.useMemo)(()=>l?[...E(l,o),...u===`email:`?[]:[u]]:[],[l,o,u]),[f,p]=(0,y.useState)({loading:!0,records:[],error:``,forUid:``});return(0,y.useEffect)(()=>{if(!l||!c||!i.Tn(e))return;let a=!0,o=new Map,u=new Map,f=()=>{if(!a)return;let e=new Map;for(let t of o.values())for(let n of t)e.set(n.id,n);p({loading:!1,records:[...e.values()].sort(fe).slice(0,t),error:[...u.values()][0]||``,forUid:l})},m=e=>t=>{u.delete(e),o.set(e,t.docs.map(e=>M(e.id,e.data()))),f()},h=e=>t=>{e.startsWith(`email:`)||e.startsWith(`role:`)?o.set(e,[]):u.set(e,N(t)),f()},ee=s&&!r?[n.Zr(`${e}|all`,()=>(0,x.query)((0,x.collection)(n.ui,e)),m(`all`),h(`all`))]:d.map(t=>n.Zr(`${e}|${t}`,()=>(0,x.query)((0,x.collection)(n.ui,e),(0,x.where)(`access`,`array-contains`,t)),m(t),h(t)));return()=>{a=!1,ee.forEach(e=>e())}},[e,l,d,s,r,c,t]),(0,y.useMemo)(()=>!l||!i.Tn(e)?F(!1,[],``):!c||f.forUid!==l?F(!0,[],``):F(f.loading,f.records,f.error),[l,c,f,e])}var P=[`list`,`cases`,`entries`,`items`,`data`];function F(e,t,n){let r={loading:e,records:t,error:n};for(let e of P)Object.defineProperty(r,e,{value:t,enumerable:!1});return r}function I(e,{max:t=200}={}){let{user:r,roleConfirmed:a}=n.Ft(),o=r?.uid||``,[s,c]=(0,y.useState)({loading:!0,records:[],error:``,forUid:``});return(0,y.useEffect)(()=>{if(!o||!a||!i.Tn(e))return;let r=!0,s=n.Zr(`${e}|${O}`,()=>(0,x.query)((0,x.collection)(n.ui,e),(0,x.where)(`access`,`array-contains`,O)),e=>{r&&c({loading:!1,records:e.docs.map(e=>M(e.id,e.data())).sort(fe).slice(0,t),error:``,forUid:o})},e=>{r&&c({loading:!1,records:[],error:N(e),forUid:o})});return()=>{r=!1,s()}},[e,o,a,t]),(0,y.useMemo)(()=>!o||!i.Tn(e)?F(!1,[],``):!a||s.forUid!==o?F(!0,[],``):F(s.loading,s.records,s.error),[o,a,s,e])}function L(e,t){let{user:r,roleConfirmed:a}=n.Ft(),o=r?.uid||``,[s,c]=(0,y.useState)({loading:!0,record:null,error:``,forKey:``}),l=`${o}|${e}|${t}`;return(0,y.useEffect)(()=>{if(!o||!a||!i.Tn(e)||!t)return;let r=!0,s=(0,x.onSnapshot)((0,x.doc)(n.ui,e,t),e=>{r&&c({loading:!1,record:e.exists()?M(e.id,e.data()):null,error:``,forKey:l})},e=>{r&&c({loading:!1,record:null,error:me(e),forKey:l})});return()=>{r=!1,s()}},[e,t,o,a,l]),(0,y.useMemo)(()=>!o||!i.Tn(e)||!t?z(!1,null,``):!a||s.forKey!==l?z(!0,null,``):z(s.loading,s.record,s.error),[o,a,s,e,t,l])}var R=[`entry`,`item`,`thing`,`data`];function z(e,t,n){let r={loading:e,record:t,error:n};for(let e of R)Object.defineProperty(r,e,{value:t,enumerable:!1});return r}var me=e=>e?.code===`permission-denied`?`This one has not been shared with you.`:`This one could not be read just now.`,B=({people:e=[],roles:t=[]})=>{let n=[...e.map(T),...t.map(ce)].filter(e=>e!==`uid:`&&e!==`role:`);return[...new Set(n)]},V=`Entries can only be sent on a page where each entry says who sees it.`,H=e=>e?.code===`permission-denied`?`That entry is not yours to send on.`:`That entry could not be sent on just now.`;async function U(e,t,r){if(!i.Tn(e))return V;let a=B(r);if(!a.length||!t)return``;try{return await(0,x.updateDoc)((0,x.doc)(n.ui,e,t),{access:(0,x.arrayUnion)(...a),...r.canEdit===!1?{}:{editors:(0,x.arrayUnion)(...a)}}),``}catch(e){return H(e)}}async function he(e,t,r){if(!i.Tn(e))return V;let a=B(r);if(!a.length||!t)return``;try{return await(0,x.updateDoc)((0,x.doc)(n.ui,e,t),{access:(0,x.arrayRemove)(...a),editors:(0,x.arrayRemove)(...a)}),``}catch(e){return H(e)}}var W=`Only a page where each entry says who sees it can publish one.`,ge=e=>e?.code===`permission-denied`?`That one is not yours to publish.`:`That one could not be published just now.`;async function G(e,t){if(!i.Tn(e))return W;if(!t)return``;try{return await(0,x.updateDoc)((0,x.doc)(n.ui,e,t),{access:(0,x.arrayUnion)(O)}),``}catch(e){return ge(e)}}async function K(e,t){if(!i.Tn(e))return W;if(!t)return``;try{return await(0,x.updateDoc)((0,x.doc)(n.ui,e,t),{access:(0,x.arrayRemove)(O)}),``}catch(e){return ge(e)}}var q=[`waiting`,`uploading`],J=(e,t)=>t.aborted||e?.code===`storage/canceled`||e?.name===`AbortError`;async function _e(e,t,{customMetadata:r,onProgress:i,signal:a}={}){if(a?.aborted)throw Object.assign(Error(`The upload was stopped.`),{code:`storage/canceled`});let o=(0,S.ref)(n.fi,e),s=(0,S.uploadBytesResumable)(o,t,n.W(e,r)),c=()=>{s.cancel()};a?.addEventListener(`abort`,c,{once:!0});let l;try{await new Promise((e,t)=>{s.on(`state_changed`,e=>i?.(e.totalBytes?e.bytesTransferred/e.totalBytes:0),t,()=>e())}),i?.(1),l=await(0,S.getDownloadURL)(o)}catch(e){throw a?.aborted&&await Y(o),e}finally{a?.removeEventListener(`abort`,c)}if(a?.aborted)throw await Y(o),Object.assign(Error(`The upload was stopped.`),{code:`storage/canceled`});return l}var Y=async e=>{try{await(0,S.deleteObject)(e)}catch{}};function X(e,t){let n=e.flatMap((e,n)=>t.has(e)?[n]:[]),r=n.map(t=>e[t]).sort((e,n)=>t.get(e)-t.get(n)),i=[...e];return n.forEach((e,t)=>{i[e]=r[t]}),i}var Z=0,ve=class{items=[];running=new Map;listeners=new Set;options;constructor(e){this.options=e}configure(e){this.options=e}getItems=()=>this.items;subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});commit(e){this.items=e,xe(this,this.options.stopOnUnmount?e.filter(e=>q.includes(e.state)).length:0),this.listeners.forEach(e=>e())}patch(e,t){let n;return this.commit(this.items.map(r=>r.id===e?n={...r,...t}:r)),n}add(e,{start:t=!0}={}){let n=e.map(e=>({id:`upload_${++Z}`,seq:Z,file:e,name:e.name,state:t?`waiting`:`ready`,progress:0}));return n.length?(this.commit([...this.items,...n]),this.pump(),n):n}start(){this.items.some(e=>e.state===`ready`||e.state===`failed`)&&(this.commit(this.items.map(e=>e.state===`ready`||e.state===`failed`?{...e,state:`waiting`,progress:0,error:void 0}:e)),this.pump())}retry(e){this.items.find(t=>t.id===e)?.state===`failed`&&(this.patch(e,{state:`waiting`,progress:0,error:void 0}),this.pump())}rename(e,t){let n=this.items.find(t=>t.id===e);!n||n.state!==`ready`&&n.state!==`failed`||this.patch(e,{name:t})}remove(e){this.running.get(e)?.abort(),this.running.delete(e),this.commit(this.items.filter(t=>t.id!==e)),this.pump()}stopAll(){this.running.forEach(e=>e.abort()),this.running.clear(),this.commit(this.items.filter(e=>!q.includes(e.state)))}clear(){this.commit(this.items.filter(e=>q.includes(e.state)))}pump(){let e=Math.max(1,this.options.concurrency||4);for(let t of this.items){if(this.running.size>=e)break;t.state!==`waiting`||this.running.has(t.id)||this.run(t)}}run(e){let t=new AbortController;this.running.set(e.id,t);let r=this.patch(e.id,{state:`uploading`,progress:0}),i=0,a=e=>{if(t.signal.aborted)return;let n=Math.min(1,Math.max(0,Math.round(e*100)/100));n!==i&&(i=n,this.patch(r.id,{progress:n}))};Promise.resolve().then(()=>this.options.upload(r.file,{item:r,progress:a,signal:t.signal})).then(e=>{if(t.signal.aborted)return;let n=this.patch(r.id,{state:`done`,progress:1,result:e});if(n)try{this.options.onUploaded?.(e,n)}catch(e){console.warn(`${r.file.name}: onUploaded threw`,e)}},e=>{if(J(e,t.signal))return;console.warn(`${r.file.name}: the upload did not work (${e?.code||e?.message||e}).`);let i=this.patch(r.id,{state:`failed`,error:n.z(e)});if(i)try{this.options.onFailed?.(i)}catch(e){console.warn(`${r.file.name}: onFailed threw`,e)}}).finally(()=>{this.running.get(r.id)===t&&this.running.delete(r.id),this.pump(),!this.running.size&&!this.items.some(e=>q.includes(e.state))&&this.options.onSettled?.(this.items)})}},Q=new Map,ye=0,be=new Set;function xe(e,t){let n=Q.get(e)||0;n!==t&&(t?Q.set(e,t):Q.delete(e),ye+=t-n,be.forEach(e=>e()))}var Se=()=>ye;function Ce(e){return be.add(e),()=>{be.delete(e)}}var we=()=>(0,y.useSyncExternalStore)(Ce,Se,()=>0);function Te(e){let t=t=>e.filter(e=>e.state===t).length,n=e.filter(e=>q.includes(e.state)),r=e.filter(e=>e.state!==`ready`),i=r.reduce((e,t)=>e+(t.file.size||1),0),a=r.reduce((e,t)=>e+(t.file.size||1)*(t.state===`done`?1:t.progress),0);return{total:e.length,ready:t(`ready`),waiting:t(`waiting`),uploading:t(`uploading`),done:t(`done`),failed:t(`failed`),active:n.length,busy:n.length>0,progress:i?a/i:0}}function Ee(e){let[t]=(0,y.useState)(()=>new ve(e));(0,y.useLayoutEffect)(()=>{t.configure(e)});let n=!!e.stopOnUnmount;(0,y.useEffect)(()=>n?()=>t.stopAll():void 0,[t,n]);let r=(0,y.useSyncExternalStore)(t.subscribe,t.getItems,t.getItems),i=Te(r);return(0,y.useEffect)(()=>{if(!i.busy||typeof window>`u`)return;let e=e=>{e.preventDefault(),e.returnValue=``};return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[i.busy]),{items:r,...i,add:(e,n)=>t.add(e,n),start:()=>t.start(),retry:e=>t.retry(e),rename:(e,n)=>t.rename(e,n),remove:e=>t.remove(e),clear:()=>t.clear()}}var De=`${n.M}/pages`,Oe=`${n.j}/pages`,ke=(0,y.createContext)(null),Ae=ke.Provider,je=()=>(0,y.useContext)(ke)||{prefix:``};function Me({prefix:e,shared:t=!1,internal:n=!1,collection:r=``,recordId:i=``}){return!e||e===`pub_`?Oe:t?n?De:Oe:e===`case_`?g.n(r,i):g.i(e)}var Ne=(e,t={})=>`${Date.now()}_${Math.random().toString(36).slice(2,8)}_${h.g(t.width,t.height)}${(e||`file`).replace(/[^a-zA-Z0-9.-]/g,`_`)}`;async function Pe(e,{prefix:t,shared:r=!1,user:i,onProgress:a,signal:o,collection:s=``,recordId:c=``}){let l=Me({prefix:t,shared:r,internal:!!i?.internal,collection:s,recordId:c});if(!l)throw Error(`This page keeps files with the entry they belong to, and no entry was named.`);if(!i&&l!==Oe)throw Error(`Sign in again before uploading.`);let u=await h._(e);if(!i?.admin&&u.size>=10485760)throw Error(`That file is over 10 MB. Try a smaller one.`);let d=await n.Y(u),f=`${l}/${Ne(u.name,d)}`,p=await _e(f,u,{customMetadata:i?{ownerId:i.uid}:void 0,onProgress:a,signal:o}),m=await n.R(f,u,i?{ownerId:i.uid}:void 0);return{url:p,storagePath:f,name:u.name,type:u.type||``,size:u.size,...d.width&&d.height?{width:d.width,height:d.height}:{},...m}}async function Fe(e){try{await(0,S.deleteObject)((0,S.ref)(n.fi,e)),await n.F(e)}catch(t){console.warn(`${e}: the upload was dropped but the file stayed (${t?.code||t}).`)}}var Ie=e=>e===i.pn;function Le(){let{user:e,userRole:t}=n.Ft(),r=e?.uid||``;return(0,y.useMemo)(()=>r?E(r,t):[],[r,t])}var Re=e=>{try{let t=(0,x.doc)((0,x.collection)(n.ui,e)).id;if(t)return t}catch{}return`rec_${Date.now()}_${Math.random().toString(36).slice(2,8)}`},ze=(e,t,n)=>Ie(e)?g.n(t,n||``):g.i(e);function Be(e,t){return ue({createdAt:Date.now(),...e},{uid:t})}function Ve(e,t,n,r=``){let i=t.find(e=>e.startsWith(`role:`))?.slice(5)||null,a=e=>n?i===`admin`||le(e,t):!0;return{sendTo:(t,n)=>U(e,t,n),takeBack:(t,n)=>he(e,t,n),keys:t,canEdit:a,canDelete:e=>a(e)&&_.d(e,i),canSend:e=>n&&a(e)&&_.f(e,i),publish:t=>G(e,t),unpublish:t=>K(e,t),isPublished:e=>n?A(e):!1,draftId:n?r:``}}var He=`user_profiles`,Ue=`Viewing`,We=`Everyone`,Ge=e=>{let t=[];return e.forEach(e=>{let n=e.data()||{};n.inactive===!0||n.removed===!0||t.push({uid:e.id,name:v.n(n)})}),t.sort((e,t)=>e.name.localeCompare(t.name))};function Ke(e){let{isAdmin:t,roleConfirmed:r}=n.Ft(),[i,a]=(0,y.useState)([]),o=e&&t&&r!==!1;return(0,y.useEffect)(()=>{if(!o)return;let e=!0,t=n.Zr(He,()=>(0,x.collection)(n.ui,He),t=>{e&&a(Ge(t))},()=>{e&&a([])});return()=>{e=!1,t()}},[o]),o?i:[]}var qe=`You are looking at somebody else’s page. Anything you add here is theirs, but a file would stay yours — so uploads are off until you switch back to your own.`;function Je({on:e,everyone:t=!0}){let{user:r,isAdmin:i}=n.Ft(),a=r?.uid||``,o=Ke(e),[s,c]=(0,y.useState)(``),l=e&&i&&o.length>0,u=s&&o.some(e=>e.uid===s),d=l&&(u||s===``&&t)?s:``,f=l&&t&&d===``,p=(0,y.useMemo)(()=>[...t?[{value:``,label:We}]:[],...o.map(e=>({value:e.uid,label:e.uid===a?`${e.name} (you)`:e.name}))],[t,o,a]);return{uid:f?``:d||a,everyone:f,someoneElse:!!d&&d!==a,control:l?(0,b.jsx)(n.Z,{dense:!0,compact:!0,portal:!0,direction:`auto`,className:`console-select`,ariaLabel:Ue,value:d||(t?``:a),options:p,onChange:e=>c(e)}):null}}function Ye({viewing:e}){return e.control?(0,b.jsxs)(`div`,{className:`flex items-center gap-1.5 shrink-0`,children:[(0,b.jsx)(c.t,{className:`w-3.5 h-3.5 shrink-0 text-foreground/45`}),(0,b.jsx)(`span`,{className:`text-[12.5px] font-semibold text-foreground/50 select-none whitespace-nowrap max-sm:hidden`,children:Ue}),e.control]}):null}var Xe=`inline-flex items-center justify-center w-9 h-9 rounded-full border border-[var(--panel-border)] text-foreground/50 hover:text-accent hover:bg-foreground/5 transition-colors shrink-0 cursor-pointer`,Ze=({to:e})=>e?(0,b.jsx)(te.Link,{to:e,"aria-label":`Go back`,title:`Go back`,className:Xe,children:(0,b.jsx)(o.t,{className:`w-4 h-4`})}):(0,b.jsx)(`button`,{type:`button`,onClick:()=>window.history.back(),"aria-label":`Go back`,title:`Go back`,className:Xe,children:(0,b.jsx)(o.t,{className:`w-4 h-4`})});function Qe({file:e,className:t,alt:n=``}){let r=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!r.current||typeof URL.createObjectURL!=`function`)return;let t=URL.createObjectURL(e);return r.current.src=t,()=>URL.revokeObjectURL(t)},[e]),(0,b.jsx)(`img`,{ref:r,alt:n,className:t,"data-fbos-own":!0})}var $e=e=>{if(!e)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(2))+` `+n[r]},$=500;function et({title:e=`Drive`,subtitle:a=`/drive`,backUrl:o,filesCollection:c=`pub_files`,config:_,customContent:v,footer:ne,addition:C}){let{user:w,userRole:oe}=n.Ft(),T=!!_,ce=oe===`admin`,E=c,D=c.startsWith(`user_`),O=i.Tn(c),k=Le(),A=Je({on:c.startsWith(`user_`)&&!i.Tn(c)}),j=pe(c),[ue,de]=(0,y.useState)([]),[fe,M]=(0,y.useState)(!0),N=O?j.records.map(e=>({...e,_id:e.id})):ue,P=O?j.loading:fe,[F,I]=(0,y.useState)(null),[L,R]=(0,y.useState)(null),[z,me]=(0,y.useState)(!1),[B,V]=(0,y.useState)(null),[H,U]=(0,y.useState)(null),[he,W]=(0,y.useState)(!1),[ge,G]=(0,y.useState)(!1);(0,y.useEffect)(()=>{if(!(D&&!w)&&!O)return M(!0),(0,x.onSnapshot)(D&&!A.everyone?(0,x.query)((0,x.collection)(n.ui,c),(0,x.where)(`uid`,`==`,A.uid||w.uid),(0,x.limit)($)):(0,x.query)((0,x.collection)(n.ui,c),(0,x.orderBy)(`createdAt`,`desc`),(0,x.limit)($)),e=>{let t=e.docs.map(e=>({_id:e.id,...e.data()}));t.sort((e,t)=>(t.createdAt?.toMillis?.()||0)-(e.createdAt?.toMillis?.()||0)),de(t),M(!1)},e=>{console.warn(`Error listening to ${c}:`,e),M(!1)})},[c,D,w?.uid,O,A.uid,A.everyone]);let K=e=>O?le(e,k):!!w&&(e.uid===w.uid||ce),q=Ee({upload:async(e,t)=>{if(!w)throw Error(`Sign in again before uploading.`);let r=await h._(e),i=O?Re(c):``,a=`${O?g.n(c,i):E}/${Ne(r.name)}`,o=await _e(a,r,{customMetadata:{ownerId:w.uid},onProgress:t.progress,signal:t.signal}),s={fileName:t.item.name.trim()||r.name,fileType:r.type||`unknown`,fileSize:r.size,downloadURL:o,storagePath:a,uid:w.uid,uploaderEmail:w.email||``};O?await(0,x.setDoc)((0,x.doc)(n.ui,c,i),Be(s,w.uid)):await(0,x.addDoc)((0,x.collection)(n.ui,c),{...s,createdAt:(0,x.serverTimestamp)()})},onSettled:e=>{e.length&&e.every(e=>e.state===`done`)&&(W(!1),q.clear())}}),J=q.total-q.ready,Y=e=>{if(!e||!w||A.someoneElse)return;let t=Array.isArray(e)?e:`length`in e?Array.from(e):[e];t.length&&(q.add(t,{start:!1}),W(!0))},X=()=>{A.someoneElse||W(!0)},Z=()=>{q.clear(),W(!1)},ve=e=>{let t=Array.from(e.target.files||[]);e.target.value=``,Y(t)},Q=q.done?`${q.done} of ${J} uploaded`:`Uploading ${J===1?`your file`:`${J} files`}`,ye=q.ready?q.ready===1?`Upload`:`Upload ${q.ready} files`:q.busy?`${Q}…`:q.failed?`Try again`:`Uploaded`,be=async()=>{if(L){me(!0);try{await Promise.all([(0,S.deleteObject)((0,S.ref)(n.fi,L.storagePath||L.downloadURL)).catch(e=>console.warn(`Storage object missing:`,e)),n.F(L.storagePath||``),(0,x.deleteDoc)((0,x.doc)(n.ui,c,L._id))]),R(null)}catch(e){console.error(`Delete failed:`,e)}me(!1)}},xe=async()=>{if(!B||!B.name.trim()){V(null);return}try{await(0,x.updateDoc)((0,x.doc)(n.ui,c,B.id),{fileName:B.name.trim()})}catch(e){console.error(`Rename failed:`,e)}V(null)},Se=(e,t)=>{navigator.clipboard.writeText(e),U(t),setTimeout(()=>U(null),2e3)},Ce=(e,t=`row`)=>{let n=t===`card`?`w-16 h-16`:`w-10 h-10`,r=t===`card`?`w-8 h-8`:`w-5 h-5`;return e.includes(`video`)||e.includes(`audio`)?(0,b.jsx)(`div`,{className:`${n} flex items-center justify-center bg-accent/10 text-accent rounded-lg`,children:(0,b.jsx)(se,{className:r})}):e.includes(`pdf`)||e.includes(`word`)||e.includes(`text`)?(0,b.jsx)(`div`,{className:`${n} flex items-center justify-center bg-blue-500/10 text-blue-500 rounded-lg`,children:(0,b.jsx)(s.u,{className:r})}):e.includes(`zip`)||e.includes(`rar`)||e.includes(`archive`)?(0,b.jsx)(`div`,{className:`${n} flex items-center justify-center bg-yellow-500/10 text-yellow-500 rounded-lg`,children:(0,b.jsx)(re,{className:r})}):e.includes(`html`)||e.includes(`csv`)||e.includes(`json`)?(0,b.jsx)(`div`,{className:`${n} flex items-center justify-center bg-emerald-500/10 text-emerald-500 rounded-lg`,children:(0,b.jsx)(ie,{className:r})}):(0,b.jsx)(`div`,{className:`${n} flex items-center justify-center bg-foreground/5 text-foreground/40 rounded-lg`,children:(0,b.jsx)(s.l,{className:r})})};return(0,b.jsxs)(`main`,{className:`flex-1 w-full max-w-7xl mx-auto p-4 pt-2 md:p-8 md:pt-4 flex flex-col min-h-screen relative`,onDragOver:e=>{e.preventDefault(),G(!0)},onDragLeave:e=>{e.preventDefault(),G(!1)},onDrop:e=>{e.preventDefault(),G(!1),e.dataTransfer.files?.length&&Y(e.dataTransfer.files)},children:[(0,b.jsxs)(n.nt.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:`mb-4 md:mb-6 flex items-center gap-3`,children:[!T&&(0,b.jsx)(Ze,{to:o}),(0,b.jsxs)(`div`,{className:`min-w-0`,children:[(0,b.jsx)(t.t,{children:e}),(0,b.jsxs)(`div`,{className:`max-sm:hidden sm:flex items-center gap-2 text-foreground/40 font-bold uppercase tracking-[0.2em] text-[11px]`,children:[(0,b.jsx)(`span`,{className:`w-8 h-[1px] bg-foreground/10`}),a]})]})]}),T&&(0,b.jsx)(`div`,{className:`mb-6`,children:(0,b.jsx)(r.t,{})}),C&&(0,b.jsx)(`div`,{className:`mb-6 empty:hidden`,children:C}),(0,b.jsxs)(`div`,{className:`glass-panel border border-[var(--panel-border)] rounded-2xl md:rounded-3xl overflow-hidden flex-1 shadow-2xl min-h-[420px] md:min-h-[520px] mb-16 bg-background flex flex-col`,children:[(0,b.jsxs)(`div`,{className:`p-4 md:p-8 flex items-center justify-between gap-3 md:gap-6 border-b border-[var(--panel-border)]/50 bg-background/50`,children:[(0,b.jsxs)(`div`,{className:`min-w-0`,children:[(0,b.jsx)(`h2`,{className:`text-lg md:text-2xl font-bold text-foreground tracking-tight`,children:`Files`}),(0,b.jsx)(`p`,{className:`max-sm:hidden text-[12px] md:text-[13px] mt-1 md:mt-2 text-foreground/60 font-medium`,children:A.someoneElse?qe:O?`A file here is seen by the people it is sent to, and nobody else.`:A.everyone?`You are seeing everybody’s files. Anything you add is your own.`:D?`Only you can see the files you upload here.`:`Everyone who can open this page can see these files.`})]}),(0,b.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,b.jsx)(Ye,{viewing:A}),!v&&!A.someoneElse&&(w?(0,b.jsxs)(m.t,{onClick:X,title:q.busy?Q:`Add files`,className:`flex items-center justify-center gap-2 w-9 h-9 p-0 sm:w-auto sm:h-auto sm:px-5 sm:py-2.5 rounded-xl text-[13px] font-bold shadow-md shrink-0`,children:[q.busy?(0,b.jsx)(u.r,{className:`w-4 h-4 animate-spin`}):(0,b.jsx)(d.t,{className:`w-4 h-4`}),(0,b.jsx)(`span`,{className:`max-sm:hidden`,children:q.busy?Q:`Add files`})]}):(0,b.jsxs)(te.Link,{to:`/login`,title:`Sign in to add files`,className:`btn-primary flex items-center justify-center gap-2 w-9 h-9 p-0 sm:w-auto sm:h-auto sm:px-5 sm:py-2.5 rounded-xl text-[13px] font-bold shadow-md shrink-0`,children:[(0,b.jsx)(d.t,{className:`w-4 h-4`}),` `,(0,b.jsx)(`span`,{className:`max-sm:hidden`,children:`Add files`})]}))]})]}),v?(0,b.jsx)(Ae,{value:{prefix:i.Mn(_||{}),collection:O?c:``,recordId:``},children:(0,b.jsx)(`div`,{className:`fbos-content-slot fbos-tab-fill p-4 md:p-8 flex-1`,children:(0,b.jsx)(p.p,{size:`part`,children:(0,b.jsx)(v,{files:N,loading:P,error:O?j.error:``,user:w,uploadFile:Y,deleteFile:R,openUploadModal:X,viewFile:I,config:_,...Ve(c,k,O)})})})}):(0,b.jsxs)(`div`,{className:`p-4 sm:p-6 md:p-8 flex-1 relative`,children:[P&&(0,b.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-background/50 backdrop-blur-sm`,children:(0,b.jsx)(u.r,{className:`w-8 h-8 text-accent animate-spin`})}),N.length>0?(0,b.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 sm:gap-4`,children:[N.map(e=>(0,b.jsxs)(`div`,{className:`flex flex-col bg-background border border-[var(--panel-border)] rounded-2xl hover:border-accent/40 transition-all group overflow-hidden shadow-sm h-[190px] relative`,children:[(0,b.jsxs)(`div`,{className:`absolute top-2 right-2 flex flex-col gap-1 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 transition-opacity z-10 bg-background/90 backdrop-blur-md rounded-lg p-1 border border-[var(--panel-border)] shadow-xl`,children:[(0,b.jsx)(`a`,{href:e.downloadURL,download:!0,target:`_blank`,rel:`noreferrer`,className:`p-1.5 hover:bg-foreground/5 rounded-md text-foreground/60 hover:text-blue-500 transition-colors`,title:`Download`,children:(0,b.jsx)(s.d,{className:`w-4 h-4`})}),(0,b.jsx)(`button`,{onClick:t=>{t.stopPropagation(),Se(e.downloadURL,e._id)},className:`p-1.5 hover:bg-foreground/5 rounded-md text-foreground/60 hover:text-emerald-500 transition-colors`,title:`Copy link`,children:H===e._id?(0,b.jsx)(n.At,{className:`w-4 h-4 text-emerald-500`}):(0,b.jsx)(ae,{className:`w-4 h-4`})}),K(e)&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`button`,{onClick:t=>{t.stopPropagation(),V({id:e._id,name:e.fileName})},className:`p-1.5 hover:bg-foreground/5 rounded-md text-foreground/60 hover:text-accent transition-colors`,title:`Rename`,children:(0,b.jsx)(s.s,{className:`w-4 h-4`})}),(0,b.jsx)(`button`,{onClick:t=>{t.stopPropagation(),R(e)},className:`p-1.5 hover:bg-red-500/10 rounded-md text-foreground/60 hover:text-red-500 transition-colors`,title:`Delete`,children:(0,b.jsx)(f.t,{className:`w-4 h-4`})})]})]}),(0,b.jsx)(`div`,{className:`h-[120px] w-full border-b border-[var(--panel-border)]/50 bg-foreground/[0.02] flex items-center justify-center overflow-hidden relative cursor-pointer`,onClick:()=>I(e),children:e.fileType.startsWith(`image/`)?(0,b.jsx)(n.O,{src:e.downloadURL,small:e.smallURL,medium:e.mediumURL,alt:``,fit:`contain`,className:`absolute inset-0`,imgClassName:`p-2`}):Ce(e.fileType,`card`)}),(0,b.jsxs)(`div`,{className:`p-3 flex flex-col justify-center flex-1 min-w-0`,onClick:()=>!B&&I(e),children:[B?.id===e._id?(0,b.jsx)(`input`,{autoFocus:!0,type:`text`,value:B.name,onChange:e=>V({...B,name:e.target.value}),onBlur:xe,onKeyDown:e=>{e.key===`Enter`&&xe(),e.key===`Escape`&&V(null)},onClick:e=>e.stopPropagation(),className:`no-glow text-[12.5px] font-bold text-foreground bg-transparent border-b border-accent/30 outline-none pb-0.5 w-full`}):(0,b.jsx)(`span`,{className:`text-[12.5px] font-bold text-foreground truncate select-none group-hover:text-accent transition-colors`,title:e.fileName,children:e.fileName}),(0,b.jsx)(`span`,{className:`text-[11px] text-foreground/40 font-bold uppercase tracking-wider mt-1 select-none`,children:$e(e.fileSize)})]})]},e._id)),N.length>=$&&(0,b.jsxs)(`p`,{className:`col-span-full text-[12px] font-medium text-foreground/45 text-center pt-2`,children:[`Showing the `,$,` newest files. Older ones are still here — search or open them from a link.`]})]}):!P&&(0,b.jsxs)(`div`,{onClick:()=>w&&X(),className:`min-h-[320px] flex flex-col items-center justify-center text-center cursor-pointer group`,children:[(0,b.jsx)(t.v,{className:`w-12 h-12 text-foreground/15 mb-4`}),(0,b.jsx)(`p`,{className:`text-[20px] font-bold text-foreground/50 group-hover:text-foreground/70 transition-colors`,children:`No files yet`}),(0,b.jsx)(`p`,{className:`text-[13px] font-medium mt-1 text-foreground/40`,children:w?`Click here or drag files in to upload`:`Sign in to upload files`})]})]})]}),ne,(0,b.jsx)(n.rt,{children:he&&(0,b.jsxs)(`div`,{className:`fixed inset-0 z-[120] flex items-center justify-center p-4`,children:[(0,b.jsx)(n.nt.div,{onClick:Z,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:`absolute inset-0 bg-background/80 backdrop-blur-xl cursor-pointer`}),(0,b.jsxs)(n.nt.div,{role:`dialog`,"aria-modal":`true`,"aria-label":`Upload files`,initial:{opacity:0,scale:.95,y:10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.95,y:10},className:`w-full max-w-[520px] max-h-[calc(100dvh-2rem)] border-[var(--panel-border)] border rounded-3xl relative z-10 glass-panel shadow-2xl flex flex-col bg-background`,children:[(0,b.jsxs)(`div`,{className:`flex items-center justify-between p-4 md:p-6 border-b border-[var(--panel-border)]/50 shrink-0`,children:[(0,b.jsx)(`span`,{className:`text-[16px] font-extrabold text-foreground tracking-tight`,children:q.total>1?`Upload ${q.total} files`:`Upload files`}),(0,b.jsx)(`button`,{onClick:Z,"aria-label":`Close`,className:`text-foreground/40 hover:text-foreground transition-colors`,children:(0,b.jsx)(u.t,{className:`w-5 h-5`})})]}),q.total?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`ul`,{className:`flex flex-col gap-2 p-4 md:p-6 overflow-y-auto min-h-0`,children:q.items.map(e=>{let t=e.state===`waiting`||e.state===`uploading`,r=e.state===`ready`||e.state===`failed`;return(0,b.jsxs)(`li`,{className:`flex items-center gap-3 bg-foreground/[0.03] p-3 rounded-2xl border border-[var(--panel-border)]`,children:[e.file.type.startsWith(`image/`)?(0,b.jsx)(Qe,{file:e.file,className:`w-10 h-10 shrink-0 rounded-lg object-cover bg-foreground/5`}):Ce(e.file.type),(0,b.jsxs)(`div`,{className:`flex flex-col flex-1 min-w-0 gap-1`,children:[r?(0,b.jsx)(`input`,{type:`text`,value:e.name,onChange:t=>q.rename(e.id,t.target.value),"aria-label":`Name for ${e.file.name}`,className:`no-glow w-full bg-transparent border-b border-transparent hover:border-[var(--panel-border)] focus:border-accent/50 outline-none text-[13px] font-bold text-foreground pb-0.5 transition-colors`}):(0,b.jsx)(`span`,{className:`text-[13px] font-bold text-foreground truncate pb-0.5`,children:e.name}),t?(0,b.jsx)(`span`,{role:`progressbar`,"aria-label":`Uploading ${e.name}`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(e.progress*100),className:`block h-1.5 w-full rounded-full bg-foreground/10 overflow-hidden my-1`,children:(0,b.jsx)(`span`,{className:`block h-full rounded-full bg-accent transition-[width] duration-200`,style:{width:`${Math.max(e.state===`waiting`?0:4,e.progress*100)}%`}})}):e.state===`failed`?(0,b.jsx)(`span`,{className:`text-[11.5px] font-semibold text-red-500 truncate`,title:e.error,children:e.error}):(0,b.jsxs)(`span`,{className:`text-[11px] text-foreground/50 font-bold uppercase tracking-wider`,children:[$e(e.file.size),e.state===`done`?` · Uploaded`:``]})]}),e.state===`done`?(0,b.jsx)(n.At,{className:`w-4 h-4 mx-2 text-emerald-500 shrink-0`,"aria-hidden":!0}):(0,b.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[e.state===`failed`&&(0,b.jsx)(`button`,{type:`button`,onClick:()=>q.retry(e.id),"aria-label":`Try ${e.name} again`,title:`Try again`,className:`w-8 h-8 flex items-center justify-center text-foreground/40 hover:text-accent rounded-xl hover:bg-accent/10 transition-colors`,children:(0,b.jsx)(l.n,{className:`w-4 h-4`})}),(0,b.jsx)(`button`,{type:`button`,onClick:()=>q.remove(e.id),"aria-label":`${t?`Stop`:`Remove`} ${e.name}`,title:t?`Stop`:`Remove`,className:`w-8 h-8 flex items-center justify-center text-foreground/40 hover:text-red-500 rounded-xl hover:bg-red-500/10 transition-colors`,children:t?(0,b.jsx)(u.t,{className:`w-4 h-4`}):(0,b.jsx)(f.t,{className:`w-4 h-4`})})]})]},e.id)})}),(0,b.jsxs)(`div`,{className:`p-4 md:p-6 pt-3 md:pt-4 border-t border-[var(--panel-border)]/50 flex flex-col gap-3 shrink-0`,children:[q.failed>0&&(0,b.jsxs)(`p`,{className:`text-[13px] font-medium text-red-400 bg-red-500/10 border border-red-500/20 rounded-xl p-3`,children:[q.failed===1?`One file did not upload.`:`${q.failed} files did not upload.`,` Try again, or take it off the list.`]}),(0,b.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,b.jsxs)(`label`,{title:`Add more files`,className:`btn-secondary flex items-center justify-center gap-2 px-4 rounded-xl text-[13px] font-bold cursor-pointer shrink-0`,children:[(0,b.jsx)(d.t,{className:`w-4 h-4`}),` `,(0,b.jsx)(`span`,{className:`max-sm:hidden`,children:`Add more`}),(0,b.jsx)(`input`,{type:`file`,multiple:!0,"aria-label":`Add more files`,onChange:ve,className:`sr-only`})]}),(0,b.jsxs)(m.t,{type:`button`,onClick:q.start,disabled:!q.ready&&!q.failed,className:`flex-1 py-4 rounded-xl text-[14px] font-bold shadow-lg`,children:[q.busy&&!q.ready&&(0,b.jsx)(u.r,{className:`w-4 h-4 animate-spin`}),ye]})]})]})]}):(0,b.jsx)(`div`,{className:`p-4 md:p-6`,children:(0,b.jsxs)(`label`,{className:`group flex flex-col items-center justify-center gap-1.5 px-6 py-12 rounded-2xl border-2 border-dashed border-[var(--panel-border)] bg-foreground/[0.015] hover:border-accent/50 hover:bg-accent/[0.03] cursor-pointer text-center transition-all`,children:[(0,b.jsx)(`span`,{className:`w-14 h-14 rounded-full bg-accent/10 text-accent flex items-center justify-center mb-2 group-hover:scale-105 transition-transform`,children:(0,b.jsx)(t.v,{className:`w-6 h-6`})}),(0,b.jsxs)(`p`,{className:`text-[15px] font-bold text-foreground`,children:[(0,b.jsx)(`span`,{className:`text-accent`,children:`Click to upload`}),` or drag files in`]}),(0,b.jsx)(`p`,{className:`text-[12.5px] text-foreground/45 font-medium`,children:`Pictures, documents, anything — as many as you like`}),(0,b.jsx)(`input`,{type:`file`,multiple:!0,"aria-label":`Choose files to upload`,onChange:ve,className:`sr-only`})]})})]})]})}),(0,b.jsx)(s.t,{open:!!F,onClose:()=>I(null),src:F?.downloadURL||``,name:F?.fileName,type:F?.fileType,actions:F&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`button`,{type:`button`,onClick:()=>Se(F.downloadURL,F._id),className:`h-9 w-9 shrink-0 rounded-xl flex items-center justify-center text-foreground/65 hover:text-emerald-500 hover:bg-foreground/[0.06] transition-colors cursor-pointer`,title:`Copy link`,"aria-label":`Copy link`,children:H===F._id?(0,b.jsx)(n.At,{className:`w-4 h-4 text-emerald-500`}):(0,b.jsx)(ae,{className:`w-4 h-4`})}),K(F)&&(0,b.jsx)(`button`,{type:`button`,onClick:()=>{let e=F;I(null),R(e)},className:`h-9 w-9 shrink-0 rounded-xl flex items-center justify-center text-foreground/65 hover:text-red-500 hover:bg-red-500/10 transition-colors cursor-pointer`,title:`Delete`,"aria-label":`Delete`,children:(0,b.jsx)(f.t,{className:`w-4 h-4`})})]})}),(0,b.jsx)(ee.t,{isOpen:!!L,title:`Delete file`,message:(0,b.jsxs)(b.Fragment,{children:[`Delete `,(0,b.jsx)(`strong`,{className:`text-foreground block my-1 break-words max-w-full text-center`,children:L?.fileName}),` This cannot be undone.`]}),onConfirm:be,onCancel:()=>R(null),isProcessing:z,confirmText:`Yes, delete`}),(0,b.jsx)(n.rt,{children:ge&&(0,b.jsx)(n.nt.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:`fixed inset-0 z-[1000] bg-background/60 backdrop-blur-md pointer-events-none flex items-center justify-center p-6`,children:(0,b.jsxs)(`div`,{className:`w-full max-w-lg aspect-video bg-background/80 border-2 border-dashed border-accent rounded-[40px] shadow-2xl flex flex-col items-center justify-center gap-6`,children:[(0,b.jsx)(`div`,{className:`w-20 h-20 rounded-full bg-accent/10 flex items-center justify-center text-accent`,children:(0,b.jsx)(t.v,{className:`w-10 h-10 animate-bounce`})}),(0,b.jsx)(`span`,{className:`text-[24px] font-extrabold text-foreground tracking-tight`,children:`Drop to upload`})]})})})]})}Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return ae}});
1
+ const e=require(`./chunk-CiTBaPhY.cjs`),t=require(`./PageTitle-BL50s4qY.cjs`),n=require(`./TimeZoneField-Ckn1pKAL.cjs`),r=require(`./DashboardNav-Bc619nqn.cjs`),i=require(`./schedule-BAea6q8_.cjs`),a=require(`./chevron-down-lyDK1rfL.cjs`),o=require(`./arrow-left-C39sNUA7.cjs`),s=require(`./FileViewerPopup-CkLUYCNo.cjs`),c=require(`./eye-DU2g57PD.cjs`),l=require(`./VideoPlayer-CggwpVXH.cjs`),u=require(`./x-Ci8c5p6T.cjs`),d=require(`./plus-zsWFCu4F.cjs`),f=require(`./trash-D-CpYHCs.cjs`),p=require(`./contentFallback-DVCrIUvK.cjs`),m=require(`./Button-Ccy4wFZ1.cjs`),h=require(`./mediaKind-ButDya5f.cjs`),ee=require(`./ConfirmModal-BUNtss4a.cjs`),g=require(`./pageFiles-Cn0YQ4Ur.cjs`),_=require(`./recordLock-CiulizO1.cjs`),v=require(`./personName-BvH1NWNy.cjs`);let y=require(`react`);y=e.a(y,1);let b=require(`react/jsx-runtime`),x=require(`firebase/firestore`),S=require(`firebase/storage`),te=require(`react-router-dom`);var ne={name:`archive`,size:24,node:[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]};ne.node;var re=a.n(ne),C={name:`code`,size:24,node:[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]};C.node;var ie=a.n(C),w={name:`link`,size:24,node:[[`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`,key:`1cjeqo`}],[`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`,key:`19qd67`}]]};w.node;var ae=a.n(w),oe={name:`video`,size:24,node:[[`path`,{d:`m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5`,key:`ftymec`}],[`rect`,{x:`2`,y:`6`,width:`14`,height:`12`,rx:`2`,key:`158x01`}]]};oe.node;var se=a.n(oe),T=e=>`uid:${String(e||``).trim()}`,ce=e=>`role:${i.Ln(String(e||``))}`,E=(e,t)=>[T(e),`role:${String(t||`user`)}`],D=e=>{let t=String(e||``).trim().toLowerCase();return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)?`email:${t}`:`email:`},O=`everyone`,k=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`&&e):[],A=e=>k(e?.access).includes(O),j=(e,t)=>A(e)||k(e?.access).some(e=>t.includes(e)),le=(e,t)=>k(e?.editors).some(e=>t.includes(e));function ue(e,{uid:t,editors:n=!0}){let r=T(t),i=k(e.access),a=k(e.editors);return{...e,uid:e.uid||t,access:i.includes(r)?i:[...i,r],editors:n&&!a.includes(r)?[...a,r]:a}}var de=e=>{if(typeof e==`number`)return Number.isFinite(e)?e:0;if(e&&typeof e.toMillis==`function`){let t=e.toMillis();return Number.isFinite(t)?t:0}if(e&&typeof e.seconds==`number`)return e.seconds*1e3;if(typeof e==`string`){let t=Date.parse(e);return Number.isFinite(t)?t:0}return 0},fe=(e,t)=>de(t.createdAt)-de(e.createdAt)||e.id.localeCompare(t.id),M=(e,t)=>({...t,id:e,access:k(t?.access),editors:k(t?.editors)}),N=e=>e?.code===`permission-denied`?`These entries could not be read. The security rules may need pasting again from the Setup screen.`:`These entries could not be read just now.`;function pe(e,{max:t=200,mine:r=!1}={}){let{user:a,userRole:o,isAdmin:s,roleConfirmed:c}=n.Ft(),l=a?.uid||``,u=a?.emailVerified?D(a.email||``):`email:`,d=(0,y.useMemo)(()=>l?[...E(l,o),...u===`email:`?[]:[u]]:[],[l,o,u]),[f,p]=(0,y.useState)({loading:!0,records:[],error:``,forUid:``});return(0,y.useEffect)(()=>{if(!l||!c||!i.Tn(e))return;let a=!0,o=new Map,u=new Map,f=()=>{if(!a)return;let e=new Map;for(let t of o.values())for(let n of t)e.set(n.id,n);p({loading:!1,records:[...e.values()].sort(fe).slice(0,t),error:[...u.values()][0]||``,forUid:l})},m=e=>t=>{u.delete(e),o.set(e,t.docs.map(e=>M(e.id,e.data()))),f()},h=e=>t=>{e.startsWith(`email:`)||e.startsWith(`role:`)?o.set(e,[]):u.set(e,N(t)),f()},ee=s&&!r?[n.Zr(`${e}|all`,()=>(0,x.query)((0,x.collection)(n.ui,e)),m(`all`),h(`all`))]:d.map(t=>n.Zr(`${e}|${t}`,()=>(0,x.query)((0,x.collection)(n.ui,e),(0,x.where)(`access`,`array-contains`,t)),m(t),h(t)));return()=>{a=!1,ee.forEach(e=>e())}},[e,l,d,s,r,c,t]),(0,y.useMemo)(()=>!l||!i.Tn(e)?F(!1,[],``):!c||f.forUid!==l?F(!0,[],``):F(f.loading,f.records,f.error),[l,c,f,e])}var P=[`list`,`cases`,`entries`,`items`,`data`];function F(e,t,n){let r={loading:e,records:t,error:n};for(let e of P)Object.defineProperty(r,e,{value:t,enumerable:!1});return r}function I(e,{max:t=200}={}){let{user:r,roleConfirmed:a}=n.Ft(),o=r?.uid||``,[s,c]=(0,y.useState)({loading:!0,records:[],error:``,forUid:``});return(0,y.useEffect)(()=>{if(!o||!a||!i.Tn(e))return;let r=!0,s=n.Zr(`${e}|${O}`,()=>(0,x.query)((0,x.collection)(n.ui,e),(0,x.where)(`access`,`array-contains`,O)),e=>{r&&c({loading:!1,records:e.docs.map(e=>M(e.id,e.data())).sort(fe).slice(0,t),error:``,forUid:o})},e=>{r&&c({loading:!1,records:[],error:N(e),forUid:o})});return()=>{r=!1,s()}},[e,o,a,t]),(0,y.useMemo)(()=>!o||!i.Tn(e)?F(!1,[],``):!a||s.forUid!==o?F(!0,[],``):F(s.loading,s.records,s.error),[o,a,s,e])}function L(e,t){let{user:r,roleConfirmed:a}=n.Ft(),o=r?.uid||``,[s,c]=(0,y.useState)({loading:!0,record:null,error:``,forKey:``}),l=`${o}|${e}|${t}`;return(0,y.useEffect)(()=>{if(!o||!a||!i.Tn(e)||!t)return;let r=!0,s=(0,x.onSnapshot)((0,x.doc)(n.ui,e,t),e=>{r&&c({loading:!1,record:e.exists()?M(e.id,e.data()):null,error:``,forKey:l})},e=>{r&&c({loading:!1,record:null,error:me(e),forKey:l})});return()=>{r=!1,s()}},[e,t,o,a,l]),(0,y.useMemo)(()=>!o||!i.Tn(e)||!t?z(!1,null,``):!a||s.forKey!==l?z(!0,null,``):z(s.loading,s.record,s.error),[o,a,s,e,t,l])}var R=[`entry`,`item`,`thing`,`data`];function z(e,t,n){let r={loading:e,record:t,error:n};for(let e of R)Object.defineProperty(r,e,{value:t,enumerable:!1});return r}var me=e=>e?.code===`permission-denied`?`This one has not been shared with you.`:`This one could not be read just now.`,B=({people:e=[],roles:t=[]})=>{let n=[...e.map(T),...t.map(ce)].filter(e=>e!==`uid:`&&e!==`role:`);return[...new Set(n)]},V=`Entries can only be sent on a page where each entry says who sees it.`,H=e=>e?.code===`permission-denied`?`That entry is not yours to send on.`:`That entry could not be sent on just now.`;async function U(e,t,r){if(!i.Tn(e))return V;let a=B(r);if(!a.length||!t)return``;try{return await(0,x.updateDoc)((0,x.doc)(n.ui,e,t),{access:(0,x.arrayUnion)(...a),...r.canEdit===!1?{}:{editors:(0,x.arrayUnion)(...a)}}),``}catch(e){return H(e)}}async function he(e,t,r){if(!i.Tn(e))return V;let a=B(r);if(!a.length||!t)return``;try{return await(0,x.updateDoc)((0,x.doc)(n.ui,e,t),{access:(0,x.arrayRemove)(...a),editors:(0,x.arrayRemove)(...a)}),``}catch(e){return H(e)}}var W=`Only a page where each entry says who sees it can publish one.`,ge=e=>e?.code===`permission-denied`?`That one is not yours to publish.`:`That one could not be published just now.`;async function G(e,t){if(!i.Tn(e))return W;if(!t)return``;try{return await(0,x.updateDoc)((0,x.doc)(n.ui,e,t),{access:(0,x.arrayUnion)(O)}),``}catch(e){return ge(e)}}async function K(e,t){if(!i.Tn(e))return W;if(!t)return``;try{return await(0,x.updateDoc)((0,x.doc)(n.ui,e,t),{access:(0,x.arrayRemove)(O)}),``}catch(e){return ge(e)}}var q=[`waiting`,`uploading`],J=(e,t)=>t.aborted||e?.code===`storage/canceled`||e?.name===`AbortError`;async function _e(e,t,{customMetadata:r,onProgress:i,signal:a}={}){if(a?.aborted)throw Object.assign(Error(`The upload was stopped.`),{code:`storage/canceled`});let o=(0,S.ref)(n.fi,e),s=(0,S.uploadBytesResumable)(o,t,n.W(e,r)),c=()=>{s.cancel()};a?.addEventListener(`abort`,c,{once:!0});let l;try{await new Promise((e,t)=>{s.on(`state_changed`,e=>i?.(e.totalBytes?e.bytesTransferred/e.totalBytes:0),t,()=>e())}),i?.(1),l=await(0,S.getDownloadURL)(o)}catch(e){throw a?.aborted&&await Y(o),e}finally{a?.removeEventListener(`abort`,c)}if(a?.aborted)throw await Y(o),Object.assign(Error(`The upload was stopped.`),{code:`storage/canceled`});return l}var Y=async e=>{try{await(0,S.deleteObject)(e)}catch{}};function X(e,t){let n=e.flatMap((e,n)=>t.has(e)?[n]:[]),r=n.map(t=>e[t]).sort((e,n)=>t.get(e)-t.get(n)),i=[...e];return n.forEach((e,t)=>{i[e]=r[t]}),i}var Z=0,ve=class{items=[];running=new Map;listeners=new Set;options;constructor(e){this.options=e}configure(e){this.options=e}getItems=()=>this.items;subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});commit(e){this.items=e,xe(this,this.options.stopOnUnmount?e.filter(e=>q.includes(e.state)).length:0),this.listeners.forEach(e=>e())}patch(e,t){let n;return this.commit(this.items.map(r=>r.id===e?n={...r,...t}:r)),n}add(e,{start:t=!0}={}){let n=e.map(e=>({id:`upload_${++Z}`,seq:Z,file:e,name:e.name,state:t?`waiting`:`ready`,progress:0}));return n.length?(this.commit([...this.items,...n]),this.pump(),n):n}start(){this.items.some(e=>e.state===`ready`||e.state===`failed`)&&(this.commit(this.items.map(e=>e.state===`ready`||e.state===`failed`?{...e,state:`waiting`,progress:0,error:void 0}:e)),this.pump())}retry(e){this.items.find(t=>t.id===e)?.state===`failed`&&(this.patch(e,{state:`waiting`,progress:0,error:void 0}),this.pump())}rename(e,t){let n=this.items.find(t=>t.id===e);!n||n.state!==`ready`&&n.state!==`failed`||this.patch(e,{name:t})}remove(e){this.running.get(e)?.abort(),this.running.delete(e),this.commit(this.items.filter(t=>t.id!==e)),this.pump()}stopAll(){this.running.forEach(e=>e.abort()),this.running.clear(),this.commit(this.items.filter(e=>!q.includes(e.state)))}clear(){this.commit(this.items.filter(e=>q.includes(e.state)))}pump(){let e=Math.max(1,this.options.concurrency||4);for(let t of this.items){if(this.running.size>=e)break;t.state!==`waiting`||this.running.has(t.id)||this.run(t)}}run(e){let t=new AbortController;this.running.set(e.id,t);let r=this.patch(e.id,{state:`uploading`,progress:0}),i=0,a=e=>{if(t.signal.aborted)return;let n=Math.min(1,Math.max(0,Math.round(e*100)/100));n!==i&&(i=n,this.patch(r.id,{progress:n}))};Promise.resolve().then(()=>this.options.upload(r.file,{item:r,progress:a,signal:t.signal})).then(e=>{if(t.signal.aborted)return;let n=this.patch(r.id,{state:`done`,progress:1,result:e});if(n)try{this.options.onUploaded?.(e,n)}catch(e){console.warn(`${r.file.name}: onUploaded threw`,e)}},e=>{if(J(e,t.signal))return;console.warn(`${r.file.name}: the upload did not work (${e?.code||e?.message||e}).`);let i=this.patch(r.id,{state:`failed`,error:n.z(e)});if(i)try{this.options.onFailed?.(i)}catch(e){console.warn(`${r.file.name}: onFailed threw`,e)}}).finally(()=>{this.running.get(r.id)===t&&this.running.delete(r.id),this.pump(),!this.running.size&&!this.items.some(e=>q.includes(e.state))&&this.options.onSettled?.(this.items)})}},Q=new Map,ye=0,be=new Set;function xe(e,t){let n=Q.get(e)||0;n!==t&&(t?Q.set(e,t):Q.delete(e),ye+=t-n,be.forEach(e=>e()))}var Se=()=>ye;function Ce(e){return be.add(e),()=>{be.delete(e)}}var we=()=>(0,y.useSyncExternalStore)(Ce,Se,()=>0);function Te(e){let t=t=>e.filter(e=>e.state===t).length,n=e.filter(e=>q.includes(e.state)),r=e.filter(e=>e.state!==`ready`),i=r.reduce((e,t)=>e+(t.file.size||1),0),a=r.reduce((e,t)=>e+(t.file.size||1)*(t.state===`done`?1:t.progress),0);return{total:e.length,ready:t(`ready`),waiting:t(`waiting`),uploading:t(`uploading`),done:t(`done`),failed:t(`failed`),active:n.length,busy:n.length>0,progress:i?a/i:0}}function Ee(e){let[t]=(0,y.useState)(()=>new ve(e));(0,y.useLayoutEffect)(()=>{t.configure(e)});let n=!!e.stopOnUnmount;(0,y.useEffect)(()=>n?()=>t.stopAll():void 0,[t,n]);let r=(0,y.useSyncExternalStore)(t.subscribe,t.getItems,t.getItems),i=Te(r);return(0,y.useEffect)(()=>{if(!i.busy||typeof window>`u`)return;let e=e=>{e.preventDefault(),e.returnValue=``};return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[i.busy]),{items:r,...i,add:(e,n)=>t.add(e,n),start:()=>t.start(),retry:e=>t.retry(e),rename:(e,n)=>t.rename(e,n),remove:e=>t.remove(e),clear:()=>t.clear()}}var De=`${n.M}/pages`,Oe=`${n.j}/pages`,ke=(0,y.createContext)(null),Ae=ke.Provider,je=()=>(0,y.useContext)(ke)||{prefix:``};function Me({prefix:e,shared:t=!1,internal:n=!1,collection:r=``,recordId:i=``}){return!e||e===`pub_`?Oe:t?n?De:Oe:e===`case_`?g.n(r,i):g.i(e)}var Ne=(e,t={})=>`${Date.now()}_${Math.random().toString(36).slice(2,8)}_${h.g(t.width,t.height)}${(e||`file`).replace(/[^a-zA-Z0-9.-]/g,`_`)}`;async function Pe(e,{prefix:t,shared:r=!1,user:i,onProgress:a,signal:o,collection:s=``,recordId:c=``}){let l=Me({prefix:t,shared:r,internal:!!i?.internal,collection:s,recordId:c});if(!l)throw Error(`This page keeps files with the entry they belong to, and no entry was named.`);if(!i&&l!==Oe)throw Error(`Sign in again before uploading.`);let u=await h._(e);if(!i?.admin&&u.size>=10485760)throw Error(`That file is over 10 MB. Try a smaller one.`);let d=await n.Y(u),f=`${l}/${Ne(u.name,d)}`,p=await _e(f,u,{customMetadata:i?{ownerId:i.uid}:void 0,onProgress:a,signal:o}),m=await n.R(f,u,i?{ownerId:i.uid}:void 0);return{url:p,storagePath:f,name:u.name,type:u.type||``,size:u.size,...d.width&&d.height?{width:d.width,height:d.height}:{},...m}}async function Fe(e){try{await(0,S.deleteObject)((0,S.ref)(n.fi,e)),await n.F(e)}catch(t){console.warn(`${e}: the upload was dropped but the file stayed (${t?.code||t}).`)}}var Ie=e=>e===i.pn;function Le(){let{user:e,userRole:t}=n.Ft(),r=e?.uid||``;return(0,y.useMemo)(()=>r?E(r,t):[],[r,t])}var Re=e=>{try{let t=(0,x.doc)((0,x.collection)(n.ui,e)).id;if(t)return t}catch{}return`rec_${Date.now()}_${Math.random().toString(36).slice(2,8)}`},ze=(e,t,n)=>Ie(e)?g.n(t,n||``):g.i(e);function Be(e,t){return ue({createdAt:Date.now(),...e},{uid:t})}function Ve(e,t,n,r=``){let i=t.find(e=>e.startsWith(`role:`))?.slice(5)||null,a=e=>n?i===`admin`||le(e,t):!0;return{sendTo:(t,n)=>U(e,t,n),takeBack:(t,n)=>he(e,t,n),keys:t,canEdit:a,canDelete:e=>a(e)&&_.d(e,i),canSend:e=>n&&a(e)&&_.f(e,i),publish:t=>G(e,t),unpublish:t=>K(e,t),isPublished:e=>n?A(e):!1,draftId:n?r:``}}var He=`user_profiles`,Ue=`Viewing`,We=`Everyone`,Ge=e=>{let t=[];return e.forEach(e=>{let n=e.data()||{};n.inactive===!0||n.removed===!0||t.push({uid:e.id,name:v.n(n)})}),t.sort((e,t)=>e.name.localeCompare(t.name))};function Ke(e){let{isAdmin:t,roleConfirmed:r}=n.Ft(),[i,a]=(0,y.useState)([]),o=e&&t&&r!==!1;return(0,y.useEffect)(()=>{if(!o)return;let e=!0,t=n.Zr(He,()=>(0,x.collection)(n.ui,He),t=>{e&&a(Ge(t))},()=>{e&&a([])});return()=>{e=!1,t()}},[o]),o?i:[]}var qe=`You are looking at somebody else’s page. Anything you add here is theirs, but a file would stay yours — so uploads are off until you switch back to your own.`;function Je({on:e,everyone:t=!0}){let{user:r,isAdmin:i}=n.Ft(),a=r?.uid||``,o=Ke(e),[s,c]=(0,y.useState)(``),l=e&&i&&o.length>0,u=s&&o.some(e=>e.uid===s),d=l&&(u||s===``&&t)?s:``,f=l&&t&&d===``,p=(0,y.useMemo)(()=>[...t?[{value:``,label:We}]:[],...o.map(e=>({value:e.uid,label:e.uid===a?`${e.name} (you)`:e.name}))],[t,o,a]);return{uid:f?``:d||a,everyone:f,someoneElse:!!d&&d!==a,control:l?(0,b.jsx)(n.Z,{dense:!0,compact:!0,portal:!0,direction:`auto`,className:`console-select`,ariaLabel:Ue,value:d||(t?``:a),options:p,onChange:e=>c(e)}):null}}function Ye({viewing:e}){return e.control?(0,b.jsxs)(`div`,{className:`flex items-center gap-1.5 shrink-0`,children:[(0,b.jsx)(c.t,{className:`w-3.5 h-3.5 shrink-0 text-foreground/45`}),(0,b.jsx)(`span`,{className:`text-[12.5px] font-semibold text-foreground/50 select-none whitespace-nowrap max-sm:hidden`,children:Ue}),e.control]}):null}var Xe=`inline-flex items-center justify-center w-9 h-9 rounded-full border border-[var(--panel-border)] text-foreground/50 hover:text-accent hover:bg-foreground/5 transition-colors shrink-0 cursor-pointer`,Ze=({to:e})=>e?(0,b.jsx)(te.Link,{to:e,"aria-label":`Go back`,title:`Go back`,className:Xe,children:(0,b.jsx)(o.t,{className:`w-4 h-4`})}):(0,b.jsx)(`button`,{type:`button`,onClick:()=>window.history.back(),"aria-label":`Go back`,title:`Go back`,className:Xe,children:(0,b.jsx)(o.t,{className:`w-4 h-4`})});function Qe({file:e,className:t,alt:n=``}){let r=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!r.current||typeof URL.createObjectURL!=`function`)return;let t=URL.createObjectURL(e);return r.current.src=t,()=>URL.revokeObjectURL(t)},[e]),(0,b.jsx)(`img`,{ref:r,alt:n,className:t,"data-fbos-own":!0})}var $e=e=>{if(!e)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(2))+` `+n[r]},$=500;function et({title:e=`Drive`,subtitle:a=`/drive`,backUrl:o,filesCollection:c=`pub_files`,config:_,customContent:v,footer:ne,addition:C}){let{user:w,userRole:oe}=n.Ft(),T=!!_,ce=oe===`admin`,E=c,D=c.startsWith(`user_`),O=i.Tn(c),k=Le(),A=Je({on:c.startsWith(`user_`)&&!i.Tn(c)}),j=pe(c),[ue,de]=(0,y.useState)([]),[fe,M]=(0,y.useState)(!0),N=O?j.records.map(e=>({...e,_id:e.id})):ue,P=O?j.loading:fe,[F,I]=(0,y.useState)(null),[L,R]=(0,y.useState)(null),[z,me]=(0,y.useState)(!1),[B,V]=(0,y.useState)(null),[H,U]=(0,y.useState)(null),[he,W]=(0,y.useState)(!1),[ge,G]=(0,y.useState)(!1);(0,y.useEffect)(()=>{if(!(D&&!w)&&!O)return M(!0),(0,x.onSnapshot)(D&&!A.everyone?(0,x.query)((0,x.collection)(n.ui,c),(0,x.where)(`uid`,`==`,A.uid||w.uid),(0,x.limit)($)):(0,x.query)((0,x.collection)(n.ui,c),(0,x.orderBy)(`createdAt`,`desc`),(0,x.limit)($)),e=>{let t=e.docs.map(e=>({_id:e.id,...e.data()}));t.sort((e,t)=>(t.createdAt?.toMillis?.()||0)-(e.createdAt?.toMillis?.()||0)),de(t),M(!1)},e=>{console.warn(`Error listening to ${c}:`,e),M(!1)})},[c,D,w?.uid,O,A.uid,A.everyone]);let K=e=>O?le(e,k):!!w&&(e.uid===w.uid||ce),q=Ee({upload:async(e,t)=>{if(!w)throw Error(`Sign in again before uploading.`);let r=await h._(e),i=O?Re(c):``,a=`${O?g.n(c,i):E}/${Ne(r.name)}`,o=await _e(a,r,{customMetadata:{ownerId:w.uid},onProgress:t.progress,signal:t.signal}),s={fileName:t.item.name.trim()||r.name,fileType:r.type||`unknown`,fileSize:r.size,downloadURL:o,storagePath:a,uid:w.uid,uploaderEmail:w.email||``};O?await(0,x.setDoc)((0,x.doc)(n.ui,c,i),Be(s,w.uid)):await(0,x.addDoc)((0,x.collection)(n.ui,c),{...s,createdAt:(0,x.serverTimestamp)()})},onSettled:e=>{e.length&&e.every(e=>e.state===`done`)&&(W(!1),q.clear())}}),J=q.total-q.ready,Y=e=>{if(!e||!w||A.someoneElse)return;let t=Array.isArray(e)?e:`length`in e?Array.from(e):[e];t.length&&(q.add(t,{start:!1}),W(!0))},X=()=>{A.someoneElse||W(!0)},Z=()=>{q.clear(),W(!1)},ve=e=>{let t=Array.from(e.target.files||[]);e.target.value=``,Y(t)},Q=q.done?`${q.done} of ${J} uploaded`:`Uploading ${J===1?`your file`:`${J} files`}`,ye=q.ready?q.ready===1?`Upload`:`Upload ${q.ready} files`:q.busy?`${Q}…`:q.failed?`Try again`:`Uploaded`,be=async()=>{if(L){me(!0);try{await Promise.all([(0,S.deleteObject)((0,S.ref)(n.fi,L.storagePath||L.downloadURL)).catch(e=>console.warn(`Storage object missing:`,e)),n.F(L.storagePath||``),(0,x.deleteDoc)((0,x.doc)(n.ui,c,L._id))]),R(null)}catch(e){console.error(`Delete failed:`,e)}me(!1)}},xe=async()=>{if(!B||!B.name.trim()){V(null);return}try{await(0,x.updateDoc)((0,x.doc)(n.ui,c,B.id),{fileName:B.name.trim()})}catch(e){console.error(`Rename failed:`,e)}V(null)},Se=(e,t)=>{navigator.clipboard.writeText(e),U(t),setTimeout(()=>U(null),2e3)},Ce=(e,t=`row`)=>{let n=t===`card`?`w-16 h-16`:`w-10 h-10`,r=t===`card`?`w-8 h-8`:`w-5 h-5`;return e.includes(`video`)||e.includes(`audio`)?(0,b.jsx)(`div`,{className:`${n} flex items-center justify-center bg-accent/10 text-accent rounded-lg`,children:(0,b.jsx)(se,{className:r})}):e.includes(`pdf`)||e.includes(`word`)||e.includes(`text`)?(0,b.jsx)(`div`,{className:`${n} flex items-center justify-center bg-blue-500/10 text-blue-500 rounded-lg`,children:(0,b.jsx)(s.u,{className:r})}):e.includes(`zip`)||e.includes(`rar`)||e.includes(`archive`)?(0,b.jsx)(`div`,{className:`${n} flex items-center justify-center bg-yellow-500/10 text-yellow-500 rounded-lg`,children:(0,b.jsx)(re,{className:r})}):e.includes(`html`)||e.includes(`csv`)||e.includes(`json`)?(0,b.jsx)(`div`,{className:`${n} flex items-center justify-center bg-emerald-500/10 text-emerald-500 rounded-lg`,children:(0,b.jsx)(ie,{className:r})}):(0,b.jsx)(`div`,{className:`${n} flex items-center justify-center bg-foreground/5 text-foreground/40 rounded-lg`,children:(0,b.jsx)(s.l,{className:r})})};return(0,b.jsxs)(`main`,{className:`flex-1 w-full max-w-7xl mx-auto p-4 pt-2 md:p-8 md:pt-4 flex flex-col min-h-screen relative`,onDragOver:e=>{e.preventDefault(),G(!0)},onDragLeave:e=>{e.preventDefault(),G(!1)},onDrop:e=>{e.preventDefault(),G(!1),e.dataTransfer.files?.length&&Y(e.dataTransfer.files)},children:[(0,b.jsxs)(n.nt.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:`mb-4 md:mb-6 flex items-center gap-3`,children:[!T&&(0,b.jsx)(Ze,{to:o}),(0,b.jsxs)(`div`,{className:`min-w-0`,children:[(0,b.jsx)(t.t,{children:e}),(0,b.jsxs)(`div`,{className:`max-sm:hidden sm:flex items-center gap-2 text-foreground/40 font-bold uppercase tracking-[0.2em] text-[11px]`,children:[(0,b.jsx)(`span`,{className:`w-8 h-[1px] bg-foreground/10`}),a]})]})]}),T&&(0,b.jsx)(`div`,{className:`mb-6`,children:(0,b.jsx)(r.t,{})}),C&&(0,b.jsx)(`div`,{className:`mb-6 empty:hidden`,children:C}),(0,b.jsxs)(`div`,{className:`glass-panel border border-[var(--panel-border)] rounded-2xl md:rounded-3xl overflow-hidden flex-1 shadow-2xl min-h-[420px] md:min-h-[520px] mb-16 bg-background flex flex-col`,children:[(0,b.jsxs)(`div`,{className:`p-4 md:p-8 flex items-center justify-between gap-3 md:gap-6 border-b border-[var(--panel-border)]/50 bg-background/50`,children:[(0,b.jsxs)(`div`,{className:`min-w-0`,children:[(0,b.jsx)(`h2`,{className:`text-lg md:text-2xl font-bold text-foreground tracking-tight`,children:`Files`}),(0,b.jsx)(`p`,{className:`max-sm:hidden text-[12px] md:text-[13px] mt-1 md:mt-2 text-foreground/60 font-medium`,children:A.someoneElse?qe:O?`A file here is seen by the people it is sent to, and nobody else.`:A.everyone?`You are seeing everybody’s files. Anything you add is your own.`:D?`Only you can see the files you upload here.`:`Everyone who can open this page can see these files.`})]}),(0,b.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,b.jsx)(Ye,{viewing:A}),!v&&!A.someoneElse&&(w?(0,b.jsxs)(m.t,{onClick:X,title:q.busy?Q:`Add files`,className:`flex items-center justify-center gap-2 w-9 h-9 p-0 sm:w-auto sm:h-auto sm:px-5 sm:py-2.5 rounded-xl text-[13px] font-bold shadow-md shrink-0`,children:[q.busy?(0,b.jsx)(u.r,{className:`w-4 h-4 animate-spin`}):(0,b.jsx)(d.t,{className:`w-4 h-4`}),(0,b.jsx)(`span`,{className:`max-sm:hidden`,children:q.busy?Q:`Add files`})]}):(0,b.jsxs)(te.Link,{to:`/login`,title:`Sign in to add files`,className:`btn-primary flex items-center justify-center gap-2 w-9 h-9 p-0 sm:w-auto sm:h-auto sm:px-5 sm:py-2.5 rounded-xl text-[13px] font-bold shadow-md shrink-0`,children:[(0,b.jsx)(d.t,{className:`w-4 h-4`}),` `,(0,b.jsx)(`span`,{className:`max-sm:hidden`,children:`Add files`})]}))]})]}),v?(0,b.jsx)(Ae,{value:{prefix:i.Mn(_||{}),collection:O?c:``,recordId:``},children:(0,b.jsx)(`div`,{className:`fbos-content-slot fbos-tab-fill p-4 md:p-8 flex-1`,children:(0,b.jsx)(p.p,{size:`part`,children:(0,b.jsx)(v,{files:N,loading:P,error:O?j.error:``,user:w,uploadFile:Y,deleteFile:R,openUploadModal:X,viewFile:I,config:_,...Ve(c,k,O)})})})}):(0,b.jsxs)(`div`,{className:`p-4 sm:p-6 md:p-8 flex-1 relative`,children:[P&&(0,b.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-background/50 backdrop-blur-sm`,children:(0,b.jsx)(u.r,{className:`w-8 h-8 text-accent animate-spin`})}),N.length>0?(0,b.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 sm:gap-4`,children:[N.map(e=>(0,b.jsxs)(`div`,{className:`flex flex-col bg-background border border-[var(--panel-border)] rounded-2xl hover:border-accent/40 transition-all group overflow-hidden shadow-sm h-[190px] relative`,children:[(0,b.jsxs)(`div`,{className:`absolute top-2 right-2 flex flex-col gap-1 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 transition-opacity z-10 bg-background/90 backdrop-blur-md rounded-lg p-1 border border-[var(--panel-border)] shadow-xl`,children:[(0,b.jsx)(`a`,{href:e.downloadURL,download:!0,target:`_blank`,rel:`noreferrer`,className:`p-1.5 hover:bg-foreground/5 rounded-md text-foreground/60 hover:text-blue-500 transition-colors`,title:`Download`,children:(0,b.jsx)(s.d,{className:`w-4 h-4`})}),(0,b.jsx)(`button`,{onClick:t=>{t.stopPropagation(),Se(e.downloadURL,e._id)},className:`p-1.5 hover:bg-foreground/5 rounded-md text-foreground/60 hover:text-emerald-500 transition-colors`,title:`Copy link`,children:H===e._id?(0,b.jsx)(n.At,{className:`w-4 h-4 text-emerald-500`}):(0,b.jsx)(ae,{className:`w-4 h-4`})}),K(e)&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`button`,{onClick:t=>{t.stopPropagation(),V({id:e._id,name:e.fileName})},className:`p-1.5 hover:bg-foreground/5 rounded-md text-foreground/60 hover:text-accent transition-colors`,title:`Rename`,children:(0,b.jsx)(s.s,{className:`w-4 h-4`})}),(0,b.jsx)(`button`,{onClick:t=>{t.stopPropagation(),R(e)},className:`p-1.5 hover:bg-red-500/10 rounded-md text-foreground/60 hover:text-red-500 transition-colors`,title:`Delete`,children:(0,b.jsx)(f.t,{className:`w-4 h-4`})})]})]}),(0,b.jsx)(`div`,{className:`h-[120px] w-full border-b border-[var(--panel-border)]/50 bg-foreground/[0.02] flex items-center justify-center overflow-hidden relative cursor-pointer`,onClick:()=>I(e),children:e.fileType.startsWith(`image/`)?(0,b.jsx)(n.O,{src:e.downloadURL,small:e.smallURL,medium:e.mediumURL,alt:``,fit:`contain`,className:`absolute inset-0`,imgClassName:`p-2`}):Ce(e.fileType,`card`)}),(0,b.jsxs)(`div`,{className:`p-3 flex flex-col justify-center flex-1 min-w-0`,onClick:()=>!B&&I(e),children:[B?.id===e._id?(0,b.jsx)(`input`,{autoFocus:!0,type:`text`,value:B.name,onChange:e=>V({...B,name:e.target.value}),onBlur:xe,onKeyDown:e=>{e.key===`Enter`&&xe(),e.key===`Escape`&&V(null)},onClick:e=>e.stopPropagation(),className:`no-glow text-[12.5px] font-bold text-foreground bg-transparent border-b border-accent/30 outline-none pb-0.5 w-full`}):(0,b.jsx)(`span`,{className:`text-[12.5px] font-bold text-foreground truncate select-none group-hover:text-accent transition-colors`,title:e.fileName,children:e.fileName}),(0,b.jsx)(`span`,{className:`text-[11px] text-foreground/40 font-bold uppercase tracking-wider mt-1 select-none`,children:$e(e.fileSize)})]})]},e._id)),N.length>=$&&(0,b.jsxs)(`p`,{className:`col-span-full text-[12px] font-medium text-foreground/45 text-center pt-2`,children:[`Showing the `,$,` newest files. Older ones are still here — search or open them from a link.`]})]}):!P&&(0,b.jsxs)(`div`,{onClick:()=>w&&X(),className:`min-h-[320px] flex flex-col items-center justify-center text-center cursor-pointer group`,children:[(0,b.jsx)(t.v,{className:`w-12 h-12 text-foreground/15 mb-4`}),(0,b.jsx)(`p`,{className:`text-[20px] font-bold text-foreground/50 group-hover:text-foreground/70 transition-colors`,children:`No files yet`}),(0,b.jsx)(`p`,{className:`text-[13px] font-medium mt-1 text-foreground/40`,children:w?`Click here or drag files in to upload`:`Sign in to upload files`})]})]})]}),ne,(0,b.jsx)(n.rt,{children:he&&(0,b.jsxs)(`div`,{className:`fixed inset-0 z-[120] flex items-center justify-center p-4`,children:[(0,b.jsx)(n.nt.div,{onClick:Z,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:`absolute inset-0 bg-background/80 backdrop-blur-xl cursor-pointer`}),(0,b.jsxs)(n.nt.div,{role:`dialog`,"aria-modal":`true`,"aria-label":`Upload files`,initial:{opacity:0,scale:.95,y:10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.95,y:10},className:`w-full max-w-[520px] max-h-[calc(100dvh-2rem)] border-[var(--panel-border)] border rounded-3xl relative z-10 glass-panel shadow-2xl flex flex-col bg-background`,children:[(0,b.jsxs)(`div`,{className:`flex items-center justify-between p-4 md:p-6 border-b border-[var(--panel-border)]/50 shrink-0`,children:[(0,b.jsx)(`span`,{className:`text-[16px] font-extrabold text-foreground tracking-tight`,children:q.total>1?`Upload ${q.total} files`:`Upload files`}),(0,b.jsx)(`button`,{onClick:Z,"aria-label":`Close`,className:`text-foreground/40 hover:text-foreground transition-colors`,children:(0,b.jsx)(u.t,{className:`w-5 h-5`})})]}),q.total?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`ul`,{className:`flex flex-col gap-2 p-4 md:p-6 overflow-y-auto min-h-0`,children:q.items.map(e=>{let t=e.state===`waiting`||e.state===`uploading`,r=e.state===`ready`||e.state===`failed`;return(0,b.jsxs)(`li`,{className:`flex items-center gap-3 bg-foreground/[0.03] p-3 rounded-2xl border border-[var(--panel-border)]`,children:[e.file.type.startsWith(`image/`)?(0,b.jsx)(Qe,{file:e.file,className:`w-10 h-10 shrink-0 rounded-lg object-cover bg-foreground/5`}):Ce(e.file.type),(0,b.jsxs)(`div`,{className:`flex flex-col flex-1 min-w-0 gap-1`,children:[r?(0,b.jsx)(`input`,{type:`text`,value:e.name,onChange:t=>q.rename(e.id,t.target.value),"aria-label":`Name for ${e.file.name}`,className:`no-glow w-full bg-transparent border-b border-transparent hover:border-[var(--panel-border)] focus:border-accent/50 outline-none text-[13px] font-bold text-foreground pb-0.5 transition-colors`}):(0,b.jsx)(`span`,{className:`text-[13px] font-bold text-foreground truncate pb-0.5`,children:e.name}),t?(0,b.jsx)(`span`,{role:`progressbar`,"aria-label":`Uploading ${e.name}`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(e.progress*100),className:`block h-1.5 w-full rounded-full bg-foreground/10 overflow-hidden my-1`,children:(0,b.jsx)(`span`,{className:`block h-full rounded-full bg-accent transition-[width] duration-200`,style:{width:`${Math.max(e.state===`waiting`?0:4,e.progress*100)}%`}})}):e.state===`failed`?(0,b.jsx)(`span`,{className:`text-[11.5px] font-semibold text-red-500 truncate`,title:e.error,children:e.error}):(0,b.jsxs)(`span`,{className:`text-[11px] text-foreground/50 font-bold uppercase tracking-wider`,children:[$e(e.file.size),e.state===`done`?` · Uploaded`:``]})]}),e.state===`done`?(0,b.jsx)(n.At,{className:`w-4 h-4 mx-2 text-emerald-500 shrink-0`,"aria-hidden":!0}):(0,b.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[e.state===`failed`&&(0,b.jsx)(`button`,{type:`button`,onClick:()=>q.retry(e.id),"aria-label":`Try ${e.name} again`,title:`Try again`,className:`w-8 h-8 flex items-center justify-center text-foreground/40 hover:text-accent rounded-xl hover:bg-accent/10 transition-colors`,children:(0,b.jsx)(l.n,{className:`w-4 h-4`})}),(0,b.jsx)(`button`,{type:`button`,onClick:()=>q.remove(e.id),"aria-label":`${t?`Stop`:`Remove`} ${e.name}`,title:t?`Stop`:`Remove`,className:`w-8 h-8 flex items-center justify-center text-foreground/40 hover:text-red-500 rounded-xl hover:bg-red-500/10 transition-colors`,children:t?(0,b.jsx)(u.t,{className:`w-4 h-4`}):(0,b.jsx)(f.t,{className:`w-4 h-4`})})]})]},e.id)})}),(0,b.jsxs)(`div`,{className:`p-4 md:p-6 pt-3 md:pt-4 border-t border-[var(--panel-border)]/50 flex flex-col gap-3 shrink-0`,children:[q.failed>0&&(0,b.jsxs)(`p`,{className:`text-[13px] font-medium text-red-400 bg-red-500/10 border border-red-500/20 rounded-xl p-3`,children:[q.failed===1?`One file did not upload.`:`${q.failed} files did not upload.`,` Try again, or take it off the list.`]}),(0,b.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,b.jsxs)(`label`,{title:`Add more files`,className:`btn-secondary flex items-center justify-center gap-2 px-4 rounded-xl text-[13px] font-bold cursor-pointer shrink-0`,children:[(0,b.jsx)(d.t,{className:`w-4 h-4`}),` `,(0,b.jsx)(`span`,{className:`max-sm:hidden`,children:`Add more`}),(0,b.jsx)(`input`,{type:`file`,multiple:!0,"aria-label":`Add more files`,onChange:ve,className:`sr-only`})]}),(0,b.jsxs)(m.t,{type:`button`,onClick:q.start,disabled:!q.ready&&!q.failed,className:`flex-1 py-4 rounded-xl text-[14px] font-bold shadow-lg`,children:[q.busy&&!q.ready&&(0,b.jsx)(u.r,{className:`w-4 h-4 animate-spin`}),ye]})]})]})]}):(0,b.jsx)(`div`,{className:`p-4 md:p-6`,children:(0,b.jsxs)(`label`,{className:`group flex flex-col items-center justify-center gap-1.5 px-6 py-12 rounded-2xl border-2 border-dashed border-[var(--panel-border)] bg-foreground/[0.015] hover:border-accent/50 hover:bg-accent/[0.03] cursor-pointer text-center transition-all`,children:[(0,b.jsx)(`span`,{className:`w-14 h-14 rounded-full bg-accent/10 text-accent flex items-center justify-center mb-2 group-hover:scale-105 transition-transform`,children:(0,b.jsx)(t.v,{className:`w-6 h-6`})}),(0,b.jsxs)(`p`,{className:`text-[15px] font-bold text-foreground`,children:[(0,b.jsx)(`span`,{className:`text-accent`,children:`Click to upload`}),` or drag files in`]}),(0,b.jsx)(`p`,{className:`text-[12.5px] text-foreground/45 font-medium`,children:`Pictures, documents, anything — as many as you like`}),(0,b.jsx)(`input`,{type:`file`,multiple:!0,"aria-label":`Choose files to upload`,onChange:ve,className:`sr-only`})]})})]})]})}),(0,b.jsx)(s.t,{open:!!F,onClose:()=>I(null),src:F?.downloadURL||``,name:F?.fileName,type:F?.fileType,actions:F&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`button`,{type:`button`,onClick:()=>Se(F.downloadURL,F._id),className:`h-9 w-9 shrink-0 rounded-xl flex items-center justify-center text-foreground/65 hover:text-emerald-500 hover:bg-foreground/[0.06] transition-colors cursor-pointer`,title:`Copy link`,"aria-label":`Copy link`,children:H===F._id?(0,b.jsx)(n.At,{className:`w-4 h-4 text-emerald-500`}):(0,b.jsx)(ae,{className:`w-4 h-4`})}),K(F)&&(0,b.jsx)(`button`,{type:`button`,onClick:()=>{let e=F;I(null),R(e)},className:`h-9 w-9 shrink-0 rounded-xl flex items-center justify-center text-foreground/65 hover:text-red-500 hover:bg-red-500/10 transition-colors cursor-pointer`,title:`Delete`,"aria-label":`Delete`,children:(0,b.jsx)(f.t,{className:`w-4 h-4`})})]})}),(0,b.jsx)(ee.t,{isOpen:!!L,title:`Delete file`,message:(0,b.jsxs)(b.Fragment,{children:[`Delete `,(0,b.jsx)(`strong`,{className:`text-foreground block my-1 break-words max-w-full text-center`,children:L?.fileName}),` This cannot be undone.`]}),onConfirm:be,onCancel:()=>R(null),isProcessing:z,confirmText:`Yes, delete`}),(0,b.jsx)(n.rt,{children:ge&&(0,b.jsx)(n.nt.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:`fixed inset-0 z-[1000] bg-background/60 backdrop-blur-md pointer-events-none flex items-center justify-center p-6`,children:(0,b.jsxs)(`div`,{className:`w-full max-w-lg aspect-video bg-background/80 border-2 border-dashed border-accent rounded-[40px] shadow-2xl flex flex-col items-center justify-center gap-6`,children:[(0,b.jsx)(`div`,{className:`w-20 h-20 rounded-full bg-accent/10 flex items-center justify-center text-accent`,children:(0,b.jsx)(t.v,{className:`w-10 h-10 animate-bounce`})}),(0,b.jsx)(`span`,{className:`text-[24px] font-extrabold text-foreground tracking-tight`,children:`Drop to upload`})]})})})]})}Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return ae}});
@@ -0,0 +1 @@
1
+ require(`./chunk-CiTBaPhY.cjs`);const e=require(`./ThemeAdmin-BhaTfgKX.cjs`);exports.ThemeAdmin=e.r;
@@ -0,0 +1,2 @@
1
+ import { r as e } from "./ThemeAdmin-C_8phTKX.js";
2
+ export { e as ThemeAdmin };