dorkos 0.133.0 → 0.134.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/dist/bin/cli.js +371 -82
- package/dist/browser/native/package-manifest.json +1 -1
- package/dist/browser/source-manifest.json +1 -1
- package/dist/client/assets/{AboutPage-D-EHHVPa.js → AboutPage-zOZ0j1a0.js} +1 -1
- package/dist/client/assets/{ActivityErrorState-BTHnE1vP.js → ActivityErrorState-BlHkTJeC.js} +1 -1
- package/dist/client/assets/{ActivityPage-BfSLPIdR.js → ActivityPage-LCOV7KDT.js} +1 -1
- package/dist/client/assets/{ActivityRow-PwUBjQw8.js → ActivityRow-CvDae84E.js} +1 -1
- package/dist/client/assets/{AdapterIcon-DgkNN6bi.js → AdapterIcon-Dm5QP8_9.js} +1 -1
- package/dist/client/assets/{AdapterSetupWizard-DX0dzp7q.js → AdapterSetupWizard-CNga-lEN.js} +1 -1
- package/dist/client/assets/{AgentOptionRow-ApuDEKqq.js → AgentOptionRow-CHb4ifHN.js} +1 -1
- package/dist/client/assets/{AgentPicker-BDci-9aL.js → AgentPicker-B8WFWr7p.js} +1 -1
- package/dist/client/assets/{AgentRequestCard-B2gxCMGi.js → AgentRequestCard-Cnhi_1sr.js} +3 -3
- package/dist/client/assets/{AppearancePage-8SVnFe0k.js → AppearancePage-BI5qdQoW.js} +1 -1
- package/dist/client/assets/{ApplyToOverridesDialog-CnL1ubxL.js → ApplyToOverridesDialog-gSHV8ggp.js} +1 -1
- package/dist/client/assets/{AttentionSignalRow-CCKhUtil.js → AttentionSignalRow-QgzOBKxa.js} +1 -1
- package/dist/client/assets/{BaseTanStackRouterDevtoolsPanel-B-iktbLX-B7wFPzG4.js → BaseTanStackRouterDevtoolsPanel-B-iktbLX-Ck8dc5X4.js} +3 -3
- package/dist/client/assets/{BindingDialog-C4BHVXno.js → BindingDialog-DX1N_tTX.js} +1 -1
- package/dist/client/assets/{BlintzCanvas-7E5uwVms.js → BlintzCanvas-FqS5vfnA.js} +3 -3
- package/dist/client/assets/{CanvasCsvContent-l7lfyDGn.js → CanvasCsvContent-B9h8JQsV.js} +4 -4
- package/dist/client/assets/CanvasFileContent-BXo8hS_n.js +2 -0
- package/dist/client/assets/CanvasModel3dContent-BhAho9NF.js +2 -0
- package/dist/client/assets/{ChannelComposer-CAYvz_ZB.js → ChannelComposer-DUKyoCYz.js} +5 -5
- package/dist/client/assets/{ChatAppsOff-CNeKBVNz.js → ChatAppsOff-hxeSExhA.js} +1 -1
- package/dist/client/assets/{CodeMirrorDiff-BZRcNFsS.js → CodeMirrorDiff-BoDEtyYj.js} +1 -1
- package/dist/client/assets/{CodeMirrorEditor-DD5tArRn.js → CodeMirrorEditor-CU7h0emU.js} +1 -1
- package/dist/client/assets/{ComputerResourceView-BUmsVssG.js → ComputerResourceView-Dd4Kedxf.js} +1 -1
- package/dist/client/assets/{ComputerViewer-BKMR5LkF.js → ComputerViewer-CssfoCBB.js} +1 -1
- package/dist/client/assets/{ConnectionAccessLists-DYUiFmPY.js → ConnectionAccessLists-2qFBRKpv.js} +1 -1
- package/dist/client/assets/{ConnectionsPage-DR2Kfm9Q.js → ConnectionsPage-CPyrw58B.js} +1 -1
- package/dist/client/assets/{ConventionPage-Do6q8873.js → ConventionPage-B2MERyNx.js} +2 -2
- package/dist/client/assets/{ExtensionPageRoute-CP7NM7fw.js → ExtensionPageRoute-7x-7Ad0_.js} +1 -1
- package/dist/client/assets/{FeatureDisabledState-Bi23k3rg.js → FeatureDisabledState-DsbRcnZ6.js} +1 -1
- package/dist/client/assets/{FloatingTanStackRouterDevtools-CqogiFob-lRlmDXYz.js → FloatingTanStackRouterDevtools-CqogiFob-BReszru7.js} +1 -1
- package/dist/client/assets/{ForwardConsentHost-DSR1pEEK.js → ForwardConsentHost-DOwU-xQ9.js} +1 -1
- package/dist/client/assets/HandlePage-B7fNgSTl.js +1 -0
- package/dist/client/assets/{HeartbeatPage-BTNVcHOI.js → HeartbeatPage-0qi56iQb.js} +1 -1
- package/dist/client/assets/{KeyEntry-67acsEG2.js → KeyEntry-uKZG5d2z.js} +1 -1
- package/dist/client/assets/{LexicalField-Cb68LIar.js → LexicalField-CKc8eUK3.js} +2 -2
- package/dist/client/assets/{ManagesPage-ChPlBF42.js → ManagesPage-DWVLpjw2.js} +1 -1
- package/dist/client/assets/{Marketplace-CzPhJEE1.js → Marketplace-VBnmDEQE.js} +4 -4
- package/dist/client/assets/{MarketplaceSourcesView-CmQgxQmU.js → MarketplaceSourcesView-BRuo8wIH.js} +1 -1
- package/dist/client/assets/{McpAppFrame-z5JUaCSA.js → McpAppFrame-IfamHBcy.js} +1 -1
- package/dist/client/assets/{McpSigninBody-ZrnzwrOH.js → McpSigninBody-VmuxAjoo.js} +1 -1
- package/dist/client/assets/{Model3dViewer-HJpWK-JI.js → Model3dViewer-CT4aYUpn.js} +1 -1
- package/dist/client/assets/NamePage-CFRvBLJ8.js +1 -0
- package/dist/client/assets/NewDirectMessageMenu-BZFyclIS.js +1 -0
- package/dist/client/assets/{NotificationsPage-DwNUI0Z3.js → NotificationsPage-DMJf-hq3.js} +1 -1
- package/dist/client/assets/{OpenMeshSwitch-RNAZY1vn.js → OpenMeshSwitch-DltP6-54.js} +1 -1
- package/dist/client/assets/{OperatorIdentityForm-B7S2C_eT.js → OperatorIdentityForm-C8oS_fQG.js} +1 -1
- package/dist/client/assets/PermissionHistory-BAe31Nl3.js +1 -0
- package/dist/client/assets/{PermissionsPage-ToK0DZVV.js → PermissionsPage-CqvpcXTJ.js} +1 -1
- package/dist/client/assets/{PersonalityPopover-BvMtUQRM.js → PersonalityPopover-D8l_Hfc1.js} +1 -1
- package/dist/client/assets/PhotoPage-DTl81tTW.js +1 -0
- package/dist/client/assets/{PreviewRefusedNotice-DzbkMrUo.js → PreviewRefusedNotice-DZh7zTEt.js} +1 -1
- package/dist/client/assets/{ProfileFields-DU8dTGHT.js → ProfileFields-T1f833SK.js} +1 -1
- package/dist/client/assets/{ProfilePanelContainer-BfT-ufV7.js → ProfilePanelContainer-BSbE5rqM.js} +1 -1
- package/dist/client/assets/{ProfileRolePicker-DrOtV-0N.js → ProfileRolePicker-CpAhjq-e.js} +1 -1
- package/dist/client/assets/{PromptSuggestionChips-CEnhme_V.js → PromptSuggestionChips-BGZ3HP31.js} +1 -1
- package/dist/client/assets/{ReportsToPopover-CwjpR1Tw.js → ReportsToPopover-DfmvDL7E.js} +1 -1
- package/dist/client/assets/{RoomSurface-CChzNJKw.js → RoomSurface-DCYXQ79N.js} +1 -1
- package/dist/client/assets/{RoomsPage-Dbf6ijKr.js → RoomsPage-DTMTTWEf.js} +1 -1
- package/dist/client/assets/{RunsOnPopover-Bh5sSsSC.js → RunsOnPopover-CjJiJgly.js} +1 -1
- package/dist/client/assets/{RuntimeConnectFlow-BYQnY5vv.js → RuntimeConnectFlow-Dinsb9em.js} +1 -1
- package/dist/client/assets/{RuntimeSetupDialog-DTO5v0dP.js → RuntimeSetupDialog-UhsfZRye.js} +1 -1
- package/dist/client/assets/{SeenDevices-cuY7ASEy.js → SeenDevices-CuXXI7Jv.js} +3 -3
- package/dist/client/assets/{SessionsPage-BrqpVx-t.js → SessionsPage-Cn4rUeyL.js} +1 -1
- package/dist/client/assets/{SettingsDialog-DCAZX_1d.js → SettingsDialog-CZrhYejc.js} +3 -3
- package/dist/client/assets/{SkillsPage-D5who_ZH.js → SkillsPage-CoanF7Jz.js} +1 -1
- package/dist/client/assets/{TaskDialogWrapper-BJ6XtOC5.js → TaskDialogWrapper-CU4PkcGk.js} +1 -1
- package/dist/client/assets/{TasksEmptyState-B3SjsxQa.js → TasksEmptyState-lWVZXYPS.js} +2 -2
- package/dist/client/assets/{TasksPage-B72w7J87.js → TasksPage-BPmiut-D.js} +1 -1
- package/dist/client/assets/{TeamComputerEntry-B9ma5j-X.js → TeamComputerEntry-2RKJhINy.js} +1 -1
- package/dist/client/assets/{TodoPromiseList-DDKWAfmv.js → TodoPromiseList-iODTn1_b.js} +1 -1
- package/dist/client/assets/{TodoPromisesPage-BNXpvXzS.js → TodoPromisesPage-BCm38YVu.js} +1 -1
- package/dist/client/assets/{ToolsPage-DbJykCG3.js → ToolsPage-Bboa9crU.js} +1 -1
- package/dist/client/assets/{TopologyGraph-DKZS3nlr.js → TopologyGraph-Dw_sLFBL.js} +1 -1
- package/dist/client/assets/{TourHost-Bw3Uoea5.js → TourHost-BUV9rMNn.js} +1 -1
- package/dist/client/assets/{UnlinkDialog-B-XCFNSd.js → UnlinkDialog-B7lL7sxN.js} +1 -1
- package/dist/client/assets/{UnreadDivider-1aPVzwd7.js → UnreadDivider-DCB47jhk.js} +1 -1
- package/dist/client/assets/{WidgetErrorCard-C5ieVv_9.js → WidgetErrorCard-D14BNvfm.js} +2 -2
- package/dist/client/assets/{WithheldExtensionsNotice-CCO4ClRZ.js → WithheldExtensionsNotice-I0VwWxDY.js} +1 -1
- package/dist/client/assets/{WorkQueuePage-BbPKNwDg.js → WorkQueuePage-wVj3wlat.js} +1 -1
- package/dist/client/assets/{WorkView-BRcytACJ.js → WorkView-MSsuFZVO.js} +1 -1
- package/dist/client/assets/{_shell-EwFeSIGp.js → _shell-Bp1Mn6YU.js} +4 -4
- package/dist/client/assets/{_shell._home-DD2mg-iK.js → _shell._home-CylH7Gjr.js} +1 -1
- package/dist/client/assets/{_shell._home.activity-Z1QuU2M4.js → _shell._home.activity-BABzsE_Y.js} +1 -1
- package/dist/client/assets/_shell._home.index-BWXNHCGe.js +3 -0
- package/dist/client/assets/{_shell._home.tasks-BtC85Iut.js → _shell._home.tasks-BJg6t5SW.js} +1 -1
- package/dist/client/assets/{_shell._home.workspaces-qMG5OJYR.js → _shell._home.workspaces-B3LBf9vr.js} +1 -1
- package/dist/client/assets/{_shell.channels-BE4EK-iM.js → _shell.channels-C0xYFINv.js} +2 -2
- package/dist/client/assets/_shell.connections-73FPamLr.js +6 -0
- package/dist/client/assets/{_shell.feedback-requests-CwKSkkuD.js → _shell.feedback-requests-BYYmQE_b.js} +1 -1
- package/dist/client/assets/_shell.marketplace-CiBixBHr.js +1 -0
- package/dist/client/assets/_shell.marketplace_.sources-DPUWEdt6.js +1 -0
- package/dist/client/assets/_shell.session-CJhLuYyA.js +1 -0
- package/dist/client/assets/{_shell.team-Dm5a4f8_.js → _shell.team-BbulfYAQ.js} +3 -3
- package/dist/client/assets/_shell.threads-CRFlslhF.js +1 -0
- package/dist/client/assets/_shell.todos-CmwRh6jX.js +6 -0
- package/dist/client/assets/_shell.x._extensionId-DdKU91-V.js +1 -0
- package/dist/client/assets/_shell.x._extensionId_._-DdKU91-V.js +1 -0
- package/dist/client/assets/{abnfDiagram-WEYOIA3C-Bu2T3jVw.js → abnfDiagram-WEYOIA3C-CF3eRhtw.js} +1 -1
- package/dist/client/assets/{access-copy-tkiFMhRf.js → access-copy-EuKlRWLG.js} +1 -1
- package/dist/client/assets/{arc-5q4SfXO9.js → arc-BqnZif1q.js} +1 -1
- package/dist/client/assets/{architectureDiagram-ZHVYKT53-BnDMOBhV.js → architectureDiagram-ZHVYKT53-CQytXLkh.js} +1 -1
- package/dist/client/assets/{banner-CSKUrrI0.js → banner-nfkn2OLZ.js} +1 -1
- package/dist/client/assets/{blockDiagram-RJAE7QA3-CtushlEs.js → blockDiagram-RJAE7QA3-CXieJU3q.js} +1 -1
- package/dist/client/assets/{c4Diagram-XDPPPE54-7L-qYwKH.js → c4Diagram-XDPPPE54-BPmgfFrI.js} +1 -1
- package/dist/client/assets/channel-BOMQJ9aR.js +1 -0
- package/dist/client/assets/{chunk-2E7WHVMD-ksBVyqQ3.js → chunk-2E7WHVMD-BtumkVCk.js} +1 -1
- package/dist/client/assets/{chunk-2Q5K7J3B-Bfqdkihb.js → chunk-2Q5K7J3B-BUsPKn6-.js} +1 -1
- package/dist/client/assets/{chunk-4EMNKR2T-Brf2dH9x.js → chunk-4EMNKR2T-CuRou8Oa.js} +1 -1
- package/dist/client/assets/{chunk-55XCU76K-BlE7Cq40.js → chunk-55XCU76K-CafKfo9G.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-Bkgg3j7L.js → chunk-5VM5RSS4-BdemtVRg.js} +1 -1
- package/dist/client/assets/{chunk-JWPE2WC7-B9TRpN4O.js → chunk-JWPE2WC7-C1pKIt5Q.js} +1 -1
- package/dist/client/assets/{chunk-VQ5W62QI-ZoILnIYi.js → chunk-VQ5W62QI-DPIQcwQZ.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-r2xNhaKz.js → chunk-XXDRQBXY-CDtiCG5n.js} +1 -1
- package/dist/client/assets/{chunk-ZCHMQSOR-DfV3cF7d.js → chunk-ZCHMQSOR-DsHVvsHO.js} +2 -2
- package/dist/client/assets/{classDiagram-v2-4MYWR3UA-VOVqMNNP.js → classDiagram-v2-4MYWR3UA-CNKi62Mk.js} +1 -1
- package/dist/client/assets/{command-CaUEAy3b.js → command-D1cWVheG.js} +1 -1
- package/dist/client/assets/{copy-button-BOznikwM.js → copy-button-BHHQAtAH.js} +1 -1
- package/dist/client/assets/{cose-bilkent-JH36ORCC-CAdBvyLz.js → cose-bilkent-JH36ORCC-CqK8lNYm.js} +1 -1
- package/dist/client/assets/{cpu-j9vX9Wfk.js → cpu-BhPT23rn.js} +1 -1
- package/dist/client/assets/{cynefin-EF2NZ3EQ-DcH1A9Oo.js → cynefin-EF2NZ3EQ-DUFv7wAT.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-WF24UDRP-DJuKBXHi.js → cynefinDiagram-WF24UDRP-DprACurA.js} +1 -1
- package/dist/client/assets/{dagre-NK4GIZVX-D099H_0S.js → dagre-NK4GIZVX-CFCbvrTm.js} +1 -1
- package/dist/client/assets/{detail-row-Crl89jnh.js → detail-row-DBa1uo_y.js} +1 -1
- package/dist/client/assets/{diagram-CBK3MWTC-Cd_4W9XO.js → diagram-CBK3MWTC-BgRgWBNs.js} +1 -1
- package/dist/client/assets/{diagram-I5XIIV2D-Bc7aQKt3.js → diagram-I5XIIV2D-Bvmxrku7.js} +1 -1
- package/dist/client/assets/{diagram-ODIL2UCW-awVJZ4Bg.js → diagram-ODIL2UCW-CqzUdcUW.js} +1 -1
- package/dist/client/assets/{diagram-PFBEJUXE-dhsj9aeU.js → diagram-PFBEJUXE-DwXryVWl.js} +1 -1
- package/dist/client/assets/{diagram-RJA3I4VV-Dm59CbiV.js → diagram-RJA3I4VV-DqGvHPAI.js} +1 -1
- package/dist/client/assets/{diagram-TYUNFSNR-BhvcIjA9.js → diagram-TYUNFSNR-GOfZ43Y3.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-V4P3TTPT-C4wT_MTC.js → ebnfDiagram-V4P3TTPT-lF7-sW99.js} +1 -1
- package/dist/client/assets/{elk-QONTBCTQ-CPI0zjmW.js → elk-QONTBCTQ-Cd5kFMK6.js} +1 -1
- package/dist/client/assets/{empty-state-BHcmkSzu.js → empty-state-CHse95jw.js} +1 -1
- package/dist/client/assets/{erDiagram-KYQIGQAA-C_vGcbOB.js → erDiagram-KYQIGQAA-BqXJlTJO.js} +1 -1
- package/dist/client/assets/{execution-config-BS5rtvTZ.js → execution-config-U_R_H28y.js} +1 -1
- package/dist/client/assets/{file-CQGljfDT.js → file-DZ6-r1A3.js} +1 -1
- package/dist/client/assets/{file-exclamation-point-B0a55VME.js → file-exclamation-point-CR6qeV6m.js} +1 -1
- package/dist/client/assets/{file-text-Cycq_S0e.js → file-text-4-Vc22J-.js} +1 -1
- package/dist/client/assets/{find-latest-widget-fence-B6sJdG3Q.js → find-latest-widget-fence-D61kyRv5.js} +2 -2
- package/dist/client/assets/{flowDiagram-IUGLLWBU-_VNfmnxx.js → flowDiagram-IUGLLWBU-C18poulN.js} +1 -1
- package/dist/client/assets/{form-BL14vwyB.js → form-B51NLChW.js} +1 -1
- package/dist/client/assets/{format-cron-meJMgYNe.js → format-cron-CrDI8dcD.js} +1 -1
- package/dist/client/assets/{ganttDiagram-R7GPNTJY-o0gGU7X_.js → ganttDiagram-R7GPNTJY-BHa77y_O.js} +1 -1
- package/dist/client/assets/{git-branch-CsLE6G0Y.js → git-branch-CzV_Mp0H.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PDYL7XHY-DjXjUpJo.js → gitGraphDiagram-PDYL7XHY-DdfDaaK5.js} +1 -1
- package/dist/client/assets/{graph-BMYee_VK.js → graph-stVQph_6.js} +1 -1
- package/dist/client/assets/{heart-Cn3a-UQI.js → heart-B7rSSNjF.js} +1 -1
- package/dist/client/assets/{highlighted-body-KPVGNVTW-DsX5yCC0.js → highlighted-body-KPVGNVTW-BDppiTvx.js} +1 -1
- package/dist/client/assets/{image-lightbox-BZ_eBZgA.js → image-lightbox-DwZmxmRU.js} +1 -1
- package/dist/client/assets/{image-off-DjR7LI5G.js → image-off-B65OAyEw.js} +1 -1
- package/dist/client/assets/{index-BR1m9FON.js → index-B2JoVHek.js} +231 -231
- package/dist/client/assets/{index-Cb_p_ynP.js → index-BC7vn8oJ.js} +1 -1
- package/dist/client/assets/{index-DARchye_.js → index-BD0bxxdG.js} +1 -1
- package/dist/client/assets/{index-BxWr8Mrf.js → index-BJE7FpeW.js} +1 -1
- package/dist/client/assets/{index-CczLBUKI.js → index-BLepK8Tm.js} +1 -1
- package/dist/client/assets/{index-Z2ApBQt4.js → index-BNMepjWi.js} +1 -1
- package/dist/client/assets/{index-H4e5Wpmi.js → index-B_7AgsWu.js} +1 -1
- package/dist/client/assets/{index-Cgjq7a-8.js → index-BchQNMCW.js} +1 -1
- package/dist/client/assets/{index-DFb4kOjm.js → index-BgKo-iME.js} +2 -2
- package/dist/client/assets/{index-Kt6r3DQg.js → index-BncKYCzR.js} +1 -1
- package/dist/client/assets/{index-CpWxcN5D.js → index-Bocv39Dy.js} +1 -1
- package/dist/client/assets/{index-BcnwvTnt.js → index-Bx9vkvgI.js} +1 -1
- package/dist/client/assets/{index-o6kGmVGx.js → index-ByKStnc0.js} +1 -1
- package/dist/client/assets/index-C2FXv0W1.js +1 -0
- package/dist/client/assets/index-CCRFURxg.js +1 -0
- package/dist/client/assets/{index-DLN0kcME.js → index-CNXWcd0h.js} +1 -1
- package/dist/client/assets/index-CT9qR-37.js +1 -0
- package/dist/client/assets/{index-vHKVYcH7.js → index-CXbvnAWk.js} +1 -1
- package/dist/client/assets/{index-Cv67OXfk.js → index-CaWtXSTG.js} +1 -1
- package/dist/client/assets/{index-DQ8uADJF.js → index-CayDBSDe.js} +1 -1
- package/dist/client/assets/{index-4rSR8lau.js → index-Ci17H_nH.js} +1 -1
- package/dist/client/assets/{index-DqZmnJED.js → index-CpCaGGh0.js} +1 -1
- package/dist/client/assets/{index-CfKSlYjb.js → index-CvLTkguu.js} +1 -1
- package/dist/client/assets/{index-dY7IFpet.js → index-CyTJNCti.js} +1 -1
- package/dist/client/assets/{index-Joav7LQU.js → index-CzDpDW1S.js} +1 -1
- package/dist/client/assets/{index-B4TxpTKD.js → index-D1FZurLO.js} +1 -1
- package/dist/client/assets/{index-BmKHO-FD.js → index-D5HU9MN-.js} +1 -1
- package/dist/client/assets/index-DBjkg_lo.css +1 -0
- package/dist/client/assets/{index-gmyiXkmr.js → index-DCymAWyX.js} +1 -1
- package/dist/client/assets/{index-faSyUc2q.js → index-DDPQZJQz.js} +1 -1
- package/dist/client/assets/{index-Cf4Gtxf9.js → index-DK-qQXH4.js} +1 -1
- package/dist/client/assets/{index-DrlB9RSk.js → index-DTJV1dBd.js} +1 -1
- package/dist/client/assets/{index-DiM3QX-4.js → index-Dhj4iWHB.js} +3 -3
- package/dist/client/assets/index-DxqA8BnM.js +1 -0
- package/dist/client/assets/{index-DlvUENo4.js → index-DzVJOMZm.js} +1 -1
- package/dist/client/assets/{index-47--OGKJ.js → index-FRNKkajP.js} +1 -1
- package/dist/client/assets/{index-Dfko0tSp.js → index-L1Tsd-wn.js} +1 -1
- package/dist/client/assets/{index-KganLhU1.js → index-QaablvAu.js} +2 -2
- package/dist/client/assets/{index-DMSSN08i.js → index-SawUg2NU.js} +1 -1
- package/dist/client/assets/{index-B8LqLhq7.js → index-YObNtFmj.js} +1 -1
- package/dist/client/assets/{index-1MwES_vb.js → index-iRuOpaV9.js} +1 -1
- package/dist/client/assets/{index-BOCclWF3.js → index-ulrRTPa9.js} +1 -1
- package/dist/client/assets/{index-BsZkXHsH.js → index-wcSHU-xr.js} +1 -1
- package/dist/client/assets/{index-D5Qmx1JR.js → index-yZEr0YWk.js} +3 -3
- package/dist/client/assets/{index.esm-CJIDYBqd.js → index.esm-gt8tvZ7J.js} +1 -1
- package/dist/client/assets/{infoDiagram-MVDRKAX5-B1mMyUlp.js → infoDiagram-MVDRKAX5-DzhnMotD.js} +1 -1
- package/dist/client/assets/{inline-code-mh48Uhbi.js → inline-code-rYW-kJLB.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-HPEHV2GE-efEMQ0_X.js → ishikawaDiagram-HPEHV2GE-CfEX5E3R.js} +1 -1
- package/dist/client/assets/{journeyDiagram-BOSHW7O7-DSAywiVk.js → journeyDiagram-BOSHW7O7-oPrRia7f.js} +1 -1
- package/dist/client/assets/{kanban-definition-FNSA4HC5-B9pbU4zK.js → kanban-definition-FNSA4HC5-c4CFmcMa.js} +1 -1
- package/dist/client/assets/{layers-B0Z5Od3N.js → layers-D9XZggr2.js} +1 -1
- package/dist/client/assets/{lightbulb-Cfb5ecEd.js → lightbulb-DQBO5jSg.js} +1 -1
- package/dist/client/assets/{link-2-Dzy5BUL3.js → link-2-CZiWX9vI.js} +1 -1
- package/dist/client/assets/{list-runtime-types-DLmjtBMq.js → list-runtime-types-Dry1muZ1.js} +1 -1
- package/dist/client/assets/{markdown-content-DhAtZOfj.js → markdown-content-FcvkqTTS.js} +1 -1
- package/dist/client/assets/{mention-pill-DmA8FxL4.js → mention-pill-BxASQ-6w.js} +1 -1
- package/dist/client/assets/{mermaid.core-DUIkdbeL.js → mermaid.core-BqACpHu4.js} +4 -4
- package/dist/client/assets/{message-square-off-BowIzJUV.js → message-square-off-SMiCYjYr.js} +1 -1
- package/dist/client/assets/{mindmap-definition-6OY57UG3-Dz7ZOR4C.js → mindmap-definition-6OY57UG3-BSYcYnyL.js} +1 -1
- package/dist/client/assets/{more-details-DV7LmY0E.js → more-details-D9_Bn2GL.js} +1 -1
- package/dist/client/assets/{owner-notice-DdFc2P8z.js → owner-notice-DO2xE-1L.js} +1 -1
- package/dist/client/assets/{package-BhKXbvU_.js → package-DpqGENzU.js} +1 -1
- package/dist/client/assets/{page-container-0sWZ3xh9.js → page-container-Cta3RqHd.js} +1 -1
- package/dist/client/assets/{pane-resize-handle-Bjy4udre.js → pane-resize-handle-BJ0XV-Zg.js} +1 -1
- package/dist/client/assets/{paperclip-C-7LhBfl.js → paperclip-CItlLyje.js} +1 -1
- package/dist/client/assets/{path-input-BPVyI72G.js → path-input-CAkVS5XR.js} +1 -1
- package/dist/client/assets/{pegDiagram-ECIUJNBX-C4EOP-Fa.js → pegDiagram-ECIUJNBX-Bnc4eqtF.js} +1 -1
- package/dist/client/assets/{pieDiagram-GNMPY74T-CQ1OxRkv.js → pieDiagram-GNMPY74T-7gG33sSR.js} +1 -1
- package/dist/client/assets/{plug-CIZ-wWL8.js → plug-Cb8qsOxJ.js} +1 -1
- package/dist/client/assets/{primer-trigger-XA5fLzR5.js → primer-trigger-BG3lb31_.js} +2 -2
- package/dist/client/assets/{profile-errors-C1XACbc9.js → profile-errors-T-3VgU7E.js} +1 -1
- package/dist/client/assets/progress-CwpnobNW.js +1 -0
- package/dist/client/assets/{quadrantDiagram-D57K4MC3-Cw4BdkpS.js → quadrantDiagram-D57K4MC3-Dr2Z6GbA.js} +1 -1
- package/dist/client/assets/{query-error-state-Cm-Lozlb.js → query-error-state-BV8fyXBe.js} +1 -1
- package/dist/client/assets/{radio-DQ29H26H.js → radio-SApjvqfy.js} +1 -1
- package/dist/client/assets/{railroadDiagram-Y72NRBL7-CSKtYLmm.js → railroadDiagram-Y72NRBL7-7kfKSzWs.js} +1 -1
- package/dist/client/assets/{registry-Tbt9pcZl.js → registry-BcpatPes.js} +4 -4
- package/dist/client/assets/registry-BuTvvFn6.js +1 -0
- package/dist/client/assets/{relay-trace-schemas-4AAUf-Zl.js → relay-trace-schemas-eOfnfe4X.js} +2 -2
- package/dist/client/assets/{repeat-B8g-x-Sc.js → repeat-BB0attnO.js} +1 -1
- package/dist/client/assets/{requirementDiagram-EQYSW5RA-BPSBZr7X.js → requirementDiagram-EQYSW5RA-CmOVPT7N.js} +1 -1
- package/dist/client/assets/{room-files-source-BkiK4-ZI.js → room-files-source-C32w3dXr.js} +1 -1
- package/dist/client/assets/{rotate-ccw-clock-DRtL-2nr.js → rotate-ccw-clock-C1SBdbZP.js} +1 -1
- package/dist/client/assets/{rotate-cw-BbHkWN-J.js → rotate-cw-BTqPAMgP.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-SY24JHO5-DVlHablQ.js → sankeyDiagram-SY24JHO5-DFcTUSd1.js} +1 -1
- package/dist/client/assets/{scroll-area-DAC7NrVU.js → scroll-area-rEyYMbHG.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-BLEHNHQU--wZkN8xk.js → sequenceDiagram-BLEHNHQU-BNY4ALqc.js} +1 -1
- package/dist/client/assets/server-BCFl_ur3.js +6 -0
- package/dist/client/assets/{shield-x-CEWfkzDN.js → shield-x-B2nLbkhR.js} +1 -1
- package/dist/client/assets/{signed-in-CMhCR-m8.js → signed-in-BcxH99a5.js} +1 -1
- package/dist/client/assets/{sizeCapture-INFHLROL-CLXc7d3S.js → sizeCapture-INFHLROL-CuNPY5HV.js} +1 -1
- package/dist/client/assets/{soul-file-CbX7rNqz.js → soul-file-ITCKiDY9.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-A6IESKWZ-5xa1FM_X.js → stateDiagram-v2-A6IESKWZ-CmUdZZJs.js} +1 -1
- package/dist/client/assets/{swimlanes-B3ENRKFQ-DKgxJxjE.js → swimlanes-B3ENRKFQ-BmNmFgsZ.js} +1 -1
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-Cd_Magxj.js +8 -0
- package/dist/client/assets/{table-D0EJT0uP.js → table-COZ3E1UU.js} +1 -1
- package/dist/client/assets/{tabs-Ctjzrm8t.js → tabs-CDr3zS_2.js} +1 -1
- package/dist/client/assets/{timeline-definition-JXYKGLGB-B9P7ituI.js → timeline-definition-JXYKGLGB-Cq7UTNkh.js} +1 -1
- package/dist/client/assets/{trust-dial-D__tIhzt.js → trust-dial-BsEooNiu.js} +2 -2
- package/dist/client/assets/{trust-posture-DaHHtOZn.js → trust-posture-Dk5ctS0Q.js} +1 -1
- package/dist/client/assets/{unplug-B-ipHefz.js → unplug-DB0xx2bf.js} +1 -1
- package/dist/client/assets/{unverified-catalog-notice-C8swqaTn.js → unverified-catalog-notice-CQoKhOjQ.js} +1 -1
- package/dist/client/assets/{use-bindings-gLHRNAFU.js → use-bindings-CEhDyZoj.js} +1 -1
- package/dist/client/assets/{use-composer-prefs-CjpxcBIe.js → use-composer-prefs-uC9mUd0f.js} +1 -1
- package/dist/client/assets/{use-connector-management-BLiCJMgU.js → use-connector-management-54m5ZcyP.js} +1 -1
- package/dist/client/assets/{use-deep-link-scroll-r2nKjzA-.js → use-deep-link-scroll-C4DQRnGX.js} +1 -1
- package/dist/client/assets/{use-delete-binding-BSiOik_K.js → use-delete-binding-Cr9soEn-.js} +1 -1
- package/dist/client/assets/{use-dev-links-DXcIlMf-.js → use-dev-links-CXGFC-N0.js} +1 -1
- package/dist/client/assets/{use-direct-message-panel-BbH8N4mE.js → use-direct-message-panel-BxwiNzks.js} +1 -1
- package/dist/client/assets/{use-external-adapter-catalog-mmKni5ui.js → use-external-adapter-catalog-D3xkw3mY.js} +1 -1
- package/dist/client/assets/{use-filter-state-CiPZ0AIH.js → use-filter-state-N0pdU49v.js} +1 -1
- package/dist/client/assets/{use-full-activity-feed-DXroUzfN.js → use-full-activity-feed-COuRZq_w.js} +1 -1
- package/dist/client/assets/use-is-below-desktop-CgAcZ8iA.js +1 -0
- package/dist/client/assets/{use-mesh-topology-upehQ5Cv.js → use-mesh-topology-BSRzCO1U.js} +1 -1
- package/dist/client/assets/{use-mounted-ref-IHwyriaF.js → use-mounted-ref-pxDiCOyS.js} +1 -1
- package/dist/client/assets/{use-notification-prefs-BHOK2P2l.js → use-notification-prefs-6N6Y4rqG.js} +1 -1
- package/dist/client/assets/use-pending-read-HbJdwxw1.js +1 -0
- package/dist/client/assets/{use-personality-commit-Chf3UX8P.js → use-personality-commit-Dl3YK7Qd.js} +1 -1
- package/dist/client/assets/{use-promo-activation-Dlw6bg7G.js → use-promo-activation-DXRrwLes.js} +2 -2
- package/dist/client/assets/{use-promo-dismissals-Dx_fli7I.js → use-promo-dismissals-DnqiKhqW.js} +1 -1
- package/dist/client/assets/{use-pulse-freshness-CG_I6a-O.js → use-pulse-freshness-D9uzSgz_.js} +1 -1
- package/dist/client/assets/{use-room-follow-claim-Bgrpr3bO.js → use-room-follow-claim-Ch6ZoOAv.js} +1 -1
- package/dist/client/assets/{use-room-sessions-DecGrP3E.js → use-room-sessions-C3NpXFWY.js} +1 -1
- package/dist/client/assets/{use-roving-tab-list-CDkh-Ujm.js → use-roving-tab-list-LZku4K5R.js} +1 -1
- package/dist/client/assets/{use-session-canvas-tvLLPQcm.js → use-session-canvas-Bub7vCaj.js} +6 -6
- package/dist/client/assets/{use-status-budget-BBl2yxLR.js → use-status-budget-DrAROrOw.js} +2 -2
- package/dist/client/assets/{use-todos-BzRauzdQ.js → use-todos-COW66MhB.js} +1 -1
- package/dist/client/assets/{use-transform-DzJeHpxm.js → use-transform-CXFCVk8z.js} +1 -1
- package/dist/client/assets/{use-unclaimed-chats--HZdmq4F.js → use-unclaimed-chats-T3kskM3T.js} +1 -1
- package/dist/client/assets/use-update-config-BhLEnZe5.js +1 -0
- package/dist/client/assets/{useMutationState-DIywUTDG.js → useMutationState-6Zu1xBsZ.js} +1 -1
- package/dist/client/assets/{usecaseDiagram-WPOLBNNX-C9aLJ03F.js → usecaseDiagram-WPOLBNNX-CUu-YUIY.js} +1 -1
- package/dist/client/assets/{vennDiagram-Q3Y3IDCW-ChBIWbL0.js → vennDiagram-Q3Y3IDCW-CfA29THe.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-IVAIDKWA-DvQDOaTm.js → wardleyDiagram-IVAIDKWA-CrARcH-W.js} +1 -1
- package/dist/client/assets/{xychartDiagram-4URNHDU4-8FxLPP2c.js → xychartDiagram-4URNHDU4-BCVaXTG3.js} +1 -1
- package/dist/client/assets/{zap-DSllMMHe.js → zap-C-pr1sst.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/drizzle/20261108035027_dor3547_extension_grant_subject.sql +30 -0
- package/dist/drizzle/meta/20261108035027_snapshot.json +15121 -0
- package/dist/drizzle/meta/_journal.json +7 -0
- package/dist/server/extension-child.cjs +19 -3
- package/dist/server/index.js +13162 -12123
- package/dist/server/index.js.map +2 -2
- package/package.json +2 -2
- package/dist/client/assets/CanvasFileContent-Bqd0IEfK.js +0 -2
- package/dist/client/assets/CanvasModel3dContent-DqL0Sy4r.js +0 -2
- package/dist/client/assets/HandlePage-aHId3bYX.js +0 -1
- package/dist/client/assets/NamePage-C7F-SotG.js +0 -1
- package/dist/client/assets/NewDirectMessageMenu-CjBjzsDe.js +0 -1
- package/dist/client/assets/PermissionHistory-D0chstxf.js +0 -1
- package/dist/client/assets/PhotoPage-Cqo3PNO_.js +0 -1
- package/dist/client/assets/_shell._home.index-BzTYr8Bw.js +0 -3
- package/dist/client/assets/_shell.connections-CBx0ogzx.js +0 -1
- package/dist/client/assets/_shell.marketplace-CgWBUKSA.js +0 -1
- package/dist/client/assets/_shell.marketplace_.sources-8HZpKFDI.js +0 -1
- package/dist/client/assets/_shell.session-D6HcVbnm.js +0 -1
- package/dist/client/assets/_shell.threads-BavVtQOE.js +0 -1
- package/dist/client/assets/_shell.todos-B6uWr0zA.js +0 -6
- package/dist/client/assets/_shell.x._extensionId-DaELdkCH.js +0 -1
- package/dist/client/assets/_shell.x._extensionId_._-DaELdkCH.js +0 -1
- package/dist/client/assets/channel-A3XT7_2L.js +0 -1
- package/dist/client/assets/index-BJRgbiEd.js +0 -1
- package/dist/client/assets/index-BcFn_S6b.js +0 -1
- package/dist/client/assets/index-BdVQOlVQ.css +0 -1
- package/dist/client/assets/index-C5EvpXcq.js +0 -1
- package/dist/client/assets/index-DZhMvc9m.js +0 -1
- package/dist/client/assets/progress-BA2JPtb6.js +0 -6
- package/dist/client/assets/registry-jD9zw538.js +0 -1
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-f6MOc3pl.js +0 -8
- package/dist/client/assets/use-is-below-desktop-LUZL5z5t.js +0 -1
- package/dist/client/assets/use-pending-read-mVsOBTzn.js +0 -1
- package/dist/client/assets/use-update-config-DjL7-nUR.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as z,eQ as B}from"./index-BR1m9FON.js";function N(r){return typeof r=="object"?r.key:r}function H(r,a){const t=r.length;return new Proxy(r,{get(s,e,n){if(typeof e=="string"){const l=e.charCodeAt(0);if(l>=48&&l<=57){const i=+e;if(Number.isInteger(i)&&i>=0&&i<t){let o=s[i];if(typeof o!="object"){const c=a[i*2];o=s[i]={index:i,key:o,start:c,size:a[i*2+1],end:c+a[i*2+1],lane:0}}return o}}if(e==="length")return t}return Reflect.get(s,e,n)}})}function A(r,a,t){let s=t.initialDeps??[],e,n=!0;function l(){const i=r();return(i.length!==s.length||i.some((c,g)=>s[g]!==c))&&(s=i,e=a(...i),t!=null&&t.onChange&&!(n&&t.skipInitialOnChange)&&t.onChange(e),n=!1),e}return l.updateDeps=i=>{s=i},l}function k(r,a){if(r===void 0)throw new Error("Unexpected undefined");return r}const V=(r,a)=>Math.abs(r-a)<1.01,J=(r,a,t)=>{let s;return Object.assign(function(...e){r.clearTimeout(s),s=r.setTimeout(()=>a.apply(this,e),t)},{cancel:()=>{r.clearTimeout(s)}})};let R;const L=()=>{if(R!==void 0)return R;if(typeof navigator>"u")return R=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return R=!0;const r=navigator.maxTouchPoints;return R=navigator.platform==="MacIntel"&&r!==void 0&&r>0},K=r=>{const{offsetWidth:a,offsetHeight:t}=r;return{width:a,height:t}},$=r=>r,q=r=>{const a=Math.max(r.startIndex-r.overscan,0),s=Math.min(r.endIndex+r.overscan,r.count-1)-a+1,e=new Array(s);for(let n=0;n<s;n++)e[n]=a+n;return e},U=(r,a)=>{const t=r.scrollElement;if(!t)return;const s=r.targetWindow;if(!s)return;const e=l=>{const{width:i,height:o}=l;a({width:Math.round(i),height:Math.round(o)})};if(e(K(t)),!s.ResizeObserver)return()=>{};const n=new s.ResizeObserver(l=>{const i=()=>{const o=l[0];if(o!=null&&o.borderBoxSize){const c=o.borderBoxSize[0];if(c){e({width:c.inlineSize,height:c.blockSize});return}}e(K(t))};r.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()});return n.observe(t,{box:"border-box"}),()=>{n.unobserve(t)}},j={passive:!0},X=typeof window>"u"?!0:"onscrollend"in window,Q=(r,a,t)=>{const s=r.scrollElement;if(!s)return;const e=r.targetWindow;if(!e)return;const n=r.options.useScrollendEvent&&X;let l=0;const i=n?null:J(e,()=>a(t(s),!1),r.options.isScrollingResetDelay),o=h=>()=>{l=t(s),i==null||i(),a(l,h)},c=o(!0),g=o(!1);return s.addEventListener("scroll",c,j),n&&s.addEventListener("scrollend",g,j),()=>{s.removeEventListener("scroll",c),n&&s.removeEventListener("scrollend",g),i==null||i.cancel()}},G=(r,a)=>Q(r,a,t=>{const{horizontal:s,isRtl:e}=r.options;return s?t.scrollLeft*(e&&-1||1):t.scrollTop}),Y=(r,a,t)=>{if(t.options.useCachedMeasurements){const s=t.indexFromElement(r),e=t.options.getItemKey(s);return t.itemSizeCache.get(e)??t.options.estimateSize(s)}if(a!=null&&a.borderBoxSize){const s=a.borderBoxSize[0];if(s)return Math.round(s[t.options.horizontal?"inlineSize":"blockSize"])}if(!a){const s=t.indexFromElement(r),e=t.options.getItemKey(s),n=t.itemSizeCache.get(e);if(n!==void 0)return n}return r[t.options.horizontal?"offsetWidth":"offsetHeight"]},Z=(r,{adjustments:a=0,behavior:t},s)=>{var e,n;(n=(e=s.scrollElement)==null?void 0:e.scrollTo)==null||n.call(e,{[s.options.horizontal?"left":"top"]:r+a,behavior:t})},tt=Z;function et(r,a,t,s){if(a===0)return!1;const e=s(0),n=new Set;let l=0;for(;l<r;){const o=t(l);if(o===e)break;n.add(o),l++}const i=r-l;if(i===0||i>=a)return!1;for(let o=0;o<i;o++)if(s(o)!==t(l+o))return!1;for(let o=i;o<a;o++)if(n.has(s(o)))return!1;return!0}class st{constructor(a){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this._clampedAdjustment=null,this.elementsCache=new Map,this.now=()=>{var t,s,e;return((e=(s=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:s.now)==null?void 0:e.call(s))??Date.now()},this.observer=(()=>{let t=null;const s=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(e=>{e.forEach(n=>{const l=()=>{const i=n.target,o=this.indexFromElement(i);if(!i.isConnected){this.observer.unobserve(i);for(const[c,g]of this.elementsCache)if(g===i){this.elementsCache.delete(c);break}return}this.isIndexInRange(o)&&this.shouldMeasureDuringScroll(o)&&this.resizeItem(o,this.options.measureElement(i,n,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(l):l()})}));return{disconnect:()=>{var e;(e=s())==null||e.disconnect(),t=null},observe:e=>{var n;return(n=s())==null?void 0:n.observe(e,{box:"border-box"})},unobserve:e=>{var n;return(n=s())==null?void 0:n.unobserve(e)}}})(),this.range=null,this.setOptions=t=>{var s;const e={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:$,rangeExtractor:q,onChange:()=>{},measureElement:Y,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const h in t){const d=t[h];d!==void 0&&(e[h]=d)}const n=this.options;let l=null,i=null,o=!1;if(n!==void 0&&n.enabled&&e.enabled&&e.anchorTo==="end"&&this.scrollElement!==null){const h=n.count,d=e.count,u=this.getMeasurements(),S=((s=this._singleLaneMeasurements)==null?void 0:s.items)??u,p=E=>N(S[E]),v=h>0?p(0):null,b=h>0?p(h-1):null;if(d!==h||h>0&&d>0&&(e.getItemKey(0)!==v||e.getItemKey(d-1)!==b)){o=!0;const E=h>0?this.getVirtualItemForOffset(this.getScrollOffset())??u[0]:null;E&&(l=[E.key,this.getScrollOffset()-E.start]);const _=e.followOnAppend===!0?"auto":e.followOnAppend||null;_&&d>0&&this.isAtEnd(n.scrollEndThreshold)&&(h===0||e.getItemKey(d-1)!==b)&&(d>h||et(h,d,p,e.getItemKey))&&(i=_)}}this.options=e,o&&(this.pendingMin=0,this.itemSizeCacheVersion++);let c=!1,g=0;if(l&&this.scrollOffset!==null){const[h,d]=l,u=this.getMeasurements(),{count:S,getItemKey:p}=this.options;let v=0;for(;v<S&&p(v)!==h;)v++;if(v<S){const b=u[v];if(b){const f=Math.max(0,b.start+d);!i&&f!==this.scrollOffset&&(g=f-this.scrollOffset,this.scrollOffset=f,c=!0)}}}(c||i)&&(this.pendingScrollAnchor=[c?l[0]:null,c?l[1]:0,i,g])},this.notify=t=>{var s,e;(e=(s=this.options).onChange)==null||e.call(s,this,t)},this.maybeNotify=A(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.isScrolling=!1,this.scrollDirection=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._clampedAdjustment=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t,s;const e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(l=>{this.observer.observe(l)}),this.unsubs.push(this.options.observeElementRect(this,l=>{this.scrollRect=l,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(l,i)=>{if(i&&this._intendedScrollOffset===null&&l===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(l-this._intendedScrollOffset)<1.5&&(l=this._intendedScrollOffset),this._intendedScrollOffset=null,this._clampedAdjustment!==null&&Math.abs(l-this._clampedAdjustment.maxAtWrite)>=1.5&&(this._clampedAdjustment=null),this.scrollAdjustments=0;const o=this.getScrollOffset();this.scrollDirection=i?o===l?this.scrollDirection:o<l?"forward":"backward":null,this.scrollOffset=l,this.isScrolling=i,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const l=this.scrollElement,i=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},o=()=>{this._iosTouching=!1,!(!L()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};l.addEventListener("touchstart",i,j),l.addEventListener("touchend",o,j),this.unsubs.push(()=>{l.removeEventListener("touchstart",i),l.removeEventListener("touchend",o),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const n=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,n&&this.scrollElement&&this.options.enabled){const[l,i,o,c]=n;l!==null&&!o&&(L()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?c!==0&&(this._iosDeferredAdjustment+=c):((s=this.scrollState)==null?void 0:s.behavior)==="smooth"&&!V(this.getScrollOffset()-c,this.scrollState.lastTargetOffset)||this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),o&&this.scrollToEnd({behavior:o})}this._retryClampedAdjustment()},this._retryClampedAdjustment=()=>{if(this._clampedAdjustment===null||!this.scrollElement||!this.options.enabled)return;const{target:t,maxAtWrite:s}=this._clampedAdjustment,e=this.getMaxScrollOffset();e>s+.5&&(this._clampedAdjustment=t>e+.5?{target:t,maxAtWrite:e}:null,this._scrollToOffset(t,{adjustments:void 0,behavior:void 0}))},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const t=this.getScrollOffset(),s=this.getMaxScrollOffset();if(t<0||t>s)return;if(this._iosDeferredAdjustment<0&&t>=s-1){this._iosDeferredAdjustment=0;return}const e=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=e,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=A(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(t,s,e,n,l,i,o,c)=>(this.prevLanes!==void 0&&this.prevLanes!==i&&(this.lanesChangedFlag=!0),this.prevLanes=i,this.pendingMin=null,{count:t,paddingStart:s,scrollMargin:e,getItemKey:n,enabled:l,lanes:i,laneAssignmentMode:o,gap:c}),{key:!1}),this.isIndexInRange=t=>t>=0&&t<this.options.count,this.getMeasurements=A(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:s,scrollMargin:e,getItemKey:n,enabled:l,lanes:i,laneAssignmentMode:o,gap:c},g)=>{var h;const d=this.itemSizeCache;if(!l)return this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(const f of this.laneAssignments.keys())f>=t&&this.laneAssignments.delete(f);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(f=>{this.itemSizeCache.set(f.key,f.size)}));const u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),i===1){const f=t*2;let m=(h=this._singleLaneMeasurements)==null?void 0:h.flat;if(!m||m.length<f){const O=new Float64Array(f);m&&u>0&&O.set(m.subarray(0,u*2)),m=O}const E=u===0?new Array(t):this._singleLaneMeasurements.items.slice();let _;if(u===0)_=s+e;else{const O=u-1;_=m[O*2]+m[O*2+1]+c}for(let O=u;O<t;O++){const M=n(O);E[O]=M;const T=d.get(M),w=typeof T=="number"?T:this.options.estimateSize(O);m[O*2]=_,m[O*2+1]=w,_+=w+c}this._singleLaneMeasurements={flat:m,items:E};const x=H(E,m);return this.measurementsCache=x,x}const S=this.measurementsCache.slice(0,u),p=new Array(i).fill(void 0),v=new Float64Array(i);let b=0;for(let f=0;f<u;f++){const m=S[f];m&&(p[m.lane]===void 0&&b++,p[m.lane]=f,v[m.lane]=m.end)}for(let f=u;f<t;f++){const m=n(f),E=this.laneAssignments.get(f);let _,x;const O=o==="estimate"||d.has(m);if(E!==void 0&&this.options.lanes>1){_=E;const C=p[_],I=C!==void 0?S[C]:void 0;x=I?I.end+c:s+e}else if(b===i){let C=0,I=v[0],W=p[0];for(let y=1;y<i;y++){const F=v[y];(F<I||F===I&&p[y]<W)&&(C=y,I=F,W=p[y])}_=C,x=I+c,O&&this.laneAssignments.set(f,_)}else _=f%this.options.lanes,x=s+e,O&&this.laneAssignments.set(f,_);const M=d.get(m),T=typeof M=="number"?M:this.options.estimateSize(f),w=x+T;S[f]={index:f,start:x,size:T,end:w,key:m,lane:_},p[_]===void 0&&b++,p[_]=f,v[_]=w}return this.measurementsCache=S,S},{key:!1,debug:()=>this.options.debug}),this.calculateRange=A(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,s,e,n)=>t.length===0||s===0?(this.range=null,null):(this.range=it(t,s,e,n,n===1&&this._singleLaneMeasurements!==null?this._singleLaneMeasurements.flat:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=A(()=>{let t=null,s=null;const e=this.calculateRange();return e&&(t=e.startIndex,s=e.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,s]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,s]},(t,s,e,n,l)=>n===null||l===null?[]:t({startIndex:n,endIndex:l,overscan:s,count:e}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{const s=this.options.indexAttribute,e=t.getAttribute(s);return e?parseInt(e,10):(console.warn(`Missing attribute name '${s}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var s;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const e=this.scrollState.index??((s=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:s.index);if(e!==void 0&&this.range){const n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),l=Math.max(0,e-n),i=Math.min(this.options.count-1,e+n);return t>=l&&t<=i}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((l,i)=>{l.isConnected||(this.observer.unobserve(l),this.elementsCache.delete(i))});return}const s=this.indexFromElement(t);if(!this.isIndexInRange(s))return;const e=this.options.getItemKey(s),n=this.elementsCache.get(e);n!==t&&(n&&this.observer.unobserve(n),this.observer.observe(t),this.elementsCache.set(e,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(s)&&this.resizeItem(s,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,s)=>{var e,n,l;if(!this.isIndexInRange(t))return;let i,o,c;const g=(e=this._singleLaneMeasurements)==null?void 0:e.flat;if(this.options.lanes===1&&g!=null)c=this.options.getItemKey(t),o=g[t*2],i=g[t*2+1];else{const u=this.measurementsCache[t];if(!u)return;c=u.key,o=u.start,i=u.size}const h=this.itemSizeCache.get(c)??i,d=s-h;if(d!==0){const u=this.options.anchorTo==="end"&&((n=this.scrollState)==null?void 0:n.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,S=u?this.getTotalSize():0,p=this.getScrollOffset()+this.scrollAdjustments,b=!this.itemSizeCache.has(c)?o<p:o+h<=p&&this.scrollDirection!=="backward",f=((l=this.scrollState)==null?void 0:l.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:c,start:o,size:i,end:o+i,lane:0},d,this):b);(this.pendingMin===null||t<this.pendingMin)&&(this.pendingMin=t),this.itemSizeCache.set(c,s),this.itemSizeCacheVersion++;let m=!1;u?m=this.applyScrollAdjustment(this.getTotalSize()-S):f&&(m=this.applyScrollAdjustment(d)),this.notify(m),this._retryClampedAdjustment()}},this.getVirtualItems=A(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,s)=>{const e=[];for(let n=0,l=t.length;n<l;n++){const i=t[n],o=s[i];e.push(o)}return e},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=t=>{var s;const e=this.getMeasurements();if(e.length===0)return;const n=(s=this._singleLaneMeasurements)==null?void 0:s.flat,l=this.options.lanes===1&&n!=null,i=P(0,e.length-1,l?o=>n[o*2]:o=>k(e[o]).start,t);return k(e[i])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,s,e=0)=>{if(!this.scrollElement)return 0;const n=this.getSize(),l=this.getScrollOffset();s==="auto"&&(s=t>=l+n?"end":"start"),s==="center"?t+=(e-n)/2:s==="end"&&(t-=n);const i=this.getMaxScrollOffset();return Math.max(Math.min(i,t),0)},this.getOffsetForIndex=(t,s="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const e=this.getSize(),n=this.getScrollOffset(),l=this.measurementsCache[t];if(!l)return;if(s==="auto")if(l.end>=n+e-this.options.scrollPaddingEnd)s="end";else if(l.start<=n+this.options.scrollPaddingStart)s="start";else return[n,s];if(s==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),s];const i=s==="end"?l.end+this.options.scrollPaddingEnd:l.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(i,s,l.size),s]},this.scrollToOffset=(t,{align:s="start",behavior:e="auto"}={})=>{this._iosDeferredAdjustment=0;const n=this.getOffsetForAlignment(t,s),l=this.now();this.scrollState={index:null,align:s,behavior:e,startedAt:l,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:s="auto",behavior:e="auto"}={})=>{this._iosDeferredAdjustment=0,t=Math.max(0,Math.min(t,this.options.count-1));const n=this.getOffsetForIndex(t,s);if(!n)return;const[l,i]=n,o=this.now();this.scrollState={index:t,align:i,behavior:e,startedAt:o,lastTargetOffset:l,stableFrames:0},this._scrollToOffset(l,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:s="auto"}={})=>{const e=this.getScrollOffset()+t,n=this.now();this.scrollState={index:null,align:"start",behavior:s,startedAt:n,lastTargetOffset:e,stableFrames:0},this._scrollToOffset(e,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t,s;const e=this.getMeasurements();let n;if(e.length===0)n=this.options.paddingStart;else if(this.options.lanes===1){const l=e.length-1,i=(t=this._singleLaneMeasurements)==null?void 0:t.flat;i!=null?n=i[l*2]+i[l*2+1]:n=((s=e[l])==null?void 0:s.end)??0}else{const l=Array(this.options.lanes).fill(null);let i=e.length-1;for(;i>=0&&l.some(o=>o===null);){const o=e[i];l[o.lane]===null&&(l[o.lane]=o.end),i--}n=Math.max(...l.filter(o=>o!==null))}return Math.max(n-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const t=[];if(this.itemSizeCache.size===0)return t;const s=this.getMeasurements();for(const e of s)e&&this.itemSizeCache.has(e.key)&&t.push({index:e.index,key:e.key,start:e.start,size:e.size,end:e.end,lane:e.lane});return t},this._scrollToOffset=(t,{adjustments:s,behavior:e})=>{this._intendedScrollOffset=t+(s??0),this.options.scrollToFn(t,{behavior:e,adjustments:s},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(a)}applyScrollAdjustment(a,t){if(a===0)return!1;if(L()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded))return this._iosDeferredAdjustment+=a,!1;{const s=this.getScrollOffset()+this.scrollAdjustments+a,e=this.scrollElement,n=e!==null&&("scrollHeight"in e||"document"in e)?this.getMaxScrollOffset():null;return this._clampedAdjustment=n!==null&&s>n+.5?{target:s,maxAtWrite:n}:null,this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=a,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0}}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const s=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,e=s?s[0]:this.scrollState.lastTargetOffset,n=1,l=e!==this.scrollState.lastTargetOffset;if(!l&&V(e,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=n){this.getScrollOffset()!==e&&this._scrollToOffset(e,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,l){const i=this.getSize()||600,o=Math.abs(e-this.getScrollOffset()),c=this.scrollState.behavior==="smooth"&&o>i;this.scrollState.lastTargetOffset=e,c||(this.scrollState.behavior="auto"),this._scrollToOffset(e,{adjustments:void 0,behavior:c?"smooth":"auto"})}this.scheduleScrollReconcile()}}const P=(r,a,t,s)=>{for(;r<=a;){const e=(r+a)/2|0,n=t(e);if(n<s)r=e+1;else if(n>s)a=e-1;else return e}return r>0?r-1:0};function nt(r,a,t){let s=0;for(;s<=a;){const e=(s+a)/2|0,n=r[e*2];if(n<t)s=e+1;else if(n>t)a=e-1;else return e}return s>0?s-1:0}function it(r,a,t,s,e){const n=r.length-1;if(r.length<=s)return{startIndex:0,endIndex:n};if(s===1&&e!==null){const c=nt(e,n,t);let g=c;const h=t+a;for(;g<n&&e[g*2]+e[g*2+1]<h;)g++;return{startIndex:c,endIndex:g}}let i=P(0,n,c=>r[c].start,t),o=i;if(s===1)for(;o<n&&r[o].end<t+a;)o++;else if(s>1){const c=Array(s).fill(0);for(;o<n&&c.some(h=>h<t+a);){const h=r[o];c[h.lane]=h.end,o++}const g=Array(s).fill(t+a);for(;i>=0&&g.some(h=>h>=t);){const h=r[i];g[h.lane]=h.start,i--}i=Math.max(0,i-i%s),o=Math.min(n,o+(s-1-o%s))}return{startIndex:i,endIndex:o}}const D=typeof document<"u"?z.useLayoutEffect:z.useEffect;function lt({useFlushSync:r=!0,directDomUpdates:a=!1,directDomUpdatesMode:t="transform",...s}){const e=z.useReducer(h=>h+1,0)[1],n=z.useRef({enabled:a,mode:t,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});n.current.enabled=a,n.current.mode=t;const l=z.useRef(!1),i=h=>{const d=n.current;if(!d.enabled||!d.container)return;const u=h.getTotalSize();if(u!==d.lastSize){d.lastSize=u;const S=h.options.horizontal?"width":"height";d.container.style[S]=`${u}px`}},o=h=>{const d=n.current;if(!d.enabled||!d.container)return;i(h);const u=!!h.options.horizontal,S=d.mode==="transform",p=u?"left":"top",v=h.options.scrollMargin,b=h.getVirtualItems();for(const f of b){const m=f.start-v,E=h.elementsCache.get(f.key);E&&d.lastPositions.get(E)!==m&&(d.lastPositions.set(E,m),S?E.style.transform=u?`translate3d(${m}px, 0, 0)`:`translate3d(0, ${m}px, 0)`:E.style[p]=`${m}px`)}},c={...s,onChange:(h,d)=>{var u;const S=n.current;let p=!0;if(S.enabled){o(h);const v=h.range,b=S.prevRange;p=!b||b.isScrolling!==h.isScrolling||b.startIndex!==(v==null?void 0:v.startIndex)||b.endIndex!==(v==null?void 0:v.endIndex),p&&(S.prevRange=v?{startIndex:v.startIndex,endIndex:v.endIndex,isScrolling:h.isScrolling}:null)}p&&(r&&d&&!l.current?B.flushSync(e):e()),(u=s.onChange)==null||u.call(s,h,d)}},[g]=z.useState(()=>{const h=new st(c),d=h.measureElement;return h.measureElement=u=>{l.current=!0;try{d(u)}finally{l.current=!1}},Object.assign(h,{containerRef:u=>{const S=n.current;if(S.container=u,S.lastSize=null,u&&S.enabled){const p=h.getTotalSize();S.lastSize=p;const v=h.options.horizontal?"width":"height";u.style[v]=`${p}px`}}})});return g.setOptions(c),D(()=>g._didMount(),[]),D(()=>(i(g),g._willUpdate())),D(()=>{o(g)}),g}function rt(r){return lt({observeElementRect:U,observeElementOffset:G,scrollToFn:tt,...r})}export{rt as u};
|
|
1
|
+
import{r as z,eQ as B}from"./index-B2JoVHek.js";function N(r){return typeof r=="object"?r.key:r}function H(r,a){const t=r.length;return new Proxy(r,{get(s,e,n){if(typeof e=="string"){const l=e.charCodeAt(0);if(l>=48&&l<=57){const i=+e;if(Number.isInteger(i)&&i>=0&&i<t){let o=s[i];if(typeof o!="object"){const c=a[i*2];o=s[i]={index:i,key:o,start:c,size:a[i*2+1],end:c+a[i*2+1],lane:0}}return o}}if(e==="length")return t}return Reflect.get(s,e,n)}})}function A(r,a,t){let s=t.initialDeps??[],e,n=!0;function l(){const i=r();return(i.length!==s.length||i.some((c,g)=>s[g]!==c))&&(s=i,e=a(...i),t!=null&&t.onChange&&!(n&&t.skipInitialOnChange)&&t.onChange(e),n=!1),e}return l.updateDeps=i=>{s=i},l}function k(r,a){if(r===void 0)throw new Error("Unexpected undefined");return r}const V=(r,a)=>Math.abs(r-a)<1.01,J=(r,a,t)=>{let s;return Object.assign(function(...e){r.clearTimeout(s),s=r.setTimeout(()=>a.apply(this,e),t)},{cancel:()=>{r.clearTimeout(s)}})};let R;const L=()=>{if(R!==void 0)return R;if(typeof navigator>"u")return R=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return R=!0;const r=navigator.maxTouchPoints;return R=navigator.platform==="MacIntel"&&r!==void 0&&r>0},K=r=>{const{offsetWidth:a,offsetHeight:t}=r;return{width:a,height:t}},$=r=>r,q=r=>{const a=Math.max(r.startIndex-r.overscan,0),s=Math.min(r.endIndex+r.overscan,r.count-1)-a+1,e=new Array(s);for(let n=0;n<s;n++)e[n]=a+n;return e},U=(r,a)=>{const t=r.scrollElement;if(!t)return;const s=r.targetWindow;if(!s)return;const e=l=>{const{width:i,height:o}=l;a({width:Math.round(i),height:Math.round(o)})};if(e(K(t)),!s.ResizeObserver)return()=>{};const n=new s.ResizeObserver(l=>{const i=()=>{const o=l[0];if(o!=null&&o.borderBoxSize){const c=o.borderBoxSize[0];if(c){e({width:c.inlineSize,height:c.blockSize});return}}e(K(t))};r.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()});return n.observe(t,{box:"border-box"}),()=>{n.unobserve(t)}},j={passive:!0},X=typeof window>"u"?!0:"onscrollend"in window,Q=(r,a,t)=>{const s=r.scrollElement;if(!s)return;const e=r.targetWindow;if(!e)return;const n=r.options.useScrollendEvent&&X;let l=0;const i=n?null:J(e,()=>a(t(s),!1),r.options.isScrollingResetDelay),o=h=>()=>{l=t(s),i==null||i(),a(l,h)},c=o(!0),g=o(!1);return s.addEventListener("scroll",c,j),n&&s.addEventListener("scrollend",g,j),()=>{s.removeEventListener("scroll",c),n&&s.removeEventListener("scrollend",g),i==null||i.cancel()}},G=(r,a)=>Q(r,a,t=>{const{horizontal:s,isRtl:e}=r.options;return s?t.scrollLeft*(e&&-1||1):t.scrollTop}),Y=(r,a,t)=>{if(t.options.useCachedMeasurements){const s=t.indexFromElement(r),e=t.options.getItemKey(s);return t.itemSizeCache.get(e)??t.options.estimateSize(s)}if(a!=null&&a.borderBoxSize){const s=a.borderBoxSize[0];if(s)return Math.round(s[t.options.horizontal?"inlineSize":"blockSize"])}if(!a){const s=t.indexFromElement(r),e=t.options.getItemKey(s),n=t.itemSizeCache.get(e);if(n!==void 0)return n}return r[t.options.horizontal?"offsetWidth":"offsetHeight"]},Z=(r,{adjustments:a=0,behavior:t},s)=>{var e,n;(n=(e=s.scrollElement)==null?void 0:e.scrollTo)==null||n.call(e,{[s.options.horizontal?"left":"top"]:r+a,behavior:t})},tt=Z;function et(r,a,t,s){if(a===0)return!1;const e=s(0),n=new Set;let l=0;for(;l<r;){const o=t(l);if(o===e)break;n.add(o),l++}const i=r-l;if(i===0||i>=a)return!1;for(let o=0;o<i;o++)if(s(o)!==t(l+o))return!1;for(let o=i;o<a;o++)if(n.has(s(o)))return!1;return!0}class st{constructor(a){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this._clampedAdjustment=null,this.elementsCache=new Map,this.now=()=>{var t,s,e;return((e=(s=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:s.now)==null?void 0:e.call(s))??Date.now()},this.observer=(()=>{let t=null;const s=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(e=>{e.forEach(n=>{const l=()=>{const i=n.target,o=this.indexFromElement(i);if(!i.isConnected){this.observer.unobserve(i);for(const[c,g]of this.elementsCache)if(g===i){this.elementsCache.delete(c);break}return}this.isIndexInRange(o)&&this.shouldMeasureDuringScroll(o)&&this.resizeItem(o,this.options.measureElement(i,n,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(l):l()})}));return{disconnect:()=>{var e;(e=s())==null||e.disconnect(),t=null},observe:e=>{var n;return(n=s())==null?void 0:n.observe(e,{box:"border-box"})},unobserve:e=>{var n;return(n=s())==null?void 0:n.unobserve(e)}}})(),this.range=null,this.setOptions=t=>{var s;const e={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:$,rangeExtractor:q,onChange:()=>{},measureElement:Y,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const h in t){const d=t[h];d!==void 0&&(e[h]=d)}const n=this.options;let l=null,i=null,o=!1;if(n!==void 0&&n.enabled&&e.enabled&&e.anchorTo==="end"&&this.scrollElement!==null){const h=n.count,d=e.count,u=this.getMeasurements(),S=((s=this._singleLaneMeasurements)==null?void 0:s.items)??u,p=E=>N(S[E]),v=h>0?p(0):null,b=h>0?p(h-1):null;if(d!==h||h>0&&d>0&&(e.getItemKey(0)!==v||e.getItemKey(d-1)!==b)){o=!0;const E=h>0?this.getVirtualItemForOffset(this.getScrollOffset())??u[0]:null;E&&(l=[E.key,this.getScrollOffset()-E.start]);const _=e.followOnAppend===!0?"auto":e.followOnAppend||null;_&&d>0&&this.isAtEnd(n.scrollEndThreshold)&&(h===0||e.getItemKey(d-1)!==b)&&(d>h||et(h,d,p,e.getItemKey))&&(i=_)}}this.options=e,o&&(this.pendingMin=0,this.itemSizeCacheVersion++);let c=!1,g=0;if(l&&this.scrollOffset!==null){const[h,d]=l,u=this.getMeasurements(),{count:S,getItemKey:p}=this.options;let v=0;for(;v<S&&p(v)!==h;)v++;if(v<S){const b=u[v];if(b){const f=Math.max(0,b.start+d);!i&&f!==this.scrollOffset&&(g=f-this.scrollOffset,this.scrollOffset=f,c=!0)}}}(c||i)&&(this.pendingScrollAnchor=[c?l[0]:null,c?l[1]:0,i,g])},this.notify=t=>{var s,e;(e=(s=this.options).onChange)==null||e.call(s,this,t)},this.maybeNotify=A(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.isScrolling=!1,this.scrollDirection=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._clampedAdjustment=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t,s;const e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(l=>{this.observer.observe(l)}),this.unsubs.push(this.options.observeElementRect(this,l=>{this.scrollRect=l,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(l,i)=>{if(i&&this._intendedScrollOffset===null&&l===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(l-this._intendedScrollOffset)<1.5&&(l=this._intendedScrollOffset),this._intendedScrollOffset=null,this._clampedAdjustment!==null&&Math.abs(l-this._clampedAdjustment.maxAtWrite)>=1.5&&(this._clampedAdjustment=null),this.scrollAdjustments=0;const o=this.getScrollOffset();this.scrollDirection=i?o===l?this.scrollDirection:o<l?"forward":"backward":null,this.scrollOffset=l,this.isScrolling=i,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const l=this.scrollElement,i=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},o=()=>{this._iosTouching=!1,!(!L()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};l.addEventListener("touchstart",i,j),l.addEventListener("touchend",o,j),this.unsubs.push(()=>{l.removeEventListener("touchstart",i),l.removeEventListener("touchend",o),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const n=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,n&&this.scrollElement&&this.options.enabled){const[l,i,o,c]=n;l!==null&&!o&&(L()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?c!==0&&(this._iosDeferredAdjustment+=c):((s=this.scrollState)==null?void 0:s.behavior)==="smooth"&&!V(this.getScrollOffset()-c,this.scrollState.lastTargetOffset)||this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),o&&this.scrollToEnd({behavior:o})}this._retryClampedAdjustment()},this._retryClampedAdjustment=()=>{if(this._clampedAdjustment===null||!this.scrollElement||!this.options.enabled)return;const{target:t,maxAtWrite:s}=this._clampedAdjustment,e=this.getMaxScrollOffset();e>s+.5&&(this._clampedAdjustment=t>e+.5?{target:t,maxAtWrite:e}:null,this._scrollToOffset(t,{adjustments:void 0,behavior:void 0}))},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const t=this.getScrollOffset(),s=this.getMaxScrollOffset();if(t<0||t>s)return;if(this._iosDeferredAdjustment<0&&t>=s-1){this._iosDeferredAdjustment=0;return}const e=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=e,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=A(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(t,s,e,n,l,i,o,c)=>(this.prevLanes!==void 0&&this.prevLanes!==i&&(this.lanesChangedFlag=!0),this.prevLanes=i,this.pendingMin=null,{count:t,paddingStart:s,scrollMargin:e,getItemKey:n,enabled:l,lanes:i,laneAssignmentMode:o,gap:c}),{key:!1}),this.isIndexInRange=t=>t>=0&&t<this.options.count,this.getMeasurements=A(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:s,scrollMargin:e,getItemKey:n,enabled:l,lanes:i,laneAssignmentMode:o,gap:c},g)=>{var h;const d=this.itemSizeCache;if(!l)return this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(const f of this.laneAssignments.keys())f>=t&&this.laneAssignments.delete(f);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(f=>{this.itemSizeCache.set(f.key,f.size)}));const u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),i===1){const f=t*2;let m=(h=this._singleLaneMeasurements)==null?void 0:h.flat;if(!m||m.length<f){const O=new Float64Array(f);m&&u>0&&O.set(m.subarray(0,u*2)),m=O}const E=u===0?new Array(t):this._singleLaneMeasurements.items.slice();let _;if(u===0)_=s+e;else{const O=u-1;_=m[O*2]+m[O*2+1]+c}for(let O=u;O<t;O++){const M=n(O);E[O]=M;const T=d.get(M),w=typeof T=="number"?T:this.options.estimateSize(O);m[O*2]=_,m[O*2+1]=w,_+=w+c}this._singleLaneMeasurements={flat:m,items:E};const x=H(E,m);return this.measurementsCache=x,x}const S=this.measurementsCache.slice(0,u),p=new Array(i).fill(void 0),v=new Float64Array(i);let b=0;for(let f=0;f<u;f++){const m=S[f];m&&(p[m.lane]===void 0&&b++,p[m.lane]=f,v[m.lane]=m.end)}for(let f=u;f<t;f++){const m=n(f),E=this.laneAssignments.get(f);let _,x;const O=o==="estimate"||d.has(m);if(E!==void 0&&this.options.lanes>1){_=E;const C=p[_],I=C!==void 0?S[C]:void 0;x=I?I.end+c:s+e}else if(b===i){let C=0,I=v[0],W=p[0];for(let y=1;y<i;y++){const F=v[y];(F<I||F===I&&p[y]<W)&&(C=y,I=F,W=p[y])}_=C,x=I+c,O&&this.laneAssignments.set(f,_)}else _=f%this.options.lanes,x=s+e,O&&this.laneAssignments.set(f,_);const M=d.get(m),T=typeof M=="number"?M:this.options.estimateSize(f),w=x+T;S[f]={index:f,start:x,size:T,end:w,key:m,lane:_},p[_]===void 0&&b++,p[_]=f,v[_]=w}return this.measurementsCache=S,S},{key:!1,debug:()=>this.options.debug}),this.calculateRange=A(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,s,e,n)=>t.length===0||s===0?(this.range=null,null):(this.range=it(t,s,e,n,n===1&&this._singleLaneMeasurements!==null?this._singleLaneMeasurements.flat:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=A(()=>{let t=null,s=null;const e=this.calculateRange();return e&&(t=e.startIndex,s=e.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,s]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,s]},(t,s,e,n,l)=>n===null||l===null?[]:t({startIndex:n,endIndex:l,overscan:s,count:e}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{const s=this.options.indexAttribute,e=t.getAttribute(s);return e?parseInt(e,10):(console.warn(`Missing attribute name '${s}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var s;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const e=this.scrollState.index??((s=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:s.index);if(e!==void 0&&this.range){const n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),l=Math.max(0,e-n),i=Math.min(this.options.count-1,e+n);return t>=l&&t<=i}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((l,i)=>{l.isConnected||(this.observer.unobserve(l),this.elementsCache.delete(i))});return}const s=this.indexFromElement(t);if(!this.isIndexInRange(s))return;const e=this.options.getItemKey(s),n=this.elementsCache.get(e);n!==t&&(n&&this.observer.unobserve(n),this.observer.observe(t),this.elementsCache.set(e,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(s)&&this.resizeItem(s,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,s)=>{var e,n,l;if(!this.isIndexInRange(t))return;let i,o,c;const g=(e=this._singleLaneMeasurements)==null?void 0:e.flat;if(this.options.lanes===1&&g!=null)c=this.options.getItemKey(t),o=g[t*2],i=g[t*2+1];else{const u=this.measurementsCache[t];if(!u)return;c=u.key,o=u.start,i=u.size}const h=this.itemSizeCache.get(c)??i,d=s-h;if(d!==0){const u=this.options.anchorTo==="end"&&((n=this.scrollState)==null?void 0:n.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,S=u?this.getTotalSize():0,p=this.getScrollOffset()+this.scrollAdjustments,b=!this.itemSizeCache.has(c)?o<p:o+h<=p&&this.scrollDirection!=="backward",f=((l=this.scrollState)==null?void 0:l.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:c,start:o,size:i,end:o+i,lane:0},d,this):b);(this.pendingMin===null||t<this.pendingMin)&&(this.pendingMin=t),this.itemSizeCache.set(c,s),this.itemSizeCacheVersion++;let m=!1;u?m=this.applyScrollAdjustment(this.getTotalSize()-S):f&&(m=this.applyScrollAdjustment(d)),this.notify(m),this._retryClampedAdjustment()}},this.getVirtualItems=A(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,s)=>{const e=[];for(let n=0,l=t.length;n<l;n++){const i=t[n],o=s[i];e.push(o)}return e},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=t=>{var s;const e=this.getMeasurements();if(e.length===0)return;const n=(s=this._singleLaneMeasurements)==null?void 0:s.flat,l=this.options.lanes===1&&n!=null,i=P(0,e.length-1,l?o=>n[o*2]:o=>k(e[o]).start,t);return k(e[i])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,s,e=0)=>{if(!this.scrollElement)return 0;const n=this.getSize(),l=this.getScrollOffset();s==="auto"&&(s=t>=l+n?"end":"start"),s==="center"?t+=(e-n)/2:s==="end"&&(t-=n);const i=this.getMaxScrollOffset();return Math.max(Math.min(i,t),0)},this.getOffsetForIndex=(t,s="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const e=this.getSize(),n=this.getScrollOffset(),l=this.measurementsCache[t];if(!l)return;if(s==="auto")if(l.end>=n+e-this.options.scrollPaddingEnd)s="end";else if(l.start<=n+this.options.scrollPaddingStart)s="start";else return[n,s];if(s==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),s];const i=s==="end"?l.end+this.options.scrollPaddingEnd:l.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(i,s,l.size),s]},this.scrollToOffset=(t,{align:s="start",behavior:e="auto"}={})=>{this._iosDeferredAdjustment=0;const n=this.getOffsetForAlignment(t,s),l=this.now();this.scrollState={index:null,align:s,behavior:e,startedAt:l,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:s="auto",behavior:e="auto"}={})=>{this._iosDeferredAdjustment=0,t=Math.max(0,Math.min(t,this.options.count-1));const n=this.getOffsetForIndex(t,s);if(!n)return;const[l,i]=n,o=this.now();this.scrollState={index:t,align:i,behavior:e,startedAt:o,lastTargetOffset:l,stableFrames:0},this._scrollToOffset(l,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:s="auto"}={})=>{const e=this.getScrollOffset()+t,n=this.now();this.scrollState={index:null,align:"start",behavior:s,startedAt:n,lastTargetOffset:e,stableFrames:0},this._scrollToOffset(e,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t,s;const e=this.getMeasurements();let n;if(e.length===0)n=this.options.paddingStart;else if(this.options.lanes===1){const l=e.length-1,i=(t=this._singleLaneMeasurements)==null?void 0:t.flat;i!=null?n=i[l*2]+i[l*2+1]:n=((s=e[l])==null?void 0:s.end)??0}else{const l=Array(this.options.lanes).fill(null);let i=e.length-1;for(;i>=0&&l.some(o=>o===null);){const o=e[i];l[o.lane]===null&&(l[o.lane]=o.end),i--}n=Math.max(...l.filter(o=>o!==null))}return Math.max(n-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const t=[];if(this.itemSizeCache.size===0)return t;const s=this.getMeasurements();for(const e of s)e&&this.itemSizeCache.has(e.key)&&t.push({index:e.index,key:e.key,start:e.start,size:e.size,end:e.end,lane:e.lane});return t},this._scrollToOffset=(t,{adjustments:s,behavior:e})=>{this._intendedScrollOffset=t+(s??0),this.options.scrollToFn(t,{behavior:e,adjustments:s},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(a)}applyScrollAdjustment(a,t){if(a===0)return!1;if(L()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded))return this._iosDeferredAdjustment+=a,!1;{const s=this.getScrollOffset()+this.scrollAdjustments+a,e=this.scrollElement,n=e!==null&&("scrollHeight"in e||"document"in e)?this.getMaxScrollOffset():null;return this._clampedAdjustment=n!==null&&s>n+.5?{target:s,maxAtWrite:n}:null,this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=a,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0}}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const s=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,e=s?s[0]:this.scrollState.lastTargetOffset,n=1,l=e!==this.scrollState.lastTargetOffset;if(!l&&V(e,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=n){this.getScrollOffset()!==e&&this._scrollToOffset(e,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,l){const i=this.getSize()||600,o=Math.abs(e-this.getScrollOffset()),c=this.scrollState.behavior==="smooth"&&o>i;this.scrollState.lastTargetOffset=e,c||(this.scrollState.behavior="auto"),this._scrollToOffset(e,{adjustments:void 0,behavior:c?"smooth":"auto"})}this.scheduleScrollReconcile()}}const P=(r,a,t,s)=>{for(;r<=a;){const e=(r+a)/2|0,n=t(e);if(n<s)r=e+1;else if(n>s)a=e-1;else return e}return r>0?r-1:0};function nt(r,a,t){let s=0;for(;s<=a;){const e=(s+a)/2|0,n=r[e*2];if(n<t)s=e+1;else if(n>t)a=e-1;else return e}return s>0?s-1:0}function it(r,a,t,s,e){const n=r.length-1;if(r.length<=s)return{startIndex:0,endIndex:n};if(s===1&&e!==null){const c=nt(e,n,t);let g=c;const h=t+a;for(;g<n&&e[g*2]+e[g*2+1]<h;)g++;return{startIndex:c,endIndex:g}}let i=P(0,n,c=>r[c].start,t),o=i;if(s===1)for(;o<n&&r[o].end<t+a;)o++;else if(s>1){const c=Array(s).fill(0);for(;o<n&&c.some(h=>h<t+a);){const h=r[o];c[h.lane]=h.end,o++}const g=Array(s).fill(t+a);for(;i>=0&&g.some(h=>h>=t);){const h=r[i];g[h.lane]=h.start,i--}i=Math.max(0,i-i%s),o=Math.min(n,o+(s-1-o%s))}return{startIndex:i,endIndex:o}}const D=typeof document<"u"?z.useLayoutEffect:z.useEffect;function lt({useFlushSync:r=!0,directDomUpdates:a=!1,directDomUpdatesMode:t="transform",...s}){const e=z.useReducer(h=>h+1,0)[1],n=z.useRef({enabled:a,mode:t,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});n.current.enabled=a,n.current.mode=t;const l=z.useRef(!1),i=h=>{const d=n.current;if(!d.enabled||!d.container)return;const u=h.getTotalSize();if(u!==d.lastSize){d.lastSize=u;const S=h.options.horizontal?"width":"height";d.container.style[S]=`${u}px`}},o=h=>{const d=n.current;if(!d.enabled||!d.container)return;i(h);const u=!!h.options.horizontal,S=d.mode==="transform",p=u?"left":"top",v=h.options.scrollMargin,b=h.getVirtualItems();for(const f of b){const m=f.start-v,E=h.elementsCache.get(f.key);E&&d.lastPositions.get(E)!==m&&(d.lastPositions.set(E,m),S?E.style.transform=u?`translate3d(${m}px, 0, 0)`:`translate3d(0, ${m}px, 0)`:E.style[p]=`${m}px`)}},c={...s,onChange:(h,d)=>{var u;const S=n.current;let p=!0;if(S.enabled){o(h);const v=h.range,b=S.prevRange;p=!b||b.isScrolling!==h.isScrolling||b.startIndex!==(v==null?void 0:v.startIndex)||b.endIndex!==(v==null?void 0:v.endIndex),p&&(S.prevRange=v?{startIndex:v.startIndex,endIndex:v.endIndex,isScrolling:h.isScrolling}:null)}p&&(r&&d&&!l.current?B.flushSync(e):e()),(u=s.onChange)==null||u.call(s,h,d)}},[g]=z.useState(()=>{const h=new st(c),d=h.measureElement;return h.measureElement=u=>{l.current=!0;try{d(u)}finally{l.current=!1}},Object.assign(h,{containerRef:u=>{const S=n.current;if(S.container=u,S.lastSize=null,u&&S.enabled){const p=h.getTotalSize();S.lastSize=p;const v=h.options.horizontal?"width":"height";u.style[v]=`${p}px`}}})});return g.setOptions(c),D(()=>g._didMount(),[]),D(()=>(i(g),g._willUpdate())),D(()=>{o(g)}),g}function rt(r){return lt({observeElementRect:U,observeElementOffset:G,scrollToFn:tt,...r})}export{rt as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var tt=Object.defineProperty;var nt=(e,n,s)=>n in e?tt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[n]=s;var Y=(e,n,s)=>nt(e,typeof n!="symbol"?n+"":n,s);import{O as A,a5 as D,
|
|
1
|
+
var tt=Object.defineProperty;var nt=(e,n,s)=>n in e?tt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[n]=s;var Y=(e,n,s)=>nt(e,typeof n!="symbol"?n+"":n,s);import{O as A,a5 as D,kD as st,r as h,aN as at,kE as ue,aL as rt,j as t,ir as W,kF as ot,g as Z,kG as ee,kH as te,G as O,kI as it,ka as lt,X as ct,kJ as dt,B as b,ej as ut,_ as L,aS as mt,kK as ht,a6 as ne,a7 as se,a8 as K,a2 as ye,eH as pt,eI as ft,x as xt,by as be,bz as we,bA as je,bC as ke,ba as gt,f_ as vt,kL as yt,kM as bt,kg as wt,kN as jt,kO as kt,kP as me,J as Nt,hb as Ne,a_ as k,gH as Ct,gN as Rt,kQ as Et,dR as he,kR as Tt,kS as At,kT as Dt}from"./index-B2JoVHek.js";import{u as _t}from"./use-roving-tab-list-LZku4K5R.js";import{F as Ce,i as It,c as St,d as pe,e as Ot,R as zt,C as Re}from"./use-session-canvas-Bub7vCaj.js";import{f as vs,g as ys,h as bs,b as ws,j as js}from"./use-session-canvas-Bub7vCaj.js";import{A as Mt}from"./McpAppFrame-IfamHBcy.js";import{F as Ut}from"./file-DZ6-r1A3.js";import{F as Ee}from"./file-text-4-Vc22J-.js";import{R as Lt}from"./rotate-cw-BTqPAMgP.js";import{a as $t}from"./use-room-follow-claim-Ch6ZoOAv.js";import{D as F}from"./detail-row-DBa1uo_y.js";import{R as Ft}from"./rotate-ccw-clock-C1SBdbZP.js";import{c as Pt,F as Ht}from"./room-files-source-C32w3dXr.js";import"./query-keys-DeYqUDia.js";import"./index.esm-gt8tvZ7J.js";import"./WidgetErrorCard-D14BNvfm.js";import"./index-Bocv39Dy.js";import"./progress-CwpnobNW.js";import"./markdown-content-FcvkqTTS.js";import"./table-COZ3E1UU.js";import"./zap-C-pr1sst.js";import"./server-BCFl_ur3.js";import"./package-DpqGENzU.js";import"./heart-B7rSSNjF.js";import"./git-branch-CzV_Mp0H.js";import"./more-details-D9_Bn2GL.js";import"./copy-button-BHHQAtAH.js";import"./file-exclamation-point-CR6qeV6m.js";/**
|
|
2
2
|
* @license lucide-react v1.48.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -40,4 +40,4 @@ var tt=Object.defineProperty;var nt=(e,n,s)=>n in e?tt(e,n,{enumerable:!0,config
|
|
|
40
40
|
* See the LICENSE file in the root directory of this source tree.
|
|
41
41
|
*/const Me={name:"waypoints",size:24,node:[["path",{d:"m10.586 5.414-5.172 5.172",key:"4mc350"}],["path",{d:"m18.586 13.414-5.172 5.172",key:"8c96vv"}],["path",{d:"M6 12h12",key:"8npq4p"}],["circle",{cx:"12",cy:"20",r:"2",key:"144qzu"}],["circle",{cx:"12",cy:"4",r:"2",key:"muu5ef"}],["circle",{cx:"20",cy:"12",r:"2",key:"1xzzfp"}],["circle",{cx:"4",cy:"12",r:"2",key:"1hvhnz"}]]};Me.node;const qt=A(Me);function Qt(e){const n=D(),{roomId:s,viewerAuthorId:r,documentId:l,url:m,readScrollY:o,subscribe:i}=e,a=st(s,r),g=h.useRef({roomId:s,documentId:l,url:m,readScrollY:o});g.current={roomId:s,documentId:l,url:m,readScrollY:o};const p=h.useRef(null),d=h.useRef(0);h.useEffect(()=>{if(!a||s===null||l===null)return;const x=()=>{p.current=null,d.current=Date.now();const w=g.current;if(w.roomId===null||w.documentId===null)return;const E=w.roomId,I={documentId:w.documentId,...w.url!==void 0?{url:w.url}:{},...w.readScrollY?{scrollY:Math.max(0,Math.round(w.readScrollY()))}:{}};n.publishRoomView(E,I).then(z=>{!z.followed&&r!==null&&rt.getState().noteNobodyFollowing(E,r)}).catch(()=>{})},y=()=>{if(p.current!==null)return;const w=Date.now()-d.current;if(w>=ue){x();return}p.current=setTimeout(x,ue-w)};y();const c=i==null?void 0:i(y),R=setInterval(y,at);return()=>{clearInterval(R),c==null||c()}},[n,a,s,r,l,m,i]),h.useEffect(()=>()=>{p.current!==null&&clearTimeout(p.current)},[])}const Jt={url:W,markdown:Ee,json:De,image:Vt,pdf:Ut,widget:ot,mcp_app:Mt,file:Ce,model3d:Gt,audio:Bt,video:Wt,csv:Yt,browser:W,diff:Kt},Xt="after:absolute after:inset-x-0 after:-inset-y-2 md:after:hidden";function ae(e){return e==="browser"?"browser-panel":"canvas-panel"}const Zt={canvas:"Open canvas documents",browser:"Open browser pages"};function re(e){return`canvas-tab-${e}`}const en=3;function tn(e){const n=e.map(r=>r.displayName);if(n.length===0)return null;if(n.length===1)return`${n[0]} is looking at this.`;if(n.length===2)return`${n[0]} and ${n[1]} are looking at this.`;const s=n.length-2;return`${n[0]}, ${n[1]} and ${s} ${s===1?"other":"others"} are looking at this.`}function nn({watchers:e}){const n=tn(e);if(n===null)return null;const s=e.slice(0,en),r=e.length-s.length;return t.jsxs(t.Fragment,{children:[t.jsxs("span",{"data-slot":"canvas-tab-watchers","aria-hidden":!0,className:"flex shrink-0 -space-x-1",children:[s.map(l=>t.jsx(Z,{size:"xs",className:"ring-background text-3xs size-3.5 ring-1",kind:l.kind,color:l.color??te(l.id),emoji:l.emoji,imageUrl:l.imageUrl,badge:null,fallback:ee(l.displayName)},l.id)),r>0&&t.jsxs("span",{className:"bg-muted text-muted-foreground ring-background text-3xs flex size-3.5 shrink-0 items-center justify-center rounded-full ring-1",children:["+",r]})]}),t.jsx("span",{className:"sr-only",children:n})]})}function Ue({view:e,documents:n,activeDocumentId:s,onActivate:r,onClose:l,onPin:m}){const o=ae(e),{getTabProps:i}=_t({orderedIds:n.map(a=>a.id),activeId:s,onActivate:a=>r(a),onClose:a=>l(a),getFallbackFocus:()=>document.getElementById(o)});return n.length===0?null:t.jsx("div",{role:"tablist","aria-label":Zt[e],className:"flex items-stretch gap-1 overflow-x-auto border-b px-2 py-1",children:n.map(a=>{const g=Jt[a.contentType],p=a.id===s,d=a.author;return t.jsxs("div",{role:"presentation",className:"group relative flex shrink-0",children:[t.jsxs("button",{type:"button",role:"tab","aria-selected":p,id:re(a.id),"aria-controls":p?o:void 0,...i(a.id),className:O("focus-ring flex items-center gap-1.5 rounded-md py-3 pl-2 text-xs transition-colors md:py-1",m?"pr-12":"pr-7",p?"bg-muted text-foreground":"text-muted-foreground hover:bg-muted/60 hover:text-foreground"),children:[d&&t.jsx(Z,{"aria-hidden":!0,size:"xs",className:"text-3xs size-3.5 shrink-0",kind:d.kind,color:d.color??te(d.id),emoji:d.emoji,imageUrl:d.imageUrl,badge:null,fallback:ee(d.displayName)}),t.jsx(g,{className:"size-3.5 shrink-0"}),t.jsx("span",{className:"max-w-40 truncate font-medium",children:a.sourceLabel}),a.watchers&&a.watchers.length>0&&t.jsx(nn,{watchers:a.watchers}),a.unread&&t.jsx("span",{"data-slot":"canvas-tab-unread","aria-hidden":!0,className:"bg-primary size-1.5 shrink-0 rounded-full"})]}),m&&t.jsx("button",{type:"button",tabIndex:-1,onClick:()=>m(a.id,!a.pinned),"aria-label":a.pinned?`Unpin ${a.sourceLabel}`:`Pin ${a.sourceLabel}`,className:O("focus-ring hover:bg-background/80 absolute top-1/2 right-6 -translate-y-1/2 rounded-sm p-1.5 transition-opacity md:p-0.5",a.pinned?"opacity-100":"opacity-0 group-hover:opacity-60"),children:a.pinned?t.jsx(it,{className:"size-3"}):t.jsx(lt,{className:"size-3"})}),t.jsx("button",{type:"button",tabIndex:-1,onClick:()=>l(a.id),"aria-label":`Close ${a.sourceLabel}`,className:O("focus-ring hover:bg-background/80 absolute top-1/2 right-1 -translate-y-1/2 rounded-sm p-1.5 opacity-60 transition-opacity group-hover:opacity-100 md:p-0.5",Xt),children:t.jsx(ct,{className:"size-3"})})]},a.id)})})}function sn({error:e,onRetry:n}){const s=dt(e);return t.jsxs("div",{className:"text-muted-foreground flex h-full flex-col items-center justify-center gap-3 p-8 text-center",children:[t.jsx("p",{children:"This tab hit a problem"}),s?t.jsxs(t.Fragment,{children:[t.jsx("p",{className:"text-sm",children:"The app may have updated. Reloading usually fixes it."}),t.jsx(b,{type:"button",size:"sm",onClick:()=>window.location.reload(),children:"Reload DorkOS"})]}):t.jsxs(b,{type:"button",variant:"outline",size:"sm",onClick:n,children:[t.jsx(Lt,{className:"size-4"}),"Try again"]})]})}class Le extends h.Component{constructor(){super(...arguments);Y(this,"state",{error:null,retryKey:0});Y(this,"handleRetry",()=>{this.setState(s=>({error:null,retryKey:s.retryKey+1}))})}static getDerivedStateFromError(s){return{error:s}}componentDidCatch(s,r){console.error(`[Canvas] Document viewer error (${this.props.documentId}):`,s,r)}render(){const{error:s,retryKey:r}=this.state;return s?t.jsx(sn,{error:s,onRetry:this.handleRetry}):t.jsx(h.Fragment,{children:this.props.children},r)}}function an({onReload:e,onKeepMine:n}){return t.jsxs("div",{role:"status",className:"border-border/60 bg-muted/40 mx-2 mt-2 space-y-2 rounded-md border px-3 py-2 text-sm",children:[t.jsx("p",{children:"Your agent changed this while you were editing. Your edit is safe."}),t.jsxs("div",{className:"flex flex-wrap gap-2",children:[t.jsx(b,{type:"button",variant:"outline",size:"sm",onClick:e,children:"Reload"}),t.jsx(b,{type:"button",variant:"ghost",size:"sm",onClick:n,children:"Keep mine"})]}),t.jsx("p",{className:"text-muted-foreground text-xs",children:"Reload shows its version and ends your edit. Keep mine discards it."})]})}const rn={canvas:{heading:"A blank canvas",blurb:"Your agent can show documents, data and files here.",actions:[{icon:Ee,label:"Markdown",description:"Render a document",action:()=>({type:"markdown",content:`# Untitled
|
|
42
42
|
|
|
43
|
-
Start writing…`,title:"Document"})},{icon:De,label:"JSON",description:"Inspect structured data",action:()=>({type:"json",data:{message:"Your data here"},title:"JSON data"})}]},browser:{heading:"No page open",blurb:"This tab shows web pages: your files, dev servers, or sites from your agent.",actions:[{icon:W,label:"Web page",description:"Open a page, then type any address",action:()=>({type:"url",url:ht.site,title:"Web Page"})}]}};function q(e,n,s,r){return e.split("").reduce((m,o)=>m+o.charCodeAt(0),0)*(n+1)*7%(r-s)+s}function $e({view:e,onAction:n}){const s=ut(),r=h.useId(),l=rn[e],m=h.useMemo(()=>Array.from({length:6},(o,i)=>({x:q(r,i*3,10,90),y:q(r,i*3+1,10,80),size:q(r,i*3+2,24,56),delay:i*.4})),[r]);return t.jsxs("div",{className:"relative flex h-full flex-col items-center justify-center overflow-hidden px-6",children:[!s&&m.map((o,i)=>t.jsx(L.div,{className:"border-border/40 absolute rounded-lg border",style:{left:`${o.x}%`,top:`${o.y}%`,width:o.size,height:o.size},initial:{opacity:0,scale:.6,rotate:-10},animate:{opacity:[0,.15,.08,.15],scale:[.6,1,.9,1],rotate:[-10,0,5,0]},transition:{duration:8,delay:o.delay,repeat:1/0,repeatType:"reverse",ease:"easeInOut"}},i)),t.jsxs(L.div,{className:"relative z-10 flex max-w-sm flex-col items-center gap-6 text-center",initial:s?!1:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,ease:"easeOut"},children:[t.jsx(L.div,{className:"bg-muted/50 text-muted-foreground flex size-14 items-center justify-center rounded-2xl",initial:s?!1:{opacity:0,scale:.8},animate:{opacity:1,scale:1},transition:{duration:.3,delay:.1},children:e==="browser"?t.jsx(W,{className:"size-7"}):t.jsx(mt,{className:"size-7"})}),t.jsxs("div",{className:"space-y-2",children:[t.jsx("h2",{className:"text-lg font-semibold tracking-tight",children:l.heading}),t.jsxs("p",{className:"text-muted-foreground text-sm leading-relaxed",children:[l.blurb,t.jsx("br",{}),"Or pick a starting point below."]})]}),t.jsx(L.div,{className:"mt-2 flex w-full flex-col gap-2",initial:"hidden",animate:"visible",variants:s?{}:{visible:{transition:{staggerChildren:.08,delayChildren:.25}}},children:l.actions.map(({icon:o,label:i,description:a,action:g})=>t.jsxs(L.button,{variants:s?{}:{hidden:{opacity:0,y:8},visible:{opacity:1,y:0}},transition:{duration:.25},className:"border-border hover:bg-accent/50 flex items-center gap-3 rounded-lg border px-4 py-3 text-left transition-colors",onClick:()=>n(g()),children:[t.jsx(o,{className:"text-muted-foreground size-4 shrink-0"}),t.jsxs("div",{className:"min-w-0",children:[t.jsx("span",{className:"text-sm font-medium",children:i}),t.jsx("span",{className:"text-muted-foreground ml-2 text-xs",children:a})]})]},i))})]})]})}const Fe=[{value:"hour",label:"1 hour",ms:36e5},{value:"day",label:"1 day",ms:864e5},{value:"week",label:"1 week",ms:6048e5}];function fe(e,n=Date.now()){const s=Fe.find(r=>r.value===e).ms;return new Date(Math.ceil((n+s)/6e4)*6e4).toISOString()}const on=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function B(e){return on.format(new Date(e))}function $(e){switch(e.kind){case"log":return"Kept on this document";case"room":return e.agentName?`To ${e.agentName} in this room`:"To this room";case"owner":return e.agentName?`To ${e.agentName}`:"To the agent that opened this";case"agent":return e.agentName?`To ${e.agentName}`:"To an agent that’s gone"}}const ln={no_grant:"Off",granted:"On",waiting:"Waiting for you",suspended:"Paused",revoked:"Turned off",expired:"Ended"};function Pe(e){return ln[e]}function cn(e){const n=e.grant;switch(e.state){case"granted":return n!=null&&n.expiresAt?`Until ${B(n.expiresAt)}`:"On";case"waiting":return"An agent asked for this route.";case"suspended":return"The route or its app changed. Allow it again.";case"revoked":return n!=null&&n.revokedAt?`Turned off ${B(n.revokedAt)}`:"Turned off";case"expired":return n!=null&&n.expiresAt?`Ended ${B(n.expiresAt)}`:"Ended";case"no_grant":return e.needsPerson?"Needs your approval to start work.":"Off until someone allows it."}}function He(e){const n=`${e.turnsPerHour} ${e.turnsPerHour===1?"turn":"turns"} an hour`,s=`${e.eventsPerMinute} ${e.eventsPerMinute===1?"event":"events"} a minute`;return`${n} · ${s}`}function Ge(e){return`${Pe(e.state)}: ${$(e.destination)}`}function dn(e){const n=e==null?void 0:e.code;return typeof n=="string"&&mn.has(n)}function un(e){return{on:e.filter(n=>n.state==="granted").length,waiting:e.filter(n=>n.state==="waiting").length}}const P="This route changed. Review it again.",mn=new Set(["ROUTE_CHANGED","GRANT_BINDING_CHANGED","DECLARATION_HASH_MISMATCH","MANIFEST_CHANGED"]),H="Only a signed-in person can change routes.",xe={ROUTE_CHANGED:P,GRANT_BINDING_CHANGED:P,DECLARATION_HASH_MISMATCH:P,MANIFEST_CHANGED:P,ROUTE_UNDECLARED:"This document no longer declares that route.",ROUTE_ALREADY_ON:"This route is already on.",ROUTE_ALREADY_GRANTED:"This route is already on.",APPROVAL_NOT_RECORDED:"Couldn’t record the approval. Nothing was allowed.",TARGET_UNAVAILABLE:"The agent for this route isn’t available.",TARGET_IDENTITY_MISMATCH:"The agent for this route isn’t available.",TARGET_SCOPE_MISMATCH:"The agent for this route isn’t available.",ROOM_ROUTE_UNAVAILABLE:"This room can’t take events right now.",ORIGIN_AUTHORITY_LOST:"The agent that opened this isn’t available.",GRANT_EXPIRED:"That end time has passed. Pick another.",AGENT_CANNOT_DECIDE:H,REQUESTER_CANNOT_DECIDE:H,PERSON_REQUIRED:H,operator_cookie_required:H,AUTH_REQUIRED:"Sign in to change routes."};function Q(e){const n=e==null?void 0:e.code;return typeof n=="string"&&xe[n]?xe[n]:e instanceof TypeError?"Couldn’t reach DorkOS. Check your connection.":"Couldn’t change this route. Try again."}const J=e=>["canvas-doc-routes",e];function hn(e,n){const s=D();return ne({queryKey:J(e),queryFn:()=>s.getCanvasDocRoutes(e),retry:!1,networkMode:"always",staleTime:5e3,refetchInterval:n?15e3:6e4})}function pn(e,n,s){const r=D();return ne({queryKey:["canvas-doc-route-review",e,n,s],queryFn:()=>r.reviewCanvasDocRoute(e,n,{expiresAt:s}),enabled:s!==null,retry:!1,networkMode:"always",staleTime:1/0,gcTime:0})}function Be(e){const n=D(),s=se(),r=o=>{s.setQueryData(J(e),i=>i&&{...i,routes:i.routes.map(a=>a.id===o.route.id?o.route:a)}),s.invalidateQueries({queryKey:J(e)})},l=K({mutationFn:o=>n.approveCanvasDocRoute(e,o.routeId,{expiresAt:o.expiresAt,reviewHash:o.reviewHash}),networkMode:"always",onSuccess:r}),m=K({mutationFn:o=>n.revokeCanvasDocRoute(e,o.routeId),networkMode:"always",onSuccess:r});return{approve:l,revoke:m}}function fn(e){return window.addEventListener("online",e),window.addEventListener("offline",e),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",e)}}function xn(){return h.useSyncExternalStore(fn,()=>navigator.onLine,()=>!0)}const gn={no_grant:"neutral",granted:"success",waiting:"warning",suspended:"warning",revoked:"neutral",expired:"neutral"};function vn({documentId:e,route:n,online:s,onDone:r,onAnnounce:l}){const m=h.useId(),[o,i]=h.useState("day"),[a,g]=h.useState(()=>fe("day")),p=pn(e,n.id,a),{approve:d}=Be(e),x=p.data,y=()=>{x&&d.mutate({routeId:n.id,expiresAt:x.expiresAt,reviewHash:x.reviewHash},{onSuccess:c=>{l(Ge(c.route)),r()},onError:c=>{dn(c)&&p.refetch()}})};return t.jsxs("section",{"aria-labelledby":m,"data-testid":`doc-route-review-${n.id}`,className:"bg-background space-y-3 rounded-md p-3",children:[t.jsx("h4",{id:m,className:"text-sm font-medium",children:"Allow this route?"}),t.jsx(pt,{"aria-label":"How long",value:o,onValueChange:c=>{i(c),g(fe(c))},children:Fe.map(c=>t.jsx(ft,{value:c.value,children:c.label},c.value))}),t.jsx("div",{className:"min-h-20 space-y-1.5 text-xs",children:x?t.jsxs(t.Fragment,{children:[t.jsx(F,{label:"Goes to",align:"start",wrap:!0,children:$(x.destination)}),t.jsx(F,{label:"Events",align:"start",wrap:!0,children:t.jsx("code",{className:"font-mono",children:x.allowedTypes.join(", ")})}),t.jsx(F,{label:"Limits",align:"start",wrap:!0,children:He(x.limits)}),t.jsx(F,{label:"Ends",align:"start",wrap:!0,children:B(x.expiresAt)})]}):p.isError?t.jsx("p",{role:"alert",className:"text-destructive",children:Q(p.error)}):t.jsxs("p",{className:"text-muted-foreground flex items-center gap-2",children:[t.jsx(xt,{size:"xs"}),"Checking details…"]})}),d.isError&&t.jsx("p",{role:"alert",className:"text-destructive text-xs",children:Q(d.error)}),t.jsxs("div",{className:"flex justify-end gap-2",children:[p.isError&&t.jsx(b,{type:"button",variant:"ghost",size:"sm",onClick:()=>void p.refetch(),children:"Try again"}),t.jsx(b,{type:"button",variant:"ghost",size:"sm",onClick:r,children:"Cancel"}),t.jsx(b,{type:"button",size:"sm","data-testid":`doc-route-allow-${n.id}`,disabled:!x||p.isFetching||!s||d.isPending,onClick:y,children:d.isPending?"Allowing…":"Allow route"})]})]})}function yn({documentId:e,route:n,online:s,onAnnounce:r}){const[l,m]=h.useState(!1),{revoke:o}=Be(e),i=n.state==="granted"&&n.grant!==null,a=()=>{o.mutate({routeId:n.id},{onSuccess:g=>r(Ge(g.route))})};return t.jsxs("li",{"data-testid":`doc-route-${n.id}`,"data-state":n.state,className:"bg-muted/40 space-y-2 rounded-md p-3",children:[t.jsxs("div",{className:"flex items-start justify-between gap-2",children:[t.jsxs("div",{className:"min-w-0 space-y-0.5",children:[t.jsx("p",{className:"truncate text-sm font-medium",title:$(n.destination),children:$(n.destination)}),t.jsxs("p",{className:"text-muted-foreground truncate text-xs",children:[t.jsx("code",{className:"font-mono",children:n.on})," · ",n.id]})]}),t.jsx(ye,{shape:"pill",variant:"outline",size:"xs",tone:gn[n.state],"data-testid":`doc-route-state-${n.id}`,className:"shrink-0",children:Pe(n.state)})]}),t.jsx("p",{className:"text-muted-foreground text-xs",children:cn(n)}),i&&n.grant&&t.jsx("p",{className:"text-muted-foreground text-xs",children:He(n.grant.limits)}),o.isError&&t.jsx("p",{role:"alert",className:"text-destructive text-xs",children:Q(o.error)}),l?t.jsx(vn,{documentId:e,route:n,online:s,onAnnounce:r,onDone:()=>m(!1)}):t.jsx("div",{className:"flex justify-end",children:i?t.jsx(b,{type:"button",variant:"outline",size:"sm","data-testid":`doc-route-turn-off-${n.id}`,disabled:!s||o.isPending,onClick:a,children:o.isPending?"Turning off…":"Turn off"}):t.jsx(b,{type:"button",variant:"outline",size:"sm","data-testid":`doc-route-review-button-${n.id}`,disabled:!s,onClick:()=>m(!0),children:"Review"})})]})}function bn(e){return e==="expired"?"Never started":"May have run"}function wn(e){return e==="expired"?"It waited a day and never started.":"It reached the agent, but its result is unknown."}function jn(e){switch(e.replay){case"ready":return null;case"no_grant":return"This route is off. Allow it to run this again.";case"route_changed":return"The route changed, so this can’t run again.";case"inputs_gone":return"Some of its events are no longer kept.";case"still_running":return"It may still be running. Check back once it stops.";case"route_busy":return e.status==="in_doubt"?"Newer work is waiting behind this. Clear it to continue.":"Newer work is waiting on this route. Try again after it runs."}}function kn(e){return`${e} ${e===1?"event":"events"}`}function Nn(e){return`${e} to review`}const G="Only a signed-in person can change this.",ge="This work changed. The list is up to date now.",ve={WORK_ALREADY_REVIEWED:"This was already run again or cleared.",WORK_STILL_RUNNING:"It may still be running. Try again once it stops.",WORK_NOT_FOUND:ge,WORK_NOT_REVIEWABLE:ge,CONFIRM_REPEAT_REQUIRED:"Confirm before running this again.",GRANT_REQUIRED:"This route is off. Allow it first.",GRANT_REVOKED:"This route is off. Allow it first.",GRANT_EXPIRED:"This route’s approval ended. Allow it again first.",MANIFEST_CHANGED:"The document’s app changed. Allow the route again.",ROUTE_CHANGED:"The route changed, so this can’t run again.",INPUTS_GONE:"Some of its events are no longer kept.",ROUTE_BUSY:"Newer work is waiting on this route.",AGENT_CANNOT_DECIDE:G,REQUESTER_CANNOT_DECIDE:G,PERSON_REQUIRED:G,operator_cookie_required:G,AUTH_REQUIRED:"Sign in to change this."};function Cn(e){const n=e==null?void 0:e.code;return typeof n=="string"&&ve[n]?ve[n]:e instanceof TypeError?"Couldn’t reach DorkOS. Check your connection.":"Couldn’t change this work. Try again."}const X=e=>["canvas-doc-work",e];function Rn(e,n,s){const r=D();return ne({queryKey:X(e),queryFn:()=>r.getCanvasDocWork(e),enabled:n,retry:!1,networkMode:"always",staleTime:5e3,refetchInterval:s?15e3:6e4})}function En(e){const n=D(),s=se(),r=i=>s.setQueryData(X(e),a=>a&&{...a,items:a.items.filter(g=>g.batchId!==i.batchId)}),l=()=>void s.invalidateQueries({queryKey:X(e)}),m=K({mutationFn:i=>n.replayCanvasDocWork(e,i.batchId,i.confirmRepeat?{confirmRepeat:!0}:{}),networkMode:"always",onSuccess:r,onSettled:l}),o=K({mutationFn:i=>n.clearCanvasDocWork(e,i.batchId),networkMode:"always",onSuccess:r,onSettled:l});return{replay:m,clear:o}}function Tn({documentId:e,item:n,route:s,online:r,onAnnounce:l}){const[m,o]=h.useState(!1),[i,a]=h.useState(null),g=h.useRef(null),p=h.useRef(null),{replay:d,clear:x}=En(e),y=d.isPending||x.isPending,c=n.replay==="still_running",R=jn(n),w=s?$(s.destination):n.routeId,E=n.status==="in_doubt",I=d.error??x.error;h.useEffect(()=>{var C,T;i==="cancel"&&((C=g.current)==null||C.focus()),i==="replay"&&((T=p.current)==null||T.focus())},[i,m]);const z=()=>{o(!0),a("cancel")},V=()=>{o(!1),a("replay")},N=C=>{x.reset(),d.mutate({batchId:n.batchId,...C?{confirmRepeat:C}:{}},{onSuccess:()=>l(`Running again: ${w}`)})},_=()=>{d.reset(),x.mutate({batchId:n.batchId},{onSuccess:()=>l(`Cleared: ${w}`)})};return t.jsxs("li",{"data-testid":`doc-work-${n.batchId}`,"data-status":n.status,className:"bg-muted/40 space-y-2 rounded-md p-3",children:[t.jsxs("div",{className:"flex items-start justify-between gap-2",children:[t.jsxs("div",{className:"min-w-0 space-y-0.5",children:[t.jsx("p",{className:"truncate text-sm font-medium",title:w,children:w}),t.jsxs("p",{className:"text-muted-foreground truncate text-xs",children:[kn(n.eventCount)," · ",gt(n.since)]})]}),t.jsx(ye,{shape:"pill",variant:"outline",size:"xs",tone:E?"warning":"neutral",className:"shrink-0",children:bn(n.status)})]}),t.jsx("p",{className:"text-muted-foreground text-xs",children:wn(n.status)}),R&&t.jsx("p",{"data-testid":`doc-work-blocked-${n.batchId}`,className:"text-muted-foreground text-xs",children:R}),I&&t.jsx("p",{role:"alert",className:"text-destructive text-xs",children:Cn(I)}),m?t.jsxs("div",{"data-testid":`doc-work-confirm-${n.batchId}`,className:"bg-background space-y-2 rounded-md p-3",children:[t.jsx("p",{className:"text-sm font-medium",children:"Run this again?"}),t.jsx("p",{className:"text-muted-foreground text-xs",children:"It may repeat what the agent already did."}),t.jsxs("div",{className:"flex justify-end gap-2",children:[t.jsx(b,{ref:g,type:"button",variant:"ghost",size:"sm",onClick:V,children:"Cancel"}),t.jsx(b,{type:"button",size:"sm","data-testid":`doc-work-confirm-replay-${n.batchId}`,disabled:!r||y,onClick:()=>N(!0),children:d.isPending?"Starting…":"Run again"})]})]}):t.jsxs("div",{className:"flex justify-end gap-2",children:[t.jsx(b,{type:"button",variant:"ghost",size:"sm","data-testid":`doc-work-clear-${n.batchId}`,disabled:!r||y||c,onClick:_,children:x.isPending?"Clearing…":"Clear"}),t.jsx(b,{ref:p,type:"button",variant:"outline",size:"sm","data-testid":`doc-work-replay-${n.batchId}`,disabled:!r||y||R!==null,onClick:()=>E?z():N(),children:d.isPending?"Starting…":"Run again"})]})]})}function An({documentId:e,routes:n,online:s}){var y;const[r,l]=h.useState(!1),[m,o]=h.useState(""),i=Rn(e,n.length>0,r),a=h.useCallback(c=>o(c),[]),g=((y=i.data)==null?void 0:y.items)??[],p=t.jsx("p",{"aria-live":"polite",className:"sr-only",children:m});if(g.length===0)return p;const d=Nn(g.length),x=g.some(c=>c.status==="in_doubt");return t.jsxs(t.Fragment,{children:[p,t.jsxs(be,{open:r,onOpenChange:l,modal:!0,fullHeight:!0,children:[t.jsx(we,{asChild:!0,children:t.jsxs(b,{type:"button",variant:"ghost",size:"sm","data-testid":"doc-work-trigger","aria-label":`Unfinished work: ${d}`,className:"h-6 gap-1.5 px-1.5",children:[t.jsx(Ft,{className:"size-3.5"}),t.jsxs("span",{className:O("flex items-center gap-1",x?"text-status-warning-fg":"text-muted-foreground"),children:[x&&t.jsx("span",{"aria-hidden":!0,className:"bg-status-warning size-1.5 rounded-full"}),d]})]})}),t.jsxs(je,{align:"end","aria-label":"Unfinished work","data-testid":"doc-work-panel",className:"flex max-h-[min(70vh,36rem)] w-[min(24rem,calc(100vw-2rem))] flex-col gap-3 overflow-y-auto p-3",children:[t.jsx(ke,{children:"Unfinished work"}),t.jsxs("div",{className:"space-y-1",children:[t.jsx("h3",{className:"hidden text-sm font-medium md:block",children:"Unfinished work"}),t.jsx("p",{className:"text-muted-foreground text-xs",children:"Nothing runs again until you choose."})]}),!s&&t.jsx("p",{className:"bg-status-warning-bg text-status-warning-fg rounded-md px-2 py-1.5 text-xs",children:"Offline. Changes wait until you reconnect."}),i.isError&&t.jsxs("div",{role:"alert",className:"flex items-center justify-between gap-2 text-xs",children:[t.jsx("span",{className:"text-destructive",children:"Couldn’t refresh this list."}),t.jsx(b,{type:"button",variant:"ghost",size:"sm",onClick:()=>void i.refetch(),children:"Try again"})]}),t.jsx("ul",{className:"space-y-2","aria-label":"Work to review",children:g.map(c=>t.jsx(Tn,{documentId:e,item:c,route:n.find(R=>R.id===c.routeId),online:s,onAnnounce:a},c.batchId))})]})]})]})}function Dn(e,n){return n>0?`${n} waiting`:e>0?`${e} on`:"Off"}function We({documentId:e}){var x;const[n,s]=h.useState(!1),[r,l]=h.useState(""),m=xn(),o=hn(e,n),i=h.useCallback(y=>l(y),[]),a=((x=o.data)==null?void 0:x.routes)??[];if(a.length===0)return null;const{on:g,waiting:p}=un(a),d=Dn(g,p);return t.jsxs("div",{"data-testid":"doc-routes-bar",className:"text-muted-foreground flex items-center justify-end gap-1 border-b px-3 py-1 text-xs",children:[t.jsx(An,{documentId:e,routes:a,online:m}),t.jsxs(be,{open:n,onOpenChange:s,modal:!0,fullHeight:!0,children:[t.jsx(we,{asChild:!0,children:t.jsxs(b,{type:"button",variant:"ghost",size:"sm","data-testid":"doc-routes-trigger","aria-label":`Event routes: ${d}`,className:"h-6 gap-1.5 px-1.5",children:[t.jsx(qt,{className:"size-3.5"}),"Routes",t.jsxs("span",{className:O("flex items-center gap-1",p>0?"text-status-warning-fg":"text-muted-foreground"),children:[p>0&&t.jsx("span",{"aria-hidden":!0,className:"bg-status-warning size-1.5 rounded-full"}),d]})]})}),t.jsxs(je,{align:"end","aria-label":"Event routes","data-testid":"doc-routes-panel",className:"flex max-h-[min(70vh,36rem)] w-[min(24rem,calc(100vw-2rem))] flex-col gap-3 overflow-y-auto p-3",children:[t.jsx(ke,{children:"Event routes"}),t.jsxs("div",{className:"space-y-1",children:[t.jsx("h3",{className:"hidden text-sm font-medium md:block",children:"Event routes"}),t.jsx("p",{className:"text-muted-foreground text-xs",children:"A route does nothing until it’s allowed."})]}),!m&&t.jsx("p",{"data-testid":"doc-routes-offline",className:"bg-status-warning-bg text-status-warning-fg rounded-md px-2 py-1.5 text-xs",children:"Offline. Changes wait until you reconnect."}),o.isError&&t.jsxs("div",{role:"alert",className:"flex items-center justify-between gap-2 text-xs",children:[t.jsx("span",{className:"text-destructive",children:"Couldn’t refresh routes."}),t.jsx(b,{type:"button",variant:"ghost",size:"sm",onClick:()=>void o.refetch(),children:"Try again"})]}),t.jsx("ul",{className:"space-y-2","aria-label":"Declared routes",children:a.map(y=>t.jsx(yn,{documentId:e,route:y,online:m,onAnnounce:i},y.id))}),t.jsx("p",{role:"status","aria-live":"polite",className:"sr-only",children:r})]})]})]})}function _n({sourceLabel:e,people:n,following:s,onFollow:r,onStopFollowing:l,onDiscuss:m,discussing:o=!1}){const i=n.find(a=>a.id===s)??null;return e===void 0&&n.length===0&&m===void 0?null:t.jsxs("div",{className:"text-muted-foreground flex items-center gap-2 border-b px-3 py-1 text-xs",children:[e!==void 0&&t.jsx("span",{className:"min-w-0 flex-1 truncate",children:e}),e===void 0&&t.jsx("span",{className:"flex-1"}),m&&t.jsxs(b,{type:"button",variant:"ghost",size:"sm",className:"h-6 gap-1 px-1.5",disabled:o,onClick:m,children:[t.jsx(vt,{className:"size-3.5"}),"Discuss"]}),n.length>0&&t.jsxs(yt,{children:[t.jsx(bt,{asChild:!0,children:t.jsxs(b,{type:"button",variant:"ghost",size:"sm",className:O("h-6 gap-1 px-1.5",i&&"text-foreground"),children:[t.jsx(wt,{className:"size-3.5"}),i?`Following ${i.displayName}`:"Follow"]})}),t.jsxs(jt,{align:"end",children:[t.jsx(kt,{children:"Follow somebody’s browser"}),n.map(a=>t.jsxs(me,{onSelect:()=>a.id===s?l():r(a.id),children:[t.jsx(Z,{"aria-hidden":!0,size:"xs",className:"size-4 shrink-0 text-[9px]",kind:a.kind,color:a.color??te(a.id),emoji:a.emoji,imageUrl:a.imageUrl,badge:null,fallback:ee(a.displayName)}),t.jsx("span",{className:"min-w-0 flex-1 truncate",children:a.displayName}),a.id===s&&t.jsx(Nt,{className:"size-3.5 shrink-0"})]},a.id)),i&&t.jsx(me,{onSelect:l,children:"Stop following"})]})]})]})}function In({roomId:e,document:n,reading:s}){const r=D(),l=se(),[m,o]=h.useState(null),i=h.useMemo(()=>Pt({transport:r,queryClient:l,roomId:e}),[r,l,e]);return t.jsxs("div",{className:"flex h-full items-start justify-center p-6",children:[t.jsxs("div",{className:"bg-card shadow-soft w-full max-w-md space-y-3 rounded-lg border p-4",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(Ce,{className:"text-muted-foreground size-4 shrink-0"}),t.jsx("span",{className:"truncate text-sm font-medium",children:n.title||s.sourcePath})]}),t.jsx("p",{className:"text-muted-foreground font-mono text-xs break-all",children:s.sourcePath}),s.kind==="elsewhere"?t.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:s.sentence}):t.jsxs(t.Fragment,{children:[t.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:"A room file. Each save is recorded with your name."}),t.jsx(b,{type:"button",size:"sm",onClick:()=>o(s.sourcePath),children:"Open file"})]})]}),s.kind==="room-file"&&t.jsx(Ht,{source:i,path:m,onClose:()=>o(null)})]})}const Sn=["image","pdf","audio","video","csv","model3d"];function On(e){return/^(https?:|data:)/.test(e)||It(e)}function zn(e){if(e.type==="file"||e.type==="diff")return e.sourcePath;if(e.type==="markdown")return e.sourcePath??null;if(Sn.includes(e.type)){const n=e.src;return On(n)?null:n}return null}function Mn(e){return e.type==="file"||e.type==="diff"||e.type==="markdown"}function Un(e){const n=/^(?:in )?(.+?)['’]s /.exec(e.sourceLabel??"");return(n==null?void 0:n[1])??"another member"}function Ln(e){const n=zn(e.content);if(n===null)return{kind:"inline"};if(e.treeKind==="room-main"||e.treeKind===void 0)return Mn(e.content)?{kind:"room-file",sourcePath:n}:{kind:"elsewhere",sourcePath:n,sentence:"This file is in the room’s files. Open it from Files in the Room tab."};if(e.content.type==="diff"&&e.treeKind==="worktree"&&typeof e.aheadOfMain=="number"&&e.aheadOfMain>0)return{kind:"worktree-diff",sourcePath:n,content:e.content};if(e.content.type==="markdown")return{kind:"inline"};const s=Un(e);return{kind:"elsewhere",sourcePath:n,sentence:`${s.charAt(0).toUpperCase()}${s.slice(1)}’s project isn’t open to you. Ask them to share it, or open your copy.`}}function $n(e){return e.title||e.contentType}function Fn({roomId:e,document:n,onUpdate:s}){const r=Ln(n);return r.kind==="worktree-diff"?t.jsx(At,{roomId:e,content:r.content,documentId:n.id,authorId:n.authorId}):r.kind!=="inline"?t.jsx(In,{roomId:e,document:n,reading:r}):n.content.type==="markdown"?t.jsx(zt,{roomId:e,document:n,content:n.content,onSave:s}):t.jsx(Re,{documentId:n.id,content:n.content,onContentChange:()=>{}})}function Ke({roomId:e,view:n}){var le;const s=Ne(),r=k(u=>u.roomCanvasDocuments[e]),l=k(u=>{var f;return((f=u.roomCanvasActive[e])==null?void 0:f[n])??null}),m=k(u=>{var f;return(f=u.roomCanvasUnread[e])==null?void 0:f[n]}),o=k(u=>u.activateRoomCanvasDocument),i=k(u=>u.clearRoomCanvasUnread),a=k(u=>u.roomCanvasPresence[e]),g=St(e),p=Ct(e),d=D(),x=((le=p.data)==null?void 0:le.viewerAuthorId)??null,y=k(u=>u.roomCanvasEditing[e]??null),c=Rt(u=>u.openThread),[R,w]=h.useState(!1),E=n==="browser"?e:null,{following:I,follow:z,stop:V}=$t(E),N=Et(E),_=h.useRef(null),C=h.useCallback(async(u,f)=>{try{return await f(),!0}catch(M){return he.error(u,{description:pe(M)}),!1}},[]),T=h.useMemo(()=>Tt(r??[],n),[r,n]),j=T.find(u=>u.id===l)??null,oe=(m==null?void 0:m.length)??0;h.useEffect(()=>{oe>0&&i(e,n)},[oe,i,e,n]);const Ye=h.useMemo(()=>{var ce;const u=new Map(((ce=p.data)==null?void 0:ce.members.map(v=>[v.author.id,v.author]))??[]),f=v=>({id:v.id,displayName:v.displayName,kind:v.kind,...v.emoji?{emoji:v.emoji}:{},...v.color?{color:v.color}:{},...v.imageUrl?{imageUrl:v.imageUrl}:{}}),M=new Map;for(const[v,U]of Object.entries(a??{})){if(v===x)continue;const S=u.get(v);if(!S)continue;const de=M.get(U);de?de.push(f(S)):M.set(U,[f(S)])}return T.map(v=>{const U=u.get(v.authorId),S=M.get(v.id);return{id:v.id,sourceLabel:$n(v),contentType:v.content.type,pinned:v.pinned,unread:(m==null?void 0:m.includes(v.id))??!1,...U?{author:f(U)}:{},...S?{watchers:S}:{}}})},[T,p.data,m,a,x]);Ot(e,(j==null?void 0:j.id)??null);const qe=h.useMemo(()=>{var u;return(((u=p.data)==null?void 0:u.members)??[]).map(f=>f.author).filter(f=>f.kind==="human"&&f.id!==x).map(f=>({id:f.id,displayName:f.displayName,kind:f.kind,emoji:f.emoji,color:f.color,imageUrl:f.imageUrl}))},[p.data,x]),Qe=k(u=>{if(l===null)return;const f=u.browserHistories[l];return f?f.stack[f.cursor]:void 0}),Je=h.useCallback(()=>{var u;return((u=_.current)==null?void 0:u.scrollTop)??0},[]),Xe=h.useCallback(u=>{const f=_.current;return f?(f.addEventListener("scroll",u,{passive:!0}),()=>f.removeEventListener("scroll",u)):()=>{}},[]);Qt({roomId:E,viewerAuthorId:x,documentId:l,url:Qe,readScrollY:Je,subscribe:Xe});const ie=h.useMemo(()=>T.map(u=>u.id).join("\0"),[T]);h.useEffect(()=>{if(!(N===null||y!==null)&&ie.split("\0").includes(N.documentId)){if(N.documentId!==l){o(e,N.documentId);return}N.scrollY!==void 0&&_.current&&(_.current.scrollTop=N.scrollY)}},[N,y,l,ie,o,e]);const Ze=h.useCallback(()=>{j!==null&&(w(!0),d.discussCanvasDocument(e,j.id).then(u=>c(e,u.threadRootEntryId,!1)).catch(u=>{he.error("Couldn’t start a discussion.",{description:pe(u)})}).finally(()=>w(!1)))},[j,d,e,c]),et=ae(n);return t.jsxs(t.Fragment,{children:[!s&&t.jsx(Ue,{view:n,documents:Ye,activeDocumentId:l,onActivate:u=>o(e,u),onClose:u=>void C("Couldn’t take that off the canvas.",()=>g.close(u)),onPin:(u,f)=>void C(f?"Couldn’t pin that.":"Couldn’t unpin that.",()=>g.pin(u,f))}),t.jsx(_n,{sourceLabel:j==null?void 0:j.sourceLabel,people:n==="browser"?qe:[],following:I,onFollow:z,onStopFollowing:V,onDiscuss:j===null?void 0:Ze,discussing:R}),j&&t.jsx(We,{documentId:j.id},j.id),t.jsx("div",{id:et,ref:_,tabIndex:-1,className:"min-h-0 flex-1 overflow-auto focus-visible:outline-none",...!s&&j?{role:"tabpanel","aria-labelledby":re(j.id)}:{},children:j?t.jsx(Le,{documentId:j.id,children:t.jsx(Fn,{roomId:e,document:j,onUpdate:(u,f)=>C("Couldn’t save that for the room.",()=>g.update(u,f))})},j.id):t.jsx($e,{view:n,onAction:u=>void C("Couldn’t put that on the canvas.",()=>g.open(u))})})]})}function Ve({view:e}){const n=Ne(),s=k(c=>c.openDocuments),r=k(c=>e==="browser"?c.activeBrowserDocumentId:c.activeCanvasDocumentId),l=k(c=>c.activateCanvasDocument),m=k(c=>c.closeCanvasDocument),o=k(c=>c.setDocumentContent),i=k(c=>c.openCanvasDocument),a=k(c=>c.applyHeldUpdate),g=k(c=>c.discardHeldUpdate),p=Dt(s,e),d=p.find(c=>c.id===r)??null,x=p.map(c=>({id:c.id,sourceLabel:c.sourceLabel,contentType:c.content.type})),y=ae(e);return t.jsxs(t.Fragment,{children:[!n&&t.jsx(Ue,{view:e,documents:x,activeDocumentId:r,onActivate:l,onClose:m}),d&&t.jsx(We,{documentId:d.id},d.id),(d==null?void 0:d.heldUpdate)&&t.jsx(an,{onReload:()=>a(d.id),onKeepMine:()=>g(d.id)}),t.jsx("div",{id:y,tabIndex:-1,className:"min-h-0 flex-1 overflow-auto focus-visible:outline-none",...!n&&d?{role:"tabpanel","aria-labelledby":re(d.id)}:{},children:d?t.jsx(Le,{documentId:d.id,children:t.jsx(Re,{documentId:d.id,content:d.content,onContentChange:c=>o(d.id,c)})},d.id):t.jsx($e,{view:e,onAction:i})})]})}function hs(){const e=k(n=>n.roomCanvasLiveRoomId);return t.jsx("div",{"data-slot":"canvas",className:"flex h-full flex-col overflow-hidden",children:e?t.jsx(Ke,{roomId:e,view:"canvas"}):t.jsx(Ve,{view:"canvas"})})}function ps(){const e=k(n=>n.roomCanvasLiveRoomId);return t.jsx("div",{"data-slot":"browser",className:"flex h-full flex-col overflow-hidden",children:e?t.jsx(Ke,{roomId:e,view:"browser"}):t.jsx(Ve,{view:"browser"})})}export{ps as BrowserContent,hs as CanvasContent,gs as CanvasWidgetContent,vs as resetSessionCanvasImport,ys as useDevtoolsBridge,bs as useDocChannel,ws as useSessionCanvas};
|
|
43
|
+
Start writing…`,title:"Document"})},{icon:De,label:"JSON",description:"Inspect structured data",action:()=>({type:"json",data:{message:"Your data here"},title:"JSON data"})}]},browser:{heading:"No page open",blurb:"This tab shows web pages: your files, dev servers, or sites from your agent.",actions:[{icon:W,label:"Web page",description:"Open a page, then type any address",action:()=>({type:"url",url:ht.site,title:"Web Page"})}]}};function q(e,n,s,r){return e.split("").reduce((m,o)=>m+o.charCodeAt(0),0)*(n+1)*7%(r-s)+s}function $e({view:e,onAction:n}){const s=ut(),r=h.useId(),l=rn[e],m=h.useMemo(()=>Array.from({length:6},(o,i)=>({x:q(r,i*3,10,90),y:q(r,i*3+1,10,80),size:q(r,i*3+2,24,56),delay:i*.4})),[r]);return t.jsxs("div",{className:"relative flex h-full flex-col items-center justify-center overflow-hidden px-6",children:[!s&&m.map((o,i)=>t.jsx(L.div,{className:"border-border/40 absolute rounded-lg border",style:{left:`${o.x}%`,top:`${o.y}%`,width:o.size,height:o.size},initial:{opacity:0,scale:.6,rotate:-10},animate:{opacity:[0,.15,.08,.15],scale:[.6,1,.9,1],rotate:[-10,0,5,0]},transition:{duration:8,delay:o.delay,repeat:1/0,repeatType:"reverse",ease:"easeInOut"}},i)),t.jsxs(L.div,{className:"relative z-10 flex max-w-sm flex-col items-center gap-6 text-center",initial:s?!1:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,ease:"easeOut"},children:[t.jsx(L.div,{className:"bg-muted/50 text-muted-foreground flex size-14 items-center justify-center rounded-2xl",initial:s?!1:{opacity:0,scale:.8},animate:{opacity:1,scale:1},transition:{duration:.3,delay:.1},children:e==="browser"?t.jsx(W,{className:"size-7"}):t.jsx(mt,{className:"size-7"})}),t.jsxs("div",{className:"space-y-2",children:[t.jsx("h2",{className:"text-lg font-semibold tracking-tight",children:l.heading}),t.jsxs("p",{className:"text-muted-foreground text-sm leading-relaxed",children:[l.blurb,t.jsx("br",{}),"Or pick a starting point below."]})]}),t.jsx(L.div,{className:"mt-2 flex w-full flex-col gap-2",initial:"hidden",animate:"visible",variants:s?{}:{visible:{transition:{staggerChildren:.08,delayChildren:.25}}},children:l.actions.map(({icon:o,label:i,description:a,action:g})=>t.jsxs(L.button,{variants:s?{}:{hidden:{opacity:0,y:8},visible:{opacity:1,y:0}},transition:{duration:.25},className:"border-border hover:bg-accent/50 flex items-center gap-3 rounded-lg border px-4 py-3 text-left transition-colors",onClick:()=>n(g()),children:[t.jsx(o,{className:"text-muted-foreground size-4 shrink-0"}),t.jsxs("div",{className:"min-w-0",children:[t.jsx("span",{className:"text-sm font-medium",children:i}),t.jsx("span",{className:"text-muted-foreground ml-2 text-xs",children:a})]})]},i))})]})]})}const Fe=[{value:"hour",label:"1 hour",ms:36e5},{value:"day",label:"1 day",ms:864e5},{value:"week",label:"1 week",ms:6048e5}];function fe(e,n=Date.now()){const s=Fe.find(r=>r.value===e).ms;return new Date(Math.ceil((n+s)/6e4)*6e4).toISOString()}const on=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"});function B(e){return on.format(new Date(e))}function $(e){switch(e.kind){case"log":return"Kept on this document";case"room":return e.agentName?`To ${e.agentName} in this room`:"To this room";case"owner":return e.agentName?`To ${e.agentName}`:"To the agent that opened this";case"agent":return e.agentName?`To ${e.agentName}`:"To an agent that’s gone"}}const ln={no_grant:"Off",granted:"On",waiting:"Waiting for you",suspended:"Paused",revoked:"Turned off",expired:"Ended"};function Pe(e){return ln[e]}function cn(e){const n=e.grant;switch(e.state){case"granted":return n!=null&&n.expiresAt?`Until ${B(n.expiresAt)}`:"On";case"waiting":return"An agent asked for this route.";case"suspended":return"The route or its app changed. Allow it again.";case"revoked":return n!=null&&n.revokedAt?`Turned off ${B(n.revokedAt)}`:"Turned off";case"expired":return n!=null&&n.expiresAt?`Ended ${B(n.expiresAt)}`:"Ended";case"no_grant":return e.needsPerson?"Needs your approval to start work.":"Off until someone allows it."}}function He(e){const n=`${e.turnsPerHour} ${e.turnsPerHour===1?"turn":"turns"} an hour`,s=`${e.eventsPerMinute} ${e.eventsPerMinute===1?"event":"events"} a minute`;return`${n} · ${s}`}function Ge(e){return`${Pe(e.state)}: ${$(e.destination)}`}function dn(e){const n=e==null?void 0:e.code;return typeof n=="string"&&mn.has(n)}function un(e){return{on:e.filter(n=>n.state==="granted").length,waiting:e.filter(n=>n.state==="waiting").length}}const P="This route changed. Review it again.",mn=new Set(["ROUTE_CHANGED","GRANT_BINDING_CHANGED","DECLARATION_HASH_MISMATCH","MANIFEST_CHANGED"]),H="Only a signed-in person can change routes.",xe={ROUTE_CHANGED:P,GRANT_BINDING_CHANGED:P,DECLARATION_HASH_MISMATCH:P,MANIFEST_CHANGED:P,ROUTE_UNDECLARED:"This document no longer declares that route.",ROUTE_ALREADY_ON:"This route is already on.",ROUTE_ALREADY_GRANTED:"This route is already on.",APPROVAL_NOT_RECORDED:"Couldn’t record the approval. Nothing was allowed.",TARGET_UNAVAILABLE:"The agent for this route isn’t available.",TARGET_IDENTITY_MISMATCH:"The agent for this route isn’t available.",TARGET_SCOPE_MISMATCH:"The agent for this route isn’t available.",ROOM_ROUTE_UNAVAILABLE:"This room can’t take events right now.",ORIGIN_AUTHORITY_LOST:"The agent that opened this isn’t available.",GRANT_EXPIRED:"That end time has passed. Pick another.",AGENT_CANNOT_DECIDE:H,REQUESTER_CANNOT_DECIDE:H,PERSON_REQUIRED:H,operator_cookie_required:H,AUTH_REQUIRED:"Sign in to change routes."};function Q(e){const n=e==null?void 0:e.code;return typeof n=="string"&&xe[n]?xe[n]:e instanceof TypeError?"Couldn’t reach DorkOS. Check your connection.":"Couldn’t change this route. Try again."}const J=e=>["canvas-doc-routes",e];function hn(e,n){const s=D();return ne({queryKey:J(e),queryFn:()=>s.getCanvasDocRoutes(e),retry:!1,networkMode:"always",staleTime:5e3,refetchInterval:n?15e3:6e4})}function pn(e,n,s){const r=D();return ne({queryKey:["canvas-doc-route-review",e,n,s],queryFn:()=>r.reviewCanvasDocRoute(e,n,{expiresAt:s}),enabled:s!==null,retry:!1,networkMode:"always",staleTime:1/0,gcTime:0})}function Be(e){const n=D(),s=se(),r=o=>{s.setQueryData(J(e),i=>i&&{...i,routes:i.routes.map(a=>a.id===o.route.id?o.route:a)}),s.invalidateQueries({queryKey:J(e)})},l=K({mutationFn:o=>n.approveCanvasDocRoute(e,o.routeId,{expiresAt:o.expiresAt,reviewHash:o.reviewHash}),networkMode:"always",onSuccess:r}),m=K({mutationFn:o=>n.revokeCanvasDocRoute(e,o.routeId),networkMode:"always",onSuccess:r});return{approve:l,revoke:m}}function fn(e){return window.addEventListener("online",e),window.addEventListener("offline",e),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",e)}}function xn(){return h.useSyncExternalStore(fn,()=>navigator.onLine,()=>!0)}const gn={no_grant:"neutral",granted:"success",waiting:"warning",suspended:"warning",revoked:"neutral",expired:"neutral"};function vn({documentId:e,route:n,online:s,onDone:r,onAnnounce:l}){const m=h.useId(),[o,i]=h.useState("day"),[a,g]=h.useState(()=>fe("day")),p=pn(e,n.id,a),{approve:d}=Be(e),x=p.data,y=()=>{x&&d.mutate({routeId:n.id,expiresAt:x.expiresAt,reviewHash:x.reviewHash},{onSuccess:c=>{l(Ge(c.route)),r()},onError:c=>{dn(c)&&p.refetch()}})};return t.jsxs("section",{"aria-labelledby":m,"data-testid":`doc-route-review-${n.id}`,className:"bg-background space-y-3 rounded-md p-3",children:[t.jsx("h4",{id:m,className:"text-sm font-medium",children:"Allow this route?"}),t.jsx(pt,{"aria-label":"How long",value:o,onValueChange:c=>{i(c),g(fe(c))},children:Fe.map(c=>t.jsx(ft,{value:c.value,children:c.label},c.value))}),t.jsx("div",{className:"min-h-20 space-y-1.5 text-xs",children:x?t.jsxs(t.Fragment,{children:[t.jsx(F,{label:"Goes to",align:"start",wrap:!0,children:$(x.destination)}),t.jsx(F,{label:"Events",align:"start",wrap:!0,children:t.jsx("code",{className:"font-mono",children:x.allowedTypes.join(", ")})}),t.jsx(F,{label:"Limits",align:"start",wrap:!0,children:He(x.limits)}),t.jsx(F,{label:"Ends",align:"start",wrap:!0,children:B(x.expiresAt)})]}):p.isError?t.jsx("p",{role:"alert",className:"text-destructive",children:Q(p.error)}):t.jsxs("p",{className:"text-muted-foreground flex items-center gap-2",children:[t.jsx(xt,{size:"xs"}),"Checking details…"]})}),d.isError&&t.jsx("p",{role:"alert",className:"text-destructive text-xs",children:Q(d.error)}),t.jsxs("div",{className:"flex justify-end gap-2",children:[p.isError&&t.jsx(b,{type:"button",variant:"ghost",size:"sm",onClick:()=>void p.refetch(),children:"Try again"}),t.jsx(b,{type:"button",variant:"ghost",size:"sm",onClick:r,children:"Cancel"}),t.jsx(b,{type:"button",size:"sm","data-testid":`doc-route-allow-${n.id}`,disabled:!x||p.isFetching||!s||d.isPending,onClick:y,children:d.isPending?"Allowing…":"Allow route"})]})]})}function yn({documentId:e,route:n,online:s,onAnnounce:r}){const[l,m]=h.useState(!1),{revoke:o}=Be(e),i=n.state==="granted"&&n.grant!==null,a=()=>{o.mutate({routeId:n.id},{onSuccess:g=>r(Ge(g.route))})};return t.jsxs("li",{"data-testid":`doc-route-${n.id}`,"data-state":n.state,className:"bg-muted/40 space-y-2 rounded-md p-3",children:[t.jsxs("div",{className:"flex items-start justify-between gap-2",children:[t.jsxs("div",{className:"min-w-0 space-y-0.5",children:[t.jsx("p",{className:"truncate text-sm font-medium",title:$(n.destination),children:$(n.destination)}),t.jsxs("p",{className:"text-muted-foreground truncate text-xs",children:[t.jsx("code",{className:"font-mono",children:n.on})," · ",n.id]})]}),t.jsx(ye,{shape:"pill",variant:"outline",size:"xs",tone:gn[n.state],"data-testid":`doc-route-state-${n.id}`,className:"shrink-0",children:Pe(n.state)})]}),t.jsx("p",{className:"text-muted-foreground text-xs",children:cn(n)}),i&&n.grant&&t.jsx("p",{className:"text-muted-foreground text-xs",children:He(n.grant.limits)}),o.isError&&t.jsx("p",{role:"alert",className:"text-destructive text-xs",children:Q(o.error)}),l?t.jsx(vn,{documentId:e,route:n,online:s,onAnnounce:r,onDone:()=>m(!1)}):t.jsx("div",{className:"flex justify-end",children:i?t.jsx(b,{type:"button",variant:"outline",size:"sm","data-testid":`doc-route-turn-off-${n.id}`,disabled:!s||o.isPending,onClick:a,children:o.isPending?"Turning off…":"Turn off"}):t.jsx(b,{type:"button",variant:"outline",size:"sm","data-testid":`doc-route-review-button-${n.id}`,disabled:!s,onClick:()=>m(!0),children:"Review"})})]})}function bn(e){return e==="expired"?"Never started":"May have run"}function wn(e){return e==="expired"?"It waited a day and never started.":"It reached the agent, but its result is unknown."}function jn(e){switch(e.replay){case"ready":return null;case"no_grant":return"This route is off. Allow it to run this again.";case"route_changed":return"The route changed, so this can’t run again.";case"inputs_gone":return"Some of its events are no longer kept.";case"still_running":return"It may still be running. Check back once it stops.";case"route_busy":return e.status==="in_doubt"?"Newer work is waiting behind this. Clear it to continue.":"Newer work is waiting on this route. Try again after it runs."}}function kn(e){return`${e} ${e===1?"event":"events"}`}function Nn(e){return`${e} to review`}const G="Only a signed-in person can change this.",ge="This work changed. The list is up to date now.",ve={WORK_ALREADY_REVIEWED:"This was already run again or cleared.",WORK_STILL_RUNNING:"It may still be running. Try again once it stops.",WORK_NOT_FOUND:ge,WORK_NOT_REVIEWABLE:ge,CONFIRM_REPEAT_REQUIRED:"Confirm before running this again.",GRANT_REQUIRED:"This route is off. Allow it first.",GRANT_REVOKED:"This route is off. Allow it first.",GRANT_EXPIRED:"This route’s approval ended. Allow it again first.",MANIFEST_CHANGED:"The document’s app changed. Allow the route again.",ROUTE_CHANGED:"The route changed, so this can’t run again.",INPUTS_GONE:"Some of its events are no longer kept.",ROUTE_BUSY:"Newer work is waiting on this route.",AGENT_CANNOT_DECIDE:G,REQUESTER_CANNOT_DECIDE:G,PERSON_REQUIRED:G,operator_cookie_required:G,AUTH_REQUIRED:"Sign in to change this."};function Cn(e){const n=e==null?void 0:e.code;return typeof n=="string"&&ve[n]?ve[n]:e instanceof TypeError?"Couldn’t reach DorkOS. Check your connection.":"Couldn’t change this work. Try again."}const X=e=>["canvas-doc-work",e];function Rn(e,n,s){const r=D();return ne({queryKey:X(e),queryFn:()=>r.getCanvasDocWork(e),enabled:n,retry:!1,networkMode:"always",staleTime:5e3,refetchInterval:s?15e3:6e4})}function En(e){const n=D(),s=se(),r=i=>s.setQueryData(X(e),a=>a&&{...a,items:a.items.filter(g=>g.batchId!==i.batchId)}),l=()=>void s.invalidateQueries({queryKey:X(e)}),m=K({mutationFn:i=>n.replayCanvasDocWork(e,i.batchId,i.confirmRepeat?{confirmRepeat:!0}:{}),networkMode:"always",onSuccess:r,onSettled:l}),o=K({mutationFn:i=>n.clearCanvasDocWork(e,i.batchId),networkMode:"always",onSuccess:r,onSettled:l});return{replay:m,clear:o}}function Tn({documentId:e,item:n,route:s,online:r,onAnnounce:l}){const[m,o]=h.useState(!1),[i,a]=h.useState(null),g=h.useRef(null),p=h.useRef(null),{replay:d,clear:x}=En(e),y=d.isPending||x.isPending,c=n.replay==="still_running",R=jn(n),w=s?$(s.destination):n.routeId,E=n.status==="in_doubt",I=d.error??x.error;h.useEffect(()=>{var C,T;i==="cancel"&&((C=g.current)==null||C.focus()),i==="replay"&&((T=p.current)==null||T.focus())},[i,m]);const z=()=>{o(!0),a("cancel")},V=()=>{o(!1),a("replay")},N=C=>{x.reset(),d.mutate({batchId:n.batchId,...C?{confirmRepeat:C}:{}},{onSuccess:()=>l(`Running again: ${w}`)})},_=()=>{d.reset(),x.mutate({batchId:n.batchId},{onSuccess:()=>l(`Cleared: ${w}`)})};return t.jsxs("li",{"data-testid":`doc-work-${n.batchId}`,"data-status":n.status,className:"bg-muted/40 space-y-2 rounded-md p-3",children:[t.jsxs("div",{className:"flex items-start justify-between gap-2",children:[t.jsxs("div",{className:"min-w-0 space-y-0.5",children:[t.jsx("p",{className:"truncate text-sm font-medium",title:w,children:w}),t.jsxs("p",{className:"text-muted-foreground truncate text-xs",children:[kn(n.eventCount)," · ",gt(n.since)]})]}),t.jsx(ye,{shape:"pill",variant:"outline",size:"xs",tone:E?"warning":"neutral",className:"shrink-0",children:bn(n.status)})]}),t.jsx("p",{className:"text-muted-foreground text-xs",children:wn(n.status)}),R&&t.jsx("p",{"data-testid":`doc-work-blocked-${n.batchId}`,className:"text-muted-foreground text-xs",children:R}),I&&t.jsx("p",{role:"alert",className:"text-destructive text-xs",children:Cn(I)}),m?t.jsxs("div",{"data-testid":`doc-work-confirm-${n.batchId}`,className:"bg-background space-y-2 rounded-md p-3",children:[t.jsx("p",{className:"text-sm font-medium",children:"Run this again?"}),t.jsx("p",{className:"text-muted-foreground text-xs",children:"It may repeat what the agent already did."}),t.jsxs("div",{className:"flex justify-end gap-2",children:[t.jsx(b,{ref:g,type:"button",variant:"ghost",size:"sm",onClick:V,children:"Cancel"}),t.jsx(b,{type:"button",size:"sm","data-testid":`doc-work-confirm-replay-${n.batchId}`,disabled:!r||y,onClick:()=>N(!0),children:d.isPending?"Starting…":"Run again"})]})]}):t.jsxs("div",{className:"flex justify-end gap-2",children:[t.jsx(b,{type:"button",variant:"ghost",size:"sm","data-testid":`doc-work-clear-${n.batchId}`,disabled:!r||y||c,onClick:_,children:x.isPending?"Clearing…":"Clear"}),t.jsx(b,{ref:p,type:"button",variant:"outline",size:"sm","data-testid":`doc-work-replay-${n.batchId}`,disabled:!r||y||R!==null,onClick:()=>E?z():N(),children:d.isPending?"Starting…":"Run again"})]})]})}function An({documentId:e,routes:n,online:s}){var y;const[r,l]=h.useState(!1),[m,o]=h.useState(""),i=Rn(e,n.length>0,r),a=h.useCallback(c=>o(c),[]),g=((y=i.data)==null?void 0:y.items)??[],p=t.jsx("p",{"aria-live":"polite",className:"sr-only",children:m});if(g.length===0)return p;const d=Nn(g.length),x=g.some(c=>c.status==="in_doubt");return t.jsxs(t.Fragment,{children:[p,t.jsxs(be,{open:r,onOpenChange:l,modal:!0,fullHeight:!0,children:[t.jsx(we,{asChild:!0,children:t.jsxs(b,{type:"button",variant:"ghost",size:"sm","data-testid":"doc-work-trigger","aria-label":`Unfinished work: ${d}`,className:"h-6 gap-1.5 px-1.5",children:[t.jsx(Ft,{className:"size-3.5"}),t.jsxs("span",{className:O("flex items-center gap-1",x?"text-status-warning-fg":"text-muted-foreground"),children:[x&&t.jsx("span",{"aria-hidden":!0,className:"bg-status-warning size-1.5 rounded-full"}),d]})]})}),t.jsxs(je,{align:"end","aria-label":"Unfinished work","data-testid":"doc-work-panel",className:"flex max-h-[min(70vh,36rem)] w-[min(24rem,calc(100vw-2rem))] flex-col gap-3 overflow-y-auto p-3",children:[t.jsx(ke,{children:"Unfinished work"}),t.jsxs("div",{className:"space-y-1",children:[t.jsx("h3",{className:"hidden text-sm font-medium md:block",children:"Unfinished work"}),t.jsx("p",{className:"text-muted-foreground text-xs",children:"Nothing runs again until you choose."})]}),!s&&t.jsx("p",{className:"bg-status-warning-bg text-status-warning-fg rounded-md px-2 py-1.5 text-xs",children:"Offline. Changes wait until you reconnect."}),i.isError&&t.jsxs("div",{role:"alert",className:"flex items-center justify-between gap-2 text-xs",children:[t.jsx("span",{className:"text-destructive",children:"Couldn’t refresh this list."}),t.jsx(b,{type:"button",variant:"ghost",size:"sm",onClick:()=>void i.refetch(),children:"Try again"})]}),t.jsx("ul",{className:"space-y-2","aria-label":"Work to review",children:g.map(c=>t.jsx(Tn,{documentId:e,item:c,route:n.find(R=>R.id===c.routeId),online:s,onAnnounce:a},c.batchId))})]})]})]})}function Dn(e,n){return n>0?`${n} waiting`:e>0?`${e} on`:"Off"}function We({documentId:e}){var x;const[n,s]=h.useState(!1),[r,l]=h.useState(""),m=xn(),o=hn(e,n),i=h.useCallback(y=>l(y),[]),a=((x=o.data)==null?void 0:x.routes)??[];if(a.length===0)return null;const{on:g,waiting:p}=un(a),d=Dn(g,p);return t.jsxs("div",{"data-testid":"doc-routes-bar",className:"text-muted-foreground flex items-center justify-end gap-1 border-b px-3 py-1 text-xs",children:[t.jsx(An,{documentId:e,routes:a,online:m}),t.jsxs(be,{open:n,onOpenChange:s,modal:!0,fullHeight:!0,children:[t.jsx(we,{asChild:!0,children:t.jsxs(b,{type:"button",variant:"ghost",size:"sm","data-testid":"doc-routes-trigger","aria-label":`Event routes: ${d}`,className:"h-6 gap-1.5 px-1.5",children:[t.jsx(qt,{className:"size-3.5"}),"Routes",t.jsxs("span",{className:O("flex items-center gap-1",p>0?"text-status-warning-fg":"text-muted-foreground"),children:[p>0&&t.jsx("span",{"aria-hidden":!0,className:"bg-status-warning size-1.5 rounded-full"}),d]})]})}),t.jsxs(je,{align:"end","aria-label":"Event routes","data-testid":"doc-routes-panel",className:"flex max-h-[min(70vh,36rem)] w-[min(24rem,calc(100vw-2rem))] flex-col gap-3 overflow-y-auto p-3",children:[t.jsx(ke,{children:"Event routes"}),t.jsxs("div",{className:"space-y-1",children:[t.jsx("h3",{className:"hidden text-sm font-medium md:block",children:"Event routes"}),t.jsx("p",{className:"text-muted-foreground text-xs",children:"A route does nothing until it’s allowed."})]}),!m&&t.jsx("p",{"data-testid":"doc-routes-offline",className:"bg-status-warning-bg text-status-warning-fg rounded-md px-2 py-1.5 text-xs",children:"Offline. Changes wait until you reconnect."}),o.isError&&t.jsxs("div",{role:"alert",className:"flex items-center justify-between gap-2 text-xs",children:[t.jsx("span",{className:"text-destructive",children:"Couldn’t refresh routes."}),t.jsx(b,{type:"button",variant:"ghost",size:"sm",onClick:()=>void o.refetch(),children:"Try again"})]}),t.jsx("ul",{className:"space-y-2","aria-label":"Declared routes",children:a.map(y=>t.jsx(yn,{documentId:e,route:y,online:m,onAnnounce:i},y.id))}),t.jsx("p",{role:"status","aria-live":"polite",className:"sr-only",children:r})]})]})]})}function _n({sourceLabel:e,people:n,following:s,onFollow:r,onStopFollowing:l,onDiscuss:m,discussing:o=!1}){const i=n.find(a=>a.id===s)??null;return e===void 0&&n.length===0&&m===void 0?null:t.jsxs("div",{className:"text-muted-foreground flex items-center gap-2 border-b px-3 py-1 text-xs",children:[e!==void 0&&t.jsx("span",{className:"min-w-0 flex-1 truncate",children:e}),e===void 0&&t.jsx("span",{className:"flex-1"}),m&&t.jsxs(b,{type:"button",variant:"ghost",size:"sm",className:"h-6 gap-1 px-1.5",disabled:o,onClick:m,children:[t.jsx(vt,{className:"size-3.5"}),"Discuss"]}),n.length>0&&t.jsxs(yt,{children:[t.jsx(bt,{asChild:!0,children:t.jsxs(b,{type:"button",variant:"ghost",size:"sm",className:O("h-6 gap-1 px-1.5",i&&"text-foreground"),children:[t.jsx(wt,{className:"size-3.5"}),i?`Following ${i.displayName}`:"Follow"]})}),t.jsxs(jt,{align:"end",children:[t.jsx(kt,{children:"Follow somebody’s browser"}),n.map(a=>t.jsxs(me,{onSelect:()=>a.id===s?l():r(a.id),children:[t.jsx(Z,{"aria-hidden":!0,size:"xs",className:"size-4 shrink-0 text-[9px]",kind:a.kind,color:a.color??te(a.id),emoji:a.emoji,imageUrl:a.imageUrl,badge:null,fallback:ee(a.displayName)}),t.jsx("span",{className:"min-w-0 flex-1 truncate",children:a.displayName}),a.id===s&&t.jsx(Nt,{className:"size-3.5 shrink-0"})]},a.id)),i&&t.jsx(me,{onSelect:l,children:"Stop following"})]})]})]})}function In({roomId:e,document:n,reading:s}){const r=D(),l=se(),[m,o]=h.useState(null),i=h.useMemo(()=>Pt({transport:r,queryClient:l,roomId:e}),[r,l,e]);return t.jsxs("div",{className:"flex h-full items-start justify-center p-6",children:[t.jsxs("div",{className:"bg-card shadow-soft w-full max-w-md space-y-3 rounded-lg border p-4",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(Ce,{className:"text-muted-foreground size-4 shrink-0"}),t.jsx("span",{className:"truncate text-sm font-medium",children:n.title||s.sourcePath})]}),t.jsx("p",{className:"text-muted-foreground font-mono text-xs break-all",children:s.sourcePath}),s.kind==="elsewhere"?t.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:s.sentence}):t.jsxs(t.Fragment,{children:[t.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:"A room file. Each save is recorded with your name."}),t.jsx(b,{type:"button",size:"sm",onClick:()=>o(s.sourcePath),children:"Open file"})]})]}),s.kind==="room-file"&&t.jsx(Ht,{source:i,path:m,onClose:()=>o(null)})]})}const Sn=["image","pdf","audio","video","csv","model3d"];function On(e){return/^(https?:|data:)/.test(e)||It(e)}function zn(e){if(e.type==="file"||e.type==="diff")return e.sourcePath;if(e.type==="markdown")return e.sourcePath??null;if(Sn.includes(e.type)){const n=e.src;return On(n)?null:n}return null}function Mn(e){return e.type==="file"||e.type==="diff"||e.type==="markdown"}function Un(e){const n=/^(?:in )?(.+?)['’]s /.exec(e.sourceLabel??"");return(n==null?void 0:n[1])??"another member"}function Ln(e){const n=zn(e.content);if(n===null)return{kind:"inline"};if(e.treeKind==="room-main"||e.treeKind===void 0)return Mn(e.content)?{kind:"room-file",sourcePath:n}:{kind:"elsewhere",sourcePath:n,sentence:"This file is in the room’s files. Open it from Files in the Room tab."};if(e.content.type==="diff"&&e.treeKind==="worktree"&&typeof e.aheadOfMain=="number"&&e.aheadOfMain>0)return{kind:"worktree-diff",sourcePath:n,content:e.content};if(e.content.type==="markdown")return{kind:"inline"};const s=Un(e);return{kind:"elsewhere",sourcePath:n,sentence:`${s.charAt(0).toUpperCase()}${s.slice(1)}’s project isn’t open to you. Ask them to share it, or open your copy.`}}function $n(e){return e.title||e.contentType}function Fn({roomId:e,document:n,onUpdate:s}){const r=Ln(n);return r.kind==="worktree-diff"?t.jsx(At,{roomId:e,content:r.content,documentId:n.id,authorId:n.authorId}):r.kind!=="inline"?t.jsx(In,{roomId:e,document:n,reading:r}):n.content.type==="markdown"?t.jsx(zt,{roomId:e,document:n,content:n.content,onSave:s}):t.jsx(Re,{documentId:n.id,content:n.content,onContentChange:()=>{}})}function Ke({roomId:e,view:n}){var le;const s=Ne(),r=k(u=>u.roomCanvasDocuments[e]),l=k(u=>{var f;return((f=u.roomCanvasActive[e])==null?void 0:f[n])??null}),m=k(u=>{var f;return(f=u.roomCanvasUnread[e])==null?void 0:f[n]}),o=k(u=>u.activateRoomCanvasDocument),i=k(u=>u.clearRoomCanvasUnread),a=k(u=>u.roomCanvasPresence[e]),g=St(e),p=Ct(e),d=D(),x=((le=p.data)==null?void 0:le.viewerAuthorId)??null,y=k(u=>u.roomCanvasEditing[e]??null),c=Rt(u=>u.openThread),[R,w]=h.useState(!1),E=n==="browser"?e:null,{following:I,follow:z,stop:V}=$t(E),N=Et(E),_=h.useRef(null),C=h.useCallback(async(u,f)=>{try{return await f(),!0}catch(M){return he.error(u,{description:pe(M)}),!1}},[]),T=h.useMemo(()=>Tt(r??[],n),[r,n]),j=T.find(u=>u.id===l)??null,oe=(m==null?void 0:m.length)??0;h.useEffect(()=>{oe>0&&i(e,n)},[oe,i,e,n]);const Ye=h.useMemo(()=>{var ce;const u=new Map(((ce=p.data)==null?void 0:ce.members.map(v=>[v.author.id,v.author]))??[]),f=v=>({id:v.id,displayName:v.displayName,kind:v.kind,...v.emoji?{emoji:v.emoji}:{},...v.color?{color:v.color}:{},...v.imageUrl?{imageUrl:v.imageUrl}:{}}),M=new Map;for(const[v,U]of Object.entries(a??{})){if(v===x)continue;const S=u.get(v);if(!S)continue;const de=M.get(U);de?de.push(f(S)):M.set(U,[f(S)])}return T.map(v=>{const U=u.get(v.authorId),S=M.get(v.id);return{id:v.id,sourceLabel:$n(v),contentType:v.content.type,pinned:v.pinned,unread:(m==null?void 0:m.includes(v.id))??!1,...U?{author:f(U)}:{},...S?{watchers:S}:{}}})},[T,p.data,m,a,x]);Ot(e,(j==null?void 0:j.id)??null);const qe=h.useMemo(()=>{var u;return(((u=p.data)==null?void 0:u.members)??[]).map(f=>f.author).filter(f=>f.kind==="human"&&f.id!==x).map(f=>({id:f.id,displayName:f.displayName,kind:f.kind,emoji:f.emoji,color:f.color,imageUrl:f.imageUrl}))},[p.data,x]),Qe=k(u=>{if(l===null)return;const f=u.browserHistories[l];return f?f.stack[f.cursor]:void 0}),Je=h.useCallback(()=>{var u;return((u=_.current)==null?void 0:u.scrollTop)??0},[]),Xe=h.useCallback(u=>{const f=_.current;return f?(f.addEventListener("scroll",u,{passive:!0}),()=>f.removeEventListener("scroll",u)):()=>{}},[]);Qt({roomId:E,viewerAuthorId:x,documentId:l,url:Qe,readScrollY:Je,subscribe:Xe});const ie=h.useMemo(()=>T.map(u=>u.id).join("\0"),[T]);h.useEffect(()=>{if(!(N===null||y!==null)&&ie.split("\0").includes(N.documentId)){if(N.documentId!==l){o(e,N.documentId);return}N.scrollY!==void 0&&_.current&&(_.current.scrollTop=N.scrollY)}},[N,y,l,ie,o,e]);const Ze=h.useCallback(()=>{j!==null&&(w(!0),d.discussCanvasDocument(e,j.id).then(u=>c(e,u.threadRootEntryId,!1)).catch(u=>{he.error("Couldn’t start a discussion.",{description:pe(u)})}).finally(()=>w(!1)))},[j,d,e,c]),et=ae(n);return t.jsxs(t.Fragment,{children:[!s&&t.jsx(Ue,{view:n,documents:Ye,activeDocumentId:l,onActivate:u=>o(e,u),onClose:u=>void C("Couldn’t take that off the canvas.",()=>g.close(u)),onPin:(u,f)=>void C(f?"Couldn’t pin that.":"Couldn’t unpin that.",()=>g.pin(u,f))}),t.jsx(_n,{sourceLabel:j==null?void 0:j.sourceLabel,people:n==="browser"?qe:[],following:I,onFollow:z,onStopFollowing:V,onDiscuss:j===null?void 0:Ze,discussing:R}),j&&t.jsx(We,{documentId:j.id},j.id),t.jsx("div",{id:et,ref:_,tabIndex:-1,className:"min-h-0 flex-1 overflow-auto focus-visible:outline-none",...!s&&j?{role:"tabpanel","aria-labelledby":re(j.id)}:{},children:j?t.jsx(Le,{documentId:j.id,children:t.jsx(Fn,{roomId:e,document:j,onUpdate:(u,f)=>C("Couldn’t save that for the room.",()=>g.update(u,f))})},j.id):t.jsx($e,{view:n,onAction:u=>void C("Couldn’t put that on the canvas.",()=>g.open(u))})})]})}function Ve({view:e}){const n=Ne(),s=k(c=>c.openDocuments),r=k(c=>e==="browser"?c.activeBrowserDocumentId:c.activeCanvasDocumentId),l=k(c=>c.activateCanvasDocument),m=k(c=>c.closeCanvasDocument),o=k(c=>c.setDocumentContent),i=k(c=>c.openCanvasDocument),a=k(c=>c.applyHeldUpdate),g=k(c=>c.discardHeldUpdate),p=Dt(s,e),d=p.find(c=>c.id===r)??null,x=p.map(c=>({id:c.id,sourceLabel:c.sourceLabel,contentType:c.content.type})),y=ae(e);return t.jsxs(t.Fragment,{children:[!n&&t.jsx(Ue,{view:e,documents:x,activeDocumentId:r,onActivate:l,onClose:m}),d&&t.jsx(We,{documentId:d.id},d.id),(d==null?void 0:d.heldUpdate)&&t.jsx(an,{onReload:()=>a(d.id),onKeepMine:()=>g(d.id)}),t.jsx("div",{id:y,tabIndex:-1,className:"min-h-0 flex-1 overflow-auto focus-visible:outline-none",...!n&&d?{role:"tabpanel","aria-labelledby":re(d.id)}:{},children:d?t.jsx(Le,{documentId:d.id,children:t.jsx(Re,{documentId:d.id,content:d.content,onContentChange:c=>o(d.id,c)})},d.id):t.jsx($e,{view:e,onAction:i})})]})}function ps(){const e=k(n=>n.roomCanvasLiveRoomId);return t.jsx("div",{"data-slot":"canvas",className:"flex h-full flex-col overflow-hidden",children:e?t.jsx(Ke,{roomId:e,view:"canvas"}):t.jsx(Ve,{view:"canvas"})})}function fs(){const e=k(n=>n.roomCanvasLiveRoomId);return t.jsx("div",{"data-slot":"browser",className:"flex h-full flex-col overflow-hidden",children:e?t.jsx(Ke,{roomId:e,view:"browser"}):t.jsx(Ve,{view:"browser"})})}export{fs as BrowserContent,ps as CanvasContent,vs as CanvasWidgetContent,ys as resetSessionCanvasImport,bs as useDevtoolsBridge,ws as useDocChannel,js as useSessionCanvas};
|