feat(sw): viewer layer eye-icon rule, header hover, trailing strip and file name width

User-requested SW Viewer changes (2026-10-21); no new Props, public .d.ts unchanged.
- Layer popup visibility: AI docs (VIEWER §4.1, catalog, design rules, patterns,
  AI_GUIDE) require the Eye / EyeOff icon button, never a switch; example H now
  renders a real layer list with eye buttons; Storybook eye button gets the pointer.
- Viewer header hover: text and icon #FFC600, the #266651 hover face removed; size and
  position unchanged. Status stays display only.
- Trailing strip: status, the trailing icon button (info / license) and SWHeader
  minimize / close are full-height (48px) segments on the window-area face, no gap, top
  and bottom on the object surface border; no line around the license button.
- File name: the measured steps use the file-name basis (header width), not the text
  width, so a short and a long name give the same Open / file-name widths.
- File open icon: the black icon outline of every viewer icon (SWViewerIcon), no frame.
This commit is contained in:
shkim4 committed 2026-10-21 18:52:38 +09:00
1 parent 32e46c32be
commit caf4c32592
14 files changed
+109 -26

No files matched your search

@@ -410,7 +410,7 @@ export const SWViewerHeader = forwardRef<HTMLElement, SWViewerHeaderProps>(funct
<SWToolButton appearance="document" className="hm-sw-viewer-header__open" data-document-open="" data-icon-only={iconOnly ? "" : undefined}
aria-label={iconOnly ? label : undefined} title={iconOnly ? label : undefined}
onClick={() => { onDocumentOpen(); command({ id: "open", itemId: "document" }) }}>
<span className="hm-sw-viewer-header__open-icon" aria-hidden="true"><FolderIcon /></span>
<span className="hm-sw-viewer-header__open-icon" aria-hidden="true"><SWViewerIcon><FolderIcon /></SWViewerIcon></span>
{!iconOnly && <span className="hm-sw-viewer-header__open-label">{label}</span>}
</SWToolButton>
)