@tempoxyz/id 0.0.0-pr-293.sha-db2bcd0 → 0.0.0-pr-293.sha-e314a6e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/client/assets/Account-BYLpNFf3.css +1 -0
- package/dist/app/client/assets/Account-DKlYpUaF.js +1 -0
- package/dist/app/client/assets/Amount-ZdtluGf-.css +1 -0
- package/dist/app/client/assets/Amount-uCaXmEC1.js +1 -0
- package/dist/app/client/assets/{Approval-lMS61Hor.js → Approval-_VTK0bIA.js} +1 -1
- package/dist/app/client/assets/{Authentication-CNU_hdsE.js → Authentication-CcZraW4V.js} +1 -1
- package/dist/app/client/assets/Callout-Cpp2tekO.js +1 -0
- package/dist/app/client/assets/Callout-DBfEmP7q.css +1 -0
- package/dist/app/client/assets/{Chain-CgM0gkul.js → Chain-BaJbQHEq.js} +1 -1
- package/dist/app/client/assets/{Check-l6Xt-h8M.js → Check-T-Kf-w2J.js} +1 -1
- package/dist/app/client/assets/{ChevronRight-Dgx1CBfS.js → ChevronRight-Cb0izsfB.js} +1 -1
- package/dist/app/client/assets/{ChooseAccount-DKQvWYym.js → ChooseAccount-BbdtokuQ.js} +1 -1
- package/dist/app/client/assets/{Client-B3HiaUR7.js → Client-XdlKOIjT.js} +1 -1
- package/dist/app/client/assets/{Close-CHeDbDyp.js → Close-9qiwSZoT.js} +1 -1
- package/dist/app/client/assets/{Cloud-BnBzwFJQ.js → Cloud-yU0Kxv28.js} +1 -1
- package/dist/app/client/assets/CodeInput-BqRteSwD.css +1 -0
- package/dist/app/client/assets/CodeInput-C8ad0edh.js +1 -0
- package/dist/app/client/assets/Deposit-CclrAoXL.css +1 -0
- package/dist/app/client/assets/Deposit-b5yx-L71.js +1 -0
- package/dist/app/client/assets/DevTools-BYkmtuV5.css +1 -0
- package/dist/app/client/assets/DevTools-Cgd0Ogan.js +1 -0
- package/dist/app/client/assets/{DeviceApproval-DKQklicf.js → DeviceApproval-CGdmL9U5.js} +1 -1
- package/dist/app/client/assets/{Fingerprint-CVLZp0fE.js → Fingerprint-081gQp_i.js} +1 -1
- package/dist/app/client/assets/{Globe-RAkdkLVn.js → Globe-D4HEnXoi.js} +1 -1
- package/dist/app/client/assets/Grant-5a-n1gJH.css +1 -0
- package/dist/app/client/assets/Grant-C-7ibHJb.js +1 -0
- package/dist/app/client/assets/Hex-C9KeV7_9.css +1 -0
- package/dist/app/client/assets/Hex-COpLAksw.js +10 -0
- package/dist/app/client/assets/IconChip-Cr71cqFZ.js +1 -0
- package/dist/app/client/assets/IconChip-yqaQ2y_d.css +1 -0
- package/dist/app/client/assets/InputGroup-BMExR1w7.js +1 -0
- package/dist/app/client/assets/InputGroup-BlZvt9In.css +1 -0
- package/dist/app/client/assets/Inter-cyrillic-e3OmmzmJ.woff2 +0 -0
- package/dist/app/client/assets/Inter-cyrillic-ext-DOWZeO4Q.woff2 +0 -0
- package/dist/app/client/assets/Inter-greek-BD3ujQlX.woff2 +0 -0
- package/dist/app/client/assets/Inter-greek-ext-CXEwbus4.woff2 +0 -0
- package/dist/app/client/assets/Inter-latin-BDFm4vTb.woff2 +0 -0
- package/dist/app/client/assets/Inter-latin-ext-E7a9JEPe.woff2 +0 -0
- package/dist/app/client/assets/Inter-symbols-DEch7Rxr.woff2 +0 -0
- package/dist/app/client/assets/Inter-vietnamese-Bg9723vR.woff2 +0 -0
- package/dist/app/client/assets/Loader-CVy-jQh9.js +1 -0
- package/dist/app/client/assets/{PopoverPopup-AaR182Lw.js → PopoverPopup-CQv00nl_.js} +1 -1
- package/dist/app/client/assets/Rows-CT3nC-Gp.js +1 -0
- package/dist/app/client/assets/Rows-DPGTUdA8.css +1 -0
- package/dist/app/client/assets/{Separator-C1NRk_mW.js → Separator-Doxz2kha.js} +1 -1
- package/dist/app/client/assets/SignIn-D2D3rbzT.js +1 -0
- package/dist/app/client/assets/SignIn-mlBTwUq4.css +1 -0
- package/dist/app/client/assets/Stack-D7Yt22Ed.css +1 -0
- package/dist/app/client/assets/Stack-qm24zmlV.js +1 -0
- package/dist/app/client/assets/ToolbarRootContext-Ctu7JTLk.js +1 -0
- package/dist/app/client/assets/Tooltip-arQraM0D.js +1 -0
- package/dist/app/client/assets/Tooltip-d3y9ESUJ.css +1 -0
- package/dist/app/client/assets/___-I98bns4o.css +1 -0
- package/dist/app/client/assets/___.flows-8Dmgeehd.js +5 -0
- package/dist/app/client/assets/{authorize-BQ1QbDZ8.js → authorize-DAtsqrNM.js} +1 -1
- package/dist/app/client/assets/{choose-account-Da0fLaYb.js → choose-account-DEFRgijo.js} +1 -1
- package/dist/app/client/assets/{deposit-CwKR_KjX.js → deposit--QiYWQfo.js} +1 -1
- package/dist/app/client/assets/{device-CCwq2oAs.js → device-Bq9xs5K6.js} +1 -1
- package/dist/app/client/assets/{error-Dj24A5n4.js → error-IQXxc1eM.js} +1 -1
- package/dist/app/client/assets/{getPseudoElementBounds-DH_jjqMh.js → getPseudoElementBounds-4olojy3W.js} +1 -1
- package/dist/app/client/assets/index-CyFheDuU.js +13 -0
- package/dist/app/client/assets/index-DSkPoKOK.css +1 -0
- package/dist/app/client/assets/{lazyRouteComponent-108fI1-o.js → lazyRouteComponent-Dz0rIGYN.js} +1 -1
- package/dist/app/client/assets/{login--cK4-SN_.js → login-B0BjHqjo.js} +1 -1
- package/dist/app/client/assets/pathUSD-BMh6ajrW.css +1 -0
- package/dist/app/client/assets/pathUSD-DuAfAKZZ.js +1 -0
- package/dist/app/client/assets/{removable-CZFK4Sbw.js → removable-CbJQgeuY.js} +1 -1
- package/dist/app/client/assets/{routes-BEKA6M9o.js → routes-BkBTe_Iu.js} +1 -1
- package/dist/app/client/assets/{suspense-ClIj0Mjn.js → suspense-Djz3yPi6.js} +1 -1
- package/dist/app/client/assets/useNavigate-B3GfD6JV.js +1 -0
- package/dist/app/client/assets/{useRegisterFieldControl-r_mKBm9D.js → useRegisterFieldControl-C8uwO_R4.js} +1 -1
- package/dist/app/client/assets/zyzz-DYC-X0_B.css +1 -0
- package/dist/app/client/assets/zyzz.config-DJRBo25J.js +2 -0
- package/dist/app/server/.vite/manifest.json +640 -608
- package/dist/app/server/assets/Account-BYLpNFf3.css +1 -0
- package/dist/app/server/assets/Account-g1_Uaj86.js +2 -0
- package/dist/app/server/assets/Account-g1_Uaj86.js.map +1 -0
- package/dist/app/server/assets/Amount-BXSuv2fx.js +2 -0
- package/dist/app/server/assets/Amount-BXSuv2fx.js.map +1 -0
- package/dist/app/server/assets/Amount-ZdtluGf-.css +1 -0
- package/dist/app/server/assets/{Approval-DhLkTvkI.js → Approval-DA8fDZIl.js} +2 -2
- package/dist/app/server/assets/{Approval-DhLkTvkI.js.map → Approval-DA8fDZIl.js.map} +1 -1
- package/dist/app/server/assets/{Authentication-Odm8-gfs.js → Authentication-BJgy8lyC.js} +2 -2
- package/dist/app/server/assets/{Authentication-Odm8-gfs.js.map → Authentication-BJgy8lyC.js.map} +1 -1
- package/dist/app/server/assets/{Authentication-DLWMd2mA.js → Authentication-CsSh3HGu.js} +2 -2
- package/dist/app/server/assets/{Authentication-DLWMd2mA.js.map → Authentication-CsSh3HGu.js.map} +1 -1
- package/dist/app/server/assets/Callout-DBfEmP7q.css +1 -0
- package/dist/app/server/assets/Callout-DlcQ5BUo.js +2 -0
- package/dist/app/server/assets/Callout-DlcQ5BUo.js.map +1 -0
- package/dist/app/server/assets/{Chain-CQgBRAXx.js → Chain-C9RGZDJm.js} +2 -2
- package/dist/app/server/assets/{Chain-CQgBRAXx.js.map → Chain-C9RGZDJm.js.map} +1 -1
- package/dist/app/server/assets/{Check-BwwQ6kDn.js → Check-CQIa-Y5d.js} +2 -2
- package/dist/app/server/assets/{Check-BwwQ6kDn.js.map → Check-CQIa-Y5d.js.map} +1 -1
- package/dist/app/server/assets/{ChevronRight-B_ft-uyS.js → ChevronRight-wzF9Mh2e.js} +2 -2
- package/dist/app/server/assets/{ChevronRight-B_ft-uyS.js.map → ChevronRight-wzF9Mh2e.js.map} +1 -1
- package/dist/app/server/assets/{ChooseAccount-FJJ2kRPk.js → ChooseAccount-De_YweJM.js} +2 -2
- package/dist/app/server/assets/{ChooseAccount-FJJ2kRPk.js.map → ChooseAccount-De_YweJM.js.map} +1 -1
- package/dist/app/server/assets/{Client-D3gnMDTr.js → Client-BAXSFa9e.js} +2 -2
- package/dist/app/server/assets/{Client-D3gnMDTr.js.map → Client-BAXSFa9e.js.map} +1 -1
- package/dist/app/server/assets/{ClientOnly-CbQVNHub.js → ClientOnly-B8k5xDwz.js} +2 -2
- package/dist/app/server/assets/{ClientOnly-CbQVNHub.js.map → ClientOnly-B8k5xDwz.js.map} +1 -1
- package/dist/app/server/assets/{Close-ChRMz-uR.js → Close-C74hwnOn.js} +2 -2
- package/dist/app/server/assets/{Close-ChRMz-uR.js.map → Close-C74hwnOn.js.map} +1 -1
- package/dist/app/server/assets/{Cloud-C3_mtq_Y.js → Cloud-CYXeneSe.js} +2 -2
- package/dist/app/server/assets/{Cloud-C3_mtq_Y.js.map → Cloud-CYXeneSe.js.map} +1 -1
- package/dist/app/server/assets/CodeInput-BqRteSwD.css +1 -0
- package/dist/app/server/assets/CodeInput-DdkMKOyq.js +2 -0
- package/dist/app/server/assets/CodeInput-DdkMKOyq.js.map +1 -0
- package/dist/app/server/assets/{Credential-D82PNwyx.js → Credential-DXcfPJEP.js} +2 -2
- package/dist/app/server/assets/{Credential-D82PNwyx.js.map → Credential-DXcfPJEP.js.map} +1 -1
- package/dist/app/server/assets/Deposit-CclrAoXL.css +1 -0
- package/dist/app/server/assets/Deposit-DOp5HCDX.js +2 -0
- package/dist/app/server/assets/Deposit-DOp5HCDX.js.map +1 -0
- package/dist/app/server/assets/DevTools-BYkmtuV5.css +1 -0
- package/dist/app/server/assets/DevTools-CxdPUN3V.js +2 -0
- package/dist/app/server/assets/DevTools-CxdPUN3V.js.map +1 -0
- package/dist/app/server/assets/{DeviceApproval-BhWgrv9l.js → DeviceApproval-o7T8XlX3.js} +2 -2
- package/dist/app/server/assets/{DeviceApproval-BhWgrv9l.js.map → DeviceApproval-o7T8XlX3.js.map} +1 -1
- package/dist/app/server/assets/{ExecutionError-DSSCSoHl.js → ExecutionError-DoRNvh3D.js} +2 -2
- package/dist/app/server/assets/{ExecutionError-DSSCSoHl.js.map → ExecutionError-DoRNvh3D.js.map} +1 -1
- package/dist/app/server/assets/{Faucet-Cv-nQMBR.js → Faucet-jp6zNWHE.js} +2 -2
- package/dist/app/server/assets/{Faucet-Cv-nQMBR.js.map → Faucet-jp6zNWHE.js.map} +1 -1
- package/dist/app/server/assets/{Fingerprint-B0Iay4Ws.js → Fingerprint-CAqjOS3T.js} +2 -2
- package/dist/app/server/assets/{Fingerprint-B0Iay4Ws.js.map → Fingerprint-CAqjOS3T.js.map} +1 -1
- package/dist/app/server/assets/{Globe-C6rnzTY0.js → Globe-BZ_5dGqa.js} +2 -2
- package/dist/app/server/assets/{Globe-C6rnzTY0.js.map → Globe-BZ_5dGqa.js.map} +1 -1
- package/dist/app/server/assets/Grant-5a-n1gJH.css +1 -0
- package/dist/app/{client/assets/Grant-DurkleN7.js → server/assets/Grant-BwOC2P94.js} +2 -1
- package/dist/app/server/assets/Grant-BwOC2P94.js.map +1 -0
- package/dist/app/server/assets/Hex-67thYs-f.js +11 -0
- package/dist/app/server/assets/Hex-67thYs-f.js.map +1 -0
- package/dist/app/server/assets/Hex-C9KeV7_9.css +1 -0
- package/dist/app/server/assets/IconChip-Cmufss8d.js +2 -0
- package/dist/app/server/assets/IconChip-Cmufss8d.js.map +1 -0
- package/dist/app/server/assets/IconChip-yqaQ2y_d.css +1 -0
- package/dist/app/server/assets/InputGroup-BlZvt9In.css +1 -0
- package/dist/app/server/assets/InputGroup-Bn2KM9pd.js +2 -0
- package/dist/app/server/assets/InputGroup-Bn2KM9pd.js.map +1 -0
- package/dist/app/server/assets/Inter-cyrillic-e3OmmzmJ.woff2 +0 -0
- package/dist/app/server/assets/Inter-cyrillic-ext-DOWZeO4Q.woff2 +0 -0
- package/dist/app/server/assets/Inter-greek-BD3ujQlX.woff2 +0 -0
- package/dist/app/server/assets/Inter-greek-ext-CXEwbus4.woff2 +0 -0
- package/dist/app/server/assets/Inter-latin-BDFm4vTb.woff2 +0 -0
- package/dist/app/server/assets/Inter-latin-ext-E7a9JEPe.woff2 +0 -0
- package/dist/app/server/assets/Inter-symbols-DEch7Rxr.woff2 +0 -0
- package/dist/app/server/assets/Inter-vietnamese-Bg9723vR.woff2 +0 -0
- package/dist/app/server/assets/Loader-DvDbd8kj.js +2 -0
- package/dist/app/server/assets/{Loader-Ivf5dWFl.js.map → Loader-DvDbd8kj.js.map} +1 -1
- package/dist/app/server/assets/{Match-DusFDz9D.js → Match-C65vhhhD.js} +2 -2
- package/dist/app/server/assets/{Match-DusFDz9D.js.map → Match-C65vhhhD.js.map} +1 -1
- package/dist/app/server/assets/PopoverPopup-kuWGUSYM.js +2 -0
- package/dist/app/server/assets/{PopoverPopup-D98JOZVe.js.map → PopoverPopup-kuWGUSYM.js.map} +1 -1
- package/dist/app/server/assets/Rows-DPGTUdA8.css +1 -0
- package/dist/app/server/assets/Rows-eTPur_py.js +2 -0
- package/dist/app/server/assets/Rows-eTPur_py.js.map +1 -0
- package/dist/app/server/assets/{Separator-B6od-9JY.js → Separator-BPNenixO.js} +2 -2
- package/dist/app/server/assets/{Separator-B6od-9JY.js.map → Separator-BPNenixO.js.map} +1 -1
- package/dist/app/server/assets/SignIn-CVPZSR-8.js +2 -0
- package/dist/app/server/assets/SignIn-CVPZSR-8.js.map +1 -0
- package/dist/app/server/assets/SignIn-mlBTwUq4.css +1 -0
- package/dist/app/server/assets/Stack-D7Yt22Ed.css +1 -0
- package/dist/app/server/assets/Stack-DQMZBUUB.js +2 -0
- package/dist/app/server/assets/Stack-DQMZBUUB.js.map +1 -0
- package/dist/app/server/assets/ToolbarRootContext-5168W3t4.js +2 -0
- package/dist/app/server/assets/{ToolbarRootContext-BCmWBQ7n.js.map → ToolbarRootContext-5168W3t4.js.map} +1 -1
- package/dist/app/server/assets/Tooltip-DR3nssae.js +2 -0
- package/dist/app/server/assets/Tooltip-DR3nssae.js.map +1 -0
- package/dist/app/server/assets/Tooltip-d3y9ESUJ.css +1 -0
- package/dist/app/server/assets/___-I98bns4o.css +1 -0
- package/dist/app/server/assets/___.flows-D_J822MU.js +6 -0
- package/dist/app/server/assets/___.flows-D_J822MU.js.map +1 -0
- package/dist/app/server/assets/_tanstack-start-manifest_v-DQjMcFpU.js +1 -0
- package/dist/app/server/assets/{_zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-Drf_Iqhc.js → _zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-EmCsnNUQ.js} +2 -2
- package/dist/app/server/assets/{_zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-Drf_Iqhc.js.map → _zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-EmCsnNUQ.js.map} +1 -1
- package/dist/app/server/assets/{accessKey-CxNqjouy.js → accessKey-DlBe71R7.js} +4 -4
- package/dist/app/server/assets/{accessKey-CxNqjouy.js.map → accessKey-DlBe71R7.js.map} +1 -1
- package/dist/app/server/assets/{authorize-D_5EG0WN.js → authorize-C3nY01zc.js} +2 -2
- package/dist/app/server/assets/{authorize-D_5EG0WN.js.map → authorize-C3nY01zc.js.map} +1 -1
- package/dist/app/server/assets/{authorize-pZETCSux.js → authorize-C9tfZ34z.js} +2 -2
- package/dist/app/server/assets/{authorize-pZETCSux.js.map → authorize-C9tfZ34z.js.map} +1 -1
- package/dist/app/server/assets/{authorize-DXYo-K2n-08rIhXFT.js → authorize-DXYo-K2n-Bc8o9t1x.js} +2 -2
- package/dist/app/server/assets/{authorize-DXYo-K2n-08rIhXFT.js.map → authorize-DXYo-K2n-Bc8o9t1x.js.map} +1 -1
- package/dist/app/server/assets/{choose-account-BOPrs9l7.js → choose-account-DNfcLweT.js} +2 -2
- package/dist/app/server/assets/{choose-account-BOPrs9l7.js.map → choose-account-DNfcLweT.js.map} +1 -1
- package/dist/app/server/assets/{choose-account-MDW4jp29.js → choose-account-Lq0qFqBr.js} +2 -2
- package/dist/app/server/assets/{choose-account-MDW4jp29.js.map → choose-account-Lq0qFqBr.js.map} +1 -1
- package/dist/app/server/assets/{core-Dxqe4Tzf.js → core-Ci_AVqAl.js} +2 -2
- package/dist/app/server/assets/{core-Dxqe4Tzf.js.map → core-Ci_AVqAl.js.map} +1 -1
- package/dist/app/server/assets/default-u_dwuiYb-D3URkhAV.js +2 -0
- package/dist/app/server/assets/{default-u_dwuiYb-BZX-cEte.js.map → default-u_dwuiYb-D3URkhAV.js.map} +1 -1
- package/dist/app/server/assets/{deposit-AgLrOoA3.js → deposit-Ch8VqCtG.js} +2 -2
- package/dist/app/server/assets/{deposit-AgLrOoA3.js.map → deposit-Ch8VqCtG.js.map} +1 -1
- package/dist/app/server/assets/{deposit-Cjt69KmJ.js → deposit-xQrouL3f.js} +2 -2
- package/dist/app/server/assets/{deposit-Cjt69KmJ.js.map → deposit-xQrouL3f.js.map} +1 -1
- package/dist/app/server/assets/{device-TEgIth9V.js → device-BAsgIC7D.js} +2 -2
- package/dist/app/server/assets/{device-TEgIth9V.js.map → device-BAsgIC7D.js.map} +1 -1
- package/dist/app/server/assets/{device-DO_RH0Or.js → device-BV99aHMG.js} +2 -2
- package/dist/app/server/assets/{device-DO_RH0Or.js.map → device-BV99aHMG.js.map} +1 -1
- package/dist/app/server/assets/dist-BhIyCFP8.js +1 -0
- package/dist/app/server/assets/{dist-C9wLcfH8.js → dist-C-Rzwa6V.js} +2 -2
- package/dist/app/server/assets/{dist-C9wLcfH8.js.map → dist-C-Rzwa6V.js.map} +1 -1
- package/dist/app/server/assets/{dist-SBl0rlY-.js → dist-CJN10pUl.js} +2 -2
- package/dist/app/server/assets/{dist-SBl0rlY-.js.map → dist-CJN10pUl.js.map} +1 -1
- package/dist/app/server/assets/{effect-QlVUlMFu-aB2jdYth.js → effect-QlVUlMFu-svPBY1dH.js} +2 -2
- package/dist/app/server/assets/{effect-QlVUlMFu-aB2jdYth.js.map → effect-QlVUlMFu-svPBY1dH.js.map} +1 -1
- package/dist/app/server/assets/{error-BDVg4EUJ.js → error-CHeOE_lh.js} +2 -2
- package/dist/app/server/assets/{error-BDVg4EUJ.js.map → error-CHeOE_lh.js.map} +1 -1
- package/dist/app/server/assets/{error-Yg6jqry-.js → error-PecJkSHO.js} +2 -2
- package/dist/app/server/assets/{error-Yg6jqry-.js.map → error-PecJkSHO.js.map} +1 -1
- package/dist/app/server/assets/{factory-BPswjDEW.js → factory-Bs0vLkBr.js} +2 -2
- package/dist/app/server/assets/{factory-BPswjDEW.js.map → factory-Bs0vLkBr.js.map} +1 -1
- package/dist/app/server/assets/getPseudoElementBounds-DIn3v91B.js +2 -0
- package/dist/app/server/assets/{getPseudoElementBounds-BdqJhx6M.js.map → getPseudoElementBounds-DIn3v91B.js.map} +1 -1
- package/dist/app/server/assets/{index-CLddUTqr-Bavq3Qss.js → index-CLddUTqr-CmUyZRXY.js} +2 -2
- package/dist/app/server/assets/{index-CLddUTqr-Bavq3Qss.js.map → index-CLddUTqr-CmUyZRXY.js.map} +1 -1
- package/dist/app/server/assets/{index-DZEfthgZ--TkOBRwP.js → index-DZEfthgZ-Bkf7F_aP.js} +2 -2
- package/dist/app/server/assets/{index-DZEfthgZ--TkOBRwP.js.map → index-DZEfthgZ-Bkf7F_aP.js.map} +1 -1
- package/dist/app/server/assets/{kysely-adapter-BVql8na5.js → kysely-adapter-DhztbDJz.js} +1 -1
- package/dist/app/server/assets/{lazyRouteComponent-BXabRVTE.js → lazyRouteComponent-DOSE663E.js} +2 -2
- package/dist/app/server/assets/{lazyRouteComponent-BXabRVTE.js.map → lazyRouteComponent-DOSE663E.js.map} +1 -1
- package/dist/app/server/assets/{login-BR3Vh4Jw.js → login-6K4ND-gN.js} +2 -2
- package/dist/app/server/assets/{login-BR3Vh4Jw.js.map → login-6K4ND-gN.js.map} +1 -1
- package/dist/app/server/assets/{login-DtRzF4FQ.js → login-CGq85v-9.js} +2 -2
- package/dist/app/server/assets/{login-DtRzF4FQ.js.map → login-CGq85v-9.js.map} +1 -1
- package/dist/app/server/assets/{matchContext-Cuq8aYzA.js → matchContext-BHbopc_c.js} +2 -2
- package/dist/app/server/assets/{matchContext-Cuq8aYzA.js.map → matchContext-BHbopc_c.js.map} +1 -1
- package/dist/app/server/assets/{mutation-BseSOMT8.js → mutation-D0MCZKRo.js} +2 -2
- package/dist/app/server/assets/{mutation-BseSOMT8.js.map → mutation-D0MCZKRo.js.map} +1 -1
- package/dist/app/server/assets/pathUSD-BMh6ajrW.css +1 -0
- package/dist/app/server/assets/pathUSD-DqRWfB70.js +2 -0
- package/dist/app/server/assets/pathUSD-DqRWfB70.js.map +1 -0
- package/dist/app/server/assets/{query-lzX3sTGO.js → query-BfAOtP6H.js} +2 -2
- package/dist/app/server/assets/{query-lzX3sTGO.js.map → query-BfAOtP6H.js.map} +1 -1
- package/dist/app/server/assets/react-dom-BbDIEd_j.css +1 -0
- package/dist/app/server/assets/{react-dom-DtwtyQPy.js → react-dom-pSpaua7D.js} +1 -1
- package/dist/app/server/assets/{react-dom-DtwtyQPy.js.map → react-dom-pSpaua7D.js.map} +1 -1
- package/dist/app/server/assets/{removable-HVB1MGzn.js → removable-BIS_RRBc.js} +2 -2
- package/dist/app/server/assets/{removable-HVB1MGzn.js.map → removable-BIS_RRBc.js.map} +1 -1
- package/dist/app/server/assets/{resolveError-DSqzEjUE.js → resolveError-DPXmbkOB.js} +2 -2
- package/dist/app/server/assets/{resolveError-DSqzEjUE.js.map → resolveError-DPXmbkOB.js.map} +1 -1
- package/dist/app/server/assets/{router-uhTdTHZE.js → router-nrTsbXpb.js} +2 -2
- package/dist/app/server/assets/router-nrTsbXpb.js.map +1 -0
- package/dist/app/server/assets/routes-BgiIzrOt.css +1 -0
- package/dist/app/server/assets/{routes-CeDOMpI-.js → routes-ClVSwEtU.js} +2 -2
- package/dist/app/server/assets/{routes-CeDOMpI-.js.map → routes-ClVSwEtU.js.map} +1 -1
- package/dist/app/server/assets/routes-DM3C9lXZ.js +2 -0
- package/dist/app/server/assets/routes-DM3C9lXZ.js.map +1 -0
- package/dist/app/server/assets/{schemas-fV27l6kI.js → schemas-CFw4XgfH.js} +2 -2
- package/dist/app/server/assets/{schemas-fV27l6kI.js.map → schemas-CFw4XgfH.js.map} +1 -1
- package/dist/app/server/assets/{secp256k1-5tp4GQIt.js → secp256k1-BmATpikU.js} +2 -2
- package/dist/app/server/assets/{secp256k1-5tp4GQIt.js.map → secp256k1-BmATpikU.js.map} +1 -1
- package/dist/app/server/assets/{sury-CWZTCd75-BPXRo6iz.js → sury-CWZTCd75-B2_9nmQ-.js} +2 -2
- package/dist/app/server/assets/{sury-CWZTCd75-BPXRo6iz.js.map → sury-CWZTCd75-B2_9nmQ-.js.map} +1 -1
- package/dist/app/server/assets/{suspense-CVCU9Kbi.js → suspense-gv0MCXZ8.js} +2 -2
- package/dist/app/server/assets/{suspense-CVCU9Kbi.js.map → suspense-gv0MCXZ8.js.map} +1 -1
- package/dist/app/server/assets/{useNavigate-D9psnozp.js → useNavigate-gn6-bYOz.js} +2 -2
- package/dist/app/server/assets/{useNavigate-D9psnozp.js.map → useNavigate-gn6-bYOz.js.map} +1 -1
- package/dist/app/server/assets/useRegisterFieldControl-DMeVvRtG.js +2 -0
- package/dist/app/server/assets/{useRegisterFieldControl-UOdCWAKS.js.map → useRegisterFieldControl-DMeVvRtG.js.map} +1 -1
- package/dist/app/server/assets/{utils-Dst7Jy9U.js → utils-CJnLBS6t.js} +2 -2
- package/dist/app/server/assets/{utils-Dst7Jy9U.js.map → utils-CJnLBS6t.js.map} +1 -1
- package/dist/app/server/assets/{valibot--1zFm7rT-LDsJca69.js → valibot--1zFm7rT-DAm9l6Yd.js} +2 -2
- package/dist/app/server/assets/{valibot--1zFm7rT-LDsJca69.js.map → valibot--1zFm7rT-DAm9l6Yd.js.map} +1 -1
- package/dist/app/server/assets/{valibot-D_HTw1Gn-DY-tIZ72.js → valibot-D_HTw1Gn-B_uu9X0a.js} +2 -2
- package/dist/app/server/assets/{valibot-D_HTw1Gn-DY-tIZ72.js.map → valibot-D_HTw1Gn-B_uu9X0a.js.map} +1 -1
- package/dist/app/server/assets/{zod-Bwrt9trS-Cf4c1iF8.js → zod-Bwrt9trS-DDq3sdx6.js} +2 -2
- package/dist/app/server/assets/{zod-Bwrt9trS-Cf4c1iF8.js.map → zod-Bwrt9trS-DDq3sdx6.js.map} +1 -1
- package/dist/app/server/assets/{zod-DSgpEGAE-IkLVlUaZ.js → zod-DSgpEGAE-Dzlub58Z.js} +2 -2
- package/dist/app/server/assets/{zod-DSgpEGAE-IkLVlUaZ.js.map → zod-DSgpEGAE-Dzlub58Z.js.map} +1 -1
- package/dist/app/server/assets/zyzz-6R2K52xP.css +1 -0
- package/dist/app/server/assets/{zyzz.config-DYq-16_0.js → zyzz.config-CW977vYL.js} +3 -3
- package/dist/app/server/assets/zyzz.config-CW977vYL.js.map +1 -0
- package/dist/app/server/index.js +3 -3
- package/package.json +1 -1
- package/dist/app/client/assets/Account-DiXbQ7gq.css +0 -1
- package/dist/app/client/assets/Account-JXT-dSA8.js +0 -1
- package/dist/app/client/assets/Amount-C5uw89Ge.js +0 -1
- package/dist/app/client/assets/Amount-Ck6sPRDT.css +0 -1
- package/dist/app/client/assets/Callout-DE0CvxbE.css +0 -1
- package/dist/app/client/assets/Callout-D_dLrptL.js +0 -1
- package/dist/app/client/assets/CodeInput-CXbj-o_B.js +0 -1
- package/dist/app/client/assets/CodeInput-C_clyqA2.css +0 -1
- package/dist/app/client/assets/Deposit-CAkrtNYZ.css +0 -1
- package/dist/app/client/assets/Deposit-Cv7IQBO0.js +0 -1
- package/dist/app/client/assets/DevTools-CnWAfvO2.js +0 -1
- package/dist/app/client/assets/DevTools-DLG9O0YT.css +0 -1
- package/dist/app/client/assets/Grant-B6bmC4rh.css +0 -1
- package/dist/app/client/assets/Hex-BR5nHbFT.js +0 -10
- package/dist/app/client/assets/Hex-CriDfcNg.css +0 -1
- package/dist/app/client/assets/IconChip-BVqRSUpG.css +0 -1
- package/dist/app/client/assets/IconChip-ClKbN-8M.js +0 -1
- package/dist/app/client/assets/InputGroup-4QFqa-T2.css +0 -1
- package/dist/app/client/assets/InputGroup-CEI6gBId.js +0 -1
- package/dist/app/client/assets/Inter-Variable-DiVDrmQJ.woff2 +0 -0
- package/dist/app/client/assets/Loader-CtzJeMeX.js +0 -1
- package/dist/app/client/assets/Rows-DgpXomcK.js +0 -1
- package/dist/app/client/assets/Rows-oSTffNii.css +0 -1
- package/dist/app/client/assets/SignIn-CjGB1wk9.js +0 -1
- package/dist/app/client/assets/SignIn-Dz1G9XNf.css +0 -1
- package/dist/app/client/assets/Stack-90EFgtQe.js +0 -1
- package/dist/app/client/assets/Stack-CKvHhjzW.css +0 -1
- package/dist/app/client/assets/ToolbarRootContext-dnisUzmP.js +0 -1
- package/dist/app/client/assets/Tooltip-9TI_rDvs.css +0 -1
- package/dist/app/client/assets/Tooltip-C3H_9mgz.js +0 -1
- package/dist/app/client/assets/___-7yUISk6H.css +0 -1
- package/dist/app/client/assets/___.flows-DwoJPGMf.js +0 -5
- package/dist/app/client/assets/index-BXTO-7dr.css +0 -1
- package/dist/app/client/assets/index-CkKM7xlX.js +0 -13
- package/dist/app/client/assets/pathUSD-DY3ycgMd.js +0 -1
- package/dist/app/client/assets/pathUSD-Dn2NadYx.css +0 -1
- package/dist/app/client/assets/useNavigate-DsbQ8bTr.js +0 -1
- package/dist/app/client/assets/zyzz-MTPfhrAv.css +0 -1
- package/dist/app/client/assets/zyzz.config-ENEfJGzk.js +0 -2
- package/dist/app/server/assets/Account-BqjoGTzm.js +0 -2
- package/dist/app/server/assets/Account-BqjoGTzm.js.map +0 -1
- package/dist/app/server/assets/Account-DiXbQ7gq.css +0 -1
- package/dist/app/server/assets/Amount-Ck6sPRDT.css +0 -1
- package/dist/app/server/assets/Amount-CmypanEu.js +0 -2
- package/dist/app/server/assets/Amount-CmypanEu.js.map +0 -1
- package/dist/app/server/assets/Callout-DE0CvxbE.css +0 -1
- package/dist/app/server/assets/Callout-_eafmkya.js +0 -2
- package/dist/app/server/assets/Callout-_eafmkya.js.map +0 -1
- package/dist/app/server/assets/CodeInput-CRxIP0KX.js +0 -2
- package/dist/app/server/assets/CodeInput-CRxIP0KX.js.map +0 -1
- package/dist/app/server/assets/CodeInput-C_clyqA2.css +0 -1
- package/dist/app/server/assets/Deposit-CAkrtNYZ.css +0 -1
- package/dist/app/server/assets/Deposit-CiWidviP.js +0 -2
- package/dist/app/server/assets/Deposit-CiWidviP.js.map +0 -1
- package/dist/app/server/assets/DevTools-BJcNvNjx.js +0 -2
- package/dist/app/server/assets/DevTools-BJcNvNjx.js.map +0 -1
- package/dist/app/server/assets/DevTools-DLG9O0YT.css +0 -1
- package/dist/app/server/assets/Grant-B6bmC4rh.css +0 -1
- package/dist/app/server/assets/Grant-N8RQy7lZ.js +0 -2
- package/dist/app/server/assets/Grant-N8RQy7lZ.js.map +0 -1
- package/dist/app/server/assets/Hex-CriDfcNg.css +0 -1
- package/dist/app/server/assets/Hex-vNjxlXvk.js +0 -11
- package/dist/app/server/assets/Hex-vNjxlXvk.js.map +0 -1
- package/dist/app/server/assets/IconChip-BQdjH8i6.js +0 -2
- package/dist/app/server/assets/IconChip-BQdjH8i6.js.map +0 -1
- package/dist/app/server/assets/IconChip-BVqRSUpG.css +0 -1
- package/dist/app/server/assets/InputGroup-4QFqa-T2.css +0 -1
- package/dist/app/server/assets/InputGroup-BhUIBTgI.js +0 -2
- package/dist/app/server/assets/InputGroup-BhUIBTgI.js.map +0 -1
- package/dist/app/server/assets/Inter-Variable-DiVDrmQJ.woff2 +0 -0
- package/dist/app/server/assets/Loader-Ivf5dWFl.js +0 -2
- package/dist/app/server/assets/PopoverPopup-D98JOZVe.js +0 -2
- package/dist/app/server/assets/Rows-BuyZXkPa.js +0 -2
- package/dist/app/server/assets/Rows-BuyZXkPa.js.map +0 -1
- package/dist/app/server/assets/Rows-oSTffNii.css +0 -1
- package/dist/app/server/assets/SignIn-D7jl6zbw.js +0 -2
- package/dist/app/server/assets/SignIn-D7jl6zbw.js.map +0 -1
- package/dist/app/server/assets/SignIn-Dz1G9XNf.css +0 -1
- package/dist/app/server/assets/Stack-C3ecM7vx.js +0 -2
- package/dist/app/server/assets/Stack-C3ecM7vx.js.map +0 -1
- package/dist/app/server/assets/Stack-CKvHhjzW.css +0 -1
- package/dist/app/server/assets/ToolbarRootContext-BCmWBQ7n.js +0 -2
- package/dist/app/server/assets/Tooltip-9TI_rDvs.css +0 -1
- package/dist/app/server/assets/Tooltip-D3NLigmC.js +0 -2
- package/dist/app/server/assets/Tooltip-D3NLigmC.js.map +0 -1
- package/dist/app/server/assets/___-7yUISk6H.css +0 -1
- package/dist/app/server/assets/___.flows-DRvHKxBR.js +0 -6
- package/dist/app/server/assets/___.flows-DRvHKxBR.js.map +0 -1
- package/dist/app/server/assets/_tanstack-start-manifest_v-BIobT_5u.js +0 -1
- package/dist/app/server/assets/default-u_dwuiYb-BZX-cEte.js +0 -2
- package/dist/app/server/assets/dist-k0uWU-Rh.js +0 -1
- package/dist/app/server/assets/getPseudoElementBounds-BdqJhx6M.js +0 -2
- package/dist/app/server/assets/pathUSD-CVs71wGH.js +0 -2
- package/dist/app/server/assets/pathUSD-CVs71wGH.js.map +0 -1
- package/dist/app/server/assets/pathUSD-Dn2NadYx.css +0 -1
- package/dist/app/server/assets/react-dom-bupMaze0.css +0 -1
- package/dist/app/server/assets/router-uhTdTHZE.js.map +0 -1
- package/dist/app/server/assets/routes-ZveUsG66.js +0 -2
- package/dist/app/server/assets/routes-ZveUsG66.js.map +0 -1
- package/dist/app/server/assets/routes-dxKeFXjL.css +0 -1
- package/dist/app/server/assets/useRegisterFieldControl-UOdCWAKS.js +0 -2
- package/dist/app/server/assets/zyzz-DuvTIyXM.css +0 -1
- package/dist/app/server/assets/zyzz.config-DYq-16_0.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{E as e,j as t,s as n,t as r}from"./react-dom-DtwtyQPy.js";import{a as i,i as a,n as o,r as s}from"./Stack-C3ecM7vx.js";import{n as c,t as l}from"./lazyRouteComponent-BXabRVTE.js";import{i as u,n as d,o as f,r as p}from"./Client-D3gnMDTr.js";import{r as m}from"./Chain-CQgBRAXx.js";import{t as h}from"./Faucet-Cv-nQMBR.js";import{E as g,Gt as _,J as ee,Jt as v,Kt as te,Lt as y,M as ne,Nt as b,On as x,S as re,Sn as S,Y as ie,Z as C,bn as w,d as ae,et as oe,f as T,g as se,h as E,k as D,l as O,n as k,nt as A,qt as j,rn as M,rt as N,u as P,v as F,xn as I,yn as L}from"./zyzz.config-DYq-16_0.js";import{t as R}from"./Close-ChRMz-uR.js";import{t as ce}from"./Loader-Ivf5dWFl.js";var z=t(e(),1),B=n(),le=t(r(),1);function ue(e,t){let n=(t??M(e).getComputedStyle(e)).transform,r=0,i=0,a=1;if(n&&n!==`none`){let e=n.match(/matrix(?:3d)?\(([^)]+)\)/);if(e){let t=e[1].split(`, `).map(parseFloat);t.length===6?(r=t[4],i=t[5],a=Math.sqrt(t[0]*t[0]+t[1]*t[1])):t.length===16&&(r=t[12],i=t[13],a=t[0])}}return{x:r,y:i,scale:a}}function de(e,t,n){switch(e){case`up`:return-n;case`down`:return n;case`left`:return-t;case`right`:return t;default:return 0}}var V=z.createContext(void 0);function H(){let e=z.useContext(V);if(!e)throw Error(F(73));return e}var U=0;function W(e){return U+=1,`${e}-${Math.random().toString(36).slice(2,6)}-${U}`}function G(e,t){if(typeof e==`string`)return{description:e};if(typeof e==`function`){let n=e(t);return typeof n==`string`?{description:n}:n}return e}function K(e){let t=new Map,n=0,r=0;return e.forEach((e,i)=>{let a=e.transitionStatus===`ending`;t.set(e.id,{value:e,domIndex:i,visibleIndex:a?-1:n,offsetY:r}),r+=e.height||0,a||(n+=1)}),t}function q(e,t){let n=0;return e.map(e=>{if(e.transitionStatus===`ending`)return e;let r=n>=t;return n+=1,e.limited===r?e:{...e,limited:r}})}var J={toasts:e=>e.toasts,isEmpty:e=>e.toasts.length===0,toast:(e,t)=>e.toastMetadata.get(t)?.value,toastIndex:(e,t)=>e.toastMetadata.get(t)?.domIndex??-1,toastOffsetY:(e,t)=>e.toastMetadata.get(t)?.offsetY??0,toastVisibleIndex:(e,t)=>e.toastMetadata.get(t)?.visibleIndex??-1,focused:e=>e.focused,expanded:e=>e.hovering||e.focused,expandedOrOutOfFocus:e=>e.hovering||e.focused||!e.isWindowFocused,prevFocusElement:e=>e.prevFocusElement},fe=class extends E{timers=new Map;areTimersPaused=!1;constructor(e){super({...e,toastMetadata:K(e.toasts)},{},J)}setViewport=e=>{this.set(`viewport`,e)};syncProviderProps(e,t){let n=this.state.limit!==t;if(this.state.timeout===e&&!n)return;let r={timeout:e,limit:t};if(n){let e=q(this.state.toasts,t);r.toasts=e,r.toastMetadata=K(e)}this.update(r)}disposeEffect=()=>()=>{this.timers.forEach(e=>{e.timeout?.clear()}),this.timers.clear()};removeToast(e,t=!1){let n=J.toastIndex(this.state,e);if(n===-1)return;let r=this.state.toasts[n];t||r?.onRemove?.();let i=[...this.state.toasts];i.splice(n,1),this.setToasts(i)}addToast=e=>{let{timeout:t,limit:n}=this.state,r=e.id||W(`toast`);if(e.id){let t=J.toast(this.state,e.id);if(t){if(t.transitionStatus===`ending`)this.removeToast(e.id,!0);else{let{id:t,transitionStatus:n,...r}=e;return this.updateToastInternal(e.id,r,!0,!0),e.id}}}let i={...e,id:r,updateKey:0,transitionStatus:`starting`},a=[i,...this.state.toasts];this.setToasts(q(a,n));let o=i.timeout??t;return i.type!==`loading`&&o>0&&this.scheduleTimer(r,o,()=>this.closeToast(r)),J.expandedOrOutOfFocus(this.state)&&this.pauseTimers(),r};updateToast=(e,t)=>{let n=J.toast(this.state,e);n&&n.transitionStatus!==`ending`&&this.updateToastInternal(e,typeof t==`function`?t(n):t,!1,!0)};updateToastInternal=(e,t,n=!1,r=!1)=>{let{timeout:i,toasts:a}=this.state,o=J.toast(this.state,e);if(!o||o.transitionStatus===`ending`)return;let s={...o,...t,...r&&{updateKey:o.updateKey+1}};this.setToasts(a.map(t=>t.id===e?s:t));let c=s.timeout??i,l=o.timeout??i,u=Object.hasOwn(t,`timeout`),d=s.transitionStatus!==`ending`&&s.type!==`loading`&&c>0,f=this.timers.has(e),p=l!==c,m=o.type===`loading`;!d&&f?this.clearTimer(e):d&&(!f||p||u||m||n)&&(this.clearTimer(e),this.scheduleTimer(e,c,()=>this.closeToast(e)),J.expandedOrOutOfFocus(this.state)&&this.pauseTimers())};closeToast=e=>{let t=e===void 0,{limit:n,toasts:r}=this.state,i;if(t)i=r,this.clearTimers();else{let t=J.toast(this.state,e);if(!t)return;i=[t],this.clearTimer(e)}let a=q(r.map(n=>t||n.id===e?{...n,transitionStatus:`ending`,height:0}:n),n);this.setToasts(a,!a.some(e=>e.transitionStatus!==`ending`)),i.forEach(e=>{e.transitionStatus!==`ending`&&e.onClose?.()}),this.handleFocusManagement(e)};promiseToast=(e,t)=>{let n=G(t.loading),r=this.addToast({...n,type:`loading`}),i=e.then(e=>{let n=G(t.success,e);return this.updateToast(r,{...n,type:`success`,timeout:n.timeout}),e}).catch(e=>{let n=G(t.error,e);return this.updateToast(r,{...n,type:`error`,timeout:n.timeout}),Promise.reject(e)});return{}.hasOwnProperty.call(t,`setPromise`)&&t.setPromise(i),i};pauseTimers(){this.areTimersPaused||(this.areTimersPaused=!0,this.timers.forEach(e=>{e.timeout&&(e.timeout.clear(),e.remaining=Math.max(e.remaining-(Date.now()-e.start),0))}))}resumeTimers(){this.areTimersPaused&&(this.areTimersPaused=!1,this.timers.forEach((e,t)=>{e.remaining=e.remaining>0?e.remaining:e.delay,e.timeout??=w.create(),e.timeout.start(e.remaining,()=>{this.handleTimerFired(t),e.callback()}),e.start=Date.now()}))}restoreFocusToPrevElement(){this.state.prevFocusElement?.focus({preventScroll:!0})}handleDocumentPointerDown=e=>{if(e.pointerType!==`touch`)return;let t=v(e);j(this.state.viewport,t)||(this.resumeTimers(),this.update({hovering:!1,focused:!1}))};scheduleTimer(e,t,n){let r=Date.now(),i=J.expandedOrOutOfFocus(this.state)?void 0:w.create();i?.start(t,()=>{this.handleTimerFired(e),n()}),this.timers.set(e,{timeout:i,start:r,delay:t,remaining:t,callback:n})}clearTimers(){this.timers.forEach(e=>{e.timeout?.clear()}),this.timers.clear(),this.areTimersPaused=!1}clearTimer(e){this.timers.get(e)?.timeout?.clear(),this.timers.delete(e),this.resetPausedStateIfNoTimersRemain()}handleTimerFired(e){this.timers.delete(e),this.resetPausedStateIfNoTimersRemain()}resetPausedStateIfNoTimersRemain(){this.timers.size===0&&(this.areTimersPaused=!1)}setToasts(e,t=e.length===0){let n={toasts:e,toastMetadata:K(e)};t&&(n.hovering=!1,n.focused=!1),this.update(n)}handleFocusManagement(e){let t=_(C(this.state.viewport));if(!this.state.viewport||!j(this.state.viewport,t)||!b(t))return;if(e===void 0){this.restoreFocusToPrevElement();return}let n=J.toasts(this.state),r=J.toastIndex(this.state,e),i=(e,t)=>{for(let r=e;r>=0&&r<n.length;r+=t)if(n[r].transitionStatus!==`ending`)return n[r];return null},a=i(r+1,1)??i(r-1,-1);a?a.ref?.current?.focus():this.restoreFocusToPrevElement()}},Y=function(e){let{children:t,timeout:n=5e3,limit:r=3,toastManager:i}=e,a=x(()=>new fe({timeout:n,limit:r,viewport:null,toasts:[],hovering:!1,focused:!1,isWindowFocused:!0,prevFocusElement:null})).current;return S(a.disposeEffect),z.useEffect(function(){if(i)return i[` subscribe`](({action:e,options:t})=>{let n=t.id;e===`promise`&&t.promise?a.promiseToast(t.promise,t):e===`update`&&n?a.updateToast(n,t.updates):e===`close`?a.closeToast(n):a.addToast(t)})},[a,i]),(0,B.jsxs)(V.Provider,{value:a,children:[(0,B.jsx)(X,{store:a,timeout:n,limit:r}),t]})};function X(e){let{store:t,timeout:n,limit:r}=e;return L(()=>{t.syncProviderProps(n,r)},[t,n,r]),null}var pe=`--toast-frontmost-height`,Z=z.forwardRef(function(e,t){let{render:n,className:r,style:i,children:a,...o}=e,s=H(),c=I(),l=z.useRef(!1),u=z.useRef(!1),d=z.useRef(!1),f=s.useState(`isEmpty`),p=s.useState(`toasts`),m=s.useState(`focused`),h=s.useState(`expanded`),g=s.useState(`prevFocusElement`),te=p[0]?.height,y=p.some(e=>e.transitionStatus===`ending`),ne=p.filter(e=>e.priority===`high`);z.useEffect(()=>{let e=s.state.viewport;if(!e||f)return;let t=M(e),n=C(e);function r(t){t.key===`F6`&&v(t)!==e&&(t.preventDefault(),s.set(`prevFocusElement`,_(n)),e?.focus({preventScroll:!0}),s.pauseTimers(),s.set(`focused`,!0))}function i(e){v(e)===t&&(s.set(`isWindowFocused`,!1),s.pauseTimers())}function a(n){if(n.relatedTarget)return;let r=v(n),i=_(C(e));(r===t||!j(e,r)||!b(i))&&s.resumeTimers(),c.start(0,()=>s.set(`isWindowFocused`,!0))}return A(N(t,`keydown`,r),N(t,`blur`,i,!0),N(t,`focus`,a,!0),N(n,`pointerdown`,s.handleDocumentPointerDown,!0))},[s,c,f]);function x(e){l.current=!0;let t=e.relatedTarget===s.state.viewport?p.find(e=>e.transitionStatus!==`ending`&&!e.limited):void 0;t?t.ref?.current?.focus():s.restoreFocusToPrevElement()}function re(e){e.key===`Tab`&&e.shiftKey&&v(e.nativeEvent)===s.state.viewport&&(e.preventDefault(),s.restoreFocusToPrevElement())}function S(){s.state.toasts.some(e=>e.transitionStatus===`ending`)||d.current||!u.current||(s.set(`hovering`,!1),s.select(`expandedOrOutOfFocus`)||s.resumeTimers(),u.current=!1)}z.useEffect(S,[y,s]);function w(){s.pauseTimers(),s.set(`hovering`,!0),u.current=!1}function ae(){u.current=!0,S()}function oe(e){e.pointerType===`touch`&&(d.current=!0)}function T(e){e.pointerType===`touch`&&(d.current=!1,S())}function se(){l.current?l.current=!1:m||b(_(C(s.state.viewport)))&&(s.set(`focused`,!0),s.pauseTimers())}function E(e){m&&!j(s.state.viewport,e.relatedTarget)&&(s.set(`focused`,!1),s.select(`expandedOrOutOfFocus`)||s.resumeTimers())}let O={tabIndex:-1,role:`region`,"aria-live":`polite`,"aria-atomic":!1,"aria-relevant":`additions text`,"aria-label":`Notifications`,onMouseEnter:w,onMouseMove:w,onMouseLeave:ae,onFocus:se,onBlur:E,onKeyDown:re,onClick:se,onPointerDown:oe,onPointerUp:T,onPointerCancel:T,style:{[pe]:te?`${te}px`:void 0}},k={expanded:h},P=!f&&g&&(0,B.jsx)(ee,{onFocus:x}),F=D(`div`,e,{ref:[t,s.setViewport],state:k,props:[O,o,{children:(0,B.jsxs)(z.Fragment,{children:[P,a,P]})}]});return(0,B.jsxs)(z.Fragment,{children:[P,F,!m&&ne.length>0&&(0,B.jsx)(`div`,{style:ie,children:ne.map(e=>(0,B.jsxs)(`div`,{role:`alert`,"aria-atomic":!0,children:[(0,B.jsx)(`div`,{children:e.title}),(0,B.jsx)(`div`,{children:e.description})]},e.id))})]})}),me=z.createContext(void 0);function Q(){let e=z.useContext(me);if(!e)throw Error(F(66));return e}var he=`--toast-index`,ge=`--toast-offset-y`,_e=`--toast-height`,ve=`--toast-swipe-movement-x`,ye=`--toast-swipe-movement-y`,be=`data-swipe-direction`,xe={...y,swipeDirection(e){return e?{[be]:e}:null}},Se=40,Ce=10,we=.5,Te=1,Ee=`${re},${g}`,De=z.forwardRef(function(e,t){let{toast:n,render:r,className:i,swipeDirection:a=[`down`,`right`],style:o,...s}=e,c=n.positionerProps?.anchor!==void 0,l=[];c||(l=Array.isArray(a)?a:[a]);let u=l.length>0,d=H(),[f,p]=z.useState(void 0),[m,h]=z.useState(!1),[g,ee]=z.useState(!1),[y,ne]=z.useState({x:0,y:0}),[b,x]=z.useState({x:0,y:0,scale:1}),[re,S]=z.useState(),[ie,w]=z.useState(),[T,E]=z.useState(null),O=z.useRef(null),k=z.useRef(void 0),A=z.useRef({x:0,y:0}),M=z.useRef({x:0,y:0,scale:1}),P=z.useRef(void 0),F=z.useRef(0),I=z.useRef(!1),R=z.useRef({x:0,y:0}),ce=z.useRef(!1),V=z.useRef({x:0,y:0}),U=z.useRef(null),W=z.useRef(null),G=d.useState(`toastIndex`,n.id),K=d.useState(`toastVisibleIndex`,n.id),q=d.useState(`toastOffsetY`,n.id),J=d.useState(`focused`),fe=d.useState(`expanded`);se({open:n.transitionStatus!==`ending`,ref:O,onComplete(){n.transitionStatus===`ending`&&d.removeToast(n.id)}});let Y=oe((e=!1)=>{let t=O.current;if(!t)return;let r=t.style.height;t.style.height=`auto`;let i=t.offsetHeight;t.style.height=r;function a(){d.updateToastInternal(n.id,{ref:O,height:i,transitionStatus:void 0})}e?le.flushSync(a):a()});L(()=>{let e=k.current;(n.transitionStatus===`starting`||e!==n.id)&&(e!==void 0&&(p(void 0),x({x:0,y:0,scale:1}),X({x:0,y:0})),k.current=n.id,Y())},[Y,n.id,n.transitionStatus]);function X(e){V.current=e,ne(e)}L(()=>()=>{W.current?.abort()},[]);function pe(e,t){let n=e=>e>0?e**we:-(Math.abs(e)**we),r=e>0&&!l.includes(`right`)||e<0&&!l.includes(`left`),i=t>0&&!l.includes(`down`)||t<0&&!l.includes(`up`);return{x:r?n(e):e,y:i?n(t):t}}let Z=oe(e=>{if(e.pointerId!==U.current)return;U.current=null,W.current?.abort(),W.current=null,h(!1),ee(!1),E(null);let t=M.current;if(e.type===`pointercancel`||I.current){X({x:t.x,y:t.y}),p(void 0);return}let r=V.current,i=r.x-t.x,a=r.y-t.y,o;for(let e of l)if(de(e,i,a)>Se){o=e;break}o?(p(o),d.closeToast(n.id)):(X({x:t.x,y:t.y}),p(void 0))});function Q(e){if(e.button!==0)return;e.pointerType===`touch`&&d.pauseTimers();let t=v(e.nativeEvent);if(te(t,`button,a,input,textarea,[role="button"],${Ee}`))return;I.current=!1,P.current=void 0,F.current=0,U.current=e.pointerId,A.current={x:e.clientX,y:e.clientY},R.current=A.current;let n=e.currentTarget,r=ue(n);M.current=r,x(r),X({x:r.x,y:r.y}),d.set(`hovering`,!0),h(!0),ee(!1),E(null),ce.current=!0,W.current?.abort();let i=new AbortController;W.current=i;let a=C(n);a.addEventListener(`pointerup`,Z,{signal:i.signal}),a.addEventListener(`pointercancel`,Z,{signal:i.signal}),n.setPointerCapture?.(e.pointerId)}function be(e){if(e.pointerId!==U.current)return;e.preventDefault(),ce.current&&=(A.current={x:e.clientX,y:e.clientY},!1);let{clientY:t,clientX:n,movementX:r,movementY:i}=e;(i<0&&t>R.current.y||i>0&&t<R.current.y)&&(R.current={x:R.current.x,y:t}),(r<0&&n>R.current.x||r>0&&n<R.current.x)&&(R.current={x:n,y:R.current.y});let a=n-A.current.x,o=t-A.current.y,s=t-R.current.y,c=n-R.current.x,u=T;if(!g&&Math.sqrt(a*a+o*o)>=Te){ee(!0);let e=l.includes(`left`)||l.includes(`right`),t=l.includes(`up`)||l.includes(`down`);e&&t&&(u=Math.abs(a)>Math.abs(o)?`horizontal`:`vertical`,E(u))}let d;if(!P.current)u===`vertical`?o>0?d=`down`:o<0&&(d=`up`):u===`horizontal`?a>0?d=`right`:a<0&&(d=`left`):d=Math.abs(a)>=Math.abs(o)?a>0?`right`:`left`:o>0?`down`:`up`,d&&l.includes(d)&&(P.current=d,F.current=de(d,a,o),p(d));else{let e=P.current,t=de(e,c,s);t>Se?(I.current=!1,p(e)):!(l.includes(`left`)&&l.includes(`right`))&&!(l.includes(`up`)&&l.includes(`down`))&&F.current-t>=Ce&&(I.current=!0)}let f=pe(a,o),m=M.current.x,h=M.current.y,_=l.includes(`left`)||l.includes(`right`),v=l.includes(`up`)||l.includes(`down`);u!==`vertical`&&_&&(m+=f.x),u!==`horizontal`&&v&&(h+=f.y),X({x:m,y:h})}function De(e){if(e.key===`Escape`){if(!O.current||!j(O.current,_(C(O.current))))return;d.closeToast(n.id)}}z.useEffect(()=>{let e=O.current;if(!u||!e)return;function t(t){U.current!==null&&j(e,v(t))&&t.preventDefault()}return N(e,`touchmove`,t,{passive:!1})},[u]);function Oe(){let e=y.x-b.x,t=y.y-b.y;return{transition:m?`none`:void 0,transform:m?`translateX(${y.x}px) translateY(${y.y}px) scale(${b.scale})`:void 0,[ve]:`${e}px`,[ye]:`${t}px`}}let ke=n.priority===`high`,Ae={role:ke?`alertdialog`:`dialog`,tabIndex:0,"aria-modal":!1,"aria-labelledby":re,"aria-describedby":ie,"aria-hidden":ke&&!J?!0:void 0,onPointerDown:u?Q:void 0,onPointerMove:u?be:void 0,onPointerUp:u?Z:void 0,onPointerCancel:u?Z:void 0,onKeyDown:De,inert:ae(n.limited),style:{...Oe(),[he]:n.transitionStatus===`ending`?G:K,[ge]:`${q}px`,[_e]:n.height?`${n.height}px`:void 0}},je=z.useMemo(()=>({toast:n,setTitleId:S,setDescriptionId:w,recalculateHeight:Y,visibleIndex:K,expanded:fe}),[n,S,w,Y,K,fe]),Me={transitionStatus:n.transitionStatus,expanded:fe,limited:n.limited||!1,type:n.type,swiping:m,swipeDirection:f},Ne=D(`div`,e,{ref:[t,O],state:Me,stateAttributesMapping:xe,props:[Ae,s]});return(0,B.jsx)(me.Provider,{value:je,children:Ne})}),Oe=z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{visibleIndex:o,expanded:s,recalculateHeight:c}=Q(),l=z.useRef(null);return L(()=>{c();let e=l.current;if(!e||typeof ResizeObserver!=`function`||typeof MutationObserver!=`function`)return;let t=new ResizeObserver(()=>c(!0)),n=new MutationObserver(()=>c(!0));return t.observe(e),n.observe(e,{childList:!0,subtree:!0,characterData:!0}),()=>{t.disconnect(),n.disconnect()}},[c]),D(`div`,e,{ref:[t,l],state:{expanded:s,behind:o>0},props:a})});function ke(e){return e==null||typeof e==`boolean`||e===``?!1:!Array.isArray(e)||e.some(ke)}function Ae(e){return z.isValidElement(e)&&ke(e.props.children)}function je(e,t,n){let{toast:r,setTitleId:i,setDescriptionId:a}=Q(),o=n===`title`?i:a,s=t??(n===`title`?r.title:r.description);return{id:ne(e),children:s,type:r.type,setId:o}}function Me(e,t,n){let r=Ae(e);return L(()=>{if(r)return n(t),()=>{n(e=>e===t?void 0:e)}},[r,t,n]),r?e:null}var Ne=z.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,children:o,...s}=e,{id:c,children:l,type:u,setId:d}=je(a,o,`description`);return Me(D(`p`,e,{ref:t,state:{type:u},props:{...s,id:c,children:l}}),c,d)}),Pe=z.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,children:o,...s}=e,{id:c,children:l,type:u,setId:d}=je(a,o,`title`);return Me(D(`h2`,e,{ref:t,state:{type:u},props:{...s,id:c,children:l}}),c,d)}),Fe=z.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a,nativeButton:o=!0,...s}=e,c=H(),{toast:l,expanded:u}=Q(),[d,f]=z.useState(!1),{getButtonProps:p,buttonRef:m}=T({disabled:a,native:o}),h={type:l.type};return D(`button`,e,{ref:[t,m],state:h,props:[{"aria-hidden":!u&&!d,onClick(){c.closeToast(l.id)},onFocus(){f(!0)},onBlur(){f(!1)}},s,p]})}),Ie=z.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a,nativeButton:o=!0,...s}=e,{toast:c}=Q(),l=c.actionProps?.children??s.children,{getButtonProps:u,buttonRef:d}=T({disabled:a,native:o}),f={type:c.type},p=D(`button`,e,{ref:[t,d],state:f,props:[s,c.actionProps,u,{children:l}]});return Ae(p)?p:null}),Le=z.forwardRef(function(e,t){return(0,B.jsx)(k,{ref:t,...e})});function Re(){let e=H(),t=e.useState(`toasts`);return z.useMemo(()=>({toasts:t,add:e.addToast,close:e.closeToast,update:e.updateToast,promise:e.promiseToast}),[t,e])}var ze={info:o,negative:i,positive:s,warning:a},Be;(function(e){function t(e){return(0,B.jsx)(Y,{...e})}e.Provider=t;function n(){let e=Re();return{add(t){let{action:n,intent:r,...i}=t;return e.add({...i,actionProps:n&&{children:n.label,onClick:n.onClick},type:r})},close:e.close}}e.useToast=n;function r(e){let{className:t,vars:n,...r}=e,{toasts:i}=Re();return(0,B.jsx)(Le,{children:(0,B.jsx)(Z,{...r,...$.viewport({className:t,style:e.style,vars:n}),children:i.map(e=>{let t=e.type??`neutral`,n=t===`neutral`?void 0:ze[t];return(0,B.jsx)(De,{toast:e,...$.root(),children:(0,B.jsxs)(Oe,{...$.content(),children:[n&&(0,B.jsx)(`span`,{"aria-hidden":`true`,...$.icon({intent:t}),children:(0,B.jsx)(n,{})}),(0,B.jsxs)(`div`,{...$.body(),children:[(0,B.jsx)(Pe,{...$.title()}),(0,B.jsx)(Ne,{...$.description()})]}),e.actionProps&&(0,B.jsx)(Ie,{...$.action()}),(0,B.jsx)(Fe,{"aria-label":`Dismiss`,...$.close(),children:(0,B.jsx)(R,{})})]})},e.id)})})})}e.Viewport=r})(Be||={});var $;(function(e){e.action=P({className:`z-tds_2f_web-tds_2f_web_2f_toast_2f_action-align-items-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-bg-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-border-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-border-radius-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-text-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-cursor-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-display-6 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-flex-shrink-7 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-h-8 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-padding-inline-9 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-font-family-10 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-font-size-11 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-font-weight-12 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-letter-spacing-13 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-line-height-14 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-color-15 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-offset-16 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-style-17 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-width-18 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-duration-19 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-property-20 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-timing-function-21 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-bg-22 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-scale-23 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-color-24 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-offset-25 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-bg-26 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-property-27 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-scale-28`}),e.body=P({className:`z-tds_2f_web-tds_2f_web_2f_toast_2f_body-display-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_body-flex-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_body-flex-direction-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_body-min-width-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_body-row-gap-4`}),e.close=P({className:`z-tds_2f_web-tds_2f_web_2f_toast_2f_action-align-items-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-bg-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-border-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-border-radius-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-text-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-cursor-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-display-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-flex-shrink-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-font-size-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-h-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-justify-content-6 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-p-7 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-w-8 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-color-15 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-color-24 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-offset-16 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-offset-25 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-style-17 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-width-18 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-duration-19 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-property-20 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-property-27 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-timing-function-21 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-scale-23 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-scale-28 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-bg-9`}),e.content=P({className:`z-tds_2f_web-tds_2f_web_2f_toast_2f_action-align-items-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-box-sizing-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-column-gap-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-display-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-h-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-overflow-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-padding-block-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-padding-inline-6 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-transition-duration-7 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-transition-property-8 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-timing-function-21 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-opacity-9 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-pointer-events-10 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-opacity-11`}),e.description=P({className:`z-tds_2f_web-tds_2f_web_2f_toast_2f_description-text-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-m-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-font-family-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-font-size-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-font-weight-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-letter-spacing-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-line-height-6`}),e.icon=O({axes:{intent:[`info`,`negative`,`neutral`,`positive`,`warning`]},defaults:{},className:`z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-display-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-flex-shrink-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-font-size-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-text-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-text-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-text-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-text-5`}),e.root=P({className:`z-tds_2f_web-tds_2f_web_2f_toast_2f_root-bg-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-border-radius-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-box-shadow-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-box-sizing-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-text-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-h-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-inset-inline-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-inset-block-end-6 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-position-7 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-8 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-origin-9 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-duration-10 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-property-11 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-timing-function-12 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-user-select-13 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-z-index-14 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-content-15 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-h-16 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-inset-block-start-17 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-inset-inline-18 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-position-19 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-h-20 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-21 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-opacity-22 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-opacity-23 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-24 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-duration-25 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-26 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-27 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-28 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-29 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-duration-30 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-property-31`}),e.title=P({className:`z-tds_2f_web-tds_2f_web_2f_toast_2f_root-text-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-m-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_title-font-family-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_title-font-size-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_title-font-weight-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_title-letter-spacing-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_title-line-height-4`}),e.viewport=P({className:`z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-inset-block-end-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-inset-inline-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-m-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-max-width-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-position-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-z-index-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-inset-inline-start-6 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-m-7 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-w-8`})})($||={});var Ve=c(`/`)({component:l(()=>import(`./routes-CeDOMpI-.js`),`component`),loader:async e=>{let t=d(),n=e.deps.chain??`mainnet`,r=e=>f(t.v1.account.$get({query:{chain:e}})).catch(e=>({error:e})),i=await r(n),a=n!==`mainnet`&&`error`in i&&u(i.error)===`invalid_field`,o=a?`mainnet`:n,s=a?await r(o):i;if(`error`in s){u(s.error)===`session_required`&&ce({href:`/login`});let[e,n]=await Promise.all([f(t.v1.auth.session.$get()),f(t.v1.auth.methods.$get({query:{}})).catch(()=>({passkeys:!1}))]);return e.user||ce({href:`/login`}),{accountError:He(s.error),accounts:null,configurable:null,email:e.user.email,faucet:null,name:e.user.name,passkeys:n.passkeys}}let c={email:s.email,name:s.name,passkeys:s.passkeys},l=s.tempo.length>0?s:await f(t.v1.account.$post({json:{chain:o}})).catch(e=>({error:e}));if(`error`in l)return{...c,accountError:He(l.error),accounts:null,configurable:null,faucet:null};let p=await(async()=>{let{chains:e}=await f(t.i.chains.$get()).catch(()=>({chains:[]})),n=e.find(e=>e.name===o);return{chainId:n?.chainId??(o===`mainnet`||o===`testnet`?m[o]:void 0),configurable:n?.configurable??!1}})(),g=p.configurable?(await f(t.i.account.passkeys.$get()).catch(()=>({passkeys:[]}))).passkeys:[];return{...c,accountError:null,accounts:[...l.tempo.flatMap(e=>{let t=e.config.owners.find(t=>t.owner.toLowerCase()===e.address.toLowerCase())??e.config.owners[0];return t?[{address:e.address,balance:`balance`in e?e.balance??null:null,configurable:e.config.chainId!==void 0,owner:t.type,owners:e.config.owners.map(e=>e.type)}]:[]}),...g.map(e=>({address:e.address,balance:null,credentialId:e.credentialId,owner:`webAuthn`}))],configurable:p.configurable?o:null,faucet:h.some(e=>e.id===p.chainId)?o:null}},loaderDeps:e=>({chain:e.search.chain})});function He(e){return u(e)===`rate_limited`?p(e):`Your wallets failed to load. Reload the page to try again.`}var Ue;(function(e){e.page=1})(Ue||={});export{Be as n,Ve as t};
|
|
2
|
-
//# sourceMappingURL=routes-ZveUsG66.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routes-ZveUsG66.js","names":["ownerWindow","_formatErrorMessage","isFocusVisible","frontmostHeight","ownerWindow","isFocusVisible","ToastViewportCssVars.frontmostHeight","_formatErrorMessage","TransitionStatusDataAttributes.startingStyle","TransitionStatusDataAttributes.endingStyle","ToastRootDataAttributes.swipeDirection","offsetY","ToastRootCssVars.swipeMovementX","ToastRootCssVars.swipeMovementY","ToastRootCssVars.index","ToastRootCssVars.offsetY","ToastRootCssVars.height","_jsx","BaseUi.Toast.Provider","BaseUi.Toast.useToastManager","BaseUi.Toast.Portal","BaseUi.Toast.Viewport","styles","BaseUi.Toast.Root","_jsxs","BaseUi.Toast.Content","BaseUi.Toast.Title","BaseUi.Toast.Description","BaseUi.Toast.Action","BaseUi.Toast.Close","__zyzzProps.create","__zyzzRecipe.create","createFileRoute","parseResponse","Chain","Faucet","Client","Loader","style","CeremonyError","Error","name","Route","component","lazyRouteComponent","$$splitComponentImporter","loader","match","Promise","Page","Props","client","create","requested","deps","chain","read","v1","account","$get","query","catch","error","first","unknown","reason","redirect","href","session","methods","all","auth","passkeys","user","accountError","failure","accounts","configurable","email","faucet","listed","tempo","length","$post","json","listing","chains","i","found","find","entry","chainId","ids","undefined","unlinked","flatMap","owner","config","owners","candidate","toLowerCase","address","balance","type","map","credentialId","const","some","id","loaderDeps","search","message","styles","page","ReturnType","Client.create","Client.reason","Chain.ids","Client.message","require_react","__toESM","require_jsx_runtime","require_react_dom","AlertCircle","AlertTriangle","InfoCircle","CheckCircle","createFileRoute","lazyRouteComponent","reason","create","parseResponse","message","ids","chains","LEGACY_SWIPE_IGNORE_SELECTOR","activeElement","FocusGuard","getTarget","closest","transitionStatusMapping","useId","matchesFocusVisible","useRefWithInit","BASE_UI_SWIPE_IGNORE_SELECTOR","useOnMount","visuallyHidden","ownerDocument","Timeout","inertValue","useStableCallback","useButton","useOpenChangeComplete","ReactStore","useRenderElement","create$2","FloatingPortalLite","mergeCleanups","contains","getWindow","addEventListener","create$1","formatErrorMessage","useTimeout","useIsoLayoutEffect","Close","redirect","import_react","import_jsx_runtime","import_react_dom","getElementTransform","transform","computedStyle","element","translateX","translateY","scale","matrix","values","getDisplacement","direction","deltaY","deltaX","ToastContext","useToastProviderContext","context","counter","generateId","prefix","resolvePromiseOptions","options","resolvedOptions","result","createToastMetadata","metadata","visibleIndex","offsetY","toasts","isEnding","toast","toastIndex","applyLimited","activeIndex","limited","limit","selectors","state","id","ToastStore","initialState","viewport","limitChanged","timeout","updates","newToasts","timer","index","toastId","skipOnRemove","existingToast","ignoredId","ignoredTransitionStatus","toastToAdd","updatedToasts","duration","prevToast","nextToast","markUpdated","nextTimeout","prevTimeout","timeoutUpdated","shouldHaveTimer","hasTimer","timeoutChanged","wasLoading","resetTimer","closeAll","toastsToClose","item","loadingOptions","handledPromise","promiseValue","successOptions","errorOptions","error","event","target","start","currentTimeout","delay","callback","clearInteraction","activeEl","currentIndex","scan","from","step","ToastProvider","props","store","toastManager","action","ToastProviderPropsSynchronizer","children","frontmostHeight","ToastViewport","elementProps","componentProps","windowFocusTimeout","handlingFocusGuardRef","markedReadyForMouseLeaveRef","touchActiveRef","isEmpty","focused","expanded","prevFocusElement","frontmostHeight$1","hasTransitioningToasts","highPriorityToasts","win","doc","handleGlobalKeyDown","handleWindowBlur","handleWindowFocus","handleFocusGuard","firstFocusableToast","handleKeyDown","flushMouseLeave","handleMouseEnter","handleMouseLeave","handlePointerDown","handlePointerEnd","handleFocus","handleBlur","defaultProps","focusGuard","forwardedRef","ToastRootContext","useToastRootContext","height","swipeMovementX","swipeMovementY","swipeDirection","toastRootStateAttributesMapping","value","SWIPE_THRESHOLD","REVERSE_CANCEL_THRESHOLD","OPPOSITE_DIRECTION_DAMPING_FACTOR","MIN_DRAG_THRESHOLD","TOAST_SWIPE_IGNORE_SELECTOR","ToastRoot","isAnchored","swipeDirections","swipeEnabled","currentSwipeDirection","setCurrentSwipeDirection","isSwiping","setIsSwiping","isRealSwipe","setIsRealSwipe","dragOffset","setDragOffset","initialTransform","setInitialTransform","titleId","setTitleId","descriptionId","setDescriptionId","lockedDirection","setLockedDirection","rootRef","lastToastIdRef","dragStartPosRef","initialTransformRef","intendedSwipeDirectionRef","maxSwipeDisplacementRef","cancelledSwipeRef","swipeCancelBaselineRef","isFirstPointerMoveRef","dragOffsetRef","activePointerIdRef","dragAbortControllerRef","domIndex","offsetY$1","recalculateHeight","previousHeight","update","flushSync","previousToastId","setResolvedDragOffset","nextDragOffset","applyDirectionalDamping","damp","delta","dampX","dampY","handleSwipeEnd","resolvedInitialTransform","resolvedDragOffset","dismissDirection","dragAbortController","handlePointerMove","movementY","clientY","movementX","clientX","cancelDeltaY","cancelDeltaX","resolvedLockedDirection","hasHorizontal","hasVertical","candidate","currentDisplacement","dampedDelta","newOffsetX","newOffsetY","hasHorizontalDir","hasVerticalDir","preventDefaultTouchStart","getDragStyles","isHighPriority","toastRoot","ToastContent","contentRef","node","resizeObserver","mutationObserver","isRenderableNode","hasRenderableChildren","useToastLabelPart","setId","part","childrenProp","idProp","useToastLabelElement","shouldRender","currentId","ToastDescription","ToastTitle","ToastClose","hasFocus","setHasFocus","nativeButton","buttonRef","getButtonProps","ToastAction","computedChildren","ToastPortal","useToastManager","icons","Toast","Provider","useToast","manager","rest","intent","Viewport","attributes","styles$1","Glyph","\"axes\"","\"intent\"","\"defaults\"","\"className\"","Route","client","requested","match","read","first","unknown","chain","account","session","methods","failure","user","listed","listing","found","entry","unlinked","owner","styles"],"sources":["../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/utils/getElementTransform.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/utils/useSwipeDismiss.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/provider/ToastProviderContext.mjs","../../../../../node_modules/.pnpm/@base-ui+utils@0.5.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/utils/generateId.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/utils/resolvePromiseOptions.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/store.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/provider/ToastProvider.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/viewport/ToastViewportCssVars.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/viewport/ToastViewport.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/root/ToastRootContext.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/root/ToastRootCssVars.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/root/ToastRootDataAttributes.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/root/ToastRoot.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/content/ToastContent.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/utils/isRenderableNode.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/utils/useToastLabelPart.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/description/ToastDescription.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/title/ToastTitle.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/close/ToastClose.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/action/ToastAction.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/portal/ToastPortal.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toast/useToastManager.mjs","../../../../../node_modules/.pnpm/@tempoxyz+ds@0.2.5_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react-native@0.86_bbc03918b3aa42ad595cf90afc2ac3af/node_modules/@tempoxyz/ds/dist/web/components/Toast.js","../../../routes/index.tsx"],"sourcesContent":["import { ownerWindow } from '@base-ui/utils/owner';\n\n/**\n * Extracts the 2D translation and scale from the element's computed `transform` matrix.\n * Note that the `translate`, `rotate`, and `scale` longhands are separate properties and\n * are not reflected in the computed `transform` value.\n *\n * Pass `computedStyle` when the caller has already resolved it to avoid a second lookup.\n */\nexport function getElementTransform(element, computedStyle) {\n const transform = (computedStyle ?? ownerWindow(element).getComputedStyle(element)).transform;\n let translateX = 0;\n let translateY = 0;\n let scale = 1;\n if (transform && transform !== 'none') {\n const matrix = transform.match(/matrix(?:3d)?\\(([^)]+)\\)/);\n if (matrix) {\n const values = matrix[1].split(', ').map(parseFloat);\n if (values.length === 6) {\n translateX = values[4];\n translateY = values[5];\n scale = Math.sqrt(values[0] * values[0] + values[1] * values[1]);\n } else if (values.length === 16) {\n translateX = values[12];\n translateY = values[13];\n scale = values[0];\n }\n }\n }\n return {\n x: translateX,\n y: translateY,\n scale\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { clamp } from '@base-ui/utils/clamp';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { closest, contains, getTarget } from \"../floating-ui-react/utils.mjs\";\nimport { findScrollableAncestor, findScrollableTouchTarget } from \"./scrollable.mjs\";\nimport { getElementAtPoint } from \"./getElementAtPoint.mjs\";\nimport { getElementTransform } from \"./getElementTransform.mjs\";\nconst DEFAULT_SWIPE_THRESHOLD = 40;\nconst REVERSE_CANCEL_THRESHOLD = 10;\nconst MIN_VELOCITY_DURATION_MS = 50;\n// Under one frame at 240 Hz, so it only damps near-simultaneous samples.\nconst MIN_RELEASE_VELOCITY_DURATION_MS = 4;\nconst MAX_RELEASE_VELOCITY_AGE_MS = 80;\nconst MIN_VELOCITY_SAMPLE_DISTANCE = 1;\nconst DEFAULT_IGNORE_SELECTOR = 'button,a,input,select,textarea,label,[role=\"button\"]';\nexport function getDisplacement(direction, deltaX, deltaY) {\n switch (direction) {\n case 'up':\n return -deltaY;\n case 'down':\n return deltaY;\n case 'left':\n return -deltaX;\n case 'right':\n return deltaX;\n default:\n return 0;\n }\n}\nfunction getValidTimeStamp(timeStamp) {\n return Number.isFinite(timeStamp) && timeStamp > 0 ? timeStamp : null;\n}\nfunction getDragTransform(dragOffset, scale) {\n return `translate3d(${dragOffset.x}px,${dragOffset.y}px,0) scale(${scale})`;\n}\nfunction hasPrimaryMouseButton(buttons) {\n return buttons % 2 === 1;\n}\nfunction safelyChangePointerCapture(element, pointerId, method) {\n const pointerCaptureMethod = element[method];\n if (typeof pointerCaptureMethod !== 'function') {\n return;\n }\n try {\n pointerCaptureMethod.call(element, pointerId);\n } catch (error) {\n if (error && typeof error === 'object' && 'name' in error && error.name === 'NotFoundError') {\n return;\n }\n throw error;\n }\n}\nexport function useSwipeDismiss(options) {\n const {\n enabled,\n directions,\n elementRef,\n movementCssVars,\n canStart,\n ignoreSelectorWhenTouch = true,\n ignoreScrollableAncestors = false,\n swipeThreshold: swipeThresholdProp,\n onDismiss,\n onProgress,\n onCancel,\n onSwipeStart,\n onRelease,\n onSwipingChange,\n trackDrag = true\n } = options;\n const ignoreSelector = DEFAULT_IGNORE_SELECTOR;\n const primaryDirection = directions.length === 1 ? directions[0] : undefined;\n const swipeThresholdDefault = Math.max(0, typeof swipeThresholdProp === 'number' ? swipeThresholdProp : DEFAULT_SWIPE_THRESHOLD);\n const allowLeft = directions.includes('left');\n const allowRight = directions.includes('right');\n const allowUp = directions.includes('up');\n const allowDown = directions.includes('down');\n const hasHorizontal = allowLeft || allowRight;\n const hasVertical = allowUp || allowDown;\n\n // Consumers only pass directions on a single axis.\n const scrollAxis = hasHorizontal ? 'horizontal' : 'vertical';\n const [currentSwipeDirection, setCurrentSwipeDirection] = React.useState(undefined);\n const [isSwiping, setIsSwiping] = React.useState(false);\n const [dragDismissed, setDragDismissed] = React.useState(false);\n const dragStartPosRef = React.useRef({\n x: 0,\n y: 0\n });\n const dragOffsetRef = React.useRef({\n x: 0,\n y: 0\n });\n const lastMovePosRef = React.useRef(null);\n const initialTransformRef = React.useRef({\n x: 0,\n y: 0,\n scale: 1\n });\n const intendedSwipeDirectionRef = React.useRef(undefined);\n const maxSwipeDisplacementRef = React.useRef(0);\n const cancelledSwipeRef = React.useRef(false);\n const swipeCancelBaselineRef = React.useRef({\n x: 0,\n y: 0\n });\n const isFirstPointerMoveRef = React.useRef(false);\n const pendingSwipeRef = React.useRef(false);\n const pendingSwipeStartPosRef = React.useRef(null);\n const swipeFromScrollableRef = React.useRef(false);\n const sawPrimaryButtonsOnMoveRef = React.useRef(false);\n const elementSizeRef = React.useRef({\n width: 0,\n height: 0\n });\n const swipeProgressRef = React.useRef(0);\n const swipeThresholdRef = React.useRef(swipeThresholdDefault);\n const swipeThresholdFunctionRef = React.useRef(null);\n const swipeStartTimeRef = React.useRef(null);\n const lastDragSampleRef = React.useRef(null);\n const hasStationarySampleRef = React.useRef(false);\n const lastDragVelocityRef = React.useRef({\n x: 0,\n y: 0\n });\n const lastProgressDetailsRef = React.useRef(null);\n const isSwipingRef = React.useRef(false);\n const dragStyleSnapshotRef = React.useRef(null);\n const setSwiping = useStableCallback(nextSwiping => {\n if (isSwipingRef.current === nextSwiping) {\n return;\n }\n isSwipingRef.current = nextSwiping;\n setIsSwiping(nextSwiping);\n onSwipingChange?.(nextSwiping);\n });\n function resolveSwipeThreshold(direction) {\n if (!direction) {\n return;\n }\n const element = elementRef.current;\n const thresholdFunction = swipeThresholdFunctionRef.current;\n if (!element || !thresholdFunction) {\n return;\n }\n const value = thresholdFunction({\n element,\n direction\n });\n swipeThresholdRef.current = Math.max(0, value);\n }\n const updateSwipeProgress = useStableCallback((progress, details) => {\n const nextProgress = Number.isFinite(progress) ? clamp(progress, 0, 1) : 0;\n const progressChanged = nextProgress !== swipeProgressRef.current;\n let detailsChanged = false;\n if (details) {\n const lastDetails = lastProgressDetailsRef.current;\n detailsChanged = !lastDetails || lastDetails.deltaX !== details.deltaX || lastDetails.deltaY !== details.deltaY || lastDetails.direction !== details.direction;\n }\n if (!progressChanged && !detailsChanged) {\n return;\n }\n swipeProgressRef.current = nextProgress;\n if (details) {\n lastProgressDetailsRef.current = details;\n } else if (progressChanged) {\n lastProgressDetailsRef.current = null;\n }\n onProgress?.(nextProgress, details);\n });\n const syncDragStyles = useStableCallback(swiping => {\n const element = elementRef.current;\n if (!trackDrag || !element) {\n if (!swiping) {\n dragStyleSnapshotRef.current = null;\n }\n return;\n }\n const style = element.style;\n const dragStyleSnapshot = dragStyleSnapshotRef.current;\n if (swiping) {\n if (!dragStyleSnapshot) {\n dragStyleSnapshotRef.current = [style.transition, style.transform];\n }\n style.transition = 'none';\n } else if (dragStyleSnapshot) {\n [style.transition, style.transform] = dragStyleSnapshot;\n dragStyleSnapshotRef.current = null;\n }\n const dragOffset = dragOffsetRef.current;\n const initialTransform = initialTransformRef.current;\n const deltaX = dragOffset.x - initialTransform.x;\n const deltaY = dragOffset.y - initialTransform.y;\n if (swiping) {\n style.transform = getDragTransform(dragOffset, initialTransform.scale);\n }\n style.setProperty(movementCssVars.x, `${deltaX}px`);\n style.setProperty(movementCssVars.y, `${deltaY}px`);\n });\n function recordDragSample(offset, timeStamp) {\n if (timeStamp === null) {\n return;\n }\n const lastSample = lastDragSampleRef.current;\n if (lastSample && timeStamp > lastSample.time) {\n // Some Android devices emit one effectively stationary move immediately before release.\n // Keep the last moving sample and its timestamp. Repeated stationary moves still clear\n // the velocity, and a release after a hold still expires the last moving sample.\n const stationary = Math.abs(offset.x - lastSample.x) < MIN_VELOCITY_SAMPLE_DISTANCE && Math.abs(offset.y - lastSample.y) < MIN_VELOCITY_SAMPLE_DISTANCE;\n const skipSample = stationary && !hasStationarySampleRef.current;\n hasStationarySampleRef.current = stationary;\n if (skipSample) {\n return;\n }\n const durationMs = Math.max(timeStamp - lastSample.time, MIN_RELEASE_VELOCITY_DURATION_MS);\n lastDragVelocityRef.current = {\n x: (offset.x - lastSample.x) / durationMs,\n y: (offset.y - lastSample.y) / durationMs\n };\n }\n lastDragSampleRef.current = {\n x: offset.x,\n y: offset.y,\n time: timeStamp\n };\n }\n const reset = React.useCallback(() => {\n setCurrentSwipeDirection(undefined);\n setSwiping(false);\n setDragDismissed(false);\n updateSwipeProgress(0);\n swipeThresholdRef.current = swipeThresholdDefault;\n swipeThresholdFunctionRef.current = null;\n dragStartPosRef.current = {\n x: 0,\n y: 0\n };\n dragOffsetRef.current = {\n x: 0,\n y: 0\n };\n initialTransformRef.current = {\n x: 0,\n y: 0,\n scale: 1\n };\n intendedSwipeDirectionRef.current = undefined;\n maxSwipeDisplacementRef.current = 0;\n cancelledSwipeRef.current = false;\n swipeCancelBaselineRef.current = {\n x: 0,\n y: 0\n };\n isFirstPointerMoveRef.current = false;\n lastMovePosRef.current = null;\n pendingSwipeRef.current = false;\n pendingSwipeStartPosRef.current = null;\n swipeFromScrollableRef.current = false;\n sawPrimaryButtonsOnMoveRef.current = false;\n elementSizeRef.current = {\n width: 0,\n height: 0\n };\n swipeStartTimeRef.current = null;\n lastDragSampleRef.current = null;\n hasStationarySampleRef.current = false;\n lastDragVelocityRef.current = {\n x: 0,\n y: 0\n };\n lastProgressDetailsRef.current = null;\n syncDragStyles(false);\n }, [setSwiping, swipeThresholdDefault, syncDragStyles, updateSwipeProgress]);\n function getPrimaryPointerPosition(event) {\n if ('touches' in event) {\n const touch = event.touches[0];\n return touch ? {\n x: touch.clientX,\n y: touch.clientY\n } : null;\n }\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n function isTouchLikeEvent(event) {\n if ('touches' in event) {\n return true;\n }\n return event.pointerType === 'touch';\n }\n function getTargetAtPoint(position, nativeEvent) {\n const root = elementRef.current?.getRootNode();\n const elementAtPoint = getElementAtPoint(root, position.x, position.y);\n const target = elementAtPoint ?? getTarget(nativeEvent);\n return target;\n }\n function findGestureScrollableTouchTarget(target, root) {\n // The swiped element is positioned relative to the viewport, so the page scroller must not\n // gate the gesture (a reset like `html, body { height: 100%; overflow: auto }` makes `body`\n // a real scroll container). The drawer viewport's native touchmove handler already ignores it.\n const find = axis => {\n const scrollTarget = findScrollableTouchTarget(target, root, axis);\n const doc = ownerDocument(scrollTarget);\n return scrollTarget === doc.body || scrollTarget === doc.documentElement ? null : scrollTarget;\n };\n return find(scrollAxis);\n }\n function startSwipeAtPosition(event, position, startOptions) {\n swipeFromScrollableRef.current = false;\n const touchLike = isTouchLikeEvent(event);\n const target = getTargetAtPoint(position, event.nativeEvent);\n const doc = ownerDocument(elementRef.current);\n const body = doc.body;\n const scrollableTarget = touchLike && body ? findGestureScrollableTouchTarget(target, body) : null;\n const ignoreScrollableTarget = startOptions?.ignoreScrollableTarget ?? false;\n if (scrollableTarget && !ignoreScrollableTarget) {\n return false;\n }\n swipeFromScrollableRef.current = Boolean(scrollableTarget && ignoreScrollableTarget);\n const isInteractiveElement = closest(target, ignoreSelector);\n if (isInteractiveElement && (!touchLike || ignoreSelectorWhenTouch)) {\n return false;\n }\n const element = elementRef.current;\n if (ignoreScrollableAncestors && element && target) {\n const ignoreAncestors = startOptions?.ignoreScrollableAncestors ?? false;\n if (!ignoreAncestors && findScrollableAncestor(target, element, scrollAxis) != null) {\n return false;\n }\n }\n cancelledSwipeRef.current = false;\n intendedSwipeDirectionRef.current = undefined;\n maxSwipeDisplacementRef.current = 0;\n dragStartPosRef.current = position;\n swipeStartTimeRef.current = getValidTimeStamp(event.timeStamp);\n lastDragSampleRef.current = null;\n hasStationarySampleRef.current = false;\n lastDragVelocityRef.current = {\n x: 0,\n y: 0\n };\n swipeCancelBaselineRef.current = position;\n lastMovePosRef.current = position;\n swipeThresholdRef.current = swipeThresholdDefault;\n swipeThresholdFunctionRef.current = typeof swipeThresholdProp === 'function' ? swipeThresholdProp : null;\n if (element) {\n elementSizeRef.current = {\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n resolveSwipeThreshold(primaryDirection);\n const transform = getElementTransform(element);\n initialTransformRef.current = transform;\n dragOffsetRef.current = {\n x: transform.x,\n y: transform.y\n };\n recordDragSample({\n x: transform.x,\n y: transform.y\n }, swipeStartTimeRef.current);\n if (!('touches' in event)) {\n safelyChangePointerCapture(element, event.pointerId, 'setPointerCapture');\n }\n }\n onSwipeStart?.(event.nativeEvent);\n setSwiping(true);\n isFirstPointerMoveRef.current = true;\n updateSwipeProgress(0);\n syncDragStyles(true);\n return true;\n }\n function resetPendingSwipeState() {\n clearPendingSwipeStartState();\n swipeFromScrollableRef.current = false;\n lastMovePosRef.current = null;\n }\n function clearPendingSwipeStartState() {\n pendingSwipeRef.current = false;\n pendingSwipeStartPosRef.current = null;\n }\n function cancelSwipeInteraction(event) {\n resetPendingSwipeState();\n if (!isSwipingRef.current) {\n return;\n }\n setSwiping(false);\n const resolvedInitialTransform = initialTransformRef.current;\n dragOffsetRef.current = {\n x: resolvedInitialTransform.x,\n y: resolvedInitialTransform.y\n };\n setCurrentSwipeDirection(undefined);\n sawPrimaryButtonsOnMoveRef.current = false;\n syncDragStyles(false);\n const element = elementRef.current;\n if (element) {\n safelyChangePointerCapture(element, event.pointerId, 'releasePointerCapture');\n }\n updateSwipeProgress(0, {\n deltaX: 0,\n deltaY: 0,\n direction: undefined\n });\n onCancel?.(event.nativeEvent);\n }\n function applyDirectionalDamping(deltaX, deltaY) {\n const exponent = value => Math.sign(value) * Math.abs(value) ** 0.5;\n const dampAxis = (delta, allowNegative, allowPositive) => {\n if (!allowNegative && delta < 0 || !allowPositive && delta > 0) {\n return exponent(delta);\n }\n return delta;\n };\n const newDeltaX = hasHorizontal ? dampAxis(deltaX, allowLeft, allowRight) : exponent(deltaX);\n const newDeltaY = hasVertical ? dampAxis(deltaY, allowUp, allowDown) : exponent(deltaY);\n return {\n x: newDeltaX,\n y: newDeltaY\n };\n }\n function canSwipeFromScrollEdgeOnPendingMove(scrollTarget, deltaX, deltaY) {\n // Swiping toward the axis start edge (down/right) is allowed when scrolled to the start;\n // toward the end edge (up/left) when scrolled to the end.\n const canSwipeOnAxis = (delta, scrollOffset, maxScrollOffset, allowTowardStart, allowTowardEnd) => delta > 0 && scrollOffset <= 0 && allowTowardStart || delta < 0 && scrollOffset >= Math.max(0, maxScrollOffset) && allowTowardEnd;\n if (hasVertical && deltaY !== 0) {\n return canSwipeOnAxis(deltaY, scrollTarget.scrollTop, scrollTarget.scrollHeight - scrollTarget.clientHeight, allowDown, allowUp);\n }\n if (hasHorizontal && deltaX !== 0) {\n return canSwipeOnAxis(deltaX, scrollTarget.scrollLeft, scrollTarget.scrollWidth - scrollTarget.clientWidth, allowRight, allowLeft);\n }\n return null;\n }\n const handleStart = useStableCallback(event => {\n if (!enabled) {\n return;\n }\n if (event.defaultPrevented || event.nativeEvent.defaultPrevented) {\n return;\n }\n if (!('touches' in event) && event.button !== 0) {\n return;\n }\n const startPos = getPrimaryPointerPosition(event);\n if (!startPos) {\n return;\n }\n pendingSwipeRef.current = true;\n pendingSwipeStartPosRef.current = startPos;\n swipeFromScrollableRef.current = false;\n sawPrimaryButtonsOnMoveRef.current = !('touches' in event);\n const allowedToStart = canStart ? canStart(startPos, {\n nativeEvent: event.nativeEvent,\n direction: primaryDirection\n }) : true;\n if (!allowedToStart) {\n return;\n }\n if (startSwipeAtPosition(event, startPos)) {\n clearPendingSwipeStartState();\n }\n });\n function handleMoveCore(event, position, movement) {\n if (!enabled || !isSwipingRef.current) {\n return;\n }\n const target = getTarget(event.nativeEvent);\n if (isTouchLikeEvent(event) && !swipeFromScrollableRef.current) {\n const boundaryElement = event.currentTarget;\n if (findGestureScrollableTouchTarget(target, boundaryElement)) {\n return;\n }\n }\n if (!('touches' in event)) {\n // Prevent text selection on Safari\n event.preventDefault();\n }\n if (isFirstPointerMoveRef.current) {\n isFirstPointerMoveRef.current = false;\n // Reset the drag origin to the first move's position to absorb the gap between the press and\n // the first move event — notably on iOS touch, where the first `touchmove` arrives already\n // offset from the `touchstart` — which would otherwise make the dragged element jump. This\n // only matters when an element follows the pointer; when `trackDrag` is false (e.g. the\n // swipe-area, which only opens the drawer) keep the original press position so a quick flick\n // still registers: on a low-refresh-rate display the whole travel can land in this single\n // first move, and discarding it would drop the gesture.\n if (trackDrag) {\n dragStartPosRef.current = position;\n const moveTime = getValidTimeStamp(event.timeStamp);\n if (moveTime !== null) {\n swipeStartTimeRef.current = moveTime;\n }\n lastDragSampleRef.current = null;\n hasStationarySampleRef.current = false;\n }\n }\n const clientX = position.x;\n const clientY = position.y;\n const movementX = movement.x;\n const movementY = movement.y;\n if (movementY < 0 && clientY > swipeCancelBaselineRef.current.y || movementY > 0 && clientY < swipeCancelBaselineRef.current.y) {\n swipeCancelBaselineRef.current = {\n x: swipeCancelBaselineRef.current.x,\n y: clientY\n };\n }\n if (movementX < 0 && clientX > swipeCancelBaselineRef.current.x || movementX > 0 && clientX < swipeCancelBaselineRef.current.x) {\n swipeCancelBaselineRef.current = {\n x: clientX,\n y: swipeCancelBaselineRef.current.y\n };\n }\n const deltaX = clientX - dragStartPosRef.current.x;\n const deltaY = clientY - dragStartPosRef.current.y;\n const cancelDeltaY = clientY - swipeCancelBaselineRef.current.y;\n const cancelDeltaX = clientX - swipeCancelBaselineRef.current.x;\n let candidate;\n if (!intendedSwipeDirectionRef.current) {\n if (Math.abs(deltaX) >= Math.abs(deltaY)) {\n candidate = deltaX > 0 ? 'right' : 'left';\n } else {\n candidate = deltaY > 0 ? 'down' : 'up';\n }\n if (candidate) {\n const isAllowed = candidate === 'left' && allowLeft || candidate === 'right' && allowRight || candidate === 'up' && allowUp || candidate === 'down' && allowDown;\n if (isAllowed) {\n intendedSwipeDirectionRef.current = candidate;\n maxSwipeDisplacementRef.current = getDisplacement(candidate, deltaX, deltaY);\n setCurrentSwipeDirection(candidate);\n resolveSwipeThreshold(candidate);\n }\n }\n } else {\n const direction = intendedSwipeDirectionRef.current;\n const currentDisplacement = getDisplacement(direction, cancelDeltaX, cancelDeltaY);\n if (currentDisplacement > swipeThresholdRef.current) {\n cancelledSwipeRef.current = false;\n setCurrentSwipeDirection(direction);\n } else if (!(allowLeft && allowRight) && !(allowUp && allowDown) && maxSwipeDisplacementRef.current - currentDisplacement >= REVERSE_CANCEL_THRESHOLD) {\n // Mark that a change-of-mind has occurred\n cancelledSwipeRef.current = true;\n }\n }\n const dampedDelta = applyDirectionalDamping(deltaX, deltaY);\n let newOffsetX = initialTransformRef.current.x;\n let newOffsetY = initialTransformRef.current.y;\n if (hasHorizontal) {\n newOffsetX += dampedDelta.x;\n }\n if (hasVertical) {\n newOffsetY += dampedDelta.y;\n }\n\n // Only rewrite drag styles when the drag offset actually changed. `syncDragStyles` writes the\n // raw (undamped) frozen transform and movement vars, relying on the consumer's `onProgress`\n // to overwrite them with damped styles — but `updateSwipeProgress` dedupes unchanged\n // deltas and skips `onProgress`. A move that doesn't change the offset (e.g. the cursor\n // pinned at a screen edge during an off-screen drag, jittering only on the ignored axis)\n // would otherwise reinstate the raw styles with no correction, jumping the element to the\n // undamped position.\n const previousOffset = dragOffsetRef.current;\n const offsetChanged = newOffsetX !== previousOffset.x || newOffsetY !== previousOffset.y;\n dragOffsetRef.current = {\n x: newOffsetX,\n y: newOffsetY\n };\n if (offsetChanged) {\n syncDragStyles(true);\n }\n recordDragSample({\n x: newOffsetX,\n y: newOffsetY\n }, getValidTimeStamp(event.timeStamp));\n const dragDeltaX = newOffsetX - initialTransformRef.current.x;\n const dragDeltaY = newOffsetY - initialTransformRef.current.y;\n const progressDetails = {\n deltaX: dragDeltaX,\n deltaY: dragDeltaY,\n direction: intendedSwipeDirectionRef.current\n };\n let progress = 0;\n const progressDirection = primaryDirection ?? intendedSwipeDirectionRef.current;\n if (progressDirection) {\n const size = progressDirection === 'left' || progressDirection === 'right' ? elementSizeRef.current.width : elementSizeRef.current.height;\n const scale = initialTransformRef.current.scale || 1;\n const progressDisplacement = getDisplacement(progressDirection, dragDeltaX, dragDeltaY);\n if (size > 0 && scale > 0 && progressDisplacement > 0) {\n progress = progressDisplacement / (size * scale);\n }\n }\n updateSwipeProgress(progress, progressDetails);\n }\n const handleEnd = useStableCallback(event => {\n if (!enabled) {\n return;\n }\n const resolvedDragOffset = dragOffsetRef.current;\n const resolvedInitialTransform = initialTransformRef.current;\n const releaseDeltaX = resolvedDragOffset.x - resolvedInitialTransform.x;\n const releaseDeltaY = resolvedDragOffset.y - resolvedInitialTransform.y;\n const progressDetails = {\n deltaX: releaseDeltaX,\n deltaY: releaseDeltaY,\n direction: intendedSwipeDirectionRef.current\n };\n if (!isSwipingRef.current) {\n resetPendingSwipeState();\n updateSwipeProgress(0, progressDetails);\n return;\n }\n setSwiping(false);\n resetPendingSwipeState();\n sawPrimaryButtonsOnMoveRef.current = false;\n const element = elementRef.current;\n if (element) {\n if (!('touches' in event)) {\n safelyChangePointerCapture(element, event.pointerId, 'releasePointerCapture');\n }\n }\n const deltaX = releaseDeltaX;\n const deltaY = releaseDeltaY;\n const startTime = swipeStartTimeRef.current;\n const endTime = getValidTimeStamp(event.timeStamp);\n const durationMs = startTime !== null && endTime !== null && endTime > startTime ? endTime - startTime : 0;\n const velocityDurationMs = durationMs > 0 ? Math.max(durationMs, MIN_VELOCITY_DURATION_MS) : 0;\n const velocityX = velocityDurationMs > 0 ? deltaX / velocityDurationMs : 0;\n const velocityY = velocityDurationMs > 0 ? deltaY / velocityDurationMs : 0;\n let releaseVelocityX = lastDragVelocityRef.current.x;\n let releaseVelocityY = lastDragVelocityRef.current.y;\n const lastSample = lastDragSampleRef.current;\n if (lastSample && endTime !== null && endTime >= lastSample.time) {\n const ageMs = endTime - lastSample.time;\n if (ageMs <= MAX_RELEASE_VELOCITY_AGE_MS) {\n const sampleDurationMs = Math.max(ageMs, MIN_RELEASE_VELOCITY_DURATION_MS);\n const deltaFromLastSampleX = resolvedDragOffset.x - lastSample.x;\n const deltaFromLastSampleY = resolvedDragOffset.y - lastSample.y;\n const sampleVelocityX = deltaFromLastSampleX / sampleDurationMs;\n const sampleVelocityY = deltaFromLastSampleY / sampleDurationMs;\n if (Math.abs(deltaFromLastSampleX) >= MIN_VELOCITY_SAMPLE_DISTANCE) {\n releaseVelocityX = sampleVelocityX;\n }\n if (Math.abs(deltaFromLastSampleY) >= MIN_VELOCITY_SAMPLE_DISTANCE) {\n releaseVelocityY = sampleVelocityY;\n }\n } else {\n releaseVelocityX = 0;\n releaseVelocityY = 0;\n }\n }\n const releaseDecision = onRelease?.({\n event: event.nativeEvent,\n direction: intendedSwipeDirectionRef.current,\n deltaX,\n deltaY,\n velocityX,\n velocityY,\n releaseVelocityX,\n releaseVelocityY\n });\n const hasReleaseDecision = typeof releaseDecision === 'boolean';\n if (cancelledSwipeRef.current && !hasReleaseDecision) {\n dragOffsetRef.current = {\n x: resolvedInitialTransform.x,\n y: resolvedInitialTransform.y\n };\n setCurrentSwipeDirection(undefined);\n syncDragStyles(false);\n updateSwipeProgress(0, progressDetails);\n return;\n }\n let shouldClose = false;\n let dismissDirection;\n if (hasReleaseDecision) {\n shouldClose = releaseDecision;\n dismissDirection = intendedSwipeDirectionRef.current ?? primaryDirection;\n } else {\n for (const direction of directions) {\n if (getDisplacement(direction, deltaX, deltaY) > swipeThresholdRef.current) {\n shouldClose = true;\n dismissDirection = direction;\n break;\n }\n }\n }\n if (shouldClose && dismissDirection) {\n setCurrentSwipeDirection(dismissDirection);\n setDragDismissed(true);\n syncDragStyles(false);\n onDismiss?.(event.nativeEvent, {\n direction: dismissDirection\n });\n } else {\n dragOffsetRef.current = {\n x: resolvedInitialTransform.x,\n y: resolvedInitialTransform.y\n };\n setCurrentSwipeDirection(undefined);\n syncDragStyles(false);\n updateSwipeProgress(0, progressDetails);\n }\n });\n const handleMove = useStableCallback(event => {\n const currentPos = getPrimaryPointerPosition(event);\n if (!currentPos) {\n return;\n }\n let endAfterMove = false;\n if (!('touches' in event)) {\n const hasPrimaryButton = hasPrimaryMouseButton(event.buttons);\n if (hasPrimaryButton) {\n sawPrimaryButtonsOnMoveRef.current = true;\n }\n\n // Cancel the swipe if a non-primary button takes over the interaction.\n // This handles cases where a right-click interrupts dragging.\n if (event.buttons !== 0 && !hasPrimaryButton) {\n cancelSwipeInteraction(event);\n return;\n }\n\n // A `buttons: 0` pointermove means the primary button was already released, so the gesture is\n // over even if no pointerup reached us. On fast trackpad flicks this trailing move is\n // dispatched just before pointerup; treat it as the release (mirroring touchend) instead of\n // cancelling and snapping the element back.\n if (event.buttons === 0 && sawPrimaryButtonsOnMoveRef.current) {\n if (!isSwipingRef.current) {\n // The gesture never activated — discard it.\n handleEnd(event);\n return;\n }\n // This release move can itself carry the threshold-crossing displacement (and the peak\n // release velocity), so let it flow through `handleMoveCore` below to update the drag\n // offset / velocity sample, then commit the release afterwards.\n endAfterMove = true;\n }\n }\n if (!isSwiping && pendingSwipeRef.current) {\n if (!isTouchLikeEvent(event) && (event.defaultPrevented || event.nativeEvent.defaultPrevented)) {\n resetPendingSwipeState();\n return;\n }\n const allowedToStart = canStart ? canStart(currentPos, {\n nativeEvent: event.nativeEvent,\n direction: primaryDirection\n }) : true;\n if (allowedToStart) {\n const pendingStartPos = pendingSwipeStartPosRef.current;\n let ignoreScrollableOnStart = false;\n if (isTouchLikeEvent(event)) {\n const element = elementRef.current;\n if (pendingStartPos && element) {\n const target = getTargetAtPoint(currentPos, event.nativeEvent);\n const doc = ownerDocument(element);\n const body = doc.body;\n const scrollTarget = body ? findGestureScrollableTouchTarget(target, body) : null;\n if (scrollTarget && (contains(element, scrollTarget) || contains(scrollTarget, element))) {\n const deltaX = currentPos.x - pendingStartPos.x;\n const deltaY = currentPos.y - pendingStartPos.y;\n const canSwipeFromEdge = canSwipeFromScrollEdgeOnPendingMove(scrollTarget, deltaX, deltaY);\n if (canSwipeFromEdge === false) {\n return;\n }\n if (canSwipeFromEdge === true) {\n ignoreScrollableOnStart = true;\n }\n }\n }\n }\n const started = startSwipeAtPosition(event, currentPos, {\n ignoreScrollableTarget: ignoreScrollableOnStart,\n ignoreScrollableAncestors: ignoreScrollableOnStart\n });\n if (started) {\n if (pendingStartPos && ignoreScrollableOnStart) {\n // Preserve displacement between touchstart and the move that activates swipe from\n // a scroll-edge so quick flicks can dismiss.\n clearPendingSwipeStartState();\n dragStartPosRef.current = pendingStartPos;\n swipeCancelBaselineRef.current = pendingStartPos;\n lastMovePosRef.current = pendingStartPos;\n isFirstPointerMoveRef.current = false;\n } else {\n // Start from the current in-bounds position without dropping follow-up move\n // displacement; this avoids jumps when entering from outside the element while\n // keeping swipe tracking responsive on the next move.\n clearPendingSwipeStartState();\n swipeFromScrollableRef.current = false;\n }\n }\n }\n }\n const previousPos = lastMovePosRef.current;\n const movement = previousPos === null ? {\n x: 0,\n y: 0\n } : {\n x: currentPos.x - previousPos.x,\n y: currentPos.y - previousPos.y\n };\n lastMovePosRef.current = currentPos;\n handleMoveCore(event, currentPos, movement);\n\n // `endAfterMove` is only set in the non-touch branch above; the `'touches'` guard re-narrows the\n // event type for `handleEnd` after the shared move handling has run.\n if (endAfterMove && !('touches' in event)) {\n handleEnd(event);\n }\n });\n\n // Feeds a native touchmove into the swipe pipeline. Used by consumers that claim the gesture\n // in a capture-phase listener and stop it from reaching React's delegated touch handlers.\n const moveNative = useStableCallback((nativeEvent, currentTarget) => {\n handleMove({\n touches: nativeEvent.touches,\n currentTarget,\n nativeEvent,\n defaultPrevented: nativeEvent.defaultPrevented,\n timeStamp: nativeEvent.timeStamp\n });\n });\n const getDragStyles = React.useCallback(() => {\n // Read `isSwipingRef`, not the lagging `isSwiping` state, to match the imperative writer\n // `syncDragStyles`. Otherwise a render that commits before `setSwiping(true)` flushes strips the\n // transform it just wrote, flashing the popup to its resting position for a frame.\n const swiping = isSwipingRef.current;\n const dragOffset = dragOffsetRef.current;\n const initialTransform = initialTransformRef.current;\n const deltaX = dragOffset.x - initialTransform.x;\n const deltaY = dragOffset.y - initialTransform.y;\n if (!swiping && deltaX === 0 && deltaY === 0 && !dragDismissed) {\n return {\n [movementCssVars.x]: '0px',\n [movementCssVars.y]: '0px'\n };\n }\n return {\n transition: swiping ? 'none' : undefined,\n // While swiping, freeze the element at its current visual transform so it doesn't snap to the\n // end position.\n transform: swiping ? getDragTransform(dragOffset, initialTransform.scale) : undefined,\n [movementCssVars.x]: `${deltaX}px`,\n [movementCssVars.y]: `${deltaY}px`\n };\n }, [dragDismissed, movementCssVars]);\n const getPointerProps = React.useCallback(() => {\n if (!enabled) {\n return {};\n }\n return {\n onPointerDown: handleStart,\n onPointerMove: handleMove,\n onPointerUp: handleEnd,\n onPointerCancel: handleEnd\n };\n }, [enabled, handleEnd, handleMove, handleStart]);\n const getTouchProps = React.useCallback(() => {\n if (!enabled) {\n return {};\n }\n return {\n onTouchStart: handleStart,\n onTouchMove: handleMove,\n onTouchEnd: handleEnd,\n onTouchCancel: handleEnd\n };\n }, [enabled, handleEnd, handleMove, handleStart]);\n return {\n swiping: isSwiping,\n swipeDirection: currentSwipeDirection,\n dragDismissed,\n getPointerProps,\n getTouchProps,\n moveNative,\n getDragStyles,\n reset\n };\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ToastContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ToastContext.displayName = \"ToastContext\";\nexport function useToastProviderContext() {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: useToastManager must be used within <Toast.Provider>.' : _formatErrorMessage(73));\n }\n return context;\n}","let counter = 0;\nexport function generateId(prefix) {\n counter += 1;\n return `${prefix}-${Math.random().toString(36).slice(2, 6)}-${counter}`;\n}","export function resolvePromiseOptions(options, result) {\n if (typeof options === 'string') {\n return {\n description: options\n };\n }\n if (typeof options === 'function') {\n const resolvedOptions = options(result);\n return typeof resolvedOptions === 'string' ? {\n description: resolvedOptions\n } : resolvedOptions;\n }\n return options;\n}","import { ReactStore } from '@base-ui/utils/store';\nimport { generateId } from '@base-ui/utils/generateId';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { Timeout } from '@base-ui/utils/useTimeout';\nimport { resolvePromiseOptions } from \"./utils/resolvePromiseOptions.mjs\";\nimport { activeElement, contains, getTarget } from \"../floating-ui-react/utils.mjs\";\nimport { isFocusVisible } from \"./utils/focusVisible.mjs\";\n\n/**\n * A toast once it lives in the store. `addToast` is the only way in and it always\n * assigns `updateKey`, so unlike the public `ToastObject` it is never missing.\n */\n\nfunction createToastMetadata(toasts) {\n const metadata = new Map();\n let visibleIndex = 0;\n let offsetY = 0;\n toasts.forEach((toast, toastIndex) => {\n const isEnding = toast.transitionStatus === 'ending';\n metadata.set(toast.id, {\n value: toast,\n domIndex: toastIndex,\n visibleIndex: isEnding ? -1 : visibleIndex,\n offsetY\n });\n offsetY += toast.height || 0;\n if (!isEnding) {\n visibleIndex += 1;\n }\n });\n return metadata;\n}\n\n// Marks the active (non-ending) toasts beyond `limit` as limited. Callers pass\n// toasts in newest-first order, so the newest `limit` toasts stay visible and\n// the rest are flagged. Returns the same toast reference when its `limited`\n// flag is unchanged to avoid unnecessary re-renders.\nfunction applyLimited(toasts, limit) {\n let activeIndex = 0;\n return toasts.map(toast => {\n if (toast.transitionStatus === 'ending') {\n return toast;\n }\n const limited = activeIndex >= limit;\n activeIndex += 1;\n return toast.limited === limited ? toast : {\n ...toast,\n limited\n };\n });\n}\nexport const selectors = {\n toasts: state => state.toasts,\n isEmpty: state => state.toasts.length === 0,\n toast: (state, id) => state.toastMetadata.get(id)?.value,\n toastIndex: (state, id) => state.toastMetadata.get(id)?.domIndex ?? -1,\n toastOffsetY: (state, id) => state.toastMetadata.get(id)?.offsetY ?? 0,\n toastVisibleIndex: (state, id) => state.toastMetadata.get(id)?.visibleIndex ?? -1,\n focused: state => state.focused,\n expanded: state => state.hovering || state.focused,\n expandedOrOutOfFocus: state => state.hovering || state.focused || !state.isWindowFocused,\n prevFocusElement: state => state.prevFocusElement\n};\nexport class ToastStore extends ReactStore {\n timers = new Map();\n areTimersPaused = false;\n constructor(initialState) {\n super({\n ...initialState,\n toastMetadata: createToastMetadata(initialState.toasts)\n }, {}, selectors);\n }\n setViewport = viewport => {\n this.set('viewport', viewport);\n };\n syncProviderProps(timeout, limit) {\n const limitChanged = this.state.limit !== limit;\n if (this.state.timeout === timeout && !limitChanged) {\n return;\n }\n const updates = {\n timeout,\n limit\n };\n if (limitChanged) {\n const newToasts = applyLimited(this.state.toasts, limit);\n updates.toasts = newToasts;\n updates.toastMetadata = createToastMetadata(newToasts);\n }\n this.update(updates);\n }\n disposeEffect = () => {\n return () => {\n this.timers.forEach(timer => {\n timer.timeout?.clear();\n });\n this.timers.clear();\n };\n };\n removeToast(toastId, skipOnRemove = false) {\n const index = selectors.toastIndex(this.state, toastId);\n if (index === -1) {\n return;\n }\n const toast = this.state.toasts[index];\n if (!skipOnRemove) {\n toast?.onRemove?.();\n }\n const newToasts = [...this.state.toasts];\n newToasts.splice(index, 1);\n this.setToasts(newToasts);\n }\n addToast = toast => {\n const {\n timeout,\n limit\n } = this.state;\n const id = toast.id || generateId('toast');\n if (toast.id) {\n const existingToast = selectors.toast(this.state, toast.id);\n if (existingToast) {\n if (existingToast.transitionStatus === 'ending') {\n this.removeToast(toast.id, true);\n } else {\n const {\n id: ignoredId,\n transitionStatus: ignoredTransitionStatus,\n ...updates\n } = toast;\n this.updateToastInternal(toast.id, updates, true, true);\n return toast.id;\n }\n }\n }\n const toastToAdd = {\n ...toast,\n id,\n updateKey: 0,\n transitionStatus: 'starting'\n };\n const updatedToasts = [toastToAdd, ...this.state.toasts];\n this.setToasts(applyLimited(updatedToasts, limit));\n const duration = toastToAdd.timeout ?? timeout;\n if (toastToAdd.type !== 'loading' && duration > 0) {\n this.scheduleTimer(id, duration, () => this.closeToast(id));\n }\n if (selectors.expandedOrOutOfFocus(this.state)) {\n this.pauseTimers();\n }\n return id;\n };\n updateToast = (id, updates) => {\n const prevToast = selectors.toast(this.state, id);\n // Never run the updater for an update the store is going to ignore.\n if (!prevToast || prevToast.transitionStatus === 'ending') {\n return;\n }\n\n // The updater may have called back into the store, so the internal update\n // reads the current state again.\n this.updateToastInternal(id, typeof updates === 'function' ? updates(prevToast) : updates, false, true);\n };\n updateToastInternal = (id, updates, resetTimer = false, markUpdated = false) => {\n const {\n timeout,\n toasts\n } = this.state;\n const prevToast = selectors.toast(this.state, id);\n if (!prevToast) {\n return;\n }\n\n // Ignore updates for toasts that are already closing.\n // This prevents races where async updates (e.g. promise success/error)\n // can block a dismissal from completing.\n if (prevToast.transitionStatus === 'ending') {\n return;\n }\n const nextToast = {\n ...prevToast,\n ...updates,\n ...(markUpdated && {\n updateKey: prevToast.updateKey + 1\n })\n };\n this.setToasts(toasts.map(toast => toast.id === id ? nextToast : toast));\n const nextTimeout = nextToast.timeout ?? timeout;\n const prevTimeout = prevToast.timeout ?? timeout;\n const timeoutUpdated = Object.hasOwn(updates, 'timeout');\n const shouldHaveTimer = nextToast.transitionStatus !== 'ending' && nextToast.type !== 'loading' && nextTimeout > 0;\n const hasTimer = this.timers.has(id);\n const timeoutChanged = prevTimeout !== nextTimeout;\n const wasLoading = prevToast.type === 'loading';\n if (!shouldHaveTimer && hasTimer) {\n this.clearTimer(id);\n return;\n }\n\n // Schedule or reschedule timer if needed\n if (shouldHaveTimer && (!hasTimer || timeoutChanged || timeoutUpdated || wasLoading || resetTimer)) {\n this.clearTimer(id);\n this.scheduleTimer(id, nextTimeout, () => this.closeToast(id));\n if (selectors.expandedOrOutOfFocus(this.state)) {\n this.pauseTimers();\n }\n }\n };\n closeToast = toastId => {\n const closeAll = toastId === undefined;\n const {\n limit,\n toasts\n } = this.state;\n let toastsToClose;\n if (closeAll) {\n toastsToClose = toasts;\n this.clearTimers();\n } else {\n const toast = selectors.toast(this.state, toastId);\n if (!toast) {\n return;\n }\n toastsToClose = [toast];\n this.clearTimer(toastId);\n }\n const endingToasts = toasts.map(item => closeAll || item.id === toastId ? {\n ...item,\n transitionStatus: 'ending',\n height: 0\n } : item);\n const newToasts = applyLimited(endingToasts, limit);\n this.setToasts(newToasts, !newToasts.some(toast => toast.transitionStatus !== 'ending'));\n toastsToClose.forEach(toast => {\n if (toast.transitionStatus !== 'ending') {\n toast.onClose?.();\n }\n });\n this.handleFocusManagement(toastId);\n };\n promiseToast = (promiseValue, options) => {\n // Create a loading toast (which does not auto-dismiss).\n const loadingOptions = resolvePromiseOptions(options.loading);\n const id = this.addToast({\n ...loadingOptions,\n type: 'loading'\n });\n const handledPromise = promiseValue.then(result => {\n const successOptions = resolvePromiseOptions(options.success, result);\n this.updateToast(id, {\n ...successOptions,\n type: 'success',\n timeout: successOptions.timeout\n });\n return result;\n }).catch(error => {\n const errorOptions = resolvePromiseOptions(options.error, error);\n this.updateToast(id, {\n ...errorOptions,\n type: 'error',\n timeout: errorOptions.timeout\n });\n return Promise.reject(error);\n });\n\n // Private API used exclusively by `Manager` to handoff the promise\n // back to the manager after it's handled here.\n if ({}.hasOwnProperty.call(options, 'setPromise')) {\n options.setPromise(handledPromise);\n }\n return handledPromise;\n };\n pauseTimers() {\n if (this.areTimersPaused) {\n return;\n }\n this.areTimersPaused = true;\n this.timers.forEach(timer => {\n // Timers added while already paused have no running timeout, so their\n // `remaining` is still the full delay and must be left alone.\n if (timer.timeout) {\n timer.timeout.clear();\n // `start` is stamped on every resume, so subtracting from `remaining`\n // (rather than from the original delay) keeps repeated pause/resume\n // cycles from handing the toast extra time.\n timer.remaining = Math.max(timer.remaining - (Date.now() - timer.start), 0);\n }\n });\n }\n resumeTimers() {\n if (!this.areTimersPaused) {\n return;\n }\n this.areTimersPaused = false;\n this.timers.forEach((timer, id) => {\n timer.remaining = timer.remaining > 0 ? timer.remaining : timer.delay;\n timer.timeout ??= Timeout.create();\n timer.timeout.start(timer.remaining, () => {\n this.handleTimerFired(id);\n timer.callback();\n });\n timer.start = Date.now();\n });\n }\n restoreFocusToPrevElement() {\n this.state.prevFocusElement?.focus({\n preventScroll: true\n });\n }\n handleDocumentPointerDown = event => {\n if (event.pointerType !== 'touch') {\n return;\n }\n const target = getTarget(event);\n if (contains(this.state.viewport, target)) {\n return;\n }\n\n // This is explicit touch activity outside the viewport, so the paused\n // interaction state should end even if the window focus state is unchanged.\n this.resumeTimers();\n this.update({\n hovering: false,\n focused: false\n });\n };\n scheduleTimer(id, delay, callback) {\n const start = Date.now();\n const shouldStartActive = !selectors.expandedOrOutOfFocus(this.state);\n const currentTimeout = shouldStartActive ? Timeout.create() : undefined;\n currentTimeout?.start(delay, () => {\n this.handleTimerFired(id);\n callback();\n });\n this.timers.set(id, {\n timeout: currentTimeout,\n start,\n delay,\n remaining: delay,\n callback\n });\n }\n clearTimers() {\n this.timers.forEach(timer => {\n timer.timeout?.clear();\n });\n this.timers.clear();\n this.areTimersPaused = false;\n }\n clearTimer(id) {\n const timer = this.timers.get(id);\n timer?.timeout?.clear();\n this.timers.delete(id);\n this.resetPausedStateIfNoTimersRemain();\n }\n handleTimerFired(id) {\n this.timers.delete(id);\n this.resetPausedStateIfNoTimersRemain();\n }\n resetPausedStateIfNoTimersRemain() {\n if (this.timers.size === 0) {\n // No timers remain to keep paused; clear the flag so a fresh toast's\n // running timer can be paused again on hover/focus.\n this.areTimersPaused = false;\n }\n }\n setToasts(newToasts, clearInteraction = newToasts.length === 0) {\n const updates = {\n toasts: newToasts,\n toastMetadata: createToastMetadata(newToasts)\n };\n if (clearInteraction) {\n updates.hovering = false;\n updates.focused = false;\n }\n this.update(updates);\n }\n handleFocusManagement(toastId) {\n const activeEl = activeElement(ownerDocument(this.state.viewport));\n if (!this.state.viewport || !contains(this.state.viewport, activeEl) || !isFocusVisible(activeEl)) {\n return;\n }\n if (toastId === undefined) {\n this.restoreFocusToPrevElement();\n return;\n }\n const toasts = selectors.toasts(this.state);\n const currentIndex = selectors.toastIndex(this.state, toastId);\n const scan = (from, step) => {\n for (let index = from; index >= 0 && index < toasts.length; index += step) {\n if (toasts[index].transitionStatus !== 'ending') {\n return toasts[index];\n }\n }\n return null;\n };\n\n // Try to find the next toast that isn't animating out, then fall back to the previous one.\n const nextToast = scan(currentIndex + 1, 1) ?? scan(currentIndex - 1, -1);\n if (nextToast) {\n nextToast.ref?.current?.focus();\n } else {\n this.restoreFocusToPrevElement();\n }\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { useOnMount } from '@base-ui/utils/useOnMount';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { ToastContext } from \"./ToastProviderContext.mjs\";\nimport { ToastStore } from \"../store.mjs\";\n\n/**\n * Provides a context for creating and managing toasts.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ToastProvider = function ToastProvider(props) {\n const {\n children,\n timeout = 5000,\n limit = 3,\n toastManager\n } = props;\n const store = useRefWithInit(() => new ToastStore({\n timeout,\n limit,\n viewport: null,\n toasts: [],\n hovering: false,\n focused: false,\n isWindowFocused: true,\n prevFocusElement: null\n })).current;\n useOnMount(store.disposeEffect);\n React.useEffect(function subscribeToToastManager() {\n if (!toastManager) {\n return undefined;\n }\n const unsubscribe = toastManager[' subscribe'](({\n action,\n options\n }) => {\n const id = options.id;\n if (action === 'promise' && options.promise) {\n store.promiseToast(options.promise, options);\n } else if (action === 'update' && id) {\n store.updateToast(id, options.updates);\n } else if (action === 'close') {\n store.closeToast(id);\n } else {\n store.addToast(options);\n }\n });\n return unsubscribe;\n }, [store, toastManager]);\n return /*#__PURE__*/_jsxs(ToastContext.Provider, {\n value: store,\n children: [/*#__PURE__*/_jsx(ToastProviderPropsSynchronizer, {\n store: store,\n timeout: timeout,\n limit: limit\n }), children]\n });\n};\nif (process.env.NODE_ENV !== \"production\") ToastProvider.displayName = \"ToastProvider\";\nfunction ToastProviderPropsSynchronizer(props) {\n const {\n store,\n timeout,\n limit\n } = props;\n\n // `limit` needs custom syncing because changing it must also recompute each\n // toast's `limited` flag; `useSyncedValues` would only update the raw value.\n useIsoLayoutEffect(() => {\n store.syncProviderProps(timeout, limit);\n }, [store, timeout, limit]);\n return null;\n}","/**\n * Indicates the height of the frontmost toast.\n * @type {number}\n */\nexport const frontmostHeight = '--toast-frontmost-height';","'use client';\n\nimport * as React from 'react';\nimport { addEventListener } from '@base-ui/utils/addEventListener';\nimport { mergeCleanups } from '@base-ui/utils/mergeCleanups';\nimport { ownerDocument, ownerWindow } from '@base-ui/utils/owner';\nimport { visuallyHidden } from '@base-ui/utils/visuallyHidden';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { activeElement, contains, getTarget } from \"../../floating-ui-react/utils.mjs\";\nimport { FocusGuard } from \"../../utils/FocusGuard.mjs\";\nimport { useToastProviderContext } from \"../provider/ToastProviderContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { isFocusVisible } from \"../utils/focusVisible.mjs\";\nimport * as ToastViewportCssVars from \"./ToastViewportCssVars.mjs\";\n\n/**\n * A container viewport for toasts.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ToastViewport = /*#__PURE__*/React.forwardRef(function ToastViewport(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n children,\n ...elementProps\n } = componentProps;\n const store = useToastProviderContext();\n const windowFocusTimeout = useTimeout();\n const handlingFocusGuardRef = React.useRef(false);\n const markedReadyForMouseLeaveRef = React.useRef(false);\n const touchActiveRef = React.useRef(false);\n const isEmpty = store.useState('isEmpty');\n const toasts = store.useState('toasts');\n const focused = store.useState('focused');\n const expanded = store.useState('expanded');\n const prevFocusElement = store.useState('prevFocusElement');\n const frontmostHeight = toasts[0]?.height;\n const hasTransitioningToasts = toasts.some(toast => toast.transitionStatus === 'ending');\n const highPriorityToasts = toasts.filter(toast => toast.priority === 'high');\n React.useEffect(() => {\n // `store.state.viewport` isn't available on the first render, since the portal node hasn't yet\n // been created. Depending on `isEmpty` ensures the listeners are attached once toasts exist and\n // the viewport ref is available.\n const viewport = store.state.viewport;\n if (!viewport || isEmpty) {\n return undefined;\n }\n const win = ownerWindow(viewport);\n const doc = ownerDocument(viewport);\n\n // Listen globally for F6 so we can force-focus the viewport.\n function handleGlobalKeyDown(event) {\n if (event.key === 'F6' && getTarget(event) !== viewport) {\n event.preventDefault();\n store.set('prevFocusElement', activeElement(doc));\n viewport?.focus({\n preventScroll: true\n });\n store.pauseTimers();\n store.set('focused', true);\n }\n }\n function handleWindowBlur(event) {\n if (getTarget(event) !== win) {\n return;\n }\n store.set('isWindowFocused', false);\n store.pauseTimers();\n }\n function handleWindowFocus(event) {\n if (event.relatedTarget) {\n return;\n }\n const target = getTarget(event);\n const activeEl = activeElement(ownerDocument(viewport));\n if (target === win || !contains(viewport, target) || !isFocusVisible(activeEl)) {\n store.resumeTimers();\n }\n\n // Wait for the `handleFocus` event to fire.\n windowFocusTimeout.start(0, () => store.set('isWindowFocused', true));\n }\n return mergeCleanups(addEventListener(win, 'keydown', handleGlobalKeyDown), addEventListener(win, 'blur', handleWindowBlur, true), addEventListener(win, 'focus', handleWindowFocus, true), addEventListener(doc, 'pointerdown', store.handleDocumentPointerDown, true));\n }, [store, windowFocusTimeout, isEmpty]);\n function handleFocusGuard(event) {\n handlingFocusGuardRef.current = true;\n\n // If we're coming off the container, move to the first toast that can hold\n // focus, skipping toasts that are animating out or inert because they're limited.\n const firstFocusableToast = event.relatedTarget === store.state.viewport ? toasts.find(toast => toast.transitionStatus !== 'ending' && !toast.limited) : undefined;\n if (firstFocusableToast) {\n firstFocusableToast.ref?.current?.focus();\n } else {\n store.restoreFocusToPrevElement();\n }\n }\n function handleKeyDown(event) {\n if (event.key === 'Tab' && event.shiftKey && getTarget(event.nativeEvent) === store.state.viewport) {\n event.preventDefault();\n // Restoring focus blurs the viewport, and `handleBlur` resumes the timers\n // from there. Resuming here as well would also fire when the previously\n // focused element lives inside the viewport, letting toasts dismiss out\n // from under the keyboard.\n store.restoreFocusToPrevElement();\n }\n }\n function flushMouseLeave() {\n const hasEndingToasts = store.state.toasts.some(toast => toast.transitionStatus === 'ending');\n if (hasEndingToasts || touchActiveRef.current || !markedReadyForMouseLeaveRef.current) {\n return;\n }\n\n // Apply any mouseleave that was deferred until transitions finished.\n store.set('hovering', false);\n if (!store.select('expandedOrOutOfFocus')) {\n store.resumeTimers();\n }\n markedReadyForMouseLeaveRef.current = false;\n }\n React.useEffect(flushMouseLeave, [hasTransitioningToasts, store]);\n function handleMouseEnter() {\n store.pauseTimers();\n store.set('hovering', true);\n markedReadyForMouseLeaveRef.current = false;\n }\n function handleMouseLeave() {\n // Defer to `flushMouseLeave`: while toasts are transitioning out or a touch gesture is active it\n // records the intent and collapses later; otherwise it collapses immediately.\n markedReadyForMouseLeaveRef.current = true;\n flushMouseLeave();\n }\n function handlePointerDown(event) {\n if (event.pointerType === 'touch') {\n touchActiveRef.current = true;\n }\n }\n function handlePointerEnd(event) {\n if (event.pointerType !== 'touch') {\n return;\n }\n touchActiveRef.current = false;\n flushMouseLeave();\n }\n function handleFocus() {\n if (handlingFocusGuardRef.current) {\n handlingFocusGuardRef.current = false;\n return;\n }\n if (focused) {\n return;\n }\n\n // Only set focused when the active element is focus-visible.\n // This prevents the viewport from staying expanded when clicking inside without\n // keyboard navigation.\n if (isFocusVisible(activeElement(ownerDocument(store.state.viewport)))) {\n store.set('focused', true);\n store.pauseTimers();\n }\n }\n function handleBlur(event) {\n if (!focused || contains(store.state.viewport, event.relatedTarget)) {\n return;\n }\n store.set('focused', false);\n if (!store.select('expandedOrOutOfFocus')) {\n store.resumeTimers();\n }\n }\n const defaultProps = {\n tabIndex: -1,\n role: 'region',\n 'aria-live': 'polite',\n 'aria-atomic': false,\n 'aria-relevant': 'additions text',\n 'aria-label': 'Notifications',\n onMouseEnter: handleMouseEnter,\n onMouseMove: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onClick: handleFocus,\n onPointerDown: handlePointerDown,\n onPointerUp: handlePointerEnd,\n onPointerCancel: handlePointerEnd,\n style: {\n [ToastViewportCssVars.frontmostHeight]: frontmostHeight ? `${frontmostHeight}px` : undefined\n }\n };\n const state = {\n expanded\n };\n const focusGuard = !isEmpty && prevFocusElement && /*#__PURE__*/_jsx(FocusGuard, {\n onFocus: handleFocusGuard\n });\n const element = useRenderElement('div', componentProps, {\n ref: [forwardedRef, store.setViewport],\n state,\n props: [defaultProps, elementProps, {\n children: /*#__PURE__*/_jsxs(React.Fragment, {\n children: [focusGuard, children, focusGuard]\n })\n }]\n });\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [focusGuard, element, !focused && highPriorityToasts.length > 0 && /*#__PURE__*/_jsx(\"div\", {\n style: visuallyHidden,\n children: highPriorityToasts.map(toast => /*#__PURE__*/_jsxs(\"div\", {\n role: \"alert\",\n \"aria-atomic\": true,\n children: [/*#__PURE__*/_jsx(\"div\", {\n children: toast.title\n }), /*#__PURE__*/_jsx(\"div\", {\n children: toast.description\n })]\n }, toast.id))\n })]\n });\n});\nif (process.env.NODE_ENV !== \"production\") ToastViewport.displayName = \"ToastViewport\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ToastRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ToastRootContext.displayName = \"ToastRootContext\";\nexport function useToastRootContext() {\n const context = React.useContext(ToastRootContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ToastRootContext is missing. Toast parts must be used within <Toast.Root>.' : _formatErrorMessage(66));\n }\n return context;\n}","/**\n * Indicates the index of the toast in the list.\n * @type {number}\n */\nexport const index = '--toast-index';\n/**\n * Indicates the vertical pixels offset of the toast in the list when expanded.\n * @type {number}\n */\nexport const offsetY = '--toast-offset-y';\n/**\n * Indicates the measured natural height of the toast in pixels.\n * @type {number}\n */\nexport const height = '--toast-height';\n/**\n * Indicates the horizontal swipe movement of the toast.\n * @type {number}\n */\nexport const swipeMovementX = '--toast-swipe-movement-x';\n/**\n * Indicates the vertical swipe movement of the toast.\n * @type {number}\n */\nexport const swipeMovementY = '--toast-swipe-movement-y';","import { TransitionStatusDataAttributes } from \"../../internals/stateAttributesMapping.mjs\";\n\n/**\n * Present when the toast is expanded in the viewport.\n * @type {boolean}\n */\nexport const expanded = 'data-expanded';\n/**\n * Present when the toast was limited because the toast limit was exceeded.\n * @type {boolean}\n */\nexport const limited = 'data-limited';\n/**\n * The type of the toast.\n * @type {string}\n */\nexport const type = 'data-type';\n/**\n * Present when the toast is being swiped.\n * @type {boolean}\n */\nexport const swiping = 'data-swiping';\n/**\n * The direction the toast was swiped.\n * @type {'up' | 'down' | 'left' | 'right'}\n */\nexport const swipeDirection = 'data-swipe-direction';\n/**\n * Present when the toast begins animating in.\n */\nexport const startingStyle = TransitionStatusDataAttributes.startingStyle;\n/**\n * Present when the toast is animating out.\n */\nexport const endingStyle = TransitionStatusDataAttributes.endingStyle;","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { addEventListener } from '@base-ui/utils/addEventListener';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { inertValue } from '@base-ui/utils/inertValue';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { activeElement, closest, contains, getTarget } from \"../../floating-ui-react/utils.mjs\";\nimport { ToastRootContext } from \"./ToastRootContext.mjs\";\nimport { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\nimport { useToastProviderContext } from \"../provider/ToastProviderContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { BASE_UI_SWIPE_IGNORE_SELECTOR, LEGACY_SWIPE_IGNORE_SELECTOR } from \"../../internals/constants.mjs\";\nimport { getDisplacement } from \"../../utils/useSwipeDismiss.mjs\";\nimport { getElementTransform } from \"../../utils/getElementTransform.mjs\";\nimport * as ToastRootCssVars from \"./ToastRootCssVars.mjs\";\nimport * as ToastRootDataAttributes from \"./ToastRootDataAttributes.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const toastRootStateAttributesMapping = {\n ...transitionStatusMapping,\n swipeDirection(value) {\n return value ? {\n [ToastRootDataAttributes.swipeDirection]: value\n } : null;\n }\n};\nconst SWIPE_THRESHOLD = 40;\nconst REVERSE_CANCEL_THRESHOLD = 10;\nconst OPPOSITE_DIRECTION_DAMPING_FACTOR = 0.5;\nconst MIN_DRAG_THRESHOLD = 1;\nconst TOAST_SWIPE_IGNORE_SELECTOR = `${BASE_UI_SWIPE_IGNORE_SELECTOR},${LEGACY_SWIPE_IGNORE_SELECTOR}`;\n\n/**\n * Groups all parts of an individual toast.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastRoot = /*#__PURE__*/React.forwardRef(function ToastRoot(componentProps, forwardedRef) {\n const {\n toast,\n render,\n className,\n swipeDirection = ['down', 'right'],\n style,\n ...elementProps\n } = componentProps;\n const isAnchored = toast.positionerProps?.anchor !== undefined;\n let swipeDirections = [];\n if (!isAnchored) {\n swipeDirections = Array.isArray(swipeDirection) ? swipeDirection : [swipeDirection];\n }\n const swipeEnabled = swipeDirections.length > 0;\n const store = useToastProviderContext();\n const [currentSwipeDirection, setCurrentSwipeDirection] = React.useState(undefined);\n const [isSwiping, setIsSwiping] = React.useState(false);\n const [isRealSwipe, setIsRealSwipe] = React.useState(false);\n const [dragOffset, setDragOffset] = React.useState({\n x: 0,\n y: 0\n });\n const [initialTransform, setInitialTransform] = React.useState({\n x: 0,\n y: 0,\n scale: 1\n });\n const [titleId, setTitleId] = React.useState();\n const [descriptionId, setDescriptionId] = React.useState();\n const [lockedDirection, setLockedDirection] = React.useState(null);\n const rootRef = React.useRef(null);\n const lastToastIdRef = React.useRef(undefined);\n const dragStartPosRef = React.useRef({\n x: 0,\n y: 0\n });\n const initialTransformRef = React.useRef({\n x: 0,\n y: 0,\n scale: 1\n });\n const intendedSwipeDirectionRef = React.useRef(undefined);\n const maxSwipeDisplacementRef = React.useRef(0);\n const cancelledSwipeRef = React.useRef(false);\n const swipeCancelBaselineRef = React.useRef({\n x: 0,\n y: 0\n });\n const isFirstPointerMoveRef = React.useRef(false);\n const dragOffsetRef = React.useRef({\n x: 0,\n y: 0\n });\n const activePointerIdRef = React.useRef(null);\n const dragAbortControllerRef = React.useRef(null);\n const domIndex = store.useState('toastIndex', toast.id);\n const visibleIndex = store.useState('toastVisibleIndex', toast.id);\n const offsetY = store.useState('toastOffsetY', toast.id);\n const focused = store.useState('focused');\n const expanded = store.useState('expanded');\n useOpenChangeComplete({\n open: toast.transitionStatus !== 'ending',\n ref: rootRef,\n onComplete() {\n if (toast.transitionStatus === 'ending') {\n store.removeToast(toast.id);\n }\n }\n });\n\n // Recalculates the natural height of the toast and updates it in the toast manager.\n // `flushSync` avoids visual flickers when called from observer callbacks.\n // The store ignores this write while the toast is transitioning out.\n const recalculateHeight = useStableCallback((flushSync = false) => {\n const element = rootRef.current;\n if (!element) {\n return;\n }\n const previousHeight = element.style.height;\n element.style.height = 'auto';\n const height = element.offsetHeight;\n element.style.height = previousHeight;\n function update() {\n store.updateToastInternal(toast.id, {\n ref: rootRef,\n height,\n transitionStatus: undefined\n });\n }\n if (flushSync) {\n ReactDOM.flushSync(update);\n } else {\n update();\n }\n });\n\n // Initialize the toast on mount, and reinitialize when it begins a new lifecycle:\n // re-adding an ending toast retains the same root instance (`key={toast.id}`), and\n // index-keyed lists can hand an existing instance a different toast.\n useIsoLayoutEffect(() => {\n const previousToastId = lastToastIdRef.current;\n // `recalculateHeight` clears the `starting` status itself, so bail out on the\n // resulting re-run and on the later `ending` one, which the store discards anyway.\n if (toast.transitionStatus !== 'starting' && previousToastId === toast.id) {\n return;\n }\n if (previousToastId !== undefined) {\n // A retained root keeps component-local swipe state from its previous lifecycle;\n // clear it so the toast doesn't stay offset or exit in the swiped direction.\n setCurrentSwipeDirection(undefined);\n setInitialTransform({\n x: 0,\n y: 0,\n scale: 1\n });\n setResolvedDragOffset({\n x: 0,\n y: 0\n });\n }\n lastToastIdRef.current = toast.id;\n recalculateHeight();\n }, [recalculateHeight, toast.id, toast.transitionStatus]);\n function setResolvedDragOffset(nextDragOffset) {\n dragOffsetRef.current = nextDragOffset;\n setDragOffset(nextDragOffset);\n }\n useIsoLayoutEffect(() => {\n return () => {\n dragAbortControllerRef.current?.abort();\n };\n }, []);\n function applyDirectionalDamping(deltaX, deltaY) {\n const damp = delta => delta > 0 ? delta ** OPPOSITE_DIRECTION_DAMPING_FACTOR : -(Math.abs(delta) ** OPPOSITE_DIRECTION_DAMPING_FACTOR);\n const dampX = deltaX > 0 && !swipeDirections.includes('right') || deltaX < 0 && !swipeDirections.includes('left');\n const dampY = deltaY > 0 && !swipeDirections.includes('down') || deltaY < 0 && !swipeDirections.includes('up');\n return {\n x: dampX ? damp(deltaX) : deltaX,\n y: dampY ? damp(deltaY) : deltaY\n };\n }\n const handleSwipeEnd = useStableCallback(event => {\n if (event.pointerId !== activePointerIdRef.current) {\n return;\n }\n activePointerIdRef.current = null;\n dragAbortControllerRef.current?.abort();\n dragAbortControllerRef.current = null;\n setIsSwiping(false);\n setIsRealSwipe(false);\n setLockedDirection(null);\n const resolvedInitialTransform = initialTransformRef.current;\n if (event.type === 'pointercancel' || cancelledSwipeRef.current) {\n setResolvedDragOffset({\n x: resolvedInitialTransform.x,\n y: resolvedInitialTransform.y\n });\n setCurrentSwipeDirection(undefined);\n return;\n }\n const resolvedDragOffset = dragOffsetRef.current;\n const deltaX = resolvedDragOffset.x - resolvedInitialTransform.x;\n const deltaY = resolvedDragOffset.y - resolvedInitialTransform.y;\n let dismissDirection;\n for (const direction of swipeDirections) {\n if (getDisplacement(direction, deltaX, deltaY) > SWIPE_THRESHOLD) {\n dismissDirection = direction;\n break;\n }\n }\n if (dismissDirection) {\n setCurrentSwipeDirection(dismissDirection);\n store.closeToast(toast.id);\n } else {\n setResolvedDragOffset({\n x: resolvedInitialTransform.x,\n y: resolvedInitialTransform.y\n });\n setCurrentSwipeDirection(undefined);\n }\n });\n function handlePointerDown(event) {\n if (event.button !== 0) {\n return;\n }\n if (event.pointerType === 'touch') {\n store.pauseTimers();\n }\n const target = getTarget(event.nativeEvent);\n const isInteractiveElement = closest(target, `button,a,input,textarea,[role=\"button\"],${TOAST_SWIPE_IGNORE_SELECTOR}`);\n if (isInteractiveElement) {\n return;\n }\n cancelledSwipeRef.current = false;\n intendedSwipeDirectionRef.current = undefined;\n maxSwipeDisplacementRef.current = 0;\n activePointerIdRef.current = event.pointerId;\n dragStartPosRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n swipeCancelBaselineRef.current = dragStartPosRef.current;\n const element = event.currentTarget;\n const transform = getElementTransform(element);\n initialTransformRef.current = transform;\n setInitialTransform(transform);\n setResolvedDragOffset({\n x: transform.x,\n y: transform.y\n });\n store.set('hovering', true);\n setIsSwiping(true);\n setIsRealSwipe(false);\n setLockedDirection(null);\n isFirstPointerMoveRef.current = true;\n dragAbortControllerRef.current?.abort();\n const dragAbortController = new AbortController();\n dragAbortControllerRef.current = dragAbortController;\n const doc = ownerDocument(element);\n doc.addEventListener('pointerup', handleSwipeEnd, {\n signal: dragAbortController.signal\n });\n doc.addEventListener('pointercancel', handleSwipeEnd, {\n signal: dragAbortController.signal\n });\n element.setPointerCapture?.(event.pointerId);\n }\n function handlePointerMove(event) {\n if (event.pointerId !== activePointerIdRef.current) {\n return;\n }\n\n // Prevent text selection on Safari\n event.preventDefault();\n if (isFirstPointerMoveRef.current) {\n // Adjust the starting position to the current position on the first move\n // to account for the delay between pointerdown and the first pointermove on iOS.\n dragStartPosRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n isFirstPointerMoveRef.current = false;\n }\n const {\n clientY,\n clientX,\n movementX,\n movementY\n } = event;\n if (movementY < 0 && clientY > swipeCancelBaselineRef.current.y || movementY > 0 && clientY < swipeCancelBaselineRef.current.y) {\n swipeCancelBaselineRef.current = {\n x: swipeCancelBaselineRef.current.x,\n y: clientY\n };\n }\n if (movementX < 0 && clientX > swipeCancelBaselineRef.current.x || movementX > 0 && clientX < swipeCancelBaselineRef.current.x) {\n swipeCancelBaselineRef.current = {\n x: clientX,\n y: swipeCancelBaselineRef.current.y\n };\n }\n const deltaX = clientX - dragStartPosRef.current.x;\n const deltaY = clientY - dragStartPosRef.current.y;\n const cancelDeltaY = clientY - swipeCancelBaselineRef.current.y;\n const cancelDeltaX = clientX - swipeCancelBaselineRef.current.x;\n let resolvedLockedDirection = lockedDirection;\n if (!isRealSwipe) {\n const movementDistance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n if (movementDistance >= MIN_DRAG_THRESHOLD) {\n setIsRealSwipe(true);\n // `lockedDirection` is always reset alongside `isRealSwipe`, so it is\n // still `null` here. Locking is only meaningful when both axes are\n // swipeable; otherwise the single axis already constrains the gesture.\n const hasHorizontal = swipeDirections.includes('left') || swipeDirections.includes('right');\n const hasVertical = swipeDirections.includes('up') || swipeDirections.includes('down');\n if (hasHorizontal && hasVertical) {\n const absX = Math.abs(deltaX);\n const absY = Math.abs(deltaY);\n resolvedLockedDirection = absX > absY ? 'horizontal' : 'vertical';\n setLockedDirection(resolvedLockedDirection);\n }\n }\n }\n let candidate;\n if (!intendedSwipeDirectionRef.current) {\n if (resolvedLockedDirection === 'vertical') {\n if (deltaY > 0) {\n candidate = 'down';\n } else if (deltaY < 0) {\n candidate = 'up';\n }\n } else if (resolvedLockedDirection === 'horizontal') {\n if (deltaX > 0) {\n candidate = 'right';\n } else if (deltaX < 0) {\n candidate = 'left';\n }\n } else if (Math.abs(deltaX) >= Math.abs(deltaY)) {\n candidate = deltaX > 0 ? 'right' : 'left';\n } else {\n candidate = deltaY > 0 ? 'down' : 'up';\n }\n if (candidate && swipeDirections.includes(candidate)) {\n intendedSwipeDirectionRef.current = candidate;\n maxSwipeDisplacementRef.current = getDisplacement(candidate, deltaX, deltaY);\n setCurrentSwipeDirection(candidate);\n }\n } else {\n const direction = intendedSwipeDirectionRef.current;\n const currentDisplacement = getDisplacement(direction, cancelDeltaX, cancelDeltaY);\n if (currentDisplacement > SWIPE_THRESHOLD) {\n cancelledSwipeRef.current = false;\n setCurrentSwipeDirection(direction);\n } else if (!(swipeDirections.includes('left') && swipeDirections.includes('right')) && !(swipeDirections.includes('up') && swipeDirections.includes('down')) && maxSwipeDisplacementRef.current - currentDisplacement >= REVERSE_CANCEL_THRESHOLD) {\n // Mark that a change-of-mind has occurred\n cancelledSwipeRef.current = true;\n }\n }\n const dampedDelta = applyDirectionalDamping(deltaX, deltaY);\n let newOffsetX = initialTransformRef.current.x;\n let newOffsetY = initialTransformRef.current.y;\n const hasHorizontalDir = swipeDirections.includes('left') || swipeDirections.includes('right');\n const hasVerticalDir = swipeDirections.includes('up') || swipeDirections.includes('down');\n if (resolvedLockedDirection !== 'vertical' && hasHorizontalDir) {\n newOffsetX += dampedDelta.x;\n }\n if (resolvedLockedDirection !== 'horizontal' && hasVerticalDir) {\n newOffsetY += dampedDelta.y;\n }\n setResolvedDragOffset({\n x: newOffsetX,\n y: newOffsetY\n });\n }\n function handleKeyDown(event) {\n if (event.key === 'Escape') {\n if (!rootRef.current || !contains(rootRef.current, activeElement(ownerDocument(rootRef.current)))) {\n return;\n }\n store.closeToast(toast.id);\n }\n }\n React.useEffect(() => {\n const element = rootRef.current;\n if (!swipeEnabled || !element) {\n return undefined;\n }\n function preventDefaultTouchStart(event) {\n if (activePointerIdRef.current === null || !contains(element, getTarget(event))) {\n return;\n }\n\n // React's pointermove preventDefault is not enough on iOS; this\n // non-passive touchmove listener blocks native scrolling while dragging.\n event.preventDefault();\n }\n return addEventListener(element, 'touchmove', preventDefaultTouchStart, {\n passive: false\n });\n }, [swipeEnabled]);\n function getDragStyles() {\n const deltaX = dragOffset.x - initialTransform.x;\n const deltaY = dragOffset.y - initialTransform.y;\n return {\n transition: isSwiping ? 'none' : undefined,\n // While swiping, freeze the element at its current visual transform so it doesn't snap to the\n // end position.\n transform: isSwiping ? `translateX(${dragOffset.x}px) translateY(${dragOffset.y}px) scale(${initialTransform.scale})` : undefined,\n [ToastRootCssVars.swipeMovementX]: `${deltaX}px`,\n [ToastRootCssVars.swipeMovementY]: `${deltaY}px`\n };\n }\n const isHighPriority = toast.priority === 'high';\n const defaultProps = {\n role: isHighPriority ? 'alertdialog' : 'dialog',\n tabIndex: 0,\n 'aria-modal': false,\n 'aria-labelledby': titleId,\n 'aria-describedby': descriptionId,\n 'aria-hidden': isHighPriority && !focused ? true : undefined,\n onPointerDown: swipeEnabled ? handlePointerDown : undefined,\n onPointerMove: swipeEnabled ? handlePointerMove : undefined,\n onPointerUp: swipeEnabled ? handleSwipeEnd : undefined,\n onPointerCancel: swipeEnabled ? handleSwipeEnd : undefined,\n onKeyDown: handleKeyDown,\n inert: inertValue(toast.limited),\n style: {\n ...getDragStyles(),\n [ToastRootCssVars.index]: toast.transitionStatus === 'ending' ? domIndex : visibleIndex,\n [ToastRootCssVars.offsetY]: `${offsetY}px`,\n [ToastRootCssVars.height]: toast.height ? `${toast.height}px` : undefined\n }\n };\n const toastRoot = React.useMemo(() => ({\n toast,\n setTitleId,\n setDescriptionId,\n recalculateHeight,\n visibleIndex,\n expanded\n }), [toast, setTitleId, setDescriptionId, recalculateHeight, visibleIndex, expanded]);\n const state = {\n transitionStatus: toast.transitionStatus,\n expanded,\n limited: toast.limited || false,\n type: toast.type,\n swiping: isSwiping,\n swipeDirection: currentSwipeDirection\n };\n const element = useRenderElement('div', componentProps, {\n ref: [forwardedRef, rootRef],\n state,\n stateAttributesMapping: toastRootStateAttributesMapping,\n props: [defaultProps, elementProps]\n });\n return /*#__PURE__*/_jsx(ToastRootContext.Provider, {\n value: toastRoot,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") ToastRoot.displayName = \"ToastRoot\";","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useToastRootContext } from \"../root/ToastRootContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\n\n/**\n * A container for the contents of a toast.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastContent = /*#__PURE__*/React.forwardRef(function ToastContent(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const {\n visibleIndex,\n expanded,\n recalculateHeight\n } = useToastRootContext();\n const contentRef = React.useRef(null);\n useIsoLayoutEffect(() => {\n recalculateHeight();\n const node = contentRef.current;\n if (!node || typeof ResizeObserver !== 'function' || typeof MutationObserver !== 'function') {\n return undefined;\n }\n const resizeObserver = new ResizeObserver(() => recalculateHeight(true));\n const mutationObserver = new MutationObserver(() => recalculateHeight(true));\n resizeObserver.observe(node);\n mutationObserver.observe(node, {\n childList: true,\n subtree: true,\n characterData: true\n });\n return () => {\n resizeObserver.disconnect();\n mutationObserver.disconnect();\n };\n }, [recalculateHeight]);\n const behind = visibleIndex > 0;\n const state = {\n expanded,\n behind\n };\n return useRenderElement('div', componentProps, {\n ref: [forwardedRef, contentRef],\n state,\n props: elementProps\n });\n});\nif (process.env.NODE_ENV !== \"production\") ToastContent.displayName = \"ToastContent\";","import * as React from 'react';\nexport function isRenderableNode(node) {\n if (node == null || typeof node === 'boolean' || node === '') {\n return false;\n }\n if (Array.isArray(node)) {\n return node.some(isRenderableNode);\n }\n return true;\n}\nexport function hasRenderableChildren(element) {\n return /*#__PURE__*/React.isValidElement(element) && isRenderableNode(element.props.children);\n}","'use client';\n\nimport { useId } from '@base-ui/utils/useId';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useToastRootContext } from \"../root/ToastRootContext.mjs\";\nimport { hasRenderableChildren } from \"./isRenderableNode.mjs\";\n\n/**\n * Shared logic for `Toast.Title` and `Toast.Description`, which only differ by the rendered tag,\n * the fallback content, and which id setter they register with. Resolves the content and returns\n * the pieces each part passes to `useRenderElement` and `useToastLabelElement`.\n */\nexport function useToastLabelPart(idProp, childrenProp, part) {\n const {\n toast,\n setTitleId,\n setDescriptionId\n } = useToastRootContext();\n const setId = part === 'title' ? setTitleId : setDescriptionId;\n const children = childrenProp ?? (part === 'title' ? toast.title : toast.description);\n const id = useId(idProp);\n return {\n id,\n children,\n type: toast.type,\n setId\n };\n}\n\n/**\n * Mounts the evaluated label element only when it carries renderable content (so a `render` prop's\n * own children count, while a childless styling-only `render` stays conditional), registering the\n * generated id with the root while the part renders.\n */\nexport function useToastLabelElement(element, id, setId) {\n const shouldRender = hasRenderableChildren(element);\n useIsoLayoutEffect(() => {\n if (!shouldRender) {\n return undefined;\n }\n setId(id);\n return () => {\n setId(currentId => currentId === id ? undefined : currentId);\n };\n }, [shouldRender, id, setId]);\n return shouldRender ? element : null;\n}","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useToastLabelElement, useToastLabelPart } from \"../utils/useToastLabelPart.mjs\";\n\n/**\n * A description that describes the toast.\n * Can be used as the default message for the toast when no title is provided.\n * Renders a `<p>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastDescription = /*#__PURE__*/React.forwardRef(function ToastDescription(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n id: idProp,\n children: childrenProp,\n ...elementProps\n } = componentProps;\n const {\n id,\n children,\n type,\n setId\n } = useToastLabelPart(idProp, childrenProp, 'description');\n const state = {\n type\n };\n const element = useRenderElement('p', componentProps, {\n ref: forwardedRef,\n state,\n props: {\n ...elementProps,\n id,\n children\n }\n });\n return useToastLabelElement(element, id, setId);\n});\nif (process.env.NODE_ENV !== \"production\") ToastDescription.displayName = \"ToastDescription\";","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useToastLabelElement, useToastLabelPart } from \"../utils/useToastLabelPart.mjs\";\n\n/**\n * A title that labels the toast.\n * Renders an `<h2>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastTitle = /*#__PURE__*/React.forwardRef(function ToastTitle(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n id: idProp,\n children: childrenProp,\n ...elementProps\n } = componentProps;\n const {\n id,\n children,\n type,\n setId\n } = useToastLabelPart(idProp, childrenProp, 'title');\n const state = {\n type\n };\n const element = useRenderElement('h2', componentProps, {\n ref: forwardedRef,\n state,\n props: {\n ...elementProps,\n id,\n children\n }\n });\n return useToastLabelElement(element, id, setId);\n});\nif (process.env.NODE_ENV !== \"production\") ToastTitle.displayName = \"ToastTitle\";","'use client';\n\nimport * as React from 'react';\nimport { useToastRootContext } from \"../root/ToastRootContext.mjs\";\nimport { useToastProviderContext } from \"../provider/ToastProviderContext.mjs\";\nimport { useButton } from \"../../internals/use-button/useButton.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\n\n/**\n * Closes the toast when clicked.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastClose = /*#__PURE__*/React.forwardRef(function ToastClose(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n disabled,\n nativeButton = true,\n ...elementProps\n } = componentProps;\n const store = useToastProviderContext();\n const {\n toast,\n expanded\n } = useToastRootContext();\n const [hasFocus, setHasFocus] = React.useState(false);\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n const state = {\n type: toast.type\n };\n return useRenderElement('button', componentProps, {\n ref: [forwardedRef, buttonRef],\n state,\n props: [{\n 'aria-hidden': !expanded && !hasFocus,\n onClick() {\n store.closeToast(toast.id);\n },\n onFocus() {\n setHasFocus(true);\n },\n onBlur() {\n setHasFocus(false);\n }\n }, elementProps, getButtonProps]\n });\n});\nif (process.env.NODE_ENV !== \"production\") ToastClose.displayName = \"ToastClose\";","'use client';\n\nimport * as React from 'react';\nimport { useToastRootContext } from \"../root/ToastRootContext.mjs\";\nimport { useButton } from \"../../internals/use-button/useButton.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { hasRenderableChildren } from \"../utils/isRenderableNode.mjs\";\n\n/**\n * Performs an action when clicked.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastAction = /*#__PURE__*/React.forwardRef(function ToastAction(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n disabled,\n nativeButton = true,\n ...elementProps\n } = componentProps;\n const {\n toast\n } = useToastRootContext();\n const computedChildren = toast.actionProps?.children ?? elementProps.children;\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n const state = {\n type: toast.type\n };\n const element = useRenderElement('button', componentProps, {\n ref: [forwardedRef, buttonRef],\n state,\n props: [elementProps, toast.actionProps, getButtonProps, {\n children: computedChildren\n }]\n });\n return hasRenderableChildren(element) ? element : null;\n});\nif (process.env.NODE_ENV !== \"production\") ToastAction.displayName = \"ToastAction\";","'use client';\n\nimport * as React from 'react';\nimport { FloatingPortalLite } from \"../../utils/FloatingPortalLite.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * A portal element that moves the viewport to a different part of the DOM.\n * By default, the portal element is appended to `<body>`.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastPortal = /*#__PURE__*/React.forwardRef(function ToastPortal(props, forwardedRef) {\n return /*#__PURE__*/_jsx(FloatingPortalLite, {\n ref: forwardedRef,\n ...props\n });\n});\nif (process.env.NODE_ENV !== \"production\") ToastPortal.displayName = \"ToastPortal\";","'use client';\n\nimport * as React from 'react';\nimport { useToastProviderContext } from \"./provider/ToastProviderContext.mjs\";\n/**\n * Returns the array of toasts and methods to manage them.\n */\nexport function useToastManager() {\n const store = useToastProviderContext();\n const toasts = store.useState('toasts');\n return React.useMemo(() => ({\n toasts,\n add: store.addToast,\n close: store.closeToast,\n update: store.updateToast,\n promise: store.promiseToast\n }), [toasts, store]);\n}","\nimport { Props as __zyzzProps, Recipe as __zyzzRecipe } from 'zyzz/runtime';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as BaseUi from '@base-ui/react/toast';\nimport { AlertCircle } from '../icons/AlertCircle.js';\nimport { AlertTriangle } from '../icons/AlertTriangle.js';\nimport { CheckCircle } from '../icons/CheckCircle.js';\nimport { Close } from '../icons/Close.js';\nimport { InfoCircle } from '../icons/InfoCircle.js';\nimport { style, variants } from '../zyzz.config.js';\nconst icons = {\n info: InfoCircle,\n negative: AlertCircle,\n positive: CheckCircle,\n warning: AlertTriangle,\n};\n/**\n * Brief notifications queued with `Toast.useToast` and rendered by `Toast.Viewport` in a portal.\n * The viewport is a `region` live area that F6 focuses. Hovering it or moving keyboard focus into\n * it pauses the dismiss timers, which also pause while the window is blurred.\n *\n * - Use toasts for brief, non-critical confirmations. Show critical errors inline or in a dialog.\n * - Never make a toast action the only path to a task, since the toast can dismiss before use.\n * - Pass `timeout: 0` for a toast that must stay until the user dismisses it.\n * - Reserve `priority: 'high'` for urgent toasts, which Base UI announces assertively.\n *\n * @example\n * <Toast.Provider>\n * <App />\n * <Toast.Viewport />\n * </Toast.Provider>\n *\n * @see {@link https://base-ui.com/react/components/toast | Base UI Toast}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/status_role | MDN status role}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/alert_role | MDN alert role}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html | WCAG 2.2 Status Messages}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/timing-adjustable.html | WCAG 2.2 Timing Adjustable}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide.html | WCAG 2.2 Pause, Stop, Hide}\n */\nexport var Toast;\n(function (Toast) {\n /**\n * Holds the toast queue for `Toast.useToast` and `Toast.Viewport` beneath it. The oldest toasts\n * past `limit` stay mounted but hidden.\n */\n function Provider(props) {\n return _jsx(BaseUi.Toast.Provider, { ...props });\n }\n Toast.Provider = Provider;\n /**\n * Returns `add`, which queues a toast and returns its id, and `close`, which dismisses the toast\n * with that id or every toast when called without one. Call it under `Toast.Provider`.\n *\n * @example\n * const toast = Toast.useToast()\n * toast.add({ intent: 'positive', title: 'Payment sent' })\n */\n function useToast() {\n const manager = BaseUi.Toast.useToastManager();\n return {\n add(options) {\n const { action, intent, ...rest } = options;\n return manager.add({\n ...rest,\n actionProps: action && { children: action.label, onClick: action.onClick },\n type: intent,\n });\n },\n close: manager.close,\n };\n }\n Toast.useToast = useToast;\n /**\n * Renders the queued toasts in a portal, each with its title, description, optional action and\n * a Dismiss button. It spans the bottom edge on narrow screens and sits 24rem wide at the bottom\n * end from 40rem up.\n */\n function Viewport(props) {\n const { className, vars, ...attributes } = props;\n const { toasts } = BaseUi.Toast.useToastManager();\n return (_jsx(BaseUi.Toast.Portal, { children: _jsx(BaseUi.Toast.Viewport, { ...attributes, ...styles.viewport({ className, style: props.style, vars }), children: toasts.map((toast) => {\n const intent = (toast.type ?? 'neutral');\n const Glyph = intent === 'neutral' ? undefined : icons[intent];\n return (_jsx(BaseUi.Toast.Root, { toast: toast, ...styles.root(), children: _jsxs(BaseUi.Toast.Content, { ...styles.content(), children: [Glyph && (_jsx(\"span\", { \"aria-hidden\": \"true\", ...styles.icon({ intent }), children: _jsx(Glyph, {}) })), _jsxs(\"div\", { ...styles.body(), children: [_jsx(BaseUi.Toast.Title, { ...styles.title() }), _jsx(BaseUi.Toast.Description, { ...styles.description() })] }), toast.actionProps && _jsx(BaseUi.Toast.Action, { ...styles.action() }), _jsx(BaseUi.Toast.Close, { \"aria-label\": \"Dismiss\", ...styles.close(), children: _jsx(Close, {}) })] }) }, toast.id));\n }) }) }));\n }\n Toast.Viewport = Viewport;\n})(Toast || (Toast = {}));\nvar styles;\n(function (styles) {\n styles.action = __zyzzProps.create({className:\"z-tds_2f_web-tds_2f_web_2f_toast_2f_action-align-items-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-bg-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-border-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-border-radius-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-text-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-cursor-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-display-6 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-flex-shrink-7 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-h-8 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-padding-inline-9 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-font-family-10 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-font-size-11 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-font-weight-12 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-letter-spacing-13 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-line-height-14 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-color-15 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-offset-16 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-style-17 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-width-18 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-duration-19 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-property-20 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-timing-function-21 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-bg-22 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-scale-23 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-color-24 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-offset-25 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-bg-26 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-property-27 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-scale-28\"});\n styles.body = __zyzzProps.create({className:\"z-tds_2f_web-tds_2f_web_2f_toast_2f_body-display-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_body-flex-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_body-flex-direction-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_body-min-width-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_body-row-gap-4\"});\n styles.close = __zyzzProps.create({className:\"z-tds_2f_web-tds_2f_web_2f_toast_2f_action-align-items-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-bg-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-border-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-border-radius-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-text-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-cursor-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-display-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-flex-shrink-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-font-size-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-h-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-justify-content-6 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-p-7 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-w-8 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-color-15 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-color-24 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-offset-16 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-offset-25 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-style-17 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-width-18 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-duration-19 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-property-20 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-property-27 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-timing-function-21 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-scale-23 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-scale-28 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-bg-9\"});\n styles.content = __zyzzProps.create({className:\"z-tds_2f_web-tds_2f_web_2f_toast_2f_action-align-items-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-box-sizing-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-column-gap-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-display-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-h-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-overflow-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-padding-block-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-padding-inline-6 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-transition-duration-7 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-transition-property-8 z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-timing-function-21 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-opacity-9 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-pointer-events-10 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-opacity-11\"});\n styles.description = __zyzzProps.create({className:\"z-tds_2f_web-tds_2f_web_2f_toast_2f_description-text-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-m-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-font-family-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-font-size-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-font-weight-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-letter-spacing-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-line-height-6\"});\n styles.icon = __zyzzRecipe.create({\"axes\":{\"intent\":[\"info\",\"negative\",\"neutral\",\"positive\",\"warning\"]},\"defaults\":{},\"className\":\"z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-display-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_close-flex-shrink-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-font-size-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-text-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-text-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-text-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-text-5\"});\n styles.root = __zyzzProps.create({className:\"z-tds_2f_web-tds_2f_web_2f_toast_2f_root-bg-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-border-radius-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-box-shadow-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_content-box-sizing-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-text-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-h-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-inset-inline-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-inset-block-end-6 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-position-7 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-8 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-origin-9 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-duration-10 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-property-11 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-timing-function-12 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-user-select-13 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-z-index-14 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-content-15 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-h-16 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-inset-block-start-17 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-inset-inline-18 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-position-19 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-h-20 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-21 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-opacity-22 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-opacity-23 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-24 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-duration-25 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-26 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-27 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-28 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-29 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-duration-30 z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-property-31\"});\n styles.title = __zyzzProps.create({className:\"z-tds_2f_web-tds_2f_web_2f_toast_2f_root-text-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_description-m-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_title-font-family-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_title-font-size-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_title-font-weight-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_title-letter-spacing-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_title-line-height-4\"});\n styles.viewport = __zyzzProps.create({className:\"z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-inset-block-end-0 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-inset-inline-1 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-m-2 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-max-width-3 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-position-4 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-z-index-5 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-inset-inline-start-6 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-m-7 z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-w-8\"});\n})(styles || (styles = {}));\n//# sourceMappingURL=Toast.js.map\nimport './Toast.css';\n","/**\n * The account page: Tempo Accounts and balances, the faucet, passkeys, and sign-out. On a chain\n * with configurable accounts, it also adds owners and upgrades a passkey's account.\n * @module\n */\nimport { useMutation, useQueries, useQueryClient } from '@tanstack/react-query'\nimport { createFileRoute, useRouter } from '@tanstack/react-router'\nimport { Toast } from '@tempoxyz/ds'\nimport { DetailedError, parseResponse } from 'hono/client'\nimport { useEffect, useRef } from 'react'\nimport { Authentication, Registration } from 'webauthx/client'\nimport * as Chain from '../../internal/Chain.js'\nimport * as Faucet from '../../internal/Faucet.js'\nimport * as Client from '../lib/Client.js'\nimport * as Loader from '../lib/Loader.js'\nimport { Account } from '../screens/Account.js'\nimport { style } from '../zyzz.config.js'\n\n/** Wraps a failure of the browser's passkey ceremony. */\nclass CeremonyError extends Error {\n override name = 'Page.CeremonyError'\n}\n\n/**\n * Milliseconds that the page signs an upgrade's passkey step for. The server keeps a step for 5\n * minutes, so the page prepares another before then.\n */\nconst stepLifetime = 4 * 60 * 1000\n\nexport const Route = createFileRoute('/')({\n component: () => <Page {...Route.useLoaderData()} />,\n /**\n * Redirects a visitor without a session to sign-in. Otherwise returns the user and the `default`\n * realm's accounts, after creating the first if none exists, or `accounts: null`.\n */\n loader: async (match): Promise<Page.Props> => {\n const client = Client.create()\n const requested = match.deps.chain ?? 'mainnet'\n // One read returns the user, the accounts, and the passkeys, and refuses a visitor without a\n // session before it spends a limit.\n const read = (chain: Chain.Chain) =>\n parseResponse(client.v1.account.$get({ query: { chain } })).catch(\n (error: unknown) => ({ error }),\n )\n const first = await read(requested)\n // A name that no chain has, such as a stale link's, reads Tempo mainnet, as a page without\n // `chain` does. The read sends no other field that the API refuses with `invalid_field`.\n const unknown =\n requested !== 'mainnet' &&\n 'error' in first &&\n Client.reason(first.error) === 'invalid_field'\n const chain = unknown ? 'mainnet' : requested\n const account = unknown ? await read(chain) : first\n if ('error' in account) {\n if (Client.reason(account.error) === 'session_required')\n Loader.redirect({ href: '/login' })\n // A refused or failed read returns no user, so the session's user fills the page. The read of\n // the sign-in methods calls no Privy app, so a user can add a passkey during a Privy outage.\n const [session, methods] = await Promise.all([\n parseResponse(client.v1.auth.session.$get()),\n parseResponse(client.v1.auth.methods.$get({ query: {} })).catch(() => ({\n passkeys: false,\n })),\n ])\n if (!session.user) Loader.redirect({ href: '/login' })\n return {\n accountError: failure(account.error),\n accounts: null,\n configurable: null,\n email: session.user.email,\n faucet: null,\n name: session.user.name,\n passkeys: methods.passkeys,\n }\n }\n\n const user = {\n email: account.email,\n name: account.name,\n passkeys: account.passkeys,\n }\n // A user without a wallet, such as one whose creation at sign-in failed or a spent limit\n // skipped, receives one here, so a signed-in user always holds one where the realm creates\n // wallets. The creation returns the accounts with their balances, and a realm that creates no\n // wallets returns the empty list.\n const listed =\n account.tempo.length > 0\n ? account\n : await parseResponse(\n client.v1.account.$post({ json: { chain } }),\n ).catch((error: unknown) => ({ error }))\n if ('error' in listed)\n return {\n ...user,\n accountError: failure(listed.error),\n accounts: null,\n configurable: null,\n faucet: null,\n }\n\n // A listed chain's ID comes from `GET /i/chains`, as does whether its accounts are configurable.\n // A failed read of it offers no faucet, and no owner change.\n const listing = await (async () => {\n const { chains } = await parseResponse(client.i.chains.$get()).catch(\n () => ({ chains: [] }),\n )\n const found = chains.find((entry) => entry.name === chain)\n return {\n chainId:\n found?.chainId ??\n (chain === 'mainnet' || chain === 'testnet'\n ? Chain.ids[chain]\n : undefined),\n configurable: found?.configurable ?? false,\n }\n })()\n\n // On a chain whose accounts are configurable, a wallet.tempo passkey of the user's email that has\n // not linked is the user's wallet too, whose upgrade links it. A failed read lists none.\n const unlinked = listing.configurable\n ? (\n await parseResponse(client.i.account.passkeys.$get()).catch(() => ({\n passkeys: [],\n }))\n ).passkeys\n : []\n\n // The key that acts as the account names its kind, and the guard only narrows the read.\n return {\n ...user,\n accountError: null,\n accounts: [\n ...listed.tempo.flatMap((entry) => {\n const owner =\n entry.config.owners.find(\n (candidate) =>\n candidate.owner.toLowerCase() === entry.address.toLowerCase(),\n ) ?? entry.config.owners[0]\n return owner\n ? [\n {\n address: entry.address,\n balance: 'balance' in entry ? (entry.balance ?? null) : null,\n configurable: entry.config.chainId !== undefined,\n owner: owner.type,\n owners: entry.config.owners.map(\n (candidate) => candidate.type,\n ),\n },\n ]\n : []\n }),\n ...unlinked.map((entry) => ({\n address: entry.address,\n balance: null,\n credentialId: entry.credentialId,\n owner: 'webAuthn' as const,\n })),\n ],\n configurable: listing.configurable ? chain : null,\n faucet: Faucet.chains.some((entry) => entry.id === listing.chainId)\n ? chain\n : null,\n }\n },\n // A change of chain loads the balances again.\n loaderDeps: (match: { search: { chain?: Chain.Chain | undefined } }) => ({\n chain: match.search.chain,\n }),\n})\n\n/** Renders the page. */\nfunction Page(props: Page.Props) {\n const client = Client.use()\n const router = useRouter()\n const toast = Toast.useToast()\n const fund = useMutation({\n mutationFn: (variables: { address: `0x${string}`; chain: Chain.Chain }) =>\n parseResponse(client.i.account.fund.$post({ json: variables })),\n // The mutation stays pending until the balances load again, so the button holds until then.\n onSuccess: () => router.invalidate({ sync: true }),\n })\n const signOut = useMutation({\n mutationFn: () => parseResponse(client.v1.auth.logout.$post()),\n // The mutation stays pending until the sign-in page renders, so the button holds until then.\n onSuccess: () => router.navigate({ to: '/login' }),\n })\n // Adding a passkey takes two clicks, one for each ceremony, since a browser such as Safari spends\n // a click's user activation on its first WebAuthn call.\n const passkey = useMutation({\n async mutationFn(variables: { account?: `0x${string}` | undefined }) {\n const { options } = await parseResponse(\n client.v1.account.passkey.options.$post({ json: {} }),\n )\n // The response reads an absent `excludeCredentials` as `undefined`, which the ceremony's options\n // omit instead.\n const { excludeCredentials, ...publicKey } = options.publicKey\n const credential = await (async () => {\n try {\n return await Registration.create({\n options: {\n publicKey: {\n ...publicKey,\n ...(excludeCredentials ? { excludeCredentials } : {}),\n },\n },\n })\n } catch (error) {\n throw new CeremonyError('Passkey ceremony failed.', { cause: error })\n }\n })()\n const created = { credentialId: credential.id, rpId: publicKey.rp.id }\n try {\n const { step } = await parseResponse(\n client.v1.account.passkey.$post({ json: { credential } }),\n )\n return { ...created, account: variables.account, step }\n } catch (error) {\n forget(created)\n throw error\n }\n },\n })\n const confirm = useMutation({\n async mutationFn(variables: NonNullable<typeof passkey.data>) {\n // The new passkey signs a proof challenge, since its attestation proves no private key. A\n // canceled ceremony spends no challenge, so the same step can run again.\n const assertion = await (async () => {\n try {\n return await Authentication.sign({\n // ox types the request with optional members that the DOM types leave out when absent.\n // The object is the one that ox built for `navigator.credentials.get`.\n getFn: (request) =>\n navigator.credentials.get(request as CredentialRequestOptions),\n options: variables.step.options,\n })\n } catch (error) {\n throw new CeremonyError('Passkey ceremony failed.', { cause: error })\n }\n })()\n try {\n const { account } = variables\n // The request names the chain that the page shows, where an update applies and whose address\n // of the passkey's own account the response returns.\n return await parseResponse(\n client.v1.account.passkey.verify.$post({\n json: {\n assertion,\n ...(account ? { account } : {}),\n ...(props.configurable ? { chain: props.configurable } : {}),\n },\n }),\n )\n } catch (error) {\n const result = outcome(error)\n // A rate limit refuses before the proof challenge is spent, so the step runs again.\n if (result === 'retry') throw error\n if (result === 'refused') forget(variables)\n passkey.reset()\n throw error\n }\n },\n // The step clears first, since the server spent its proof, and a retry of it after a failed\n // reload would drop the stored passkey from the device. The mutation stays pending until the\n // accounts load again, so the new passkey's wallet shows with the toast.\n async onSuccess() {\n passkey.reset()\n await router.invalidate({ sync: true })\n toast.add({ intent: 'positive', title: 'Passkey added' })\n },\n })\n\n // A wallet.tempo passkey's account upgrades with one click. The page prepares each upgrade's passkey\n // step ahead of the click, since a browser such as Safari spends a click's user activation on a\n // request before the ceremony. A step lasts 5 minutes, so the page prepares it again before then.\n const upgradable = props.configurable\n ? (props.accounts ?? []).filter(\n (entry) => !entry.configurable && entry.owner === 'webAuthn',\n )\n : []\n const queryClient = useQueryClient()\n const steps = useQueries({\n queries: upgradable.map((entry) => ({\n queryFn: () => prepare(client, { chain: props.configurable!, entry }),\n queryKey: ['upgrade', props.configurable, entry.address],\n refetchInterval: stepLifetime,\n // A hidden tab keeps its step fresh, and a tab that comes back after a stale step prepares\n // another, since the server keeps a step for 5 minutes.\n refetchIntervalInBackground: true,\n refetchOnWindowFocus: true,\n retry: false,\n staleTime: stepLifetime,\n })),\n })\n const upgrade = useMutation({\n async mutationFn(variables: { address: `0x${string}` }) {\n const index = upgradable.findIndex(\n (entry) => entry.address === variables.address,\n )\n const entry = upgradable[index]!\n // A step that failed to load, such as for a session older than 10 minutes, loads now, so its\n // refusal shows. So does one older than 4 minutes, which the server may already have expired.\n // The cache holds the newest step, since a background refetch renders the page no second time.\n const step = queryClient.getQueryState<\n Awaited<ReturnType<typeof prepare>>\n >(['upgrade', props.configurable, entry.address])\n const options =\n step?.data && Date.now() - step.dataUpdatedAt < stepLifetime\n ? step.data\n : await prepare(client, { chain: props.configurable!, entry })\n const assertion = await (async () => {\n try {\n return await Authentication.sign({\n getFn: (request) =>\n navigator.credentials.get(request as CredentialRequestOptions),\n options,\n })\n } catch (error) {\n throw new CeremonyError('Passkey ceremony failed.', { cause: error })\n }\n })()\n try {\n return await parseResponse(\n client.i.account.upgrade.$post({\n json: {\n ...target(entry),\n chain: props.configurable!,\n passkey: { assertion },\n },\n }),\n )\n } catch (error) {\n // The server spends the step's challenge before it sends the upgrade, so a refused or failed\n // upgrade prepares a new step for the next click.\n await steps[index]?.refetch()\n throw error\n }\n },\n // The server spent the step's challenge, so the accounts load again, without the upgrade, and a\n // toast confirms it.\n async onSuccess() {\n await router.invalidate({ sync: true })\n toast.add({ intent: 'positive', title: 'Wallet upgraded' })\n },\n })\n\n // A step that waits for its proof when the page goes away, such as through a deposit link, is never\n // stored, so the device drops its passkey. A reload or a closed tab ends the page without this. A\n // proof in flight can still store the passkey after the page goes away, so it keeps the passkey.\n const pending = useRef(passkey.data)\n pending.current = confirm.isPending ? undefined : passkey.data\n useEffect(\n () => () => {\n if (pending.current) forget(pending.current)\n },\n [],\n )\n\n return (\n <main {...styles.page()} aria-label=\"Your account\">\n <Account\n accountError={props.accountError ?? undefined}\n accounts={props.accounts}\n addingPasskey={passkey.isPending}\n confirmingPasskey={confirm.isPending}\n email={props.email}\n error={(() => {\n if (signOut.error) return Client.message(signOut.error)\n if (fund.error) return Client.message(fund.error)\n if (upgrade.error) return message(upgrade.error)\n if (confirm.error) return message(confirm.error)\n if (passkey.error) return message(passkey.error)\n return undefined\n })()}\n funding={fund.isPending ? fund.variables.address : undefined}\n name={props.name ?? undefined}\n onAddPasskey={\n // A user with a passkey wallet needs no second one, so the page offers none. Accounts that\n // failed to load list no passkey wallet, so the page still offers one.\n props.passkeys &&\n !props.accounts?.some((entry) => entry.owner === 'webAuthn')\n ? () => {\n signOut.reset()\n fund.reset()\n confirm.reset()\n passkey.mutate({})\n }\n : undefined\n }\n onAddOwner={\n props.configurable\n ? (address) => {\n signOut.reset()\n fund.reset()\n confirm.reset()\n upgrade.reset()\n passkey.mutate({ account: address })\n }\n : undefined\n }\n onConfirmPasskey={\n passkey.data\n ? () => {\n signOut.reset()\n fund.reset()\n // The proof goes out now, before the next render clears the step from the ref.\n pending.current = undefined\n confirm.mutate(passkey.data)\n }\n : undefined\n }\n onFund={(() => {\n const chain = props.faucet\n if (chain === null) return undefined\n return (address: `0x${string}`) => {\n // A pending request holds every faucet button, so a second click sends nothing.\n if (fund.isPending) return\n signOut.reset()\n confirm.reset()\n // A failed registration holds no step, so only its error clears.\n if (passkey.isError) passkey.reset()\n fund.mutate({ address, chain })\n }\n })()}\n onUpgrade={\n props.configurable\n ? (address) => {\n signOut.reset()\n fund.reset()\n confirm.reset()\n passkey.reset()\n upgrade.mutate({ address })\n }\n : undefined\n }\n onSignOut={() => {\n // A passkey that waits for its proof is never stored once the step drops, so the device\n // drops it too.\n if (passkey.data) forget(passkey.data)\n passkey.reset()\n confirm.reset()\n fund.reset()\n signOut.mutate()\n }}\n ownerAdded={(() => {\n if (confirm.isSuccess && confirm.variables.account) return 'passkey'\n return undefined\n })()}\n passkeyAdded={confirm.isSuccess && !confirm.variables.account}\n passkeys={props.passkeys}\n preparing={upgradable.flatMap((entry, index) =>\n steps[index]?.isPending ? [entry.address] : [],\n )}\n signingOut={signOut.isPending}\n upgrading={upgrade.isPending ? upgrade.variables.address : undefined}\n />\n </main>\n )\n}\n\ndeclare namespace Page {\n type Props = {\n /** `null` when the accounts loaded. */\n accountError: string | null\n /** Oldest first, or `null` on a failed read. */\n accounts: Account.Props['accounts']\n /**\n * The selected chain when its accounts are configurable, so each account offers the owner that it\n * lacks, or `null` on any other chain.\n */\n configurable: Chain.Chain | null\n /** The signed-in user's email address. */\n email: string\n /** The chain whose faucet funds the accounts, or `null`. */\n faucet: Chain.Chain | null\n /** `null` if the user has none. */\n name: string | null\n /** Whether the `default` realm holds passkeys at Tempo ID's origin. */\n passkeys: boolean\n }\n}\n\n/** Returns the message for a failed passkey registration. */\nfunction message(error: unknown) {\n if (!(error instanceof CeremonyError)) return Client.message(error)\n if (names(error).includes('InvalidStateError'))\n return 'This device already holds one of your passkeys. Add a passkey on another device.'\n if (names(error).includes('NotAllowedError'))\n return 'Adding a passkey was canceled. Try again.'\n return 'Your passkey could not be created. Try again.'\n}\n\n/** Returns the message for a failed read or creation of the accounts. */\nfunction failure(error: unknown) {\n return Client.reason(error) === 'rate_limited'\n ? Client.message(error)\n : 'Your wallets failed to load. Reload the page to try again.'\n}\n\n/**\n * Returns what a failed `POST /v1/account/passkey/verify` means for the new passkey: `retry` for\n * `rate_limited`, `refused` for another 4xx, or `unknown`, when the passkey may be stored.\n */\nfunction outcome(error: unknown): 'refused' | 'retry' | 'unknown' {\n const reason = Client.reason(error)\n if (reason === 'rate_limited') return 'retry'\n if (\n reason &&\n error instanceof DetailedError &&\n typeof error.statusCode === 'number' &&\n error.statusCode < 500\n )\n return 'refused'\n return 'unknown'\n}\n\n/** Signals the browser to drop the unstored passkey `credentialId`, if it supports the signal. */\nfunction forget(options: { credentialId: string; rpId: string }) {\n const signal = (\n PublicKeyCredential as {\n signalUnknownCredential?: (options: {\n credentialId: string\n rpId: string\n }) => Promise<void>\n }\n ).signalUnknownCredential\n // The signal is best effort: a failure leaves the passkey, which sign-in refuses.\n void signal\n ?.call(PublicKeyCredential, {\n credentialId: options.credentialId,\n rpId: options.rpId,\n })\n .catch(() => {})\n}\n\n/** Returns the names of `error` and its causes. */\nfunction names(error: unknown): readonly string[] {\n if (!(error instanceof Error)) return []\n return [error.name, ...names(error.cause)]\n}\n\nnamespace styles {\n // Content starts at the same height as on `/deposit`, so moving between them keeps the title in place.\n export const page = style({\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent: 'center',\n minHeight: '100dvh !custom',\n paddingBlock: '64',\n paddingInline: '16',\n })\n}\n\n/**\n * Requests the passkey step of `entry`'s upgrade on `chain`, and returns its options for\n * `navigator.credentials.get()`.\n */\nasync function prepare(client: Client.Client, options: prepare.Options) {\n const data = await parseResponse(\n client.i.account.upgrade.$post({\n json: { ...target(options.entry), chain: options.chain },\n }),\n )\n if (!('step' in data))\n throw new Error('The upgrade returned no passkey step.')\n return data.step.options\n}\n\ndeclare namespace prepare {\n type Options = {\n /** The chain of the upgrade. */\n chain: Chain.Chain\n /** The account to upgrade. */\n entry: Account.Entry\n }\n}\n\n/** Returns what an upgrade names: the user's account, or a wallet.tempo passkey that has not linked. */\nfunction target(entry: Account.Entry) {\n return entry.credentialId\n ? { credentialId: entry.credentialId }\n : { account: entry.address }\n}\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-align-items-0{align-items:center}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-bg-1{background-color:var(--z-tds_2f_web-color-grayAlpha-100,light-dark(#0000000d,#ffffff12))}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-border-2{border:none}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-border-radius-3{border-radius:var(--z-tds_2f_web-radius-full,9999px)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-text-4{color:var(--z-tds_2f_web-color-foreground,light-dark(#171717,#fff))}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-cursor-5{cursor:pointer}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-display-6{display:inline-flex}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-flex-shrink-7{flex-shrink:0}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-h-8{height:var(--z-tds_2f_web-spacing-32,2rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-padding-inline-9{padding-inline:var(--z-tds_2f_web-spacing-12,.75rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-font-family-10{font-family:var(--z-tds_2f_web-typography-button-12-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-font-size-11{font-size:var(--z-tds_2f_web-typography-button-12-fontSize,12px)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-font-weight-12{font-weight:var(--z-tds_2f_web-typography-button-12-fontWeight,500)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-letter-spacing-13{letter-spacing:var(--z-tds_2f_web-typography-button-12-letterSpacing,.01px)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-line-height-14{line-height:var(--z-tds_2f_web-typography-button-12-lineHeight,16px)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-color-15{outline-color:#0000}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-offset-16{outline-offset:var(--z-tds_2f_web-outlineOffset-0,0px)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-style-17{outline-style:solid}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-width-18{outline-width:var(--z-tds_2f_web-outlineWidth-2,2px)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-duration-19{transition-duration:var(--z-tds_2f_web-transitionDuration-160,.16s)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-property-20{transition-property:background-color,outline-color,outline-offset,scale}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-timing-function-21{transition-timing-function:var(--z-tds_2f_web-ease-snappy,cubic-bezier(.23, 1, .32, 1))}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-bg-22{&:active{background-color:var(--z-tds_2f_web-color-grayAlpha-300,light-dark(#0000001a,#ffffff21))}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-scale-23{&:active{scale:var(--z-tds_2f_web-scale-press,.98)}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-color-24{&:focus-visible{outline-color:var(--z-tds_2f_web-color-blue-700,#4471ed)}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-outline-offset-25{&:focus-visible{outline-offset:var(--z-tds_2f_web-outlineOffset-2,2px)}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-bg-26{&:hover{background-color:var(--z-tds_2f_web-color-grayAlpha-200,light-dark(#00000014,#ffffff1a))}}@media (prefers-reduced-motion:reduce){.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-transition-property-27{transition-property:background-color,outline-color}.z-tds_2f_web-tds_2f_web_2f_toast_2f_action-scale-28{&:active{scale:none}}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_body-display-0{display:flex}.z-tds_2f_web-tds_2f_web_2f_toast_2f_body-flex-1{flex:1}.z-tds_2f_web-tds_2f_web_2f_toast_2f_body-flex-direction-2{flex-direction:column}.z-tds_2f_web-tds_2f_web_2f_toast_2f_body-min-width-3{min-width:var(--z-tds_2f_web-spacing-0,0rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_body-row-gap-4{row-gap:var(--z-tds_2f_web-spacing-4,.25rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_close-bg-0{background-color:#0000}.z-tds_2f_web-tds_2f_web_2f_toast_2f_close-text-1{color:var(--z-tds_2f_web-color-gray-700,light-dark(#8f8f8f,#8f8e8e))}.z-tds_2f_web-tds_2f_web_2f_toast_2f_close-display-2{display:inline-flex}.z-tds_2f_web-tds_2f_web_2f_toast_2f_close-flex-shrink-3{flex-shrink:0}.z-tds_2f_web-tds_2f_web_2f_toast_2f_close-font-size-4{font-size:var(--z-tds_2f_web-fontSize-16,1rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_close-h-5{height:var(--z-tds_2f_web-spacing-24,1.5rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_close-justify-content-6{justify-content:center}.z-tds_2f_web-tds_2f_web_2f_toast_2f_close-p-7{padding:var(--z-tds_2f_web-spacing-0,0rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_close-w-8{width:var(--z-tds_2f_web-spacing-24,1.5rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_close-bg-9{&:hover{background-color:var(--z-tds_2f_web-color-grayAlpha-100,light-dark(#0000000d,#ffffff12))}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_content-box-sizing-0{box-sizing:border-box}.z-tds_2f_web-tds_2f_web_2f_toast_2f_content-column-gap-1{column-gap:var(--z-tds_2f_web-spacing-12,.75rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_content-display-2{display:flex}.z-tds_2f_web-tds_2f_web_2f_toast_2f_content-h-3{height:100%}.z-tds_2f_web-tds_2f_web_2f_toast_2f_content-overflow-4{overflow:hidden}.z-tds_2f_web-tds_2f_web_2f_toast_2f_content-padding-block-5{padding-block:var(--z-tds_2f_web-spacing-16,1rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_content-padding-inline-6{padding-inline:var(--z-tds_2f_web-spacing-20,1.25rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_content-transition-duration-7{transition-duration:var(--z-tds_2f_web-transitionDuration-200,.2s)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_content-transition-property-8{transition-property:opacity}.z-tds_2f_web-tds_2f_web_2f_toast_2f_content-opacity-9{&[data-behind]{opacity:0}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_content-pointer-events-10{&[data-behind]{pointer-events:none}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_content-opacity-11{&[data-expanded]{opacity:1}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_description-text-0{color:var(--z-tds_2f_web-color-gray-900,light-dark(#4d4d4d,#bcbbbb))}.z-tds_2f_web-tds_2f_web_2f_toast_2f_description-m-1{margin:var(--z-tds_2f_web-spacing-0,0rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_description-font-family-2{font-family:var(--z-tds_2f_web-typography-copy-14-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}.z-tds_2f_web-tds_2f_web_2f_toast_2f_description-font-size-3{font-size:var(--z-tds_2f_web-typography-copy-14-fontSize,14px)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_description-font-weight-4{font-weight:var(--z-tds_2f_web-typography-copy-14-fontWeight,450)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_description-letter-spacing-5{letter-spacing:var(--z-tds_2f_web-typography-copy-14-letterSpacing,-.09px)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_description-line-height-6{line-height:var(--z-tds_2f_web-typography-copy-14-lineHeight,20px)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-display-0{display:inline-flex}.z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-font-size-1{font-size:var(--z-tds_2f_web-fontSize-20,1.25rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-text-2{&:where([data-intent=info]){color:var(--z-tds_2f_web-color-blue-700,#4471ed)}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-text-3{&:where([data-intent=negative]){color:var(--z-tds_2f_web-color-red-800,light-dark(#e02401,#d8351f))}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-text-4{&:where([data-intent=positive]){color:var(--z-tds_2f_web-color-green-700,#13a963)}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_icon-text-5{&:where([data-intent=warning]){color:var(--z-tds_2f_web-color-amber-700,#e06f12)}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-bg-0{background-color:var(--z-tds_2f_web-color-background-surface,light-dark(#fff,#1a1919))}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-border-radius-1{border-radius:var(--z-tds_2f_web-radius-16,1rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-box-shadow-2{box-shadow:var(--z-tds_2f_web-shadow-popover,0 0 0 1px light-dark(#0000000f,#ffffff14), 0 8px 24px -4px #0000001f, 0 24px 48px -12px #00000029)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-text-3{color:var(--z-tds_2f_web-color-foreground,light-dark(#171717,#fff))}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-h-4{height:var(--toast-frontmost-height,var(--toast-height))}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-inset-inline-5{inset-inline:var(--z-tds_2f_web-spacing-0,0rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-inset-block-end-6{inset-block-end:var(--z-tds_2f_web-spacing-0,0rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-position-7{position:absolute}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-8{transform:translateX(var(--toast-swipe-movement-x)) translateY(calc(var(--toast-swipe-movement-y) - var(--toast-index) * 12px - (1 - max(0, calc(1 - var(--toast-index) * .1))) * var(--toast-frontmost-height,var(--toast-height)))) scale(max(0, calc(1 - var(--toast-index) * .1)))}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-origin-9{transform-origin:bottom}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-duration-10{transition-duration:.32s,.32s,.15s}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-property-11{transition-property:transform,opacity,height}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-timing-function-12{transition-timing-function:var(--z-tds_2f_web-ease-spring,cubic-bezier(.32, .72, 0, 1))}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-user-select-13{-webkit-user-select:none;user-select:none}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-z-index-14{z-index:calc(1000 - var(--toast-index))}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-content-15{&:after{content:""}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-h-16{&:after{height:var(--z-tds_2f_web-spacing-14,.875rem)}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-inset-block-start-17{&:after{inset-block-start:100%}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-inset-inline-18{&:after{inset-inline:var(--z-tds_2f_web-spacing-0,0rem)}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-position-19{&:after{position:absolute}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-h-20{&[data-expanded]{height:var(--toast-height)}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-21{&[data-expanded]{transform:translateX(var(--toast-swipe-movement-x)) translateY(calc(var(--toast-offset-y) * -1 + var(--toast-index) * -12px + var(--toast-swipe-movement-y)))}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-opacity-22{&[data-limited]{opacity:0}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-opacity-23{&[data-starting-style],&[data-ending-style]{opacity:0}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-24{&[data-starting-style],&[data-ending-style]{transform:translateY(150%)}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-duration-25{&[data-ending-style]{transition-duration:.2s,.2s,.15s}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-26{&[data-ending-style][data-swipe-direction=down]{transform:translateY(calc(var(--toast-swipe-movement-y) + 150%))}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-27{&[data-ending-style][data-swipe-direction=left]{transform:translateX(calc(var(--toast-swipe-movement-x) - 150%))}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-28{&[data-ending-style][data-swipe-direction=right]{transform:translateX(calc(var(--toast-swipe-movement-x) + 150%))}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transform-29{&[data-ending-style][data-swipe-direction=up]{transform:translateY(calc(var(--toast-swipe-movement-y) - 150%))}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-duration-30{&[data-swiping]{transition-duration:var(--z-tds_2f_web-transitionDuration-0,0s)}}@media (prefers-reduced-motion:reduce){.z-tds_2f_web-tds_2f_web_2f_toast_2f_root-transition-property-31{transition-property:opacity}}.z-tds_2f_web-tds_2f_web_2f_toast_2f_title-font-family-0{font-family:var(--z-tds_2f_web-typography-copy-14-strong-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}.z-tds_2f_web-tds_2f_web_2f_toast_2f_title-font-size-1{font-size:var(--z-tds_2f_web-typography-copy-14-strong-fontSize,14px)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_title-font-weight-2{font-weight:var(--z-tds_2f_web-typography-copy-14-strong-fontWeight,550)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_title-letter-spacing-3{letter-spacing:var(--z-tds_2f_web-typography-copy-14-strong-letterSpacing,-.09px)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_title-line-height-4{line-height:var(--z-tds_2f_web-typography-copy-14-strong-lineHeight,20px)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-inset-block-end-0{inset-block-end:var(--z-tds_2f_web-spacing-16,1rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-inset-inline-1{inset-inline:var(--z-tds_2f_web-spacing-16,1rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-m-2{margin:auto}.z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-max-width-3{max-width:var(--z-tds_2f_web-spacing-384,24rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-position-4{position:fixed}.z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-z-index-5{z-index:var(--z-tds_2f_web-zIndex-toast,1000)}@media (width>=40rem){.z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-inset-inline-start-6{inset-inline-start:auto}.z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-m-7{margin:var(--z-tds_2f_web-spacing-0,0rem)}.z-tds_2f_web-tds_2f_web_2f_toast_2f_viewport-w-8{width:var(--z-tds_2f_web-spacing-384,24rem)}}.z_tempo_2d_id-5EdEP10{align-items:flex-start}.z_tempo_2d_id-5EdEP11{display:flex}.z_tempo_2d_id-5EdEP12{justify-content:center}.z_tempo_2d_id-5EdEP13{min-height:100dvh}.z_tempo_2d_id-5EdEP14{padding-block:var(--z-tempo_2d_id-spacing-64,4rem);padding-inline:var(--z-tempo_2d_id-spacing-16,1rem)}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{E as e,j as t,s as n}from"./react-dom-DtwtyQPy.js";import{On as r,Tn as i,et as a,v as o,wn as s,yn as c}from"./zyzz.config-DYq-16_0.js";import{o as l}from"./Tooltip-D3NLigmC.js";var u=t(e(),1);function d({controlled:e,default:t,name:n,state:r=`value`}){let{current:i}=u.useRef(e!==void 0),[a,o]=u.useState(()=>t);return[i&&e!==void 0?e:a,u.useCallback(e=>{i||o(e)},[])]}var f=u.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},nextIndexRef:{current:0}});function p(){return u.useContext(f)}var m=n();function h(e){let{children:t,elementsRef:n,labelsRef:i,onMapChange:o}=e,s=a(o),[,l]=u.useState(0),d=r(_).current,p=r(g).current,h=u.useRef(0),S=u.useRef(!0),C=u.useRef(null),w=u.useRef(null),T=a(()=>{S.current||(S.current=!0,l(e=>e+1))}),E=a((e,t)=>{p.set(e,t),T()}),D=a(e=>{p.delete(e),T()}),O=a(e=>{let t=new Map;return n.current.length=0,i&&(i.current.length=0),e.forEach(e=>{t.set(e.element,{...e.registration.metadata??{},index:e.index}),n.current[e.index]=e.element,i&&(i.current[e.index]=e.registration.label===void 0?e.registration.textRef?.current?.textContent??e.element.textContent:e.registration.label)}),h.current=n.current.length,t});function k(e){if(w.current?.disconnect(),w.current=null,typeof MutationObserver!=`function`||e.length<2)return;let t=new MutationObserver(n=>{if(!b(n))return;let r=null;for(let n of e)if(n.isConnected){if(r&&x(r,n)>0){t.disconnect(),T();return}r=n}});w.current=t;let n=new Set;for(let t=1;t<e.length;t+=1){let r=y(e[t-1],e[t]);r&&n.add(r)}n.forEach(e=>t.observe(e,{childList:!0}))}let A=a(()=>{let[e,t]=v(p),n=O(e),r=C.current,i=!r||r.length!==e.length||e.some((e,t)=>{let n=r[t];return e.index!==n.index||e.element!==n.element||e.registration.index!==n.registration.index||e.registration.metadata!==n.registration.metadata});k(t),C.current=e,S.current=!1,i&&(d.forEach(e=>e(n)),s(n))});c(()=>(!S.current&&C.current&&O(C.current),()=>{n.current=[],i&&(i.current=[])}),[n,i,O]),c(()=>{S.current&&A()}),c(()=>()=>{w.current?.disconnect(),S.current=!0},[]);let j=a(e=>(d.add(e),()=>{d.delete(e)})),M=u.useMemo(()=>({register:E,unregister:D,subscribeMapChange:j,nextIndexRef:h}),[E,D,j,h]);return(0,m.jsx)(f.Provider,{value:M,children:t})}function g(){return new Map}function _(){return new Set}function v(e){let t=new Set,n=[],r=[];e.forEach((e,i)=>{if(!i.isConnected)return;let a=e.index,o={index:a??-1,element:i,registration:e};a===null?r.push(o):a>=0&&(t.add(a),n.push(o))});let i=0;return r.sort((e,t)=>x(e.element,t.element)),r.forEach(e=>{for(;t.has(i);)i+=1;e.index=i,n.push(e),i+=1}),t.size>0&&n.sort((e,t)=>e.index-t.index),[n,r.map(e=>e.element)]}function y(e,t){let n=e.parentElement;for(;n&&!n.contains(t);)n=n.parentElement;return n}function b(e){for(let t of e)for(let e=0;e<t.removedNodes.length;e+=1)if(t.removedNodes[e].isConnected)return!0;return!1}function x(e,t){return e.nextElementSibling===t?-1:t.nextElementSibling===e?1:e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}function S(e={}){let{guess:t,label:n,metadata:r,textRef:i,index:a}=e,{register:o,unregister:s,subscribeMapChange:l,nextIndexRef:d}=p(),f=u.useRef(-1),[m,h]=u.useState(a==null&&t?()=>{if(f.current===-1){let e=d.current;d.current+=1,f.current=e}return f.current}:-1),g=a??m,_=u.useRef(null),v=u.useCallback(e=>{let t=_.current;t&&s(t),_.current=e,e&&o(e,{metadata:r??null,index:a??null,label:n,textRef:i})},[a,o,s,r,n,i]);return c(()=>{if(a==null)return l(e=>{let t=_.current?e.get(_.current)?.index:null;t!=null&&h(t)})},[a,l]),{ref:v,index:g}}var C=`data-valid`,w=`data-invalid`,T={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},E={disabled:!1,valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},D={valid(e){return e===null?null:e?{[C]:``}:{[w]:``}}},O={invalid:void 0,name:void 0,validityData:{state:T,errors:[],error:``,value:``,initialValue:null},setValidityData:i,disabled:void 0,setTouched:i,setDirty:i,setFilled:i,setFocused:i,focusOwnerRef:{current:void 0},validationMode:`onSubmit`,shouldValidateOnChange:()=>!1,state:E,registerFieldControl:i,validation:{getValidationProps:(e,t=s)=>t,inputRef:{current:null},registeredInputs:new Map,registerInput:i,getInputControl:()=>null,commit:async()=>{},change:i}},k=u.createContext(O);function A(e=!0){let t=u.useContext(k);if(t.setValidityData===i&&!e)throw Error(o(28));return t}var j=u.createContext({elementRef:{current:null},formRef:{current:{fields:new Map}},errors:{},clearErrors:i,validationMode:`onSubmit`,submitCountRef:{current:0}});function M(){return u.useContext(j)}var N=u.createContext({controlId:void 0,registerControlId:i,resetControlId:i,labelId:void 0,setLabelId:i,messageIds:[],setMessageIds:i,getDescriptionProps:e=>e});function P(){return u.useContext(N)}function F(e={}){let{id:t,enabled:n=!0}=e,{controlId:o,registerControlId:s,resetControlId:d}=P(),f=l(),p=r(()=>Symbol()),m=u.useRef(!1),h=u.useRef(!1),g=a(()=>{m.current&&s!==i&&(m.current=!1,s(p.current,void 0))});return c(()=>{if(!n||s===i){g();return}let e;if(t!==void 0)h.current=!0,e=t;else if(h.current)e=f;else{d();return}e===void 0?g():(m.current=!0,s(p.current,e))},[t,n,s,d,f,p,g]),c(()=>g,[g]),(n?o:void 0)??t??f}function I(e,t,n){let{setFocused:r,focusOwnerRef:i}=A(),o=a(t=>{(t?!e:i.current===o)&&(i.current=t&&o,n?.(t),r(t))});return c(()=>{let e=t.current;return e?.getRootNode()?.activeElement===e&&o(!0),()=>o(!1)},[e,t,o]),o}function L(e,t,n,i,a=!0,o){let{registerFieldControl:s}=A(),l=r(()=>Symbol());c(()=>{let r=l.current;a?s(r,{controlRef:e,getValue:i,id:t,name:o,value:n}):s(r,void 0)},[e,a,i,t,o,s,l,n]),c(()=>{let e=l.current;return()=>{s(e,void 0)}},[s,l])}export{M as a,S as c,P as i,h as l,I as n,A as o,F as r,D as s,L as t,d as u};
|
|
2
|
-
//# sourceMappingURL=useRegisterFieldControl-UOdCWAKS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.z-tds_2f_web-tds_2f_web_2f_spinner_2f_glyph-animation-0{animation:.8s linear infinite z-kid-tds_2f_web_2f_spinner_2f_rotation}.z-tds_2f_web-tds_2f_web_2f_spinner_2f_glyph-h-1{height:100%}.z-tds_2f_web-tds_2f_web_2f_spinner_2f_glyph-w-2{width:100%}@media (prefers-reduced-motion:reduce){.z-tds_2f_web-tds_2f_web_2f_spinner_2f_glyph-animation-3{animation:none}}.z-tds_2f_web-tds_2f_web_2f_spinner-text-0{color:inherit}.z-tds_2f_web-tds_2f_web_2f_spinner-display-1{display:inline-flex}.z-tds_2f_web-tds_2f_web_2f_spinner-flex-shrink-2{flex-shrink:0}.z-tds_2f_web-tds_2f_web_2f_spinner-h-3{&:where([data-size=large]){height:var(--z-tds_2f_web-spacing-20,1.25rem)}}.z-tds_2f_web-tds_2f_web_2f_spinner-w-4{&:where([data-size=large]){width:var(--z-tds_2f_web-spacing-20,1.25rem)}}.z-tds_2f_web-tds_2f_web_2f_spinner-h-5{&:where([data-size=medium]){height:var(--z-tds_2f_web-spacing-16,1rem)}}.z-tds_2f_web-tds_2f_web_2f_spinner-w-6{&:where([data-size=medium]){width:var(--z-tds_2f_web-spacing-16,1rem)}}.z-tds_2f_web-tds_2f_web_2f_spinner-h-7{&:where([data-size=small]){height:var(--z-tds_2f_web-spacing-12,.75rem)}}.z-tds_2f_web-tds_2f_web_2f_spinner-w-8{&:where([data-size=small]){width:var(--z-tds_2f_web-spacing-12,.75rem)}}.z-tds_2f_web-tds_2f_web_2f_button-align-items-0{align-items:center}.z-tds_2f_web-tds_2f_web_2f_button-border-1{border:none}.z-tds_2f_web-tds_2f_web_2f_button-box-sizing-2{box-sizing:border-box}.z-tds_2f_web-tds_2f_web_2f_button-column-gap-3{column-gap:var(--z-tds_2f_web-spacing-8,.5rem)}.z-tds_2f_web-tds_2f_web_2f_button-cursor-4{cursor:pointer}.z-tds_2f_web-tds_2f_web_2f_button-display-5{display:inline-flex}.z-tds_2f_web-tds_2f_web_2f_button-justify-content-6{justify-content:center}.z-tds_2f_web-tds_2f_web_2f_button-outline-color-7{outline-color:#0000}.z-tds_2f_web-tds_2f_web_2f_button-outline-offset-8{outline-offset:var(--z-tds_2f_web-outlineOffset-2,2px)}.z-tds_2f_web-tds_2f_web_2f_button-outline-style-9{outline-style:solid}.z-tds_2f_web-tds_2f_web_2f_button-outline-width-10{outline-width:var(--z-tds_2f_web-outlineWidth-2,2px)}.z-tds_2f_web-tds_2f_web_2f_button-position-11{position:relative}.z-tds_2f_web-tds_2f_web_2f_button-text-decoration-12{text-decoration:none}.z-tds_2f_web-tds_2f_web_2f_button-transition-duration-13{transition-duration:var(--z-tds_2f_web-transitionDuration-160,.16s)}.z-tds_2f_web-tds_2f_web_2f_button-transition-property-14{transition-property:background-color,box-shadow,color,opacity,outline-color,scale}.z-tds_2f_web-tds_2f_web_2f_button-transition-timing-function-15{transition-timing-function:var(--z-tds_2f_web-ease-snappy,cubic-bezier(.23, 1, .32, 1))}.z-tds_2f_web-tds_2f_web_2f_button-user-select-16{-webkit-user-select:none;user-select:none}.z-tds_2f_web-tds_2f_web_2f_button-white-space-17{white-space:nowrap}.z-tds_2f_web-tds_2f_web_2f_button-scale-18{&:active:not(:disabled){scale:var(--z-tds_2f_web-scale-press,.98)}}.z-tds_2f_web-tds_2f_web_2f_button-transition-duration-19{&:active:not(:disabled){transition-duration:var(--z-tds_2f_web-transitionDuration-100,.1s)}}.z-tds_2f_web-tds_2f_web_2f_button-cursor-20{&:disabled{cursor:default}}.z-tds_2f_web-tds_2f_web_2f_button-opacity-21{&:disabled{opacity:var(--z-tds_2f_web-opacity-disabled,.4)}}.z-tds_2f_web-tds_2f_web_2f_button-outline-color-22{&:focus-visible{outline-color:var(--z-tds_2f_web-color-blue-700,#4471ed)}}.z-tds_2f_web-tds_2f_web_2f_button-opacity-23{&[data-loading]{opacity:1}}@media (forced-colors:active){.z-tds_2f_web-tds_2f_web_2f_button-outline-style-24{outline-style:none}.z-tds_2f_web-tds_2f_web_2f_button-outline-style-25{&:focus-visible{outline-style:solid}}}@media (prefers-reduced-motion:reduce){.z-tds_2f_web-tds_2f_web_2f_button-transition-property-26{transition-property:background-color,color,opacity,outline-color}.z-tds_2f_web-tds_2f_web_2f_button-scale-27{&:active:not(:disabled){scale:none}}}.z-tds_2f_web-tds_2f_web_2f_button-aspect-ratio-28{&:where([data-shape=icon]){aspect-ratio:1}}.z-tds_2f_web-tds_2f_web_2f_button-border-radius-29{&:where([data-size=large]){border-radius:var(--z-tds_2f_web-radius-16,1rem)}}.z-tds_2f_web-tds_2f_web_2f_button-h-30{&:where([data-size=large]){height:var(--z-tds_2f_web-spacing-56,3.5rem)}}.z-tds_2f_web-tds_2f_web_2f_button-padding-inline-31{&:where([data-size=large]){padding-inline:var(--z-tds_2f_web-spacing-32,2rem)}}.z-tds_2f_web-tds_2f_web_2f_button-font-family-32{&:where([data-size=large]){font-family:var(--z-tds_2f_web-typography-button-16-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}}.z-tds_2f_web-tds_2f_web_2f_button-font-size-33{&:where([data-size=large]){font-size:var(--z-tds_2f_web-typography-button-16-fontSize,16px)}}.z-tds_2f_web-tds_2f_web_2f_button-font-weight-34{&:where([data-size=large]){font-weight:var(--z-tds_2f_web-typography-button-16-fontWeight,500)}}.z-tds_2f_web-tds_2f_web_2f_button-letter-spacing-35{&:where([data-size=large]){letter-spacing:var(--z-tds_2f_web-typography-button-16-letterSpacing,-.18px)}}.z-tds_2f_web-tds_2f_web_2f_button-line-height-36{&:where([data-size=large]){line-height:var(--z-tds_2f_web-typography-button-16-lineHeight,20px)}}.z-tds_2f_web-tds_2f_web_2f_button-border-radius-37{&:where([data-size=medium]){border-radius:var(--z-tds_2f_web-radius-12,.75rem)}}.z-tds_2f_web-tds_2f_web_2f_button-h-38{&:where([data-size=medium]){height:var(--z-tds_2f_web-spacing-40,2.5rem)}}.z-tds_2f_web-tds_2f_web_2f_button-padding-inline-39{&:where([data-size=medium]){padding-inline:var(--z-tds_2f_web-spacing-20,1.25rem)}}.z-tds_2f_web-tds_2f_web_2f_button-font-family-40{&:where([data-size=medium]){font-family:var(--z-tds_2f_web-typography-button-14-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}}.z-tds_2f_web-tds_2f_web_2f_button-font-size-41{&:where([data-size=medium]){font-size:var(--z-tds_2f_web-typography-button-14-fontSize,14px)}}.z-tds_2f_web-tds_2f_web_2f_button-font-weight-42{&:where([data-size=medium]){font-weight:var(--z-tds_2f_web-typography-button-14-fontWeight,500)}}.z-tds_2f_web-tds_2f_web_2f_button-letter-spacing-43{&:where([data-size=medium]){letter-spacing:var(--z-tds_2f_web-typography-button-14-letterSpacing,-.09px)}}.z-tds_2f_web-tds_2f_web_2f_button-line-height-44{&:where([data-size=medium]){line-height:var(--z-tds_2f_web-typography-button-14-lineHeight,20px)}}.z-tds_2f_web-tds_2f_web_2f_button-border-radius-45{&:where([data-size=small]){border-radius:var(--z-tds_2f_web-radius-8,.5rem)}}.z-tds_2f_web-tds_2f_web_2f_button-h-46{&:where([data-size=small]){height:var(--z-tds_2f_web-spacing-32,2rem)}}.z-tds_2f_web-tds_2f_web_2f_button-padding-inline-47{&:where([data-size=small]){padding-inline:var(--z-tds_2f_web-spacing-12,.75rem)}}.z-tds_2f_web-tds_2f_web_2f_button-font-family-48{&:where([data-size=small]){font-family:var(--z-tds_2f_web-typography-button-12-fontFamily,Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji")}}.z-tds_2f_web-tds_2f_web_2f_button-font-size-49{&:where([data-size=small]){font-size:var(--z-tds_2f_web-typography-button-12-fontSize,12px)}}.z-tds_2f_web-tds_2f_web_2f_button-font-weight-50{&:where([data-size=small]){font-weight:var(--z-tds_2f_web-typography-button-12-fontWeight,500)}}.z-tds_2f_web-tds_2f_web_2f_button-letter-spacing-51{&:where([data-size=small]){letter-spacing:var(--z-tds_2f_web-typography-button-12-letterSpacing,.01px)}}.z-tds_2f_web-tds_2f_web_2f_button-line-height-52{&:where([data-size=small]){line-height:var(--z-tds_2f_web-typography-button-12-lineHeight,16px)}}.z-tds_2f_web-tds_2f_web_2f_button-bg-53{&:where([data-variant=negative]){background-color:var(--z-tds_2f_web-color-red-800,light-dark(#e02401,#d8351f))}}.z-tds_2f_web-tds_2f_web_2f_button-text-54{&:where([data-variant=negative]){color:var(--z-tds_2f_web-color-white,#fff)}}.z-tds_2f_web-tds_2f_web_2f_button-bg-55{&:where([data-variant=negative]){&:hover:not(:disabled){background-color:var(--z-tds_2f_web-color-red-900,light-dark(#cf2203,#f55c45))}}}.z-tds_2f_web-tds_2f_web_2f_button-bg-56{&:where([data-variant=primary]){background-color:var(--z-tds_2f_web-color-foreground,light-dark(#171717,#fff))}}.z-tds_2f_web-tds_2f_web_2f_button-background-image-57{&:where([data-variant=primary]){background-image:linear-gradient(#ffffff14,#fff0)}}.z-tds_2f_web-tds_2f_web_2f_button-box-shadow-58{&:where([data-variant=primary]){box-shadow:var(--z-tds_2f_web-shadow-raised,0 1px 2px #0000000f, 0 1px 1px #0000000a)}}.z-tds_2f_web-tds_2f_web_2f_button-text-59{&:where([data-variant=primary]){color:var(--z-tds_2f_web-color-background-primary,light-dark(#f5f5f5,#100f0f))}}.z-tds_2f_web-tds_2f_web_2f_button-opacity-60{&:where([data-variant=primary]){&:hover:not(:disabled){opacity:var(--z-tds_2f_web-opacity-hover,.86)}}}.z-tds_2f_web-tds_2f_web_2f_button-bg-61{&:where([data-variant=secondary]){background-color:var(--z-tds_2f_web-color-grayAlpha-100,light-dark(#0000000d,#ffffff12))}}.z-tds_2f_web-tds_2f_web_2f_button-text-62{&:where([data-variant=secondary]){color:var(--z-tds_2f_web-color-foreground,light-dark(#171717,#fff))}}.z-tds_2f_web-tds_2f_web_2f_button-bg-63{&:where([data-variant=secondary]){&:hover:not(:disabled){background-color:var(--z-tds_2f_web-color-grayAlpha-200,light-dark(#00000014,#ffffff1a))}}}.z-tds_2f_web-tds_2f_web_2f_button-bg-64{&:where([data-variant=secondary]){&:active:not(:disabled){background-color:var(--z-tds_2f_web-color-grayAlpha-300,light-dark(#0000001a,#ffffff21))}}}.z-tds_2f_web-tds_2f_web_2f_button-bg-65{&:where([data-variant=text]){background-color:#0000}}.z-tds_2f_web-tds_2f_web_2f_button-text-66{&:where([data-variant=text]){color:var(--z-tds_2f_web-color-foreground,light-dark(#171717,#fff))}}.z-tds_2f_web-tds_2f_web_2f_button-bg-67{&:where([data-variant=text]){&:hover:not(:disabled){background-color:var(--z-tds_2f_web-color-grayAlpha-100,light-dark(#0000000d,#ffffff12))}}}.z-tds_2f_web-tds_2f_web_2f_button-border-radius-68{&:where([data-shape=icon]):where(*,.__zyzz-compound-0){border-radius:var(--z-tds_2f_web-radius-full,9999px)}}.z-tds_2f_web-tds_2f_web_2f_button-padding-inline-69{&:where([data-shape=icon]):where(*,.__zyzz-compound-0){padding-inline:var(--z-tds_2f_web-spacing-0,0rem)}}.z-tds_2f_web-tds_2f_web_2f_button_2f_content-align-items-0{align-items:inherit}.z-tds_2f_web-tds_2f_web_2f_button_2f_content-column-gap-1{column-gap:inherit}.z-tds_2f_web-tds_2f_web_2f_button_2f_content-transition-duration-2{transition-duration:var(--z-tds_2f_web-transitionDuration-160,.16s)}.z-tds_2f_web-tds_2f_web_2f_button_2f_content-transition-property-3{transition-property:opacity,visibility}.z-tds_2f_web-tds_2f_web_2f_button_2f_content-opacity-4{&:where([data-loading=true]){opacity:0}}.z-tds_2f_web-tds_2f_web_2f_button_2f_content-visibility-5{&:where([data-loading=true]){visibility:hidden}}.z-tds_2f_web-tds_2f_web_2f_button_2f_spinner-inset-block-start-0{inset-block-start:50%}.z-tds_2f_web-tds_2f_web_2f_button_2f_spinner-inset-inline-start-1{inset-inline-start:50%}.z-tds_2f_web-tds_2f_web_2f_button_2f_spinner-position-2{position:absolute}.z-tds_2f_web-tds_2f_web_2f_button_2f_spinner-translate-3{translate:-50% -50%}
|