@epic-web/workshop-app 6.4.0 → 6.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/assets/{_-DbsI2yZ3.js → _-DOI2gHX3.js} +2 -2
- package/build/client/assets/{_-DbsI2yZ3.js.map → _-DOI2gHX3.js.map} +1 -1
- package/build/client/assets/{_-C9pypk8E.js → _-v6PvHZ90.js} +2 -2
- package/build/client/assets/_-v6PvHZ90.js.map +1 -0
- package/build/client/assets/{_basePickBy-BaGiSohD.js → _basePickBy-DK6It6WA.js} +2 -2
- package/build/client/assets/{_basePickBy-BaGiSohD.js.map → _basePickBy-DK6It6WA.js.map} +1 -1
- package/build/client/assets/{_baseUniq-BxpIs2Oy.js → _baseUniq-B14mMiqO.js} +2 -2
- package/build/client/assets/{_baseUniq-BxpIs2Oy.js.map → _baseUniq-B14mMiqO.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber-uGponlfN.js → _exerciseNumber-BhK_Xufd.js} +2 -2
- package/build/client/assets/{_exerciseNumber-uGponlfN.js.map → _exerciseNumber-BhK_Xufd.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber_._stepNumber-Ce6_sCcU.js → _exerciseNumber_._stepNumber-DBbWnlEd.js} +2 -2
- package/build/client/assets/{_exerciseNumber_._stepNumber-Ce6_sCcU.js.map → _exerciseNumber_._stepNumber-DBbWnlEd.js.map} +1 -1
- package/build/client/assets/_exerciseNumber_._stepNumber.index-Br7x8lR0.js +2 -0
- package/build/client/assets/_exerciseNumber_._stepNumber.index-Br7x8lR0.js.map +1 -0
- package/build/client/assets/{_exerciseNumber_.finished-BE2v5_rB.js → _exerciseNumber_.finished-B0iUZ4Jp.js} +2 -2
- package/build/client/assets/{_exerciseNumber_.finished-BE2v5_rB.js.map → _exerciseNumber_.finished-B0iUZ4Jp.js.map} +1 -1
- package/build/client/assets/_layout-BP3Hz4UU.js +2 -0
- package/build/client/assets/{_layout-Co6ujuzn.js.map → _layout-BP3Hz4UU.js.map} +1 -1
- package/build/client/assets/{_layout-Bzzu5Cz1.js → _layout-DKmpru-v.js} +2 -2
- package/build/client/assets/{_layout-Bzzu5Cz1.js.map → _layout-DKmpru-v.js.map} +1 -1
- package/build/client/assets/{_layout-vRDHFYoQ.js → _layout-DRBfGSzn.js} +2 -2
- package/build/client/assets/{_layout-vRDHFYoQ.js.map → _layout-DRBfGSzn.js.map} +1 -1
- package/build/client/assets/{_layout-BVzBSE-n.js → _layout-DxOG9P39.js} +2 -2
- package/build/client/assets/{_layout-BVzBSE-n.js.map → _layout-DxOG9P39.js.map} +1 -1
- package/build/client/assets/{accordion-BDR86Xcb.js → accordion-CQRBxCdM.js} +2 -2
- package/build/client/assets/{accordion-BDR86Xcb.js.map → accordion-CQRBxCdM.js.map} +1 -1
- package/build/client/assets/{account-Cldpf0d2.js → account-BwxqSFjk.js} +2 -2
- package/build/client/assets/{account-Cldpf0d2.js.map → account-BwxqSFjk.js.map} +1 -1
- package/build/client/assets/api._-Br7x8lR0.js +2 -0
- package/build/client/assets/api._-Br7x8lR0.js.map +1 -0
- package/build/client/assets/app-CJ-4VoDp.js +2 -0
- package/build/client/assets/{app-DmNyqOoy.js.map → app-CJ-4VoDp.js.map} +1 -1
- package/build/client/assets/app.epic_ws_.js_-Br7x8lR0.js +2 -0
- package/build/client/assets/app.epic_ws_.js_-Br7x8lR0.js.map +1 -0
- package/build/client/assets/apps-4hFOncm9.js +2 -0
- package/build/client/assets/apps-4hFOncm9.js.map +1 -0
- package/build/client/assets/apps-Br7x8lR0.js +2 -0
- package/build/client/assets/apps-Br7x8lR0.js.map +1 -0
- package/build/client/assets/{arc-DRlf7jq7.js → arc-BVQduULV.js} +2 -2
- package/build/client/assets/{arc-DRlf7jq7.js.map → arc-BVQduULV.js.map} +1 -1
- package/build/client/assets/{architectureDiagram-NQ2NVSRB-CrmRQ9SO.js → architectureDiagram-NQ2NVSRB-CR4gCI8X.js} +2 -2
- package/build/client/assets/{architectureDiagram-NQ2NVSRB-CrmRQ9SO.js.map → architectureDiagram-NQ2NVSRB-CR4gCI8X.js.map} +1 -1
- package/build/client/assets/{blockDiagram-PHRCVELO-xwBltM5R.js → blockDiagram-PHRCVELO-DuxnuM93.js} +2 -2
- package/build/client/assets/{blockDiagram-PHRCVELO-xwBltM5R.js.map → blockDiagram-PHRCVELO-DuxnuM93.js.map} +1 -1
- package/build/client/assets/{button-BlPb-37-.js → button-DGnwQ6KN.js} +2 -2
- package/build/client/assets/{button-BlPb-37-.js.map → button-DGnwQ6KN.js.map} +1 -1
- package/build/client/assets/{c4Diagram-6F6E4RAY-JkoDHTPF.js → c4Diagram-6F6E4RAY-Dqlm7faJ.js} +2 -2
- package/build/client/assets/{c4Diagram-6F6E4RAY-JkoDHTPF.js.map → c4Diagram-6F6E4RAY-Dqlm7faJ.js.map} +1 -1
- package/build/client/assets/cache-Br7x8lR0.js +2 -0
- package/build/client/assets/cache-Br7x8lR0.js.map +1 -0
- package/build/client/assets/channel-Ccfwel2m.js +2 -0
- package/build/client/assets/{channel-Cks3Ea6t.js.map → channel-Ccfwel2m.js.map} +1 -1
- package/build/client/assets/{chunk-353BL4L5-CHKdRF8O.js → chunk-353BL4L5-CY0biqke.js} +2 -2
- package/build/client/assets/{chunk-353BL4L5-CHKdRF8O.js.map → chunk-353BL4L5-CY0biqke.js.map} +1 -1
- package/build/client/assets/{chunk-67H74DCK-BMun8kdQ.js → chunk-67H74DCK-CZpFcSK7.js} +2 -2
- package/build/client/assets/{chunk-67H74DCK-BMun8kdQ.js.map → chunk-67H74DCK-CZpFcSK7.js.map} +1 -1
- package/build/client/assets/{chunk-6OLS64BW-D0k_ZwIC.js → chunk-6OLS64BW-CV0M_3sG.js} +2 -2
- package/build/client/assets/{chunk-6OLS64BW-D0k_ZwIC.js.map → chunk-6OLS64BW-CV0M_3sG.js.map} +1 -1
- package/build/client/assets/{chunk-AACKK3MU-Cj8nrtEq.js → chunk-AACKK3MU-B4Z3pj6y.js} +2 -2
- package/build/client/assets/{chunk-AACKK3MU-Cj8nrtEq.js.map → chunk-AACKK3MU-B4Z3pj6y.js.map} +1 -1
- package/build/client/assets/{chunk-BFAMUDN2-CIt8WAbe.js → chunk-BFAMUDN2-xSXsSdRc.js} +2 -2
- package/build/client/assets/{chunk-BFAMUDN2-CIt8WAbe.js.map → chunk-BFAMUDN2-xSXsSdRc.js.map} +1 -1
- package/build/client/assets/{chunk-E2GYISFI-lfUxhUba.js → chunk-E2GYISFI-XxwOHDH_.js} +2 -2
- package/build/client/assets/{chunk-E2GYISFI-lfUxhUba.js.map → chunk-E2GYISFI-XxwOHDH_.js.map} +1 -1
- package/build/client/assets/{chunk-QEP2MXWD-By0BtF5w.js → chunk-QEP2MXWD-ChxN-fyh.js} +2 -2
- package/build/client/assets/{chunk-QEP2MXWD-By0BtF5w.js.map → chunk-QEP2MXWD-ChxN-fyh.js.map} +1 -1
- package/build/client/assets/{chunk-QMGIS6GS-D3fke51R.js → chunk-QMGIS6GS-Cnm5uIBY.js} +2 -2
- package/build/client/assets/{chunk-QMGIS6GS-D3fke51R.js.map → chunk-QMGIS6GS-Cnm5uIBY.js.map} +1 -1
- package/build/client/assets/{chunk-SKB7J2MH-B4y7fFww.js → chunk-SKB7J2MH-Iq1sBnJg.js} +2 -2
- package/build/client/assets/{chunk-SKB7J2MH-B4y7fFww.js.map → chunk-SKB7J2MH-Iq1sBnJg.js.map} +1 -1
- package/build/client/assets/classDiagram-BGRH5UQR-C3baNHIn.js +2 -0
- package/build/client/assets/{classDiagram-BGRH5UQR-Ddac1FX8.js.map → classDiagram-BGRH5UQR-C3baNHIn.js.map} +1 -1
- package/build/client/assets/classDiagram-v2-O24JOBDK-C3baNHIn.js +2 -0
- package/build/client/assets/{classDiagram-v2-O24JOBDK-Ddac1FX8.js.map → classDiagram-v2-O24JOBDK-C3baNHIn.js.map} +1 -1
- package/build/client/assets/clone-CBh9K_C0.js +2 -0
- package/build/client/assets/{clone-BzOlX5uP.js.map → clone-CBh9K_C0.js.map} +1 -1
- package/build/client/assets/{dagre-FFZHY6LT-BF_ENDvI.js → dagre-FFZHY6LT-DRX4CPoT.js} +2 -2
- package/build/client/assets/{dagre-FFZHY6LT-BF_ENDvI.js.map → dagre-FFZHY6LT-DRX4CPoT.js.map} +1 -1
- package/build/client/assets/{diagram-3EMPZRKU-Co8BNYOp.js → diagram-3EMPZRKU-DnyeZVpZ.js} +2 -2
- package/build/client/assets/{diagram-3EMPZRKU-Co8BNYOp.js.map → diagram-3EMPZRKU-DnyeZVpZ.js.map} +1 -1
- package/build/client/assets/{diagram-5UYTHUR4-CTF96wbH.js → diagram-5UYTHUR4-CGNqEi7_.js} +2 -2
- package/build/client/assets/{diagram-5UYTHUR4-CTF96wbH.js.map → diagram-5UYTHUR4-CGNqEi7_.js.map} +1 -1
- package/build/client/assets/{diagram-ZTM2IBQH-BPjsVcII.js → diagram-ZTM2IBQH-TQuk-ulz.js} +2 -2
- package/build/client/assets/{diagram-ZTM2IBQH-BPjsVcII.js.map → diagram-ZTM2IBQH-TQuk-ulz.js.map} +1 -1
- package/build/client/assets/diff-C4a0B6T4.js +2 -0
- package/build/client/assets/{diff-C4mTCnzp.js.map → diff-C4a0B6T4.js.map} +1 -1
- package/build/client/assets/{diff-BHlDvw_d.js → diff-CvXO10rY.js} +2 -2
- package/build/client/assets/{diff-BHlDvw_d.js.map → diff-CvXO10rY.js.map} +1 -1
- package/build/client/assets/discord-BoNGnjEv.js +2 -0
- package/build/client/assets/discord-BoNGnjEv.js.map +1 -0
- package/build/client/assets/{discord-DajcCBfS.js → discord-CpOQOwKa.js} +2 -2
- package/build/client/assets/{discord-DajcCBfS.js.map → discord-CpOQOwKa.js.map} +1 -1
- package/build/client/assets/{entry.client-CkiXyAWa.js → entry.client-JXPtXVLj.js} +2 -2
- package/build/client/assets/{entry.client-CkiXyAWa.js.map → entry.client-JXPtXVLj.js.map} +1 -1
- package/build/client/assets/{epic-video-7egGi8C6.js → epic-video-VKhk-6Mv.js} +2 -2
- package/build/client/assets/{epic-video-7egGi8C6.js.map → epic-video-VKhk-6Mv.js.map} +1 -1
- package/build/client/assets/epic_ws_.js_-Br7x8lR0.js +2 -0
- package/build/client/assets/epic_ws_.js_-Br7x8lR0.js.map +1 -0
- package/build/client/assets/{erDiagram-R3QVA2FD-CoI7VxY8.js → erDiagram-R3QVA2FD-DcVPSaZ1.js} +2 -2
- package/build/client/assets/{erDiagram-R3QVA2FD-CoI7VxY8.js.map → erDiagram-R3QVA2FD-DcVPSaZ1.js.map} +1 -1
- package/build/client/assets/{error-boundary-DxZMubY-.js → error-boundary-BDRYzb6K.js} +2 -2
- package/build/client/assets/{error-boundary-DxZMubY-.js.map → error-boundary-BDRYzb6K.js.map} +1 -1
- package/build/client/assets/exercises-Br7x8lR0.js +2 -0
- package/build/client/assets/exercises-Br7x8lR0.js.map +1 -0
- package/build/client/assets/{finished-DqZ90XsZ.js → finished-BkL8cvWw.js} +2 -2
- package/build/client/assets/{finished-DqZ90XsZ.js.map → finished-BkL8cvWw.js.map} +1 -1
- package/build/client/assets/{flowDiagram-PKI6S5ZS-FVR0aJCb.js → flowDiagram-PKI6S5ZS-BjGswWQI.js} +2 -2
- package/build/client/assets/{flowDiagram-PKI6S5ZS-FVR0aJCb.js.map → flowDiagram-PKI6S5ZS-BjGswWQI.js.map} +1 -1
- package/build/client/assets/{ganttDiagram-EK5VF46D-Cgd-KnRJ.js → ganttDiagram-EK5VF46D-CigmRAu8.js} +2 -2
- package/build/client/assets/{ganttDiagram-EK5VF46D-Cgd-KnRJ.js.map → ganttDiagram-EK5VF46D-CigmRAu8.js.map} +1 -1
- package/build/client/assets/{gitGraphDiagram-GW3U2K7C-C5-T89ck.js → gitGraphDiagram-GW3U2K7C-BZRSDtTk.js} +2 -2
- package/build/client/assets/{gitGraphDiagram-GW3U2K7C-C5-T89ck.js.map → gitGraphDiagram-GW3U2K7C-BZRSDtTk.js.map} +1 -1
- package/build/client/assets/{graph-2blmPy0J.js → graph-ssQ5a7An.js} +2 -2
- package/build/client/assets/{graph-2blmPy0J.js.map → graph-ssQ5a7An.js.map} +1 -1
- package/build/client/assets/index-4hFOncm9.js +2 -0
- package/build/client/assets/index-4hFOncm9.js.map +1 -0
- package/build/client/assets/index-BEOsF4gu.js +2 -0
- package/build/client/assets/index-BEOsF4gu.js.map +1 -0
- package/build/client/assets/{index-DXWoNbMw.js → index-BSUgjf5i.js} +2 -2
- package/build/client/assets/{index-DXWoNbMw.js.map → index-BSUgjf5i.js.map} +1 -1
- package/build/client/assets/index-Br7x8lR0.js +2 -0
- package/build/client/assets/index-Br7x8lR0.js.map +1 -0
- package/build/client/assets/{index-DMYU8Adz.js → index-BvSgrEwH.js} +2 -2
- package/build/client/assets/{index-DMYU8Adz.js.map → index-BvSgrEwH.js.map} +1 -1
- package/build/client/assets/{index-ENEzd29c.js → index-ByKe5Bbc.js} +2 -2
- package/build/client/assets/{index-ENEzd29c.js.map → index-ByKe5Bbc.js.map} +1 -1
- package/build/client/assets/{index-BF30kxMM.js → index-CSKRws-d.js} +2 -2
- package/build/client/assets/{index-BF30kxMM.js.map → index-CSKRws-d.js.map} +1 -1
- package/build/client/assets/{index-N0rVhLdR.js → index-Ce8G4fcS.js} +2 -2
- package/build/client/assets/{index-N0rVhLdR.js.map → index-Ce8G4fcS.js.map} +1 -1
- package/build/client/assets/{index-CY2XuFSg.js → index-CfuMsJpq.js} +2 -2
- package/build/client/assets/{index-CY2XuFSg.js.map → index-CfuMsJpq.js.map} +1 -1
- package/build/client/assets/{index-BpiFo4Bs.js → index-DQHP10an.js} +2 -2
- package/build/client/assets/{index-BpiFo4Bs.js.map → index-DQHP10an.js.map} +1 -1
- package/build/client/assets/{index-BJy9GGix.js → index-DVtOZE_w.js} +2 -2
- package/build/client/assets/{index-BJy9GGix.js.map → index-DVtOZE_w.js.map} +1 -1
- package/build/client/assets/{index-C4WpsDjj.js → index-kpJjamgW.js} +2 -2
- package/build/client/assets/{index-C4WpsDjj.js.map → index-kpJjamgW.js.map} +1 -1
- package/build/client/assets/infoDiagram-RLU2ROGC-oEx_S6Vy.js +3 -0
- package/build/client/assets/{infoDiagram-RLU2ROGC-D9Xc3j8L.js.map → infoDiagram-RLU2ROGC-oEx_S6Vy.js.map} +1 -1
- package/build/client/assets/{journeyDiagram-EWQZEKCU-CYjHBCKP.js → journeyDiagram-EWQZEKCU-BX8-xfo9.js} +2 -2
- package/build/client/assets/{journeyDiagram-EWQZEKCU-CYjHBCKP.js.map → journeyDiagram-EWQZEKCU-BX8-xfo9.js.map} +1 -1
- package/build/client/assets/{jsx-runtime-B2LUJHWf.js → jsx-runtime-BcujL2Aj.js} +2 -2
- package/build/client/assets/{jsx-runtime-B2LUJHWf.js.map → jsx-runtime-BcujL2Aj.js.map} +1 -1
- package/build/client/assets/{kanban-definition-ILFWEQ3N-CzQXJAxD.js → kanban-definition-ILFWEQ3N-DSuN0acj.js} +2 -2
- package/build/client/assets/{kanban-definition-ILFWEQ3N-CzQXJAxD.js.map → kanban-definition-ILFWEQ3N-DSuN0acj.js.map} +1 -1
- package/build/client/assets/l-COkiy20v.js +2 -0
- package/build/client/assets/{l-F4A7XDEa.js.map → l-COkiy20v.js.map} +1 -1
- package/build/client/assets/launch-editor-Br7x8lR0.js +2 -0
- package/build/client/assets/launch-editor-Br7x8lR0.js.map +1 -0
- package/build/client/assets/{layout-CV-Afn_q.js → layout-CRUJr5tM.js} +2 -2
- package/build/client/assets/{layout-CV-Afn_q.js.map → layout-CRUJr5tM.js.map} +1 -1
- package/build/client/assets/{linear-jxQrrEcI.js → linear-4YOhyf6z.js} +2 -2
- package/build/client/assets/{linear-jxQrrEcI.js.map → linear-4YOhyf6z.js.map} +1 -1
- package/build/client/assets/{loading-j2MezYUg.js → loading-BQiZCXl-.js} +2 -2
- package/build/client/assets/{loading-j2MezYUg.js.map → loading-BQiZCXl-.js.map} +1 -1
- package/build/client/assets/{login-BcFnxSmx.js → login-C3y9sPuf.js} +2 -2
- package/build/client/assets/{login-BcFnxSmx.js.map → login-C3y9sPuf.js.map} +1 -1
- package/build/client/assets/login-sse-Br7x8lR0.js +2 -0
- package/build/client/assets/login-sse-Br7x8lR0.js.map +1 -0
- package/build/client/assets/manifest-93bf5827.js +1 -0
- package/build/client/assets/{mdx-qcm_nkgI.js → mdx-Bx84e4TR.js} +3 -3
- package/build/client/assets/{mdx-qcm_nkgI.js.map → mdx-Bx84e4TR.js.map} +1 -1
- package/build/client/assets/{mermaid.core-D3pfbveR.js → mermaid.core-DUlGGmFz.js} +5 -5
- package/build/client/assets/{mermaid.core-D3pfbveR.js.map → mermaid.core-DUlGGmFz.js.map} +1 -1
- package/build/client/assets/{mindmap-definition-CZNETY7S-C3usFkdR.js → mindmap-definition-CZNETY7S-BQAkEQ50.js} +2 -2
- package/build/client/assets/{mindmap-definition-CZNETY7S-C3usFkdR.js.map → mindmap-definition-CZNETY7S-BQAkEQ50.js.map} +1 -1
- package/build/client/assets/{misc-D-dDb89H.js → misc-CJXb1d0J.js} +2 -2
- package/build/client/assets/{misc-D-dDb89H.js.map → misc-CJXb1d0J.js.map} +1 -1
- package/build/client/assets/{nav-chevrons-BF-_ecnj.js → nav-chevrons-D9XKa1mH.js} +2 -2
- package/build/client/assets/{nav-chevrons-BF-_ecnj.js.map → nav-chevrons-D9XKa1mH.js.map} +1 -1
- package/build/client/assets/notifications-Br7x8lR0.js +2 -0
- package/build/client/assets/notifications-Br7x8lR0.js.map +1 -0
- package/build/client/assets/og-Br7x8lR0.js +2 -0
- package/build/client/assets/og-Br7x8lR0.js.map +1 -0
- package/build/client/assets/{onboarding-BM4wTFL9.js → onboarding-BaZDYUh7.js} +2 -2
- package/build/client/assets/{onboarding-BM4wTFL9.js.map → onboarding-BaZDYUh7.js.map} +1 -1
- package/build/client/assets/{online-DRbKQRzx.js → online-CgtIvFKH.js} +2 -2
- package/build/client/assets/{online-DRbKQRzx.js.map → online-CgtIvFKH.js.map} +1 -1
- package/build/client/assets/{pe-Dd-3Vdrv.js → pe-DBKBCHmz.js} +2 -2
- package/build/client/assets/{pe-Dd-3Vdrv.js.map → pe-DBKBCHmz.js.map} +1 -1
- package/build/client/assets/{pieDiagram-NIOCPIFQ-CNwdtlXk.js → pieDiagram-NIOCPIFQ-BoeOpfcZ.js} +2 -2
- package/build/client/assets/{pieDiagram-NIOCPIFQ-CNwdtlXk.js.map → pieDiagram-NIOCPIFQ-BoeOpfcZ.js.map} +1 -1
- package/build/client/assets/{preferences-CcTn1CYh.js → preferences-DgiQZThQ.js} +2 -2
- package/build/client/assets/{preferences-CcTn1CYh.js.map → preferences-DgiQZThQ.js.map} +1 -1
- package/build/client/assets/{presence-h4yTLoon.js → presence-CusrArdA.js} +2 -2
- package/build/client/assets/{presence-h4yTLoon.js.map → presence-CusrArdA.js.map} +1 -1
- package/build/client/assets/{preview-gHmuDJK-.js → preview-9FeYSEDk.js} +2 -2
- package/build/client/assets/{preview-gHmuDJK-.js.map → preview-9FeYSEDk.js.map} +1 -1
- package/build/client/assets/processes-Br7x8lR0.js +2 -0
- package/build/client/assets/processes-Br7x8lR0.js.map +1 -0
- package/build/client/assets/{product-Jj1IV1k9.js → product-CrOzBC_k.js} +2 -2
- package/build/client/assets/{product-Jj1IV1k9.js.map → product-CrOzBC_k.js.map} +1 -1
- package/build/client/assets/{progress-wyxFr9qs.js → progress-B01tSSb6.js} +2 -2
- package/build/client/assets/{progress-wyxFr9qs.js.map → progress-B01tSSb6.js.map} +1 -1
- package/build/client/assets/progress-Br7x8lR0.js +2 -0
- package/build/client/assets/progress-Br7x8lR0.js.map +1 -0
- package/build/client/assets/{progress-bar-BA_tln9A.js → progress-bar-DlBnagEk.js} +2 -2
- package/build/client/assets/{progress-bar-BA_tln9A.js.map → progress-bar-DlBnagEk.js.map} +1 -1
- package/build/client/assets/{quadrantDiagram-2OG54O6I-DJSr7VVP.js → quadrantDiagram-2OG54O6I-CGBRKetG.js} +2 -2
- package/build/client/assets/{quadrantDiagram-2OG54O6I-DJSr7VVP.js.map → quadrantDiagram-2OG54O6I-CGBRKetG.js.map} +1 -1
- package/build/client/assets/{requirementDiagram-SO3GGRV7-Dm9X6gYp.js → requirementDiagram-SO3GGRV7-DchVPiOQ.js} +2 -2
- package/build/client/assets/{requirementDiagram-SO3GGRV7-Dm9X6gYp.js.map → requirementDiagram-SO3GGRV7-DchVPiOQ.js.map} +1 -1
- package/build/client/assets/{revalidation-ws-D6cizZ34.js → revalidation-ws-SaBpRC7c.js} +2 -2
- package/build/client/assets/{revalidation-ws-D6cizZ34.js.map → revalidation-ws-SaBpRC7c.js.map} +1 -1
- package/build/client/assets/robots_._txt-Br7x8lR0.js +2 -0
- package/build/client/assets/robots_._txt-Br7x8lR0.js.map +1 -0
- package/build/client/assets/{root-LFhpEp1U.js → root-7toTLRGZ.js} +2 -2
- package/build/client/assets/{root-LFhpEp1U.js.map → root-7toTLRGZ.js.map} +1 -1
- package/build/client/assets/{sankeyDiagram-4UZDY2LN-afK9nbXy.js → sankeyDiagram-4UZDY2LN-IiFJHkzY.js} +2 -2
- package/build/client/assets/{sankeyDiagram-4UZDY2LN-afK9nbXy.js.map → sankeyDiagram-4UZDY2LN-IiFJHkzY.js.map} +1 -1
- package/build/client/assets/{seo-BRfbzXHZ.js → seo-F3atQazV.js} +2 -2
- package/build/client/assets/{seo-BRfbzXHZ.js.map → seo-F3atQazV.js.map} +1 -1
- package/build/client/assets/{sequenceDiagram-ZIKVLSP4-DU42bc3a.js → sequenceDiagram-ZIKVLSP4-Bp2zg0YM.js} +2 -2
- package/build/client/assets/{sequenceDiagram-ZIKVLSP4-DU42bc3a.js.map → sequenceDiagram-ZIKVLSP4-Bp2zg0YM.js.map} +1 -1
- package/build/client/assets/{set-playground-BGT1RjX_.js → set-playground-BA0z3_BN.js} +2 -2
- package/build/client/assets/{set-playground-BGT1RjX_.js.map → set-playground-BA0z3_BN.js.map} +1 -1
- package/build/client/assets/set-playground-Br7x8lR0.js +2 -0
- package/build/client/assets/set-playground-Br7x8lR0.js.map +1 -0
- package/build/client/assets/sitemap_._xml-Br7x8lR0.js +2 -0
- package/build/client/assets/sitemap_._xml-Br7x8lR0.js.map +1 -0
- package/build/client/assets/start-Br7x8lR0.js +2 -0
- package/build/client/assets/start-Br7x8lR0.js.map +1 -0
- package/build/client/assets/{stateDiagram-XX37X6EN-B8EwlakM.js → stateDiagram-XX37X6EN-CuKZSA6z.js} +2 -2
- package/build/client/assets/{stateDiagram-XX37X6EN-B8EwlakM.js.map → stateDiagram-XX37X6EN-CuKZSA6z.js.map} +1 -1
- package/build/client/assets/stateDiagram-v2-GD6S3NHB-bjx76_OI.js +2 -0
- package/build/client/assets/{stateDiagram-v2-GD6S3NHB-35ZXM1_g.js.map → stateDiagram-v2-GD6S3NHB-bjx76_OI.js.map} +1 -1
- package/build/client/assets/{support-sQOGILfK.js → support-DUh3BiQf.js} +2 -2
- package/build/client/assets/{support-sQOGILfK.js.map → support-DUh3BiQf.js.map} +1 -1
- package/build/client/assets/test-Br7x8lR0.js +2 -0
- package/build/client/assets/test-Br7x8lR0.js.map +1 -0
- package/build/client/assets/test-Ctr_7QVp.js +2 -0
- package/build/client/assets/{test-B50ljUg2.js.map → test-Ctr_7QVp.js.map} +1 -1
- package/build/client/assets/test._testName-Br7x8lR0.js +2 -0
- package/build/client/assets/test._testName-Br7x8lR0.js.map +1 -0
- package/build/client/assets/test.epic_ws_.js_-Br7x8lR0.js +2 -0
- package/build/client/assets/test.epic_ws_.js_-Br7x8lR0.js.map +1 -0
- package/build/client/assets/{tests-CNS1bm1R.js → tests-CZAI0vqW.js} +2 -2
- package/build/client/assets/{tests-CNS1bm1R.js.map → tests-CZAI0vqW.js.map} +1 -1
- package/build/client/assets/{timeline-definition-RI47OAVP-BfpaCaB_.js → timeline-definition-RI47OAVP-COW1irsJ.js} +2 -2
- package/build/client/assets/{timeline-definition-RI47OAVP-BfpaCaB_.js.map → timeline-definition-RI47OAVP-COW1irsJ.js.map} +1 -1
- package/build/client/assets/{tooltip-DaEk9smk.js → tooltip-Dm5SBVY5.js} +2 -2
- package/build/client/assets/{tooltip-DaEk9smk.js.map → tooltip-Dm5SBVY5.js.map} +1 -1
- package/build/client/assets/{treemap-FKARHQ26-BYAT_cTQ.js → treemap-FKARHQ26-OIm2RKyV.js} +2 -2
- package/build/client/assets/{treemap-FKARHQ26-BYAT_cTQ.js.map → treemap-FKARHQ26-OIm2RKyV.js.map} +1 -1
- package/build/client/assets/{use-event-source-D7BmAfNV.js → use-event-source-0sFFzZkm.js} +2 -2
- package/build/client/assets/{use-event-source-D7BmAfNV.js.map → use-event-source-0sFFzZkm.js.map} +1 -1
- package/build/client/assets/{user-CQfYiwjz.js → user-C6NChLGC.js} +2 -2
- package/build/client/assets/{user-CQfYiwjz.js.map → user-C6NChLGC.js.map} +1 -1
- package/build/client/assets/{version-DZ56dlh_.js → version-trzp9pgE.js} +2 -2
- package/build/client/assets/{version-DZ56dlh_.js.map → version-trzp9pgE.js.map} +1 -1
- package/build/client/assets/workshop-config-Cx9qZQEC.js +2 -0
- package/build/client/assets/{workshop-config-BOTAWJa-.js.map → workshop-config-Cx9qZQEC.js.map} +1 -1
- package/build/client/assets/{workspace-structure-DRKC9vIr.js → workspace-structure-CskVhupe.js} +2 -2
- package/build/client/assets/{workspace-structure-DRKC9vIr.js.map → workspace-structure-CskVhupe.js.map} +1 -1
- package/build/client/assets/{xychartDiagram-H2YORKM3-8frmuuIZ.js → xychartDiagram-H2YORKM3-BF6VLUdC.js} +2 -2
- package/build/client/assets/{xychartDiagram-H2YORKM3-8frmuuIZ.js.map → xychartDiagram-H2YORKM3-BF6VLUdC.js.map} +1 -1
- package/build/server/index.js +2 -2
- package/package.json +1 -1
- package/build/client/assets/_-C9pypk8E.js.map +0 -1
- package/build/client/assets/_exerciseNumber_._stepNumber.index-Bltw4W_f.js +0 -2
- package/build/client/assets/_exerciseNumber_._stepNumber.index-Bltw4W_f.js.map +0 -1
- package/build/client/assets/_layout-Co6ujuzn.js +0 -2
- package/build/client/assets/api._-Bltw4W_f.js +0 -2
- package/build/client/assets/api._-Bltw4W_f.js.map +0 -1
- package/build/client/assets/app-DmNyqOoy.js +0 -2
- package/build/client/assets/app.epic_ws_.js_-Bltw4W_f.js +0 -2
- package/build/client/assets/app.epic_ws_.js_-Bltw4W_f.js.map +0 -1
- package/build/client/assets/apps-Bltw4W_f.js +0 -2
- package/build/client/assets/apps-Bltw4W_f.js.map +0 -1
- package/build/client/assets/apps-D27kw0fL.js +0 -2
- package/build/client/assets/apps-D27kw0fL.js.map +0 -1
- package/build/client/assets/cache-Bltw4W_f.js +0 -2
- package/build/client/assets/cache-Bltw4W_f.js.map +0 -1
- package/build/client/assets/channel-Cks3Ea6t.js +0 -2
- package/build/client/assets/classDiagram-BGRH5UQR-Ddac1FX8.js +0 -2
- package/build/client/assets/classDiagram-v2-O24JOBDK-Ddac1FX8.js +0 -2
- package/build/client/assets/clone-BzOlX5uP.js +0 -2
- package/build/client/assets/diff-C4mTCnzp.js +0 -2
- package/build/client/assets/discord-CTud2-P1.js +0 -2
- package/build/client/assets/discord-CTud2-P1.js.map +0 -1
- package/build/client/assets/epic_ws_.js_-Bltw4W_f.js +0 -2
- package/build/client/assets/epic_ws_.js_-Bltw4W_f.js.map +0 -1
- package/build/client/assets/exercises-Bltw4W_f.js +0 -2
- package/build/client/assets/exercises-Bltw4W_f.js.map +0 -1
- package/build/client/assets/index-Bltw4W_f.js +0 -2
- package/build/client/assets/index-Bltw4W_f.js.map +0 -1
- package/build/client/assets/index-D27kw0fL.js +0 -2
- package/build/client/assets/index-D27kw0fL.js.map +0 -1
- package/build/client/assets/index-Drom-uLQ.js +0 -2
- package/build/client/assets/index-Drom-uLQ.js.map +0 -1
- package/build/client/assets/infoDiagram-RLU2ROGC-D9Xc3j8L.js +0 -3
- package/build/client/assets/l-F4A7XDEa.js +0 -2
- package/build/client/assets/launch-editor-Bltw4W_f.js +0 -2
- package/build/client/assets/launch-editor-Bltw4W_f.js.map +0 -1
- package/build/client/assets/login-sse-Bltw4W_f.js +0 -2
- package/build/client/assets/login-sse-Bltw4W_f.js.map +0 -1
- package/build/client/assets/manifest-a77f969d.js +0 -1
- package/build/client/assets/notifications-Bltw4W_f.js +0 -2
- package/build/client/assets/notifications-Bltw4W_f.js.map +0 -1
- package/build/client/assets/og-Bltw4W_f.js +0 -2
- package/build/client/assets/og-Bltw4W_f.js.map +0 -1
- package/build/client/assets/processes-Bltw4W_f.js +0 -2
- package/build/client/assets/processes-Bltw4W_f.js.map +0 -1
- package/build/client/assets/progress-Bltw4W_f.js +0 -2
- package/build/client/assets/progress-Bltw4W_f.js.map +0 -1
- package/build/client/assets/robots_._txt-Bltw4W_f.js +0 -2
- package/build/client/assets/robots_._txt-Bltw4W_f.js.map +0 -1
- package/build/client/assets/set-playground-Bltw4W_f.js +0 -2
- package/build/client/assets/set-playground-Bltw4W_f.js.map +0 -1
- package/build/client/assets/sitemap_._xml-Bltw4W_f.js +0 -2
- package/build/client/assets/sitemap_._xml-Bltw4W_f.js.map +0 -1
- package/build/client/assets/start-Bltw4W_f.js +0 -2
- package/build/client/assets/start-Bltw4W_f.js.map +0 -1
- package/build/client/assets/stateDiagram-v2-GD6S3NHB-35ZXM1_g.js +0 -2
- package/build/client/assets/test-B50ljUg2.js +0 -2
- package/build/client/assets/test-Bltw4W_f.js +0 -2
- package/build/client/assets/test-Bltw4W_f.js.map +0 -1
- package/build/client/assets/test._testName-Bltw4W_f.js +0 -2
- package/build/client/assets/test._testName-Bltw4W_f.js.map +0 -1
- package/build/client/assets/test.epic_ws_.js_-Bltw4W_f.js +0 -2
- package/build/client/assets/test.epic_ws_.js_-Bltw4W_f.js.map +0 -1
- package/build/client/assets/workshop-config-BOTAWJa-.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Br7x8lR0.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as m}from"./jsx-runtime-
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{j as m}from"./jsx-runtime-BcujL2Aj.js";import{f as y,u as w,r as l}from"./chunk-QMGIS6GS-Cnm5uIBY.js";const h={vertical:"scrollTop",horizontal:"scrollLeft"};function I({elementQuery:r,direction:S="vertical",...d}){const e=`position:${r}`,f=y(),p=w(),a=h[S],i=l.useCallback(()=>{const t=document.querySelector(r);if(!t)return;let o={};try{const s=JSON.parse(sessionStorage.getItem(e)||"{}");typeof s=="object"&&s!==null&&(o=s)}catch(s){console.warn("Error parsing scroll positions from sessionStorage:",s)}const n={...o,[p.key]:t[a]};sessionStorage.setItem(e,JSON.stringify(n))},[e,r,p.key]);l.useEffect(()=>{if(f.state==="idle"){const t=document.querySelector(r);if(!t)return;try{const n=JSON.parse(sessionStorage.getItem(e)||"{}")[window.history.state.key];typeof n=="number"&&(t[a]=n)}catch(o){console.error(o),sessionStorage.removeItem(e)}}else i()},[e,r,f.state,i]),l.useEffect(()=>(window.addEventListener("pagehide",i),()=>{window.removeEventListener("pagehide",i)}),[i]);function g(t,o,n){const s=document.querySelector(o);if(!s){console.warn(`Element not found: ${o}. Cannot restore scroll.`);return}if(!window.history.state||!window.history.state.key){const c=Math.random().toString(32).slice(2);window.history.replaceState({key:c},"")}try{const u=JSON.parse(sessionStorage.getItem(t)||"{}")[window.history.state.key];typeof u=="number"&&(s[n]=u)}catch(c){console.error(c),sessionStorage.removeItem(t)}}return m.jsx("script",{...d,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${g})(${JSON.stringify(e)}, ${JSON.stringify(r)}, ${JSON.stringify(a)})`}})}export{I as E};
|
|
2
|
+
//# sourceMappingURL=index-BvSgrEwH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-BvSgrEwH.js","sources":["../../../../../node_modules/@epic-web/restore-scroll/dist/index.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect } from 'react';\nimport { useLocation, useNavigation } from 'react-router';\nconst DIRECTION = {\n vertical: 'scrollTop',\n horizontal: 'scrollLeft',\n};\nexport function ElementScrollRestoration({ elementQuery, direction = 'vertical', ...props }) {\n const STORAGE_KEY = `position:${elementQuery}`;\n const navigation = useNavigation();\n const location = useLocation();\n const scrollAttribute = DIRECTION[direction];\n const updatePositions = useCallback(() => {\n const element = document.querySelector(elementQuery);\n if (!element)\n return;\n let positions = {};\n try {\n const rawPositions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || '{}');\n if (typeof rawPositions === 'object' && rawPositions !== null) {\n positions = rawPositions;\n }\n }\n catch (error) {\n console.warn(`Error parsing scroll positions from sessionStorage:`, error);\n }\n const newPositions = {\n ...positions,\n [location.key]: element[scrollAttribute],\n };\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify(newPositions));\n }, [STORAGE_KEY, elementQuery, location.key]);\n useEffect(() => {\n if (navigation.state === 'idle') {\n const element = document.querySelector(elementQuery);\n if (!element)\n return;\n try {\n const positions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || '{}');\n const stored = positions[window.history.state.key];\n if (typeof stored === 'number') {\n element[scrollAttribute] = stored;\n }\n }\n catch (error) {\n console.error(error);\n sessionStorage.removeItem(STORAGE_KEY);\n }\n }\n else {\n updatePositions();\n }\n }, [STORAGE_KEY, elementQuery, navigation.state, updatePositions]);\n useEffect(() => {\n window.addEventListener('pagehide', updatePositions);\n return () => {\n window.removeEventListener('pagehide', updatePositions);\n };\n }, [updatePositions]);\n function restoreScroll(storageKey, elementQuery, scrollAttribute) {\n const element = document.querySelector(elementQuery);\n if (!element) {\n console.warn(`Element not found: ${elementQuery}. Cannot restore scroll.`);\n return;\n }\n if (!window.history.state || !window.history.state.key) {\n const key = Math.random().toString(32).slice(2);\n window.history.replaceState({ key }, '');\n }\n try {\n const positions = JSON.parse(sessionStorage.getItem(storageKey) || '{}');\n const stored = positions[window.history.state.key];\n if (typeof stored === 'number') {\n element[scrollAttribute] = stored;\n }\n }\n catch (error) {\n console.error(error);\n sessionStorage.removeItem(storageKey);\n }\n }\n return (_jsx(\"script\", { ...props, suppressHydrationWarning: true, dangerouslySetInnerHTML: {\n __html: `(${restoreScroll})(${JSON.stringify(STORAGE_KEY)}, ${JSON.stringify(elementQuery)}, ${JSON.stringify(scrollAttribute)})`,\n } }));\n}\n"],"names":["DIRECTION","ElementScrollRestoration","elementQuery","direction","props","STORAGE_KEY","navigation","useNavigation","location","useLocation","scrollAttribute","updatePositions","useCallback","element","positions","rawPositions","error","newPositions","useEffect","stored","restoreScroll","storageKey","key","_jsx"],"mappings":"6GAGA,MAAMA,EAAY,CACd,SAAU,YACV,WAAY,YAChB,EACO,SAASC,EAAyB,CAAE,aAAAC,EAAc,UAAAC,EAAY,WAAY,GAAGC,CAAK,EAAI,CACzF,MAAMC,EAAc,YAAYH,CAAY,GACtCI,EAAaC,EAAa,EAC1BC,EAAWC,EAAW,EACtBC,EAAkBV,EAAUG,CAAS,EACrCQ,EAAkBC,EAAAA,YAAY,IAAM,CACtC,MAAMC,EAAU,SAAS,cAAcX,CAAY,EACnD,GAAI,CAACW,EACD,OACJ,IAAIC,EAAY,CAAA,EAChB,GAAI,CACA,MAAMC,EAAe,KAAK,MAAM,eAAe,QAAQV,CAAW,GAAK,IAAI,EACvE,OAAOU,GAAiB,UAAYA,IAAiB,OACrDD,EAAYC,EAEpB,OACOC,EAAO,CACV,QAAQ,KAAK,sDAAuDA,CAAK,CAC7E,CACA,MAAMC,EAAe,CACjB,GAAGH,EACH,CAACN,EAAS,GAAG,EAAGK,EAAQH,CAAe,CACnD,EACQ,eAAe,QAAQL,EAAa,KAAK,UAAUY,CAAY,CAAC,CACpE,EAAG,CAACZ,EAAaH,EAAcM,EAAS,GAAG,CAAC,EAC5CU,EAAAA,UAAU,IAAM,CACZ,GAAIZ,EAAW,QAAU,OAAQ,CAC7B,MAAMO,EAAU,SAAS,cAAcX,CAAY,EACnD,GAAI,CAACW,EACD,OACJ,GAAI,CAEA,MAAMM,EADY,KAAK,MAAM,eAAe,QAAQd,CAAW,GAAK,IAAI,EAC/C,OAAO,QAAQ,MAAM,GAAG,EAC7C,OAAOc,GAAW,WAClBN,EAAQH,CAAe,EAAIS,EAEnC,OACOH,EAAO,CACV,QAAQ,MAAMA,CAAK,EACnB,eAAe,WAAWX,CAAW,CACzC,CACJ,MAEIM,EAAe,CAEvB,EAAG,CAACN,EAAaH,EAAcI,EAAW,MAAOK,CAAe,CAAC,EACjEO,EAAAA,UAAU,KACN,OAAO,iBAAiB,WAAYP,CAAe,EAC5C,IAAM,CACT,OAAO,oBAAoB,WAAYA,CAAe,CAC1D,GACD,CAACA,CAAe,CAAC,EACpB,SAASS,EAAcC,EAAYnB,EAAcQ,EAAiB,CAC9D,MAAMG,EAAU,SAAS,cAAcX,CAAY,EACnD,GAAI,CAACW,EAAS,CACV,QAAQ,KAAK,sBAAsBX,CAAY,0BAA0B,EACzE,MACJ,CACA,GAAI,CAAC,OAAO,QAAQ,OAAS,CAAC,OAAO,QAAQ,MAAM,IAAK,CACpD,MAAMoB,EAAM,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,MAAM,CAAC,EAC9C,OAAO,QAAQ,aAAa,CAAE,IAAAA,CAAG,EAAI,EAAE,CAC3C,CACA,GAAI,CAEA,MAAMH,EADY,KAAK,MAAM,eAAe,QAAQE,CAAU,GAAK,IAAI,EAC9C,OAAO,QAAQ,MAAM,GAAG,EAC7C,OAAOF,GAAW,WAClBN,EAAQH,CAAe,EAAIS,EAEnC,OACOH,EAAO,CACV,QAAQ,MAAMA,CAAK,EACnB,eAAe,WAAWK,CAAU,CACxC,CACJ,CACA,OAAQE,EAAAA,IAAK,SAAU,CAAE,GAAGnB,EAAO,yBAA0B,GAAM,wBAAyB,CACpF,OAAQ,IAAIgB,CAAa,KAAK,KAAK,UAAUf,CAAW,CAAC,KAAK,KAAK,UAAUH,CAAY,CAAC,KAAK,KAAK,UAAUQ,CAAe,CAAC,GAC1I,EAAW,CACX","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{w as u,f as b,L as a,F as i}from"./chunk-QMGIS6GS-
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{w as u,f as b,L as a,F as i}from"./chunk-QMGIS6GS-Cnm5uIBY.js";import{j as e}from"./jsx-runtime-BcujL2Aj.js";import{I as d}from"./misc-CJXb1d0J.js";import{S as j}from"./tooltip-Dm5SBVY5.js";import{a as f}from"./progress-B01tSSb6.js";import"./_-v6PvHZ90.js";import"./clsx-B-dksMZM.js";import"./index-kpJjamgW.js";import"./pe-DBKBCHmz.js";const D={getSitemapEntries:()=>null},L=({matches:t})=>[{title:`👷 | ${t.find(r=>r?.id==="root")?.data?.workshopTitle}`}];function g(t,n){return t.type==="unknown"&&n.type==="unknown"?0:t.type==="unknown"?-1:n.type==="unknown"?1:0}function N(t){switch(t.type){case"workshop-instructions":return"/";case"workshop-finished":return"/finished";case"instructions":return`/${t.exerciseNumber.toString().padStart(2,"0")}`;case"step":return`/${t.exerciseNumber.toString().padStart(2,"0")}/${t.stepNumber.toString().padStart(2,"0")}`;case"finished":return`/${t.exerciseNumber.toString().padStart(2,"0")}/finished`;default:return""}}const E=u(function({loaderData:n}){const r=b(),o=f(),h=r.formData?.get("intent")==="inspect",m=r.formData?.get("intent")==="stop-inspect",x={completed:"bg-blue-500",incomplete:"bg-yellow-500"};return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold",children:"Progress"}),o?e.jsx("ul",{className:"flex max-h-72 flex-col gap-2 overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar",children:o.sort(g).map(s=>{const l=s.epicCompletedAt?"completed":"incomplete",c=[s.epicLessonSlug,s.epicCompletedAt?`(${s.epicCompletedAt})`:null].filter(Boolean).join(" ");return e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx("span",{className:`h-3 w-3 rounded-full ${x[l]}`,title:l}),s.type==="unknown"?e.jsxs("span",{className:"flex items-center gap-1",children:[c,e.jsx("span",{className:"text-red-500",children:e.jsx(j,{content:"This video is in the workshop on EpicWeb.dev, but not in the local workshop.",children:e.jsx(d,{name:"Close"})})})]}):e.jsx(a,{to:N(s),children:c}),e.jsx(a,{to:s.epicLessonUrl,children:e.jsx(d,{name:"ExternalLink"})})]},s.epicLessonSlug)})}):e.jsx("p",{children:"No progress data"})]}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold",children:"Commands"}),e.jsxs("ul",{className:"max-h-48 overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar",children:[e.jsx("li",{children:e.jsx(i,{method:"POST",children:e.jsx("button",{name:"intent",value:"clear-caches",children:"Clear local caches"})})}),e.jsx("li",{children:e.jsx(i,{method:"POST",children:e.jsx("button",{name:"intent",value:"clear-data",children:"Clear all local data (including auth data)"})})}),e.jsx("li",{children:n.inspectorRunning?e.jsx(i,{method:"POST",children:e.jsx("button",{name:"intent",value:"stop-inspect",children:h?"Stopping inspector...":"Stop inspector"})}):e.jsx(i,{method:"POST",children:e.jsx("button",{name:"intent",value:"inspect",children:m?"Starting inspector...":"Start inspector"})})})]})]}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold",children:"Apps"}),e.jsx("ul",{className:"max-h-48 list-none overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar",children:n.apps.map(s=>e.jsxs("li",{className:"flex items-center gap-2 py-1",children:[n.processes[s.name]?e.jsx(p,{status:"running"}):e.jsx(p,{status:"stopped"}),s.name]},s.name))})]}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold",children:"Processes"}),e.jsx("ul",{className:"overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar",children:Object.entries(n.processes).map(([s,l])=>e.jsx("li",{children:e.jsxs("span",{children:[s," - Port: ",l.port," - PID ",l.pid," -"," ",l.color]})},s))})]}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-bold",children:"Test Processes"}),e.jsx("ul",{className:"overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar",children:Object.entries(n.testProcesses).map(([s,l])=>e.jsx("li",{children:e.jsxs("span",{children:[s," - PID ",l.pid," - Exit code: ",l.exitCode]})},s))})]})]})});function p({status:t}){const n={running:{pinger:"bg-green-400",circle:"bg-green-500"},starting:{pinger:"bg-sky-400",circle:"bg-sky-500"},stopped:{circle:"bg-gray-500"},taken:{pinger:"bg-red-400",circle:"bg-red-500"}}[t];return e.jsxs("span",{className:"relative flex h-3 w-3",children:[n.pinger?e.jsx("span",{className:`absolute inline-flex h-full w-full animate-ping rounded-full ${n.pinger} opacity-75`}):null,e.jsx("span",{className:`relative inline-flex h-3 w-3 rounded-full ${n.circle}`})]})}export{E as default,D as handle,L as meta};
|
|
2
|
+
//# sourceMappingURL=index-ByKe5Bbc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-ENEzd29c.js","sources":["../../../app/routes/admin+/index.tsx"],"sourcesContent":["import { getApps } from '@epic-web/workshop-utils/apps.server'\nimport { getProcesses } from '@epic-web/workshop-utils/process-manager.server'\nimport {\n\tgetServerTimeHeader,\n\tmakeTimings,\n} from '@epic-web/workshop-utils/timing.server'\nimport { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport { data, Form, Link, useNavigation } from 'react-router'\nimport { Icon } from '#app/components/icons.tsx'\nimport { SimpleTooltip } from '#app/components/ui/tooltip.tsx'\nimport { type RootLoaderData } from '#app/root.tsx'\nimport {\n\tuseEpicProgress,\n\ttype SerializedProgress,\n} from '#app/routes/progress.tsx'\nimport { ensureUndeployed } from '#app/utils/misc.tsx'\nimport { type Route } from './+types/index.tsx'\nimport {\n\tclearCaches,\n\tclearData,\n\tstartInspector,\n\tstopInspector,\n} from './admin-utils.server.tsx'\n\ndeclare global {\n\tvar __inspector_open__: boolean | undefined\n}\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => null,\n}\n\nexport const meta: Route.MetaFunction = ({ matches }) => {\n\tconst rootData = matches.find((m) => m?.id === 'root')?.data as RootLoaderData\n\treturn [{ title: `👷 | ${rootData?.workshopTitle}` }]\n}\n\nexport async function loader({ request }: Route.LoaderArgs) {\n\tensureUndeployed()\n\tconst timings = makeTimings('adminLoader')\n\tconst apps = (await getApps({ request, timings })).filter(\n\t\t(a, i, ar) => ar.findIndex((b) => a.name === b.name) === i,\n\t)\n\tconst processes: Record<\n\t\tstring,\n\t\t{ port: number; pid?: number; color: string }\n\t> = {}\n\tconst testProcesses: Record<\n\t\tstring,\n\t\t{ pid?: number; exitCode?: number | null }\n\t> = {}\n\tfor (const [\n\t\tname,\n\t\t{ port, process, color },\n\t] of getProcesses().devProcesses.entries()) {\n\t\tprocesses[name] = { port, pid: process.pid, color }\n\t}\n\n\tfor (const [\n\t\tname,\n\t\t{ process, exitCode },\n\t] of getProcesses().testProcesses.entries()) {\n\t\ttestProcesses[name] = { pid: process?.pid, exitCode }\n\t}\n\treturn data(\n\t\t{\n\t\t\tapps,\n\t\t\tprocesses,\n\t\t\ttestProcesses,\n\t\t\tinspectorRunning: global.__inspector_open__,\n\t\t},\n\t\t{\n\t\t\theaders: {\n\t\t\t\t'Server-Timing': getServerTimeHeader(timings),\n\t\t\t},\n\t\t},\n\t)\n}\n\nexport async function action({ request }: Route.ActionArgs) {\n\tensureUndeployed()\n\tconst formData = await request.formData()\n\tconst intent = formData.get('intent')\n\tswitch (intent) {\n\t\tcase 'clear-data': {\n\t\t\tawait clearData()\n\t\t\treturn { success: true }\n\t\t}\n\t\tcase 'clear-caches': {\n\t\t\tawait clearCaches()\n\t\t\treturn { success: true }\n\t\t}\n\t\tcase 'inspect': {\n\t\t\tawait startInspector()\n\t\t\treturn { success: true }\n\t\t}\n\t\tcase 'stop-inspect': {\n\t\t\tawait stopInspector()\n\t\t\treturn { success: true }\n\t\t}\n\t\tdefault: {\n\t\t\tthrow new Error(`Unknown intent: ${intent}`)\n\t\t}\n\t}\n}\n\nfunction sortProgress(a: SerializedProgress, b: SerializedProgress) {\n\treturn a.type === 'unknown' && b.type === 'unknown'\n\t\t? 0\n\t\t: a.type === 'unknown'\n\t\t\t? -1\n\t\t\t: b.type === 'unknown'\n\t\t\t\t? 1\n\t\t\t\t: 0\n}\n\nfunction linkProgress(progress: SerializedProgress) {\n\tswitch (progress.type) {\n\t\tcase 'workshop-instructions':\n\t\t\treturn '/'\n\t\tcase 'workshop-finished':\n\t\t\treturn '/finished'\n\t\tcase 'instructions':\n\t\t\treturn `/${progress.exerciseNumber.toString().padStart(2, '0')}`\n\t\tcase 'step':\n\t\t\treturn `/${progress.exerciseNumber\n\t\t\t\t.toString()\n\t\t\t\t.padStart(2, '0')}/${progress.stepNumber.toString().padStart(2, '0')}`\n\t\tcase 'finished':\n\t\t\treturn `/${progress.exerciseNumber.toString().padStart(2, '0')}/finished`\n\t\tdefault:\n\t\t\treturn ''\n\t}\n}\n\nexport default function AdminLayout({\n\tloaderData: data,\n}: Route.ComponentProps) {\n\tconst navigation = useNavigation()\n\tconst epicProgress = useEpicProgress()\n\n\tconst isStartingInspector = navigation.formData?.get('intent') === 'inspect'\n\tconst isStoppingInspector =\n\t\tnavigation.formData?.get('intent') === 'stop-inspect'\n\n\tconst progressStatus = {\n\t\tcompleted: 'bg-blue-500',\n\t\tincomplete: 'bg-yellow-500',\n\t}\n\n\treturn (\n\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t<div>\n\t\t\t\t<h2 className=\"text-lg font-bold\">Progress</h2>\n\t\t\t\t{epicProgress ? (\n\t\t\t\t\t<ul className=\"flex max-h-72 flex-col gap-2 overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t\t{epicProgress.sort(sortProgress).map((progress) => {\n\t\t\t\t\t\t\tconst status = progress.epicCompletedAt\n\t\t\t\t\t\t\t\t? 'completed'\n\t\t\t\t\t\t\t\t: 'incomplete'\n\t\t\t\t\t\t\tconst label = [\n\t\t\t\t\t\t\t\tprogress.epicLessonSlug,\n\t\t\t\t\t\t\t\tprogress.epicCompletedAt\n\t\t\t\t\t\t\t\t\t? `(${progress.epicCompletedAt})`\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t\t.join(' ')\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\tkey={progress.epicLessonSlug}\n\t\t\t\t\t\t\t\t\tclassName=\"flex items-center gap-2\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName={`h-3 w-3 rounded-full ${progressStatus[status]}`}\n\t\t\t\t\t\t\t\t\t\ttitle={status}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{progress.type === 'unknown' ? (\n\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center gap-1\">\n\t\t\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-red-500\">\n\t\t\t\t\t\t\t\t\t\t\t\t<SimpleTooltip content=\"This video is in the workshop on EpicWeb.dev, but not in the local workshop.\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon name=\"Close\" />\n\t\t\t\t\t\t\t\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<Link to={linkProgress(progress)}>{label}</Link>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<Link to={progress.epicLessonUrl}>\n\t\t\t\t\t\t\t\t\t\t<Icon name=\"ExternalLink\"></Icon>\n\t\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ul>\n\t\t\t\t) : (\n\t\t\t\t\t<p>No progress data</p>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<h2 className=\"text-lg font-bold\">Commands</h2>\n\t\t\t\t<ul className=\"max-h-48 overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<Form method=\"POST\">\n\t\t\t\t\t\t\t<button name=\"intent\" value=\"clear-caches\">\n\t\t\t\t\t\t\t\tClear local caches\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Form>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<Form method=\"POST\">\n\t\t\t\t\t\t\t<button name=\"intent\" value=\"clear-data\">\n\t\t\t\t\t\t\t\tClear all local data (including auth data)\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Form>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t{data.inspectorRunning ? (\n\t\t\t\t\t\t\t<Form method=\"POST\">\n\t\t\t\t\t\t\t\t<button name=\"intent\" value=\"stop-inspect\">\n\t\t\t\t\t\t\t\t\t{isStartingInspector\n\t\t\t\t\t\t\t\t\t\t? 'Stopping inspector...'\n\t\t\t\t\t\t\t\t\t\t: 'Stop inspector'}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</Form>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Form method=\"POST\">\n\t\t\t\t\t\t\t\t<button name=\"intent\" value=\"inspect\">\n\t\t\t\t\t\t\t\t\t{isStoppingInspector\n\t\t\t\t\t\t\t\t\t\t? 'Starting inspector...'\n\t\t\t\t\t\t\t\t\t\t: 'Start inspector'}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</Form>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<h2 className=\"text-lg font-bold\">Apps</h2>\n\t\t\t\t<ul className=\"max-h-48 list-none overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t{data.apps.map((app) => (\n\t\t\t\t\t\t<li key={app.name} className=\"flex items-center gap-2 py-1\">\n\t\t\t\t\t\t\t{data.processes[app.name] ? (\n\t\t\t\t\t\t\t\t<Pinger status=\"running\" />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Pinger status=\"stopped\" />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{app.name}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<h2 className=\"text-lg font-bold\">Processes</h2>\n\t\t\t\t<ul className=\"overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t{Object.entries(data.processes).map(([key, process]) => (\n\t\t\t\t\t\t<li key={key}>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t{key} - Port: {process.port} - PID {process.pid} -{' '}\n\t\t\t\t\t\t\t\t{process.color}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<h2 className=\"text-lg font-bold\">Test Processes</h2>\n\t\t\t\t<ul className=\"overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t{Object.entries(data.testProcesses).map(([key, process]) => (\n\t\t\t\t\t\t<li key={key}>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t{key} - PID {process.pid} - Exit code: {process.exitCode}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\nfunction Pinger({\n\tstatus,\n}: {\n\tstatus: 'running' | 'starting' | 'stopped' | 'taken'\n}) {\n\tconst colors = {\n\t\trunning: {\n\t\t\tpinger: 'bg-green-400',\n\t\t\tcircle: 'bg-green-500',\n\t\t},\n\t\tstarting: {\n\t\t\tpinger: 'bg-sky-400',\n\t\t\tcircle: 'bg-sky-500',\n\t\t},\n\t\tstopped: {\n\t\t\tcircle: 'bg-gray-500',\n\t\t},\n\t\ttaken: {\n\t\t\tpinger: 'bg-red-400',\n\t\t\tcircle: 'bg-red-500',\n\t\t},\n\t}[status]\n\treturn (\n\t\t<span className=\"relative flex h-3 w-3\">\n\t\t\t{colors.pinger ? (\n\t\t\t\t<span\n\t\t\t\t\tclassName={`absolute inline-flex h-full w-full animate-ping rounded-full ${colors.pinger} opacity-75`}\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t\t<span\n\t\t\t\tclassName={`relative inline-flex h-3 w-3 rounded-full ${colors.circle}`}\n\t\t\t/>\n\t\t</span>\n\t)\n}\n"],"names":["handle","getSitemapEntries","meta","matches","title","find","m","id","data","workshopTitle","sortProgress","a","b","type","linkProgress","progress","exerciseNumber","toString","padStart","stepNumber","index","_UNSAFE_withComponentProps","loaderData","navigation","useNavigation","epicProgress","useEpicProgress","isStartingInspector","formData","get","isStoppingInspector","progressStatus","completed","incomplete","jsxs","className","children","jsx","sort","map","status","epicCompletedAt","label","epicLessonSlug","filter","Boolean","join","SimpleTooltip","content","Icon","name","Link","to","epicLessonUrl","Form","method","value","inspectorRunning","apps","app","processes","Pinger","Object","entries","key","process","port","pid","color","testProcesses","exitCode","colors","running","pinger","circle","starting","stopped","taken"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-ByKe5Bbc.js","sources":["../../../app/routes/admin+/index.tsx"],"sourcesContent":["import { getApps } from '@epic-web/workshop-utils/apps.server'\nimport { getProcesses } from '@epic-web/workshop-utils/process-manager.server'\nimport {\n\tgetServerTimeHeader,\n\tmakeTimings,\n} from '@epic-web/workshop-utils/timing.server'\nimport { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport { data, Form, Link, useNavigation } from 'react-router'\nimport { Icon } from '#app/components/icons.tsx'\nimport { SimpleTooltip } from '#app/components/ui/tooltip.tsx'\nimport { type RootLoaderData } from '#app/root.tsx'\nimport {\n\tuseEpicProgress,\n\ttype SerializedProgress,\n} from '#app/routes/progress.tsx'\nimport { ensureUndeployed } from '#app/utils/misc.tsx'\nimport { type Route } from './+types/index.tsx'\nimport {\n\tclearCaches,\n\tclearData,\n\tstartInspector,\n\tstopInspector,\n} from './admin-utils.server.tsx'\n\ndeclare global {\n\tvar __inspector_open__: boolean | undefined\n}\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => null,\n}\n\nexport const meta: Route.MetaFunction = ({ matches }) => {\n\tconst rootData = matches.find((m) => m?.id === 'root')?.data as RootLoaderData\n\treturn [{ title: `👷 | ${rootData?.workshopTitle}` }]\n}\n\nexport async function loader({ request }: Route.LoaderArgs) {\n\tensureUndeployed()\n\tconst timings = makeTimings('adminLoader')\n\tconst apps = (await getApps({ request, timings })).filter(\n\t\t(a, i, ar) => ar.findIndex((b) => a.name === b.name) === i,\n\t)\n\tconst processes: Record<\n\t\tstring,\n\t\t{ port: number; pid?: number; color: string }\n\t> = {}\n\tconst testProcesses: Record<\n\t\tstring,\n\t\t{ pid?: number; exitCode?: number | null }\n\t> = {}\n\tfor (const [\n\t\tname,\n\t\t{ port, process, color },\n\t] of getProcesses().devProcesses.entries()) {\n\t\tprocesses[name] = { port, pid: process.pid, color }\n\t}\n\n\tfor (const [\n\t\tname,\n\t\t{ process, exitCode },\n\t] of getProcesses().testProcesses.entries()) {\n\t\ttestProcesses[name] = { pid: process?.pid, exitCode }\n\t}\n\treturn data(\n\t\t{\n\t\t\tapps,\n\t\t\tprocesses,\n\t\t\ttestProcesses,\n\t\t\tinspectorRunning: global.__inspector_open__,\n\t\t},\n\t\t{\n\t\t\theaders: {\n\t\t\t\t'Server-Timing': getServerTimeHeader(timings),\n\t\t\t},\n\t\t},\n\t)\n}\n\nexport async function action({ request }: Route.ActionArgs) {\n\tensureUndeployed()\n\tconst formData = await request.formData()\n\tconst intent = formData.get('intent')\n\tswitch (intent) {\n\t\tcase 'clear-data': {\n\t\t\tawait clearData()\n\t\t\treturn { success: true }\n\t\t}\n\t\tcase 'clear-caches': {\n\t\t\tawait clearCaches()\n\t\t\treturn { success: true }\n\t\t}\n\t\tcase 'inspect': {\n\t\t\tawait startInspector()\n\t\t\treturn { success: true }\n\t\t}\n\t\tcase 'stop-inspect': {\n\t\t\tawait stopInspector()\n\t\t\treturn { success: true }\n\t\t}\n\t\tdefault: {\n\t\t\tthrow new Error(`Unknown intent: ${intent}`)\n\t\t}\n\t}\n}\n\nfunction sortProgress(a: SerializedProgress, b: SerializedProgress) {\n\treturn a.type === 'unknown' && b.type === 'unknown'\n\t\t? 0\n\t\t: a.type === 'unknown'\n\t\t\t? -1\n\t\t\t: b.type === 'unknown'\n\t\t\t\t? 1\n\t\t\t\t: 0\n}\n\nfunction linkProgress(progress: SerializedProgress) {\n\tswitch (progress.type) {\n\t\tcase 'workshop-instructions':\n\t\t\treturn '/'\n\t\tcase 'workshop-finished':\n\t\t\treturn '/finished'\n\t\tcase 'instructions':\n\t\t\treturn `/${progress.exerciseNumber.toString().padStart(2, '0')}`\n\t\tcase 'step':\n\t\t\treturn `/${progress.exerciseNumber\n\t\t\t\t.toString()\n\t\t\t\t.padStart(2, '0')}/${progress.stepNumber.toString().padStart(2, '0')}`\n\t\tcase 'finished':\n\t\t\treturn `/${progress.exerciseNumber.toString().padStart(2, '0')}/finished`\n\t\tdefault:\n\t\t\treturn ''\n\t}\n}\n\nexport default function AdminLayout({\n\tloaderData: data,\n}: Route.ComponentProps) {\n\tconst navigation = useNavigation()\n\tconst epicProgress = useEpicProgress()\n\n\tconst isStartingInspector = navigation.formData?.get('intent') === 'inspect'\n\tconst isStoppingInspector =\n\t\tnavigation.formData?.get('intent') === 'stop-inspect'\n\n\tconst progressStatus = {\n\t\tcompleted: 'bg-blue-500',\n\t\tincomplete: 'bg-yellow-500',\n\t}\n\n\treturn (\n\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t<div>\n\t\t\t\t<h2 className=\"text-lg font-bold\">Progress</h2>\n\t\t\t\t{epicProgress ? (\n\t\t\t\t\t<ul className=\"flex max-h-72 flex-col gap-2 overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t\t{epicProgress.sort(sortProgress).map((progress) => {\n\t\t\t\t\t\t\tconst status = progress.epicCompletedAt\n\t\t\t\t\t\t\t\t? 'completed'\n\t\t\t\t\t\t\t\t: 'incomplete'\n\t\t\t\t\t\t\tconst label = [\n\t\t\t\t\t\t\t\tprogress.epicLessonSlug,\n\t\t\t\t\t\t\t\tprogress.epicCompletedAt\n\t\t\t\t\t\t\t\t\t? `(${progress.epicCompletedAt})`\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t\t.join(' ')\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\tkey={progress.epicLessonSlug}\n\t\t\t\t\t\t\t\t\tclassName=\"flex items-center gap-2\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName={`h-3 w-3 rounded-full ${progressStatus[status]}`}\n\t\t\t\t\t\t\t\t\t\ttitle={status}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{progress.type === 'unknown' ? (\n\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center gap-1\">\n\t\t\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-red-500\">\n\t\t\t\t\t\t\t\t\t\t\t\t<SimpleTooltip content=\"This video is in the workshop on EpicWeb.dev, but not in the local workshop.\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon name=\"Close\" />\n\t\t\t\t\t\t\t\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<Link to={linkProgress(progress)}>{label}</Link>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<Link to={progress.epicLessonUrl}>\n\t\t\t\t\t\t\t\t\t\t<Icon name=\"ExternalLink\"></Icon>\n\t\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ul>\n\t\t\t\t) : (\n\t\t\t\t\t<p>No progress data</p>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<h2 className=\"text-lg font-bold\">Commands</h2>\n\t\t\t\t<ul className=\"max-h-48 overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<Form method=\"POST\">\n\t\t\t\t\t\t\t<button name=\"intent\" value=\"clear-caches\">\n\t\t\t\t\t\t\t\tClear local caches\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Form>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<Form method=\"POST\">\n\t\t\t\t\t\t\t<button name=\"intent\" value=\"clear-data\">\n\t\t\t\t\t\t\t\tClear all local data (including auth data)\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Form>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t{data.inspectorRunning ? (\n\t\t\t\t\t\t\t<Form method=\"POST\">\n\t\t\t\t\t\t\t\t<button name=\"intent\" value=\"stop-inspect\">\n\t\t\t\t\t\t\t\t\t{isStartingInspector\n\t\t\t\t\t\t\t\t\t\t? 'Stopping inspector...'\n\t\t\t\t\t\t\t\t\t\t: 'Stop inspector'}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</Form>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Form method=\"POST\">\n\t\t\t\t\t\t\t\t<button name=\"intent\" value=\"inspect\">\n\t\t\t\t\t\t\t\t\t{isStoppingInspector\n\t\t\t\t\t\t\t\t\t\t? 'Starting inspector...'\n\t\t\t\t\t\t\t\t\t\t: 'Start inspector'}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</Form>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<h2 className=\"text-lg font-bold\">Apps</h2>\n\t\t\t\t<ul className=\"max-h-48 list-none overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t{data.apps.map((app) => (\n\t\t\t\t\t\t<li key={app.name} className=\"flex items-center gap-2 py-1\">\n\t\t\t\t\t\t\t{data.processes[app.name] ? (\n\t\t\t\t\t\t\t\t<Pinger status=\"running\" />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Pinger status=\"stopped\" />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{app.name}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<h2 className=\"text-lg font-bold\">Processes</h2>\n\t\t\t\t<ul className=\"overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t{Object.entries(data.processes).map(([key, process]) => (\n\t\t\t\t\t\t<li key={key}>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t{key} - Port: {process.port} - PID {process.pid} -{' '}\n\t\t\t\t\t\t\t\t{process.color}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<h2 className=\"text-lg font-bold\">Test Processes</h2>\n\t\t\t\t<ul className=\"overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t{Object.entries(data.testProcesses).map(([key, process]) => (\n\t\t\t\t\t\t<li key={key}>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t{key} - PID {process.pid} - Exit code: {process.exitCode}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\nfunction Pinger({\n\tstatus,\n}: {\n\tstatus: 'running' | 'starting' | 'stopped' | 'taken'\n}) {\n\tconst colors = {\n\t\trunning: {\n\t\t\tpinger: 'bg-green-400',\n\t\t\tcircle: 'bg-green-500',\n\t\t},\n\t\tstarting: {\n\t\t\tpinger: 'bg-sky-400',\n\t\t\tcircle: 'bg-sky-500',\n\t\t},\n\t\tstopped: {\n\t\t\tcircle: 'bg-gray-500',\n\t\t},\n\t\ttaken: {\n\t\t\tpinger: 'bg-red-400',\n\t\t\tcircle: 'bg-red-500',\n\t\t},\n\t}[status]\n\treturn (\n\t\t<span className=\"relative flex h-3 w-3\">\n\t\t\t{colors.pinger ? (\n\t\t\t\t<span\n\t\t\t\t\tclassName={`absolute inline-flex h-full w-full animate-ping rounded-full ${colors.pinger} opacity-75`}\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t\t<span\n\t\t\t\tclassName={`relative inline-flex h-3 w-3 rounded-full ${colors.circle}`}\n\t\t\t/>\n\t\t</span>\n\t)\n}\n"],"names":["handle","getSitemapEntries","meta","matches","title","find","m","id","data","workshopTitle","sortProgress","a","b","type","linkProgress","progress","exerciseNumber","toString","padStart","stepNumber","index","_UNSAFE_withComponentProps","loaderData","navigation","useNavigation","epicProgress","useEpicProgress","isStartingInspector","formData","get","isStoppingInspector","progressStatus","completed","incomplete","jsxs","className","children","jsx","sort","map","status","epicCompletedAt","label","epicLessonSlug","filter","Boolean","join","SimpleTooltip","content","Icon","name","Link","to","epicLessonUrl","Form","method","value","inspectorRunning","apps","app","processes","Pinger","Object","entries","key","process","port","pid","color","testProcesses","exitCode","colors","running","pinger","circle","starting","stopped","taken"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{R as a}from"./chunk-QMGIS6GS-D3fke51R.js";import{R as Ut}from"./index-C4WpsDjj.js";function Xt(r){if(typeof document>"u")return;let o=document.head||document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",o.appendChild(e),e.styleSheet?e.styleSheet.cssText=r:e.appendChild(document.createTextNode(r))}const Wt=r=>{switch(r){case"success":return Gt;case"info":return Jt;case"warning":return Qt;case"error":return Zt;default:return null}},Kt=Array(12).fill(0),qt=({visible:r,className:o})=>a.createElement("div",{className:["sonner-loading-wrapper",o].filter(Boolean).join(" "),"data-visible":r},a.createElement("div",{className:"sonner-spinner"},Kt.map((e,s)=>a.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${s}`})))),Gt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),Qt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),Jt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),Zt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),te=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),a.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),ee=()=>{const[r,o]=a.useState(document.hidden);return a.useEffect(()=>{const e=()=>{o(document.hidden)};return document.addEventListener("visibilitychange",e),()=>window.removeEventListener("visibilitychange",e)},[]),r};let yt=1;class ae{constructor(){this.subscribe=o=>(this.subscribers.push(o),()=>{const e=this.subscribers.indexOf(o);this.subscribers.splice(e,1)}),this.publish=o=>{this.subscribers.forEach(e=>e(o))},this.addToast=o=>{this.publish(o),this.toasts=[...this.toasts,o]},this.create=o=>{var e;const{message:s,...R}=o,c=typeof o?.id=="number"||((e=o.id)==null?void 0:e.length)>0?o.id:yt++,v=this.toasts.find(h=>h.id===c),N=o.dismissible===void 0?!0:o.dismissible;return this.dismissedToasts.has(c)&&this.dismissedToasts.delete(c),v?this.toasts=this.toasts.map(h=>h.id===c?(this.publish({...h,...o,id:c,title:s}),{...h,...o,id:c,dismissible:N,title:s}):h):this.addToast({title:s,...R,dismissible:N,id:c}),c},this.dismiss=o=>(o?(this.dismissedToasts.add(o),requestAnimationFrame(()=>this.subscribers.forEach(e=>e({id:o,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(s=>s({id:e.id,dismiss:!0}))}),o),this.message=(o,e)=>this.create({...e,message:o}),this.error=(o,e)=>this.create({...e,message:o,type:"error"}),this.success=(o,e)=>this.create({...e,type:"success",message:o}),this.info=(o,e)=>this.create({...e,type:"info",message:o}),this.warning=(o,e)=>this.create({...e,type:"warning",message:o}),this.loading=(o,e)=>this.create({...e,type:"loading",message:o}),this.promise=(o,e)=>{if(!e)return;let s;e.loading!==void 0&&(s=this.create({...e,promise:o,type:"loading",message:e.loading,description:typeof e.description!="function"?e.description:void 0}));const R=Promise.resolve(o instanceof Function?o():o);let c=s!==void 0,v;const N=R.then(async i=>{if(v=["resolve",i],a.isValidElement(i))c=!1,this.create({id:s,type:"default",message:i});else if(se(i)&&!i.ok){c=!1;const t=typeof e.error=="function"?await e.error(`HTTP error! status: ${i.status}`):e.error,C=typeof e.description=="function"?await e.description(`HTTP error! status: ${i.status}`):e.description,w=typeof t=="object"&&!a.isValidElement(t)?t:{message:t};this.create({id:s,type:"error",description:C,...w})}else if(i instanceof Error){c=!1;const t=typeof e.error=="function"?await e.error(i):e.error,C=typeof e.description=="function"?await e.description(i):e.description,w=typeof t=="object"&&!a.isValidElement(t)?t:{message:t};this.create({id:s,type:"error",description:C,...w})}else if(e.success!==void 0){c=!1;const t=typeof e.success=="function"?await e.success(i):e.success,C=typeof e.description=="function"?await e.description(i):e.description,w=typeof t=="object"&&!a.isValidElement(t)?t:{message:t};this.create({id:s,type:"success",description:C,...w})}}).catch(async i=>{if(v=["reject",i],e.error!==void 0){c=!1;const x=typeof e.error=="function"?await e.error(i):e.error,t=typeof e.description=="function"?await e.description(i):e.description,z=typeof x=="object"&&!a.isValidElement(x)?x:{message:x};this.create({id:s,type:"error",description:t,...z})}}).finally(()=>{c&&(this.dismiss(s),s=void 0),e.finally==null||e.finally.call(e)}),h=()=>new Promise((i,x)=>N.then(()=>v[0]==="reject"?x(v[1]):i(v[1])).catch(x));return typeof s!="string"&&typeof s!="number"?{unwrap:h}:Object.assign(s,{unwrap:h})},this.custom=(o,e)=>{const s=e?.id||yt++;return this.create({jsx:o(s),id:s,...e}),s},this.getActiveToasts=()=>this.toasts.filter(o=>!this.dismissedToasts.has(o.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const E=new ae,oe=(r,o)=>{const e=o?.id||yt++;return E.addToast({title:r,...o,id:e}),e},se=r=>r&&typeof r=="object"&&"ok"in r&&typeof r.ok=="boolean"&&"status"in r&&typeof r.status=="number",ne=oe,re=()=>E.toasts,ie=()=>E.getActiveToasts(),xe=Object.assign(ne,{success:E.success,info:E.info,warning:E.warning,error:E.error,custom:E.custom,message:E.message,promise:E.promise,dismiss:E.dismiss,loading:E.loading},{getHistory:re,getToasts:ie});Xt("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function ct(r){return r.label!==void 0}const le=3,de="24px",ce="16px",Bt=4e3,ue=356,fe=14,me=45,pe=200;function O(...r){return r.filter(Boolean).join(" ")}function ge(r){const[o,e]=r.split("-"),s=[];return o&&s.push(o),e&&s.push(e),s}const he=r=>{var o,e,s,R,c,v,N,h,i;const{invert:x,toast:t,unstyled:C,interacting:z,setHeights:w,visibleToasts:ut,heights:u,index:P,toasts:st,expanded:Q,removeToast:nt,defaultRichColors:A,closeButton:U,style:ft,cancelButtonStyle:rt,actionButtonStyle:mt,className:pt="",descriptionClassName:j="",duration:X,position:J,gap:gt,expandByDefault:H,classNames:l,icons:D,closeButtonAriaLabel:L="Close toast"}=r,[B,Z]=a.useState(null),[d,m]=a.useState(null),[f,k]=a.useState(!1),[F,p]=a.useState(!1),[tt,W]=a.useState(!1),[et,at]=a.useState(!1),[It,wt]=a.useState(!1),[Ct,ht]=a.useState(0),[At,xt]=a.useState(0),ot=a.useRef(t.duration||X||Bt),Et=a.useRef(null),Y=a.useRef(null),Ht=P===0,Ot=P+1<=ut,T=t.type,K=t.dismissible!==!1,zt=t.className||"",Pt=t.descriptionClassName||"",it=a.useMemo(()=>u.findIndex(n=>n.toastId===t.id)||0,[u,t.id]),jt=a.useMemo(()=>{var n;return(n=t.closeButton)!=null?n:U},[t.closeButton,U]),Tt=a.useMemo(()=>t.duration||X||Bt,[t.duration,X]),bt=a.useRef(0),q=a.useRef(0),St=a.useRef(0),G=a.useRef(null),[Lt,Yt]=J.split("-"),Nt=a.useMemo(()=>u.reduce((n,g,y)=>y>=it?n:n+g.height,0),[u,it]),kt=ee(),$t=t.invert||x,vt=T==="loading";q.current=a.useMemo(()=>it*gt+Nt,[it,Nt]),a.useEffect(()=>{ot.current=Tt},[Tt]),a.useEffect(()=>{k(!0)},[]),a.useEffect(()=>{const n=Y.current;if(n){const g=n.getBoundingClientRect().height;return xt(g),w(y=>[{toastId:t.id,height:g,position:t.position},...y]),()=>w(y=>y.filter(S=>S.toastId!==t.id))}},[w,t.id]),a.useLayoutEffect(()=>{if(!f)return;const n=Y.current,g=n.style.height;n.style.height="auto";const y=n.getBoundingClientRect().height;n.style.height=g,xt(y),w(S=>S.find(b=>b.toastId===t.id)?S.map(b=>b.toastId===t.id?{...b,height:y}:b):[{toastId:t.id,height:y,position:t.position},...S])},[f,t.title,t.description,w,t.id,t.jsx,t.action,t.cancel]);const $=a.useCallback(()=>{p(!0),ht(q.current),w(n=>n.filter(g=>g.toastId!==t.id)),setTimeout(()=>{nt(t)},pe)},[t,nt,w,q]);a.useEffect(()=>{if(t.promise&&T==="loading"||t.duration===1/0||t.type==="loading")return;let n;return Q||z||kt?(()=>{if(St.current<bt.current){const S=new Date().getTime()-bt.current;ot.current=ot.current-S}St.current=new Date().getTime()})():(()=>{ot.current!==1/0&&(bt.current=new Date().getTime(),n=setTimeout(()=>{t.onAutoClose==null||t.onAutoClose.call(t,t),$()},ot.current))})(),()=>clearTimeout(n)},[Q,z,t,T,kt,$]),a.useEffect(()=>{t.delete&&($(),t.onDismiss==null||t.onDismiss.call(t,t))},[$,t.delete]);function Ft(){var n;if(D?.loading){var g;return a.createElement("div",{className:O(l?.loader,t==null||(g=t.classNames)==null?void 0:g.loader,"sonner-loader"),"data-visible":T==="loading"},D.loading)}return a.createElement(qt,{className:O(l?.loader,t==null||(n=t.classNames)==null?void 0:n.loader),visible:T==="loading"})}const Vt=t.icon||D?.[T]||Wt(T);var _t,Rt;return a.createElement("li",{tabIndex:0,ref:Y,className:O(pt,zt,l?.toast,t==null||(o=t.classNames)==null?void 0:o.toast,l?.default,l?.[T],t==null||(e=t.classNames)==null?void 0:e[T]),"data-sonner-toast":"","data-rich-colors":(_t=t.richColors)!=null?_t:A,"data-styled":!(t.jsx||t.unstyled||C),"data-mounted":f,"data-promise":!!t.promise,"data-swiped":It,"data-removed":F,"data-visible":Ot,"data-y-position":Lt,"data-x-position":Yt,"data-index":P,"data-front":Ht,"data-swiping":tt,"data-dismissible":K,"data-type":T,"data-invert":$t,"data-swipe-out":et,"data-swipe-direction":d,"data-expanded":!!(Q||H&&f),style:{"--index":P,"--toasts-before":P,"--z-index":st.length-P,"--offset":`${F?Ct:q.current}px`,"--initial-height":H?"auto":`${At}px`,...ft,...t.style},onDragEnd:()=>{W(!1),Z(null),G.current=null},onPointerDown:n=>{n.button!==2&&(vt||!K||(Et.current=new Date,ht(q.current),n.target.setPointerCapture(n.pointerId),n.target.tagName!=="BUTTON"&&(W(!0),G.current={x:n.clientX,y:n.clientY})))},onPointerUp:()=>{var n,g,y;if(et||!K)return;G.current=null;const S=Number(((n=Y.current)==null?void 0:n.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),lt=Number(((g=Y.current)==null?void 0:g.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),b=new Date().getTime()-((y=Et.current)==null?void 0:y.getTime()),_=B==="x"?S:lt,dt=Math.abs(_)/b;if(Math.abs(_)>=me||dt>.11){ht(q.current),t.onDismiss==null||t.onDismiss.call(t,t),m(B==="x"?S>0?"right":"left":lt>0?"down":"up"),$(),at(!0);return}else{var M,I;(M=Y.current)==null||M.style.setProperty("--swipe-amount-x","0px"),(I=Y.current)==null||I.style.setProperty("--swipe-amount-y","0px")}wt(!1),W(!1),Z(null)},onPointerMove:n=>{var g,y,S;if(!G.current||!K||((g=window.getSelection())==null?void 0:g.toString().length)>0)return;const b=n.clientY-G.current.y,_=n.clientX-G.current.x;var dt;const M=(dt=r.swipeDirections)!=null?dt:ge(J);!B&&(Math.abs(_)>1||Math.abs(b)>1)&&Z(Math.abs(_)>Math.abs(b)?"x":"y");let I={x:0,y:0};const Dt=V=>1/(1.5+Math.abs(V)/20);if(B==="y"){if(M.includes("top")||M.includes("bottom"))if(M.includes("top")&&b<0||M.includes("bottom")&&b>0)I.y=b;else{const V=b*Dt(b);I.y=Math.abs(V)<Math.abs(b)?V:b}}else if(B==="x"&&(M.includes("left")||M.includes("right")))if(M.includes("left")&&_<0||M.includes("right")&&_>0)I.x=_;else{const V=_*Dt(_);I.x=Math.abs(V)<Math.abs(_)?V:_}(Math.abs(I.x)>0||Math.abs(I.y)>0)&&wt(!0),(y=Y.current)==null||y.style.setProperty("--swipe-amount-x",`${I.x}px`),(S=Y.current)==null||S.style.setProperty("--swipe-amount-y",`${I.y}px`)}},jt&&!t.jsx&&T!=="loading"?a.createElement("button",{"aria-label":L,"data-disabled":vt,"data-close-button":!0,onClick:vt||!K?()=>{}:()=>{$(),t.onDismiss==null||t.onDismiss.call(t,t)},className:O(l?.closeButton,t==null||(s=t.classNames)==null?void 0:s.closeButton)},(Rt=D?.close)!=null?Rt:te):null,(T||t.icon||t.promise)&&t.icon!==null&&(D?.[T]!==null||t.icon)?a.createElement("div",{"data-icon":"",className:O(l?.icon,t==null||(R=t.classNames)==null?void 0:R.icon)},t.promise||t.type==="loading"&&!t.icon?t.icon||Ft():null,t.type!=="loading"?Vt:null):null,a.createElement("div",{"data-content":"",className:O(l?.content,t==null||(c=t.classNames)==null?void 0:c.content)},a.createElement("div",{"data-title":"",className:O(l?.title,t==null||(v=t.classNames)==null?void 0:v.title)},t.jsx?t.jsx:typeof t.title=="function"?t.title():t.title),t.description?a.createElement("div",{"data-description":"",className:O(j,Pt,l?.description,t==null||(N=t.classNames)==null?void 0:N.description)},typeof t.description=="function"?t.description():t.description):null),a.isValidElement(t.cancel)?t.cancel:t.cancel&&ct(t.cancel)?a.createElement("button",{"data-button":!0,"data-cancel":!0,style:t.cancelButtonStyle||rt,onClick:n=>{ct(t.cancel)&&K&&(t.cancel.onClick==null||t.cancel.onClick.call(t.cancel,n),$())},className:O(l?.cancelButton,t==null||(h=t.classNames)==null?void 0:h.cancelButton)},t.cancel.label):null,a.isValidElement(t.action)?t.action:t.action&&ct(t.action)?a.createElement("button",{"data-button":!0,"data-action":!0,style:t.actionButtonStyle||mt,onClick:n=>{ct(t.action)&&(t.action.onClick==null||t.action.onClick.call(t.action,n),!n.defaultPrevented&&$())},className:O(l?.actionButton,t==null||(i=t.classNames)==null?void 0:i.actionButton)},t.action.label):null)};function Mt(){if(typeof window>"u"||typeof document>"u")return"ltr";const r=document.documentElement.getAttribute("dir");return r==="auto"||!r?window.getComputedStyle(document.documentElement).direction:r}function be(r,o){const e={};return[r,o].forEach((s,R)=>{const c=R===1,v=c?"--mobile-offset":"--offset",N=c?ce:de;function h(i){["top","right","bottom","left"].forEach(x=>{e[`${v}-${x}`]=typeof i=="number"?`${i}px`:i})}typeof s=="number"||typeof s=="string"?h(s):typeof s=="object"?["top","right","bottom","left"].forEach(i=>{s[i]===void 0?e[`${v}-${i}`]=N:e[`${v}-${i}`]=typeof s[i]=="number"?`${s[i]}px`:s[i]}):h(N)}),e}const Ee=a.forwardRef(function(o,e){const{invert:s,position:R="bottom-right",hotkey:c=["altKey","KeyT"],expand:v,closeButton:N,className:h,offset:i,mobileOffset:x,theme:t="light",richColors:C,duration:z,style:w,visibleToasts:ut=le,toastOptions:u,dir:P=Mt(),gap:st=fe,icons:Q,containerAriaLabel:nt="Notifications"}=o,[A,U]=a.useState([]),ft=a.useMemo(()=>Array.from(new Set([R].concat(A.filter(d=>d.position).map(d=>d.position)))),[A,R]),[rt,mt]=a.useState([]),[pt,j]=a.useState(!1),[X,J]=a.useState(!1),[gt,H]=a.useState(t!=="system"?t:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),l=a.useRef(null),D=c.join("+").replace(/Key/g,"").replace(/Digit/g,""),L=a.useRef(null),B=a.useRef(!1),Z=a.useCallback(d=>{U(m=>{var f;return(f=m.find(k=>k.id===d.id))!=null&&f.delete||E.dismiss(d.id),m.filter(({id:k})=>k!==d.id)})},[]);return a.useEffect(()=>E.subscribe(d=>{if(d.dismiss){requestAnimationFrame(()=>{U(m=>m.map(f=>f.id===d.id?{...f,delete:!0}:f))});return}setTimeout(()=>{Ut.flushSync(()=>{U(m=>{const f=m.findIndex(k=>k.id===d.id);return f!==-1?[...m.slice(0,f),{...m[f],...d},...m.slice(f+1)]:[d,...m]})})})}),[A]),a.useEffect(()=>{if(t!=="system"){H(t);return}if(t==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?H("dark"):H("light")),typeof window>"u")return;const d=window.matchMedia("(prefers-color-scheme: dark)");try{d.addEventListener("change",({matches:m})=>{H(m?"dark":"light")})}catch{d.addListener(({matches:f})=>{try{H(f?"dark":"light")}catch(k){console.error(k)}})}},[t]),a.useEffect(()=>{A.length<=1&&j(!1)},[A]),a.useEffect(()=>{const d=m=>{var f;if(c.every(p=>m[p]||m.code===p)){var F;j(!0),(F=l.current)==null||F.focus()}m.code==="Escape"&&(document.activeElement===l.current||(f=l.current)!=null&&f.contains(document.activeElement))&&j(!1)};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[c]),a.useEffect(()=>{if(l.current)return()=>{L.current&&(L.current.focus({preventScroll:!0}),L.current=null,B.current=!1)}},[l.current]),a.createElement("section",{ref:e,"aria-label":`${nt} ${D}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},ft.map((d,m)=>{var f;const[k,F]=d.split("-");return A.length?a.createElement("ol",{key:d,dir:P==="auto"?Mt():P,tabIndex:-1,ref:l,className:h,"data-sonner-toaster":!0,"data-sonner-theme":gt,"data-y-position":k,"data-x-position":F,style:{"--front-toast-height":`${((f=rt[0])==null?void 0:f.height)||0}px`,"--width":`${ue}px`,"--gap":`${st}px`,...w,...be(i,x)},onBlur:p=>{B.current&&!p.currentTarget.contains(p.relatedTarget)&&(B.current=!1,L.current&&(L.current.focus({preventScroll:!0}),L.current=null))},onFocus:p=>{p.target instanceof HTMLElement&&p.target.dataset.dismissible==="false"||B.current||(B.current=!0,L.current=p.relatedTarget)},onMouseEnter:()=>j(!0),onMouseMove:()=>j(!0),onMouseLeave:()=>{X||j(!1)},onDragEnd:()=>j(!1),onPointerDown:p=>{p.target instanceof HTMLElement&&p.target.dataset.dismissible==="false"||J(!0)},onPointerUp:()=>J(!1)},A.filter(p=>!p.position&&m===0||p.position===d).map((p,tt)=>{var W,et;return a.createElement(he,{key:p.id,icons:Q,index:tt,toast:p,defaultRichColors:C,duration:(W=u?.duration)!=null?W:z,className:u?.className,descriptionClassName:u?.descriptionClassName,invert:s,visibleToasts:ut,closeButton:(et=u?.closeButton)!=null?et:N,interacting:X,position:d,style:u?.style,unstyled:u?.unstyled,classNames:u?.classNames,cancelButtonStyle:u?.cancelButtonStyle,actionButtonStyle:u?.actionButtonStyle,closeButtonAriaLabel:u?.closeButtonAriaLabel,removeToast:Z,toasts:A.filter(at=>at.position==p.position),heights:rt.filter(at=>at.position==p.position),setHeights:mt,expandByDefault:v,gap:st,expanded:pt,swipeDirections:o.swipeDirections})})):null}))});export{Ee as T,xe as t};
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{R as a}from"./chunk-QMGIS6GS-Cnm5uIBY.js";import{R as Ut}from"./index-kpJjamgW.js";function Xt(r){if(typeof document>"u")return;let o=document.head||document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",o.appendChild(e),e.styleSheet?e.styleSheet.cssText=r:e.appendChild(document.createTextNode(r))}const Wt=r=>{switch(r){case"success":return Gt;case"info":return Jt;case"warning":return Qt;case"error":return Zt;default:return null}},Kt=Array(12).fill(0),qt=({visible:r,className:o})=>a.createElement("div",{className:["sonner-loading-wrapper",o].filter(Boolean).join(" "),"data-visible":r},a.createElement("div",{className:"sonner-spinner"},Kt.map((e,s)=>a.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${s}`})))),Gt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),Qt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),Jt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),Zt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),te=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),a.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),ee=()=>{const[r,o]=a.useState(document.hidden);return a.useEffect(()=>{const e=()=>{o(document.hidden)};return document.addEventListener("visibilitychange",e),()=>window.removeEventListener("visibilitychange",e)},[]),r};let yt=1;class ae{constructor(){this.subscribe=o=>(this.subscribers.push(o),()=>{const e=this.subscribers.indexOf(o);this.subscribers.splice(e,1)}),this.publish=o=>{this.subscribers.forEach(e=>e(o))},this.addToast=o=>{this.publish(o),this.toasts=[...this.toasts,o]},this.create=o=>{var e;const{message:s,...R}=o,c=typeof o?.id=="number"||((e=o.id)==null?void 0:e.length)>0?o.id:yt++,v=this.toasts.find(h=>h.id===c),N=o.dismissible===void 0?!0:o.dismissible;return this.dismissedToasts.has(c)&&this.dismissedToasts.delete(c),v?this.toasts=this.toasts.map(h=>h.id===c?(this.publish({...h,...o,id:c,title:s}),{...h,...o,id:c,dismissible:N,title:s}):h):this.addToast({title:s,...R,dismissible:N,id:c}),c},this.dismiss=o=>(o?(this.dismissedToasts.add(o),requestAnimationFrame(()=>this.subscribers.forEach(e=>e({id:o,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(s=>s({id:e.id,dismiss:!0}))}),o),this.message=(o,e)=>this.create({...e,message:o}),this.error=(o,e)=>this.create({...e,message:o,type:"error"}),this.success=(o,e)=>this.create({...e,type:"success",message:o}),this.info=(o,e)=>this.create({...e,type:"info",message:o}),this.warning=(o,e)=>this.create({...e,type:"warning",message:o}),this.loading=(o,e)=>this.create({...e,type:"loading",message:o}),this.promise=(o,e)=>{if(!e)return;let s;e.loading!==void 0&&(s=this.create({...e,promise:o,type:"loading",message:e.loading,description:typeof e.description!="function"?e.description:void 0}));const R=Promise.resolve(o instanceof Function?o():o);let c=s!==void 0,v;const N=R.then(async i=>{if(v=["resolve",i],a.isValidElement(i))c=!1,this.create({id:s,type:"default",message:i});else if(se(i)&&!i.ok){c=!1;const t=typeof e.error=="function"?await e.error(`HTTP error! status: ${i.status}`):e.error,C=typeof e.description=="function"?await e.description(`HTTP error! status: ${i.status}`):e.description,w=typeof t=="object"&&!a.isValidElement(t)?t:{message:t};this.create({id:s,type:"error",description:C,...w})}else if(i instanceof Error){c=!1;const t=typeof e.error=="function"?await e.error(i):e.error,C=typeof e.description=="function"?await e.description(i):e.description,w=typeof t=="object"&&!a.isValidElement(t)?t:{message:t};this.create({id:s,type:"error",description:C,...w})}else if(e.success!==void 0){c=!1;const t=typeof e.success=="function"?await e.success(i):e.success,C=typeof e.description=="function"?await e.description(i):e.description,w=typeof t=="object"&&!a.isValidElement(t)?t:{message:t};this.create({id:s,type:"success",description:C,...w})}}).catch(async i=>{if(v=["reject",i],e.error!==void 0){c=!1;const x=typeof e.error=="function"?await e.error(i):e.error,t=typeof e.description=="function"?await e.description(i):e.description,z=typeof x=="object"&&!a.isValidElement(x)?x:{message:x};this.create({id:s,type:"error",description:t,...z})}}).finally(()=>{c&&(this.dismiss(s),s=void 0),e.finally==null||e.finally.call(e)}),h=()=>new Promise((i,x)=>N.then(()=>v[0]==="reject"?x(v[1]):i(v[1])).catch(x));return typeof s!="string"&&typeof s!="number"?{unwrap:h}:Object.assign(s,{unwrap:h})},this.custom=(o,e)=>{const s=e?.id||yt++;return this.create({jsx:o(s),id:s,...e}),s},this.getActiveToasts=()=>this.toasts.filter(o=>!this.dismissedToasts.has(o.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const E=new ae,oe=(r,o)=>{const e=o?.id||yt++;return E.addToast({title:r,...o,id:e}),e},se=r=>r&&typeof r=="object"&&"ok"in r&&typeof r.ok=="boolean"&&"status"in r&&typeof r.status=="number",ne=oe,re=()=>E.toasts,ie=()=>E.getActiveToasts(),xe=Object.assign(ne,{success:E.success,info:E.info,warning:E.warning,error:E.error,custom:E.custom,message:E.message,promise:E.promise,dismiss:E.dismiss,loading:E.loading},{getHistory:re,getToasts:ie});Xt("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function ct(r){return r.label!==void 0}const le=3,de="24px",ce="16px",Bt=4e3,ue=356,fe=14,me=45,pe=200;function O(...r){return r.filter(Boolean).join(" ")}function ge(r){const[o,e]=r.split("-"),s=[];return o&&s.push(o),e&&s.push(e),s}const he=r=>{var o,e,s,R,c,v,N,h,i;const{invert:x,toast:t,unstyled:C,interacting:z,setHeights:w,visibleToasts:ut,heights:u,index:P,toasts:st,expanded:Q,removeToast:nt,defaultRichColors:A,closeButton:U,style:ft,cancelButtonStyle:rt,actionButtonStyle:mt,className:pt="",descriptionClassName:j="",duration:X,position:J,gap:gt,expandByDefault:H,classNames:l,icons:D,closeButtonAriaLabel:L="Close toast"}=r,[B,Z]=a.useState(null),[d,m]=a.useState(null),[f,k]=a.useState(!1),[F,p]=a.useState(!1),[tt,W]=a.useState(!1),[et,at]=a.useState(!1),[It,wt]=a.useState(!1),[Ct,ht]=a.useState(0),[At,xt]=a.useState(0),ot=a.useRef(t.duration||X||Bt),Et=a.useRef(null),Y=a.useRef(null),Ht=P===0,Ot=P+1<=ut,T=t.type,K=t.dismissible!==!1,zt=t.className||"",Pt=t.descriptionClassName||"",it=a.useMemo(()=>u.findIndex(n=>n.toastId===t.id)||0,[u,t.id]),jt=a.useMemo(()=>{var n;return(n=t.closeButton)!=null?n:U},[t.closeButton,U]),Tt=a.useMemo(()=>t.duration||X||Bt,[t.duration,X]),bt=a.useRef(0),q=a.useRef(0),St=a.useRef(0),G=a.useRef(null),[Lt,Yt]=J.split("-"),Nt=a.useMemo(()=>u.reduce((n,g,y)=>y>=it?n:n+g.height,0),[u,it]),kt=ee(),$t=t.invert||x,vt=T==="loading";q.current=a.useMemo(()=>it*gt+Nt,[it,Nt]),a.useEffect(()=>{ot.current=Tt},[Tt]),a.useEffect(()=>{k(!0)},[]),a.useEffect(()=>{const n=Y.current;if(n){const g=n.getBoundingClientRect().height;return xt(g),w(y=>[{toastId:t.id,height:g,position:t.position},...y]),()=>w(y=>y.filter(S=>S.toastId!==t.id))}},[w,t.id]),a.useLayoutEffect(()=>{if(!f)return;const n=Y.current,g=n.style.height;n.style.height="auto";const y=n.getBoundingClientRect().height;n.style.height=g,xt(y),w(S=>S.find(b=>b.toastId===t.id)?S.map(b=>b.toastId===t.id?{...b,height:y}:b):[{toastId:t.id,height:y,position:t.position},...S])},[f,t.title,t.description,w,t.id,t.jsx,t.action,t.cancel]);const $=a.useCallback(()=>{p(!0),ht(q.current),w(n=>n.filter(g=>g.toastId!==t.id)),setTimeout(()=>{nt(t)},pe)},[t,nt,w,q]);a.useEffect(()=>{if(t.promise&&T==="loading"||t.duration===1/0||t.type==="loading")return;let n;return Q||z||kt?(()=>{if(St.current<bt.current){const S=new Date().getTime()-bt.current;ot.current=ot.current-S}St.current=new Date().getTime()})():(()=>{ot.current!==1/0&&(bt.current=new Date().getTime(),n=setTimeout(()=>{t.onAutoClose==null||t.onAutoClose.call(t,t),$()},ot.current))})(),()=>clearTimeout(n)},[Q,z,t,T,kt,$]),a.useEffect(()=>{t.delete&&($(),t.onDismiss==null||t.onDismiss.call(t,t))},[$,t.delete]);function Ft(){var n;if(D?.loading){var g;return a.createElement("div",{className:O(l?.loader,t==null||(g=t.classNames)==null?void 0:g.loader,"sonner-loader"),"data-visible":T==="loading"},D.loading)}return a.createElement(qt,{className:O(l?.loader,t==null||(n=t.classNames)==null?void 0:n.loader),visible:T==="loading"})}const Vt=t.icon||D?.[T]||Wt(T);var _t,Rt;return a.createElement("li",{tabIndex:0,ref:Y,className:O(pt,zt,l?.toast,t==null||(o=t.classNames)==null?void 0:o.toast,l?.default,l?.[T],t==null||(e=t.classNames)==null?void 0:e[T]),"data-sonner-toast":"","data-rich-colors":(_t=t.richColors)!=null?_t:A,"data-styled":!(t.jsx||t.unstyled||C),"data-mounted":f,"data-promise":!!t.promise,"data-swiped":It,"data-removed":F,"data-visible":Ot,"data-y-position":Lt,"data-x-position":Yt,"data-index":P,"data-front":Ht,"data-swiping":tt,"data-dismissible":K,"data-type":T,"data-invert":$t,"data-swipe-out":et,"data-swipe-direction":d,"data-expanded":!!(Q||H&&f),style:{"--index":P,"--toasts-before":P,"--z-index":st.length-P,"--offset":`${F?Ct:q.current}px`,"--initial-height":H?"auto":`${At}px`,...ft,...t.style},onDragEnd:()=>{W(!1),Z(null),G.current=null},onPointerDown:n=>{n.button!==2&&(vt||!K||(Et.current=new Date,ht(q.current),n.target.setPointerCapture(n.pointerId),n.target.tagName!=="BUTTON"&&(W(!0),G.current={x:n.clientX,y:n.clientY})))},onPointerUp:()=>{var n,g,y;if(et||!K)return;G.current=null;const S=Number(((n=Y.current)==null?void 0:n.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),lt=Number(((g=Y.current)==null?void 0:g.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),b=new Date().getTime()-((y=Et.current)==null?void 0:y.getTime()),_=B==="x"?S:lt,dt=Math.abs(_)/b;if(Math.abs(_)>=me||dt>.11){ht(q.current),t.onDismiss==null||t.onDismiss.call(t,t),m(B==="x"?S>0?"right":"left":lt>0?"down":"up"),$(),at(!0);return}else{var M,I;(M=Y.current)==null||M.style.setProperty("--swipe-amount-x","0px"),(I=Y.current)==null||I.style.setProperty("--swipe-amount-y","0px")}wt(!1),W(!1),Z(null)},onPointerMove:n=>{var g,y,S;if(!G.current||!K||((g=window.getSelection())==null?void 0:g.toString().length)>0)return;const b=n.clientY-G.current.y,_=n.clientX-G.current.x;var dt;const M=(dt=r.swipeDirections)!=null?dt:ge(J);!B&&(Math.abs(_)>1||Math.abs(b)>1)&&Z(Math.abs(_)>Math.abs(b)?"x":"y");let I={x:0,y:0};const Dt=V=>1/(1.5+Math.abs(V)/20);if(B==="y"){if(M.includes("top")||M.includes("bottom"))if(M.includes("top")&&b<0||M.includes("bottom")&&b>0)I.y=b;else{const V=b*Dt(b);I.y=Math.abs(V)<Math.abs(b)?V:b}}else if(B==="x"&&(M.includes("left")||M.includes("right")))if(M.includes("left")&&_<0||M.includes("right")&&_>0)I.x=_;else{const V=_*Dt(_);I.x=Math.abs(V)<Math.abs(_)?V:_}(Math.abs(I.x)>0||Math.abs(I.y)>0)&&wt(!0),(y=Y.current)==null||y.style.setProperty("--swipe-amount-x",`${I.x}px`),(S=Y.current)==null||S.style.setProperty("--swipe-amount-y",`${I.y}px`)}},jt&&!t.jsx&&T!=="loading"?a.createElement("button",{"aria-label":L,"data-disabled":vt,"data-close-button":!0,onClick:vt||!K?()=>{}:()=>{$(),t.onDismiss==null||t.onDismiss.call(t,t)},className:O(l?.closeButton,t==null||(s=t.classNames)==null?void 0:s.closeButton)},(Rt=D?.close)!=null?Rt:te):null,(T||t.icon||t.promise)&&t.icon!==null&&(D?.[T]!==null||t.icon)?a.createElement("div",{"data-icon":"",className:O(l?.icon,t==null||(R=t.classNames)==null?void 0:R.icon)},t.promise||t.type==="loading"&&!t.icon?t.icon||Ft():null,t.type!=="loading"?Vt:null):null,a.createElement("div",{"data-content":"",className:O(l?.content,t==null||(c=t.classNames)==null?void 0:c.content)},a.createElement("div",{"data-title":"",className:O(l?.title,t==null||(v=t.classNames)==null?void 0:v.title)},t.jsx?t.jsx:typeof t.title=="function"?t.title():t.title),t.description?a.createElement("div",{"data-description":"",className:O(j,Pt,l?.description,t==null||(N=t.classNames)==null?void 0:N.description)},typeof t.description=="function"?t.description():t.description):null),a.isValidElement(t.cancel)?t.cancel:t.cancel&&ct(t.cancel)?a.createElement("button",{"data-button":!0,"data-cancel":!0,style:t.cancelButtonStyle||rt,onClick:n=>{ct(t.cancel)&&K&&(t.cancel.onClick==null||t.cancel.onClick.call(t.cancel,n),$())},className:O(l?.cancelButton,t==null||(h=t.classNames)==null?void 0:h.cancelButton)},t.cancel.label):null,a.isValidElement(t.action)?t.action:t.action&&ct(t.action)?a.createElement("button",{"data-button":!0,"data-action":!0,style:t.actionButtonStyle||mt,onClick:n=>{ct(t.action)&&(t.action.onClick==null||t.action.onClick.call(t.action,n),!n.defaultPrevented&&$())},className:O(l?.actionButton,t==null||(i=t.classNames)==null?void 0:i.actionButton)},t.action.label):null)};function Mt(){if(typeof window>"u"||typeof document>"u")return"ltr";const r=document.documentElement.getAttribute("dir");return r==="auto"||!r?window.getComputedStyle(document.documentElement).direction:r}function be(r,o){const e={};return[r,o].forEach((s,R)=>{const c=R===1,v=c?"--mobile-offset":"--offset",N=c?ce:de;function h(i){["top","right","bottom","left"].forEach(x=>{e[`${v}-${x}`]=typeof i=="number"?`${i}px`:i})}typeof s=="number"||typeof s=="string"?h(s):typeof s=="object"?["top","right","bottom","left"].forEach(i=>{s[i]===void 0?e[`${v}-${i}`]=N:e[`${v}-${i}`]=typeof s[i]=="number"?`${s[i]}px`:s[i]}):h(N)}),e}const Ee=a.forwardRef(function(o,e){const{invert:s,position:R="bottom-right",hotkey:c=["altKey","KeyT"],expand:v,closeButton:N,className:h,offset:i,mobileOffset:x,theme:t="light",richColors:C,duration:z,style:w,visibleToasts:ut=le,toastOptions:u,dir:P=Mt(),gap:st=fe,icons:Q,containerAriaLabel:nt="Notifications"}=o,[A,U]=a.useState([]),ft=a.useMemo(()=>Array.from(new Set([R].concat(A.filter(d=>d.position).map(d=>d.position)))),[A,R]),[rt,mt]=a.useState([]),[pt,j]=a.useState(!1),[X,J]=a.useState(!1),[gt,H]=a.useState(t!=="system"?t:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),l=a.useRef(null),D=c.join("+").replace(/Key/g,"").replace(/Digit/g,""),L=a.useRef(null),B=a.useRef(!1),Z=a.useCallback(d=>{U(m=>{var f;return(f=m.find(k=>k.id===d.id))!=null&&f.delete||E.dismiss(d.id),m.filter(({id:k})=>k!==d.id)})},[]);return a.useEffect(()=>E.subscribe(d=>{if(d.dismiss){requestAnimationFrame(()=>{U(m=>m.map(f=>f.id===d.id?{...f,delete:!0}:f))});return}setTimeout(()=>{Ut.flushSync(()=>{U(m=>{const f=m.findIndex(k=>k.id===d.id);return f!==-1?[...m.slice(0,f),{...m[f],...d},...m.slice(f+1)]:[d,...m]})})})}),[A]),a.useEffect(()=>{if(t!=="system"){H(t);return}if(t==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?H("dark"):H("light")),typeof window>"u")return;const d=window.matchMedia("(prefers-color-scheme: dark)");try{d.addEventListener("change",({matches:m})=>{H(m?"dark":"light")})}catch{d.addListener(({matches:f})=>{try{H(f?"dark":"light")}catch(k){console.error(k)}})}},[t]),a.useEffect(()=>{A.length<=1&&j(!1)},[A]),a.useEffect(()=>{const d=m=>{var f;if(c.every(p=>m[p]||m.code===p)){var F;j(!0),(F=l.current)==null||F.focus()}m.code==="Escape"&&(document.activeElement===l.current||(f=l.current)!=null&&f.contains(document.activeElement))&&j(!1)};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[c]),a.useEffect(()=>{if(l.current)return()=>{L.current&&(L.current.focus({preventScroll:!0}),L.current=null,B.current=!1)}},[l.current]),a.createElement("section",{ref:e,"aria-label":`${nt} ${D}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},ft.map((d,m)=>{var f;const[k,F]=d.split("-");return A.length?a.createElement("ol",{key:d,dir:P==="auto"?Mt():P,tabIndex:-1,ref:l,className:h,"data-sonner-toaster":!0,"data-sonner-theme":gt,"data-y-position":k,"data-x-position":F,style:{"--front-toast-height":`${((f=rt[0])==null?void 0:f.height)||0}px`,"--width":`${ue}px`,"--gap":`${st}px`,...w,...be(i,x)},onBlur:p=>{B.current&&!p.currentTarget.contains(p.relatedTarget)&&(B.current=!1,L.current&&(L.current.focus({preventScroll:!0}),L.current=null))},onFocus:p=>{p.target instanceof HTMLElement&&p.target.dataset.dismissible==="false"||B.current||(B.current=!0,L.current=p.relatedTarget)},onMouseEnter:()=>j(!0),onMouseMove:()=>j(!0),onMouseLeave:()=>{X||j(!1)},onDragEnd:()=>j(!1),onPointerDown:p=>{p.target instanceof HTMLElement&&p.target.dataset.dismissible==="false"||J(!0)},onPointerUp:()=>J(!1)},A.filter(p=>!p.position&&m===0||p.position===d).map((p,tt)=>{var W,et;return a.createElement(he,{key:p.id,icons:Q,index:tt,toast:p,defaultRichColors:C,duration:(W=u?.duration)!=null?W:z,className:u?.className,descriptionClassName:u?.descriptionClassName,invert:s,visibleToasts:ut,closeButton:(et=u?.closeButton)!=null?et:N,interacting:X,position:d,style:u?.style,unstyled:u?.unstyled,classNames:u?.classNames,cancelButtonStyle:u?.cancelButtonStyle,actionButtonStyle:u?.actionButtonStyle,closeButtonAriaLabel:u?.closeButtonAriaLabel,removeToast:Z,toasts:A.filter(at=>at.position==p.position),heights:rt.filter(at=>at.position==p.position),setHeights:mt,expandByDefault:v,gap:st,expanded:pt,swipeDirections:o.swipeDirections})})):null}))});export{Ee as T,xe as t};
|
|
2
|
+
//# sourceMappingURL=index-CSKRws-d.js.map
|