@opengeni/react 6.7.0 → 6.7.1-canary.41759707569001
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 +9 -9
- package/dist/app/components/Composer.js +19 -19
- package/dist/app/components/agent/agent-capability-picker.js +6 -6
- package/dist/app/components/artifacts/artifact-browse-controls.js +2 -2
- package/dist/app/components/artifacts/artifact-library.js +13 -13
- package/dist/app/components/artifacts/artifact-viewer.js +21 -21
- package/dist/app/components/artifacts/chat-interactive-block.js +14 -14
- package/dist/app/components/artifacts/copy-artifact-link.js +2 -2
- package/dist/app/components/artifacts/file-reach-dialog.js +7 -7
- package/dist/app/components/artifacts/inline-chat-image.js +22 -22
- package/dist/app/components/artifacts/retained-file-preview.js +23 -23
- package/dist/app/components/artifacts/retained-text-preview.js +3 -3
- package/dist/app/components/artifacts/site-actions.d.ts +43 -0
- package/dist/app/components/artifacts/site-actions.js +38 -0
- package/dist/app/components/artifacts/site-audience.js +5 -5
- package/dist/app/components/artifacts/site-conversations.js +13 -13
- package/dist/app/components/artifacts/site-data.js +14 -14
- package/dist/app/components/artifacts/site-publishing-page.js +31 -31
- package/dist/app/components/artifacts/site-publishing.js +25 -25
- package/dist/app/components/artifacts/site-settings.js +30 -30
- package/dist/app/components/artifacts/site-version-menu.js +3 -3
- package/dist/app/components/billing-class-mark.js +3 -3
- package/dist/app/components/bots/bot-launch-strip.js +23 -23
- package/dist/app/components/bots/bot-template-dialog.js +30 -30
- package/dist/app/components/bots/bot-template-shortcuts.js +23 -23
- package/dist/app/components/bots/bot-templates-page.js +37 -37
- package/dist/app/components/capabilities/capability-detail-sheet.js +9 -9
- package/dist/app/components/capabilities/capability-logo-source.js +15 -16
- package/dist/app/components/capabilities/connection-ownership-selector.js +4 -4
- package/dist/app/components/capabilities/connector-tool-permissions.js +4 -4
- package/dist/app/components/capabilities/detail-dialog.js +3 -3
- package/dist/app/components/capabilities/native-connect-setup.js +17 -18
- package/dist/app/components/capabilities/native-connect-setup.js.map +1 -1
- package/dist/app/components/capabilities/own-logins-shared-heads-up.js +3 -3
- package/dist/app/components/capabilities/prepared-mcp-setup-card.js +17 -18
- package/dist/app/components/capabilities/session-capability-card.js +55 -56
- package/dist/app/components/capabilities/session-capability-card.js.map +1 -1
- package/dist/app/components/capabilities/session-chrome-card.js +24 -25
- package/dist/app/components/capabilities/session-custom-mcp-card.js +18 -19
- package/dist/app/components/capabilities/session-github-card.js +18 -19
- package/dist/app/components/capabilities/session-machine-card.js +23 -24
- package/dist/app/components/capabilities/session-personal-github-card.js +16 -17
- package/dist/app/components/capabilities/session-plugin-card.js +9 -10
- package/dist/app/components/capabilities/use-connection-accounts.js +2 -2
- package/dist/app/components/command-menu/chat-status.js +19 -19
- package/dist/app/components/command-menu/chat-switcher.js +35 -35
- package/dist/app/components/command-menu/command-menu.js +42 -42
- package/dist/app/components/command-menu/shortcut-sheet.js +11 -11
- package/dist/app/components/composer-capabilities-menu-body.js +4 -4
- package/dist/app/components/composer-mobile-plus-panel.js +10 -10
- 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 +4 -4
- package/dist/app/components/credits/checkout-credits-celebration.js +3 -3
- package/dist/app/components/credits/checkout-return.js +3 -3
- package/dist/app/components/credits/credit-refusal-notice.js +2 -2
- package/dist/app/components/desktop/app-shots.js +6 -6
- package/dist/app/components/desktop/computer-use.js +2 -2
- package/dist/app/components/desktop/this-computer.js +5 -5
- package/dist/app/components/feedback.js +5 -5
- package/dist/app/components/github-app-connect-launcher.js +1 -1
- package/dist/app/components/machines/connect-machine-dialog.js +14 -14
- package/dist/app/components/markdown.js +7 -7
- package/dist/app/components/models/models-ui.js +6 -6
- package/dist/app/components/my-things.js +6 -6
- package/dist/app/components/own-where-it-works.js +5 -5
- package/dist/app/components/personal-resource-attachment-surface.js +4 -4
- package/dist/app/components/pickers.js +5 -5
- package/dist/app/components/rail/channel-create-dialog.js +5 -5
- package/dist/app/components/rail/project-glyph.js +23 -23
- package/dist/app/components/rail/project-profile.js +32 -32
- package/dist/app/components/rail/rail-context.js +1 -1
- package/dist/app/components/rail/rail-sections.js +69 -60
- package/dist/app/components/rail/session-header.js +54 -53
- package/dist/app/components/rail/session-list.js +67 -58
- package/dist/app/components/rail/session-row-content.js +4 -4
- package/dist/app/components/rail/session-row-hover-details.js +18 -18
- package/dist/app/components/rail/session-shell.js +86 -77
- package/dist/app/components/rail/site-session-group-heading.js +29 -12
- package/dist/app/components/session/agent-configuration-panel.js +14 -14
- package/dist/app/components/session/artifact-session-page.js +5 -5
- package/dist/app/components/session/banners.js +9 -9
- package/dist/app/components/session/console-new-conversation.js +42 -43
- package/dist/app/components/session/descendant-requests.js +38 -39
- package/dist/app/components/session/descendant-requests.js.map +1 -1
- package/dist/app/components/session/editable-artifacts-workspace.js +27 -27
- package/dist/app/components/session/failed-session-banner.js +9 -9
- package/dist/app/components/session/failure-recovery-boundary.js +3 -3
- package/dist/app/components/session/human-input-delegation-record.js +2 -2
- package/dist/app/components/session/human-input.js +36 -37
- package/dist/app/components/session/inspector.js +45 -46
- 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 +13 -13
- package/dist/app/components/session/model-recovery-notice.js +3 -3
- package/dist/app/components/session/new-session-settings-menu.js +6 -6
- package/dist/app/components/session/new-session-setup-strip.js +24 -24
- package/dist/app/components/session/sandbox-recovery-actions.js +5 -5
- package/dist/app/components/session/sandbox-switcher.js +8 -8
- package/dist/app/components/session/sandbox-workspace.js +52 -53
- package/dist/app/components/session/search-markdown-highlight.js +8 -8
- package/dist/app/components/session/search-results-view.js +9 -9
- package/dist/app/components/session/session-admin-access.js +5 -5
- package/dist/app/components/session/session-admission-notice.js +4 -4
- package/dist/app/components/session/session-avatar-picker.js +24 -24
- package/dist/app/components/session/session-avatar.js +22 -22
- package/dist/app/components/session/session-machine-access-notice.js +4 -4
- package/dist/app/components/session/session-profile-dialog.js +29 -29
- package/dist/app/components/session/session-profile-editor.js +30 -30
- package/dist/app/components/session/session-retention.js +3 -3
- package/dist/app/components/session/session-search-dialog.js +11 -11
- package/dist/app/components/session/session-tenancy-control.js +4 -4
- package/dist/app/components/session/session-usage-limit-section.js +4 -4
- package/dist/app/components/session/share-chat-dialog.js +7 -7
- package/dist/app/components/session/subagents.js +12 -12
- package/dist/app/components/session/subscription-account-indicator.js +6 -6
- package/dist/app/components/settings/row-select.js +4 -4
- package/dist/app/components/transcription-settings.js +6 -6
- package/dist/app/components/ui/destructive-confirm.js +7 -7
- package/dist/app/components/usage/usage-entry.js +3 -3
- package/dist/app/components/window-bar.d.ts +3 -1
- package/dist/app/components/window-bar.js +13 -11
- package/dist/app/components/workspace-composer-plus.js +20 -21
- package/dist/app/components/workspace-reach.js +4 -4
- package/dist/app/embed/session-app.js +168 -162
- package/dist/app/lib/actions/actions-provider.js +9 -9
- package/dist/app/lib/agent-capabilities.js +3 -3
- package/dist/app/lib/codex-usage-query.js +2 -2
- package/dist/app/lib/composer-connectors.js +16 -17
- package/dist/app/lib/composer-send-blocking.d.ts +135 -1
- package/dist/app/lib/composer-send-blocking.js +30 -3
- package/dist/app/lib/console-site.js +2 -2
- package/dist/app/lib/console-text.js +2 -2
- package/dist/app/lib/copy-link.d.ts +2 -0
- package/dist/app/lib/events.js +15 -15
- package/dist/app/lib/failed-session-copy.js +4 -4
- package/dist/app/lib/model-access-onboarding.js +3 -3
- package/dist/app/lib/model-access.js +2 -2
- package/dist/app/lib/move-chat-to-machine.js +3 -3
- package/dist/app/lib/session-branch-cache.js +12 -12
- package/dist/app/lib/session-composer-readiness.d.ts +2 -2
- package/dist/app/lib/session-create.js +4 -4
- package/dist/app/lib/session-group-pagination.js +12 -12
- package/dist/app/lib/session-hover-facts.js +17 -17
- package/dist/app/lib/session-model.js +2 -2
- package/dist/app/lib/session-rail.js +9 -9
- package/dist/app/lib/session-rename.js +3 -3
- package/dist/app/lib/sessions-group.js +11 -11
- package/dist/app/lib/site-sidebar-bridge.d.ts +24 -0
- package/dist/app/lib/site-tool-consent-dialog.js +10 -11
- package/dist/app/lib/site-tool-consent-dialog.js.map +1 -1
- package/dist/app/lib/site-tool-consent.js +1 -1
- package/dist/app/lib/turn-failure-analytics.js +5 -5
- package/dist/app/lib/use-follow-up-repositories.js +5 -5
- package/dist/app/lib/use-workspace-machines.js +5 -5
- package/dist/app/lib/use-workspace-model-catalog.js +3 -3
- package/dist/app/lib/use-workspace-rigs.js +2 -2
- package/dist/app/lib/workspace-navigation-preference.js +4 -4
- package/dist/app/lib/workspace-scope-context.js +3 -3
- package/dist/app/routes/artifacts.js +70 -70
- package/dist/app/routes/retained-artifact.js +50 -50
- package/dist/app/routes/session.js +98 -99
- package/dist/app/routes/sessions-index-hydration.js +5 -5
- package/dist/app/routes/sessions-index.js +85 -85
- package/dist/app/routes/site-view.js +174 -82
- package/dist/app/routes/site-view.js.map +1 -1
- 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 +13 -13
- package/dist/automations.js +12 -12
- package/dist/{browser-viewer-TC27OCIP.js → browser-viewer-ZHQDVHZ2.js} +5 -5
- package/dist/{chat-interactive-block-RWPQBHVS.js → chat-interactive-block-VSDD6X3M.js} +5 -5
- package/dist/{chunk-5MOJZORA.js → chunk-2EA4IRIP.js} +34 -3
- package/dist/chunk-2EA4IRIP.js.map +1 -0
- package/dist/{chunk-C43KRXGA.js → chunk-2GCHGWNE.js} +3 -3
- package/dist/{chunk-XLH7QY2R.js → chunk-2J77TWGH.js} +3 -3
- package/dist/{chunk-Q3DPEYX4.js → chunk-2LMJXRXK.js} +7 -7
- package/dist/{chunk-77WAKEAH.js → chunk-2OXSB2OL.js} +2 -2
- package/dist/{chunk-H3T7IWNA.js → chunk-2VJOSU4H.js} +2 -2
- package/dist/{chunk-IMDQUHBJ.js → chunk-2ZAQA5GE.js} +6 -6
- package/dist/{chunk-L7YTNTIK.js → chunk-3CDJSKDW.js} +3 -3
- package/dist/{chunk-EWSOC6WF.js → chunk-3DRLCX5V.js} +2 -2
- package/dist/{chunk-JEUPAVYY.js → chunk-3L465FBR.js} +6 -6
- package/dist/{chunk-4SAWSRAA.js → chunk-3LTSLMVL.js} +5 -5
- package/dist/{chunk-5NWEKLDZ.js → chunk-3NNAC43A.js} +2 -2
- package/dist/{chunk-EDI6SJ2N.js → chunk-3OK7Y6ES.js} +2 -2
- package/dist/{chunk-AWKES45Y.js → chunk-3PM3M2Q6.js} +2 -2
- package/dist/{chunk-I7XIZRFD.js → chunk-3PZ3LRPV.js} +3 -3
- package/dist/{chunk-6BCXNDEI.js → chunk-3RGLQG6S.js} +69 -55
- package/dist/chunk-3RGLQG6S.js.map +1 -0
- package/dist/{chunk-2M3J7ZWQ.js → chunk-467WDSOK.js} +2 -2
- package/dist/{chunk-UTIAXH52.js → chunk-477DTTMH.js} +3 -3
- package/dist/{chunk-J5F5HPPW.js → chunk-4BWMAGJJ.js} +3 -3
- package/dist/{chunk-YSJEAAOL.js → chunk-4F3AEJI6.js} +4 -4
- package/dist/{chunk-LHPNABDH.js → chunk-4JXPLTWV.js} +2 -2
- package/dist/{chunk-NUNZS36W.js → chunk-4O2XWOLZ.js} +3 -3
- package/dist/{chunk-BHNSJVBC.js → chunk-4OTNYMJH.js} +5 -5
- package/dist/{chunk-2Z3NQNTM.js → chunk-4POXUODO.js} +15 -15
- package/dist/{chunk-QB2KMIDP.js → chunk-4SJAEPM2.js} +2 -2
- package/dist/{chunk-TAT5USZN.js → chunk-4T3NE262.js} +3 -3
- package/dist/{chunk-6JHU2UBS.js → chunk-4Z5X7PLC.js} +3 -3
- package/dist/{chunk-2STUPWEL.js → chunk-54U6ZBEX.js} +3 -3
- package/dist/{chunk-XXSOHN35.js → chunk-5FLYHX5R.js} +2 -2
- package/dist/{chunk-MIYFS2XN.js → chunk-5MHMCE2G.js} +3 -3
- package/dist/{chunk-YWVI6ZMK.js → chunk-5MIBQ4P5.js} +2 -2
- package/dist/{chunk-HAX4LCR5.js → chunk-5TKTWXAU.js} +3 -3
- package/dist/chunk-6B73WNLR.js +173 -0
- package/dist/chunk-6B73WNLR.js.map +1 -0
- package/dist/{chunk-F2OPHAUN.js → chunk-6HRYJERP.js} +5 -5
- package/dist/{chunk-5O2FCCHZ.js → chunk-6JGB4XGH.js} +3 -3
- package/dist/{chunk-RPVREAU7.js → chunk-736RUNIA.js} +4 -4
- package/dist/{chunk-2KALVELR.js → chunk-74CBR5YE.js} +3 -3
- package/dist/{chunk-5IE76VCY.js → chunk-752WXSDN.js} +2 -2
- package/dist/{chunk-SEO7TICN.js → chunk-76MC7KOE.js} +1 -1
- package/dist/{chunk-OPJJSKUK.js → chunk-77B6UCNK.js} +6 -6
- package/dist/{chunk-ZUA3JMI6.js → chunk-77SYIH6O.js} +2 -2
- package/dist/{chunk-ILDXWY37.js → chunk-7AI4E7PV.js} +2 -2
- package/dist/{chunk-7X6SDK2C.js → chunk-7HESG3ET.js} +3 -3
- package/dist/{chunk-2RG7NIAS.js → chunk-7MY3XB6I.js} +7 -7
- package/dist/{chunk-C372BFOV.js → chunk-7NLF35YL.js} +4 -4
- package/dist/{chunk-IFB3WJ36.js → chunk-7YTR3UFO.js} +4 -4
- package/dist/{chunk-BMICEQZQ.js → chunk-7Z76QP64.js} +3 -3
- package/dist/{chunk-YWIFM7D7.js → chunk-AAS7OWV6.js} +3 -3
- package/dist/{chunk-5QAY6K77.js → chunk-AB5IW227.js} +3 -3
- package/dist/{chunk-ZBIXBQNI.js → chunk-ABJZDRW2.js} +2 -2
- package/dist/{chunk-4DVJ6ONS.js → chunk-AH3DGOTK.js} +2 -2
- package/dist/{chunk-HGKTHF2U.js → chunk-AJBDAVX3.js} +8 -8
- package/dist/{chunk-HD5X76TP.js → chunk-AQQT2FIC.js} +5 -5
- package/dist/chunk-AQQT2FIC.js.map +1 -0
- package/dist/{chunk-SC6RRD2D.js → chunk-ARTEEI2E.js} +11 -2
- package/dist/{chunk-SC6RRD2D.js.map → chunk-ARTEEI2E.js.map} +1 -1
- package/dist/{chunk-IXPTECSC.js → chunk-AVXDIRRW.js} +2 -2
- package/dist/{chunk-QK5EFEUT.js → chunk-BASI553K.js} +4 -4
- package/dist/{chunk-AW2MQB37.js → chunk-BD5FMBO4.js} +2 -2
- package/dist/{chunk-CRU35QQH.js → chunk-BFFNINCC.js} +108 -66
- package/dist/chunk-BFFNINCC.js.map +1 -0
- package/dist/{chunk-OVKYVZMW.js → chunk-BIHGCQXA.js} +2 -2
- package/dist/{chunk-Z4FMAFNH.js → chunk-BQYRZIZ7.js} +2 -2
- package/dist/{chunk-DZWARC4M.js → chunk-BWMIWRUK.js} +3 -3
- package/dist/{chunk-Y4OBB2VN.js → chunk-CV4VVLPZ.js} +2 -2
- package/dist/{chunk-JQL7ZH6C.js → chunk-CXAN2FHF.js} +7 -7
- package/dist/{chunk-3PZ7JZI2.js → chunk-D3PTVN2I.js} +2 -2
- package/dist/{chunk-FPXASDG5.js → chunk-D5TIVCXG.js} +2 -2
- package/dist/{chunk-7W37NS3I.js → chunk-D74Z2N4K.js} +2 -2
- package/dist/{chunk-MNZG4OHU.js → chunk-DCEQCGVN.js} +2 -2
- package/dist/{chunk-ND2BXV3P.js → chunk-DEHLWZSI.js} +4 -4
- package/dist/{chunk-ZTPXACWB.js → chunk-DHIGEK6P.js} +6 -6
- package/dist/{chunk-2YUOVM3G.js → chunk-DIP7YALH.js} +2 -2
- package/dist/{chunk-6PZ7OBYU.js → chunk-DLVIRJGK.js} +4 -4
- package/dist/{chunk-KLEUWIMZ.js → chunk-DQPIEQGP.js} +2 -2
- package/dist/{chunk-T2QX3FDP.js → chunk-DWJ6J3YW.js} +4 -4
- package/dist/{chunk-3CPWWGNK.js → chunk-E5KOWRDU.js} +2 -2
- package/dist/{chunk-6WGRDRMA.js → chunk-EBIVTDEG.js} +2 -2
- package/dist/{chunk-5CPEEAFD.js → chunk-EDDKPIIV.js} +2 -2
- package/dist/{chunk-TX3VECZU.js → chunk-EGKARC53.js} +2 -2
- package/dist/{chunk-JEA3QDX7.js → chunk-EKJHOWTZ.js} +4 -4
- package/dist/{chunk-UVN5TMHU.js → chunk-ESXAECZ3.js} +2 -2
- package/dist/{chunk-3SOIESJM.js → chunk-EWZ2RLNG.js} +2 -2
- package/dist/{chunk-ORJPS5VN.js → chunk-F4GCGN7J.js} +91 -31
- package/dist/chunk-F4GCGN7J.js.map +1 -0
- package/dist/{chunk-NW53H5RW.js → chunk-F7GARVTE.js} +160 -59
- package/dist/chunk-F7GARVTE.js.map +1 -0
- package/dist/{chunk-CMKGILJK.js → chunk-FBA2NXYH.js} +4 -4
- package/dist/{chunk-O6N4ABCA.js → chunk-FER6EVIY.js} +2 -2
- package/dist/{chunk-DF5EAHDN.js → chunk-FLWQJDJ5.js} +5 -5
- package/dist/{chunk-PTAG4PDC.js → chunk-FNXCFIPW.js} +2 -2
- package/dist/chunk-FPSS23S4.js +36 -0
- package/dist/chunk-FPSS23S4.js.map +1 -0
- package/dist/{chunk-BJEJFISW.js → chunk-FSDQQQIA.js} +3 -3
- package/dist/{chunk-FVXBNBHO.js → chunk-FTIC5VXR.js} +6 -6
- package/dist/{chunk-PTF5B7TJ.js → chunk-G5UQBTXY.js} +2 -2
- package/dist/{chunk-4E3ZJRTZ.js → chunk-G6ICCGJ3.js} +2 -2
- package/dist/{chunk-5YKW2K6I.js → chunk-GB5SOTIB.js} +12 -12
- package/dist/{chunk-NRTE7DNV.js → chunk-GIWFLWXG.js} +4 -4
- package/dist/{chunk-MM4FNWI4.js → chunk-GMHIOYB7.js} +4 -4
- package/dist/{chunk-6DK6Z4UN.js → chunk-GOCODNQS.js} +3 -3
- package/dist/{chunk-TPQTRNER.js → chunk-GSCGKJNK.js} +2 -2
- package/dist/{chunk-7VMZGLYI.js → chunk-GTHCHCWW.js} +3 -3
- package/dist/{chunk-SQJIKMN3.js → chunk-GTRAH4FG.js} +2 -2
- package/dist/{chunk-ZYAZUPPV.js → chunk-GU7T2S5N.js} +3 -3
- package/dist/{chunk-JKHKLL5W.js → chunk-H6BX6WOW.js} +3 -3
- package/dist/{chunk-IMZCQBOT.js → chunk-H6MJFMHZ.js} +3 -3
- package/dist/{chunk-HSOXMJOT.js → chunk-HEGV4QMS.js} +2 -2
- package/dist/{chunk-JDTGRRNU.js → chunk-HGS5KMZS.js} +45 -27
- package/dist/chunk-HGS5KMZS.js.map +1 -0
- package/dist/chunk-HROITVQJ.js +85 -0
- package/dist/chunk-HROITVQJ.js.map +1 -0
- package/dist/{chunk-OF4TIKYC.js → chunk-HTMQGS63.js} +17 -9
- package/dist/chunk-HTMQGS63.js.map +1 -0
- package/dist/{chunk-NC7PVOEK.js → chunk-HWVPLFIW.js} +2 -2
- package/dist/{chunk-ECJBYNLJ.js → chunk-ICAMYP5M.js} +2 -2
- package/dist/{chunk-DJAXC5OK.js → chunk-IFSXVU2S.js} +2 -2
- package/dist/{chunk-N6AACDUW.js → chunk-IHLRYWA7.js} +4 -4
- package/dist/{chunk-I4MRDSUF.js → chunk-IJR6VOLU.js} +3 -3
- package/dist/{chunk-YCVD6CI3.js → chunk-IN3VQFKS.js} +2 -2
- package/dist/{chunk-TXLIEOJX.js → chunk-IWKHF2FN.js} +106 -75
- package/dist/chunk-IWKHF2FN.js.map +1 -0
- package/dist/{chunk-MFROMEKA.js → chunk-J2BTILRR.js} +3 -3
- package/dist/{chunk-NCYMNCJO.js → chunk-J2WY42FA.js} +2 -2
- package/dist/{chunk-DGMR6JEJ.js → chunk-J4XSTXZP.js} +2 -2
- package/dist/{chunk-P77WNZDY.js → chunk-JMHEFZOB.js} +2 -2
- package/dist/{chunk-GVN5SZLX.js → chunk-JMI53ZMU.js} +3 -3
- package/dist/{chunk-IDANQPRH.js → chunk-JV3UI7BH.js} +3 -3
- package/dist/{chunk-XEQMZB3C.js → chunk-K4DQS2ML.js} +24 -6
- package/dist/chunk-K4DQS2ML.js.map +1 -0
- package/dist/{chunk-GKVJIDHF.js → chunk-KFNZZ2N6.js} +2 -2
- package/dist/{chunk-I4QEJ62Y.js → chunk-KI46GKMD.js} +7 -7
- package/dist/{chunk-SIRLACNZ.js → chunk-KO3OHHY2.js} +3 -3
- package/dist/{chunk-NULUNM7H.js → chunk-KUE5BOQE.js} +5 -5
- package/dist/{chunk-O3LKCBP5.js → chunk-LIJNVIT3.js} +3 -3
- package/dist/{chunk-JWB44UGJ.js → chunk-LIJPDVYP.js} +2 -2
- package/dist/{chunk-BJFH6JI5.js → chunk-LN4DJOMX.js} +13 -13
- package/dist/{chunk-KYS77RPN.js → chunk-LPKJ77EK.js} +2 -2
- package/dist/{chunk-RMFKVOM7.js → chunk-LQKVNREV.js} +4 -4
- package/dist/{chunk-E7XERZWC.js → chunk-LTJFV2JI.js} +2 -2
- package/dist/{chunk-INXGSG3J.js → chunk-LVDNY5RC.js} +2 -2
- package/dist/{chunk-2INLDVK3.js → chunk-LVELUUK6.js} +2 -2
- package/dist/{chunk-5EWSRZ2Y.js → chunk-M3HGBO2Y.js} +1 -1
- package/dist/{chunk-J3DY5HWQ.js → chunk-M5IQVMLR.js} +4 -4
- package/dist/{chunk-53AGXXZM.js → chunk-MKDFYE2E.js} +2 -2
- package/dist/{chunk-2I7HDP53.js → chunk-MT2R57SF.js} +2 -2
- package/dist/{chunk-Z7Y523PS.js → chunk-MV2CLIO6.js} +6 -6
- package/dist/{chunk-JZ4NLCAP.js → chunk-MZY3VKKM.js} +2 -2
- package/dist/{chunk-YENLNISG.js → chunk-N3FM4BNA.js} +2 -2
- package/dist/{chunk-RQKLF42C.js → chunk-NPGLNXYI.js} +4 -4
- package/dist/{chunk-I5QZJODL.js → chunk-NQ2CPQJF.js} +3 -3
- package/dist/{chunk-6DVCC7QS.js → chunk-OBGOLHCP.js} +164 -43
- package/dist/chunk-OBGOLHCP.js.map +1 -0
- package/dist/{chunk-CUIWCGMA.js → chunk-OCXEY7HE.js} +2 -2
- package/dist/{chunk-KRDR5RJD.js → chunk-OGU73VUN.js} +2 -2
- package/dist/{chunk-YIRVLKAX.js → chunk-OI6VI6SU.js} +9 -9
- package/dist/{chunk-X6KAJI3V.js → chunk-OK7BQMCI.js} +9 -9
- package/dist/chunk-OP2GD6QW.js +166 -0
- package/dist/chunk-OP2GD6QW.js.map +1 -0
- package/dist/{chunk-TUIN4MB7.js → chunk-ORV7EFSL.js} +4 -4
- package/dist/{chunk-3IK6UYO6.js → chunk-OTW25A6I.js} +3 -3
- package/dist/{chunk-NPGISCU6.js → chunk-OWET7EY2.js} +16 -16
- package/dist/{chunk-3ED2U6XE.js → chunk-OYCK4JRS.js} +2 -2
- package/dist/{chunk-YQXTDZSU.js → chunk-OYOFPNLC.js} +4 -4
- package/dist/{chunk-4NQHXYMW.js → chunk-PD7NWM7V.js} +2 -2
- package/dist/{chunk-4YCA2Y73.js → chunk-PF2WU2IL.js} +3 -3
- package/dist/{chunk-Z654FWNU.js → chunk-PLYVGZIN.js} +2 -2
- package/dist/{chunk-MVW6HNPI.js → chunk-PRT4J2DL.js} +2 -2
- package/dist/{chunk-OPWCMA4D.js → chunk-PUUEI4W3.js} +6 -6
- package/dist/{chunk-RLBKLAEY.js → chunk-PVB4YVDP.js} +2 -2
- package/dist/{chunk-NXCMHIKI.js → chunk-PWUSSSSL.js} +2 -2
- package/dist/{chunk-MJUCFQMS.js → chunk-PYB4BFEC.js} +3 -3
- package/dist/{chunk-2FSBSCZJ.js → chunk-PZKHST7A.js} +2 -2
- package/dist/{chunk-QZAAUQRN.js → chunk-Q5EZNBPI.js} +3 -3
- package/dist/{chunk-ZHDFQITM.js → chunk-Q5K2J5GG.js} +2 -2
- package/dist/{chunk-DZXEDSQI.js → chunk-QKBFIJE7.js} +5 -5
- package/dist/{chunk-FZC5N55X.js → chunk-QL5NQ3JX.js} +8 -8
- package/dist/{chunk-7T2ZE3VT.js → chunk-QPQ7R77C.js} +8 -1
- package/dist/chunk-QPQ7R77C.js.map +1 -0
- package/dist/{chunk-OV6QJRT4.js → chunk-QRECBCJM.js} +2 -2
- package/dist/{chunk-3GZA4BUW.js → chunk-QURYQFDN.js} +2 -2
- package/dist/{chunk-I5B5L6Q4.js → chunk-QVZVUROX.js} +1 -1
- package/dist/{chunk-VS7AHPCZ.js → chunk-R33SBMB7.js} +3 -3
- package/dist/{chunk-KCBMFSMS.js → chunk-R4JA5JFI.js} +3 -3
- package/dist/{chunk-HC4JFZVU.js → chunk-R5QAL43H.js} +2 -2
- package/dist/{chunk-QPSGCC5D.js → chunk-RGR57NYY.js} +2 -2
- package/dist/{chunk-XWFAMUZQ.js → chunk-RHXYO4H2.js} +2 -2
- package/dist/{chunk-Y4BB2KS2.js → chunk-RISUROBM.js} +7 -7
- package/dist/{chunk-U3DN4HEY.js → chunk-RMCLFSMX.js} +2 -2
- package/dist/{chunk-YK7756IF.js → chunk-RTZANSSC.js} +3 -3
- package/dist/{chunk-ZEG4VPBL.js → chunk-S27VZ5DO.js} +6 -6
- package/dist/{chunk-54YW6SZZ.js → chunk-SBXSKRFA.js} +3 -3
- package/dist/{chunk-QIOQ2NPQ.js → chunk-SGH7I7OY.js} +2 -2
- package/dist/{chunk-K2A5PXQ5.js → chunk-SJYTQLN3.js} +3 -3
- package/dist/{chunk-X3MWB2QU.js → chunk-SN2WENRP.js} +3 -3
- package/dist/{chunk-OSY5K7L7.js → chunk-SP44O3OU.js} +2 -2
- package/dist/{chunk-OZCBM3UC.js → chunk-SSR4ZX52.js} +2 -2
- package/dist/{chunk-QCSJ4CWE.js → chunk-SXGJL7UT.js} +14 -14
- package/dist/{chunk-NC55IFN3.js → chunk-T67LTMSW.js} +10 -10
- package/dist/{chunk-AXHZYXUV.js → chunk-TDTD66BK.js} +2 -2
- package/dist/{chunk-NGJJJPZZ.js → chunk-TK5FWVZR.js} +3 -3
- package/dist/{chunk-YPWU5KPE.js → chunk-TKQL7EDB.js} +56 -19
- package/dist/chunk-TKQL7EDB.js.map +1 -0
- package/dist/{chunk-2OP6WLGV.js → chunk-TNSJFZ6Q.js} +4 -4
- package/dist/{chunk-O732GAFC.js → chunk-U4LTPFD2.js} +2 -2
- package/dist/{chunk-4DVNUCRR.js → chunk-U5UGM5XD.js} +6 -6
- package/dist/{chunk-UJK53QFL.js → chunk-UBRQ3PQD.js} +2 -2
- package/dist/{chunk-SODC7T6L.js → chunk-UMX6DZME.js} +2 -2
- package/dist/{chunk-YLS6QE5G.js → chunk-UO35OEOX.js} +4 -4
- package/dist/{chunk-VTTAJOQ7.js → chunk-UO3X52YM.js} +2 -2
- package/dist/{chunk-SHHJCL7X.js → chunk-UTRNLNCW.js} +3 -3
- package/dist/{chunk-HEFPPMBQ.js → chunk-UU5FBVRX.js} +2 -2
- package/dist/{chunk-GQXZPKK7.js → chunk-V6UOVHW3.js} +2 -2
- package/dist/{chunk-7TIX2UAR.js → chunk-VCJQQYRE.js} +4 -4
- package/dist/{chunk-6WD2INST.js → chunk-WDASYY4S.js} +7 -7
- package/dist/{chunk-DXBYWSL5.js → chunk-WIFDNUKD.js} +3 -3
- package/dist/{chunk-RT7CJMER.js → chunk-WIXHUBQN.js} +2 -2
- package/dist/{chunk-57AZS3IE.js → chunk-WRMUXZ7C.js} +3 -3
- package/dist/{chunk-CRAOSVHC.js → chunk-WSDBQSPP.js} +2 -2
- package/dist/{chunk-2CLNIEK4.js → chunk-WTSQUCHB.js} +3 -3
- package/dist/{chunk-MIHN76LX.js → chunk-WYGTAQMX.js} +3 -3
- package/dist/{chunk-GAVYGBFI.js → chunk-X2R73NGG.js} +2 -2
- package/dist/{chunk-T7OXJZCX.js → chunk-XOIDUM2H.js} +1 -1
- package/dist/{chunk-XHIQ5I6N.js → chunk-XVLEBB4Y.js} +2 -2
- package/dist/{chunk-T3OWFVMS.js → chunk-Y3XZEKDQ.js} +2 -2
- package/dist/{chunk-ROKQU7WG.js → chunk-YMI27QPF.js} +2 -2
- package/dist/{chunk-U7XM7CB4.js → chunk-YNTLWCF4.js} +4 -4
- package/dist/{chunk-ZQCND77P.js → chunk-YRYF76OE.js} +2 -2
- package/dist/{chunk-2BDT3UZQ.js → chunk-ZAX4XQLN.js} +3 -3
- package/dist/{chunk-DXR5PDFP.js → chunk-ZBHGNE2J.js} +3 -3
- package/dist/{chunk-KODELWYT.js → chunk-ZF6ZS77B.js} +3 -3
- package/dist/{chunk-KUDGXAF7.js → chunk-ZM5YP5NJ.js} +10 -10
- package/dist/{chunk-I7ITSXSJ.js → chunk-ZR5EKJT6.js} +2 -2
- package/dist/{chunk-IZXHMZQ6.js → chunk-ZW5YTIH3.js} +4 -4
- package/dist/components/artifacts/artifact-sandbox.d.ts +6 -1
- package/dist/components/artifacts/site-view.d.ts +4 -2
- package/dist/components/timeline-anchor.d.ts +8 -3
- package/dist/components/timeline-reading-progress.d.ts +1 -1
- package/dist/components/timeline-settlement.d.ts +1 -1
- package/dist/composer-messages.js +2 -2
- package/dist/composer.js +9 -9
- package/dist/{computer-viewer-TDDO25AV.js → computer-viewer-5LKRCEVQ.js} +5 -5
- package/dist/connect.js +14 -15
- package/dist/desktop-dictation.js +7 -7
- package/dist/desktop.js +2 -2
- package/dist/editor.js +2 -2
- package/dist/{embedded-new-voice-2G3VLPVQ.js → embedded-new-voice-GHJRY3YL.js} +5 -5
- package/dist/{embedded-voice-T5IWOWGD.js → embedded-voice-ASQXBSTX.js} +5 -5
- package/dist/{fleet-decision-row-WM64KXP3.js → fleet-decision-row-U7LDVBEM.js} +2 -2
- package/dist/in-chat-connect-model.js +6 -6
- package/dist/index.js +53 -54
- package/dist/interaction.js +6 -6
- package/dist/{latest-question-OX56OVQ5.js → latest-question-RNVF262Q.js} +5 -5
- package/dist/lib/format.d.ts +10 -0
- package/dist/machines.js +4 -4
- package/dist/meetings-recorder.js +1 -1
- package/dist/meetings.js +24 -24
- package/dist/messages/en.d.ts +7 -0
- package/dist/messages.js +1 -1
- package/dist/{model-policy-picker-menu-SMC6J6QN.js → model-policy-picker-menu-E6XKMFTA.js} +4 -4
- package/dist/{payment-page-card-G4U63KUV.js → payment-page-card-DJDKV2LW.js} +6 -5
- package/dist/{payment-page-card-G4U63KUV.js.map → payment-page-card-DJDKV2LW.js.map} +1 -1
- package/dist/{platform-activity-row-BUZGZAKZ.js → platform-activity-row-MSDCSMET.js} +17 -7
- package/dist/platform-activity-row-MSDCSMET.js.map +1 -0
- package/dist/{queue-surface-implementation-4KUZ4PJV.js → queue-surface-implementation-GUAIG6TK.js} +5 -5
- package/dist/realtime.js +4 -4
- package/dist/{recorder-host-WF2RRR56.js → recorder-host-2MYDJPQW.js} +4 -4
- package/dist/recordings.js +3 -3
- package/dist/{sandbox-files-ESDMOFSD.js → sandbox-files-W5W2LW4K.js} +6 -6
- package/dist/session-app.js +168 -162
- package/dist/{session-connect-cards-Q53KMMYY.js → session-connect-cards-TUY62MVP.js} +10 -11
- package/dist/session-list-model.js +2 -2
- package/dist/{session-realtime-CF3I35WJ.js → session-realtime-SDTKFFIR.js} +3 -3
- package/dist/session-realtime-SDTKFFIR.js.map +1 -0
- package/dist/session-realtime.js +2 -2
- package/dist/session-ui.js +36 -37
- package/dist/session.js +9 -9
- package/dist/sites.js +2 -2
- package/dist/terminal.js +2 -2
- package/dist/this-computer.js +3 -3
- package/dist/timeline/shared.d.ts +2 -0
- package/dist/{timeline-annotation-markers-CJK4RYZ4.js → timeline-annotation-markers-FNILLWNU.js} +2 -2
- package/dist/{timeline-annotation-selection-67GF5H26.js → timeline-annotation-selection-MBCIDO2Q.js} +2 -2
- package/dist/{timeline-annotations-dialog-ONJPQDJQ.js → timeline-annotations-dialog-JPNKLOTE.js} +3 -3
- package/dist/timeline-model.js +6 -6
- package/dist/ui/access-list.js +6 -6
- package/dist/ui/cadence-picker.js +4 -4
- package/dist/ui/choice-cards.js +3 -3
- package/dist/ui/confirm-dialog.js +4 -4
- package/dist/ui/copy-field.js +3 -3
- package/dist/ui/detail-page.js +5 -5
- package/dist/ui/detail-sheet.js +4 -4
- package/dist/ui/dialog.js +2 -2
- package/dist/ui/disclosure.js +5 -5
- package/dist/ui/email-chips-input.js +3 -3
- package/dist/ui/field.js +2 -2
- package/dist/ui/flush-form-page.js +4 -4
- package/dist/ui/form-dialog.js +3 -3
- package/dist/ui/list-row.js +3 -3
- package/dist/ui/page-header.js +2 -2
- package/dist/ui/relative-time.js +2 -2
- package/dist/ui/revision-history.js +4 -4
- package/dist/ui/role-select.js +6 -6
- package/dist/ui/select-menu.js +3 -3
- package/dist/ui/sheet.js +2 -2
- package/dist/ui/usage-meter.js +3 -3
- package/dist/ui/window-bar-title.d.ts +7 -3
- package/dist/ui/window-bar-title.js +1 -1
- package/dist/usage.js +2 -2
- package/dist/workbench.js +4 -4
- package/package.json +6 -5
- package/src/app/components/artifacts/site-actions.tsx +105 -0
- package/src/app/components/rail/session-header-copy.test.tsx +172 -0
- package/src/app/components/rail/session-header.tsx +68 -12
- package/src/app/components/rail/session-list.tsx +20 -0
- package/src/app/components/rail/site-session-group-heading.test.tsx +210 -0
- package/src/app/components/rail/site-session-group-heading.tsx +119 -60
- package/src/app/components/session/failed-session-actions.test.tsx +4 -0
- package/src/app/components/window-bar.tsx +63 -15
- package/src/app/lib/composer-send-blocking.tsx +312 -1
- package/src/app/lib/copy-link.ts +10 -0
- package/src/app/lib/session-composer-readiness.ts +4 -3
- package/src/app/lib/site-sidebar-bridge.test.tsx +67 -0
- package/src/app/lib/site-sidebar-bridge.ts +57 -0
- package/src/app/routes/session.tsx +45 -12
- package/src/app/routes/sessions-index.tsx +164 -105
- package/src/app/routes/site-view.test.tsx +74 -6
- package/src/app/routes/site-view.tsx +135 -14
- package/src/components/approval-surface.tsx +78 -3
- package/src/components/artifacts/artifact-sandbox.tsx +27 -2
- package/src/components/artifacts/site-view.tsx +13 -1
- package/src/components/message-timeline.tsx +25 -52
- package/src/components/session-capability-frame.tsx +2 -30
- package/src/components/timeline-anchor.tsx +19 -14
- package/src/components/timeline-reading-progress.ts +1 -2
- package/src/components/timeline-settlement.ts +3 -3
- package/src/lib/format.ts +46 -1
- package/src/messages/en.ts +11 -0
- package/src/timeline/platform-activity-row.tsx +20 -8
- package/src/timeline/shared.tsx +203 -32
- package/src/ui/window-bar-title.test.tsx +37 -0
- package/src/ui/window-bar-title.tsx +13 -6
- package/styles/compiled.css +5 -0
- package/dist/chunk-5MOJZORA.js.map +0 -1
- package/dist/chunk-6BCXNDEI.js.map +0 -1
- package/dist/chunk-6DVCC7QS.js.map +0 -1
- package/dist/chunk-7T2ZE3VT.js.map +0 -1
- package/dist/chunk-AFRGP2VP.js +0 -17
- package/dist/chunk-AFRGP2VP.js.map +0 -1
- package/dist/chunk-CRU35QQH.js.map +0 -1
- package/dist/chunk-FO4LYKJL.js +0 -197
- package/dist/chunk-FO4LYKJL.js.map +0 -1
- package/dist/chunk-HD5X76TP.js.map +0 -1
- package/dist/chunk-JDTGRRNU.js.map +0 -1
- package/dist/chunk-NW53H5RW.js.map +0 -1
- package/dist/chunk-OF4TIKYC.js.map +0 -1
- package/dist/chunk-ORJPS5VN.js.map +0 -1
- package/dist/chunk-TXLIEOJX.js.map +0 -1
- package/dist/chunk-VBUVBHFJ.js +0 -16
- package/dist/chunk-VBUVBHFJ.js.map +0 -1
- package/dist/chunk-XEQMZB3C.js.map +0 -1
- package/dist/chunk-YPWU5KPE.js.map +0 -1
- package/dist/components/timeline-answer-follow.d.ts +0 -8
- package/dist/platform-activity-row-BUZGZAKZ.js.map +0 -1
- package/src/components/timeline-answer-follow.ts +0 -15
- /package/dist/{browser-viewer-TC27OCIP.js.map → app/components/artifacts/site-actions.js.map} +0 -0
- /package/dist/{chat-interactive-block-RWPQBHVS.js.map → browser-viewer-ZHQDVHZ2.js.map} +0 -0
- /package/dist/{computer-viewer-TDDO25AV.js.map → chat-interactive-block-VSDD6X3M.js.map} +0 -0
- /package/dist/{chunk-C43KRXGA.js.map → chunk-2GCHGWNE.js.map} +0 -0
- /package/dist/{chunk-XLH7QY2R.js.map → chunk-2J77TWGH.js.map} +0 -0
- /package/dist/{chunk-Q3DPEYX4.js.map → chunk-2LMJXRXK.js.map} +0 -0
- /package/dist/{chunk-77WAKEAH.js.map → chunk-2OXSB2OL.js.map} +0 -0
- /package/dist/{chunk-H3T7IWNA.js.map → chunk-2VJOSU4H.js.map} +0 -0
- /package/dist/{chunk-IMDQUHBJ.js.map → chunk-2ZAQA5GE.js.map} +0 -0
- /package/dist/{chunk-L7YTNTIK.js.map → chunk-3CDJSKDW.js.map} +0 -0
- /package/dist/{chunk-EWSOC6WF.js.map → chunk-3DRLCX5V.js.map} +0 -0
- /package/dist/{chunk-JEUPAVYY.js.map → chunk-3L465FBR.js.map} +0 -0
- /package/dist/{chunk-4SAWSRAA.js.map → chunk-3LTSLMVL.js.map} +0 -0
- /package/dist/{chunk-5NWEKLDZ.js.map → chunk-3NNAC43A.js.map} +0 -0
- /package/dist/{chunk-EDI6SJ2N.js.map → chunk-3OK7Y6ES.js.map} +0 -0
- /package/dist/{chunk-AWKES45Y.js.map → chunk-3PM3M2Q6.js.map} +0 -0
- /package/dist/{chunk-I7XIZRFD.js.map → chunk-3PZ3LRPV.js.map} +0 -0
- /package/dist/{chunk-2M3J7ZWQ.js.map → chunk-467WDSOK.js.map} +0 -0
- /package/dist/{chunk-UTIAXH52.js.map → chunk-477DTTMH.js.map} +0 -0
- /package/dist/{chunk-J5F5HPPW.js.map → chunk-4BWMAGJJ.js.map} +0 -0
- /package/dist/{chunk-YSJEAAOL.js.map → chunk-4F3AEJI6.js.map} +0 -0
- /package/dist/{chunk-LHPNABDH.js.map → chunk-4JXPLTWV.js.map} +0 -0
- /package/dist/{chunk-NUNZS36W.js.map → chunk-4O2XWOLZ.js.map} +0 -0
- /package/dist/{chunk-BHNSJVBC.js.map → chunk-4OTNYMJH.js.map} +0 -0
- /package/dist/{chunk-2Z3NQNTM.js.map → chunk-4POXUODO.js.map} +0 -0
- /package/dist/{chunk-QB2KMIDP.js.map → chunk-4SJAEPM2.js.map} +0 -0
- /package/dist/{chunk-TAT5USZN.js.map → chunk-4T3NE262.js.map} +0 -0
- /package/dist/{chunk-6JHU2UBS.js.map → chunk-4Z5X7PLC.js.map} +0 -0
- /package/dist/{chunk-2STUPWEL.js.map → chunk-54U6ZBEX.js.map} +0 -0
- /package/dist/{chunk-XXSOHN35.js.map → chunk-5FLYHX5R.js.map} +0 -0
- /package/dist/{chunk-MIYFS2XN.js.map → chunk-5MHMCE2G.js.map} +0 -0
- /package/dist/{chunk-YWVI6ZMK.js.map → chunk-5MIBQ4P5.js.map} +0 -0
- /package/dist/{chunk-HAX4LCR5.js.map → chunk-5TKTWXAU.js.map} +0 -0
- /package/dist/{chunk-F2OPHAUN.js.map → chunk-6HRYJERP.js.map} +0 -0
- /package/dist/{chunk-5O2FCCHZ.js.map → chunk-6JGB4XGH.js.map} +0 -0
- /package/dist/{chunk-RPVREAU7.js.map → chunk-736RUNIA.js.map} +0 -0
- /package/dist/{chunk-2KALVELR.js.map → chunk-74CBR5YE.js.map} +0 -0
- /package/dist/{chunk-5IE76VCY.js.map → chunk-752WXSDN.js.map} +0 -0
- /package/dist/{chunk-SEO7TICN.js.map → chunk-76MC7KOE.js.map} +0 -0
- /package/dist/{chunk-OPJJSKUK.js.map → chunk-77B6UCNK.js.map} +0 -0
- /package/dist/{chunk-ZUA3JMI6.js.map → chunk-77SYIH6O.js.map} +0 -0
- /package/dist/{chunk-ILDXWY37.js.map → chunk-7AI4E7PV.js.map} +0 -0
- /package/dist/{chunk-7X6SDK2C.js.map → chunk-7HESG3ET.js.map} +0 -0
- /package/dist/{chunk-2RG7NIAS.js.map → chunk-7MY3XB6I.js.map} +0 -0
- /package/dist/{chunk-C372BFOV.js.map → chunk-7NLF35YL.js.map} +0 -0
- /package/dist/{chunk-IFB3WJ36.js.map → chunk-7YTR3UFO.js.map} +0 -0
- /package/dist/{chunk-BMICEQZQ.js.map → chunk-7Z76QP64.js.map} +0 -0
- /package/dist/{chunk-YWIFM7D7.js.map → chunk-AAS7OWV6.js.map} +0 -0
- /package/dist/{chunk-5QAY6K77.js.map → chunk-AB5IW227.js.map} +0 -0
- /package/dist/{chunk-ZBIXBQNI.js.map → chunk-ABJZDRW2.js.map} +0 -0
- /package/dist/{chunk-4DVJ6ONS.js.map → chunk-AH3DGOTK.js.map} +0 -0
- /package/dist/{chunk-HGKTHF2U.js.map → chunk-AJBDAVX3.js.map} +0 -0
- /package/dist/{chunk-IXPTECSC.js.map → chunk-AVXDIRRW.js.map} +0 -0
- /package/dist/{chunk-QK5EFEUT.js.map → chunk-BASI553K.js.map} +0 -0
- /package/dist/{chunk-AW2MQB37.js.map → chunk-BD5FMBO4.js.map} +0 -0
- /package/dist/{chunk-OVKYVZMW.js.map → chunk-BIHGCQXA.js.map} +0 -0
- /package/dist/{chunk-Z4FMAFNH.js.map → chunk-BQYRZIZ7.js.map} +0 -0
- /package/dist/{chunk-DZWARC4M.js.map → chunk-BWMIWRUK.js.map} +0 -0
- /package/dist/{chunk-Y4OBB2VN.js.map → chunk-CV4VVLPZ.js.map} +0 -0
- /package/dist/{chunk-JQL7ZH6C.js.map → chunk-CXAN2FHF.js.map} +0 -0
- /package/dist/{chunk-3PZ7JZI2.js.map → chunk-D3PTVN2I.js.map} +0 -0
- /package/dist/{chunk-FPXASDG5.js.map → chunk-D5TIVCXG.js.map} +0 -0
- /package/dist/{chunk-7W37NS3I.js.map → chunk-D74Z2N4K.js.map} +0 -0
- /package/dist/{chunk-MNZG4OHU.js.map → chunk-DCEQCGVN.js.map} +0 -0
- /package/dist/{chunk-ND2BXV3P.js.map → chunk-DEHLWZSI.js.map} +0 -0
- /package/dist/{chunk-ZTPXACWB.js.map → chunk-DHIGEK6P.js.map} +0 -0
- /package/dist/{chunk-2YUOVM3G.js.map → chunk-DIP7YALH.js.map} +0 -0
- /package/dist/{chunk-6PZ7OBYU.js.map → chunk-DLVIRJGK.js.map} +0 -0
- /package/dist/{chunk-KLEUWIMZ.js.map → chunk-DQPIEQGP.js.map} +0 -0
- /package/dist/{chunk-T2QX3FDP.js.map → chunk-DWJ6J3YW.js.map} +0 -0
- /package/dist/{chunk-3CPWWGNK.js.map → chunk-E5KOWRDU.js.map} +0 -0
- /package/dist/{chunk-6WGRDRMA.js.map → chunk-EBIVTDEG.js.map} +0 -0
- /package/dist/{chunk-5CPEEAFD.js.map → chunk-EDDKPIIV.js.map} +0 -0
- /package/dist/{chunk-TX3VECZU.js.map → chunk-EGKARC53.js.map} +0 -0
- /package/dist/{chunk-JEA3QDX7.js.map → chunk-EKJHOWTZ.js.map} +0 -0
- /package/dist/{chunk-UVN5TMHU.js.map → chunk-ESXAECZ3.js.map} +0 -0
- /package/dist/{chunk-3SOIESJM.js.map → chunk-EWZ2RLNG.js.map} +0 -0
- /package/dist/{chunk-CMKGILJK.js.map → chunk-FBA2NXYH.js.map} +0 -0
- /package/dist/{chunk-O6N4ABCA.js.map → chunk-FER6EVIY.js.map} +0 -0
- /package/dist/{chunk-DF5EAHDN.js.map → chunk-FLWQJDJ5.js.map} +0 -0
- /package/dist/{chunk-PTAG4PDC.js.map → chunk-FNXCFIPW.js.map} +0 -0
- /package/dist/{chunk-BJEJFISW.js.map → chunk-FSDQQQIA.js.map} +0 -0
- /package/dist/{chunk-FVXBNBHO.js.map → chunk-FTIC5VXR.js.map} +0 -0
- /package/dist/{chunk-PTF5B7TJ.js.map → chunk-G5UQBTXY.js.map} +0 -0
- /package/dist/{chunk-4E3ZJRTZ.js.map → chunk-G6ICCGJ3.js.map} +0 -0
- /package/dist/{chunk-5YKW2K6I.js.map → chunk-GB5SOTIB.js.map} +0 -0
- /package/dist/{chunk-NRTE7DNV.js.map → chunk-GIWFLWXG.js.map} +0 -0
- /package/dist/{chunk-MM4FNWI4.js.map → chunk-GMHIOYB7.js.map} +0 -0
- /package/dist/{chunk-6DK6Z4UN.js.map → chunk-GOCODNQS.js.map} +0 -0
- /package/dist/{chunk-TPQTRNER.js.map → chunk-GSCGKJNK.js.map} +0 -0
- /package/dist/{chunk-7VMZGLYI.js.map → chunk-GTHCHCWW.js.map} +0 -0
- /package/dist/{chunk-SQJIKMN3.js.map → chunk-GTRAH4FG.js.map} +0 -0
- /package/dist/{chunk-ZYAZUPPV.js.map → chunk-GU7T2S5N.js.map} +0 -0
- /package/dist/{chunk-JKHKLL5W.js.map → chunk-H6BX6WOW.js.map} +0 -0
- /package/dist/{chunk-IMZCQBOT.js.map → chunk-H6MJFMHZ.js.map} +0 -0
- /package/dist/{chunk-HSOXMJOT.js.map → chunk-HEGV4QMS.js.map} +0 -0
- /package/dist/{chunk-NC7PVOEK.js.map → chunk-HWVPLFIW.js.map} +0 -0
- /package/dist/{chunk-ECJBYNLJ.js.map → chunk-ICAMYP5M.js.map} +0 -0
- /package/dist/{chunk-DJAXC5OK.js.map → chunk-IFSXVU2S.js.map} +0 -0
- /package/dist/{chunk-N6AACDUW.js.map → chunk-IHLRYWA7.js.map} +0 -0
- /package/dist/{chunk-I4MRDSUF.js.map → chunk-IJR6VOLU.js.map} +0 -0
- /package/dist/{chunk-YCVD6CI3.js.map → chunk-IN3VQFKS.js.map} +0 -0
- /package/dist/{chunk-MFROMEKA.js.map → chunk-J2BTILRR.js.map} +0 -0
- /package/dist/{chunk-NCYMNCJO.js.map → chunk-J2WY42FA.js.map} +0 -0
- /package/dist/{chunk-DGMR6JEJ.js.map → chunk-J4XSTXZP.js.map} +0 -0
- /package/dist/{chunk-P77WNZDY.js.map → chunk-JMHEFZOB.js.map} +0 -0
- /package/dist/{chunk-GVN5SZLX.js.map → chunk-JMI53ZMU.js.map} +0 -0
- /package/dist/{chunk-IDANQPRH.js.map → chunk-JV3UI7BH.js.map} +0 -0
- /package/dist/{chunk-GKVJIDHF.js.map → chunk-KFNZZ2N6.js.map} +0 -0
- /package/dist/{chunk-I4QEJ62Y.js.map → chunk-KI46GKMD.js.map} +0 -0
- /package/dist/{chunk-SIRLACNZ.js.map → chunk-KO3OHHY2.js.map} +0 -0
- /package/dist/{chunk-NULUNM7H.js.map → chunk-KUE5BOQE.js.map} +0 -0
- /package/dist/{chunk-O3LKCBP5.js.map → chunk-LIJNVIT3.js.map} +0 -0
- /package/dist/{chunk-JWB44UGJ.js.map → chunk-LIJPDVYP.js.map} +0 -0
- /package/dist/{chunk-BJFH6JI5.js.map → chunk-LN4DJOMX.js.map} +0 -0
- /package/dist/{chunk-KYS77RPN.js.map → chunk-LPKJ77EK.js.map} +0 -0
- /package/dist/{chunk-RMFKVOM7.js.map → chunk-LQKVNREV.js.map} +0 -0
- /package/dist/{chunk-E7XERZWC.js.map → chunk-LTJFV2JI.js.map} +0 -0
- /package/dist/{chunk-INXGSG3J.js.map → chunk-LVDNY5RC.js.map} +0 -0
- /package/dist/{chunk-2INLDVK3.js.map → chunk-LVELUUK6.js.map} +0 -0
- /package/dist/{chunk-5EWSRZ2Y.js.map → chunk-M3HGBO2Y.js.map} +0 -0
- /package/dist/{chunk-J3DY5HWQ.js.map → chunk-M5IQVMLR.js.map} +0 -0
- /package/dist/{chunk-53AGXXZM.js.map → chunk-MKDFYE2E.js.map} +0 -0
- /package/dist/{chunk-2I7HDP53.js.map → chunk-MT2R57SF.js.map} +0 -0
- /package/dist/{chunk-Z7Y523PS.js.map → chunk-MV2CLIO6.js.map} +0 -0
- /package/dist/{chunk-JZ4NLCAP.js.map → chunk-MZY3VKKM.js.map} +0 -0
- /package/dist/{chunk-YENLNISG.js.map → chunk-N3FM4BNA.js.map} +0 -0
- /package/dist/{chunk-RQKLF42C.js.map → chunk-NPGLNXYI.js.map} +0 -0
- /package/dist/{chunk-I5QZJODL.js.map → chunk-NQ2CPQJF.js.map} +0 -0
- /package/dist/{chunk-CUIWCGMA.js.map → chunk-OCXEY7HE.js.map} +0 -0
- /package/dist/{chunk-KRDR5RJD.js.map → chunk-OGU73VUN.js.map} +0 -0
- /package/dist/{chunk-YIRVLKAX.js.map → chunk-OI6VI6SU.js.map} +0 -0
- /package/dist/{chunk-X6KAJI3V.js.map → chunk-OK7BQMCI.js.map} +0 -0
- /package/dist/{chunk-TUIN4MB7.js.map → chunk-ORV7EFSL.js.map} +0 -0
- /package/dist/{chunk-3IK6UYO6.js.map → chunk-OTW25A6I.js.map} +0 -0
- /package/dist/{chunk-NPGISCU6.js.map → chunk-OWET7EY2.js.map} +0 -0
- /package/dist/{chunk-3ED2U6XE.js.map → chunk-OYCK4JRS.js.map} +0 -0
- /package/dist/{chunk-YQXTDZSU.js.map → chunk-OYOFPNLC.js.map} +0 -0
- /package/dist/{chunk-4NQHXYMW.js.map → chunk-PD7NWM7V.js.map} +0 -0
- /package/dist/{chunk-4YCA2Y73.js.map → chunk-PF2WU2IL.js.map} +0 -0
- /package/dist/{chunk-Z654FWNU.js.map → chunk-PLYVGZIN.js.map} +0 -0
- /package/dist/{chunk-MVW6HNPI.js.map → chunk-PRT4J2DL.js.map} +0 -0
- /package/dist/{chunk-OPWCMA4D.js.map → chunk-PUUEI4W3.js.map} +0 -0
- /package/dist/{chunk-RLBKLAEY.js.map → chunk-PVB4YVDP.js.map} +0 -0
- /package/dist/{chunk-NXCMHIKI.js.map → chunk-PWUSSSSL.js.map} +0 -0
- /package/dist/{chunk-MJUCFQMS.js.map → chunk-PYB4BFEC.js.map} +0 -0
- /package/dist/{chunk-2FSBSCZJ.js.map → chunk-PZKHST7A.js.map} +0 -0
- /package/dist/{chunk-QZAAUQRN.js.map → chunk-Q5EZNBPI.js.map} +0 -0
- /package/dist/{chunk-ZHDFQITM.js.map → chunk-Q5K2J5GG.js.map} +0 -0
- /package/dist/{chunk-DZXEDSQI.js.map → chunk-QKBFIJE7.js.map} +0 -0
- /package/dist/{chunk-FZC5N55X.js.map → chunk-QL5NQ3JX.js.map} +0 -0
- /package/dist/{chunk-OV6QJRT4.js.map → chunk-QRECBCJM.js.map} +0 -0
- /package/dist/{chunk-3GZA4BUW.js.map → chunk-QURYQFDN.js.map} +0 -0
- /package/dist/{chunk-I5B5L6Q4.js.map → chunk-QVZVUROX.js.map} +0 -0
- /package/dist/{chunk-VS7AHPCZ.js.map → chunk-R33SBMB7.js.map} +0 -0
- /package/dist/{chunk-KCBMFSMS.js.map → chunk-R4JA5JFI.js.map} +0 -0
- /package/dist/{chunk-HC4JFZVU.js.map → chunk-R5QAL43H.js.map} +0 -0
- /package/dist/{chunk-QPSGCC5D.js.map → chunk-RGR57NYY.js.map} +0 -0
- /package/dist/{chunk-XWFAMUZQ.js.map → chunk-RHXYO4H2.js.map} +0 -0
- /package/dist/{chunk-Y4BB2KS2.js.map → chunk-RISUROBM.js.map} +0 -0
- /package/dist/{chunk-U3DN4HEY.js.map → chunk-RMCLFSMX.js.map} +0 -0
- /package/dist/{chunk-YK7756IF.js.map → chunk-RTZANSSC.js.map} +0 -0
- /package/dist/{chunk-ZEG4VPBL.js.map → chunk-S27VZ5DO.js.map} +0 -0
- /package/dist/{chunk-54YW6SZZ.js.map → chunk-SBXSKRFA.js.map} +0 -0
- /package/dist/{chunk-QIOQ2NPQ.js.map → chunk-SGH7I7OY.js.map} +0 -0
- /package/dist/{chunk-K2A5PXQ5.js.map → chunk-SJYTQLN3.js.map} +0 -0
- /package/dist/{chunk-X3MWB2QU.js.map → chunk-SN2WENRP.js.map} +0 -0
- /package/dist/{chunk-OSY5K7L7.js.map → chunk-SP44O3OU.js.map} +0 -0
- /package/dist/{chunk-OZCBM3UC.js.map → chunk-SSR4ZX52.js.map} +0 -0
- /package/dist/{chunk-QCSJ4CWE.js.map → chunk-SXGJL7UT.js.map} +0 -0
- /package/dist/{chunk-NC55IFN3.js.map → chunk-T67LTMSW.js.map} +0 -0
- /package/dist/{chunk-AXHZYXUV.js.map → chunk-TDTD66BK.js.map} +0 -0
- /package/dist/{chunk-NGJJJPZZ.js.map → chunk-TK5FWVZR.js.map} +0 -0
- /package/dist/{chunk-2OP6WLGV.js.map → chunk-TNSJFZ6Q.js.map} +0 -0
- /package/dist/{chunk-O732GAFC.js.map → chunk-U4LTPFD2.js.map} +0 -0
- /package/dist/{chunk-4DVNUCRR.js.map → chunk-U5UGM5XD.js.map} +0 -0
- /package/dist/{chunk-UJK53QFL.js.map → chunk-UBRQ3PQD.js.map} +0 -0
- /package/dist/{chunk-SODC7T6L.js.map → chunk-UMX6DZME.js.map} +0 -0
- /package/dist/{chunk-YLS6QE5G.js.map → chunk-UO35OEOX.js.map} +0 -0
- /package/dist/{chunk-VTTAJOQ7.js.map → chunk-UO3X52YM.js.map} +0 -0
- /package/dist/{chunk-SHHJCL7X.js.map → chunk-UTRNLNCW.js.map} +0 -0
- /package/dist/{chunk-HEFPPMBQ.js.map → chunk-UU5FBVRX.js.map} +0 -0
- /package/dist/{chunk-GQXZPKK7.js.map → chunk-V6UOVHW3.js.map} +0 -0
- /package/dist/{chunk-7TIX2UAR.js.map → chunk-VCJQQYRE.js.map} +0 -0
- /package/dist/{chunk-6WD2INST.js.map → chunk-WDASYY4S.js.map} +0 -0
- /package/dist/{chunk-DXBYWSL5.js.map → chunk-WIFDNUKD.js.map} +0 -0
- /package/dist/{chunk-RT7CJMER.js.map → chunk-WIXHUBQN.js.map} +0 -0
- /package/dist/{chunk-57AZS3IE.js.map → chunk-WRMUXZ7C.js.map} +0 -0
- /package/dist/{chunk-CRAOSVHC.js.map → chunk-WSDBQSPP.js.map} +0 -0
- /package/dist/{chunk-2CLNIEK4.js.map → chunk-WTSQUCHB.js.map} +0 -0
- /package/dist/{chunk-MIHN76LX.js.map → chunk-WYGTAQMX.js.map} +0 -0
- /package/dist/{chunk-GAVYGBFI.js.map → chunk-X2R73NGG.js.map} +0 -0
- /package/dist/{chunk-T7OXJZCX.js.map → chunk-XOIDUM2H.js.map} +0 -0
- /package/dist/{chunk-XHIQ5I6N.js.map → chunk-XVLEBB4Y.js.map} +0 -0
- /package/dist/{chunk-T3OWFVMS.js.map → chunk-Y3XZEKDQ.js.map} +0 -0
- /package/dist/{chunk-ROKQU7WG.js.map → chunk-YMI27QPF.js.map} +0 -0
- /package/dist/{chunk-U7XM7CB4.js.map → chunk-YNTLWCF4.js.map} +0 -0
- /package/dist/{chunk-ZQCND77P.js.map → chunk-YRYF76OE.js.map} +0 -0
- /package/dist/{chunk-2BDT3UZQ.js.map → chunk-ZAX4XQLN.js.map} +0 -0
- /package/dist/{chunk-DXR5PDFP.js.map → chunk-ZBHGNE2J.js.map} +0 -0
- /package/dist/{chunk-KODELWYT.js.map → chunk-ZF6ZS77B.js.map} +0 -0
- /package/dist/{chunk-KUDGXAF7.js.map → chunk-ZM5YP5NJ.js.map} +0 -0
- /package/dist/{chunk-I7ITSXSJ.js.map → chunk-ZR5EKJT6.js.map} +0 -0
- /package/dist/{chunk-IZXHMZQ6.js.map → chunk-ZW5YTIH3.js.map} +0 -0
- /package/dist/{embedded-new-voice-2G3VLPVQ.js.map → computer-viewer-5LKRCEVQ.js.map} +0 -0
- /package/dist/{embedded-voice-T5IWOWGD.js.map → embedded-new-voice-GHJRY3YL.js.map} +0 -0
- /package/dist/{model-policy-picker-menu-SMC6J6QN.js.map → embedded-voice-ASQXBSTX.js.map} +0 -0
- /package/dist/{fleet-decision-row-WM64KXP3.js.map → fleet-decision-row-U7LDVBEM.js.map} +0 -0
- /package/dist/{latest-question-OX56OVQ5.js.map → latest-question-RNVF262Q.js.map} +0 -0
- /package/dist/{sandbox-files-ESDMOFSD.js.map → model-policy-picker-menu-E6XKMFTA.js.map} +0 -0
- /package/dist/{queue-surface-implementation-4KUZ4PJV.js.map → queue-surface-implementation-GUAIG6TK.js.map} +0 -0
- /package/dist/{recorder-host-WF2RRR56.js.map → recorder-host-2MYDJPQW.js.map} +0 -0
- /package/dist/{session-connect-cards-Q53KMMYY.js.map → sandbox-files-W5W2LW4K.js.map} +0 -0
- /package/dist/{session-realtime-CF3I35WJ.js.map → session-connect-cards-TUY62MVP.js.map} +0 -0
- /package/dist/{timeline-annotation-markers-CJK4RYZ4.js.map → timeline-annotation-markers-FNILLWNU.js.map} +0 -0
- /package/dist/{timeline-annotation-selection-67GF5H26.js.map → timeline-annotation-selection-MBCIDO2Q.js.map} +0 -0
- /package/dist/{timeline-annotations-dialog-ONJPQDJQ.js.map → timeline-annotations-dialog-JPNKLOTE.js.map} +0 -0
package/dist/chunk-AFRGP2VP.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
// src/app/lib/composer-send-blocking.tsx
|
|
4
|
-
function getComposerSendBlocker(input) {
|
|
5
|
-
if (input.uploadPending) return "upload";
|
|
6
|
-
if (input.repositoryError !== null) return "repository";
|
|
7
|
-
if (!input.policyValid) return "policy";
|
|
8
|
-
if (input.machineAccessDenied) return "machine_permission";
|
|
9
|
-
if (input.personalDecision) return "personal_decision";
|
|
10
|
-
if (input.personalLoading) return "personal_loading";
|
|
11
|
-
return null;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export {
|
|
15
|
-
getComposerSendBlocker
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=chunk-AFRGP2VP.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/app/lib/composer-send-blocking.tsx"],"sourcesContent":["export type ComposerSendBlocker =\n | \"upload\"\n | \"repository\"\n | \"policy\"\n | \"personal_decision\"\n | \"machine_permission\"\n | \"personal_loading\";\nexport function getComposerSendBlocker(input: {\n uploadPending: boolean;\n repositoryError: string | null;\n policyValid: boolean;\n personalDecision: boolean;\n personalLoading: boolean;\n machineAccessDenied?: boolean | undefined;\n}): ComposerSendBlocker | null {\n if (input.uploadPending) return \"upload\";\n if (input.repositoryError !== null) return \"repository\";\n if (!input.policyValid) return \"policy\";\n if (input.machineAccessDenied) return \"machine_permission\";\n if (input.personalDecision) return \"personal_decision\";\n if (input.personalLoading) return \"personal_loading\";\n return null;\n}\n"],"mappings":";;;AAOO,SAAS,uBAAuB,OAOR;AAC7B,MAAI,MAAM,cAAe,QAAO;AAChC,MAAI,MAAM,oBAAoB,KAAM,QAAO;AAC3C,MAAI,CAAC,MAAM,YAAa,QAAO;AAC/B,MAAI,MAAM,oBAAqB,QAAO;AACtC,MAAI,MAAM,iBAAkB,QAAO;AACnC,MAAI,MAAM,gBAAiB,QAAO;AAClC,SAAO;AACT;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/app/components/rail/site-session-group-heading.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { Link } from \"../../lib/navigation\";\nimport {\n ArchiveIcon,\n ChevronRightIcon,\n EllipsisIcon,\n FolderIcon,\n PanelsTopLeftIcon,\n PinIcon,\n} from \"lucide-react\";\nimport { RailTrailingMetadata } from \"./session-row-content\";\nimport {\n RAIL_ROW_OVERFLOW_TRIGGER_CLASS,\n RAIL_ROW_QUICK_ACTIONS_CLASS,\n RailRowQuickAction,\n} from \"./rail-row-quick-actions\";\nimport { Button } from \"../../../ui/button\";\nimport {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuTrigger,\n} from \"../../../ui/context-menu\";\nimport {\n DropdownMenu,\n DropdownMenuCheck,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"../../../ui/dropdown-menu\";\nimport { cn } from \"../../lib/utils\";\nimport { visualTreeDepth } from \"../../lib/session-rail\";\nimport type { RailAggregateStatus } from \"../../lib/sessions-group\";\nimport type { SessionSiteOrigin } from \"../../lib/session-site-origin\";\nimport type { Channel } from \"../../types\";\n\n/**\n * Pin and archive for Site rows, in this person's own sidebar. Archive only\n * hides the row; the Site stays published. Absent where the client cannot\n * change sidebar state, and then the row offers no actions. Move files the\n * row in another project (null is Default), like a chat; absent where the\n * client predates it.\n */\nexport type SiteRowActions = {\n pin: (origin: SessionSiteOrigin, pinned: boolean) => void;\n archive: (origin: SessionSiteOrigin) => void;\n move?:\n | ((origin: SessionSiteOrigin, fromChannelId: string | null, channelId: string | null) => void)\n | undefined;\n};\nexport const SiteRowActionsContext = createContext<SiteRowActions | null>(null);\n\n/** Drag payload of a Site row: `{ siteId, title, channelId }` as JSON. */\nexport const SITE_DRAG_TYPE = \"application/x-opengeni-site\";\n\nexport type SiteRowDragPayload = { siteId: string; title: string; channelId: string | null };\n\nexport function readSiteRowDragPayload(value: string): SiteRowDragPayload | null {\n try {\n const parsed = JSON.parse(value) as unknown;\n if (!parsed || typeof parsed !== \"object\") return null;\n const { siteId, title, channelId } = parsed as Record<string, unknown>;\n if (\n typeof siteId !== \"string\" ||\n typeof title !== \"string\" ||\n (channelId !== null && typeof channelId !== \"string\")\n )\n return null;\n return { siteId, title, channelId };\n } catch {\n return null;\n }\n}\n\n/** A Site's row in the rail: open the Site view, or disclose its conversations. */\nexport function SiteSessionGroupHeading({\n origin,\n workspaceId,\n expanded,\n onToggle,\n summary,\n count,\n relativeTime,\n depth = 0,\n active = false,\n pinned = false,\n channelId,\n channels,\n}: {\n origin: SessionSiteOrigin;\n workspaceId: string;\n expanded: boolean;\n onToggle: () => void;\n summary: RailAggregateStatus;\n /** Conversations behind the row, loaded or not. */\n count: number;\n relativeTime?: string | undefined;\n depth?: number | undefined;\n active?: boolean | undefined;\n /** This person pinned the Site in their sidebar. */\n pinned?: boolean | undefined;\n /** The project this row is in (null is Default); undefined when it stands for every project. */\n channelId?: string | null | undefined;\n /** Projects it can move to, as offered for chats. */\n channels?: readonly Channel[] | undefined;\n}) {\n const actions = useContext(SiteRowActionsContext);\n const move = actions?.move;\n // As for a chat row: listed only when there is a project to choose.\n const moveTargets =\n move && channelId !== undefined && channels && channels.length > 0\n ? [{ id: null, name: \"Default\" }, ...channels]\n : [];\n const canMove = moveTargets.length > 0;\n const conversations = `${count} ${count === 1 ? \"conversation\" : \"conversations\"}`;\n // A Site without conversations is a plain row: nothing to disclose.\n const disclosable = count > 0 || expanded;\n const pinLabel = pinned ? \"Unpin\" : \"Pin\";\n const row = (\n <div\n data-site-row={origin.siteId}\n data-site-pinned={pinned ? \"\" : undefined}\n className={cn(\n \"group relative flex h-8 w-full items-center gap-1.5 rounded-md border py-1 pr-1 pl-1.5 text-left text-sm pointer-coarse:h-11 pointer-coarse:py-0\",\n active\n ? \"border-brand/20 bg-selection text-fg\"\n : \"border-transparent text-fg-label hover:bg-hover hover:text-fg\",\n )}\n >\n <span\n className=\"flex w-4 shrink-0 items-center\"\n style={depth > 0 ? { marginLeft: visualTreeDepth(depth) * 12 } : undefined}\n >\n {disclosable ? (\n <button\n type=\"button\"\n aria-label={`${expanded ? \"Collapse\" : \"Expand\"} ${conversations} from ${origin.title}`}\n aria-expanded={expanded}\n onClick={onToggle}\n className=\"flex h-4 w-4 shrink-0 items-center justify-center rounded text-fg-muted outline-hidden hover:text-fg focus-visible:ring-1 focus-visible:ring-ring pointer-coarse:h-11 pointer-coarse:w-11\"\n >\n <ChevronRightIcon\n className={cn(\"size-3 shrink-0 transition-transform\", expanded && \"rotate-90\")}\n />\n </button>\n ) : null}\n </span>\n <Link\n to=\"/workspaces/$workspaceId/sites/$siteId\"\n params={{ workspaceId, siteId: origin.siteId }}\n // The Site is the open page only while none of its conversations is.\n activeOptions={{ exact: true, includeSearch: true }}\n aria-current={active ? \"page\" : undefined}\n // Without conversations there is no status to announce.\n aria-label={`Open ${origin.title}. Site${pinned ? \". Pinned\" : \"\"}${count > 0 ? `, ${conversations}. ${summary.label}` : \"\"}`}\n // Drag onto a project to move the row there, like a chat row.\n draggable={canMove}\n onDragStart={(event) => {\n if (!canMove) {\n event.preventDefault();\n return;\n }\n event.stopPropagation();\n event.dataTransfer.effectAllowed = \"move\";\n event.dataTransfer.setData(\n SITE_DRAG_TYPE,\n JSON.stringify({\n siteId: origin.siteId,\n title: origin.title,\n channelId: channelId ?? null,\n } satisfies SiteRowDragPayload),\n );\n }}\n className=\"flex h-full min-w-0 flex-1 items-center gap-1.5 rounded-sm outline-hidden focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-1 focus-visible:ring-offset-surface\"\n >\n <PanelsTopLeftIcon aria-hidden=\"true\" className=\"size-3.5 shrink-0 text-fg-muted\" />\n <span className=\"min-w-0 truncate\">{origin.title}</span>\n {count > 0 ? (\n <span aria-hidden=\"true\" className=\"shrink-0 text-xs tabular-nums text-fg-subtle\">\n {count}\n </span>\n ) : null}\n <span className=\"min-w-0 flex-1\" />\n <RailTrailingMetadata\n summary={summary}\n relativeTime={relativeTime}\n quickActionSlots={actions ? 2 : 0}\n />\n </Link>\n {actions ? (\n <>\n <div className={RAIL_ROW_QUICK_ACTIONS_CLASS} data-site-quick-actions={origin.siteId}>\n <RailRowQuickAction\n label={`${pinLabel} Site`}\n tooltip={pinLabel}\n data-site-actions={origin.siteId}\n data-site-action=\"pin\"\n onActivate={() => actions.pin(origin, !pinned)}\n >\n <PinIcon className={pinned ? \"size-3.5 fill-current\" : \"size-3.5\"} />\n </RailRowQuickAction>\n <RailRowQuickAction\n label=\"Archive Site\"\n tooltip=\"Archive\"\n data-site-actions={origin.siteId}\n data-site-action=\"archive\"\n onActivate={() => actions.archive(origin)}\n >\n <ArchiveIcon className=\"size-3.5\" />\n </RailRowQuickAction>\n </div>\n {/* Touch has no hover or right-click: the same actions in a menu. */}\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n aria-label={`Actions for ${origin.title}`}\n data-site-actions={origin.siteId}\n data-site-actions-mode=\"overflow\"\n className={RAIL_ROW_OVERFLOW_TRIGGER_CLASS}\n >\n <EllipsisIcon className=\"size-3.5\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"min-w-40\" data-site-menu={origin.siteId}>\n <DropdownMenuItem onSelect={() => actions.pin(origin, !pinned)}>\n <PinIcon className={pinned ? \"size-4 fill-current\" : \"size-4\"} />\n {pinLabel}\n </DropdownMenuItem>\n <DropdownMenuItem onSelect={() => actions.archive(origin)}>\n <ArchiveIcon className=\"size-4\" />\n Archive\n </DropdownMenuItem>\n {canMove ? (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuLabel>Move to project</DropdownMenuLabel>\n {moveTargets.map((channel) => {\n const current = (channelId ?? null) === channel.id;\n return (\n <DropdownMenuItem\n key={channel.id ?? \"default\"}\n aria-current={current ? \"true\" : undefined}\n onSelect={() => {\n if (!current) move?.(origin, channelId ?? null, channel.id);\n }}\n >\n <FolderIcon aria-hidden=\"true\" />\n <span className=\"min-w-0 flex-1 truncate\">{channel.name}</span>\n <DropdownMenuCheck checked={current} />\n </DropdownMenuItem>\n );\n })}\n </>\n ) : null}\n </DropdownMenuContent>\n </DropdownMenu>\n </>\n ) : null}\n </div>\n );\n if (!actions) return row;\n return (\n <ContextMenu>\n <ContextMenuTrigger asChild>{row}</ContextMenuTrigger>\n <ContextMenuContent className=\"min-w-40\" data-site-menu={origin.siteId}>\n <ContextMenuItem onSelect={() => actions.pin(origin, !pinned)}>\n <PinIcon className={pinned ? \"size-4 fill-current\" : \"size-4\"} />\n {pinLabel}\n </ContextMenuItem>\n <ContextMenuItem onSelect={() => actions.archive(origin)}>\n <ArchiveIcon className=\"size-4\" />\n Archive\n </ContextMenuItem>\n {canMove ? (\n <>\n <ContextMenuSeparator />\n <ContextMenuLabel>Move to project</ContextMenuLabel>\n {moveTargets.map((channel) => {\n const current = (channelId ?? null) === channel.id;\n return (\n <ContextMenuItem\n key={channel.id ?? \"default\"}\n aria-current={current ? \"true\" : undefined}\n onSelect={() => {\n if (!current) move?.(origin, channelId ?? null, channel.id);\n }}\n >\n <FolderIcon aria-hidden=\"true\" />\n <span className=\"min-w-0 flex-1 truncate\">{channel.name}</span>\n <DropdownMenuCheck checked={current} />\n </ContextMenuItem>\n );\n })}\n </>\n ) : null}\n </ContextMenuContent>\n </ContextMenu>\n );\n}\n"],"mappings":"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","names":[]}
|
package/dist/chunk-FO4LYKJL.js
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import {
|
|
3
|
-
useTimelineAnswerFollow
|
|
4
|
-
} from "./chunk-VBUVBHFJ.js";
|
|
5
|
-
import {
|
|
6
|
-
containedPortal
|
|
7
|
-
} from "./chunk-UD6AAZSC.js";
|
|
8
|
-
import {
|
|
9
|
-
usePortalTokenStyle
|
|
10
|
-
} from "./chunk-XEA5BCMA.js";
|
|
11
|
-
import {
|
|
12
|
-
useOpenGeniText
|
|
13
|
-
} from "./chunk-7T2ZE3VT.js";
|
|
14
|
-
|
|
15
|
-
// src/components/session-capability-frame.tsx
|
|
16
|
-
import { CheckIcon, InfoIcon, ShieldCheckIcon, XIcon } from "lucide-react";
|
|
17
|
-
import { Dialog } from "radix-ui";
|
|
18
|
-
import { useLayoutEffect, useRef, useState } from "react";
|
|
19
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
20
|
-
var DialogContainedPortal = containedPortal(Dialog.Portal);
|
|
21
|
-
function Mark({ src, name }) {
|
|
22
|
-
const [failed, setFailed] = useState(null);
|
|
23
|
-
return /* @__PURE__ */ jsx("span", { className: "og-session-capability-logo", "aria-hidden": true, children: src && failed !== src ? /* @__PURE__ */ jsx("img", { src, alt: "", loading: "lazy", decoding: "async", onError: () => setFailed(src) }) : name.trim().slice(0, 2).toUpperCase() });
|
|
24
|
-
}
|
|
25
|
-
function SessionCapabilityFrame({
|
|
26
|
-
name,
|
|
27
|
-
subtitle,
|
|
28
|
-
logo,
|
|
29
|
-
typeLabel,
|
|
30
|
-
badge,
|
|
31
|
-
description,
|
|
32
|
-
clampDescription = false,
|
|
33
|
-
skill,
|
|
34
|
-
expanded,
|
|
35
|
-
complete,
|
|
36
|
-
completeLabel,
|
|
37
|
-
actionLabel,
|
|
38
|
-
opensDialog = true,
|
|
39
|
-
note,
|
|
40
|
-
onOpen,
|
|
41
|
-
onClose,
|
|
42
|
-
busy = false,
|
|
43
|
-
opener,
|
|
44
|
-
cardRef,
|
|
45
|
-
children,
|
|
46
|
-
dialogOnly = false,
|
|
47
|
-
actionUnavailable,
|
|
48
|
-
details,
|
|
49
|
-
inlineSetup
|
|
50
|
-
}) {
|
|
51
|
-
const t = useOpenGeniText();
|
|
52
|
-
const localOpener = useRef(null);
|
|
53
|
-
const localCard = useRef(null);
|
|
54
|
-
const buttonRef = opener ?? localOpener;
|
|
55
|
-
const sectionRef = cardRef ?? localCard;
|
|
56
|
-
const rootRef = useRef(null);
|
|
57
|
-
const portalStyle = usePortalTokenStyle(sectionRef.current);
|
|
58
|
-
const followAnswer = useTimelineAnswerFollow();
|
|
59
|
-
const wasComplete = useRef(complete);
|
|
60
|
-
const engaged = useRef(false);
|
|
61
|
-
useLayoutEffect(() => {
|
|
62
|
-
if (expanded || busy) engaged.current = true;
|
|
63
|
-
}, [expanded, busy]);
|
|
64
|
-
const engage = () => {
|
|
65
|
-
engaged.current = true;
|
|
66
|
-
};
|
|
67
|
-
useLayoutEffect(() => {
|
|
68
|
-
if (complete && !wasComplete.current && engaged.current && rootRef.current)
|
|
69
|
-
followAnswer?.(rootRef.current);
|
|
70
|
-
wasComplete.current = complete;
|
|
71
|
-
}, [complete, followAnswer]);
|
|
72
|
-
const shownSubtitle = subtitle.trim().toLowerCase() === name.trim().toLowerCase() ? "" : subtitle;
|
|
73
|
-
const identity = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
74
|
-
/* @__PURE__ */ jsx(Mark, { src: logo, name }),
|
|
75
|
-
/* @__PURE__ */ jsxs("div", { className: "og-session-capability-identity", children: [
|
|
76
|
-
/* @__PURE__ */ jsx("h3", { children: name }),
|
|
77
|
-
shownSubtitle ? /* @__PURE__ */ jsx("span", { children: shownSubtitle }) : null
|
|
78
|
-
] }),
|
|
79
|
-
badge ? /* @__PURE__ */ jsx("span", { className: "og-session-capability-type", children: badge }) : null
|
|
80
|
-
] });
|
|
81
|
-
return (
|
|
82
|
-
// React bubbles the setup dialog's portaled events here too.
|
|
83
|
-
/* @__PURE__ */ jsxs(
|
|
84
|
-
"div",
|
|
85
|
-
{
|
|
86
|
-
ref: rootRef,
|
|
87
|
-
className: "og-session-capability",
|
|
88
|
-
onPointerDownCapture: engage,
|
|
89
|
-
onClickCapture: engage,
|
|
90
|
-
onKeyDownCapture: engage,
|
|
91
|
-
children: [
|
|
92
|
-
/* @__PURE__ */ jsxs(
|
|
93
|
-
"section",
|
|
94
|
-
{
|
|
95
|
-
hidden: dialogOnly,
|
|
96
|
-
style: dialogOnly ? { display: "none" } : void 0,
|
|
97
|
-
ref: sectionRef,
|
|
98
|
-
tabIndex: -1,
|
|
99
|
-
"aria-label": t("sessionCapabilityFrame.nameSetup", { name }),
|
|
100
|
-
"data-state": complete ? "complete" : expanded ? "setup" : "suggested",
|
|
101
|
-
className: "og-session-capability-shell",
|
|
102
|
-
children: [
|
|
103
|
-
/* @__PURE__ */ jsxs("div", { className: "og-session-capability-header", children: [
|
|
104
|
-
identity,
|
|
105
|
-
complete ? /* @__PURE__ */ jsx(CheckIcon, { size: 16, "aria-hidden": true }) : null
|
|
106
|
-
] }),
|
|
107
|
-
complete ? (
|
|
108
|
-
// Focusable so a card that just finished can keep keyboard focus.
|
|
109
|
-
/* @__PURE__ */ jsx("p", { role: "status", tabIndex: -1, className: "og-session-capability-copy", children: completeLabel ?? (skill ? t("sessionCapabilityFrame.installedWorkspace") : t("sessionCapabilityFrame.connectedAvailableInThisConversation")) })
|
|
110
|
-
) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
111
|
-
/* @__PURE__ */ jsx(
|
|
112
|
-
"p",
|
|
113
|
-
{
|
|
114
|
-
className: "og-session-capability-copy",
|
|
115
|
-
"data-clamp": clampDescription ? "" : void 0,
|
|
116
|
-
title: clampDescription ? description : void 0,
|
|
117
|
-
children: description
|
|
118
|
-
}
|
|
119
|
-
),
|
|
120
|
-
inlineSetup ? /* @__PURE__ */ jsx("div", { className: "og-session-capability-setup", children: inlineSetup }) : actionUnavailable ? /* @__PURE__ */ jsx("div", { className: "og-session-capability-actions", "data-unavailable": "", children: /* @__PURE__ */ jsxs("span", { role: "note", children: [
|
|
121
|
-
/* @__PURE__ */ jsx(InfoIcon, { size: 13, "aria-hidden": true }),
|
|
122
|
-
actionUnavailable
|
|
123
|
-
] }) }) : /* @__PURE__ */ jsxs("div", { className: "og-session-capability-actions", children: [
|
|
124
|
-
/* @__PURE__ */ jsxs("span", { children: [
|
|
125
|
-
/* @__PURE__ */ jsx(ShieldCheckIcon, { size: 13, "aria-hidden": true }),
|
|
126
|
-
skill ? t("sessionCapabilityFrame.guidanceOnlyNoAccountAccess") : t("sessionCapabilityFrame.youChooseWhatToAuthorize")
|
|
127
|
-
] }),
|
|
128
|
-
/* @__PURE__ */ jsx(
|
|
129
|
-
"button",
|
|
130
|
-
{
|
|
131
|
-
ref: buttonRef,
|
|
132
|
-
type: "button",
|
|
133
|
-
onClick: onOpen,
|
|
134
|
-
disabled: busy,
|
|
135
|
-
"aria-haspopup": opensDialog ? "dialog" : void 0,
|
|
136
|
-
"aria-expanded": opensDialog ? expanded : void 0,
|
|
137
|
-
children: actionLabel
|
|
138
|
-
}
|
|
139
|
-
)
|
|
140
|
-
] })
|
|
141
|
-
] }),
|
|
142
|
-
details
|
|
143
|
-
]
|
|
144
|
-
}
|
|
145
|
-
),
|
|
146
|
-
!complete && !dialogOnly && note ? /* @__PURE__ */ jsx("p", { className: "og-session-capability-note", children: note }) : null,
|
|
147
|
-
/* @__PURE__ */ jsx(
|
|
148
|
-
Dialog.Root,
|
|
149
|
-
{
|
|
150
|
-
open: expanded && !complete,
|
|
151
|
-
onOpenChange: (open) => {
|
|
152
|
-
if (!open && !busy) onClose();
|
|
153
|
-
},
|
|
154
|
-
children: /* @__PURE__ */ jsxs(DialogContainedPortal, { children: [
|
|
155
|
-
/* @__PURE__ */ jsx(Dialog.Overlay, { className: "og-root og-session-capability-overlay", style: portalStyle }),
|
|
156
|
-
/* @__PURE__ */ jsxs(
|
|
157
|
-
Dialog.Content,
|
|
158
|
-
{
|
|
159
|
-
className: "og-root og-session-capability-dialog",
|
|
160
|
-
style: portalStyle,
|
|
161
|
-
onEscapeKeyDown: (event) => {
|
|
162
|
-
if (busy) event.preventDefault();
|
|
163
|
-
},
|
|
164
|
-
onInteractOutside: (event) => {
|
|
165
|
-
if (busy) event.preventDefault();
|
|
166
|
-
},
|
|
167
|
-
onCloseAutoFocus: (event) => {
|
|
168
|
-
event.preventDefault();
|
|
169
|
-
const target = buttonRef.current?.isConnected ? buttonRef.current : sectionRef.current;
|
|
170
|
-
if (target?.isConnected) target.focus({ preventScroll: true });
|
|
171
|
-
},
|
|
172
|
-
children: [
|
|
173
|
-
/* @__PURE__ */ jsxs("div", { className: "og-session-capability-dialog-header", children: [
|
|
174
|
-
/* @__PURE__ */ jsx(Mark, { src: logo, name }),
|
|
175
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
176
|
-
/* @__PURE__ */ jsx(Dialog.Title, { children: name }),
|
|
177
|
-
/* @__PURE__ */ jsx(Dialog.Description, { children: [typeLabel, shownSubtitle].filter(Boolean).join(" \xB7 ") })
|
|
178
|
-
] }),
|
|
179
|
-
!busy ? /* @__PURE__ */ jsx(Dialog.Close, { "aria-label": t("sessionCapabilityFrame.closeConnectionSetup"), children: /* @__PURE__ */ jsx(XIcon, { size: 18 }) }) : null
|
|
180
|
-
] }),
|
|
181
|
-
/* @__PURE__ */ jsx("div", { className: "og-session-capability-dialog-body", children })
|
|
182
|
-
]
|
|
183
|
-
}
|
|
184
|
-
)
|
|
185
|
-
] })
|
|
186
|
-
}
|
|
187
|
-
)
|
|
188
|
-
]
|
|
189
|
-
}
|
|
190
|
-
)
|
|
191
|
-
);
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
export {
|
|
195
|
-
SessionCapabilityFrame
|
|
196
|
-
};
|
|
197
|
-
//# sourceMappingURL=chunk-FO4LYKJL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/session-capability-frame.tsx"],"sourcesContent":["import { CheckIcon, InfoIcon, ShieldCheckIcon, XIcon } from \"lucide-react\";\nimport { Dialog } from \"radix-ui\";\nimport { containedPortal } from \"../ui/portal-container\";\nimport { useLayoutEffect, useRef, useState, type ReactNode, type RefObject } from \"react\";\nimport { usePortalTokenStyle } from \"../lib/use-portal-token-style\";\nimport { useOpenGeniText } from \"../messages/runtime\";\nimport { useTimelineAnswerFollow } from \"./timeline-answer-follow\";\n\nconst DialogContainedPortal = containedPortal(Dialog.Portal);\n\nexport type SessionCapabilityFrameProps = {\n name: string;\n subtitle: string;\n logo: string | null;\n /** A short kind label for the setup dialog's subtitle; the card itself shows none. */\n typeLabel: string;\n /**\n * A quiet label beside the name, only where it tells a person what they are\n * trusting (a server someone added by hand). Reviewed services show none.\n */\n badge?: string | undefined;\n description: string;\n /**\n * The description is the agent's reason for asking: keep it to two lines so\n * a long rationale never pushes the action down. State and guidance copy\n * stays whole.\n */\n clampDescription?: boolean | undefined;\n skill: boolean;\n expanded: boolean;\n complete: boolean;\n /** Completion copy must reflect the provider's actual scope of access. */\n completeLabel?: string | undefined;\n actionLabel: string;\n /** Direct navigation actions should not announce a dialog on the card. */\n opensDialog?: boolean;\n note: string;\n onOpen(): void;\n onClose(): void;\n busy?: boolean;\n opener?: RefObject<HTMLButtonElement | null>;\n cardRef?: RefObject<HTMLElement | null>;\n children?: ReactNode;\n /** A catalogue row can own the opener while reusing the same details dialog. */\n dialogOnly?: boolean;\n /**\n * Replaces the action when the viewer cannot start setup here (the provider\n * is not configured, or someone else must connect it). Say why and who can.\n */\n actionUnavailable?: ReactNode;\n /** Host-owned content inside the card, under its status or actions. */\n details?: ReactNode;\n /** Protected setup can stay in the conversation instead of opening a dialog. */\n inlineSetup?: ReactNode;\n};\n\nfunction Mark({ src, name }: { src: string | null; name: string }) {\n const [failed, setFailed] = useState<string | null>(null);\n return (\n <span className=\"og-session-capability-logo\" aria-hidden>\n {src && failed !== src ? (\n <img src={src} alt=\"\" loading=\"lazy\" decoding=\"async\" onError={() => setFailed(src)} />\n ) : (\n name.trim().slice(0, 2).toUpperCase()\n )}\n </span>\n );\n}\n\n/** The same conversation card in the console and embedded clients. Setup\n * content owns the provider flow; this frame owns identity and protected focus. */\nexport function SessionCapabilityFrame({\n name,\n subtitle,\n logo,\n typeLabel,\n badge,\n description,\n clampDescription = false,\n skill,\n expanded,\n complete,\n completeLabel,\n actionLabel,\n opensDialog = true,\n note,\n onOpen,\n onClose,\n busy = false,\n opener,\n cardRef,\n children,\n dialogOnly = false,\n actionUnavailable,\n details,\n inlineSetup,\n}: SessionCapabilityFrameProps) {\n const t = useOpenGeniText();\n const localOpener = useRef<HTMLButtonElement>(null);\n const localCard = useRef<HTMLElement>(null);\n const buttonRef = opener ?? localOpener;\n const sectionRef = cardRef ?? localCard;\n const rootRef = useRef<HTMLDivElement>(null);\n const portalStyle = usePortalTokenStyle(sectionRef.current);\n // Finishing the card here is the person's answer and the agent continues\n // from it: let the conversation follow that answer. Only a completion the\n // person brought about in this card counts. A card that was already complete\n // when it appeared, or whose saved completion loads after it appears while\n // the person reads elsewhere, asks nothing.\n const followAnswer = useTimelineAnswerFollow();\n const wasComplete = useRef(complete);\n const engaged = useRef(false);\n useLayoutEffect(() => {\n if (expanded || busy) engaged.current = true;\n }, [expanded, busy]);\n const engage = () => {\n engaged.current = true;\n };\n useLayoutEffect(() => {\n if (complete && !wasComplete.current && engaged.current && rootRef.current)\n followAnswer?.(rootRef.current);\n wasComplete.current = complete;\n }, [complete, followAnswer]);\n // A row without a better name is titled by its domain; never say it twice.\n const shownSubtitle = subtitle.trim().toLowerCase() === name.trim().toLowerCase() ? \"\" : subtitle;\n const identity = (\n <>\n <Mark src={logo} name={name} />\n <div className=\"og-session-capability-identity\">\n <h3>{name}</h3>\n {shownSubtitle ? <span>{shownSubtitle}</span> : null}\n </div>\n {badge ? <span className=\"og-session-capability-type\">{badge}</span> : null}\n </>\n );\n return (\n // React bubbles the setup dialog's portaled events here too.\n <div\n ref={rootRef}\n className=\"og-session-capability\"\n onPointerDownCapture={engage}\n onClickCapture={engage}\n onKeyDownCapture={engage}\n >\n <section\n hidden={dialogOnly}\n style={dialogOnly ? { display: \"none\" } : undefined}\n ref={sectionRef}\n tabIndex={-1}\n aria-label={t(\"sessionCapabilityFrame.nameSetup\", { name })}\n data-state={complete ? \"complete\" : expanded ? \"setup\" : \"suggested\"}\n className=\"og-session-capability-shell\"\n >\n <div className=\"og-session-capability-header\">\n {identity}\n {complete ? <CheckIcon size={16} aria-hidden /> : null}\n </div>\n {complete ? (\n // Focusable so a card that just finished can keep keyboard focus.\n <p role=\"status\" tabIndex={-1} className=\"og-session-capability-copy\">\n {completeLabel ??\n (skill\n ? t(\"sessionCapabilityFrame.installedWorkspace\")\n : t(\"sessionCapabilityFrame.connectedAvailableInThisConversation\"))}\n </p>\n ) : (\n <>\n <p\n className=\"og-session-capability-copy\"\n data-clamp={clampDescription ? \"\" : undefined}\n title={clampDescription ? description : undefined}\n >\n {description}\n </p>\n {inlineSetup ? (\n <div className=\"og-session-capability-setup\">{inlineSetup}</div>\n ) : actionUnavailable ? (\n <div className=\"og-session-capability-actions\" data-unavailable=\"\">\n <span role=\"note\">\n <InfoIcon size={13} aria-hidden />\n {actionUnavailable}\n </span>\n </div>\n ) : (\n <div className=\"og-session-capability-actions\">\n <span>\n <ShieldCheckIcon size={13} aria-hidden />\n {skill\n ? t(\"sessionCapabilityFrame.guidanceOnlyNoAccountAccess\")\n : t(\"sessionCapabilityFrame.youChooseWhatToAuthorize\")}\n </span>\n <button\n ref={buttonRef}\n type=\"button\"\n onClick={onOpen}\n disabled={busy}\n aria-haspopup={opensDialog ? \"dialog\" : undefined}\n aria-expanded={opensDialog ? expanded : undefined}\n >\n {actionLabel}\n </button>\n </div>\n )}\n </>\n )}\n {details}\n </section>\n {!complete && !dialogOnly && note ? (\n <p className=\"og-session-capability-note\">{note}</p>\n ) : null}\n <Dialog.Root\n open={expanded && !complete}\n onOpenChange={(open) => {\n if (!open && !busy) onClose();\n }}\n >\n <DialogContainedPortal>\n <Dialog.Overlay className=\"og-root og-session-capability-overlay\" style={portalStyle} />\n <Dialog.Content\n className=\"og-root og-session-capability-dialog\"\n style={portalStyle}\n onEscapeKeyDown={(event) => {\n if (busy) event.preventDefault();\n }}\n onInteractOutside={(event) => {\n if (busy) event.preventDefault();\n }}\n onCloseAutoFocus={(event) => {\n event.preventDefault();\n const target = buttonRef.current?.isConnected\n ? buttonRef.current\n : sectionRef.current;\n // Keep the view where the conversation is; focus alone must not scroll.\n if (target?.isConnected) target.focus({ preventScroll: true });\n }}\n >\n <div className=\"og-session-capability-dialog-header\">\n <Mark src={logo} name={name} />\n <div>\n <Dialog.Title>{name}</Dialog.Title>\n <Dialog.Description>\n {[typeLabel, shownSubtitle].filter(Boolean).join(\" · \")}\n </Dialog.Description>\n </div>\n {!busy ? (\n <Dialog.Close aria-label={t(\"sessionCapabilityFrame.closeConnectionSetup\")}>\n <XIcon size={18} />\n </Dialog.Close>\n ) : null}\n </div>\n <div className=\"og-session-capability-dialog-body\">{children}</div>\n </Dialog.Content>\n </DialogContainedPortal>\n </Dialog.Root>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/window-bar-title.tsx"],"sourcesContent":["// The desktop window bar's title claims, in a module of its own (React only),\n// so page headers, overlays and the shells can share it without importing one\n// another.\nimport { createContext, useContext, useId, useLayoutEffect, useMemo, type ReactNode } from \"react\";\n\n/**\n * The desktop window bar's title line, when the page's shell draws one (the\n * macOS app): the first page header below claims it with its title, which is\n * then shown in the bar, and keeps its heading only for assistive tech, so the\n * title isn't shown twice. Provided by the shells (`useWindowBarRow`).\n */\nexport const PageHeaderWindowBarContext = createContext<{\n /**\n * A header's title, or null while it has none to show; keeps its place. A\n * fallback claim shows only while no other header has a title.\n */\n set(id: string, title: string | null, fallback?: boolean): void;\n release(id: string): void;\n /** The header whose title the bar shows. */\n owner: string | null;\n} | null>(null);\n\n/**\n * Headers inside an overlay (a dialog or sheet) never take the window bar:\n * the overlays' content wraps its children in this.\n *\n * With `fallback`, headers inside take the bar only while no other header has\n * a title: a page that stays mounted, hidden, under the pages it opens (the\n * Capabilities catalog) names the bar until an open page names it, including\n * while that page is loading or has no header.\n */\nexport function WindowBarTitleBoundary({\n fallback = false,\n children,\n}: {\n fallback?: boolean | undefined;\n children: ReactNode;\n}) {\n const enclosing = useContext(PageHeaderWindowBarContext);\n const value = useMemo(\n () =>\n fallback && enclosing\n ? {\n ...enclosing,\n set: (id: string, title: string | null) => enclosing.set(id, title, true),\n }\n : null,\n [fallback, enclosing],\n );\n return (\n <PageHeaderWindowBarContext.Provider value={value}>\n {children}\n </PageHeaderWindowBarContext.Provider>\n );\n}\n\n/**\n * Claims the window bar for `title`. With `fallback`, the claim yields to any\n * other header with a title, as headers in a `WindowBarTitleBoundary fallback`\n * do: a page that stays mounted under a page it opens keeps naming the bar\n * only until that page names it. Inside a fallback boundary every claim is a\n * fallback already, so there the first one keeps the bar.\n */\nexport function useWindowBarTitle(title: ReactNode, fallback = false): boolean {\n const windowBar = useContext(PageHeaderWindowBarContext);\n const id = useId();\n const text = typeof title === \"string\" ? title : null;\n const set = windowBar?.set;\n const release = windowBar?.release;\n useIsomorphicLayoutEffect(() => {\n set?.(id, text || null, fallback);\n }, [id, set, text, fallback]);\n useIsomorphicLayoutEffect(() => () => release?.(id), [id, release]);\n return windowBar?.owner === id;\n}\n\nconst useIsomorphicLayoutEffect =\n typeof window === \"undefined\"\n ? (_effect: () => unknown, _deps: unknown[]) => {}\n : useLayoutEffect;\n"],"mappings":";;;AAGA,SAAS,eAAe,YAAY,OAAO,iBAAiB,eAA+B;AA+CvF;AAvCG,IAAM,6BAA6B,cAShC,IAAI;AAWP,SAAS,uBAAuB;AAAA,EACrC,WAAW;AAAA,EACX;AACF,GAGG;AACD,QAAM,YAAY,WAAW,0BAA0B;AACvD,QAAM,QAAQ;AAAA,IACZ,MACE,YAAY,YACR;AAAA,MACE,GAAG;AAAA,MACH,KAAK,CAAC,IAAY,UAAyB,UAAU,IAAI,IAAI,OAAO,IAAI;AAAA,IAC1E,IACA;AAAA,IACN,CAAC,UAAU,SAAS;AAAA,EACtB;AACA,SACE,oBAAC,2BAA2B,UAA3B,EAAoC,OAClC,UACH;AAEJ;AASO,SAAS,kBAAkB,OAAkB,WAAW,OAAgB;AAC7E,QAAM,YAAY,WAAW,0BAA0B;AACvD,QAAM,KAAK,MAAM;AACjB,QAAM,OAAO,OAAO,UAAU,WAAW,QAAQ;AACjD,QAAM,MAAM,WAAW;AACvB,QAAM,UAAU,WAAW;AAC3B,4BAA0B,MAAM;AAC9B,UAAM,IAAI,QAAQ,MAAM,QAAQ;AAAA,EAClC,GAAG,CAAC,IAAI,KAAK,MAAM,QAAQ,CAAC;AAC5B,4BAA0B,MAAM,MAAM,UAAU,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC;AAClE,SAAO,WAAW,UAAU;AAC9B;AAEA,IAAM,4BACJ,OAAO,WAAW,cACd,CAAC,SAAwB,UAAqB;AAAC,IAC/C;","names":[]}
|