@knpkv/control-center 0.9.4 → 0.9.5
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/client/.vite/manifest.json +406 -406
- package/dist/client/assets/ActiveWorkPage-CeWw2uZl.js +2 -0
- package/dist/client/assets/ActiveWorkPage-CeWw2uZl.js.map +1 -0
- package/dist/client/assets/{AgentPage-YiYORLod.js → AgentPage-BAy7IgjJ.js} +3 -3
- package/dist/client/assets/AgentPage-BAy7IgjJ.js.map +1 -0
- package/dist/client/assets/{AtlassianOAuthCallbackPage-PfsrTytb.js → AtlassianOAuthCallbackPage-DDCTmcmB.js} +2 -2
- package/dist/client/assets/AtlassianOAuthCallbackPage-DDCTmcmB.js.map +1 -0
- package/dist/client/assets/{AuthorizedSharePage-BCwnILXF.js → AuthorizedSharePage-BZPfotuK.js} +2 -2
- package/dist/client/assets/AuthorizedSharePage-BZPfotuK.js.map +1 -0
- package/dist/client/assets/{BrowserSessionHydrator-BAb76EvO.js → BrowserSessionHydrator-B3yI9F2z.js} +2 -2
- package/dist/client/assets/{BrowserSessionHydrator-BAb76EvO.js.map → BrowserSessionHydrator-B3yI9F2z.js.map} +1 -1
- package/dist/client/assets/{CommandSearch-BSVXQfjF.js → CommandSearch-BrwiVFBI.js} +2 -2
- package/dist/client/assets/{CommandSearch-BSVXQfjF.js.map → CommandSearch-BrwiVFBI.js.map} +1 -1
- package/dist/client/assets/Domain-DH_T_LJ8.js.map +1 -1
- package/dist/client/assets/{ItemsPage-BzinDuxs.js → ItemsPage-CYmo7Dkm.js} +2 -2
- package/dist/client/assets/ItemsPage-CYmo7Dkm.js.map +1 -0
- package/dist/client/assets/{OpenPullRequestPage-BABGk9v2.js → OpenPullRequestPage-BcwTerpY.js} +2 -2
- package/dist/client/assets/OpenPullRequestPage-BcwTerpY.js.map +1 -0
- package/dist/client/assets/{Pages-Bfn7_LhJ.js → Pages-Cj24BSjm.js} +2 -2
- package/dist/client/assets/{Pages-Bfn7_LhJ.js.map → Pages-Cj24BSjm.js.map} +1 -1
- package/dist/client/assets/{PairPage-4meDmW_A.js → PairPage-JhivkRf1.js} +2 -2
- package/dist/client/assets/PairPage-JhivkRf1.js.map +1 -0
- package/dist/client/assets/PortfolioOverview-C0RZCx6V.js +2 -0
- package/dist/client/assets/PortfolioOverview-C0RZCx6V.js.map +1 -0
- package/dist/client/assets/{PullRequestReviewPanel-68vgbLzs.js → PullRequestReviewPanel-BeYAld4m.js} +4 -4
- package/dist/client/assets/{PullRequestReviewPanel-68vgbLzs.js.map → PullRequestReviewPanel-BeYAld4m.js.map} +1 -1
- package/dist/client/assets/ReleaseRoute-1bUQCSJi.js +2 -0
- package/dist/client/assets/ReleaseRoute-1bUQCSJi.js.map +1 -0
- package/dist/client/assets/{ReleaseWorkset-DcI6qwPE.js → ReleaseWorkset-DGufwIFe.js} +2 -2
- package/dist/client/assets/ReleaseWorkset-DGufwIFe.js.map +1 -0
- package/dist/client/assets/{ReviewSuggestionOverview-kNqjbwKQ.js → ReviewSuggestionOverview-CfU-Ynzq.js} +2 -2
- package/dist/client/assets/{ReviewSuggestionOverview-kNqjbwKQ.js.map → ReviewSuggestionOverview-CfU-Ynzq.js.map} +1 -1
- package/dist/client/assets/{ReviewSuggestionPublicationSurface-BtoYEprT.js → ReviewSuggestionPublicationSurface-DA-3PPs_.js} +2 -2
- package/dist/client/assets/ReviewSuggestionPublicationSurface-DA-3PPs_.js.map +1 -0
- package/dist/client/assets/{ServicesPage-DihUx1kr.js → ServicesPage-6G9OTRDn.js} +2 -2
- package/dist/client/assets/ServicesPage-6G9OTRDn.js.map +1 -0
- package/dist/client/assets/{TimelinePage-DyluBeEt.js → TimelinePage-D6YUtggO.js} +2 -2
- package/dist/client/assets/TimelinePage-D6YUtggO.js.map +1 -0
- package/dist/client/assets/{WorkspaceEntityLink-DjonIGqM.js → WorkspaceEntityLink-BqUurz8P.js} +2 -2
- package/dist/client/assets/{WorkspaceEntityLink-DjonIGqM.js.map → WorkspaceEntityLink-BqUurz8P.js.map} +1 -1
- package/dist/client/assets/{WorkspaceEntityRoute-DUVwW5WN.js → WorkspaceEntityRoute-CfupCFGN.js} +4 -4
- package/dist/client/assets/{WorkspaceEntityRoute-DUVwW5WN.js.map → WorkspaceEntityRoute-CfupCFGN.js.map} +1 -1
- package/dist/client/assets/{WorkspaceHomeLink-DSGM8jZK.js → WorkspaceHomeLink-DkAnxFk1.js} +2 -2
- package/dist/client/assets/{WorkspaceHomeLink-DSGM8jZK.js.map → WorkspaceHomeLink-DkAnxFk1.js.map} +1 -1
- package/dist/client/assets/{WorkspacePullRequestDetails-Z3MfihsH.js → WorkspacePullRequestDetails-SexYOZUB.js} +3 -3
- package/dist/client/assets/{WorkspacePullRequestDetails-Z3MfihsH.js.map → WorkspacePullRequestDetails-SexYOZUB.js.map} +1 -1
- package/dist/client/assets/{WorkspaceReleaseLayout-S6XHWEwh.js → WorkspaceReleaseLayout-J_IWrKc9.js} +2 -2
- package/dist/client/assets/{WorkspaceReleaseLayout-S6XHWEwh.js.map → WorkspaceReleaseLayout-J_IWrKc9.js.map} +1 -1
- package/dist/client/assets/{WorkspaceSettingsPage-Dn_eDC3m.js → WorkspaceSettingsPage-CFB0X_Oz.js} +2 -2
- package/dist/client/assets/WorkspaceSettingsPage-CFB0X_Oz.js.map +1 -0
- package/dist/client/assets/{angular-html-B-gwpVlh-DEM_d4RI.js → angular-html-B-gwpVlh-BHk2rITT.js} +2 -2
- package/dist/client/assets/{angular-html-B-gwpVlh-DEM_d4RI.js.map → angular-html-B-gwpVlh-BHk2rITT.js.map} +1 -1
- package/dist/client/assets/{angular-ts-BdaH9qH_-6UMLodBB.js → angular-ts-BdaH9qH_-DDpR3-gU.js} +2 -2
- package/dist/client/assets/{angular-ts-BdaH9qH_-6UMLodBB.js.map → angular-ts-BdaH9qH_-DDpR3-gU.js.map} +1 -1
- package/dist/client/assets/{apl-BLTDDucx-DIkkahEc.js → apl-BLTDDucx-C5lAAuBL.js} +2 -2
- package/dist/client/assets/{apl-BLTDDucx-DIkkahEc.js.map → apl-BLTDDucx-C5lAAuBL.js.map} +1 -1
- package/dist/client/assets/{astro-CM3EIsEH-D5DYxAYu.js → astro-CM3EIsEH-C-4mMpDY.js} +2 -2
- package/dist/client/assets/{astro-CM3EIsEH-D5DYxAYu.js.map → astro-CM3EIsEH-C-4mMpDY.js.map} +1 -1
- package/dist/client/assets/{blade-BuLZ1b4i-CBKkB_Nt.js → blade-BuLZ1b4i-Bo26Vrie.js} +2 -2
- package/dist/client/assets/{blade-BuLZ1b4i-CBKkB_Nt.js.map → blade-BuLZ1b4i-Bo26Vrie.js.map} +1 -1
- package/dist/client/assets/{c-BOe7FNWg-C15nlYFX.js → c-BOe7FNWg-Bn-hh2gC.js} +2 -2
- package/dist/client/assets/{c-BOe7FNWg-C15nlYFX.js.map → c-BOe7FNWg-Bn-hh2gC.js.map} +1 -1
- package/dist/client/assets/{chapel-DS426I0C-DoL0pgIr.js → chapel-DS426I0C-DZfMl2AF.js} +2 -2
- package/dist/client/assets/{chapel-DS426I0C-DoL0pgIr.js.map → chapel-DS426I0C-DZfMl2AF.js.map} +1 -1
- package/dist/client/assets/{cobol-D88xw2SU-DlPiznQQ.js → cobol-D88xw2SU-Dszzocsd.js} +2 -2
- package/dist/client/assets/{cobol-D88xw2SU-DlPiznQQ.js.map → cobol-D88xw2SU-Dszzocsd.js.map} +1 -1
- package/dist/client/assets/{coffee-9O-pYXz5-QB78c27T.js → coffee-9O-pYXz5-B-EAY7Cr.js} +2 -2
- package/dist/client/assets/{coffee-9O-pYXz5-QB78c27T.js.map → coffee-9O-pYXz5-B-EAY7Cr.js.map} +1 -1
- package/dist/client/assets/{controlCenterRelayDock-CDyCPu8u.js → controlCenterRelayDock-Bq4z8Xad.js} +3 -3
- package/dist/client/assets/{controlCenterRelayDock-CDyCPu8u.js.map → controlCenterRelayDock-Bq4z8Xad.js.map} +1 -1
- package/dist/client/assets/{controlCenterRelayDockChrome-BWLgzJhc.js → controlCenterRelayDockChrome-M45VQcSE.js} +2 -2
- package/dist/client/assets/{controlCenterRelayDockChrome-BWLgzJhc.js.map → controlCenterRelayDockChrome-M45VQcSE.js.map} +1 -1
- package/dist/client/assets/{cpp-CPk7VU6o-XEasjJQb.js → cpp-CPk7VU6o-B1PTCDWN.js} +2 -2
- package/dist/client/assets/{cpp-CPk7VU6o-XEasjJQb.js.map → cpp-CPk7VU6o-B1PTCDWN.js.map} +1 -1
- package/dist/client/assets/{crystal-CRftOMVe-Cl7VOKqv.js → crystal-CRftOMVe-3NFSGC4Y.js} +2 -2
- package/dist/client/assets/{crystal-CRftOMVe-Cl7VOKqv.js.map → crystal-CRftOMVe-3NFSGC4Y.js.map} +1 -1
- package/dist/client/assets/{css-DKjIhbA_-BqYkMclh.js → css-DKjIhbA_-BZzy1gno.js} +2 -2
- package/dist/client/assets/{css-DKjIhbA_-BqYkMclh.js.map → css-DKjIhbA_-BZzy1gno.js.map} +1 -1
- package/dist/client/assets/{diff-c2VIds2u.js → diff-CuvBMVEl.js} +3 -3
- package/dist/client/assets/{diff-c2VIds2u.js.map → diff-CuvBMVEl.js.map} +1 -1
- package/dist/client/assets/{edge-CZci3foK-CcvbLJND.js → edge-CZci3foK-BdZTWeOq.js} +2 -2
- package/dist/client/assets/{edge-CZci3foK-CcvbLJND.js.map → edge-CZci3foK-BdZTWeOq.js.map} +1 -1
- package/dist/client/assets/{elixir-BFbWRTPN-DCo1tsYk.js → elixir-BFbWRTPN-BSsfSNAc.js} +2 -2
- package/dist/client/assets/{elixir-BFbWRTPN-DCo1tsYk.js.map → elixir-BFbWRTPN-BSsfSNAc.js.map} +1 -1
- package/dist/client/assets/{elm-BFCSOEGh-KAuEEkOS.js → elm-BFCSOEGh-B7etdM00.js} +2 -2
- package/dist/client/assets/{elm-BFCSOEGh-KAuEEkOS.js.map → elm-BFCSOEGh-B7etdM00.js.map} +1 -1
- package/dist/client/assets/{erb-C0EkZJvn-3O5TlDRJ.js → erb-C0EkZJvn-BUpElafA.js} +2 -2
- package/dist/client/assets/{erb-C0EkZJvn-3O5TlDRJ.js.map → erb-C0EkZJvn-BUpElafA.js.map} +1 -1
- package/dist/client/assets/{git-rebase-DBDs07B2-BKfziPiX.js → git-rebase-DBDs07B2-3YW7dddl.js} +2 -2
- package/dist/client/assets/{git-rebase-DBDs07B2-BKfziPiX.js.map → git-rebase-DBDs07B2-3YW7dddl.js.map} +1 -1
- package/dist/client/assets/{glimmer-js-oqYt1Bty-oOPiIwDh.js → glimmer-js-oqYt1Bty-Q18N5198.js} +2 -2
- package/dist/client/assets/{glimmer-js-oqYt1Bty-oOPiIwDh.js.map → glimmer-js-oqYt1Bty-Q18N5198.js.map} +1 -1
- package/dist/client/assets/{glimmer-ts-CjmgbZTn-C8gjUbKN.js → glimmer-ts-CjmgbZTn-DflPUBBN.js} +2 -2
- package/dist/client/assets/{glimmer-ts-CjmgbZTn-C8gjUbKN.js.map → glimmer-ts-CjmgbZTn-DflPUBBN.js.map} +1 -1
- package/dist/client/assets/{glsl-BqUMGrwT-5PoVKbXD.js → glsl-BqUMGrwT-DZSnNyRQ.js} +2 -2
- package/dist/client/assets/{glsl-BqUMGrwT-5PoVKbXD.js.map → glsl-BqUMGrwT-DZSnNyRQ.js.map} +1 -1
- package/dist/client/assets/{graphql-CEJryLGF-Bx3HP-fV.js → graphql-CEJryLGF-BxoDC-bv.js} +2 -2
- package/dist/client/assets/{graphql-CEJryLGF-Bx3HP-fV.js.map → graphql-CEJryLGF-BxoDC-bv.js.map} +1 -1
- package/dist/client/assets/{hack-DwBIwaGr-C2bRI1k_.js → hack-DwBIwaGr-BD9UbS9V.js} +2 -2
- package/dist/client/assets/{hack-DwBIwaGr-C2bRI1k_.js.map → hack-DwBIwaGr-BD9UbS9V.js.map} +1 -1
- package/dist/client/assets/{haml-BgD6GFV2-C-E92qmq.js → haml-BgD6GFV2-tYRnxnkA.js} +2 -2
- package/dist/client/assets/{haml-BgD6GFV2-C-E92qmq.js.map → haml-BgD6GFV2-tYRnxnkA.js.map} +1 -1
- package/dist/client/assets/{handlebars-DAEAtsmp-B3Qkz-fG.js → handlebars-DAEAtsmp-CzuHoTaP.js} +2 -2
- package/dist/client/assets/{handlebars-DAEAtsmp-B3Qkz-fG.js.map → handlebars-DAEAtsmp-CzuHoTaP.js.map} +1 -1
- package/dist/client/assets/{html-B63qAdeQ-mzUq7RfB.js → html-B63qAdeQ-BvgXBi7v.js} +2 -2
- package/dist/client/assets/{html-B63qAdeQ-mzUq7RfB.js.map → html-B63qAdeQ-BvgXBi7v.js.map} +1 -1
- package/dist/client/assets/{html-derivative-DliF0Izh-DKttJgx1.js → html-derivative-DliF0Izh-BdazZa_A.js} +2 -2
- package/dist/client/assets/{html-derivative-DliF0Izh-DKttJgx1.js.map → html-derivative-DliF0Izh-BdazZa_A.js.map} +1 -1
- package/dist/client/assets/{http-BPdteiK2-BzL978Ty.js → http-BPdteiK2-DscIPq9Z.js} +2 -2
- package/dist/client/assets/{http-BPdteiK2-BzL978Ty.js.map → http-BPdteiK2-DscIPq9Z.js.map} +1 -1
- package/dist/client/assets/{hurl-y6bQoMbn-VmDIgNNg.js → hurl-y6bQoMbn-BniTWOKW.js} +2 -2
- package/dist/client/assets/{hurl-y6bQoMbn-VmDIgNNg.js.map → hurl-y6bQoMbn-BniTWOKW.js.map} +1 -1
- package/dist/client/assets/{index-BHQ_NP1r.js → index-DlDEYM2e.js} +3 -3
- package/dist/client/assets/{index-BHQ_NP1r.js.map → index-DlDEYM2e.js.map} +1 -1
- package/dist/client/assets/index-vGJLpF-N.css +1 -0
- package/dist/client/assets/{java-HDTZqoJ--r_CiLO3G.js → java-HDTZqoJ--DonfC-m-.js} +2 -2
- package/dist/client/assets/{java-HDTZqoJ--r_CiLO3G.js.map → java-HDTZqoJ--DonfC-m-.js.map} +1 -1
- package/dist/client/assets/{javascript-B8-PXjxO-D8IL8RVw.js → javascript-B8-PXjxO-DrojTnjU.js} +2 -2
- package/dist/client/assets/{javascript-B8-PXjxO-D8IL8RVw.js.map → javascript-B8-PXjxO-DrojTnjU.js.map} +1 -1
- package/dist/client/assets/{jinja-Li2helwk-iQ5WpNSs.js → jinja-Li2helwk-Bn7ViII1.js} +2 -2
- package/dist/client/assets/{jinja-Li2helwk-iQ5WpNSs.js.map → jinja-Li2helwk-Bn7ViII1.js.map} +1 -1
- package/dist/client/assets/{jison-D4pd2L4r-CnB2TCTC.js → jison-D4pd2L4r-CURwtPm2.js} +2 -2
- package/dist/client/assets/{jison-D4pd2L4r-CnB2TCTC.js.map → jison-D4pd2L4r-CURwtPm2.js.map} +1 -1
- package/dist/client/assets/{json-CHeq_08V-BzfhDAQG.js → json-CHeq_08V-DGJ-08B3.js} +2 -2
- package/dist/client/assets/{json-CHeq_08V-BzfhDAQG.js.map → json-CHeq_08V-DGJ-08B3.js.map} +1 -1
- package/dist/client/assets/{jsx-CTDAtxCE-BHaCLB5C.js → jsx-CTDAtxCE-B7AjYoF3.js} +2 -2
- package/dist/client/assets/{jsx-CTDAtxCE-BHaCLB5C.js.map → jsx-CTDAtxCE-B7AjYoF3.js.map} +1 -1
- package/dist/client/assets/{julia-B8HGxjvO-DUNXU97h.js → julia-B8HGxjvO-CX2HXF0x.js} +2 -2
- package/dist/client/assets/{julia-B8HGxjvO-DUNXU97h.js.map → julia-B8HGxjvO-CX2HXF0x.js.map} +1 -1
- package/dist/client/assets/{just-C1IY8eCo-CwcMki68.js → just-C1IY8eCo-194MeSWx.js} +2 -2
- package/dist/client/assets/{just-C1IY8eCo-CwcMki68.js.map → just-C1IY8eCo-194MeSWx.js.map} +1 -1
- package/dist/client/assets/{latex-CWjLpLhK-C2bYvB1V.js → latex-CWjLpLhK-CJV_bAR4.js} +2 -2
- package/dist/client/assets/{latex-CWjLpLhK-C2bYvB1V.js.map → latex-CWjLpLhK-CJV_bAR4.js.map} +1 -1
- package/dist/client/assets/{liquid-DO0vm52w-5ftSWtSQ.js → liquid-DO0vm52w-C-oH3gBH.js} +2 -2
- package/dist/client/assets/{liquid-DO0vm52w-5ftSWtSQ.js.map → liquid-DO0vm52w-C-oH3gBH.js.map} +1 -1
- package/dist/client/assets/{lua-rOZn354j-BFEal9UY.js → lua-rOZn354j-CWNr0VLI.js} +2 -2
- package/dist/client/assets/{lua-rOZn354j-BFEal9UY.js.map → lua-rOZn354j-CWNr0VLI.js.map} +1 -1
- package/dist/client/assets/{marko-CiZdnOV9-VE4QpTYR.js → marko-CiZdnOV9-D1oeBgJ5.js} +2 -2
- package/dist/client/assets/{marko-CiZdnOV9-VE4QpTYR.js.map → marko-CiZdnOV9-D1oeBgJ5.js.map} +1 -1
- package/dist/client/assets/{mdc-D1ADfxGi-DASKK9_I.js → mdc-D1ADfxGi-DDe8MjBS.js} +2 -2
- package/dist/client/assets/{mdc-D1ADfxGi-DASKK9_I.js.map → mdc-D1ADfxGi-DDe8MjBS.js.map} +1 -1
- package/dist/client/assets/{nginx-8KXIzHX2-OWn8Z957.js → nginx-8KXIzHX2-76JDQPWv.js} +2 -2
- package/dist/client/assets/{nginx-8KXIzHX2-OWn8Z957.js.map → nginx-8KXIzHX2-76JDQPWv.js.map} +1 -1
- package/dist/client/assets/{nim-CbBDSJf5-DzS23snq.js → nim-CbBDSJf5-Bg0Tpvlj.js} +2 -2
- package/dist/client/assets/{nim-CbBDSJf5-DzS23snq.js.map → nim-CbBDSJf5-Bg0Tpvlj.js.map} +1 -1
- package/dist/client/assets/{org-BlnOvN6p-mzfee9SX.js → org-BlnOvN6p-CpQvn0Ms.js} +2 -2
- package/dist/client/assets/{org-BlnOvN6p-mzfee9SX.js.map → org-BlnOvN6p-CpQvn0Ms.js.map} +1 -1
- package/dist/client/assets/patterns-CJ4c7F5A.js +2 -0
- package/dist/client/assets/patterns-CJ4c7F5A.js.map +1 -0
- package/dist/client/assets/{perl-CntHWu4k-C3Q6THHX.js → perl-CntHWu4k-R8g6ivQx.js} +2 -2
- package/dist/client/assets/{perl-CntHWu4k-C3Q6THHX.js.map → perl-CntHWu4k-R8g6ivQx.js.map} +1 -1
- package/dist/client/assets/{php-VF06KE26-uqmHEtRE.js → php-VF06KE26-qz2OohxQ.js} +2 -2
- package/dist/client/assets/{php-VF06KE26-uqmHEtRE.js.map → php-VF06KE26-qz2OohxQ.js.map} +1 -1
- package/dist/client/assets/primitives-Dj-qYrUZ-BIf5RLs4.js +2 -0
- package/dist/client/assets/primitives-Dj-qYrUZ-BIf5RLs4.js.map +1 -0
- package/dist/client/assets/{pug-DeZwH1tK-Dy2R8X_Z.js → pug-DeZwH1tK-hE7p1XRn.js} +2 -2
- package/dist/client/assets/{pug-DeZwH1tK-Dy2R8X_Z.js.map → pug-DeZwH1tK-hE7p1XRn.js.map} +1 -1
- package/dist/client/assets/{pullRequestReviewThreadReplay-Dhslqjta.js → pullRequestReviewThreadReplay-D-FuOlQ0.js} +2 -2
- package/dist/client/assets/{pullRequestReviewThreadReplay-Dhslqjta.js.map → pullRequestReviewThreadReplay-D-FuOlQ0.js.map} +1 -1
- package/dist/client/assets/{qml-CQhAR2tt-CkperL57.js → qml-CQhAR2tt-Blcerr_b.js} +2 -2
- package/dist/client/assets/{qml-CQhAR2tt-CkperL57.js.map → qml-CQhAR2tt-Blcerr_b.js.map} +1 -1
- package/dist/client/assets/{r-CGShpgkr-BeuwoEHJ.js → r-CGShpgkr-Bu3ifplH.js} +2 -2
- package/dist/client/assets/{r-CGShpgkr-BeuwoEHJ.js.map → r-CGShpgkr-Bu3ifplH.js.map} +1 -1
- package/dist/client/assets/{razor-CgB2QCs6-C9kZAmAY.js → razor-CgB2QCs6-C0YckD9e.js} +2 -2
- package/dist/client/assets/{razor-CgB2QCs6-C9kZAmAY.js.map → razor-CgB2QCs6-C0YckD9e.js.map} +1 -1
- package/dist/client/assets/{regexp-go_CdRjx-BvThUXwF.js → regexp-go_CdRjx-FwuQxSe1.js} +2 -2
- package/dist/client/assets/{regexp-go_CdRjx-BvThUXwF.js.map → regexp-go_CdRjx-FwuQxSe1.js.map} +1 -1
- package/dist/client/assets/{releaseRoutes-D04aOk03.js → releaseRoutes-Bpw_kfZI.js} +2 -2
- package/dist/client/assets/{releaseRoutes-D04aOk03.js.map → releaseRoutes-Bpw_kfZI.js.map} +1 -1
- package/dist/client/assets/{rst-CbWMI8ou-B_CNFtWj.js → rst-CbWMI8ou-_a-jzVR0.js} +2 -2
- package/dist/client/assets/{rst-CbWMI8ou-B_CNFtWj.js.map → rst-CbWMI8ou-_a-jzVR0.js.map} +1 -1
- package/dist/client/assets/{ruby-DsGwIs06-BNNoCsny.js → ruby-DsGwIs06-CvuKCvaN.js} +2 -2
- package/dist/client/assets/{ruby-DsGwIs06-BNNoCsny.js.map → ruby-DsGwIs06-CvuKCvaN.js.map} +1 -1
- package/dist/client/assets/{sas-DjxN8J4Z-DQwiaVY0.js → sas-DjxN8J4Z-6vMiHBWz.js} +2 -2
- package/dist/client/assets/{sas-DjxN8J4Z-DQwiaVY0.js.map → sas-DjxN8J4Z-6vMiHBWz.js.map} +1 -1
- package/dist/client/assets/{scss-bkiiULjK-BdNohiDl.js → scss-bkiiULjK-RWkdLi31.js} +2 -2
- package/dist/client/assets/{scss-bkiiULjK-BdNohiDl.js.map → scss-bkiiULjK-RWkdLi31.js.map} +1 -1
- package/dist/client/assets/{shellscript-Cuh1SIPr-CH9Y9Zzx.js → shellscript-Cuh1SIPr-xep8lhFb.js} +2 -2
- package/dist/client/assets/{shellscript-Cuh1SIPr-CH9Y9Zzx.js.map → shellscript-Cuh1SIPr-xep8lhFb.js.map} +1 -1
- package/dist/client/assets/{shellsession-C4UOwxb7-BVPXZqFb.js → shellsession-C4UOwxb7-B2Mjt8G4.js} +2 -2
- package/dist/client/assets/{shellsession-C4UOwxb7-BVPXZqFb.js.map → shellsession-C4UOwxb7-B2Mjt8G4.js.map} +1 -1
- package/dist/client/assets/{soy-CeGFXpLT-bVeC_qdu.js → soy-CeGFXpLT-DB96q8ji.js} +2 -2
- package/dist/client/assets/{soy-CeGFXpLT-bVeC_qdu.js.map → soy-CeGFXpLT-DB96q8ji.js.map} +1 -1
- package/dist/client/assets/{sql-qDYmMTO1-DRMw6L4F.js → sql-qDYmMTO1-Dp7sA9Pq.js} +2 -2
- package/dist/client/assets/{sql-qDYmMTO1-DRMw6L4F.js.map → sql-qDYmMTO1-Dp7sA9Pq.js.map} +1 -1
- package/dist/client/assets/{stata-Dzus_rwP-DcGzBrZt.js → stata-Dzus_rwP-Bk81H3oK.js} +2 -2
- package/dist/client/assets/{stata-Dzus_rwP-DcGzBrZt.js.map → stata-Dzus_rwP-Bk81H3oK.js.map} +1 -1
- package/dist/client/assets/{surrealql-DmTrf8uR-BGVhamzy.js → surrealql-DmTrf8uR-BAVDL68E.js} +2 -2
- package/dist/client/assets/{surrealql-DmTrf8uR-BGVhamzy.js.map → surrealql-DmTrf8uR-BAVDL68E.js.map} +1 -1
- package/dist/client/assets/{svelte-CWlRonoS-d0HsRKWL.js → svelte-CWlRonoS-g4MbXmCf.js} +2 -2
- package/dist/client/assets/{svelte-CWlRonoS-d0HsRKWL.js.map → svelte-CWlRonoS-g4MbXmCf.js.map} +1 -1
- package/dist/client/assets/{templ-EuFg1gKs-BBJ25IwK.js → templ-EuFg1gKs-B9lc3TqB.js} +2 -2
- package/dist/client/assets/{templ-EuFg1gKs-BBJ25IwK.js.map → templ-EuFg1gKs-B9lc3TqB.js.map} +1 -1
- package/dist/client/assets/{tex-Cbbx1SXS-Dh8M7x1F.js → tex-Cbbx1SXS-DPEKlVuI.js} +2 -2
- package/dist/client/assets/{tex-Cbbx1SXS-Dh8M7x1F.js.map → tex-Cbbx1SXS-DPEKlVuI.js.map} +1 -1
- package/dist/client/assets/{ts-tags-DOHpIWV2-DXabLRoX.js → ts-tags-DOHpIWV2-DN6mmSGx.js} +2 -2
- package/dist/client/assets/{ts-tags-DOHpIWV2-DXabLRoX.js.map → ts-tags-DOHpIWV2-DN6mmSGx.js.map} +1 -1
- package/dist/client/assets/{tsx-DmRL3u_2-Cn0tVC2C.js → tsx-DmRL3u_2-DulNQGwe.js} +2 -2
- package/dist/client/assets/{tsx-DmRL3u_2-Cn0tVC2C.js.map → tsx-DmRL3u_2-DulNQGwe.js.map} +1 -1
- package/dist/client/assets/{twig-BzcHspK1-BW8kSayf.js → twig-BzcHspK1-j95wbDo4.js} +2 -2
- package/dist/client/assets/{twig-BzcHspK1-BW8kSayf.js.map → twig-BzcHspK1-j95wbDo4.js.map} +1 -1
- package/dist/client/assets/{typescript-BYTx4UxO-XIX20smz.js → typescript-BYTx4UxO-C2eU2nTQ.js} +2 -2
- package/dist/client/assets/{typescript-BYTx4UxO-XIX20smz.js.map → typescript-BYTx4UxO-C2eU2nTQ.js.map} +1 -1
- package/dist/client/assets/{typst-BrfC91e7-BTQczO73.js → typst-BrfC91e7-Bry73qoG.js} +2 -2
- package/dist/client/assets/{typst-BrfC91e7-BTQczO73.js.map → typst-BrfC91e7-Bry73qoG.js.map} +1 -1
- package/dist/client/assets/{useWorkspaceDefaultLanding-DygvrKuK.js → useWorkspaceDefaultLanding-DPM3tzSI.js} +2 -2
- package/dist/client/assets/{useWorkspaceDefaultLanding-DygvrKuK.js.map → useWorkspaceDefaultLanding-DPM3tzSI.js.map} +1 -1
- package/dist/client/assets/{vue-B92PIQFm-Bo7Ratnf.js → vue-B92PIQFm-_KBJBFm9.js} +2 -2
- package/dist/client/assets/{vue-B92PIQFm-Bo7Ratnf.js.map → vue-B92PIQFm-_KBJBFm9.js.map} +1 -1
- package/dist/client/assets/{vue-html-EDHI-aeE-DZaGT8SW.js → vue-html-EDHI-aeE-Cx5Qo046.js} +2 -2
- package/dist/client/assets/{vue-html-EDHI-aeE-DZaGT8SW.js.map → vue-html-EDHI-aeE-Cx5Qo046.js.map} +1 -1
- package/dist/client/assets/{vue-vine-CmMdgoEY-D5tBNukX.js → vue-vine-CmMdgoEY-CDgVVhf3.js} +2 -2
- package/dist/client/assets/{vue-vine-CmMdgoEY-D5tBNukX.js.map → vue-vine-CmMdgoEY-CDgVVhf3.js.map} +1 -1
- package/dist/client/assets/{workspaceEntityRoutes-FAiial9O.js → workspaceEntityRoutes-Cc_RtLvy.js} +2 -2
- package/dist/client/assets/{workspaceEntityRoutes-FAiial9O.js.map → workspaceEntityRoutes-Cc_RtLvy.js.map} +1 -1
- package/dist/client/assets/{workspaceScrollCapture-AJpPgzgz.js → workspaceScrollCapture-Dg3Pebh8.js} +2 -2
- package/dist/client/assets/{workspaceScrollCapture-AJpPgzgz.js.map → workspaceScrollCapture-Dg3Pebh8.js.map} +1 -1
- package/dist/client/assets/{xml-Bz9Nzp99-Bj4-GEHY.js → xml-Bz9Nzp99-bfRaCa2x.js} +2 -2
- package/dist/client/assets/{xml-Bz9Nzp99-Bj4-GEHY.js.map → xml-Bz9Nzp99-bfRaCa2x.js.map} +1 -1
- package/dist/client/assets/{xsl-D0pOnfMq-9186FOf_.js → xsl-D0pOnfMq-BaQuui65.js} +2 -2
- package/dist/client/assets/{xsl-D0pOnfMq-9186FOf_.js.map → xsl-D0pOnfMq-BaQuui65.js.map} +1 -1
- package/dist/client/assets/{yaml-DKDHNCIP-ISipY-zA.js → yaml-DKDHNCIP-B5ot5BQr.js} +2 -2
- package/dist/client/assets/{yaml-DKDHNCIP-ISipY-zA.js.map → yaml-DKDHNCIP-B5ot5BQr.js.map} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/assets/controlCenterApi-CIz0g85O.js.map +1 -1
- package/package.json +8 -8
- package/dist/client/assets/ActiveWorkPage-BxSGZWS_.js +0 -2
- package/dist/client/assets/ActiveWorkPage-BxSGZWS_.js.map +0 -1
- package/dist/client/assets/AgentPage-YiYORLod.js.map +0 -1
- package/dist/client/assets/AtlassianOAuthCallbackPage-PfsrTytb.js.map +0 -1
- package/dist/client/assets/AuthorizedSharePage-BCwnILXF.js.map +0 -1
- package/dist/client/assets/ItemsPage-BzinDuxs.js.map +0 -1
- package/dist/client/assets/OpenPullRequestPage-BABGk9v2.js.map +0 -1
- package/dist/client/assets/PairPage-4meDmW_A.js.map +0 -1
- package/dist/client/assets/PortfolioOverview-BRB_qe4T.js +0 -2
- package/dist/client/assets/PortfolioOverview-BRB_qe4T.js.map +0 -1
- package/dist/client/assets/ReleaseRoute-D1srSd83.js +0 -2
- package/dist/client/assets/ReleaseRoute-D1srSd83.js.map +0 -1
- package/dist/client/assets/ReleaseWorkset-DcI6qwPE.js.map +0 -1
- package/dist/client/assets/ReviewSuggestionPublicationSurface-BtoYEprT.js.map +0 -1
- package/dist/client/assets/ServicesPage-DihUx1kr.js.map +0 -1
- package/dist/client/assets/TimelinePage-DyluBeEt.js.map +0 -1
- package/dist/client/assets/WorkspaceSettingsPage-Dn_eDC3m.js.map +0 -1
- package/dist/client/assets/index-BZ52pCV1.css +0 -1
- package/dist/client/assets/patterns-D0U0WCQS.js +0 -2
- package/dist/client/assets/patterns-D0U0WCQS.js.map +0 -1
- package/dist/client/assets/primitives-CjQX0eVM-BPKvllZ_.js +0 -2
- package/dist/client/assets/primitives-CjQX0eVM-BPKvllZ_.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{s as n}from"./hooks-CGvBGjhq.js";import{a as r,d as i,f as a,r as o,v as s}from"./Dialog-_t9OodCK-CzkLh9VB.js";import{t as c}from"./jsx-runtime-NZYk81nU.js";import{b as l,l as u,w as d,x as f,y as p}from"./index-BHQ_NP1r.js";import{n as m,v as h}from"./patterns-D0U0WCQS.js";import{n as g}from"./primitives-CjQX0eVM-BPKvllZ_.js";import{Ei as _,Ka as v,Kn as y,Kr as b,Si as x,Wr as S,Wt as C,Xr as w,mi as T}from"./agent-api-0YXZd1ag.js";import{a as E,t as D}from"./client-C9AVNoed.js";import{t as O}from"./WorkspaceEntityLink-DjonIGqM.js";var k=e(t(),1),A={body:`_body_vqgmt_1`,loading:`_loading_vqgmt_2`,content:`_content_vqgmt_3`,identity:`_identity_vqgmt_4`,identityMeta:`_identityMeta_vqgmt_5`,section:`_section_vqgmt_6`,ledger:`_ledger_vqgmt_7`,footerLink:`_footerLink_vqgmt_70`},j=v(`UnauthorizedApiError`),M={load:(e,t)=>_(T(function*(){return yield*(yield*D()).timeline.detail({params:{eventKey:e}})}).pipe(x(E)),{signal:t})},N=(e,t,n,r=M)=>{let[i,a]=(0,k.useState)(0),[o,s]=(0,k.useState)({_tag:`idle`});(0,k.useEffect)(()=>{if(e===null||t===null){s({_tag:`idle`});return}let i=new AbortController;return s({_tag:`loading`,eventKey:e,sessionKey:t}),r.load(e,i.signal).then(n=>{i.signal.aborted||s({_tag:`ready`,detail:n,eventKey:e,sessionKey:t})},r=>{i.signal.aborted||(j(r)&&n(t),s({_tag:`failed`,eventKey:e,sessionKey:t}))}),()=>i.abort()},[e,n,i,t,r]);let c=e===null||t===null?{_tag:`idle`}:o._tag===`idle`||o.eventKey!==e||o.sessionKey!==t?{_tag:`loading`,eventKey:e,sessionKey:t}:o;return{retry:(0,k.useCallback)(()=>a(e=>e+1),[]),state:c}},P=c(),F={action:`Governed action`,"plugin-sync":`Service sync`,relationship:`Delivery link`,system:`Control Center`},I=e=>b(e.occurredAt,{day:`2-digit`,hour:`2-digit`,hour12:!1,locale:`en-GB`,minute:`2-digit`,month:`short`,second:`2-digit`,year:`numeric`}),L=e=>{let t=[{label:`Actor`,value:e.identifiers.actorId},{label:`Agent job`,value:e.agentJob?.jobId??null},{label:`Action`,value:e.identifiers.actionId},{label:`Relationship`,value:e.identifiers.relationshipId},{label:`Connection`,value:e.identifiers.pluginConnectionId},{label:`Release`,value:e.identifiers.releaseId},{label:`Entity`,value:e.identifiers.entityId}];return[{label:`Event`,value:e.event.eventKey},{label:`Type`,value:e.event.eventType},...t.filter(e=>e.value!==null)]},R=({agentHref:e,event:t,onClose:n,onSessionExpired:c,sessionKey:l,transport:u})=>{let f=N(t?.eventKey??null,l,c,u);return(0,P.jsx)(a.Root,{onOpenChange:e=>{e||n()},open:t!==null,children:(0,P.jsxs)(a.Content,{closeLabel:`Close event details`,description:`Durable provenance for this exact workspace event.`,title:`Event details`,children:[(0,P.jsx)(a.Body,{className:A.body,children:t===null||f.state._tag===`idle`||f.state._tag===`loading`?(0,P.jsxs)(`div`,{"aria-busy":`true`,"aria-label":`Loading event details`,className:A.loading,children:[(0,P.jsx)(r,{height:`10rem`}),(0,P.jsx)(r,{height:`14rem`})]}):f.state._tag===`failed`?(0,P.jsx)(o,{action:(0,P.jsx)(i,{onClick:f.retry,children:`Try again`}),description:`The Timeline row remains unchanged. Its provenance could not be loaded.`,title:`Event details unavailable`,tone:`caution`}):(0,P.jsxs)(`div`,{className:A.content,children:[(0,P.jsxs)(`section`,{"aria-labelledby":`timeline-detail-title`,className:A.identity,children:[(0,P.jsx)(g,{tone:`secondary`,variant:`label`,children:F[f.state.detail.event.sourceKind]}),(0,P.jsx)(g,{as:`h2`,id:`timeline-detail-title`,variant:`page-title`,children:f.state.detail.event.title}),(0,P.jsxs)(`div`,{className:A.identityMeta,children:[(0,P.jsx)(s,{label:f.state.detail.event.actor.kind,size:`compact`,tone:f.state.detail.event.actor.kind===`agent`?`progress`:`neutral`}),f.state.detail.event.service===null?null:(0,P.jsx)(m,{service:f.state.detail.event.service,size:`compact`}),(0,P.jsx)(g,{tone:`secondary`,variant:`meta`,children:f.state.detail.event.actor.label}),(0,P.jsxs)(g,{as:`time`,dateTime:S(f.state.detail.event.occurredAt),tone:`secondary`,variant:`meta`,children:[I(f.state.detail.event),` UTC`]})]})]}),(0,P.jsxs)(`section`,{"aria-labelledby":`timeline-provenance-title`,className:A.section,children:[(0,P.jsx)(g,{as:`h3`,id:`timeline-provenance-title`,variant:`section-title`,children:`Provenance`}),(0,P.jsx)(`dl`,{className:A.ledger,children:L(f.state.detail).map(({label:e,value:t})=>(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:e}),(0,P.jsx)(`dd`,{children:t})]},e))})]})]})}),(0,P.jsx)(a.Footer,{children:(0,P.jsx)(d,{className:A.footerLink,to:e,children:`Ask Relay about this event`})})]})})},z={page:`_page_18su2_1`,hero:`_hero_18su2_2`,intro:`_intro_18su2_22`,askRelay:`_askRelay_18su2_26`,summary:`_summary_18su2_40`,filters:`_filters_18su2_89`,events:`_events_18su2_115`,rowActor:`_rowActor_18su2_122`},B={load:(e,t,n)=>_(T(function*(){let e=yield*D(),r=t.from.length===0?void 0:yield*y(C)(`${t.from}T00:00:00.000Z`),i=t.to.length===0?void 0:yield*y(C)(`${t.to}T23:59:59.999Z`);return yield*e.timeline.page({query:{...t.actorKind!==`all`&&{actor:t.actorKind},...n!==null&&{beforeEventKey:n.eventKey,beforeOccurredAt:n.occurredAt},...r!==void 0&&{from:r},limit:50,...i!==void 0&&{to:i}}})}).pipe(x(E)),{signal:e})},V=v(`UnauthorizedApiError`),H=(e,t,n,r=B)=>{let[i,a]=(0,k.useState)(0),[o,s]=(0,k.useState)({_tag:`idle`}),c=(0,k.useRef)(null),l=`${e.actorKind}|${e.from}|${e.to}`;return(0,k.useEffect)(()=>{if(c.current?.abort(),t===null){s({_tag:`idle`});return}let i=new AbortController;return c.current=i,s({_tag:`loading`}),r.load(i.signal,e,null).then(e=>{i.signal.aborted||s({_tag:`ready`,events:e.events,isLoadingMore:!1,nextCursor:e.nextCursor})},e=>{i.signal.aborted||(V(e)&&n(t),s({_tag:`failed`}))}),()=>i.abort()},[l,e,n,i,t,r]),{loadMore:(0,k.useCallback)(()=>{if(t===null||o._tag!==`ready`||o.nextCursor===null||o.isLoadingMore)return;c.current?.abort();let i=new AbortController;c.current=i;let a=o;s({...a,isLoadingMore:!0}),r.load(i.signal,e,a.nextCursor).then(e=>{i.signal.aborted||s({_tag:`ready`,events:[...a.events,...e.events],isLoadingMore:!1,nextCursor:e.nextCursor})},e=>{i.signal.aborted||(V(e)&&n(t),s({...a,isLoadingMore:!1}))})},[e,n,t,o,r]),retry:(0,k.useCallback)(()=>a(e=>e+1),[]),state:o}},U=e=>new Intl.DateTimeFormat(`en-GB`,{dateStyle:`medium`,timeStyle:`short`,timeZone:`UTC`}).format(w(e)),W=[{label:`Everyone`,value:`all`},{label:`People`,value:`human`},{label:`Agents`,value:`agent`},{label:`Services`,value:`plugin`},{label:`System`,value:`system`}],G=[`action`,`relationship`,`plugin-sync`,`system`],K=e=>W.find(t=>t.value===e)?.value??`all`,q={action:{label:`Governed action`},"plugin-sync":{label:`Service sync`},relationship:{label:`Delivery link`},system:{label:`Control Center`}},J=({actor:e,continued:t,event:n})=>(0,P.jsx)(h,{continued:t,event:{actor:e??n.actor.label,actorKind:n.actor.kind,dateTime:S(n.occurredAt),detail:q[n.sourceKind].label,...n.href!==null&&{href:n.href},id:n.eventKey,...n.service!==null&&{service:n.service},time:U(n.occurredAt),title:n.title}}),Y=e=>{switch(e._tag){case`authenticated`:return e.session.permission===`workspace-owner`;case`storage-unavailable`:return e.session?.permission===`workspace-owner`;case`anonymous`:case`blocked`:case`checking`:case`unavailable`:return!1}},X=(e,t,n,r)=>{let i=new URLSearchParams(t);return i.set(`event`,r),u(e,`?${i.toString()}`,n)},Z=({events:e})=>{let t=(0,k.useMemo)(()=>new Map([[`action`,e.filter(({sourceKind:e})=>e===`action`).length],[`relationship`,e.filter(({sourceKind:e})=>e===`relationship`).length],[`plugin-sync`,e.filter(({sourceKind:e})=>e===`plugin-sync`).length],[`system`,e.filter(({sourceKind:e})=>e===`system`).length]]),[e]);return(0,P.jsx)(`dl`,{className:z.summary,children:G.map(e=>(0,P.jsxs)(`div`,{"data-source":e,children:[(0,P.jsx)(`dt`,{children:q[e].label}),(0,P.jsx)(`dd`,{children:t.get(e)??0})]},e))})},Q=({detailTransport:e,transport:t=B}={})=>{let r=n(),a=l(),s=p(a.state),[c,m]=(0,k.useState)({actorKind:`all`,from:``,to:``}),[h,_]=(0,k.useState)(null),v=H(c,s,a.invalidateSession,t),y=u(r.pathname,r.search,r.hash),b=Y(a.state);if(v.state._tag===`idle`||v.state._tag===`loading`)return(0,P.jsx)(o,{description:`Combining durable activity across your connected services.`,title:`Loading Timeline`});if(v.state._tag===`failed`)return(0,P.jsx)(o,{action:(0,P.jsx)(i,{onClick:v.retry,children:`Try again`}),description:`The Timeline could not be read.`,title:`Timeline unavailable`});let x=v.state;return(0,P.jsxs)(`article`,{className:z.page,children:[(0,P.jsxs)(`header`,{className:z.hero,children:[(0,P.jsx)(g,{as:`p`,tone:`secondary`,variant:`label`,children:`Timeline`}),(0,P.jsxs)(g,{as:`h1`,variant:`verdict`,children:[`Everything`,(0,P.jsx)(`br`,{}),`that moved.`]}),(0,P.jsx)(g,{className:z.intro,tone:`secondary`,variant:`body-large`,children:`One chronological truth across people, agents, code, delivery links, and connected services.`}),(0,P.jsx)(d,{className:z.askRelay,to:y,children:`Ask Relay about this Timeline`})]}),(0,P.jsx)(Z,{events:x.events}),(0,P.jsxs)(`section`,{"aria-label":`Timeline filters`,className:z.filters,children:[(0,P.jsxs)(`label`,{children:[(0,P.jsx)(`span`,{children:`Actor`}),(0,P.jsx)(`select`,{value:c.actorKind,onChange:e=>m({...c,actorKind:K(e.currentTarget.value)}),children:W.map(e=>(0,P.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),(0,P.jsxs)(`label`,{children:[(0,P.jsx)(`span`,{children:`From`}),(0,P.jsx)(`input`,{type:`date`,value:c.from,onChange:e=>m({...c,from:e.currentTarget.value})})]}),(0,P.jsxs)(`label`,{children:[(0,P.jsx)(`span`,{children:`To`}),(0,P.jsx)(`input`,{type:`date`,value:c.to,onChange:e=>m({...c,to:e.currentTarget.value})})]})]}),x.events.length===0?(0,P.jsx)(o,{description:`Try a wider date range or another actor.`,title:`No activity in this view`}):(0,P.jsx)(f,{component:O,children:(0,P.jsx)(`ol`,{className:z.events,children:x.events.map((e,t)=>(0,P.jsx)(J,{actor:b?(0,P.jsxs)(`span`,{className:z.rowActor,children:[(0,P.jsx)(`span`,{children:e.actor.label}),(0,P.jsx)(i,{onClick:()=>_(e),size:`compact`,variant:`quiet`,children:`Inspect`})]}):void 0,continued:t<x.events.length-1,event:e},e.eventKey))})}),x.nextCursor===null?null:(0,P.jsx)(i,{disabled:x.isLoadingMore,onClick:v.loadMore,size:`principal`,stretch:!0,children:x.isLoadingMore?`Loading…`:`Show earlier activity`}),(0,P.jsx)(R,{agentHref:h===null?y:X(r.pathname,r.search,r.hash,h.eventKey),event:h,onClose:()=>_(null),onSessionExpired:a.invalidateSession,sessionKey:s,...e===void 0?{}:{transport:e}})]})};export{Q as TimelinePage,Y as canInspectTimelineDetails,X as timelineEventAgentPath};
|
|
2
|
-
//# sourceMappingURL=TimelinePage-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{s as n}from"./hooks-CGvBGjhq.js";import{a as r,d as i,f as a,r as o,v as s}from"./Dialog-_t9OodCK-CzkLh9VB.js";import{t as c}from"./jsx-runtime-NZYk81nU.js";import{b as l,l as u,w as d,x as f,y as p}from"./index-DlDEYM2e.js";import{v as m,y as h}from"./patterns-CJ4c7F5A.js";import{t as g}from"./primitives-Dj-qYrUZ-BIf5RLs4.js";import{Ei as _,Ka as v,Kn as y,Kr as b,Si as x,Wr as S,Wt as C,Xr as w,mi as T}from"./agent-api-0YXZd1ag.js";import{a as E,t as D}from"./client-C9AVNoed.js";import{t as O}from"./WorkspaceEntityLink-BqUurz8P.js";var k=e(t(),1),A={body:`_body_vqgmt_1`,loading:`_loading_vqgmt_2`,content:`_content_vqgmt_3`,identity:`_identity_vqgmt_4`,identityMeta:`_identityMeta_vqgmt_5`,section:`_section_vqgmt_6`,ledger:`_ledger_vqgmt_7`,footerLink:`_footerLink_vqgmt_70`},j=v(`UnauthorizedApiError`),M={load:(e,t)=>_(T(function*(){return yield*(yield*D()).timeline.detail({params:{eventKey:e}})}).pipe(x(E)),{signal:t})},N=(e,t,n,r=M)=>{let[i,a]=(0,k.useState)(0),[o,s]=(0,k.useState)({_tag:`idle`});(0,k.useEffect)(()=>{if(e===null||t===null){s({_tag:`idle`});return}let i=new AbortController;return s({_tag:`loading`,eventKey:e,sessionKey:t}),r.load(e,i.signal).then(n=>{i.signal.aborted||s({_tag:`ready`,detail:n,eventKey:e,sessionKey:t})},r=>{i.signal.aborted||(j(r)&&n(t),s({_tag:`failed`,eventKey:e,sessionKey:t}))}),()=>i.abort()},[e,n,i,t,r]);let c=e===null||t===null?{_tag:`idle`}:o._tag===`idle`||o.eventKey!==e||o.sessionKey!==t?{_tag:`loading`,eventKey:e,sessionKey:t}:o;return{retry:(0,k.useCallback)(()=>a(e=>e+1),[]),state:c}},P=c(),F={action:`Governed action`,"plugin-sync":`Service sync`,relationship:`Delivery link`,system:`Control Center`},I=e=>b(e.occurredAt,{day:`2-digit`,hour:`2-digit`,hour12:!1,locale:`en-GB`,minute:`2-digit`,month:`short`,second:`2-digit`,year:`numeric`}),L=e=>{let t=[{label:`Actor`,value:e.identifiers.actorId},{label:`Agent job`,value:e.agentJob?.jobId??null},{label:`Action`,value:e.identifiers.actionId},{label:`Relationship`,value:e.identifiers.relationshipId},{label:`Connection`,value:e.identifiers.pluginConnectionId},{label:`Release`,value:e.identifiers.releaseId},{label:`Entity`,value:e.identifiers.entityId}];return[{label:`Event`,value:e.event.eventKey},{label:`Type`,value:e.event.eventType},...t.filter(e=>e.value!==null)]},R=({agentHref:e,event:t,onClose:n,onSessionExpired:c,sessionKey:l,transport:u})=>{let f=N(t?.eventKey??null,l,c,u);return(0,P.jsx)(a.Root,{onOpenChange:e=>{e||n()},open:t!==null,children:(0,P.jsxs)(a.Content,{closeLabel:`Close event details`,description:`Durable provenance for this exact workspace event.`,title:`Event details`,children:[(0,P.jsx)(a.Body,{className:A.body,children:t===null||f.state._tag===`idle`||f.state._tag===`loading`?(0,P.jsxs)(`div`,{"aria-busy":`true`,"aria-label":`Loading event details`,className:A.loading,children:[(0,P.jsx)(r,{height:`10rem`}),(0,P.jsx)(r,{height:`14rem`})]}):f.state._tag===`failed`?(0,P.jsx)(o,{action:(0,P.jsx)(i,{onClick:f.retry,children:`Try again`}),description:`The Timeline row remains unchanged. Its provenance could not be loaded.`,title:`Event details unavailable`,tone:`caution`}):(0,P.jsxs)(`div`,{className:A.content,children:[(0,P.jsxs)(`section`,{"aria-labelledby":`timeline-detail-title`,className:A.identity,children:[(0,P.jsx)(g,{tone:`secondary`,variant:`label`,children:F[f.state.detail.event.sourceKind]}),(0,P.jsx)(g,{as:`h2`,id:`timeline-detail-title`,variant:`page-title`,children:f.state.detail.event.title}),(0,P.jsxs)(`div`,{className:A.identityMeta,children:[(0,P.jsx)(s,{label:f.state.detail.event.actor.kind,size:`compact`,tone:f.state.detail.event.actor.kind===`agent`?`progress`:`neutral`}),f.state.detail.event.service===null?null:(0,P.jsx)(h,{service:f.state.detail.event.service,size:`compact`}),(0,P.jsx)(g,{tone:`secondary`,variant:`meta`,children:f.state.detail.event.actor.label}),(0,P.jsxs)(g,{as:`time`,dateTime:S(f.state.detail.event.occurredAt),tone:`secondary`,variant:`meta`,children:[I(f.state.detail.event),` UTC`]})]})]}),(0,P.jsxs)(`section`,{"aria-labelledby":`timeline-provenance-title`,className:A.section,children:[(0,P.jsx)(g,{as:`h3`,id:`timeline-provenance-title`,variant:`section-title`,children:`Provenance`}),(0,P.jsx)(`dl`,{className:A.ledger,children:L(f.state.detail).map(({label:e,value:t})=>(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`dt`,{children:e}),(0,P.jsx)(`dd`,{children:t})]},e))})]})]})}),(0,P.jsx)(a.Footer,{children:(0,P.jsx)(d,{className:A.footerLink,to:e,children:`Ask Relay about this event`})})]})})},z={page:`_page_18su2_1`,hero:`_hero_18su2_2`,intro:`_intro_18su2_22`,askRelay:`_askRelay_18su2_26`,summary:`_summary_18su2_40`,filters:`_filters_18su2_89`,events:`_events_18su2_115`,rowActor:`_rowActor_18su2_122`},B={load:(e,t,n)=>_(T(function*(){let e=yield*D(),r=t.from.length===0?void 0:yield*y(C)(`${t.from}T00:00:00.000Z`),i=t.to.length===0?void 0:yield*y(C)(`${t.to}T23:59:59.999Z`);return yield*e.timeline.page({query:{...t.actorKind!==`all`&&{actor:t.actorKind},...n!==null&&{beforeEventKey:n.eventKey,beforeOccurredAt:n.occurredAt},...r!==void 0&&{from:r},limit:50,...i!==void 0&&{to:i}}})}).pipe(x(E)),{signal:e})},V=v(`UnauthorizedApiError`),H=(e,t,n,r=B)=>{let[i,a]=(0,k.useState)(0),[o,s]=(0,k.useState)({_tag:`idle`}),c=(0,k.useRef)(null),l=`${e.actorKind}|${e.from}|${e.to}`;return(0,k.useEffect)(()=>{if(c.current?.abort(),t===null){s({_tag:`idle`});return}let i=new AbortController;return c.current=i,s({_tag:`loading`}),r.load(i.signal,e,null).then(e=>{i.signal.aborted||s({_tag:`ready`,events:e.events,isLoadingMore:!1,nextCursor:e.nextCursor})},e=>{i.signal.aborted||(V(e)&&n(t),s({_tag:`failed`}))}),()=>i.abort()},[l,e,n,i,t,r]),{loadMore:(0,k.useCallback)(()=>{if(t===null||o._tag!==`ready`||o.nextCursor===null||o.isLoadingMore)return;c.current?.abort();let i=new AbortController;c.current=i;let a=o;s({...a,isLoadingMore:!0}),r.load(i.signal,e,a.nextCursor).then(e=>{i.signal.aborted||s({_tag:`ready`,events:[...a.events,...e.events],isLoadingMore:!1,nextCursor:e.nextCursor})},e=>{i.signal.aborted||(V(e)&&n(t),s({...a,isLoadingMore:!1}))})},[e,n,t,o,r]),retry:(0,k.useCallback)(()=>a(e=>e+1),[]),state:o}},U=e=>new Intl.DateTimeFormat(`en-GB`,{dateStyle:`medium`,timeStyle:`short`,timeZone:`UTC`}).format(w(e)),W=[{label:`Everyone`,value:`all`},{label:`People`,value:`human`},{label:`Agents`,value:`agent`},{label:`Services`,value:`plugin`},{label:`System`,value:`system`}],G=[`action`,`relationship`,`plugin-sync`,`system`],K=e=>W.find(t=>t.value===e)?.value??`all`,q={action:{label:`Governed action`},"plugin-sync":{label:`Service sync`},relationship:{label:`Delivery link`},system:{label:`Control Center`}},J=({actor:e,continued:t,event:n})=>(0,P.jsx)(m,{continued:t,event:{actor:e??n.actor.label,actorKind:n.actor.kind,dateTime:S(n.occurredAt),detail:q[n.sourceKind].label,...n.href!==null&&{href:n.href},id:n.eventKey,...n.service!==null&&{service:n.service},time:U(n.occurredAt),title:n.title}}),Y=e=>{switch(e._tag){case`authenticated`:return e.session.permission===`workspace-owner`;case`storage-unavailable`:return e.session?.permission===`workspace-owner`;case`anonymous`:case`blocked`:case`checking`:case`unavailable`:return!1}},X=(e,t,n,r)=>{let i=new URLSearchParams(t);return i.set(`event`,r),u(e,`?${i.toString()}`,n)},Z=({events:e})=>{let t=(0,k.useMemo)(()=>new Map([[`action`,e.filter(({sourceKind:e})=>e===`action`).length],[`relationship`,e.filter(({sourceKind:e})=>e===`relationship`).length],[`plugin-sync`,e.filter(({sourceKind:e})=>e===`plugin-sync`).length],[`system`,e.filter(({sourceKind:e})=>e===`system`).length]]),[e]);return(0,P.jsx)(`dl`,{className:z.summary,children:G.map(e=>(0,P.jsxs)(`div`,{"data-source":e,children:[(0,P.jsx)(`dt`,{children:q[e].label}),(0,P.jsx)(`dd`,{children:t.get(e)??0})]},e))})},Q=({detailTransport:e,transport:t=B}={})=>{let r=n(),a=l(),s=p(a.state),[c,m]=(0,k.useState)({actorKind:`all`,from:``,to:``}),[h,_]=(0,k.useState)(null),v=H(c,s,a.invalidateSession,t),y=u(r.pathname,r.search,r.hash),b=Y(a.state);if(v.state._tag===`idle`||v.state._tag===`loading`)return(0,P.jsx)(o,{description:`Combining durable activity across your connected services.`,title:`Loading Timeline`});if(v.state._tag===`failed`)return(0,P.jsx)(o,{action:(0,P.jsx)(i,{onClick:v.retry,children:`Try again`}),description:`The Timeline could not be read.`,title:`Timeline unavailable`});let x=v.state;return(0,P.jsxs)(`article`,{className:z.page,children:[(0,P.jsxs)(`header`,{className:z.hero,children:[(0,P.jsx)(g,{as:`p`,tone:`secondary`,variant:`label`,children:`Timeline`}),(0,P.jsxs)(g,{as:`h1`,variant:`verdict`,children:[`Everything`,(0,P.jsx)(`br`,{}),`that moved.`]}),(0,P.jsx)(g,{className:z.intro,tone:`secondary`,variant:`body-large`,children:`One chronological truth across people, agents, code, delivery links, and connected services.`}),(0,P.jsx)(d,{className:z.askRelay,to:y,children:`Ask Relay about this Timeline`})]}),(0,P.jsx)(Z,{events:x.events}),(0,P.jsxs)(`section`,{"aria-label":`Timeline filters`,className:z.filters,children:[(0,P.jsxs)(`label`,{children:[(0,P.jsx)(`span`,{children:`Actor`}),(0,P.jsx)(`select`,{value:c.actorKind,onChange:e=>m({...c,actorKind:K(e.currentTarget.value)}),children:W.map(e=>(0,P.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),(0,P.jsxs)(`label`,{children:[(0,P.jsx)(`span`,{children:`From`}),(0,P.jsx)(`input`,{type:`date`,value:c.from,onChange:e=>m({...c,from:e.currentTarget.value})})]}),(0,P.jsxs)(`label`,{children:[(0,P.jsx)(`span`,{children:`To`}),(0,P.jsx)(`input`,{type:`date`,value:c.to,onChange:e=>m({...c,to:e.currentTarget.value})})]})]}),x.events.length===0?(0,P.jsx)(o,{description:`Try a wider date range or another actor.`,title:`No activity in this view`}):(0,P.jsx)(f,{component:O,children:(0,P.jsx)(`ol`,{className:z.events,children:x.events.map((e,t)=>(0,P.jsx)(J,{actor:b?(0,P.jsxs)(`span`,{className:z.rowActor,children:[(0,P.jsx)(`span`,{children:e.actor.label}),(0,P.jsx)(i,{onClick:()=>_(e),size:`compact`,variant:`quiet`,children:`Inspect`})]}):void 0,continued:t<x.events.length-1,event:e},e.eventKey))})}),x.nextCursor===null?null:(0,P.jsx)(i,{disabled:x.isLoadingMore,onClick:v.loadMore,size:`principal`,stretch:!0,children:x.isLoadingMore?`Loading…`:`Show earlier activity`}),(0,P.jsx)(R,{agentHref:h===null?y:X(r.pathname,r.search,r.hash,h.eventKey),event:h,onClose:()=>_(null),onSessionExpired:a.invalidateSession,sessionKey:s,...e===void 0?{}:{transport:e}})]})};export{Q as TimelinePage,Y as canInspectTimelineDetails,X as timelineEventAgentPath};
|
|
2
|
+
//# sourceMappingURL=TimelinePage-D6YUtggO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimelinePage-D6YUtggO.js","names":["isUnauthorizedFailure","Predicate.isTagged","Effect.runPromise","Effect.gen","Effect.provide","FetchHttpClient.layer","useState","useCallback","DateTime.formatUtc","Sheet","styles","Skeleton","StatePanel","Button","Text","StateLabel","ServiceMark","DateTime.formatIso","Effect.runPromise","Effect.gen","Schema.decodeUnknownEffect","Effect.provide","FetchHttpClient.layer","Predicate.isTagged","useState","useRef","useCallback","DateTime.toDateUtc","RlyTimelineRow","DateTime.formatIso","useMemo","styles","useState","StatePanel","Button","Text","LinkProvider","__toESM","useLocation","Le","V","fe","He","ve","require_jsx_runtime","useBrowserSession","contextualAgentPath","Link","a","browserReadableSessionKey","xr","z","se","runPromise","isTagged","decodeUnknownEffect","formatUtc","provide","formatIso","UtcTimestamp","toDateUtc","gen","layer","makeControlCenterApiClient","WorkspaceEntityLink","import_react","require_react","TimelineDetailSheet_module_default","isUnauthorizedFailure$1","browserTimelineDetailTransport","useTimelineDetail","requestRevision","setRequestRevision","state","setState","eventKey","sessionKey","abort","transport","failure","onSessionExpired","currentState","revision","import_jsx_runtime","sourceLabels","formatTimestamp","event","timelineDetailLedger","optionalEntries","detail","entry","TimelineDetailSheet","controller","open","onClose","label","value","agentHref","TimelinePage_module_default","browserTimelineTransport","client","from","filters","to","cursor","isUnauthorizedFailure","useTimeline","activeRequest","filterKey","request","page","current","formatTimelineTimestamp","timestamp","actorOptions","timelineSources","actorFilter","option","sourcePresentation","TimelineRow","actor","canInspectTimelineDetails","timelineEventAgentPath","context","search","pathname","hash","SourceSummary","totals","events","sourceKind","source","TimelinePage","location","browserSession","setFilters","selectedEvent","setSelectedEvent","canInspect","timelineState","index","detailTransport"],"sources":["../../../src/client/timeline/TimelineDetailSheet.module.css","../../../src/client/timeline/useTimelineDetail.ts","../../../src/client/timeline/TimelineDetailSheet.tsx","../../../src/client/timeline/TimelinePage.module.css","../../../src/client/timeline/useTimeline.ts","../../../src/client/timeline/TimelinePage.tsx"],"sourcesContent":[".body,\n.loading,\n.content,\n.identity,\n.identityMeta,\n.section,\n.ledger {\n display: grid;\n}\n\n.body,\n.loading,\n.content {\n gap: var(--rly-space-20);\n}\n\n.identity,\n.section {\n gap: var(--rly-space-12);\n}\n\n.identity {\n padding-block: var(--rly-space-12) var(--rly-space-20);\n border-block-end: 1px solid var(--rly-color-border-1);\n}\n\n.identity h2,\n.identity p,\n.section h3,\n.ledger dd {\n margin: 0;\n}\n\n.identity h2 {\n max-inline-size: 13ch;\n overflow-wrap: anywhere;\n text-wrap: balance;\n}\n\n.identityMeta {\n grid-template-columns: repeat(2, minmax(0, max-content));\n align-items: center;\n gap: var(--rly-space-8) var(--rly-space-12);\n}\n\n.ledger {\n margin: 0;\n}\n\n.ledger div {\n display: grid;\n grid-template-columns: minmax(7rem, 0.35fr) minmax(0, 1fr);\n gap: var(--rly-space-12);\n padding-block: var(--rly-space-12);\n border-block-start: 1px solid var(--rly-color-border-1);\n}\n\n.ledger dt {\n color: var(--rly-color-text-2);\n font: var(--rly-type-meta-weight) var(--rly-type-meta-size) / var(--rly-type-meta-line-height)\n var(--rly-type-meta-font);\n}\n\n.ledger dd {\n overflow-wrap: anywhere;\n font: var(--rly-type-code-weight) var(--rly-type-code-size) / var(--rly-type-code-line-height)\n var(--rly-type-code-font);\n}\n\n.footerLink {\n min-block-size: 3rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding-inline: var(--rly-space-16);\n border-radius: var(--rly-radius-control);\n background: var(--rly-color-action-background);\n color: var(--rly-color-action-foreground);\n font: var(--rly-type-label-weight) var(--rly-type-label-size) / var(--rly-type-label-line-height)\n var(--rly-type-label-font);\n text-align: center;\n text-decoration: none;\n}\n\n.footerLink:focus-visible {\n outline: 2px solid var(--rly-color-focus);\n outline-offset: var(--rly-space-2);\n}\n\n@media (max-width: 30rem) {\n .identityMeta,\n .ledger div {\n grid-template-columns: minmax(0, 1fr);\n }\n}\n","import * as Effect from \"effect/Effect\"\nimport * as FetchHttpClient from \"effect/http/FetchHttpClient\"\nimport * as Predicate from \"effect/Predicate\"\nimport { useCallback, useEffect, useState } from \"react\"\n\nimport { makeControlCenterApiClient } from \"../../api/client.js\"\nimport type { TimelineEvent, TimelineEventDetail } from \"../../domain/timeline.js\"\n\n/** Browser boundary for one exact owner-only Timeline event expansion. */\nexport interface TimelineDetailTransport {\n readonly load: (eventKey: TimelineEvent[\"eventKey\"], signal: AbortSignal) => Promise<TimelineEventDetail>\n}\n\nexport type TimelineDetailState =\n | { readonly _tag: \"idle\" }\n | {\n readonly _tag: \"loading\"\n readonly eventKey: TimelineEvent[\"eventKey\"]\n readonly sessionKey: string\n }\n | {\n readonly _tag: \"failed\"\n readonly eventKey: TimelineEvent[\"eventKey\"]\n readonly sessionKey: string\n }\n | {\n readonly _tag: \"ready\"\n readonly detail: TimelineEventDetail\n readonly eventKey: TimelineEvent[\"eventKey\"]\n readonly sessionKey: string\n }\n\nconst isUnauthorizedFailure = Predicate.isTagged(\"UnauthorizedApiError\")\n\n/** Generated-client transport for an owner-authorized event detail read. */\nexport const browserTimelineDetailTransport: TimelineDetailTransport = {\n load: (eventKey, signal) =>\n Effect.runPromise(\n Effect.gen(function*() {\n const client = yield* makeControlCenterApiClient()\n return yield* client.timeline.detail({ params: { eventKey } })\n }).pipe(Effect.provide(FetchHttpClient.layer)),\n { signal }\n )\n}\n\n/** Keep a detail result bound to the exact event and authenticated session that requested it. */\nexport const useTimelineDetail = (\n eventKey: TimelineEvent[\"eventKey\"] | null,\n sessionKey: string | null,\n onSessionExpired: (sessionKey: string) => void,\n transport: TimelineDetailTransport = browserTimelineDetailTransport\n) => {\n const [requestRevision, setRequestRevision] = useState(0)\n const [state, setState] = useState<TimelineDetailState>({ _tag: \"idle\" })\n\n useEffect(() => {\n if (eventKey === null || sessionKey === null) {\n setState({ _tag: \"idle\" })\n return\n }\n const abort = new AbortController()\n setState({ _tag: \"loading\", eventKey, sessionKey })\n transport.load(eventKey, abort.signal).then(\n (detail) => {\n if (!abort.signal.aborted) setState({ _tag: \"ready\", detail, eventKey, sessionKey })\n },\n (failure) => {\n if (abort.signal.aborted) return\n if (isUnauthorizedFailure(failure)) onSessionExpired(sessionKey)\n setState({ _tag: \"failed\", eventKey, sessionKey })\n }\n )\n return () => abort.abort()\n }, [eventKey, onSessionExpired, requestRevision, sessionKey, transport])\n\n const currentState: TimelineDetailState = eventKey === null || sessionKey === null\n ? { _tag: \"idle\" }\n : state._tag === \"idle\" || state.eventKey !== eventKey || state.sessionKey !== sessionKey\n ? { _tag: \"loading\", eventKey, sessionKey }\n : state\n\n return {\n retry: useCallback(() => setRequestRevision((revision) => revision + 1), []),\n state: currentState\n }\n}\n","import { ServiceMark } from \"@knpkv/rly/patterns\"\nimport { Button, Sheet, Skeleton, StateLabel, StatePanel, Text } from \"@knpkv/rly/primitives\"\nimport * as DateTime from \"effect/DateTime\"\nimport type { ReactElement } from \"react\"\nimport { Link } from \"react-router\"\n\nimport type { TimelineEvent, TimelineEventDetail, TimelineSourceKind } from \"../../domain/timeline.js\"\nimport styles from \"./TimelineDetailSheet.module.css\"\nimport { type TimelineDetailTransport, useTimelineDetail } from \"./useTimelineDetail.js\"\n\nconst sourceLabels = {\n action: \"Governed action\",\n \"plugin-sync\": \"Service sync\",\n relationship: \"Delivery link\",\n system: \"Control Center\"\n} satisfies Readonly<Record<TimelineSourceKind, string>>\n\nconst formatTimestamp = (event: TimelineEvent): string =>\n DateTime.formatUtc(event.occurredAt, {\n day: \"2-digit\",\n hour: \"2-digit\",\n hour12: false,\n locale: \"en-GB\",\n minute: \"2-digit\",\n month: \"short\",\n second: \"2-digit\",\n year: \"numeric\"\n })\n\n/** Non-secret durable references that make one owner-visible event attributable. */\nexport const timelineDetailLedger = (\n detail: TimelineEventDetail\n): ReadonlyArray<{ readonly label: string; readonly value: string }> => {\n const optionalEntries: ReadonlyArray<{ readonly label: string; readonly value: string | null }> = [\n { label: \"Actor\", value: detail.identifiers.actorId },\n { label: \"Agent job\", value: detail.agentJob?.jobId ?? null },\n { label: \"Action\", value: detail.identifiers.actionId },\n { label: \"Relationship\", value: detail.identifiers.relationshipId },\n { label: \"Connection\", value: detail.identifiers.pluginConnectionId },\n { label: \"Release\", value: detail.identifiers.releaseId },\n { label: \"Entity\", value: detail.identifiers.entityId }\n ]\n return [\n { label: \"Event\", value: detail.event.eventKey },\n { label: \"Type\", value: detail.event.eventType },\n ...optionalEntries.filter(\n (entry): entry is { readonly label: string; readonly value: string } => entry.value !== null\n )\n ]\n}\n\n/** Owner-only expansion of one redacted Timeline row into its durable provenance. */\nexport const TimelineDetailSheet = ({\n agentHref,\n event,\n onClose,\n onSessionExpired,\n sessionKey,\n transport\n}: {\n readonly agentHref: string\n readonly event: TimelineEvent | null\n readonly onClose: () => void\n readonly onSessionExpired: (sessionKey: string) => void\n readonly sessionKey: string | null\n readonly transport?: TimelineDetailTransport\n}): ReactElement => {\n const controller = useTimelineDetail(event?.eventKey ?? null, sessionKey, onSessionExpired, transport)\n\n return (\n <Sheet.Root\n onOpenChange={(open) => {\n if (!open) onClose()\n }}\n open={event !== null}\n >\n <Sheet.Content\n closeLabel=\"Close event details\"\n description=\"Durable provenance for this exact workspace event.\"\n title=\"Event details\"\n >\n <Sheet.Body className={styles.body}>\n {event === null || controller.state._tag === \"idle\" || controller.state._tag === \"loading\" ? (\n <div aria-busy=\"true\" aria-label=\"Loading event details\" className={styles.loading}>\n <Skeleton height=\"10rem\" />\n <Skeleton height=\"14rem\" />\n </div>\n ) : controller.state._tag === \"failed\" ? (\n <StatePanel\n action={<Button onClick={controller.retry}>Try again</Button>}\n description=\"The Timeline row remains unchanged. Its provenance could not be loaded.\"\n title=\"Event details unavailable\"\n tone=\"caution\"\n />\n ) : (\n <div className={styles.content}>\n <section aria-labelledby=\"timeline-detail-title\" className={styles.identity}>\n <Text tone=\"secondary\" variant=\"label\">\n {sourceLabels[controller.state.detail.event.sourceKind]}\n </Text>\n <Text as=\"h2\" id=\"timeline-detail-title\" variant=\"page-title\">\n {controller.state.detail.event.title}\n </Text>\n <div className={styles.identityMeta}>\n <StateLabel\n label={controller.state.detail.event.actor.kind}\n size=\"compact\"\n tone={controller.state.detail.event.actor.kind === \"agent\" ? \"progress\" : \"neutral\"}\n />\n {controller.state.detail.event.service === null ? null : (\n <ServiceMark service={controller.state.detail.event.service} size=\"compact\" />\n )}\n <Text tone=\"secondary\" variant=\"meta\">\n {controller.state.detail.event.actor.label}\n </Text>\n <Text\n as=\"time\"\n dateTime={DateTime.formatIso(controller.state.detail.event.occurredAt)}\n tone=\"secondary\"\n variant=\"meta\"\n >\n {formatTimestamp(controller.state.detail.event)} UTC\n </Text>\n </div>\n </section>\n\n <section aria-labelledby=\"timeline-provenance-title\" className={styles.section}>\n <Text as=\"h3\" id=\"timeline-provenance-title\" variant=\"section-title\">\n Provenance\n </Text>\n <dl className={styles.ledger}>\n {timelineDetailLedger(controller.state.detail).map(({ label, value }) => (\n <div key={label}>\n <dt>{label}</dt>\n <dd>{value}</dd>\n </div>\n ))}\n </dl>\n </section>\n </div>\n )}\n </Sheet.Body>\n <Sheet.Footer>\n <Link className={styles.footerLink} to={agentHref}>\n Ask Relay about this event\n </Link>\n </Sheet.Footer>\n </Sheet.Content>\n </Sheet.Root>\n )\n}\n",".page,\n.hero,\n.page {\n gap: clamp(2.5rem, 7vw, 6rem);\n}\n\n.hero {\n gap: var(--rly-space-16);\n}\n\n.hero p,\n.hero h1 {\n margin: 0;\n}\n\n.hero h1 {\n max-inline-size: 9ch;\n letter-spacing: -0.075em;\n text-wrap: balance;\n}\n\n.intro {\n max-inline-size: 46rem;\n}\n\n.askRelay {\n inline-size: fit-content;\n min-block-size: 3.5rem;\n display: inline-flex;\n align-items: center;\n padding-inline: var(--rly-space-20);\n border-radius: var(--rly-radius-control);\n background: var(--rly-color-action-background);\n color: var(--rly-color-action-foreground);\n font: var(--rly-type-label-weight) var(--rly-type-label-size) / var(--rly-type-label-line-height)\n var(--rly-type-label-font);\n text-decoration: none;\n}\n\n.summary {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n margin: 0;\n overflow: hidden;\n border: 1px solid var(--rly-color-border-1);\n border-radius: var(--rly-radius-group);\n}\n\n.summary div {\n display: grid;\n gap: var(--rly-space-12);\n min-block-size: 8rem;\n padding: var(--rly-space-20);\n background: var(--rly-color-surface-1);\n}\n\n.summary div + div {\n border-inline-start: 1px solid var(--rly-color-border-1);\n}\n\n.summary dt {\n color: var(--rly-color-text-2);\n font: var(--rly-type-label-weight) var(--rly-type-label-size) / var(--rly-type-label-line-height)\n var(--rly-type-label-font);\n}\n\n.summary dd {\n margin: 0;\n color: var(--rly-color-text-1);\n font-size: clamp(2.5rem, 6vw, 5rem);\n font-weight: 700;\n line-height: 0.9;\n letter-spacing: -0.07em;\n}\n\n.summary div[data-source=\"action\"] {\n box-shadow: inset 0 4px var(--rly-color-service-codecommit);\n}\n.summary div[data-source=\"relationship\"] {\n box-shadow: inset 0 4px var(--rly-color-service-codepipeline);\n}\n.summary div[data-source=\"plugin-sync\"] {\n box-shadow: inset 0 4px var(--rly-color-service-jira);\n}\n.summary div[data-source=\"system\"] {\n box-shadow: inset 0 4px var(--rly-color-focus);\n}\n\n.filters {\n display: grid;\n grid-template-columns: 2fr 1fr 1fr;\n gap: var(--rly-space-12);\n}\n\n.filters label {\n display: grid;\n gap: var(--rly-space-8);\n color: var(--rly-color-text-2);\n font: var(--rly-type-label-weight) var(--rly-type-label-size) / var(--rly-type-label-line-height)\n var(--rly-type-label-font);\n}\n\n.filters select,\n.filters input {\n min-block-size: 3.5rem;\n inline-size: 100%;\n padding-inline: var(--rly-space-16);\n border: 1px solid var(--rly-color-border-2);\n border-radius: var(--rly-radius-control);\n background: var(--rly-color-surface-1);\n color: var(--rly-color-text-1);\n font: inherit;\n}\n\n.events {\n margin: 0;\n padding: 0;\n list-style: none;\n border-block-start: 1px solid var(--rly-color-border-1);\n}\n\n.rowActor {\n display: grid;\n gap: var(--rly-space-8);\n justify-items: start;\n}\n\n@media (max-width: 48rem) {\n .summary {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .summary div:nth-child(3) {\n border-inline-start: 0;\n }\n .summary div:nth-child(n + 3) {\n border-block-start: 1px solid var(--rly-color-border-1);\n }\n .filters {\n grid-template-columns: 1fr;\n }\n}\n","import * as DateTime from \"effect/DateTime\"\nimport * as Effect from \"effect/Effect\"\nimport * as FetchHttpClient from \"effect/http/FetchHttpClient\"\nimport * as Predicate from \"effect/Predicate\"\nimport * as Schema from \"effect/Schema\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\nimport { makeControlCenterApiClient } from \"../../api/client.js\"\nimport type { TimelineActorKind, TimelineCursor, TimelineEvent, TimelinePage } from \"../../domain/timeline.js\"\nimport { UtcTimestamp } from \"../../domain/utcTimestamp.js\"\n\n/** User-controlled Timeline filters. */\nexport interface TimelineFilters {\n readonly actorKind: TimelineActorKind | \"all\"\n readonly from: string\n readonly to: string\n}\n\n/** Browser transport boundary for Timeline tests and authenticated reads. */\nexport interface TimelineTransport {\n readonly load: (\n signal: AbortSignal,\n filters: TimelineFilters,\n cursor: TimelineCursor | null\n ) => Promise<TimelinePage>\n}\n\nexport type TimelineState =\n | { readonly _tag: \"idle\" }\n | { readonly _tag: \"loading\" }\n | { readonly _tag: \"failed\" }\n | {\n readonly _tag: \"ready\"\n readonly events: ReadonlyArray<TimelineEvent>\n readonly isLoadingMore: boolean\n readonly nextCursor: TimelineCursor | null\n }\n\n/** Generated-client transport for the authenticated Timeline page. */\nexport const browserTimelineTransport: TimelineTransport = {\n load: (signal, filters, cursor) =>\n Effect.runPromise(\n Effect.gen(function*() {\n const client = yield* makeControlCenterApiClient()\n const from = filters.from.length === 0\n ? undefined\n : yield* Schema.decodeUnknownEffect(UtcTimestamp)(`${filters.from}T00:00:00.000Z`)\n const to = filters.to.length === 0\n ? undefined\n : yield* Schema.decodeUnknownEffect(UtcTimestamp)(`${filters.to}T23:59:59.999Z`)\n return yield* client.timeline.page({\n query: {\n ...(!(filters.actorKind === \"all\") && { actor: filters.actorKind }),\n ...(!(cursor === null) && { beforeEventKey: cursor.eventKey, beforeOccurredAt: cursor.occurredAt }),\n ...(!(from === undefined) && { from }),\n limit: 50,\n ...(!(to === undefined) && { to })\n }\n })\n }).pipe(Effect.provide(FetchHttpClient.layer)),\n { signal }\n )\n}\n\nconst isUnauthorizedFailure = Predicate.isTagged(\"UnauthorizedApiError\")\n\n/** Load and incrementally page one exact authenticated Timeline filter set. */\nexport const useTimeline = (\n filters: TimelineFilters,\n sessionKey: string | null,\n onSessionExpired: (sessionKey: string) => void,\n transport: TimelineTransport = browserTimelineTransport\n) => {\n const [requestRevision, setRequestRevision] = useState(0)\n const [state, setState] = useState<TimelineState>({ _tag: \"idle\" })\n const activeRequest = useRef<AbortController | null>(null)\n const filterKey = `${filters.actorKind}|${filters.from}|${filters.to}`\n\n useEffect(() => {\n activeRequest.current?.abort()\n if (sessionKey === null) {\n setState({ _tag: \"idle\" })\n return\n }\n const request = new AbortController()\n activeRequest.current = request\n setState({ _tag: \"loading\" })\n transport.load(request.signal, filters, null).then(\n (page) => {\n if (!request.signal.aborted) {\n setState({ _tag: \"ready\", events: page.events, isLoadingMore: false, nextCursor: page.nextCursor })\n }\n },\n (failure) => {\n if (request.signal.aborted) return\n if (isUnauthorizedFailure(failure)) onSessionExpired(sessionKey)\n setState({ _tag: \"failed\" })\n }\n )\n return () => request.abort()\n }, [filterKey, filters, onSessionExpired, requestRevision, sessionKey, transport])\n\n const loadMore = useCallback((): void => {\n if (sessionKey === null || state._tag !== \"ready\" || state.nextCursor === null || state.isLoadingMore) return\n activeRequest.current?.abort()\n const request = new AbortController()\n activeRequest.current = request\n const current = state\n setState({ ...current, isLoadingMore: true })\n transport.load(request.signal, filters, current.nextCursor).then(\n (page) => {\n if (!request.signal.aborted) {\n setState({\n _tag: \"ready\",\n events: [...current.events, ...page.events],\n isLoadingMore: false,\n nextCursor: page.nextCursor\n })\n }\n },\n (failure) => {\n if (request.signal.aborted) return\n if (isUnauthorizedFailure(failure)) onSessionExpired(sessionKey)\n setState({ ...current, isLoadingMore: false })\n }\n )\n }, [filters, onSessionExpired, sessionKey, state, transport])\n\n return {\n loadMore,\n retry: useCallback(() => setRequestRevision((revision) => revision + 1), []),\n state\n }\n}\n\n/** Compact UTC timestamp for Timeline rows. */\nexport const formatTimelineTimestamp = (timestamp: TimelineEvent[\"occurredAt\"]): string =>\n new Intl.DateTimeFormat(\"en-GB\", {\n dateStyle: \"medium\",\n timeStyle: \"short\",\n timeZone: \"UTC\"\n }).format(DateTime.toDateUtc(timestamp))\n","import { LinkProvider } from \"@knpkv/rly/foundations\"\nimport { TimelineRow as RlyTimelineRow } from \"@knpkv/rly/patterns\"\nimport { Button, StatePanel, Text } from \"@knpkv/rly/primitives\"\nimport * as DateTime from \"effect/DateTime\"\nimport { type ReactElement, type ReactNode, useMemo, useState } from \"react\"\nimport { Link, useLocation } from \"react-router\"\n\nimport type { TimelineActorKind, TimelineEvent, TimelineSourceKind } from \"../../domain/timeline.js\"\nimport { browserReadableSessionKey, type BrowserSessionState, useBrowserSession } from \"../BrowserSession.js\"\nimport { contextualAgentPath } from \"../contextualAgentPath.js\"\nimport { WorkspaceEntityLink } from \"../entities/WorkspaceEntityLink.js\"\nimport { TimelineDetailSheet } from \"./TimelineDetailSheet.js\"\nimport type { TimelineDetailTransport } from \"./useTimelineDetail.js\"\nimport styles from \"./TimelinePage.module.css\"\nimport {\n browserTimelineTransport,\n formatTimelineTimestamp,\n type TimelineFilters,\n type TimelineTransport,\n useTimeline\n} from \"./useTimeline.js\"\n\nconst actorOptions: ReadonlyArray<{ readonly label: string; readonly value: TimelineActorKind | \"all\" }> = [\n { label: \"Everyone\", value: \"all\" },\n { label: \"People\", value: \"human\" },\n { label: \"Agents\", value: \"agent\" },\n { label: \"Services\", value: \"plugin\" },\n { label: \"System\", value: \"system\" }\n]\nconst timelineSources: ReadonlyArray<TimelineSourceKind> = [\"action\", \"relationship\", \"plugin-sync\", \"system\"]\n\nconst actorFilter = (value: string): TimelineFilters[\"actorKind\"] =>\n actorOptions.find((option) => option.value === value)?.value ?? \"all\"\n\nconst sourcePresentation = {\n action: { label: \"Governed action\" },\n \"plugin-sync\": { label: \"Service sync\" },\n relationship: { label: \"Delivery link\" },\n system: { label: \"Control Center\" }\n} satisfies Readonly<Record<TimelineSourceKind, { readonly label: string }>>\n\nconst TimelineRow = ({\n actor,\n continued,\n event\n}: {\n readonly actor?: ReactNode\n readonly continued: boolean\n readonly event: TimelineEvent\n}): ReactElement => (\n <RlyTimelineRow\n continued={continued}\n event={{\n actor: actor ?? event.actor.label,\n actorKind: event.actor.kind,\n dateTime: DateTime.formatIso(event.occurredAt),\n detail: sourcePresentation[event.sourceKind].label,\n ...(!(event.href === null) && { href: event.href }),\n id: event.eventKey,\n ...(!(event.service === null) && { service: event.service }),\n time: formatTimelineTimestamp(event.occurredAt),\n title: event.title\n }}\n />\n)\n\n/** Only workspace owners can deliberately expand redacted Timeline rows. */\nexport const canInspectTimelineDetails = (state: BrowserSessionState): boolean => {\n switch (state._tag) {\n case \"authenticated\":\n return state.session.permission === \"workspace-owner\"\n case \"storage-unavailable\":\n return state.session?.permission === \"workspace-owner\"\n case \"anonymous\":\n case \"blocked\":\n case \"checking\":\n case \"unavailable\":\n return false\n }\n}\n\n/** Preserve one selected event alongside the current Timeline filters for Relay. */\nexport const timelineEventAgentPath = (\n pathname: string,\n search: string,\n hash: string,\n eventKey: TimelineEvent[\"eventKey\"]\n): string => {\n const context = new URLSearchParams(search)\n context.set(\"event\", eventKey)\n return contextualAgentPath(pathname, `?${context.toString()}`, hash)\n}\n\nconst SourceSummary = ({ events }: { readonly events: ReadonlyArray<TimelineEvent> }): ReactElement => {\n const totals = useMemo(\n () =>\n new Map<TimelineSourceKind, number>([\n [\"action\", events.filter(({ sourceKind }) => sourceKind === \"action\").length],\n [\"relationship\", events.filter(({ sourceKind }) => sourceKind === \"relationship\").length],\n [\"plugin-sync\", events.filter(({ sourceKind }) => sourceKind === \"plugin-sync\").length],\n [\"system\", events.filter(({ sourceKind }) => sourceKind === \"system\").length]\n ]),\n [events]\n )\n return (\n <dl className={styles.summary}>\n {timelineSources.map((source) => {\n return (\n <div data-source={source} key={source}>\n <dt>{sourcePresentation[source].label}</dt>\n <dd>{totals.get(source) ?? 0}</dd>\n </div>\n )\n })}\n </dl>\n )\n}\n\n/** Bird's-eye view of attributable human, agent, service, and system activity. */\nexport const TimelinePage = ({\n detailTransport,\n transport = browserTimelineTransport\n}: {\n readonly detailTransport?: TimelineDetailTransport\n readonly transport?: TimelineTransport\n} = {}): ReactElement => {\n const location = useLocation()\n const browserSession = useBrowserSession()\n const sessionKey = browserReadableSessionKey(browserSession.state)\n const [filters, setFilters] = useState<TimelineFilters>({ actorKind: \"all\", from: \"\", to: \"\" })\n const [selectedEvent, setSelectedEvent] = useState<TimelineEvent | null>(null)\n const controller = useTimeline(filters, sessionKey, browserSession.invalidateSession, transport)\n const agentHref = contextualAgentPath(location.pathname, location.search, location.hash)\n const canInspect = canInspectTimelineDetails(browserSession.state)\n\n if (controller.state._tag === \"idle\" || controller.state._tag === \"loading\") {\n return (\n <StatePanel description=\"Combining durable activity across your connected services.\" title=\"Loading Timeline\" />\n )\n }\n if (controller.state._tag === \"failed\") {\n return (\n <StatePanel\n action={<Button onClick={controller.retry}>Try again</Button>}\n description=\"The Timeline could not be read.\"\n title=\"Timeline unavailable\"\n />\n )\n }\n const timelineState = controller.state\n\n return (\n <article className={styles.page}>\n <header className={styles.hero}>\n <Text as=\"p\" tone=\"secondary\" variant=\"label\">\n Timeline\n </Text>\n <Text as=\"h1\" variant=\"verdict\">\n Everything\n <br />\n that moved.\n </Text>\n <Text className={styles.intro} tone=\"secondary\" variant=\"body-large\">\n One chronological truth across people, agents, code, delivery links, and connected services.\n </Text>\n <Link className={styles.askRelay} to={agentHref}>\n Ask Relay about this Timeline\n </Link>\n </header>\n\n <SourceSummary events={timelineState.events} />\n\n <section aria-label=\"Timeline filters\" className={styles.filters}>\n <label>\n <span>Actor</span>\n <select\n value={filters.actorKind}\n onChange={(event) => setFilters({ ...filters, actorKind: actorFilter(event.currentTarget.value) })}\n >\n {actorOptions.map((option) => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </label>\n <label>\n <span>From</span>\n <input\n type=\"date\"\n value={filters.from}\n onChange={(event) => setFilters({ ...filters, from: event.currentTarget.value })}\n />\n </label>\n <label>\n <span>To</span>\n <input\n type=\"date\"\n value={filters.to}\n onChange={(event) => setFilters({ ...filters, to: event.currentTarget.value })}\n />\n </label>\n </section>\n\n {timelineState.events.length === 0 ? (\n <StatePanel description=\"Try a wider date range or another actor.\" title=\"No activity in this view\" />\n ) : (\n <LinkProvider component={WorkspaceEntityLink}>\n <ol className={styles.events}>\n {timelineState.events.map((event, index) => (\n <TimelineRow\n actor={\n canInspect ? (\n <span className={styles.rowActor}>\n <span>{event.actor.label}</span>\n <Button onClick={() => setSelectedEvent(event)} size=\"compact\" variant=\"quiet\">\n Inspect\n </Button>\n </span>\n ) : undefined\n }\n continued={index < timelineState.events.length - 1}\n event={event}\n key={event.eventKey}\n />\n ))}\n </ol>\n </LinkProvider>\n )}\n {timelineState.nextCursor === null ? null : (\n <Button disabled={timelineState.isLoadingMore} onClick={controller.loadMore} size=\"principal\" stretch>\n {timelineState.isLoadingMore ? \"Loading…\" : \"Show earlier activity\"}\n </Button>\n )}\n <TimelineDetailSheet\n agentHref={\n selectedEvent === null\n ? agentHref\n : timelineEventAgentPath(location.pathname, location.search, location.hash, selectedEvent.eventKey)\n }\n event={selectedEvent}\n onClose={() => setSelectedEvent(null)}\n onSessionExpired={browserSession.invalidateSession}\n sessionKey={sessionKey}\n {...(detailTransport === undefined ? {} : { transport: detailTransport })}\n />\n </article>\n )\n}\n"],"mappings":"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"}
|
package/dist/client/assets/{WorkspaceEntityLink-DjonIGqM.js → WorkspaceEntityLink-BqUurz8P.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{s as n}from"./hooks-CGvBGjhq.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{w as i}from"./index-
|
|
2
|
-
//# sourceMappingURL=WorkspaceEntityLink-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{s as n}from"./hooks-CGvBGjhq.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{w as i}from"./index-DlDEYM2e.js";import{n as a,r as o,s}from"./workspaceEntityRoutes-Cc_RtLvy.js";import{n as c,t as l}from"./workspaceScrollCapture-Dg3Pebh8.js";var u=e(t(),1),d=r(),f=(e,t)=>{let n=s(e);return n===null?void 0:o(t.state,n.workspaceId,n.entityId,a(t))},p=(0,u.forwardRef)(function({href:e,onClick:t,...r},a){let o=n(),s=f(e,o);return(0,d.jsx)(i,{...r,onClick:n=>{t?.(n),s!==void 0&&c(n,n.currentTarget.target)&&l(o,e)},ref:a,state:s,to:e})});export{f as n,p as t};
|
|
2
|
+
//# sourceMappingURL=WorkspaceEntityLink-BqUurz8P.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceEntityLink-
|
|
1
|
+
{"version":3,"file":"WorkspaceEntityLink-BqUurz8P.js","names":["forwardRef","__toESM","useLocation","require_jsx_runtime","Link","entityOriginFromLocation","makeWorkspaceEntityRouteState","shouldRememberWorkspaceScrollPosition","rememberWorkspaceScrollPosition","import_react","require_react","import_jsx_runtime","workspaceEntityStateForHref","target","workspaceEntityTargetFromHref","href","location","WorkspaceEntityLink","props","state","onClick","event"],"sources":["../../../src/client/entities/WorkspaceEntityLink.tsx"],"sourcesContent":["import type { RlyLinkProps } from \"@knpkv/rly/foundations\"\nimport { forwardRef, type ReactElement } from \"react\"\nimport { Link, useLocation } from \"react-router\"\n\nimport {\n entityOriginFromLocation,\n makeWorkspaceEntityRouteState,\n workspaceEntityTargetFromHref\n} from \"../items/workspaceEntityRoutes.js\"\nimport { rememberWorkspaceScrollPosition, shouldRememberWorkspaceScrollPosition } from \"../workspaceScrollCapture.js\"\n\ninterface RouterLocationParts {\n readonly hash: string\n readonly pathname: string\n readonly search: string\n readonly state: unknown\n}\n\n/** Preserve the validated root origin when an Rly relationship opens another canonical entity. */\nexport const workspaceEntityStateForHref = (href: string, location: RouterLocationParts) => {\n const target = workspaceEntityTargetFromHref(href)\n return target === null\n ? undefined\n : makeWorkspaceEntityRouteState(\n location.state,\n target.workspaceId,\n target.entityId,\n entityOriginFromLocation(location)\n )\n}\n\n/** React Router bridge installed only inside lazy entity-aware route chunks. */\nexport const WorkspaceEntityLink = forwardRef<HTMLAnchorElement, RlyLinkProps>(function WorkspaceEntityLink(\n { href, onClick, ...props },\n ref\n): ReactElement {\n const location = useLocation()\n const state = workspaceEntityStateForHref(href, location)\n return (\n <Link\n {...props}\n onClick={(event) => {\n onClick?.(event)\n if (state !== undefined && shouldRememberWorkspaceScrollPosition(event, event.currentTarget.target)) {\n rememberWorkspaceScrollPosition(location, href)\n }\n }}\n ref={ref}\n state={state}\n to={href}\n />\n )\n})\n"],"mappings":"0WAmBaY,GAA+B,EAAc,IAAkC,CAC1F,IAAMC,EAASC,EAA8BC,CAAI,EACjD,OAAOF,IAAW,KACd,IAAA,GACAP,EACEU,EAAS,MACTH,EAAO,YACPA,EAAO,SACPR,EAAyBW,CAAQ,CACnC,CACN,EAGaC,GAAA,EAAsBjB,EAAAA,WAAAA,CAA4C,SAC7E,CAAE,OAAM,UAAS,GAAGkB,GACpB,EACc,CACd,IAAMF,EAAWd,EAAY,EACvBiB,EAAQP,EAA4BG,EAAMC,CAAQ,EACxD,OACE,EAAAL,EAAA,IAAA,CAACP,EAAD,CACE,GAAIc,EACJ,QAAU,GAAU,CAClBE,IAAUC,CAAK,EACXF,IAAU,IAAA,IAAaZ,EAAsCc,EAAOA,EAAM,cAAc,MAAM,GAChGb,EAAgCQ,EAAUD,CAAI,CAElD,EACK,MACE,QACP,GAAIA,CACL,CAAA,CAEL,CAAC"}
|