@opengeni/react 4.2.1-canary.39642758903001 → 4.3.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 +27 -27
- package/dist/app/components/Composer.js +27 -26
- package/dist/app/components/agent/agent-capability-picker.js +5 -5
- package/dist/app/components/artifacts/artifact-library.js +19 -19
- package/dist/app/components/artifacts/chat-interactive-block.js +16 -16
- package/dist/app/components/artifacts/inline-chat-image.js +31 -30
- package/dist/app/components/artifacts/retained-file-preview.js +35 -34
- package/dist/app/components/artifacts/retained-text-preview.js +5 -5
- package/dist/app/components/artifacts/site-audience.js +5 -5
- package/dist/app/components/artifacts/site-conversations.js +24 -22
- package/dist/app/components/artifacts/site-data.js +20 -20
- package/dist/app/components/artifacts/site-publishing.js +39 -39
- package/dist/app/components/artifacts/site-settings.js +48 -48
- package/dist/app/components/billing-class-mark.js +5 -5
- package/dist/app/components/capabilities/capability-detail-sheet.js +9 -9
- package/dist/app/components/capabilities/capability-logo-source.js +13 -12
- package/dist/app/components/capabilities/connection-account-picker.js +2 -2
- package/dist/app/components/capabilities/connector-tool-permissions.js +5 -5
- package/dist/app/components/capabilities/native-connect-setup.js +14 -13
- package/dist/app/components/capabilities/native-connect-setup.js.map +1 -1
- package/dist/app/components/capabilities/perform-capability-action.js +3 -3
- package/dist/app/components/capabilities/prepared-mcp-setup-card.js +15 -14
- package/dist/app/components/capabilities/session-capability-card.js +78 -77
- package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
- package/dist/app/components/capabilities/session-custom-mcp-card.js +20 -19
- package/dist/app/components/capabilities/session-github-card.js +25 -24
- package/dist/app/components/capabilities/session-machine-card.js +38 -38
- 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-switcher.d.ts +12 -0
- package/dist/app/components/command-menu/chat-switcher.js +142 -0
- package/dist/app/components/command-menu/chat-switcher.js.map +1 -0
- package/dist/app/components/command-menu/command-menu.d.ts +15 -0
- package/dist/app/components/command-menu/command-menu.js +812 -0
- package/dist/app/components/command-menu/command-menu.js.map +1 -0
- package/dist/app/components/command-menu/keycaps.d.ts +21 -0
- package/dist/app/components/command-menu/keycaps.js +12 -0
- package/dist/app/components/command-menu/shortcut-sheet.d.ts +12 -0
- package/dist/app/components/command-menu/shortcut-sheet.js +150 -0
- package/dist/app/components/command-menu/shortcut-sheet.js.map +1 -0
- package/dist/app/components/composer-capabilities-menu-body.js +3 -3
- package/dist/app/components/composer-mobile-plus-panel.js +21 -21
- package/dist/app/components/composer-mobile-plus.js +3 -3
- package/dist/app/components/credit-required-gate.js +1 -1
- package/dist/app/components/credit-required-prompt.js +16 -16
- package/dist/app/components/credits/coupon-redeem.js +2 -2
- package/dist/app/components/credits/credit-refusal-notice.d.ts +18 -0
- package/dist/app/components/credits/credit-refusal-notice.js +17 -0
- package/dist/app/components/cross-slot-deep-link-recovery.js +1 -1
- package/dist/app/components/desktop/app-shots.js +6 -6
- package/dist/app/components/desktop/this-computer.js +4 -4
- package/dist/app/components/feedback.js +5 -5
- package/dist/app/components/follow-up-repository-menu-body.js +7 -7
- package/dist/app/components/follow-up-repository-picker.js +3 -3
- package/dist/app/components/github-app-connect-launcher.js +1 -1
- package/dist/app/components/knowledge/agent-learning-settings.js +6 -6
- package/dist/app/components/machines/connect-machine-dialog.js +18 -18
- package/dist/app/components/manual-repository-editor.js +2 -2
- package/dist/app/components/markdown.js +10 -9
- package/dist/app/components/message-context-pills.js +2 -2
- package/dist/app/components/models/models-ui.js +10 -10
- package/dist/app/components/pickers.js +10 -10
- package/dist/app/components/rail/rail-context.d.ts +6 -0
- package/dist/app/components/rail/rail-context.js +3 -3
- package/dist/app/components/rail/rail-sections.js +61 -55
- package/dist/app/components/rail/session-browse-order-controls.js +2 -2
- package/dist/app/components/rail/session-header.js +50 -36
- package/dist/app/components/rail/session-list.js +59 -52
- package/dist/app/components/rail/session-row-hover-details.js +25 -23
- package/dist/app/components/rail/session-shell.js +96 -91
- package/dist/app/components/repository-picker.js +7 -7
- package/dist/app/components/secrets/session-secrets-panel.js +4 -4
- package/dist/app/components/session/agent-configuration-panel.js +34 -34
- package/dist/app/components/session/banners.js +12 -11
- package/dist/app/components/session/codex-account-indicator.js +12 -12
- package/dist/app/components/session/composer-menu-radio.js +2 -2
- package/dist/app/components/session/conversation-find.js +1 -1
- package/dist/app/components/session/editable-artifacts-workspace.js +45 -45
- package/dist/app/components/session/failed-session-banner.js +12 -12
- package/dist/app/components/session/human-input.js +48 -47
- package/dist/app/components/session/inspector.js +80 -79
- package/dist/app/components/session/inspector.js.map +1 -1
- package/dist/app/components/session/message-actions.js +5 -5
- package/dist/app/components/session/message-resource-attachments.js +21 -20
- package/dist/app/components/session/message-resource-attachments.js.map +1 -1
- package/dist/app/components/session/model-account-indicator.js +11 -11
- package/dist/app/components/session/model-context-inspector.js +2 -2
- package/dist/app/components/session/model-recovery-notice.js +3 -3
- package/dist/app/components/session/new-session-settings-menu.js +13 -13
- package/dist/app/components/session/sandbox-switcher.js +16 -16
- package/dist/app/components/session/sandbox-workspace.js +68 -67
- package/dist/app/components/session/search-markdown-highlight.js +11 -10
- package/dist/app/components/session/search-results-view.js +12 -11
- package/dist/app/components/session/session-admin-access.js +11 -11
- package/dist/app/components/session/session-retention.js +4 -4
- package/dist/app/components/session/session-search-dialog.d.ts +5 -0
- package/dist/app/components/session/session-search-dialog.js +22 -12
- package/dist/app/components/session/session-search-dialog.js.map +1 -1
- package/dist/app/components/session/session-skill-reviews.js +3 -3
- package/dist/app/components/session/session-tenancy-control.js +25 -25
- package/dist/app/components/session/session-usage-limit-section.js +9 -9
- package/dist/app/components/session/session-wait-status.js +11 -9
- package/dist/app/components/session/session-wait-status.js.map +1 -1
- package/dist/app/components/session/subagents.js +17 -15
- package/dist/app/components/session/subscription-account-menu.js +2 -2
- package/dist/app/components/session-connectors-menu-body.js +6 -6
- package/dist/app/components/settings/row-select.js +1 -1
- package/dist/app/components/transcription-settings.js +2 -2
- package/dist/app/components/ui/destructive-confirm.js +8 -8
- package/dist/app/components/usage/usage-entry.js +6 -6
- package/dist/app/components/workspace-composer-plus.js +22 -21
- package/dist/app/embed/session-app.js +264 -258
- package/dist/app/lib/actions/actions-provider.d.ts +30 -0
- package/dist/app/lib/actions/actions-provider.js +32 -0
- package/dist/app/lib/actions/chat-directory.d.ts +30 -0
- package/dist/app/lib/actions/chat-operations.d.ts +11 -0
- package/dist/app/lib/actions/chat-switcher.d.ts +31 -0
- package/dist/app/lib/actions/chords.d.ts +40 -0
- package/dist/app/lib/actions/events.d.ts +6 -0
- package/dist/app/lib/actions/rank.d.ts +17 -0
- package/dist/app/lib/actions/registry.d.ts +71 -0
- package/dist/app/lib/codex-usage-query.js +3 -3
- package/dist/app/lib/composer-connectors.js +14 -13
- package/dist/app/lib/console-text.js +2 -2
- package/dist/app/lib/credit-coverage.d.ts +21 -0
- package/dist/app/lib/credit-coverage.js +15 -0
- package/dist/app/lib/deployment-free-model.js +2 -2
- package/dist/app/lib/events.js +19 -18
- package/dist/app/lib/failed-session-copy.js +5 -5
- package/dist/app/lib/free-credit-gap.d.ts +9 -0
- package/dist/app/lib/free-credit-gap.js +4 -2
- package/dist/app/lib/integration-connect-analytics.d.ts +1 -1
- package/dist/app/lib/integration-connect-analytics.js +1 -1
- package/dist/app/lib/integration-connect-redirect.js +1 -1
- package/dist/app/lib/model-access-onboarding.js +4 -4
- package/dist/app/lib/model-policy.js +1 -1
- package/dist/app/lib/models-route.d.ts +6 -2
- package/dist/app/lib/models-route.js +6 -3
- package/dist/app/lib/models-route.js.map +1 -1
- package/dist/app/lib/move-chat-to-machine.js +3 -3
- package/dist/app/lib/session-branch-cache.js +15 -13
- package/dist/app/lib/session-create.js +2 -2
- package/dist/app/lib/session-group-pagination.js +15 -13
- package/dist/app/lib/session-hover-facts.js +16 -14
- package/dist/app/lib/session-model.js +3 -3
- package/dist/app/lib/session-rail.js +11 -9
- package/dist/app/lib/session-rename.js +3 -3
- package/dist/app/lib/session-search-route.d.ts +1 -1
- package/dist/app/lib/session-search-route.js +1 -1
- package/dist/app/lib/session-ui-features.d.ts +11 -3
- package/dist/app/lib/session-ui-features.js +1 -1
- package/dist/app/lib/sessions-group.js +15 -13
- package/dist/app/lib/turn-failure-analytics.js +7 -7
- package/dist/app/lib/unavailable-session-model.js +2 -2
- package/dist/app/lib/use-duplicate-site.js +2 -2
- package/dist/app/lib/use-follow-up-repositories.js +3 -3
- package/dist/app/lib/use-workspace-machines.js +8 -8
- package/dist/app/lib/use-workspace-model-catalog.js +6 -6
- package/dist/app/lib/use-workspace-rigs.js +4 -4
- package/dist/app/lib/workspace-navigation-preference.js +5 -5
- package/dist/app/lib/workspace-scope-context.js +4 -4
- package/dist/app/routes/artifacts.js +124 -122
- package/dist/app/routes/artifacts.js.map +1 -1
- package/dist/app/routes/retained-artifact.js +69 -68
- package/dist/app/routes/retained-artifact.js.map +1 -1
- package/dist/app/routes/session-unavailable.js +3 -3
- package/dist/app/routes/session.js +168 -166
- package/dist/app/routes/sessions-index-hydration.js +3 -3
- package/dist/app/routes/sessions-index.js +122 -116
- package/dist/artifacts-document.js +4 -4
- package/dist/artifacts-presentation.js +4 -4
- package/dist/artifacts-spreadsheet.js +4 -4
- package/dist/artifacts.js +39 -39
- package/dist/{browser-viewer-ZRFZX3VN.js → browser-viewer-HPUMK7UP.js} +7 -7
- package/dist/{chat-interactive-block-HUMYWVCK.js → chat-interactive-block-22PPECCT.js} +6 -6
- package/dist/{chunk-GVIQ7H62.js → chunk-2LUBBDZV.js} +5 -5
- package/dist/{chunk-SWWYYGQO.js → chunk-325C2TCI.js} +5 -2
- package/dist/chunk-325C2TCI.js.map +1 -0
- package/dist/{chunk-XMMVIY7B.js → chunk-3CCJWHQY.js} +2 -2
- package/dist/{chunk-XS2FZ6DX.js → chunk-3F5ZPIWI.js} +2 -2
- package/dist/{chunk-72US6QNB.js → chunk-3J2YZRY5.js} +2 -2
- package/dist/{chunk-D4YQF4E3.js → chunk-3SMJ2BIQ.js} +2 -2
- package/dist/{chunk-TBJINQXA.js → chunk-3WCYK36X.js} +17 -17
- package/dist/{chunk-WPCF34V6.js → chunk-3WG3CRL7.js} +14 -14
- package/dist/{chunk-JI5BYQKO.js → chunk-3X46PNBX.js} +14 -14
- package/dist/{chunk-UO36FC3S.js → chunk-46I7MMAL.js} +6 -2
- package/dist/chunk-46I7MMAL.js.map +1 -0
- package/dist/{chunk-PBK44WJC.js → chunk-4GJ37O6G.js} +2 -2
- package/dist/chunk-4IWBQUQU.js +152 -0
- package/dist/chunk-4IWBQUQU.js.map +1 -0
- package/dist/{chunk-LEXPBQ56.js → chunk-4SKJX3C4.js} +6 -6
- package/dist/{chunk-ZA6YD2LW.js → chunk-57SYK776.js} +2 -2
- package/dist/{chunk-22LBKJDE.js → chunk-5DIAN5GQ.js} +12 -12
- package/dist/{chunk-LJ3TDK2L.js → chunk-5FA455GR.js} +4 -4
- package/dist/{chunk-N2BEUKXT.js → chunk-5FBZDEHE.js} +228 -228
- package/dist/chunk-5FBZDEHE.js.map +1 -0
- package/dist/{chunk-YPR5INHV.js → chunk-5X3E2Z3D.js} +4 -4
- package/dist/{chunk-OXNWZTEU.js → chunk-5ZJCL6X4.js} +5 -5
- package/dist/{chunk-62OAZ4LO.js → chunk-6C5GQQMC.js} +12 -12
- package/dist/{chunk-VGITH57T.js → chunk-6ERTXDZM.js} +4 -4
- package/dist/{chunk-ZQ7XQZCF.js → chunk-6FX73Y4I.js} +8 -8
- package/dist/{chunk-QZO2KK2F.js → chunk-6P44NG6Y.js} +2 -2
- package/dist/{chunk-N2DDJLTM.js → chunk-6T7Y33JA.js} +3 -3
- package/dist/{chunk-RBAGC2MJ.js → chunk-75VE5QUS.js} +22 -22
- package/dist/{chunk-MRXOGI3O.js → chunk-77CUDSHG.js} +9 -9
- package/dist/{chunk-F2GXK2Z6.js → chunk-7G446JFO.js} +431 -348
- package/dist/chunk-7G446JFO.js.map +1 -0
- package/dist/{chunk-GZ65XQR5.js → chunk-7T7FHSGS.js} +3 -3
- package/dist/{chunk-YGAH34CD.js → chunk-A3S26JSP.js} +8 -8
- package/dist/{chunk-GYPAO6RS.js → chunk-A664GSDM.js} +8 -8
- package/dist/{chunk-JSZSNMDR.js → chunk-ASUYLXKO.js} +2 -2
- package/dist/{chunk-RTK7SUPL.js → chunk-AUUJLVA3.js} +7 -7
- package/dist/{chunk-OOTBYSCA.js → chunk-BBWKPNJB.js} +5 -5
- package/dist/{chunk-BGZIMIUU.js → chunk-BCUYWOQU.js} +2 -2
- package/dist/{chunk-EKN4N4LS.js → chunk-BDFMNJZJ.js} +2 -2
- package/dist/{chunk-YZKGOWCC.js → chunk-BIDXQAGO.js} +2 -2
- package/dist/{chunk-Q2UUANHF.js → chunk-BIKAJ4DY.js} +5 -5
- package/dist/{chunk-5IQBF2X3.js → chunk-BJPJ2OUX.js} +3 -3
- package/dist/{chunk-EY2EMHZW.js → chunk-BPM2OTYK.js} +8 -8
- package/dist/{chunk-MT4TBRQB.js → chunk-BSWS2RUZ.js} +2 -2
- package/dist/{chunk-T7YD3VGK.js → chunk-C52MNKXU.js} +12 -12
- package/dist/{chunk-THNW33K7.js → chunk-CEUDV4OA.js} +18 -18
- package/dist/{chunk-GRLPRM56.js → chunk-CFEFYPNR.js} +8 -2
- package/dist/chunk-CFEFYPNR.js.map +1 -0
- package/dist/{chunk-LHGIS6SZ.js → chunk-CVK74BH7.js} +2 -2
- package/dist/{chunk-DFO2UCYG.js → chunk-CW5I65ZX.js} +11 -11
- package/dist/chunk-DKNTQDVL.js +86 -0
- package/dist/chunk-DKNTQDVL.js.map +1 -0
- package/dist/{chunk-SKRLKQEG.js → chunk-DOSC2HRQ.js} +79 -79
- package/dist/{chunk-KVB6XDLP.js → chunk-DPJ2CWVN.js} +2 -2
- package/dist/{chunk-4J6V4DH7.js → chunk-DXMRO2MU.js} +3 -3
- package/dist/{chunk-42I4O4WQ.js → chunk-EE55IDDR.js} +26 -26
- package/dist/{chunk-2RA6XABP.js → chunk-EEERTLFF.js} +12 -12
- package/dist/{chunk-PTOTKUKO.js → chunk-EEO744XR.js} +8 -8
- package/dist/{chunk-LD3HVI2J.js → chunk-EMFGBAQL.js} +6 -6
- package/dist/{chunk-FQGUK4ST.js → chunk-ENPJKVMN.js} +38 -38
- package/dist/{chunk-HDHK3SXK.js → chunk-EU6RLHMP.js} +4 -4
- package/dist/{chunk-G7VLL3PG.js → chunk-F2YABPRJ.js} +13 -4
- package/dist/chunk-F2YABPRJ.js.map +1 -0
- package/dist/{chunk-MRUWRQBX.js → chunk-FET6XHGS.js} +2 -2
- package/dist/{chunk-M6KUY3YH.js → chunk-FIICQA55.js} +2 -2
- package/dist/{chunk-NLWLCYCT.js → chunk-FTZXCPE3.js} +19 -19
- package/dist/{chunk-FN2KA3MJ.js → chunk-FUS76DO4.js} +3 -3
- package/dist/{chunk-AM4IIPWI.js → chunk-G7N5NPRJ.js} +2 -2
- package/dist/{chunk-CCQ7YKOD.js → chunk-GBYZ6653.js} +2 -2
- package/dist/{chunk-SOOWLNC5.js → chunk-GJUPLSC5.js} +330 -109
- package/dist/chunk-GJUPLSC5.js.map +1 -0
- package/dist/{chunk-YKKVIJVX.js → chunk-GQDSC6QZ.js} +5 -5
- package/dist/chunk-GQGNRL2L.js +53 -0
- package/dist/chunk-GQGNRL2L.js.map +1 -0
- package/dist/{chunk-5X6JP75Q.js → chunk-GRSODLVO.js} +4 -4
- package/dist/{chunk-73YP3R5X.js → chunk-GSESCQFY.js} +4 -4
- package/dist/{chunk-KWB5U3ZT.js → chunk-GWRW4N3T.js} +199 -137
- package/dist/chunk-GWRW4N3T.js.map +1 -0
- package/dist/{chunk-RTR7RNG4.js → chunk-GYRU4PNM.js} +9 -7
- package/dist/{chunk-RTR7RNG4.js.map → chunk-GYRU4PNM.js.map} +1 -1
- package/dist/{chunk-MZLEBFUZ.js → chunk-GZD6VBIK.js} +3 -3
- package/dist/{chunk-IZR2QRFF.js → chunk-H3HH5AHS.js} +4 -4
- package/dist/{chunk-DN3TKURW.js → chunk-H3LIIAGE.js} +4 -54
- package/dist/chunk-H3LIIAGE.js.map +1 -0
- package/dist/{chunk-NPLEQMNM.js → chunk-H5GWAG4I.js} +7 -5
- package/dist/{chunk-NPLEQMNM.js.map → chunk-H5GWAG4I.js.map} +1 -1
- package/dist/{chunk-OJPUVUB6.js → chunk-HAOZCLLA.js} +3 -3
- package/dist/{chunk-ZBHDGAYL.js → chunk-HEFE4OZJ.js} +2 -2
- package/dist/{chunk-WTG34JVA.js → chunk-HI75UTI6.js} +2 -2
- package/dist/{chunk-OMBIG3NC.js → chunk-HM633ROV.js} +14 -14
- package/dist/{chunk-WDFZWSKD.js → chunk-HRIP4M6H.js} +3 -3
- package/dist/{chunk-A2BCW6CQ.js → chunk-HU2DRFFI.js} +3 -3
- package/dist/{chunk-PO35PBAB.js → chunk-HVH7FFJH.js} +2 -2
- package/dist/{chunk-EG7KNUF7.js → chunk-HYTXTKST.js} +18 -18
- package/dist/{chunk-TFHG75A4.js → chunk-I4XMDFUJ.js} +7 -7
- package/dist/{chunk-IZHVZZQA.js → chunk-ICAUYWSL.js} +9 -9
- package/dist/{chunk-ZSERYHHT.js → chunk-IDMXEPHL.js} +150 -150
- package/dist/chunk-IDMXEPHL.js.map +1 -0
- package/dist/{chunk-DCLPWYP3.js → chunk-IEVPJ3G6.js} +2 -2
- package/dist/{chunk-EVWZHDSF.js → chunk-IKH3VTA4.js} +2 -2
- package/dist/{chunk-L5UCO2UV.js → chunk-ILBSBZGC.js} +13 -4
- package/dist/chunk-ILBSBZGC.js.map +1 -0
- package/dist/{chunk-IO6K6UYJ.js → chunk-IQ64BNAG.js} +4 -2
- package/dist/chunk-IQ64BNAG.js.map +1 -0
- package/dist/{chunk-TYHLEFD2.js → chunk-IZJNMRIR.js} +9 -9
- package/dist/{chunk-D2SR3TEB.js → chunk-J243WGUA.js} +2 -2
- package/dist/{chunk-QGSGIYE3.js → chunk-J2C6LB6W.js} +4 -4
- package/dist/{chunk-MT6TRTXF.js → chunk-J5MEDX7C.js} +9 -9
- package/dist/{chunk-6QHUKBJP.js → chunk-J7SKOO44.js} +2 -2
- package/dist/{chunk-W2QK7PYS.js → chunk-JAAST75A.js} +11 -11
- package/dist/{chunk-NQCMS4AJ.js → chunk-JQCGPTZ6.js} +9 -9
- package/dist/chunk-JRJUSKDY.js +832 -0
- package/dist/chunk-JRJUSKDY.js.map +1 -0
- package/dist/{chunk-CMUXJHGH.js → chunk-JRSCWQMC.js} +9 -9
- package/dist/{chunk-Q4OHNGGB.js → chunk-JRXHSVD5.js} +4 -4
- package/dist/{chunk-SD2K5ZN5.js → chunk-JXYLDT6X.js} +4 -4
- package/dist/{chunk-S3M5WCZW.js → chunk-KA4LV7G6.js} +35 -50
- package/dist/chunk-KA4LV7G6.js.map +1 -0
- package/dist/{chunk-IXX6ZOL2.js → chunk-KGTMHEAP.js} +7 -7
- package/dist/{chunk-22OBGVEJ.js → chunk-KOXVGPW4.js} +3 -3
- package/dist/{chunk-NOZ5CGZE.js → chunk-L5GPPMUB.js} +2 -2
- package/dist/{chunk-KIHYJM5F.js → chunk-LXJT4WAW.js} +58 -58
- package/dist/{chunk-KIHYJM5F.js.map → chunk-LXJT4WAW.js.map} +1 -1
- package/dist/{chunk-4FOOHMTU.js → chunk-LY6727IF.js} +1 -1
- package/dist/{chunk-PT7MTXRE.js → chunk-MAOCN7J6.js} +2 -2
- package/dist/{chunk-4K2JSJNX.js → chunk-MB5LZVDO.js} +2 -2
- package/dist/chunk-MF464AKA.js +139 -0
- package/dist/chunk-MF464AKA.js.map +1 -0
- package/dist/{chunk-UYSZKDQY.js → chunk-MK54JLE4.js} +1 -1
- package/dist/chunk-MK54JLE4.js.map +1 -0
- package/dist/{chunk-5LES64PP.js → chunk-MKOQAVOE.js} +21 -21
- package/dist/{chunk-BMV2SNYX.js → chunk-MUPWNSEJ.js} +18 -18
- package/dist/{chunk-Y5TRG22C.js → chunk-NRXIECWC.js} +2 -2
- package/dist/{chunk-GOE7G5JX.js → chunk-NWSAF6P5.js} +2 -2
- package/dist/chunk-OB3YGXHQ.js +158 -0
- package/dist/chunk-OB3YGXHQ.js.map +1 -0
- package/dist/{chunk-DUM363VS.js → chunk-OFZQJNF6.js} +5 -5
- package/dist/{chunk-CKN5QPEL.js → chunk-OMF7POEY.js} +2 -2
- package/dist/{chunk-MVXKO2BD.js → chunk-OXD6ET34.js} +1 -1
- package/dist/{chunk-47JUEVME.js → chunk-PALX6HWV.js} +21 -21
- package/dist/{chunk-B6OGSG7I.js → chunk-PE3BLBDT.js} +3 -3
- package/dist/{chunk-RVISSNVE.js → chunk-PMZKJOG6.js} +15 -15
- package/dist/{chunk-CESAMXWX.js → chunk-PQUTMG3S.js} +2 -2
- package/dist/{chunk-7VFCOKPG.js → chunk-PWBGODZU.js} +3 -3
- package/dist/{chunk-MOPAXD2H.js → chunk-QCADUTYX.js} +2 -2
- package/dist/{chunk-CT5FBO7E.js → chunk-RPOUJI25.js} +1 -1
- package/dist/{chunk-VE3FKXJ7.js → chunk-RUSXEE7X.js} +35 -32
- package/dist/chunk-RUSXEE7X.js.map +1 -0
- package/dist/{chunk-WKHYOS72.js → chunk-RW4GFE56.js} +3 -3
- package/dist/{chunk-FH4GO7HO.js → chunk-RYLVVDR7.js} +1 -1
- package/dist/{chunk-QZRDCFHI.js → chunk-S66SBBFQ.js} +5 -5
- package/dist/{chunk-CQJFIPAH.js → chunk-S7TNV2I7.js} +14 -14
- package/dist/{chunk-ZBQSIGGR.js → chunk-SC773IMJ.js} +13 -13
- package/dist/{chunk-RZV7SXED.js → chunk-SF3M27AN.js} +37 -12
- package/dist/chunk-SF3M27AN.js.map +1 -0
- package/dist/{chunk-FBJ2HK7A.js → chunk-SGPJ3YS2.js} +20 -20
- package/dist/{chunk-A2EWJQXX.js → chunk-SM5QX6UK.js} +4 -4
- package/dist/chunk-SWCLN6JE.js +40 -0
- package/dist/chunk-SWCLN6JE.js.map +1 -0
- package/dist/{chunk-OS3EQOIS.js → chunk-T4F5TW2X.js} +29 -24
- package/dist/chunk-T4F5TW2X.js.map +1 -0
- package/dist/{chunk-RKZWCTXV.js → chunk-TAEKDMEF.js} +2 -2
- package/dist/{chunk-6AVCAUGL.js → chunk-TASEV25T.js} +3 -3
- package/dist/{chunk-3XOISKZC.js → chunk-TLGDPMUX.js} +6 -6
- package/dist/{chunk-MOF3XSUM.js → chunk-TREHTIBD.js} +3 -2
- package/dist/chunk-TREHTIBD.js.map +1 -0
- package/dist/{chunk-HUQHJSPV.js → chunk-TTPXGD5S.js} +68 -33
- package/dist/chunk-TTPXGD5S.js.map +1 -0
- package/dist/{chunk-NFCYIZHX.js → chunk-TXIIBNCA.js} +7 -3
- package/dist/{chunk-NFCYIZHX.js.map → chunk-TXIIBNCA.js.map} +1 -1
- package/dist/{chunk-5IUW34PG.js → chunk-TY3QYPJ6.js} +7 -7
- package/dist/{chunk-VQFR4EU4.js → chunk-U3JK5VJV.js} +2 -2
- package/dist/{chunk-2AWMJO54.js → chunk-U42P3RMZ.js} +5 -5
- package/dist/{chunk-2RIUMV7S.js → chunk-UBIJBLUK.js} +234 -234
- package/dist/chunk-UBIJBLUK.js.map +1 -0
- package/dist/{chunk-GUU75DES.js → chunk-UEJTOPLW.js} +8 -8
- package/dist/{chunk-QWCTYLMD.js → chunk-URDONAEJ.js} +240 -204
- package/dist/chunk-URDONAEJ.js.map +1 -0
- package/dist/{chunk-OZOEWLGR.js → chunk-UT6JAORE.js} +4 -4
- package/dist/{chunk-5TELOQA6.js → chunk-UTHPUINA.js} +3 -3
- package/dist/{chunk-SOV7DTTU.js → chunk-V6HZ2HJZ.js} +67 -67
- package/dist/{chunk-SOV7DTTU.js.map → chunk-V6HZ2HJZ.js.map} +1 -1
- package/dist/{chunk-26RQ6JBR.js → chunk-VBVCNH6D.js} +5 -5
- package/dist/{chunk-P646DND6.js → chunk-VCMQPCME.js} +2 -2
- package/dist/{chunk-LV7FMIMM.js → chunk-VGUHAHHV.js} +2 -2
- package/dist/{chunk-GYVXARCY.js → chunk-VIBPFVU4.js} +41 -41
- package/dist/{chunk-KHPOKZ6Z.js → chunk-VMAC66JX.js} +6 -6
- package/dist/{chunk-SHKRS6I5.js → chunk-VRPNETPK.js} +3 -3
- package/dist/{chunk-6U4J6RVS.js → chunk-WCHW4XN7.js} +14 -14
- package/dist/{chunk-CJH6QUQJ.js → chunk-WD3UXNJV.js} +3 -3
- package/dist/{chunk-H5EVWF6L.js → chunk-WR67FJMX.js} +4 -4
- package/dist/{chunk-XLIJ36RG.js → chunk-WRMQ7EX4.js} +5 -5
- package/dist/{chunk-VVFWOBAM.js → chunk-WTJUKYB2.js} +15 -16
- package/dist/chunk-WTJUKYB2.js.map +1 -0
- package/dist/{chunk-7KLCFJ5G.js → chunk-X4PPGXQG.js} +2 -2
- package/dist/{chunk-ZE2JTVCQ.js → chunk-X5BMQXFD.js} +11 -11
- package/dist/{chunk-OYJY4Y4A.js → chunk-XFNLU7EW.js} +14 -7
- package/dist/chunk-XFNLU7EW.js.map +1 -0
- package/dist/{chunk-UECU6LZI.js → chunk-XXRBOSWV.js} +3 -3
- package/dist/{chunk-SPKAIDWX.js → chunk-XZEFCPBL.js} +2 -2
- package/dist/{chunk-EZ5NYRHK.js → chunk-YL6N7QLA.js} +5 -5
- package/dist/{chunk-Q2ZJOECN.js → chunk-YMVTIV5L.js} +19 -19
- package/dist/chunk-YMVTIV5L.js.map +1 -0
- package/dist/{chunk-VAIESMPY.js → chunk-YVBHGMKC.js} +4 -4
- package/dist/{chunk-AR62NQXE.js → chunk-Z2S5VQG7.js} +2 -2
- package/dist/{chunk-2MXUB3ZO.js → chunk-Z5OGTWMZ.js} +15 -2
- package/dist/chunk-Z5OGTWMZ.js.map +1 -0
- package/dist/{chunk-7UQJEADK.js → chunk-ZL2O4BYP.js} +2 -2
- package/dist/{chunk-FOOITLHR.js → chunk-ZZHBT5WQ.js} +2 -2
- package/dist/{chunk-X6VJQJYY.js → chunk-ZZWHKC6A.js} +3 -3
- package/dist/components/timeline-annotation-shared.d.ts +1 -9
- package/dist/composer-messages.js +2 -2
- package/dist/composer.js +15 -15
- package/dist/{computer-viewer-D4NHQB5D.js → computer-viewer-S6TE6TN7.js} +8 -8
- package/dist/connect.js +12 -11
- package/dist/desktop.js +2 -2
- package/dist/editor.js +2 -2
- package/dist/{embedded-new-voice-X4ZW6SY4.js → embedded-new-voice-ZDZPGX25.js} +8 -8
- package/dist/{embedded-voice-4OD6Z3HU.js → embedded-voice-FKCUXSJO.js} +8 -8
- package/dist/{fleet-decision-row-5UCJXTDP.js → fleet-decision-row-VCGWYJAV.js} +2 -2
- package/dist/hooks/page-wake.d.ts +21 -0
- package/dist/hooks/use-session-events.d.ts +1 -0
- package/dist/index.js +206 -205
- package/dist/interaction.js +9 -9
- package/dist/{latest-question-VGVNUGAU.js → latest-question-SINEV4U6.js} +3 -3
- package/dist/lib/format.d.ts +3 -2
- package/dist/machines.js +6 -6
- package/dist/messages/en.d.ts +12 -3
- package/dist/messages.js +1 -1
- package/dist/model-picker-model.js +2 -2
- package/dist/{model-policy-picker-menu-XOPYY6YA.js → model-policy-picker-menu-66JPM3G5.js} +6 -6
- package/dist/model-policy-picker-menu-66JPM3G5.js.map +1 -0
- package/dist/model-policy.js +1 -1
- package/dist/native-previews.js +3 -3
- package/dist/{platform-activity-row-56XOVTRA.js → platform-activity-row-LU5WABI2.js} +2 -2
- package/dist/{queue-surface-implementation-OZDOBJ6W.js → queue-surface-implementation-Y4OUVS7N.js} +8 -7
- package/dist/{queue-surface-implementation-OZDOBJ6W.js.map → queue-surface-implementation-Y4OUVS7N.js.map} +1 -1
- package/dist/realtime.js +7 -7
- package/dist/{sandbox-files-LJCR437H.js → sandbox-files-NBIVKVCZ.js} +11 -11
- package/dist/sandbox-files-NBIVKVCZ.js.map +1 -0
- package/dist/session-app.js +266 -260
- package/dist/session-list-model.js +3 -3
- package/dist/{session-realtime-UISLBZ4A.js → session-realtime-3PALSNMJ.js} +3 -3
- package/dist/session-realtime-3PALSNMJ.js.map +1 -0
- package/dist/session-realtime.js +2 -2
- package/dist/session-ui.js +62 -61
- package/dist/session.d.ts +1 -1
- package/dist/session.js +17 -17
- package/dist/sites.js +2 -2
- package/dist/terminal.js +2 -2
- package/dist/this-computer.js +3 -3
- package/dist/timeline/annotation-model.d.ts +48 -0
- package/dist/{timeline-annotation-markers-ACT7XRMW.js → timeline-annotation-markers-6526H2NM.js} +11 -9
- package/dist/{timeline-annotation-markers-ACT7XRMW.js.map → timeline-annotation-markers-6526H2NM.js.map} +1 -1
- package/dist/{timeline-annotation-selection-2IA7T5VR.js → timeline-annotation-selection-KV5SM6TA.js} +16 -62
- package/dist/timeline-annotation-selection-KV5SM6TA.js.map +1 -0
- package/dist/{timeline-annotations-dialog-W5B2HMYY.js → timeline-annotations-dialog-7CDHWC7Y.js} +12 -10
- package/dist/{timeline-annotations-dialog-W5B2HMYY.js.map → timeline-annotations-dialog-7CDHWC7Y.js.map} +1 -1
- package/dist/timeline-model.d.ts +3 -0
- package/dist/timeline-model.js +40 -14
- package/dist/ui/access-list.js +24 -24
- package/dist/ui/choice-cards.js +2 -2
- package/dist/ui/composer-menu-action.js +2 -2
- package/dist/ui/context-menu.d.ts +3 -1
- package/dist/ui/context-menu.js +3 -1
- package/dist/ui/detail-page.js +3 -3
- package/dist/ui/detail-sheet.js +3 -3
- package/dist/ui/diff-view.js +3 -3
- package/dist/ui/disclosure.js +5 -5
- package/dist/ui/dropdown-menu.js +1 -1
- package/dist/ui/flush-form-page.js +5 -5
- package/dist/ui/form-dialog.js +4 -4
- package/dist/ui/list-row.js +5 -5
- package/dist/ui/load-failure.js +3 -3
- package/dist/ui/page-actions.js +3 -3
- package/dist/ui/revision-history.js +11 -11
- package/dist/ui/role-select.js +8 -8
- package/dist/ui/segmented-control.js +1 -1
- package/dist/ui/settings-nav.js +3 -3
- package/dist/ui/toolbar.js +3 -3
- package/dist/usage.js +2 -2
- package/dist/workbench.js +11 -11
- package/package.json +4 -4
- package/src/app/app-state.tsx +2 -1
- package/src/app/components/command-menu/chat-switcher.tsx +135 -0
- package/src/app/components/command-menu/command-menu.tsx +840 -0
- package/src/app/components/command-menu/keycaps.tsx +56 -0
- package/src/app/components/command-menu/shortcut-sheet.tsx +155 -0
- package/src/app/components/credits/credit-refusal-notice.test.tsx +132 -0
- package/src/app/components/credits/credit-refusal-notice.tsx +92 -0
- package/src/app/components/rail/rail-context.tsx +28 -5
- package/src/app/components/rail/rail-sections.tsx +3 -5
- package/src/app/components/rail/session-header-mute.test.tsx +23 -1
- package/src/app/components/rail/session-header.test.tsx +21 -2
- package/src/app/components/rail/session-header.tsx +31 -1
- package/src/app/components/rail/session-list.tsx +89 -16
- package/src/app/components/rail/session-shell.tsx +0 -14
- package/src/app/components/session/session-search-dialog.tsx +12 -1
- package/src/app/embed/session-app.tsx +6 -3
- package/src/app/lib/actions/actions-provider.tsx +486 -0
- package/src/app/lib/actions/actions.test.ts +249 -0
- package/src/app/lib/actions/chat-directory.ts +231 -0
- package/src/app/lib/actions/chat-operations.ts +145 -0
- package/src/app/lib/actions/chat-switcher.ts +62 -0
- package/src/app/lib/actions/chords.ts +185 -0
- package/src/app/lib/actions/events.ts +10 -0
- package/src/app/lib/actions/rank.ts +119 -0
- package/src/app/lib/actions/registry.ts +333 -0
- package/src/app/lib/credit-coverage.test.ts +83 -0
- package/src/app/lib/credit-coverage.tsx +48 -0
- package/src/app/lib/free-credit-gap.test.ts +32 -1
- package/src/app/lib/free-credit-gap.tsx +32 -2
- package/src/app/lib/integration-connect-analytics.test.ts +1 -0
- package/src/app/lib/integration-connect-analytics.tsx +4 -0
- package/src/app/lib/models-route.test.ts +18 -0
- package/src/app/lib/models-route.tsx +26 -4
- package/src/app/lib/session-search-route.tsx +6 -1
- package/src/app/lib/session-ui-features.tsx +28 -9
- package/src/app/routes/session.tsx +74 -16
- package/src/app/routes/sessions-index.tsx +83 -4
- package/src/components/timeline-annotation-selection.tsx +9 -64
- package/src/components/timeline-annotation-shared.ts +9 -57
- package/src/hooks/page-wake.ts +80 -0
- package/src/hooks/use-session-events.ts +309 -81
- package/src/lib/format.ts +3 -2
- package/src/messages/en.ts +13 -3
- package/src/model-picker-model.ts +3 -0
- package/src/model-policy.ts +9 -1
- package/src/session.ts +1 -0
- package/src/timeline/annotation-model.ts +217 -0
- package/src/timeline/projection.ts +27 -21
- package/src/timeline-model.ts +14 -0
- package/src/ui/context-menu.tsx +16 -0
- package/src/ui/dropdown-menu.tsx +4 -1
- package/src/ui/segmented-control.tsx +3 -0
- package/styles/compiled.css +92 -0
- package/dist/app/lib/keyboard-shortcuts.d.ts +0 -51
- package/dist/app/lib/keyboard-shortcuts.js +0 -16
- package/dist/chunk-2MXUB3ZO.js.map +0 -1
- package/dist/chunk-2RIUMV7S.js.map +0 -1
- package/dist/chunk-53IXIUYP.js +0 -39
- package/dist/chunk-53IXIUYP.js.map +0 -1
- package/dist/chunk-DN3TKURW.js.map +0 -1
- package/dist/chunk-F2GXK2Z6.js.map +0 -1
- package/dist/chunk-G7VLL3PG.js.map +0 -1
- package/dist/chunk-GRLPRM56.js.map +0 -1
- package/dist/chunk-HUQHJSPV.js.map +0 -1
- package/dist/chunk-IO6K6UYJ.js.map +0 -1
- package/dist/chunk-KWB5U3ZT.js.map +0 -1
- package/dist/chunk-L5UCO2UV.js.map +0 -1
- package/dist/chunk-MOF3XSUM.js.map +0 -1
- package/dist/chunk-N2BEUKXT.js.map +0 -1
- package/dist/chunk-OS3EQOIS.js.map +0 -1
- package/dist/chunk-OYJY4Y4A.js.map +0 -1
- package/dist/chunk-Q2ZJOECN.js.map +0 -1
- package/dist/chunk-QWCTYLMD.js.map +0 -1
- package/dist/chunk-RZV7SXED.js.map +0 -1
- package/dist/chunk-S3M5WCZW.js.map +0 -1
- package/dist/chunk-SOOWLNC5.js.map +0 -1
- package/dist/chunk-SWWYYGQO.js.map +0 -1
- package/dist/chunk-UO36FC3S.js.map +0 -1
- package/dist/chunk-UYSZKDQY.js.map +0 -1
- package/dist/chunk-VE3FKXJ7.js.map +0 -1
- package/dist/chunk-VVFWOBAM.js.map +0 -1
- package/dist/chunk-ZSERYHHT.js.map +0 -1
- package/dist/timeline-annotation-selection-2IA7T5VR.js.map +0 -1
- package/src/app/lib/keyboard-shortcuts.test.ts +0 -47
- package/src/app/lib/keyboard-shortcuts.tsx +0 -58
- /package/dist/app/{lib/keyboard-shortcuts.js.map → components/command-menu/keycaps.js.map} +0 -0
- /package/dist/{browser-viewer-ZRFZX3VN.js.map → app/components/credits/credit-refusal-notice.js.map} +0 -0
- /package/dist/{chat-interactive-block-HUMYWVCK.js.map → app/lib/actions/actions-provider.js.map} +0 -0
- /package/dist/{computer-viewer-D4NHQB5D.js.map → app/lib/credit-coverage.js.map} +0 -0
- /package/dist/{embedded-new-voice-X4ZW6SY4.js.map → browser-viewer-HPUMK7UP.js.map} +0 -0
- /package/dist/{embedded-voice-4OD6Z3HU.js.map → chat-interactive-block-22PPECCT.js.map} +0 -0
- /package/dist/{chunk-GVIQ7H62.js.map → chunk-2LUBBDZV.js.map} +0 -0
- /package/dist/{chunk-XMMVIY7B.js.map → chunk-3CCJWHQY.js.map} +0 -0
- /package/dist/{chunk-XS2FZ6DX.js.map → chunk-3F5ZPIWI.js.map} +0 -0
- /package/dist/{chunk-72US6QNB.js.map → chunk-3J2YZRY5.js.map} +0 -0
- /package/dist/{chunk-D4YQF4E3.js.map → chunk-3SMJ2BIQ.js.map} +0 -0
- /package/dist/{chunk-TBJINQXA.js.map → chunk-3WCYK36X.js.map} +0 -0
- /package/dist/{chunk-WPCF34V6.js.map → chunk-3WG3CRL7.js.map} +0 -0
- /package/dist/{chunk-JI5BYQKO.js.map → chunk-3X46PNBX.js.map} +0 -0
- /package/dist/{chunk-PBK44WJC.js.map → chunk-4GJ37O6G.js.map} +0 -0
- /package/dist/{chunk-LEXPBQ56.js.map → chunk-4SKJX3C4.js.map} +0 -0
- /package/dist/{chunk-ZA6YD2LW.js.map → chunk-57SYK776.js.map} +0 -0
- /package/dist/{chunk-22LBKJDE.js.map → chunk-5DIAN5GQ.js.map} +0 -0
- /package/dist/{chunk-LJ3TDK2L.js.map → chunk-5FA455GR.js.map} +0 -0
- /package/dist/{chunk-YPR5INHV.js.map → chunk-5X3E2Z3D.js.map} +0 -0
- /package/dist/{chunk-OXNWZTEU.js.map → chunk-5ZJCL6X4.js.map} +0 -0
- /package/dist/{chunk-62OAZ4LO.js.map → chunk-6C5GQQMC.js.map} +0 -0
- /package/dist/{chunk-VGITH57T.js.map → chunk-6ERTXDZM.js.map} +0 -0
- /package/dist/{chunk-ZQ7XQZCF.js.map → chunk-6FX73Y4I.js.map} +0 -0
- /package/dist/{chunk-QZO2KK2F.js.map → chunk-6P44NG6Y.js.map} +0 -0
- /package/dist/{chunk-N2DDJLTM.js.map → chunk-6T7Y33JA.js.map} +0 -0
- /package/dist/{chunk-RBAGC2MJ.js.map → chunk-75VE5QUS.js.map} +0 -0
- /package/dist/{chunk-MRXOGI3O.js.map → chunk-77CUDSHG.js.map} +0 -0
- /package/dist/{chunk-GZ65XQR5.js.map → chunk-7T7FHSGS.js.map} +0 -0
- /package/dist/{chunk-YGAH34CD.js.map → chunk-A3S26JSP.js.map} +0 -0
- /package/dist/{chunk-GYPAO6RS.js.map → chunk-A664GSDM.js.map} +0 -0
- /package/dist/{chunk-JSZSNMDR.js.map → chunk-ASUYLXKO.js.map} +0 -0
- /package/dist/{chunk-RTK7SUPL.js.map → chunk-AUUJLVA3.js.map} +0 -0
- /package/dist/{chunk-OOTBYSCA.js.map → chunk-BBWKPNJB.js.map} +0 -0
- /package/dist/{chunk-BGZIMIUU.js.map → chunk-BCUYWOQU.js.map} +0 -0
- /package/dist/{chunk-EKN4N4LS.js.map → chunk-BDFMNJZJ.js.map} +0 -0
- /package/dist/{chunk-YZKGOWCC.js.map → chunk-BIDXQAGO.js.map} +0 -0
- /package/dist/{chunk-Q2UUANHF.js.map → chunk-BIKAJ4DY.js.map} +0 -0
- /package/dist/{chunk-5IQBF2X3.js.map → chunk-BJPJ2OUX.js.map} +0 -0
- /package/dist/{chunk-EY2EMHZW.js.map → chunk-BPM2OTYK.js.map} +0 -0
- /package/dist/{chunk-MT4TBRQB.js.map → chunk-BSWS2RUZ.js.map} +0 -0
- /package/dist/{chunk-T7YD3VGK.js.map → chunk-C52MNKXU.js.map} +0 -0
- /package/dist/{chunk-THNW33K7.js.map → chunk-CEUDV4OA.js.map} +0 -0
- /package/dist/{chunk-LHGIS6SZ.js.map → chunk-CVK74BH7.js.map} +0 -0
- /package/dist/{chunk-DFO2UCYG.js.map → chunk-CW5I65ZX.js.map} +0 -0
- /package/dist/{chunk-SKRLKQEG.js.map → chunk-DOSC2HRQ.js.map} +0 -0
- /package/dist/{chunk-KVB6XDLP.js.map → chunk-DPJ2CWVN.js.map} +0 -0
- /package/dist/{chunk-4J6V4DH7.js.map → chunk-DXMRO2MU.js.map} +0 -0
- /package/dist/{chunk-42I4O4WQ.js.map → chunk-EE55IDDR.js.map} +0 -0
- /package/dist/{chunk-2RA6XABP.js.map → chunk-EEERTLFF.js.map} +0 -0
- /package/dist/{chunk-PTOTKUKO.js.map → chunk-EEO744XR.js.map} +0 -0
- /package/dist/{chunk-LD3HVI2J.js.map → chunk-EMFGBAQL.js.map} +0 -0
- /package/dist/{chunk-FQGUK4ST.js.map → chunk-ENPJKVMN.js.map} +0 -0
- /package/dist/{chunk-HDHK3SXK.js.map → chunk-EU6RLHMP.js.map} +0 -0
- /package/dist/{chunk-MRUWRQBX.js.map → chunk-FET6XHGS.js.map} +0 -0
- /package/dist/{chunk-M6KUY3YH.js.map → chunk-FIICQA55.js.map} +0 -0
- /package/dist/{chunk-NLWLCYCT.js.map → chunk-FTZXCPE3.js.map} +0 -0
- /package/dist/{chunk-FN2KA3MJ.js.map → chunk-FUS76DO4.js.map} +0 -0
- /package/dist/{chunk-AM4IIPWI.js.map → chunk-G7N5NPRJ.js.map} +0 -0
- /package/dist/{chunk-CCQ7YKOD.js.map → chunk-GBYZ6653.js.map} +0 -0
- /package/dist/{chunk-YKKVIJVX.js.map → chunk-GQDSC6QZ.js.map} +0 -0
- /package/dist/{chunk-5X6JP75Q.js.map → chunk-GRSODLVO.js.map} +0 -0
- /package/dist/{chunk-73YP3R5X.js.map → chunk-GSESCQFY.js.map} +0 -0
- /package/dist/{chunk-MZLEBFUZ.js.map → chunk-GZD6VBIK.js.map} +0 -0
- /package/dist/{chunk-IZR2QRFF.js.map → chunk-H3HH5AHS.js.map} +0 -0
- /package/dist/{chunk-OJPUVUB6.js.map → chunk-HAOZCLLA.js.map} +0 -0
- /package/dist/{chunk-ZBHDGAYL.js.map → chunk-HEFE4OZJ.js.map} +0 -0
- /package/dist/{chunk-WTG34JVA.js.map → chunk-HI75UTI6.js.map} +0 -0
- /package/dist/{chunk-OMBIG3NC.js.map → chunk-HM633ROV.js.map} +0 -0
- /package/dist/{chunk-WDFZWSKD.js.map → chunk-HRIP4M6H.js.map} +0 -0
- /package/dist/{chunk-A2BCW6CQ.js.map → chunk-HU2DRFFI.js.map} +0 -0
- /package/dist/{chunk-PO35PBAB.js.map → chunk-HVH7FFJH.js.map} +0 -0
- /package/dist/{chunk-EG7KNUF7.js.map → chunk-HYTXTKST.js.map} +0 -0
- /package/dist/{chunk-TFHG75A4.js.map → chunk-I4XMDFUJ.js.map} +0 -0
- /package/dist/{chunk-IZHVZZQA.js.map → chunk-ICAUYWSL.js.map} +0 -0
- /package/dist/{chunk-DCLPWYP3.js.map → chunk-IEVPJ3G6.js.map} +0 -0
- /package/dist/{chunk-EVWZHDSF.js.map → chunk-IKH3VTA4.js.map} +0 -0
- /package/dist/{chunk-TYHLEFD2.js.map → chunk-IZJNMRIR.js.map} +0 -0
- /package/dist/{chunk-D2SR3TEB.js.map → chunk-J243WGUA.js.map} +0 -0
- /package/dist/{chunk-QGSGIYE3.js.map → chunk-J2C6LB6W.js.map} +0 -0
- /package/dist/{chunk-MT6TRTXF.js.map → chunk-J5MEDX7C.js.map} +0 -0
- /package/dist/{chunk-6QHUKBJP.js.map → chunk-J7SKOO44.js.map} +0 -0
- /package/dist/{chunk-W2QK7PYS.js.map → chunk-JAAST75A.js.map} +0 -0
- /package/dist/{chunk-NQCMS4AJ.js.map → chunk-JQCGPTZ6.js.map} +0 -0
- /package/dist/{chunk-CMUXJHGH.js.map → chunk-JRSCWQMC.js.map} +0 -0
- /package/dist/{chunk-Q4OHNGGB.js.map → chunk-JRXHSVD5.js.map} +0 -0
- /package/dist/{chunk-SD2K5ZN5.js.map → chunk-JXYLDT6X.js.map} +0 -0
- /package/dist/{chunk-IXX6ZOL2.js.map → chunk-KGTMHEAP.js.map} +0 -0
- /package/dist/{chunk-22OBGVEJ.js.map → chunk-KOXVGPW4.js.map} +0 -0
- /package/dist/{chunk-NOZ5CGZE.js.map → chunk-L5GPPMUB.js.map} +0 -0
- /package/dist/{chunk-4FOOHMTU.js.map → chunk-LY6727IF.js.map} +0 -0
- /package/dist/{chunk-PT7MTXRE.js.map → chunk-MAOCN7J6.js.map} +0 -0
- /package/dist/{chunk-4K2JSJNX.js.map → chunk-MB5LZVDO.js.map} +0 -0
- /package/dist/{chunk-5LES64PP.js.map → chunk-MKOQAVOE.js.map} +0 -0
- /package/dist/{chunk-BMV2SNYX.js.map → chunk-MUPWNSEJ.js.map} +0 -0
- /package/dist/{chunk-Y5TRG22C.js.map → chunk-NRXIECWC.js.map} +0 -0
- /package/dist/{chunk-GOE7G5JX.js.map → chunk-NWSAF6P5.js.map} +0 -0
- /package/dist/{chunk-DUM363VS.js.map → chunk-OFZQJNF6.js.map} +0 -0
- /package/dist/{chunk-CKN5QPEL.js.map → chunk-OMF7POEY.js.map} +0 -0
- /package/dist/{chunk-MVXKO2BD.js.map → chunk-OXD6ET34.js.map} +0 -0
- /package/dist/{chunk-47JUEVME.js.map → chunk-PALX6HWV.js.map} +0 -0
- /package/dist/{chunk-B6OGSG7I.js.map → chunk-PE3BLBDT.js.map} +0 -0
- /package/dist/{chunk-RVISSNVE.js.map → chunk-PMZKJOG6.js.map} +0 -0
- /package/dist/{chunk-CESAMXWX.js.map → chunk-PQUTMG3S.js.map} +0 -0
- /package/dist/{chunk-7VFCOKPG.js.map → chunk-PWBGODZU.js.map} +0 -0
- /package/dist/{chunk-MOPAXD2H.js.map → chunk-QCADUTYX.js.map} +0 -0
- /package/dist/{chunk-CT5FBO7E.js.map → chunk-RPOUJI25.js.map} +0 -0
- /package/dist/{chunk-WKHYOS72.js.map → chunk-RW4GFE56.js.map} +0 -0
- /package/dist/{chunk-FH4GO7HO.js.map → chunk-RYLVVDR7.js.map} +0 -0
- /package/dist/{chunk-QZRDCFHI.js.map → chunk-S66SBBFQ.js.map} +0 -0
- /package/dist/{chunk-CQJFIPAH.js.map → chunk-S7TNV2I7.js.map} +0 -0
- /package/dist/{chunk-ZBQSIGGR.js.map → chunk-SC773IMJ.js.map} +0 -0
- /package/dist/{chunk-FBJ2HK7A.js.map → chunk-SGPJ3YS2.js.map} +0 -0
- /package/dist/{chunk-A2EWJQXX.js.map → chunk-SM5QX6UK.js.map} +0 -0
- /package/dist/{chunk-RKZWCTXV.js.map → chunk-TAEKDMEF.js.map} +0 -0
- /package/dist/{chunk-6AVCAUGL.js.map → chunk-TASEV25T.js.map} +0 -0
- /package/dist/{chunk-3XOISKZC.js.map → chunk-TLGDPMUX.js.map} +0 -0
- /package/dist/{chunk-5IUW34PG.js.map → chunk-TY3QYPJ6.js.map} +0 -0
- /package/dist/{chunk-VQFR4EU4.js.map → chunk-U3JK5VJV.js.map} +0 -0
- /package/dist/{chunk-2AWMJO54.js.map → chunk-U42P3RMZ.js.map} +0 -0
- /package/dist/{chunk-GUU75DES.js.map → chunk-UEJTOPLW.js.map} +0 -0
- /package/dist/{chunk-OZOEWLGR.js.map → chunk-UT6JAORE.js.map} +0 -0
- /package/dist/{chunk-5TELOQA6.js.map → chunk-UTHPUINA.js.map} +0 -0
- /package/dist/{chunk-26RQ6JBR.js.map → chunk-VBVCNH6D.js.map} +0 -0
- /package/dist/{chunk-P646DND6.js.map → chunk-VCMQPCME.js.map} +0 -0
- /package/dist/{chunk-LV7FMIMM.js.map → chunk-VGUHAHHV.js.map} +0 -0
- /package/dist/{chunk-GYVXARCY.js.map → chunk-VIBPFVU4.js.map} +0 -0
- /package/dist/{chunk-KHPOKZ6Z.js.map → chunk-VMAC66JX.js.map} +0 -0
- /package/dist/{chunk-SHKRS6I5.js.map → chunk-VRPNETPK.js.map} +0 -0
- /package/dist/{chunk-6U4J6RVS.js.map → chunk-WCHW4XN7.js.map} +0 -0
- /package/dist/{chunk-CJH6QUQJ.js.map → chunk-WD3UXNJV.js.map} +0 -0
- /package/dist/{chunk-H5EVWF6L.js.map → chunk-WR67FJMX.js.map} +0 -0
- /package/dist/{chunk-XLIJ36RG.js.map → chunk-WRMQ7EX4.js.map} +0 -0
- /package/dist/{chunk-7KLCFJ5G.js.map → chunk-X4PPGXQG.js.map} +0 -0
- /package/dist/{chunk-ZE2JTVCQ.js.map → chunk-X5BMQXFD.js.map} +0 -0
- /package/dist/{chunk-UECU6LZI.js.map → chunk-XXRBOSWV.js.map} +0 -0
- /package/dist/{chunk-SPKAIDWX.js.map → chunk-XZEFCPBL.js.map} +0 -0
- /package/dist/{chunk-EZ5NYRHK.js.map → chunk-YL6N7QLA.js.map} +0 -0
- /package/dist/{chunk-VAIESMPY.js.map → chunk-YVBHGMKC.js.map} +0 -0
- /package/dist/{chunk-AR62NQXE.js.map → chunk-Z2S5VQG7.js.map} +0 -0
- /package/dist/{chunk-7UQJEADK.js.map → chunk-ZL2O4BYP.js.map} +0 -0
- /package/dist/{chunk-FOOITLHR.js.map → chunk-ZZHBT5WQ.js.map} +0 -0
- /package/dist/{chunk-X6VJQJYY.js.map → chunk-ZZWHKC6A.js.map} +0 -0
- /package/dist/{model-policy-picker-menu-XOPYY6YA.js.map → computer-viewer-S6TE6TN7.js.map} +0 -0
- /package/dist/{sandbox-files-LJCR437H.js.map → embedded-new-voice-ZDZPGX25.js.map} +0 -0
- /package/dist/{session-realtime-UISLBZ4A.js.map → embedded-voice-FKCUXSJO.js.map} +0 -0
- /package/dist/{fleet-decision-row-5UCJXTDP.js.map → fleet-decision-row-VCGWYJAV.js.map} +0 -0
- /package/dist/{latest-question-VGVNUGAU.js.map → latest-question-SINEV4U6.js.map} +0 -0
- /package/dist/{platform-activity-row-56XOVTRA.js.map → platform-activity-row-LU5WABI2.js.map} +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
defaultThisComputerLabels
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-J243WGUA.js";
|
|
5
5
|
import {
|
|
6
6
|
usePortalTokenStyle
|
|
7
7
|
} from "./chunk-XEA5BCMA.js";
|
|
8
8
|
import {
|
|
9
9
|
useOpenGeniText
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-F2YABPRJ.js";
|
|
11
11
|
|
|
12
12
|
// src/this-computer.ts
|
|
13
13
|
import {
|
|
@@ -601,4 +601,4 @@ export {
|
|
|
601
601
|
thisComputerReady2 as thisComputerReady,
|
|
602
602
|
THIS_COMPUTER_PERMISSION_ORDER
|
|
603
603
|
};
|
|
604
|
-
//# sourceMappingURL=chunk-
|
|
604
|
+
//# sourceMappingURL=chunk-UTHPUINA.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
ArtifactButton
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PQUTMG3S.js";
|
|
5
5
|
import {
|
|
6
6
|
cn
|
|
7
7
|
} from "./chunk-TXS65BB2.js";
|
|
8
8
|
import {
|
|
9
9
|
useOpenGeniText
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-F2YABPRJ.js";
|
|
11
11
|
|
|
12
12
|
// src/components/artifacts/artifact-surface.tsx
|
|
13
13
|
import {
|
|
@@ -87,65 +87,11 @@ 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
|
-
|
|
144
90
|
// src/components/artifacts/editable-artifact-ui.tsx
|
|
145
|
-
import { useEffect, useState
|
|
146
|
-
import { jsx as
|
|
91
|
+
import { useEffect, useState } from "react";
|
|
92
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
147
93
|
function useEditableArtifactView(session) {
|
|
148
|
-
const [view, setView] =
|
|
94
|
+
const [view, setView] = useState(() => session.getView());
|
|
149
95
|
useEffect(() => {
|
|
150
96
|
setView(session.getView());
|
|
151
97
|
return session.subscribe(setView);
|
|
@@ -196,10 +142,10 @@ function EditableArtifactMessage({
|
|
|
196
142
|
}) {
|
|
197
143
|
const t = useOpenGeniText();
|
|
198
144
|
const retryLabel = retryLabelProp === void 0 ? t("artifacts.editableArtifactUi.retry") : retryLabelProp;
|
|
199
|
-
return /* @__PURE__ */
|
|
200
|
-
/* @__PURE__ */
|
|
201
|
-
/* @__PURE__ */
|
|
202
|
-
retry ? /* @__PURE__ */
|
|
145
|
+
return /* @__PURE__ */ jsx2("div", { className: "grid h-full min-h-56 place-items-center bg-og-bg p-6 text-center", children: /* @__PURE__ */ jsxs2("div", { children: [
|
|
146
|
+
/* @__PURE__ */ jsx2("p", { className: "text-og-base font-medium text-og-fg", children: title }),
|
|
147
|
+
/* @__PURE__ */ jsx2("p", { className: "mt-1 max-w-lg text-og-sm text-og-fg-muted", children: detail }),
|
|
148
|
+
retry ? /* @__PURE__ */ jsx2(
|
|
203
149
|
"button",
|
|
204
150
|
{
|
|
205
151
|
type: "button",
|
|
@@ -214,6 +160,60 @@ function asEditableArtifactError(cause, fallback) {
|
|
|
214
160
|
return cause instanceof Error ? cause : new Error(fallback);
|
|
215
161
|
}
|
|
216
162
|
|
|
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,
|
|
331
328
|
useEditableArtifactView,
|
|
332
329
|
editableArtifactProjectionKey,
|
|
333
330
|
editableArtifactStatusLabel,
|
|
334
331
|
editableArtifactAccessRevoked,
|
|
335
332
|
EditableArtifactMessage,
|
|
336
333
|
asEditableArtifactError,
|
|
334
|
+
ArtifactSubmissionProvider,
|
|
335
|
+
useArtifactSubmissions,
|
|
336
|
+
artifactSubmissionSessionKey,
|
|
337
337
|
EditableArtifactDownloadButton
|
|
338
338
|
};
|
|
339
|
-
//# sourceMappingURL=chunk-
|
|
339
|
+
//# sourceMappingURL=chunk-V6HZ2HJZ.js.map
|
|
@@ -1 +1 @@
|
|
|
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":";;;;;;;;;;;;AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA8BM,SA0DL,UA1DK,KA2CH,YA3CG;AATb,IAAM,iBAAiB,CAAC,OAAuD;AAAA,EAC7E,aAAa,EAAE,uCAAuC;AAAA,EACtD,UAAU,EAAE,oCAAoC;AAAA,EAChD,cAAc,EAAE,wCAAwC;AAC1D;AAEA,SAAS,aAAa,EAAE,SAAS,GAAmC;AAClE,UAAQ,UAAU;AAAA,IAChB,KAAK;AACH,aAAO,oBAAC,uBAAoB,WAAU,UAAS;AAAA,IACjD,KAAK;AACH,aAAO,oBAAC,gBAAa,WAAU,UAAS;AAAA,IAC1C,KAAK;AACH,aAAO,oBAAC,oBAAiB,WAAU,UAAS;AAAA,EAChD;AACF;AAOO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AACF,GAAyB;AACvB,QAAM,IAAI,gBAAgB;AAC1B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAY,GAAG,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,KAAK;AAAA,MACpD,aAAW,QAAQ;AAAA,MACnB,6BAA2B;AAAA,MAC3B,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MAEC;AAAA,qBACC,qBAAC,YAAO,WAAU,4FAChB;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,eAAW;AAAA,cACX,WAAU;AAAA,cAEV,8BAAC,gBAAa,UAAoB;AAAA;AAAA,UACpC;AAAA,UACA,qBAAC,SAAI,WAAU,kBACb;AAAA,gCAAC,QAAG,WAAU,gDAAgD,iBAAM;AAAA,YACnE,WACC,oBAAC,SAAI,WAAU,wCAAwC,oBAAS,IAC9D;AAAA,aACN;AAAA,UACC,OACC;AAAA,YAAC;AAAA;AAAA,cACC,cAAY,EAAE,4CAA4C;AAAA,cAC1D,WAAU;AAAA;AAAA,UACZ,IACE;AAAA,UACH,UAAU,oBAAC,SAAI,WAAU,oCAAoC,mBAAQ,IAAS;AAAA,WACjF,IAEA,iCACG;AAAA,iBAAO,aAAa,YAAY,OAAO,aAAa,WACnD,oBAAC,UAAK,MAAK,UAAS,WAAU,WAC3B,oBACH,IACE;AAAA,UACH,UACC,oBAAC,SAAI,WAAU,oFACZ,mBACH,IACE;AAAA,WACN;AAAA,QAGF,oBAAC,SAAI,WAAU,0BAA0B,UAAS;AAAA,QAEjD,SACC,oBAAC,YAAO,WAAU,sDAAsD,kBAAO,IAC7E;AAAA;AAAA;AAAA,EACN;AAEJ;;;ACjHA,SAAS,eAAe,YAAY,gBAAgC;AA8C3D,gBAAAA,YAAA;AA5CT,SAAS,wBAAwB;AAC/B,MAAI,UAAU;AACd,QAAM,YAAY,oBAAI,IAAgB;AACtC,QAAM,OAAO,MAAM;AACjB,eAAW,YAAY,UAAW,UAAS;AAAA,EAC7C;AACA,SAAO;AAAA,IACL,YAAY,MAAM;AAAA,IAClB,WAAW,CAAC,aAAyB;AACnC,gBAAU,IAAI,QAAQ;AACtB,aAAO,MAAM;AACX,kBAAU,OAAO,QAAQ;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,MAAM,IAAO,QAAsC;AAGjD;AACA,WAAK;AACL,UAAI;AACF,eAAO,MAAM,OAAO;AAAA,MACtB,UAAE;AACA;AACA,aAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AACF;AAQA,IAAM,kBAAuC;AAAA,EAC3C,YAAY,MAAM;AAAA,EAClB,WAAW,CAAC,cAA0B,MAAM;AAAA,EAAC;AAAA,EAC7C,KAAK,CAAK,WAA6B,OAAO;AAChD;AACA,IAAM,oBAAoB,cAA0C,IAAI;AAEjE,SAAS,2BAA2B,EAAE,SAAS,GAA4B;AAChF,QAAM,CAAC,KAAK,IAAI,SAAS,qBAAqB;AAC9C,SAAO,gBAAAA,KAAC,kBAAkB,UAAlB,EAA2B,OAAO,OAAQ,UAAS;AAC7D;AAGO,SAAS,yBAA8C;AAC5D,SAAO,WAAW,iBAAiB,KAAK;AAC1C;AAEA,IAAM,eAAe,oBAAI,QAAyC;AAClE,IAAI,iBAAiB;AAGd,SAAS,6BAA6B,SAA0C;AACrF,MAAI,MAAM,aAAa,IAAI,OAAO;AAClC,MAAI,QAAQ,QAAW;AACrB,UAAM,EAAE;AACR,iBAAa,IAAI,SAAS,GAAG;AAAA,EAC/B;AACA,SAAO;AACT;;;AC9DA,SAAS,WAAW,YAAAC,iBAAgB;AA6E9B,SACE,OAAAC,MADF,QAAAC,aAAA;AAzEC,SAAS,wBACd,SAC0B;AAC1B,QAAM,CAAC,MAAM,OAAO,IAAIC,UAAS,MAAM,QAAQ,QAAQ,CAAC;AACxD,YAAU,MAAM;AACd,YAAQ,QAAQ,QAAQ,CAAC;AACzB,WAAO,QAAQ,UAAU,OAAO;AAAA,EAClC,GAAG,CAAC,OAAO,CAAC;AACZ,SAAO;AACT;AAGO,SAAS,8BAA8B,MAAwC;AACpF,SAAO;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,eAAe,IAAI,CAAC,UAAU,GAAG,MAAM,mBAAmB,IAAI,MAAM,IAAI,EAAE,EAAE,KAAK,GAAG;AAAA,EAC3F,EAAE,KAAK,GAAG;AACZ;AAEO,SAAS,4BACd,GACA,MACQ;AACR,UAAQ,KAAK,OAAO;AAAA,IAClB,KAAK;AAAA,IACL,KAAK;AACH,aAAO,EAAE,yCAAyC;AAAA,IACpD,KAAK;AAAA,IACL,KAAK;AACH,aAAO,EAAE,sCAAsC;AAAA,IACjD,KAAK;AACH,aAAO,EAAE,2CAA2C;AAAA,IACtD,KAAK;AACH,aAAO,EAAE,uDAAuD;AAAA,IAClE,KAAK;AACH,UAAI,8BAA8B,IAAI,GAAG;AACvC,eAAO,EAAE,oDAAoD;AAAA,MAC/D;AACA,aAAO,KAAK,WAAW,WAAW,EAAE,uDAAuD;AAAA,IAC7F,KAAK;AACH,aAAO,EAAE,oDAAoD;AAAA,IAC/D,KAAK;AACH,aAAO,KAAK,WACR,EAAE,mCAAmC,IACrC,EAAE,2CAA2C;AAAA,EACrD;AACF;AAGO,SAAS,8BAA8B,MAAyC;AACrF,MAAI,KAAK,UAAU,YAAY,CAAC,KAAK,UAAW,QAAO;AACvD,SAAQ,KAAK,UAAmD,SAAS;AAC3E;AAEO,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AACd,GAKG;AACD,QAAM,IAAI,gBAAgB;AAC1B,QAAM,aACJ,mBAAmB,SAAY,EAAE,oCAAoC,IAAI;AAC3E,SACE,gBAAAF,KAAC,SAAI,WAAU,oEACb,0BAAAC,MAAC,SACC;AAAA,oBAAAD,KAAC,OAAE,WAAU,uCAAuC,iBAAM;AAAA,IAC1D,gBAAAA,KAAC,OAAE,WAAU,6CAA6C,kBAAO;AAAA,IAChE,QACC,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS;AAAA,QACT,WAAU;AAAA,QAET;AAAA;AAAA,IACH,IACE;AAAA,KACN,GACF;AAEJ;AAEO,SAAS,wBAAwB,OAAgB,UAAyB;AAC/E,SAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,QAAQ;AAC5D;;;ACnGA,SAAS,cAAc,oBAAAG,yBAAwB;AAC/C,SAAS,aAAAC,YAAW,QAAQ,YAAAC,WAAU,4BAA4B;AAuH9D,qBAAAC,WAEI,OAAAC,MAIF,QAAAC,aANF;AA5GJ,IAAM,SAAS;AAAA,EACb,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AACF;AAMO,SAAS,+BAA+B;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,QAAM,IAAI,gBAAgB;AAC1B,QAAM,SAAS,OAAO,MAAM;AAC5B,QAAM,OAAO,wBAAwB,OAAO;AAC5C,QAAM,cAAc,uBAAuB;AAC3C,QAAM,aAAa;AAAA,IACjB,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,YAAY;AAAA,EACd;AACA,QAAM,SAAS,OAA+B,IAAI;AAClD,QAAM,CAAC,MAAM,OAAO,IAAIC,UAAS,KAAK;AACtC,QAAM,CAAC,OAAO,QAAQ,IAAIA,UAAS,KAAK;AACxC,QAAM,QACJ,KAAK,UAAU,UACf,eAAe,KACf,KAAK,wBAAwB,KAC7B,KAAK,eAAe,WAAW,KAC/B,CAAC,KAAK;AACR,EAAAC,WAAU,MAAM,MAAM,OAAO,SAAS,MAAM,GAAG,CAAC,OAAO,CAAC;AACxD,EAAAA,WAAU,MAAM;AACd,QAAI,KAAK,UAAU,YAAY,KAAK,UAAU,UAAU;AACtD,aAAO,SAAS,MAAM;AACtB,aAAO,UAAU;AACjB,cAAQ,KAAK;AAAA,IACf;AAAA,EACF,GAAG,CAAC,KAAK,KAAK,CAAC;AAEf,QAAM,QAAQ,YAAY;AACxB,QAAI,OAAO,WAAW,CAAC,SAAS,YAAY,WAAW,EAAG;AAE1D,UAAM,UAAU,QAAQ,QAAQ;AAChC,QACE,QAAQ,UAAU,UAClB,QAAQ,uBACR,QAAQ,eAAe,UACvB,QAAQ;AAER;AACF,UAAM,aAAa,IAAI,gBAAgB;AACvC,WAAO,UAAU;AACjB,YAAQ,IAAI;AACZ,aAAS,KAAK;AACd,QAAI;AACF,YAAM,OAAO,MAAM,SAAS,WAAW,MAAM;AAC7C,UAAI,WAAW,OAAO,QAAS;AAC/B,YAAM,MAAM,IAAI,gBAAgB,IAAI;AACpC,UAAI;AACF,cAAM,SAAS,SAAS,cAAc,GAAG;AACzC,eAAO,OAAO;AACd,eAAO,WAAW,iBAAiB,OAAO,QAAQ,EAAE,OAAO,YAAY,CAAC;AACxE,eAAO,MAAM;AACb,eAAO,MAAM;AAAA,MACf,UAAE;AACA,mBAAW,MAAM,IAAI,gBAAgB,GAAG,GAAG,CAAC;AAAA,MAC9C;AAAA,IACF,QAAQ;AACN,UAAI,CAAC,WAAW,OAAO,QAAS,UAAS,IAAI;AAAA,IAC/C,UAAE;AACA,UAAI,CAAC,WAAW,OAAO,SAAS;AAC9B,eAAO,UAAU;AACjB,gBAAQ,KAAK;AAAA,MACf;AAAA,IACF;AAAA,EACF;AAEA,SACE,gBAAAF,MAAAF,WAAA,EACG;AAAA,YACC,gBAAAC,KAAC,UAAK,MAAK,SAAQ,WAAU,+BAC1B,YAAE,OAAO,MAAM,GAClB,IACE;AAAA,IACJ,gBAAAC;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,KAAK,MAAM;AAAA,QAC1B,UAAU,QAAQ,CAAC;AAAA,QACnB,OAAO,QAAQ,EAAE,OAAO,KAAK,IAAI,EAAE,OAAO,IAAI;AAAA,QAE7C;AAAA,iBACC,gBAAAD,KAACI,mBAAA,EAAiB,WAAU,gBAAe,eAAW,MAAC,IAEvD,gBAAAJ,KAAC,gBAAa,eAAW,MAAC;AAAA,UAE3B,OAAO,EAAE,OAAO,SAAS,IAAI,EAAE,OAAO,QAAQ;AAAA;AAAA;AAAA,IACjD;AAAA,KACF;AAEJ;AAGO,SAAS,iBACd,OACA,QACA,UACQ;AACR,QAAM,OACJ,MACG,QAAQ,8BAA8B,GAAG,EACzC,QAAQ,IAAI,OAAO,MAAM,MAAM,KAAK,GAAG,GAAG,EAAE,EAC5C,KAAK,KAAK;AACf,SAAO,GAAG,IAAI,IAAI,MAAM;AAC1B;","names":["jsx","useState","jsx","jsxs","useState","LoaderCircleIcon","useEffect","useState","Fragment","jsx","jsxs","useState","useEffect","LoaderCircleIcon"]}
|
|
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"]}
|
|
@@ -15,13 +15,13 @@ import {
|
|
|
15
15
|
} from "./chunk-HZUL2CUH.js";
|
|
16
16
|
import {
|
|
17
17
|
t
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import {
|
|
20
|
-
userErrorText
|
|
21
|
-
} from "./chunk-L4OF77LE.js";
|
|
18
|
+
} from "./chunk-MAOCN7J6.js";
|
|
22
19
|
import {
|
|
23
20
|
Button
|
|
24
21
|
} from "./chunk-HMU5IELG.js";
|
|
22
|
+
import {
|
|
23
|
+
userErrorText
|
|
24
|
+
} from "./chunk-L4OF77LE.js";
|
|
25
25
|
import {
|
|
26
26
|
feedbackDialogCopy,
|
|
27
27
|
feedbackSentimentLabel,
|
|
@@ -201,4 +201,4 @@ export {
|
|
|
201
201
|
FeedbackDialog,
|
|
202
202
|
SessionFeedback
|
|
203
203
|
};
|
|
204
|
-
//# sourceMappingURL=chunk-
|
|
204
|
+
//# sourceMappingURL=chunk-VBVCNH6D.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
FormPage
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-77CUDSHG.js";
|
|
5
5
|
import {
|
|
6
6
|
cn
|
|
7
7
|
} from "./chunk-TXS65BB2.js";
|
|
@@ -38,4 +38,4 @@ export {
|
|
|
38
38
|
FLUSH_DETAIL_PAGE_CLASS,
|
|
39
39
|
FlushFormPage
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=chunk-
|
|
41
|
+
//# sourceMappingURL=chunk-VCMQPCME.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
classifyProviderFailure,
|
|
4
4
|
failedSessionCopy
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-PE3BLBDT.js";
|
|
6
6
|
import {
|
|
7
7
|
setTurnFailureStepSink
|
|
8
8
|
} from "./chunk-NK63ZTSD.js";
|
|
@@ -168,4 +168,4 @@ export {
|
|
|
168
168
|
createTurnFailureJourney,
|
|
169
169
|
turnFailureJourney
|
|
170
170
|
};
|
|
171
|
-
//# sourceMappingURL=chunk-
|
|
171
|
+
//# sourceMappingURL=chunk-VGUHAHHV.js.map
|
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
useDuplicateSite
|
|
4
|
-
} from "./chunk-HDHK3SXK.js";
|
|
5
2
|
import {
|
|
6
3
|
ARTIFACT_ACCESS_REQUIRED
|
|
7
4
|
} from "./chunk-4AYHOWII.js";
|
|
5
|
+
import {
|
|
6
|
+
useDuplicateSite
|
|
7
|
+
} from "./chunk-EU6RLHMP.js";
|
|
8
8
|
import {
|
|
9
9
|
artifactExtension,
|
|
10
10
|
readArtifactView,
|
|
11
11
|
rememberArtifactView
|
|
12
12
|
} from "./chunk-KV6VVKG5.js";
|
|
13
|
+
import {
|
|
14
|
+
FILE_AUDIENCE_COPY,
|
|
15
|
+
useArtifactAudience
|
|
16
|
+
} from "./chunk-EEERTLFF.js";
|
|
13
17
|
import {
|
|
14
18
|
ArtifactKindTile,
|
|
15
19
|
ArtifactTypeIcon
|
|
16
20
|
} from "./chunk-IBTXYLBW.js";
|
|
17
|
-
import {
|
|
18
|
-
FILE_AUDIENCE_COPY,
|
|
19
|
-
useArtifactAudience
|
|
20
|
-
} from "./chunk-2RA6XABP.js";
|
|
21
21
|
import {
|
|
22
22
|
invalidateArtifactCatalog
|
|
23
23
|
} from "./chunk-65KPI56R.js";
|
|
24
|
-
import {
|
|
25
|
-
ListRow,
|
|
26
|
-
ListRowSkeleton,
|
|
27
|
-
RowList
|
|
28
|
-
} from "./chunk-NQCMS4AJ.js";
|
|
29
24
|
import {
|
|
30
25
|
Toolbar,
|
|
31
26
|
ToolbarFilterChips,
|
|
32
27
|
ToolbarFilterMenu,
|
|
33
28
|
ToolbarGroup,
|
|
34
29
|
ToolbarSearch
|
|
35
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-BBWKPNJB.js";
|
|
31
|
+
import {
|
|
32
|
+
ListRow,
|
|
33
|
+
ListRowSkeleton,
|
|
34
|
+
RowList
|
|
35
|
+
} from "./chunk-JQCGPTZ6.js";
|
|
36
36
|
import {
|
|
37
37
|
artifactKey,
|
|
38
38
|
artifactKindLabel,
|
|
@@ -44,28 +44,26 @@ import {
|
|
|
44
44
|
import {
|
|
45
45
|
cn
|
|
46
46
|
} from "./chunk-A3MTTRCX.js";
|
|
47
|
-
import {
|
|
48
|
-
EmptyState,
|
|
49
|
-
EmptyStateLink
|
|
50
|
-
} from "./chunk-5CIUQX6D.js";
|
|
51
|
-
import {
|
|
52
|
-
StatusBadge
|
|
53
|
-
} from "./chunk-EPCPGUIF.js";
|
|
54
47
|
import {
|
|
55
48
|
MetaChip
|
|
56
49
|
} from "./chunk-SS3N75VI.js";
|
|
57
50
|
import {
|
|
58
51
|
SegmentedControl
|
|
59
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-325C2TCI.js";
|
|
60
53
|
import {
|
|
61
|
-
|
|
62
|
-
|
|
54
|
+
DropdownMenu,
|
|
55
|
+
DropdownMenuContent,
|
|
56
|
+
DropdownMenuItem,
|
|
57
|
+
DropdownMenuSeparator,
|
|
58
|
+
DropdownMenuTrigger
|
|
59
|
+
} from "./chunk-TREHTIBD.js";
|
|
63
60
|
import {
|
|
64
|
-
|
|
65
|
-
|
|
61
|
+
EmptyState,
|
|
62
|
+
EmptyStateLink
|
|
63
|
+
} from "./chunk-5CIUQX6D.js";
|
|
66
64
|
import {
|
|
67
|
-
|
|
68
|
-
} from "./chunk-
|
|
65
|
+
StatusBadge
|
|
66
|
+
} from "./chunk-EPCPGUIF.js";
|
|
69
67
|
import {
|
|
70
68
|
toast
|
|
71
69
|
} from "./chunk-YG6NARQY.js";
|
|
@@ -75,29 +73,31 @@ import {
|
|
|
75
73
|
useStringifySearch
|
|
76
74
|
} from "./chunk-MYNUBDU7.js";
|
|
77
75
|
import {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
hasWorkspacePermission
|
|
77
|
+
} from "./chunk-OWQBERKV.js";
|
|
78
|
+
import {
|
|
79
|
+
isPersonalWorkspace
|
|
80
|
+
} from "./chunk-74JEZLLQ.js";
|
|
82
81
|
import {
|
|
83
82
|
useAppContext
|
|
84
83
|
} from "./chunk-W6KAUGXO.js";
|
|
85
|
-
import {
|
|
86
|
-
Skeleton
|
|
87
|
-
} from "./chunk-HY7EYWIG.js";
|
|
88
84
|
import {
|
|
89
85
|
RelativeTime
|
|
90
86
|
} from "./chunk-XG57V2BN.js";
|
|
87
|
+
import {
|
|
88
|
+
Notice
|
|
89
|
+
} from "./chunk-WLEDGIVS.js";
|
|
91
90
|
import {
|
|
92
91
|
Button
|
|
93
92
|
} from "./chunk-HMU5IELG.js";
|
|
94
93
|
import {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
94
|
+
Skeleton
|
|
95
|
+
} from "./chunk-HY7EYWIG.js";
|
|
96
|
+
import {
|
|
97
|
+
apiErrorAdvice,
|
|
98
|
+
isPermissionDenied,
|
|
99
|
+
userErrorText
|
|
100
|
+
} from "./chunk-L4OF77LE.js";
|
|
101
101
|
|
|
102
102
|
// src/app/components/artifacts/artifact-library.tsx
|
|
103
103
|
import {
|
|
@@ -820,4 +820,4 @@ export {
|
|
|
820
820
|
ArtifactCard,
|
|
821
821
|
ArtifactLibrary
|
|
822
822
|
};
|
|
823
|
-
//# sourceMappingURL=chunk-
|
|
823
|
+
//# sourceMappingURL=chunk-VIBPFVU4.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import {
|
|
3
|
+
toast
|
|
4
|
+
} from "./chunk-YG6NARQY.js";
|
|
2
5
|
import {
|
|
3
6
|
hasWorkspacePermission,
|
|
4
7
|
isWorkspacePermissionDenied
|
|
5
8
|
} from "./chunk-OWQBERKV.js";
|
|
6
9
|
import {
|
|
7
|
-
|
|
8
|
-
} from "./chunk-
|
|
10
|
+
useAppContext
|
|
11
|
+
} from "./chunk-W6KAUGXO.js";
|
|
9
12
|
import {
|
|
10
13
|
userErrorText
|
|
11
14
|
} from "./chunk-L4OF77LE.js";
|
|
12
|
-
import {
|
|
13
|
-
useAppContext
|
|
14
|
-
} from "./chunk-W6KAUGXO.js";
|
|
15
15
|
|
|
16
16
|
// src/app/components/capabilities/use-capabilities-catalog.tsx
|
|
17
17
|
import { useRef, useState } from "react";
|
|
@@ -193,4 +193,4 @@ function useCapabilitiesCatalog(workspaceId) {
|
|
|
193
193
|
export {
|
|
194
194
|
useCapabilitiesCatalog
|
|
195
195
|
};
|
|
196
|
-
//# sourceMappingURL=chunk-
|
|
196
|
+
//# sourceMappingURL=chunk-VMAC66JX.js.map
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
editableArtifactStatusLabel,
|
|
9
9
|
useArtifactSubmissions,
|
|
10
10
|
useEditableArtifactView
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-V6HZ2HJZ.js";
|
|
12
12
|
import {
|
|
13
13
|
cn
|
|
14
14
|
} from "./chunk-TXS65BB2.js";
|
|
15
15
|
import {
|
|
16
16
|
useOpenGeniText
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-F2YABPRJ.js";
|
|
18
18
|
|
|
19
19
|
// src/components/artifacts/spreadsheet-grid.tsx
|
|
20
20
|
import { PlusIcon } from "lucide-react";
|
|
@@ -3848,4 +3848,4 @@ export {
|
|
|
3848
3848
|
EditableSpreadsheetGrid,
|
|
3849
3849
|
EditableSpreadsheetArtifactSurface
|
|
3850
3850
|
};
|
|
3851
|
-
//# sourceMappingURL=chunk-
|
|
3851
|
+
//# sourceMappingURL=chunk-VRPNETPK.js.map
|
|
@@ -12,12 +12,12 @@ import {
|
|
|
12
12
|
} from "./chunk-MOMM26UR.js";
|
|
13
13
|
import {
|
|
14
14
|
RowButton
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-2LUBBDZV.js";
|
|
16
16
|
import {
|
|
17
17
|
ListRow,
|
|
18
18
|
ListRowSkeleton,
|
|
19
19
|
RowList
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-JQCGPTZ6.js";
|
|
21
21
|
import {
|
|
22
22
|
clearGitHubInstallRequest,
|
|
23
23
|
readGitHubInstallRequest,
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
} from "./chunk-PVNI2KHS.js";
|
|
26
26
|
import {
|
|
27
27
|
capabilityLogoSource
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-3F5ZPIWI.js";
|
|
29
29
|
import {
|
|
30
30
|
cn
|
|
31
31
|
} from "./chunk-A3MTTRCX.js";
|
|
@@ -35,33 +35,33 @@ import {
|
|
|
35
35
|
import {
|
|
36
36
|
LogoTile
|
|
37
37
|
} from "./chunk-FQQEZUSN.js";
|
|
38
|
-
import {
|
|
39
|
-
Notice
|
|
40
|
-
} from "./chunk-WLEDGIVS.js";
|
|
41
38
|
import {
|
|
42
39
|
repositoryDisplayName
|
|
43
40
|
} from "./chunk-L6Y4ALSM.js";
|
|
41
|
+
import {
|
|
42
|
+
usePage
|
|
43
|
+
} from "./chunk-MYNUBDU7.js";
|
|
44
44
|
import {
|
|
45
45
|
hasWorkspacePermission
|
|
46
46
|
} from "./chunk-OWQBERKV.js";
|
|
47
47
|
import {
|
|
48
48
|
isPersonalWorkspace
|
|
49
49
|
} from "./chunk-74JEZLLQ.js";
|
|
50
|
-
import {
|
|
51
|
-
usePage
|
|
52
|
-
} from "./chunk-MYNUBDU7.js";
|
|
53
|
-
import {
|
|
54
|
-
userErrorText
|
|
55
|
-
} from "./chunk-L4OF77LE.js";
|
|
56
50
|
import {
|
|
57
51
|
useAppContext
|
|
58
52
|
} from "./chunk-W6KAUGXO.js";
|
|
53
|
+
import {
|
|
54
|
+
Notice
|
|
55
|
+
} from "./chunk-WLEDGIVS.js";
|
|
59
56
|
import {
|
|
60
57
|
Button
|
|
61
58
|
} from "./chunk-HMU5IELG.js";
|
|
59
|
+
import {
|
|
60
|
+
userErrorText
|
|
61
|
+
} from "./chunk-L4OF77LE.js";
|
|
62
62
|
import {
|
|
63
63
|
SessionCapabilityFrame
|
|
64
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-57SYK776.js";
|
|
65
65
|
|
|
66
66
|
// src/app/components/capabilities/session-github-card.tsx
|
|
67
67
|
import { ArrowUpRightIcon, BookMarkedIcon, CheckIcon, Loader2Icon, LockIcon } from "lucide-react";
|
|
@@ -740,4 +740,4 @@ function repositoryGroups(rows, accountLabel) {
|
|
|
740
740
|
export {
|
|
741
741
|
SessionGitHubCapabilityCard
|
|
742
742
|
};
|
|
743
|
-
//# sourceMappingURL=chunk-
|
|
743
|
+
//# sourceMappingURL=chunk-WCHW4XN7.js.map
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
} from "./chunk-M77ZQE5T.js";
|
|
5
5
|
import {
|
|
6
6
|
SubscriptionAccountMenu
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-3SMJ2BIQ.js";
|
|
8
8
|
import {
|
|
9
9
|
BillingClassMark
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HEFE4OZJ.js";
|
|
11
11
|
import {
|
|
12
12
|
useSessionModelAccount
|
|
13
13
|
} from "./chunk-DT7BORXG.js";
|
|
@@ -129,4 +129,4 @@ function ModelAccountIndicator({
|
|
|
129
129
|
export {
|
|
130
130
|
ModelAccountIndicator
|
|
131
131
|
};
|
|
132
|
-
//# sourceMappingURL=chunk-
|
|
132
|
+
//# sourceMappingURL=chunk-WD3UXNJV.js.map
|