@opengeni/react 4.3.3-canary.39780140124001 → 4.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/app-state.js +29 -29
- package/dist/app/components/Composer.js +22 -22
- package/dist/app/components/agent/agent-capability-picker.js +4 -4
- package/dist/app/components/artifacts/artifact-browse-controls.js +1 -1
- package/dist/app/components/artifacts/artifact-library.js +19 -19
- package/dist/app/components/artifacts/chat-interactive-block.js +14 -14
- package/dist/app/components/artifacts/inline-chat-image.js +25 -25
- package/dist/app/components/artifacts/retained-file-preview.js +28 -28
- package/dist/app/components/artifacts/retained-text-preview.js +3 -3
- package/dist/app/components/artifacts/site-audience.js +4 -4
- package/dist/app/components/artifacts/site-conversations.js +18 -18
- package/dist/app/components/artifacts/site-data.js +19 -19
- package/dist/app/components/artifacts/site-publishing.js +38 -38
- package/dist/app/components/artifacts/site-settings.js +47 -47
- package/dist/app/components/billing-class-mark.js +4 -4
- package/dist/app/components/capabilities/capability-detail-sheet.js +8 -8
- package/dist/app/components/capabilities/capability-logo-source.js +8 -8
- package/dist/app/components/capabilities/connector-tool-permissions.js +4 -4
- package/dist/app/components/capabilities/native-connect-setup.js +12 -12
- package/dist/app/components/capabilities/perform-capability-action.js +1 -1
- package/dist/app/components/capabilities/prepared-mcp-setup-card.js +11 -11
- package/dist/app/components/capabilities/session-capability-card.js +90 -74
- package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
- package/dist/app/components/capabilities/session-chrome-card.css +1023 -0
- package/dist/app/components/capabilities/session-chrome-card.css.map +1 -0
- package/dist/app/components/capabilities/session-chrome-card.d.ts +18 -0
- package/dist/app/components/capabilities/session-chrome-card.js +70 -0
- package/dist/app/components/capabilities/session-custom-mcp-card.js +16 -16
- package/dist/app/components/capabilities/session-github-card.js +20 -20
- package/dist/app/components/capabilities/session-machine-card.d.ts +27 -1
- package/dist/app/components/capabilities/session-machine-card.js +31 -29
- package/dist/app/components/capabilities/use-capabilities-catalog.js +3 -3
- package/dist/app/components/capabilities/use-connection-accounts.js +1 -1
- package/dist/app/components/command-menu/chat-status.js +12 -12
- package/dist/app/components/command-menu/chat-switcher.js +17 -17
- package/dist/app/components/command-menu/command-menu.js +35 -35
- package/dist/app/components/command-menu/shortcut-sheet.js +16 -16
- package/dist/app/components/composer-capabilities-menu-body.js +3 -3
- package/dist/app/components/composer-mobile-plus-panel.js +16 -16
- package/dist/app/components/composer-mobile-plus.js +1 -1
- package/dist/app/components/credit-required-gate.js +1 -1
- package/dist/app/components/credit-required-prompt.js +10 -10
- package/dist/app/components/desktop/app-shots.js +2 -2
- package/dist/app/components/feedback.js +2 -2
- package/dist/app/components/follow-up-repository-menu-body.js +7 -7
- package/dist/app/components/follow-up-repository-picker.js +2 -2
- package/dist/app/components/github-app-connect-launcher.js +2 -2
- package/dist/app/components/knowledge/agent-learning-settings.js +3 -3
- package/dist/app/components/machines/connect-machine-dialog.js +16 -16
- package/dist/app/components/markdown.js +7 -7
- package/dist/app/components/message-context-pills.js +2 -2
- package/dist/app/components/models/models-ui.js +8 -8
- package/dist/app/components/pickers.js +7 -7
- package/dist/app/components/rail/rail-context.js +2 -2
- package/dist/app/components/rail/rail-sections.js +63 -63
- package/dist/app/components/rail/session-header.js +48 -48
- package/dist/app/components/rail/session-list.js +62 -62
- package/dist/app/components/rail/session-row-content.js +2 -2
- package/dist/app/components/rail/session-row-hover-details.js +17 -17
- package/dist/app/components/rail/session-shell.js +102 -102
- package/dist/app/components/rail/site-session-group-heading.js +3 -3
- package/dist/app/components/repository-picker.js +7 -7
- package/dist/app/components/secrets/session-secrets-panel.js +3 -3
- package/dist/app/components/session/agent-configuration-panel.js +33 -33
- package/dist/app/components/session/artifact-session-page.js +1 -1
- package/dist/app/components/session/banners.js +10 -10
- package/dist/app/components/session/codex-account-indicator.js +8 -8
- package/dist/app/components/session/editable-artifacts-workspace.js +38 -38
- package/dist/app/components/session/failed-session-banner.js +7 -7
- package/dist/app/components/session/human-input.js +44 -44
- package/dist/app/components/session/inspector.js +87 -87
- package/dist/app/components/session/message-actions.js +2 -2
- package/dist/app/components/session/message-resource-attachments.js +20 -20
- package/dist/app/components/session/model-account-indicator.js +8 -8
- package/dist/app/components/session/model-context-inspector.js +2 -2
- package/dist/app/components/session/new-session-settings-menu.js +10 -10
- package/dist/app/components/session/sandbox-switcher.js +12 -12
- package/dist/app/components/session/sandbox-workspace.js +62 -62
- package/dist/app/components/session/search-markdown-highlight.js +8 -8
- package/dist/app/components/session/search-results-view.js +9 -9
- package/dist/app/components/session/session-admin-access.js +8 -8
- package/dist/app/components/session/session-admission-notice.js +2 -2
- package/dist/app/components/session/session-machine-access-notice.js +2 -2
- package/dist/app/components/session/session-retention.js +4 -4
- package/dist/app/components/session/session-search-dialog.js +9 -9
- package/dist/app/components/session/session-skill-reviews.js +1 -1
- package/dist/app/components/session/session-tenancy-control.js +24 -24
- package/dist/app/components/session/session-usage-limit-section.js +10 -10
- package/dist/app/components/session/session-wait-status.js +7 -7
- package/dist/app/components/session/subagents.js +13 -13
- package/dist/app/components/session-connectors-menu-body.js +5 -5
- package/dist/app/components/settings/row-select.js +3 -3
- package/dist/app/components/transcription-settings.js +4 -4
- package/dist/app/components/ui/destructive-confirm.js +6 -6
- package/dist/app/components/usage/usage-entry.js +4 -4
- package/dist/app/components/workspace-composer-plus.js +18 -18
- package/dist/app/embed/session-app.js +268 -268
- package/dist/app/lib/actions/actions-provider.js +16 -16
- package/dist/app/lib/app-surfaces.js +1 -1
- package/dist/app/lib/codex-usage-query.js +2 -2
- package/dist/app/lib/composer-connectors.js +9 -9
- package/dist/app/lib/events.js +12 -12
- package/dist/app/lib/session-branch-cache.js +9 -9
- package/dist/app/lib/session-create.js +2 -2
- package/dist/app/lib/session-group-pagination.js +9 -9
- package/dist/app/lib/session-hover-facts.js +10 -10
- package/dist/app/lib/session-model.js +3 -3
- package/dist/app/lib/session-rail.js +7 -7
- package/dist/app/lib/session-rename.js +3 -3
- package/dist/app/lib/sessions-group.js +9 -9
- package/dist/app/lib/turn-failure-analytics.js +1 -1
- package/dist/app/lib/use-duplicate-site.js +3 -3
- package/dist/app/lib/use-follow-up-repositories.js +5 -5
- package/dist/app/lib/use-workspace-integrations.js +2 -2
- package/dist/app/lib/use-workspace-machines.js +2 -2
- package/dist/app/lib/use-workspace-model-catalog.js +2 -2
- package/dist/app/lib/use-workspace-rigs.js +3 -3
- package/dist/app/lib/workspace-navigation-preference.js +1 -1
- package/dist/app/lib/workspace-scope-context.js +1 -1
- package/dist/app/routes/artifacts.js +132 -132
- package/dist/app/routes/retained-artifact.js +62 -62
- package/dist/app/routes/session-unavailable.js +2 -2
- package/dist/app/routes/session.js +163 -163
- package/dist/app/routes/sessions-index-hydration.js +3 -3
- package/dist/app/routes/sessions-index.js +109 -109
- package/dist/artifacts-document.js +2 -2
- package/dist/artifacts-presentation.js +2 -2
- package/dist/artifacts-spreadsheet.js +2 -2
- package/dist/artifacts.js +36 -36
- package/dist/{browser-viewer-VYZLJH3P.js → browser-viewer-RYYQSRTC.js} +5 -5
- package/dist/{chat-interactive-block-MECBXZ7V.js → chat-interactive-block-ABCRKXJ4.js} +5 -5
- package/dist/{chunk-Y4D4N2EF.js → chunk-22ZBT6CN.js} +2 -2
- package/dist/{chunk-TFK4KFKA.js → chunk-33TPANCR.js} +4 -4
- package/dist/{chunk-CFFNT2OY.js → chunk-3GLAPCVI.js} +8 -8
- package/dist/{chunk-BXQYAAVE.js → chunk-3XOISKZC.js} +4 -4
- package/dist/{chunk-FYGMIMEG.js → chunk-4432A3HQ.js} +2 -2
- package/dist/{chunk-3MOD23RS.js → chunk-46VBQG2D.js} +13 -13
- package/dist/{chunk-Q2PVSCJV.js → chunk-4EAF3HSD.js} +2 -2
- package/dist/{chunk-YTK6MYZH.js → chunk-4EONHNJU.js} +2 -2
- package/dist/{chunk-7YLXFFF5.js → chunk-4R3JCVID.js} +141 -141
- package/dist/{chunk-73DMIW44.js → chunk-4VKA5O7T.js} +2 -2
- package/dist/{chunk-SLTOYHG6.js → chunk-4W7VISE7.js} +108 -108
- package/dist/{chunk-SLTOYHG6.js.map → chunk-4W7VISE7.js.map} +1 -1
- package/dist/{chunk-TIBPTOLQ.js → chunk-5JEIDFPD.js} +1 -1
- package/dist/{chunk-L7UDYTU3.js → chunk-5MZTJMZ3.js} +7 -6
- package/dist/chunk-5MZTJMZ3.js.map +1 -0
- package/dist/{chunk-3E4SJHVW.js → chunk-5POTDNQT.js} +5 -5
- package/dist/{chunk-JW6CYU5F.js → chunk-63VGE4OH.js} +2 -2
- package/dist/{chunk-2VDCH2DF.js → chunk-6JKZILLF.js} +65 -65
- package/dist/{chunk-2VDCH2DF.js.map → chunk-6JKZILLF.js.map} +1 -1
- package/dist/{chunk-7HVOIRGN.js → chunk-6NIB2KGJ.js} +41 -41
- package/dist/{chunk-KLVK7BN5.js → chunk-6PQNLL4E.js} +35 -35
- package/dist/{chunk-FGPSTD37.js → chunk-72J6C2AJ.js} +4 -4
- package/dist/{chunk-N34NUHUO.js → chunk-73SOCVLS.js} +4 -4
- package/dist/{chunk-43OV5QK7.js → chunk-7BST7BA6.js} +4 -4
- package/dist/{chunk-FDAV72IX.js → chunk-7CZTKBTI.js} +5 -5
- package/dist/{chunk-G4ONAC4P.js → chunk-7DU35P5J.js} +6 -6
- package/dist/{chunk-SM5QX6UK.js → chunk-A2EWJQXX.js} +4 -4
- package/dist/{chunk-3WDWLSYX.js → chunk-AD22P5X3.js} +3 -3
- package/dist/{chunk-ZQSRAMSH.js → chunk-ADJJQSYC.js} +42 -42
- package/dist/{chunk-5C6KUGFG.js → chunk-AG7VGUIW.js} +6 -6
- package/dist/{chunk-LF5CBAOS.js → chunk-AOLE4IRZ.js} +5 -5
- package/dist/{chunk-CF7ZCKZC.js → chunk-APU42QDI.js} +133 -133
- package/dist/{chunk-P56F4SFD.js → chunk-BJIZ7PL7.js} +2 -2
- package/dist/{chunk-XEL2ZJ3Z.js → chunk-BJW7G6EF.js} +2 -2
- package/dist/{chunk-NNNXKGJH.js → chunk-BNUPYHHZ.js} +2 -2
- package/dist/{chunk-FYSOHZSM.js → chunk-BXRIQZAH.js} +8 -8
- package/dist/{chunk-N4ZDRONX.js → chunk-CBY5CXBD.js} +4 -4
- package/dist/{chunk-7PTHBHEW.js → chunk-CVG4FILQ.js} +69 -69
- package/dist/{chunk-LMN7SO4T.js → chunk-DDK4WFJ3.js} +12 -12
- package/dist/{chunk-G4HQUBO4.js → chunk-DLOYMWUQ.js} +7 -7
- package/dist/{chunk-OTMWHZBY.js → chunk-DWPOQ3S5.js} +2 -2
- package/dist/{chunk-C32ZOZTE.js → chunk-EF5SYXAY.js} +59 -34
- package/dist/chunk-EF5SYXAY.js.map +1 -0
- package/dist/{chunk-JIJGQPW2.js → chunk-EHCUFCXM.js} +18 -18
- package/dist/{chunk-SFTKDFOQ.js → chunk-EU6XSQFM.js} +2 -2
- package/dist/{chunk-62VER7O4.js → chunk-F3NERYBQ.js} +6 -6
- package/dist/{chunk-XZTOGYSM.js → chunk-F6LBGYS6.js} +39 -39
- package/dist/{chunk-EX5YO2KX.js → chunk-FDNJVZRE.js} +16 -16
- package/dist/{chunk-E5GLL7GL.js → chunk-FLGUVRR7.js} +5 -5
- package/dist/{chunk-YGD4MVPD.js → chunk-FSN6APRD.js} +4 -4
- package/dist/{chunk-J2YMBA2R.js → chunk-GAIM5RNE.js} +2 -2
- package/dist/{chunk-X2AH4DRF.js → chunk-GALB2G3W.js} +2 -2
- package/dist/{chunk-E2NTKB4G.js → chunk-GFUUFM2O.js} +4 -4
- package/dist/{chunk-7FTEIGVP.js → chunk-GTQ3SNEI.js} +2 -2
- package/dist/{chunk-SPH2HDSW.js → chunk-HDHK3SXK.js} +6 -6
- package/dist/{chunk-IJ6WELGP.js → chunk-HGMWMK5K.js} +2 -2
- package/dist/{chunk-HRMDE6MI.js → chunk-HNYJEAES.js} +7 -7
- package/dist/{chunk-BYASTRHQ.js → chunk-HO5Y2OOX.js} +11 -11
- package/dist/{chunk-WW7VY5LC.js → chunk-HOJGAJAB.js} +9 -9
- package/dist/{chunk-DYGAOHXK.js → chunk-HTT3FB7T.js} +2 -2
- package/dist/{chunk-O2WCMUQG.js → chunk-HWDGJFM4.js} +13 -13
- package/dist/{chunk-2JASYO6P.js → chunk-I6VUUEXH.js} +149 -149
- package/dist/chunk-I6VUUEXH.js.map +1 -0
- package/dist/{chunk-3AOXZHF6.js → chunk-IVOA3DXA.js} +10 -10
- package/dist/{chunk-5O5NCXJP.js → chunk-JK7C5A4I.js} +27 -27
- package/dist/{chunk-R7S6NSUB.js → chunk-JTN3T4QN.js} +20 -20
- package/dist/{chunk-7DUTMHRQ.js → chunk-JXT5QDJC.js} +4 -4
- package/dist/{chunk-BWTNB77U.js → chunk-KTRKZRID.js} +13 -13
- package/dist/{chunk-MWAFZVC4.js → chunk-KWKGBGAF.js} +10 -10
- package/dist/{chunk-5HXZC3OM.js → chunk-KZHW27BV.js} +2 -2
- package/dist/{chunk-RWUIKGLS.js → chunk-L7YURQI2.js} +2 -2
- package/dist/{chunk-73WI7FL2.js → chunk-LE2EDBXU.js} +18 -18
- package/dist/{chunk-5DSKMG2I.js → chunk-LEXPBQ56.js} +4 -4
- package/dist/{chunk-DWOP7YQX.js → chunk-N3ZP4IDU.js} +2 -2
- package/dist/{chunk-2KKFUNVW.js → chunk-NCX5SAQY.js} +7 -7
- package/dist/{chunk-ITGR4HN7.js → chunk-NDF3SH3X.js} +13 -13
- package/dist/{chunk-JQCGPTZ6.js → chunk-NWZW2WHN.js} +9 -9
- package/dist/{chunk-NQA5WCKG.js → chunk-NYZQ7LO7.js} +19 -19
- package/dist/{chunk-ZDL4ZALP.js → chunk-O756O2I7.js} +1 -1
- package/dist/{chunk-GRSODLVO.js → chunk-OANSIX34.js} +4 -4
- package/dist/{chunk-JLMDWUME.js → chunk-OBQVTCTW.js} +3 -3
- package/dist/{chunk-TUERKBGA.js → chunk-OO2T63BY.js} +2 -2
- package/dist/{chunk-EPWD4KRA.js → chunk-OOEO4MKY.js} +2 -2
- package/dist/{chunk-IKN3XCJU.js → chunk-OR37STQZ.js} +2 -2
- package/dist/{chunk-62LZQOAH.js → chunk-OSVHU2WU.js} +14 -14
- package/dist/{chunk-73YPB5IB.js → chunk-P5WABK2H.js} +8 -8
- package/dist/{chunk-JNFRC3AW.js → chunk-PM3OSANE.js} +4 -4
- package/dist/{chunk-W57X2TSV.js → chunk-PN66T6JA.js} +5 -5
- package/dist/{chunk-4NDE4JTJ.js → chunk-Q35DT6I6.js} +200 -200
- package/dist/{chunk-WFS5EUCL.js → chunk-Q35YZVDZ.js} +7 -7
- package/dist/{chunk-P5GMHOZB.js → chunk-QCD5Y7K5.js} +17 -17
- package/dist/{chunk-YTX274IC.js → chunk-QM5H4FPT.js} +2 -2
- package/dist/{chunk-VCUGPND2.js → chunk-QRVNI5V6.js} +3 -3
- package/dist/{chunk-JM4HQPAI.js → chunk-QZRDCFHI.js} +5 -5
- package/dist/{chunk-ELABMEDP.js → chunk-R63QEVPK.js} +15 -15
- package/dist/{chunk-CP7ZQHBW.js → chunk-RA3FNMWF.js} +10 -10
- package/dist/{chunk-D6II4KOG.js → chunk-RGW24ZZM.js} +74 -74
- package/dist/{chunk-2FUVCKGA.js → chunk-ROQOVH4N.js} +18 -18
- package/dist/chunk-ROQOVH4N.js.map +1 -0
- package/dist/{chunk-WSYR6CUF.js → chunk-RQDFYQHA.js} +7 -7
- package/dist/{chunk-CSLCTVND.js → chunk-RSNYGEVZ.js} +7 -7
- package/dist/{chunk-B2ES3U36.js → chunk-S4EZ3JUB.js} +39 -39
- package/dist/{chunk-OOUEPFGL.js → chunk-S4SC5SSV.js} +16 -16
- package/dist/{chunk-A4BD4ZVB.js → chunk-S7PVL7XH.js} +4 -4
- package/dist/{chunk-4LPA25NQ.js → chunk-SD2K5ZN5.js} +4 -4
- package/dist/chunk-ST22GONV.js +204 -0
- package/dist/chunk-ST22GONV.js.map +1 -0
- package/dist/{chunk-XAXTE2NA.js → chunk-SUVEDKE2.js} +3 -3
- package/dist/{chunk-LCFU5YUA.js → chunk-TGVVEGZG.js} +9 -9
- package/dist/{chunk-E74ISUXA.js → chunk-TQGJN5UZ.js} +233 -233
- package/dist/chunk-TQGJN5UZ.js.map +1 -0
- package/dist/{chunk-OEL73V62.js → chunk-U36PO27Q.js} +3 -3
- package/dist/{chunk-HZT5H5ZP.js → chunk-U3HSFCON.js} +22 -22
- package/dist/{chunk-J5MEDX7C.js → chunk-U47YDYLQ.js} +8 -8
- package/dist/{chunk-BLT4KQTS.js → chunk-UP4BE32Y.js} +4 -4
- package/dist/{chunk-ZSKUBXA6.js → chunk-UWJ5P5CU.js} +2 -2
- package/dist/{chunk-YVBHGMKC.js → chunk-VAIESMPY.js} +4 -4
- package/dist/{chunk-5P6EKYTC.js → chunk-VP62LPLW.js} +14 -14
- package/dist/{chunk-GOEN2FSD.js → chunk-VUHPA3XQ.js} +4 -4
- package/dist/{chunk-5FA455GR.js → chunk-WNG757ID.js} +4 -4
- package/dist/{chunk-4LMNYFES.js → chunk-WSMYOLHG.js} +9 -9
- package/dist/{chunk-JXEMUZTV.js → chunk-X7ASQHR6.js} +2 -2
- package/dist/{chunk-YSSTNTJD.js → chunk-X7L4H4VG.js} +223 -223
- package/dist/chunk-X7L4H4VG.js.map +1 -0
- package/dist/{chunk-CZSYF7UF.js → chunk-XOFUXMPP.js} +2 -2
- package/dist/{chunk-VNMM6DQP.js → chunk-XWWXIZFP.js} +4 -4
- package/dist/{chunk-XC4DZXZZ.js → chunk-YXOKAG66.js} +2 -2
- package/dist/{chunk-XMNUZUUA.js → chunk-Z2DAWUO3.js} +6 -6
- package/dist/{chunk-TJ2MBYK4.js → chunk-Z5WMLJKI.js} +4 -4
- package/dist/{chunk-WCK2NF54.js → chunk-ZKYYZH6L.js} +7 -7
- package/dist/{chunk-AS6ZXN5K.js → chunk-ZRJCGBVV.js} +2 -2
- package/dist/composer.js +11 -11
- package/dist/{computer-viewer-MUOPCKPS.js → computer-viewer-KEDVLD42.js} +6 -6
- package/dist/connect.js +7 -7
- package/dist/{embedded-new-voice-IIZPNXHC.js → embedded-new-voice-LFHWWYD2.js} +5 -5
- package/dist/{embedded-voice-5PXDBGOI.js → embedded-voice-6QS4ANNX.js} +5 -5
- package/dist/index.js +206 -206
- package/dist/interaction.js +6 -6
- package/dist/{latest-question-ZCZYQZMD.js → latest-question-AW3PPDUM.js} +2 -2
- package/dist/machines.js +1 -1
- package/dist/{model-policy-picker-menu-4GWYXUP3.js → model-policy-picker-menu-CURJ247L.js} +5 -5
- package/dist/native-previews.js +3 -3
- package/dist/{queue-surface-implementation-VPPIEPJL.js → queue-surface-implementation-2X5AXB6I.js} +4 -4
- package/dist/realtime.js +4 -4
- package/dist/{sandbox-files-QXIZJJMW.js → sandbox-files-4FBG3GS2.js} +8 -8
- package/dist/sandbox-files-4FBG3GS2.js.map +1 -0
- package/dist/session-app.js +268 -268
- package/dist/session-list-model.js +2 -2
- package/dist/session-ui.js +57 -57
- package/dist/session.js +11 -11
- package/dist/terminal.js +1 -1
- package/dist/timeline/types.d.ts +2 -0
- package/dist/{timeline-annotation-markers-BSTWUL4V.js → timeline-annotation-markers-X4K2IEOO.js} +4 -4
- package/dist/{timeline-annotation-selection-3SMCLIJE.js → timeline-annotation-selection-MEHBW676.js} +6 -6
- package/dist/{timeline-annotations-dialog-GFF3RFYZ.js → timeline-annotations-dialog-U2FPQ3UY.js} +7 -7
- package/dist/timeline-model.js +15 -15
- package/dist/ui/access-list.js +18 -18
- package/dist/ui/cadence-picker.js +2 -2
- package/dist/ui/choice-cards.js +2 -2
- package/dist/ui/detail-page.js +2 -2
- package/dist/ui/detail-sheet.js +2 -2
- package/dist/ui/diff-view.js +2 -2
- package/dist/ui/disclosure.js +4 -4
- package/dist/ui/flush-form-page.js +3 -3
- package/dist/ui/form-dialog.js +2 -2
- package/dist/ui/list-row.js +4 -4
- package/dist/ui/revision-history.js +11 -11
- package/dist/ui/role-select.js +7 -7
- package/dist/ui/select-menu.js +2 -2
- package/dist/ui/settings-nav.js +3 -3
- package/dist/workbench.js +9 -9
- package/package.json +4 -4
- package/src/app/components/capabilities/session-capability-card.tsx +14 -1
- package/src/app/components/capabilities/session-chrome-card.dom-fixture.tsx +377 -0
- package/src/app/components/capabilities/session-chrome-card.test.tsx +18 -0
- package/src/app/components/capabilities/session-chrome-card.tsx +243 -0
- package/src/app/components/capabilities/session-machine-card.dom-fixture.tsx +2 -0
- package/src/app/components/capabilities/session-machine-card.tsx +65 -14
- package/src/timeline/projection.ts +4 -2
- package/src/timeline/types.ts +2 -0
- package/dist/chunk-2FUVCKGA.js.map +0 -1
- package/dist/chunk-2JASYO6P.js.map +0 -1
- package/dist/chunk-C32ZOZTE.js.map +0 -1
- package/dist/chunk-E74ISUXA.js.map +0 -1
- package/dist/chunk-L7UDYTU3.js.map +0 -1
- package/dist/chunk-YSSTNTJD.js.map +0 -1
- /package/dist/{browser-viewer-VYZLJH3P.js.map → app/components/capabilities/session-chrome-card.js.map} +0 -0
- /package/dist/{chat-interactive-block-MECBXZ7V.js.map → browser-viewer-RYYQSRTC.js.map} +0 -0
- /package/dist/{computer-viewer-MUOPCKPS.js.map → chat-interactive-block-ABCRKXJ4.js.map} +0 -0
- /package/dist/{chunk-Y4D4N2EF.js.map → chunk-22ZBT6CN.js.map} +0 -0
- /package/dist/{chunk-TFK4KFKA.js.map → chunk-33TPANCR.js.map} +0 -0
- /package/dist/{chunk-CFFNT2OY.js.map → chunk-3GLAPCVI.js.map} +0 -0
- /package/dist/{chunk-BXQYAAVE.js.map → chunk-3XOISKZC.js.map} +0 -0
- /package/dist/{chunk-FYGMIMEG.js.map → chunk-4432A3HQ.js.map} +0 -0
- /package/dist/{chunk-3MOD23RS.js.map → chunk-46VBQG2D.js.map} +0 -0
- /package/dist/{chunk-Q2PVSCJV.js.map → chunk-4EAF3HSD.js.map} +0 -0
- /package/dist/{chunk-YTK6MYZH.js.map → chunk-4EONHNJU.js.map} +0 -0
- /package/dist/{chunk-7YLXFFF5.js.map → chunk-4R3JCVID.js.map} +0 -0
- /package/dist/{chunk-73DMIW44.js.map → chunk-4VKA5O7T.js.map} +0 -0
- /package/dist/{chunk-TIBPTOLQ.js.map → chunk-5JEIDFPD.js.map} +0 -0
- /package/dist/{chunk-3E4SJHVW.js.map → chunk-5POTDNQT.js.map} +0 -0
- /package/dist/{chunk-JW6CYU5F.js.map → chunk-63VGE4OH.js.map} +0 -0
- /package/dist/{chunk-7HVOIRGN.js.map → chunk-6NIB2KGJ.js.map} +0 -0
- /package/dist/{chunk-KLVK7BN5.js.map → chunk-6PQNLL4E.js.map} +0 -0
- /package/dist/{chunk-FGPSTD37.js.map → chunk-72J6C2AJ.js.map} +0 -0
- /package/dist/{chunk-N34NUHUO.js.map → chunk-73SOCVLS.js.map} +0 -0
- /package/dist/{chunk-43OV5QK7.js.map → chunk-7BST7BA6.js.map} +0 -0
- /package/dist/{chunk-FDAV72IX.js.map → chunk-7CZTKBTI.js.map} +0 -0
- /package/dist/{chunk-G4ONAC4P.js.map → chunk-7DU35P5J.js.map} +0 -0
- /package/dist/{chunk-SM5QX6UK.js.map → chunk-A2EWJQXX.js.map} +0 -0
- /package/dist/{chunk-3WDWLSYX.js.map → chunk-AD22P5X3.js.map} +0 -0
- /package/dist/{chunk-ZQSRAMSH.js.map → chunk-ADJJQSYC.js.map} +0 -0
- /package/dist/{chunk-5C6KUGFG.js.map → chunk-AG7VGUIW.js.map} +0 -0
- /package/dist/{chunk-LF5CBAOS.js.map → chunk-AOLE4IRZ.js.map} +0 -0
- /package/dist/{chunk-CF7ZCKZC.js.map → chunk-APU42QDI.js.map} +0 -0
- /package/dist/{chunk-P56F4SFD.js.map → chunk-BJIZ7PL7.js.map} +0 -0
- /package/dist/{chunk-XEL2ZJ3Z.js.map → chunk-BJW7G6EF.js.map} +0 -0
- /package/dist/{chunk-NNNXKGJH.js.map → chunk-BNUPYHHZ.js.map} +0 -0
- /package/dist/{chunk-FYSOHZSM.js.map → chunk-BXRIQZAH.js.map} +0 -0
- /package/dist/{chunk-N4ZDRONX.js.map → chunk-CBY5CXBD.js.map} +0 -0
- /package/dist/{chunk-7PTHBHEW.js.map → chunk-CVG4FILQ.js.map} +0 -0
- /package/dist/{chunk-LMN7SO4T.js.map → chunk-DDK4WFJ3.js.map} +0 -0
- /package/dist/{chunk-G4HQUBO4.js.map → chunk-DLOYMWUQ.js.map} +0 -0
- /package/dist/{chunk-OTMWHZBY.js.map → chunk-DWPOQ3S5.js.map} +0 -0
- /package/dist/{chunk-JIJGQPW2.js.map → chunk-EHCUFCXM.js.map} +0 -0
- /package/dist/{chunk-SFTKDFOQ.js.map → chunk-EU6XSQFM.js.map} +0 -0
- /package/dist/{chunk-62VER7O4.js.map → chunk-F3NERYBQ.js.map} +0 -0
- /package/dist/{chunk-XZTOGYSM.js.map → chunk-F6LBGYS6.js.map} +0 -0
- /package/dist/{chunk-EX5YO2KX.js.map → chunk-FDNJVZRE.js.map} +0 -0
- /package/dist/{chunk-E5GLL7GL.js.map → chunk-FLGUVRR7.js.map} +0 -0
- /package/dist/{chunk-YGD4MVPD.js.map → chunk-FSN6APRD.js.map} +0 -0
- /package/dist/{chunk-J2YMBA2R.js.map → chunk-GAIM5RNE.js.map} +0 -0
- /package/dist/{chunk-X2AH4DRF.js.map → chunk-GALB2G3W.js.map} +0 -0
- /package/dist/{chunk-E2NTKB4G.js.map → chunk-GFUUFM2O.js.map} +0 -0
- /package/dist/{chunk-7FTEIGVP.js.map → chunk-GTQ3SNEI.js.map} +0 -0
- /package/dist/{chunk-SPH2HDSW.js.map → chunk-HDHK3SXK.js.map} +0 -0
- /package/dist/{chunk-IJ6WELGP.js.map → chunk-HGMWMK5K.js.map} +0 -0
- /package/dist/{chunk-HRMDE6MI.js.map → chunk-HNYJEAES.js.map} +0 -0
- /package/dist/{chunk-BYASTRHQ.js.map → chunk-HO5Y2OOX.js.map} +0 -0
- /package/dist/{chunk-WW7VY5LC.js.map → chunk-HOJGAJAB.js.map} +0 -0
- /package/dist/{chunk-DYGAOHXK.js.map → chunk-HTT3FB7T.js.map} +0 -0
- /package/dist/{chunk-O2WCMUQG.js.map → chunk-HWDGJFM4.js.map} +0 -0
- /package/dist/{chunk-3AOXZHF6.js.map → chunk-IVOA3DXA.js.map} +0 -0
- /package/dist/{chunk-5O5NCXJP.js.map → chunk-JK7C5A4I.js.map} +0 -0
- /package/dist/{chunk-R7S6NSUB.js.map → chunk-JTN3T4QN.js.map} +0 -0
- /package/dist/{chunk-7DUTMHRQ.js.map → chunk-JXT5QDJC.js.map} +0 -0
- /package/dist/{chunk-BWTNB77U.js.map → chunk-KTRKZRID.js.map} +0 -0
- /package/dist/{chunk-MWAFZVC4.js.map → chunk-KWKGBGAF.js.map} +0 -0
- /package/dist/{chunk-5HXZC3OM.js.map → chunk-KZHW27BV.js.map} +0 -0
- /package/dist/{chunk-RWUIKGLS.js.map → chunk-L7YURQI2.js.map} +0 -0
- /package/dist/{chunk-73WI7FL2.js.map → chunk-LE2EDBXU.js.map} +0 -0
- /package/dist/{chunk-5DSKMG2I.js.map → chunk-LEXPBQ56.js.map} +0 -0
- /package/dist/{chunk-DWOP7YQX.js.map → chunk-N3ZP4IDU.js.map} +0 -0
- /package/dist/{chunk-2KKFUNVW.js.map → chunk-NCX5SAQY.js.map} +0 -0
- /package/dist/{chunk-ITGR4HN7.js.map → chunk-NDF3SH3X.js.map} +0 -0
- /package/dist/{chunk-JQCGPTZ6.js.map → chunk-NWZW2WHN.js.map} +0 -0
- /package/dist/{chunk-NQA5WCKG.js.map → chunk-NYZQ7LO7.js.map} +0 -0
- /package/dist/{chunk-ZDL4ZALP.js.map → chunk-O756O2I7.js.map} +0 -0
- /package/dist/{chunk-GRSODLVO.js.map → chunk-OANSIX34.js.map} +0 -0
- /package/dist/{chunk-JLMDWUME.js.map → chunk-OBQVTCTW.js.map} +0 -0
- /package/dist/{chunk-TUERKBGA.js.map → chunk-OO2T63BY.js.map} +0 -0
- /package/dist/{chunk-EPWD4KRA.js.map → chunk-OOEO4MKY.js.map} +0 -0
- /package/dist/{chunk-IKN3XCJU.js.map → chunk-OR37STQZ.js.map} +0 -0
- /package/dist/{chunk-62LZQOAH.js.map → chunk-OSVHU2WU.js.map} +0 -0
- /package/dist/{chunk-73YPB5IB.js.map → chunk-P5WABK2H.js.map} +0 -0
- /package/dist/{chunk-JNFRC3AW.js.map → chunk-PM3OSANE.js.map} +0 -0
- /package/dist/{chunk-W57X2TSV.js.map → chunk-PN66T6JA.js.map} +0 -0
- /package/dist/{chunk-4NDE4JTJ.js.map → chunk-Q35DT6I6.js.map} +0 -0
- /package/dist/{chunk-WFS5EUCL.js.map → chunk-Q35YZVDZ.js.map} +0 -0
- /package/dist/{chunk-P5GMHOZB.js.map → chunk-QCD5Y7K5.js.map} +0 -0
- /package/dist/{chunk-YTX274IC.js.map → chunk-QM5H4FPT.js.map} +0 -0
- /package/dist/{chunk-VCUGPND2.js.map → chunk-QRVNI5V6.js.map} +0 -0
- /package/dist/{chunk-JM4HQPAI.js.map → chunk-QZRDCFHI.js.map} +0 -0
- /package/dist/{chunk-ELABMEDP.js.map → chunk-R63QEVPK.js.map} +0 -0
- /package/dist/{chunk-CP7ZQHBW.js.map → chunk-RA3FNMWF.js.map} +0 -0
- /package/dist/{chunk-D6II4KOG.js.map → chunk-RGW24ZZM.js.map} +0 -0
- /package/dist/{chunk-WSYR6CUF.js.map → chunk-RQDFYQHA.js.map} +0 -0
- /package/dist/{chunk-CSLCTVND.js.map → chunk-RSNYGEVZ.js.map} +0 -0
- /package/dist/{chunk-B2ES3U36.js.map → chunk-S4EZ3JUB.js.map} +0 -0
- /package/dist/{chunk-OOUEPFGL.js.map → chunk-S4SC5SSV.js.map} +0 -0
- /package/dist/{chunk-A4BD4ZVB.js.map → chunk-S7PVL7XH.js.map} +0 -0
- /package/dist/{chunk-4LPA25NQ.js.map → chunk-SD2K5ZN5.js.map} +0 -0
- /package/dist/{chunk-XAXTE2NA.js.map → chunk-SUVEDKE2.js.map} +0 -0
- /package/dist/{chunk-LCFU5YUA.js.map → chunk-TGVVEGZG.js.map} +0 -0
- /package/dist/{chunk-OEL73V62.js.map → chunk-U36PO27Q.js.map} +0 -0
- /package/dist/{chunk-HZT5H5ZP.js.map → chunk-U3HSFCON.js.map} +0 -0
- /package/dist/{chunk-J5MEDX7C.js.map → chunk-U47YDYLQ.js.map} +0 -0
- /package/dist/{chunk-BLT4KQTS.js.map → chunk-UP4BE32Y.js.map} +0 -0
- /package/dist/{chunk-ZSKUBXA6.js.map → chunk-UWJ5P5CU.js.map} +0 -0
- /package/dist/{chunk-YVBHGMKC.js.map → chunk-VAIESMPY.js.map} +0 -0
- /package/dist/{chunk-5P6EKYTC.js.map → chunk-VP62LPLW.js.map} +0 -0
- /package/dist/{chunk-GOEN2FSD.js.map → chunk-VUHPA3XQ.js.map} +0 -0
- /package/dist/{chunk-5FA455GR.js.map → chunk-WNG757ID.js.map} +0 -0
- /package/dist/{chunk-4LMNYFES.js.map → chunk-WSMYOLHG.js.map} +0 -0
- /package/dist/{chunk-JXEMUZTV.js.map → chunk-X7ASQHR6.js.map} +0 -0
- /package/dist/{chunk-CZSYF7UF.js.map → chunk-XOFUXMPP.js.map} +0 -0
- /package/dist/{chunk-VNMM6DQP.js.map → chunk-XWWXIZFP.js.map} +0 -0
- /package/dist/{chunk-XC4DZXZZ.js.map → chunk-YXOKAG66.js.map} +0 -0
- /package/dist/{chunk-XMNUZUUA.js.map → chunk-Z2DAWUO3.js.map} +0 -0
- /package/dist/{chunk-TJ2MBYK4.js.map → chunk-Z5WMLJKI.js.map} +0 -0
- /package/dist/{chunk-WCK2NF54.js.map → chunk-ZKYYZH6L.js.map} +0 -0
- /package/dist/{chunk-AS6ZXN5K.js.map → chunk-ZRJCGBVV.js.map} +0 -0
- /package/dist/{embedded-new-voice-IIZPNXHC.js.map → computer-viewer-KEDVLD42.js.map} +0 -0
- /package/dist/{embedded-voice-5PXDBGOI.js.map → embedded-new-voice-LFHWWYD2.js.map} +0 -0
- /package/dist/{model-policy-picker-menu-4GWYXUP3.js.map → embedded-voice-6QS4ANNX.js.map} +0 -0
- /package/dist/{latest-question-ZCZYQZMD.js.map → latest-question-AW3PPDUM.js.map} +0 -0
- /package/dist/{sandbox-files-QXIZJJMW.js.map → model-policy-picker-menu-CURJ247L.js.map} +0 -0
- /package/dist/{queue-surface-implementation-VPPIEPJL.js.map → queue-surface-implementation-2X5AXB6I.js.map} +0 -0
- /package/dist/{timeline-annotation-markers-BSTWUL4V.js.map → timeline-annotation-markers-X4K2IEOO.js.map} +0 -0
- /package/dist/{timeline-annotation-selection-3SMCLIJE.js.map → timeline-annotation-selection-MEHBW676.js.map} +0 -0
- /package/dist/{timeline-annotations-dialog-GFF3RFYZ.js.map → timeline-annotations-dialog-U2FPQ3UY.js.map} +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BillingClassMark,
|
|
4
4
|
PickerNavRow
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-AG7VGUIW.js";
|
|
6
6
|
import {
|
|
7
7
|
MENU_CHECK_CLASS,
|
|
8
8
|
MENU_LABEL_CLASS,
|
|
@@ -12,9 +12,6 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
ModelMark
|
|
14
14
|
} from "./chunk-WJPMYXKZ.js";
|
|
15
|
-
import {
|
|
16
|
-
containedPortal
|
|
17
|
-
} from "./chunk-J3BHDXQQ.js";
|
|
18
15
|
import {
|
|
19
16
|
compactEffortLabel,
|
|
20
17
|
defaultModelPolicyPickerMessages,
|
|
@@ -22,6 +19,9 @@ import {
|
|
|
22
19
|
modelPickerChoice,
|
|
23
20
|
modelPickerMenuView
|
|
24
21
|
} from "./chunk-IQ64BNAG.js";
|
|
22
|
+
import {
|
|
23
|
+
containedPortal
|
|
24
|
+
} from "./chunk-J3BHDXQQ.js";
|
|
25
25
|
import {
|
|
26
26
|
labelReasoningEffort
|
|
27
27
|
} from "./chunk-CFEFYPNR.js";
|
|
@@ -353,4 +353,4 @@ export {
|
|
|
353
353
|
ModelPolicyPickerMenu,
|
|
354
354
|
ModelPolicyPickerPopover
|
|
355
355
|
};
|
|
356
|
-
//# sourceMappingURL=chunk-
|
|
356
|
+
//# sourceMappingURL=chunk-5POTDNQT.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-HPPKLBTJ.js";
|
|
8
8
|
import {
|
|
9
9
|
buildTimeline
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-5MZTJMZ3.js";
|
|
11
11
|
import {
|
|
12
12
|
presentFailure
|
|
13
13
|
} from "./chunk-SJGAHTY5.js";
|
|
@@ -298,4 +298,4 @@ export {
|
|
|
298
298
|
sandboxProvisionInFlight,
|
|
299
299
|
eventLabel
|
|
300
300
|
};
|
|
301
|
-
//# sourceMappingURL=chunk-
|
|
301
|
+
//# sourceMappingURL=chunk-63VGE4OH.js.map
|
|
@@ -87,11 +87,65 @@ function ArtifactSurface({
|
|
|
87
87
|
);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
+
// src/components/artifacts/artifact-submissions.tsx
|
|
91
|
+
import { createContext, useContext, useState } from "react";
|
|
92
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
93
|
+
function createSubmissionQueue() {
|
|
94
|
+
let pending = 0;
|
|
95
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
96
|
+
const emit = () => {
|
|
97
|
+
for (const listener of listeners) listener();
|
|
98
|
+
};
|
|
99
|
+
return {
|
|
100
|
+
getPending: () => pending,
|
|
101
|
+
subscribe: (listener) => {
|
|
102
|
+
listeners.add(listener);
|
|
103
|
+
return () => {
|
|
104
|
+
listeners.delete(listener);
|
|
105
|
+
};
|
|
106
|
+
},
|
|
107
|
+
async run(invoke) {
|
|
108
|
+
pending++;
|
|
109
|
+
emit();
|
|
110
|
+
try {
|
|
111
|
+
return await invoke();
|
|
112
|
+
} finally {
|
|
113
|
+
pending--;
|
|
114
|
+
emit();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
var standaloneQueue = {
|
|
120
|
+
getPending: () => 0,
|
|
121
|
+
subscribe: (_listener) => () => {
|
|
122
|
+
},
|
|
123
|
+
run: (invoke) => invoke()
|
|
124
|
+
};
|
|
125
|
+
var SubmissionContext = createContext(null);
|
|
126
|
+
function ArtifactSubmissionProvider({ children }) {
|
|
127
|
+
const [queue] = useState(createSubmissionQueue);
|
|
128
|
+
return /* @__PURE__ */ jsx2(SubmissionContext.Provider, { value: queue, children });
|
|
129
|
+
}
|
|
130
|
+
function useArtifactSubmissions() {
|
|
131
|
+
return useContext(SubmissionContext) ?? standaloneQueue;
|
|
132
|
+
}
|
|
133
|
+
var SESSION_KEYS = /* @__PURE__ */ new WeakMap();
|
|
134
|
+
var nextSessionKey = 0;
|
|
135
|
+
function artifactSubmissionSessionKey(session) {
|
|
136
|
+
let key = SESSION_KEYS.get(session);
|
|
137
|
+
if (key === void 0) {
|
|
138
|
+
key = ++nextSessionKey;
|
|
139
|
+
SESSION_KEYS.set(session, key);
|
|
140
|
+
}
|
|
141
|
+
return key;
|
|
142
|
+
}
|
|
143
|
+
|
|
90
144
|
// src/components/artifacts/editable-artifact-ui.tsx
|
|
91
|
-
import { useEffect, useState } from "react";
|
|
92
|
-
import { jsx as
|
|
145
|
+
import { useEffect, useState as useState2 } from "react";
|
|
146
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
93
147
|
function useEditableArtifactView(session) {
|
|
94
|
-
const [view, setView] =
|
|
148
|
+
const [view, setView] = useState2(() => session.getView());
|
|
95
149
|
useEffect(() => {
|
|
96
150
|
setView(session.getView());
|
|
97
151
|
return session.subscribe(setView);
|
|
@@ -142,10 +196,10 @@ function EditableArtifactMessage({
|
|
|
142
196
|
}) {
|
|
143
197
|
const t = useOpenGeniText();
|
|
144
198
|
const retryLabel = retryLabelProp === void 0 ? t("artifacts.editableArtifactUi.retry") : retryLabelProp;
|
|
145
|
-
return /* @__PURE__ */
|
|
146
|
-
/* @__PURE__ */
|
|
147
|
-
/* @__PURE__ */
|
|
148
|
-
retry ? /* @__PURE__ */
|
|
199
|
+
return /* @__PURE__ */ jsx3("div", { className: "grid h-full min-h-56 place-items-center bg-og-bg p-6 text-center", children: /* @__PURE__ */ jsxs2("div", { children: [
|
|
200
|
+
/* @__PURE__ */ jsx3("p", { className: "text-og-base font-medium text-og-fg", children: title }),
|
|
201
|
+
/* @__PURE__ */ jsx3("p", { className: "mt-1 max-w-lg text-og-sm text-og-fg-muted", children: detail }),
|
|
202
|
+
retry ? /* @__PURE__ */ jsx3(
|
|
149
203
|
"button",
|
|
150
204
|
{
|
|
151
205
|
type: "button",
|
|
@@ -160,60 +214,6 @@ function asEditableArtifactError(cause, fallback) {
|
|
|
160
214
|
return cause instanceof Error ? cause : new Error(fallback);
|
|
161
215
|
}
|
|
162
216
|
|
|
163
|
-
// src/components/artifacts/artifact-submissions.tsx
|
|
164
|
-
import { createContext, useContext, useState as useState2 } from "react";
|
|
165
|
-
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
166
|
-
function createSubmissionQueue() {
|
|
167
|
-
let pending = 0;
|
|
168
|
-
const listeners = /* @__PURE__ */ new Set();
|
|
169
|
-
const emit = () => {
|
|
170
|
-
for (const listener of listeners) listener();
|
|
171
|
-
};
|
|
172
|
-
return {
|
|
173
|
-
getPending: () => pending,
|
|
174
|
-
subscribe: (listener) => {
|
|
175
|
-
listeners.add(listener);
|
|
176
|
-
return () => {
|
|
177
|
-
listeners.delete(listener);
|
|
178
|
-
};
|
|
179
|
-
},
|
|
180
|
-
async run(invoke) {
|
|
181
|
-
pending++;
|
|
182
|
-
emit();
|
|
183
|
-
try {
|
|
184
|
-
return await invoke();
|
|
185
|
-
} finally {
|
|
186
|
-
pending--;
|
|
187
|
-
emit();
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
var standaloneQueue = {
|
|
193
|
-
getPending: () => 0,
|
|
194
|
-
subscribe: (_listener) => () => {
|
|
195
|
-
},
|
|
196
|
-
run: (invoke) => invoke()
|
|
197
|
-
};
|
|
198
|
-
var SubmissionContext = createContext(null);
|
|
199
|
-
function ArtifactSubmissionProvider({ children }) {
|
|
200
|
-
const [queue] = useState2(createSubmissionQueue);
|
|
201
|
-
return /* @__PURE__ */ jsx3(SubmissionContext.Provider, { value: queue, children });
|
|
202
|
-
}
|
|
203
|
-
function useArtifactSubmissions() {
|
|
204
|
-
return useContext(SubmissionContext) ?? standaloneQueue;
|
|
205
|
-
}
|
|
206
|
-
var SESSION_KEYS = /* @__PURE__ */ new WeakMap();
|
|
207
|
-
var nextSessionKey = 0;
|
|
208
|
-
function artifactSubmissionSessionKey(session) {
|
|
209
|
-
let key = SESSION_KEYS.get(session);
|
|
210
|
-
if (key === void 0) {
|
|
211
|
-
key = ++nextSessionKey;
|
|
212
|
-
SESSION_KEYS.set(session, key);
|
|
213
|
-
}
|
|
214
|
-
return key;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
217
|
// src/components/artifacts/artifact-download.tsx
|
|
218
218
|
import { DownloadIcon, LoaderCircleIcon as LoaderCircleIcon2 } from "lucide-react";
|
|
219
219
|
import { useEffect as useEffect2, useRef, useState as useState3, useSyncExternalStore } from "react";
|
|
@@ -325,15 +325,15 @@ function downloadFileName(title, format, fallback) {
|
|
|
325
325
|
|
|
326
326
|
export {
|
|
327
327
|
ArtifactSurface,
|
|
328
|
+
ArtifactSubmissionProvider,
|
|
329
|
+
useArtifactSubmissions,
|
|
330
|
+
artifactSubmissionSessionKey,
|
|
328
331
|
useEditableArtifactView,
|
|
329
332
|
editableArtifactProjectionKey,
|
|
330
333
|
editableArtifactStatusLabel,
|
|
331
334
|
editableArtifactAccessRevoked,
|
|
332
335
|
EditableArtifactMessage,
|
|
333
336
|
asEditableArtifactError,
|
|
334
|
-
ArtifactSubmissionProvider,
|
|
335
|
-
useArtifactSubmissions,
|
|
336
|
-
artifactSubmissionSessionKey,
|
|
337
337
|
EditableArtifactDownloadButton
|
|
338
338
|
};
|
|
339
|
-
//# sourceMappingURL=chunk-
|
|
339
|
+
//# sourceMappingURL=chunk-6JKZILLF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/artifacts/artifact-surface.tsx","../src/components/artifacts/editable-artifact-ui.tsx","../src/components/artifacts/artifact-submissions.tsx","../src/components/artifacts/artifact-download.tsx"],"sourcesContent":["import {\n FileSpreadsheetIcon,\n FileTextIcon,\n LoaderCircleIcon,\n PresentationIcon,\n} from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { useOpenGeniText, type OpenGeniText } from \"../../messages/runtime\";\n\nexport type ArtifactModality = \"spreadsheet\" | \"document\" | \"presentation\";\n\nexport type ArtifactSurfaceProps = {\n modality: ArtifactModality;\n title: string;\n /** An embedding host may already provide the artifact title and navigation. */\n showHeader?: boolean | undefined;\n subtitle?: ReactNode | undefined;\n actions?: ReactNode | undefined;\n children: ReactNode;\n footer?: ReactNode | undefined;\n busy?: boolean | undefined;\n className?: string | undefined;\n};\n\nconst MODALITY_LABEL = (t: OpenGeniText): Record<ArtifactModality, string> => ({\n spreadsheet: t(\"artifacts.artifactSurface.spreadsheet\"),\n document: t(\"artifacts.artifactSurface.document\"),\n presentation: t(\"artifacts.artifactSurface.presentation\"),\n});\n\nfunction ModalityIcon({ modality }: { modality: ArtifactModality }) {\n switch (modality) {\n case \"spreadsheet\":\n return <FileSpreadsheetIcon className=\"size-4\" />;\n case \"document\":\n return <FileTextIcon className=\"size-4\" />;\n case \"presentation\":\n return <PresentationIcon className=\"size-4\" />;\n }\n}\n\n/**\n * Modality-neutral artifact chrome. It deliberately owns no file, session, or\n * persistence state: hosts can use the same surface for a local draft, a\n * durable Opengeni artifact, or a collaborative projection.\n */\nexport function ArtifactSurface({\n modality,\n title,\n showHeader = true,\n subtitle,\n actions,\n children,\n footer,\n busy = false,\n className,\n}: ArtifactSurfaceProps) {\n const t = useOpenGeniText();\n return (\n <section\n aria-label={`${MODALITY_LABEL(t)[modality]}: ${title}`}\n aria-busy={busy || undefined}\n data-og-artifact-modality={modality}\n className={cn(\n \"og-root flex h-full min-h-0 min-w-0 flex-col overflow-hidden rounded-og-lg border border-og-border bg-og-surface-1 text-og-fg shadow-og-md\",\n className,\n )}\n >\n {showHeader ? (\n <header className=\"flex min-h-11 shrink-0 items-center gap-2 border-b border-og-border bg-og-surface-2 px-3\">\n <span\n aria-hidden\n className=\"grid size-7 shrink-0 place-items-center rounded-og-sm bg-og-surface-3 text-og-fg-muted\"\n >\n <ModalityIcon modality={modality} />\n </span>\n <div className=\"min-w-0 flex-1\">\n <h2 className=\"truncate text-og-base font-medium text-og-fg\">{title}</h2>\n {subtitle ? (\n <div className=\"truncate text-og-xs text-og-fg-muted\">{subtitle}</div>\n ) : null}\n </div>\n {busy ? (\n <LoaderCircleIcon\n aria-label={t(\"artifacts.artifactSurface.updatingArtifact\")}\n className=\"size-4 shrink-0 animate-spin text-og-fg-muted\"\n />\n ) : null}\n {actions ? <div className=\"flex shrink-0 items-center gap-1\">{actions}</div> : null}\n </header>\n ) : (\n <>\n {typeof subtitle === \"string\" || typeof subtitle === \"number\" ? (\n <span role=\"status\" className=\"sr-only\">\n {subtitle}\n </span>\n ) : null}\n {actions ? (\n <div className=\"flex shrink-0 items-center justify-end gap-1 border-b border-og-border px-3 py-1\">\n {actions}\n </div>\n ) : null}\n </>\n )}\n\n <div className=\"min-h-0 min-w-0 flex-1\">{children}</div>\n\n {footer ? (\n <footer className=\"shrink-0 border-t border-og-border bg-og-surface-2\">{footer}</footer>\n ) : null}\n </section>\n );\n}\n","import type {\n EditableArtifactSession,\n EditableArtifactSyncView,\n} from \"@opengeni/sdk/editable-artifacts\";\nimport { useEffect, useState } from \"react\";\nimport { type OpenGeniText } from \"../../messages/runtime\";\nimport { useOpenGeniText } from \"../../messages/runtime\";\n\nexport function useEditableArtifactView(\n session: EditableArtifactSession,\n): EditableArtifactSyncView {\n const [view, setView] = useState(() => session.getView());\n useEffect(() => {\n setView(session.getView());\n return session.subscribe(setView);\n }, [session]);\n return view;\n}\n\n/** Changes whenever the Worker-resident speculative projection may have changed. */\nexport function editableArtifactProjectionKey(view: EditableArtifactSyncView): string {\n return [\n view.state,\n view.cursor,\n view.headSequence,\n view.pendingTransactions,\n view.blockedPending.map((entry) => `${entry.clientTransactionId}:${entry.code}`).join(\",\"),\n ].join(\":\");\n}\n\nexport function editableArtifactStatusLabel(\n t: OpenGeniText,\n view: EditableArtifactSyncView,\n): string {\n switch (view.state) {\n case \"idle\":\n case \"connecting\":\n return t(\"artifacts.editableArtifactUi.connecting\");\n case \"syncing\":\n case \"resyncing\":\n return t(\"artifacts.editableArtifactUi.syncing\");\n case \"reconnecting\":\n return t(\"artifacts.editableArtifactUi.reconnecting\");\n case \"unsupported\":\n return t(\"artifacts.editableArtifactUi.thisArtifactVersionIsNot\");\n case \"failed\":\n if (editableArtifactAccessRevoked(view)) {\n return t(\"artifacts.editableArtifactUi.youNoLongerHaveAccess\");\n }\n return view.lastError?.message ?? t(\"artifacts.editableArtifactUi.couldNotOpenThisArtifact\");\n case \"closed\":\n return t(\"artifacts.editableArtifactUi.artifactSessionClosed\");\n case \"live\":\n return view.writable\n ? t(\"artifacts.editableArtifactUi.live\")\n : t(\"artifacts.editableArtifactUi.liveReadOnly\");\n }\n}\n\n/** Revoked read authority must hide any projection retained before invalidation. */\nexport function editableArtifactAccessRevoked(view: EditableArtifactSyncView): boolean {\n if (view.state !== \"failed\" || !view.lastError) return false;\n return (view.lastError as Error & Readonly<{ code?: unknown }>).code === \"permission_changed\";\n}\n\nexport function EditableArtifactMessage({\n title,\n detail,\n retry,\n retryLabel: retryLabelProp,\n}: {\n title: string;\n detail: string;\n retry?: (() => void) | undefined;\n retryLabel?: string | undefined;\n}) {\n const t = useOpenGeniText();\n const retryLabel =\n retryLabelProp === undefined ? t(\"artifacts.editableArtifactUi.retry\") : retryLabelProp;\n return (\n <div className=\"grid h-full min-h-56 place-items-center bg-og-bg p-6 text-center\">\n <div>\n <p className=\"text-og-base font-medium text-og-fg\">{title}</p>\n <p className=\"mt-1 max-w-lg text-og-sm text-og-fg-muted\">{detail}</p>\n {retry ? (\n <button\n type=\"button\"\n onClick={retry}\n className=\"mt-3 rounded-og-sm border border-og-primary-border bg-og-primary text-og-primary-fg px-3 py-1.5 text-og-sm font-medium hover:bg-og-primary-hover outline-hidden focus-visible:ring-2 focus-visible:ring-og-accent\"\n >\n {retryLabel}\n </button>\n ) : null}\n </div>\n </div>\n );\n}\n\nexport function asEditableArtifactError(cause: unknown, fallback: string): Error {\n return cause instanceof Error ? cause : new Error(fallback);\n}\n","import type { EditableArtifactSession } from \"@opengeni/sdk/editable-artifacts\";\nimport { createContext, useContext, useState, type ReactNode } from \"react\";\n\nfunction createSubmissionQueue() {\n let pending = 0;\n const listeners = new Set<() => void>();\n const emit = () => {\n for (const listener of listeners) listener();\n };\n return {\n getPending: () => pending,\n subscribe: (listener: () => void) => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n async run<T>(invoke: () => Promise<T>): Promise<T> {\n // The SDK's causal queue and Worker authoring precede pendingTransactions.\n // Latch synchronously so a same-event blur/click cannot export an older head.\n pending++;\n emit();\n try {\n return await invoke();\n } finally {\n pending--;\n emit();\n }\n },\n };\n}\n\nexport type ArtifactSubmissions = Readonly<{\n getPending: () => number;\n subscribe: (listener: () => void) => () => void;\n run: <T>(invoke: () => Promise<T>) => Promise<T>;\n}>;\n\nconst standaloneQueue: ArtifactSubmissions = {\n getPending: () => 0,\n subscribe: (_listener: () => void) => () => {},\n run: <T,>(invoke: () => Promise<T>) => invoke(),\n};\nconst SubmissionContext = createContext<ArtifactSubmissions | null>(null);\n\nexport function ArtifactSubmissionProvider({ children }: { children: ReactNode }) {\n const [queue] = useState(createSubmissionQueue);\n return <SubmissionContext.Provider value={queue}>{children}</SubmissionContext.Provider>;\n}\n\n/** UI authoring submissions not yet visible as SDK pending transactions. */\nexport function useArtifactSubmissions(): ArtifactSubmissions {\n return useContext(SubmissionContext) ?? standaloneQueue;\n}\n\nconst SESSION_KEYS = new WeakMap<EditableArtifactSession, number>();\nlet nextSessionKey = 0;\n\n/** Stable per-session React key so a replaced session never inherits queued state. */\nexport function artifactSubmissionSessionKey(session: EditableArtifactSession): number {\n let key = SESSION_KEYS.get(session);\n if (key === undefined) {\n key = ++nextSessionKey;\n SESSION_KEYS.set(session, key);\n }\n return key;\n}\n","import type { EditableArtifactSession } from \"@opengeni/sdk/editable-artifacts\";\nimport { DownloadIcon, LoaderCircleIcon } from \"lucide-react\";\nimport { useEffect, useRef, useState, useSyncExternalStore } from \"react\";\n\nimport { ArtifactButton } from \"./artifact-chrome\";\nimport { useArtifactSubmissions } from \"./artifact-submissions\";\nimport { useEditableArtifactView } from \"./editable-artifact-ui\";\nimport { useOpenGeniText } from \"../../messages/runtime\";\n\n/** Host-authenticated export of the saved native head as an Office file. */\nexport type EditableArtifactDownload = (signal: AbortSignal) => Promise<Blob>;\nexport type EditableArtifactDownloadFormat = \"xlsx\" | \"docx\" | \"pptx\";\n\nconst LABELS = {\n xlsx: {\n download: \"artifacts.spreadsheetDownload.download\",\n preparing: \"artifacts.spreadsheetDownload.preparing\",\n failed: \"artifacts.spreadsheetDownload.downloadFailedTryAgain\",\n title: \"artifacts.spreadsheetDownload.downloadWorkbookAsXlsx\",\n wait: \"artifacts.spreadsheetDownload.waitForWorkbookChangesTo\",\n fallbackName: \"artifacts.spreadsheetDownload.workbook\",\n },\n docx: {\n download: \"artifacts.artifactDownload.download\",\n preparing: \"artifacts.artifactDownload.preparing\",\n failed: \"artifacts.artifactDownload.downloadFailedTryAgain\",\n title: \"artifacts.artifactDownload.downloadDocumentAsDocx\",\n wait: \"artifacts.artifactDownload.waitForDocumentChangesTo\",\n fallbackName: \"artifacts.artifactDownload.document\",\n },\n pptx: {\n download: \"artifacts.artifactDownload.download\",\n preparing: \"artifacts.artifactDownload.preparing\",\n failed: \"artifacts.artifactDownload.downloadFailedTryAgain\",\n title: \"artifacts.artifactDownload.downloadPresentationAsPptx\",\n wait: \"artifacts.artifactDownload.waitForPresentationChangesTo\",\n fallbackName: \"artifacts.artifactDownload.presentation\",\n },\n} as const;\n\n/**\n * Download action shared by every editable modality. It waits for live sync\n * with no pending or still-submitting edits, so the export is the latest head.\n */\nexport function EditableArtifactDownloadButton({\n session,\n title,\n download,\n format,\n}: {\n session: EditableArtifactSession;\n title: string;\n download: EditableArtifactDownload;\n format: EditableArtifactDownloadFormat;\n}) {\n const t = useOpenGeniText();\n const labels = LABELS[format];\n const view = useEditableArtifactView(session);\n const submissions = useArtifactSubmissions();\n const submitting = useSyncExternalStore(\n submissions.subscribe,\n submissions.getPending,\n submissions.getPending,\n );\n const active = useRef<AbortController | null>(null);\n const [busy, setBusy] = useState(false);\n const [error, setError] = useState(false);\n const ready =\n view.state === \"live\" &&\n submitting === 0 &&\n view.pendingTransactions === 0 &&\n view.blockedPending.length === 0 &&\n !view.authoringBlockedReason;\n useEffect(() => () => active.current?.abort(), [session]);\n useEffect(() => {\n if (view.state === \"failed\" || view.state === \"closed\") {\n active.current?.abort();\n active.current = null;\n setBusy(false);\n }\n }, [view.state]);\n\n const start = async () => {\n if (active.current || !ready || submissions.getPending()) return;\n // Re-read the live view: a just-committed edit may precede React's next render.\n const current = session.getView();\n if (\n current.state !== \"live\" ||\n current.pendingTransactions ||\n current.blockedPending.length ||\n current.authoringBlockedReason\n )\n return;\n const controller = new AbortController();\n active.current = controller;\n setBusy(true);\n setError(false);\n try {\n const blob = await download(controller.signal);\n if (controller.signal.aborted) return;\n const url = URL.createObjectURL(blob);\n try {\n const anchor = document.createElement(\"a\");\n anchor.href = url;\n anchor.download = downloadFileName(title, format, t(labels.fallbackName));\n anchor.rel = \"noopener\";\n anchor.click();\n } finally {\n setTimeout(() => URL.revokeObjectURL(url), 0);\n }\n } catch {\n if (!controller.signal.aborted) setError(true);\n } finally {\n if (!controller.signal.aborted) {\n active.current = null;\n setBusy(false);\n }\n }\n };\n\n return (\n <>\n {error ? (\n <span role=\"alert\" className=\"text-og-xs text-og-fg-muted\">\n {t(labels.failed)}\n </span>\n ) : null}\n <ArtifactButton\n onClick={() => void start()}\n disabled={busy || !ready}\n title={ready ? t(labels.title) : t(labels.wait)}\n >\n {busy ? (\n <LoaderCircleIcon className=\"animate-spin\" aria-hidden />\n ) : (\n <DownloadIcon aria-hidden />\n )}\n {busy ? t(labels.preparing) : t(labels.download)}\n </ArtifactButton>\n </>\n );\n}\n\n/** Safe local file name: the artifact title with exactly one matching extension. */\nexport function downloadFileName(\n title: string,\n format: EditableArtifactDownloadFormat,\n fallback: string,\n): string {\n const base =\n title\n .replace(/[\\\\/:*?\"<>|\\u0000-\\u001f]/g, \"_\")\n .replace(new RegExp(`\\\\.${format}$`, \"i\"), \"\")\n .trim() || fallback;\n return `${base}.${format}`;\n}\n"],"mappings":"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","names":["jsx","jsxs","useState","jsx","LoaderCircleIcon","useEffect","useState","Fragment","jsx","jsxs","useState","useEffect","LoaderCircleIcon"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/artifacts/artifact-surface.tsx","../src/components/artifacts/artifact-submissions.tsx","../src/components/artifacts/editable-artifact-ui.tsx","../src/components/artifacts/artifact-download.tsx"],"sourcesContent":["import {\n FileSpreadsheetIcon,\n FileTextIcon,\n LoaderCircleIcon,\n PresentationIcon,\n} from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { useOpenGeniText, type OpenGeniText } from \"../../messages/runtime\";\n\nexport type ArtifactModality = \"spreadsheet\" | \"document\" | \"presentation\";\n\nexport type ArtifactSurfaceProps = {\n modality: ArtifactModality;\n title: string;\n /** An embedding host may already provide the artifact title and navigation. */\n showHeader?: boolean | undefined;\n subtitle?: ReactNode | undefined;\n actions?: ReactNode | undefined;\n children: ReactNode;\n footer?: ReactNode | undefined;\n busy?: boolean | undefined;\n className?: string | undefined;\n};\n\nconst MODALITY_LABEL = (t: OpenGeniText): Record<ArtifactModality, string> => ({\n spreadsheet: t(\"artifacts.artifactSurface.spreadsheet\"),\n document: t(\"artifacts.artifactSurface.document\"),\n presentation: t(\"artifacts.artifactSurface.presentation\"),\n});\n\nfunction ModalityIcon({ modality }: { modality: ArtifactModality }) {\n switch (modality) {\n case \"spreadsheet\":\n return <FileSpreadsheetIcon className=\"size-4\" />;\n case \"document\":\n return <FileTextIcon className=\"size-4\" />;\n case \"presentation\":\n return <PresentationIcon className=\"size-4\" />;\n }\n}\n\n/**\n * Modality-neutral artifact chrome. It deliberately owns no file, session, or\n * persistence state: hosts can use the same surface for a local draft, a\n * durable Opengeni artifact, or a collaborative projection.\n */\nexport function ArtifactSurface({\n modality,\n title,\n showHeader = true,\n subtitle,\n actions,\n children,\n footer,\n busy = false,\n className,\n}: ArtifactSurfaceProps) {\n const t = useOpenGeniText();\n return (\n <section\n aria-label={`${MODALITY_LABEL(t)[modality]}: ${title}`}\n aria-busy={busy || undefined}\n data-og-artifact-modality={modality}\n className={cn(\n \"og-root flex h-full min-h-0 min-w-0 flex-col overflow-hidden rounded-og-lg border border-og-border bg-og-surface-1 text-og-fg shadow-og-md\",\n className,\n )}\n >\n {showHeader ? (\n <header className=\"flex min-h-11 shrink-0 items-center gap-2 border-b border-og-border bg-og-surface-2 px-3\">\n <span\n aria-hidden\n className=\"grid size-7 shrink-0 place-items-center rounded-og-sm bg-og-surface-3 text-og-fg-muted\"\n >\n <ModalityIcon modality={modality} />\n </span>\n <div className=\"min-w-0 flex-1\">\n <h2 className=\"truncate text-og-base font-medium text-og-fg\">{title}</h2>\n {subtitle ? (\n <div className=\"truncate text-og-xs text-og-fg-muted\">{subtitle}</div>\n ) : null}\n </div>\n {busy ? (\n <LoaderCircleIcon\n aria-label={t(\"artifacts.artifactSurface.updatingArtifact\")}\n className=\"size-4 shrink-0 animate-spin text-og-fg-muted\"\n />\n ) : null}\n {actions ? <div className=\"flex shrink-0 items-center gap-1\">{actions}</div> : null}\n </header>\n ) : (\n <>\n {typeof subtitle === \"string\" || typeof subtitle === \"number\" ? (\n <span role=\"status\" className=\"sr-only\">\n {subtitle}\n </span>\n ) : null}\n {actions ? (\n <div className=\"flex shrink-0 items-center justify-end gap-1 border-b border-og-border px-3 py-1\">\n {actions}\n </div>\n ) : null}\n </>\n )}\n\n <div className=\"min-h-0 min-w-0 flex-1\">{children}</div>\n\n {footer ? (\n <footer className=\"shrink-0 border-t border-og-border bg-og-surface-2\">{footer}</footer>\n ) : null}\n </section>\n );\n}\n","import type { EditableArtifactSession } from \"@opengeni/sdk/editable-artifacts\";\nimport { createContext, useContext, useState, type ReactNode } from \"react\";\n\nfunction createSubmissionQueue() {\n let pending = 0;\n const listeners = new Set<() => void>();\n const emit = () => {\n for (const listener of listeners) listener();\n };\n return {\n getPending: () => pending,\n subscribe: (listener: () => void) => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n async run<T>(invoke: () => Promise<T>): Promise<T> {\n // The SDK's causal queue and Worker authoring precede pendingTransactions.\n // Latch synchronously so a same-event blur/click cannot export an older head.\n pending++;\n emit();\n try {\n return await invoke();\n } finally {\n pending--;\n emit();\n }\n },\n };\n}\n\nexport type ArtifactSubmissions = Readonly<{\n getPending: () => number;\n subscribe: (listener: () => void) => () => void;\n run: <T>(invoke: () => Promise<T>) => Promise<T>;\n}>;\n\nconst standaloneQueue: ArtifactSubmissions = {\n getPending: () => 0,\n subscribe: (_listener: () => void) => () => {},\n run: <T,>(invoke: () => Promise<T>) => invoke(),\n};\nconst SubmissionContext = createContext<ArtifactSubmissions | null>(null);\n\nexport function ArtifactSubmissionProvider({ children }: { children: ReactNode }) {\n const [queue] = useState(createSubmissionQueue);\n return <SubmissionContext.Provider value={queue}>{children}</SubmissionContext.Provider>;\n}\n\n/** UI authoring submissions not yet visible as SDK pending transactions. */\nexport function useArtifactSubmissions(): ArtifactSubmissions {\n return useContext(SubmissionContext) ?? standaloneQueue;\n}\n\nconst SESSION_KEYS = new WeakMap<EditableArtifactSession, number>();\nlet nextSessionKey = 0;\n\n/** Stable per-session React key so a replaced session never inherits queued state. */\nexport function artifactSubmissionSessionKey(session: EditableArtifactSession): number {\n let key = SESSION_KEYS.get(session);\n if (key === undefined) {\n key = ++nextSessionKey;\n SESSION_KEYS.set(session, key);\n }\n return key;\n}\n","import type {\n EditableArtifactSession,\n EditableArtifactSyncView,\n} from \"@opengeni/sdk/editable-artifacts\";\nimport { useEffect, useState } from \"react\";\nimport { type OpenGeniText } from \"../../messages/runtime\";\nimport { useOpenGeniText } from \"../../messages/runtime\";\n\nexport function useEditableArtifactView(\n session: EditableArtifactSession,\n): EditableArtifactSyncView {\n const [view, setView] = useState(() => session.getView());\n useEffect(() => {\n setView(session.getView());\n return session.subscribe(setView);\n }, [session]);\n return view;\n}\n\n/** Changes whenever the Worker-resident speculative projection may have changed. */\nexport function editableArtifactProjectionKey(view: EditableArtifactSyncView): string {\n return [\n view.state,\n view.cursor,\n view.headSequence,\n view.pendingTransactions,\n view.blockedPending.map((entry) => `${entry.clientTransactionId}:${entry.code}`).join(\",\"),\n ].join(\":\");\n}\n\nexport function editableArtifactStatusLabel(\n t: OpenGeniText,\n view: EditableArtifactSyncView,\n): string {\n switch (view.state) {\n case \"idle\":\n case \"connecting\":\n return t(\"artifacts.editableArtifactUi.connecting\");\n case \"syncing\":\n case \"resyncing\":\n return t(\"artifacts.editableArtifactUi.syncing\");\n case \"reconnecting\":\n return t(\"artifacts.editableArtifactUi.reconnecting\");\n case \"unsupported\":\n return t(\"artifacts.editableArtifactUi.thisArtifactVersionIsNot\");\n case \"failed\":\n if (editableArtifactAccessRevoked(view)) {\n return t(\"artifacts.editableArtifactUi.youNoLongerHaveAccess\");\n }\n return view.lastError?.message ?? t(\"artifacts.editableArtifactUi.couldNotOpenThisArtifact\");\n case \"closed\":\n return t(\"artifacts.editableArtifactUi.artifactSessionClosed\");\n case \"live\":\n return view.writable\n ? t(\"artifacts.editableArtifactUi.live\")\n : t(\"artifacts.editableArtifactUi.liveReadOnly\");\n }\n}\n\n/** Revoked read authority must hide any projection retained before invalidation. */\nexport function editableArtifactAccessRevoked(view: EditableArtifactSyncView): boolean {\n if (view.state !== \"failed\" || !view.lastError) return false;\n return (view.lastError as Error & Readonly<{ code?: unknown }>).code === \"permission_changed\";\n}\n\nexport function EditableArtifactMessage({\n title,\n detail,\n retry,\n retryLabel: retryLabelProp,\n}: {\n title: string;\n detail: string;\n retry?: (() => void) | undefined;\n retryLabel?: string | undefined;\n}) {\n const t = useOpenGeniText();\n const retryLabel =\n retryLabelProp === undefined ? t(\"artifacts.editableArtifactUi.retry\") : retryLabelProp;\n return (\n <div className=\"grid h-full min-h-56 place-items-center bg-og-bg p-6 text-center\">\n <div>\n <p className=\"text-og-base font-medium text-og-fg\">{title}</p>\n <p className=\"mt-1 max-w-lg text-og-sm text-og-fg-muted\">{detail}</p>\n {retry ? (\n <button\n type=\"button\"\n onClick={retry}\n className=\"mt-3 rounded-og-sm border border-og-primary-border bg-og-primary text-og-primary-fg px-3 py-1.5 text-og-sm font-medium hover:bg-og-primary-hover outline-hidden focus-visible:ring-2 focus-visible:ring-og-accent\"\n >\n {retryLabel}\n </button>\n ) : null}\n </div>\n </div>\n );\n}\n\nexport function asEditableArtifactError(cause: unknown, fallback: string): Error {\n return cause instanceof Error ? cause : new Error(fallback);\n}\n","import type { EditableArtifactSession } from \"@opengeni/sdk/editable-artifacts\";\nimport { DownloadIcon, LoaderCircleIcon } from \"lucide-react\";\nimport { useEffect, useRef, useState, useSyncExternalStore } from \"react\";\n\nimport { ArtifactButton } from \"./artifact-chrome\";\nimport { useArtifactSubmissions } from \"./artifact-submissions\";\nimport { useEditableArtifactView } from \"./editable-artifact-ui\";\nimport { useOpenGeniText } from \"../../messages/runtime\";\n\n/** Host-authenticated export of the saved native head as an Office file. */\nexport type EditableArtifactDownload = (signal: AbortSignal) => Promise<Blob>;\nexport type EditableArtifactDownloadFormat = \"xlsx\" | \"docx\" | \"pptx\";\n\nconst LABELS = {\n xlsx: {\n download: \"artifacts.spreadsheetDownload.download\",\n preparing: \"artifacts.spreadsheetDownload.preparing\",\n failed: \"artifacts.spreadsheetDownload.downloadFailedTryAgain\",\n title: \"artifacts.spreadsheetDownload.downloadWorkbookAsXlsx\",\n wait: \"artifacts.spreadsheetDownload.waitForWorkbookChangesTo\",\n fallbackName: \"artifacts.spreadsheetDownload.workbook\",\n },\n docx: {\n download: \"artifacts.artifactDownload.download\",\n preparing: \"artifacts.artifactDownload.preparing\",\n failed: \"artifacts.artifactDownload.downloadFailedTryAgain\",\n title: \"artifacts.artifactDownload.downloadDocumentAsDocx\",\n wait: \"artifacts.artifactDownload.waitForDocumentChangesTo\",\n fallbackName: \"artifacts.artifactDownload.document\",\n },\n pptx: {\n download: \"artifacts.artifactDownload.download\",\n preparing: \"artifacts.artifactDownload.preparing\",\n failed: \"artifacts.artifactDownload.downloadFailedTryAgain\",\n title: \"artifacts.artifactDownload.downloadPresentationAsPptx\",\n wait: \"artifacts.artifactDownload.waitForPresentationChangesTo\",\n fallbackName: \"artifacts.artifactDownload.presentation\",\n },\n} as const;\n\n/**\n * Download action shared by every editable modality. It waits for live sync\n * with no pending or still-submitting edits, so the export is the latest head.\n */\nexport function EditableArtifactDownloadButton({\n session,\n title,\n download,\n format,\n}: {\n session: EditableArtifactSession;\n title: string;\n download: EditableArtifactDownload;\n format: EditableArtifactDownloadFormat;\n}) {\n const t = useOpenGeniText();\n const labels = LABELS[format];\n const view = useEditableArtifactView(session);\n const submissions = useArtifactSubmissions();\n const submitting = useSyncExternalStore(\n submissions.subscribe,\n submissions.getPending,\n submissions.getPending,\n );\n const active = useRef<AbortController | null>(null);\n const [busy, setBusy] = useState(false);\n const [error, setError] = useState(false);\n const ready =\n view.state === \"live\" &&\n submitting === 0 &&\n view.pendingTransactions === 0 &&\n view.blockedPending.length === 0 &&\n !view.authoringBlockedReason;\n useEffect(() => () => active.current?.abort(), [session]);\n useEffect(() => {\n if (view.state === \"failed\" || view.state === \"closed\") {\n active.current?.abort();\n active.current = null;\n setBusy(false);\n }\n }, [view.state]);\n\n const start = async () => {\n if (active.current || !ready || submissions.getPending()) return;\n // Re-read the live view: a just-committed edit may precede React's next render.\n const current = session.getView();\n if (\n current.state !== \"live\" ||\n current.pendingTransactions ||\n current.blockedPending.length ||\n current.authoringBlockedReason\n )\n return;\n const controller = new AbortController();\n active.current = controller;\n setBusy(true);\n setError(false);\n try {\n const blob = await download(controller.signal);\n if (controller.signal.aborted) return;\n const url = URL.createObjectURL(blob);\n try {\n const anchor = document.createElement(\"a\");\n anchor.href = url;\n anchor.download = downloadFileName(title, format, t(labels.fallbackName));\n anchor.rel = \"noopener\";\n anchor.click();\n } finally {\n setTimeout(() => URL.revokeObjectURL(url), 0);\n }\n } catch {\n if (!controller.signal.aborted) setError(true);\n } finally {\n if (!controller.signal.aborted) {\n active.current = null;\n setBusy(false);\n }\n }\n };\n\n return (\n <>\n {error ? (\n <span role=\"alert\" className=\"text-og-xs text-og-fg-muted\">\n {t(labels.failed)}\n </span>\n ) : null}\n <ArtifactButton\n onClick={() => void start()}\n disabled={busy || !ready}\n title={ready ? t(labels.title) : t(labels.wait)}\n >\n {busy ? (\n <LoaderCircleIcon className=\"animate-spin\" aria-hidden />\n ) : (\n <DownloadIcon aria-hidden />\n )}\n {busy ? t(labels.preparing) : t(labels.download)}\n </ArtifactButton>\n </>\n );\n}\n\n/** Safe local file name: the artifact title with exactly one matching extension. */\nexport function downloadFileName(\n title: string,\n format: EditableArtifactDownloadFormat,\n fallback: string,\n): string {\n const base =\n title\n .replace(/[\\\\/:*?\"<>|\\u0000-\\u001f]/g, \"_\")\n .replace(new RegExp(`\\\\.${format}$`, \"i\"), \"\")\n .trim() || fallback;\n return `${base}.${format}`;\n}\n"],"mappings":"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","names":["jsx","useState","jsx","jsxs","useState","LoaderCircleIcon","useEffect","useState","Fragment","jsx","jsxs","useState","useEffect","LoaderCircleIcon"]}
|
|
@@ -2,45 +2,54 @@
|
|
|
2
2
|
import {
|
|
3
3
|
GrantSessionAdminAccessDialog,
|
|
4
4
|
SessionAdminAccessIndicator
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-RA3FNMWF.js";
|
|
6
6
|
import {
|
|
7
7
|
SessionAncestryBreadcrumb
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KTRKZRID.js";
|
|
9
9
|
import {
|
|
10
10
|
SiteOriginLink
|
|
11
11
|
} from "./chunk-GZ64CASI.js";
|
|
12
12
|
import {
|
|
13
13
|
useActionShortcut,
|
|
14
14
|
useChatOperations
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import {
|
|
17
|
-
RENAME_CURRENT_CHAT_EVENT
|
|
18
|
-
} from "./chunk-BLT4KQTS.js";
|
|
19
|
-
import {
|
|
20
|
-
BillingClassMark
|
|
21
|
-
} from "./chunk-IJ6WELGP.js";
|
|
15
|
+
} from "./chunk-JK7C5A4I.js";
|
|
22
16
|
import {
|
|
23
17
|
pinLiveAnnouncement
|
|
24
18
|
} from "./chunk-GLYJV66C.js";
|
|
25
19
|
import {
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
currentPhoneAppPlatform,
|
|
21
|
+
openInAppUrl
|
|
22
|
+
} from "./chunk-VPUFTOD3.js";
|
|
23
|
+
import {
|
|
24
|
+
sessionControlPaused
|
|
25
|
+
} from "./chunk-GTQ3SNEI.js";
|
|
26
|
+
import {
|
|
27
|
+
RENAME_CURRENT_CHAT_EVENT
|
|
28
|
+
} from "./chunk-UP4BE32Y.js";
|
|
28
29
|
import {
|
|
29
30
|
requestConversationFind
|
|
30
31
|
} from "./chunk-7ZEGSUR7.js";
|
|
32
|
+
import {
|
|
33
|
+
useUiEventTarget
|
|
34
|
+
} from "./chunk-WGPLDFEC.js";
|
|
35
|
+
import {
|
|
36
|
+
BillingClassMark
|
|
37
|
+
} from "./chunk-HGMWMK5K.js";
|
|
38
|
+
import {
|
|
39
|
+
useInlineRename
|
|
40
|
+
} from "./chunk-4EAF3HSD.js";
|
|
31
41
|
import {
|
|
32
42
|
ConnectionPill
|
|
33
43
|
} from "./chunk-G46333YC.js";
|
|
34
44
|
import {
|
|
35
|
-
|
|
36
|
-
} from "./chunk-
|
|
45
|
+
t
|
|
46
|
+
} from "./chunk-HPPKLBTJ.js";
|
|
37
47
|
import {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
} from "./chunk-VPUFTOD3.js";
|
|
48
|
+
labelEffort
|
|
49
|
+
} from "./chunk-L6Y4ALSM.js";
|
|
41
50
|
import {
|
|
42
|
-
|
|
43
|
-
} from "./chunk-
|
|
51
|
+
usePage
|
|
52
|
+
} from "./chunk-MYNUBDU7.js";
|
|
44
53
|
import {
|
|
45
54
|
DropdownMenu,
|
|
46
55
|
DropdownMenuContent,
|
|
@@ -50,25 +59,9 @@ import {
|
|
|
50
59
|
DropdownMenuShortcut,
|
|
51
60
|
DropdownMenuTrigger
|
|
52
61
|
} from "./chunk-TREHTIBD.js";
|
|
53
|
-
import {
|
|
54
|
-
usePage
|
|
55
|
-
} from "./chunk-MYNUBDU7.js";
|
|
56
|
-
import {
|
|
57
|
-
t
|
|
58
|
-
} from "./chunk-HPPKLBTJ.js";
|
|
59
|
-
import {
|
|
60
|
-
labelEffort
|
|
61
|
-
} from "./chunk-L6Y4ALSM.js";
|
|
62
62
|
import {
|
|
63
63
|
Skeleton
|
|
64
64
|
} from "./chunk-HY7EYWIG.js";
|
|
65
|
-
import {
|
|
66
|
-
SESSION_TITLE_MAX_LENGTH,
|
|
67
|
-
isCodexProductModel,
|
|
68
|
-
sessionDisplayTitle,
|
|
69
|
-
sessionHasUpcomingSchedule,
|
|
70
|
-
sessionInputWait
|
|
71
|
-
} from "./chunk-TJ2MBYK4.js";
|
|
72
65
|
import {
|
|
73
66
|
Button
|
|
74
67
|
} from "./chunk-HMU5IELG.js";
|
|
@@ -77,18 +70,25 @@ import {
|
|
|
77
70
|
SessionStatus,
|
|
78
71
|
StatusDot
|
|
79
72
|
} from "./chunk-3AA6RNGE.js";
|
|
80
|
-
import {
|
|
81
|
-
OPEN_WORKSTREAM_CONTROL_EVENT
|
|
82
|
-
} from "./chunk-3IWPC6O3.js";
|
|
83
|
-
import {
|
|
84
|
-
ModelMark
|
|
85
|
-
} from "./chunk-WJPMYXKZ.js";
|
|
86
73
|
import {
|
|
87
74
|
useSessionStartup
|
|
88
75
|
} from "./chunk-EMIVOS73.js";
|
|
76
|
+
import {
|
|
77
|
+
SESSION_TITLE_MAX_LENGTH,
|
|
78
|
+
isCodexProductModel,
|
|
79
|
+
sessionDisplayTitle,
|
|
80
|
+
sessionHasUpcomingSchedule,
|
|
81
|
+
sessionInputWait
|
|
82
|
+
} from "./chunk-Z5WMLJKI.js";
|
|
89
83
|
import {
|
|
90
84
|
sessionDisplayStatus
|
|
91
85
|
} from "./chunk-DHXKEJBH.js";
|
|
86
|
+
import {
|
|
87
|
+
OPEN_WORKSTREAM_CONTROL_EVENT
|
|
88
|
+
} from "./chunk-3IWPC6O3.js";
|
|
89
|
+
import {
|
|
90
|
+
ModelMark
|
|
91
|
+
} from "./chunk-WJPMYXKZ.js";
|
|
92
92
|
|
|
93
93
|
// src/app/components/rail/session-header.tsx
|
|
94
94
|
import { modelDisplayName } from "@opengeni/sdk/model-display";
|
|
@@ -678,4 +678,4 @@ function SessionTitleEditor(props) {
|
|
|
678
678
|
export {
|
|
679
679
|
SessionHeader
|
|
680
680
|
};
|
|
681
|
-
//# sourceMappingURL=chunk-
|
|
681
|
+
//# sourceMappingURL=chunk-6NIB2KGJ.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
payerShortLabel
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-P5WABK2H.js";
|
|
5
5
|
import {
|
|
6
6
|
showUndoToast
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-3GLAPCVI.js";
|
|
8
8
|
import {
|
|
9
9
|
ACCESS_CHOICES,
|
|
10
10
|
SPEND_PERIOD_OPTIONS,
|
|
@@ -29,49 +29,63 @@ import {
|
|
|
29
29
|
viewAsVisitorUrl
|
|
30
30
|
} from "./chunk-MXIHJ4UI.js";
|
|
31
31
|
import {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
EmailChipsInput
|
|
36
|
-
} from "./chunk-MBYVEZOH.js";
|
|
37
|
-
import {
|
|
38
|
-
ListRow,
|
|
39
|
-
RowList
|
|
40
|
-
} from "./chunk-JQCGPTZ6.js";
|
|
32
|
+
ChoiceCard,
|
|
33
|
+
ChoiceCards
|
|
34
|
+
} from "./chunk-VAIESMPY.js";
|
|
41
35
|
import {
|
|
42
36
|
useCopyToClipboard
|
|
43
37
|
} from "./chunk-MK63VRBR.js";
|
|
44
38
|
import {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
Disclosure
|
|
40
|
+
} from "./chunk-QZRDCFHI.js";
|
|
41
|
+
import {
|
|
42
|
+
ListRow,
|
|
43
|
+
RowList
|
|
44
|
+
} from "./chunk-NWZW2WHN.js";
|
|
48
45
|
import {
|
|
49
46
|
Section
|
|
50
47
|
} from "./chunk-J6WRB3VZ.js";
|
|
51
48
|
import {
|
|
52
49
|
SelectMenu
|
|
53
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-33TPANCR.js";
|
|
51
|
+
import {
|
|
52
|
+
EmailChipsInput
|
|
53
|
+
} from "./chunk-MBYVEZOH.js";
|
|
54
54
|
import {
|
|
55
55
|
ModelPicker
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-TGVVEGZG.js";
|
|
57
57
|
import {
|
|
58
58
|
useWorkspaceModelCatalog
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-GFUUFM2O.js";
|
|
60
60
|
import {
|
|
61
61
|
cn
|
|
62
62
|
} from "./chunk-A3MTTRCX.js";
|
|
63
|
+
import {
|
|
64
|
+
StatusBadge
|
|
65
|
+
} from "./chunk-EPCPGUIF.js";
|
|
66
|
+
import {
|
|
67
|
+
LogoTile
|
|
68
|
+
} from "./chunk-FQQEZUSN.js";
|
|
63
69
|
import {
|
|
64
70
|
Switch
|
|
65
71
|
} from "./chunk-IZMUUUYD.js";
|
|
66
72
|
import {
|
|
67
73
|
SettingRow
|
|
68
74
|
} from "./chunk-XSOPQZGH.js";
|
|
75
|
+
import {
|
|
76
|
+
FormDialog,
|
|
77
|
+
FormInline,
|
|
78
|
+
FormPage
|
|
79
|
+
} from "./chunk-S7PVL7XH.js";
|
|
80
|
+
import {
|
|
81
|
+
toast
|
|
82
|
+
} from "./chunk-YG6NARQY.js";
|
|
83
|
+
import {
|
|
84
|
+
userErrorText
|
|
85
|
+
} from "./chunk-L4OF77LE.js";
|
|
69
86
|
import {
|
|
70
87
|
DropdownMenuItem
|
|
71
88
|
} from "./chunk-TREHTIBD.js";
|
|
72
|
-
import {
|
|
73
|
-
LogoTile
|
|
74
|
-
} from "./chunk-FQQEZUSN.js";
|
|
75
89
|
import {
|
|
76
90
|
CheckboxField,
|
|
77
91
|
Field,
|
|
@@ -79,23 +93,9 @@ import {
|
|
|
79
93
|
TextArea,
|
|
80
94
|
TextInput
|
|
81
95
|
} from "./chunk-XNTW77T6.js";
|
|
82
|
-
import {
|
|
83
|
-
StatusBadge
|
|
84
|
-
} from "./chunk-EPCPGUIF.js";
|
|
85
|
-
import {
|
|
86
|
-
toast
|
|
87
|
-
} from "./chunk-YG6NARQY.js";
|
|
88
96
|
import {
|
|
89
97
|
RelativeTime
|
|
90
98
|
} from "./chunk-XG57V2BN.js";
|
|
91
|
-
import {
|
|
92
|
-
FormDialog,
|
|
93
|
-
FormInline,
|
|
94
|
-
FormPage
|
|
95
|
-
} from "./chunk-A4BD4ZVB.js";
|
|
96
|
-
import {
|
|
97
|
-
userErrorText
|
|
98
|
-
} from "./chunk-L4OF77LE.js";
|
|
99
99
|
import {
|
|
100
100
|
Notice
|
|
101
101
|
} from "./chunk-WLEDGIVS.js";
|
|
@@ -1054,4 +1054,4 @@ export {
|
|
|
1054
1054
|
sitePublicationHeader,
|
|
1055
1055
|
SitePublishPage
|
|
1056
1056
|
};
|
|
1057
|
-
//# sourceMappingURL=chunk-
|
|
1057
|
+
//# sourceMappingURL=chunk-6PQNLL4E.js.map
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import {
|
|
3
3
|
githubAppConnectRequest
|
|
4
4
|
} from "./chunk-6D473WWV.js";
|
|
5
|
-
import {
|
|
6
|
-
usePage
|
|
7
|
-
} from "./chunk-MYNUBDU7.js";
|
|
8
5
|
import {
|
|
9
6
|
toast
|
|
10
7
|
} from "./chunk-YG6NARQY.js";
|
|
8
|
+
import {
|
|
9
|
+
usePage
|
|
10
|
+
} from "./chunk-MYNUBDU7.js";
|
|
11
11
|
import {
|
|
12
12
|
useAppContext
|
|
13
13
|
} from "./chunk-W6KAUGXO.js";
|
|
@@ -53,4 +53,4 @@ function useGitHubAppConnectLauncher(workspaceId) {
|
|
|
53
53
|
export {
|
|
54
54
|
useGitHubAppConnectLauncher
|
|
55
55
|
};
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
56
|
+
//# sourceMappingURL=chunk-72J6C2AJ.js.map
|
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
desktopCapability
|
|
11
11
|
} from "./chunk-FABYS4WM.js";
|
|
12
|
-
import {
|
|
13
|
-
useNavigate
|
|
14
|
-
} from "./chunk-MYNUBDU7.js";
|
|
15
12
|
import {
|
|
16
13
|
toast
|
|
17
14
|
} from "./chunk-YG6NARQY.js";
|
|
15
|
+
import {
|
|
16
|
+
useNavigate
|
|
17
|
+
} from "./chunk-MYNUBDU7.js";
|
|
18
18
|
import {
|
|
19
19
|
useAppContext
|
|
20
20
|
} from "./chunk-W6KAUGXO.js";
|
|
@@ -233,4 +233,4 @@ export {
|
|
|
233
233
|
appShotFileName,
|
|
234
234
|
AppShotCoordinator
|
|
235
235
|
};
|
|
236
|
-
//# sourceMappingURL=chunk-
|
|
236
|
+
//# sourceMappingURL=chunk-73SOCVLS.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
cn
|
|
4
|
-
} from "./chunk-A3MTTRCX.js";
|
|
5
2
|
import {
|
|
6
3
|
repoCountLabel
|
|
7
4
|
} from "./chunk-5TLEWXAB.js";
|
|
5
|
+
import {
|
|
6
|
+
cn
|
|
7
|
+
} from "./chunk-A3MTTRCX.js";
|
|
8
8
|
import {
|
|
9
9
|
COMPOSER_MENU_PANEL_CLASS,
|
|
10
10
|
ComposerMenuRowsSkeleton,
|
|
@@ -84,4 +84,4 @@ export {
|
|
|
84
84
|
FollowUpRepositoryMenuBody,
|
|
85
85
|
FollowUpRepositoryPicker
|
|
86
86
|
};
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
87
|
+
//# sourceMappingURL=chunk-7BST7BA6.js.map
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
InlineDisabledReason
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-33TPANCR.js";
|
|
5
|
+
import {
|
|
6
|
+
FormDialog
|
|
7
|
+
} from "./chunk-S7PVL7XH.js";
|
|
5
8
|
import {
|
|
6
9
|
MENU_CHECK_CLASS,
|
|
7
10
|
MENU_SEPARATOR_CLASS,
|
|
@@ -10,9 +13,6 @@ import {
|
|
|
10
13
|
import {
|
|
11
14
|
ReasonTooltip
|
|
12
15
|
} from "./chunk-KS57MLGE.js";
|
|
13
|
-
import {
|
|
14
|
-
FormDialog
|
|
15
|
-
} from "./chunk-A4BD4ZVB.js";
|
|
16
16
|
import {
|
|
17
17
|
containedPortal
|
|
18
18
|
} from "./chunk-J3BHDXQQ.js";
|
|
@@ -387,4 +387,4 @@ export {
|
|
|
387
387
|
needsEscalationConfirm,
|
|
388
388
|
RoleSelect
|
|
389
389
|
};
|
|
390
|
-
//# sourceMappingURL=chunk-
|
|
390
|
+
//# sourceMappingURL=chunk-7CZTKBTI.js.map
|