@aperture-browser/session-react 0.0.0-nightly.130.8809feddb141 → 0.0.0-nightly.131.764dc151c439
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/index.d.ts +16 -5
- package/dist/index.js +142 -160
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -39,9 +39,11 @@ interface SessionProps {
|
|
|
39
39
|
readonly features?: SessionFeatures;
|
|
40
40
|
/** Rendered at the start of the title bar row, before the tab strip. */
|
|
41
41
|
readonly leading?: ReactNode;
|
|
42
|
+
/** Rendered at the end of the title bar row, after the participants. */
|
|
43
|
+
readonly trailing?: ReactNode;
|
|
42
44
|
/** Rendered at the start of the toolbar row, before the navigation buttons. */
|
|
43
45
|
readonly toolbarLeading?: ReactNode;
|
|
44
|
-
/** Rendered at the end of the toolbar row,
|
|
46
|
+
/** Rendered at the end of the toolbar row, before the menus. */
|
|
45
47
|
readonly toolbarTrailing?: ReactNode;
|
|
46
48
|
}
|
|
47
49
|
interface ApertureSessionProps extends SessionProps {
|
|
@@ -58,6 +60,7 @@ declare function Session({
|
|
|
58
60
|
access,
|
|
59
61
|
features,
|
|
60
62
|
leading,
|
|
63
|
+
trailing,
|
|
61
64
|
toolbarLeading,
|
|
62
65
|
toolbarTrailing
|
|
63
66
|
}: SessionProps): import("react").JSX.Element;
|
|
@@ -80,8 +83,9 @@ declare const copyTextWithToast: (value: string, onCopied?: () => void) => Effec
|
|
|
80
83
|
//#region src/components/browser-control-pane.d.ts
|
|
81
84
|
type BrowserControlPaneProps = {
|
|
82
85
|
control: UseBrowserControlResult; /** Rendered at the start of the title bar row, before the tab strip. */
|
|
83
|
-
leading?: ReactNode; /** Rendered at the
|
|
84
|
-
|
|
86
|
+
leading?: ReactNode; /** Rendered at the end of the title bar row, after the participants. */
|
|
87
|
+
trailing?: ReactNode; /** Rendered at the start of the toolbar row, before the navigation buttons. */
|
|
88
|
+
toolbarLeading?: ReactNode; /** Rendered at the end of the toolbar row, before the browser menu. */
|
|
85
89
|
toolbarTrailing?: ReactNode;
|
|
86
90
|
features?: SessionFeatures;
|
|
87
91
|
collaborationRole: CollaborationRole$1;
|
|
@@ -90,18 +94,25 @@ type BrowserControlPaneProps = {
|
|
|
90
94
|
editor: string;
|
|
91
95
|
viewer: string;
|
|
92
96
|
} | null;
|
|
93
|
-
onSessionDetails?: () => void;
|
|
97
|
+
onSessionDetails?: () => void; /** Extra items at the top of the browser menu, such as actions on the session. */
|
|
98
|
+
menuItems?: ReactNode; /** Extra items in the menu's "Share and connect" submenu. */
|
|
99
|
+
shareMenuItems?: ReactNode; /** Items at the end of the browser menu, such as deleting the session. */
|
|
100
|
+
menuFooterItems?: ReactNode;
|
|
94
101
|
};
|
|
95
102
|
declare function BrowserControlPane({
|
|
96
103
|
control,
|
|
97
104
|
leading,
|
|
105
|
+
trailing,
|
|
98
106
|
toolbarLeading,
|
|
99
107
|
toolbarTrailing,
|
|
100
108
|
features: featureOverrides,
|
|
101
109
|
collaborationRole,
|
|
102
110
|
cdpUrl,
|
|
103
111
|
shareUrls,
|
|
104
|
-
onSessionDetails
|
|
112
|
+
onSessionDetails,
|
|
113
|
+
menuItems,
|
|
114
|
+
shareMenuItems,
|
|
115
|
+
menuFooterItems
|
|
105
116
|
}: BrowserControlPaneProps): import("react").JSX.Element;
|
|
106
117
|
//#endregion
|
|
107
118
|
//#region src/components/browser-viewport.d.ts
|
package/dist/index.js
CHANGED
|
@@ -199,7 +199,7 @@ function ContextMenuContent({ className, align = "start", alignOffset = 4, side
|
|
|
199
199
|
sideOffset,
|
|
200
200
|
children: /* @__PURE__ */ jsx(ContextMenu.Popup, {
|
|
201
201
|
"data-slot": "context-menu-content",
|
|
202
|
-
className: cn("aperture:z-50 aperture:max-h-(--available-height) aperture:min-w-36 aperture:origin-(--transform-origin) aperture:overflow-x-hidden aperture:overflow-y-auto aperture:rounded-lg aperture:bg-popover aperture:p-1 aperture:text-popover-foreground aperture:shadow-md aperture:ring-1 aperture:ring-foreground/10 aperture:duration-100 aperture:outline-none aperture:data-
|
|
202
|
+
className: cn("aperture:z-50 aperture:max-h-(--available-height) aperture:min-w-36 aperture:origin-(--transform-origin) aperture:overflow-x-hidden aperture:overflow-y-auto aperture:rounded-lg aperture:bg-popover aperture:p-1 aperture:text-popover-foreground aperture:shadow-md aperture:ring-1 aperture:ring-foreground/10 aperture:duration-100 aperture:outline-none aperture:data-open:animate-in aperture:data-open:fade-in-0 aperture:data-closed:animate-out aperture:data-closed:fade-out-0", className),
|
|
203
203
|
...props
|
|
204
204
|
})
|
|
205
205
|
})
|
|
@@ -330,7 +330,7 @@ function TooltipContent({ className, side = "top", sideOffset = 4, align = "cent
|
|
|
330
330
|
className: "aperture:isolate aperture:z-50",
|
|
331
331
|
children: /* @__PURE__ */ jsxs(Tooltip.Popup, {
|
|
332
332
|
"data-slot": "tooltip-content",
|
|
333
|
-
className: cn("aperture:z-50 aperture:inline-flex aperture:w-fit aperture:max-w-xs aperture:origin-(--transform-origin) aperture:items-center aperture:gap-1.5 aperture:rounded-md aperture:bg-foreground aperture:px-3 aperture:py-1.5 aperture:text-xs aperture:text-background aperture:has-data-[slot=kbd]:pr-1.5 aperture
|
|
333
|
+
className: cn("aperture:z-50 aperture:inline-flex aperture:w-fit aperture:max-w-xs aperture:origin-(--transform-origin) aperture:items-center aperture:gap-1.5 aperture:rounded-md aperture:bg-foreground aperture:px-3 aperture:py-1.5 aperture:text-xs aperture:text-background aperture:has-data-[slot=kbd]:pr-1.5 aperture:**:data-[slot=kbd]:relative aperture:**:data-[slot=kbd]:isolate aperture:**:data-[slot=kbd]:z-50 aperture:**:data-[slot=kbd]:rounded-sm aperture:data-[state=delayed-open]:animate-in aperture:data-[state=delayed-open]:fade-in-0 aperture:data-open:animate-in aperture:data-open:fade-in-0 aperture:data-closed:animate-out aperture:data-closed:fade-out-0", className),
|
|
334
334
|
...props,
|
|
335
335
|
children: [children, /* @__PURE__ */ jsx(Tooltip.Arrow, { className: "aperture:z-50 aperture:size-2.5 aperture:translate-y-[calc(-50%-2px)] aperture:rotate-45 aperture:rounded-[2px] aperture:bg-foreground aperture:fill-foreground aperture:data-[side=bottom]:top-1 aperture:data-[side=inline-end]:top-1/2! aperture:data-[side=inline-end]:-left-1 aperture:data-[side=inline-end]:-translate-y-1/2 aperture:data-[side=inline-start]:top-1/2! aperture:data-[side=inline-start]:-right-1 aperture:data-[side=inline-start]:-translate-y-1/2 aperture:data-[side=left]:top-1/2! aperture:data-[side=left]:-right-1 aperture:data-[side=left]:-translate-y-1/2 aperture:data-[side=right]:top-1/2! aperture:data-[side=right]:-left-1 aperture:data-[side=right]:-translate-y-1/2 aperture:data-[side=top]:-bottom-2.5" })]
|
|
336
336
|
})
|
|
@@ -405,7 +405,7 @@ function ScrollBar({ className, orientation = "vertical", ...props }) {
|
|
|
405
405
|
...props,
|
|
406
406
|
children: /* @__PURE__ */ jsx(ScrollArea.Thumb, {
|
|
407
407
|
"data-slot": "scroll-area-thumb",
|
|
408
|
-
className: "aperture:relative aperture:flex-1 aperture:rounded-full aperture:bg-
|
|
408
|
+
className: "aperture:relative aperture:flex-1 aperture:rounded-full aperture:bg-border aperture:transition-colors aperture:hover:bg-foreground/35"
|
|
409
409
|
})
|
|
410
410
|
});
|
|
411
411
|
}
|
|
@@ -805,7 +805,7 @@ function DropdownMenuContent({ align = "start", alignOffset = 0, side = "bottom"
|
|
|
805
805
|
sideOffset,
|
|
806
806
|
children: /* @__PURE__ */ jsx(Menu.Popup, {
|
|
807
807
|
"data-slot": "dropdown-menu-content",
|
|
808
|
-
className: cn("aperture:z-50 aperture:max-h-(--available-height) aperture:w-(--anchor-width) aperture:min-w-32 aperture:origin-(--transform-origin) aperture:overflow-x-hidden aperture:overflow-y-auto aperture:rounded-lg aperture:bg-popover aperture:p-1 aperture:text-popover-foreground aperture:shadow-md aperture:ring-1 aperture:ring-foreground/10 aperture:duration-100 aperture:outline-none aperture:data-
|
|
808
|
+
className: cn("aperture:z-50 aperture:max-h-(--available-height) aperture:w-(--anchor-width) aperture:min-w-32 aperture:origin-(--transform-origin) aperture:overflow-x-hidden aperture:overflow-y-auto aperture:rounded-lg aperture:bg-popover aperture:p-1 aperture:text-popover-foreground aperture:shadow-md aperture:ring-1 aperture:ring-foreground/10 aperture:duration-100 aperture:outline-none aperture:data-open:animate-in aperture:data-open:fade-in-0 aperture:data-closed:animate-out aperture:data-closed:overflow-hidden aperture:data-closed:fade-out-0", className),
|
|
809
809
|
...props
|
|
810
810
|
})
|
|
811
811
|
})
|
|
@@ -830,7 +830,7 @@ function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
|
|
|
830
830
|
"data-slot": "dropdown-menu-item",
|
|
831
831
|
"data-inset": inset,
|
|
832
832
|
"data-variant": variant,
|
|
833
|
-
className: cn("aperture:group/dropdown-menu-item aperture:relative aperture:flex aperture:cursor-default aperture:items-center aperture:gap-1.5 aperture:rounded-md aperture:px-1.5 aperture:py-1 aperture:text-sm aperture:outline-hidden aperture:select-none aperture:
|
|
833
|
+
className: cn("aperture:group/dropdown-menu-item aperture:relative aperture:flex aperture:cursor-default aperture:items-center aperture:gap-1.5 aperture:rounded-md aperture:px-1.5 aperture:py-1 aperture:text-sm aperture:outline-hidden aperture:select-none aperture:data-highlighted:bg-accent aperture:data-highlighted:text-accent-foreground aperture:not-data-[variant=destructive]:data-highlighted:**:[svg]:text-accent-foreground aperture:data-inset:pl-7 aperture:data-[variant=destructive]:text-destructive aperture:data-[variant=destructive]:data-highlighted:bg-destructive/10 aperture:data-[variant=destructive]:data-highlighted:text-destructive aperture:dark:data-[variant=destructive]:data-highlighted:bg-destructive/20 aperture:data-disabled:pointer-events-none aperture:data-disabled:opacity-50 aperture:[&_svg]:pointer-events-none aperture:[&_svg]:shrink-0 aperture:[&_svg:not([class*='size-'])]:size-4 aperture:data-[variant=destructive]:*:[svg]:text-destructive", className),
|
|
834
834
|
...props
|
|
835
835
|
});
|
|
836
836
|
}
|
|
@@ -844,7 +844,7 @@ function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
|
|
|
844
844
|
return /* @__PURE__ */ jsxs(Menu.SubmenuTrigger, {
|
|
845
845
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
846
846
|
"data-inset": inset,
|
|
847
|
-
className: cn("aperture:flex aperture:cursor-default aperture:items-center aperture:gap-1.5 aperture:rounded-md aperture:px-1.5 aperture:py-1 aperture:text-sm aperture:outline-hidden aperture:select-none aperture:
|
|
847
|
+
className: cn("aperture:flex aperture:cursor-default aperture:items-center aperture:gap-1.5 aperture:rounded-md aperture:px-1.5 aperture:py-1 aperture:text-sm aperture:outline-hidden aperture:select-none aperture:data-highlighted:bg-accent aperture:data-highlighted:text-accent-foreground aperture:not-data-[variant=destructive]:data-highlighted:**:[svg]:text-accent-foreground aperture:data-inset:pl-7 aperture:data-popup-open:bg-accent aperture:data-popup-open:text-accent-foreground aperture:data-open:bg-accent aperture:data-open:text-accent-foreground aperture:[&_svg]:pointer-events-none aperture:[&_svg]:shrink-0 aperture:[&_svg:not([class*='size-'])]:size-4", className),
|
|
848
848
|
...props,
|
|
849
849
|
children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "aperture:ml-auto" })]
|
|
850
850
|
});
|
|
@@ -852,7 +852,7 @@ function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
|
|
|
852
852
|
function DropdownMenuSubContent({ align = "start", alignOffset = -3, side = "right", sideOffset = 0, className, ...props }) {
|
|
853
853
|
return /* @__PURE__ */ jsx(DropdownMenuContent, {
|
|
854
854
|
"data-slot": "dropdown-menu-sub-content",
|
|
855
|
-
className: cn("aperture:w-auto aperture:min-w-[96px] aperture:rounded-lg aperture:bg-popover aperture:p-1 aperture:text-popover-foreground aperture:shadow-lg aperture:ring-1 aperture:ring-foreground/10 aperture:duration-100 aperture:data-
|
|
855
|
+
className: cn("aperture:w-auto aperture:min-w-[96px] aperture:rounded-lg aperture:bg-popover aperture:p-1 aperture:text-popover-foreground aperture:shadow-lg aperture:ring-1 aperture:ring-foreground/10 aperture:duration-100 aperture:data-open:animate-in aperture:data-open:fade-in-0 aperture:data-closed:animate-out aperture:data-closed:fade-out-0", className),
|
|
856
856
|
align,
|
|
857
857
|
alignOffset,
|
|
858
858
|
side,
|
|
@@ -864,7 +864,7 @@ function DropdownMenuCheckboxItem({ className, children, checked, inset, ...prop
|
|
|
864
864
|
return /* @__PURE__ */ jsxs(Menu.CheckboxItem, {
|
|
865
865
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
866
866
|
"data-inset": inset,
|
|
867
|
-
className: cn("aperture:relative aperture:flex aperture:cursor-default aperture:items-center aperture:gap-1.5 aperture:rounded-md aperture:py-1 aperture:pr-8 aperture:pl-1.5 aperture:text-sm aperture:outline-hidden aperture:select-none aperture:
|
|
867
|
+
className: cn("aperture:relative aperture:flex aperture:cursor-default aperture:items-center aperture:gap-1.5 aperture:rounded-md aperture:py-1 aperture:pr-8 aperture:pl-1.5 aperture:text-sm aperture:outline-hidden aperture:select-none aperture:data-highlighted:bg-accent aperture:data-highlighted:text-accent-foreground aperture:data-highlighted:**:[svg]:text-accent-foreground aperture:data-inset:pl-7 aperture:data-disabled:pointer-events-none aperture:data-disabled:opacity-50 aperture:[&_svg]:pointer-events-none aperture:[&_svg]:shrink-0 aperture:[&_svg:not([class*='size-'])]:size-4", className),
|
|
868
868
|
checked,
|
|
869
869
|
...props,
|
|
870
870
|
children: [/* @__PURE__ */ jsx("span", {
|
|
@@ -884,7 +884,7 @@ function DropdownMenuRadioItem({ className, children, inset, ...props }) {
|
|
|
884
884
|
return /* @__PURE__ */ jsxs(Menu.RadioItem, {
|
|
885
885
|
"data-slot": "dropdown-menu-radio-item",
|
|
886
886
|
"data-inset": inset,
|
|
887
|
-
className: cn("aperture:relative aperture:flex aperture:cursor-default aperture:items-center aperture:gap-1.5 aperture:rounded-md aperture:py-1 aperture:pr-8 aperture:pl-1.5 aperture:text-sm aperture:outline-hidden aperture:select-none aperture:
|
|
887
|
+
className: cn("aperture:relative aperture:flex aperture:cursor-default aperture:items-center aperture:gap-1.5 aperture:rounded-md aperture:py-1 aperture:pr-8 aperture:pl-1.5 aperture:text-sm aperture:outline-hidden aperture:select-none aperture:data-highlighted:bg-accent aperture:data-highlighted:text-accent-foreground aperture:data-highlighted:**:[svg]:text-accent-foreground aperture:data-inset:pl-7 aperture:data-disabled:pointer-events-none aperture:data-disabled:opacity-50 aperture:[&_svg]:pointer-events-none aperture:[&_svg]:shrink-0 aperture:[&_svg:not([class*='size-'])]:size-4", className),
|
|
888
888
|
...props,
|
|
889
889
|
children: [/* @__PURE__ */ jsx("span", {
|
|
890
890
|
className: "aperture:pointer-events-none aperture:absolute aperture:right-2 aperture:flex aperture:items-center aperture:justify-center",
|
|
@@ -1197,7 +1197,12 @@ const VIEWPORT_LIMITS = {
|
|
|
1197
1197
|
max: 4
|
|
1198
1198
|
}
|
|
1199
1199
|
};
|
|
1200
|
-
|
|
1200
|
+
/**
|
|
1201
|
+
* The toolbar's end: drawing, recording and viewport buttons, then one menu with the embedder's
|
|
1202
|
+
* own items first, control, tools and sharing, and the embedder's closing items (such as
|
|
1203
|
+
* deleting the session) last.
|
|
1204
|
+
*/
|
|
1205
|
+
function BrowserMenus({ control, cdpUrl, shareUrls, busy, connected, localCursorEnabled, onLocalCursorChange, onReconnect, onSessionDetails, menuItems, shareMenuItems, menuFooterItems, drawing, devTools, now }) {
|
|
1201
1206
|
const { settings, updateSettings } = useRecordingSettings();
|
|
1202
1207
|
const runningRecordings = control.recordings.filter((recording) => recording.status === "starting" || recording.status === "running");
|
|
1203
1208
|
const recordingActive = runningRecordings.length > 0;
|
|
@@ -1216,53 +1221,35 @@ function BrowserMenus({ control, cdpUrl, shareUrls, busy, connected, localCursor
|
|
|
1216
1221
|
capture: "continuous"
|
|
1217
1222
|
});
|
|
1218
1223
|
}
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
})] }), /* @__PURE__ */ jsxs(DropdownMenuContent, {
|
|
1233
|
-
align: "end",
|
|
1234
|
-
className: "aperture:w-72",
|
|
1235
|
-
children: [
|
|
1236
|
-
/* @__PURE__ */ jsx(RestMenuItems, {
|
|
1237
|
-
control,
|
|
1238
|
-
cdpUrl,
|
|
1239
|
-
shareUrls,
|
|
1240
|
-
onSessionDetails
|
|
1241
|
-
}),
|
|
1242
|
-
/* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
|
|
1243
|
-
/* @__PURE__ */ jsx(RecordingMenuItems, {
|
|
1244
|
-
control,
|
|
1245
|
-
connected,
|
|
1246
|
-
runningRecordings,
|
|
1247
|
-
now,
|
|
1248
|
-
settings,
|
|
1249
|
-
onSettingsChange: updateSettings,
|
|
1250
|
-
onStartRecording: startRecording
|
|
1251
|
-
}),
|
|
1252
|
-
/* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
|
|
1253
|
-
/* @__PURE__ */ jsx(ViewportStreamMenuItems, {
|
|
1254
|
-
control,
|
|
1255
|
-
connected: viewportConnected,
|
|
1256
|
-
localCursorEnabled,
|
|
1257
|
-
onLocalCursorChange,
|
|
1258
|
-
busy,
|
|
1259
|
-
onReconnect
|
|
1260
|
-
})
|
|
1261
|
-
]
|
|
1262
|
-
})] })
|
|
1263
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
1264
|
-
className: "aperture:hidden aperture:shrink-0 aperture:items-center aperture:gap-0.5 aperture:sm:flex",
|
|
1224
|
+
const recordingItems = /* @__PURE__ */ jsx(RecordingMenuItems, {
|
|
1225
|
+
control,
|
|
1226
|
+
connected,
|
|
1227
|
+
runningRecordings,
|
|
1228
|
+
now,
|
|
1229
|
+
settings,
|
|
1230
|
+
onSettingsChange: updateSettings,
|
|
1231
|
+
onStartRecording: startRecording
|
|
1232
|
+
});
|
|
1233
|
+
const sizeController = viewportSizeController(control);
|
|
1234
|
+
const viewportPaused = control.viewportAutoSync && !control.viewportAutoSizeActive && sizeController !== null;
|
|
1235
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
1236
|
+
className: "aperture:flex aperture:shrink-0 aperture:items-center aperture:gap-0.5",
|
|
1265
1237
|
children: [
|
|
1238
|
+
drawing ? /* @__PURE__ */ jsxs(Tooltip$1, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
1239
|
+
render: /* @__PURE__ */ jsx(Button$1, {
|
|
1240
|
+
type: "button",
|
|
1241
|
+
variant: drawing.enabled ? "secondary" : "ghost",
|
|
1242
|
+
size: "icon-sm",
|
|
1243
|
+
disabled: !drawing.enabled && !drawing.available,
|
|
1244
|
+
"aria-label": drawing.enabled ? "Stop drawing" : "Draw on this tab",
|
|
1245
|
+
"aria-pressed": drawing.enabled,
|
|
1246
|
+
onClick: () => drawing.onChange(!drawing.enabled)
|
|
1247
|
+
}),
|
|
1248
|
+
children: /* @__PURE__ */ jsx(Pencil, {})
|
|
1249
|
+
}), /* @__PURE__ */ jsx(TooltipContent, {
|
|
1250
|
+
side: "bottom",
|
|
1251
|
+
children: drawing.enabled ? "Stop drawing" : "Draw on this tab"
|
|
1252
|
+
})] }) : null,
|
|
1266
1253
|
/* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsxs(Tooltip$1, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
1267
1254
|
render: /* @__PURE__ */ jsx(DropdownMenuTrigger, { render: /* @__PURE__ */ jsx(Button$1, {
|
|
1268
1255
|
type: "button",
|
|
@@ -1277,31 +1264,19 @@ function BrowserMenus({ control, cdpUrl, shareUrls, busy, connected, localCursor
|
|
|
1277
1264
|
})] }), /* @__PURE__ */ jsx(DropdownMenuContent, {
|
|
1278
1265
|
align: "end",
|
|
1279
1266
|
className: "aperture:w-72",
|
|
1280
|
-
children:
|
|
1281
|
-
control,
|
|
1282
|
-
connected,
|
|
1283
|
-
runningRecordings,
|
|
1284
|
-
now,
|
|
1285
|
-
settings,
|
|
1286
|
-
onSettingsChange: updateSettings,
|
|
1287
|
-
onStartRecording: startRecording
|
|
1288
|
-
})
|
|
1267
|
+
children: recordingItems
|
|
1289
1268
|
})] }),
|
|
1290
|
-
/* @__PURE__ */ jsx(ViewportPausedIndicator, {
|
|
1291
|
-
control,
|
|
1292
|
-
connected: viewportConnected
|
|
1293
|
-
}),
|
|
1294
1269
|
/* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsxs(Tooltip$1, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
1295
1270
|
render: /* @__PURE__ */ jsx(DropdownMenuTrigger, { render: /* @__PURE__ */ jsx(Button$1, {
|
|
1296
1271
|
type: "button",
|
|
1297
1272
|
variant: "ghost",
|
|
1298
1273
|
size: "icon-sm",
|
|
1299
|
-
"aria-label": "Viewport and stream"
|
|
1274
|
+
"aria-label": viewportPaused ? `Viewport and stream. Auto-size paused. ${sizeController}` : "Viewport and stream"
|
|
1300
1275
|
}) }),
|
|
1301
|
-
children: /* @__PURE__ */ jsx(Monitor, {})
|
|
1276
|
+
children: viewportPaused ? /* @__PURE__ */ jsx(MonitorPause, {}) : /* @__PURE__ */ jsx(Monitor, {})
|
|
1302
1277
|
}), /* @__PURE__ */ jsx(TooltipContent, {
|
|
1303
1278
|
side: "bottom",
|
|
1304
|
-
children: "Viewport and stream"
|
|
1279
|
+
children: viewportPaused ? sizeController : "Viewport and stream"
|
|
1305
1280
|
})] }), /* @__PURE__ */ jsx(DropdownMenuContent, {
|
|
1306
1281
|
align: "end",
|
|
1307
1282
|
className: "aperture:w-56",
|
|
@@ -1319,56 +1294,82 @@ function BrowserMenus({ control, cdpUrl, shareUrls, busy, connected, localCursor
|
|
|
1319
1294
|
type: "button",
|
|
1320
1295
|
variant: "ghost",
|
|
1321
1296
|
size: "icon-sm",
|
|
1322
|
-
"aria-label": "
|
|
1297
|
+
"aria-label": "Browser menu"
|
|
1323
1298
|
}) }),
|
|
1324
1299
|
children: /* @__PURE__ */ jsx(MoreVertical, {})
|
|
1325
1300
|
}), /* @__PURE__ */ jsx(TooltipContent, {
|
|
1326
1301
|
side: "bottom",
|
|
1327
|
-
children: "
|
|
1328
|
-
})] }), /* @__PURE__ */
|
|
1302
|
+
children: "Browser menu"
|
|
1303
|
+
})] }), /* @__PURE__ */ jsxs(DropdownMenuContent, {
|
|
1329
1304
|
align: "end",
|
|
1330
|
-
className: "aperture:w-
|
|
1331
|
-
children:
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1305
|
+
className: "aperture:w-60",
|
|
1306
|
+
children: [
|
|
1307
|
+
menuItems ? /* @__PURE__ */ jsxs(Fragment$1, { children: [menuItems, /* @__PURE__ */ jsx(DropdownMenuSeparator, {})] }) : null,
|
|
1308
|
+
/* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [
|
|
1309
|
+
onSessionDetails ? /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
1310
|
+
onClick: onSessionDetails,
|
|
1311
|
+
children: [/* @__PURE__ */ jsx(Info, {}), "Session details"]
|
|
1312
|
+
}) : null,
|
|
1313
|
+
/* @__PURE__ */ jsx(InputControlMenuItem, { control }),
|
|
1314
|
+
devTools ? /* @__PURE__ */ jsxs(DropdownMenuSub, { children: [/* @__PURE__ */ jsxs(DropdownMenuSubTrigger, {
|
|
1315
|
+
disabled: !devTools.open && !devTools.available,
|
|
1316
|
+
children: [/* @__PURE__ */ jsx(Wrench, {}), "Developer tools"]
|
|
1317
|
+
}), /* @__PURE__ */ jsxs(DropdownMenuSubContent, {
|
|
1318
|
+
className: "aperture:w-44",
|
|
1319
|
+
children: [
|
|
1320
|
+
/* @__PURE__ */ jsx(DropdownMenuCheckboxItem, {
|
|
1321
|
+
checked: devTools.open,
|
|
1322
|
+
disabled: !devTools.open && !devTools.available,
|
|
1323
|
+
onCheckedChange: devTools.onOpenChange,
|
|
1324
|
+
children: "Open DevTools"
|
|
1325
|
+
}),
|
|
1326
|
+
/* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
|
|
1327
|
+
/* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [/* @__PURE__ */ jsx(DropdownMenuLabel, { children: "Dock side" }), /* @__PURE__ */ jsxs(DropdownMenuRadioGroup, {
|
|
1328
|
+
value: devTools.dock,
|
|
1329
|
+
onValueChange: (value) => {
|
|
1330
|
+
if (value === "bottom" || value === "right") devTools.onDockChange(value);
|
|
1331
|
+
},
|
|
1332
|
+
children: [/* @__PURE__ */ jsxs(DropdownMenuRadioItem, {
|
|
1333
|
+
value: "bottom",
|
|
1334
|
+
children: [/* @__PURE__ */ jsx(PanelBottom, {}), "Bottom"]
|
|
1335
|
+
}), /* @__PURE__ */ jsxs(DropdownMenuRadioItem, {
|
|
1336
|
+
value: "right",
|
|
1337
|
+
children: [/* @__PURE__ */ jsx(PanelRight, {}), "Right"]
|
|
1338
|
+
})]
|
|
1339
|
+
})] })
|
|
1340
|
+
]
|
|
1341
|
+
})] }) : null,
|
|
1342
|
+
/* @__PURE__ */ jsxs(DropdownMenuSub, { children: [/* @__PURE__ */ jsxs(DropdownMenuSubTrigger, { children: [/* @__PURE__ */ jsx(Share2, {}), "Share and connect"] }), /* @__PURE__ */ jsxs(DropdownMenuSubContent, {
|
|
1343
|
+
className: "aperture:w-56",
|
|
1344
|
+
children: [shareMenuItems, /* @__PURE__ */ jsx(ShareMenuItems, {
|
|
1345
|
+
cdpUrl,
|
|
1346
|
+
shareUrls
|
|
1347
|
+
})]
|
|
1348
|
+
})] })
|
|
1349
|
+
] }),
|
|
1350
|
+
menuFooterItems ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(DropdownMenuSeparator, {}), menuFooterItems] }) : null
|
|
1351
|
+
]
|
|
1337
1352
|
})] })
|
|
1338
1353
|
]
|
|
1339
|
-
})
|
|
1354
|
+
});
|
|
1340
1355
|
}
|
|
1341
|
-
function
|
|
1356
|
+
function ShareMenuItems({ cdpUrl, shareUrls }) {
|
|
1342
1357
|
const copy = useEffectCallback((value, copied) => copyTextWithToast(value, () => toast.success(copied)), []);
|
|
1343
1358
|
return /* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [
|
|
1344
|
-
/* @__PURE__ */ jsx(InputControlMenuItem, { control }),
|
|
1345
|
-
onSessionDetails ? /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
1346
|
-
onClick: onSessionDetails,
|
|
1347
|
-
children: [/* @__PURE__ */ jsx(Info, {}), "Session details"]
|
|
1348
|
-
}) : null,
|
|
1349
1359
|
/* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
1350
|
-
disabled: !
|
|
1351
|
-
onClick: () =>
|
|
1352
|
-
|
|
1353
|
-
copy(cdpUrl, "CDP URL copied");
|
|
1354
|
-
},
|
|
1355
|
-
children: [/* @__PURE__ */ jsx(Copy, {}), "Copy CDP URL"]
|
|
1360
|
+
disabled: !shareUrls,
|
|
1361
|
+
onClick: () => shareUrls && copy(shareUrls.editor, "Editor link copied"),
|
|
1362
|
+
children: [/* @__PURE__ */ jsx(Copy, {}), "Copy editor link"]
|
|
1356
1363
|
}),
|
|
1357
1364
|
/* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
1358
1365
|
disabled: !shareUrls,
|
|
1359
|
-
onClick: () =>
|
|
1360
|
-
|
|
1361
|
-
copy(shareUrls.editor, "Editor URL copied");
|
|
1362
|
-
},
|
|
1363
|
-
children: [/* @__PURE__ */ jsx(Share2, {}), "Copy editor URL"]
|
|
1366
|
+
onClick: () => shareUrls && copy(shareUrls.viewer, "Viewer link copied"),
|
|
1367
|
+
children: [/* @__PURE__ */ jsx(Copy, {}), "Copy viewer link"]
|
|
1364
1368
|
}),
|
|
1365
1369
|
/* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
1366
|
-
disabled: !
|
|
1367
|
-
onClick: () =>
|
|
1368
|
-
|
|
1369
|
-
copy(shareUrls.viewer, "Viewer URL copied");
|
|
1370
|
-
},
|
|
1371
|
-
children: [/* @__PURE__ */ jsx(Share2, {}), "Copy viewer URL"]
|
|
1370
|
+
disabled: !cdpUrl,
|
|
1371
|
+
onClick: () => cdpUrl && copy(cdpUrl, "CDP URL copied"),
|
|
1372
|
+
children: [/* @__PURE__ */ jsx(Copy, {}), "Copy CDP URL"]
|
|
1372
1373
|
})
|
|
1373
1374
|
] });
|
|
1374
1375
|
}
|
|
@@ -1618,31 +1619,6 @@ function viewportSizeController(control) {
|
|
|
1618
1619
|
if (ownerName !== null) return `Size controlled by ${ownerName}`;
|
|
1619
1620
|
return control.viewportAutoSync ? "Paused: size was set explicitly" : null;
|
|
1620
1621
|
}
|
|
1621
|
-
function ViewportPausedIndicator({ control, connected }) {
|
|
1622
|
-
const sizeController = viewportSizeController(control);
|
|
1623
|
-
if (!control.viewportAutoSync || control.viewportAutoSizeActive || sizeController === null) return null;
|
|
1624
|
-
return /* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsxs(Tooltip$1, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
1625
|
-
render: /* @__PURE__ */ jsx(DropdownMenuTrigger, { render: /* @__PURE__ */ jsx(Button$1, {
|
|
1626
|
-
type: "button",
|
|
1627
|
-
variant: "ghost",
|
|
1628
|
-
size: "icon-sm",
|
|
1629
|
-
className: "aperture:text-muted-foreground",
|
|
1630
|
-
"aria-label": `Auto-size paused. ${sizeController}`
|
|
1631
|
-
}) }),
|
|
1632
|
-
children: /* @__PURE__ */ jsx(MonitorPause, {})
|
|
1633
|
-
}), /* @__PURE__ */ jsx(TooltipContent, {
|
|
1634
|
-
side: "bottom",
|
|
1635
|
-
children: sizeController
|
|
1636
|
-
})] }), /* @__PURE__ */ jsx(DropdownMenuContent, {
|
|
1637
|
-
align: "end",
|
|
1638
|
-
className: "aperture:w-56",
|
|
1639
|
-
children: /* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [/* @__PURE__ */ jsx(DropdownMenuLabel, { children: sizeController }), /* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
1640
|
-
disabled: !connected,
|
|
1641
|
-
onClick: () => control.takeOverViewport(),
|
|
1642
|
-
children: [/* @__PURE__ */ jsx(Hand, {}), "Take over size"]
|
|
1643
|
-
})] })
|
|
1644
|
-
})] });
|
|
1645
|
-
}
|
|
1646
1622
|
function ViewportMenu({ control, connected }) {
|
|
1647
1623
|
const sizeController = viewportSizeController(control);
|
|
1648
1624
|
return /* @__PURE__ */ jsxs(DropdownMenuSub, { children: [/* @__PURE__ */ jsxs(DropdownMenuSubTrigger, { children: [/* @__PURE__ */ jsx(Monitor, {}), "Viewport"] }), /* @__PURE__ */ jsxs(DropdownMenuSubContent, {
|
|
@@ -1963,7 +1939,7 @@ function PopoverContent({ className, align = "center", alignOffset = 0, side = "
|
|
|
1963
1939
|
className: "aperture:isolate aperture:z-50",
|
|
1964
1940
|
children: /* @__PURE__ */ jsx(Popover.Popup, {
|
|
1965
1941
|
"data-slot": "popover-content",
|
|
1966
|
-
className: cn("aperture:z-50 aperture:flex aperture:w-72 aperture:origin-(--transform-origin) aperture:flex-col aperture:gap-2.5 aperture:rounded-lg aperture:bg-popover aperture:p-2.5 aperture:text-sm aperture:text-popover-foreground aperture:shadow-md aperture:ring-1 aperture:ring-foreground/10 aperture:outline-hidden aperture:duration-100 aperture:data-
|
|
1942
|
+
className: cn("aperture:z-50 aperture:flex aperture:w-72 aperture:origin-(--transform-origin) aperture:flex-col aperture:gap-2.5 aperture:rounded-lg aperture:bg-popover aperture:p-2.5 aperture:text-sm aperture:text-popover-foreground aperture:shadow-md aperture:ring-1 aperture:ring-foreground/10 aperture:outline-hidden aperture:duration-100 aperture:data-open:animate-in aperture:data-open:fade-in-0 aperture:data-closed:animate-out aperture:data-closed:fade-out-0", className),
|
|
1967
1943
|
...props
|
|
1968
1944
|
})
|
|
1969
1945
|
})
|
|
@@ -2089,7 +2065,7 @@ function initials(name) {
|
|
|
2089
2065
|
}
|
|
2090
2066
|
//#endregion
|
|
2091
2067
|
//#region src/components/browser-toolbar.tsx
|
|
2092
|
-
function BrowserToolbar({ control, leading, toolbarLeading, toolbarTrailing, features, collaborationRole, cdpUrl, shareUrls, localCursorEnabled, onLocalCursorChange, paintingEnabled, onPaintingEnabledChange, devToolsOpen, devToolsTargetIds, devToolsDock, onDevToolsOpenChange, onDevToolsDockChange, onSessionDetails }) {
|
|
2068
|
+
function BrowserToolbar({ control, leading, trailing, toolbarLeading, toolbarTrailing, features, collaborationRole, cdpUrl, shareUrls, localCursorEnabled, onLocalCursorChange, paintingEnabled, onPaintingEnabledChange, devToolsOpen, devToolsTargetIds, devToolsDock, onDevToolsOpenChange, onDevToolsDockChange, onSessionDetails, menuItems, shareMenuItems, menuFooterItems }) {
|
|
2093
2069
|
const [urlDraft, setUrlDraft] = useState(null);
|
|
2094
2070
|
const displayUrl = control.activeTarget?.url ?? "";
|
|
2095
2071
|
const busy = control.phase === "connecting";
|
|
@@ -2110,9 +2086,10 @@ function BrowserToolbar({ control, leading, toolbarLeading, toolbarTrailing, fea
|
|
|
2110
2086
|
control.navigate(normalizeUrl(nextUrl));
|
|
2111
2087
|
setUrlDraft(null);
|
|
2112
2088
|
}
|
|
2089
|
+
const devToolsAvailable = collaborationRole === "owner" && connected && Boolean(cdpUrl && control.activeTargetId);
|
|
2113
2090
|
return /* @__PURE__ */ jsxs("div", {
|
|
2114
2091
|
className: "aperture:flex aperture:min-w-0 aperture:flex-col aperture:bg-background",
|
|
2115
|
-
children: [leading || features.tabs || features.presence ? /* @__PURE__ */ jsxs("div", {
|
|
2092
|
+
children: [leading || trailing || features.tabs || features.presence ? /* @__PURE__ */ jsxs("div", {
|
|
2116
2093
|
"data-workbench-titlebar": true,
|
|
2117
2094
|
className: "aperture:flex aperture:min-w-0 aperture:shrink-0 aperture:items-stretch aperture:border-b aperture:bg-muted/35",
|
|
2118
2095
|
children: [
|
|
@@ -2132,7 +2109,8 @@ function BrowserToolbar({ control, leading, toolbarLeading, toolbarTrailing, fea
|
|
|
2132
2109
|
onReorder: control.reorderTargets,
|
|
2133
2110
|
loadThumbnail: control.loadTargetThumbnail
|
|
2134
2111
|
}) : /* @__PURE__ */ jsx("div", { className: "aperture:min-w-0 aperture:flex-1" }),
|
|
2135
|
-
features.presence ? /* @__PURE__ */ jsx(CollaborationPresence, { collaboration: control.collaboration }) : null
|
|
2112
|
+
features.presence ? /* @__PURE__ */ jsx(CollaborationPresence, { collaboration: control.collaboration }) : null,
|
|
2113
|
+
trailing
|
|
2136
2114
|
]
|
|
2137
2115
|
}) : null, toolbarLeading || toolbarTrailing || features.navigation || features.addressBar || features.drawing || features.devTools || features.menus ? /* @__PURE__ */ jsxs("div", {
|
|
2138
2116
|
className: "aperture:flex aperture:h-9 aperture:items-center aperture:gap-1 aperture:px-1.5",
|
|
@@ -2185,29 +2163,17 @@ function BrowserToolbar({ control, leading, toolbarLeading, toolbarTrailing, fea
|
|
|
2185
2163
|
})
|
|
2186
2164
|
}) : /* @__PURE__ */ jsx("div", { className: "aperture:min-w-0 aperture:flex-1" }),
|
|
2187
2165
|
busy ? /* @__PURE__ */ jsx(Loader2, { className: "aperture:size-4 aperture:shrink-0 aperture:animate-spin aperture:text-muted-foreground" }) : null,
|
|
2188
|
-
features.
|
|
2189
|
-
render: /* @__PURE__ */ jsx(Button$1, {
|
|
2190
|
-
type: "button",
|
|
2191
|
-
variant: paintingEnabled ? "secondary" : "ghost",
|
|
2192
|
-
size: "icon-sm",
|
|
2193
|
-
className: "aperture:shrink-0",
|
|
2194
|
-
disabled: !paintingEnabled && !drawingAvailable,
|
|
2195
|
-
"aria-label": paintingEnabled ? "Stop drawing" : "Draw on this tab",
|
|
2196
|
-
"aria-pressed": paintingEnabled,
|
|
2197
|
-
onClick: () => onPaintingEnabledChange(!paintingEnabled)
|
|
2198
|
-
}),
|
|
2199
|
-
children: /* @__PURE__ */ jsx(Pencil, {})
|
|
2200
|
-
}), /* @__PURE__ */ jsx(TooltipContent, {
|
|
2201
|
-
side: "bottom",
|
|
2202
|
-
children: paintingEnabled ? "Stop drawing" : "Draw on this tab"
|
|
2203
|
-
})] }) : null,
|
|
2204
|
-
features.devTools ? /* @__PURE__ */ jsx(DevToolsButton, {
|
|
2166
|
+
features.devTools && devToolsOpen ? /* @__PURE__ */ jsx(DevToolsButton, {
|
|
2205
2167
|
open: devToolsOpen,
|
|
2206
2168
|
dock: devToolsDock,
|
|
2207
|
-
available:
|
|
2169
|
+
available: devToolsAvailable,
|
|
2208
2170
|
onOpenChange: onDevToolsOpenChange,
|
|
2209
2171
|
onDockChange: onDevToolsDockChange
|
|
2210
2172
|
}) : null,
|
|
2173
|
+
toolbarTrailing ? /* @__PURE__ */ jsx("div", {
|
|
2174
|
+
className: "aperture:flex aperture:shrink-0 aperture:items-center aperture:gap-0.5",
|
|
2175
|
+
children: toolbarTrailing
|
|
2176
|
+
}) : null,
|
|
2211
2177
|
features.menus ? /* @__PURE__ */ jsx(BrowserMenus, {
|
|
2212
2178
|
control,
|
|
2213
2179
|
cdpUrl,
|
|
@@ -2218,11 +2184,22 @@ function BrowserToolbar({ control, leading, toolbarLeading, toolbarTrailing, fea
|
|
|
2218
2184
|
onLocalCursorChange,
|
|
2219
2185
|
onReconnect: () => control.reconnect(),
|
|
2220
2186
|
onSessionDetails,
|
|
2187
|
+
menuItems,
|
|
2188
|
+
shareMenuItems,
|
|
2189
|
+
menuFooterItems,
|
|
2190
|
+
drawing: features.drawing ? {
|
|
2191
|
+
enabled: paintingEnabled,
|
|
2192
|
+
available: drawingAvailable,
|
|
2193
|
+
onChange: onPaintingEnabledChange
|
|
2194
|
+
} : null,
|
|
2195
|
+
devTools: features.devTools ? {
|
|
2196
|
+
open: devToolsOpen,
|
|
2197
|
+
dock: devToolsDock,
|
|
2198
|
+
available: devToolsAvailable,
|
|
2199
|
+
onOpenChange: onDevToolsOpenChange,
|
|
2200
|
+
onDockChange: onDevToolsDockChange
|
|
2201
|
+
} : null,
|
|
2221
2202
|
now: recordingNow
|
|
2222
|
-
}) : null,
|
|
2223
|
-
toolbarTrailing ? /* @__PURE__ */ jsx("div", {
|
|
2224
|
-
className: "aperture:flex aperture:shrink-0 aperture:items-center aperture:gap-0.5",
|
|
2225
|
-
children: toolbarTrailing
|
|
2226
2203
|
}) : null
|
|
2227
2204
|
]
|
|
2228
2205
|
}) : null]
|
|
@@ -2452,7 +2429,7 @@ function ResizableHandle({ withHandle, className, ...props }) {
|
|
|
2452
2429
|
//#endregion
|
|
2453
2430
|
//#region src/components/browser-control-pane.tsx
|
|
2454
2431
|
const LOCAL_CURSOR_STORAGE_KEY = "aperture.workbench.localCursorEnabled";
|
|
2455
|
-
function BrowserControlPane({ control, leading, toolbarLeading, toolbarTrailing, features: featureOverrides, collaborationRole, cdpUrl, shareUrls, onSessionDetails }) {
|
|
2432
|
+
function BrowserControlPane({ control, leading, trailing, toolbarLeading, toolbarTrailing, features: featureOverrides, collaborationRole, cdpUrl, shareUrls, onSessionDetails, menuItems, shareMenuItems, menuFooterItems }) {
|
|
2456
2433
|
const features = resolveSessionFeatures(featureOverrides);
|
|
2457
2434
|
const [localCursorEnabled, setLocalCursorEnabled] = useState(true);
|
|
2458
2435
|
const [paintingEnabled, setPaintingEnabled] = useState(false);
|
|
@@ -2508,6 +2485,7 @@ function BrowserControlPane({ control, leading, toolbarLeading, toolbarTrailing,
|
|
|
2508
2485
|
children: [/* @__PURE__ */ jsx(BrowserToolbar, {
|
|
2509
2486
|
control,
|
|
2510
2487
|
leading,
|
|
2488
|
+
trailing,
|
|
2511
2489
|
toolbarLeading,
|
|
2512
2490
|
toolbarTrailing,
|
|
2513
2491
|
features,
|
|
@@ -2523,7 +2501,10 @@ function BrowserControlPane({ control, leading, toolbarLeading, toolbarTrailing,
|
|
|
2523
2501
|
devToolsDock,
|
|
2524
2502
|
onDevToolsOpenChange: handleDevToolsOpenChange,
|
|
2525
2503
|
onDevToolsDockChange: setDevToolsDock,
|
|
2526
|
-
onSessionDetails
|
|
2504
|
+
onSessionDetails,
|
|
2505
|
+
menuItems,
|
|
2506
|
+
shareMenuItems,
|
|
2507
|
+
menuFooterItems
|
|
2527
2508
|
}), features.devTools ? /* @__PURE__ */ jsxs(ResizablePanelGroup, {
|
|
2528
2509
|
orientation: devToolsDock === "bottom" ? "vertical" : "horizontal",
|
|
2529
2510
|
className: "aperture:min-h-0 aperture:min-w-0 aperture:flex-1 aperture:has-[[data-separator=active]]:[&_iframe]:pointer-events-none",
|
|
@@ -2600,7 +2581,7 @@ function ApertureSession({ theme = "system", className, ...props }) {
|
|
|
2600
2581
|
})
|
|
2601
2582
|
});
|
|
2602
2583
|
}
|
|
2603
|
-
function Session({ access, features, leading, toolbarLeading, toolbarTrailing }) {
|
|
2584
|
+
function Session({ access, features, leading, trailing, toolbarLeading, toolbarTrailing }) {
|
|
2604
2585
|
const { status, control } = useSession({
|
|
2605
2586
|
access,
|
|
2606
2587
|
onNotice: showNotice
|
|
@@ -2638,6 +2619,7 @@ function Session({ access, features, leading, toolbarLeading, toolbarTrailing })
|
|
|
2638
2619
|
cdpUrl: null,
|
|
2639
2620
|
shareUrls: null,
|
|
2640
2621
|
leading,
|
|
2622
|
+
trailing,
|
|
2641
2623
|
toolbarLeading,
|
|
2642
2624
|
toolbarTrailing,
|
|
2643
2625
|
features: {
|