@opengeni/react 6.1.0 → 7.0.0-canary.35625901699001

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.
Files changed (214) hide show
  1. package/README.md +83 -2
  2. package/dist/approvals.d.ts +2 -1
  3. package/dist/artifacts-document.js +1 -1
  4. package/dist/artifacts-presentation.js +1 -1
  5. package/dist/artifacts-spreadsheet.js +1 -1
  6. package/dist/artifacts.js +3 -3
  7. package/dist/{browser-viewer-NTD6UIPR.js → browser-viewer-LGH4IP47.js} +3 -3
  8. package/dist/capability-catalog-row.d.ts +20 -0
  9. package/dist/capability-logo-fallback.d.ts +3 -0
  10. package/dist/{chunk-NOSYBS2D.js → chunk-2VHARTBL.js} +2 -1
  11. package/dist/{chunk-VRBL3F5E.js → chunk-5GAL23FF.js} +10 -2
  12. package/dist/{chunk-VRBL3F5E.js.map → chunk-5GAL23FF.js.map} +1 -1
  13. package/dist/chunk-5UONOQ3Y.js +635 -0
  14. package/dist/chunk-5UONOQ3Y.js.map +1 -0
  15. package/dist/{chunk-NYESIADM.js → chunk-AKOMC3VO.js} +3 -3
  16. package/dist/chunk-AKOMC3VO.js.map +1 -0
  17. package/dist/chunk-BRM6FVZA.js +302 -0
  18. package/dist/chunk-BRM6FVZA.js.map +1 -0
  19. package/dist/{chunk-KANFU34B.js → chunk-DBPVUGQT.js} +11 -2
  20. package/dist/chunk-DBPVUGQT.js.map +1 -0
  21. package/dist/chunk-FHIGTPME.js +1589 -0
  22. package/dist/chunk-FHIGTPME.js.map +1 -0
  23. package/dist/{chunk-5M6VTFJ5.js → chunk-GBPCZH3Y.js} +2 -2
  24. package/dist/{chunk-YBM6CQRU.js → chunk-GEN54DU5.js} +4 -4
  25. package/dist/{chunk-UMECRJRV.js → chunk-HJ5VJ4JB.js} +21 -12
  26. package/dist/chunk-HJ5VJ4JB.js.map +1 -0
  27. package/dist/{chunk-R4KRSFGA.js → chunk-IP4BUBKH.js} +3 -3
  28. package/dist/{chunk-NLTS7JHI.js → chunk-JPHDWKZE.js} +5 -5
  29. package/dist/{chunk-TDSEILUH.js → chunk-MI6ALLLD.js} +1297 -1535
  30. package/dist/chunk-MI6ALLLD.js.map +1 -0
  31. package/dist/{chunk-ICA6R6TW.js → chunk-OWHPKAOV.js} +28 -20
  32. package/dist/chunk-OWHPKAOV.js.map +1 -0
  33. package/dist/{chunk-24M4YBCL.js → chunk-PNAVEK2U.js} +4 -4
  34. package/dist/{chunk-L2NBTKRX.js → chunk-TXCBE32L.js} +203 -19
  35. package/dist/chunk-TXCBE32L.js.map +1 -0
  36. package/dist/{chunk-45XEUVTK.js → chunk-UXE5SSNN.js} +293 -463
  37. package/dist/chunk-UXE5SSNN.js.map +1 -0
  38. package/dist/{chunk-PEI6RANI.js → chunk-VR4Z73EU.js} +203 -9
  39. package/dist/chunk-VR4Z73EU.js.map +1 -0
  40. package/dist/{chunk-HUIKIDM5.js → chunk-XMXRI5JK.js} +65 -18
  41. package/dist/chunk-XMXRI5JK.js.map +1 -0
  42. package/dist/client.d.ts +1 -1
  43. package/dist/components/artifacts/spreadsheet-general-display.d.ts +24 -0
  44. package/dist/components/chat-composer.d.ts +13 -3
  45. package/dist/components/markdown.d.ts +6 -3
  46. package/dist/components/message-timeline.d.ts +7 -2
  47. package/dist/components/preview-loading.d.ts +2 -0
  48. package/dist/components/session-capability-frame.d.ts +24 -0
  49. package/dist/components/session-chrome.d.ts +1 -2
  50. package/dist/components/session-commands.d.ts +6 -0
  51. package/dist/components/session-connection-request.d.ts +8 -0
  52. package/dist/components/session-conversation.d.ts +3 -0
  53. package/dist/components/session-mcp-capability-card.d.ts +22 -0
  54. package/dist/components/timeline-search.d.ts +34 -0
  55. package/dist/composer.js +7 -7
  56. package/dist/connect-account-identity.d.ts +8 -0
  57. package/dist/connect-accounts.d.ts +5 -0
  58. package/dist/connect-chooser.d.ts +6 -0
  59. package/dist/connect-panel.d.ts +9 -2
  60. package/dist/connect-setup.d.ts +5 -1
  61. package/dist/connect.d.ts +5 -21
  62. package/dist/connect.js +1268 -584
  63. package/dist/connect.js.map +1 -1
  64. package/dist/connection-catalog.d.ts +6 -1
  65. package/dist/connection-discovery.d.ts +12 -0
  66. package/dist/connection-installed.d.ts +1 -0
  67. package/dist/connection-logo.d.ts +5 -2
  68. package/dist/connection-service-logo.d.ts +8 -0
  69. package/dist/connection-service-presentation.d.ts +13 -0
  70. package/dist/connection-skeleton.d.ts +5 -0
  71. package/dist/discovery-cache.d.ts +5 -0
  72. package/dist/hooks/use-codex-accounts.d.ts +11 -5
  73. package/dist/hooks/use-connect.d.ts +22 -0
  74. package/dist/hooks/use-session-events.d.ts +5 -0
  75. package/dist/hooks/use-session-mcp-approval-policy.d.ts +2 -2
  76. package/dist/hooks/use-workspace-sessions.d.ts +2 -0
  77. package/dist/index.d.ts +8 -2
  78. package/dist/index.js +771 -793
  79. package/dist/index.js.map +1 -1
  80. package/dist/interaction.js +2 -2
  81. package/dist/machines.js +2 -2
  82. package/dist/mcp-connection-status.d.ts +14 -0
  83. package/dist/{model-policy-picker-menu-3R336DP2.js → model-policy-picker-menu-RVOQ4ZZG.js} +4 -4
  84. package/dist/model-policy.d.ts +6 -2
  85. package/dist/model-policy.js +1 -1
  86. package/dist/{platform-activity-row-DUE2W74J.js → platform-activity-row-HLOH7FW4.js} +9 -4
  87. package/dist/platform-activity-row-HLOH7FW4.js.map +1 -0
  88. package/dist/plugin-discovery.d.ts +6 -0
  89. package/dist/{queue-surface-implementation-LK3S4BIW.js → queue-surface-implementation-3RIFK2BS.js} +4 -4
  90. package/dist/realtime.js +22 -22
  91. package/dist/realtime.js.map +1 -1
  92. package/dist/session-auth-recommendation.d.ts +5 -0
  93. package/dist/session-capability-policy.d.ts +12 -0
  94. package/dist/session-ui.d.ts +2 -0
  95. package/dist/session-ui.js +14 -12
  96. package/dist/session.d.ts +1 -0
  97. package/dist/session.js +6 -4
  98. package/dist/skill-discovery.d.ts +11 -0
  99. package/dist/timeline/compaction-copy.d.ts +10 -0
  100. package/dist/timeline/projection.d.ts +3 -1
  101. package/dist/timeline/tool-display-name.d.ts +2 -1
  102. package/dist/timeline/turn-summary.d.ts +2 -2
  103. package/dist/timeline/types.d.ts +24 -2
  104. package/dist/{timeline-annotation-markers-DRSTLEM6.js → timeline-annotation-markers-OY6OWR3V.js} +2 -2
  105. package/dist/{timeline-annotation-selection-IHLUGVND.js → timeline-annotation-selection-BOXA2TIN.js} +2 -2
  106. package/dist/{timeline-annotations-dialog-6Q53N5FG.js → timeline-annotations-dialog-RGY3MHL3.js} +3 -3
  107. package/package.json +3 -3
  108. package/src/approvals.ts +8 -1
  109. package/src/assets/README.md +8 -0
  110. package/src/assets/gmail.ico +0 -0
  111. package/src/assets/outlook.ico +0 -0
  112. package/src/capability-catalog-row.tsx +94 -0
  113. package/src/capability-logo-fallback.ts +22 -0
  114. package/src/client.ts +0 -9
  115. package/src/components/approval-surface.tsx +12 -2
  116. package/src/components/artifacts/document-editor.tsx +63 -6
  117. package/src/components/artifacts/presentation-editor.tsx +214 -9
  118. package/src/components/artifacts/spreadsheet-canvas.ts +3 -8
  119. package/src/components/artifacts/spreadsheet-general-display.ts +43 -0
  120. package/src/components/artifacts/spreadsheet-grid.tsx +10 -11
  121. package/src/components/chat-composer.tsx +26 -3
  122. package/src/components/composer.tsx +10 -4
  123. package/src/components/human-input-form.tsx +12 -2
  124. package/src/components/markdown.tsx +133 -9
  125. package/src/components/message-timeline.tsx +104 -36
  126. package/src/components/model-picker.tsx +11 -3
  127. package/src/components/model-policy-picker-menu.tsx +10 -3
  128. package/src/components/preview-loading.tsx +154 -0
  129. package/src/components/sandbox-workspace.tsx +20 -36
  130. package/src/components/session-capability-frame.tsx +163 -0
  131. package/src/components/session-chrome.tsx +46 -77
  132. package/src/components/session-commands.tsx +18 -0
  133. package/src/components/session-connection-request.tsx +97 -0
  134. package/src/components/session-conversation.tsx +10 -5
  135. package/src/components/session-mcp-capability-card.tsx +532 -0
  136. package/src/components/session-status.tsx +2 -2
  137. package/src/components/timeline-anchor.tsx +9 -8
  138. package/src/components/timeline-search.tsx +168 -0
  139. package/src/components/user-message-body.tsx +7 -0
  140. package/src/connect-account-identity.tsx +34 -0
  141. package/src/connect-accounts.tsx +114 -52
  142. package/src/connect-chooser.tsx +171 -39
  143. package/src/connect-panel.tsx +73 -9
  144. package/src/connect-setup.tsx +72 -25
  145. package/src/connect.ts +13 -22
  146. package/src/connection-assets.d.ts +4 -0
  147. package/src/connection-catalog.tsx +61 -39
  148. package/src/connection-discovery.tsx +235 -0
  149. package/src/connection-installed.tsx +2 -0
  150. package/src/connection-logo.tsx +18 -10
  151. package/src/connection-service-logo.tsx +55 -0
  152. package/src/connection-service-presentation.ts +46 -0
  153. package/src/connection-skeleton.tsx +16 -0
  154. package/src/conversation-timeline.ts +1 -0
  155. package/src/discovery-cache.ts +42 -0
  156. package/src/hooks/use-codex-accounts.ts +33 -14
  157. package/src/hooks/use-composer.ts +4 -5
  158. package/src/hooks/use-connect.ts +23 -0
  159. package/src/hooks/use-session-events.ts +114 -1
  160. package/src/hooks/use-session-mcp-approval-policy.ts +13 -5
  161. package/src/hooks/use-workspace-sessions.ts +10 -0
  162. package/src/index.ts +22 -2
  163. package/src/mcp-connection-status.ts +35 -0
  164. package/src/model-policy.ts +21 -0
  165. package/src/plugin-details.tsx +8 -5
  166. package/src/plugin-discovery.tsx +92 -72
  167. package/src/realtime/realtime-control.tsx +6 -8
  168. package/src/session-auth-recommendation.ts +48 -0
  169. package/src/session-capability-policy.ts +83 -0
  170. package/src/session-ui.ts +2 -0
  171. package/src/session.ts +1 -0
  172. package/src/skill-discovery.tsx +101 -56
  173. package/src/timeline/compaction-copy.ts +40 -0
  174. package/src/timeline/platform-activity-row.tsx +8 -3
  175. package/src/timeline/projection.ts +78 -2
  176. package/src/timeline/rolling-activity.tsx +4 -2
  177. package/src/timeline/shared.tsx +6 -1
  178. package/src/timeline/startup-timings.tsx +1 -1
  179. package/src/timeline/tool-display-name.ts +8 -6
  180. package/src/timeline/tool-renderers.tsx +5 -3
  181. package/src/timeline/turn-summary.tsx +17 -3
  182. package/src/timeline/types.ts +24 -2
  183. package/styles/compiled.css +325 -27
  184. package/styles/connect.css +90 -15
  185. package/styles/index.css +46 -0
  186. package/styles/session-capability.css +42 -0
  187. package/dist/chunk-45XEUVTK.js.map +0 -1
  188. package/dist/chunk-HQV2I5HV.js +0 -124
  189. package/dist/chunk-HQV2I5HV.js.map +0 -1
  190. package/dist/chunk-HUIKIDM5.js.map +0 -1
  191. package/dist/chunk-ICA6R6TW.js.map +0 -1
  192. package/dist/chunk-IHQII5WO.js +0 -886
  193. package/dist/chunk-IHQII5WO.js.map +0 -1
  194. package/dist/chunk-KANFU34B.js.map +0 -1
  195. package/dist/chunk-L2NBTKRX.js.map +0 -1
  196. package/dist/chunk-NYESIADM.js.map +0 -1
  197. package/dist/chunk-PEI6RANI.js.map +0 -1
  198. package/dist/chunk-TDSEILUH.js.map +0 -1
  199. package/dist/chunk-UMECRJRV.js.map +0 -1
  200. package/dist/hooks/use-packs.d.ts +0 -32
  201. package/dist/platform-activity-row-DUE2W74J.js.map +0 -1
  202. package/src/hooks/use-packs.ts +0 -157
  203. /package/dist/{browser-viewer-NTD6UIPR.js.map → browser-viewer-LGH4IP47.js.map} +0 -0
  204. /package/dist/{chunk-NOSYBS2D.js.map → chunk-2VHARTBL.js.map} +0 -0
  205. /package/dist/{chunk-5M6VTFJ5.js.map → chunk-GBPCZH3Y.js.map} +0 -0
  206. /package/dist/{chunk-YBM6CQRU.js.map → chunk-GEN54DU5.js.map} +0 -0
  207. /package/dist/{chunk-R4KRSFGA.js.map → chunk-IP4BUBKH.js.map} +0 -0
  208. /package/dist/{chunk-NLTS7JHI.js.map → chunk-JPHDWKZE.js.map} +0 -0
  209. /package/dist/{chunk-24M4YBCL.js.map → chunk-PNAVEK2U.js.map} +0 -0
  210. /package/dist/{model-policy-picker-menu-3R336DP2.js.map → model-policy-picker-menu-RVOQ4ZZG.js.map} +0 -0
  211. /package/dist/{queue-surface-implementation-LK3S4BIW.js.map → queue-surface-implementation-3RIFK2BS.js.map} +0 -0
  212. /package/dist/{timeline-annotation-markers-DRSTLEM6.js.map → timeline-annotation-markers-OY6OWR3V.js.map} +0 -0
  213. /package/dist/{timeline-annotation-selection-IHLUGVND.js.map → timeline-annotation-selection-BOXA2TIN.js.map} +0 -0
  214. /package/dist/{timeline-annotations-dialog-6Q53N5FG.js.map → timeline-annotations-dialog-RGY3MHL3.js.map} +0 -0
@@ -455,6 +455,8 @@
455
455
  --container-2xl: 42rem;
456
456
  --container-3xl: 48rem;
457
457
  --container-5xl: 64rem;
458
+ --text-xs: 0.75rem;
459
+ --text-xs--line-height: calc(1 / 0.75);
458
460
  --text-lg: 1.125rem;
459
461
  --text-lg--line-height: calc(1.75 / 1.125);
460
462
  --text-xl: 1.25rem;
@@ -608,6 +610,306 @@
608
610
  --_og-session-chrome-ease: var(--og-session-chrome-ease, var(--og-ease-out));
609
611
  --_og-session-chrome-row-hover: var(--og-session-chrome-row-hover, var(--og-color-surface-3));
610
612
  }
613
+ :where(.og-root).og-session-capability,:where(.og-root) .og-session-capability {
614
+ width: 100%;
615
+ max-width: 540px;
616
+ color: var(--og-color-fg);
617
+ font-family: var(--og-font-sans,inherit);
618
+ }
619
+ :where(.og-root).og-session-capability-shell,:where(.og-root) .og-session-capability-shell {
620
+ border: 1px solid var(--og-color-border);
621
+ border-radius: 12px;
622
+ background: var(--og-color-surface-1);
623
+ overflow: hidden;
624
+ }
625
+ :where(.og-root).og-session-capability-header,:where(.og-root) .og-session-capability-header {
626
+ display: flex;
627
+ align-items: center;
628
+ gap: 12px;
629
+ padding: 18px 19px 12px;
630
+ }
631
+ :where(.og-root).og-session-capability-logo,:where(.og-root) .og-session-capability-logo {
632
+ display: flex;
633
+ align-items: center;
634
+ justify-content: center;
635
+ width: 41px;
636
+ height: 41px;
637
+ flex-shrink: 0;
638
+ border: 1px solid var(--og-color-border);
639
+ border-radius: 10px;
640
+ background: var(--og-color-surface-2);
641
+ font-size: 13px;
642
+ font-weight: 600;
643
+ overflow: hidden;
644
+ }
645
+ :where(.og-root).og-session-capability-logo img,:where(.og-root) .og-session-capability-logo img {
646
+ width: 100%;
647
+ height: 100%;
648
+ object-fit: contain;
649
+ padding: 6px;
650
+ box-sizing: border-box;
651
+ }
652
+ :where(.og-root).og-session-capability-identity,:where(.og-root) .og-session-capability-identity {
653
+ flex: 1;
654
+ min-width: 0;
655
+ display: grid;
656
+ gap: 4px;
657
+ overflow-wrap: anywhere;
658
+ }
659
+ :where(.og-root).og-session-capability-identity h3,:where(.og-root) .og-session-capability-identity h3 {
660
+ margin: 0;
661
+ font-size: 14px;
662
+ font-weight: 600;
663
+ }
664
+ :where(.og-root).og-session-capability-identity span,:where(.og-root) .og-session-capability-identity span {
665
+ font-size: 11px;
666
+ color: var(--og-color-fg-muted);
667
+ }
668
+ :where(.og-root).og-session-capability-type,:where(.og-root) .og-session-capability-type {
669
+ flex-shrink: 0;
670
+ padding: 4px 7px;
671
+ border-radius: 5px;
672
+ background: var(--og-color-surface-2);
673
+ font-size: 10px;
674
+ }
675
+ :where(.og-root).og-session-capability-copy,:where(.og-root) .og-session-capability-copy {
676
+ margin: 0;
677
+ padding: 0 19px 12px;
678
+ font-size: 12px;
679
+ line-height: 1.7;
680
+ color: var(--og-color-fg-muted);
681
+ overflow-wrap: anywhere;
682
+ }
683
+ :where(.og-root).og-session-capability-actions,:where(.og-root) .og-session-capability-actions {
684
+ display: flex;
685
+ flex-wrap: wrap;
686
+ align-items: center;
687
+ justify-content: space-between;
688
+ gap: 12px;
689
+ padding: 0 19px 14px;
690
+ }
691
+ :where(.og-root).og-session-capability-actions > span,:where(.og-root) .og-session-capability-actions > span {
692
+ display: flex;
693
+ align-items: center;
694
+ gap: 8px;
695
+ font-size: 11px;
696
+ color: var(--og-color-fg-muted);
697
+ }
698
+ :where(.og-root).og-session-capability-actions button,:where(.og-root) .og-session-capability-actions button {
699
+ margin-left: auto;
700
+ min-height: 35px;
701
+ border: 0;
702
+ padding: 8px 13px;
703
+ border-radius: 7px;
704
+ color: var(--og-color-accent-fg,#fff);
705
+ background: var(--og-color-accent-deep,#006cdb);
706
+ font: inherit;
707
+ font-size: 12px;
708
+ cursor: pointer;
709
+ }
710
+ :where(.og-root).og-session-capability-note,:where(.og-root) .og-session-capability-note {
711
+ margin: 10px 0 0;
712
+ font-size: 10px;
713
+ line-height: 1.6;
714
+ color: var(--og-color-fg-muted);
715
+ }
716
+ :where(.og-root).og-session-capability :focus-visible,:where(.og-root) .og-session-capability :focus-visible,:where(.og-root) .og-session-capability-dialog :focus-visible,:where(.og-root) .og-session-capability-dialog :focus-visible {
717
+ outline: 2px solid var(--og-color-accent);
718
+ outline-offset: 3px;
719
+ }
720
+ :where(.og-root).og-session-capability-overlay,:where(.og-root) .og-session-capability-overlay {
721
+ position: fixed;
722
+ inset: 0;
723
+ z-index: 1000;
724
+ background: rgb(0 0 0 / .4);
725
+ }
726
+ :where(.og-root).og-session-capability-dialog,:where(.og-root) .og-session-capability-dialog {
727
+ position: fixed;
728
+ top: 50%;
729
+ left: 50%;
730
+ transform: translate(-50%,-50%);
731
+ z-index: 1001;
732
+ width: min(42rem,calc(100vw - 32px));
733
+ max-height: calc(100dvh - 32px);
734
+ display: flex;
735
+ flex-direction: column;
736
+ overflow: hidden;
737
+ border: 1px solid var(--og-color-border);
738
+ border-radius: 16px;
739
+ background: var(--og-color-surface-1);
740
+ color: var(--og-color-fg);
741
+ font-family: var(--og-font-sans,inherit);
742
+ box-shadow: 0 16px 48px rgb(0 0 0 / .2);
743
+ }
744
+ :where(.og-root).og-session-capability-dialog-header,:where(.og-root) .og-session-capability-dialog-header {
745
+ display: flex;
746
+ align-items: center;
747
+ gap: 12px;
748
+ padding: 24px;
749
+ border-bottom: 1px solid var(--og-color-border);
750
+ }
751
+ :where(.og-root).og-session-capability-dialog-header > div,:where(.og-root) .og-session-capability-dialog-header > div {
752
+ flex: 1;
753
+ min-width: 0;
754
+ }
755
+ :where(.og-root).og-session-capability-dialog-header h2,:where(.og-root) .og-session-capability-dialog-header h2 {
756
+ margin: 0;
757
+ font-size: 20px;
758
+ font-weight: 600;
759
+ overflow-wrap: anywhere;
760
+ }
761
+ :where(.og-root).og-session-capability-dialog-header p,:where(.og-root) .og-session-capability-dialog-header p {
762
+ margin: 4px 0 0;
763
+ color: var(--og-color-fg-muted);
764
+ font-size: 12px;
765
+ }
766
+ :where(.og-root).og-session-capability-dialog-header > button,:where(.og-root) .og-session-capability-dialog-header > button {
767
+ border: 0;
768
+ background: transparent;
769
+ color: inherit;
770
+ padding: 8px;
771
+ cursor: pointer;
772
+ }
773
+ :where(.og-root).og-session-capability-dialog-body,:where(.og-root) .og-session-capability-dialog-body {
774
+ min-height: 0;
775
+ overflow-y: auto;
776
+ }
777
+ :where(.og-root).og-session-capability-dialog:has(.og-session-capability-setup),:where(.og-root) .og-session-capability-dialog:has(.og-session-capability-setup) {
778
+ width: min(32rem,calc(100vw - 32px));
779
+ }
780
+ :where(.og-root).og-session-capability-setup,:where(.og-root) .og-session-capability-setup {
781
+ padding: 24px;
782
+ display: grid;
783
+ gap: 16px;
784
+ font-size: 13px;
785
+ }
786
+ :where(.og-root).og-session-capability-setup > p,:where(.og-root) .og-session-capability-setup > p {
787
+ margin: 0;
788
+ line-height: 1.6;
789
+ }
790
+ :where(.og-root).og-session-capability-setup label,:where(.og-root) .og-session-capability-setup label {
791
+ display: flex;
792
+ align-items: start;
793
+ gap: 8px;
794
+ line-height: 1.6;
795
+ }
796
+ :where(.og-root).og-session-capability-setup button,:where(.og-root) .og-session-capability-setup button {
797
+ font: inherit;
798
+ padding: 9px 12px;
799
+ border-radius: 7px;
800
+ border: 1px solid var(--og-color-border);
801
+ background: var(--og-color-surface-2);
802
+ color: inherit;
803
+ cursor: pointer;
804
+ }
805
+ :where(.og-root).og-session-capability-setup button:disabled,:where(.og-root) .og-session-capability-setup button:disabled {
806
+ opacity: .55;
807
+ cursor: not-allowed;
808
+ }
809
+ :where(.og-root).og-session-capability-setup [role=alert],:where(.og-root) .og-session-capability-setup [role=alert] {
810
+ color: var(--og-color-danger,#b42318);
811
+ }
812
+ :where(.og-root).og-session-capability-shell[data-state="complete"],:where(.og-root) .og-session-capability-shell[data-state="complete"] {
813
+ border-color: var(--og-color-status-success,#16804a);
814
+ @supports (color: color-mix(in lab, red, red)) {
815
+ border-color: color-mix(in srgb,var(--og-color-status-success,#16804a) 35%,var(--og-color-border));
816
+ }
817
+ }
818
+ :where(.og-root).og-session-capability-shell[data-state="complete"] .og-session-capability-header > svg,:where(.og-root) .og-session-capability-shell[data-state="complete"] .og-session-capability-header > svg,:where(.og-root) .og-session-capability-shell[data-state="complete"] .og-session-capability-copy,:where(.og-root) .og-session-capability-shell[data-state="complete"] .og-session-capability-copy {
819
+ color: var(--og-color-status-success,#16804a);
820
+ }
821
+ :where(.og-root).og-session-capability-shell[data-state="complete"] .og-session-capability-copy,:where(.og-root) .og-session-capability-shell[data-state="complete"] .og-session-capability-copy {
822
+ font-weight: 500;
823
+ }
824
+ :where(.og-root).og-session-capability-setup fieldset,:where(.og-root) .og-session-capability-setup fieldset {
825
+ display: grid;
826
+ gap: 10px;
827
+ margin: 0;
828
+ padding: 0;
829
+ border: 0;
830
+ min-width: 0;
831
+ }
832
+ :where(.og-root).og-session-capability-setup legend,:where(.og-root) .og-session-capability-setup legend {
833
+ padding: 0 0 10px;
834
+ font-weight: 600;
835
+ }
836
+ :where(.og-root).og-session-capability-setup input,:where(.og-root) .og-session-capability-setup input {
837
+ margin-top: 4px;
838
+ accent-color: var(--og-color-accent-deep,#006cdb);
839
+ }
840
+ :where(.og-root).og-session-capability-setup .og-session-capability-scope,:where(.og-root) .og-session-capability-setup .og-session-capability-scope {
841
+ color: var(--og-color-fg-muted);
842
+ font-size: 12px;
843
+ }
844
+ :where(.og-root).og-session-capability-setup .og-session-capability-primary,:where(.og-root) .og-session-capability-setup .og-session-capability-primary {
845
+ justify-self: end;
846
+ min-height: 40px;
847
+ padding: 10px 16px;
848
+ border: 0;
849
+ background: var(--og-color-accent-deep,#006cdb);
850
+ color: var(--og-color-accent-fg,#fff);
851
+ font-weight: 500;
852
+ }
853
+ :where(.og-root).og-session-capability-setup .og-session-capability-primary:hover:not(:disabled),:where(.og-root) .og-session-capability-setup .og-session-capability-primary:hover:not(:disabled) {
854
+ filter: brightness(.94);
855
+ }
856
+ :where(.og-root).og-session-capability-progress,:where(.og-root) .og-session-capability-progress {
857
+ color: var(--og-color-fg-muted);
858
+ padding-block: 8px;
859
+ }
860
+ @media (pointer:coarse) {
861
+ :where(.og-root).og-session-capability-actions button,:where(.og-root) .og-session-capability-actions button,:where(.og-root).og-session-capability-setup button,:where(.og-root) .og-session-capability-setup button {
862
+ min-height: 44px;
863
+ }
864
+ }
865
+ :where(.og-root).og-preview-loading,:where(.og-root) .og-preview-loading {
866
+ --_og-preview-ink: #bca3ef;
867
+ --_og-preview-glow: #8f6ccc;
868
+ position: relative;
869
+ width: 100%;
870
+ overflow: hidden;
871
+ border-radius: 10px;
872
+ background: #17161d;
873
+ container: og-preview / inline-size;
874
+ }
875
+ :where(.og-root):is([data-og-theme="light"], .og-light) .og-preview-loading, :is([data-og-theme="light"], .og-light) :where(.og-root) .og-preview-loading,:where(.og-root) :is([data-og-theme="light"], .og-light) .og-preview-loading {
876
+ --_og-preview-ink: #76629c;
877
+ --_og-preview-glow: #ba8ee0;
878
+ background: #faf9fd;
879
+ }
880
+ :where(.og-root).og-preview-loading canvas,:where(.og-root) .og-preview-loading canvas {
881
+ display: block;
882
+ width: 100%;
883
+ height: 320px;
884
+ background-image: radial-gradient(circle, var(--_og-preview-ink) 1px, transparent 1px);
885
+ @supports (color: color-mix(in lab, red, red)) {
886
+ background-image: radial-gradient(circle, color-mix(in srgb, var(--_og-preview-ink) 30%, transparent) 1px, transparent 1px);
887
+ }
888
+ background-size: 18px 18px;
889
+ }
890
+ :where(.og-root).og-preview-loading canvas[data-painted="true"],:where(.og-root) .og-preview-loading canvas[data-painted="true"] {
891
+ background-image: none;
892
+ }
893
+ :where(.og-root).og-preview-loading-label,:where(.og-root) .og-preview-loading-label {
894
+ position: absolute;
895
+ left: 16px;
896
+ bottom: 14px;
897
+ color: var(--og-color-fg-muted);
898
+ font-family: var(--og-font-sans);
899
+ font-size: var(--og-font-size-xs);
900
+ line-height: var(--og-line-height-xs);
901
+ font-weight: 400;
902
+ }
903
+ @container og-preview (max-width: 500px) {
904
+ :where(.og-root).og-preview-loading canvas,:where(.og-root) .og-preview-loading canvas {
905
+ height: 260px;
906
+ }
907
+ }
908
+ @media (max-width: 500px) {
909
+ :where(.og-root).og-preview-loading canvas,:where(.og-root) .og-preview-loading canvas {
910
+ height: 260px;
911
+ }
912
+ }
611
913
  .og-root :where([hidden]:not([hidden="until-found"])) {
612
914
  display: none !important;
613
915
  }
@@ -1743,9 +2045,6 @@
1743
2045
  :where(.og-root).max-w-64,:where(.og-root) .max-w-64 {
1744
2046
  max-width: calc(var(--spacing) * 64);
1745
2047
  }
1746
- :where(.og-root).max-w-\[8\.5rem\],:where(.og-root) .max-w-\[8\.5rem\] {
1747
- max-width: 8.5rem;
1748
- }
1749
2048
  :where(.og-root).max-w-\[11rem\],:where(.og-root) .max-w-\[11rem\] {
1750
2049
  max-width: 11rem;
1751
2050
  }
@@ -3224,6 +3523,10 @@
3224
3523
  font-size: var(--text-xl);
3225
3524
  line-height: var(--tw-leading, var(--text-xl--line-height));
3226
3525
  }
3526
+ :where(.og-root).text-xs,:where(.og-root) .text-xs {
3527
+ font-size: var(--text-xs);
3528
+ line-height: var(--tw-leading, var(--text-xs--line-height));
3529
+ }
3227
3530
  :where(.og-root).text-\[10px\],:where(.og-root) .text-\[10px\] {
3228
3531
  font-size: 10px;
3229
3532
  }
@@ -3389,12 +3692,6 @@
3389
3692
  :where(.og-root).text-og-fg-subtle,:where(.og-root) .text-og-fg-subtle {
3390
3693
  color: var(--og-color-fg-subtle);
3391
3694
  }
3392
- :where(.og-root).text-og-fg-subtle\/60,:where(.og-root) .text-og-fg-subtle\/60 {
3393
- color: var(--og-color-fg-subtle);
3394
- @supports (color: color-mix(in lab, red, red)) {
3395
- color: color-mix(in oklab, var(--og-color-fg-subtle) 60%, transparent);
3396
- }
3397
- }
3398
3695
  :where(.og-root).text-og-fg-subtle\/70,:where(.og-root) .text-og-fg-subtle\/70 {
3399
3696
  color: var(--og-color-fg-subtle);
3400
3697
  @supports (color: color-mix(in lab, red, red)) {
@@ -3458,6 +3755,9 @@
3458
3755
  :where(.og-root).capitalize,:where(.og-root) .capitalize {
3459
3756
  text-transform: capitalize;
3460
3757
  }
3758
+ :where(.og-root).lowercase,:where(.og-root) .lowercase {
3759
+ text-transform: lowercase;
3760
+ }
3461
3761
  :where(.og-root).normal-case,:where(.og-root) .normal-case {
3462
3762
  text-transform: none;
3463
3763
  }
@@ -3900,13 +4200,6 @@
3900
4200
  }
3901
4201
  }
3902
4202
  }
3903
- :where(.og-root).group-hover\:text-og-fg,:where(.og-root) .group-hover\:text-og-fg {
3904
- &:is(:where(.group):hover *) {
3905
- @media (hover: hover) {
3906
- color: var(--og-color-fg);
3907
- }
3908
- }
3909
- }
3910
4203
  :where(.og-root).group-hover\:opacity-100,:where(.og-root) .group-hover\:opacity-100 {
3911
4204
  &:is(:where(.group):hover *) {
3912
4205
  @media (hover: hover) {
@@ -4176,6 +4469,11 @@
4176
4469
  padding-top: calc(var(--spacing) * 0);
4177
4470
  }
4178
4471
  }
4472
+ :where(.og-root).first\:pt-1,:where(.og-root) .first\:pt-1 {
4473
+ &:first-child {
4474
+ padding-top: calc(var(--spacing) * 1);
4475
+ }
4476
+ }
4179
4477
  :where(.og-root).first\:pl-0,:where(.og-root) .first\:pl-0 {
4180
4478
  &:first-child {
4181
4479
  padding-left: calc(var(--spacing) * 0);
@@ -5232,11 +5530,6 @@
5232
5530
  width: auto;
5233
5531
  }
5234
5532
  }
5235
- :where(.og-root).sm\:max-w-\[12rem\],:where(.og-root) .sm\:max-w-\[12rem\] {
5236
- @media (width >= 40rem) {
5237
- max-width: 12rem;
5238
- }
5239
- }
5240
5533
  :where(.og-root).sm\:max-w-\[32rem\],:where(.og-root) .sm\:max-w-\[32rem\] {
5241
5534
  @media (width >= 40rem) {
5242
5535
  max-width: 32rem;
@@ -5418,12 +5711,6 @@
5418
5711
  margin-inline: calc(19px * -1);
5419
5712
  }
5420
5713
  }
5421
- :where(.og-root).pointer-coarse\:size-5,:where(.og-root) .pointer-coarse\:size-5 {
5422
- @media (pointer: coarse) {
5423
- width: calc(var(--spacing) * 5);
5424
- height: calc(var(--spacing) * 5);
5425
- }
5426
- }
5427
5714
  :where(.og-root).pointer-coarse\:size-9,:where(.og-root) .pointer-coarse\:size-9 {
5428
5715
  @media (pointer: coarse) {
5429
5716
  width: calc(var(--spacing) * 9);
@@ -5547,6 +5834,17 @@
5547
5834
  color: var(--color-fg-muted);
5548
5835
  }
5549
5836
  }
5837
+ :where(.og-root).\[\&\+section\]\:border-t,:where(.og-root) .\[\&\+section\]\:border-t {
5838
+ &+section {
5839
+ border-top-style: var(--tw-border-style);
5840
+ border-top-width: 1px;
5841
+ }
5842
+ }
5843
+ :where(.og-root).\[\&\+section\]\:border-og-border,:where(.og-root) .\[\&\+section\]\:border-og-border {
5844
+ &+section {
5845
+ border-color: var(--og-color-border);
5846
+ }
5847
+ }
5550
5848
  :where(.og-root).\[\&\:\:-webkit-details-marker\]\:hidden,:where(.og-root) .\[\&\:\:-webkit-details-marker\]\:hidden {
5551
5849
  &::-webkit-details-marker {
5552
5850
  display: none;
@@ -1,3 +1,4 @@
1
+ @import "./session-capability.css";
1
2
  /* Opt-in, scoped styles. No document-level resets or Tailwind dependency. */
2
3
  .og-connect {
3
4
  font-family: var(--og-font-sans, system-ui, sans-serif);
@@ -7,6 +8,7 @@
7
8
  min-width: 0;
8
9
  }
9
10
  .og-connect :where(*, *::before, *::after) { box-sizing: border-box; }
11
+ .og-connect [hidden] { display:none !important; }
10
12
  .og-connect :where(select, input, label) { min-width: 0; }
11
13
  .og-connect select { width: 100%; }
12
14
  .og-connect :where(section, form, fieldset, ul, li, [role="group"]) {
@@ -47,6 +49,24 @@
47
49
  .og-connect :where(button, select, input, section, li) { border-color: ButtonText; }
48
50
  }
49
51
  /* Host-independent catalogue: override --og-* tokens or the scoped classes. */
52
+ .og-capability-catalog-row { display:flex; align-items:center; gap:12px; width:100%; min-width:0; min-height:76px; padding:14px 12px; border:0; border-radius:var(--og-radius-lg,14px); background:transparent; color:var(--og-color-fg,inherit); text-align:left; cursor:pointer; font-family:var(--og-font-sans,system-ui,sans-serif); font-size:14px; line-height:1.5; box-sizing:border-box; }
53
+ .og-capability-catalog-row:hover:not(:disabled) { background:var(--og-color-surface-2,color-mix(in srgb,currentColor 7%,transparent)); }
54
+ .og-capability-catalog-row:focus-visible { outline:2px solid var(--og-color-accent,currentColor); outline-offset:2px; }
55
+ .og-capability-catalog-row:disabled { cursor:not-allowed; }
56
+ .og-capability-catalog-icon { display:grid; place-items:center; flex-shrink:0; width:40px; height:40px; border-radius:var(--og-radius-md,10px); }
57
+ .og-capability-catalog-icon > svg { width:24px; height:24px; color:var(--og-color-fg-muted,inherit); }
58
+ .og-capability-catalog-copy { display:grid; gap:3px; flex:1; min-width:0; }
59
+ .og-capability-catalog-copy strong { font-size:14px; font-weight:500; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
60
+ .og-capability-catalog-copy > span { color:var(--og-color-fg-muted,inherit); font-size:12px; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; overflow-wrap:anywhere; }
61
+ .og-capability-catalog-indicator { display:flex; align-items:center; justify-content:flex-end; gap:6px; flex-shrink:0; color:var(--og-color-fg-muted,inherit); }
62
+ .og-capability-catalog-indicator > svg { width:18px; height:18px; flex-shrink:0; }
63
+ .og-capability-catalog-indicator[data-status="attention"], .og-capability-catalog-indicator[data-status="unavailable"] { color:var(--og-color-status-waiting,var(--og-color-fg-muted,inherit)); }
64
+ .og-capability-catalog-notice { font-size:12px; max-width:10rem; overflow-wrap:anywhere; }
65
+ .og-capability-catalog-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
66
+ .og-capability-catalog-indicator[data-status="loading"] > svg { animation:og-catalog-spin 1s linear infinite; }
67
+ @keyframes og-catalog-spin { to { transform:rotate(360deg); } }
68
+ @media(prefers-reduced-motion:reduce) { .og-capability-catalog-indicator[data-status="loading"] > svg { animation:none; } }
69
+ @media(max-width:480px) { .og-capability-catalog-notice { max-width:6rem; } }
50
70
  .og-connection-catalog { display: grid; gap: 4px; color: var(--og-color-fg, inherit); font-family: var(--og-font-sans, system-ui, sans-serif); }
51
71
  .og-connection-catalog-row { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 64px; padding: 10px 12px; border: 0; border-radius: var(--og-radius-sm, 8px); background: transparent; color: inherit; text-align: left; cursor: pointer; font: inherit; }
52
72
  .og-connection-catalog-row:hover { background: var(--og-color-surface-2, #f3f4f5); }
@@ -64,8 +84,8 @@
64
84
  .og-connection-catalog-service[open] .og-connection-group-chevron { transform:rotate(180deg); }
65
85
  .og-connection-catalog-options { margin:0 12px 8px 60px; border-top:1px solid var(--og-color-border, #e4e6e8); padding-top:4px; }
66
86
  .og-connection-option + .og-connection-option { border-top:1px solid var(--og-color-border, #e4e6e8); }
67
- .og-connection-option .og-connection-catalog-row { min-height:48px; padding:8px 0; gap:8px; }
68
- .og-connection-option .og-connection-catalog-copy strong { font-size:13px; }
87
+ .og-connection-option .og-capability-catalog-row { min-height:56px; padding:8px 0; gap:8px; }
88
+ .og-connection-option .og-capability-catalog-copy strong { font-size:13px; }
69
89
  .og-connection-option .og-connection-catalog-status { font-size:11px; }
70
90
  .og-connection-option-action { display:grid; place-items:center; width:32px; flex-shrink:0; }
71
91
  .og-connection-option-chevron { opacity:.5; font-size:20px; pointer-events:none; }
@@ -87,10 +107,42 @@
87
107
  .og-connection-type-picker input { position:absolute; opacity:0; width:1px; height:1px; }
88
108
  .og-connection-type-picker label:focus-within { outline:2px solid var(--og-color-accent,currentColor); outline-offset:2px; }
89
109
  .og-connection-catalog-action-row { display:flex; align-items:center; gap:8px; min-width:0; }
90
- .og-connection-catalog-action-row > .og-connection-catalog-row { flex:1; min-width:0; }
110
+ .og-connection-catalog-action-row > .og-capability-catalog-row { flex:1; min-width:0; }
91
111
  .og-connect [hidden] { display:none !important; }
92
112
  .og-connect .og-connection-catalog-row { width:100%; border:0; border-radius:var(--og-radius-sm,8px); }
93
113
  .og-connect .og-connection-catalog-copy > span { white-space:normal; }
114
+ .og-connect { font-size:14px; }
115
+ .og-connect h3 { margin:0; font-size:13px; font-weight:600; }
116
+ .og-connect .og-capability-catalog-row { width:100%; border:0; box-shadow:none; min-height:60px; padding:10px; }
117
+ .og-connect .og-connection-logo { background:var(--og-color-surface-2,#f1f3f5); color:var(--og-color-fg-muted,#545b66); border:1px solid var(--og-color-border,#e5e7eb); }
118
+ .og-connect .og-connect-secondary { border-top:1px solid var(--og-color-border,#e5e7eb); padding-top:12px; }
119
+ .og-connect .og-connect-secondary > summary { cursor:pointer; font-size:13px; padding:8px 0; }
120
+ .og-connect .og-connect-secondary > summary > span { margin-left:8px; opacity:.5; font-size:12px; }
121
+ .og-connect .og-connect-account { padding:0; border:0; gap:0; }
122
+ .og-connect .og-connect-account + .og-connect-account { padding-top:0; border-top:1px solid var(--og-color-border,#e5e7eb); }
123
+ .og-connect .og-connect-account-details { width:100%; }
124
+ .og-connect .og-connect-account-heading { display:flex; align-items:center; gap:12px; min-width:0; min-height:68px; padding:12px 8px; cursor:pointer; border-radius:8px; list-style:none; }
125
+ .og-connect .og-connect-account-heading::-webkit-details-marker { display:none; }
126
+ .og-connect .og-connect-account-heading:hover { background:var(--og-color-bg-muted,#f5f5f5); }
127
+ .og-connect .og-connect-account-heading:focus-visible { outline:2px solid var(--og-color-primary,#0066ff); outline-offset:2px; }
128
+ .og-connect .og-connect-account-chevron { flex:none; transition:transform .15s; }
129
+ .og-connect .og-connect-account-details[open] .og-connect-account-chevron { transform:rotate(90deg); }
130
+ @media(prefers-reduced-motion:reduce) { .og-connect .og-connect-account-chevron { transition:none; } }
131
+ .og-connect .og-connect-account-heading > div { flex:1; min-width:0; }
132
+ .og-connect .og-connect-account-heading strong { display:block; font-size:14px; font-weight:500; overflow-wrap:anywhere; }
133
+ .og-connect .og-connect-account-heading small { display:block; font-size:12px; opacity:.65; margin-top:3px; }
134
+ .og-connect .og-connect-account-status { font-size:12px; }
135
+ .og-connect .og-connect-account-status[data-status="connected"] { color:var(--og-color-success,#17804a); }
136
+ .og-connect .og-connect-account-actions { display:flex; flex-wrap:wrap; gap:8px; padding:0 8px 12px 60px; }
137
+ .og-connect .og-connect-account-actions [role="group"] { width:100%; }
138
+ .og-connect .og-connection-discovery-results { height:360px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
139
+ .og-connection-skeleton-row { display:flex; align-items:center; gap:12px; height:68px; padding:10px; box-sizing:border-box; }
140
+ .og-connection-skeleton-mark { display:block; width:40px; height:40px; flex:none; border-radius:9px; background:var(--og-color-surface-2,#edf0f3); }
141
+ .og-connection-skeleton-copy { display:grid; gap:8px; flex:1; }
142
+ .og-connection-skeleton-copy > span { display:block; height:10px; width:70%; border-radius:3px; background:var(--og-color-surface-2,#edf0f3); }
143
+ .og-connection-skeleton-copy > span:first-child { width:28%; height:12px; }
144
+ .og-connect .og-connection-discovery-results .og-capability-catalog-row { min-height:68px; }
145
+ .og-connect .og-connection-discovery > label input { width:100%; }
94
146
  .og-connection-logo { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; box-sizing:border-box; padding:var(--og-connection-icon-padding, 0px); overflow:hidden; border-radius:var(--og-connection-icon-radius, 9px); background:var(--og-connection-icon-background, transparent); color:var(--og-connection-icon-color, inherit); font-size:14px; font-weight:600; }
95
147
  .og-connection-logo img { width:100%; height:100%; object-fit:contain; padding:0; border:0; border-radius:calc(var(--og-connection-icon-radius, 9px) - var(--og-connection-icon-padding, 0px)); background:transparent; }
96
148
  @media (min-width: 720px) { .og-connection-catalog[data-columns="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; align-items:start; } }
@@ -100,7 +152,7 @@
100
152
  /* Highlight each complete option, including its trailing action. */
101
153
  .og-connection-option { border-radius:8px; gap:4px; padding-inline:8px; }
102
154
  .og-connection-option:hover { background:var(--og-color-surface-2,#f3f4f5); }
103
- .og-connection-option > .og-connection-catalog-row:hover,
155
+ .og-connection-option > .og-capability-catalog-row:hover,
104
156
  .og-connection-option .og-connection-details-action:hover { background:transparent; }
105
157
  .og-connection-option + .og-connection-option { border-top:0; margin-top:2px; }
106
158
  .og-connection-catalog-options { margin:0 12px 8px 52px; padding-top:6px; }
@@ -110,13 +162,12 @@
110
162
 
111
163
  .og-skill-discovery { margin-block:24px; color:inherit; font-family:var(--og-font-sans,system-ui,sans-serif); }
112
164
  .og-skill-discovery header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; }
113
- .og-skill-discovery h3 { margin:0; font-size:15px; font-weight:600; }
165
+ .og-skill-discovery h3 { margin:0; font-size:14px; font-weight:600; }
114
166
  .og-skill-discovery header > span, .og-skill-discovery p { font-size:13px; opacity:.65; }
115
167
  .og-skill-discovery button { font:inherit; color:inherit; cursor:pointer; border:0; box-shadow:none; }
116
168
  .og-skill-discovery button:focus-visible { outline:2px solid var(--og-color-accent,currentColor); outline-offset:2px; }
117
169
  .og-skill-discovery button:disabled { cursor:default; opacity:.6; }
118
170
  .og-skill-discovery button:hover:not(:disabled) { background:var(--og-color-surface-2,#eeeeee); }
119
- .og-skill-discovery-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:4px 24px; }
120
171
  .og-skill-discovery-item { display:flex; align-items:center; justify-content:space-between; min-width:0; gap:16px; padding:12px; border-radius:10px; background:transparent; text-align:left; }
121
172
  .og-skill-discovery-copy { display:grid; gap:4px; min-width:0; }
122
173
  .og-skill-discovery-copy strong { font-size:14px; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@@ -133,13 +184,12 @@
133
184
 
134
185
 
135
186
  .og-plugin-discovery { margin-block:24px; color:inherit; }
136
- .og-plugin-discovery header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:4px; }
187
+ .og-plugin-discovery header { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
137
188
  .og-plugin-discovery h3 { margin:0; font-size:14px; font-weight:600; }
138
189
  .og-plugin-filters { display:flex; gap:3px; padding:3px; border-radius:9px; background:color-mix(in srgb,currentColor 5%,transparent); }
139
190
  .og-plugin-filters button { border:0; border-radius:6px; padding:6px 12px; background:transparent; color:inherit; font:inherit; font-size:12px; cursor:pointer; opacity:.65; }
140
191
  .og-plugin-filters button[aria-pressed=true] { background:var(--og-color-surface,#ffffff); color:var(--og-color-text,#17191d); box-shadow:0 1px 3px #00000014; opacity:1; }
141
- .og-plugin-discovery p { font-size:12px; opacity:.65; margin:10px 0 8px; }
142
- .og-plugin-discovery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 24px; }
192
+ .og-plugin-discovery p, .og-skill-discovery p { font-size:13px; opacity:.65; margin:0 0 12px; }
143
193
  .og-plugin-discovery-row { display:flex; align-items:center; gap:12px; width:100%; min-width:0; min-height:64px; padding:10px 12px; text-align:left; color:inherit; background:transparent; border:0; border-radius:8px; font:inherit; cursor:pointer; }
144
194
  .og-plugin-discovery-row:hover { background:color-mix(in srgb,currentColor 4%,transparent); }
145
195
  .og-plugin-discovery button:focus-visible { outline:2px solid var(--og-color-accent,currentColor); outline-offset:2px; }
@@ -154,12 +204,11 @@
154
204
  .og-plugin-open { font-size:18px; opacity:.45; transition:opacity .15s; }
155
205
  .og-plugin-discovery-row:hover .og-plugin-open, .og-plugin-discovery-row:focus-visible .og-plugin-open { opacity:.65; }
156
206
  .og-plugin-more { display:block; margin:20px auto; padding:10px 18px; border:1px solid #8886; border-radius:8px; color:inherit; background:transparent; cursor:pointer; }
157
- @media(max-width:640px) { .og-plugin-discovery-grid { grid-template-columns:1fr; } }
158
207
 
159
- .og-plugin-details { padding:40px 32px 28px; color:inherit; }
160
- .og-plugin-details-header { display:flex; align-items:center; gap:16px; padding-right:20px; }
161
- .og-plugin-details-header img { width:56px; height:56px; object-fit:contain; border-radius:12px; flex-shrink:0; }
162
- .og-plugin-details-header h2 { margin:0; font-size:25px; line-height:1.25; font-weight:650; letter-spacing:-.6px; overflow-wrap:anywhere; }
208
+ .og-plugin-details { padding:20px 24px; color:inherit; }
209
+ .og-plugin-details-header { display:flex; align-items:center; gap:12px; padding-right:24px; }
210
+ .og-plugin-details-header > div { min-width:0; }
211
+ .og-plugin-details-header h2 { margin:0; font-size:20px; line-height:1.4; font-weight:600; letter-spacing:-.5px; overflow-wrap:anywhere; }
163
212
  .og-plugin-details-header p { margin:7px 0 0; font-size:13px; opacity:.6; }
164
213
  .og-plugin-details-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; font-size:11px; }
165
214
  .og-plugin-details-meta span { padding:4px 8px; border-radius:5px; background:color-mix(in srgb,currentColor 5%,transparent); text-transform:capitalize; }
@@ -176,7 +225,7 @@
176
225
  .og-plugin-details footer a:hover { background:color-mix(in srgb,currentColor 11%,transparent); }
177
226
  .og-plugin-details footer p { font-size:12px; opacity:.55; margin:12px 0 0; }
178
227
  .og-plugin-details a:focus-visible,.og-plugin-details button:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
179
- @media(max-width:640px) { .og-plugin-details { padding:36px 24px 24px; } }
228
+ @media(max-width:640px) { .og-plugin-details { padding:20px 24px; } }
180
229
  .og-plugin-details-members { margin:28px 0; }
181
230
  .og-plugin-details-members h3 { display:flex; gap:8px; align-items:center; margin:24px 0 10px; font-size:13px; font-weight:600; }
182
231
  .og-plugin-details-members h3 span { opacity:.5; font-weight:400; }
@@ -194,3 +243,29 @@
194
243
  .og-plugin-details footer p[role=alert] { opacity:1; color:var(--og-color-danger,#c33); }
195
244
  .og-plugin-server-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
196
245
  .og-plugin-server-heading button { border:1px solid color-mix(in srgb,currentColor 18%,transparent); background:transparent; color:inherit; border-radius:7px; padding:6px 12px; font:inherit; font-size:12px; cursor:pointer; }
246
+
247
+ /* Keep every catalog on the same columns and spacing, including installed Skills. */
248
+ .og-capability-catalog-grid, .og-skill-discovery-grid, .og-plugin-discovery-grid {
249
+ display:grid; grid-template-columns:minmax(0,1fr); gap:4px 24px;
250
+ }
251
+ @media (min-width:720px) {
252
+ .og-capability-catalog-grid, .og-skill-discovery-grid, .og-plugin-discovery-grid {
253
+ grid-template-columns:repeat(2,minmax(0,1fr));
254
+ }
255
+ }
256
+ .og-skill-discovery .og-capability-catalog-row { font-size:14px; line-height:1.5; }
257
+
258
+ /* Shared setup presentation, including OAuth, credentials and recovery. */
259
+ .og-connect.og-connect-setup { display:grid; gap:20px; font-size:14px; }
260
+ .og-connect-setup .og-connect-setup-summary { display:grid; gap:6px; }
261
+ .og-connect-setup .og-connect-setup-scope { color:var(--og-color-fg-muted,inherit); font-size:12px; }
262
+ .og-connect-setup .og-connect-setup-status { font-size:15px; font-weight:600; }
263
+ .og-connect-setup .og-connect-setup-description { color:var(--og-color-fg-muted,inherit); font-size:13px; }
264
+ .og-connect-setup .og-connect-setup-primary { width:100%; text-align:center; border-color:transparent; border-radius:8px; background:var(--og-color-accent-deep,#006cdb); color:var(--og-color-accent-fg,#fff); font-size:14px; font-weight:500; }
265
+ .og-connect-setup .og-connect-setup-primary:hover:not(:disabled) { background:color-mix(in srgb,var(--og-color-accent-deep,#006cdb) 90%,transparent); }
266
+ .og-connect-setup .og-connect-setup-secondary { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; }
267
+ .og-connect-setup .og-connect-setup-secondary button { border:0; min-height:36px; padding:6px 8px; color:var(--og-color-fg-muted,inherit); font-size:12px; }
268
+
269
+ .og-catalog-more, .og-skill-discovery .og-catalog-more { margin-top:12px; min-height:36px; padding:8px 12px; border:1px solid var(--og-color-border,#888); border-radius:8px; background:var(--og-color-surface-1,transparent); color:inherit; font:inherit; font-size:13px; cursor:pointer; }
270
+ .og-catalog-more:focus-visible { outline:2px solid var(--og-color-accent,currentColor); outline-offset:2px; }
271
+ .og-plugin-discovery.og-catalog-overview { border-top:1px solid var(--og-color-border,#888); margin-top:24px; padding-top:24px; }
package/styles/index.css CHANGED
@@ -16,6 +16,52 @@
16
16
 
17
17
  @import "./tokens.css";
18
18
  @import "./effective-tokens.css";
19
+ @import "./session-capability.css";
20
+
21
+ /* Full-surface preview preparation. Private palette preserves the accepted
22
+ ripple study; the steady label uses the host's typography and text tokens. */
23
+ .og-preview-loading {
24
+ --_og-preview-ink: #bca3ef;
25
+ --_og-preview-glow: #8f6ccc;
26
+ position: relative;
27
+ width: 100%;
28
+ overflow: hidden;
29
+ border-radius: 10px;
30
+ background: #17161d;
31
+ container: og-preview / inline-size;
32
+ }
33
+ .og-root:is([data-og-theme="light"], .og-light) .og-preview-loading,
34
+ :is([data-og-theme="light"], .og-light) .og-root .og-preview-loading,
35
+ .og-root :is([data-og-theme="light"], .og-light) .og-preview-loading {
36
+ --_og-preview-ink: #76629c;
37
+ --_og-preview-glow: #ba8ee0;
38
+ background: #faf9fd;
39
+ }
40
+ .og-preview-loading canvas {
41
+ display: block;
42
+ width: 100%;
43
+ height: 320px;
44
+ /* Non-canvas / pre-effect fallback, removed only after a successful paint. */
45
+ background-image: radial-gradient(circle, color-mix(in srgb, var(--_og-preview-ink) 30%, transparent) 1px, transparent 1px);
46
+ background-size: 18px 18px;
47
+ }
48
+ .og-preview-loading canvas[data-painted="true"] { background-image: none; }
49
+ .og-preview-loading-label {
50
+ position: absolute;
51
+ left: 16px;
52
+ bottom: 14px;
53
+ color: var(--og-color-fg-muted);
54
+ font-family: var(--og-font-sans);
55
+ font-size: var(--og-font-size-xs);
56
+ line-height: var(--og-line-height-xs);
57
+ font-weight: 400;
58
+ }
59
+ @container og-preview (max-width: 500px) {
60
+ .og-preview-loading canvas { height: 260px; }
61
+ }
62
+ @media (max-width: 500px) {
63
+ .og-preview-loading canvas { height: 260px; }
64
+ }
19
65
 
20
66
  /* Standalone embeds do not necessarily load Tailwind Preflight. Keep the
21
67
  control reset inside SDK roots, before utilities, without resetting the host.