anentrypoint-design 0.0.199 → 0.0.200

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.
@@ -140,7 +140,11 @@ const ICON_PATHS = {
140
140
  folder: '<path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>',
141
141
  upload: '<path d="M12 16V4M7 9l5-5 5 5"/><path d="M5 20h14"/>',
142
142
  download: '<path d="M12 4v12M7 11l5 5 5-5"/><path d="M5 20h14"/>',
143
- 'corner-up-left': '<path d="M9 14 4 9l5-5"/><path d="M4 9h11a5 5 0 0 1 5 5v6"/>'
143
+ 'corner-up-left': '<path d="M9 14 4 9l5-5"/><path d="M4 9h11a5 5 0 0 1 5 5v6"/>',
144
+ // clipboard/copy — for the per-block code copy + message copy action, so the
145
+ // copy affordance reads as copy, not the lined-document `page` glyph.
146
+ copy: '<rect x="9" y="9" width="11" height="11" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h8"/>',
147
+ clipboard: '<rect x="8" y="4" width="8" height="4" rx="1"/><path d="M8 6H6a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-2"/>'
144
148
  };
145
149
  // Raw-DOM consumers (no webjsx render in scope) need the SVG as a markup string
146
150
  // rather than an h() vnode. Same path table, same viewBox/stroke contract as
@@ -355,15 +359,21 @@ function wsCollapsed(which, fallback) {
355
359
  export function WorkspaceShell({ rail, sessions, main, pane, crumb, status, narrow,
356
360
  railCollapsed = false, paneCollapsed = false,
357
361
  railLabel = 'workspace navigation',
358
- paneLabel = 'context' } = {}) {
362
+ paneLabel = 'context', stableFrame = false } = {}) {
359
363
  const hasSessions = Boolean(sessions);
360
364
  const hasPane = Boolean(pane);
365
+ // Stable frame: keep the pane grid TRACK present even when this tab has no
366
+ // pane, so the shell does not re-flow its column count (4/3/2) on every tab
367
+ // switch - the loudest "separate pages" tell. The track collapses to width 0
368
+ // (ws-pane-collapsed) instead of being removed (ws-no-pane), so chat/history/
369
+ // files/live/settings all keep the same column geometry.
370
+ const keepPaneTrack = stableFrame && !hasPane;
361
371
  const railIsCollapsed = wsCollapsed('rail', railCollapsed);
362
372
  const paneIsCollapsed = hasPane ? wsCollapsed('pane', paneCollapsed) : true;
363
373
  const shellCls = 'ws-shell'
364
374
  + (railIsCollapsed ? ' ws-rail-collapsed' : '')
365
- + (hasPane ? '' : ' ws-no-pane')
366
- + (hasPane && paneIsCollapsed ? ' ws-pane-collapsed' : '')
375
+ + ((hasPane || keepPaneTrack) ? '' : ' ws-no-pane')
376
+ + (((hasPane && paneIsCollapsed) || keepPaneTrack) ? ' ws-pane-collapsed' : '')
367
377
  + (hasSessions ? '' : ' ws-no-sessions')
368
378
  + (narrow ? ' narrow' : '');
369
379
  return h('div', { class: shellCls },
package/src/components.js CHANGED
@@ -35,13 +35,13 @@ export { ContextPane } from './components/context-pane.js';
35
35
 
36
36
  export {
37
37
  fileGlyph, fmtFileSize,
38
- FileIcon, FileRow, FileGrid, FileSkeleton, sortFiles, FileToolbar,
38
+ FileIcon, FileRow, FileGrid, FileSkeleton, sortFiles, FileToolbar, RootsPicker,
39
39
  DropZone, UploadProgress, EmptyState, BreadcrumbPath
40
40
  } from './components/files.js';
41
41
 
42
42
  export {
43
43
  ConfirmDialog, PromptDialog,
44
- FilePreviewMedia, FilePreviewCode, FilePreviewText, FileViewer
44
+ FilePreviewMedia, FilePreviewCode, FilePreviewText, FileViewer, FilePreviewPane
45
45
  } from './components/files-modals.js';
46
46
 
47
47
  export {