@gen3/workspaces 0.12.52 → 0.12.54

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 (50) hide show
  1. package/dist/dts/components/TierSelectorLanding.d.ts.map +1 -1
  2. package/dist/dts/components/TierSelectorLanding.js +5 -4
  3. package/dist/dts/components/TierSelectorLanding.js.map +1 -1
  4. package/dist/dts/components/UpgradeActionsPanel.d.ts.map +1 -1
  5. package/dist/dts/components/UpgradeActionsPanel.js +4 -4
  6. package/dist/dts/components/UpgradeActionsPanel.js.map +1 -1
  7. package/dist/dts/components/WorkspaceTierCard.d.ts +1 -1
  8. package/dist/dts/components/WorkspaceTierCard.d.ts.map +1 -1
  9. package/dist/dts/components/WorkspaceTierCard.js +2 -2
  10. package/dist/dts/components/WorkspaceTierCard.js.map +1 -1
  11. package/dist/dts/components/WorkspaceTierCard.stories.d.ts +1 -1
  12. package/dist/dts/components/types.d.ts +1 -0
  13. package/dist/dts/components/types.d.ts.map +1 -1
  14. package/dist/dts/providers/MicroContainerReduxProvider.d.ts +2 -1
  15. package/dist/dts/providers/MicroContainerReduxProvider.d.ts.map +1 -1
  16. package/dist/dts/providers/MicroContainerReduxProvider.js +2 -2
  17. package/dist/dts/providers/MicroContainerReduxProvider.js.map +1 -1
  18. package/dist/dts/providers/useJEGWorkspaceResourceMonitor.d.ts +1 -1
  19. package/dist/dts/providers/useJEGWorkspaceResourceMonitor.d.ts.map +1 -1
  20. package/dist/dts/providers/useJEGWorkspaceResourceMonitor.js +5 -3
  21. package/dist/dts/providers/useJEGWorkspaceResourceMonitor.js.map +1 -1
  22. package/dist/dts/server/workspaceAssetsHandler.d.ts.map +1 -1
  23. package/dist/dts/server/workspaceAssetsHandler.js +3 -0
  24. package/dist/dts/server/workspaceAssetsHandler.js.map +1 -1
  25. package/dist/dts/types.d.ts +1 -1
  26. package/dist/dts/types.d.ts.map +1 -1
  27. package/dist/dts/workspace/WorkspaceCenter.d.ts.map +1 -1
  28. package/dist/dts/workspace/WorkspaceCenter.js +3 -2
  29. package/dist/dts/workspace/WorkspaceCenter.js.map +1 -1
  30. package/dist/dts/workspace/WorkspaceLayout/WorkspaceToolbar.d.ts.map +1 -1
  31. package/dist/dts/workspace/WorkspaceLayout/WorkspaceToolbar.js +2 -2
  32. package/dist/dts/workspace/WorkspaceLayout/WorkspaceToolbar.js.map +1 -1
  33. package/dist/dts/workspace/tiers/FreeWorkspace.d.ts.map +1 -1
  34. package/dist/dts/workspace/tiers/FreeWorkspace.js +29 -18
  35. package/dist/dts/workspace/tiers/FreeWorkspace.js.map +1 -1
  36. package/dist/dts/workspace/tiers/RemoteComputeWorkspace.d.ts.map +1 -1
  37. package/dist/dts/workspace/tiers/RemoteComputeWorkspace.js +31 -19
  38. package/dist/dts/workspace/tiers/RemoteComputeWorkspace.js.map +1 -1
  39. package/dist/dts/workspace/tiers/types.d.ts +2 -0
  40. package/dist/dts/workspace/tiers/types.d.ts.map +1 -1
  41. package/dist/index/cjs/index.js +113 -95
  42. package/dist/index/cjs/index.js.map +1 -1
  43. package/dist/index/esm/index.js +114 -96
  44. package/dist/index/esm/index.js.map +1 -1
  45. package/dist/index.d.ts +4 -1
  46. package/dist/server/cjs/server.js +4 -1
  47. package/dist/server/cjs/server.js.map +1 -1
  48. package/dist/server/esm/server.js +4 -1
  49. package/dist/server/esm/server.js.map +1 -1
  50. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"FreeWorkspace.js","sourceRoot":"","sources":["../../../../src/workspace/tiers/FreeWorkspace.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FreeWorkspace.js","sourceRoot":"","sources":["../../../../src/workspace/tiers/FreeWorkspace.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AASlD,MAAM,aAAa,GAAG,CAAC,EACrB,YAAY,GAAG,4BAA4B,EAC3C,OAAO,EACP,OAAO,GACY,EAAE,EAAE;IACvB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACzD,MAAM,mBAAmB,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IAElE,MAAM,GAAG,GAAG,GAAG,YAAY,iBAAiB,CAAC;IAE7C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,0BAA0B;IAC1B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAC;YAClC,mBAAmB,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAChC,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACpC,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC;YACrC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,mEAAmE;IACnE,gEAAgE;IAChE,yDAAyD;IACzD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,MAAM,kBAAkB,GAAG,GAAG,EAAE;YAC9B,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAChC,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC;oBACtC,IAAI,EAAE,iBAAiB;oBACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;QACjC,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAEhC,IAAI,MAAM,EAAE,aAAa,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,SAAS,GACb,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAE1D,IAAI,SAAS,EAAE,CAAC;oBACd,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;oBAC5D,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;oBAC3D,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;oBACzD,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;oBAC7D,mBAAmB,GAAG,IAAI,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,qDAAqD;YACvD,CAAC;QACH,CAAC;QAED,2DAA2D;QAC3D,6DAA6D;QAC7D,oDAAoD;QACpD,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACpD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,mBAAmB,IAAI,MAAM,EAAE,aAAa,EAAE,CAAC;gBACjD,IAAI,CAAC;oBACH,MAAM,SAAS,GACb,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;oBAC1D,IAAI,SAAS,EAAE,CAAC;wBACd,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;wBAC/D,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;wBAC9D,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;wBAC5D,SAAS,CAAC,mBAAmB,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;oBAClE,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;YACH,CAAC;YACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;gBACvD,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,wBACE,MAAC,IAAI,IAAC,UAAU,QAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,GAAG,EAAE,GAAG,aACzD,KAAC,IAAI,IAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAC,SAAS,yCAEnB,EACP,KAAC,IAAI,IAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,mFAEzB,EACP,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAE,WAAW,sBAEvD,IACJ,GACH,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,cAAc,IAAC,OAAO,EAAE,OAAO,GAAI,EACpC,iBACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAEzB,GAAG,EAAE,SAAS,EACd,KAAK,EAAC,uBAAuB,EAC7B,OAAO,EAAC,+HAA+H,EACvI,KAAK,EAAC,wDAAwD,EAC9D,SAAS,EAAC,yBAAyB,EACnC,MAAM,EAAE,GAAG,EAAE;oBACX,UAAU,CAAC,KAAK,CAAC,CAAC;oBAClB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,OAAO,EAAE,EAAE,CAAC;gBACd,CAAC,EACD,OAAO,EAAE,GAAG,EAAE;oBACZ,YAAY,CAAC,IAAI,CAAC,CAAC;oBACnB,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;gBAChE,CAAC,IAdI,UAAU,CAeP,IACN,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteComputeWorkspace.d.ts","sourceRoot":"","sources":["../../../../src/workspace/tiers/RemoteComputeWorkspace.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAM5D,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAG5D,MAAM,MAAM,2BAA2B,GAAG;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,sBAAsB,6GA4U3B,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"RemoteComputeWorkspace.d.ts","sourceRoot":"","sources":["../../../../src/workspace/tiers/RemoteComputeWorkspace.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAM5D,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAG5D,MAAM,MAAM,2BAA2B,GAAG;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,sBAAsB,6GAsV3B,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
@@ -54,45 +54,52 @@ const RemoteComputeWorkspace = React.memo(React.forwardRef(({ assetBaseUrl = '/a
54
54
  }
55
55
  };
56
56
  }, []);
57
- // Handle setting up iframe event listeners
57
+ // Handle setting up iframe event listeners for activity detection.
58
+ // Tries same-origin contentDocument access first; falls back to
59
+ // focus/blur heuristics when the iframe is cross-origin.
58
60
  useEffect(() => {
59
61
  if (!jupyterReady)
60
62
  return;
61
63
  const updateUserActivity = () => {
62
- const timestamp = Date.now();
63
64
  if (broadcastChannelRef.current) {
64
65
  broadcastChannelRef.current.postMessage({
65
66
  type: 'activity-update',
66
- timestamp,
67
+ timestamp: Date.now(),
67
68
  });
68
69
  }
69
70
  };
70
71
  const iframe = iframeRef.current;
71
- if (!iframe?.contentWindow) {
72
- return;
73
- }
74
- try {
75
- const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
76
- if (iframeDoc) {
77
- iframeDoc.addEventListener('mousedown', updateUserActivity);
78
- iframeDoc.addEventListener('keypress', updateUserActivity);
79
- iframeDoc.addEventListener('scroll', updateUserActivity);
80
- iframeDoc.addEventListener('click', updateUserActivity);
81
- iframeDoc.addEventListener('touchstart', updateUserActivity);
72
+ let usedDirectListeners = false;
73
+ if (iframe?.contentWindow) {
74
+ try {
75
+ const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
76
+ if (iframeDoc) {
77
+ iframeDoc.addEventListener('mousedown', updateUserActivity);
78
+ iframeDoc.addEventListener('keypress', updateUserActivity);
79
+ iframeDoc.addEventListener('scroll', updateUserActivity);
80
+ iframeDoc.addEventListener('touchstart', updateUserActivity);
81
+ usedDirectListeners = true;
82
+ }
83
+ }
84
+ catch {
85
+ // cross-origin — fall through to focus/blur fallback
82
86
  }
83
87
  }
84
- catch (error) {
85
- console.warn('Cannot access iframe content - cross-origin restriction', error);
88
+ // Fallback: treat iframe receiving focus as user activity.
89
+ // This fires when the user clicks into the iframe even if we
90
+ // cannot attach listeners to its document directly.
91
+ if (!usedDirectListeners) {
92
+ window.addEventListener('blur', updateUserActivity);
93
+ window.addEventListener('focus', updateUserActivity);
86
94
  }
87
95
  return () => {
88
- if (iframe?.contentWindow) {
96
+ if (usedDirectListeners && iframe?.contentWindow) {
89
97
  try {
90
98
  const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
91
99
  if (iframeDoc) {
92
100
  iframeDoc.removeEventListener('mousedown', updateUserActivity);
93
101
  iframeDoc.removeEventListener('keypress', updateUserActivity);
94
102
  iframeDoc.removeEventListener('scroll', updateUserActivity);
95
- iframeDoc.removeEventListener('click', updateUserActivity);
96
103
  iframeDoc.removeEventListener('touchstart', updateUserActivity);
97
104
  }
98
105
  }
@@ -100,6 +107,10 @@ const RemoteComputeWorkspace = React.memo(React.forwardRef(({ assetBaseUrl = '/a
100
107
  // Ignore cleanup errors
101
108
  }
102
109
  }
110
+ if (!usedDirectListeners) {
111
+ window.removeEventListener('blur', updateUserActivity);
112
+ window.removeEventListener('focus', updateUserActivity);
113
+ }
103
114
  };
104
115
  }, [jupyterReady]);
105
116
  /* ---- Wait for JupyterLite app inside the iframe --------------- */
@@ -217,7 +228,8 @@ const RemoteComputeWorkspace = React.memo(React.forwardRef(({ assetBaseUrl = '/a
217
228
  }
218
229
  return (_jsxs("div", { className: "w-full flex flex-col grow", children: [loading && !loadError && (_jsx("div", { role: "status", "aria-label": "Connecting to remote workspace", className: "w-full h-full pointer-events-none flex items-center justify-center", children: _jsxs("div", { className: "pointer-events-auto flex flex-col items-center gap-3 rounded-xl border border-slate-200 bg-white p-6 shadow-xl dark:border-slate-700 dark:bg-slate-900", children: [_jsx(Loader, { size: 24 }), _jsx(Text, { size: "sm", c: "dimmed", mt: 4, children: "Connecting to Remote Gateway..." }), _jsx(Button, { variant: "default", size: "xs", mt: "sm", onClick: handleRetry, children: "Taking too long? Reload" })] }) })), loadError && (_jsx("div", { children: _jsxs(Card, { withBorder: true, shadow: "sm", padding: "md", w: "100%", maw: 448, children: [_jsx(Text, { fw: 600, c: "primary", children: "Remote workspace failed to load" }), _jsx(Text, { size: "sm", c: "dimmed", mt: 4, children: "Unable to connect to the Jupyter Gateway. Check the browser console for details." }), _jsx(Button, { variant: "default", size: "xs", mt: "sm", onClick: handleRetry, children: "Retry" })] }) })), _jsx("div", { className: "w-full flex flex-col grow", children: _jsx("iframe", { ref: iframeRef, src: `${normalizedBase}/lab/index.html`, width: "100%", height: "100%", title: "Remote Jupyter Workspace", sandbox: "allow-scripts allow-same-origin allow-forms allow-popups allow-downloads allow-modals allow-storage-access-by-user-activation", allow: "clipboard-read; clipboard-write; cross-origin-isolated", className: "min-h-0 flex-1 border-0", onLoad: () => {
219
230
  setLoading(false);
220
- setJupyterReady(true);
231
+ // jupyterReady is set by the polling effect once the
232
+ // JupyterLite app reports status === 'ready'
221
233
  }, onError: () => {
222
234
  setLoadError(true);
223
235
  onError?.(new Error('Unable to load remote Jupyter workspace.'));
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteComputeWorkspace.js","sourceRoot":"","sources":["../../../../src/workspace/tiers/RemoteComputeWorkspace.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteComputeWorkspace.js","sourceRoot":"","sources":["../../../../src/workspace/tiers/RemoteComputeWorkspace.tsx"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ interface LabelAndDescription {
7
7
  export interface TierToolbarConfiguration extends LabelAndDescription {
8
8
  showStop: boolean;
9
9
  showStatus: boolean;
10
+ tierLabel?: string;
10
11
  }
11
12
  export interface SettingsPanelConfiguration {
12
13
  showKernels: boolean;
@@ -29,6 +30,7 @@ export interface FreeWorkspaceTierConfiguration extends WorkspaceTierInformation
29
30
  export interface RemoteComputeWorkspaceTierConfiguration extends WorkspaceTierInformation {
30
31
  baseUrl?: string;
31
32
  type: Extract<WorkspaceTier, 'remote'>;
33
+ startTimeLimit?: number;
32
34
  }
33
35
  export type RemoteComputeWorkspaceHandle = {
34
36
  /** Attach a running kernel to the notebook open in the iframe. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/workspace/tiers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,wBAAwB,CAAC;IAClC,YAAY,EAAE,8BAA8B,CAAC;IAC7C,QAAQ,EAAE,0BAA0B,CAAC;CACtC;AAED,MAAM,WAAW,8BAA+B,SAAQ,wBAAwB;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,uCAAwC,SAAQ,wBAAwB;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,kEAAkE;IAClE,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/workspace/tiers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,wBAAwB,CAAC;IAClC,YAAY,EAAE,8BAA8B,CAAC;IAC7C,QAAQ,EAAE,0BAA0B,CAAC;CACtC;AAED,MAAM,WAAW,8BAA+B,SAAQ,wBAAwB;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,uCAAwC,SAAQ,wBAAwB;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,kEAAkE;IAClE,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
@@ -14,7 +14,7 @@ var bs = require('react-icons/bs');
14
14
  var md = require('react-icons/md');
15
15
  var lodash = require('lodash');
16
16
 
17
- const WorkspaceTierCard = ({ label, description, tier, features = [], tooltip = 'Launch workspace', buttonLabel = 'Launch', onSelectTier, baseColor })=>{
17
+ const WorkspaceTierCard = ({ label, description, tier, tierLabel = undefined, features = [], tooltip = 'Launch workspace', buttonLabel = 'Launch', onSelectTier, baseColor })=>{
18
18
  const handleClick = React.useCallback(()=>onSelectTier(tier), [
19
19
  onSelectTier,
20
20
  tier
@@ -49,7 +49,7 @@ const WorkspaceTierCard = ({ label, description, tier, features = [], tooltip =
49
49
  color: "primary.4",
50
50
  size: "lg",
51
51
  fw: 500,
52
- children: tier !== 'free' ? 'paid' : 'free'
52
+ children: tierLabel ?? (tier === 'remote' ? 'paid' : 'free')
53
53
  })
54
54
  })
55
55
  }),
@@ -115,10 +115,10 @@ const WorkspaceTierCard = ({ label, description, tier, features = [], tooltip =
115
115
  };
116
116
 
117
117
  const DEFAULT_CLASSNAMES = {
118
- root: 'mx-auto w-full max-w-7xl p-6 md:p-10',
119
- background: 'relative overflow-hidden md:p-12',
118
+ root: 'mx-auto w-full h-full overflow-auto max-w-7xl p-6 sm:p-2 md:p-4 lg:p-8',
119
+ background: 'relative overflow-hidden sm:p-2 md:p-4 lg:p-8',
120
120
  label: 'text-md uppercase tracking-[0.28em] text-primary',
121
- description: 'text-4xl font-black leading-tight text-primary md:text-3xl sm:text-2xl mt-4 mb-4',
121
+ description: 'font-black leading-tight text-primary md:text-3xl sm:text-2xl xs:text-lg mt-4 mb-4',
122
122
  additionalDescription: 'max-w-2xl text-md font-medium text-base-contrast',
123
123
  button: 'mt-10 flex w-full items-center justify-center rounded-md bg-primary px-8 py-3 text-sm font-semibold text-primary-contrast shadow-sm hover:bg-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary'
124
124
  };
@@ -129,36 +129,43 @@ const TierSelectorLanding = ({ cards, onSelectTier, classNames, label = 'Gen3 Ju
129
129
  const mergedClassnames = React.useMemo(()=>frontend.mergeDefaultTailwindClassnames(DEFAULT_CLASSNAMES, classNames ?? {}), [
130
130
  classNames
131
131
  ]);
132
- return /*#__PURE__*/ jsxRuntime.jsx("div", {
132
+ return /*#__PURE__*/ jsxRuntime.jsx(core.Container, {
133
+ size: "xl",
133
134
  className: mergedClassnames.root,
134
- children: /*#__PURE__*/ jsxRuntime.jsxs("div", {
135
+ children: /*#__PURE__*/ jsxRuntime.jsxs(core.Stack, {
136
+ gap: "lg",
135
137
  className: mergedClassnames.background,
136
138
  children: [
137
- /*#__PURE__*/ jsxRuntime.jsx("div", {
138
- className: "mb-10 flex flex-col gap-6 md:flex-row md:items-end md:justify-between",
139
- children: /*#__PURE__*/ jsxRuntime.jsxs("div", {
140
- children: [
141
- /*#__PURE__*/ jsxRuntime.jsx("p", {
142
- className: "text-md uppercase tracking-[0.28em] text-primary",
143
- children: label
144
- }),
145
- /*#__PURE__*/ jsxRuntime.jsx("p", {
146
- className: mergedClassnames.description,
147
- children: description
148
- }),
149
- additionalDescriptions.map((desc)=>/*#__PURE__*/ jsxRuntime.jsx("p", {
150
- className: mergedClassnames.additionalDescription,
151
- children: desc
152
- }, desc.slice(0, 20)))
153
- ]
154
- })
139
+ /*#__PURE__*/ jsxRuntime.jsxs(core.Stack, {
140
+ gap: "xs",
141
+ children: [
142
+ /*#__PURE__*/ jsxRuntime.jsx(core.Text, {
143
+ className: mergedClassnames.label,
144
+ children: label
145
+ }),
146
+ /*#__PURE__*/ jsxRuntime.jsx(core.Text, {
147
+ className: mergedClassnames.description,
148
+ children: description
149
+ }),
150
+ additionalDescriptions.map((desc)=>/*#__PURE__*/ jsxRuntime.jsx(core.Text, {
151
+ className: mergedClassnames.additionalDescription,
152
+ children: desc
153
+ }, desc.slice(0, 20)))
154
+ ]
155
155
  }),
156
- /*#__PURE__*/ jsxRuntime.jsx("div", {
157
- className: "grid gap-5 lg:grid-cols-3 md:grid-cols-2 sm:grid-cols-1",
156
+ /*#__PURE__*/ jsxRuntime.jsx(core.SimpleGrid, {
157
+ cols: {
158
+ base: 2,
159
+ sm: 2,
160
+ md: 2,
161
+ lg: 3
162
+ },
163
+ spacing: "md",
158
164
  role: "list",
159
165
  "aria-label": "Workspace tier selection",
160
166
  children: Object.values(cards).map((card)=>/*#__PURE__*/ jsxRuntime.jsx(WorkspaceTierCard, {
161
167
  tier: card.tier,
168
+ tierLabel: card.tierLabel,
162
169
  onSelectTier: onSelectTier,
163
170
  label: card.label,
164
171
  description: card.description,
@@ -198,49 +205,60 @@ const FreeWorkspace = ({ assetBaseUrl = '/api/workspace-assets/free', onReady, o
198
205
  }
199
206
  };
200
207
  }, []);
201
- // Handle setting up iframe event listeners
208
+ // Handle setting up iframe event listeners for activity detection.
209
+ // Tries same-origin contentDocument access first; falls back to
210
+ // focus/blur heuristics when the iframe is cross-origin.
202
211
  React.useEffect(()=>{
203
212
  if (!jupyterReady) return;
204
213
  const updateUserActivity = ()=>{
205
- const timestamp = Date.now();
206
214
  if (broadcastChannelRef.current) {
207
215
  broadcastChannelRef.current.postMessage({
208
216
  type: 'activity-update',
209
- timestamp
217
+ timestamp: Date.now()
210
218
  });
211
219
  }
212
220
  };
213
221
  const iframe = iframeRef.current;
214
- if (!iframe?.contentWindow) {
215
- return;
216
- }
217
- try {
218
- const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
219
- if (iframeDoc) {
220
- iframeDoc.addEventListener('mousedown', updateUserActivity);
221
- iframeDoc.addEventListener('keypress', updateUserActivity);
222
- iframeDoc.addEventListener('scroll', updateUserActivity);
223
- iframeDoc.addEventListener('click', updateUserActivity);
224
- iframeDoc.addEventListener('touchstart', updateUserActivity);
222
+ let usedDirectListeners = false;
223
+ if (iframe?.contentWindow) {
224
+ try {
225
+ const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
226
+ if (iframeDoc) {
227
+ iframeDoc.addEventListener('mousedown', updateUserActivity);
228
+ iframeDoc.addEventListener('keypress', updateUserActivity);
229
+ iframeDoc.addEventListener('scroll', updateUserActivity);
230
+ iframeDoc.addEventListener('touchstart', updateUserActivity);
231
+ usedDirectListeners = true;
232
+ }
233
+ } catch {
234
+ // cross-origin — fall through to focus/blur fallback
225
235
  }
226
- } catch (error) {
227
- console.warn('Cannot access iframe content - cross-origin restriction', error);
236
+ }
237
+ // Fallback: treat iframe receiving focus as user activity.
238
+ // This fires when the user clicks into the iframe even if we
239
+ // cannot attach listeners to its document directly.
240
+ if (!usedDirectListeners) {
241
+ window.addEventListener('blur', updateUserActivity);
242
+ window.addEventListener('focus', updateUserActivity);
228
243
  }
229
244
  return ()=>{
230
- if (iframe?.contentWindow) {
245
+ if (usedDirectListeners && iframe?.contentWindow) {
231
246
  try {
232
247
  const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
233
248
  if (iframeDoc) {
234
249
  iframeDoc.removeEventListener('mousedown', updateUserActivity);
235
250
  iframeDoc.removeEventListener('keypress', updateUserActivity);
236
251
  iframeDoc.removeEventListener('scroll', updateUserActivity);
237
- iframeDoc.removeEventListener('click', updateUserActivity);
238
252
  iframeDoc.removeEventListener('touchstart', updateUserActivity);
239
253
  }
240
254
  } catch {
241
255
  // Ignore cleanup errors
242
256
  }
243
257
  }
258
+ if (!usedDirectListeners) {
259
+ window.removeEventListener('blur', updateUserActivity);
260
+ window.removeEventListener('focus', updateUserActivity);
261
+ }
244
262
  };
245
263
  }, [
246
264
  jupyterReady
@@ -685,6 +703,7 @@ const notifyUser = (title, message, status = 0)=>{
685
703
  [1]: 'utility.2',
686
704
  [2]: 'utility.4'
687
705
  };
706
+ notifications.notifications.clean();
688
707
  notifications.notifications.show({
689
708
  title,
690
709
  message,
@@ -708,7 +727,7 @@ const workspaceShutdownAlertLimit = 30000; // 5 minutes: 5 * 60 * 1000 TODO Figu
708
727
  /**
709
728
  * Monitors resource usage.
710
729
  * Handles state changes and polls for workspace status using the JEG APIs
711
- */ const useJEGWorkspaceResourceMonitor = (workspaceId = null, monitorWorkspace)=>{
730
+ */ const useJEGWorkspaceResourceMonitor = (workspaceId = null, monitorWorkspace, startTimeLimit = MAXIMUM_START_TIME_IN_MINUTES)=>{
712
731
  // start with default polling interval of 1 second
713
732
  const [pollingInterval, setPollingInterval] = React.useState(frontend.convertSecondsToMilliseconds(1));
714
733
  const [error, setError] = React.useState(null);
@@ -872,8 +891,8 @@ const workspaceShutdownAlertLimit = 30000; // 5 minutes: 5 * 60 * 1000 TODO Figu
872
891
  activeStatus
873
892
  ]);
874
893
  React.useEffect(()=>{
875
- // time out if exceeding maximum start timee
876
- if (requestedStatus === core$1.RequestedWorkspaceStatus.Launch && core$1.isTimeGreaterThan(requestedStatusTimestamp, MAXIMUM_START_TIME_IN_MINUTES)) {
894
+ // time out if exceeding maximum start time
895
+ if (requestedStatus === core$1.RequestedWorkspaceStatus.Launch && core$1.isTimeGreaterThan(requestedStatusTimestamp, startTimeLimit)) {
877
896
  if (workspaceId) terminateWorkspace(encodeURIComponent(workspaceId));
878
897
  dispatch(core$1.setJEGRequestedWorkspaceStatus(core$1.RequestedWorkspaceStatus.Terminate));
879
898
  setError('Workspace failed to start. Shutting down');
@@ -884,7 +903,8 @@ const workspaceShutdownAlertLimit = 30000; // 5 minutes: 5 * 60 * 1000 TODO Figu
884
903
  dispatch,
885
904
  workspaceStatusData,
886
905
  workspaceId,
887
- terminateWorkspace
906
+ terminateWorkspace,
907
+ startTimeLimit
888
908
  ]);
889
909
  };
890
910
 
@@ -901,10 +921,10 @@ const useMicroContainerReduxContext = ()=>{
901
921
  }
902
922
  return context;
903
923
  };
904
- function MicroContainerReduxProvider({ children, identifierTag, enabled }) {
924
+ function MicroContainerReduxProvider({ children, identifierTag, enabled, startTimeLimit = undefined }) {
905
925
  const tag = identifierTag ?? (process.env.NEXT_PUBLIC_MICRO_CONTAINER_TAG || '');
906
926
  const value = useMicroContainerRedux(tag, enabled);
907
- useJEGWorkspaceResourceMonitor(value.containerHash);
927
+ useJEGWorkspaceResourceMonitor(value.containerHash, true, startTimeLimit);
908
928
  return /*#__PURE__*/ jsxRuntime.jsx(MicroContainerReduxProviderContext.Provider, {
909
929
  value: value,
910
930
  children: children
@@ -1178,49 +1198,60 @@ const MicroContainerReduxPanel = ({ compact = false })=>{
1178
1198
  }
1179
1199
  };
1180
1200
  }, []);
1181
- // Handle setting up iframe event listeners
1201
+ // Handle setting up iframe event listeners for activity detection.
1202
+ // Tries same-origin contentDocument access first; falls back to
1203
+ // focus/blur heuristics when the iframe is cross-origin.
1182
1204
  React.useEffect(()=>{
1183
1205
  if (!jupyterReady) return;
1184
1206
  const updateUserActivity = ()=>{
1185
- const timestamp = Date.now();
1186
1207
  if (broadcastChannelRef.current) {
1187
1208
  broadcastChannelRef.current.postMessage({
1188
1209
  type: 'activity-update',
1189
- timestamp
1210
+ timestamp: Date.now()
1190
1211
  });
1191
1212
  }
1192
1213
  };
1193
1214
  const iframe = iframeRef.current;
1194
- if (!iframe?.contentWindow) {
1195
- return;
1196
- }
1197
- try {
1198
- const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
1199
- if (iframeDoc) {
1200
- iframeDoc.addEventListener('mousedown', updateUserActivity);
1201
- iframeDoc.addEventListener('keypress', updateUserActivity);
1202
- iframeDoc.addEventListener('scroll', updateUserActivity);
1203
- iframeDoc.addEventListener('click', updateUserActivity);
1204
- iframeDoc.addEventListener('touchstart', updateUserActivity);
1215
+ let usedDirectListeners = false;
1216
+ if (iframe?.contentWindow) {
1217
+ try {
1218
+ const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
1219
+ if (iframeDoc) {
1220
+ iframeDoc.addEventListener('mousedown', updateUserActivity);
1221
+ iframeDoc.addEventListener('keypress', updateUserActivity);
1222
+ iframeDoc.addEventListener('scroll', updateUserActivity);
1223
+ iframeDoc.addEventListener('touchstart', updateUserActivity);
1224
+ usedDirectListeners = true;
1225
+ }
1226
+ } catch {
1227
+ // cross-origin — fall through to focus/blur fallback
1205
1228
  }
1206
- } catch (error) {
1207
- console.warn('Cannot access iframe content - cross-origin restriction', error);
1229
+ }
1230
+ // Fallback: treat iframe receiving focus as user activity.
1231
+ // This fires when the user clicks into the iframe even if we
1232
+ // cannot attach listeners to its document directly.
1233
+ if (!usedDirectListeners) {
1234
+ window.addEventListener('blur', updateUserActivity);
1235
+ window.addEventListener('focus', updateUserActivity);
1208
1236
  }
1209
1237
  return ()=>{
1210
- if (iframe?.contentWindow) {
1238
+ if (usedDirectListeners && iframe?.contentWindow) {
1211
1239
  try {
1212
1240
  const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
1213
1241
  if (iframeDoc) {
1214
1242
  iframeDoc.removeEventListener('mousedown', updateUserActivity);
1215
1243
  iframeDoc.removeEventListener('keypress', updateUserActivity);
1216
1244
  iframeDoc.removeEventListener('scroll', updateUserActivity);
1217
- iframeDoc.removeEventListener('click', updateUserActivity);
1218
1245
  iframeDoc.removeEventListener('touchstart', updateUserActivity);
1219
1246
  }
1220
1247
  } catch {
1221
1248
  // Ignore cleanup errors
1222
1249
  }
1223
1250
  }
1251
+ if (!usedDirectListeners) {
1252
+ window.removeEventListener('blur', updateUserActivity);
1253
+ window.removeEventListener('focus', updateUserActivity);
1254
+ }
1224
1255
  };
1225
1256
  }, [
1226
1257
  jupyterReady
@@ -1416,7 +1447,8 @@ const MicroContainerReduxPanel = ({ compact = false })=>{
1416
1447
  className: "min-h-0 flex-1 border-0",
1417
1448
  onLoad: ()=>{
1418
1449
  setLoading(false);
1419
- setJupyterReady(true);
1450
+ // jupyterReady is set by the polling effect once the
1451
+ // JupyterLite app reports status === 'ready'
1420
1452
  },
1421
1453
  onError: ()=>{
1422
1454
  setLoadError(true);
@@ -2155,27 +2187,11 @@ const UpgradeActionsPanel = ({ currentTier, onUpgradeToRemote, onRequestQuotaInc
2155
2187
  /*#__PURE__*/ jsxRuntime.jsxs("div", {
2156
2188
  className: "space-y-2 p-4 pt-0",
2157
2189
  children: [
2158
- /*#__PURE__*/ jsxRuntime.jsxs(core.Stack, {
2159
- children: [
2160
- /*#__PURE__*/ jsxRuntime.jsxs(core.Group, {
2161
- justify: "space-between",
2162
- wrap: "nowrap",
2163
- children: [
2164
- /*#__PURE__*/ jsxRuntime.jsx("p", {
2165
- className: "text-md font-bold text-base-contrast-max",
2166
- children: "Current Tier"
2167
- }),
2168
- /*#__PURE__*/ jsxRuntime.jsx(core.Badge, {
2169
- color: "primary.3",
2170
- children: currentTier
2171
- })
2172
- ]
2173
- }),
2174
- /*#__PURE__*/ jsxRuntime.jsx("p", {
2175
- className: "mt-1 text-sm text-base-contrast-max",
2176
- children: currentTier === 'free' ? 'Upgrade to remote kernels for long-running jobs and larger memory footprints.' : 'Remote compute is active. You can request expanded quota for larger workloads.'
2177
- })
2178
- ]
2190
+ /*#__PURE__*/ jsxRuntime.jsx(core.Stack, {
2191
+ children: /*#__PURE__*/ jsxRuntime.jsx("p", {
2192
+ className: "my-1 text-sm text-base-contrast-max",
2193
+ children: currentTier === 'free' ? 'Upgrade to remote kernels for long-running jobs and larger memory footprints.' : 'Remote compute is active. You can request expanded quota for larger workloads.'
2194
+ })
2179
2195
  }),
2180
2196
  currentTier === 'free' && /*#__PURE__*/ jsxRuntime.jsx(core.Button, {
2181
2197
  onClick: onUpgradeToRemote,
@@ -2322,7 +2338,7 @@ const WorkspaceToolbar = /*#__PURE__*/ React.forwardRef(({ toolbarConfiguration
2322
2338
  const workspaceTier = core$1.useCoreSelector((state)=>core$1.selectWorkspaceTier(state));
2323
2339
  const workspaceStatus = core$1.useCoreSelector((state)=>core$1.selectJEGActiveWorkspaceStatus(state));
2324
2340
  const isFullscreen = core$1.useCoreSelector((state)=>core$1.selectWorkspaceFullscreen(state));
2325
- const { showStatus, showStop } = toolbarConfiguration || {};
2341
+ const { showStatus, showStop, tierLabel } = toolbarConfiguration || {};
2326
2342
  const coreDispatch = core$1.useCoreDispatch();
2327
2343
  const toggleFullscreen = React.useCallback(()=>{
2328
2344
  coreDispatch(core$1.setWorkspaceFullscreen(!isFullscreen));
@@ -2375,8 +2391,8 @@ const WorkspaceToolbar = /*#__PURE__*/ React.forwardRef(({ toolbarConfiguration
2375
2391
  children: toolbarConfiguration?.description
2376
2392
  }),
2377
2393
  /*#__PURE__*/ jsxRuntime.jsx(core.Badge, {
2378
- "aria-label": `Workspace tier: ${workspaceTier}`,
2379
- children: workspaceTier
2394
+ "aria-label": `Workspace tier: ${tierLabel ?? workspaceTier}`,
2395
+ children: tierLabel ?? workspaceTier
2380
2396
  })
2381
2397
  ]
2382
2398
  })
@@ -3975,7 +3991,7 @@ const WorkspaceCenter = ({ workspaces, landingPage, tierConfiguration })=>{
3975
3991
  ]);
3976
3992
  if (!workspaceTier) {
3977
3993
  return /*#__PURE__*/ jsxRuntime.jsx("div", {
3978
- className: "w-full bg-base-lightest ",
3994
+ className: "w-full h-full overflow-hidden bg-base-lightest ",
3979
3995
  children: /*#__PURE__*/ jsxRuntime.jsx(TierSelectorLanding, {
3980
3996
  cards: workspaces,
3981
3997
  onSelectTier: handleSelectTier,
@@ -3993,9 +4009,11 @@ const WorkspaceCenter = ({ workspaces, landingPage, tierConfiguration })=>{
3993
4009
  });
3994
4010
  }
3995
4011
  if (workspaceTier === 'remote') {
4012
+ const config = tierConfiguration.remote;
3996
4013
  return /*#__PURE__*/ jsxRuntime.jsx(frontend.ProtectedContent, {
3997
4014
  children: /*#__PURE__*/ jsxRuntime.jsx(MicroContainerReduxProvider, {
3998
4015
  enabled: true,
4016
+ startTimeLimit: config?.startTimeLimit,
3999
4017
  children: /*#__PURE__*/ jsxRuntime.jsx(WorkspaceLayout, {
4000
4018
  tierConfiguration: tierConfiguration.remote,
4001
4019
  children: /*#__PURE__*/ jsxRuntime.jsx(RemoteComputeWorkspace, {