your-ai-workflow-firebase-os 2.0.1 → 2.0.3

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 (183) hide show
  1. package/dist/AccessNotice-BZ5Gt1nP.js +40 -0
  2. package/dist/AccessNotice-CN7kc70o.cjs +1 -0
  3. package/dist/{AddressField-R-HvndkG.js → AddressField-9Sqn8TvC.js} +3 -3
  4. package/dist/{AddressField-BkzFOo2t.cjs → AddressField-B7wtV8yA.cjs} +1 -1
  5. package/dist/Assets-DBMwZ3bN.cjs +1 -0
  6. package/dist/Assets-DT-NU_WO.js +296 -0
  7. package/dist/Attachments-Bl9_dfsu.js +46 -0
  8. package/dist/Attachments-UVK9SRXf.cjs +1 -0
  9. package/dist/Billing-0RIHayHy.cjs +1 -0
  10. package/dist/Billing-FNE2r3_d.js +379 -0
  11. package/dist/BookingCalendar-BP5kiv3d.cjs +1 -0
  12. package/dist/BookingCalendar-DZ2fEFja.js +309 -0
  13. package/dist/Button-4lzOE31p.js +48 -0
  14. package/dist/Button-5DlB2MCi.cjs +1 -0
  15. package/dist/CalendarView-BimoXy_k.cjs +1 -0
  16. package/dist/CalendarView-D-ykjpvI.js +664 -0
  17. package/dist/ConfirmModal-Di9GR-vV.cjs +1 -0
  18. package/dist/ConfirmModal-gKQEpd4d.js +113 -0
  19. package/dist/ContactPopup-BXnHrRwl.js +1114 -0
  20. package/dist/ContactPopup-lxmRMoIa.cjs +1 -0
  21. package/dist/CopyLink-BpEQWmfI.cjs +1 -0
  22. package/dist/CopyLink-CBAVfcm1.js +43 -0
  23. package/dist/DashboardNav-CXa_ci-_.cjs +1 -0
  24. package/dist/DashboardNav-Dmn7PVSp.js +886 -0
  25. package/dist/EmailAdmin-CjN_rvxT.js +318 -0
  26. package/dist/EmailAdmin-lAEBdY1s.cjs +1 -0
  27. package/dist/EventCard-46EquygT.cjs +1 -0
  28. package/dist/EventCard-B6xD-mk3.js +97 -0
  29. package/dist/FileViewerPopup-CX-J75TM.js +1283 -0
  30. package/dist/FileViewerPopup-D8-MmIoS.cjs +3 -0
  31. package/dist/FormNote-BivRNA3J.js +50 -0
  32. package/dist/FormNote-BtdTGpml.cjs +1 -0
  33. package/dist/FormsAdmin-B5PBCG2W.js +812 -0
  34. package/dist/FormsAdmin-BQCULvi5.cjs +1 -0
  35. package/dist/Inbox-BPk2ZkE5.js +779 -0
  36. package/dist/Inbox-DNrcBx0o.cjs +3 -0
  37. package/dist/Loader-Bu89fsbB.cjs +1 -0
  38. package/dist/Loader-D4gwgBOq.js +32 -0
  39. package/dist/ManagePlanButton-B0dwqZBd.cjs +1 -0
  40. package/dist/ManagePlanButton-BSrOHYze.js +29 -0
  41. package/dist/MyBookings-6qr0GgzO.cjs +1 -0
  42. package/dist/MyBookings-BQjGM2LQ.js +113 -0
  43. package/dist/PageTitle-CZhgmmDT.cjs +3 -0
  44. package/dist/PageTitle-D93YCiN8.js +1606 -0
  45. package/dist/PagesAdmin-BcHIcqM5.cjs +34 -0
  46. package/dist/PagesAdmin-D69P9nRb.js +5802 -0
  47. package/dist/PagesAdmin-DNwZOKjA.cjs +1 -0
  48. package/dist/PagesAdmin-HUITEcHx.js +3 -0
  49. package/dist/PaymentsAdmin-C2iCI9qC.js +1291 -0
  50. package/dist/PaymentsAdmin-CoXi2vCm.cjs +2 -0
  51. package/dist/{PhoneInputField-B3P_vUDW.cjs → PhoneInputField-BEwYZMB7.cjs} +1 -1
  52. package/dist/{PhoneInputField-BlYHb5e0.js → PhoneInputField-BG0L2djE.js} +2 -2
  53. package/dist/PhoneInputField-DfOtCIH_.js +2 -0
  54. package/dist/{PhoneInputField-CdNTvWXQ.cjs → PhoneInputField-jhWvto8C.cjs} +1 -1
  55. package/dist/Popup-DHYGFl2-.cjs +1 -0
  56. package/dist/Popup-xROLytgr.js +142 -0
  57. package/dist/ProviderMark-BBfaM5Yl.js +52 -0
  58. package/dist/ProviderMark-xLkUN3Fx.cjs +1 -0
  59. package/dist/PublishApp-Bm-6r3Td.js +595 -0
  60. package/dist/PublishApp-D4XJUkJa.cjs +2 -0
  61. package/dist/Said-CoC15awL.js +94 -0
  62. package/dist/Said-IqCNofdh.cjs +1 -0
  63. package/dist/ScheduleAdmin-BKfQkrR8.js +1853 -0
  64. package/dist/ScheduleAdmin-DwK36GAZ.cjs +1 -0
  65. package/dist/SchedulePicker--urIH2Eb.js +112 -0
  66. package/dist/SchedulePicker-nmqzUnUH.cjs +1 -0
  67. package/dist/Setup-CHLgd-ag.js +849 -0
  68. package/dist/Setup-CaDranTm.cjs +1374 -0
  69. package/dist/SetupPayments-CVIwh1eQ.js +411 -0
  70. package/dist/SetupPayments-HNXWA25X.cjs +1 -0
  71. package/dist/SignInAdmin-C94-A-0w.cjs +4 -0
  72. package/dist/SignInAdmin-Yxgv_8U4.js +766 -0
  73. package/dist/SupportBar-CDT0HwdP.cjs +1 -0
  74. package/dist/SupportBar-CN_JGC-9.js +117 -0
  75. package/dist/SystemTabContent-L3vGGF3P.cjs +1 -0
  76. package/dist/SystemTabContent-QdxxLILE.js +35 -0
  77. package/dist/TemplateDrive-DV8zNjYe.cjs +1 -0
  78. package/dist/TemplateDrive-NJY_AAvV.js +1197 -0
  79. package/dist/ThemeAdmin-BzFjJkLg.js +269 -0
  80. package/dist/ThemeAdmin-DVnPNxe7.cjs +1 -0
  81. package/dist/ThemeAdmin-DY7Vc4Sj.cjs +3 -0
  82. package/dist/ThemeAdmin-DnC-D2N3.js +2 -0
  83. package/dist/{ContactPopup-9J_YeJrb.js → TimeZoneField-DkI1Bkcz.js} +3382 -5513
  84. package/dist/TimeZoneField-qs7NPR30.cjs +12 -0
  85. package/dist/TransactionsAdmin-BsZ-oQWi.js +582 -0
  86. package/dist/TransactionsAdmin-CTSTiPld.cjs +1 -0
  87. package/dist/Trouble-9es_AI4F.cjs +1 -0
  88. package/dist/Trouble-oWt9fMsm.js +164 -0
  89. package/dist/Users-CTitWXyd.cjs +1 -0
  90. package/dist/Users-DJjQTWJF.js +1207 -0
  91. package/dist/aiModels-DIP9fn8T.cjs +1 -0
  92. package/dist/{aiModels-BHlEfuRJ.js → aiModels-DnDhNGup.js} +29 -61
  93. package/dist/arrivalRoads-BJ-35vkk.js +228 -0
  94. package/dist/arrivalRoads-qoU-B4jt.cjs +4 -0
  95. package/dist/{bake-D0gLVNTL.cjs → bake-n2wyFw0B.cjs} +1 -1
  96. package/dist/{bake-OErV2MLy.js → bake-naZeMu98.js} +14 -14
  97. package/dist/bookingPages-C7a3srPG.js +102 -0
  98. package/dist/bookingPages-DvbFbD9X.cjs +1 -0
  99. package/dist/components/CustomSelect.d.ts +7 -1
  100. package/dist/components/RegistrationFields.d.ts +6 -1
  101. package/dist/components/Reveal.d.ts +12 -0
  102. package/dist/components/ScrollToTop.d.ts +4 -0
  103. package/dist/contentFallback-C9MZjdq7.cjs +1 -0
  104. package/dist/contentFallback-CEDY0Pwp.js +96 -0
  105. package/dist/contentKey-Bwry4lDa.js +13 -0
  106. package/dist/contentKey-DJGYYnAE.cjs +1 -0
  107. package/dist/{dist-_zWHDDrc.js → dist-DUPvBnOA.js} +1 -1
  108. package/dist/email-BfnZnMwD.cjs +1 -0
  109. package/dist/email-Ddj8Dlu6.js +58 -0
  110. package/dist/{fileBytes-B0qxHYQL.cjs → fileBytes-BJPaiX9Y.cjs} +1 -1
  111. package/dist/{fileBytes-uhq3pGCS.js → fileBytes-bjgvCfWu.js} +2 -2
  112. package/dist/forms-Bvx9HTM6.js +75 -0
  113. package/dist/forms-CmNeTETW.cjs +1 -0
  114. package/dist/lib/ThemeContext.d.ts +0 -14
  115. package/dist/lib/bareImgWatch.d.ts +6 -1
  116. package/dist/lib/localEdits.d.ts +2 -0
  117. package/dist/lib/pageDesignLines.d.ts +1 -1
  118. package/dist/lib/paymentProducts.d.ts +8 -0
  119. package/dist/lib/payments.d.ts +11 -1
  120. package/dist/lib/people.d.ts +9 -0
  121. package/dist/lib/recordsKey.d.ts +24 -0
  122. package/dist/{lucide-react-DiyP8FA_.js → lucide-react-CA7GD7Nv.js} +8 -8
  123. package/dist/notices-B7iIrIEg.js +29 -0
  124. package/dist/notices-upMg8UVh.cjs +1 -0
  125. package/dist/openOnArrival-Buwqb86D.cjs +1 -0
  126. package/dist/openOnArrival-S2K6v-lB.js +35 -0
  127. package/dist/pageFiles--Ih60ITP.js +45 -0
  128. package/dist/pageFiles-UtBmlOcD.cjs +1 -0
  129. package/dist/pages/PagesAdmin.d.ts +69 -7
  130. package/dist/{pdf-DLuvpvHg.js → pdf-DRXcPGkr.js} +1 -1
  131. package/dist/{pdf.worker.min-C0gkd2Ec.js → pdf.worker.min-CfKZezeM.js} +1 -1
  132. package/dist/people-2jZE_pdI.js +102 -0
  133. package/dist/people-BpVvIr9-.cjs +1 -0
  134. package/dist/personName-CFw3pxuu.js +18 -0
  135. package/dist/personName-CbzN_i57.cjs +1 -0
  136. package/dist/publishSteps-C1cDFzzB.js +88 -0
  137. package/dist/publishSteps-SSm8afDw.cjs +1 -0
  138. package/dist/recordLock-DHVvI9bP.js +61 -0
  139. package/dist/recordLock-DWeIxiwh.cjs +1 -0
  140. package/dist/recordsKey-B7QrxdeU.cjs +1 -0
  141. package/dist/recordsKey-D5-wC0Aw.js +141 -0
  142. package/dist/registrationFields-CLeR2lQJ.js +181 -0
  143. package/dist/registrationFields-v4pOoRdn.cjs +1 -0
  144. package/dist/renderer.cjs.js +1 -1
  145. package/dist/renderer.es.js +1 -1
  146. package/dist/roles-D6VaHWfV.js +147 -0
  147. package/dist/roles-DQUFFBQe.cjs +1 -0
  148. package/dist/scheduleData-ATN8w5hI.js +727 -0
  149. package/dist/scheduleData-Cltj0ABZ.cjs +1 -0
  150. package/dist/server.cjs.js +6 -6
  151. package/dist/server.es.js +716 -715
  152. package/dist/serviceStatus-TQyZO_Y_.cjs +1 -0
  153. package/dist/serviceStatus-vS8AI7SZ.js +125 -0
  154. package/dist/tabAudience-BqpN6dsR.cjs +1 -0
  155. package/dist/tabAudience-CRyMvv0v.js +34 -0
  156. package/dist/transactions-BqMQDRx3.js +343 -0
  157. package/dist/transactions-CufFrdAM.cjs +1 -0
  158. package/dist/useIsPhone-BVGx_X3e.js +13 -0
  159. package/dist/useIsPhone-o63tNneA.cjs +1 -0
  160. package/dist/{validate-DzSJWuyL.js → validate-CmC_tLK-.js} +433 -351
  161. package/dist/validate-DZMwqSrb.cjs +103 -0
  162. package/dist/vite/validate.d.ts +14 -0
  163. package/dist/vite.cjs.js +1 -1
  164. package/dist/vite.es.js +1 -1
  165. package/dist/your-ai-workflow-firebase-os.cjs.js +15 -1431
  166. package/dist/your-ai-workflow-firebase-os.css +1 -1
  167. package/dist/your-ai-workflow-firebase-os.es.js +11695 -35911
  168. package/package.json +1 -1
  169. package/src/index.css +122 -2
  170. package/dist/ContactPopup-DF8qQCoY.cjs +0 -12
  171. package/dist/PhoneInputField-Btx07xvM.js +0 -2
  172. package/dist/aiModels-BIhoTNH0.cjs +0 -1
  173. package/dist/validate-e48WXJdP.cjs +0 -103
  174. /package/dist/{address-DI1YaCI4.cjs → address-Bsb8COq2.cjs} +0 -0
  175. /package/dist/{address-Ca1h_UZX.js → address-C2bHNxJU.js} +0 -0
  176. /package/dist/{dist-BLGlDv1e.cjs → dist-E4jTFPs7.cjs} +0 -0
  177. /package/dist/{lucide-react-BYniZ3lQ.cjs → lucide-react-BwV6L6Is.cjs} +0 -0
  178. /package/dist/{mediaKind-dk396a03.cjs → mediaKind-D0MWyv6b.cjs} +0 -0
  179. /package/dist/{mediaKind-De2Cx_kB.js → mediaKind-DmKMsjeY.js} +0 -0
  180. /package/dist/{pdf-CC5g01eC.cjs → pdf-jLjjhvjp.cjs} +0 -0
  181. /package/dist/{pdf.worker.min-pI_P-OCl.cjs → pdf.worker.min-bLgNWd7w.cjs} +0 -0
  182. /package/dist/{verifiedAccount-C1iCxopN.js → verifiedAccount-DRbRFJ6H.js} +0 -0
  183. /package/dist/{verifiedAccount-D3OeaOBo.cjs → verifiedAccount-DScyKk96.cjs} +0 -0
@@ -0,0 +1 @@
1
+ const e=require(`./chunk-CiTBaPhY.cjs`),t=require(`./forms-CmNeTETW.cjs`),n=require(`./TimeZoneField-qs7NPR30.cjs`),r=require(`./lucide-react-BwV6L6Is.cjs`),i=require(`./Popup-DHYGFl2-.cjs`),a=require(`./Button-5DlB2MCi.cjs`),o=require(`./Loader-Bu89fsbB.cjs`),s=require(`./BookingCalendar-BP5kiv3d.cjs`),c=require(`./scheduleData-Cltj0ABZ.cjs`),l=require(`./address-Bsb8COq2.cjs`);let u=require(`react`);u=e.a(u,1);let d=require(`react/jsx-runtime`),f=require(`firebase/firestore`),p=require(`react-router-dom`),m=require(`react-dom`);var h=u.default.forwardRef(({className:e,label:t,error:r,currencySymbol:i,type:a,...o},s)=>{let c=a===`currency`;return(0,d.jsxs)(`div`,{className:`flex flex-col w-full relative`,children:[t&&(0,d.jsx)(`label`,{className:`text-[13px] font-medium text-foreground/70 select-none mb-2`,children:t}),(0,d.jsxs)(`div`,{className:`relative flex items-center lift-focus`,children:[c&&i&&(0,d.jsx)(`span`,{className:`absolute left-4 font-bold text-foreground/70 z-10 pointer-events-none text-[15px]`,children:i}),(0,d.jsx)(`input`,{ref:s,type:c?`number`:a,className:n.ir(`block h-12 w-full text-[15px] text-foreground py-2`,c&&i?`pl-8 pr-4`:`px-4`,`transition-all duration-300 placeholder:text-foreground/40`,`focus:outline-none focus:border-accent glow-focus`,`disabled:cursor-not-allowed disabled:opacity-50 glass-panel`,r&&`border-red-500/50 focus:border-red-500/50`,e),style:{borderRadius:`var(--input-radius, 0.75rem)`},...o})]}),r&&(0,d.jsx)(n.sr.p,{initial:{opacity:0,y:-5},animate:{opacity:1,y:0},className:`text-[13px] text-red-500 font-medium mt-1.5`,children:r})]})});h.displayName=`Input`;var g=u.default.forwardRef(({className:e,label:t,error:r,id:i,rows:a=2,...o},s)=>{let c=(0,u.useId)(),l=i??`textarea-${c}`;return(0,d.jsxs)(`div`,{className:`flex flex-col w-full relative`,children:[t&&(0,d.jsx)(`label`,{htmlFor:l,className:`text-[13px] font-medium text-foreground/70 select-none mb-2`,children:t}),(0,d.jsx)(n.rr,{ref:s,id:l,rows:a,className:n.ir(`block w-full text-[15px] leading-6 text-foreground px-4 py-3`,`transition-[border-color,box-shadow,background-color] duration-300 placeholder:text-foreground/40`,`focus:outline-none focus:border-accent glow-focus`,`disabled:cursor-not-allowed disabled:opacity-50 glass-panel`,r&&`border-red-500/50 focus:border-red-500/50`,e),style:{borderRadius:`var(--input-radius, 0.75rem)`},...o}),r&&(0,d.jsx)(n.sr.p,{initial:{opacity:0,y:-5},animate:{opacity:1,y:0},className:`text-[13px] text-red-500 font-medium mt-1.5`,children:r})]})});g.displayName=`TextArea`;var _=e=>`fbos.visitor.${e}`,v=`buyer`,y=`fbos:visitor-forgotten`,b=`fbos:visitor-changed`;function x(e){try{window.localStorage.removeItem(_(e))}catch{}try{window.dispatchEvent(new CustomEvent(y,{detail:e}))}catch{}}var S=(e,t)=>{try{let n=window.localStorage.getItem(_(e));if(n===null)return t;let r=JSON.parse(n);return r===null?t:r}catch{return t}};function C(e,t,n,r){return Object.assign([e,t,n],{value:e,setValue:t,clear:n,ready:r})}function w(e,t){let[n,r]=(0,u.useState)(t),[i,a]=(0,u.useState)(!1),o=(0,u.useRef)(t),s=(0,u.useRef)(t),c=(0,u.useRef)(Symbol(`visitor-state`));(0,u.useEffect)(()=>{let t=S(e,o.current);s.current=t,r(t),a(!0);let n=t=>{t.detail===e&&(s.current=o.current,r(o.current))},i=t=>{let n=t.detail;!n||n.key!==e||n.from===c.current||(s.current=n.value,r(n.value))},l=t=>{if(t.key!==_(e))return;let n=S(e,o.current);s.current=n,r(n)};return window.addEventListener(y,n),window.addEventListener(b,i),window.addEventListener(`storage`,l),()=>{window.removeEventListener(y,n),window.removeEventListener(b,i),window.removeEventListener(`storage`,l)}},[e]);let l=(0,u.useRef)(null),d=(0,u.useCallback)(t=>{let n=typeof t==`function`?t(s.current):t;s.current=n,l.current||={json:JSON.stringify(o.current)};let i=JSON.stringify(n);try{i===l.current.json?window.localStorage.removeItem(_(e)):window.localStorage.setItem(_(e),i)}catch{}r(n);try{window.dispatchEvent(new CustomEvent(b,{detail:{key:e,value:n,from:c.current}}))}catch{}},[e]),f=(0,u.useCallback)(()=>{s.current=o.current;try{window.localStorage.removeItem(_(e))}catch{}r(o.current);try{window.dispatchEvent(new CustomEvent(y,{detail:e}))}catch{}},[e]);return(0,u.useMemo)(()=>C(n,d,f,i),[n,d,f,i])}var T={borderRadius:`var(--input-radius, 0.75rem)`},E=e=>/\.(png|jpe?g|gif|webp|avif|svg|heic|heif|bmp)$/i.test(e),D=e=>{let t=(e.split(`.`).pop()||``).toLowerCase();return t&&t.length<=4&&t!==e.toLowerCase()?t:`file`};function ee({field:e,value:t,error:i,onChange:a}){let[s,c]=(0,u.useState)(0),[l,f]=(0,u.useState)(``),p=(0,u.useRef)(null),m=s>0,h=n.zn(t),g=async e=>{let t=Array.from(e||[]);p.current&&(p.current.value=``),t.length&&(f(``),c(e=>e+t.length),await Promise.all(t.map(async e=>{try{let t=await n.Gn(e,n.Oa.currentUser);a(e=>n.Hn([...n.zn(e),t]))}catch(e){f(e?.code===`storage/unauthorized`?`That kind of file is not accepted. Try a PDF, a document or a picture.`:n.Wn(e))}finally{c(e=>e-1)}})))},_=e=>{f(``),a(t=>n.Hn(n.zn(t).filter(t=>t!==e)))},{over:v,dropProps:y}=n.Fn({accept:e.accept,multiple:!0,disabled:m,onFiles:g,onReject:()=>f(`That kind of file is not accepted here.`)}),b=i||l,x=v?`Drop to attach`:h.length?`Add another file`:e.placeholder||`Drop a file or choose one`;return(0,d.jsxs)(`div`,{className:`flex flex-col w-full relative`,children:[(0,d.jsx)(`label`,{className:`text-[13px] font-medium text-foreground/70 select-none mb-2`,children:e.label}),h.length>0&&(0,d.jsx)(`ul`,{className:`flex flex-col gap-2 mb-2`,children:h.map(e=>{let t=n.Rn(e);return(0,d.jsxs)(`li`,{className:`flex items-center gap-3 w-full pl-2 pr-2 py-2 border border-[var(--panel-border)]`,style:T,children:[E(t)?(0,d.jsx)(n.Nn,{src:e,alt:t,fit:`cover`,className:`w-11 h-11 shrink-0 rounded-lg overflow-hidden`}):(0,d.jsx)(`span`,{"aria-hidden":`true`,className:`w-11 h-11 shrink-0 rounded-lg bg-foreground/[0.05] flex items-center justify-center text-[11px] font-semibold uppercase tracking-wide text-foreground/60`,children:D(t)}),(0,d.jsx)(`span`,{className:`flex-1 min-w-0 truncate text-[14px] text-foreground`,children:t}),(0,d.jsx)(`button`,{type:`button`,onClick:()=>_(e),"aria-label":`Remove ${t}`,title:`Remove`,className:`w-8 h-8 shrink-0 inline-flex items-center justify-center rounded-lg text-foreground/45 hover:text-foreground hover:bg-foreground/[0.06] active:scale-[0.97] transition-colors cursor-pointer`,children:(0,d.jsx)(r.o,{className:`w-4 h-4`})})]},e)})}),(0,d.jsxs)(`label`,{...y,className:`flex flex-col items-center justify-center gap-1 w-full px-5 text-center border border-dashed transition-[border-color,background-color] duration-200 cursor-pointer ${h.length?`py-4`:`py-7`} ${v?`border-accent bg-accent/[0.05]`:`border-foreground/15 bg-foreground/[0.015] hover:border-accent/50 hover:bg-foreground/[0.03]`} ${m?`pointer-events-none`:``}`,style:T,children:[m?(0,d.jsx)(o.t,{size:`sm`,label:s>1?`Uploading ${s} files...`:`Uploading...`}):(0,d.jsx)(`span`,{className:`text-[14px] font-medium ${v?`text-accent`:`text-foreground/70`}`,children:x}),(0,d.jsx)(`input`,{ref:p,type:`file`,multiple:!0,accept:e.accept,"aria-label":e.label,disabled:m,onChange:e=>g(e.target.files),className:`hidden`})]}),b&&(0,d.jsx)(`span`,{className:`text-[13px] text-red-500 font-medium mt-1.5`,children:b})]})}var O=`rounded-2xl flex items-center justify-center shrink-0 border border-[var(--panel-border)]/50 bg-accent/10 text-accent`;function te({slot:e,timeZone:t,who:i,onChange:a}){let o=n.xn(e,t),s=(i||``).trim();return(0,d.jsxs)(`div`,{className:`flex items-center gap-3 rounded-2xl border border-[var(--panel-border)]/60 bg-foreground/[0.015] px-3.5 py-3`,children:[(0,d.jsx)(`div`,{className:`w-10 h-10 ${O}`,children:(0,d.jsx)(r.pn,{className:`w-4 h-4`})}),(0,d.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1 gap-0.5`,children:[(0,d.jsx)(`span`,{className:`text-[14px] sm:text-[15px] font-bold text-foreground leading-tight truncate`,children:o.day}),(0,d.jsxs)(`span`,{className:`text-[12.5px] sm:text-[13px] font-semibold text-foreground/55 leading-tight tabular-nums truncate`,children:[o.time,s?` · with ${s}`:``]})]}),(0,d.jsxs)(`button`,{type:`button`,onClick:a,"aria-label":`Change the time`,className:`shrink-0 cursor-pointer flex items-center justify-center transition-all max-sm:w-9 max-sm:h-9 max-sm:rounded-xl max-sm:border max-sm:border-[var(--panel-border)] max-sm:text-foreground/50 max-sm:hover:text-accent max-sm:hover:border-accent/40 max-sm:active:scale-[0.98] sm:text-[12.5px] sm:font-bold sm:text-accent sm:hover:underline`,children:[(0,d.jsx)(r.X,{className:`w-3.5 h-3.5 sm:hidden`,"aria-hidden":!0}),(0,d.jsx)(`span`,{className:`max-sm:hidden`,children:`Change`})]})]})}var k=new Set([`uid`,`formId`,`submittedAt`,`submitterName`,`submitterEmail`,`submitterAvatar`]),ne=(e,t)=>{if(!e||typeof e!=`object`)return{};let n;try{n=JSON.parse(JSON.stringify(e))}catch{return{}}let r={};for(let[e,i]of Object.entries(n||{}))k.has(e)||e in t||(r[e]=i);return r},re=n.Da(()=>Promise.resolve().then(()=>require(`./PhoneInputField-BEwYZMB7.cjs`))),ie=n.Da(()=>Promise.resolve().then(()=>require(`./AddressField-B7wtV8yA.cjs`))),ae=/^[^\s@,;]+@[^\s@,;.]+(\.[^\s@,;.]+)*\.[a-z]{2,}$/i,A=`text-[13px] font-medium text-foreground/70 select-none mb-2`,j=`text-[13px] text-red-500 font-medium mt-1.5`,oe=`block h-12 w-full text-[15px] text-foreground py-2 transition-all duration-300 placeholder:text-foreground/40 focus:outline-none focus:border-accent glow-focus disabled:cursor-not-allowed disabled:opacity-50 glass-panel`,M={borderRadius:`var(--input-radius, 0.75rem)`},N=[.16,1,.3,1];function se({field:e,value:t,error:r,timeZone:i,onTimeZone:a,onChange:o}){let{schedules:l}=c.h(),f=n.wn(e),p=l.filter(e=>f.includes(e.id)&&n.ct(e)),m=new Set(p.map(e=>e.memberId)).size>1,h=n.Cn(e),g=h===`choose`&&m,[_,v]=(0,u.useState)(!1),y=m&&(h===`all`||g&&_),b=y?n.$t(p):[],[x]=(0,u.useState)(()=>new Date),S=c.x(p.map(e=>e.memberId),x),C=n.wt(t),w=e.look===`calendar`?s.n:s.c;return(0,d.jsxs)(`div`,{className:`flex flex-col w-full`,children:[(0,d.jsx)(`label`,{className:A,children:e.label}),g&&(0,d.jsx)(`div`,{className:`flex gap-1.5 mb-2.5 p-1 rounded-[var(--input-radius,0.75rem)] border border-[var(--panel-border)] bg-[var(--panel-bg)] w-fit`,children:[{on:!_,label:`One of them`,v:!1},{on:_,label:`All of them`,v:!0}].map(e=>(0,d.jsx)(`button`,{type:`button`,"aria-pressed":e.on,onClick:()=>{e.v!==_&&(v(e.v),o(``))},className:`px-3 h-8 rounded-[calc(var(--input-radius,0.75rem)-0.25rem)] text-[12.5px] font-semibold transition-all cursor-pointer ${e.on?`bg-accent text-[var(--button-fg,#fff)] shadow-sm`:`text-foreground/55 hover:text-foreground`}`,children:e.label},e.label))}),y&&(0,d.jsxs)(`p`,{className:`text-[12.5px] font-medium text-foreground/50 mb-2 ml-1`,children:[`Times `,n.Yt(b),` are all free.`]}),(0,d.jsx)(w,{members:p,value:C,onChange:e=>o(e?n.Ot(e,y):``),taken:S,timeZone:i,onTimeZone:a,together:y}),r&&(0,d.jsx)(`span`,{className:j,children:r})]})}var ce=(e,t)=>{let r=e.find(e=>e.type===`text`&&/name/i.test(String(e.name||``)))||e.find(e=>e.type===`text`);return String(r&&t[r.name]||n.Oa.currentUser?.displayName||``).trim()},le=(e,t)=>{let r=e.find(e=>e.type===`email`);return String(r&&t[r.name]||n.Oa.currentUser?.email||``).trim()},ue=(e,t)=>{let r=n.Cn(e);if(!(r===`all`||r===`choose`&&n.Tt(t)))return[];let i=n.wn(e),a=n.$t(n.Wt().filter(e=>i.includes(e.id)&&n.ct(e)));return a.length>1?a:[]};function de(e,t){if(!t||!e.some(e=>e?.type===`schedule`))return{};let n={},r=String(t.email||``).trim(),i=e.find(e=>e?.type===`email`&&e.name);i&&r&&(n[i.name]=r);let a=String(t.displayName||``).trim(),o=e.find(e=>e?.type===`text`&&e.name&&/name/i.test(`${e.name} ${e.label||``}`));return o&&a&&(n[o.name]=a),n}function fe(e,t){let n={};for(let[r,i]of Object.entries(t||{})){if(i===``||i==null||i===!1)continue;let t=(e||[]).find(e=>e?.name&&(r===e.name||e.type===`address`&&r.startsWith(e.name)));!t||t.type===`schedule`||(n[r]=i)}return n}var pe=(e,t)=>Object.fromEntries(e.filter(e=>e.type!==`schedule`&&e.name&&t[e.name]!==void 0&&t[e.name]!==``).map(e=>[e.name,String(t[e.name])])),me=(e,t)=>Object.fromEntries(Object.entries(ne(e,t)).filter(([,e])=>e!=null&&e!==``).map(([e,t])=>[e,typeof t==`object`?JSON.stringify(t):String(t)]));function P({onClose:e,formId:_,formConfig:v,isInline:y,bare:b,onSubmitted:x,extra:S}){let[C,T]=(0,u.useState)({}),[E,D]=(0,u.useState)(`idle`),[O,k]=(0,u.useState)(``),[j,P]=(0,u.useState)({}),[F,I]=(0,u.useState)(()=>n.Dt()),[he,ge]=(0,u.useState)(``),L=(0,u.useRef)(null),_e=(0,u.useContext)(n.ar),[R,z]=(0,u.useState)(v||null),[B,V]=(0,u.useState)(!v),ve=(0,p.useNavigate)(),ye=n.Na(),{user:H}=n.dr(),U=de(R?.fields||[],H),be=String(H?.displayName||``).trim(),xe=String(H?.email||``).trim(),W=e=>{let n=(typeof window<`u`?window.__FBOS_FORMS__:null)||{};return ye?.defaultConfigs?.[e]||ye?.defaultConfigs?.[`${e}Form`]||n[e]||(e===`contact`?t.a:e===`support`?t.r:null)};(0,u.useEffect)(()=>{if(v){z(v),V(!1);return}if(!_){z(W(`contact`)),V(!1);return}if(!localStorage.getItem(`fbos_custom_form_${_}`)){let e=W(_);if(e){z(e),V(!1);return}}try{let e=localStorage.getItem(`fbos_form_${_}`);e&&(z(JSON.parse(e)),V(!1))}catch{}(async()=>{try{let e=await(0,f.getDoc)((0,f.doc)(n.ka,`sys_forms`,_));if(e.exists()){let t={...e.data(),id:e.id};z(t),localStorage.setItem(`fbos_form_${_}`,JSON.stringify(t))}else{let e=W(_);e&&(z(e),localStorage.removeItem(`fbos_custom_form_${_}`))}}catch(e){console.error(`Failed to load form config:`,e);let t=W(_);t&&z(t)}finally{V(!1)}})()},[_,v]),(0,u.useEffect)(()=>{R&&R.fields&&T(e=>{let t={...e},r=!1;return R.fields.forEach(e=>{(e.name===`contactEmail`||e.type===`email`)&&!t[e.name]&&n.Oa.currentUser?.email&&(t[e.name]=n.Oa.currentUser.email,r=!0)}),r?t:e})},[R]);let G=w(`form.${_||``}`,{}),K=(0,u.useRef)(!1),Se=G.setValue;(0,u.useEffect)(()=>{!_||!K.current||E===`success`||Se(fe(R?.fields||[],C))},[_,C,R,E,Se]),(0,u.useEffect)(()=>{if(!_||K.current||!G.ready||!R?.fields)return;K.current=!0;let e=fe(R.fields,G.value);Object.keys(e).length&&T(t=>({...e,...t}))},[_,G.ready,G.value,R]),(0,u.useEffect)(()=>{function t(t){L.current&&!L.current.contains(t.target)&&e?.()}return document.addEventListener(`mousedown`,t),()=>document.removeEventListener(`mousedown`,t)},[e]),(0,u.useEffect)(()=>{if(y)return;let t=t=>{t.key===`Escape`&&!t.defaultPrevented&&(t.preventDefault(),e?.())};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,y]),(0,u.useEffect)(()=>{if(!y&&!_e){let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=i.n()>0?`hidden`:e}}},[y,_e]);let Ce=async r=>{r.preventDefault();let i=(R?.fields||[]).filter(e=>e.type===`email`),a={},o={};i.forEach(e=>{let t=String(C[e.name]??``).trim();t&&(o[e.name]=t,ae.test(t)||(a[e.name]=`That does not look like an email address — check for a typo, e.g. jane@example.com`))}),(R?.fields||[]).filter(e=>e.type===`address`).forEach(e=>{Object.assign(o,l.r(e.name,l.u(l.i(e.name,C))))}),(R?.fields||[]).filter(e=>e.type===`file`&&e.required&&!C[e.name]).forEach(e=>{a[e.name]=`Please attach a file before sending.`});let s=(R?.fields||[]).filter(e=>e.type===`schedule`);if(s.filter(e=>e.required&&!n.wt(C[e.name])).forEach(e=>{a[e.name]=`Pick a time before sending.`}),Object.keys(a).length>0){P(a);return}P({}),D(`loading`),k(``);try{let r=t.n(R),i=_||R?.systemName||R?.title||`unknown`,a=[],l=[],u=async()=>{for(let e of l)await c.s(e)};for(let e of s){let t=n.wt(C[e.name]);if(!t)continue;let r=ue(e,C[e.name]),i=r.length?n.nn(t,r):[t],o=[],s=null;for(let e of i){if(s=await c.i(e),s)break;l.push(e);let t=n.ln(e,n.Wt());o.push({slot:e,memberName:t?.memberName||``,scheduleId:t?.id||e.scheduleId,scheduleName:n.Jt(t,String(R?.title||``))})}if(s){await u(),P({[e.name]:s}),D(`idle`);return}a.push({field:e,slot:t,whoName:r.length?n.Yt(r):o[0]?.memberName||``,each:o})}let d={...C,...o,...U};for(let e of a)delete d[e.field.name],Object.assign(d,n.pt(e.field.name,e.slot,e.whoName,F));let p=n.Oa.currentUser?{uid:n.Oa.currentUser.uid,submitterName:n.Oa.currentUser.displayName||``,submitterEmail:n.Oa.currentUser.email||``,submitterAvatar:n.Oa.currentUser.photoURL||``}:{uid:`guest`},m=a.length>0,h;if(m)h=(0,f.doc)((0,f.collection)(n.ka,r));else try{h=await(0,f.addDoc)((0,f.collection)(n.ka,r),{...ne(S,d),...d,...p,formId:i,submittedAt:(0,f.serverTimestamp)(),...R?.transaction===!0?{transaction:!0}:{}})}catch(e){throw await u(),e}let g=R?.fields||[],y=``;for(let e of a)for(let t of e.each){let e=await c.O(t.slot,{memberName:t.memberName,scheduleId:t.scheduleId,scheduleName:t.scheduleName,timeZone:F,name:ce(g,d),email:le(g,d),answers:{...me(S,d),...pe(g,d)},formId:i,entryId:h.id});if(e){await u(),D(`error`),k(e);return}y||=n.vn(t.slot.memberId,t.slot.start)}a.length&&ge(a.map(e=>n.xt(e.slot,e.whoName,F)).join(`; `)),D(`success`),_&&G.clear();try{x?.(Object.fromEntries(Object.entries(d).map(([e,t])=>[e,String(t??``)])),m?{collection:n.k,id:y}:{collection:r,id:h.id})}catch{}setTimeout(()=>{R?.redirectTo&&!v&&(R.redirectTo.startsWith(`/`)?ve(R.redirectTo):window.location.href=R.redirectTo),e?.(),D(`idle`),T({}),ge(``)},3e3)}catch(e){console.error(`Submission error:`,e),D(`error`),k(`We could not send your message right now. Please try again.`)}},[we,Te]=(0,u.useState)(!1),q=n.or();if((0,u.useEffect)(()=>{let e;return B||!R&&!v?e=setTimeout(()=>Te(!0),150):Te(!1),()=>clearTimeout(e)},[B,R,v]),B||!R)return we?y?(0,d.jsx)(`div`,{className:`w-full flex items-center justify-center py-[10vh]`,children:(0,d.jsx)(o.t,{size:`sm`,label:`Loading the form`})}):(0,m.createPortal)((0,d.jsx)(`div`,{className:`fixed inset-0 z-[9995] flex items-center justify-center bg-background/10 backdrop-blur-sm`,children:(0,d.jsx)(`div`,{className:`px-5 py-4 glass-popover border border-[var(--panel-border)]`,style:{borderRadius:`var(--card-radius, 1.5rem)`},children:(0,d.jsx)(o.t,{size:`sm`,label:`Loading the form`})})}),document.body):null;let J=(R.fields||[]).find(e=>e.type===`schedule`&&e.look===`calendar`),Y=J?n.wt(C[J.name]):null,X=!!J&&!Y,Z=X?`max-w-[880px]`:`max-w-[500px]`,Ee=Y?ue(J,C[J.name]):[],De=Y?Ee.length?n.Yt(Ee):n.ln(Y,n.Wt())?.memberName||``:``,Q=e=>q?{initial:!1}:{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.35,ease:N,delay:Math.min(e,12)*.04}},Oe=!X&&Object.keys(U).length>0,ke=+!!J+ +!!Oe,$=E===`loading`,Ae=R.submitText||R.buttonName||`Submit`,je=(0,d.jsx)(`div`,{className:`relative z-10 w-full`,children:E===`success`?(0,d.jsxs)(n.sr.div,{role:`status`,"aria-live":`polite`,initial:q?!1:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.4,ease:N},className:`flex flex-col items-center text-center gap-2 py-2`,children:[(0,d.jsxs)(`div`,{className:`flex items-center justify-center gap-2.5`,children:[(0,d.jsx)(`svg`,{viewBox:`0 0 20 20`,className:`w-5 h-5 text-accent shrink-0`,fill:`none`,"aria-hidden":`true`,children:(0,d.jsx)(n.sr.path,{d:`M4 10.5l4 4 8-9`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,initial:q?!1:{pathLength:0,opacity:0},animate:{pathLength:1,opacity:1},transition:{duration:.45,ease:N,delay:.15}})}),(0,d.jsx)(`h4`,{className:`text-lg font-semibold text-foreground tracking-tight`,children:`Sent. Thank you.`})]}),he?(0,d.jsxs)(`p`,{className:`text-[14px] font-medium text-foreground leading-relaxed`,children:[`Booked: `,he]}):(0,d.jsx)(`p`,{className:`text-[14px] text-foreground/60 leading-relaxed`,children:`We'll be in touch soon.`})]},`sent`):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{className:y&&b?`sr-only`:`mb-7`,children:[(0,d.jsx)(`h3`,{className:`text-[22px] sm:text-2xl font-semibold text-foreground tracking-tight leading-snug break-words`,children:R.title}),R.description&&(0,d.jsx)(`p`,{className:`mt-1.5 text-[14px] text-foreground/60 leading-relaxed`,children:R.description})]}),(0,d.jsx)(n.cr,{initial:!1,children:E===`error`&&O&&(0,d.jsx)(n.sr.p,{role:`alert`,initial:{opacity:0,y:-4},animate:{opacity:1,y:0},exit:{opacity:0},transition:{duration:.2,ease:N},className:`mb-5 text-[13px] font-medium text-red-500 leading-relaxed`,children:O},`error`)}),(0,d.jsxs)(`form`,{onSubmit:Ce,"aria-busy":$||void 0,className:`flex flex-col gap-5 w-full`,children:[J&&(0,d.jsx)(n.sr.div,{...Q(0),className:`w-full`,children:Y?(0,d.jsx)(te,{slot:Y,timeZone:F,who:De,onChange:()=>T(e=>({...e,[J.name]:``}))}):(0,d.jsx)(se,{field:J,value:C[J.name]||``,error:j[J.name],timeZone:F,onTimeZone:I,onChange:e=>T(t=>({...t,[J.name]:e}))})},Y?`picked`:`calendar`),Oe&&(0,d.jsxs)(n.sr.div,{...Q(+!!J),className:`flex items-center gap-2 px-4 py-3 border border-[var(--panel-border)]`,style:M,children:[(0,d.jsx)(`span`,{className:`text-[13px] font-medium text-foreground/60 shrink-0`,children:`Booking as`}),(0,d.jsx)(`span`,{className:`text-[14px] font-medium text-foreground truncate`,children:[be,xe].filter(Boolean).join(` · `)})]}),!X&&[...R.fields||[]].filter(e=>e!==J&&!(e.name in U)).sort((e,t)=>{let n=e.type===`checkbox`,r=t.type===`checkbox`;return n&&!r?1:!n&&r?-1:0}).map((e,t)=>{let i=Q(ke+t),a=()=>{j[e.name]&&P(t=>{let n={...t};return delete n[e.name],n})};if(e.type===`schedule`)return(0,d.jsx)(n.sr.div,{...i,className:`w-full`,children:(0,d.jsx)(se,{field:e,value:C[e.name]||``,error:j[e.name],timeZone:F,onTimeZone:I,onChange:t=>{T(n=>({...n,[e.name]:t})),a()}})},t);if(e.type===`tel`)return(0,d.jsx)(n.sr.div,{...i,className:`w-full`,children:(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(`div`,{className:`h-12 w-full glass-panel animate-pulse`,style:M}),children:(0,d.jsx)(re,{field:e,value:C[e.name]||``,onChange:t=>T(n=>({...n,[e.name]:t}))})})},t);if(e.type===`address`)return(0,d.jsx)(n.sr.div,{...i,className:`w-full`,children:(0,d.jsx)(u.Suspense,{fallback:(0,d.jsx)(`div`,{className:`h-12 w-full glass-panel animate-pulse`,style:M}),children:(0,d.jsx)(ie,{id:`form-${e.name}`,label:e.label,required:e.required,placeholder:e.placeholder,error:j[e.name],value:l.i(e.name,C),onChange:t=>{T(n=>({...n,...l.r(e.name,t)})),a()}})})},t);if(e.type===`file`)return(0,d.jsx)(n.sr.div,{...i,className:`w-full`,children:(0,d.jsx)(ee,{field:e,value:C[e.name]||``,error:j[e.name],onChange:t=>{T(n=>({...n,[e.name]:t(n[e.name]||``)})),a()}})},t);if(e.type===`textarea`)return(0,d.jsx)(n.sr.div,{...i,className:`w-full`,children:(0,d.jsx)(g,{label:e.label,required:e.required,placeholder:e.placeholder,value:C[e.name]||``,onChange:t=>T(n=>({...n,[e.name]:t.target.value}))})},t);if(e.type===`select`)return(0,d.jsx)(n.sr.div,{...i,className:`w-full`,children:(0,d.jsx)(n.nr,{label:e.label,direction:`auto`,value:C[e.name]||``,options:[{value:``,label:(0,d.jsx)(`span`,{className:`text-foreground/40`,children:`Select an option...`})},...(e.options||[]).map(e=>({value:e,label:e}))],onChange:t=>T(n=>({...n,[e.name]:t}))})},t);if(e.type===`checkbox`){let r=!!C[e.name];return(0,d.jsxs)(n.sr.label,{...i,className:`flex items-start gap-3 w-full cursor-pointer group py-1`,children:[(0,d.jsxs)(`span`,{className:`relative mt-0.5 flex items-center justify-center w-5 h-5 shrink-0 rounded-md border border-foreground/25 group-hover:border-accent/60 group-focus-within:border-accent group-focus-within:ring-[3px] group-focus-within:ring-accent/20 transition-colors`,children:[(0,d.jsx)(`input`,{type:`checkbox`,required:e.required,checked:r,onChange:t=>T(n=>({...n,[e.name]:t.target.checked})),className:`absolute inset-0 opacity-0 w-full h-full cursor-pointer`}),r&&(0,d.jsx)(`span`,{className:`w-2.5 h-2.5 bg-accent rounded-[3px] shrink-0`})]}),(0,d.jsx)(`span`,{className:`text-[14px] text-foreground/80 leading-snug group-hover:text-foreground transition-colors`,children:e.label})]},t)}if(e.type===`date`){let a=C[e.name]||``;return(0,d.jsxs)(n.sr.div,{...i,className:`flex flex-col w-full relative`,children:[(0,d.jsx)(`label`,{className:A,children:e.label}),(0,d.jsxs)(`div`,{className:`relative flex items-center`,children:[(0,d.jsx)(`input`,{type:`date`,required:e.required,value:a,onChange:t=>T(n=>({...n,[e.name]:t.target.value})),className:`date-field ${oe} pl-4 pr-11 ${a?`text-foreground`:`text-foreground/40`}`,style:M}),(0,d.jsx)(r.ln,{className:`w-4 h-4 text-foreground/40 absolute right-4 pointer-events-none`})]})]},t)}return e.type===`age`?(0,d.jsx)(n.sr.div,{...i,className:`w-full`,children:(0,d.jsx)(h,{label:e.label,required:e.required,type:`number`,min:0,max:120,placeholder:e.placeholder||`Age (Max 120)`,value:C[e.name]||``,onChange:t=>{let n=t.target.value;if(n===``)T(t=>({...t,[e.name]:``}));else{let t=Math.max(0,Math.min(120,parseInt(n,10)));T(n=>({...n,[e.name]:isNaN(t)?``:String(t)}))}}})},t):e.type===`currency`||e.type===`number`&&e.name===`budget`?(0,d.jsxs)(n.sr.div,{...i,className:`flex flex-col w-full relative`,children:[(0,d.jsx)(`label`,{className:A,children:e.label}),(0,d.jsxs)(`div`,{className:`relative flex items-center`,children:[(0,d.jsx)(`span`,{className:`absolute left-4 text-foreground/60 font-medium flex items-center h-full z-10 pointer-events-none text-[15px]`,children:e.currencySymbol||`$`}),(0,d.jsx)(`input`,{required:e.required,type:`number`,placeholder:e.placeholder,value:C[e.name]||``,onChange:t=>T(n=>({...n,[e.name]:t.target.value})),className:`${oe} pl-8 pr-4`,style:M})]})]},t):(0,d.jsx)(n.sr.div,{...i,className:`w-full`,children:(0,d.jsx)(h,{label:e.label,required:e.required,type:e.type,placeholder:e.placeholder,currencySymbol:e.currencySymbol,error:j[e.name],value:C[e.name]||``,onChange:t=>{T(n=>({...n,[e.name]:t.target.value})),a()}})},t)}),Y?(0,d.jsxs)(`div`,{className:`flex flex-col gap-4 pt-1`,children:[(0,d.jsx)(`div`,{className:`h-px bg-[var(--panel-border)]/60`}),(0,d.jsx)(s.u,{timeZone:F,onTimeZone:I,action:(0,d.jsx)(a.t,{type:`submit`,className:`max-sm:w-full h-11 px-6 text-[13.5px] font-semibold shrink-0`,isLoading:$,children:Ae})})]}):!X&&(0,d.jsx)(n.sr.div,{...Q(ke+(R.fields||[]).length),className:`pt-2`,children:(0,d.jsx)(a.t,{type:`submit`,className:`w-full h-12 text-[15px] font-semibold`,isLoading:$,children:Ae})})]})]})});return y&&b?(0,d.jsx)(`div`,{className:`form-calm w-full ${Z} mx-auto relative transition-[max-width] duration-500 ease-out`,children:je}):y?(0,d.jsx)(`div`,{className:`form-calm w-full flex justify-center flex-col items-center`,children:(0,d.jsx)(n.sr.div,{initial:q?!1:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.4,ease:N},className:`w-full ${Z} p-6 sm:p-8 glass-form relative shadow-[0_8px_32px_rgba(0,0,0,0.06)] z-10 mx-auto transition-[max-width] duration-500 ease-out`,style:{borderRadius:`var(--card-radius, 1.5rem)`},children:je})}):(0,m.createPortal)((0,d.jsxs)(`div`,{className:`form-calm fixed inset-0 z-[9995] flex items-start justify-center p-4 py-20 md:py-10 h-[-webkit-fill-available] md:h-screen w-screen overflow-y-auto no-scrollbar`,children:[(0,d.jsx)(n.sr.div,{onClick:e,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.25},className:`fixed inset-0 bg-background/60 backdrop-blur-xl cursor-pointer`}),(0,d.jsx)(n.sr.div,{initial:q?!1:{opacity:0,scale:.98,y:10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.98,y:10},transition:{duration:.35,ease:N},ref:L,className:`w-full ${Z} p-6 sm:p-8 glass-popover relative z-10 mx-auto my-auto border border-[var(--panel-border)] shrink-0 transition-[max-width] duration-500 ease-out`,style:{borderRadius:`var(--card-radius, 1.5rem)`},children:je})]}),document.body)}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return g}});
@@ -0,0 +1 @@
1
+ require(`./chunk-CiTBaPhY.cjs`),require(`./PageTitle-CZhgmmDT.cjs`);const e=require(`./TimeZoneField-qs7NPR30.cjs`),t=require(`./lucide-react-BwV6L6Is.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);function i({title:i,path:a,hint:o}){let[s,c]=(0,n.useState)(!1),l=e.Z(a);return(0,r.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-2.5 rounded-2xl border border-[var(--panel-border)] bg-[var(--panel-bg)]`,children:[(0,r.jsxs)(`div`,{className:`flex-1 min-w-0 flex flex-col`,children:[(0,r.jsx)(`span`,{className:`text-[13px] font-semibold text-foreground/80 truncate`,children:i}),(0,r.jsx)(`span`,{className:`text-[12px] font-medium text-foreground/45 truncate`,children:o||l})]}),(0,r.jsx)(e.w,{to:a,title:`View ${i}`,children:`View page`}),(0,r.jsx)(e.o,{icon:s?t.sn:t.Jt,compact:!0,title:`Copy the link to ${i}`,onClick:()=>{try{navigator.clipboard?.writeText(l)?.catch(()=>{})}catch{}c(!0),setTimeout(()=>c(!1),1500)},children:s?`Copied`:`Copy link`})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
@@ -0,0 +1,43 @@
1
+ import "./PageTitle-D93YCiN8.js";
2
+ import { Z as e, o as t, w as n } from "./TimeZoneField-DkI1Bkcz.js";
3
+ import { Jt as r, sn as i } from "./lucide-react-CA7GD7Nv.js";
4
+ import { useState as a } from "react";
5
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ //#region src/components/schedule/CopyLink.tsx
7
+ function c({ title: c, path: l, hint: u }) {
8
+ let [d, f] = a(!1), p = e(l);
9
+ return /* @__PURE__ */ s("div", {
10
+ className: "flex items-center gap-3 px-4 py-2.5 rounded-2xl border border-[var(--panel-border)] bg-[var(--panel-bg)]",
11
+ children: [
12
+ /* @__PURE__ */ s("div", {
13
+ className: "flex-1 min-w-0 flex flex-col",
14
+ children: [/* @__PURE__ */ o("span", {
15
+ className: "text-[13px] font-semibold text-foreground/80 truncate",
16
+ children: c
17
+ }), /* @__PURE__ */ o("span", {
18
+ className: "text-[12px] font-medium text-foreground/45 truncate",
19
+ children: u || p
20
+ })]
21
+ }),
22
+ /* @__PURE__ */ o(n, {
23
+ to: l,
24
+ title: `View ${c}`,
25
+ children: "View page"
26
+ }),
27
+ /* @__PURE__ */ o(t, {
28
+ icon: d ? i : r,
29
+ compact: !0,
30
+ title: `Copy the link to ${c}`,
31
+ onClick: () => {
32
+ try {
33
+ navigator.clipboard?.writeText(p)?.catch(() => {});
34
+ } catch {}
35
+ f(!0), setTimeout(() => f(!1), 1500);
36
+ },
37
+ children: d ? "Copied" : "Copy link"
38
+ })
39
+ ]
40
+ });
41
+ }
42
+ //#endregion
43
+ export { c as t };
@@ -0,0 +1 @@
1
+ const e=require(`./chunk-CiTBaPhY.cjs`),t=require(`./PageTitle-CZhgmmDT.cjs`),n=require(`./TimeZoneField-qs7NPR30.cjs`),r=require(`./verifiedAccount-DScyKk96.cjs`),i=require(`./lucide-react-BwV6L6Is.cjs`),a=require(`./scheduleData-Cltj0ABZ.cjs`),o=require(`./tabAudience-BqpN6dsR.cjs`);let s=require(`react`);s=e.a(s,1);let c=require(`react/jsx-runtime`),l=require(`firebase/firestore`),u=require(`react-router-dom`);var d=typeof window<`u`?s.useLayoutEffect:s.useEffect,f=(0,s.createContext)(void 0),p=`'Inter', system-ui, sans-serif`,m=e=>e.trim().replace(/\s+/g,`+`);function h(e,t){let n=[[`--display-family`,String(t?.display||``).trim()],[`--body-family`,String(t?.body||``).trim()]];for(let[t,r]of n){if(!r){e.style.removeProperty(t);continue}let n=`theme-font-${m(r).toLowerCase().replace(/[^a-z0-9+]/g,``)}`;if(typeof document<`u`&&!document.getElementById(n)){let e=document.createElement(`link`);e.id=n,e.rel=`stylesheet`,e.href=`https://fonts.googleapis.com/css2?family=${m(r)}:wght@300;400;500;600;700;800&display=swap`,document.head.appendChild(e)}e.style.setProperty(t,`'${r.replace(/'/g,``)}', ${p}`)}}var g=e=>{let t=e?.defaultTheme;return t!==`light`&&t!==`dark`||e?.showThemeToggle?null:t},_={get(e){try{return localStorage.getItem(e)}catch{return null}},set(e,t){try{localStorage.setItem(e,t)}catch{}},drop(e){try{localStorage.removeItem(e)}catch{}}};function v({children:e,scopeSelector:r}){let i=n.Na(),a=(0,s.useMemo)(()=>i?.themeConfig||t.f,[i?.themeConfig]),o=g(a),l=!!a.showThemeToggle;(0,s.useEffect)(()=>{try{localStorage.removeItem(`theme_config_cache`),localStorage.removeItem(`theme_saved_cache`)}catch{}console.info(`Your AI Firebase ${t.d} · colours from theme.config.ts`)},[]);let[u,p]=(0,s.useState)(()=>{if(o)return o;if(typeof window>`u`)return a.defaultTheme||`system`;let e=_.get(`theme-mode`),t=_.get(`last-seen-default-theme`);return a.defaultTheme&&a.defaultTheme!==t?(_.set(`last-seen-default-theme`,a.defaultTheme),_.drop(`theme-mode`),a.defaultTheme):e||a.defaultTheme||`system`}),[m,v]=(0,s.useState)(()=>{if(o)return o;if(typeof window>`u`)return a.defaultTheme===`light`?`light`:`dark`;let e=_.get(`theme-mode`),t=_.get(`last-seen-default-theme`),n=e||a.defaultTheme||`system`;return a.defaultTheme&&a.defaultTheme!==t&&(n=a.defaultTheme),n===`system`?window.matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`:n});return(0,s.useEffect)(()=>{let e=a.defaultTheme;e&&(o&&p(o),e!==_.get(`last-seen-default-theme`)&&(_.set(`last-seen-default-theme`,e),_.drop(`theme-mode`),p(e)))},[a.defaultTheme,o]),(0,s.useEffect)(()=>{let e=e=>{u===`system`&&v(e.matches?`light`:`dark`)},t=window.matchMedia(`(prefers-color-scheme: light)`);return u===`system`?(v(t.matches?`light`:`dark`),t.addEventListener(`change`,e)):v(u),()=>t.removeEventListener(`change`,e)},[u]),d(()=>{let e=(r?document.querySelector(r):document.documentElement)||document.documentElement,t=m===`dark`?a.colors.dark:a.colors.light;e.style.setProperty(`--bg-color`,t.background),e.style.setProperty(`--bg-secondary-color`,t.backgroundSecondary||t.background),e.style.setProperty(`--fg-color`,t.foreground),e.style.setProperty(`--accent-color`,t.accent);let n=m===`dark`;e.style.setProperty(`--panel-bg`,t.panelBg||`color-mix(in srgb, ${t.accent} ${n?`5%`:`4%`}, transparent)`),e.style.setProperty(`--panel-border`,t.panelBorder||`color-mix(in srgb, ${t.accent} 15%, transparent)`);let i=(e,t,n)=>{if(!e||e.length===0)return t||`transparent`;if(e.length===1)return e[0];let r=e.map((t,n)=>`${t} ${Math.round(n/(e.length-1)*100)}%`).join(`, `);return n===`conic`?`conic-gradient(from 180deg at 50% 100%, ${r})`:`linear-gradient(135deg, ${r})`},o=`linear-gradient(135deg, color-mix(in oklab, ${t.accent} ${n?`70%`:`78%`}, black) 0%, ${t.accent} 100%)`,s=`linear-gradient(135deg, color-mix(in oklab, ${t.accent} ${n?`80%`:`85%`}, black) 0%, color-mix(in oklab, ${t.accent} 72%, white) 100%)`;e.style.setProperty(`--button-bg`,i(t.buttonGradient,o,t.buttonGradientShape)),e.style.setProperty(`--button-fg`,t.buttonText||`#ffffff`),e.style.setProperty(`--button-hover-bg`,i(t.buttonHoverGradient||t.buttonGradient,s,t.buttonGradientShape)),e.style.setProperty(`--text-gradient`,i(t.textGradient,`linear-gradient(135deg, ${t.foreground} 0%, ${t.accent} 100%)`)),e.style.setProperty(`--glow-color`,t.glowColor||`color-mix(in srgb, ${t.accent} ${n?`40%`:`30%`}, transparent)`),e.style.setProperty(`--notification-icon-color`,t.notificationIconColor||t.accent);let c=t.secondaryButton?.bg||(m===`dark`?`rgba(255, 255, 255, 0.05)`:`rgba(0, 0, 0, 0.03)`),l=t.secondaryButton?.border||(m===`dark`?`rgba(255, 255, 255, 0.1)`:`rgba(0, 0, 0, 0.06)`),d=t.secondaryButton?.text||t.foreground;if(e.style.setProperty(`--btn-sec-bg`,c),e.style.setProperty(`--btn-sec-border`,l),e.style.setProperty(`--btn-sec-text`,d),e.style.setProperty(`--selection-bg`,t.selectionBg||`color-mix(in srgb, var(--accent-color) 40%, transparent)`),e.style.setProperty(`--selection-text`,t.selectionText||`#ffffff`),e.setAttribute(`data-theme`,m),_.set(`theme-mode`,u),a.cornerRounding===`custom`&&a.cornerRadii?(e.style.setProperty(`--btn-radius`,`${parseFloat(String(a.cornerRadii.buttonRadius))||0}rem`),e.style.setProperty(`--card-radius`,`${parseFloat(String(a.cornerRadii.cardRadius))||0}rem`),e.style.setProperty(`--input-radius`,`${parseFloat(String(a.cornerRadii.inputRadius))||0}rem`),e.style.setProperty(`--modal-radius`,`${parseFloat(String(a.cornerRadii.modalRadius))||0}rem`)):(e.style.setProperty(`--btn-radius`,`0.75rem`),e.style.setProperty(`--card-radius`,`1.5rem`),e.style.setProperty(`--input-radius`,`0.75rem`),e.style.setProperty(`--modal-radius`,`1.5rem`)),!document.getElementById(`inter-font`)){let e=document.createElement(`link`);e.id=`inter-font`,e.rel=`stylesheet`,e.href=`https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap`,document.head.appendChild(e)}h(e,a.fonts),e.style.fontSize=`16px`,e.style.setProperty(`--weight-h1`,`800`),e.style.setProperty(`--weight-h2`,`700`),e.style.setProperty(`--weight-h3`,`700`),e.style.setProperty(`--leading-normal`,`1.5`);let f=document.querySelector(`link[rel*='icon']`);f||(f=document.createElement(`link`),f.rel=`icon`,document.head.appendChild(f)),a.faviconUrl&&(f.href=a.faviconUrl),a.appName&&(document.title=a.appName)},[m,u,a]),(0,c.jsx)(f.Provider,{value:{theme:m,setTheme:e=>{o||p(e)},toggleTheme:()=>{o||p(m===`light`?`dark`:`light`)},isSystem:u===`system`,setIsSystem:e=>{o||p(e?`system`:m)},config:a,activeConfig:a,canSwitchTheme:l},children:e})}var y=()=>{let e=(0,s.useContext)(f);if(!e)throw Error(`useTheme must be used within ThemeProvider`);return e};function ee(){return(typeof window<`u`?window.__FBOS_PAGES__:null)||{}}function b(e=ee()){let t=new Set,n=[];for(let[r,i]of Object.entries(e))!i||t.has(i)||(t.add(i),n.push([r,i]));return n}var x=e=>e?.inMenu===!1,S=(e,t,n)=>{let r=e.find(e=>e.id===t);return r?r.hidden===!0:x(n)},C=e=>e.split(`-`).map(e=>e?e.charAt(0).toUpperCase()+e.slice(1):``).join(``),w=e=>{let t=String(e??``).trim();if(!t)return null;let n=i.t;return n[C(t)]||n[t]||null},T=`sys_groups`,E=`fbos_groups`,D=(e,t)=>({id:e,name:String(t?.name||e),roles:r.c(t?.roles),...typeof t?.createdAt==`number`?{createdAt:t.createdAt}:{}}),O=(e,t)=>e.name.localeCompare(t.name),k=()=>{try{let e=localStorage.getItem(E),t=e?JSON.parse(e):null;return Array.isArray(t)?t.filter(e=>r.y(e?.id)).map(e=>D(e.id,e)):null}catch{return null}},A=null,j=null,M=null,N=e=>{A=e,j?.forEach(t=>t(e))};function te(e){let t=!j;return j||=new Set,j.add(e),t?M=(0,l.onSnapshot)((0,l.collection)(n.ka,T),e=>{let t=[];e.forEach(e=>{r.y(e.id)&&t.push(D(e.id,e.data()))}),t.sort(O);try{localStorage.setItem(E,JSON.stringify(t))}catch{}N({groups:t,live:!0})},()=>N({groups:A?.groups??k()??[],live:!0})):A?.live&&e(A),()=>{j?.delete(e),!j?.size&&(M?.(),M=null,j=null)}}function P(){let[e,t]=(0,s.useState)(()=>{if(A)return A;let e=k();return e?{groups:e,live:!1}:null});return(0,s.useEffect)(()=>te(t),[]),{groups:e?.groups??[],loaded:!!e,live:!!e?.live}}function F(e,t,n=``){let i=String(e||``).trim();if(!i)return`Type a name for the group first — Sales, say, or North branch.`;if(!r.y(r.O(i)))return`Use a name with at least two letters in it.`;let a=t.find(e=>e.id!==n&&(e.name.trim().toLowerCase()===i.toLowerCase()||!n&&e.id===r.O(i)));return a?`You already have a group called ${a.name}.`:``}async function ne(e){let t=String(e||``).trim().slice(0,48),i={id:r.O(t),name:t,roles:[],createdAt:Date.now()};return await(0,l.setDoc)((0,l.doc)(n.ka,T,i.id),{name:i.name,roles:[],createdAt:i.createdAt}),i}async function re(e,t){let i=String(t||``).trim().slice(0,48);!i||!r.y(e)||await(0,l.setDoc)((0,l.doc)(n.ka,T,e),{name:i},{merge:!0})}async function ie(e,t){if(!r.y(e))return;let i=r.c(t),a=A;A&&N({...A,groups:A.groups.map(t=>t.id===e?{...t,roles:i}:t)});try{await(0,l.setDoc)((0,l.doc)(n.ka,T,e),{roles:i},{merge:!0})}catch(e){throw a&&N(a),e}}async function ae(e){let t=[];return r.y(e)&&(await(0,l.getDocs)((0,l.collection)(n.ka,`sys_tabs`))).forEach(n=>{r.w(n.data())===e&&t.push(n.id)}),t}async function oe(e){if(r.y(e)){for(let t of await ae(e))await(0,l.setDoc)((0,l.doc)(n.ka,`sys_tabs`,t),{group:``},{merge:!0});await(0,l.deleteDoc)((0,l.doc)(n.ka,T,e))}}async function se(e){let t=await(0,l.getDocs)((0,l.collection)(n.ka,T));for(let i of t.docs){let t=r.c(i.data()?.roles);t.includes(e)&&await(0,l.setDoc)((0,l.doc)(n.ka,T,i.id),{roles:t.filter(t=>t!==e)},{merge:!0})}}var I={collection:`sys_configs`,doc:`tab_icons`},L=`fbos_tab_icons`,ce=e=>{let t={};if(e&&typeof e==`object`)for(let[n,r]of Object.entries(e)){let e=typeof r==`string`?r.trim():``;e&&(t[n]=e)}return t},R=()=>{try{let e=localStorage.getItem(L);return e?ce(JSON.parse(e)):null}catch{return null}},z=null,B=null,V=null,H=e=>{z=e,B?.forEach(t=>t(e))};function le(e){let t=!B;return B||=new Set,B.add(e),t?V=(0,l.onSnapshot)((0,l.doc)(n.ka,I.collection,I.doc),e=>{let t=ce(e.exists()?e.data():{});try{localStorage.setItem(L,JSON.stringify(t))}catch{}H(t)},()=>H(z??R()??{})):z&&e(z),()=>{B?.delete(e),!B?.size&&(V?.(),V=null,B=null)}}function ue(){let[e,t]=(0,s.useState)(()=>z??R()??{});return(0,s.useEffect)(()=>le(t),[]),e}async function de(e,t){let r=String(t||``).trim(),i=z,a={...z??R()??{}};r?a[e]=r:delete a[e],H(a);try{await(0,l.setDoc)((0,l.doc)(n.ka,I.collection,I.doc),{[e]:r},{merge:!0})}catch(e){throw i&&H(i),e}}var fe={drive:`assets`,submissions:`inbox`,requests:`inbox`},pe=new Set([`setup`]),U=e=>{let t=(e||[]).map(e=>typeof e==`string`?{id:e,hidden:!1}:{id:String(e.id),hidden:!!e.hidden}).map(e=>({...e,id:fe[e.id]||e.id})).filter(e=>!pe.has(e.id));return t.filter((e,n)=>t.findIndex(t=>t.id===e.id)===n)},me=[{id:`inbox`,hidden:!1},{id:`users`,hidden:!1},{id:`signin`,hidden:!1},{id:`pages`,hidden:!1},{id:`mybookings`,hidden:!1},{id:`billing`,hidden:!1},{id:`payments`,hidden:!1},{id:`transactions`,hidden:!1},{id:`email`,hidden:!1},{id:`schedule`,hidden:!1},{id:`forms`,hidden:!1},{id:`theme`,hidden:!1},{id:`assets`,hidden:!1},{id:`publish`,hidden:!1}],he=/^#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i,W=e=>{let t=String(e??``).trim();return he.test(t)?t:``};function ge(e,t){let n=String(e??``).trim();if(!n||/^data:/i.test(n))return``;try{let e=new URL(n,t||void 0);return/^https?:$/.test(e.protocol)?e.href:``}catch{return``}}function _e(e,t){let n=e?.colors?.light||{},r=Array.isArray(n.buttonGradient)?n.buttonGradient.map(W).filter(Boolean).slice(0,2):[];return{appName:String(e?.appName||``).replace(/\s+/g,` `).trim().slice(0,60),logoUrl:ge(e?.logoUrl,t),appUrl:ge(t,``),accent:W(n.accent),foreground:W(n.foreground),buttonText:W(n.buttonText),buttonGradient:r,panelBg:W(n.panelBg),panelBorder:W(n.panelBorder)}}function ve(e){return{appName:String(e?.appName||``),logoUrl:String(e?.logoUrl||``),appUrl:String(e?.appUrl||``),accent:String(e?.accent||``),foreground:String(e?.foreground||``),buttonText:String(e?.buttonText||``),buttonGradient:Array.isArray(e?.buttonGradient)?e.buttonGradient.map(String):[],panelBg:String(e?.panelBg||``),panelBorder:String(e?.panelBorder||``)}}var ye=``,be=e=>/^https?:\/\/(localhost|127\.0\.0\.1)(:\d+)?$/i.test(e);function xe(){let e=null;try{e=y().activeConfig}catch{e=null}let t=!!n.dr()?.isAdmin,r=typeof window<`u`?window.location.origin:``,i=e&&t?JSON.stringify(_e(e,r)):``;(0,s.useEffect)(()=>{if(!i||!n.ka||i===ye)return;let e=!1;return(async()=>{try{let t=(0,l.doc)(n.ka,`sys_configs`,`emailBrand`),a=await(0,l.getDoc)(t);if(e)return;let o=a.exists()?ve(a.data()):null,s=JSON.parse(i);be(r)&&o?.appUrl&&(s.appUrl=o.appUrl),(!o||JSON.stringify(o)!==JSON.stringify(s))&&await(0,l.setDoc)(t,s),ye=i}catch{}})(),()=>{e=!0}},[i])}function Se(e,t,n,r){let i=0,a=!0;for(let r=0;r<e.length;r++)if(i+=e[r]+(r>0?n:0),i>t){a=!1;break}if(a)return e.length;let o=0,s=0;for(let i=0;i<e.length;i++){let a=o+e[i]+(i>0?n:0);if(a+r>t)break;o=a,s++}return Math.max(s,1)}function Ce({count:e,listKey:t,shown:n,gap:r,moreButtonWidth:i}){let a=(0,s.useRef)(null),o=(0,s.useRef)(null),[c,l]=(0,s.useState)(null);return(0,s.useLayoutEffect)(()=>{if(!n)return;let s=!0,c=0,u=()=>{let n=a.current,c=o.current;if(!s||!n||!c)return;let u=window.getComputedStyle(n),d=n.clientWidth-(parseFloat(u.paddingLeft)||0)-(parseFloat(u.paddingRight)||0);if(d<=0)return;let f=c.querySelectorAll(`[data-measure]`);if(f.length!==e)return;let p=parseFloat(u.columnGap);l({listKey:t,count:Se(Array.from(f,e=>e.offsetWidth),d,Number.isFinite(p)?p:r,i)})},d=()=>{cancelAnimationFrame(c),c=requestAnimationFrame(u)};u(),document.fonts?.ready.then(d).catch(()=>{});let f=typeof ResizeObserver>`u`?null:new ResizeObserver(d);return f&&a.current&&f.observe(a.current),()=>{s=!1,cancelAnimationFrame(c),f?.disconnect()}},[e,t,n,r,i]),{rowRef:a,measureRef:o,visible:c&&c.listKey===t?Math.min(c.count,e):e}}var we=`fbos_tab_access`,G=()=>{try{let e=localStorage.getItem(we),t=e?JSON.parse(e):null;return t&&typeof t==`object`?t:null}catch{return null}},K=null,q=null,J=null,Y=e=>{K=e,q?.forEach(t=>t(e))};function Te(e){let t=!q;return q||=new Set,q.add(e),t?J=(0,l.onSnapshot)((0,l.doc)(n.ka,o.t.collection,o.t.doc),e=>{let t=e.exists()?e.data():{};try{localStorage.setItem(we,JSON.stringify(t))}catch{}Y({access:t,live:!0})},()=>Y({access:K?.access??G()??{},live:!0})):K?.live&&e(K),()=>{q?.delete(e),!q?.size&&(J?.(),J=null,q=null)}}function X(){let[e,t]=(0,s.useState)(()=>{if(K)return K;let e=G();return e?{access:e,live:!1}:null});return(0,s.useEffect)(()=>Te(t),[]),{access:e?.access??{},loaded:!!e,live:!!e?.live}}function Ee(e){let{access:t,loaded:n,live:r}=X();return{audience:o.o(t,e),loaded:n,live:r}}async function De(e,t){let r=K,i=o.n(t);Y({access:{...K?.access??G()??{},[e]:i},live:K?.live??!1});try{await(0,l.setDoc)((0,l.doc)(n.ka,o.t.collection,o.t.doc),{[e]:i},{merge:!0})}catch(e){throw r&&Y(r),e}}var Z=r.A(`admin`),Q={inbox:{path:`/inbox`,label:`Inbox`,icon:i.Tt,roles:Z},users:{path:`/users`,label:`Users`,icon:i.h,roles:Z},signin:{path:`/sign-in`,label:`Sign in`,icon:i.Nt,roles:Z},pages:{path:`/pages`,label:`Pages`,icon:i.Ct,roles:Z},mybookings:{path:`/my-bookings`,label:`My bookings`,icon:i.pn,roles:r.A(`user`)},billing:{path:`/billing`,label:`Billing`,icon:i.tt,roles:r.A(`user`)},payments:{path:`/payments`,label:`Payments`,icon:i.qt,roles:Z},transactions:{path:`/transactions`,label:`Transactions`,icon:i.tt,roles:Z},email:{path:`/email`,label:`Email`,icon:i.lt,roles:Z},schedule:{path:`/schedule`,label:`Schedule`,icon:i.I,roles:r.A(`internal`)},forms:{path:`/forms`,label:`Forms`,icon:i.V,roles:Z},theme:{path:`/theme`,label:`Theme`,icon:i.et,roles:Z},assets:{path:`/assets`,label:`Assets`,icon:i.kt,roles:Z},publish:{path:`/publish`,label:`Publish App`,icon:i.R,roles:Z}},Oe=e=>{let t=e=>e.id in Q;return[...e.filter(e=>!t(e)),...e.filter(t)]};function $(e){try{let t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}}function ke(){let[e,t]=(0,s.useState)(()=>$(`fbos_nav_tabs`)??{}),[r,i]=(0,s.useState)(()=>{let e=$(`fbos_nav_order`);return Array.isArray(e)?U(e):me}),[a,o]=(0,s.useState)(()=>$(`fbos_nav_tabs`)!==null),[c,u]=(0,s.useState)(()=>$(`fbos_nav_order`)!==null);return(0,s.useEffect)(()=>{let e=(0,l.onSnapshot)((0,l.collection)(n.ka,`sys_tabs`),e=>{let n={};e.forEach(e=>{n[e.id]=e.data()}),t(n),o(!0);try{localStorage.setItem(`fbos_nav_tabs`,JSON.stringify(n))}catch{}},()=>{o(!0)}),r=(0,l.onSnapshot)((0,l.doc)(n.ka,`sys_configs`,`tab_order`),e=>{let t=e.exists()&&Array.isArray(e.data().order)?U(e.data().order):me;i(t),u(!0);try{localStorage.setItem(`fbos_nav_order`,JSON.stringify(t))}catch{}},()=>{u(!0)}),a=setTimeout(()=>{o(!0),u(!0)},3e3);return()=>{e(),r(),clearTimeout(a)}},[]),{tabOverrides:e,tabOrder:r,loaded:a&&c}}function Ae({tabOverrides:e,tabOrder:t,hasBooking:n=!1,hasBought:a=!1,paymentsOn:s=!1,tabIcons:c={},tabAccess:l}){let u={};Object.entries(Q).forEach(([e,t])=>{e===`mybookings`&&!n||e===`billing`&&!a||e===`transactions`&&!s||(u[e]={id:e,...t,icon:w(c[e])??t.icon},o.r(e)&&(u[e].roles=o.c(o.o(l,e))))});let d={...e};for(let[t,n]of b())n.isPublic||(d[t]={...n.config,...e[t]});for(let[t,n]of Object.entries(e)){let r=String(n?.fileId||``);r&&r!==t&&!e[r]&&(x(d[r])&&d[t]?.inMenu===void 0&&(d[t]={...d[t],inMenu:!1}),delete d[r])}Object.entries(d).forEach(([e,t])=>{let n=u[e],a=w(t?.iconName)??n?.icon??i.Ct,o=n?.roles??Z;t?.pageType&&!Q[e]&&(o=r.F(t));let s=t?.route?t.route.startsWith(`/`)?t.route:`/`+t.route:n?.path??`/`+e,c=t?.tabName||t?.pageTitle||t?.pageName||n?.label||e,l=Q[e]?``:r.w(t);u[e]={id:e,path:s,label:c,icon:a,roles:o,group:l}});let f=[],p=new Set;t.forEach(e=>{e.hidden||p.has(e.id)||u[e.id]&&(f.push(u[e.id]),p.add(e.id))});let m=[],h=[];return Object.keys(u).forEach(e=>{if(p.has(e))return;let n=t.find(t=>t.id===e);n?.hidden||!n&&x(d[e])||(e in d&&!n?m.push(u[e]):h.push(u[e]))}),m.length>0&&f.unshift(...m),h.length>0&&f.push(...h),Oe(f)}function je(e,t,n,i){return r.N(e.roles,r.I(t,n))?e.group?!i.live&&!i.groups.some(t=>t.id===e.group)?!1:r.E(t,{group:e.group},i.groups):!0:!1}function Me(){let{user:e,userRole:t}=n.dr(),{tabOverrides:r,tabOrder:i,loaded:a}=ke(),o=P();return a?Ae({tabOverrides:r,tabOrder:i}).filter(e=>!(e.id in Q)).filter(n=>je(n,t,!!e,o)):[]}function Ne({customTabs:e=[]}){let{pathname:t}=(0,u.useLocation)(),{user:r,userRole:o,roleResolved:l}=n.dr();xe();let d=a.v(``,r?.email||``).bookings.length>0,f=n.pi(),[p]=(0,s.useState)(()=>$(`fbos_nav_payments`)===!0),m=f.loading?p:f.configured;(0,s.useEffect)(()=>{if(!f.loading)try{localStorage.setItem(`fbos_nav_payments`,JSON.stringify(f.configured))}catch{}},[f.loading,f.configured]);let h=r?.uid||``,g=n.di(h),[_]=(0,s.useState)(()=>{let e=$(`fbos_nav_billing`);return!!h&&e?.uid===h&&e?.bought===!0}),v=g.loading?_:g.bought;(0,s.useEffect)(()=>{if(!(g.loading||!h))try{localStorage.setItem(`fbos_nav_billing`,JSON.stringify({uid:h,bought:g.bought}))}catch{}},[g.loading,g.bought,h]);let y=X(),ee=ue(),b=P(),[x,S]=(0,s.useState)(!1),C=(0,s.useRef)(null),{tabOverrides:w,tabOrder:T,loaded:E}=ke(),D=l!==!1&&E;(0,s.useEffect)(()=>{function e(e){C.current&&!C.current.contains(e.target)&&S(!1)}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let O=[...Ae({tabOverrides:w,tabOrder:T,hasBooking:d,hasBought:v,paymentsOn:m,tabIcons:ee,tabAccess:y.access}),...e.map(e=>({...e,id:e.path}))].filter(e=>je(e,o,!!r,b)),{rowRef:k,measureRef:A,visible:j}=Ce({count:O.length,listKey:O.map(e=>e.id+e.label).join(`|`),shown:D&&O.length>0,gap:40,moreButtonWidth:52}),M=O.slice(0,j),N=O.slice(j),te=O.map(e=>e.path).filter(e=>{let n=e.replace(/\/+$/,``);return t===e||n!==``&&t.startsWith(n+`/`)}).sort((e,t)=>t.length-e.length)[0],F=e=>e.path===te,ne=N.some(e=>F(e));return D?O.length===0?null:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`div`,{ref:A,"aria-hidden":`true`,className:`flex items-center gap-5 md:gap-10 whitespace-nowrap px-1`,style:{position:`fixed`,top:-9999,left:0,visibility:`hidden`,pointerEvents:`none`},children:O.map((e,t)=>{let n=e.icon;return(0,c.jsxs)(`span`,{"data-measure":!0,className:`flex items-center gap-2 text-[13px] md:text-[14.5px] font-semibold shrink-0 pb-2.5 md:pb-3`,children:[(0,c.jsx)(n,{className:`w-4 h-4 md:w-[18px] md:h-[18px]`}),e.label]},t)})}),(0,c.jsxs)(`div`,{ref:k,className:`w-full flex items-center gap-5 md:gap-10 mb-5 border-b border-[var(--panel-border)] px-1 whitespace-nowrap relative`,children:[M.map(e=>{let t=F(e),n=e.icon;return(0,c.jsxs)(u.Link,{to:e.path||`/`,className:`flex items-center gap-2 text-[13px] md:text-[14.5px] font-semibold transition-all duration-300 pb-2.5 md:pb-3 -mb-[1px] border-b-2 shrink-0 ${t?`text-accent border-accent`:`text-foreground/50 hover:text-foreground/80 border-transparent`}`,children:[(0,c.jsx)(n,{className:`w-4 h-4 md:w-[18px] md:h-[18px]`}),e.label]},e.path||e.id)}),N.length>0&&(0,c.jsxs)(`div`,{className:`relative shrink-0 ml-auto`,ref:C,children:[(0,c.jsx)(`button`,{onClick:()=>S(!x),className:`flex items-center justify-center transition-all duration-300 pb-2.5 md:pb-3 -mb-[1px] border-b-2 cursor-pointer ${ne?`text-accent border-accent`:`text-foreground/50 hover:text-foreground/80 border-transparent`}`,title:`More items`,children:(0,c.jsx)(i.Wt,{className:`w-[18px] h-[18px] md:w-5 md:h-5`})}),(0,c.jsx)(n.cr,{children:x&&(0,c.jsx)(n.sr.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:10},className:`absolute top-[100%] right-0 mt-2 min-w-[200px] glass-popover border border-[var(--panel-border)] rounded-2xl z-50 flex flex-col py-2 overflow-hidden`,children:N.map(e=>{let t=F(e),n=e.icon;return(0,c.jsxs)(u.Link,{to:e.path||`/`,onClick:()=>S(!1),className:`flex items-center gap-3 px-5 py-3 text-[14px] font-medium transition-colors ${t?`text-accent bg-accent/5`:`text-foreground/70 hover:text-foreground hover:bg-foreground/5`}`,children:[(0,c.jsx)(n,{className:`w-4 h-4`}),e.label]},e.path||e.id)})})})]})]})]}):(0,c.jsx)(`div`,{className:`w-full flex items-center gap-5 md:gap-10 mb-5 border-b border-[var(--panel-border)] px-1 whitespace-nowrap relative`,children:[56,72,64].map((e,t)=>(0,c.jsxs)(`span`,{className:`flex items-center gap-2 pb-2.5 md:pb-3 h-[30px] md:h-[33px] shrink-0`,"aria-hidden":`true`,children:[(0,c.jsx)(`span`,{className:`w-4 h-4 md:w-[18px] md:h-[18px] rounded-md bg-foreground/5 animate-pulse`}),(0,c.jsx)(`span`,{className:`h-3.5 rounded bg-foreground/5 animate-pulse`,style:{width:e}})]},t))})}Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return w}});