agent-relay-server 0.35.3 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/openapi.json +68 -1
- package/package.json +2 -2
- package/public/assets/{activity-WjOShx3N.js → activity-DVdEofAq.js} +2 -2
- package/public/assets/{activity-WjOShx3N.js.map → activity-DVdEofAq.js.map} +1 -1
- package/public/assets/{agent-profiles-Bs8MAW6j.js → agent-profiles-BiQ-5F3l.js} +2 -2
- package/public/assets/{agent-profiles-Bs8MAW6j.js.map → agent-profiles-BiQ-5F3l.js.map} +1 -1
- package/public/assets/agents-Dt4FBBnk.js +2 -0
- package/public/assets/agents-Dt4FBBnk.js.map +1 -0
- package/public/assets/{analytics-B5_HS2Lt.js → analytics-BeUxZhkP.js} +3 -3
- package/public/assets/{analytics-B5_HS2Lt.js.map → analytics-BeUxZhkP.js.map} +1 -1
- package/public/assets/{automation-CoOe2nEA.js → automation--G9ZMkL6.js} +2 -2
- package/public/assets/{automation-CoOe2nEA.js.map → automation--G9ZMkL6.js.map} +1 -1
- package/public/assets/{badge-t8zAwHW9.js → badge-JVybSpzR.js} +2 -2
- package/public/assets/{badge-t8zAwHW9.js.map → badge-JVybSpzR.js.map} +1 -1
- package/public/assets/{branch-state-badge-EliCEAQI.js → branch-state-badge-BTqHF74k.js} +2 -2
- package/public/assets/{branch-state-badge-EliCEAQI.js.map → branch-state-badge-BTqHF74k.js.map} +1 -1
- package/public/assets/{button-DDA5P2YQ.js → button-BsMqBNJb.js} +2 -2
- package/public/assets/{button-DDA5P2YQ.js.map → button-BsMqBNJb.js.map} +1 -1
- package/public/assets/card-I8w4U656.js +2 -0
- package/public/assets/{card-CggxP1h9.js.map → card-I8w4U656.js.map} +1 -1
- package/public/assets/{channels-BzSpsE5h.js → channels-nqTHGf6J.js} +2 -2
- package/public/assets/{channels-BzSpsE5h.js.map → channels-nqTHGf6J.js.map} +1 -1
- package/public/assets/chat-DALcMlDH.js +2 -0
- package/public/assets/chat-DALcMlDH.js.map +1 -0
- package/public/assets/{connectors-DoUgct8f.js → connectors-ChkEg-0q.js} +2 -2
- package/public/assets/{connectors-DoUgct8f.js.map → connectors-ChkEg-0q.js.map} +1 -1
- package/public/assets/copy-button-B-XlL8nF.js +2 -0
- package/public/assets/{copy-button-CE8e2c-F.js.map → copy-button-B-XlL8nF.js.map} +1 -1
- package/public/assets/display-ConJ9cJB.js +3 -0
- package/public/assets/{display-Bebqs1qu.js.map → display-ConJ9cJB.js.map} +1 -1
- package/public/assets/{dist-CiWi_f7V.js → dist-BQ52MnS1.js} +2 -2
- package/public/assets/{dist-CiWi_f7V.js.map → dist-BQ52MnS1.js.map} +1 -1
- package/public/assets/{dist-CHi40_tZ.js → dist-BgfF2Rlm.js} +2 -2
- package/public/assets/{dist-CHi40_tZ.js.map → dist-BgfF2Rlm.js.map} +1 -1
- package/public/assets/dist-CnJzBTp1.js +2 -0
- package/public/assets/{dist-DTLaCErY.js.map → dist-CnJzBTp1.js.map} +1 -1
- package/public/assets/{dist-xorgjFcF.js → dist-CrBurS6i.js} +2 -2
- package/public/assets/{dist-xorgjFcF.js.map → dist-CrBurS6i.js.map} +1 -1
- package/public/assets/dist-D6iXJzms.js +2 -0
- package/public/assets/{dist-BmYJ5xuf.js.map → dist-D6iXJzms.js.map} +1 -1
- package/public/assets/{dist-CkiXMjV0.js → dist-DRlgXPi_.js} +2 -2
- package/public/assets/{dist-CkiXMjV0.js.map → dist-DRlgXPi_.js.map} +1 -1
- package/public/assets/{dist-B3igiXqp.js → dist-DSNhRDNh.js} +2 -2
- package/public/assets/{dist-B3igiXqp.js.map → dist-DSNhRDNh.js.map} +1 -1
- package/public/assets/{dist-C3Yx04R4.js → dist-SqFV12iO.js} +2 -2
- package/public/assets/{dist-C3Yx04R4.js.map → dist-SqFV12iO.js.map} +1 -1
- package/public/assets/{es2015-BDK_SBFZ.js → es2015-iucXYTIE.js} +2 -2
- package/public/assets/{es2015-BDK_SBFZ.js.map → es2015-iucXYTIE.js.map} +1 -1
- package/public/assets/{formatted-body-impl-DhCblnWM.js → formatted-body-impl-D1K3GML5.js} +2 -2
- package/public/assets/{formatted-body-impl-DhCblnWM.js.map → formatted-body-impl-D1K3GML5.js.map} +1 -1
- package/public/assets/index-DUxpx-Zp.css +2 -0
- package/public/assets/index-DdB6SVZY.js +21 -0
- package/public/assets/index-DdB6SVZY.js.map +1 -0
- package/public/assets/{input-BW9UD3FM.js → input-dPzf0luy.js} +2 -2
- package/public/assets/{input-BW9UD3FM.js.map → input-dPzf0luy.js.map} +1 -1
- package/public/assets/{insights-yJFgCa3o.js → insights-5CDeJfoX.js} +2 -2
- package/public/assets/{insights-yJFgCa3o.js.map → insights-5CDeJfoX.js.map} +1 -1
- package/public/assets/{integrations-CUv4i_4i.js → integrations-C8839Qa0.js} +2 -2
- package/public/assets/{integrations-CUv4i_4i.js.map → integrations-C8839Qa0.js.map} +1 -1
- package/public/assets/{lib-ZEIADKGq.js → lib-BAE--T4O.js} +3 -3
- package/public/assets/{lib-ZEIADKGq.js.map → lib-BAE--T4O.js.map} +1 -1
- package/public/assets/lucide-react-DLQFnqNm.js +9 -0
- package/public/assets/{lucide-react-CD8Xl2U3.js.map → lucide-react-DLQFnqNm.js.map} +1 -1
- package/public/assets/{maintenance-CUxxVXsc.js → maintenance-Ddl4zgKZ.js} +2 -2
- package/public/assets/{maintenance-CUxxVXsc.js.map → maintenance-Ddl4zgKZ.js.map} +1 -1
- package/public/assets/{managed-agents-VZEeMMSP.js → managed-agents-D-K6vUKj.js} +2 -2
- package/public/assets/{managed-agents-VZEeMMSP.js.map → managed-agents-D-K6vUKj.js.map} +1 -1
- package/public/assets/{markdown-preview-impl-Bbwmbxvn.js → markdown-preview-impl-BjS4cnc3.js} +2 -2
- package/public/assets/{markdown-preview-impl-Bbwmbxvn.js.map → markdown-preview-impl-BjS4cnc3.js.map} +1 -1
- package/public/assets/memory-BTV0z4uL.js +2 -0
- package/public/assets/{memory-BQAC3YmR.js.map → memory-BTV0z4uL.js.map} +1 -1
- package/public/assets/{messages-_sdHV42k.js → messages-CzHsL-om.js} +2 -2
- package/public/assets/{messages-_sdHV42k.js.map → messages-CzHsL-om.js.map} +1 -1
- package/public/assets/{orchestrators-BkHHgd83.js → orchestrators-PMUp2sUP.js} +2 -2
- package/public/assets/{orchestrators-BkHHgd83.js.map → orchestrators-PMUp2sUP.js.map} +1 -1
- package/public/assets/{overview-CYAHOUyA.js → overview-B_od6jh0.js} +2 -2
- package/public/assets/{overview-CYAHOUyA.js.map → overview-B_od6jh0.js.map} +1 -1
- package/public/assets/pairs-CaxiFyfY.js +2 -0
- package/public/assets/{pairs-BvMH1CS7.js.map → pairs-CaxiFyfY.js.map} +1 -1
- package/public/assets/{react-dom-CX8inunm.js → react-dom-CzfKBOnw.js} +2 -2
- package/public/assets/{react-dom-CX8inunm.js.map → react-dom-CzfKBOnw.js.map} +1 -1
- package/public/assets/{security-Dsdr3lSX.js → security-BZYHZ4CE.js} +2 -2
- package/public/assets/{security-Dsdr3lSX.js.map → security-BZYHZ4CE.js.map} +1 -1
- package/public/assets/{settings-DlovIWdE.js → settings-RLyewdfK.js} +7 -7
- package/public/assets/{settings-DlovIWdE.js.map → settings-RLyewdfK.js.map} +1 -1
- package/public/assets/store-CMUFZKxf.js +9 -0
- package/public/assets/store-CMUFZKxf.js.map +1 -0
- package/public/assets/{switch-22dlDUXs.js → switch-W2_mhdrR.js} +2 -2
- package/public/assets/{switch-22dlDUXs.js.map → switch-W2_mhdrR.js.map} +1 -1
- package/public/assets/tasks-BYTcfYDQ.js +2 -0
- package/public/assets/{tasks-Cgan8Oqb.js.map → tasks-BYTcfYDQ.js.map} +1 -1
- package/public/assets/{terminal-viewer-impl-DVW-LRbz.js → terminal-viewer-impl-B5rPCNkZ.js} +3 -3
- package/public/assets/{terminal-viewer-impl-DVW-LRbz.js.map → terminal-viewer-impl-B5rPCNkZ.js.map} +1 -1
- package/public/assets/{use-keyboard-viewport-DxY_xJV5.js → use-keyboard-viewport-bZ1J-ZnH.js} +2 -2
- package/public/assets/{use-keyboard-viewport-DxY_xJV5.js.map → use-keyboard-viewport-bZ1J-ZnH.js.map} +1 -1
- package/public/assets/work-queue-DYgqkTQD.js +2 -0
- package/public/assets/{work-queue-B4CifZKH.js.map → work-queue-DYgqkTQD.js.map} +1 -1
- package/public/assets/{workspaces-D7lsWShY.js → workspaces-Dkq9DxCL.js} +3 -3
- package/public/assets/{workspaces-D7lsWShY.js.map → workspaces-Dkq9DxCL.js.map} +1 -1
- package/public/index.html +20 -20
- package/src/db/message-reads.ts +54 -1
- package/src/db/migrations.ts +1 -0
- package/src/routes/_shared.ts +2 -1
- package/src/routes/agents.ts +21 -2
- package/src/routes/index.ts +2 -1
- package/src/sse.ts +7 -2
- package/public/assets/agents-Cihuuoxa.js +0 -2
- package/public/assets/agents-Cihuuoxa.js.map +0 -1
- package/public/assets/card-CggxP1h9.js +0 -2
- package/public/assets/chat-0ZbxHlDu.js +0 -2
- package/public/assets/chat-0ZbxHlDu.js.map +0 -1
- package/public/assets/copy-button-CE8e2c-F.js +0 -2
- package/public/assets/display-Bebqs1qu.js +0 -3
- package/public/assets/dist-BmYJ5xuf.js +0 -2
- package/public/assets/dist-DTLaCErY.js +0 -2
- package/public/assets/index-CvSlyTSI.js +0 -21
- package/public/assets/index-CvSlyTSI.js.map +0 -1
- package/public/assets/index-DeSwlD3c.css +0 -2
- package/public/assets/lucide-react-CD8Xl2U3.js +0 -9
- package/public/assets/memory-BQAC3YmR.js +0 -2
- package/public/assets/pairs-BvMH1CS7.js +0 -2
- package/public/assets/store-CICRhg1m.js +0 -9
- package/public/assets/store-CICRhg1m.js.map +0 -1
- package/public/assets/tasks-Cgan8Oqb.js +0 -2
- package/public/assets/work-queue-B4CifZKH.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"mappings":"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IAAK,GAWH,GAVA,EAAiB,GACjB,EAA4B,GAC5B,GAAa,KACb,GACE,EACA,EACA,EACD,CACD,GAAa,EACb,GAAwB,EACX,KAAT,KACF,GAAI,GACF,GAAI,EACK,GAAW,WAAjB,EACG,GAAW,KACA,GAAW,WAAtB,OACE,GAAW,cAAc,KACzB,IACJ,YAAY,EAAa,UAAU,OAC9B,EAAO,CACd,EACE,EACA,EACA,EACD,MAGH,GAAI,CACF,GAAW,YAAY,EAAa,UAAU,OACvC,EAAO,CACd,EACE,EACA,EACA,EACD,CAEP,MACF,IAAK,IACM,KAAT,OACG,IACK,EAAe,GACjB,GACQ,EAAa,WAAnB,EACI,EAAa,KACF,EAAa,WAAxB,OACE,EAAa,cAAc,KAC3B,EACN,EAAa,UACd,CACD,GAAiB,EAAa,EAC9B,GAAuB,GAAY,EAAa,UAAU,EAChE,MACF,IAAK,GACH,EAAiB,GACjB,EAA4B,GAC5B,GAAa,EAAa,UAAU,cACpC,GAAwB,CAAC,EACzB,GACE,EACA,EACA,EACD,CACD,GAAa,EACb,GAAwB,EACxB,MACF,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACH,GAA4B,EAAG,EAAc,EAAuB,CACpE,IACE,GAA4B,EAAG,EAAc,EAAuB,CACtE,GACE,EACA,EACA,EACD,CACD,MACF,IAAK,GACH,KACG,GAAgB,EAAc,EAAuB,CACrD,EAAiB,EAAa,UAChB,OAAO,EAAe,sBAArC,YACE,GACE,EACA,EACA,EACD,EACL,GACE,EACA,EACA,EACD,CACD,MACF,IAAK,IACH,GACE,EACA,EACA,EACD,CACD,MACF,IAAK,IACH,IACG,EAAiB,KACT,EAAa,gBAAtB,KACF,GACE,EACA,EACA,EACD,CACD,GAA4B,EAC5B,MACF,QACE,GACE,EACA,EACA,EACD,EAGP,SAAS,GAAiC,EAAc,EAAc,CACpE,GACW,EAAa,gBAAtB,OACE,EAAe,EAAa,UACrB,IAAT,OACI,EAAe,EAAa,cAAyB,IAAT,OAChD,CACA,EAAe,EAAa,WAC5B,GAAI,CACF,GAAiB,EAAa,OACvB,EAAO,CACd,EAAwB,EAAc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AAS,aAAe,EAC1B,GACE,EACA,EACA,EACA,EACA,EACD,EAnBD,EAAS,YAAc,EACrB,GACE,EACA,EACA,EACA,EACA,EACD,CACD,GACE,EACA,EACD,CASP,GACE,EAAQ,MACR,GACE,EAAa,UACb,EACD,CACH,MACF,IAAK,IACH,GACE,EACA,EACA,EACA,EACA,EACD,CACD,GACE,EAAQ,MACR,GAA8B,EAAa,UAAW,EAAa,CACrE,MACF,QACE,GACE,EACA,EACA,EACA,EACA,EACD,CAEL,EAAc,EAAY,SAG9B,SAAS,GACP,EACA,EACA,CACA,GAAI,EAAY,aAAe,MAC7B,IAAK,EAAc,EAAY,MAAgB,IAAT,MAAwB,CAC5D,IAAI,EAAe,EACjB,EAAe,EACf,EAAQ,EAAa,MACvB,OAAQ,EAAa,IAArB,CACE,IAAK,IACH,GAAwC,EAAc,EAAa,CACnE,EAAQ,MACN,GACE,EAAa,UACb,EACD,CACH,MACF,IAAK,IACH,GAAwC,EAAc,EAAa,CACnE,EAAQ,MACN,GAA8B,EAAa,UAAW,EAAa,CACrE,MACF,QACE,GAAwC,EAAc,EAAa,CAEvE,EAAc,EAAY,SAGhC,IAAI,GAAsB,KAC1B,SAAS,GACP,EACA,EACA,EACA,CACA,GAAI,EAAY,aAAe,GAC7B,IAAK,EAAc,EAAY,MAAgB,IAAT,MACpC,GACE,EACA,EACA,EACD,CACE,EAAc,EAAY,QAEnC,SAAS,GACP,EACA,EACA,EACA,CACA,OAAQ,EAAM,IAAd,CACE,IAAK,IACH,GACE,EACA,EACA,EACD,CACD,EAAM,MAAQ,IACH,EAAM,gBAAf,MACA,GACE,EACA,GACA,EAAM,cACN,EAAM,cACP,CACH,MACF,IAAK,GACH,GACE,EACA,EACA,EACD,CACD,MACF,IAAK,GACL,IAAK,GACH,IAAI,EAAwB,GAC5B,GAAuB,GAAiB,EAAM,UAAU,cAAc,CACtE,GACE,EACA,EACA,EACD,CACD,GAAuB,EACvB,MACF,IAAK,IACM,EAAM,gBAAf,OACI,EAAwB,EAAM,UACvB,IAAT,MACS,EAAsB,gBAA/B,MACM,EAAwB,GACzB,GAAsB,SACvB,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GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,YACA,GACA,EACD,CACD,EACD,CACD,MAAM,EAER,EACE,EACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,KACA,GACA,EACD,EAGL,YACO,GACT,GAAsB,EAAc,CAEtC,SAAS,EACP,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CAGA,GAFA,EAAK,cAAgB,GACrB,EAAwB,EAAa,aAEnC,EAAwB,OACV,EAAwB,WAAtC,SACA,CACA,EAAwB,CACtB,YAAa,KACb,MAAO,EACP,SAAU,EACV,SAAU,EACV,gBAAiB,EAAE,CACnB,iBAAkB,CAAC,EACnB,yBAA0B,CAAC,EAC3B,UAAW,GACZ,CACD,GACE,EACA,EACA,EACD,CACD,IAAI,GACD,EAAQ,YAAc,EACnB,GAA+B,IAAK,EACnC,EAAQ,WAAa,EACpB,GAAiC,IAAK,CACtC,EAKR,GAJA,EAAgB,GACd,EACA,EACD,CACY,IAAT,KAAwB,CAC1B,GAAsB,EACtB,EAAK,oBAAsB,EACzB,GAAW,KACT,KACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KACA,EACA,EACD,CACF,CACD,GAAkB,EAAM,EAAO,EAAa,CAAC,EAAyB,CACtE,QAGJ,GACE,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD,CAEH,SAAS,GAAqC,EAAc,CAC1D,IAAK,IAAI,EAAO,IAAkB,CAChC,IAAI,EAAM,EAAK,IACf,IACS,IAAN,GAAoB,IAAP,IAAqB,IAAP,KAC5B,EAAK,MAAQ,QACX,EAAM,EAAK,YACJ,IAAT,OAAkB,EAAM,EAAI,OAAkB,IAAT,OAErC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,CACnC,IAAI,EAAQ,EAAI,GACd,EAAc,EAAM,YACtB,EAAQ,EAAM,MACd,GAAI,CACF,GAAI,CAAC,GAAS,GAAa,CAAE,EAAM,CAAE,MAAO,CAAC,OAC/B,CACd,MAAO,CAAC,GAId,GADA,EAAM,EAAK,MACP,EAAK,aAAe,OAAkB,IAAT,KAC/B,EAAK,OAAS,EAAQ,EAAO,MAC1B,CACH,GAAI,IAAS,EAAc,MAC3B,KAAgB,EAAK,UAAd,MAAyB,CAC9B,GAAa,EAAK,SAAd,MAAwB,EAAK,SAAW,EAAc,MAAO,CAAC,EAClE,EAAO,EAAK,OAEd,EAAK,QAAQ,OAAS,EAAK,OAC3B,EAAO,EAAK,SAGhB,MAAO,CAAC,EAEV,SAAS,GACP,EACA,EACA,EACA,EACA,CACA,GAAkB,CAAC,GACnB,GAAkB,CAAC,GACnB,EAAK,gBAAkB,EACvB,EAAK,aAAe,CAAC,EACrB,IAAyB,EAAK,WAAa,GAC3C,EAAuB,EAAK,gBAC5B,IAAK,IAAI,EAAQ,EAAgB,EAAI,GAAS,CAC5C,IAAI,EAAU,GAAK,GAAM,EAAM,CAC7B,EAAO,GAAK,EACd,EAAqB,GAAW,GAChC,GAAS,CAAC,EAEN,IAAN,GACE,GAAwB,EAAM,EAAa,EAAe,CAE9D,SAAS,IAAkB,CACzB,OAAc,EAAmB,EAE7B,CAAC,GADA,GAA8B,EAAG,CAAC,EAAE,CAAE,CAAC,GAG9C,SAAS,IAA2B,CAClC,GAAa,IAAT,KAAyB,CAC3B,GAAU,IAAN,EACF,IAAI,EAAkB,EAAe,YAErC,EAAmB,EAChB,GAAwB,GAA4B,KACrD,GAAmB,EAAgB,CAClC,GAAkB,KAClB,GAAyB,EACzB,EAAkB,EACvB,KAAgB,IAAT,MACL,GAAsB,EAAgB,UAAW,EAAgB,CAC9D,EAAkB,EAAgB,OACvC,EAAiB,MAGrB,SAAS,GAAkB,EAAM,EAAO,CACtC,IAAI,EAAgB,EAAK,cAClB,IAAP,KACI,EAAK,cAAgB,GAAK,GAAc,EAAc,EAC1D,EAAgB,EAAK,oBACZ,IAAT,OACI,EAAK,oBAAsB,KAAO,GAAe,EACrD,GAAsB,EACtB,IAA0B,CAC1B,EAAqB,EACrB,EAAiB,EAAgB,GAAqB,EAAK,QAAS,KAAK,CACzE,EAAgC,EAChC,EAAgC,EAChC,GAA4B,KAC5B,GAA6C,CAAC,EAC9C,GAAmC,GAA0B,EAAM,EAAM,CACzE,EAA0C,CAAC,EAC3C,GACE,GACA,GACA,GACA,GACA,GACE,EACJ,GAAsC,GACpC,KACF,GAAoD,CAAC,EAC9C,EAAQ,IAAO,GAAS,EAAQ,IACvC,IAAI,EAAoB,EAAK,eAC7B,GAAU,IAAN,EACF,IACE,EAAO,EAAK,cAAe,GAAqB,EAChD,EAAI,GAEJ,CACA,IAAI,EAAU,GAAK,GAAM,EAAkB,CACzC,EAAO,GAAK,EACd,GAAS,EAAK,GACd,GAAqB,CAAC,EAI1B,MAFA,IAAuB,EACvB,IAAiC,CAC1B,EAET,SAAS,GAAY,EAAM,EAAa,CACtC,EAA0B,KAC1B,EAAqB,EAAI,GACzB,IAAgB,IAAqB,IAAgB,IAC/C,EAAc,IAAsB,CACrC,EAAgC,GACjC,IAAgB,IACZ,EAAc,IAAsB,CACrC,EAAgC,GAChC,EACC,IAAgB,GACZ,EAEe,OAAO,GAApB,UADO,GAEQ,OAAO,EAAY,MAAlC,WACA,EACA,EACd,GAA4B,EACnB,IAAT,OACI,GAA+B,EACjC,GACE,EACA,GAA2B,EAAa,EAAK,QAAQ,CACtD,EAEL,SAAS,IAA+B,CACtC,IAAI,EAAU,GAA2B,QACzC,OAAgB,IAAT,KACH,CAAC,GACA,EAAgC,WAC/B,EACS,KAAT,MAGC,EAAgC,YAC7B,GACK,EAAgC,UACvC,IAAY,GACZ,CAAC,EAEX,SAAS,IAAiB,CACxB,IAAI,EAAiB,EAAqB,EAE1C,MADA,GAAqB,EAAI,GACT,IAAT,KAA0B,GAAwB,EAE3D,SAAS,IAAsB,CAC7B,IAAI,EAAsB,EAAqB,EAE/C,MADA,GAAqB,EAAI,GAClB,EAET,SAAS,IAAkC,CACzC,GAA+B,EAC/B,KACI,EAAgC,WAChC,GACS,GAA2B,UAApC,OACD,GAAmC,CAAC,GACvC,EAAQ,GAAiC,YACvC,EAAO,GAA4C,YAC1C,IAAT,MACA,GACE,EACA,EACA,GACA,CAAC,EACF,CAEL,SAAS,GAAe,EAAM,EAAO,EAA4B,CAC/D,IAAI,EAAuB,EAC3B,GAAoB,EACpB,IAAI,EAAiB,IAAgB,CACnC,EAAsB,IAAqB,EACzC,IAAuB,GAAQ,IAAkC,KACnE,GAA6B,KAAO,GAAkB,EAAM,EAAM,EACpE,EAAQ,CAAC,EACT,IAAI,EAAa,GACjB,EAAG,GACD,GAAI,CACF,GAAU,IAAN,GAAgD,IAAT,KAAyB,CAClE,IAAI,EAAa,EACf,EAAc,GAChB,OAAQ,EAAR,CACE,IAAK,GACH,IAA0B,CAC1B,EAAa,EACb,MAAM,EACR,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACM,GAA2B,UAApC,OAAgD,EAAQ,CAAC,GACzD,IAAI,EAAS,EAIb,GAHA,EAAgC,EAChC,GAA4B,KAC5B,GAAuB,EAAM,EAAY,EAAa,EAAO,CAE3D,GACA,GACA,CACA,EAAa,EACb,MAAM,EAER,MACF,QACE,EAAU,EACP,EAAgC,EAChC,GAA4B,KAC7B,GAAuB,EAAM,EAAY,EAAa,EAAO,EAGrE,IAAc,CACd,EAAa,GACb,YACO,EAAiB,CACxB,GAAY,EAAM,EAAgB,OAE/B,GAUP,OATA,GAAS,EAAK,sBACd,GAAwB,GAA4B,KACpD,EAAmB,EACnB,EAAqB,EAAI,EACzB,EAAqB,EAAI,EAChB,IAAT,OACI,EAAqB,KACtB,EAAgC,EACjC,IAAiC,EAC5B,EAET,SAAS,IAAe,CACtB,KAAgB,IAAT,MAA2B,GAAkB,EAAe,CAErE,SAAS,GAAqB,EAAM,EAAO,CACzC,IAAI,EAAuB,EAC3B,GAAoB,EACpB,IAAI,EAAiB,IAAgB,CACnC,EAAsB,IAAqB,CAC7C,IAAuB,GAAQ,IAAkC,GAC3D,GAA4B,KAC7B,GAAqC,IAAK,CAAG,IAC9C,GAAkB,EAAM,EAAM,EAC7B,GAAmC,GAClC,EACA,EACD,CACL,EAAG,GACD,GAAI,CACF,GAAU,IAAN,GAAgD,IAAT,KAAyB,CAClE,EAAQ,EACR,IAAI,EAAc,GAClB,EAAG,OAAQ,EAAR,CACD,IAAK,GACH,EAAgC,EAChC,GAA4B,KAC5B,GAAuB,EAAM,EAAO,EAAa,EAAE,CACnD,MACF,IAAK,GACL,IAAK,GACH,GAAI,GAAmB,EAAY,CAAE,CACnC,EAAgC,EAChC,GAA4B,KAC5B,GAA0B,EAAM,CAChC,MAEF,EAAQ,UAAY,CACX,IAAP,GACQ,IAAN,GACA,IAAuB,IACtB,EAAgC,GACnC,GAAsB,EAAK,EAE7B,EAAY,KAAK,EAAO,EAAM,CAC9B,MAAM,EACR,IAAK,GACH,EAAgC,EAChC,MAAM,EACR,IAAK,GACH,EAAgC,EAChC,MAAM,EACR,IAAK,GACH,GAAmB,EAAY,EACzB,EAAgC,EACjC,GAA4B,KAC7B,GAA0B,EAAM,GAC9B,EAAgC,EACjC,GAA4B,KAC7B,GAAuB,EAAM,EAAO,EAAa,EAAE,EACvD,MACF,IAAK,GACH,IAAI,EAAW,KACf,OAAQ,EAAe,IAAvB,CACE,IAAK,IACH,EAAW,EAAe,cAC5B,IAAK,GACL,IAAK,IACH,IAAI,EAAY,EAChB,GACE,EACI,GAAgB,EAAS,CACzB,EAAU,UAAU,SACxB,CACA,EAAgC,EAChC,GAA4B,KAC5B,IAAI,EAAU,EAAU,QACxB,GAAa,IAAT,KAAkB,EAAiB,MAClC,CACH,IAAI,EAAc,EAAU,OACnB,IAAT,KAGK,EAAiB,MAFhB,EAAiB,EACnB,GAAmB,EAAY,EAGrC,MAAM,GAGZ,EAAgC,EAChC,GAA4B,KAC5B,GAAuB,EAAM,EAAO,EAAa,EAAE,CACnD,MACF,IAAK,GACH,EAAgC,EAChC,GAA4B,KAC5B,GAAuB,EAAM,EAAO,EAAa,EAAE,CACnD,MACF,IAAK,GACH,IAA0B,CAC1B,GAA+B,EAC/B,MAAM,EACR,QACE,MAAM,MAAM,EAAuB,IAAI,CAAC,EAG9C,IAA+B,CAC/B,YACO,EAAiB,CACxB,GAAY,EAAM,EAAgB,OAE/B,GASP,MARA,IAAwB,GAA4B,KACpD,EAAqB,EAAI,EACzB,EAAqB,EAAI,EACzB,EAAmB,EACN,IAAT,MACJ,EAAqB,KACrB,EAAgC,EAChC,IAAiC,CAC1B,IAJ6B,EAMtC,SAAS,IAAgC,CACvC,KAAgB,IAAT,MAA2B,CAAC,IAAa,EAC9C,GAAkB,EAAe,CAErC,SAAS,GAAkB,EAAY,CACrC,IAAI,EAAO,GAAU,EAAW,UAAW,EAAY,GAAqB,CAC5E,EAAW,cAAgB,EAAW,aAC7B,IAAT,KAAgB,GAAmB,EAAW,CAAI,EAAiB,EAErE,SAAS,GAA0B,EAAY,CAC7C,IAAI,EAAO,EACP,EAAU,EAAK,UACnB,OAAQ,EAAK,IAAb,CACE,IAAK,IACL,IAAK,GACH,EAAO,GACL,EACA,EACA,EAAK,aACL,EAAK,KACL,IAAK,GACL,EACD,CACD,MACF,IAAK,IACH,EAAO,GACL,EACA,EACA,EAAK,aACL,EAAK,KAAK,OACV,EAAK,IACL,EACD,CACD,MACF,IAAK,GACH,GAAmB,EAAK,CAC1B,QACE,GAAsB,EAAS,EAAK,CACjC,EAAO,EACN,GAAoB,EAAM,GAAqB,CAChD,EAAO,GAAU,EAAS,EAAM,GAAqB,CAE5D,EAAW,cAAgB,EAAW,aAC7B,IAAT,KAAgB,GAAmB,EAAW,CAAI,EAAiB,EAErE,SAAS,GACP,EACA,EACA,EACA,EACA,CACA,GAAwB,GAA4B,KACpD,GAAmB,EAAW,CAC9B,GAAkB,KAClB,GAAyB,EACzB,IAAI,EAAc,EAAW,OAC7B,GAAI,CACF,GACE,GACE,EACA,EACA,EACA,EACA,EACD,CACD,CACA,GAA+B,EAC/B,GACE,EACA,GAA2B,EAAa,EAAK,QAAQ,CACtD,CACD,EAAiB,KACjB,cAEK,EAAO,CACd,GAAa,IAAT,KAAsB,KAAQ,GAAiB,EAAc,EACjE,GAA+B,EAC/B,GACE,EACA,GAA2B,EAAa,EAAK,QAAQ,CACtD,CACD,EAAiB,KACjB,OAEE,EAAW,MAAQ,OACjB,GAAqB,IAAN,EAAuB,EAAO,CAAC,EAEhD,IACO,EAAgC,UAEvC,EAAO,CAAC,GAEN,GAA6C,EAAO,CAAC,GACjD,IAAN,GACQ,IAAN,GACM,IAAN,GACM,IAAN,KAEF,EAAmB,GAA2B,QACnC,IAAT,MACS,EAAgB,MAAvB,KACC,EAAgB,OAAS,SAChC,GAAiB,EAAY,EAAK,EAC7B,GAAmB,EAAW,CAEvC,SAAS,GAAmB,EAAY,CACtC,IAAI,EAAgB,EACpB,EAAG,CACD,GAAW,EAAc,MAAQ,MAAQ,CACvC,GACE,EACA,GACD,CACD,OAEF,EAAa,EAAc,OAC3B,IAAI,EAAO,GACT,EAAc,UACd,EACA,GACD,CACD,GAAa,IAAT,KAAe,CACjB,EAAiB,EACjB,OAGF,GADA,EAAgB,EAAc,QACjB,IAAT,KAAwB,CAC1B,EAAiB,EACjB,OAEF,EAAiB,EAAgB,QACjB,IAAT,MACH,KAAN,IAAuC,GAA+B,GAExE,SAAS,GAAiB,EAAY,EAAc,CAClD,EAAG,CACD,IAAI,EAAO,GAAW,EAAW,UAAW,EAAW,CACvD,GAAa,IAAT,KAAe,CACjB,EAAK,OAAS,MACd,EAAiB,EACjB,OAKF,GAHA,EAAO,EAAW,OACT,IAAT,OACI,EAAK,OAAS,MAAS,EAAK,aAAe,EAAK,EAAK,UAAY,MAEnE,CAAC,IACC,EAAa,EAAW,QAAmB,IAAT,MACpC,CACA,EAAiB,EACjB,OAEF,EAAiB,EAAa,QACd,IAAT,MACT,GAA+B,EAC/B,EAAiB,KAEnB,SAAS,GACP,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACA,EAAK,oBAAsB,KAC3B,GAAG,IAAqB,OACX,KAAN,GACP,GAAW,EAAmB,EAAI,MAAM,MAAM,EAAuB,IAAI,CAAC,CAC1E,GAAa,IAAT,KAAuB,CACzB,GAAI,IAAiB,EAAK,QAAS,MAAM,MAAM,EAAuB,IAAI,CAAC,CA8B3E,GA7BA,EAA8B,EAAa,MAAQ,EAAa,WAChE,GAA+B,GAC/B,GACE,EACA,EACA,EACA,EACA,EACA,EACD,CACD,IAAS,IACL,EAAiB,EAAqB,KACvC,EAAgC,GACnC,GAAsB,EACtB,GAAqB,EACrB,GAAsB,EACtB,GAA+B,EAC/B,GAA4B,EAC5B,GAA2B,EACpB,EAAa,aAAe,OAC5B,EAAa,MAAQ,OACtB,EAAK,aAAe,KACrB,EAAK,iBAAmB,EACzB,GAAmB,GAAkB,UAAY,CAE/C,OADA,IAAqB,CACd,MACP,GACA,EAAK,aAAe,KAAQ,EAAK,iBAAmB,GAC1D,GAA2B,EAAa,MAAQ,QAA5B,EACT,EAAa,aAAe,OAAU,EAAmB,CAClE,EAAoB,EAAqB,EACzC,EAAqB,EAAI,KACzB,EAAc,EAAwB,EACtC,EAAwB,EAAI,EAC5B,EAAc,EACd,GAAoB,EACpB,GAAI,CACF,GAA4B,EAAM,EAAc,EAAM,QAC9C,CACR,EAAoB,EACjB,EAAwB,EAAI,EAC5B,EAAqB,EAAI,GAGhC,GAAuB,EACvB,IAAsB,CACtB,IAAoB,CACpB,IAAkB,EAGtB,SAAS,IAAuB,CAC9B,GAAU,KAAN,EAA4B,CAC9B,GAAuB,EACvB,IAAI,EAAO,GACT,EAAe,GACf,GAA+B,EAAa,MAAQ,QAA5B,EAC1B,GAAW,EAAa,aAAe,OAAU,EAAuB,CACtE,EAAwB,EAAqB,EAC7C,EAAqB,EAAI,KACzB,IAAI,EAAmB,EAAwB,EAC/C,EAAwB,EAAI,EAC5B,IAAI,EAAuB,EAC3B,GAAoB,EACpB,GAAI,CACF,GAA6B,EAAc,EAAK,CAChD,IAAI,EAA4B,GAC9B,EAAiB,GAAqB,EAAK,cAAc,CACzD,EAAmB,EAA0B,YAC7C,EAAsB,EAA0B,eAClD,GACE,IAAmB,GACnB,GACA,EAAiB,eACjB,GACE,EAAiB,cAAc,gBAC/B,EACD,CACD,CACA,GACW,IAAT,MACA,GAAyB,EAAiB,CAC1C,CACA,IAAI,EAAQ,EAAoB,MAC9B,EAAM,EAAoB,IAE5B,GADW,IAAX,IAAK,KAAc,EAAM,GACrB,mBAAoB,EACtB,EAAkB,eAAiB,EAChC,EAAiB,aAAe,KAAK,IACpC,EACA,EAAiB,MAAM,OACxB,KACA,CACH,IAAI,EAAM,EAAiB,eAAiB,SAC1C,EAAO,GAAO,EAAI,aAAgB,OACpC,GAAI,EAAI,aAAc,CACpB,IAAI,EAAY,EAAI,cAAc,CAChC,EAAS,EAAiB,YAAY,OACtC,EAAiB,KAAK,IAAI,EAAoB,MAAO,EAAO,CAC5D,EACa,EAAoB,MAA/B,IAAK,GACD,EACA,KAAK,IAAI,EAAoB,IAAK,EAAO,CACjD,CAAC,EAAU,QACT,EAAiB,IACf,EAAiB,EAClB,EAAe,EACf,EAAiB,GACpB,IAAI,EAAc,GACd,EACA,EACD,CACD,EAAY,GACV,EACA,EACD,CACH,GACE,GACA,IACO,EAAU,aAAhB,GACC,EAAU,aAAe,EAAY,MACrC,EAAU,eAAiB,EAAY,QACvC,EAAU,YAAc,EAAU,MAClC,EAAU,cAAgB,EAAU,QACtC,CACA,IAAI,EAAQ,EAAI,aAAa,CAC7B,EAAM,SAAS,EAAY,KAAM,EAAY,OAAO,CACpD,EAAU,iBAAiB,CAC3B,EAAiB,GACZ,EAAU,SAAS,EAAM,CAC1B,EAAU,OAAO,EAAU,KAAM,EAAU,OAAO,GACjD,EAAM,OAAO,EAAU,KAAM,EAAU,OAAO,CAC/C,EAAU,SAAS,EAAM,KAMrC,IADA,EAAM,EAAE,CAEN,EAAY,EACX,EAAY,EAAU,YAGjB,EAAU,WAAhB,GACE,EAAI,KAAK,CACP,QAAS,EACT,KAAM,EAAU,WAChB,IAAK,EAAU,UAChB,CAAC,CAGN,IAFe,OAAO,EAAiB,OAAvC,YACE,EAAiB,OAAO,CAExB,EAAmB,EACnB,EAAmB,EAAI,OACvB,IACA,CACA,IAAI,EAAO,EAAI,GACf,EAAK,QAAQ,WAAa,EAAK,KAC/B,EAAK,QAAQ,UAAY,EAAK,KAGlC,GAAW,CAAC,CAAC,GACb,GAAuB,GAAgB,YAC/B,CACR,EAAoB,EACjB,EAAwB,EAAI,EAC5B,EAAqB,EAAI,GAGhC,EAAK,QAAU,EACf,GAAuB,GAG3B,SAAS,IAAqB,CAC5B,GAAU,KAAN,EAA4B,CAC9B,GAAuB,EACvB,IAAI,EAAO,GACT,EAAe,GACf,GAA6B,EAAa,MAAQ,OAA5B,EACxB,GAAW,EAAa,aAAe,MAAS,EAAqB,CACnE,EAAsB,EAAqB,EAC3C,EAAqB,EAAI,KACzB,IAAI,EAAmB,EAAwB,EAC/C,EAAwB,EAAI,EAC5B,IAAI,EAAuB,EAC3B,GAAoB,EACpB,GAAI,CACF,GAA0B,EAAM,EAAa,UAAW,EAAa,QAC7D,CACR,EAAoB,EACjB,EAAwB,EAAI,EAC5B,EAAqB,EAAI,GAGhC,GAAuB,GAG3B,SAAS,IAAmB,CAC1B,GAAU,KAAN,GAAoC,KAAN,EAA4B,CAC5D,GAAuB,EACvB,IAAc,CACd,IAAI,EAAO,GACT,EAAe,GACf,EAAQ,GACR,EAAoB,GACf,EAAa,aAAe,OAC5B,EAAa,MAAQ,MACvB,GAAuB,GACtB,GAAuB,EACxB,GAAsB,GAAqB,KAC5C,GAAuB,EAAM,EAAK,aAAa,EACnD,IAAI,EAAiB,EAAK,aAI1B,GAHM,IAAN,IAAyB,GAAyC,MAClE,GAAqB,EAAM,CAC3B,EAAe,EAAa,UACxB,GAA+B,OAAO,EAAa,mBAAnC,WAClB,GAAI,CACF,EAAa,kBACX,GACA,EACA,IAAK,IACI,EAAa,QAAQ,MAAQ,MAAtC,IACD,MACW,EAChB,GAAa,IAAT,KAA4B,CAC9B,EAAe,EAAqB,EACpC,EAAiB,EAAwB,EACzC,EAAwB,EAAI,EAC5B,EAAqB,EAAI,KACzB,GAAI,CACF,IACE,IAAI,EAAqB,EAAK,mBAAoB,EAAI,EACtD,EAAI,EAAkB,OACtB,IACA,CACA,IAAI,EAAmB,EAAkB,GACzC,EAAmB,EAAiB,MAAO,CACzC,eAAgB,EAAiB,MAClC,CAAC,SAEI,CACR,EAAsB,EAAI,EACvB,EAAwB,EAAI,GAG5B,GAAsB,GAAM,IAAqB,CACxD,GAAsB,EAAK,CAC3B,EAAiB,EAAK,aACf,EAAQ,QAAkB,EAAiB,GAC9C,IAAS,GACP,MACE,GAAoB,EAAK,GAAwB,GACpD,GAAoB,EACzB,GAA8B,EAAG,CAAC,EAAE,EAGxC,SAAS,GAAuB,EAAM,EAAgB,EAC7C,EAAK,kBAAoB,KAAhC,IACI,EAAiB,EAAK,YAChB,GAAR,OACI,EAAK,YAAc,KAAO,GAAa,EAAe,GAE9D,SAAS,IAAsB,CAI7B,OAHA,IAAsB,CACtB,IAAoB,CACpB,IAAkB,CACX,IAAqB,CAE9B,SAAS,IAAsB,CAC7B,GAAU,KAAN,EAA4B,MAAO,CAAC,EACxC,IAAI,EAAO,GACT,EAAiB,GACnB,GAA+B,EAC/B,IAAI,EAAiB,GAAqB,GAAoB,CAC5D,EAAiB,EAAqB,EACtC,EAAmB,EAAwB,EAC7C,GAAI,CACF,EAAwB,EAAI,GAAK,EAAiB,GAAK,EACvD,EAAqB,EAAI,KACzB,EAAiB,GACjB,GAA4B,KAC5B,IAAI,EAAgB,GAClB,EAAQ,GAIV,GAHA,GAAuB,EACvB,GAAsB,GAAqB,KAC3C,GAAsB,EACX,EAAmB,EAAI,MAAM,MAAM,EAAuB,IAAI,CAAC,CAC1E,IAAI,EAAuB,EAW3B,GAVA,GAAoB,EACpB,GAA4B,EAAc,QAAQ,CAClD,GACE,EACA,EAAc,QACd,EACA,EACD,CACD,EAAmB,EACnB,GAA8B,EAAG,CAAC,EAAE,CAElC,GACe,OAAO,EAAa,uBAAnC,WAEA,GAAI,CACF,EAAa,sBAAsB,GAAY,EAAc,MACjD,EAChB,MAAO,CAAC,SACA,CACR,EAAyB,EAAI,EAC1B,EAAqB,EAAI,EAC1B,GAAuB,EAAM,EAAe,EAGlD,SAAS,GAA8B,EAAW,EAAa,EAAO,CACpE,EAAc,GAA2B,EAAO,EAAY,CAC5D,EAAc,EAAsB,EAAU,UAAW,EAAa,EAAE,CACxE,EAAY,GAAc,EAAW,EAAa,EAAE,CAC3C,IAAT,OACG,GAAkB,EAAW,EAAE,CAAE,GAAsB,EAAU,EAEtE,SAAS,EAAwB,EAAa,EAAwB,EAAO,CAC3E,GAAU,EAAY,MAAlB,EACF,GAA8B,EAAa,EAAa,EAAM,MAE9D,KAAgB,IAAT,MAAmC,CACxC,GAAU,EAAuB,MAA7B,EAAkC,CACpC,GACE,EACA,EACA,EACD,CACD,WACK,GAAU,EAAuB,MAA7B,EAAkC,CAC3C,IAAI,EAAW,EAAuB,UACtC,GAEI,OAAO,EAAuB,KAAK,0BADrC,YAEgB,OAAO,EAAS,mBAA/B,aACW,KAAT,MACC,CAAC,GAAuC,IAAI,EAAS,EACzD,CACA,EAAc,GAA2B,EAAO,EAAY,CAC5D,EAAQ,GAAuB,EAAE,CACjC,EAAW,GAAc,EAAwB,EAAO,EAAE,CACjD,IAAT,OACG,GACC,EACA,EACA,EACA,EACD,CACD,GAAkB,EAAU,EAAE,CAC9B,GAAsB,EAAS,EACjC,OAGJ,EAAyB,EAAuB,QAGtD,SAAS,GAAmB,EAAM,EAAU,EAAO,CACjD,IAAI,EAAY,EAAK,UACrB,GAAa,IAAT,KAAoB,CACtB,EAAY,EAAK,UAAY,IAAI,GACjC,IAAI,EAAY,IAAI,IACpB,EAAU,IAAI,EAAU,EAAU,MAElC,EAAa,EAAU,IAAI,EAAS,CACvB,IAAX,IAAK,KACD,EAAY,IAAI,IAAQ,EAAU,IAAI,EAAU,EAAU,EAClE,EAAU,IAAI,EAAM,GAChB,EAA0C,CAAC,EAC7C,EAAU,IAAI,EAAM,CACnB,EAAO,GAAkB,KAAK,KAAM,EAAM,EAAU,EAAM,CAC3D,EAAS,KAAK,EAAM,EAAK,EAE7B,SAAS,GAAkB,EAAM,EAAU,EAAa,CACtD,IAAI,EAAY,EAAK,UACZ,IAAT,MAAsB,EAAU,OAAO,EAAS,CAChD,EAAK,aAAe,EAAK,eAAiB,EAC1C,EAAK,WAAa,CAAC,EACnB,IAAuB,IACpB,EAAgC,KAAiB,IAC3C,KAAN,GACM,KAAN,IACE,EAAgC,YAC/B,GACF,IAAM,IAAK,CAAG,GACZ,EAAO,EAAmB,IAAM,GAAkB,EAAM,EAAE,CACzD,IAAiC,EACtC,KAAsC,IACnC,GAAoC,IACzC,GAAsB,EAAK,CAE7B,SAAS,GAAsB,EAAe,EAAW,CACjD,IAAN,IAAoB,EAAY,IAAoB,EACpD,EAAgB,GAA+B,EAAe,EAAU,CAC/D,IAAT,OACG,GAAkB,EAAe,EAAU,CAC5C,GAAsB,EAAc,EAExC,SAAS,GAAgC,EAAe,CACtD,IAAI,EAAgB,EAAc,cAChC,EAAY,EACL,IAAT,OAA2B,EAAY,EAAc,WACrD,GAAsB,EAAe,EAAU,CAEjD,SAAS,GAAqB,EAAe,EAAU,CACrD,IAAI,EAAY,EAChB,OAAQ,EAAc,IAAtB,CACE,IAAK,IACL,IAAK,IACH,IAAI,EAAa,EAAc,UAC3B,EAAgB,EAAc,cACzB,IAAT,OAA2B,EAAY,EAAc,WACrD,MACF,IAAK,IACH,EAAa,EAAc,UAC3B,MACF,IAAK,IACH,EAAa,EAAc,UAAU,YACrC,MACF,QACE,MAAM,MAAM,EAAuB,IAAI,CAAC,CAEnC,IAAT,MAAuB,EAAW,OAAO,EAAS,CAClD,GAAsB,EAAe,EAAU,CAEjD,SAAS,GAAmB,EAAe,EAAU,CACnD,OAAO,GAAmB,EAAe,EAAS,CAEpD,IAAI,GAAqB,KACvB,GAAoB,KACpB,GAAuB,CAAC,EACxB,GAA2B,CAAC,EAC5B,GAAiB,CAAC,EAClB,GAA6B,EAC/B,SAAS,GAAsB,EAAM,CACnC,IAAS,IACE,EAAK,OAAd,OACU,KAAT,KACI,GAAqB,GAAoB,EACzC,GAAoB,GAAkB,KAAO,GACpD,GAA2B,CAAC,EAC5B,KACI,GAAuB,CAAC,EAAI,IAAmC,EAErE,SAAS,GAA8B,EAAqB,EAAY,CACtE,GAAI,CAAC,IAAkB,GAA0B,CAC/C,GAAiB,CAAC,EAClB,GAEE,IAAK,IADD,EAAqB,CAAC,EACjB,EAAW,GAA6B,IAAT,MAAqB,CAC3D,GAAI,CAAC,EACH,GAAU,IAAN,EAA2B,CAC7B,IAAI,EAAe,EAAS,aAC5B,GAAU,IAAN,EAAoB,IAAI,EAA2B,MAClD,CACH,IAAI,EAAiB,EAAS,eAC5B,EAAc,EAAS,YACzB,GACG,GAAM,GAAK,GAAM,GAAK,EAAoB,CAAG,GAAM,EACtD,GACE,EAAe,EAAE,EAAiB,CAAC,GACrC,EACE,EAA2B,UACtB,EAA2B,UAAa,EACzC,EACE,EAA2B,EAC3B,EAEJ,IAAN,IACI,EAAqB,CAAC,EACxB,GAAsB,EAAU,EAAyB,OAE3D,EAA4B,EACzB,EAA2B,GAC1B,EACA,IAAa,EAAqB,EAA2B,EACpD,EAAS,sBAAlB,MACS,EAAS,gBAAhB,GACH,CACD,EAAO,EAA2B,IAChC,GAA0B,EAAU,EAAyB,GAC3D,EAAqB,CAAC,EACxB,GAAsB,EAAU,EAAyB,EACjE,EAAW,EAAS,WAEf,GACT,GAAiB,CAAC,GAGtB,SAAS,IAAqC,CAC5C,IAAgC,CAElC,SAAS,IAAiC,CACxC,GAA2B,GAAuB,CAAC,EACnD,IAAI,EAAsB,EACpB,KAAN,GACE,IAA8B,GAC7B,EAAsB,IACzB,IACE,IAAI,EAAc,IAAK,CAAE,EAAO,KAAM,EAAO,GACpC,IAAT,MAEA,CACA,IAAI,EAAO,EAAK,KACd,EAAY,GAAmC,EAAM,EAAY,CACzD,IAAN,GACF,EAAM,KAAO,KACF,IAAT,KAAiB,GAAqB,EAAS,EAAK,KAAO,EAClD,IAAT,OAAkB,GAAoB,KAEtC,EAAO,GAAa,IAAN,GAAoC,EAAY,KAEhE,GAA2B,CAAC,IAC9B,EAAO,EAEF,KAAP,GAAqC,KAAN,GAC7B,GAA8B,EAAqB,CAAC,EAAE,CAClD,KAAN,IAAqC,GAA6B,GAEpE,SAAS,GAAmC,EAAM,EAAa,CAC7D,IACE,IAAI,EAAiB,EAAK,eACxB,EAAc,EAAK,YACnB,EAAkB,EAAK,gBACvB,EAAQ,EAAK,aAAe,UAC9B,EAAI,GAEJ,CACA,IAAI,EAAU,GAAK,GAAM,EAAM,CAC7B,EAAO,GAAK,EACZ,EAAiB,EAAgB,GACxB,IAAP,KACS,EAAO,KAAd,IAAwC,EAAO,KAAd,KACnC,EAAgB,GAAW,GAAsB,EAAM,EAAY,EAChE,GAAkB,IAAgB,EAAK,cAAgB,GAC9D,GAAS,CAAC,EAUZ,GARA,EAAc,EACd,EAAiB,EACjB,EAAiB,GACf,EACA,IAAS,EAAc,EAAiB,EAC/B,EAAK,sBAAd,MAA4C,EAAK,gBAAZ,GACtC,CACD,EAAc,EAAK,aAEX,IAAN,GACC,IAAS,IACD,IAAN,GACO,IAAN,IACK,EAAK,sBAAd,KAEA,OACW,IAAT,MACW,IAAT,MACA,GAAiB,EAAY,CAC9B,EAAK,aAAe,KACpB,EAAK,iBAAmB,EAE7B,GACE,EAAO,EAAiB,IACxB,GAA0B,EAAM,EAAe,CAC/C,CAEA,GADA,EAAc,EAAiB,CAAC,EAC5B,IAAgB,EAAK,iBAAkB,OAAO,EAElD,OADS,IAAT,MAAwB,GAAiB,EAAY,CAC7C,GAAqB,EAAe,CAA5C,CACE,IAAK,GACL,IAAK,GACH,EAAiB,GACjB,MACF,IAAK,IACH,EAAiB,GACjB,MACF,IAAK,WACH,EAAiB,GACjB,MACF,QACE,EAAiB,GAMrB,MAJA,GAAc,GAAkC,KAAK,KAAM,EAAK,CAChE,EAAiB,GAAmB,EAAgB,EAAY,CAChE,EAAK,iBAAmB,EACxB,EAAK,aAAe,EACb,EAKT,OAHS,IAAT,MAAiC,IAAT,MAAwB,GAAiB,EAAY,CAC7E,EAAK,iBAAmB,EACxB,EAAK,aAAe,KACb,EAET,SAAS,GAAkC,EAAM,EAAY,CAC3D,GAAU,KAAN,GAAoC,KAAN,EAChC,MAAQ,GAAK,aAAe,KAAQ,EAAK,iBAAmB,EAAI,KAClE,IAAI,EAAuB,EAAK,aAChC,GAAI,IAAqB,EAAI,EAAK,eAAiB,EACjD,OAAO,KACT,IAAI,EAAyC,EAS7C,MARA,GAAyC,GACvC,EACA,IAAS,EAAqB,EAAyC,EAC9D,EAAK,sBAAd,MAA4C,EAAK,gBAAZ,GACtC,CACS,IAAN,EAAqD,MACzD,GAAkB,EAAM,EAAwC,EAAW,CAC3E,GAAmC,EAAM,IAAK,CAAC,CAChC,EAAK,cAAb,MAA6B,EAAK,eAAiB,EACtD,GAAkC,KAAK,KAAM,EAAK,CAClD,MAEN,SAAS,GAAsB,EAAM,EAAO,CAC1C,GAAI,IAAqB,CAAE,OAAO,KAClC,GAAkB,EAAM,EAAO,CAAC,EAAE,CAEpC,SAAS,IAAoC,CAC3C,GAAkB,UAAY,CACrB,EAAmB,EACtB,GACE,GACA,GACD,CACD,IAAgC,EACpC,CAEJ,SAAS,IAAwB,CAC/B,GAAU,KAAN,EAAkC,CACpC,IAAI,EAAkB,GAChB,IAAN,IACI,EAAkB,GACnB,KAA6B,EAC9B,EAAO,GAA2B,UAC/B,GAA2B,MAChC,GAA6B,EAE/B,OAAO,GAET,SAAS,GAAqB,EAAY,CACxC,OAAe,GAAR,MACQ,OAAO,GAApB,UACc,OAAO,GAArB,UACE,KACe,OAAO,GAAtB,WACE,EACA,GAAY,GAAK,EAAW,CAEpC,SAAS,GAA4B,EAAM,EAAW,CACpD,IAAI,EAAO,EAAU,cAAc,cAAc,QAAQ,CAOzD,MANA,GAAK,KAAO,EAAU,KACtB,EAAK,MAAQ,EAAU,MACvB,EAAK,IAAM,EAAK,aAAa,OAAQ,EAAK,GAAG,CAC7C,EAAU,WAAW,aAAa,EAAM,EAAU,CAClD,EAAO,IAAI,SAAS,EAAK,CACzB,EAAK,WAAW,YAAY,EAAK,CAC1B,EAET,SAAS,GACP,EACA,EACA,EACA,EACA,EACA,CACA,GACe,IAAb,UACA,GACA,EAAgB,YAAc,EAC9B,CACA,IAAI,EAAS,IACR,EAAkB,KAAqB,MAAM,OAC/C,CACD,EAAY,EAAY,UAC1B,IACI,GAAgB,EAAe,EAAU,KAAqB,MAC5D,GAAqB,EAAa,WAAW,CAC7C,EAAU,aAAa,aAAa,CAC/B,IAAT,OAA2B,EAAS,EAAgB,EAAY,OAClE,IAAI,EAAQ,IAAI,GACd,SACA,SACA,KACA,EACA,EACD,CACD,EAAc,KAAK,CACV,QACP,UAAW,CACT,CACE,SAAU,KACV,SAAU,UAAY,CACpB,GAAI,EAAY,qBACJ,KAAN,EAAkC,CACpC,IAAI,EAAW,EACX,GAA4B,EAAmB,EAAU,CACzD,IAAI,SAAS,EAAkB,CACnC,GACE,EACA,CACE,QAAS,CAAC,EACV,KAAM,EACN,OAAQ,EAAkB,OAClB,SACT,CACD,KACA,EACD,OAGY,OAAO,GAAtB,aACG,EAAM,gBAAgB,CACtB,EAAW,EACR,GAA4B,EAAmB,EAAU,CACzD,IAAI,SAAS,EAAkB,CACnC,GACE,EACA,CACE,QAAS,CAAC,EACV,KAAM,EACN,OAAQ,EAAkB,OAClB,SACT,CACD,EACA,EACD,GAEP,cAAe,EAChB,CACF,CACF,CAAC,EAGN,IACE,IAAI,GAAuB,EAC3B,GAAuB,GAAwB,OAC/C,KACA,CACA,IAAI,GACA,GAAwB,IAM5B,GAJI,GAA6B,aAKA,CAC/B,MAJE,GAA6B,GAAG,aAAa,CAC7C,GAA6B,MAAM,EAAE,EAIxC,CAEH,GAAoB,GAAe,iBAAiB,CACpD,GAAoB,GAAqB,uBAAuB,CAChE,GAAoB,GAAiB,mBAAmB,CACxD,GAAoB,WAAY,gBAAgB,CAChD,GAAoB,UAAW,UAAU,CACzC,GAAoB,WAAY,SAAS,CACzC,GAAoB,GAAgB,kBAAkB,CACtD,GAAoB,GAAkB,oBAAoB,CAC1D,GAAoB,GAAmB,qBAAqB,CAC5D,GAAoB,GAAgB,kBAAkB,CACtD,GAAoB,eAAgB,CAAC,WAAY,YAAY,CAAC,CAC9D,GAAoB,eAAgB,CAAC,WAAY,YAAY,CAAC,CAC9D,GAAoB,iBAAkB,CAAC,aAAc,cAAc,CAAC,CACpE,GAAoB,iBAAkB,CAAC,aAAc,cAAc,CAAC,CACpE,GACE,WACA,oEAAoE,MAAM,IAAI,CAC/E,CACD,GACE,WACA,uFAAuF,MACrF,IACD,CACF,CACD,GAAsB,gBAAiB,CACrC,iBACA,WACA,YACA,QACD,CAAC,CACF,GACE,mBACA,2DAA2D,MAAM,IAAI,CACtE,CACD,GACE,qBACA,6DAA6D,MAAM,IAAI,CACxE,CACD,GACE,sBACA,8DAA8D,MAAM,IAAI,CACzE,CACD,IAAI,GACA,6NAA6N,MAC3N,IACD,CACH,GAAqB,IAAI,IACvB,iEACG,MAAM,IAAI,CACV,OAAO,GAAgB,CAC3B,CACH,SAAS,GAAqB,EAAe,EAAkB,CAC7D,GAA0B,EAAmB,IAA1B,EACnB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAc,OAAQ,IAAK,CAC7C,IAAI,EAAmB,EAAc,GACnC,EAAQ,EAAiB,MAC3B,EAAmB,EAAiB,UACpC,EAAG,CACD,IAAI,EAAmB,IAAK,GAC5B,GAAI,EACF,IACE,IAAI,EAAa,EAAiB,OAAS,EAC3C,GAAK,EACL,IACA,CACA,IAAI,EAAuB,EAAiB,GAC1C,EAAW,EAAqB,SAChC,EAAgB,EAAqB,cAEvC,GADA,EAAuB,EAAqB,SACxC,IAAa,GAAoB,EAAM,sBAAsB,CAC/D,MAAM,EACR,EAAmB,EACnB,EAAM,cAAgB,EACtB,GAAI,CACF,EAAiB,EAAM,OAChB,EAAO,CACd,GAAkB,EAAM,CAE1B,EAAM,cAAgB,KACtB,EAAmB,OAGrB,IACE,EAAa,EACb,EAAa,EAAiB,OAC9B,IACA,CAKA,GAJA,EAAuB,EAAiB,GACxC,EAAW,EAAqB,SAChC,EAAgB,EAAqB,cACrC,EAAuB,EAAqB,SACxC,IAAa,GAAoB,EAAM,sBAAsB,CAC/D,MAAM,EACR,EAAmB,EACnB,EAAM,cAAgB,EACtB,GAAI,CACF,EAAiB,EAAM,OAChB,EAAO,CACd,GAAkB,EAAM,CAE1B,EAAM,cAAgB,KACtB,EAAmB,KAK7B,SAAS,EAA0B,EAAc,EAAe,CAC9D,IAAI,EAA2B,EAAc,IAClC,IAAX,IAAK,KACF,EAA2B,EAAc,IACxC,IAAI,KACR,IAAI,EAAiB,EAAe,WACpC,EAAyB,IAAI,EAAe,GACzC,GAAwB,EAAe,EAAc,EAAG,CAAC,EAAE,CAC5D,EAAyB,IAAI,EAAe,EAEhD,SAAS,GAAoB,EAAc,EAAwB,EAAQ,CACzE,IAAI,EAAmB,EACvB,IAA2B,GAAoB,GAC/C,GACE,EACA,EACA,EACA,EACD,CAEH,IAAI,GAAkB,kBAAoB,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,CAC7E,SAAS,GAA2B,EAAsB,CACxD,GAAI,CAAC,EAAqB,IAAkB,CAC1C,EAAqB,IAAmB,CAAC,EACzC,GAAgB,QAAQ,SAAU,EAAc,CACxB,IAAtB,oBACG,GAAmB,IAAI,EAAa,EACnC,GAAoB,EAAc,CAAC,EAAG,EAAqB,CAC7D,GAAoB,EAAc,CAAC,EAAG,EAAqB,GAC7D,CACF,IAAI,EACI,EAAqB,WAA3B,EACI,EACA,EAAqB,cAClB,IAAT,MACE,EAAc,MACZ,EAAc,IAAmB,CAAC,EACpC,GAAoB,kBAAmB,CAAC,EAAG,EAAc,GAG/D,SAAS,GACP,EACA,EACA,EACA,EACA,CACA,OAAQ,GAAiB,EAAa,CAAtC,CACE,IAAK,GACH,IAAI,EAAkB,GACtB,MACF,IAAK,GACH,EAAkB,GAClB,MACF,QACE,EAAkB,GAEtB,EAAmB,EAAgB,KACjC,KACA,EACA,EACA,EACD,CACD,EAAkB,IAAK,GACvB,CAAC,IACmB,IAAjB,cACiB,IAAhB,aACY,IAAZ,UACD,EAAkB,CAAC,GACtB,EACe,IAAX,IAAK,GAKH,EAAgB,iBAAiB,EAAc,EAAkB,CAAC,EAAE,CAJpE,EAAgB,iBAAiB,EAAc,EAAkB,CAC/D,QAAS,CAAC,EACV,QAAS,EACV,CAAC,CAEO,IAAX,IAAK,GAIH,EAAgB,iBAAiB,EAAc,EAAkB,CAAC,EAAE,CAHpE,EAAgB,iBAAiB,EAAc,EAAkB,CAC/D,QAAS,EACV,CAAC,CAGV,SAAS,GACP,EACA,EACA,EACA,EACA,EACA,CACA,IAAI,EAAe,EACnB,GACE,EAAO,EAAmB,IAC1B,EAAO,EAAmB,IACjB,IAAT,KAEA,EAAG,OAAS,CACV,GAAa,IAAT,KAA8B,OAClC,IAAI,EAAU,EAAoB,IAClC,GAAU,IAAN,GAAuB,IAAN,EAAe,CAClC,IAAI,EAAY,EAAoB,UAAU,cAC9C,GAAI,IAAc,EAAiB,MACnC,GAAU,IAAN,EACF,IAAK,EAAU,EAAoB,OAAiB,IAAT,MAAoB,CAC7D,IAAI,EAAW,EAAQ,IACvB,IACS,IAAN,GAAwB,IAAN,IACnB,EAAQ,UAAU,gBAAkB,EAEpC,OACF,EAAU,EAAQ,OAEtB,KAAgB,IAAT,MAAsB,CAE3B,GADA,EAAU,GAA2B,EAAU,CAClC,IAAT,KAAkB,OAEtB,GADA,EAAW,EAAQ,IAEX,IAAN,GACM,IAAN,GACO,IAAP,IACO,IAAP,GACA,CACA,EAAsB,EAAe,EACrC,SAAS,EAEX,EAAY,EAAU,YAG1B,EAAsB,EAAoB,OAE9C,GAAiB,UAAY,CAC3B,IAAI,EAAa,EACf,EAAoB,GAAe,EAAY,CAC/C,EAAgB,EAAE,CACpB,EAAG,CACD,IAAI,EAAY,GAA2B,IAAI,EAAa,CAC5D,GAAe,IAAX,IAAK,GAAiB,CACxB,IAAI,EAAqB,GACvB,EAAiB,EACnB,OAAQ,EAAR,CACE,IAAK,WACH,GAAU,EAAiB,EAAY,GAAnC,EAAqC,MAAM,EACjD,IAAK,UACL,IAAK,QACH,EAAqB,GACrB,MACF,IAAK,UACH,EAAiB,QACjB,EAAqB,GACrB,MACF,IAAK,WACH,EAAiB,OACjB,EAAqB,GACrB,MACF,IAAK,aACL,IAAK,YACH,EAAqB,GACrB,MACF,IAAK,QACH,GAAU,EAAY,SAAlB,EAA0B,MAAM,EACtC,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,cACH,EAAqB,GACrB,MACF,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,OACH,EAAqB,GACrB,MACF,IAAK,cACL,IAAK,WACL,IAAK,YACL,IAAK,aACH,EAAqB,GACrB,MACF,KAAK,GACL,KAAK,GACL,KAAK,GACH,EAAqB,GACrB,MACF,KAAK,GACH,EAAqB,GACrB,MACF,IAAK,SACL,IAAK,YACH,EAAqB,EACrB,MACF,IAAK,QACH,EAAqB,GACrB,MACF,IAAK,OACL,IAAK,MACL,IAAK,QACH,EAAqB,GACrB,MACF,IAAK,oBACL,IAAK,qBACL,IAAK,gBACL,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,YACH,EAAqB,GACrB,MACF,IAAK,SACL,IAAK,eACH,EAAqB,GAEzB,IAAI,GAAwB,EAAmB,IAA1B,EACnB,EACE,CAAC,IACa,IAAb,UAA6C,IAAhB,aAChC,EAAiB,EACJ,IAAT,KAEE,KADA,EAAY,UAEd,EACN,EAAiB,EAAE,CACnB,IACE,IAAI,EAAW,EAAY,EAClB,IAAT,MAEA,CACA,IAAI,EAAY,EAWhB,GAVA,EAAoB,EAAU,UAC9B,EAAY,EAAU,IACf,IAAP,GAA2B,IAAP,IAA2B,IAAP,IAC7B,IAAT,MACS,IAAT,OACE,EAAY,GAAY,EAAU,EAAe,CAC3C,GAAR,MACE,EAAe,KACb,GAAuB,EAAU,EAAW,EAAkB,CAC/D,EACD,EAAsB,MAC1B,EAAW,EAAS,OAEtB,EAAI,EAAe,SACf,EAAY,IAAI,EAChB,EACA,EACA,KACA,EACA,EACD,CACD,EAAc,KAAK,CAAE,MAAO,EAAW,UAAW,EAAgB,CAAC,GAGzE,GAAI,EAAO,EAAmB,GAAI,CAChC,EAAG,CAKD,GAJA,EACkB,IAAhB,aAAkD,IAAlB,cAClC,EACiB,IAAf,YAAgD,IAAjB,aAE/B,GACA,IAAgB,KACf,EACC,EAAY,eAAiB,EAAY,eAC1C,GAA2B,EAAe,EACzC,EAAe,KAEjB,MAAM,EACR,IAAI,GAAsB,KACxB,EACE,EAAkB,SAAW,EACzB,GACC,EAAY,EAAkB,eAC7B,EAAU,aAAe,EAAU,aACnC,OACJ,GAEE,EACA,EAAY,eAAiB,EAAY,UAC1C,EAAqB,EACrB,EAAiB,EACd,GAA2B,EAAe,CAC1C,KACK,IAAT,OACI,EACA,EAAuB,EAAe,CACvC,EAAiB,EAAe,IACjC,IAAmB,GACV,IAAN,GACQ,IAAP,IACM,IAAN,KAEN,EAAiB,QACd,EAAsB,KAAQ,EAAiB,GAClD,IAAuB,GAAgB,CAwCzC,GAvCA,EAAiB,GACjB,EAAY,eACZ,EAAiB,eACjB,EAAW,SACU,IAAjB,cAAmD,IAAlB,iBACnC,EAAkB,GACf,EAAY,iBACZ,EAAiB,iBACjB,EAAW,WAChB,EACU,GAAR,KACI,EACA,GAAoB,EAAmB,CAC7C,EACU,GAAR,KACI,EACA,GAAoB,EAAe,CACzC,EAAY,IAAI,EACd,EACA,EAAW,QACX,EACA,EACA,EACD,CACD,EAAU,OAAS,EACnB,EAAU,cAAgB,EAC1B,EAAY,KACZ,GAA2B,EAAkB,GAAK,IAC9C,EAAiB,IAAI,EACrB,EACA,EAAW,QACX,EACA,EACA,EACD,CACA,EAAe,OAAS,EACxB,EAAe,cAAgB,EAC/B,EAAY,GACf,EAAuB,EACnB,GAAsB,EACxB,EAAG,CAKD,IAJA,EAAiB,GACjB,EAAiB,EACjB,EAAW,EACX,EAAoB,EAElB,EAAY,EACZ,EACA,EAAY,EAAe,EAAU,CAErC,IACF,EAAY,EACZ,IAAK,IAAI,EAAQ,EAAU,EAAO,EAAQ,EAAe,EAAM,CAC7D,IACF,KAAO,EAAI,EAAoB,GAC7B,EAAkB,EAAe,EAAe,CAC9C,IACJ,KAAO,EAAI,EAAY,GACrB,EAAY,EAAe,EAAS,CAAG,IACzC,KAAO,KAAuB,CAC5B,GACE,IAAmB,GACT,IAAT,MAAqB,IAAmB,EAAS,UAClD,CACA,EAAiB,EACjB,MAAM,EAER,EAAiB,EAAe,EAAe,CAC/C,EAAW,EAAe,EAAS,CAErC,EAAiB,UAEhB,EAAiB,KACb,IAAT,MACE,GACE,EACA,EACA,EACA,EACA,CAAC,EACF,CACM,IAAT,MACW,IAAT,MACA,GACE,EACA,EACA,EACA,EACA,CAAC,EACF,EAIT,EAAG,CAID,GAHA,EAAY,EAAa,GAAoB,EAAW,CAAG,OAC3D,EACE,EAAU,UAAY,EAAU,SAAS,aAAa,CAEzC,IAAb,UACa,IAAZ,SAA6C,EAAU,OAArB,OAEnC,IAAI,EAAoB,QACrB,GAAI,GAAmB,EAAU,CACpC,GAAI,GACF,EAAoB,OACjB,CACH,EAAoB,GACpB,IAAI,EAAkB,QAGxB,EAAsB,EAAU,SAC9B,CAAC,GACW,EAAmB,aAAa,GAA5C,SACgB,EAAU,OAAzB,YAA6C,EAAU,OAAtB,QAC9B,GACA,GAAgB,EAAW,YAAY,GACtC,EAAoB,IACpB,EAAoB,GAC7B,GACE,CACC,GAAoB,EAAkB,EAAc,EAAW,CAChE,CACA,GACE,EACA,EACA,EACA,EACD,CACD,MAAM,EAER,GAAmB,EAAgB,EAAc,EAAW,EAAW,CACxD,IAAf,YACE,GACa,EAAU,OAAvB,UACQ,EAAW,cAAc,OAAjC,MACA,GAAgB,EAAW,SAAU,EAAU,MAAM,CAGzD,OADA,EAAkB,EAAa,GAAoB,EAAW,CAAG,OACzD,EAAR,CACE,IAAK,WAED,GAAmB,EAAgB,EACxB,EAAgB,kBAA3B,UAEA,GAAiB,EACd,GAAoB,EACpB,GAAgB,MACrB,MACF,IAAK,WACH,GAAgB,GAAoB,GAAgB,KACpD,MACF,IAAK,YACH,GAAY,CAAC,EACb,MACF,IAAK,cACL,IAAK,UACL,IAAK,UACH,GAAY,CAAC,EACb,GAAqB,EAAe,EAAa,EAAkB,CACnE,MACF,IAAK,kBACH,GAAI,GAA0B,MAChC,IAAK,UACL,IAAK,QACH,GAAqB,EAAe,EAAa,EAAkB,CAEvE,IAAI,EACJ,GAAI,GACF,EAAG,CACD,OAAQ,EAAR,CACE,IAAK,mBACH,IAAI,EAAY,qBAChB,MAAM,EACR,IAAK,iBACH,EAAY,mBACZ,MAAM,EACR,IAAK,oBACH,EAAY,sBACZ,MAAM,EAEV,EAAY,IAAK,QAGnB,GACI,GAAyB,EAAc,EAAY,GAClD,EAAY,oBACC,IAAd,WACQ,EAAY,UAApB,MACC,EAAY,sBACnB,IACG,IACU,EAAY,SAArB,OACC,IAAwC,IAAzB,qBACW,IAAvB,oBACA,KACC,EAAe,GAAS,GACvB,GAAO,EACR,GAAY,UAAW,GAAO,GAAK,MAAQ,GAAK,YAChD,GAAc,CAAC,IACrB,EAAkB,GAA4B,EAAY,EAAU,CACrE,EAAI,EAAgB,SAChB,EAAY,IAAI,GAChB,EACA,EACA,KACA,EACA,EACD,CACD,EAAc,KAAK,CAAE,MAAO,EAAW,UAAW,EAAiB,CAAC,CACpE,EACK,EAAU,KAAO,GAChB,EAAe,GAAuB,EAAY,CAC3C,IAAT,OAA0B,EAAU,KAAO,OAEhD,EAAe,GACZ,GAA0B,EAAc,EAAY,CACpD,GAA4B,EAAc,EAAY,IAE1D,EAAa,GAA4B,EAAY,gBAAgB,CACnE,EAAI,EAAU,SACV,EAAkB,IAAI,GACtB,gBACA,cACA,KACA,EACA,EACD,CACD,EAAc,KAAK,CACjB,MAAO,EACP,UAAW,EACZ,CAAC,CACD,EAAgB,KAAO,IAC9B,GACE,EACA,EACA,EACA,EACA,EACD,CAEH,GAAqB,EAAe,EAAiB,EACrD,CAEJ,SAAS,GAAuB,EAAU,EAAU,EAAe,CACjE,MAAO,CACK,WACA,WACK,gBAChB,CAEH,SAAS,GAA4B,EAAa,EAAW,CAC3D,IACE,IAAI,EAAc,EAAY,UAAW,EAAY,EAAE,CAC9C,IAAT,MAEA,CACA,IAAI,EAAa,EACf,EAAY,EAAW,UAczB,GAbA,EAAa,EAAW,IACjB,IAAP,GAA4B,IAAP,IAA4B,IAAP,IAC/B,IAAT,OACE,EAAa,GAAY,EAAa,EAAY,CAC5C,GAAR,MACE,EAAU,QACR,GAAuB,EAAa,EAAY,EAAU,CAC3D,CACF,EAAa,GAAY,EAAa,EAAU,CACzC,GAAR,MACE,EAAU,KACR,GAAuB,EAAa,EAAY,EAAU,CAC3D,EACK,EAAY,MAAlB,EAAuB,OAAO,EAClC,EAAc,EAAY,OAE5B,MAAO,EAAE,CAEX,SAAS,GAAU,EAAM,CACvB,GAAa,IAAT,KAAe,OAAO,KAC1B,EAAG,GAAO,EAAK,aACR,GAAc,EAAK,MAAX,GAAyB,EAAK,MAAZ,IACjC,OAAO,GAAc,KAEvB,SAAS,GACP,EACA,EACA,EACA,EACA,EACA,CACA,IACE,IAAI,EAAmB,EAAM,WAAY,EAAY,EAAE,CAC9C,IAAT,MAAmB,IAAW,GAE9B,CACA,IAAI,EAAa,EACf,EAAY,EAAW,UACvB,EAAY,EAAW,UAEzB,GADA,EAAa,EAAW,IACX,IAAT,MAAsB,IAAc,EAAQ,MACzC,IAAP,GAA4B,IAAP,IAA4B,IAAP,IAC/B,IAAT,OACE,EAAY,EACd,GACM,EAAY,GAAY,EAAQ,EAAiB,CAC3C,GAAR,MACE,EAAU,QACR,GAAuB,EAAQ,EAAW,EAAU,CACrD,EACH,IACE,EAAY,GAAY,EAAQ,EAAiB,CAC3C,GAAR,MACE,EAAU,KACR,GAAuB,EAAQ,EAAW,EAAU,CACrD,GACT,EAAS,EAAO,OAEZ,EAAU,SAAhB,GACE,EAAc,KAAK,CAAS,QAAkB,YAAW,CAAC,CAE9D,IAAI,GAA2B,SAC7B,GAAuC,iBACzC,SAAS,GAAkC,EAAQ,CACjD,OAAqB,OAAO,GAApB,SAA6B,EAAS,GAAK,GAChD,QAAQ,GAA0B;EAAK,CACvC,QAAQ,GAAsC,GAAG,CAEtD,SAAS,GAAsB,EAAY,EAAY,CAErD,MADA,GAAa,GAAkC,EAAW,CACnD,GAAkC,EAAW,GAAK,EAE3D,SAAS,EAAQ,EAAY,EAAK,EAAK,EAAO,EAAO,EAAW,CAC9D,OAAQ,EAAR,CACE,IAAK,WACU,OAAO,GAApB,SACe,IAAX,QACgB,IAAf,YAA6B,IAAP,IACvB,GAAe,EAAY,EAAM,EACnB,OAAO,GAApB,UAA0C,OAAO,GAApB,WACnB,IAAX,QACA,GAAe,EAAY,GAAK,EAAM,CAC1C,MACF,IAAK,YACH,GAA0B,EAAY,QAAS,EAAM,CACrD,MACF,IAAK,WACH,GAA0B,EAAY,WAAY,EAAM,CACxD,MACF,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACH,GAA0B,EAAY,EAAK,EAAM,CACjD,MACF,IAAK,QACH,GAAkB,EAAY,EAAO,EAAU,CAC/C,MACF,IAAK,OACH,GAAiB,IAAb,SAAkB,CACpB,GAA0B,EAAY,OAAQ,EAAM,CACpD,MAEJ,IAAK,MACL,IAAK,OACH,GAAW,IAAP,KAAyB,IAAR,KAA0B,IAAX,QAAiB,CACnD,EAAW,gBAAgB,EAAI,CAC/B,MAEF,GACU,GAAR,MACe,OAAO,GAAtB,YACa,OAAO,GAApB,UACc,OAAO,GAArB,UACA,CACA,EAAW,gBAAgB,EAAI,CAC/B,MAEF,EAAQ,GAAY,GAAK,EAAM,CAC/B,EAAW,aAAa,EAAK,EAAM,CACnC,MACF,IAAK,SACL,IAAK,aACH,GAAmB,OAAO,GAAtB,WAA6B,CAC/B,EAAW,aACT,EACA,uRACD,CACD,WAEe,OAAO,GAAtB,aACoB,IAAjB,cACgB,IAAZ,SACC,EAAQ,EAAY,EAAK,OAAQ,EAAM,KAAM,EAAO,KAAK,CAC3D,EACE,EACA,EACA,cACA,EAAM,YACN,EACA,KACD,CACD,EACE,EACA,EACA,aACA,EAAM,WACN,EACA,KACD,CACD,EACE,EACA,EACA,aACA,EAAM,WACN,EACA,KACD,GACA,EAAQ,EAAY,EAAK,UAAW,EAAM,QAAS,EAAO,KAAK,CAChE,EAAQ,EAAY,EAAK,SAAU,EAAM,OAAQ,EAAO,KAAK,CAC7D,EAAQ,EAAY,EAAK,SAAU,EAAM,OAAQ,EAAO,KAAK,GACrE,GACU,GAAR,MACa,OAAO,GAApB,UACc,OAAO,GAArB,UACA,CACA,EAAW,gBAAgB,EAAI,CAC/B,MAEF,EAAQ,GAAY,GAAK,EAAM,CAC/B,EAAW,aAAa,EAAK,EAAM,CACnC,MACF,IAAK,UACK,GAAR,OAAkB,EAAW,QAAU,IACvC,MACF,IAAK,WACK,GAAR,MAAiB,EAA0B,SAAU,EAAW,CAChE,MACF,IAAK,cACK,GAAR,MAAiB,EAA0B,YAAa,EAAW,CACnE,MACF,IAAK,0BACH,GAAY,GAAR,KAAe,CACjB,GAAiB,OAAO,GAApB,UAA6B,EAAE,WAAY,GAC7C,MAAM,MAAM,EAAuB,GAAG,CAAC,CAEzC,GADA,EAAM,EAAM,OACA,GAAR,KAAa,CACf,GAAY,EAAM,UAAd,KAAwB,MAAM,MAAM,EAAuB,GAAG,CAAC,CACnE,EAAW,UAAY,GAG3B,MACF,IAAK,WACH,EAAW,SACT,GAAwB,OAAO,GAAtB,YAA4C,OAAO,GAApB,SAC1C,MACF,IAAK,QACH,EAAW,MACT,GAAwB,OAAO,GAAtB,YAA4C,OAAO,GAApB,SAC1C,MACF,IAAK,iCACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,YACL,IAAK,MACH,MACF,IAAK,YACH,MACF,IAAK,YACH,GACU,GAAR,MACe,OAAO,GAAtB,YACc,OAAO,GAArB,WACa,OAAO,GAApB,SACA,CACA,EAAW,gBAAgB,aAAa,CACxC,MAEF,EAAM,GAAY,GAAK,EAAM,CAC7B,EAAW,eACT,+BACA,aACA,EACD,CACD,MACF,IAAK,kBACL,IAAK,aACL,IAAK,YACL,IAAK,QACL,IAAK,cACL,IAAK,4BACL,IAAK,YACL,IAAK,gBACK,GAAR,MAAgC,OAAO,GAAtB,YAA4C,OAAO,GAApB,SAC5C,EAAW,aAAa,EAAK,GAAK,EAAM,CACxC,EAAW,gBAAgB,EAAI,CACnC,MACF,IAAK,QACL,IAAK,kBACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,0BACL,IAAK,wBACL,IAAK,iBACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,aACL,IAAK,OACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,YACH,GAAwB,OAAO,GAAtB,YAA4C,OAAO,GAApB,SACpC,EAAW,aAAa,EAAK,GAAG,CAChC,EAAW,gBAAgB,EAAI,CACnC,MACF,IAAK,UACL,IAAK,WACH,CAAC,IAAM,EACH,EAAW,aAAa,EAAK,GAAG,CAChC,CAAC,IAAM,GACG,GAAR,MACe,OAAO,GAAtB,YACa,OAAO,GAApB,SACA,EAAW,aAAa,EAAK,EAAM,CACnC,EAAW,gBAAgB,EAAI,CACrC,MACF,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,OACK,GAAR,MACe,OAAO,GAAtB,YACa,OAAO,GAApB,UACA,CAAC,MAAM,EAAM,EACb,GAAK,EACD,EAAW,aAAa,EAAK,EAAM,CACnC,EAAW,gBAAgB,EAAI,CACnC,MACF,IAAK,UACL,IAAK,QACK,GAAR,MACe,OAAO,GAAtB,YACa,OAAO,GAApB,UACA,MAAM,EAAM,CACR,EAAW,gBAAgB,EAAI,CAC/B,EAAW,aAAa,EAAK,EAAM,CACvC,MACF,IAAK,UACH,EAA0B,eAAgB,EAAW,CACrD,EAA0B,SAAU,EAAW,CAC/C,GAAqB,EAAY,UAAW,EAAM,CAClD,MACF,IAAK,eACH,EACE,EACA,+BACA,gBACA,EACD,CACD,MACF,IAAK,eACH,EACE,EACA,+BACA,gBACA,EACD,CACD,MACF,IAAK,YACH,EACE,EACA,+BACA,aACA,EACD,CACD,MACF,IAAK,YACH,EACE,EACA,+BACA,aACA,EACD,CACD,MACF,IAAK,aACH,EACE,EACA,+BACA,cACA,EACD,CACD,MACF,IAAK,YACH,EACE,EACA,+BACA,aACA,EACD,CACD,MACF,IAAK,UACH,EACE,EACA,uCACA,WACA,EACD,CACD,MACF,IAAK,UACH,EACE,EACA,uCACA,WACA,EACD,CACD,MACF,IAAK,WACH,EACE,EACA,uCACA,YACA,EACD,CACD,MACF,IAAK,KACH,GAAqB,EAAY,KAAM,EAAM,CAC7C,MACF,IAAK,YACL,IAAK,cACH,MACF,SAEI,EAAE,EAAI,EAAI,SACD,EAAI,KAAZ,KAA0B,E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","names":["NAME","Root","Dialog","TRIGGER_NAME","PORTAL_NAME","PortalProvider","usePortalContext","DialogPortal","PortalPrimitive","DialogOverlay","Slot","RemoveScroll","CONTENT_NAME","DialogContent","Fragment","DialogTitle","DialogDescription","createContext","Portal","Content","GROUP_NAME","Collection","useCollection","createCollectionScope","ITEM_NAME","wrapArray","focusFirst","usePopperScope","useRovingFocusGroupScope","PopperPrimitive.Root","PopperPrimitive.Anchor","RovingFocusGroup.Root","PopperPrimitive.Content","LABEL_NAME","RovingFocusGroup.Item","CHECKBOX_ITEM_NAME","RADIO_GROUP_NAME","RADIO_ITEM_NAME","SEPARATOR_NAME","ARROW_NAME","PopperPrimitive.Arrow","SUB_TRIGGER_NAME","SUB_CONTENT_NAME","isPointInPolygon","Content2","Label","Item2","Separator","DropdownMenu","MenuPrimitive.Root","DropdownMenuTrigger","MenuPrimitive.Anchor","MenuPrimitive.Portal","DropdownMenuContent","MenuPrimitive.Content","MenuPrimitive.Group","DropdownMenuLabel","MenuPrimitive.Label","DropdownMenuItem","MenuPrimitive.Item","MenuPrimitive.CheckboxItem","MenuPrimitive.RadioGroup","MenuPrimitive.RadioItem","MenuPrimitive.ItemIndicator","DropdownMenuSeparator","MenuPrimitive.Separator","MenuPrimitive.Arrow","MenuPrimitive.SubTrigger","MenuPrimitive.SubContent","Root2","Trigger","ScrollArea","Tabs","TabsList","TabsTrigger","TabsContent","TooltipProvider","VisuallyHiddenPrimitive.Root"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13],"sources":["../../dashboard/node_modules/scheduler/cjs/scheduler.production.js","../../dashboard/node_modules/scheduler/index.js","../../dashboard/node_modules/react-dom/cjs/react-dom-client.production.js","../../dashboard/node_modules/react-dom/client.js","../../dashboard/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs","../../dashboard/node_modules/@radix-ui/react-dialog/dist/index.mjs","../../dashboard/node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../dashboard/node_modules/@radix-ui/react-menu/dist/index.mjs","../../dashboard/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs","../../dashboard/node_modules/@radix-ui/react-label/dist/index.mjs","../../dashboard/node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../../dashboard/node_modules/@radix-ui/react-separator/dist/index.mjs","../../dashboard/node_modules/@radix-ui/react-tabs/dist/index.mjs","../../dashboard/node_modules/@radix-ui/react-tooltip/dist/index.mjs","../../dashboard/src/components/ui/tooltip.tsx","../../dashboard/src/hooks/use-selectors.ts","../../dashboard/src/components/ui/separator.tsx","../../dashboard/src/components/ui/dropdown-menu.tsx","../../dashboard/src/components/layout/sidebar.tsx","../../dashboard/src/components/shared/code-preview.tsx","../../dashboard/src/components/shared/markdown-preview.tsx","../../dashboard/src/components/shared/zoomable-image.tsx","../../dashboard/src/components/views/files.tsx","../../dashboard/src/components/ui/sheet.tsx","../../dashboard/src/components/ui/tabs.tsx","../../dashboard/src/components/shared/status-dot.tsx","../../dashboard/src/components/shared/agent-type-icon.tsx","../../dashboard/src/components/shared/agent-runtime-summary.tsx","../../dashboard/src/components/shared/terminal-viewer.tsx","../../dashboard/src/components/shared/log-viewer.tsx","../../dashboard/src/components/shared/agent-diagnostics.tsx","../../dashboard/src/components/drawers/agent-detail-drawer.tsx","../../dashboard/src/components/ui/scroll-area.tsx","../../dashboard/src/components/drawers/channel-detail-drawer.tsx","../../dashboard/src/components/ui/dialog.tsx","../../dashboard/src/components/ui/textarea.tsx","../../dashboard/src/components/ui/label.tsx","../../dashboard/src/components/modals/compose-modal.tsx","../../dashboard/src/components/modals/confirm-modal.tsx","../../dashboard/src/components/modals/error-modal.tsx","../../dashboard/src/components/modals/rename-modal.tsx","../../dashboard/src/components/modals/pair-invite-modal.tsx","../../dashboard/src/components/modals/pair-message-modal.tsx","../../dashboard/src/components/shared/formatted-body.tsx","../../dashboard/src/components/modals/thread-modal.tsx","../../dashboard/src/components/modals/task-events-modal.tsx","../../dashboard/src/components/shared/directory-browser-dialog.tsx","../../dashboard/src/components/shared/directory-picker.tsx","../../dashboard/src/components/shared/model-traits.tsx","../../dashboard/src/components/modals/orchestrator-spawn-modal.tsx","../../dashboard/src/components/modals/orchestrator-install-modal.tsx","../../dashboard/src/components/modals/managed-policy-modal.tsx","../../dashboard/src/components/modals/agent-profile-modal.tsx","../../dashboard/src/components/command-palette.tsx","../../dashboard/src/components/layout/mobile-nav.tsx","../../dashboard/src/App.tsx","../../dashboard/src/main.tsx"],"sourcesContent":["/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n push(\n suspenseStackCursor,\n type ? (renderLanes & 1) | 2 : renderLanes & 1\n ),\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$140) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$140);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n if (\n 0 !== (root & 4) &&\n ((root = firstChild.updateQueue),\n (root = null !== root ? root.events : null),\n null !== root)\n )\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < root.length;\n JSCompiler_temp++\n )\n (anchorOffset = root[JSCompiler_temp]),\n (anchorOffset.ref.impl = anchorOffset.nextImpl);\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$139) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$139\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n var instance = wasHidden.stateNode;\n hoistableRoot\n ? hideOrUnhideDehydratedBoundary(instance, !0)\n : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$141 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$141, \"\"), (hostParentFiber.flags &= -33));\n var before$142 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$142, parent$141);\n break;\n case 3:\n case 4:\n var parent$143 = hostParentFiber.stateNode.containerInfo,\n before$144 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$144,\n parent$143\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) || !1\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) || !1);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n \"Throttled\",\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n null,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n ) {\n suspendedCommitReason = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n };\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n );\n var timeoutOffset =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0;\n timeoutOffset = waitForCommitToBeReady(\n suspendedCommitReason,\n timeoutOffset\n );\n if (null !== timeoutOffset) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = timeoutOffset(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$165) {\n handleThrow(root, thrownValue$165);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$167) {\n handleThrow(root, thrownValue$167);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects() {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$170 = firstScheduledRoot; null !== root$170; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$170.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$170.suspendedLanes,\n pingedLanes = root$170.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$170,\n root$170 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$170.cancelPendingCommit ||\n -1 !== root$170.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n root$170 = root$170.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1577 = 0;\n i$jscomp$inline_1577 < simpleEventPluginEvents.length;\n i$jscomp$inline_1577++\n) {\n var eventName$jscomp$inline_1578 =\n simpleEventPluginEvents[i$jscomp$inline_1577],\n domEventName$jscomp$inline_1579 =\n eventName$jscomp$inline_1578.toLowerCase(),\n capitalizedEvent$jscomp$inline_1580 =\n eventName$jscomp$inline_1578[0].toUpperCase() +\n eventName$jscomp$inline_1578.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1579,\n \"on\" + capitalizedEvent$jscomp$inline_1580\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = inCapturePhase(_instance)\n )\n lastHostComponent++;\n _instance = 0;\n for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))\n _instance++;\n for (; 0 < lastHostComponent - _instance; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance && reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$184 = props[hasSrc];\n if (null != propValue$184)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$184;\n break;\n case \"type\":\n propValue = propValue$184;\n break;\n case \"checked\":\n checked = propValue$184;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$184;\n break;\n case \"value\":\n propKey = propValue$184;\n break;\n case \"defaultValue\":\n defaultValue = propValue$184;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$184)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$184, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$184 in props)\n props.hasOwnProperty(propValue$184) &&\n ((hasSrc = props[propValue$184]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$184,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$201 in nextProps) {\n var propKey = nextProps[propKey$201];\n lastProp = lastProps[propKey$201];\n if (\n nextProps.hasOwnProperty(propKey$201) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$201) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$201,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$201 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$201 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$201\n ? updateOptions(domElement, !!lastProps, propKey$201, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$201 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$201 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$201, propKey);\n return;\n case \"option\":\n for (var propKey$217 in lastProps)\n if (\n ((propKey$201 = lastProps[propKey$217]),\n lastProps.hasOwnProperty(propKey$217) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$217))\n )\n switch (propKey$217) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$217,\n null,\n nextProps,\n propKey$201\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$201 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$201 &&\n \"function\" !== typeof propKey$201 &&\n \"symbol\" !== typeof propKey$201;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$222 in lastProps)\n (propKey$201 = lastProps[propKey$222]),\n lastProps.hasOwnProperty(propKey$222) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$222) &&\n setProp(domElement, tag, propKey$222, null, nextProps, propKey$201);\n for (checked in nextProps)\n if (\n ((propKey$201 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$201)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$227 in lastProps)\n (propKey$201 = lastProps[propKey$227]),\n lastProps.hasOwnProperty(propKey$227) &&\n void 0 !== propKey$201 &&\n !nextProps.hasOwnProperty(propKey$227) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$227,\n void 0,\n nextProps,\n propKey$201\n );\n for (defaultChecked in nextProps)\n (propKey$201 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$201 === propKey ||\n (void 0 === propKey$201 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$201,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$232 in lastProps)\n (propKey$201 = lastProps[propKey$232]),\n lastProps.hasOwnProperty(propKey$232) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$232) &&\n setProp(domElement, tag, propKey$232, null, nextProps, propKey$201);\n for (lastProp in nextProps)\n (propKey$201 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$201 === propKey ||\n (null == propKey$201 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey);\n}\nfunction isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n}\nfunction estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (transferSize && duration && isLikelyStaticResource(initiatorType)) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n releaseSingletonInstance(parentInstance.ownerDocument.documentElement);\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$243 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$244 = styles$243.get(type);\n resource$244 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$244 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$243.set(type, resource$244),\n (styles$243 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$243._p &&\n ((resource$244.instance = styles$243),\n (resource$244.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$243 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$244.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$244;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$249 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$249)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$249),\n markNodeAsHoistable(instance$249),\n instance$249\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$249 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$249);\n var linkInstance = instance$249;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$249, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$249, props.precedence, hoistableRoot);\n return (resource.instance = instance$249);\n case \"script\":\n instance$249 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$249)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$249)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nvar estimatedBytesWithinLimit = 0;\nfunction waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4 + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit = 62500 * estimateBandwidth());\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +\n timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;\nif (\n \"19.2.6\" !==\n isomorphicReactPackageVersion$jscomp$inline_1840\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1840,\n \"19.2.6\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2347 = {\n bundleType: 0,\n version: \"19.2.6\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.6\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2348.isDisabled &&\n hook$jscomp$inline_2348.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2348.inject(\n internals$jscomp$inline_2347\n )),\n (injectedHook = hook$jscomp$inline_2348);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.6\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","// src/visually-hidden.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar VISUALLY_HIDDEN_STYLES = Object.freeze({\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n});\nvar NAME = \"VisuallyHidden\";\nvar VisuallyHidden = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...props,\n ref: forwardedRef,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }\n }\n );\n }\n);\nVisuallyHidden.displayName = NAME;\nvar Root = VisuallyHidden;\nexport {\n Root,\n VISUALLY_HIDDEN_STYLES,\n VisuallyHidden\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar Slot = createSlot(\"DialogOverlay.RemoveScroll\");\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n useFocusGuards();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n ] })\n ] });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n Close,\n Content,\n Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n Overlay,\n Portal,\n Root,\n Title,\n Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n }),\n children: typeof children === \"function\" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs, composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nvar LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nvar FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nvar SUB_OPEN_KEYS = {\n ltr: [...SELECTION_KEYS, \"ArrowRight\"],\n rtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\"ArrowLeft\"],\n rtl: [\"ArrowRight\"]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);\nvar [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope\n]);\nvar usePopperScope = createPopperScope();\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = (props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n React.useEffect(() => {\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n document.removeEventListener(\"pointerdown\", handlePointer, { capture: true });\n document.removeEventListener(\"pointermove\", handlePointer, { capture: true });\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuRootProvider,\n {\n scope: __scopeMenu,\n onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n }\n )\n }\n ) });\n};\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (props) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });\n }\n);\nvar MenuRootContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n ),\n onDismiss: () => context.onOpenChange(false)\n }\n );\n }\n);\nvar MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }\n );\n});\nvar Slot = createSlot(\"MenuContent.ScrollLock\");\nvar MenuContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef(\"\");\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef(\"right\");\n const lastPointerXRef = React.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;\n const handleTypeaheadSearch = (key) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n };\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n useFocusGuards();\n const isPointerMovingToSubmenu = React.useCallback((event) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentProvider,\n {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n onItemLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n ),\n onTriggerLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {\n event.preventDefault();\n contentRef.current?.focus({ preventScroll: true });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: { outline: \"none\", ...contentProps.style },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: composeEventHandlers(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )\n }\n )\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }\n);\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }\n);\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n return /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: composeEventHandlers(props.onClick, handleSelect),\n onPointerDown: (event) => {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n if (!isPointerDownRef.current) event.currentTarget?.click();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }\n);\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n const [textContent, setTextContent] = React.useState(\"\");\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? \"\").trim());\n }\n }, [itemProps.children]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeMenu,\n disabled,\n textValue: textValue ?? textContent,\n children: /* @__PURE__ */ jsx(RovingFocusGroup.Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({ preventScroll: true });\n }\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n ),\n onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))\n }\n ) })\n }\n );\n }\n);\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = React.forwardRef(\n (props, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n checkboxItemProps.onSelect,\n () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: () => {\n } }\n);\nvar MenuRadioGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });\n }\n);\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n radioItemProps.onSelect,\n () => context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }\n )\n }\n );\n }\n);\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (props) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuSubProvider,\n {\n scope: __scopeMenu,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n }\n )\n }\n ) });\n};\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\n onClick: (event) => {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n const side = context.content?.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n ),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n context.content?.focus();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align: \"start\",\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event) => {\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event) => event.preventDefault(),\n onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n subContext.trigger?.focus();\n event.preventDefault();\n }\n })\n }\n ) }) }) });\n }\n);\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n CheckboxItem,\n Content2 as Content,\n Group,\n Item2 as Item,\n ItemIndicator,\n Label,\n Menu,\n MenuAnchor,\n MenuArrow,\n MenuCheckboxItem,\n MenuContent,\n MenuGroup,\n MenuItem,\n MenuItemIndicator,\n MenuLabel,\n MenuPortal,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuSub,\n MenuSubContent,\n MenuSubTrigger,\n Portal,\n RadioGroup,\n RadioItem,\n Root3 as Root,\n Separator,\n Sub,\n SubContent,\n SubTrigger,\n createMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dropdown-menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as MenuPrimitive from \"@radix-ui/react-menu\";\nimport { createMenuScope } from \"@radix-ui/react-menu\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n DROPDOWN_MENU_NAME,\n [createMenuScope]\n);\nvar useMenuScope = createMenuScope();\nvar [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);\nvar DropdownMenu = (props) => {\n const {\n __scopeDropdownMenu,\n children,\n dir,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = React.useRef(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DROPDOWN_MENU_NAME\n });\n return /* @__PURE__ */ jsx(\n DropdownMenuProvider,\n {\n scope: __scopeDropdownMenu,\n triggerId: useId(),\n triggerRef,\n contentId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children: /* @__PURE__ */ jsx(MenuPrimitive.Root, { ...menuScope, open, onOpenChange: setOpen, dir, modal, children })\n }\n );\n};\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Anchor, { asChild: true, ...menuScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n ...triggerProps,\n ref: composeRefs(forwardedRef, context.triggerRef),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open) event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if ([\"Enter\", \" \"].includes(event.key)) context.onOpenToggle();\n if (event.key === \"ArrowDown\") context.onOpenChange(true);\n if ([\"Enter\", \" \", \"ArrowDown\"].includes(event.key)) event.preventDefault();\n })\n }\n ) });\n }\n);\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DropdownMenuPortal\";\nvar DropdownMenuPortal = (props) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n};\nDropdownMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.Content,\n {\n id: context.contentId,\n \"aria-labelledby\": context.triggerId,\n ...menuScope,\n ...contentProps,\n ref: forwardedRef,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n }),\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n }\n);\nDropdownMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"DropdownMenuGroup\";\nvar DropdownMenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n }\n);\nDropdownMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"DropdownMenuLabel\";\nvar DropdownMenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n }\n);\nDropdownMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"DropdownMenuItem\";\nvar DropdownMenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n }\n);\nDropdownMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"DropdownMenuCheckboxItem\";\nvar DropdownMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n});\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"DropdownMenuRadioGroup\";\nvar DropdownMenuRadioGroup = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n});\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"DropdownMenuRadioItem\";\nvar DropdownMenuRadioItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n});\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"DropdownMenuItemIndicator\";\nvar DropdownMenuItemIndicator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n});\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"DropdownMenuSeparator\";\nvar DropdownMenuSeparator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n});\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"DropdownMenuArrow\";\nvar DropdownMenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n }\n);\nDropdownMenuArrow.displayName = ARROW_NAME;\nvar DropdownMenuSub = (props) => {\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: \"DropdownMenuSub\"\n });\n return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });\n};\nvar SUB_TRIGGER_NAME = \"DropdownMenuSubTrigger\";\nvar DropdownMenuSubTrigger = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });\n});\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"DropdownMenuSubContent\";\nvar DropdownMenuSubContent = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.SubContent,\n {\n ...menuScope,\n ...subContentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\nvar Root2 = DropdownMenu;\nvar Trigger = DropdownMenuTrigger;\nvar Portal2 = DropdownMenuPortal;\nvar Content2 = DropdownMenuContent;\nvar Group2 = DropdownMenuGroup;\nvar Label2 = DropdownMenuLabel;\nvar Item2 = DropdownMenuItem;\nvar CheckboxItem2 = DropdownMenuCheckboxItem;\nvar RadioGroup2 = DropdownMenuRadioGroup;\nvar RadioItem2 = DropdownMenuRadioItem;\nvar ItemIndicator2 = DropdownMenuItemIndicator;\nvar Separator2 = DropdownMenuSeparator;\nvar Arrow2 = DropdownMenuArrow;\nvar Sub2 = DropdownMenuSub;\nvar SubTrigger2 = DropdownMenuSubTrigger;\nvar SubContent2 = DropdownMenuSubContent;\nexport {\n Arrow2 as Arrow,\n CheckboxItem2 as CheckboxItem,\n Content2 as Content,\n DropdownMenu,\n DropdownMenuArrow,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuItemIndicator,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Group2 as Group,\n Item2 as Item,\n ItemIndicator2 as ItemIndicator,\n Label2 as Label,\n Portal2 as Portal,\n RadioGroup2 as RadioGroup,\n RadioItem2 as RadioItem,\n Root2 as Root,\n Separator2 as Separator,\n Sub2 as Sub,\n SubContent2 as SubContent,\n SubTrigger2 as SubTrigger,\n Trigger,\n createDropdownMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/scroll-area.tsx\nimport * as React2 from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\n// src/use-state-machine.ts\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/scroll-area.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = \"hover\",\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React2.useState(null);\n const [viewport, setViewport] = React2.useState(null);\n const [content, setContent] = React2.useState(null);\n const [scrollbarX, setScrollbarX] = React2.useState(null);\n const [scrollbarY, setScrollbarY] = React2.useState(null);\n const [cornerWidth, setCornerWidth] = React2.useState(0);\n const [cornerHeight, setCornerHeight] = React2.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React2.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React2.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n const direction = useDirection(dir);\n return /* @__PURE__ */ jsx(\n ScrollAreaProvider,\n {\n scope: __scopeScrollArea,\n type,\n dir: direction,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n ...scrollAreaProps,\n ref: composedRefs,\n style: {\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--radix-scroll-area-corner-width\"]: cornerWidth + \"px\",\n [\"--radix-scroll-area-corner-height\"]: cornerHeight + \"px\",\n ...props.style\n }\n }\n )\n }\n );\n }\n);\nScrollArea.displayName = SCROLL_AREA_NAME;\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-scroll-area-viewport\": \"\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style\n },\n children: /* @__PURE__ */ jsx(\"div\", { ref: context.onContentChange, style: { minWidth: \"100%\", display: \"table\" }, children })\n }\n )\n ] });\n }\n);\nScrollAreaViewport.displayName = VIEWPORT_NAME;\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n React2.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n return context.type === \"hover\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"scroll\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"auto\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"always\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;\n }\n);\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\nvar ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React2.useState(false);\n React2.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarAuto,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback(() => send(\"SCROLL_END\"), 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\"\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\"\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\"\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n React2.useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(() => send(\"HIDE\"), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n React2.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || state !== \"hidden\", children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: forwardedRef,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, () => send(\"POINTER_ENTER\")),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => send(\"POINTER_LEAVE\"))\n }\n ) });\n});\nvar ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React2.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React2.useRef(null);\n const pointerOffsetRef = React2.useRef(0);\n const [sizes, setSizes] = React2.useState({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => thumbRef.current = thumb,\n onThumbPointerUp: () => pointerOffsetRef.current = 0,\n onThumbPointerDown: (pointerPos) => pointerOffsetRef.current = pointerPos\n };\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarX,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }\n }\n );\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarY,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }\n );\n }\n return null;\n});\nvar ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"horizontal\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n bottom: 0,\n left: context.dir === \"rtl\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n right: context.dir === \"ltr\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n [\"--radix-scroll-area-thumb-width\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight)\n }\n });\n }\n }\n }\n );\n});\nvar ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"vertical\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n top: 0,\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: \"var(--radix-scroll-area-corner-height)\",\n [\"--radix-scroll-area-thumb-height\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.y),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.y),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom)\n }\n });\n }\n }\n }\n );\n});\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = React2.useState(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React2.useRef(null);\n const prevWebkitUserSelectRef = React2.useRef(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n React2.useEffect(() => {\n const handleWheel = (event) => {\n const element = event.target;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => document.removeEventListener(\"wheel\", handleWheel, { passive: false });\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n React2.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(\n ScrollbarProvider,\n {\n scope: __scopeScrollArea,\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...scrollbarProps,\n ref: composeRefs,\n style: { position: \"absolute\", ...scrollbarProps.style },\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport) context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, handleDragScroll),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })\n }\n )\n }\n );\n});\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });\n }\n);\nvar ScrollAreaThumbImpl = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(\n forwardedRef,\n (node) => scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React2.useRef(void 0);\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }, 100);\n React2.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...thumbProps,\n ref: composedRef,\n style: {\n width: \"var(--radix-scroll-area-thumb-width)\",\n height: \"var(--radix-scroll-area-thumb-height)\",\n ...style\n },\n onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n }\n );\n }\n);\nScrollAreaThumb.displayName = THUMB_NAME;\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = React2.forwardRef(\n (props, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;\n }\n);\nScrollAreaCorner.displayName = CORNER_NAME;\nvar ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React2.useState(0);\n const [height, setHeight] = React2.useState(0);\n const hasSize = Boolean(width && height);\n useResizeObserver(context.scrollbarX, () => {\n const height2 = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height2);\n setHeight(height2);\n });\n useResizeObserver(context.scrollbarY, () => {\n const width2 = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width2);\n setWidth(width2);\n });\n return hasSize ? /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...cornerProps,\n ref: forwardedRef,\n style: {\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: 0,\n ...props.style\n }\n }\n ) : null;\n});\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);\n return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nvar addUnlinkedScrollListener = (node, handler = () => {\n}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\nfunction useDebounceCallback(callback, delay) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React2.useRef(0);\n React2.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return React2.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\nfunction useResizeObserver(element, onResize) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\nexport {\n Corner,\n Root,\n ScrollArea,\n ScrollAreaCorner,\n ScrollAreaScrollbar,\n ScrollAreaThumb,\n ScrollAreaViewport,\n Scrollbar,\n Thumb,\n Viewport,\n createScrollAreaScope\n};\n//# sourceMappingURL=index.mjs.map\n","// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, []),\n onClose: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n },\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event) => {\n const target = event.target;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n ]\n }\n )\n }\n );\n }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n )\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { TooltipProvider }\n","import { useMemo } from 'react'\nimport { useRelayStore, type RelayStore } from '@/store'\nimport { useClock, useNowBucket } from '@/store/clock'\nimport type {\n Agent, Message, PairSession, InboxThread, AttentionSummary, WorkQueueItem,\n ChatTimelineItem, CommandItem,\n} from '@/types'\nimport {\n HUMAN_AGENT_ID, STATUS_SORT_ORDER, CHAT_STATUS_SORT_ORDER,\n CLOSED_TASK_STATUSES, WAITING_TASK_STATUSES,\n} from '@/lib/constants'\nimport {\n agentType, isAgentStale, visibleAgents,\n displayName, displayTarget, messageBody,\n inboxPeer, isHumanInboundMessage, isClaimableTaskWaiting,\n isClaimableMessageWaiting, dashboardTargetMatchesAgent, toTimestamp,\n userFacingCapabilities, isReactionEventMessage, isSessionActivityStep,\n} from '@/lib/display'\nimport { getBaseUrl } from '@/lib/api'\n\nfunction useStore<T>(selector: (s: RelayStore) => T): T {\n return useRelayStore(selector)\n}\n\nexport function usePairsByAgentId(): Record<string, PairSession> {\n const pairs = useStore((s) => s.pairs)\n return useMemo(() => {\n const byAgent: Record<string, PairSession> = {}\n for (const pair of pairs) {\n if (pair.status === 'active' || pair.status === 'pending') {\n if (pair.requesterId) byAgent[pair.requesterId] = pair\n if (pair.targetId) byAgent[pair.targetId] = pair\n }\n }\n return byAgent\n }, [pairs])\n}\n\nexport function useAgentAttention(agent: Agent | null): { unread: number; pendingPairInvite: boolean; claimableTasks: number; total: number; score: number } {\n const messages = useStore((s) => s.messages)\n const tasks = useStore((s) => s.tasks)\n const pairs = useStore((s) => s.pairs)\n const readCursors = useStore((s) => s.inboxReadCursors)\n const archivedThreads = useStore((s) => s.inboxArchivedThreads)\n\n return useMemo(() => {\n if (!agent) return { unread: 0, pendingPairInvite: false, claimableTasks: 0, total: 0, score: 0 }\n\n const peerMessages = messages.filter((m) => inboxPeer(m) === agent.id && !isReactionEventMessage(m))\n const cursor = Number(readCursors[agent.id] || 0)\n const archivedAt = Number(archivedThreads[agent.id] || 0)\n const lastInboundId = peerMessages.filter(isHumanInboundMessage).reduce((max, m) => Math.max(max, m.id), 0)\n const isArchived = archivedAt >= lastInboundId && archivedAt > 0\n\n const unread = isArchived ? 0 : peerMessages.filter((m) => isHumanInboundMessage(m) && !isSessionActivityStep(m) && !(m.readBy || []).includes(HUMAN_AGENT_ID) && m.id > cursor).length\n const pair = pairs.find((p) => (p.status === 'active' || p.status === 'pending') && (p.requesterId === agent.id || p.targetId === agent.id))\n const pendingPairInvite = pair?.status === 'pending'\n\n const taskCount = tasks.filter((t) => isClaimableTaskWaiting(t) && dashboardTargetMatchesAgent(t.target, agent)).length\n const msgCount = messages.filter((m) => isClaimableMessageWaiting(m) && dashboardTargetMatchesAgent(m.to, agent)).length\n const claimableTasks = taskCount + msgCount\n\n const total = unread + (pendingPairInvite ? 1 : 0) + claimableTasks\n const score = unread * 10 + (pendingPairInvite ? 4 : 0) + claimableTasks * 2\n\n return { unread, pendingPairInvite, claimableTasks, total, score }\n }, [agent, messages, tasks, pairs, readCursors, archivedThreads])\n}\n\nexport function useSortedAgents(): Agent[] {\n const agents = useStore((s) => s.agents)\n const showBuiltIns = useStore((s) => s.showBuiltIns)\n const showOffline = useStore((s) => s.showOffline)\n const agentSort = useStore((s) => s.agentSort)\n const agentSortDir = useStore((s) => s.agentSortDir)\n const agentPresetFilter = useStore((s) => s.agentPresetFilter)\n const agentStatusFilter = useStore((s) => s.agentStatusFilter)\n const agentTagFilter = useStore((s) => s.agentTagFilter)\n const agentHostFilter = useStore((s) => s.agentHostFilter)\n const managedPolicies = useStore((s) => s.managedPolicies)\n const pairs = useStore((s) => s.pairs)\n // Coarse 30s tick: staleness-aware sorting must react to time passing, but\n // re-sorting the whole list every second (the old `s.now` dep) was wasteful.\n const nowBucket = useNowBucket()\n\n return useMemo(() => {\n let list = visibleAgents(agents, showBuiltIns, managedPolicies)\n\n if (agentPresetFilter) {\n const pairsByAgent = buildPairsMap(pairs)\n list = applyPreset(list, agentPresetFilter, useClock.getState().now, pairsByAgent)\n }\n\n if (!showOffline) list = list.filter((a) => a.status !== 'offline')\n if (agentStatusFilter === 'starting') list = list.filter((a) => a.status !== 'offline' && !a.ready)\n else if (agentStatusFilter) list = list.filter((a) => a.status === agentStatusFilter)\n if (agentTagFilter) list = list.filter((a) => (a.tags || []).includes(agentTagFilter))\n if (agentHostFilter) list = list.filter((a) => (a.machine || '') === agentHostFilter)\n\n const dir = agentSortDir === 'desc' ? -1 : 1\n return [...list].sort((a, b) => {\n if (agentSort === 'name') return displayName(a).localeCompare(displayName(b)) * dir\n if (agentSort === 'lastSeen') return (new Date(b.lastSeen as string).getTime() - new Date(a.lastSeen as string).getTime()) * dir || displayName(a).localeCompare(displayName(b))\n if (agentSort === 'created') return (new Date(b.createdAt as string).getTime() - new Date(a.createdAt as string).getTime()) * dir || displayName(a).localeCompare(displayName(b))\n const s = ((STATUS_SORT_ORDER[a.status] ?? 9) - (STATUS_SORT_ORDER[b.status] ?? 9)) * dir\n return s || displayName(a).localeCompare(displayName(b))\n })\n }, [agents, showBuiltIns, showOffline, managedPolicies, agentSort, agentSortDir, agentPresetFilter, agentStatusFilter, agentTagFilter, agentHostFilter, pairs, nowBucket])\n}\n\nfunction buildPairsMap(pairs: PairSession[]): Record<string, PairSession> {\n const m: Record<string, PairSession> = {}\n for (const p of pairs) {\n if (p.status === 'active' || p.status === 'pending') {\n if (p.requesterId) m[p.requesterId] = p\n if (p.targetId) m[p.targetId] = p\n }\n }\n return m\n}\n\nfunction applyPreset(list: Agent[], preset: string, now: number, pairsMap: Record<string, PairSession>): Agent[] {\n switch (preset) {\n case 'active': return list.filter((a) => a.status !== 'offline')\n case 'offline_stale': return list.filter((a) => a.status === 'offline' || isAgentStale(now, a))\n case 'claude': case 'codex': return list.filter((a) => agentType(a) === preset)\n case 'paired': return list.filter((a) => Boolean(pairsMap[a.id]))\n case 'unpaired': return list.filter((a) => !pairsMap[a.id])\n default: return list\n }\n}\n\nexport function useAllInboxThreads(): InboxThread[] {\n const messages = useStore((s) => s.messages)\n const readCursors = useStore((s) => s.inboxReadCursors)\n const archivedThreads = useStore((s) => s.inboxArchivedThreads)\n const drafts = useStore((s) => s.inboxDrafts)\n\n return useMemo(() => {\n const threads = new Map<string, InboxThread>()\n for (const msg of messages) {\n if (isReactionEventMessage(msg)) continue\n const peer = inboxPeer(msg)\n if (!peer) continue\n if (!threads.has(peer)) threads.set(peer, { id: peer, peer, messages: [], lastMessage: null, previewMessage: null, attention: { unread: 0, needsHumanResponse: false, score: 0 }, archived: false, draft: '' })\n threads.get(peer)!.messages.push(msg)\n }\n for (const thread of threads.values()) {\n thread.messages.sort((a, b) => a.id - b.id)\n thread.lastMessage = thread.messages[thread.messages.length - 1] || null\n let preview: Message | null = null\n for (let i = thread.messages.length - 1; i >= 0; i--) {\n const m = thread.messages[i]\n if (m && !isSessionActivityStep(m)) { preview = m; break }\n }\n thread.previewMessage = preview || thread.lastMessage\n\n const cursor = Number(readCursors[thread.peer] || 0)\n const unread = thread.messages.filter((m) => isHumanInboundMessage(m) && !isSessionActivityStep(m) && !(m.readBy || []).includes(HUMAN_AGENT_ID) && m.id > cursor).length\n thread.attention = { unread, needsHumanResponse: false, score: unread * 10 }\n\n const archivedAt = Number(archivedThreads[thread.peer] || 0)\n thread.archived = Boolean(thread.lastMessage?.id && archivedAt >= thread.lastMessage.id)\n thread.draft = drafts[thread.peer] || ''\n }\n return [...threads.values()].sort((a, b) => {\n const scoreDelta = (b.attention.score || 0) - (a.attention.score || 0)\n if (scoreDelta !== 0) return scoreDelta\n return (b.lastMessage?.id || 0) - (a.lastMessage?.id || 0)\n })\n }, [messages, readCursors, archivedThreads, drafts])\n}\n\nexport function useAttentionSummary(): AttentionSummary {\n const threads = useAllInboxThreads()\n const agents = useStore((s) => s.agents)\n const showBuiltIns = useStore((s) => s.showBuiltIns)\n const showOffline = useStore((s) => s.showOffline)\n const managedPolicies = useStore((s) => s.managedPolicies)\n const pairs = useStore((s) => s.pairs)\n const tasks = useStore((s) => s.tasks)\n const messages = useStore((s) => s.messages)\n\n const visibleInboxPeers = useMemo(() => new Set(\n visibleAgents(agents, showBuiltIns, managedPolicies)\n .filter((agent) => showOffline || agent.status !== 'offline')\n .map((agent) => agent.id)\n ), [agents, showBuiltIns, showOffline, managedPolicies])\n\n return useMemo(() => {\n const active = threads.filter((t) => !t.archived && visibleInboxPeers.has(t.peer))\n const unreadInbox = active.reduce((sum, t) => sum + (t.attention.unread || 0), 0)\n const pendingPairInvites = pairs.filter((p) => p.status === 'pending').length\n const taskCount = tasks.filter(isClaimableTaskWaiting).length\n const msgCount = messages.filter(isClaimableMessageWaiting).length\n const claimableTasks = taskCount + msgCount\n return {\n unreadInbox,\n needsHumanResponse: 0,\n pendingPairInvites,\n claimableTasks,\n total: unreadInbox + pendingPairInvites + claimableTasks,\n }\n }, [threads, visibleInboxPeers, pairs, tasks, messages])\n}\n\nexport function useOnlineCount(): number {\n const agents = useStore((s) => s.agents)\n const showBuiltIns = useStore((s) => s.showBuiltIns)\n const managedPolicies = useStore((s) => s.managedPolicies)\n return useMemo(() => visibleAgents(agents, showBuiltIns, managedPolicies).filter((a) => a.status !== 'offline').length, [agents, showBuiltIns, managedPolicies])\n}\n\nexport function useBusyCount(): number {\n const agents = useStore((s) => s.agents)\n return useMemo(() => agents.filter((a) => a.status === 'busy').length, [agents])\n}\n\nexport function useComposeAgents(): Agent[] {\n const agents = useStore((s) => s.agents)\n const showBuiltIns = useStore((s) => s.showBuiltIns)\n const showOffline = useStore((s) => s.showOffline)\n const managedPolicies = useStore((s) => s.managedPolicies)\n return useMemo(() => {\n const list = visibleAgents(agents, showBuiltIns, managedPolicies)\n return showOffline ? list : list.filter((a) => a.status !== 'offline')\n }, [agents, showBuiltIns, showOffline, managedPolicies])\n}\n\nexport function useUniqueHosts(): string[] {\n const agents = useStore((s) => s.agents)\n const showBuiltIns = useStore((s) => s.showBuiltIns)\n const managedPolicies = useStore((s) => s.managedPolicies)\n return useMemo(() => [...new Set(visibleAgents(agents, showBuiltIns, managedPolicies).map((a) => a.machine).filter(Boolean) as string[])].sort(), [agents, showBuiltIns, managedPolicies])\n}\n\nexport function useUniqueTags(): string[] {\n const agents = useStore((s) => s.agents)\n const showBuiltIns = useStore((s) => s.showBuiltIns)\n const managedPolicies = useStore((s) => s.managedPolicies)\n return useMemo(() => [...new Set(visibleAgents(agents, showBuiltIns, managedPolicies).flatMap((a) => a.tags || []))], [agents, showBuiltIns, managedPolicies])\n}\n\nfunction useUniqueCaps(): string[] {\n const agents = useStore((s) => s.agents)\n const showBuiltIns = useStore((s) => s.showBuiltIns)\n const managedPolicies = useStore((s) => s.managedPolicies)\n return useMemo(() => [...new Set(visibleAgents(agents, showBuiltIns, managedPolicies).flatMap((a) => userFacingCapabilities(a.capabilities || [])))], [agents, showBuiltIns, managedPolicies])\n}\n\nexport function useWorkQueueItems(): WorkQueueItem[] {\n const tasks = useStore((s) => s.tasks)\n const messages = useStore((s) => s.messages)\n\n return useMemo(() => {\n const taskItems: WorkQueueItem[] = tasks\n .filter((t) => !CLOSED_TASK_STATUSES.has(t.status))\n .map((t) => ({\n id: 'task-' + t.id, sourceType: 'task', title: t.title, body: t.body,\n severity: t.severity || 'info', status: t.status, owner: t.claimedBy || '',\n target: t.target, source: t.source, channel: t.channel || '',\n updatedAt: t.updatedAt || t.createdAt, createdAt: t.createdAt,\n claimable: isClaimableTaskWaiting(t), task: t,\n }))\n\n const msgItems: WorkQueueItem[] = messages\n .filter(isClaimableMessageWaiting)\n .map((m) => ({\n id: 'message-' + m.id, sourceType: 'message', title: m.subject || 'Claimable message #' + m.id,\n body: messageBody(m), severity: 'warning', status: m.claimedBy ? 'claimed' : 'open',\n owner: m.claimedBy || '', target: m.to, source: 'message', channel: m.channel || '',\n updatedAt: m.claimedAt || m.createdAt, createdAt: m.createdAt,\n claimable: isClaimableMessageWaiting(m), message: m,\n }))\n\n return [...taskItems, ...msgItems].sort((a, b) => {\n const cd = Number(b.claimable) - Number(a.claimable)\n if (cd !== 0) return cd\n const so: Record<string, number> = { critical: 0, warning: 1, info: 2 }\n const sd = (so[a.severity] ?? 9) - (so[b.severity] ?? 9)\n if (sd !== 0) return sd\n return toTimestamp(a.updatedAt) - toTimestamp(b.updatedAt)\n })\n }, [tasks, messages])\n}\n\nexport function useCommandPaletteItems(): CommandItem[] {\n const query = useStore((s) => s.commandQuery)\n const agents = useStore((s) => s.agents)\n const agentsById = useStore((s) => s.agentsById)\n const showBuiltIns = useStore((s) => s.showBuiltIns)\n const showOffline = useStore((s) => s.showOffline)\n const managedPolicies = useStore((s) => s.managedPolicies)\n\n return useMemo(() => {\n const composeList = visibleAgents(agents, showBuiltIns, managedPolicies).filter((a) => showOffline || a.status !== 'offline')\n const tags = [...new Set(composeList.flatMap((a) => a.tags || []))]\n const base = getBaseUrl()\n\n const commands: CommandItem[] = [\n ci('open-chat', 'Open chat', 'Human console', 'MessageCircle', 'openView', { view: 'chat' }),\n ci('open-work', 'Open work queue', 'Claimable messages and tasks', 'ListChecks', 'openView', { view: 'work' }),\n ci('open-workspaces', 'Open workspaces', 'Agent worktrees and merge state', 'GitBranch', 'openView', { view: 'workspaces' }),\n ci('show-stale', 'Show stale agents', 'Filter agents to offline or stale', 'Filter', 'agentPreset', { preset: 'offline_stale' }),\n ci('copy-url', 'Copy relay URL', base, 'Copy', 'copy', { value: base }),\n ci('export-md', 'Export timeline as Markdown', 'Activity audit trace', 'FileDown', 'exportActivity', { format: 'markdown' }),\n ci('export-json', 'Export timeline as JSON', 'Activity audit trace', 'Braces', 'exportActivity', { format: 'json' }),\n ...composeList.slice(0, 12).map((a) =>\n ci('msg-' + a.id, 'Message agent: ' + displayName(a), a.id, 'Send', 'messageAgent', { agentId: a.id })\n ),\n ...composeList.filter((a) => agentType(a) === 'codex').slice(0, 8).map((a) =>\n ci('pair-' + a.id, 'Pair Codex: ' + displayName(a), a.id, 'Link', 'pairAgent', { agentId: a.id })\n ),\n ...tags.map((t) => ci('tag-' + t, 'Filter tag: ' + t, '#' + t, 'Tag', 'filterTag', { tag: t })),\n ]\n\n const q = query.trim().toLowerCase()\n const filtered = q ? commands.filter((c) => c.search.includes(q)) : commands\n return filtered.slice(0, 24)\n }, [query, agents, agentsById, showBuiltIns, showOffline, managedPolicies])\n}\n\nfunction ci(id: string, title: string, subtitle: string, icon: string, action: string, payload: Record<string, unknown>): CommandItem {\n return { id, title, subtitle, icon, action, payload, search: `${title}\\n${subtitle}\\n${action}`.toLowerCase() }\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Separator as SeparatorPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","import * as React from \"react\"\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { CheckIcon, ChevronRightIcon } from \"lucide-react\"\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n )\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n )\n}\n\nfunction DropdownMenuContent({\n className,\n align = \"start\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n align={align}\n className={cn(\"z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon\n />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon\n />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n )\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n )\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\"z-50 min-w-[96px] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n","import { useEffect } from 'react'\nimport { cn } from '@/lib/utils'\nimport { useRelayStore } from '@/store'\nimport { useAttentionSummary, useOnlineCount } from '@/hooks/use-selectors'\nimport { NAV_ITEMS } from '@/lib/constants'\nimport { THEMES } from '@/lib/themes'\nimport { Switch } from '@/components/ui/switch'\nimport { Badge } from '@/components/ui/badge'\nimport { Separator } from '@/components/ui/separator'\nimport {\n DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel,\n DropdownMenuSeparator, DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu'\nimport {\n LayoutDashboard, MessageCircle, Bot, Server, MessagesSquare, Plug, PlugZap,\n Activity, Link, Mail, ListChecks, ClipboardList, CalendarClock, AreaChart, Command, Radio, Settings, Workflow, X, BrainCircuit, FolderTree, Shield, Wrench, UserCog,\n Bell, BellRing, CheckCheck, Trash2, Palette, Check, Lightbulb,\n} from 'lucide-react'\nimport type { RelayNotification, ThemeId, ViewName } from '@/types'\n\nconst iconMap: Record<string, typeof LayoutDashboard> = {\n LayoutDashboard, MessageCircle, Bot, Server, MessagesSquare, Plug, PlugZap,\n Activity, Link, Mail, ListChecks, ClipboardList, CalendarClock, AreaChart, Settings, Workflow, BrainCircuit, FolderTree, Shield, Wrench, UserCog, Lightbulb,\n}\n\nfunction notificationTime(notification: RelayNotification): string {\n return new Date(notification.createdAt).toLocaleTimeString(undefined, { hour: '2-digit', minute: '2-digit' })\n}\n\nconst notificationCategories = [\n ['messages', 'Messages'],\n ['replies', 'Replies'],\n ['errors', 'Errors'],\n] as const\n\nfunction NotificationBell() {\n const notifications = useRelayStore((s) => s.notifications)\n const unread = useRelayStore((s) => s.notificationUnread)\n const settings = useRelayStore((s) => s.notificationSettings)\n const permission = useRelayStore((s) => s.notificationPermission)\n const set = useRelayStore((s) => s.set)\n const openNotification = useRelayStore((s) => s.openNotification)\n const markNotificationsRead = useRelayStore((s) => s.markNotificationsRead)\n const clearNotifications = useRelayStore((s) => s.clearNotifications)\n const requestBrowserNotifications = useRelayStore((s) => s.requestBrowserNotifications)\n\n const Icon = unread > 0 ? BellRing : Bell\n\n function updateSettings(patch: Partial<typeof settings>) {\n set({ notificationSettings: { ...settings, ...patch } })\n }\n\n return (\n <DropdownMenu onOpenChange={(open) => { if (open) markNotificationsRead() }}>\n <DropdownMenuTrigger asChild>\n <button className=\"relative flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors w-full\">\n <Icon className=\"w-3.5 h-3.5\" />\n <span>Notifications</span>\n {unread > 0 && (\n <Badge variant=\"destructive\" className=\"ml-auto text-[10px] px-1.5 py-0\">{unread}</Badge>\n )}\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" side=\"right\" className=\"w-80 p-2\">\n <div className=\"flex items-center justify-between gap-2 px-1.5 py-1\">\n <DropdownMenuLabel className=\"p-0\">Notifications</DropdownMenuLabel>\n <div className=\"flex items-center gap-1\">\n <button type=\"button\" title=\"Mark read\" onClick={markNotificationsRead} className=\"rounded p-1 text-muted-foreground hover:bg-accent hover:text-foreground\">\n <CheckCheck className=\"h-3.5 w-3.5\" />\n </button>\n <button type=\"button\" title=\"Clear\" onClick={clearNotifications} className=\"rounded p-1 text-muted-foreground hover:bg-accent hover:text-foreground\">\n <Trash2 className=\"h-3.5 w-3.5\" />\n </button>\n </div>\n </div>\n\n <div className=\"px-1.5 py-1.5 space-y-2\">\n <label className=\"flex items-center justify-between gap-3 text-xs\">\n <span className=\"text-muted-foreground\">In-app notifications</span>\n <Switch size=\"sm\" checked={settings.enabled} onCheckedChange={(v) => updateSettings({ enabled: v })} />\n </label>\n <label className=\"flex items-center justify-between gap-3 text-xs\">\n <span className=\"text-muted-foreground\">Browser notifications</span>\n <Switch\n size=\"sm\"\n checked={settings.browserEnabled && permission === 'granted'}\n disabled={permission === 'unsupported'}\n onCheckedChange={(v) => {\n if (v && permission !== 'granted') void requestBrowserNotifications()\n else updateSettings({ browserEnabled: v })\n }}\n />\n </label>\n <div className=\"grid grid-cols-3 gap-1\">\n {notificationCategories.map(([key, label]) => (\n <button\n key={key}\n type=\"button\"\n onClick={() => updateSettings({ [key]: !settings[key] })}\n className={cn(\n 'rounded border px-2 py-1 text-[11px] transition-colors',\n settings[key] ? 'border-primary/40 bg-primary/10 text-primary' : 'border-border text-muted-foreground hover:bg-accent'\n )}\n >\n {label}\n </button>\n ))}\n </div>\n </div>\n\n <DropdownMenuSeparator />\n\n <div className=\"max-h-80 overflow-y-auto\">\n {notifications.length === 0 ? (\n <div className=\"px-1.5 py-8 text-center text-xs text-muted-foreground\">No notifications</div>\n ) : notifications.slice(0, 20).map((notification) => (\n <DropdownMenuItem\n key={notification.id}\n onSelect={(e) => {\n e.preventDefault()\n void openNotification(notification)\n }}\n className=\"flex flex-col items-start gap-0.5 px-2 py-2\"\n >\n <div className=\"flex w-full items-center gap-2\">\n <span className={cn(\n 'h-1.5 w-1.5 rounded-full',\n notification.severity === 'error' ? 'bg-red-400' : notification.severity === 'warning' ? 'bg-yellow-400' : 'bg-blue-400'\n )} />\n <span className=\"min-w-0 flex-1 truncate text-xs font-medium\">{notification.title}</span>\n <span className=\"text-[10px] text-muted-foreground\">{notificationTime(notification)}</span>\n </div>\n <span className=\"line-clamp-2 text-xs text-muted-foreground\">{notification.body}</span>\n </DropdownMenuItem>\n ))}\n </div>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nfunction ThemePicker() {\n const theme = useRelayStore((s) => s.theme)\n const set = useRelayStore((s) => s.set)\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button className=\"flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors w-full\">\n <Palette className=\"w-3.5 h-3.5\" />\n <span>Theme</span>\n <span className=\"ml-auto text-[10px] text-muted-foreground\">{THEMES.find((t) => t.id === theme)?.label}</span>\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" side=\"right\" className=\"w-40\">\n {THEMES.map((t) => (\n <DropdownMenuItem key={t.id} onSelect={() => set({ theme: t.id as ThemeId })}>\n <span className=\"flex-1\">{t.label}</span>\n {theme === t.id && <Check className=\"w-3.5 h-3.5 text-primary\" />}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nfunction SidebarContent() {\n const view = useRelayStore((s) => s.view)\n const switchView = useRelayStore((s) => s.switchView)\n const connected = useRelayStore((s) => s.connected)\n const showOffline = useRelayStore((s) => s.showOffline)\n const showBuiltIns = useRelayStore((s) => s.showBuiltIns)\n const autoRefresh = useRelayStore((s) => s.autoRefresh)\n const stats = useRelayStore((s) => s.stats)\n const openCommandPalette = useRelayStore((s) => s.openCommandPalette)\n const set = useRelayStore((s) => s.set)\n const startAutoRefresh = useRelayStore((s) => s.startAutoRefresh)\n const stopAutoRefresh = useRelayStore((s) => s.stopAutoRefresh)\n\n const attention = useAttentionSummary()\n const onlineCount = useOnlineCount()\n\n function navBadge(key: ViewName) {\n if (key === 'overview' && attention.total > 0) return <Badge variant=\"destructive\" className=\"ml-auto text-[10px] px-1.5 py-0\">{attention.total}</Badge>\n if (key === 'chat' && attention.unreadInbox > 0) return <Badge variant=\"destructive\" className=\"ml-auto text-[10px] px-1.5 py-0\">{attention.unreadInbox}</Badge>\n if (key === 'agents') return <Badge variant=\"secondary\" className=\"ml-auto text-[10px] px-1.5 py-0\">{onlineCount}</Badge>\n if (key === 'pairs' && attention.pendingPairInvites > 0) return <Badge className=\"ml-auto text-[10px] px-1.5 py-0 bg-yellow-500/20 text-yellow-400\">{attention.pendingPairInvites}</Badge>\n if (key === 'work' && attention.claimableTasks > 0) return <Badge className=\"ml-auto text-[10px] px-1.5 py-0 bg-yellow-500/20 text-yellow-400\">{attention.claimableTasks}</Badge>\n return null\n }\n\n return (\n <>\n <nav className=\"flex-1 overflow-y-auto py-2 px-2\">\n {NAV_ITEMS.map((item) => {\n const Icon = iconMap[item.icon] || Bot\n return (\n <button\n key={item.key}\n onClick={() => switchView(item.key)}\n className={cn(\n 'w-full flex items-center gap-2 px-3 py-2 rounded-md text-sm transition-colors my-0.5',\n view === item.key\n ? 'bg-primary text-primary-foreground'\n : 'text-foreground hover:bg-accent'\n )}\n >\n <Icon className=\"w-4 h-4 shrink-0\" />\n {item.label}\n {navBadge(item.key)}\n </button>\n )\n })}\n </nav>\n\n <div className=\"mt-auto border-t border-border p-4 space-y-3 text-xs\">\n <div className=\"flex items-center gap-2\">\n <span className={cn('w-2 h-2 rounded-full', connected ? 'bg-emerald-500' : 'bg-red-500 animate-pulse')} />\n <span className=\"text-muted-foreground\">{connected ? 'Live' : 'Reconnecting...'}</span>\n </div>\n\n <button onClick={openCommandPalette} className=\"flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors w-full\">\n <Command className=\"w-3.5 h-3.5\" />\n <span>Command palette</span>\n <kbd className=\"ml-auto text-[10px] bg-muted px-1.5 py-0.5 rounded\">⌘K</kbd>\n </button>\n\n <NotificationBell />\n <ThemePicker />\n\n <Separator />\n\n <label className=\"flex items-center justify-between cursor-pointer\">\n <span className=\"text-muted-foreground\">Show offline</span>\n <Switch checked={showOffline} onCheckedChange={(v) => set({ showOffline: v })} />\n </label>\n <label className=\"flex items-center justify-between cursor-pointer\">\n <span className=\"text-muted-foreground\">System agents</span>\n <Switch checked={showBuiltIns} onCheckedChange={(v) => set({ showBuiltIns: v })} />\n </label>\n <label className=\"flex items-center justify-between cursor-pointer\">\n <span className=\"text-muted-foreground\">Auto refresh</span>\n <Switch checked={autoRefresh} onCheckedChange={(v) => { set({ autoRefresh: v }); if (v) startAutoRefresh(); else stopAutoRefresh() }} />\n </label>\n\n {stats.version && <div className=\"text-muted-foreground pt-1\">v{stats.version}</div>}\n </div>\n </>\n )\n}\n\nexport function Sidebar() {\n return (\n <aside className=\"hidden xl:flex w-[250px] min-w-[250px] h-[calc(100dvh-var(--sat))] sticky top-[var(--sat)] flex-col border-r border-border bg-card\">\n <div className=\"px-5 py-4 font-bold text-base border-b border-border flex items-center gap-2\">\n <Radio className=\"w-4 h-4 text-primary\" />\n Agent Relay\n </div>\n <SidebarContent />\n </aside>\n )\n}\n\nexport function MobileDrawer() {\n const open = useRelayStore((s) => s.mobileMenuOpen)\n const set = useRelayStore((s) => s.set)\n\n useEffect(() => {\n if (!open) return\n function onKey(e: KeyboardEvent) {\n if (e.key === 'Escape') set({ mobileMenuOpen: false })\n }\n window.addEventListener('keydown', onKey)\n return () => window.removeEventListener('keydown', onKey)\n }, [open])\n\n return (\n <>\n {/* Backdrop */}\n <div\n className={cn(\n 'xl:hidden fixed inset-0 z-40 bg-black/50 transition-opacity duration-200',\n open ? 'opacity-100' : 'opacity-0 pointer-events-none'\n )}\n onClick={() => set({ mobileMenuOpen: false })}\n />\n\n {/* Drawer */}\n <aside\n className={cn(\n 'xl:hidden fixed inset-y-0 left-0 z-50 w-[280px] flex flex-col pt-[var(--sat)] bg-card border-r border-border transition-transform duration-200 ease-out',\n open ? 'translate-x-0' : '-translate-x-full'\n )}\n >\n <div className=\"px-5 py-4 font-bold text-base border-b border-border flex items-center gap-2\">\n <Radio className=\"w-4 h-4 text-primary\" />\n Agent Relay\n <button\n onClick={() => set({ mobileMenuOpen: false })}\n className=\"ml-auto p-1 text-muted-foreground hover:text-foreground transition-colors\"\n aria-label=\"Close menu\"\n >\n <X className=\"w-4 h-4\" />\n </button>\n </div>\n <SidebarContent />\n </aside>\n </>\n )\n}\n","import { memo, useEffect, useMemo, useState } from 'react'\nimport { Loader2 } from 'lucide-react'\nimport { useRelayStore } from '@/store'\nimport { THEMES } from '@/lib/themes'\nimport { CopyButton } from '@/components/shared/copy-button'\n\nconst MAX_HIGHLIGHT_BYTES = 500 * 1024\n\nconst EXTENSION_LANGUAGES: Record<string, string> = {\n bash: 'bash',\n c: 'c',\n conf: 'properties',\n cpp: 'cpp',\n cs: 'csharp',\n css: 'css',\n csv: 'csv',\n cts: 'typescript',\n diff: 'diff',\n dockerfile: 'dockerfile',\n env: 'dotenv',\n gemspec: 'ruby',\n go: 'go',\n graphql: 'graphql',\n h: 'c',\n hcl: 'hcl',\n hpp: 'cpp',\n html: 'html',\n ini: 'ini',\n java: 'java',\n js: 'javascript',\n json: 'json',\n jsonc: 'jsonc',\n jsx: 'jsx',\n kt: 'kotlin',\n less: 'less',\n log: 'log',\n lua: 'lua',\n mjs: 'javascript',\n mts: 'typescript',\n patch: 'diff',\n php: 'php',\n plist: 'xml',\n podspec: 'ruby',\n properties: 'properties',\n py: 'python',\n rake: 'ruby',\n rb: 'ruby',\n rs: 'rust',\n scss: 'scss',\n sh: 'bash',\n sql: 'sql',\n svelte: 'svelte',\n swift: 'swift',\n toml: 'toml',\n ts: 'typescript',\n tsx: 'tsx',\n txt: 'text',\n vue: 'vue',\n webmanifest: 'json',\n xml: 'xml',\n yaml: 'yaml',\n yml: 'yaml',\n zsh: 'bash',\n}\n\nconst BASENAME_LANGUAGES: Record<string, string> = {\n '.bashrc': 'bash',\n '.env': 'dotenv',\n '.eslintrc': 'json',\n '.gitignore': 'gitignore',\n '.npmrc': 'properties',\n '.prettierrc': 'json',\n '.swiftformat': 'properties',\n '.swiftlint.yml': 'yaml',\n '.watchmanconfig': 'json',\n 'app.config': 'json',\n 'app.webmanifest': 'json',\n 'berksfile': 'ruby',\n 'brewfile': 'ruby',\n 'bun.lock': 'json',\n 'capfile': 'ruby',\n 'cartfile': 'ruby',\n 'composer.lock': 'json',\n 'dangerfile': 'ruby',\n 'deno.lock': 'json',\n 'fastfile': 'ruby',\n 'flake.lock': 'json',\n 'gemfile': 'ruby',\n 'guardfile': 'ruby',\n 'podfile': 'ruby',\n 'rakefile': 'ruby',\n dockerfile: 'dockerfile',\n makefile: 'make',\n}\n\ntype ShikiModule = typeof import('shiki/bundle/web')\n\nlet shikiPromise: Promise<ShikiModule> | null = null\n\nfunction getShiki() {\n shikiPromise ??= import('shiki/bundle/web')\n return shikiPromise\n}\n\nfunction byteLength(value: string): number {\n return new TextEncoder().encode(value).length\n}\n\nfunction basename(path: string): string {\n return path.split('/').filter(Boolean).pop() || path\n}\n\nfunction detectShebangLanguage(content?: string): string | null {\n const firstLine = content?.slice(0, 240).split(/\\r?\\n/, 1)[0]?.toLowerCase() || ''\n if (!firstLine.startsWith('#!')) return null\n if (/\\b(bash|dash|ksh|sh|zsh)\\b/.test(firstLine)) return 'bash'\n if (/\\bfish\\b/.test(firstLine)) return 'fish'\n if (/\\b(ts-node|tsx)\\b/.test(firstLine)) return 'typescript'\n if (/\\b(node|bun|deno)\\b/.test(firstLine)) return 'javascript'\n if (/\\bpython[0-9.]*\\b/.test(firstLine)) return 'python'\n if (/\\bruby\\b/.test(firstLine)) return 'ruby'\n if (/\\bswift\\b/.test(firstLine)) return 'swift'\n if (/\\bperl\\b/.test(firstLine)) return 'perl'\n if (/\\bphp\\b/.test(firstLine)) return 'php'\n return null\n}\n\nfunction detectCodeLanguage(path: string, mediaType?: string, languageHint?: string, content?: string): string | null {\n if (languageHint) return languageHint\n const name = basename(path).toLowerCase()\n if (BASENAME_LANGUAGES[name]) return BASENAME_LANGUAGES[name]\n if (name.endsWith('.d.ts')) return 'typescript'\n\n const shebangLanguage = detectShebangLanguage(content)\n if (shebangLanguage) return shebangLanguage\n\n const ext = name.includes('.') ? name.slice(name.lastIndexOf('.') + 1) : ''\n if (ext && EXTENSION_LANGUAGES[ext]) return EXTENSION_LANGUAGES[ext]\n\n if (mediaType?.includes('json')) return 'json'\n if (mediaType?.includes('javascript')) return 'javascript'\n if (mediaType?.includes('typescript')) return 'typescript'\n if (mediaType?.includes('xml')) return 'xml'\n if (mediaType?.includes('yaml') || mediaType?.includes('yml')) return 'yaml'\n if (mediaType?.includes('shellscript')) return 'bash'\n\n return null\n}\n\nexport function canHighlightCode(path: string, mediaType?: string, languageHint?: string, content?: string): boolean {\n const language = detectCodeLanguage(path, mediaType, languageHint, content)\n return Boolean(language && language !== 'text' && language !== 'log')\n}\n\nexport const CodePreview = memo(function CodePreview({\n content,\n path,\n mediaType,\n languageHint,\n compact = false,\n}: {\n content: string\n path: string\n mediaType?: string\n languageHint?: string\n compact?: boolean\n}) {\n const theme = useRelayStore((s) => s.theme)\n const isDark = THEMES.find((t) => t.id === theme)?.dark ?? true\n const language = useMemo(() => detectCodeLanguage(path, mediaType, languageHint, content) || 'text', [content, languageHint, mediaType, path])\n const tooLarge = byteLength(content) > MAX_HIGHLIGHT_BYTES\n const [html, setHtml] = useState('')\n const [loading, setLoading] = useState(false)\n const [failed, setFailed] = useState(false)\n\n function copyButton() {\n return (\n <CopyButton\n value={content}\n label=\"Copy code\"\n copiedLabel=\"Copied code\"\n size=\"icon\"\n variant=\"ghost\"\n className=\"absolute right-2 top-2 h-7 w-7 bg-background/80 opacity-0 shadow-sm backdrop-blur transition-opacity hover:bg-muted group-hover/code:opacity-100 focus-visible:opacity-100\"\n />\n )\n }\n\n useEffect(() => {\n if (tooLarge || language === 'text' || language === 'log') {\n setHtml('')\n setLoading(false)\n setFailed(false)\n return\n }\n\n let cancelled = false\n setLoading(true)\n setFailed(false)\n getShiki()\n .then(({ codeToHtml }) => codeToHtml(content, {\n lang: language,\n theme: isDark ? 'github-dark-default' : 'github-light-default',\n } as Parameters<typeof codeToHtml>[1]))\n .then((result) => {\n if (!cancelled) setHtml(result)\n })\n .catch(() => {\n if (!cancelled) {\n setHtml('')\n setFailed(true)\n }\n })\n .finally(() => {\n if (!cancelled) setLoading(false)\n })\n\n return () => { cancelled = true }\n }, [content, isDark, language, tooLarge])\n\n if (loading) {\n return (\n <div className=\"flex items-center gap-2 p-4 text-sm text-muted-foreground\">\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n Highlighting\n </div>\n )\n }\n\n if (tooLarge || failed || !html) {\n return (\n <div className=\"group/code relative\">\n {copyButton()}\n <pre className={`overflow-auto whitespace-pre-wrap break-words font-mono text-xs leading-5 ${compact ? 'p-3' : 'p-4'}`}>\n {content || ' '}\n </pre>\n </div>\n )\n }\n\n return (\n <div className=\"group/code relative\">\n {copyButton()}\n <div\n className={`code-preview overflow-auto font-mono text-xs leading-5 ${compact ? 'p-3' : 'p-4'}`}\n dangerouslySetInnerHTML={{ __html: html }}\n />\n </div>\n )\n})\n","import { lazy, Suspense } from 'react'\nimport type { MarkdownPreviewProps } from './markdown-preview-impl'\n\n// Lazy boundary for react-markdown (#201). MarkdownPreview is reached via the\n// always-mounted FileOverlay (file preview), so a static import would pull\n// react-markdown + plugins into the initial bundle. Behind this boundary the\n// markdown chunk loads only when a markdown file is actually previewed.\nconst LazyMarkdownPreview = lazy(() =>\n import('./markdown-preview-impl').then((m) => ({ default: m.MarkdownPreview })),\n)\n\nexport type { MarkdownPreviewProps }\n\nexport function MarkdownPreview(props: MarkdownPreviewProps) {\n return (\n <Suspense fallback={<div className=\"p-4 text-sm text-muted-foreground\">Loading preview…</div>}>\n <LazyMarkdownPreview {...props} />\n </Suspense>\n )\n}\n","import { useEffect, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { X, ZoomIn, ZoomOut } from 'lucide-react'\n\nfunction ImageLightbox({ src, alt, onClose }: { src: string; alt: string; onClose: () => void }) {\n const [zoomed, setZoomed] = useState(false)\n\n useEffect(() => {\n const prev = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n function onKey(e: KeyboardEvent) {\n if (e.key === 'Escape') onClose()\n }\n document.addEventListener('keydown', onKey)\n return () => {\n document.body.style.overflow = prev\n document.removeEventListener('keydown', onKey)\n }\n }, [onClose])\n\n return (\n <div className=\"fixed inset-0 z-[100] flex flex-col bg-black/95\">\n <div className=\"flex shrink-0 items-center justify-end gap-2 p-2\">\n <button\n type=\"button\"\n className=\"rounded-full bg-white/10 p-2 text-white/70 hover:bg-white/20 hover:text-white\"\n onClick={() => setZoomed(!zoomed)}\n title={zoomed ? 'Fit to screen' : 'Actual size'}\n >\n {zoomed ? <ZoomOut className=\"h-4 w-4\" /> : <ZoomIn className=\"h-4 w-4\" />}\n </button>\n <button\n type=\"button\"\n className=\"rounded-full bg-white/10 p-2 text-white/70 hover:bg-white/20 hover:text-white\"\n onClick={onClose}\n title=\"Close\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n </div>\n <div\n className={`min-h-0 flex-1 ${zoomed ? 'overflow-auto' : 'flex items-center justify-center overflow-hidden p-4'}`}\n onClick={zoomed ? undefined : onClose}\n >\n <img\n src={src}\n alt={alt}\n className={zoomed ? 'max-w-none' : 'max-h-full max-w-full cursor-zoom-in object-contain'}\n onClick={(e) => { e.stopPropagation(); setZoomed(!zoomed) }}\n />\n </div>\n </div>\n )\n}\n\nexport function ZoomableImage({\n src,\n alt = '',\n className,\n style,\n}: {\n src: string\n alt?: string\n className?: string\n style?: React.CSSProperties\n}) {\n const [open, setOpen] = useState(false)\n\n return (\n <>\n <img\n src={src}\n alt={alt}\n className={`${className || ''} cursor-zoom-in`}\n style={style}\n onClick={() => setOpen(true)}\n />\n {open && createPortal(\n <ImageLightbox src={src} alt={alt} onClose={() => setOpen(false)} />,\n document.body,\n )}\n </>\n )\n}\n","import { useEffect, useMemo, useRef, useState, type RefObject } from 'react'\nimport { errMessage } from 'agent-relay-sdk/types'\nimport { CornerUpLeft, File, Folder, FolderTree, GitBranch, Link2, Loader2, Plus, RefreshCw, X } from 'lucide-react'\nimport { useRelayStore } from '@/store'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Badge } from '@/components/ui/badge'\nimport { Switch } from '@/components/ui/switch'\nimport { CodePreview, canHighlightCode } from '@/components/shared/code-preview'\nimport { MarkdownPreview } from '@/components/shared/markdown-preview'\nimport { ZoomableImage } from '@/components/shared/zoomable-image'\nimport { CopyButton } from '@/components/shared/copy-button'\nimport type { FileEntry, FileListing, FileReadResult, GitFileStatus, Orchestrator } from '@/types'\n\nconst GIT_PREF_KEY = 'agent-relay:file-git-status'\n\nfunction readGitPref(): boolean {\n try {\n return window.localStorage.getItem(GIT_PREF_KEY) !== 'off'\n } catch {\n return true\n }\n}\n\nfunction writeGitPref(enabled: boolean) {\n try {\n window.localStorage.setItem(GIT_PREF_KEY, enabled ? 'on' : 'off')\n } catch {}\n}\n\nfunction gitStatusMeta(status?: GitFileStatus): { dot: string; text: string; label: string } | null {\n switch (status) {\n case 'staged': return { dot: 'bg-green-500', text: 'text-green-400', label: 'Staged' }\n case 'unstaged': return { dot: 'bg-amber-500', text: 'text-amber-400', label: 'Modified (unstaged)' }\n case 'staged-unstaged': return { dot: 'bg-amber-500', text: 'text-green-400', label: 'Staged + unstaged changes' }\n case 'untracked': return { dot: 'bg-sky-500', text: 'text-sky-400', label: 'Untracked' }\n default: return null\n }\n}\n\nfunction listUrl(orchestratorId: string, path: string, git: boolean): string {\n const base = `/orchestrators/${encodeURIComponent(orchestratorId)}/files/list?path=${encodeURIComponent(path)}`\n return git ? `${base}&git=1` : base\n}\n\nfunction GitDot({ status }: { status?: GitFileStatus }) {\n const meta = gitStatusMeta(status)\n if (!meta) return null\n return <span className={`h-1.5 w-1.5 shrink-0 rounded-full ${meta.dot}`} title={meta.label} />\n}\n\nfunction formatBytes(bytes?: number): string {\n if (bytes === undefined) return ''\n if (bytes < 1024) return `${bytes} B`\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`\n return `${(bytes / 1024 / 1024).toFixed(1)} MB`\n}\n\nfunction relativePath(path: string, baseDir: string): string {\n const base = baseDir.replace(/\\/+$/, '')\n return path === base ? '/' : path.startsWith(base + '/') ? path.slice(base.length + 1) : path\n}\n\nfunction isMarkdownPath(path: string, mediaType?: string): boolean {\n const lower = path.toLowerCase()\n return lower.endsWith('.md') || lower.endsWith('.mdx') || lower.endsWith('.markdown') || mediaType === 'text/markdown'\n}\n\nfunction modePreferenceKind(path: string, mediaType?: string, content?: string): 'markdown' | 'code' | null {\n if (isMarkdownPath(path, mediaType)) return 'markdown'\n if (canHighlightCode(path, mediaType, undefined, content)) return 'code'\n return null\n}\n\nfunction modePreferenceKey(kind: 'markdown' | 'code'): string {\n return `agent-relay:file-view-mode:${kind}`\n}\n\nfunction readModePreference(kind: 'markdown' | 'code'): 'raw' | 'rendered' {\n try {\n const value = window.localStorage.getItem(modePreferenceKey(kind))\n return value === 'raw' || value === 'rendered' ? value : 'rendered'\n } catch {\n return 'rendered'\n }\n}\n\nfunction writeModePreference(kind: 'markdown' | 'code', mode: 'raw' | 'rendered') {\n try {\n window.localStorage.setItem(modePreferenceKey(kind), mode)\n } catch {}\n}\n\nfunction pathSegments(path: string, baseDir: string): Array<{ label: string; path: string }> {\n const rel = relativePath(path, baseDir)\n if (rel === '/') return [{ label: '/', path: baseDir }]\n const parts = rel.split('/').filter(Boolean)\n const segments = [{ label: '/', path: baseDir }]\n for (let i = 0; i < parts.length; i++) {\n segments.push({ label: parts[i]!, path: `${baseDir.replace(/\\/+$/, '')}/${parts.slice(0, i + 1).join('/')}` })\n }\n return segments\n}\n\nfunction useFileRead(orchestratorId: string, selectedPath: string) {\n const apiCall = useRelayStore((s) => s.apiCall)\n const [file, setFile] = useState<FileReadResult | null>(null)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState('')\n\n useEffect(() => {\n if (!orchestratorId || !selectedPath) {\n setFile(null)\n setError('')\n return\n }\n let cancelled = false\n setLoading(true)\n setError('')\n apiCall<FileReadResult>('GET', `/orchestrators/${encodeURIComponent(orchestratorId)}/files/read?path=${encodeURIComponent(selectedPath)}`)\n .then((result) => { if (!cancelled) setFile(result) })\n .catch((e) => { if (!cancelled) { setFile(null); setError(errMessage(e)) } })\n .finally(() => { if (!cancelled) setLoading(false) })\n return () => { cancelled = true }\n }, [apiCall, orchestratorId, selectedPath])\n\n return { file, loading, error }\n}\n\nfunction useFileListing(orchestratorId: string, selectedPath: string, git = false) {\n const apiCall = useRelayStore((s) => s.apiCall)\n const [listing, setListing] = useState<FileListing | null>(null)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState('')\n\n useEffect(() => {\n if (!orchestratorId || !selectedPath) {\n setListing(null)\n setError('')\n return\n }\n let cancelled = false\n setLoading(true)\n setError('')\n apiCall<FileListing>('GET', listUrl(orchestratorId, selectedPath, git))\n .then((result) => { if (!cancelled) setListing(result) })\n .catch((e) => { if (!cancelled) { setListing(null); setError(errMessage(e)) } })\n .finally(() => { if (!cancelled) setLoading(false) })\n return () => { cancelled = true }\n }, [apiCall, orchestratorId, selectedPath, git])\n\n return { listing, loading, error }\n}\n\nfunction RawTextContent({ content, line, lineRef }: { content: string; line: number; lineRef: RefObject<HTMLDivElement | null> }) {\n const lines = content.split('\\n')\n\n return (\n <div className=\"w-full py-2 font-mono text-xs leading-5\">\n {lines.map((text, index) => {\n const lineNumber = index + 1\n const active = lineNumber === line\n return (\n <div\n key={lineNumber}\n ref={active ? lineRef : undefined}\n className={`grid grid-cols-[2.5rem_minmax(0,1fr)] px-1 sm:grid-cols-[4rem_minmax(0,1fr)] sm:px-2 ${active ? 'bg-primary/15' : ''}`}\n >\n <div className=\"select-none pr-2 text-right text-muted-foreground sm:pr-3\">{lineNumber}</div>\n <pre className=\"overflow-hidden whitespace-pre-wrap break-words\">{text || ' '}</pre>\n </div>\n )\n })}\n </div>\n )\n}\n\nexport function DirectoryContent({\n orchestratorId,\n selectedPath,\n onReadError,\n git = false,\n}: {\n orchestratorId: string\n selectedPath: string\n onReadError: (error: string) => void\n git?: boolean\n}) {\n const { listing, loading, error } = useFileListing(orchestratorId, selectedPath, git)\n\n useEffect(() => {\n onReadError(error)\n }, [error, onReadError])\n\n if (!selectedPath) {\n return (\n <div className=\"flex h-full items-center justify-center text-sm text-muted-foreground\">\n Select a directory to preview\n </div>\n )\n }\n if (loading) {\n return (\n <div className=\"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground\">\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n Loading directory\n </div>\n )\n }\n if (error) {\n return <div className=\"h-full bg-muted/20\" />\n }\n if (!listing) return null\n\n return (\n <div className=\"h-full overflow-auto bg-muted/20\">\n <div className=\"sticky top-0 z-10 flex items-center gap-2 border-b border-border bg-background px-3 py-2 text-xs\">\n <Folder className=\"h-3.5 w-3.5 text-blue-400\" />\n <span className=\"min-w-0 flex-1 truncate font-mono\">{listing.path}</span>\n <Badge variant=\"outline\" className=\"text-[10px]\">{listing.entries.length} items</Badge>\n </div>\n <div className=\"divide-y divide-border/60\">\n {listing.entries.map((entry) => {\n const Icon = entry.type === 'directory' ? Folder : File\n const gitMeta = gitStatusMeta(entry.gitStatus)\n return (\n <div key={entry.path} className=\"flex items-center gap-2 px-3 py-2 text-sm\">\n <Icon className={`h-4 w-4 shrink-0 ${entry.type === 'directory' ? 'text-blue-400' : 'text-muted-foreground'}`} />\n <span className={`min-w-0 flex-1 truncate font-mono text-xs ${gitMeta?.text ?? ''}`}>{entry.name}</span>\n {entry.symlink && <Link2 className=\"h-3 w-3 shrink-0 text-muted-foreground/60\" />}\n <GitDot status={entry.gitStatus} />\n {entry.type !== 'directory' && <span className=\"text-[10px] text-muted-foreground\">{formatBytes(entry.size)}</span>}\n </div>\n )\n })}\n {listing.entries.length === 0 && <div className=\"px-3 py-8 text-center text-sm text-muted-foreground\">No files</div>}\n </div>\n </div>\n )\n}\n\nexport function FileContent({\n orchestratorId,\n selectedPath,\n line,\n onReadError,\n}: {\n orchestratorId: string\n selectedPath: string\n line: number\n onReadError: (error: string) => void\n}) {\n const { file, loading, error } = useFileRead(orchestratorId, selectedPath)\n const lineRef = useRef<HTMLDivElement | null>(null)\n const [mode, setMode] = useState<'raw' | 'rendered'>('raw')\n\n useEffect(() => {\n onReadError(error)\n }, [error, onReadError])\n\n useEffect(() => {\n if (line > 0) lineRef.current?.scrollIntoView({ block: 'center' })\n }, [file, line])\n\n useEffect(() => {\n if (!file || file.encoding === 'binary') return\n if (line > 0) {\n setMode('raw')\n return\n }\n const kind = modePreferenceKind(file.path, file.mediaType, file.content)\n setMode(kind ? readModePreference(kind) : 'raw')\n }, [file?.path, file?.encoding, file?.mediaType, file?.content, line])\n\n function selectMode(nextMode: 'raw' | 'rendered', kind: 'markdown' | 'code' | null) {\n setMode(nextMode)\n if (kind) writeModePreference(kind, nextMode)\n }\n\n if (!selectedPath) {\n return (\n <div className=\"flex h-full items-center justify-center text-sm text-muted-foreground\">\n Select a file to preview\n </div>\n )\n }\n if (loading) {\n return (\n <div className=\"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground\">\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n Loading file\n </div>\n )\n }\n if (error) {\n return <div className=\"h-full bg-muted/20\" />\n }\n if (!file) return null\n if (file.encoding === 'base64') {\n return (\n <div className=\"flex h-full flex-col bg-muted/20\">\n <div className=\"sticky top-0 z-10 flex items-center gap-2 border-b border-border bg-background px-3 py-2 text-xs\">\n <File className=\"h-3.5 w-3.5 text-muted-foreground\" />\n <span className=\"min-w-0 flex-1 truncate font-mono\">{file.path}</span>\n <CopyButton value={file.path} label=\"Copy path\" copiedLabel=\"Copied path\" size=\"icon\" variant=\"ghost\" className=\"h-7 w-7 shrink-0\" />\n <Badge variant=\"outline\" className=\"text-[10px]\">{formatBytes(file.size)}</Badge>\n </div>\n <div className=\"flex min-h-0 flex-1 items-center justify-center overflow-auto p-4\">\n <ZoomableImage\n src={`data:${file.mediaType};base64,${file.content ?? ''}`}\n alt={file.name}\n className=\"max-h-full max-w-full object-contain\"\n style={{ imageRendering: file.mediaType === 'image/svg+xml' ? 'auto' : undefined }}\n />\n </div>\n </div>\n )\n }\n if (file.encoding === 'binary') {\n return (\n <div className=\"p-4 text-sm\">\n <div className=\"font-medium\">{file.name}</div>\n <div className=\"mt-1 text-muted-foreground\">{file.truncated ? 'File too large to preview.' : 'Binary file preview is not available.'}</div>\n <div className=\"mt-3 flex gap-2\">\n <Badge variant=\"secondary\">{file.mediaType}</Badge>\n <Badge variant=\"outline\">{formatBytes(file.size)}</Badge>\n </div>\n </div>\n )\n }\n\n const content = file.content ?? ''\n const markdown = isMarkdownPath(file.path, file.mediaType)\n const highlightable = !markdown && canHighlightCode(file.path, file.mediaType, undefined, content)\n const canRender = markdown || highlightable\n const preferenceKind = markdown ? 'markdown' : highlightable ? 'code' : null\n\n return (\n <div className=\"h-full overflow-auto bg-muted/20\">\n <div className=\"sticky top-0 z-10 flex items-center gap-2 border-b border-border bg-background px-3 py-2 text-xs\">\n <File className=\"h-3.5 w-3.5 text-muted-foreground\" />\n <span className=\"min-w-0 flex-1 truncate font-mono\">{file.path}</span>\n <CopyButton value={file.path} label=\"Copy path\" copiedLabel=\"Copied path\" size=\"icon\" variant=\"ghost\" className=\"h-7 w-7 shrink-0\" />\n {file.truncated && <Badge variant=\"secondary\" className=\"text-[10px]\">truncated</Badge>}\n <Badge variant=\"outline\" className=\"text-[10px]\">{formatBytes(file.size)}</Badge>\n {canRender && (\n <div className=\"flex shrink-0 rounded-md border border-border bg-muted/40 p-0.5\">\n <button\n type=\"button\"\n className={`rounded px-2 py-1 text-[10px] font-medium ${mode === 'raw' ? 'bg-background text-foreground shadow-sm' : 'text-muted-foreground hover:text-foreground'}`}\n onClick={() => selectMode('raw', preferenceKind)}\n >\n Raw\n </button>\n <button\n type=\"button\"\n className={`rounded px-2 py-1 text-[10px] font-medium ${mode === 'rendered' ? 'bg-background text-foreground shadow-sm' : 'text-muted-foreground hover:text-foreground'}`}\n onClick={() => selectMode('rendered', preferenceKind)}\n >\n {markdown ? 'Rendered' : 'Highlighted'}\n </button>\n </div>\n )}\n </div>\n {mode === 'rendered' && markdown && <MarkdownPreview content={content} path={file.path} />}\n {mode === 'rendered' && highlightable && <CodePreview content={content} path={file.path} mediaType={file.mediaType} />}\n {mode === 'raw' && <RawTextContent content={content} line={line} lineRef={lineRef} />}\n </div>\n )\n}\n\nfunction FileBrowser({ overlay = false }: { overlay?: boolean }) {\n const apiCall = useRelayStore((s) => s.apiCall)\n const orchestrators = useRelayStore((s) => s.orchestrators)\n const orchestratorId = useRelayStore((s) => s.fileOrchestratorId)\n const path = useRelayStore((s) => s.filePath)\n const selectedPath = useRelayStore((s) => s.fileSelectedPath)\n const selectedLine = useRelayStore((s) => s.fileSelectedLine)\n const set = useRelayStore((s) => s.set)\n const closeFileOverlay = useRelayStore((s) => s.closeFileOverlay)\n const openOrchestratorSpawnAt = useRelayStore((s) => s.openOrchestratorSpawnAt)\n const [listing, setListing] = useState<FileListing | null>(null)\n const [pathDraft, setPathDraft] = useState(path)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState('')\n const [readError, setReadError] = useState('')\n const [gitEnabled, setGitEnabled] = useState(readGitPref)\n\n const onlineOrchestrators = useMemo(() => orchestrators.filter((orch) => orch.status === 'online'), [orchestrators])\n const selectedOrchestrator = orchestrators.find((orch) => orch.id === orchestratorId) || onlineOrchestrators[0]\n\n useEffect(() => {\n if (!selectedOrchestrator) return\n const patch: { fileOrchestratorId?: string; filePath?: string } = {}\n if (!orchestratorId) patch.fileOrchestratorId = selectedOrchestrator.id\n if (!path) patch.filePath = selectedOrchestrator.baseDir\n if (Object.keys(patch).length) set(patch)\n }, [orchestratorId, path, selectedOrchestrator, set])\n\n useEffect(() => setPathDraft(path), [path])\n\n async function load(nextPath = path) {\n if (!selectedOrchestrator || !nextPath) return\n setLoading(true)\n setError('')\n try {\n const result = await apiCall<FileListing>('GET', listUrl(selectedOrchestrator.id, nextPath, gitEnabled))\n setListing(result)\n set({ filePath: result.path })\n setPathDraft(result.path)\n setReadError('')\n } catch (e) {\n setError(errMessage(e))\n } finally {\n setLoading(false)\n }\n }\n\n useEffect(() => {\n void load(path)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedOrchestrator?.id, path, gitEnabled])\n\n function toggleGit(enabled: boolean) {\n setGitEnabled(enabled)\n writeGitPref(enabled)\n }\n\n function changeOrchestrator(nextId: string) {\n const next = orchestrators.find((orch) => orch.id === nextId)\n set({\n fileOrchestratorId: nextId,\n filePath: next?.baseDir || '',\n fileSelectedPath: '',\n fileSelectedLine: 0,\n })\n }\n\n function openEntry(entry: FileEntry) {\n setReadError('')\n if (entry.type === 'directory') set({ filePath: entry.path, fileSelectedPath: '', fileSelectedLine: 0 })\n else set({ fileSelectedPath: entry.path, fileSelectedLine: 0 })\n }\n\n function spawnFromHere() {\n if (!selectedOrchestrator) return\n const cwd = pathDraft.trim() || path || selectedOrchestrator.baseDir\n if (overlay) closeFileOverlay()\n openOrchestratorSpawnAt({ orchestratorId: selectedOrchestrator.id, cwd })\n }\n\n const segments = listing ? pathSegments(listing.path, listing.baseDir) : []\n const visibleError = error || readError\n\n return (\n <div className={overlay ? 'flex h-full flex-col' : 'flex h-[calc(100dvh-5rem)] flex-col gap-3 md:gap-4'}>\n <div className={`flex flex-wrap items-center gap-2 ${selectedPath ? 'hidden md:flex' : ''}`}>\n <div className=\"flex items-center gap-2 text-lg font-semibold\">\n <FolderTree className=\"h-5 w-5 text-primary\" />\n Files\n </div>\n <select\n value={selectedOrchestrator?.id || ''}\n onChange={(e) => changeOrchestrator(e.target.value)}\n className=\"h-9 rounded-md border border-input bg-background px-3 text-sm\"\n >\n {onlineOrchestrators.length === 0 && <option value=\"\">No online orchestrators</option>}\n {onlineOrchestrators.map((orch) => <option key={orch.id} value={orch.id}>{orch.hostname || orch.id}</option>)}\n </select>\n {overlay && (\n <Button size=\"icon\" variant=\"ghost\" className=\"ml-auto h-8 w-8\" onClick={closeFileOverlay} title=\"Close\">\n <X className=\"h-4 w-4\" />\n </Button>\n )}\n </div>\n\n <div className={`flex flex-wrap items-center gap-2 ${selectedPath ? 'hidden md:flex' : ''}`}>\n <Input\n value={pathDraft}\n onChange={(e) => setPathDraft(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') set({ filePath: pathDraft, fileSelectedPath: '', fileSelectedLine: 0 })\n }}\n className=\"min-w-0 flex-1 basis-full font-mono text-xs sm:basis-auto\"\n placeholder={selectedOrchestrator?.baseDir || 'Path'}\n />\n <Button size=\"sm\" variant=\"outline\" className=\"gap-1\" onClick={() => load(pathDraft)} disabled={loading || !selectedOrchestrator}>\n {loading ? <Loader2 className=\"h-3.5 w-3.5 animate-spin\" /> : <RefreshCw className=\"h-3.5 w-3.5\" />}\n Open\n </Button>\n <Button size=\"sm\" className=\"gap-1\" onClick={spawnFromHere} disabled={!selectedOrchestrator}>\n <Plus className=\"h-3.5 w-3.5\" />\n <span className=\"sm:hidden\">Spawn</span>\n <span className=\"hidden sm:inline\">Spawn from here</span>\n </Button>\n <label className=\"flex items-center gap-1.5 text-xs text-muted-foreground\" title=\"Show git status colors\">\n <GitBranch className=\"h-3.5 w-3.5\" />\n <span className=\"hidden sm:inline\">Git</span>\n <Switch checked={gitEnabled} onCheckedChange={toggleGit} />\n </label>\n </div>\n\n {segments.length > 0 && (\n <div className={`flex flex-wrap items-center gap-1 text-xs text-muted-foreground ${selectedPath ? 'hidden md:flex' : ''}`}>\n {segments.map((segment, index) => (\n <button\n key={`${segment.path}-${index}`}\n type=\"button\"\n className=\"rounded px-1.5 py-0.5 font-mono hover:bg-accent hover:text-foreground\"\n onClick={() => set({ filePath: segment.path, fileSelectedPath: '', fileSelectedLine: 0 })}\n >\n {segment.label}{index < segments.length - 1 && segment.label !== '/' ? ' /' : ''}\n </button>\n ))}\n </div>\n )}\n\n {visibleError && <div className=\"rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-sm text-destructive\">{visibleError}</div>}\n\n <div className={`grid min-h-0 flex-1 overflow-hidden md:rounded-md md:border md:border-border md:grid-cols-[22rem_minmax(0,1fr)] ${selectedPath ? '' : 'rounded-md border border-border'}`}>\n <div className={`min-h-0 overflow-auto border-b border-border bg-card md:border-b-0 md:border-r ${selectedPath ? 'hidden md:block' : ''}`}>\n {listing?.parent && (\n <button type=\"button\" className=\"flex w-full items-center gap-2 px-3 py-2 text-left text-sm hover:bg-accent\" onClick={() => set({ filePath: listing.parent!, fileSelectedPath: '', fileSelectedLine: 0 })}>\n <CornerUpLeft className=\"h-4 w-4 text-muted-foreground\" />\n <span>Parent directory</span>\n </button>\n )}\n {listing?.entries.map((entry) => {\n const active = selectedPath === entry.path || path === entry.path\n const Icon = entry.type === 'directory' ? Folder : File\n const gitMeta = gitStatusMeta(entry.gitStatus)\n return (\n <button\n type=\"button\"\n key={entry.path}\n className={`flex w-full items-center gap-2 px-3 py-2 text-left text-sm hover:bg-accent ${active ? 'bg-accent' : ''}`}\n onClick={() => openEntry(entry)}\n >\n <Icon className={`h-4 w-4 shrink-0 ${entry.type === 'directory' ? 'text-blue-400' : 'text-muted-foreground'}`} />\n <span className={`min-w-0 flex-1 truncate font-mono text-xs ${gitMeta?.text ?? ''}`}>{entry.name}</span>\n {entry.symlink && <Link2 className=\"h-3 w-3 shrink-0 text-muted-foreground/60\" />}\n <GitDot status={entry.gitStatus} />\n {entry.type !== 'directory' && <span className=\"text-[10px] text-muted-foreground\">{formatBytes(entry.size)}</span>}\n </button>\n )\n })}\n {!loading && listing && listing.entries.length === 0 && <div className=\"px-3 py-8 text-center text-sm text-muted-foreground\">No files</div>}\n </div>\n <div className={`flex min-h-0 flex-col overflow-hidden ${selectedPath ? '' : 'hidden md:flex'}`}>\n <button\n type=\"button\"\n className=\"flex items-center gap-1.5 border-b border-border px-3 py-2 text-xs text-muted-foreground hover:text-foreground md:hidden\"\n onClick={() => set({ fileSelectedPath: '', fileSelectedLine: 0 })}\n >\n <CornerUpLeft className=\"h-3.5 w-3.5\" />\n Back to files\n </button>\n <div className=\"min-h-0 flex-1\">\n <FileContent orchestratorId={selectedOrchestrator?.id || ''} selectedPath={selectedPath} line={selectedLine} onReadError={setReadError} />\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport function FilesView() {\n return <FileBrowser />\n}\n\nexport function FileOverlay() {\n const open = useRelayStore((s) => s.fileOverlayOpen)\n if (!open) return null\n return (\n <div className=\"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm\">\n <div className=\"absolute inset-4 overflow-hidden rounded-md border border-border bg-background p-4 shadow-xl\">\n <FileBrowser overlay />\n </div>\n </div>\n )\n}\n","import * as React from \"react\"\nimport { Dialog as SheetPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { XIcon } from \"lucide-react\"\n\nfunction useBackClose(open: boolean | undefined, onOpenChange?: (open: boolean) => void) {\n const pushedRef = React.useRef(false)\n const cbRef = React.useRef(onOpenChange)\n cbRef.current = onOpenChange\n\n React.useEffect(() => {\n if (!open || !cbRef.current) { return }\n window.history.pushState({ sheetGuard: true }, '')\n pushedRef.current = true\n function onPop() {\n if (pushedRef.current) { pushedRef.current = false; cbRef.current?.(false) }\n }\n window.addEventListener('popstate', onPop)\n return () => {\n window.removeEventListener('popstate', onPop)\n if (pushedRef.current) { pushedRef.current = false; window.history.back() }\n }\n }, [open])\n}\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n useBackClose(props.open, props.onOpenChange)\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n \"fixed z-50 flex flex-col bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out overflow-hidden max-w-[100dvw] data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-full data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-full data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close data-slot=\"sheet-close\" asChild>\n <Button\n variant=\"ghost\"\n className=\"absolute top-3 right-3\"\n size=\"icon-sm\"\n >\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </Button>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-0.5 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\n \"font-heading text-base font-medium text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Tabs as TabsPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Tabs({\n className,\n orientation = \"horizontal\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n className={cn(\n \"group/tabs flex gap-2 data-horizontal:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst tabsListVariants = cva(\n \"group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"gap-1 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List> &\n VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent\",\n \"data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground\",\n \"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 text-sm outline-none\", className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","import { cn } from '@/lib/utils'\nimport { statusDotColor } from '@/lib/display'\nimport type { Agent } from '@/types'\n\nexport function StatusDot({ agent, now, className }: { agent: Agent | null; now?: number; className?: string }) {\n return <span className={cn('inline-block w-2.5 h-2.5 rounded-full shrink-0', statusDotColor(agent, now), className)} />\n}\n","import { cn } from '@/lib/utils'\nimport { agentType as getAgentType } from '@/lib/display'\nimport { Bot, Terminal, User, Server, MessagesSquare, Sun } from 'lucide-react'\nimport type { Agent } from '@/types'\n\nconst typeStyles: Record<string, string> = {\n codex: 'text-blue-400 bg-blue-500/10 border-blue-500/25',\n claude: 'text-yellow-400 bg-yellow-500/10 border-yellow-500/25',\n user: 'text-emerald-400 bg-emerald-500/10 border-emerald-500/25',\n system: 'text-purple-400 bg-purple-500/10 border-purple-500/25',\n channel: 'text-blue-400 bg-blue-500/10 border-blue-500/25',\n agent: 'text-zinc-400 bg-zinc-500/10 border-zinc-500/25',\n}\n\nconst typeIcons: Record<string, typeof Bot> = {\n codex: Terminal,\n claude: Sun,\n user: User,\n system: Server,\n channel: MessagesSquare,\n agent: Bot,\n}\n\nexport function AgentTypeIcon({ agent, className }: { agent: Agent | null | undefined; className?: string }) {\n const type = getAgentType(agent)\n const Icon = typeIcons[type] || Bot\n return (\n <span className={cn('inline-flex items-center justify-center w-5 h-5 rounded-md border text-sm', typeStyles[type] || typeStyles.agent, className)}>\n <Icon className=\"w-3.5 h-3.5\" />\n </span>\n )\n}\n","import { stringValue } from 'agent-relay-sdk/types'\nimport { Badge } from '@/components/ui/badge'\nimport { activeSubagents, shortPath } from '@/lib/display'\nimport type { Agent } from '@/types'\nimport { Cable, Eye, GitBranch, Layers, Lock, LockOpen, Rocket, Share2 } from 'lucide-react'\n\nexport function AgentRuntimeBadges({ agent, compact = false }: { agent: Agent; compact?: boolean }) {\n const badges = runtimeBadges(agent)\n if (badges.length === 0) return null\n return (\n <div className=\"flex flex-wrap gap-1\">\n {badges.slice(0, compact ? 4 : undefined).map((badge) => (\n <Badge key={badge} variant=\"outline\" className=\"text-[9px] px-1 py-0 h-4\">{badge}</Badge>\n ))}\n </div>\n )\n}\n\nexport function AgentRuntimeChips({ agent, compact = false, className = '' }: { agent: Agent; compact?: boolean; className?: string }) {\n const chips = runtimeChips(agent)\n return (\n <div className={`flex flex-wrap items-center gap-1 ${className}`}>\n {chips.map((chip) => {\n const Icon = chip.Icon\n return (\n <span\n key={chip.key}\n title={chip.title}\n className={`inline-flex h-5 min-w-5 items-center justify-center gap-1 rounded-md border px-1.5 text-[10px] leading-none ${chip.className}`}\n >\n <Icon className=\"h-3 w-3 shrink-0\" />\n {!compact && <span>{chip.label}</span>}\n </span>\n )\n })}\n </div>\n )\n}\n\nexport function ContextMeter({ agent }: { agent: Agent }) {\n const context = agent.context\n if (!context) return null\n const percent = Math.round(context.utilization * 100)\n const tone = percent >= 80 ? 'bg-red-500' : percent >= 60 ? 'bg-yellow-500' : 'bg-emerald-500'\n return (\n <div className=\"space-y-1\">\n <div className=\"flex justify-between text-[10px] text-muted-foreground\">\n <span>{context.lifecycleState}</span>\n <span>{percent}%</span>\n </div>\n <div className=\"h-1.5 rounded-full bg-muted overflow-hidden\">\n <div className={`h-full ${tone}`} style={{ width: `${Math.max(0, Math.min(100, percent))}%` }} />\n </div>\n </div>\n )\n}\n\nfunction runtimeChips(agent: Agent) {\n const spawned = isRelaySpawned(agent)\n const approval = approvalMode(agent)\n const workspace = agentWorkspaceMeta(agent)\n return [\n {\n key: 'origin',\n label: spawned ? 'Relay' : 'External',\n title: spawned ? 'Agent Relay spawned this agent' : 'Externally started agent registered with Agent Relay',\n Icon: spawned ? Rocket : Cable,\n className: spawned ? 'border-sky-500/30 bg-sky-500/10 text-sky-300' : 'border-zinc-500/30 bg-zinc-500/10 text-zinc-300',\n },\n approval,\n workspace,\n ]\n}\n\nfunction isRelaySpawned(agent: Agent): boolean {\n return typeof agent.meta?.spawnRequestId === 'string' ||\n typeof agent.meta?.policyName === 'string' ||\n typeof agent.meta?.automationRunId === 'string'\n}\n\nfunction approvalMode(agent: Agent) {\n const value = String(agent.providerCapabilities?.session?.approvalMode || agent.meta?.approvalMode || 'guarded').toLowerCase()\n if (value === 'open') {\n return {\n key: 'approval',\n label: 'Open',\n title: 'Approval mode: open',\n Icon: LockOpen,\n className: 'border-emerald-500/30 bg-emerald-500/10 text-emerald-300',\n }\n }\n if (value === 'read-only') {\n return {\n key: 'approval',\n label: 'Read-only',\n title: 'Approval mode: read-only',\n Icon: Eye,\n className: 'border-blue-500/30 bg-blue-500/10 text-blue-300',\n }\n }\n return {\n key: 'approval',\n label: 'Guarded',\n title: 'Approval mode: guarded',\n Icon: Lock,\n className: 'border-amber-500/30 bg-amber-500/10 text-amber-300',\n }\n}\n\n// Resolved workspace mode + the chip presentation (icon/label/title/colors).\n// Exported so the chat agent list can render just the icon next to a project name.\nexport function agentWorkspaceMeta(agent: Agent) {\n const workspace = recordValue(agent.meta?.workspace)\n const requested = stringValue(workspace.requestedMode) || stringValue(agent.meta?.workspaceMode)\n const effective = stringValue(workspace.mode)\n const mode = requested && requested !== 'inherit' ? requested : effective && requested !== 'inherit' ? effective : 'default'\n if (mode === 'isolated') {\n return {\n key: 'workspace',\n label: 'Isolated',\n title: 'Workspace: isolated worktree',\n Icon: GitBranch,\n iconColor: 'text-violet-300',\n className: 'border-violet-500/30 bg-violet-500/10 text-violet-300',\n }\n }\n if (mode === 'shared') {\n return {\n key: 'workspace',\n label: 'Shared',\n title: 'Workspace: shared repo checkout',\n Icon: Share2,\n iconColor: 'text-cyan-300',\n className: 'border-cyan-500/30 bg-cyan-500/10 text-cyan-300',\n }\n }\n return {\n key: 'workspace',\n label: 'Default',\n title: effective ? `Workspace: default/inherit, resolved to ${effective}` : 'Workspace: default/inherit',\n Icon: Layers,\n iconColor: 'text-zinc-400',\n className: 'border-zinc-500/30 bg-zinc-500/10 text-zinc-300',\n }\n}\n\nfunction recordValue(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' && !Array.isArray(value) ? value as Record<string, unknown> : {}\n}\n\n// A short, human project name for an agent. Prefers the workspace repo root /\n// source cwd (so an isolated agent shows its *project*, not its long worktree\n// branch dir), falling back to the agent's cwd. '' when nothing is known.\nexport function agentProjectName(agent: Agent): string {\n const workspace = recordValue(agent.meta?.workspace)\n const root = stringValue(workspace.repoRoot) || stringValue(workspace.sourceCwd) || stringValue(agent.meta?.cwd)\n return root ? shortPath(root, 2) : ''\n}\n\nfunction runtimeBadges(agent: Agent): string[] {\n const caps = agent.providerCapabilities\n const context = agent.context\n const badges: string[] = []\n if (caps?.lifecycle.managed) badges.push('managed')\n else if (caps) badges.push('bridge')\n if (caps?.session?.approvalMode === 'read-only') badges.push('read-only')\n else if (caps?.session?.fileWrite) badges.push('write')\n if (caps?.session?.shell) badges.push('shell')\n if (caps?.model?.alias || caps?.model?.id) badges.push(String(caps.model.alias || caps.model.id))\n const subagentCount = activeSubagents(agent).length\n if (subagentCount) badges.push(subagentCount === 1 ? '1 subagent' : `${subagentCount} subagents`)\n if (context) badges.push(`${Math.round(context.utilization * 100)}% ctx`)\n return badges\n}\n\nexport function ContextRing({ utilization, size = 26, className }: { utilization: number; size?: number; className?: string }) {\n const pct = Math.round(Math.min(1, Math.max(0, utilization)) * 100)\n const stroke = size >= 24 ? 3 : 2.5\n const c = size / 2\n const r = c - stroke\n const circumference = 2 * Math.PI * r\n const offset = circumference * (1 - Math.min(1, Math.max(0, utilization)))\n const color = utilization > 0.8 ? 'text-red-400' : utilization > 0.5 ? 'text-yellow-400' : 'text-emerald-400'\n return (\n <div className={`relative shrink-0 ${className ?? ''}`} style={{ width: size, height: size }} title={`Context: ${pct}%`}>\n <svg width={size} height={size} viewBox={`0 0 ${size} ${size}`} className=\"rotate-[-90deg]\">\n <circle cx={c} cy={c} r={r} fill=\"none\" strokeWidth={stroke} className=\"stroke-muted-foreground/20\" />\n <circle cx={c} cy={c} r={r} fill=\"none\" strokeWidth={stroke} strokeDasharray={circumference} strokeDashoffset={offset} strokeLinecap=\"round\" className={`${color} stroke-current transition-all duration-500`} />\n </svg>\n <span className={`absolute inset-0 flex items-center justify-center font-semibold leading-none ${color}`} style={{ fontSize: size >= 24 ? 8 : 7 }}>{pct}</span>\n </div>\n )\n}\n\nexport function contextTokenText(agent: Agent): string | null {\n const context = agent.context\n if (!context?.tokensUsed && !context?.tokensMax) return null\n if (context.tokensUsed && context.tokensMax) return `${formatTokenCount(context.tokensUsed)} / ${formatTokenCount(context.tokensMax)}`\n if (context.tokensUsed) return formatTokenCount(context.tokensUsed)\n return context.tokensMax ? formatTokenCount(context.tokensMax) : null\n}\n\nfunction formatTokenCount(tokens: number): string {\n if (tokens >= 1_000_000) return `${(tokens / 1_000_000).toFixed(tokens % 1_000_000 === 0 ? 0 : 1)}M`\n if (tokens >= 1_000) return `${Math.round(tokens / 1_000)}K`\n return String(tokens)\n}\n","import { lazy, Suspense } from 'react'\nimport type { TerminalDialogProps } from './terminal-viewer-impl'\n\n// Lazy boundary for the xterm.js terminal (#201). The impl pulls in @xterm/* +\n// its stylesheet (~heavy); keeping it behind a dynamic import keeps xterm out of\n// the initial bundle. Consumers import { TerminalDialog } from here unchanged.\n//\n// The `if (!open) return null` gate matters: TerminalDialog is rendered (closed)\n// by always-mounted consumers like the agent detail drawer. Returning null while\n// closed means the dynamic import only fires when a terminal is actually opened,\n// so xterm loads on demand rather than eagerly on mount.\nconst LazyTerminalDialog = lazy(() =>\n import('./terminal-viewer-impl').then((m) => ({ default: m.TerminalDialog })),\n)\n\nexport function TerminalDialog(props: TerminalDialogProps) {\n if (!props.open) return null\n return (\n <Suspense fallback={null}>\n <LazyTerminalDialog {...props} />\n </Suspense>\n )\n}\n","import { useEffect, useState } from 'react'\nimport { errMessage } from 'agent-relay-sdk/types'\nimport { Download, Pause, Play, Search, Brain, Terminal } from 'lucide-react'\nimport { useRelayStore } from '@/store'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { cn } from '@/lib/utils'\nimport { downloadText } from '@/lib/display'\n\ninterface LogViewerProps {\n orchestratorId: string\n session: string\n lines?: number\n}\n\nexport function LogViewer({ orchestratorId, session, lines = 200 }: LogViewerProps) {\n const apiCall = useRelayStore((s) => s.apiCall)\n const [logLines, setLogLines] = useState<string[]>([])\n const [query, setQuery] = useState('')\n const [paused, setPaused] = useState(false)\n // 'provider' = raw TUI output; 'mirror' = clean session-mirror diagnostics.\n const [stream, setStream] = useState<'provider' | 'mirror'>('provider')\n const [error, setError] = useState<string | null>(null)\n\n async function load() {\n if (paused) return\n try {\n const streamQuery = stream === 'mirror' ? '&stream=mirror' : ''\n const result = await apiCall<{ lines: string[] }>('GET', `/orchestrators/${encodeURIComponent(orchestratorId)}/logs/${encodeURIComponent(session)}?lines=${lines}${streamQuery}`)\n setLogLines(result.lines || [])\n setError(null)\n } catch (e) {\n setError(errMessage(e))\n }\n }\n\n useEffect(() => {\n void load()\n const timer = setInterval(() => void load(), 1500)\n return () => clearInterval(timer)\n }, [orchestratorId, session, paused, stream])\n\n const visible = query ? logLines.filter((line) => line.toLowerCase().includes(query.toLowerCase())) : logLines\n\n return (\n <div className=\"space-y-2\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <div className=\"relative min-w-48 flex-1\">\n <Search className=\"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground\" />\n <Input className=\"pl-8\" value={query} onChange={(e) => setQuery(e.target.value)} placeholder=\"Search logs\" />\n </div>\n <div className=\"flex rounded-md border border-border overflow-hidden\">\n <button\n type=\"button\"\n onClick={() => setStream('provider')}\n title=\"Provider output\"\n className={cn('flex items-center gap-1 px-2 py-1.5 text-xs', stream === 'provider' ? 'bg-accent text-accent-foreground' : 'text-muted-foreground hover:bg-accent/50')}\n >\n <Terminal className=\"h-3.5 w-3.5\" /> Output\n </button>\n <button\n type=\"button\"\n onClick={() => setStream('mirror')}\n title=\"Session-mirror diagnostics (clean)\"\n className={cn('flex items-center gap-1 px-2 py-1.5 text-xs border-l border-border', stream === 'mirror' ? 'bg-accent text-accent-foreground' : 'text-muted-foreground hover:bg-accent/50')}\n >\n <Brain className=\"h-3.5 w-3.5\" /> Mirror\n </button>\n </div>\n <Button type=\"button\" variant=\"outline\" size=\"icon\" onClick={() => setPaused((v) => !v)} title={paused ? 'Resume logs' : 'Pause logs'}>\n {paused ? <Play className=\"h-4 w-4\" /> : <Pause className=\"h-4 w-4\" />}\n </Button>\n <Button type=\"button\" variant=\"outline\" size=\"icon\" onClick={() => downloadText(`${session}.log`, logLines.join('\\n'), 'text/plain')} title=\"Download logs\">\n <Download className=\"h-4 w-4\" />\n </Button>\n </div>\n {error && <div className=\"text-sm text-destructive\">{error}</div>}\n <pre className=\"max-h-96 overflow-auto rounded-md border border-border bg-zinc-950 p-3 text-xs leading-5 text-zinc-100\">\n {visible.join('\\n') || 'No log output'}\n </pre>\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\nimport { api } from '@/lib/api'\nimport { useRelayStore, useNow } from '@/store'\nimport { Badge } from '@/components/ui/badge'\nimport { CopyButton } from '@/components/shared/copy-button'\nimport { timeAgo, fmtTime } from '@/lib/display'\nimport { Stethoscope, ChevronDown, ChevronRight } from 'lucide-react'\nimport type { Agent, ManagedPolicyHealth, ActivityEvent, Orchestrator, AgentProfileProjectionReport } from '@/types'\nimport { isRecord } from 'agent-relay-sdk/types'\n\ninterface AgentDiagnosticsProps {\n agent: Agent\n orchestrators: Orchestrator[]\n}\n\nconst LIFECYCLE_STATUS_COLORS: Record<string, string> = {\n running: 'bg-emerald-500/20 text-emerald-400',\n starting: 'bg-blue-500/20 text-blue-400',\n stopping: 'bg-yellow-500/20 text-yellow-400',\n stopped: 'bg-zinc-500/20 text-zinc-400',\n backoff: 'bg-red-500/20 text-red-400',\n}\n\nexport function AgentDiagnostics({ agent, orchestrators }: AgentDiagnosticsProps) {\n const now = useNow()\n const [policyHealth, setPolicyHealth] = useState<ManagedPolicyHealth | null>(null)\n const [agentEvents, setAgentEvents] = useState<ActivityEvent[]>([])\n const [expandedSections, setExpandedSections] = useState({ spawn: true, workspace: true, runtime: true, profile: true, lifecycle: true, activity: false } as Record<string, boolean>)\n\n const policyName = typeof agent.meta?.policyName === 'string' ? agent.meta.policyName : null\n const profileName = typeof agent.meta?.profile === 'string' ? agent.meta.profile : null\n const agentProfile = isRecord(agent.meta?.agentProfile) ? agent.meta.agentProfile : null\n const profileProjection = isProfileProjectionReport(agentProfile?.projection) ? agentProfile.projection : null\n const managedOrch = orchestrators.find((o) => o.managedAgents.some((m) => m.agentId === agent.id))\n const managedAgent = managedOrch?.managedAgents.find((m) => m.agentId === agent.id)\n\n useEffect(() => {\n if (!policyName) return\n let cancelled = false\n api<ManagedPolicyHealth>('GET', '/spawn-policies/' + encodeURIComponent(policyName) + '/status')\n .then((health) => { if (!cancelled) setPolicyHealth(health) })\n .catch(() => { if (!cancelled) setPolicyHealth(null) })\n return () => { cancelled = true }\n }, [policyName, agent.lastSeen])\n\n useEffect(() => {\n let cancelled = false\n api<ActivityEvent[]>('GET', '/activity?agentId=' + encodeURIComponent(agent.id) + '&limit=20')\n .then((events) => { if (!cancelled) setAgentEvents(events) })\n .catch(() => { if (!cancelled) setAgentEvents([]) })\n return () => { cancelled = true }\n }, [agent.id, agent.lastSeen])\n\n function toggleSection(key: string) {\n setExpandedSections((s) => ({ ...s, [key]: !s[key] }))\n }\n\n function buildDiagnosticBundle(): string {\n const policy = policyHealth?.policy\n const state = policyHealth?.state\n const lines: string[] = [\n '# Agent Diagnostics',\n `Agent: ${agent.id}`,\n `Status: ${agent.status}`,\n `Provider: ${agent.meta?.provider || 'unknown'}`,\n `Machine: ${agent.machine || 'unknown'}`,\n ]\n if (policyName) lines.push(`Policy: ${policyName}`)\n if (profileName) lines.push(`Agent Profile: ${profileName}`)\n if (policy) {\n lines.push('', '## Spawn Config')\n lines.push(`Provider: ${policy.provider}`)\n if (policy.model) lines.push(`Model: ${policy.model}`)\n if (policy.effort) lines.push(`Effort: ${policy.effort}`)\n lines.push(`CWD: ${policy.cwd}`)\n lines.push(`Permission: ${policy.permissionMode}`)\n lines.push(`Mode: ${policy.mode}`)\n if (policy.rig) lines.push(`Rig: ${policy.rig}`)\n if (policy.tags.length) lines.push(`Tags: ${policy.tags.join(', ')}`)\n if (policy.capabilities.length) lines.push(`Caps: ${policy.capabilities.join(', ')}`)\n }\n if (profileProjection) {\n lines.push('', '## Agent Profile Projection')\n lines.push(`Profile: ${profileProjection.profileName}`)\n lines.push(`Provider: ${profileProjection.provider}`)\n lines.push(`Base: ${profileProjection.base}`)\n if (profileProjection.warnings.length) lines.push(`Warnings: ${profileProjection.warnings.length}`)\n for (const entry of profileProjection.entries) {\n lines.push(`- ${entry.capability}: requested=${entry.requested} result=${entry.result} detail=${entry.detail}`)\n }\n }\n if (managedAgent) {\n lines.push('', '## Runtime')\n if (managedAgent.pid) lines.push(`PID: ${managedAgent.pid}`)\n if (managedAgent.sessionName) lines.push(`Session: ${managedAgent.sessionName}`)\n if (managedAgent.supervisor) lines.push(`Supervisor: ${managedAgent.supervisor}`)\n if (managedAgent.systemdUnit) lines.push(`Systemd: ${managedAgent.systemdUnit}`)\n if (managedAgent.terminalSession) lines.push(`Terminal: ${managedAgent.terminalSession} (${managedAgent.terminalAvailable ? 'available' : 'unavailable'})`)\n if (managedAgent.tmuxSession && managedAgent.tmuxSession !== managedAgent.sessionName) lines.push(`Legacy tmux: ${managedAgent.tmuxSession}`)\n if (managedAgent.spawnRequestId) lines.push(`Spawn Request: ${managedAgent.spawnRequestId}`)\n if (managedAgent.startedAt) lines.push(`Started: ${new Date(managedAgent.startedAt).toISOString()}`)\n if (managedOrch) lines.push(`Orchestrator: ${managedOrch.hostname} (${managedOrch.id.slice(-8)})`)\n }\n if (managedAgent?.workspace) {\n lines.push('', '## Workspace')\n lines.push(`Mode: ${managedAgent.workspace.mode}`)\n if (managedAgent.workspace.status) lines.push(`Status: ${managedAgent.workspace.status}`)\n if (managedAgent.workspace.worktreePath) lines.push(`Worktree: ${managedAgent.workspace.worktreePath}`)\n if (managedAgent.workspace.repoRoot) lines.push(`Repo: ${managedAgent.workspace.repoRoot}`)\n if (managedAgent.workspace.branch) lines.push(`Branch: ${managedAgent.workspace.branch}`)\n if (managedAgent.workspace.baseRef) lines.push(`Base: ${managedAgent.workspace.baseRef}`)\n if (managedAgent.workspace.baseSha) lines.push(`Base SHA: ${managedAgent.workspace.baseSha}`)\n if (managedAgent.workspace.stewardAgentId) lines.push(`Steward: ${managedAgent.workspace.stewardAgentId}`)\n }\n if (state) {\n lines.push('', '## Lifecycle')\n lines.push(`Status: ${state.status}`)\n lines.push(`Restarts: ${state.restartCount}`)\n lines.push(`Consecutive failures: ${state.consecutiveFailures}`)\n if (state.lastSpawnAt) lines.push(`Last spawn: ${new Date(state.lastSpawnAt).toISOString()}`)\n if (state.lastStopAt) lines.push(`Last stop: ${new Date(state.lastStopAt).toISOString()}`)\n if (state.healthySince) lines.push(`Healthy since: ${new Date(state.healthySince).toISOString()}`)\n if (state.backoffUntil) lines.push(`Backoff until: ${new Date(state.backoffUntil).toISOString()}`)\n if (state.lastError) lines.push(`Last error: ${state.lastError}`)\n }\n if (agentEvents.length > 0) {\n lines.push('', '## Recent Activity')\n for (const ev of agentEvents.slice(0, 10)) {\n lines.push(`- [${new Date(typeof ev.createdAt === 'number' ? ev.createdAt : Date.parse(String(ev.createdAt))).toISOString()}] ${ev.title}${ev.body ? ': ' + ev.body.slice(0, 100) : ''}`)\n }\n }\n const runtimePkg = agent.meta?.package as Record<string, unknown> | undefined\n if (runtimePkg?.name && runtimePkg?.version) {\n lines.push('', '## Versions')\n lines.push(`Runner: ${runtimePkg.name}@${runtimePkg.version}`)\n }\n const contracts = agent.meta?.contracts as Record<string, unknown> | undefined\n if (contracts) {\n for (const [k, v] of Object.entries(contracts)) {\n lines.push(`Contract ${k}: ${v}`)\n }\n }\n return lines.join('\\n')\n }\n\n const policy = policyHealth?.policy\n const state = policyHealth?.state\n\n return (\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between gap-2\">\n <h3 className=\"text-sm font-medium flex items-center gap-1.5\">\n <Stethoscope className=\"w-3.5 h-3.5 text-muted-foreground\" />\n Diagnostics\n </h3>\n <CopyButton value={buildDiagnosticBundle} label=\"Copy Bundle\" showText size=\"sm\" variant=\"outline\" className=\"h-7 text-xs gap-1\" iconClassName=\"w-3 h-3\" />\n </div>\n\n {/* Spawn Config */}\n {policy && (\n <CollapsibleSection title=\"Spawn Config\" expanded={!!expandedSections.spawn} onToggle={() => toggleSection('spawn')}>\n <div className=\"grid grid-cols-2 gap-x-3 gap-y-1 text-xs\">\n <KV label=\"Provider\" value={policy.provider} />\n {policy.model && <KV label=\"Model\" value={policy.model} />}\n {policy.effort && <KV label=\"Effort\" value={policy.effort} />}\n <KV label=\"Permission\" value={policy.permissionMode} />\n <KV label=\"Mode\" value={policy.mode} />\n {policy.rig && <KV label=\"Rig\" value={policy.rig} />}\n <KV label=\"CWD\" value={policy.cwd} className=\"col-span-2\" mono />\n {policy.tags.length > 0 && (\n <div className=\"col-span-2\">\n <span className=\"text-muted-foreground\">Tags</span>\n <div className=\"flex flex-wrap gap-1 mt-0.5\">{policy.tags.map((t) => <Badge key={t} variant=\"outline\" className=\"text-[10px]\">{t}</Badge>)}</div>\n </div>\n )}\n {policy.capabilities.length > 0 && (\n <div className=\"col-span-2\">\n <span className=\"text-muted-foreground\">Capabilities</span>\n <div className=\"flex flex-wrap gap-1 mt-0.5\">{policy.capabilities.map((c) => <Badge key={c} variant=\"secondary\" className=\"text-[10px]\">{c}</Badge>)}</div>\n </div>\n )}\n {policy.providerArgs.length > 0 && <KV label=\"Provider Args\" value={policy.providerArgs.join(' ')} className=\"col-span-2\" mono />}\n {policy.binding && <KV label=\"Channel\" value={`${policy.binding.type}:${policy.binding.channelId}`} className=\"col-span-2\" />}\n </div>\n </CollapsibleSection>\n )}\n\n {(profileName || profileProjection) && (\n <CollapsibleSection title=\"Agent Profile\" expanded={!!expandedSections.profile} onToggle={() => toggleSection('profile')}>\n <div className=\"space-y-2 text-xs\">\n <div className=\"grid grid-cols-2 gap-x-3 gap-y-1\">\n {profileName && <KV label=\"Profile\" value={profileName} />}\n {profileProjection?.base && <KV label=\"Base\" value={profileProjection.base} />}\n {profileProjection?.provider && <KV label=\"Provider\" value={profileProjection.provider} />}\n {profileProjection && <KV label=\"Unsupported\" value={String(profileProjection.unsupported.length)} />}\n </div>\n {profileProjection?.warnings.length ? (\n <div className=\"rounded border border-yellow-500/20 bg-yellow-500/5 px-2 py-1.5\">\n <span className=\"text-muted-foreground\">Projection warnings</span>\n <div className=\"mt-1 space-y-1\">\n {profileProjection.warnings.slice(0, 4).map((warning) => <div key={warning} className=\"break-words text-yellow-200/80\">{warning}</div>)}\n </div>\n </div>\n ) : null}\n {profileProjection && (\n <div className=\"space-y-1\">\n {profileProjection.entries.map((entry) => (\n <div key={entry.capability} className=\"grid grid-cols-[1fr_auto] gap-2 rounded border border-border/60 px-2 py-1\">\n <div className=\"min-w-0\">\n <div className=\"font-mono text-[11px]\">{entry.capability}</div>\n <div className=\"break-words text-muted-foreground\">{entry.detail}</div>\n </div>\n <Badge variant={entry.result === 'unsupported' ? 'destructive' : entry.result === 'partial' ? 'outline' : 'secondary'} className=\"h-5 text-[10px]\">\n {entry.result}\n </Badge>\n </div>\n ))}\n </div>\n )}\n </div>\n </CollapsibleSection>\n )}\n\n {managedAgent?.workspace && (\n <CollapsibleSection title=\"Workspace\" expanded={!!expandedSections.workspace} onToggle={() => toggleSection('workspace')}>\n <div className=\"grid grid-cols-2 gap-x-3 gap-y-1 text-xs\">\n <KV label=\"Mode\" value={managedAgent.workspace.mode} />\n {managedAgent.workspace.status && <KV label=\"Status\" value={managedAgent.workspace.status} />}\n {managedAgent.workspace.worktreePath && <KV label=\"Worktree\" value={managedAgent.workspace.worktreePath} className=\"col-span-2\" mono />}\n {managedAgent.workspace.repoRoot && <KV label=\"Repo\" value={managedAgent.workspace.repoRoot} className=\"col-span-2\" mono />}\n {managedAgent.workspace.branch && <KV label=\"Branch\" value={managedAgent.workspace.branch} className=\"col-span-2\" mono />}\n {managedAgent.workspace.baseRef && <KV label=\"Base\" value={managedAgent.workspace.baseRef} />}\n {managedAgent.workspace.baseSha && <KV label=\"Base SHA\" value={managedAgent.workspace.baseSha.slice(0, 12)} mono />}\n {managedAgent.workspace.stewardAgentId && <KV label=\"Steward\" value={managedAgent.workspace.stewardAgentId} className=\"col-span-2\" mono />}\n </div>\n </CollapsibleSection>\n )}\n\n {/* Runtime Attachments */}\n {managedAgent && (\n <CollapsibleSection title=\"Runtime\" expanded={!!expandedSections.runtime} onToggle={() => toggleSection('runtime')}>\n <div className=\"grid grid-cols-2 gap-x-3 gap-y-1 text-xs\">\n {managedAgent.pid && <KV label=\"PID\" value={String(managedAgent.pid)} mono />}\n {managedAgent.sessionName && <KV label=\"Session\" value={managedAgent.sessionName} mono />}\n {managedAgent.supervisor && <KV label=\"Supervisor\" value={managedAgent.supervisor} />}\n {managedAgent.systemdUnit && <KV label=\"Systemd\" value={managedAgent.systemdUnit} mono />}\n {managedAgent.terminalSession && <KV label=\"Terminal\" value={`${managedAgent.terminalSession} (${managedAgent.terminalAvailable ? 'available' : 'unavailable'})`} mono />}\n {managedAgent.tmuxSession && managedAgent.tmuxSession !== managedAgent.sessionName && <KV label=\"Legacy tmux\" value={managedAgent.tmuxSession} mono />}\n {managedAgent.spawnRequestId && <KV label=\"Spawn ID\" value={managedAgent.spawnRequestId.slice(0, 12)} mono />}\n {managedAgent.startedAt && <KV label=\"Started\" value={fmtTime(managedAgent.startedAt)} />}\n {managedOrch && <KV label=\"Orchestrator\" value={`${managedOrch.hostname} (${managedOrch.id.slice(-8)})`} />}\n {managedOrch && <KV label=\"Orch Status\" value={managedOrch.status} />}\n </div>\n </CollapsibleSection>\n )}\n\n {/* Lifecycle State */}\n {state && (\n <CollapsibleSection title=\"Lifecycle\" expanded={!!expandedSections.lifecycle} onToggle={() => toggleSection('lifecycle')}>\n <div className=\"space-y-2 text-xs\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-muted-foreground\">Status</span>\n <Badge className={LIFECYCLE_STATUS_COLORS[state.status] || 'bg-zinc-500/20 text-zinc-400'}>{state.status}</Badge>\n </div>\n <div className=\"grid grid-cols-2 gap-x-3 gap-y-1\">\n <KV label=\"Restarts\" value={String(state.restartCount)} />\n <KV label=\"Failures\" value={String(state.consecutiveFailures)} />\n {state.lastSpawnAt && <KV label=\"Last spawn\" value={timeAgo(now, state.lastSpawnAt)} />}\n {state.lastStopAt && <KV label=\"Last stop\" value={timeAgo(now, state.lastStopAt)} />}\n {state.healthySince && <KV label=\"Healthy since\" value={timeAgo(now, state.healthySince)} />}\n {state.backoffUntil && (\n <KV label=\"Backoff until\" value={state.backoffUntil > now ? timeAgo(now, state.backoffUntil) : 'expired'} />\n )}\n </div>\n {state.lastError && (\n <div className=\"rounded border border-red-500/20 bg-red-500/5 px-2 py-1.5\">\n <span className=\"text-muted-foreground\">Last error</span>\n <div className=\"mt-0.5 break-words text-red-300/80\">{state.lastError}</div>\n </div>\n )}\n </div>\n </CollapsibleSection>\n )}\n\n {/* Recent Activity */}\n <CollapsibleSection title={`Activity (${agentEvents.length})`} expanded={!!expandedSections.activity} onToggle={() => toggleSection('activity')}>\n {agentEvents.length === 0 ? (\n <div className=\"text-xs text-muted-foreground\">No recent events</div>\n ) : (\n <div className=\"space-y-1\">\n {agentEvents.slice(0, 15).map((ev) => (\n <div key={ev.id} className=\"flex items-start gap-2 text-xs\">\n <span className=\"shrink-0 text-[10px] text-muted-foreground tabular-nums w-14\">\n {timeAgo(now, typeof ev.createdAt === 'number' ? ev.createdAt : Date.parse(String(ev.createdAt)))}\n </span>\n <div className=\"min-w-0\">\n <span className=\"font-medium\">{ev.title}</span>\n {ev.body && <span className=\"text-muted-foreground ml-1 break-words\">{ev.body.length > 80 ? ev.body.slice(0, 80) + '...' : ev.body}</span>}\n </div>\n </div>\n ))}\n </div>\n )}\n </CollapsibleSection>\n\n {!policy && !managedAgent && !state && agentEvents.length === 0 && (\n <div className=\"text-xs text-muted-foreground\">No managed-agent diagnostics available for this agent.</div>\n )}\n </div>\n )\n}\n\nfunction CollapsibleSection({ title, expanded, onToggle, children }: { title: string; expanded: boolean; onToggle: () => void; children: React.ReactNode }) {\n return (\n <div className=\"rounded-md border border-border\">\n <button type=\"button\" className=\"flex w-full items-center gap-1.5 px-2.5 py-1.5 text-xs font-medium hover:bg-muted/50\" onClick={onToggle}>\n {expanded ? <ChevronDown className=\"w-3 h-3\" /> : <ChevronRight className=\"w-3 h-3\" />}\n {title}\n </button>\n {expanded && <div className=\"px-2.5 pb-2.5\">{children}</div>}\n </div>\n )\n}\n\nfunction isProfileProjectionReport(value: unknown): value is AgentProfileProjectionReport {\n return isRecord(value) &&\n typeof value.profileName === 'string' &&\n typeof value.provider === 'string' &&\n typeof value.base === 'string' &&\n Array.isArray(value.entries) &&\n Array.isArray(value.warnings) &&\n Array.isArray(value.unsupported)\n}\n\nfunction KV({ label, value, className = '', mono = false }: { label: string; value: string; className?: string; mono?: boolean }) {\n return (\n <div className={`min-w-0 ${className}`}>\n <span className=\"text-muted-foreground\">{label}</span>\n <div className={`truncate ${mono ? 'font-mono' : ''}`} title={value}>{value}</div>\n </div>\n )\n}\n","import { useCallback, useEffect, useMemo, useState } from 'react'\nimport { isRecord } from 'agent-relay-sdk/types'\nimport { useRelayStore, useNow } from '@/store'\nimport { api } from '@/lib/api'\nimport type { Agent, AgentActiveMemories, AgentTimelineEntry, ContextSnapshot, Memory } from '@/types'\nimport { usePairsByAgentId } from '@/hooks/use-selectors'\nimport { Sheet, SheetContent, SheetHeader, SheetTitle } from '@/components/ui/sheet'\nimport { Button } from '@/components/ui/button'\nimport { Badge } from '@/components/ui/badge'\nimport { Separator } from '@/components/ui/separator'\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '@/components/ui/tabs'\nimport { StatusDot } from '@/components/shared/status-dot'\nimport { AgentTypeIcon } from '@/components/shared/agent-type-icon'\nimport { AgentRuntimeBadges, AgentRuntimeChips, ContextMeter, ContextRing, contextTokenText } from '@/components/shared/agent-runtime-summary'\nimport { TerminalDialog } from '@/components/shared/terminal-viewer'\nimport { LogViewer } from '@/components/shared/log-viewer'\nimport { activeSubagents, displayName, displayTarget, timeAgo, fmtTime, messageBody, agentPresence, agentSupportsControlAction, agentCanBeForgotten, emptyAttention, toneToColor, userFacingCapabilities, providerRuntimeState, shortPath } from '@/lib/display'\nimport { AgentDiagnostics } from '@/components/shared/agent-diagnostics'\nimport { CopyButton } from '@/components/shared/copy-button'\nimport { Send, Link, Edit3, Power, RotateCw, RefreshCw, MessageSquare, Trash2, Minimize2, Eraser, BrainCircuit, Terminal, FileText, AlertCircle, AlertTriangle, Activity, ArrowLeftRight, History, MoreHorizontal, PlayCircle } from 'lucide-react'\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'\n\ninterface AgentTerminalSession {\n mode: 'live' | 'guest'\n orchestratorId: string\n session: string\n interactive: boolean\n expiresAt?: number\n}\n\ninterface ManagedSessionExitDiagnostics {\n lastError: string\n detectedAt?: number\n runtimeMs?: number\n logFile?: string\n logBytes?: number\n logEmpty?: boolean\n logTail?: string[]\n systemd?: {\n unit?: string\n activeState?: string\n subState?: string\n result?: string\n execMainCode?: string\n execMainStatus?: string\n }\n unavailable?: string[]\n}\n\ninterface ClaudeResumeCandidate {\n resumeId: string\n timestamp: number\n}\n\nconst CLAUDE_RESUME_ID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i\n\nfunction agentCanResumeClaude(agent: Agent | null | undefined): boolean {\n if (!agent || (agent.status !== 'offline' && agent.status !== 'stale')) return false\n const provider = typeof agent.meta?.provider === 'string' ? agent.meta.provider : agent.providerCapabilities?.model?.provider\n return provider === 'claude'\n}\n\nfunction latestClaudeResumeCandidate(entries: AgentTimelineEntry[]): ClaudeResumeCandidate | null {\n for (const entry of entries) {\n const metadata = entry.metadata\n const provider = typeof metadata?.provider === 'string' ? metadata.provider : ''\n const resumeId = typeof metadata?.claudeResumeId === 'string' ? metadata.claudeResumeId : ''\n if (provider === 'claude' && CLAUDE_RESUME_ID_RE.test(resumeId)) return { resumeId, timestamp: entry.ts }\n }\n return null\n}\n\nexport function AgentDetailDrawer() {\n const open = useRelayStore((s) => s.agentDetailOpen)\n const agentId = useRelayStore((s) => s.agentDetailId)\n const agentsById = useRelayStore((s) => s.agentsById)\n const messages = useRelayStore((s) => s.messages)\n const orchestrators = useRelayStore((s) => s.orchestrators)\n const fetchOrchestrators = useRelayStore((s) => s.fetchOrchestrators)\n const now = useNow()\n const set = useRelayStore((s) => s.set)\n const closeAgentDetail = useRelayStore((s) => s.closeAgentDetail)\n const openComposeToAgent = useRelayStore((s) => s.openComposeToAgent)\n const openInboxThread = useRelayStore((s) => s.openInboxThread)\n const openRename = useRelayStore((s) => s.openRename)\n const openPairInvite = useRelayStore((s) => s.openPairInvite)\n const switchView = useRelayStore((s) => s.switchView)\n const openConfirm = useRelayStore((s) => s.openConfirm)\n const showError = useRelayStore((s) => s.showError)\n const showNotification = useRelayStore((s) => s.showNotification)\n const doAgentAction = useRelayStore((s) => s.doAgentAction)\n const doDeleteAgent = useRelayStore((s) => s.doDeleteAgent)\n const openFilesForAgent = useRelayStore((s) => s.openFilesForAgent)\n const [contextHistory, setContextHistory] = useState<ContextSnapshot[]>([])\n const [activeMemoryState, setActiveMemoryState] = useState<AgentActiveMemories | null>(null)\n const [tab, setTab] = useState<'overview' | 'timeline' | 'logs'>('overview')\n const [terminalOpen, setTerminalOpen] = useState(false)\n const [terminalTarget, setTerminalTarget] = useState<AgentTerminalSession | null>(null)\n const [terminalOpening, setTerminalOpening] = useState(false)\n const [resumeCandidate, setResumeCandidate] = useState<ClaudeResumeCandidate | null>(null)\n\n const livenessMismatches = useRelayStore((s) => s.livenessMismatches)\n const commandStalls = useRelayStore((s) => s.commandStalls)\n const agent = agentsById[agentId] || null\n const pairsMap = usePairsByAgentId()\n const pair = agent ? pairsMap[agent.id] ?? null : null\n\n const detailMessages = useMemo(() => {\n if (!agentId) return []\n return messages.filter((m) => m.from === agentId || m.to === agentId).sort((a, b) => b.id - a.id).slice(0, 8)\n }, [messages, agentId])\n\n useEffect(() => {\n if (!open || !agent?.context) {\n setContextHistory([])\n return\n }\n let cancelled = false\n api<ContextSnapshot[]>('GET', '/agents/' + encodeURIComponent(agent.id) + '/context-snapshots?limit=24')\n .then((items) => { if (!cancelled) setContextHistory(items) })\n .catch(() => { if (!cancelled) setContextHistory([]) })\n return () => { cancelled = true }\n }, [open, agent?.id, agent?.context?.lastUpdatedAt])\n\n useEffect(() => {\n setResumeCandidate(null)\n if (!open || !agent || !agentCanResumeClaude(agent)) return\n let cancelled = false\n api<AgentTimelineEntry[]>('GET', '/agents/' + encodeURIComponent(agent.id) + '/timeline?limit=50')\n .then((entries) => {\n if (!cancelled) setResumeCandidate(latestClaudeResumeCandidate(entries))\n })\n .catch(() => { if (!cancelled) setResumeCandidate(null) })\n return () => { cancelled = true }\n }, [open, agent?.id, agent?.status, agent?.meta?.provider])\n\n useEffect(() => {\n if (!open || !agent) {\n setActiveMemoryState(null)\n return\n }\n let cancelled = false\n api<AgentActiveMemories>('GET', '/agents/' + encodeURIComponent(agent.id) + '/active-memories')\n .then((state) => { if (!cancelled) setActiveMemoryState(state) })\n .catch(() => { if (!cancelled) setActiveMemoryState(null) })\n return () => { cancelled = true }\n }, [open, agent?.id])\n\n useEffect(() => {\n setTab('overview')\n setTerminalOpen(false)\n setTerminalTarget(null)\n }, [agentId])\n\n useEffect(() => {\n if (open && agent?.meta?.tmuxSession && orchestrators.length === 0) void fetchOrchestrators()\n }, [open, agent?.id, agent?.meta?.tmuxSession, orchestrators.length])\n\n async function clearActiveMemories() {\n if (!agent) return\n try {\n const result = await api<{ supported: boolean; cleared: boolean }>('DELETE', '/agents/' + encodeURIComponent(agent.id) + '/active-memories')\n if (!result.supported) {\n showError('Memory Clear Unavailable', 'The active memory broker does not support clearing active memories.')\n return\n }\n setActiveMemoryState({ agentId: agent.id, supported: true, memories: [], total: 0 })\n showNotification('Active memories cleared')\n } catch (e) { showError('Memory Clear Failed', (e as Error).message) }\n }\n\n async function openTerminalSession() {\n if (!agent || terminalOpening) return\n setTerminalOpening(true)\n try {\n const session = await api<AgentTerminalSession>('POST', '/agents/' + encodeURIComponent(agent.id) + '/terminal-session')\n setTerminalTarget(session)\n setTerminalOpen(true)\n } catch (e) {\n showError('Terminal Failed', (e as Error).message)\n } finally {\n setTerminalOpening(false)\n }\n }\n\n async function closeTerminalSession(open: boolean) {\n if (open) {\n setTerminalOpen(true)\n return\n }\n setTerminalOpen(false)\n const target = terminalTarget\n setTerminalTarget(null)\n if (agent && target?.mode === 'guest') {\n try {\n await api('DELETE', '/agents/' + encodeURIComponent(agent.id) + '/terminal-session/' + encodeURIComponent(target.session))\n } catch {}\n }\n }\n\n if (!agent) return (\n <Sheet open={open} onOpenChange={(o) => !o && closeAgentDetail()}>\n <SheetContent className=\"w-full max-w-[100dvw] sm:max-w-md lg:max-w-lg\"><SheetHeader><SheetTitle>Agent</SheetTitle></SheetHeader></SheetContent>\n </Sheet>\n )\n\n const presence = agentPresence(now, agent, emptyAttention(), pair)\n const canRestart = agentSupportsControlAction(agent, 'restart')\n const canShutdown = agentSupportsControlAction(agent, 'shutdown')\n const canReconnect = agentSupportsControlAction(agent, 'reconnect')\n const canCompact = agentSupportsControlAction(agent, 'compact')\n const canClearContext = agentSupportsControlAction(agent, 'clearContext')\n const canResume = Boolean(resumeCandidate && agentCanResumeClaude(agent))\n const canForget = agentCanBeForgotten(agent)\n const runtimePackage = runtimePackageMetadata(agent.meta?.package)\n const runtimeContracts = runtimeContractEntries(agent.meta?.contracts)\n const runtime = agent.providerCapabilities\n const providerState = providerRuntimeState(agent)\n const contextTokens = contextTokenText(agent)\n const subagents = activeSubagents(agent)\n const terminalSession = terminalSessionForAgent(agent)\n const terminalOrchestrator = terminalSession ? orchestratorForAgentTerminal(agent, terminalSession, orchestrators) : null\n const canReadTerminal = Boolean(terminalSession && terminalOrchestrator?.status === 'online' && agent.providerCapabilities?.terminal?.live?.read)\n const runtimeProvider = agent.providerCapabilities?.model?.provider ?? (typeof agent.meta?.provider === 'string' ? agent.meta.provider : undefined)\n const canWriteTerminal = Boolean(canReadTerminal && (agent.providerCapabilities?.terminal?.live?.write || runtimeProvider === 'claude'))\n const canAttachTerminal = agent.providerCapabilities?.terminal?.attach?.create === true\n const canOpenTerminal = canReadTerminal || canAttachTerminal\n const lastExit = lastExitDiagnostics(agent.meta?.lastExit)\n const lastError = typeof agent.meta?.lastError === 'string' ? agent.meta.lastError : lastExit?.lastError\n\n // Liveness reconciliation: the SSE-driven mismatch (server saw a process running\n // while the relay said offline) OR the client-derivable symptom — relay marks the\n // agent offline yet a live terminal session is still reachable. Either way the two\n // truths disagree and the user should be told rather than shown a stale status.\n const livenessMismatch = livenessMismatches[agent.id] ?? null\n const offlineButReachable = (presence.tone === 'offline' || presence.tone === 'stale') && canReadTerminal\n const showLiveness = Boolean(livenessMismatch) || offlineButReachable\n // A /compact or /clear whose keystrokes were delivered but never produced a\n // real provider hook — likely landed in a menu instead of the prompt.\n const commandStall = commandStalls[agent.id] ?? null\n\n return (\n <>\n <Sheet open={open} onOpenChange={(o) => !o && closeAgentDetail()}>\n <SheetContent className=\"w-full max-w-[100dvw] sm:max-w-md lg:max-w-lg p-0\">\n <SheetHeader className=\"shrink-0 p-4 border-b border-border\">\n <div className=\"flex items-center gap-2 min-w-0\">\n <StatusDot agent={agent} now={now} />\n <AgentTypeIcon agent={agent} />\n <SheetTitle className=\"text-base truncate\">{displayName(agent)}</SheetTitle>\n {agent.context && <ContextRing utilization={agent.context.utilization} />}\n </div>\n <AgentRuntimeChips agent={agent} className=\"mt-2\" />\n </SheetHeader>\n\n <div className=\"shrink-0 flex flex-wrap items-center gap-2 p-4 border-b border-border\">\n <Button size=\"sm\" variant=\"outline\" onClick={() => { openComposeToAgent(agent); closeAgentDetail() }}><Send className=\"w-3 h-3 mr-1\" />Message</Button>\n <Button size=\"sm\" variant=\"outline\" onClick={() => { openInboxThread(agent.id); switchView('chat'); closeAgentDetail() }}><MessageSquare className=\"w-3 h-3 mr-1\" />Chat</Button>\n <Button size=\"sm\" variant=\"outline\" onClick={() => { openPairInvite(agent.id); closeAgentDetail() }}><Link className=\"w-3 h-3 mr-1\" />Pair</Button>\n {canOpenTerminal && <Button size=\"sm\" variant=\"outline\" className=\"hidden sm:inline-flex px-2\" disabled={terminalOpening} title={canAttachTerminal ? 'Open guest terminal' : 'Open live terminal'} onClick={() => void openTerminalSession()}><Terminal className=\"w-3.5 h-3.5\" /></Button>}\n {canResume && <Button size=\"sm\" variant=\"outline\" className=\"hidden sm:inline-flex px-2\" title=\"Resume Claude session\" onClick={() => openConfirm('Resume Claude Session', `Resume ${displayName(agent)} from Claude session ${resumeCandidate?.resumeId}? This can reload a large prior context and consume tokens.`, () => doAgentAction(agent, 'resume', 'agent-detail-drawer'))}><PlayCircle className=\"w-3.5 h-3.5\" /></Button>}\n {canCompact && <Button size=\"sm\" variant=\"outline\" className=\"hidden sm:inline-flex px-2\" title=\"Compact context\" onClick={() => openConfirm('Compact Agent', `Compact context for ${displayName(agent)}?`, () => doAgentAction(agent, 'compact', 'agent-detail-drawer'))}><Minimize2 className=\"w-3.5 h-3.5\" /></Button>}\n {canRestart && <Button size=\"sm\" variant=\"outline\" className=\"hidden sm:inline-flex px-2\" title=\"Restart\" onClick={() => openConfirm('Restart Agent', `Restart ${displayName(agent)}?`, () => doAgentAction(agent, 'restart', 'agent-detail-drawer'))}><RotateCw className=\"w-3.5 h-3.5\" /></Button>}\n {canShutdown && <Button size=\"sm\" variant=\"outline\" className=\"hidden sm:inline-flex px-2\" title=\"Shutdown\" onClick={() => openConfirm('Shutdown Agent', `Shutdown ${displayName(agent)}?`, () => doAgentAction(agent, 'shutdown', 'agent-detail-drawer'))}><Power className=\"w-3.5 h-3.5\" /></Button>}\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button size=\"sm\" variant=\"outline\" className=\"px-2\"><MoreHorizontal className=\"w-3.5 h-3.5\" /></Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {canOpenTerminal && <DropdownMenuItem className=\"sm:hidden\" disabled={terminalOpening} onClick={() => void openTerminalSession()}><Terminal className=\"w-3.5 h-3.5\" />Terminal</DropdownMenuItem>}\n {canResume && <DropdownMenuItem className=\"sm:hidden\" onClick={() => openConfirm('Resume Claude Session', `Resume ${displayName(agent)} from Claude session ${resumeCandidate?.resumeId}? This can reload a large prior context and consume tokens.`, () => doAgentAction(agent, 'resume', 'agent-detail-drawer'))}><PlayCircle className=\"w-3.5 h-3.5\" />Resume</DropdownMenuItem>}\n {canCompact && <DropdownMenuItem className=\"sm:hidden\" onClick={() => openConfirm('Compact Agent', `Compact context for ${displayName(agent)}?`, () => doAgentAction(agent, 'compact', 'agent-detail-drawer'))}><Minimize2 className=\"w-3.5 h-3.5\" />Compact</DropdownMenuItem>}\n {canRestart && <DropdownMenuItem className=\"sm:hidden\" onClick={() => openConfirm('Restart Agent', `Restart ${displayName(agent)}?`, () => doAgentAction(agent, 'restart', 'agent-detail-drawer'))}><RotateCw className=\"w-3.5 h-3.5\" />Restart</DropdownMenuItem>}\n {canShutdown && <DropdownMenuItem className=\"sm:hidden\" onClick={() => openConfirm('Shutdown Agent', `Shutdown ${displayName(agent)}?`, () => doAgentAction(agent, 'shutdown', 'agent-detail-drawer'))}><Power className=\"w-3.5 h-3.5\" />Shutdown</DropdownMenuItem>}\n {(canOpenTerminal || canResume || canCompact || canRestart || canShutdown) && <DropdownMenuSeparator className=\"sm:hidden\" />}\n <DropdownMenuItem onClick={() => openRename(agent)}><Edit3 className=\"w-3.5 h-3.5\" />Rename</DropdownMenuItem>\n {canReconnect && <DropdownMenuItem onClick={() => openConfirm('Reconnect Agent', `Reconnect ${displayName(agent)}?`, () => doAgentAction(agent, 'reconnect', 'agent-detail-drawer'))}><RefreshCw className=\"w-3.5 h-3.5\" />Reconnect</DropdownMenuItem>}\n {canClearContext && <DropdownMenuItem onClick={() => openConfirm('Clear Context', `Clear context for ${displayName(agent)}?`, () => doAgentAction(agent, 'clearContext', 'agent-detail-drawer'))}><Eraser className=\"w-3.5 h-3.5\" />Clear Context</DropdownMenuItem>}\n {canForget && <><DropdownMenuSeparator /><DropdownMenuItem variant=\"destructive\" onClick={() => openConfirm('Forget Agent', `Forget ${displayName(agent)}?`, () => doDeleteAgent(agent.id))}><Trash2 className=\"w-3.5 h-3.5\" />Forget</DropdownMenuItem></>}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n\n {showLiveness && (\n <div className=\"shrink-0 mx-4 mt-3 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-100\">\n <div className=\"flex items-center gap-1.5 font-medium\"><AlertTriangle className=\"w-3.5 h-3.5\" />Liveness mismatch</div>\n <div className=\"mt-1 text-amber-50/85\">\n {livenessMismatch?.detail ?? 'Relay marks this agent offline, but a live terminal session is still reachable — the process may still be running.'}\n </div>\n {canOpenTerminal && (\n <Button size=\"sm\" variant=\"outline\" className=\"mt-2 h-7 text-xs\" disabled={terminalOpening} onClick={() => void openTerminalSession()}><Terminal className=\"w-3 h-3 mr-1\" />Open terminal</Button>\n )}\n </div>\n )}\n\n {commandStall && (\n <div className=\"shrink-0 mx-4 mt-3 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-100\">\n <div className=\"flex items-center gap-1.5 font-medium\"><AlertTriangle className=\"w-3.5 h-3.5\" />{commandStall.kind === 'clear' ? 'Context clear stalled' : 'Compaction stalled'}</div>\n <div className=\"mt-1 text-amber-50/85\">\n {commandStall.detail}\n </div>\n {canOpenTerminal && (\n <Button size=\"sm\" variant=\"outline\" className=\"mt-2 h-7 text-xs\" disabled={terminalOpening} onClick={() => void openTerminalSession()}><Terminal className=\"w-3 h-3 mr-1\" />Open terminal</Button>\n )}\n </div>\n )}\n\n <Tabs value={tab} onValueChange={(v) => setTab(v as 'overview' | 'timeline' | 'logs')} className=\"flex-1 min-h-0 gap-0\">\n <TabsList variant=\"line\" className=\"w-full shrink-0 px-4 pt-2\">\n <TabsTrigger value=\"overview\">Overview</TabsTrigger>\n <TabsTrigger value=\"timeline\"><History className=\"w-3.5 h-3.5\" />Timeline</TabsTrigger>\n <TabsTrigger value=\"logs\"><FileText className=\"w-3.5 h-3.5\" />Logs</TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"overview\" className=\"min-h-0 overflow-y-auto overflow-x-hidden\">\n <div className=\"p-4 space-y-4 min-w-0\">\n\n <div>\n <h3 className=\"text-sm font-medium mb-2\">Status</h3>\n <div className=\"space-y-1 text-sm min-w-0\">\n <div className=\"flex justify-between gap-2 min-w-0\"><span className=\"text-muted-foreground shrink-0\">State</span><Badge className={toneToColor(presence.tone)}>{presence.label}</Badge></div>\n {providerState?.recommendedAction && (\n <div className=\"rounded-md border border-red-500/20 bg-red-500/10 px-2.5 py-2 text-xs text-red-200\">\n <div className=\"flex items-center gap-1.5 font-medium\"><AlertCircle className=\"w-3.5 h-3.5\" />Recommended action</div>\n <div className=\"mt-1 text-red-100/80\">{providerState.recommendedAction}</div>\n </div>\n )}\n {lastError && (\n <div className=\"rounded-md border border-amber-500/25 bg-amber-500/10 px-2.5 py-2 text-xs text-amber-100\">\n <div className=\"flex items-center gap-1.5 font-medium\"><AlertCircle className=\"w-3.5 h-3.5\" />Last launch error</div>\n <div className=\"mt-1 break-words text-amber-50/85\">{lastError}</div>\n {lastExit && (\n <div className=\"mt-2 grid grid-cols-2 gap-x-3 gap-y-1 text-amber-50/70\">\n {lastExit.detectedAt && <div><span className=\"text-amber-100/55\">Detected</span><div>{timeAgo(now, lastExit.detectedAt)}</div></div>}\n {typeof lastExit.runtimeMs === 'number' && <div><span className=\"text-amber-100/55\">Runtime</span><div>{Math.max(0, Math.round(lastExit.runtimeMs / 1000))}s</div></div>}\n {lastExit.systemd?.unit && <div className=\"col-span-2 min-w-0\"><span className=\"text-amber-100/55\">Unit</span><div className=\"truncate font-mono\">{lastExit.systemd.unit}</div></div>}\n {lastExit.systemd && <div><span className=\"text-amber-100/55\">Systemd</span><div>{[lastExit.systemd.activeState, lastExit.systemd.subState].filter(Boolean).join('/') || 'unknown'}</div></div>}\n {lastExit.systemd?.result && <div><span className=\"text-amber-100/55\">Result</span><div>{lastExit.systemd.result}</div></div>}\n {lastExit.logFile && <div className=\"col-span-2 min-w-0\"><span className=\"text-amber-100/55\">Log</span><div className=\"truncate font-mono\">{lastExit.logFile} ({lastExit.logBytes ?? 'unknown'} bytes{lastExit.logEmpty ? ', empty' : ''})</div></div>}\n </div>\n )}\n {lastExit?.logTail?.length ? (\n <pre className=\"mt-2 max-h-28 overflow-auto whitespace-pre-wrap break-words rounded border border-amber-500/15 bg-black/20 p-2 text-[11px] text-amber-50/75\">{lastExit.logTail.slice(-5).join('\\n')}</pre>\n ) : null}\n {lastExit?.unavailable?.length ? <div className=\"mt-1 text-amber-50/55\">{lastExit.unavailable.join('; ')}</div> : null}\n </div>\n )}\n <div className=\"flex justify-between gap-2 min-w-0\"><span className=\"text-muted-foreground shrink-0\">Last seen</span><span className=\"truncate\">{timeAgo(now, agent.lastSeen)}</span></div>\n <div className=\"flex justify-between gap-2 min-w-0\"><span className=\"text-muted-foreground shrink-0\">Created</span><span className=\"truncate\">{fmtTime(agent.createdAt)}</span></div>\n {agent.machine && <div className=\"flex justify-between gap-2 min-w-0\"><span className=\"text-muted-foreground shrink-0\">Machine</span><span className=\"truncate\">{agent.machine}</span></div>}\n {agent.rig && <div className=\"flex justify-between gap-2 min-w-0\"><span className=\"text-muted-foreground shrink-0\">Rig</span><span className=\"truncate\">{agent.rig}</span></div>}\n {typeof agent.meta?.cwd === 'string' && agent.meta.cwd && (\n <div className=\"flex justify-between gap-2\">\n <span className=\"text-muted-foreground shrink-0\">CWD</span>\n <button\n type=\"button\"\n className=\"truncate text-right font-mono text-xs text-muted-foreground hover:text-foreground\"\n title={`Open ${agent.meta.cwd as string} in Files`}\n onClick={() => { closeAgentDetail(); void openFilesForAgent(agent) }}\n >\n {agent.meta.cwd as string}\n </button>\n </div>\n )}\n </div>\n </div>\n\n {pair && (\n <>\n <Separator />\n <div>\n <h3 className=\"text-sm font-medium mb-2\">Pair</h3>\n <Badge className={pair.status === 'active' ? 'bg-emerald-500/20 text-emerald-400' : 'bg-yellow-500/20 text-yellow-400'}>{pair.status}</Badge>\n {pair.objective && <p className=\"text-sm text-muted-foreground mt-1\">{pair.objective}</p>}\n </div>\n </>\n )}\n\n {(runtime || agent.context || subagents.length > 0) && (\n <>\n <Separator />\n <div>\n <h3 className=\"text-sm font-medium mb-2\">Runtime</h3>\n <div className=\"space-y-2 text-sm\">\n <AgentRuntimeChips agent={agent} />\n <AgentRuntimeBadges agent={agent} />\n {providerState && (\n <div className=\"grid grid-cols-2 gap-x-3 gap-y-1\">\n <div><span className=\"text-muted-foreground\">Provider state</span><div>{providerState.state}</div></div>\n {providerState.reason && <div><span className=\"text-muted-foreground\">Reason</span><div>{providerState.reason}</div></div>}\n {providerState.source && <div><span className=\"text-muted-foreground\">Source</span><div>{providerState.source}</div></div>}\n {providerState.updatedAt && <div><span className=\"text-muted-foreground\">Updated</span><div>{timeAgo(now, providerState.updatedAt)}</div></div>}\n </div>\n )}\n {runtime?.model && (\n <div className=\"space-y-1\">\n {runtime.model.provider && <div className=\"flex justify-between gap-2 min-w-0\"><span className=\"text-muted-foreground shrink-0\">Provider</span><span className=\"truncate\">{runtime.model.provider}</span></div>}\n {(runtime.model.alias || runtime.model.id) && <div className=\"flex justify-between gap-2 min-w-0\"><span className=\"text-muted-foreground shrink-0\">Model</span><span className=\"truncate\">{runtime.model.alias || runtime.model.id}</span></div>}\n {runtime.model.effort && <div className=\"flex justify-between gap-2 min-w-0\"><span className=\"text-muted-foreground shrink-0\">Effort</span><span className=\"truncate\">{runtime.model.effort}</span></div>}\n </div>\n )}\n {runtime?.session && (\n <div className=\"grid grid-cols-2 gap-x-3 gap-y-1\">\n {runtime.session.approvalMode && <div><span className=\"text-muted-foreground\">Mode</span><div>{runtime.session.approvalMode}</div></div>}\n <div><span className=\"text-muted-foreground\">Files</span><div>{runtime.session.fileWrite ? 'read/write' : runtime.session.fileRead ? 'read-only' : 'none'}</div></div>\n <div><span className=\"text-muted-foreground\">Shell</span><div>{runtime.session.shell ? 'yes' : 'no'}</div></div>\n <div><span className=\"text-muted-foreground\">Confidence</span><div>{runtime.confidence}</div></div>\n </div>\n )}\n {runtime?.lifecycle && (\n <div>\n <span className=\"text-muted-foreground\">Lifecycle</span>\n <div className=\"flex flex-wrap gap-1 mt-1\">\n <Badge variant={runtime.lifecycle.managed ? 'secondary' : 'outline'} className=\"text-[10px]\">{runtime.lifecycle.managed ? 'managed' : 'bridge'}</Badge>\n {runtime.lifecycle.shutdownHard && <Badge variant=\"outline\" className=\"text-[10px]\">shutdown</Badge>}\n {runtime.lifecycle.restartHard && <Badge variant=\"outline\" className=\"text-[10px]\">restart</Badge>}\n {runtime.lifecycle.reconnect && <Badge variant=\"outline\" className=\"text-[10px]\">reconnect</Badge>}\n </div>\n </div>\n )}\n {subagents.length > 0 && (\n <div>\n <span className=\"text-muted-foreground\">Subagents</span>\n <div className=\"space-y-1 mt-1\">\n {subagents.map((subagent) => (\n <div key={subagent.id} className=\"flex justify-between gap-2 text-xs rounded border border-border px-2 py-1\">\n <span className=\"truncate\">{subagent.label}</span>\n {subagent.role && <span className=\"text-muted-foreground shrink-0\">{subagent.role}</span>}\n </div>\n ))}\n </div>\n </div>\n )}\n {agent.context && (\n <div className=\"space-y-2\">\n <ContextMeter agent={agent} />\n <div className=\"grid grid-cols-2 gap-x-3 gap-y-1\">\n <div><span className=\"text-muted-foreground\">Context</span><div>{Math.round(agent.context.utilization * 100)}%</div></div>\n <div><span className=\"text-muted-foreground\">State</span><div>{agent.context.lifecycleState}</div></div>\n {contextTokens && <div><span className=\"text-muted-foreground\">Tokens</span><div>{contextTokens}</div></div>}\n <div><span className=\"text-muted-foreground\">Source</span><div>{agent.context.source}/{agent.context.confidence}</div></div>\n </div>\n {agent.context.warmTopics.length > 0 && <div><span className=\"text-muted-foreground\">Warm topics</span><div className=\"flex flex-wrap gap-1 mt-1\">{agent.context.warmTopics.map((topic) => <Badge key={topic} variant=\"outline\" className=\"text-[10px]\">{topic}</Badge>)}</div></div>}\n {contextHistory.length > 1 && <ContextHistoryStrip snapshots={contextHistory} />}\n </div>\n )}\n </div>\n </div>\n </>\n )}\n\n {activeMemoryState && (\n <>\n <Separator />\n <div>\n <div className=\"flex items-center justify-between gap-2 mb-2\">\n <h3 className=\"text-sm font-medium flex items-center gap-1.5\">\n <BrainCircuit className=\"w-3.5 h-3.5 text-muted-foreground\" />\n Memory\n </h3>\n <div className=\"flex items-center gap-1.5\">\n {activeMemoryState.supported && <Badge variant=\"secondary\" className=\"text-[10px]\">{activeMemoryState.memories.length}</Badge>}\n {activeMemoryState.supported && activeMemoryState.memories.length > 0 && (\n <Button size=\"sm\" variant=\"outline\" className=\"h-7 text-xs gap-1\" onClick={() => openConfirm('Clear Active Memories', `Clear active memories for ${displayName(agent)}?`, clearActiveMemories)}>\n <Eraser className=\"w-3 h-3\" />\n Clear\n </Button>\n )}\n </div>\n </div>\n {!activeMemoryState.supported ? (\n <div className=\"text-xs text-muted-foreground\">Active memory list unavailable</div>\n ) : activeMemoryState.memories.length === 0 ? (\n <div className=\"text-xs text-muted-foreground\">No active memories</div>\n ) : (\n <div className=\"space-y-2\">\n {activeMemoryState.memories.map((memory) => (\n <ActiveMemoryRow key={memory.id} memory={memory} now={now} onOpen={() => { set({ selectedMemoryId: memory.id }); switchView('memory'); closeAgentDetail() }} />\n ))}\n </div>\n )}\n </div>\n </>\n )}\n\n {agent.meta?.runnerManaged === true && (\n <>\n <Separator />\n <AgentDiagnostics agent={agent} orchestrators={orchestrators} />\n </>\n )}\n\n <Separator />\n <div>\n <h3 className=\"text-sm font-medium mb-2\">Metadata</h3>\n <div className=\"space-y-1 text-sm\">\n <div className=\"flex items-center justify-between gap-2 min-w-0\"><span className=\"text-muted-foreground shrink-0\">ID</span><span className=\"flex min-w-0 items-center gap-1\"><span className=\"font-mono text-xs truncate\">{agent.id}</span><CopyButton value={agent.id} label=\"Copy agent ID\" size=\"icon-xs\" className=\"shrink-0 text-muted-foreground\" /></span></div>\n {runtimePackage && <div className=\"flex justify-between gap-2 min-w-0\"><span className=\"text-muted-foreground shrink-0\">Package</span><span className=\"font-mono text-xs truncate\">{runtimePackage.name} v{runtimePackage.version}</span></div>}\n {runtimeContracts.length > 0 && <div><span className=\"text-muted-foreground\">Contracts</span><div className=\"flex flex-wrap gap-1 mt-1\">{runtimeContracts.map(([name, version]) => <Badge key={name} variant=\"secondary\" className=\"text-[10px]\">{name}={version}</Badge>)}</div></div>}\n {agent.tags.length > 0 && <div><span className=\"text-muted-foreground\">Tags</span><div className=\"flex flex-wrap gap-1 mt-1\">{agent.tags.map((t) => <Badge key={t} variant=\"outline\" className=\"text-[10px]\">{t}</Badge>)}</div></div>}\n {userFacingCapabilities(agent.capabilities).length > 0 && <div><span className=\"text-muted-foreground\">Capabilities</span><div className=\"flex flex-wrap gap-1 mt-1\">{userFacingCapabilities(agent.capabilities).map((c) => <Badge key={c} variant=\"secondary\" className=\"text-[10px]\">{c}</Badge>)}</div></div>}\n </div>\n </div>\n\n {detailMessages.length > 0 && (\n <>\n <Separator />\n <div>\n <h3 className=\"text-sm font-medium mb-2\">Recent Messages</h3>\n <div className=\"space-y-2\">\n {detailMessages.map((msg) => (\n <div key={msg.id} className=\"rounded border border-border p-2 text-xs space-y-0.5 min-w-0\">\n <div className=\"flex items-center gap-1 text-muted-foreground min-w-0\">\n <span className=\"font-medium text-foreground truncate shrink-0 max-w-[40%]\">{displayTarget(msg.from, agentsById)}</span>\n <span className=\"shrink-0\">→</span>\n <span className=\"truncate max-w-[40%]\">{displayTarget(msg.to, agentsById)}</span>\n <span className=\"ml-auto shrink-0 text-[10px]\"><span className=\"opacity-40 mr-1\">#{msg.id}</span>{timeAgo(now, msg.createdAt)}</span>\n </div>\n <div className=\"text-foreground whitespace-pre-wrap break-words line-clamp-3\">{messageBody(msg)}</div>\n </div>\n ))}\n </div>\n </div>\n </>\n )}\n </div>\n </TabsContent>\n\n <TabsContent value=\"timeline\" className=\"min-h-0 overflow-y-auto overflow-x-hidden\">\n <AgentTimeline agentId={agent.id} open={open && tab === 'timeline'} now={now} />\n </TabsContent>\n\n <TabsContent value=\"logs\" className=\"min-h-0 overflow-y-auto overflow-x-hidden\">\n {terminalSession && terminalOrchestrator ? (\n <div className=\"p-4\">\n <LogViewer orchestratorId={terminalOrchestrator.id} session={terminalSession} />\n </div>\n ) : (\n <div className=\"p-4 text-sm text-muted-foreground\">No session logs available for this agent.</div>\n )}\n </TabsContent>\n </Tabs>\n </SheetContent>\n </Sheet>\n {terminalTarget && (\n <TerminalDialog open={terminalOpen} onOpenChange={(next) => void closeTerminalSession(next)} orchestratorId={terminalTarget.orchestratorId} session={terminalTarget.session} interactive={terminalTarget.interactive || canWriteTerminal} />\n )}\n </>\n )\n}\n\nfunction ActiveMemoryRow({ memory, now, onOpen }: { memory: Memory; now: number; onOpen: () => void }) {\n const sensitivityClass = memory.sensitivity === 'secret'\n ? 'bg-red-500/10 text-red-400 border-red-500/30'\n : memory.sensitivity === 'sensitive'\n ? 'bg-yellow-500/10 text-yellow-400 border-yellow-500/30'\n : 'bg-zinc-500/10 text-zinc-400 border-zinc-500/30'\n return (\n <button onClick={onOpen} className=\"w-full rounded-md border border-border p-2 text-left text-xs hover:border-zinc-600 transition-colors\">\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"min-w-0\">\n <div className=\"flex flex-wrap gap-1 mb-1\">\n <Badge variant=\"secondary\" className=\"text-[10px]\">{memory.type}</Badge>\n <Badge variant=\"outline\" className=\"text-[10px] font-mono\">{memory.scope}</Badge>\n <Badge className={`text-[10px] ${sensitivityClass}`}>{memory.sensitivity}</Badge>\n </div>\n <div className=\"font-medium truncate\">{memory.title}</div>\n <div className=\"text-muted-foreground line-clamp-2 mt-0.5\">{memory.content}</div>\n </div>\n <div className=\"shrink-0 text-right text-[10px] text-muted-foreground\" title={fmtTime(memory.lastAccessedAt ?? memory.updatedAt)}>\n {timeAgo(now, memory.lastAccessedAt ?? memory.updatedAt)}\n </div>\n </div>\n </button>\n )\n}\n\nfunction ContextHistoryStrip({ snapshots }: { snapshots: ContextSnapshot[] }) {\n const items = snapshots.slice(-24)\n if (items.length < 2) return null\n return (\n <div>\n <span className=\"text-muted-foreground\">History</span>\n <div className=\"mt-1 flex h-10 items-end gap-1\" aria-label=\"Context utilization history\">\n {items.map((snapshot) => {\n const height = Math.max(4, Math.round(Math.max(0, Math.min(1, snapshot.utilization)) * 40))\n return (\n <div\n key={snapshot.id}\n className=\"flex-1 rounded-sm bg-primary/70\"\n style={{ height }}\n title={`${Math.round(snapshot.utilization * 100)}% ${new Date(snapshot.capturedAt).toLocaleTimeString()}`}\n />\n )\n })}\n </div>\n </div>\n )\n}\n\nfunction AgentTimeline({ agentId, open, now }: { agentId: string; open: boolean; now: number }) {\n const [entries, setEntries] = useState<AgentTimelineEntry[]>([])\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [limit, setLimit] = useState(50)\n\n const load = useCallback((nextLimit: number) => {\n setLoading(true)\n setError(null)\n let cancelled = false\n api<AgentTimelineEntry[]>('GET', '/agents/' + encodeURIComponent(agentId) + '/timeline?limit=' + nextLimit)\n .then((items) => { if (!cancelled) { setEntries(items); setLimit(nextLimit) } })\n .catch((e) => { if (!cancelled) setError((e as Error).message) })\n .finally(() => { if (!cancelled) setLoading(false) })\n return () => { cancelled = true }\n }, [agentId])\n\n // On-open fetch: pull a fresh page each time the timeline tab becomes visible or\n // the agent changes. Manual refresh and \"load full\" re-run load() explicitly.\n useEffect(() => {\n if (!open) return\n return load(50)\n }, [open, agentId, load])\n\n return (\n <div className=\"p-4 space-y-3 min-w-0\">\n <div className=\"flex items-center justify-between gap-2\">\n <h3 className=\"text-sm font-medium\">Timeline</h3>\n <Button size=\"sm\" variant=\"outline\" className=\"h-7 text-xs\" disabled={loading} onClick={() => load(limit)}><RefreshCw className=\"w-3 h-3 mr-1\" />Refresh</Button>\n </div>\n {error && <div className=\"text-xs text-red-300\">{error}</div>}\n {!error && entries.length === 0 && !loading && <div className=\"text-xs text-muted-foreground\">No timeline activity recorded for this agent.</div>}\n <div className=\"space-y-1.5\">\n {entries.map((entry, i) => <TimelineRow key={`${entry.ts}:${entry.source}:${i}`} entry={entry} now={now} />)}\n </div>\n {entries.length >= limit && limit < 200 && (\n <Button size=\"sm\" variant=\"outline\" className=\"w-full h-7 text-xs\" disabled={loading} onClick={() => load(200)}>Load full timeline</Button>\n )}\n </div>\n )\n}\n\nfunction timelineIcon(entry: AgentTimelineEntry) {\n if (entry.metadata?.mismatch === true || entry.metadata?.stalled === true) return <AlertTriangle className=\"w-3.5 h-3.5 text-amber-400\" />\n if (entry.source === 'command') return <Terminal className=\"w-3.5 h-3.5 text-sky-400\" />\n if (entry.source === 'delivery') return <Send className=\"w-3.5 h-3.5 text-violet-400\" />\n if (entry.kind === 'state') return <ArrowLeftRight className=\"w-3.5 h-3.5 text-emerald-400\" />\n return <Activity className=\"w-3.5 h-3.5 text-muted-foreground\" />\n}\n\nfunction TimelineRow({ entry, now }: { entry: AgentTimelineEntry; now: number }) {\n const status = typeof entry.metadata?.status === 'string' ? entry.metadata.status : ''\n const failed = /fail|error|poison|dead/i.test(status)\n const fromState = entry.metadata?.fromState\n const toState = entry.metadata?.toState\n const transition = typeof fromState === 'string' && typeof toState === 'string' ? `${fromState} → ${toState}` : null\n return (\n <div className=\"flex gap-2 rounded border border-border px-2 py-1.5 text-xs min-w-0\">\n <div className=\"shrink-0 mt-0.5\">{timelineIcon(entry)}</div>\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2 min-w-0\">\n <span className={`font-medium truncate ${failed ? 'text-red-300' : 'text-foreground'}`}>{entry.title}</span>\n <span className=\"ml-auto shrink-0 text-[10px] text-muted-foreground\" title={fmtTime(entry.ts)}>{timeAgo(now, entry.ts)}</span>\n </div>\n {transition && <div className=\"text-muted-foreground font-mono text-[11px]\">{transition}</div>}\n {entry.detail && <div className=\"text-muted-foreground whitespace-pre-wrap break-words line-clamp-3\">{entry.detail}</div>}\n </div>\n </div>\n )\n}\n\nfunction runtimePackageMetadata(value: unknown): { name: string; version: string } | null {\n if (!isRecord(value)) return null\n return typeof value.name === 'string' && typeof value.version === 'string'\n ? { name: value.name, version: value.version }\n : null\n}\n\nfunction runtimeContractEntries(value: unknown): Array<[string, number]> {\n if (!isRecord(value)) return []\n return Object.entries(value).filter((entry): entry is [string, number] => typeof entry[1] === 'number')\n}\n\nfunction lastExitDiagnostics(value: unknown): ManagedSessionExitDiagnostics | null {\n if (!isRecord(value) || typeof value.lastError !== 'string') return null\n const systemd = isRecord(value.systemd)\n ? {\n unit: typeof value.systemd.unit === 'string' ? value.systemd.unit : undefined,\n activeState: typeof value.systemd.activeState === 'string' ? value.systemd.activeState : undefined,\n subState: typeof value.systemd.subState === 'string' ? value.systemd.subState : undefined,\n result: typeof value.systemd.result === 'string' ? value.systemd.result : undefined,\n execMainCode: typeof value.systemd.execMainCode === 'string' ? value.systemd.execMainCode : undefined,\n execMainStatus: typeof value.systemd.execMainStatus === 'string' ? value.systemd.execMainStatus : undefined,\n }\n : undefined\n return {\n lastError: value.lastError,\n detectedAt: typeof value.detectedAt === 'number' ? value.detectedAt : undefined,\n runtimeMs: typeof value.runtimeMs === 'number' ? value.runtimeMs : undefined,\n logFile: typeof value.logFile === 'string' ? value.logFile : undefined,\n logBytes: typeof value.logBytes === 'number' ? value.logBytes : undefined,\n logEmpty: typeof value.logEmpty === 'boolean' ? value.logEmpty : undefined,\n logTail: Array.isArray(value.logTail) ? value.logTail.filter((line): line is string => typeof line === 'string') : undefined,\n systemd,\n unavailable: Array.isArray(value.unavailable) ? value.unavailable.filter((item): item is string => typeof item === 'string') : undefined,\n }\n}\n\nfunction terminalSessionForAgent(agent: { meta?: Record<string, unknown> } | null): string | null {\n const session = agent?.meta?.tmuxSession\n return typeof session === 'string' && session.trim() ? session : null\n}\n\nfunction orchestratorForAgentTerminal(\n agent: { id: string } | null,\n session: string,\n orchestrators: Array<{\n id: string\n status: 'online' | 'offline'\n managedAgents: Array<{ agentId: string; tmuxSession: string }>\n }>,\n) {\n if (!agent) return null\n return orchestrators.find((orchestrator) =>\n orchestrator.managedAgents.some((managed) =>\n managed.agentId === agent.id || managed.tmuxSession === session\n )\n ) ?? null\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ScrollArea as ScrollAreaPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-border\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n )\n}\n\nexport { ScrollArea }\n","import { useMemo } from 'react'\nimport { useRelayStore, useNow } from '@/store'\nimport { Sheet, SheetContent, SheetHeader, SheetTitle } from '@/components/ui/sheet'\nimport { Badge } from '@/components/ui/badge'\nimport { ScrollArea } from '@/components/ui/scroll-area'\nimport { Separator } from '@/components/ui/separator'\nimport { channelPresence, displayTarget, timeAgo, messageBody, messageMatchesChannel, toneToColor, userFacingCapabilities } from '@/lib/display'\n\nexport function ChannelDetailDrawer() {\n const open = useRelayStore((s) => s.channelDetailOpen)\n const channelId = useRelayStore((s) => s.channelDetailId)\n const channels = useRelayStore((s) => s.channels)\n const messages = useRelayStore((s) => s.messages)\n const agentsById = useRelayStore((s) => s.agentsById)\n const now = useNow()\n const closeChannelDetail = useRelayStore((s) => s.closeChannelDetail)\n\n const channel = channels.find((c) => c.id === channelId) || null\n const presence = channelPresence(channel)\n\n const channelMessages = useMemo(() => {\n if (!channel) return []\n return messages.filter((m) => messageMatchesChannel(m, channel)).sort((a, b) => b.id - a.id).slice(0, 8)\n }, [messages, channel])\n\n return (\n <Sheet open={open} onOpenChange={(o) => !o && closeChannelDetail()}>\n <SheetContent className=\"w-full max-w-[100dvw] sm:max-w-md lg:max-w-lg p-0\">\n <SheetHeader className=\"shrink-0 p-4 border-b border-border\">\n <div className=\"flex items-center gap-2 min-w-0\">\n <Badge className={toneToColor(presence.tone)}>{presence.label}</Badge>\n <SheetTitle className=\"text-base truncate\">{channel?.name || 'Channel'}</SheetTitle>\n </div>\n </SheetHeader>\n\n <ScrollArea className=\"flex-1 min-h-0\">\n <div className=\"p-4 space-y-4\">\n {channel && (\n <>\n <div>\n <h3 className=\"text-sm font-medium mb-2\">Route</h3>\n <div className=\"space-y-1 text-sm\">\n <div className=\"flex justify-between gap-2\"><span className=\"text-muted-foreground shrink-0\">Type</span><span className=\"truncate\">{channel.type}</span></div>\n <div className=\"flex justify-between gap-2\"><span className=\"text-muted-foreground shrink-0\">Direction</span><span className=\"truncate\">{channel.direction}</span></div>\n {channel.target && <div className=\"flex justify-between gap-2\"><span className=\"text-muted-foreground shrink-0\">Target</span><span className=\"truncate\">{channel.target}</span></div>}\n <div className=\"flex justify-between gap-2\"><span className=\"text-muted-foreground shrink-0\">Agent</span><span className=\"truncate\">{channel.agentId}</span></div>\n <div className=\"flex justify-between gap-2\"><span className=\"text-muted-foreground shrink-0\">Transport</span><span className=\"truncate\">{channel.transport}</span></div>\n <div className=\"flex justify-between gap-2\"><span className=\"text-muted-foreground shrink-0\">Last seen</span><span className=\"shrink-0\">{timeAgo(now, channel.lastSeen)}</span></div>\n </div>\n </div>\n\n {userFacingCapabilities(channel.capabilities).length > 0 && (\n <>\n <Separator />\n <div>\n <h3 className=\"text-sm font-medium mb-2\">Capabilities</h3>\n <div className=\"flex flex-wrap gap-1\">{userFacingCapabilities(channel.capabilities).map((c) => <Badge key={c} variant=\"secondary\" className=\"text-[10px]\">{c}</Badge>)}</div>\n </div>\n </>\n )}\n\n {channel.meta && Object.keys(channel.meta).length > 0 && (\n <>\n <Separator />\n <div>\n <h3 className=\"text-sm font-medium mb-2\">Metadata</h3>\n <div className=\"space-y-1 text-sm\">\n {Object.entries(channel.meta).map(([k, v]) => (\n <div key={k} className=\"flex justify-between gap-2 min-w-0\"><span className=\"text-muted-foreground shrink-0\">{k}</span><span className=\"truncate\">{String(v)}</span></div>\n ))}\n </div>\n </div>\n </>\n )}\n </>\n )}\n\n {channelMessages.length > 0 && (\n <>\n <Separator />\n <div>\n <h3 className=\"text-sm font-medium mb-2\">Recent Messages</h3>\n <div className=\"space-y-2\">\n {channelMessages.map((msg) => (\n <div key={msg.id} className=\"rounded border border-border p-2 text-xs space-y-0.5 min-w-0\">\n <div className=\"flex items-center gap-1 text-muted-foreground min-w-0\">\n <span className=\"font-medium text-foreground truncate shrink-0 max-w-[40%]\">{displayTarget(msg.from, agentsById)}</span>\n <span className=\"shrink-0\">→</span>\n <span className=\"truncate max-w-[40%]\">{displayTarget(msg.to, agentsById)}</span>\n <span className=\"ml-auto shrink-0 text-[10px]\"><span className=\"opacity-40 mr-1\">#{msg.id}</span>{timeAgo(now, msg.createdAt)}</span>\n </div>\n <div className=\"text-foreground whitespace-pre-wrap break-words line-clamp-3\">{messageBody(msg)}</div>\n </div>\n ))}\n </div>\n </div>\n </>\n )}\n </div>\n </ScrollArea>\n </SheetContent>\n </Sheet>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as DialogPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { XIcon } from \"lucide-react\"\n\n// Closing a dialog programmatically (app-driven, not via the Back button) pops\n// the history guard it pushed. That pop fires `popstate`, which a still-mounted\n// parent dialog's listener would otherwise mistake for a real Back press and\n// close itself too — so opening + closing a nested dialog silently dismisses its\n// parent. This module-level flag lets a synthetic guard-pop pass through\n// untouched. It is reset whenever any dialog opens, so a stale value can never\n// swallow a genuine Back press (a real Back only matters while a dialog is open).\nlet suppressGuardPop = false\n\nfunction useBackClose(open: boolean | undefined, onOpenChange?: (open: boolean) => void) {\n const pushedRef = React.useRef(false)\n const cbRef = React.useRef(onOpenChange)\n cbRef.current = onOpenChange\n\n React.useEffect(() => {\n if (!open || !cbRef.current) { return }\n suppressGuardPop = false\n window.history.pushState({ dialogGuard: true }, '')\n pushedRef.current = true\n function onPop() {\n if (suppressGuardPop) { suppressGuardPop = false; return }\n if (pushedRef.current) { pushedRef.current = false; cbRef.current?.(false) }\n }\n window.addEventListener('popstate', onPop)\n return () => {\n window.removeEventListener('popstate', onPop)\n if (pushedRef.current) { pushedRef.current = false; suppressGuardPop = true; window.history.back() }\n }\n }, [open])\n}\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n useBackClose(props.open, props.onOpenChange)\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n blur = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay> & { blur?: boolean }) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 isolate z-50 bg-black/10 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n // Full-viewport backdrop-filter blur is GPU-expensive and keeps the\n // compositor hot. Let heavy dialogs (e.g. the streaming terminal) opt out.\n blur && \"supports-backdrop-filter:backdrop-blur-xs\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n blurOverlay = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n blurOverlay?: boolean\n}) {\n return (\n <DialogPortal>\n <DialogOverlay blur={blurOverlay} />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" asChild>\n <Button\n variant=\"ghost\"\n className=\"absolute top-2 right-2\"\n size=\"icon-sm\"\n >\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </Button>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogPrimitive.Close>\n )}\n </div>\n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\n \"font-heading text-base leading-none font-medium\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\n \"text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","import * as React from \"react\"\nimport { Label as LabelPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","import { useRelayStore } from '@/store'\nimport { useComposeAgents } from '@/hooks/use-selectors'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Textarea } from '@/components/ui/textarea'\nimport { Label } from '@/components/ui/label'\nimport { Switch } from '@/components/ui/switch'\nimport { displayName } from '@/lib/display'\n\nexport function ComposeModal() {\n const open = useRelayStore((s) => s.composeOpen)\n const compose = useRelayStore((s) => s.compose)\n const replyTo = useRelayStore((s) => s.replyTo)\n const set = useRelayStore((s) => s.set)\n const doSend = useRelayStore((s) => s.doSend)\n const cancelReply = useRelayStore((s) => s.cancelReply)\n const composeAgents = useComposeAgents()\n\n function close() {\n set({ composeOpen: false })\n cancelReply()\n }\n\n function update(partial: Partial<typeof compose>) {\n set({ compose: { ...compose, ...partial } })\n }\n\n return (\n <Dialog open={open} onOpenChange={(o) => !o && close()}>\n <DialogContent className=\"max-w-lg\">\n <DialogHeader>\n <DialogTitle>{replyTo ? `Reply to #${replyTo.id}` : 'Compose Message'}</DialogTitle>\n </DialogHeader>\n <div className=\"space-y-3\">\n <div>\n <Label>From</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={compose.from} onChange={(e) => update({ from: e.target.value })}>\n <option value=\"\">Select agent...</option>\n {composeAgents.map((a) => <option key={a.id} value={a.id}>{displayName(a)}</option>)}\n </select>\n </div>\n <div>\n <Label>To</Label>\n <Input value={compose.to} onChange={(e) => update({ to: e.target.value })} placeholder=\"agent-id, tag:name, cap:name, or broadcast\" />\n </div>\n <div>\n <Label>Subject</Label>\n <Input value={compose.subject} onChange={(e) => update({ subject: e.target.value })} placeholder=\"Optional subject...\" />\n </div>\n <div>\n <Label>Channel</Label>\n <Input value={compose.channel} onChange={(e) => update({ channel: e.target.value })} placeholder=\"Optional channel...\" />\n </div>\n <div>\n <Label>Message</Label>\n <Textarea value={compose.body} onChange={(e) => update({ body: e.target.value })} rows={4} placeholder=\"Message body...\" autoFocus />\n </div>\n <label className=\"flex items-center gap-2\">\n <Switch checked={compose.claimable} onCheckedChange={(v) => update({ claimable: v })} />\n <span className=\"text-sm text-muted-foreground\">Claimable task</span>\n </label>\n </div>\n <DialogFooter>\n <Button variant=\"outline\" onClick={close}>Cancel</Button>\n <Button onClick={doSend}>Send</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useRelayStore } from '@/store'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogDescription } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\n\nexport function ConfirmModal() {\n const modal = useRelayStore((s) => s.confirmModal)\n const set = useRelayStore((s) => s.set)\n\n function close() {\n set({ confirmModal: { show: false, title: '', message: '', action: null } })\n }\n\n return (\n <Dialog open={modal.show} onOpenChange={(open) => !open && close()}>\n <DialogContent className=\"sm:max-w-sm\">\n <DialogHeader>\n <DialogTitle>{modal.title}</DialogTitle>\n <DialogDescription>{modal.message}</DialogDescription>\n </DialogHeader>\n <DialogFooter>\n <Button variant=\"outline\" onClick={close}>Cancel</Button>\n <Button variant=\"destructive\" onClick={() => { modal.action?.(); close() }}>Confirm</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useRelayStore } from '@/store'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogDescription } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\n\nexport function ErrorModal() {\n const modal = useRelayStore((s) => s.errorModal)\n const set = useRelayStore((s) => s.set)\n\n function close() {\n set({ errorModal: { show: false, title: '', message: '' } })\n }\n\n return (\n <Dialog open={modal.show} onOpenChange={(open) => !open && close()}>\n <DialogContent className=\"sm:max-w-sm\">\n <DialogHeader>\n <DialogTitle>{modal.title}</DialogTitle>\n <DialogDescription>{modal.message}</DialogDescription>\n </DialogHeader>\n <DialogFooter>\n <Button onClick={close}>OK</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useRelayStore } from '@/store'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\n\nexport function RenameModal() {\n const modal = useRelayStore((s) => s.renameModal)\n const set = useRelayStore((s) => s.set)\n const doRename = useRelayStore((s) => s.doRename)\n\n function close() {\n set({ renameModal: { show: false, agentId: '', label: '' } })\n }\n\n return (\n <Dialog open={modal.show} onOpenChange={(open) => !open && close()}>\n <DialogContent className=\"sm:max-w-sm\">\n <DialogHeader>\n <DialogTitle>Rename Agent</DialogTitle>\n </DialogHeader>\n <div className=\"space-y-3\">\n <Label>Label</Label>\n <Input\n value={modal.label}\n onChange={(e) => set({ renameModal: { ...modal, label: e.target.value } })}\n onKeyDown={(e) => e.key === 'Enter' && doRename()}\n placeholder=\"Human-friendly name...\"\n autoFocus\n />\n <p className=\"text-xs text-muted-foreground\">Leave empty to clear the label.</p>\n </div>\n <DialogFooter>\n <Button variant=\"outline\" onClick={close}>Cancel</Button>\n <Button onClick={doRename}>Save</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useRelayStore } from '@/store'\nimport { useComposeAgents } from '@/hooks/use-selectors'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\nimport { displayName } from '@/lib/display'\n\nexport function PairInviteModal() {\n const open = useRelayStore((s) => s.pairInviteOpen)\n const invite = useRelayStore((s) => s.pairInvite)\n const set = useRelayStore((s) => s.set)\n const closePairInvite = useRelayStore((s) => s.closePairInvite)\n const doCreatePair = useRelayStore((s) => s.doCreatePair)\n const agents = useComposeAgents()\n\n function update(partial: Partial<typeof invite>) {\n set({ pairInvite: { ...invite, ...partial } })\n }\n\n return (\n <Dialog open={open} onOpenChange={(o) => !o && closePairInvite()}>\n <DialogContent className=\"sm:max-w-sm\">\n <DialogHeader>\n <DialogTitle>Pair Agents</DialogTitle>\n </DialogHeader>\n <div className=\"space-y-3\">\n <div>\n <Label>Requester</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={invite.requesterId} onChange={(e) => update({ requesterId: e.target.value })}>\n <option value=\"\">Select agent...</option>\n {agents.map((a) => <option key={a.id} value={a.id}>{displayName(a)}</option>)}\n </select>\n </div>\n <div>\n <Label>Target</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={invite.targetId} onChange={(e) => update({ targetId: e.target.value })}>\n <option value=\"\">Select agent...</option>\n {agents.map((a) => <option key={a.id} value={a.id}>{displayName(a)}</option>)}\n </select>\n </div>\n <div>\n <Label>Objective</Label>\n <Input value={invite.objective} onChange={(e) => update({ objective: e.target.value })} placeholder=\"What should they work on?\" />\n </div>\n </div>\n <DialogFooter>\n <Button variant=\"outline\" onClick={closePairInvite}>Cancel</Button>\n <Button onClick={doCreatePair}>Create Pair</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useRelayStore } from '@/store'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\nimport { Textarea } from '@/components/ui/textarea'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\n\nexport function PairMessageModal() {\n const open = useRelayStore((s) => s.pairMessageOpen)\n const msg = useRelayStore((s) => s.pairMessage)\n const set = useRelayStore((s) => s.set)\n const closePairMessage = useRelayStore((s) => s.closePairMessage)\n const doSendPairMessage = useRelayStore((s) => s.doSendPairMessage)\n\n function update(partial: Partial<typeof msg>) {\n set({ pairMessage: { ...msg, ...partial } })\n }\n\n return (\n <Dialog open={open} onOpenChange={(o) => !o && closePairMessage()}>\n <DialogContent className=\"sm:max-w-sm\">\n <DialogHeader>\n <DialogTitle>Pair Message</DialogTitle>\n </DialogHeader>\n <div className=\"space-y-3\">\n <div>\n <Label>Subject</Label>\n <Input value={msg.subject} onChange={(e) => update({ subject: e.target.value })} placeholder=\"Optional subject...\" />\n </div>\n <div>\n <Label>Message</Label>\n <Textarea value={msg.body} onChange={(e) => update({ body: e.target.value })} rows={4} placeholder=\"Message body...\" autoFocus />\n </div>\n </div>\n <DialogFooter>\n <Button variant=\"outline\" onClick={closePairMessage}>Cancel</Button>\n <Button onClick={doSendPairMessage}>Send</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n","import { lazy, Suspense } from 'react'\nimport type { FormattedBodyProps } from './formatted-body-impl'\n\n// Lazy boundary for react-markdown (#201). FormattedBody is statically imported\n// by the always-mounted ThreadModal, which would otherwise drag react-markdown +\n// remark/rehype plugins into the initial bundle. Behind this boundary the\n// markdown chunk loads on first actual render (thread opened, or chat/messages\n// view navigated to). The fallback renders the plain text so there's no blank\n// flash while the chunk resolves on first use.\nconst LazyFormattedBody = lazy(() =>\n import('./formatted-body-impl').then((m) => ({ default: m.FormattedBody })),\n)\n\nexport type { FormattedBodyProps }\n\nexport function FormattedBody(props: FormattedBodyProps) {\n return (\n <Suspense fallback={<span className={props.className}>{props.text}</span>}>\n <LazyFormattedBody {...props} />\n </Suspense>\n )\n}\n","import { useRelayStore, useNow } from '@/store'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog'\nimport { Badge } from '@/components/ui/badge'\nimport { ScrollArea } from '@/components/ui/scroll-area'\nimport { displayTarget, messageBody, timeAgo } from '@/lib/display'\nimport { FormattedBody } from '@/components/shared/formatted-body'\n\nexport function ThreadModal() {\n const open = useRelayStore((s) => s.threadOpen)\n const messages = useRelayStore((s) => s.threadMessages)\n const agentsById = useRelayStore((s) => s.agentsById)\n const now = useNow()\n const set = useRelayStore((s) => s.set)\n\n return (\n <Dialog open={open} onOpenChange={(o) => !o && set({ threadOpen: false })}>\n <DialogContent className=\"max-w-2xl max-h-[80vh]\">\n <DialogHeader>\n <DialogTitle>Thread ({messages.length} messages)</DialogTitle>\n </DialogHeader>\n <ScrollArea className=\"max-h-[60vh]\">\n <div className=\"space-y-3 pr-4\">\n {messages.map((msg) => (\n <div key={msg.id} className=\"rounded-lg border border-border p-3 space-y-1\">\n <div className=\"flex items-center gap-2 text-sm\">\n <span className=\"font-medium\">{displayTarget(msg.from, agentsById)}</span>\n <span className=\"text-muted-foreground\">→</span>\n <span className=\"text-muted-foreground\">{displayTarget(msg.to, agentsById)}</span>\n <span className=\"ml-auto text-xs text-muted-foreground\">{timeAgo(now, msg.createdAt)}</span>\n </div>\n {msg.subject && <div className=\"text-sm font-medium\">{msg.subject}</div>}\n <FormattedBody text={messageBody(msg)} rawBody={msg.body} className=\"text-sm text-muted-foreground\" />\n <div className=\"flex gap-1.5 flex-wrap\">\n {msg.channel && <Badge variant=\"secondary\" className=\"text-[10px]\">{msg.channel}</Badge>}\n {msg.claimedBy && <Badge variant=\"secondary\" className=\"text-[10px]\">claimed by {displayTarget(msg.claimedBy, agentsById)}</Badge>}\n </div>\n </div>\n ))}\n </div>\n </ScrollArea>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useRelayStore } from '@/store'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { ScrollArea } from '@/components/ui/scroll-area'\nimport { fmtTime } from '@/lib/display'\nimport { SEVERITY_COLORS } from '@/lib/constants'\nimport { BrainCircuit } from 'lucide-react'\nimport type { TaskEvent } from '@/types'\n\nexport function TaskEventsModal() {\n const open = useRelayStore((s) => s.taskEventsOpen)\n const events = useRelayStore((s) => s.taskEvents)\n const set = useRelayStore((s) => s.set)\n const switchView = useRelayStore((s) => s.switchView)\n\n function openMemory(memoryId: string) {\n set({ selectedMemoryId: memoryId, taskEventsOpen: false })\n switchView('memory')\n }\n\n return (\n <Dialog open={open} onOpenChange={(o) => !o && set({ taskEventsOpen: false })}>\n <DialogContent className=\"max-w-2xl max-h-[80vh]\">\n <DialogHeader>\n <DialogTitle>Task Events ({events.length})</DialogTitle>\n </DialogHeader>\n <ScrollArea className=\"max-h-[60vh]\">\n <div className=\"space-y-2 pr-4\">\n {events.map((evt) => (\n <div key={evt.id} className=\"flex items-start gap-3 rounded-lg border border-border p-3\">\n <Badge className={SEVERITY_COLORS[evt.severity] || SEVERITY_COLORS.info}>{evt.severity}</Badge>\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium\">{evt.title}</span>\n <Badge variant=\"outline\" className=\"text-[10px]\">{evt.type}</Badge>\n </div>\n {evt.body && <p className=\"text-sm text-muted-foreground mt-1 whitespace-pre-wrap\">{evt.body}</p>}\n <MemoryCapture event={evt} onOpen={openMemory} />\n <div className=\"text-xs text-muted-foreground mt-1\">{fmtTime(evt.createdAt)} · {evt.source}</div>\n </div>\n </div>\n ))}\n {events.length === 0 && <p className=\"text-sm text-muted-foreground text-center py-8\">No events recorded.</p>}\n </div>\n </ScrollArea>\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction MemoryCapture({ event, onOpen }: { event: TaskEvent; onOpen: (memoryId: string) => void }) {\n if (event.type !== 'memory.captured') return null\n const memoryId = typeof event.metadata?.memoryId === 'string' ? event.metadata.memoryId : ''\n const memory = event.metadata?.memory && typeof event.metadata.memory === 'object' && !Array.isArray(event.metadata.memory)\n ? event.metadata.memory as Record<string, unknown>\n : {}\n const title = typeof memory.title === 'string' ? memory.title : event.body || memoryId\n const scope = typeof memory.scope === 'string' ? memory.scope : ''\n const type = typeof memory.type === 'string' ? memory.type : 'memory'\n const sensitivity = typeof memory.sensitivity === 'string' ? memory.sensitivity : ''\n\n return (\n <div className=\"mt-2 rounded-md border border-border bg-muted/20 p-2 text-xs\">\n <div className=\"flex items-start gap-2\">\n <BrainCircuit className=\"w-3.5 h-3.5 mt-0.5 text-muted-foreground shrink-0\" />\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex flex-wrap gap-1 mb-1\">\n <Badge variant=\"secondary\" className=\"text-[10px]\">{type}</Badge>\n {scope && <Badge variant=\"outline\" className=\"text-[10px] font-mono\">{scope}</Badge>}\n {sensitivity && <Badge variant=\"outline\" className=\"text-[10px]\">{sensitivity}</Badge>}\n </div>\n <div className=\"font-medium truncate\">{title}</div>\n {memoryId && <div className=\"font-mono text-[10px] text-muted-foreground truncate\">{memoryId}</div>}\n </div>\n {memoryId && (\n <Button size=\"sm\" variant=\"outline\" className=\"h-7 text-xs shrink-0\" onClick={() => onOpen(memoryId)}>\n Open\n </Button>\n )}\n </div>\n </div>\n )\n}\n","import { useCallback, useEffect, useMemo, useState } from 'react'\nimport { errMessage } from 'agent-relay-sdk/types'\nimport { CornerUpLeft, Folder, FolderOpen, FolderPlus, Loader2, Check, X } from 'lucide-react'\nimport { useRelayStore } from '@/store'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\n\ninterface DirectoryEntry {\n name: string\n path: string\n}\n\ninterface DirectoryListing {\n path: string\n parent?: string\n baseDir: string\n entries: DirectoryEntry[]\n}\n\ninterface DirectoryBrowserDialogProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n onSelect: (path: string) => void\n orchestratorId: string\n initialPath?: string\n title?: string\n}\n\nexport function DirectoryBrowserDialog({ open, onOpenChange, onSelect, orchestratorId, initialPath, title = 'Select Directory' }: DirectoryBrowserDialogProps) {\n const apiCall = useRelayStore((s) => s.apiCall)\n const [loading, setLoading] = useState(false)\n const [listing, setListing] = useState<DirectoryListing | null>(null)\n const [error, setError] = useState<string | null>(null)\n const [creating, setCreating] = useState(false)\n const [newDirName, setNewDirName] = useState('')\n const [createError, setCreateError] = useState<string | null>(null)\n\n const currentPath = listing?.path || initialPath || ''\n const segments = useMemo(() => currentPath.split('/').filter(Boolean), [currentPath])\n\n const browse = useCallback(async (path?: string) => {\n if (!orchestratorId) return\n setLoading(true)\n setError(null)\n setCreating(false)\n try {\n const query = path ? `?path=${encodeURIComponent(path)}` : ''\n const result = await apiCall<DirectoryListing>('GET', `/orchestrators/${encodeURIComponent(orchestratorId)}/directories${query}`)\n setListing(result)\n } catch (e) {\n setError(errMessage(e))\n } finally {\n setLoading(false)\n }\n }, [orchestratorId, apiCall])\n\n useEffect(() => {\n if (open && orchestratorId) {\n setListing(null)\n setError(null)\n setCreating(false)\n browse(initialPath || undefined)\n }\n }, [open, orchestratorId])\n\n async function handleCreate() {\n if (!newDirName.trim() || !listing) return\n setCreateError(null)\n try {\n const result = await apiCall<DirectoryListing>('POST', `/orchestrators/${encodeURIComponent(orchestratorId)}/directories`, { path: listing.path, name: newDirName.trim() })\n setListing(result)\n setCreating(false)\n setNewDirName('')\n } catch (e) {\n setCreateError(errMessage(e))\n }\n }\n\n function handleSelect() {\n if (currentPath) {\n onSelect(currentPath)\n onOpenChange(false)\n }\n }\n\n function handleBreadcrumbClick(index: number) {\n const path = '/' + segments.slice(0, index + 1).join('/')\n browse(path)\n }\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"max-w-lg max-h-[85dvh] flex flex-col\">\n <DialogHeader>\n <DialogTitle className=\"flex items-center gap-2\">\n <FolderOpen className=\"h-4 w-4\" />\n {title}\n </DialogTitle>\n </DialogHeader>\n\n <div className=\"flex items-center gap-1 rounded-md border border-border bg-muted/50 px-2 py-1.5 text-xs overflow-x-auto\">\n <button type=\"button\" className=\"font-mono text-muted-foreground hover:text-foreground shrink-0\" onClick={() => listing?.baseDir && browse(listing.baseDir)}>/</button>\n {segments.map((segment, index) => (\n <span key={`${segment}-${index}`} className=\"shrink-0\">\n <button type=\"button\" className=\"font-mono text-muted-foreground hover:text-foreground\" onClick={() => handleBreadcrumbClick(index)}>{segment}</button>\n {index < segments.length - 1 && <span className=\"text-muted-foreground/50 mx-0.5\">/</span>}\n </span>\n ))}\n </div>\n\n <div className=\"flex-1 min-h-0 rounded-md border border-border bg-background overflow-y-auto\" style={{ maxHeight: '40dvh' }}>\n {loading && (\n <div className=\"flex items-center justify-center py-8\">\n <Loader2 className=\"h-5 w-5 animate-spin text-muted-foreground\" />\n </div>\n )}\n {!loading && error && (\n <div className=\"px-3 py-4 text-sm text-destructive\">{error}</div>\n )}\n {!loading && listing && (\n <div className=\"p-1\">\n {listing.parent && (\n <button type=\"button\" className=\"flex h-9 w-full items-center gap-2 rounded-md px-2 text-left text-sm hover:bg-muted\" onClick={() => browse(listing.parent)}>\n <CornerUpLeft className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"text-muted-foreground\">..</span>\n </button>\n )}\n {listing.entries.map((entry) => (\n <button type=\"button\" key={entry.path} className=\"flex h-9 w-full items-center gap-2 rounded-md px-2 text-left text-sm hover:bg-muted\" onClick={() => browse(entry.path)}>\n <Folder className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"truncate\">{entry.name}</span>\n </button>\n ))}\n {listing.entries.length === 0 && !listing.parent && (\n <div className=\"px-2 py-4 text-sm text-muted-foreground text-center\">Empty directory</div>\n )}\n {listing.entries.length === 0 && listing.parent && (\n <div className=\"px-2 py-4 text-sm text-muted-foreground text-center\">No subdirectories</div>\n )}\n </div>\n )}\n </div>\n\n {creating ? (\n <div className=\"flex gap-2\">\n <Input\n autoFocus\n value={newDirName}\n onChange={(e) => { setNewDirName(e.target.value); setCreateError(null) }}\n onKeyDown={(e) => { if (e.key === 'Enter') handleCreate(); if (e.key === 'Escape') { setCreating(false); setNewDirName('') } }}\n placeholder=\"New directory name...\"\n className=\"flex-1 font-mono text-sm\"\n />\n <Button type=\"button\" size=\"icon\" variant=\"outline\" onClick={handleCreate} disabled={!newDirName.trim()}>\n <Check className=\"h-4 w-4\" />\n </Button>\n <Button type=\"button\" size=\"icon\" variant=\"ghost\" onClick={() => { setCreating(false); setNewDirName(''); setCreateError(null) }}>\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n ) : (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={() => setCreating(true)} disabled={!listing || loading}>\n <FolderPlus className=\"h-4 w-4 mr-1.5\" />\n New Directory\n </Button>\n )}\n {createError && <p className=\"text-xs text-destructive\">{createError}</p>}\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => onOpenChange(false)}>Cancel</Button>\n <Button onClick={handleSelect} disabled={!currentPath}>Select</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useState } from 'react'\nimport { FolderOpen, Loader2 } from 'lucide-react'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { DirectoryBrowserDialog } from '@/components/shared/directory-browser-dialog'\n\ninterface DirectoryPickerProps {\n value: string\n onChange: (path: string) => void\n orchestratorId?: string\n placeholder?: string\n disabled?: boolean\n}\n\nexport function DirectoryPicker({ value, onChange, orchestratorId, placeholder, disabled }: DirectoryPickerProps) {\n const [dialogOpen, setDialogOpen] = useState(false)\n\n return (\n <div className=\"flex gap-2\">\n <Input value={value} onChange={(e) => onChange(e.target.value)} placeholder={placeholder} disabled={disabled} className=\"flex-1 font-mono text-sm\" />\n <Button type=\"button\" variant=\"outline\" size=\"icon\" onClick={() => setDialogOpen(true)} disabled={disabled || !orchestratorId} title=\"Browse directories\">\n <FolderOpen className=\"h-4 w-4\" />\n </Button>\n {orchestratorId && (\n <DirectoryBrowserDialog\n open={dialogOpen}\n onOpenChange={setDialogOpen}\n onSelect={onChange}\n orchestratorId={orchestratorId}\n initialPath={value || undefined}\n />\n )}\n </div>\n )\n}\n","import { Badge } from '@/components/ui/badge'\nimport { Code2, Eye, Image as ImageIcon } from 'lucide-react'\nimport type { ProviderModelCatalogEntry } from 'agent-relay-sdk/provider-catalog'\n\nexport function ModelTraits({ model }: { model?: ProviderModelCatalogEntry }) {\n if (!model) return null\n const traits = modelTraitLabels(model)\n if (traits.length === 0) return null\n\n return (\n <div className=\"flex flex-wrap gap-1.5\">\n {traits.map((trait) => (\n <Badge key={trait.label} variant=\"outline\" className=\"gap-1 text-[10px]\">\n <trait.Icon className=\"h-3 w-3\" />\n {trait.label}\n </Badge>\n ))}\n </div>\n )\n}\n\nfunction modelTraitLabels(model: ProviderModelCatalogEntry) {\n const traits: Array<{ label: string; Icon: typeof Code2 }> = []\n const contextWindow = model.limits?.contextWindowTokens?.value\n if (contextWindow) traits.push({ label: formatTokenLimit(contextWindow), Icon: Eye })\n if (model.capabilities?.modalities.input.image) traits.push({ label: 'Image input', Icon: ImageIcon })\n if (model.capabilities?.modalities.output.image || model.capabilities?.tools?.imageGeneration) traits.push({ label: 'Image output', Icon: ImageIcon })\n if (model.capabilities?.tools?.code) traits.push({ label: 'Code', Icon: Code2 })\n return traits\n}\n\nfunction formatTokenLimit(tokens: number): string {\n if (tokens >= 1_000_000) return `${tokens / 1_000_000}M ctx`\n if (tokens >= 1_000) return `${Math.round(tokens / 1_000)}K ctx`\n return `${tokens} ctx`\n}\n","import { useRelayStore } from '@/store'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Textarea } from '@/components/ui/textarea'\nimport { Label } from '@/components/ui/label'\nimport { DirectoryPicker } from '@/components/shared/directory-picker'\nimport { ModelTraits } from '@/components/shared/model-traits'\nimport { PROVIDER_CATALOG } from 'agent-relay-sdk/provider-catalog'\nimport type { SpawnProvider } from '@/types'\n\nexport function OrchestratorSpawnModal() {\n const open = useRelayStore((s) => s.orchestratorSpawnOpen)\n const orchestrators = useRelayStore((s) => s.orchestrators)\n const orchId = useRelayStore((s) => s.spawnOrchId)\n const provider = useRelayStore((s) => s.spawnProvider)\n const model = useRelayStore((s) => s.spawnModel)\n const effort = useRelayStore((s) => s.spawnEffort)\n const profile = useRelayStore((s) => s.spawnProfile)\n const cwd = useRelayStore((s) => s.spawnCwd)\n const label = useRelayStore((s) => s.spawnLabel)\n const approval = useRelayStore((s) => s.spawnApproval)\n const workspaceMode = useRelayStore((s) => s.spawnWorkspaceMode)\n const prompt = useRelayStore((s) => s.spawnPrompt)\n const systemPromptAppend = useRelayStore((s) => s.spawnSystemPromptAppend)\n const count = useRelayStore((s) => s.spawnCount)\n const cwdHistory = useRelayStore((s) => s.spawnCwdHistory)\n const isSpawning = useRelayStore((s) => s.isSpawning)\n const isFork = useRelayStore((s) => Boolean(s.pendingForkImport))\n const set = useRelayStore((s) => s.set)\n const submitOrchestratorSpawn = useRelayStore((s) => s.submitOrchestratorSpawn)\n const selectSpawnHistory = useRelayStore((s) => s.selectSpawnHistory)\n const agentProfiles = useRelayStore((s) => s.agentProfiles)\n\n const orch = orchestrators.find((o) => o.id === orchId)\n const providers = orch?.providers || []\n const catalog = PROVIDER_CATALOG[provider as SpawnProvider]\n const models = catalog?.models || []\n const selectedModel = models.find((m) => m.alias === model)\n const efforts = selectedModel?.efforts || []\n const canSpawn = Boolean(orch && providers.length > 0 && cwd.trim()) && !isSpawning\n\n const onlineOrchs = orchestrators.filter((o) => o.status === 'online')\n const multiOrch = onlineOrchs.length > 1\n const recentDirs = cwdHistory.filter((h) => onlineOrchs.some((o) => o.id === h.orchId)).slice(0, 5)\n\n function selectOrchestrator(nextId: string) {\n const nextOrch = orchestrators.find((o) => o.id === nextId)\n const nextProvider = nextOrch?.providers[0] || ''\n const nextModel = nextProvider ? PROVIDER_CATALOG[nextProvider as SpawnProvider]?.defaultModel || '' : ''\n set({ spawnOrchId: nextId, spawnProvider: nextProvider, spawnModel: nextModel, spawnEffort: '', spawnCwd: nextOrch?.baseDir || '' })\n }\n\n function selectProvider(nextProvider: string) {\n set({ spawnProvider: nextProvider, spawnModel: PROVIDER_CATALOG[nextProvider as SpawnProvider]?.defaultModel || '', spawnEffort: '' })\n }\n\n function selectModel(nextModel: string) {\n set({ spawnModel: nextModel, spawnEffort: '' })\n }\n\n return (\n <Dialog open={open} onOpenChange={(o) => !o && set({ orchestratorSpawnOpen: false })}>\n <DialogContent className=\"max-w-lg max-h-[90dvh] flex flex-col\" onOpenAutoFocus={(e) => e.preventDefault()}>\n <DialogHeader>\n <DialogTitle>Spawn Agent</DialogTitle>\n </DialogHeader>\n <div className=\"space-y-3 overflow-y-auto flex-1 min-h-0 -mx-4 px-4\">\n <div>\n <Label>Orchestrator</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={orchId} onChange={(e) => selectOrchestrator(e.target.value)}>\n {orchestrators.filter((o) => o.status === 'online').map((o) => <option key={o.id} value={o.id}>{o.hostname} ({o.id.slice(-8)})</option>)}\n </select>\n </div>\n <div>\n <Label>Provider</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={provider} onChange={(e) => selectProvider(e.target.value)} disabled={!providers.length}>\n {!providers.length && <option value={provider}>No providers available</option>}\n {providers.map((p) => <option key={p} value={p}>{p}</option>)}\n </select>\n </div>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <Label>Model</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={model} onChange={(e) => selectModel(e.target.value)} disabled={!models.length}>\n {models.map((m) => <option key={m.alias} value={m.alias}>{m.label}</option>)}\n </select>\n </div>\n <div>\n <Label>Effort</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={effort} onChange={(e) => set({ spawnEffort: e.target.value })} disabled={!efforts.length}>\n <option value=\"\">Default</option>\n {efforts.map((level) => <option key={level} value={level}>{level}</option>)}\n </select>\n </div>\n </div>\n <ModelTraits model={selectedModel} />\n <div>\n <Label>Agent Profile</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={profile || 'default-relay'} onChange={(e) => set({ spawnProfile: e.target.value })}>\n {!agentProfiles.length && <option value=\"default-relay\">default-relay</option>}\n {agentProfiles.map((item) => <option key={item.name} value={item.name}>{item.name}</option>)}\n </select>\n </div>\n <div>\n <Label>Approval Mode</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={approval} onChange={(e) => set({ spawnApproval: e.target.value })}>\n <option value=\"open\">Open</option>\n <option value=\"guarded\">Guarded</option>\n <option value=\"read-only\">Read-only</option>\n </select>\n </div>\n <div>\n <Label>Workspace</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={workspaceMode} onChange={(e) => set({ spawnWorkspaceMode: e.target.value })}>\n <option value=\"inherit\">Default</option>\n <option value=\"isolated\">Isolated worktree</option>\n <option value=\"shared\">Shared cwd</option>\n </select>\n </div>\n <div>\n <Label>Working Directory</Label>\n <div className=\"mt-1\">\n <DirectoryPicker value={cwd} onChange={(path) => set({ spawnCwd: path })} orchestratorId={orchId} placeholder=\"Select a project directory\" />\n </div>\n {recentDirs.length > 0 && (\n <div className=\"mt-2\">\n <p className=\"text-xs text-muted-foreground mb-1\">Recent</p>\n <div className=\"flex gap-1.5 overflow-x-auto pb-1 sm:flex-wrap sm:overflow-x-visible sm:pb-0\">\n {recentDirs.map((h) => {\n const base = h.cwd.replace(/\\/+$/, '').split('/').pop() || h.cwd\n const host = onlineOrchs.find((o) => o.id === h.orchId)?.hostname\n const active = h.orchId === orchId && h.cwd === cwd\n return (\n <button\n key={`${h.orchId}:${h.cwd}`}\n type=\"button\"\n title={multiOrch && host ? `${host}: ${h.cwd}` : h.cwd}\n onClick={() => selectSpawnHistory(h.orchId, h.cwd)}\n className={`shrink-0 rounded-full border px-2.5 py-1 text-xs font-mono transition-colors ${active ? 'border-primary bg-primary/10 text-foreground' : 'border-input bg-background text-muted-foreground hover:bg-accent hover:text-foreground'}`}\n >\n {multiOrch && host ? `${host}: ${base}` : base}\n </button>\n )\n })}\n </div>\n </div>\n )}\n </div>\n <div>\n <Label>Label</Label>\n <Input value={label} onChange={(e) => set({ spawnLabel: e.target.value })} placeholder=\"Optional label...\" />\n </div>\n <div>\n <Label>Initial Prompt</Label>\n <Textarea value={prompt} onChange={(e) => set({ spawnPrompt: e.target.value })} rows={3} placeholder=\"Optional initial task...\" />\n <p className=\"text-xs text-muted-foreground mt-1\">Codex starts this as the first App Server turn; Claude receives it as a launch prompt.</p>\n </div>\n <div>\n <Label>System Prompt Append</Label>\n <Textarea value={systemPromptAppend} onChange={(e) => set({ spawnSystemPromptAppend: e.target.value })} rows={5} placeholder=\"Optional launch context...\" />\n <p className=\"text-xs text-muted-foreground mt-1\">Use for fork history or launch context. It informs the session but does not start work by itself.</p>\n </div>\n {!isFork && (\n <div>\n <div className=\"flex items-center justify-between\">\n <Label>Number of Agents</Label>\n <span className=\"text-sm font-mono tabular-nums text-muted-foreground\">{count}</span>\n </div>\n <input\n type=\"range\"\n min={1}\n max={10}\n step={1}\n value={count}\n onChange={(e) => set({ spawnCount: Number(e.target.value) })}\n className=\"w-full mt-2 accent-primary\"\n aria-label=\"Number of agents to spawn\"\n />\n {count > 1 && <p className=\"text-xs text-muted-foreground mt-1\">Spawns {count} identical agents{label.trim() ? `, labelled \"${label.trim()} 1\"…\"${label.trim()} ${count}\"` : ''}.</p>}\n </div>\n )}\n </div>\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => set({ orchestratorSpawnOpen: false })} disabled={isSpawning}>Cancel</Button>\n <Button onClick={submitOrchestratorSpawn} disabled={!canSpawn}>{isSpawning ? 'Spawning…' : providers.length ? (count > 1 ? `Spawn ${count}` : 'Spawn') : 'No providers'}</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useMemo, useState } from 'react'\nimport { useRelayStore } from '@/store'\nimport { api, getBaseUrl } from '@/lib/api'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\nimport { CopyButton } from '@/components/shared/copy-button'\nimport { Server, Terminal } from 'lucide-react'\nimport type { SpawnProvider } from '@/types'\n\ninterface BootstrapResponse {\n command: string\n expiresAt?: number\n}\n\nfunction defaultId(): string {\n return `host-${Math.random().toString(36).slice(2, 8)}`\n}\n\nfunction toggleProvider(providers: SpawnProvider[], provider: SpawnProvider): SpawnProvider[] {\n return providers.includes(provider)\n ? providers.filter((p) => p !== provider)\n : [...providers, provider]\n}\n\nexport function OrchestratorInstallModal() {\n const open = useRelayStore((s) => s.orchestratorInstallOpen)\n const set = useRelayStore((s) => s.set)\n const showError = useRelayStore((s) => s.showError)\n const showNotification = useRelayStore((s) => s.showNotification)\n const relayUrl = useMemo(() => new URL(getBaseUrl()).origin, [])\n const [id, setId] = useState(defaultId)\n const [baseDir, setBaseDir] = useState('$HOME/projects')\n const [providers, setProviders] = useState<SpawnProvider[]>(['claude', 'codex'])\n const [apiPort, setApiPort] = useState('4860')\n const [pathPrefix, setPathPrefix] = useState('')\n const [command, setCommand] = useState('')\n const [expiresAt, setExpiresAt] = useState<number | undefined>()\n const [loading, setLoading] = useState(false)\n\n async function generate() {\n if (!id.trim()) { showError('Validation', 'Orchestrator id is required'); return }\n if (!baseDir.trim()) { showError('Validation', 'Base directory is required'); return }\n if (!providers.length) { showError('Validation', 'Select at least one provider'); return }\n setLoading(true)\n try {\n const result = await api<BootstrapResponse>('POST', '/orchestrators/bootstrap', {\n id: id.trim(),\n relayUrl,\n baseDir: baseDir.trim(),\n providers,\n apiPort: Number(apiPort) || 4860,\n pathPrefix: pathPrefix.split(':').map((p) => p.trim()).filter(Boolean),\n })\n setCommand(result.command)\n setExpiresAt(result.expiresAt)\n } catch (e) {\n showError('Install Command Failed', (e as Error).message)\n } finally {\n setLoading(false)\n }\n }\n\n return (\n <Dialog open={open} onOpenChange={(o) => !o && set({ orchestratorInstallOpen: false })}>\n <DialogContent className=\"max-w-2xl overflow-hidden\">\n <DialogHeader>\n <DialogTitle className=\"flex items-center gap-2\">\n <Server className=\"w-4 h-4\" />\n Add Orchestrator\n </DialogTitle>\n </DialogHeader>\n <div className=\"space-y-4\">\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3\">\n <div>\n <Label>Orchestrator ID</Label>\n <Input value={id} onChange={(e) => setId(e.target.value)} />\n </div>\n <div>\n <Label>Relay URL</Label>\n <Input value={relayUrl} readOnly />\n </div>\n <div>\n <Label>Base Directory</Label>\n <Input value={baseDir} onChange={(e) => setBaseDir(e.target.value)} />\n </div>\n <div>\n <Label>API Port</Label>\n <Input value={apiPort} onChange={(e) => setApiPort(e.target.value)} inputMode=\"numeric\" />\n </div>\n </div>\n\n <div>\n <Label>Providers</Label>\n <div className=\"mt-1 flex flex-wrap gap-2\">\n {(['claude', 'codex'] as SpawnProvider[]).map((provider) => (\n <Button\n key={provider}\n type=\"button\"\n size=\"sm\"\n variant={providers.includes(provider) ? 'default' : 'outline'}\n onClick={() => setProviders(toggleProvider(providers, provider))}\n >\n {provider}\n </Button>\n ))}\n </div>\n </div>\n\n <div>\n <Label>Extra PATH Prefix</Label>\n <Input value={pathPrefix} onChange={(e) => setPathPrefix(e.target.value)} placeholder=\"/opt/homebrew/bin:/custom/bin\" />\n </div>\n\n {command && (\n <div>\n <div className=\"flex items-center justify-between gap-2 mb-1\">\n <Label>Install Command</Label>\n {expiresAt && <span className=\"text-[11px] text-muted-foreground\">Install token expires {new Date(expiresAt * 1000).toLocaleString()}</span>}\n </div>\n <pre className=\"max-h-40 w-full overflow-y-auto whitespace-pre-wrap break-all rounded-md border border-input bg-muted/40 p-3 font-mono text-xs leading-relaxed\">\n {command}\n </pre>\n </div>\n )}\n </div>\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => set({ orchestratorInstallOpen: false })}>Close</Button>\n {command && (\n <CopyButton value={command} label=\"Copy\" showText size=\"default\" variant=\"outline\" className=\"gap-1\" onCopied={() => showNotification('Install command copied')} />\n )}\n <Button className=\"gap-1\" onClick={generate} disabled={loading}>\n <Terminal className=\"w-3.5 h-3.5\" />\n {loading ? 'Generating...' : 'Generate Command'}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useRelayStore } from '@/store'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Textarea } from '@/components/ui/textarea'\nimport { Label } from '@/components/ui/label'\nimport { Switch } from '@/components/ui/switch'\nimport { DirectoryPicker } from '@/components/shared/directory-picker'\nimport { ModelTraits } from '@/components/shared/model-traits'\nimport { PROVIDER_CATALOG } from 'agent-relay-sdk/provider-catalog'\nimport type { SpawnProvider } from '@/types'\n\nexport function ManagedPolicyModal() {\n const m = useRelayStore((s) => s.policyModal)\n const orchestrators = useRelayStore((s) => s.orchestrators)\n const agentProfiles = useRelayStore((s) => s.agentProfiles)\n const set = useRelayStore((s) => s.set)\n const submitPolicy = useRelayStore((s) => s.submitPolicy)\n\n const orch = orchestrators.find((o) => o.id === m.orchestratorId)\n const providers = orch?.providers || []\n const catalog = PROVIDER_CATALOG[m.provider]\n const models = catalog?.models || []\n const selectedModel = models.find((model) => model.alias === m.model)\n const efforts = selectedModel?.efforts || []\n const isEditing = Boolean(m.editing)\n const rigAvailable = m.provider === 'claude' && orch?.providerStatus?.find((p) => p.name === 'claude')?.features?.rig === true\n\n function update(partial: Partial<typeof m>) {\n set({ policyModal: { ...m, ...partial } })\n }\n\n function selectOrchestrator(orchestratorId: string) {\n const nextOrch = orchestrators.find((o) => o.id === orchestratorId)\n const provider = nextOrch?.providers[0] || m.provider\n update({ orchestratorId, provider, model: PROVIDER_CATALOG[provider]?.defaultModel || '', effort: '' })\n }\n\n function selectProvider(provider: SpawnProvider) {\n update({ provider, rig: '', model: PROVIDER_CATALOG[provider]?.defaultModel || '', effort: '' })\n }\n\n return (\n <Dialog open={m.open} onOpenChange={(o) => !o && update({ open: false })}>\n <DialogContent className=\"max-w-lg max-h-[90vh] overflow-y-auto\">\n <DialogHeader>\n <DialogTitle>{isEditing ? 'Edit Policy' : 'Create Managed Agent'}</DialogTitle>\n </DialogHeader>\n <div className=\"space-y-3\">\n <div>\n <Label>Policy Name</Label>\n <Input value={m.name} onChange={(e) => update({ name: e.target.value })} placeholder=\"my-agent\" disabled={isEditing} />\n </div>\n <div>\n <Label>Label</Label>\n <Input value={m.label} onChange={(e) => update({ label: e.target.value })} placeholder=\"Human-friendly name...\" />\n </div>\n <div>\n <Label>Description</Label>\n <Input value={m.description} onChange={(e) => update({ description: e.target.value })} placeholder=\"What does this agent do?\" />\n </div>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <Label>Orchestrator</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={m.orchestratorId} onChange={(e) => selectOrchestrator(e.target.value)}>\n {orchestrators.filter((o) => o.status === 'online').map((o) => <option key={o.id} value={o.id}>{o.hostname} ({o.id.slice(-8)})</option>)}\n </select>\n </div>\n <div>\n <Label>Provider</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={m.provider} onChange={(e) => selectProvider(e.target.value as SpawnProvider)} disabled={!providers.length}>\n {!providers.length && <option value={m.provider}>No providers available</option>}\n {providers.map((p) => <option key={p} value={p}>{p}</option>)}\n </select>\n </div>\n </div>\n {rigAvailable && (\n <div>\n <Label>Rig</Label>\n <Input value={m.rig} onChange={(e) => update({ rig: e.target.value })} placeholder=\"Leave empty to auto-detect from .claude-rig\" />\n <p className=\"text-xs text-muted-foreground mt-1\">claude-rig profile name. Auto-detects from project's .claude-rig file if empty.</p>\n </div>\n )}\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <Label>Model</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={m.model} onChange={(e) => update({ model: e.target.value, effort: '' })}>\n {models.map((model) => <option key={model.alias} value={model.alias}>{model.label}</option>)}\n </select>\n </div>\n <div>\n <Label>Effort</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={m.effort} onChange={(e) => update({ effort: e.target.value })} disabled={!efforts.length}>\n <option value=\"\">Default</option>\n {efforts.map((level) => <option key={level} value={level}>{level}</option>)}\n </select>\n </div>\n </div>\n <ModelTraits model={selectedModel} />\n <div>\n <Label>Agent Profile</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={m.profile || 'default-relay'} onChange={(e) => update({ profile: e.target.value })}>\n {!agentProfiles.length && <option value=\"default-relay\">default-relay</option>}\n {agentProfiles.map((profile) => <option key={profile.name} value={profile.name}>{profile.name}</option>)}\n </select>\n </div>\n <div>\n <Label>Working Directory</Label>\n <div className=\"mt-1\">\n <DirectoryPicker value={m.cwd} onChange={(path) => update({ cwd: path })} orchestratorId={m.orchestratorId} placeholder={orch?.baseDir || '/path/to/project'} />\n </div>\n </div>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <Label>Mode</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={m.mode} onChange={(e) => update({ mode: e.target.value as 'always-on' | 'on-demand' })}>\n <option value=\"always-on\">Always On</option>\n <option value=\"on-demand\">On Demand</option>\n </select>\n </div>\n <div>\n <Label>Permission Mode</Label>\n <select className=\"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm\" value={m.permissionMode} onChange={(e) => update({ permissionMode: e.target.value as 'open' | 'guarded' | 'read-only' })}>\n <option value=\"open\">Open</option>\n <option value=\"guarded\">Guarded</option>\n <option value=\"read-only\">Read-only</option>\n </select>\n </div>\n </div>\n {m.mode === 'on-demand' && (\n <div>\n <Label>Keepalive (seconds)</Label>\n <Input type=\"number\" value={m.keepaliveSeconds} onChange={(e) => update({ keepaliveSeconds: e.target.value })} placeholder=\"300\" />\n <p className=\"text-xs text-muted-foreground mt-1\">Seconds to keep agent alive after last activity.</p>\n </div>\n )}\n <div>\n <Label>Initial Prompt</Label>\n <Textarea value={m.prompt} onChange={(e) => update({ prompt: e.target.value })} rows={3} placeholder=\"Optional initial task or instructions...\" />\n <p className=\"text-xs text-muted-foreground mt-1\">Codex starts this as the first App Server turn; Claude receives it as a launch prompt.</p>\n </div>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <Label>Tags</Label>\n <Input value={m.tags} onChange={(e) => update({ tags: e.target.value })} placeholder=\"tag1, tag2\" />\n </div>\n <div>\n <Label>Capabilities</Label>\n <Input value={m.capabilities} onChange={(e) => update({ capabilities: e.target.value })} placeholder=\"chat, review\" />\n </div>\n </div>\n <div>\n <Label>Provider Args</Label>\n <Input value={m.providerArgs} onChange={(e) => update({ providerArgs: e.target.value })} placeholder=\"--flag value\" />\n <p className=\"text-xs text-muted-foreground mt-1\">Space-separated args passed to the provider CLI.</p>\n </div>\n <div>\n <Label>Channel Binding</Label>\n <Input value={m.channelId} onChange={(e) => update({ channelId: e.target.value })} placeholder=\"Channel ID (optional)\" />\n </div>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <Label>Backoff Schedule (seconds)</Label>\n <Input value={m.backoffSchedule} onChange={(e) => update({ backoffSchedule: e.target.value })} placeholder=\"5, 15, 60, 300\" />\n </div>\n <div>\n <Label>Backoff Reset After (s)</Label>\n <Input type=\"number\" value={m.backoffResetAfterSeconds} onChange={(e) => update({ backoffResetAfterSeconds: e.target.value })} placeholder=\"600\" />\n </div>\n </div>\n <div className=\"flex items-center justify-between\">\n <Label htmlFor=\"restartOnUpdate\">Restart on policy update</Label>\n <Switch id=\"restartOnUpdate\" checked={m.restartOnUpdate} onCheckedChange={(v) => update({ restartOnUpdate: v })} />\n </div>\n <div className=\"flex items-center justify-between\">\n <Label htmlFor=\"dailyRestart\">Scheduled daily restart</Label>\n <Switch id=\"dailyRestart\" checked={m.scheduledDailyRestart} onCheckedChange={(v) => update({ scheduledDailyRestart: v })} />\n </div>\n </div>\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => update({ open: false })}>Cancel</Button>\n <Button onClick={submitPolicy}>{isEditing ? 'Save' : 'Create'}</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useState } from 'react'\nimport { useRelayStore } from '@/store'\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Textarea } from '@/components/ui/textarea'\nimport { Label } from '@/components/ui/label'\nimport { Switch } from '@/components/ui/switch'\nimport { Badge } from '@/components/ui/badge'\nimport { ChevronDown, ChevronRight, Plus, Trash2 } from 'lucide-react'\nimport type {\n AgentProfileBase, AgentProfileProvider, AgentProfileCategoryMode,\n AgentProfileFilesystemScope, AgentProfileInstructionPolicy,\n} from '@/types'\n\nfunction Section({ title, children, defaultOpen = true }: { title: string; children: React.ReactNode; defaultOpen?: boolean }) {\n const [open, setOpen] = useState(defaultOpen)\n return (\n <div className=\"border border-border rounded-md\">\n <button type=\"button\" className=\"flex w-full items-center gap-2 px-3 py-2 text-sm font-medium hover:bg-accent\" onClick={() => setOpen(!open)}>\n {open ? <ChevronDown className=\"h-3.5 w-3.5\" /> : <ChevronRight className=\"h-3.5 w-3.5\" />}\n {title}\n </button>\n {open && <div className=\"space-y-3 border-t border-border px-3 py-3\">{children}</div>}\n </div>\n )\n}\n\nfunction Select({ value, onChange, options, disabled }: { value: string; onChange: (v: string) => void; options: Array<{ value: string; label: string }>; disabled?: boolean }) {\n return (\n <select className=\"w-full rounded-md border border-input bg-background px-3 py-2 text-sm\" value={value} onChange={(e) => onChange(e.target.value)} disabled={disabled}>\n {options.map((o) => <option key={o.value} value={o.value}>{o.label}</option>)}\n </select>\n )\n}\n\nfunction EnvEditor({ env, onChange, disabled }: { env: Record<string, string>; onChange: (env: Record<string, string>) => void; disabled?: boolean }) {\n const entries = Object.entries(env)\n const [newKey, setNewKey] = useState('')\n const [newVal, setNewVal] = useState('')\n\n function add() {\n if (!newKey.trim()) return\n onChange({ ...env, [newKey.trim()]: newVal })\n setNewKey('')\n setNewVal('')\n }\n\n function remove(key: string) {\n const next = { ...env }\n delete next[key]\n onChange(next)\n }\n\n return (\n <div className=\"space-y-1.5\">\n {entries.map(([k, v]) => (\n <div key={k} className=\"flex items-center gap-1.5\">\n <code className=\"min-w-0 flex-1 truncate rounded bg-muted px-2 py-1 text-xs\">{k}={v}</code>\n {!disabled && (\n <Button type=\"button\" variant=\"ghost\" size=\"icon-sm\" className=\"h-6 w-6 shrink-0\" onClick={() => remove(k)}>\n <Trash2 className=\"h-3 w-3\" />\n </Button>\n )}\n </div>\n ))}\n {!disabled && (\n <div className=\"flex items-center gap-1.5\">\n <Input value={newKey} onChange={(e) => setNewKey(e.target.value)} placeholder=\"KEY\" className=\"flex-1 text-xs font-mono\" />\n <Input value={newVal} onChange={(e) => setNewVal(e.target.value)} placeholder=\"value\" className=\"flex-1 text-xs font-mono\" onKeyDown={(e) => e.key === 'Enter' && add()} />\n <Button type=\"button\" variant=\"outline\" size=\"icon-sm\" className=\"h-8 w-8 shrink-0\" onClick={add}>\n <Plus className=\"h-3 w-3\" />\n </Button>\n </div>\n )}\n {entries.length === 0 && disabled && <div className=\"text-xs text-muted-foreground\">No environment variables</div>}\n </div>\n )\n}\n\nconst BASE_OPTIONS: Array<{ value: AgentProfileBase; label: string }> = [\n { value: 'host', label: 'Host — full access, relay-aware' },\n { value: 'minimal', label: 'Minimal — relay disabled, repo-scoped' },\n { value: 'isolated', label: 'Isolated — strict isolation' },\n]\n\nconst PROVIDER_OPTIONS: Array<{ value: AgentProfileProvider; label: string }> = [\n { value: 'any', label: 'Any provider' },\n { value: 'claude', label: 'Claude' },\n { value: 'codex', label: 'Codex' },\n]\n\nconst CATEGORY_MODE_OPTIONS: Array<{ value: AgentProfileCategoryMode; label: string }> = [\n { value: 'host', label: 'Host — use host config' },\n { value: 'profile', label: 'Profile — use profile config' },\n { value: 'repo', label: 'Repo — use repo config only' },\n { value: 'none', label: 'None — disabled' },\n]\n\nconst FILESYSTEM_OPTIONS: Array<{ value: AgentProfileFilesystemScope; label: string }> = [\n { value: 'host', label: 'Host — full filesystem' },\n { value: 'workspace', label: 'Workspace — working directory tree' },\n { value: 'repo', label: 'Repo — repository root only' },\n]\n\nconst INSTRUCTION_POLICY_OPTIONS: Array<{ value: AgentProfileInstructionPolicy; label: string }> = [\n { value: 'allow', label: 'Allow' },\n { value: 'ignore', label: 'Ignore' },\n]\n\nconst APPROVAL_OPTIONS = [\n { value: '', label: 'Default' },\n { value: 'open', label: 'Open — allow all' },\n { value: 'guarded', label: 'Guarded — prompt for risky' },\n { value: 'read-only', label: 'Read-only' },\n]\n\nexport function AgentProfileModal() {\n const { open, mode, profile } = useRelayStore((s) => s.profileModal)\n const closeProfileModal = useRelayStore((s) => s.closeProfileModal)\n const updateProfileModal = useRelayStore((s) => s.updateProfileModal)\n const saveProfile = useRelayStore((s) => s.saveProfile)\n\n const readOnly = mode === 'view' || profile.builtIn === true\n const isCreate = mode === 'create' || mode === 'duplicate'\n\n const title = mode === 'view' ? `Profile: ${profile.name}`\n : mode === 'edit' ? `Edit: ${profile.name}`\n : mode === 'duplicate' ? 'Duplicate Profile'\n : 'Create Profile'\n\n function updateInstructions(partial: Partial<typeof profile.instructions>) {\n updateProfileModal({ instructions: { ...profile.instructions, ...partial } })\n }\n\n function updateRelay(partial: Partial<typeof profile.relay>) {\n updateProfileModal({ relay: { ...profile.relay, ...partial } })\n }\n\n function updatePermissions(partial: Partial<typeof profile.permissions>) {\n updateProfileModal({ permissions: { ...profile.permissions, ...partial } })\n }\n\n function updateCodexToolOutputTokenLimit(value: string) {\n const providerOptions = profile.providerOptions || {}\n const currentCodex = providerOptions.codex && typeof providerOptions.codex === 'object' && !Array.isArray(providerOptions.codex)\n ? providerOptions.codex\n : {}\n const codex = { ...currentCodex }\n if (!value.trim()) delete codex.toolOutputTokenLimit\n else {\n const limit = Number(value)\n if (!Number.isSafeInteger(limit)) return\n codex.toolOutputTokenLimit = limit\n }\n updateProfileModal({ providerOptions: { ...providerOptions, codex } })\n }\n\n function updateMaxSpawnedAgents(value: string) {\n if (!value.trim()) {\n updateProfileModal({ maxSpawnedAgents: undefined })\n return\n }\n const n = Number(value)\n if (!Number.isInteger(n) || n < 0) return\n updateProfileModal({ maxSpawnedAgents: Math.min(n, 100) })\n }\n\n function selectBase(base: AgentProfileBase) {\n const isHost = base === 'host'\n updateProfileModal({\n base,\n relay: { context: isHost, skills: isHost, plugins: isHost, statusLine: isHost, mcp: isHost },\n mcp: { ...profile.mcp, mode: isHost ? 'host' : 'none' },\n hooks: { mode: isHost ? 'host' : 'none' },\n permissions: { ...profile.permissions, filesystem: isHost ? 'host' : 'repo' },\n instructions: { ...profile.instructions, globalInstructions: isHost ? 'allow' : 'ignore' },\n })\n }\n\n const codexOptions = profile.providerOptions?.codex && typeof profile.providerOptions.codex === 'object' && !Array.isArray(profile.providerOptions.codex)\n ? profile.providerOptions.codex\n : {}\n const codexToolOutputTokenLimit = Number.isSafeInteger(codexOptions.toolOutputTokenLimit) ? String(codexOptions.toolOutputTokenLimit) : ''\n\n return (\n <Dialog open={open} onOpenChange={(o) => !o && closeProfileModal()}>\n <DialogContent className=\"max-w-lg max-h-[90vh] overflow-y-auto\">\n <DialogHeader>\n <DialogTitle className=\"flex items-center gap-2\">\n {title}\n {profile.builtIn && <Badge variant=\"secondary\" className=\"text-[10px]\">Built-in</Badge>}\n </DialogTitle>\n </DialogHeader>\n <div className=\"space-y-3\">\n <Section title=\"General\" defaultOpen>\n <div>\n <Label>Name</Label>\n <Input value={profile.name} onChange={(e) => updateProfileModal({ name: e.target.value })} placeholder=\"my-profile\" disabled={readOnly || mode === 'edit'} />\n </div>\n <div>\n <Label>Description</Label>\n <Input value={profile.description || ''} onChange={(e) => updateProfileModal({ description: e.target.value })} placeholder=\"What this profile configures\" disabled={readOnly} />\n </div>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <Label>Base</Label>\n <Select value={profile.base} onChange={(v) => selectBase(v as AgentProfileBase)} options={BASE_OPTIONS} disabled={readOnly} />\n </div>\n <div>\n <Label>Provider</Label>\n <Select value={profile.provider || 'any'} onChange={(v) => updateProfileModal({ provider: v as AgentProfileProvider })} options={PROVIDER_OPTIONS} disabled={readOnly} />\n </div>\n </div>\n </Section>\n\n <Section title=\"Instructions\" defaultOpen={false}>\n <div>\n <Label>System Prompt</Label>\n <Textarea value={profile.instructions.system || ''} onChange={(e) => updateInstructions({ system: e.target.value })} placeholder=\"Custom system prompt...\" rows={3} disabled={readOnly} className=\"font-mono text-xs\" />\n </div>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <Label>Repo Instructions</Label>\n <Select value={profile.instructions.repoInstructions} onChange={(v) => updateInstructions({ repoInstructions: v as AgentProfileInstructionPolicy })} options={INSTRUCTION_POLICY_OPTIONS} disabled={readOnly} />\n </div>\n <div>\n <Label>Global Instructions</Label>\n <Select value={profile.instructions.globalInstructions} onChange={(v) => updateInstructions({ globalInstructions: v as AgentProfileInstructionPolicy })} options={INSTRUCTION_POLICY_OPTIONS} disabled={readOnly} />\n </div>\n </div>\n </Section>\n\n <Section title=\"Relay Integration\" defaultOpen={false}>\n <div className=\"grid grid-cols-2 gap-3\">\n {(['context', 'skills', 'plugins', 'statusLine', 'mcp'] as const).map((key) => (\n <div key={key} className=\"flex items-center justify-between gap-2\">\n <Label className=\"capitalize\">{key === 'statusLine' ? 'Status Line' : key === 'mcp' ? 'MCP Tools' : key}</Label>\n <Switch checked={profile.relay[key] ?? true} onCheckedChange={(v) => updateRelay({ [key]: v })} disabled={readOnly} />\n </div>\n ))}\n </div>\n </Section>\n\n <Section title=\"MCP & Hooks\" defaultOpen={false}>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <Label>MCP Mode</Label>\n <Select value={profile.mcp.mode} onChange={(v) => updateProfileModal({ mcp: { ...profile.mcp, mode: v as AgentProfileCategoryMode } })} options={CATEGORY_MODE_OPTIONS} disabled={readOnly} />\n </div>\n <div>\n <Label>Hooks Mode</Label>\n <Select value={profile.hooks.mode} onChange={(v) => updateProfileModal({ hooks: { mode: v as AgentProfileCategoryMode } })} options={CATEGORY_MODE_OPTIONS} disabled={readOnly} />\n </div>\n </div>\n </Section>\n\n <Section title=\"Permissions\" defaultOpen={false}>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <Label>Approval Mode</Label>\n <Select value={profile.permissions.mode || ''} onChange={(v) => updatePermissions({ mode: v as any || undefined })} options={APPROVAL_OPTIONS} disabled={readOnly} />\n </div>\n <div>\n <Label>Filesystem Scope</Label>\n <Select value={profile.permissions.filesystem} onChange={(v) => updatePermissions({ filesystem: v as AgentProfileFilesystemScope })} options={FILESYSTEM_OPTIONS} disabled={readOnly} />\n </div>\n </div>\n </Section>\n\n <Section title=\"Spawning\" defaultOpen={false}>\n <div>\n <Label>Spawn Quota</Label>\n <Input\n type=\"number\"\n min={0}\n max={100}\n step={1}\n value={profile.maxSpawnedAgents === undefined ? '' : String(profile.maxSpawnedAgents)}\n onChange={(e) => updateMaxSpawnedAgents(e.target.value)}\n placeholder=\"0\"\n disabled={readOnly}\n />\n <p className=\"mt-1 text-xs text-muted-foreground\">\n Max concurrent live child agents this profile may spawn. Empty or 0 = cannot spawn (default). Children never inherit it (no grandchildren).\n </p>\n </div>\n </Section>\n\n <Section title=\"Environment Variables\" defaultOpen={false}>\n <EnvEditor env={profile.env || {}} onChange={(env) => updateProfileModal({ env })} disabled={readOnly} />\n </Section>\n\n <Section title=\"Provider Options\" defaultOpen={false}>\n <div>\n <Label>Codex Tool Output Limit</Label>\n <Input\n type=\"number\"\n min={1000}\n max={200000}\n value={codexToolOutputTokenLimit}\n onChange={(e) => updateCodexToolOutputTokenLimit(e.target.value)}\n placeholder=\"12000\"\n disabled={readOnly}\n />\n </div>\n <Textarea\n value={JSON.stringify(profile.providerOptions || {}, null, 2)}\n onChange={(e) => {\n try { updateProfileModal({ providerOptions: JSON.parse(e.target.value) }) } catch {}\n }}\n rows={3} disabled={readOnly} className=\"font-mono text-xs\"\n placeholder=\"{}\"\n />\n </Section>\n </div>\n {!readOnly && (\n <DialogFooter>\n <Button variant=\"outline\" onClick={closeProfileModal}>Cancel</Button>\n <Button onClick={saveProfile}>{isCreate ? 'Create' : 'Save'}</Button>\n </DialogFooter>\n )}\n </DialogContent>\n </Dialog>\n )\n}\n","import { useEffect, useRef } from 'react'\nimport { useRelayStore } from '@/store'\nimport { useCommandPaletteItems } from '@/hooks/use-selectors'\nimport { Input } from '@/components/ui/input'\nimport * as Icons from 'lucide-react'\n\nexport function CommandPalette() {\n const open = useRelayStore((s) => s.commandPaletteOpen)\n const query = useRelayStore((s) => s.commandQuery)\n const set = useRelayStore((s) => s.set)\n const closeCommandPalette = useRelayStore((s) => s.closeCommandPalette)\n const runCommand = useRelayStore((s) => s.runCommand)\n const items = useCommandPaletteItems()\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (open) setTimeout(() => inputRef.current?.focus(), 50)\n }, [open])\n\n if (!open) return null\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-start justify-center pt-[15vh]\" onClick={(e) => { if (e.target === e.currentTarget) closeCommandPalette() }}>\n <div className=\"fixed inset-0 bg-black/60\" />\n <div className=\"relative w-full max-w-lg bg-card border border-border rounded-xl shadow-2xl overflow-hidden\">\n <div className=\"p-3 border-b border-border\">\n <Input\n ref={inputRef}\n value={query}\n onChange={(e) => set({ commandQuery: e.target.value })}\n placeholder=\"Type a command...\"\n className=\"border-0 bg-transparent focus-visible:ring-0 text-base\"\n />\n </div>\n <div className=\"max-h-80 overflow-y-auto p-2\">\n {items.map((item) => {\n const Icon = (Icons as unknown as Record<string, typeof Icons.Bot>)[item.icon] || Icons.ChevronRight\n return (\n <button\n key={item.id}\n onClick={() => runCommand(item)}\n className=\"w-full flex items-center gap-3 px-3 py-2.5 rounded-lg hover:bg-accent text-left transition-colors\"\n >\n <Icon className=\"w-4 h-4 text-muted-foreground shrink-0\" />\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm\">{item.title}</div>\n {item.subtitle && <div className=\"text-xs text-muted-foreground truncate\">{item.subtitle}</div>}\n </div>\n </button>\n )\n })}\n {items.length === 0 && <p className=\"text-sm text-muted-foreground text-center py-4\">No matching commands.</p>}\n </div>\n </div>\n </div>\n )\n}\n","import { useRelayStore } from '@/store'\nimport { Menu, Radio } from 'lucide-react'\n\nexport function MobileNav() {\n const set = useRelayStore((s) => s.set)\n const connected = useRelayStore((s) => s.connected)\n\n return (\n <div className=\"xl:hidden sticky top-0 z-30 bg-card border-b border-border px-4 h-[var(--header-h)] flex items-center gap-3\">\n <button\n onClick={() => set({ mobileMenuOpen: true })}\n className=\"p-1 -ml-1 text-muted-foreground hover:text-foreground transition-colors\"\n aria-label=\"Open menu\"\n >\n <Menu className=\"w-5 h-5\" />\n </button>\n <Radio className=\"w-4 h-4 text-primary\" />\n <span className=\"font-bold text-sm\">Agent Relay</span>\n <span className={`ml-auto w-2 h-2 rounded-full ${connected ? 'bg-emerald-500' : 'bg-red-500 animate-pulse'}`} />\n </div>\n )\n}\n","import { Component, Suspense, lazy, useEffect, type ReactNode, type ErrorInfo } from 'react'\nimport { useRelayStore } from './store'\nimport { applyTheme } from '@/lib/themes'\nimport { TooltipProvider } from '@/components/ui/tooltip'\nimport { Sidebar, MobileDrawer } from '@/components/layout/sidebar'\n// FilesView + FileOverlay stay static: FileOverlay is always mounted (not\n// view-gated), so a lazy() would fire its import on app load anyway. Its heavy\n// deps still split out of the initial bundle — shiki via its own dynamic import,\n// react-markdown via the markdown-preview wrapper.\nimport { FilesView, FileOverlay } from '@/components/views/files'\n// Views are code-split (#201): each loads as its own hashed chunk on first\n// navigation, keeping the initial bundle small. Heavy deps ride their view's\n// chunk — ApexCharts with analytics, react-markdown with chat/messages, etc.\nconst OverviewView = lazy(() => import('@/components/views/overview').then((m) => ({ default: m.OverviewView })))\nconst ChatView = lazy(() => import('@/components/views/chat').then((m) => ({ default: m.ChatView })))\nconst AgentsView = lazy(() => import('@/components/views/agents').then((m) => ({ default: m.AgentsView })))\nconst ManagedAgentsView = lazy(() => import('@/components/views/managed-agents').then((m) => ({ default: m.ManagedAgentsView })))\nconst AgentProfilesView = lazy(() => import('@/components/views/agent-profiles').then((m) => ({ default: m.AgentProfilesView })))\nconst OrchestratorsView = lazy(() => import('@/components/views/orchestrators').then((m) => ({ default: m.OrchestratorsView })))\nconst WorkspacesView = lazy(() => import('@/components/views/workspaces').then((m) => ({ default: m.WorkspacesView })))\nconst ChannelsView = lazy(() => import('@/components/views/channels').then((m) => ({ default: m.ChannelsView })))\nconst ConnectorsView = lazy(() => import('@/components/views/connectors').then((m) => ({ default: m.ConnectorsView })))\nconst IntegrationsView = lazy(() => import('@/components/views/integrations').then((m) => ({ default: m.IntegrationsView })))\nconst SecurityView = lazy(() => import('@/components/views/security').then((m) => ({ default: m.SecurityView })))\nconst MemoryView = lazy(() => import('@/components/views/memory').then((m) => ({ default: m.MemoryView })))\nconst ActivityView = lazy(() => import('@/components/views/activity').then((m) => ({ default: m.ActivityView })))\nconst PairsView = lazy(() => import('@/components/views/pairs').then((m) => ({ default: m.PairsView })))\nconst MessagesView = lazy(() => import('@/components/views/messages').then((m) => ({ default: m.MessagesView })))\nconst WorkQueueView = lazy(() => import('@/components/views/work-queue').then((m) => ({ default: m.WorkQueueView })))\nconst TasksView = lazy(() => import('@/components/views/tasks').then((m) => ({ default: m.TasksView })))\nconst AutomationView = lazy(() => import('@/components/views/automation').then((m) => ({ default: m.AutomationView })))\nconst AnalyticsView = lazy(() => import('@/components/views/analytics').then((m) => ({ default: m.AnalyticsView })))\nconst InsightsView = lazy(() => import('@/components/views/insights').then((m) => ({ default: m.InsightsView })))\nconst MaintenanceView = lazy(() => import('@/components/views/maintenance').then((m) => ({ default: m.MaintenanceView })))\nconst SettingsView = lazy(() => import('@/components/views/settings').then((m) => ({ default: m.SettingsView })))\nimport { AgentDetailDrawer } from '@/components/drawers/agent-detail-drawer'\nimport { ChannelDetailDrawer } from '@/components/drawers/channel-detail-drawer'\nimport { ComposeModal } from '@/components/modals/compose-modal'\nimport { ConfirmModal } from '@/components/modals/confirm-modal'\nimport { ErrorModal } from '@/components/modals/error-modal'\nimport { RenameModal } from '@/components/modals/rename-modal'\nimport { PairInviteModal } from '@/components/modals/pair-invite-modal'\nimport { PairMessageModal } from '@/components/modals/pair-message-modal'\nimport { ThreadModal } from '@/components/modals/thread-modal'\nimport { TaskEventsModal } from '@/components/modals/task-events-modal'\nimport { OrchestratorSpawnModal } from '@/components/modals/orchestrator-spawn-modal'\nimport { OrchestratorInstallModal } from '@/components/modals/orchestrator-install-modal'\nimport { ManagedPolicyModal } from '@/components/modals/managed-policy-modal'\nimport { AgentProfileModal } from '@/components/modals/agent-profile-modal'\nimport { CommandPalette } from '@/components/command-palette'\nimport { MobileNav } from '@/components/layout/mobile-nav'\nimport { Input } from '@/components/ui/input'\nimport { Button } from '@/components/ui/button'\nimport { Lock } from 'lucide-react'\nimport type { ViewName } from '@/types'\n\nclass ErrorBoundary extends Component<{ children: ReactNode }, { error: Error | null }> {\n override state: { error: Error | null } = { error: null }\n static getDerivedStateFromError(error: Error) { return { error } }\n override componentDidCatch(error: Error, info: ErrorInfo) {\n console.error('[ErrorBoundary]', error.message, '\\n', info.componentStack)\n }\n override render() {\n if (this.state.error) {\n return (\n <div className=\"p-6 text-sm font-mono whitespace-pre-wrap\">\n <h2 className=\"text-red-400 text-lg mb-2\">Dashboard Error</h2>\n <p className=\"text-foreground mb-4\">{this.state.error.message}</p>\n <pre className=\"text-muted-foreground text-xs overflow-auto\">{this.state.error.stack}</pre>\n <button className=\"mt-4 px-3 py-1 bg-zinc-700 rounded text-sm\" onClick={() => this.setState({ error: null })}>Retry</button>\n </div>\n )\n }\n return this.props.children\n }\n}\n\nconst views: Record<ViewName, React.ComponentType> = {\n overview: OverviewView,\n chat: ChatView,\n agents: AgentsView,\n managed: ManagedAgentsView,\n profiles: AgentProfilesView,\n orchestrators: OrchestratorsView,\n workspaces: WorkspacesView,\n files: FilesView,\n channels: ChannelsView,\n connectors: ConnectorsView,\n integrations: IntegrationsView,\n security: SecurityView,\n memory: MemoryView,\n activity: ActivityView,\n pairs: PairsView,\n messages: MessagesView,\n work: WorkQueueView,\n tasks: TasksView,\n automation: AutomationView,\n analytics: AnalyticsView,\n insights: InsightsView,\n maintenance: MaintenanceView,\n settings: SettingsView,\n}\n\n// Mobile: top of screen (below the sticky header) so it never covers the chat\n// input box. Desktop (xl): bottom-right as before.\nconst TOAST_POS = 'fixed z-50 top-[calc(var(--header-h,3rem)+0.5rem)] inset-x-3 xl:inset-x-auto xl:top-auto xl:bottom-4 xl:right-4 xl:max-w-sm animate-in fade-in slide-in-from-top-2 xl:slide-in-from-bottom-2 duration-200'\n\n// Shown while a code-split view chunk loads on first navigation. Deliberately\n// minimal — most chunks resolve in a frame or two on a warm connection.\nfunction ViewLoading() {\n return (\n <div className=\"flex items-center justify-center py-16 text-muted-foreground text-sm\">\n <span className=\"inline-block w-3 h-3 mr-2 rounded-full bg-muted-foreground/60 animate-pulse\" />\n Loading…\n </div>\n )\n}\n\nfunction Toast() {\n const notification = useRelayStore((s) => s.notification)\n const toastNotification = useRelayStore((s) => s.toastNotification)\n const openNotification = useRelayStore((s) => s.openNotification)\n const dismissToast = useRelayStore((s) => s.dismissToast)\n\n // Actionable relay notification (chat message, reply, approval): tap routes to\n // the chat thread / agent it refers to via openNotification.\n if (toastNotification) {\n const n = toastNotification\n return (\n <div className={`${TOAST_POS} flex items-start gap-2 px-4 py-3 bg-zinc-800 text-zinc-100 text-sm rounded-md shadow-lg border border-zinc-700`}>\n <button type=\"button\" onClick={() => { void openNotification(n); dismissToast() }} className=\"flex-1 min-w-0 text-left cursor-pointer\">\n <div className=\"font-medium truncate\">{n.title}</div>\n <div className=\"text-xs text-zinc-300 line-clamp-2 mt-0.5\">{n.body}</div>\n <div className=\"text-[10px] uppercase tracking-wide text-zinc-400 mt-1\">Tap to open</div>\n </button>\n <button type=\"button\" onClick={dismissToast} aria-label=\"Dismiss\" className=\"shrink-0 -mr-1 -mt-1 px-1 text-lg leading-none text-zinc-400 hover:text-zinc-100\">×</button>\n </div>\n )\n }\n if (!notification) return null\n return (\n <div className={`${TOAST_POS} px-4 py-2 bg-zinc-800 text-zinc-100 text-sm rounded-md shadow-lg border border-zinc-700`}>\n {notification}\n </div>\n )\n}\n\nexport function App() {\n const init = useRelayStore((s) => s.init)\n const destroy = useRelayStore((s) => s.destroy)\n const theme = useRelayStore((s) => s.theme)\n const view = useRelayStore((s) => s.view)\n const authNeeded = useRelayStore((s) => s.authNeeded)\n const connectionError = useRelayStore((s) => s.connectionError)\n const authToken = useRelayStore((s) => s.authToken)\n const set = useRelayStore((s) => s.set)\n const saveTokenAndRefresh = useRelayStore((s) => s.saveTokenAndRefresh)\n const openCommandPalette = useRelayStore((s) => s.openCommandPalette)\n const commandPaletteOpen = useRelayStore((s) => s.commandPaletteOpen)\n const closeCommandPalette = useRelayStore((s) => s.closeCommandPalette)\n\n useEffect(() => {\n applyTheme(theme)\n }, [theme])\n\n useEffect(() => {\n init()\n return () => destroy()\n }, [])\n\n useEffect(() => {\n function handleKeyDown(e: KeyboardEvent) {\n if ((e.metaKey || e.ctrlKey) && e.key?.toLowerCase() === 'k') {\n e.preventDefault()\n openCommandPalette()\n } else if (e.key === 'Escape' && commandPaletteOpen) {\n e.preventDefault()\n closeCommandPalette()\n }\n }\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [commandPaletteOpen])\n\n const ViewComponent = views[view] || OverviewView\n\n return (\n <ErrorBoundary>\n <TooltipProvider>\n <div className=\"flex min-h-[calc(100dvh-var(--sat))] mt-[var(--sat)]\">\n <Sidebar />\n <MobileDrawer />\n\n {/* min-w-0: without it a flex item defaults to min-width:auto, so wide view content\n (e.g. the Insights observations table) pushes main past the viewport instead of\n scrolling inside its own overflow-x container — horizontal page overflow on iPad. */}\n <main className=\"flex-1 min-w-0 h-[calc(100dvh-var(--sat))] overflow-y-auto\">\n <MobileNav />\n\n {!authNeeded && connectionError && (\n <div className=\"flex items-center gap-2 p-3 bg-amber-950/40 border-b border-amber-800/60 text-amber-200 text-sm\">\n <span className=\"inline-block w-2 h-2 rounded-full bg-amber-400 animate-pulse\" />\n Relay unreachable — showing last known data. Reconnecting…\n </div>\n )}\n\n {authNeeded && (\n <div className=\"flex items-center gap-2 p-3 bg-card border-b border-border\">\n <Lock className=\"w-4 h-4 text-muted-foreground\" />\n <Input\n type=\"password\"\n placeholder=\"Relay token...\"\n value={authToken}\n onChange={(e) => set({ authToken: e.target.value })}\n onKeyDown={(e) => e.key === 'Enter' && saveTokenAndRefresh()}\n className=\"max-w-xs h-8\"\n />\n <Button size=\"sm\" onClick={saveTokenAndRefresh}>Connect</Button>\n </div>\n )}\n\n <div className=\"p-4 md:p-6\">\n <Suspense fallback={<ViewLoading />}>\n <ViewComponent />\n </Suspense>\n </div>\n </main>\n\n <AgentDetailDrawer />\n <ChannelDetailDrawer />\n <ComposeModal />\n <ConfirmModal />\n <ErrorModal />\n <RenameModal />\n <PairInviteModal />\n <PairMessageModal />\n <ThreadModal />\n <TaskEventsModal />\n <OrchestratorSpawnModal />\n <OrchestratorInstallModal />\n <ManagedPolicyModal />\n <AgentProfileModal />\n <FileOverlay />\n <CommandPalette />\n <Toast />\n </div>\n </TooltipProvider>\n </ErrorBoundary>\n )\n}\n","import { StrictMode } from 'react'\nimport { createRoot } from 'react-dom/client'\nimport { App } from './App'\nimport './app.css'\n\ncreateRoot(document.getElementById('root')!).render(\n <StrictMode>\n <App />\n </StrictMode>,\n)\n\nif ('serviceWorker' in navigator) {\n const swUrl = new URL('sw.js', window.location.href)\n const scopeUrl = new URL('.', swUrl)\n const legacyRootScope = new URL('/', window.location.origin)\n const legacyRootScript = new URL('sw.js', legacyRootScope)\n\n if (scopeUrl.href !== legacyRootScope.href) {\n navigator.serviceWorker.getRegistration(legacyRootScope.pathname)\n .then((registration) => {\n if (registration?.scope === legacyRootScope.href && registration.active?.scriptURL === legacyRootScript.href) {\n void registration.unregister()\n }\n })\n .catch(() => {})\n }\n\n navigator.serviceWorker.register(swUrl.toString(), { scope: scopeUrl.pathname }).catch(() => {})\n}\n"],"file":"index-CvSlyTSI.js"}
|