Commit Graph
159 Commits
Author SHA1 Message Date
shkim4 da0e647b49 docs(storybook): simplify sidebar Story pages around the UI
Drop the category kicker from the 83 sidebar Stories (kicker is now optional;
hidden verification Stories keep it) and shorten or remove repeated, obvious
or internal page/section descriptions. Required specs, limits, virtual-data
and undecided-value notices stay. Story IDs, exports, fixtures, shared state
notes and package code are unchanged. Record: docs/reports/storybook-ui-simplification-2026-10-22.md
2026-10-22 16:13:58 +09:00
shkim4 aa8b7f8df1 test(sw): approve the fc65b2e header switch and footer tab baseline
Deploy Storybook / deploy (push) Successful in 4m4s
Test-only approval commit after the user-approved 449398e and fc65b2e
commits on main (sw-test-regression-baseline section 9); no protected path
changes, no Story change.
- approvedMainCommit 8cb98b3 -> fc65b2e.
- public-api.approved.json kept: the public .d.ts files are byte-identical.
- docs/sw/sw-header-switch-footer-tabs-2026-10-22.md: change and verification.
2026-10-22 15:35:44 +09:00
shkim4 fc65b2e836 feat(sw): bold 9-slice footer tabs and viewer panel bottom edge
User-approved 2026-10-22 SW changes (CSS only, public API unchanged).
- Footer Model / Layout tab labels 700 in every state, letter-spacing -5%;
  the name-edit input keeps 400.
- Slanted Layout tab and Model tab draw their SVG assets as 9-slice
  border-images: 97px / 73px stay the minimum, the slant and corners keep
  their size and only the flat middle grows with a longer label (max 12em,
  then ellipsis, like the rounded tabs). Hover surfaces use a union mask of
  the same asset (no mask-border), so Chromium and Firefox match. The
  default width renders pixel-identical to the previous drawing; the 8px
  slant / Model joint is unchanged.
- Viewer panel body: the 7px bottom padding (inside the scrollport) becomes
  a 2px transparent bottom border, so scrolled rows stop 2px above the
  frame border instead of running into it. SWPopup keeps its 7px.
- AI docs: DESIGN_RULES, AI_USAGE, FOOTER, VIEWER updated.
- Tests: text-weight and footer-design-review expect the 700 labels and read
  the Model surface from the 9-slice ::before.
2026-10-22 15:32:07 +09:00
shkim4 449398e3de style(sw): calmer viewer header switches without the yellow face
User-approved 2026-10-22 design for the SW viewer header switches (2.5D,
어두운 배경); panel switches and the --hm-sw-viewer-accent token unchanged.
- OFF: track #020a07, knob #5f7a71 (dim gray-green).
- ON: track var(--hm-sw-viewer-hover) #266651, knob var(--hm-sw-viewer-muted)
  #bddfd4. No yellow face or ring.
- New tokens --hm-sw-viewer-switch-thumb-off / -on / --hm-sw-viewer-switch-on;
  size, knob travel, bevel and the 60% disabled opacity unchanged.
- DESIGN_RULES.md header switch token row updated.
2026-10-22 15:00:59 +09:00
shkim4 14a29933da test(sw): approve the 8cb98b3 viewer layer popup API and baseline
Test-only approval commit after the user-approved 8cb98b3 change on main
(sw-test-regression-baseline section 9); no protected path changes.
- public-api.approved.json re-snapshotted from the clean 8cb98b3 build:
  + SWLayerVisibilityIcon, SWLayerVisibilityIconProps (170 -> 172 exports).
- approvedMainCommit bcec066 -> 8cb98b3. No Story ID or tag change.
- docs/sw/sw-viewer-layer-bulb-switch-2026-10-22.md: change and verification.
2026-10-22 14:21:58 +09:00
shkim4 8cb98b373f feat(sw): viewer layer popup bulb icon and all-layers switch
User-approved 2026-10-22 change to the SW Viewer layer popup.
- New public export SWLayerVisibilityIcon({ on }) + SWLayerVisibilityIconProps:
  the SW Header layer bulb art reused as is (header design and behavior unchanged).
- Layer rows: eye (Eye / EyeOff) icon replaced by the bulb, 24 x 24 button kept.
- All layers: the 전체 켜기 / 전체 끄기 buttons replaced by one SWViewerField +
  SWViewerSwitch on top. ON only when every layer is shown; a partial state reads
  OFF and a click shows all. Derived from the hidden-layer state, so it stays synced.
- AI docs (VIEWER.md 4.1, catalog, design rules, composition, AI_GUIDE sync) and
  example H follow the new rule, replacing the 2026-10-21 eye-icon rule.
- viewer.browser.mjs: layer popup checks moved to the bulb / switch behavior.
2026-10-22 14:18:45 +09:00
shkim4 1dd8fb3aad test(sw): approve the bcec066 legacy launcher cleanup merge baseline
Deploy Storybook / deploy (push) Successful in 2m13s
Test-only approval commit after the bcec066 main merge (sw-test-regression-
baseline section 9); no protected path changes, no Story change.
- approvedMainCommit fc856f5 -> bcec066.
- public-api.approved.json kept: the public .d.ts files are byte-identical.
- docs/sw/legacy-launcher-cleanup-merge-2026-10-22.md: change and verification.
2026-10-22 09:39:25 +09:00
shkim4 bcec066bda Merge chore/remove-legacy-launchers: remove the legacy Windows launcher, PORTABLE records and ZIP packaging scripts 2026-10-22 09:35:35 +09:00
shkim4 9cdfdea3ca chore: remove unused portable preview and ZIP packaging scripts
None of these are used by npm scripts, the Gitea workflow, Docker, other
scripts or current guides; they only produced the past publisher and AI
reference ZIPs.

- Delete scripts/portable-preview/ (start-preview.bat, preview-server.cjs),
  used only by create-publisher-distribution.mjs
- Delete scripts/create-publisher-distribution.mjs (2026-10-10 publisher ZIP)
- Delete scripts/create-ai-reference-package.mjs (past AI reference ZIP);
  sync:ai-docs / check:ai-docs do not use it
2026-10-22 09:35:25 +09:00
shkim4 f8cb5f8318 chore: remove legacy Windows launcher and PORTABLE verification records
Storybook is served on the web (main deployment), so the Windows BAT
launcher and its Node helper are no longer used. The root PORTABLE
r4-r6 verification records are historical ZIP-era notes that nothing
references.

- Delete start-storybook.bat and scripts/start-storybook.mjs
- Delete PORTABLE-R4/R5-CANDIDATE/R5/R6-VERIFICATION.md
- README, publisher distribution guide, LAN preview note: point to the
  web Storybook; keep npm run storybook for local development
- v2 baseline report: unlink the removed files, keep the record text
2026-10-22 09:31:58 +09:00
shkim4 10a1dcd28f test(sw): approve the fc856f5 AI_USAGE examples merge baseline
Deploy Storybook / deploy (push) Successful in 1m13s
Test-only approval commit after the fc856f5 main merge (sw-test-regression-
baseline section 9); no protected path changes, no Story change.
- approvedMainCommit 5a40796 -> fc856f5.
- public-api.approved.json kept: the public .d.ts files are byte-identical.
- docs/sw/ai-usage-examples-merge-2026-10-22.md: change and verification.
2026-10-22 09:16:41 +09:00
shkim4 fc856f5e86 Merge docs/sw-ai-usage-examples: list all AI examples A-J in AI_USAGE.md 2026-10-22 09:14:20 +09:00
shkim4 00180bacac docs(sw): list all AI examples A-J in AI_USAGE.md
Add the missing G (home menu), I (footer) and J (theme) with every example's real file name; the A-F consumer verification note is kept.
2026-10-22 09:14:19 +09:00
shkim4 7efb58ef12 test(sw): approve the 5a40796 AI docs alignment merge baseline
Deploy Storybook / deploy (push) Successful in 1m19s
Test-only approval commit after the 5a40796 main merge (sw-test-regression-
baseline section 9); no protected path changes, no Story change.
- approvedMainCommit 955581c -> 5a40796.
- public-api.approved.json kept: the public .d.ts files are byte-identical.
- docs/sw/ai-docs-alignment-merge-2026-10-22.md: change and verification.
2026-10-22 09:02:34 +09:00
shkim4 5a40796b7e Merge docs/sw-viewer-ai-docs-p1-p3: align AI docs with the current viewer header (P1-P3, R1-R5) 2026-10-22 08:59:15 +09:00
shkim4 e267b1b441 docs(ai): apply recommended doc alignment R1-R5
- R1 sw COMPONENT_CATALOG §9: SWViewerHeaderButton is 32 x 48 in the trailing strip, 32 x 40 inside custom items
- R2 sw COMPOSITION_PATTERNS §7: open icon has only its own black outline, no frame border or face
- R3 sw VIEWER §2: open icon area 16 x 16 and button padding 0 12px 0 24px
- R4 docs/ai/MAINTAINING §1: sw ai files incl. FOOTER.md and examples A-J (G, I)
- R5 docs/ai/AI_GUIDE: center-graphic entries /reference and /style.css, synced to 4 package copies
2026-10-22 08:59:03 +09:00
shkim4 d03cc910b2 docs(sw): align viewer AI docs with open button, documents list and hover
- AI_USAGE.md §0.4: viewer hover changes only text and icon to #FFC600 (no #266651 face)
- AI_USAGE.md §0.2: file open is the onDocumentOpen button next to the logo, samples are documents
- COMPONENT_CATALOG.md §9: SWViewerHeader open button position, logoMenu marked compatibility only
2026-10-22 08:55:09 +09:00
shkim4 d71db6c5b0 test(sw): approve the 955581c SW viewer button-height merge baseline
Deploy Storybook / deploy (push) Successful in 1m2s
Test-only approval commit after the 955581c main merge (sw-test-regression-
baseline section 9); no protected path changes, no Story change.
- approvedMainCommit f340a26 -> 955581c.
- public-api.approved.json kept: the public .d.ts files are byte-identical.
- docs/sw/sw-viewer-button-height-2026-10-21.md: change and verification.
2026-10-21 19:27:26 +09:00
shkim4 955581c6c4 Merge fix/sw-viewer-button-height-34: restore the viewer button-height token to 34px 2026-10-21 19:24:57 +09:00
shkim4 51d03698ce fix(sw): restore the viewer button-height token to 34px
User request (2026-10-21): --hm-sw-viewer-button-height back to 34px (16px shrank
other viewer header buttons, e.g. 전체 보기); DESIGN_RULES token table matches.
The open icon keeps its 16 x 16 area (--hm-sw-viewer-icon-size, margin 0) and the open
padding 0 12px 0 24px. No Props, public .d.ts unchanged.
2026-10-21 19:24:57 +09:00
shkim4 c7f29b0142 test(sw): approve the f340a26 SW viewer open icon merge baseline
Deploy Storybook / deploy (push) Successful in 1m2s
Test-only approval commit after the f340a26 main merge (sw-test-regression-
baseline section 9); no protected path changes, no Story change.
- approvedMainCommit 6b6f17c -> f340a26.
- public-api.approved.json kept: the public .d.ts files are byte-identical.
- docs/sw/sw-viewer-open-icon-2026-10-21.md: changes and verification.
2026-10-21 19:18:55 +09:00
shkim4 f340a264b8 Merge fix/sw-viewer-open-icon-16: viewer open icon 16px area, open padding and button-height token 2026-10-21 19:16:39 +09:00
shkim4 0840d76c76 fix(sw): viewer open icon 16px area, open padding and button-height token
User requests (2026-10-21), CSS and docs only; no Props, public .d.ts unchanged.
- .hm-sw-viewer-header__open-icon: the 16 x 16 icon itself (--hm-sw-viewer-icon-size),
  margin 0; the black icon outline (SWViewerIcon) is unchanged.
- .hm-sw-viewer-header__open padding 0 12px 0 24px.
- --hm-sw-viewer-button-height 34px -> 16px (user change, DESIGN_RULES token table
  updated with it).
2026-10-21 19:16:39 +09:00
shkim4 65bc134045 test(sw): approve the 6b6f17c SW viewer round boundary merge baseline
Deploy Storybook / deploy (push) Successful in 1m3s
Test-only approval commit after the 6b6f17c main merge (sw-test-regression-
baseline section 9); no protected path changes, no Story change.
- approvedMainCommit f26ec7c -> 6b6f17c.
- public-api.approved.json kept: the public .d.ts files are byte-identical.
- docs/sw/sw-viewer-round-background-2026-10-21.md: changes and verification.
2026-10-21 19:04:27 +09:00
shkim4 6b6f17c1a9 Merge fix/sw-viewer-strip-round: rounded viewer menu surface end and solid viewer background 2026-10-21 19:02:13 +09:00
shkim4 3671657ee0 fix(sw): rounded menu surface end before the viewer strip; solid viewer background
User requests (2026-10-21), CSS and docs only; no Props, public .d.ts unchanged.
- The viewer menu surface ends before the trailing strip like the SWHeader object area:
  6px right radius (--hm-sw-header-object-radius), the same face and border, a 2px
  header gap. Painted by the first strip segment over the empty group padding + gap
  (4px more room below 1180px); heights, edges and button positions unchanged.
- --hm-sw-viewer-background: the Storybook viewer canvas solid #0a0a0b instead of the
  gradient (viewer header only; SWHeader, Footer, Popup unchanged).
2026-10-21 19:02:11 +09:00
shkim4 d63a9ac9e8 test(sw): approve the f26ec7c SW viewer header merge baseline
Deploy Storybook / deploy (push) Successful in 1m3s
Test-only approval commit after the f26ec7c main merge (sw-test-regression-
baseline section 9); no protected path changes, no Story change.
- approvedMainCommit 21fe7a2 -> f26ec7c.
- public-api.approved.json kept: the public .d.ts files are byte-identical.
- docs/sw/sw-viewer-header-strip-2026-10-21.md: changes and verification.
2026-10-21 18:55:06 +09:00
shkim4 f26ec7c696 Merge docs/sw-viewer-layer-eye: SW Viewer layer eye-icon rule, header hover, trailing strip and file name width 2026-10-21 18:52:39 +09:00
shkim4 caf4c32592 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.
2026-10-21 18:52:38 +09:00
shkim4 32e46c32be test(sw): approve the 21fe7a2 property count hover merge baseline
Deploy Storybook / deploy (push) Successful in 1m4s
Test-only approval commit after the 21fe7a2 main merge (sw-test-regression-
baseline section 9); no protected path changes, no Story change.
- approvedMainCommit c73f043 -> 21fe7a2.
- public-api.approved.json kept: the public .d.ts files are byte-identical.
- docs/sw/sw-property-counts-hover-2026-10-21.md: change and verification.
2026-10-21 18:08:03 +09:00
shkim4 21fe7a29c7 Merge fix/sw-property-counts-hover: property popup count hover only on the object list 2026-10-21 18:06:00 +09:00
shkim4 17170d2be9 fix(sw): limit the property popup count hover to the object list
User request (2026-10-21): in the all-selection property popup only the object
list on the right (columns 3-4: 원 1, 광선 1, 곡선 10, 호 1, 폴리선 10, 폴리선 2,
문자 1) keeps the #FF5C00 text Hover and the pointer. The summary entries of
columns 1-2 (도형 10, 직선 10, 문자 1 …) stay plain text: no Hover color, no
pointer, no click (none was added). The area is decided by the entry's column,
not by its text; entries without a column keep the Hover as before.
- SWHeaderPropertyPanel: internal data-count-summary on columns 1-2 (no Props
  or type change; public .d.ts byte-identical).
- sw.css: hover and pointer selectors skip [data-count-summary].
Count, order, layout (314 x 361) and editing are unchanged.
2026-10-21 18:05:59 +09:00
shkim4 f195c932f8 test(sw): refresh the detail-buttons header baseline for the current Stories
Deploy Storybook / deploy (push) Successful in 2m7s
The 2026-10-16 baseline (fc26afd) only had default-* / controls-* header
snapshots of Stories retired since, so verify compared overview-* / k-guide-*
against missing keys (102/122). Regenerated with the suite's `baseline` mode
from the Storybook of the approved 2d5d2d9 product source (approved 2026-10-21
header: 49px, five menus without More from 760px header width, More below).
- overview-* / k-guide-* at 10 widths replace default-* / controls-*.
- textDefault / textHover unchanged (byte-identical).
- baseline-story-ids.json kept: it is the 2026-10-16 reference list the Story
  inventory check uses against unapproved additions; that check passes.
verify: 122/122 PASS (evidence outside the repository).
2026-10-21 17:53:07 +09:00
shkim4 2d5d2d9848 test(sw): approve the c73f043 SW doc alignment merge baselines
Deploy Storybook / deploy (push) Successful in 1m7s
Test-only approval commit after the c73f043 main merge (sw-test-regression-
baseline section 9); no protected path changes, no Story change.
- approvedMainCommit c1a69a4 -> c73f043.
- public-api.approved.json from the clean c73f043 build: 170 exports, 42
  declaration files and the manifest kept; only comment changes in
  SWRecentFiles / home-menu types / viewer types .d.ts.
- docs/sw/sw-doc-alignment-merge-2026-10-21.md: changes and verification.
2026-10-21 17:48:31 +09:00
shkim4 c73f043a01 Merge fix/sw-design-review-2026-10-21: align SW AI docs and comments with the 2026-10-21 implementation 2026-10-21 17:45:45 +09:00
shkim4 8127cc72c4 docs(sw): align AI docs and comments with the 2026-10-21 implementation
Documentation and comment-only changes (no component logic, Props or design change):
- VIEWER.md / AI_GUIDE / AI_USAGE / catalog / patterns: the two SWViewerHeader versions
  (default, and minimize/close with SWHeaderWindowControls at the end of `trailing`);
  the earlier "never mix SWHeader parts" rule now names this approved exception.
- collapseBelow / iconOnlyBelow (types.ts JSDoc, VIEWER.md, AI_GUIDE): measured steps,
  the numbers only set the order, not pixel breakpoints. Viewer file open is the
  onDocumentOpen button (logoMenu is compatibility only).
- COMPONENT_CATALOG / DESIGN_RULES: recent files show at most 3 rows; preview caption is
  previewTitle or path + file name; body is the red no-preview sign on the brown panel;
  preview / renderPreview are accepted but not rendered (JSDoc updated to match).
- packages/sw/README.md and sw-header-usage.md: current Story list and counts (40, 14
  shown + 26 verification); 760px+ no-More condition; read-only Property Bar values as
  <output>.
- SWHeader.tsx comment: titles are kept (not hidden) from 760px up.
- AI_GUIDE synced into the package ai/ copies (npm run sync:ai-docs).
2026-10-21 17:45:26 +09:00
shkim4 646fb60462 test(sw): approve the c1a69a4 SW design review merge baselines
Deploy Storybook / deploy (push) Successful in 7m48s
Test-only approval commit after the c1a69a4 main merge (sw-test-regression-
baseline section 9); no protected path changes.
- approvedMainCommit b320a8f -> c1a69a4.
- public-api.approved.json from the clean c1a69a4 build: 170 exports and the
  manifest kept; only comment changes in SWFooter / SWFooterParts /
  SWRecentFiles / home-menu types .d.ts (approved defaults documented).
2026-10-21 17:30:37 +09:00
shkim4 c1a69a4948 Merge fix/sw-design-review-2026-10-21: SW design review and responsive header without More from 760px 2026-10-21 17:29:50 +09:00
shkim4 e1e6fcaf14 test(sw): approve the 2fc1b3e SW Header Story declarations
Test-only: approvedHeaderDeclarations and approvedHeaderSourceChanges name the
user-approved 2026-10-21 design review changes of sw-header.stories.tsx
(Overview, ComposedDemo, MORE_WIDTHS, PROPERTY_FIXTURE, BAR_TITLE, BAR_FIXTURE).
2026-10-21 17:29:45 +09:00
shkim4 2fc1b3e108 fix(sw): 2026-10-21 SW design review and responsive header without More from 760px
User-approved design review (2026-10-21):
- SW Header: from 760px up nothing moves into More; the five menus stay with their
  titles (titles and values ellipsize), file name shrinks to 96px. Open next to the
  logo no longer blocks field shrinking above 760px (760/768 overflow fixed, also for
  configured `controls` headers). Dropdown yellow ring inside the button, black seam.
- Property Bar values as read-only red text; property popup "=" labels, read-only
  black values, per-entry hover with pointer.
- Home Menu recent files (3 rows, path + name caption, empty preview), Footer + slot
  guide off by default, Viewer file list without icons, Storybook widths 1920-760.
- Tests: old More expectations (integrated-improvement, keyboard-dismiss,
  footer-popup-viewer-refinement, storybook-cleanup-stage1) moved to the new rule;
  functional checks kept.
2026-10-21 17:29:25 +09:00
shkim4 a25d2b31c5 test(sw): approve the SW Viewer Header API and Storybook cleanup baselines
Deploy Storybook / deploy (push) Successful in 1m10s
Test-only approval commit after the 34f02bf main merge (sw-test-regression-
baseline section 9); no protected path changes.
- public-api.approved.json from the clean 34f02bf build: 170 exports kept,
  only SWViewerHeader.d.ts changes (7 optional SWViewerHeaderProps).
- approvedMainCommit b4e0771 -> b320a8f; approvedHeaderDeclarations for the
  23d522c Story declarations; withApprovedOrder for the approved SW Header
  first position; storybook-simplification expects SW/Theme hidden.
- Verification report: docs/sw/sw-viewer-storybook-merge-verification-2026-10-21.md
2026-10-21 15:21:30 +09:00
shkim4 b320a8f1e0 fix(sw): fit the Viewer Settings Popup Story in one viewport; update its guide name
The merged Settings Popup Story (sw-viewer--content-variants) was 870px tall,
so a full-page capture resized the viewport and the live Properties values
moved (theme-inheritance regression, control run changed the same 9 elements).
The frame is 760px again with Options at the right and the scale popup under
Properties; the four popups do not overlap at the 1200px Storybook column.
VIEWER.md now names the Story SW/Viewer > Settings Popup (was Popup Content
Variants). No component or public API change.
2026-10-21 15:20:00 +09:00
shkim4 34f02bf0f4 test(sw): approve the 23d522c sw-header.stories.tsx declaration changes
Deploy Storybook / deploy (push) Successful in 1m7s
Records the user-approved Storybook cleanup declarations of 23d522c in
approvedHeaderSourceChanges (Overview, InteractiveStates, DocumentDropdown,
MORE_WIDTHS, ResponsiveMore, PROPERTY_STATES, PropertyCompare,
PropertyPanelComparePage, import:@hm-design/sw; StyleDemo and
MeasuredMoreDemo removed). approvedMainCommit is unchanged here; it moves in
the test-only commit after the main merge (sw-test-regression-baseline §9).
2026-10-21 14:59:32 +09:00
shkim4 23d522c136 feat(sw): viewer header logo menu and file list; simplify SW Storybook
SW Viewer Header (approved optional props, public export names unchanged at 170):
- SWViewerHeader: logoMenu, documents, activeDocumentId, onDocumentSelect,
  onDocumentOpen, documentOpenLabel; measured responsive toggles (full ->
  icons -> More) with the SWHeader More / file-list styling.
- SW AI guides, ExampleH, viewer/text-weight/theme-inheritance tests and the
  logo-document-menu tests with their QA record.

SW Storybook cleanup (Story IDs and test fixtures kept):
- Sidebar: Overview -> "SW Header" (first), 전체 Footer -> "SW Footer",
  Footer/Viewer responsive pages -> "Responsive More", Viewer content-variants
  -> "Settings Popup" (merges the settings popup page).
- Hidden by the verification tag (direct URL kept): Header Dropdown,
  Document Open, Interactive States, Document Dropdown, Hidden Sub Controls,
  Home Menu standalone; Footer tool groups / custom content / parts;
  SW/Theme; Viewer menu groups / item states / variable size / settings
  panel / Header + Dropdown.
- Removed demo UI: Overview size and callback output (demo data and
  selection only with &verification), Home Menu Figma node table and width
  demo, Header Responsive More reduced to 1440 / 768 / 390, Popup reopen
  button, property-panel comparison captions, Viewer context-menu demo
  (&verification only).
- Tests: storybook-inventory records the hidden and renamed Stories;
  overview / range-cross-browser / viewer open the demo controls with
  &verification; integrated-popup reloads the Story instead of the reopen
  button; dropdown-consolidation asserts Dropdown is hidden from the sidebar
  and still opens by its direct URL.
2026-10-21 14:52:46 +09:00
shkim4 46119eacb5 test(sw): move approvedMainCommit to the reviewed merge b4e0771
Deploy Storybook / deploy (push) Successful in 2m2s
The merge of fix/test-home-menu-integration carries only approved SW changes (shared roving focus / outside pointer
helpers, Firefox line-values grid); no Story change, public API unchanged (public-api.approved.json kept). Guards:
overview 54/54, overlays 20/20, unused 93/93, dropdown 228/228, stage1 41/41, home menu 23/23, public API 7/7.
2026-10-21 06:14:40 +09:00
shkim4 b4e0771dd0 Merge branch 'fix/test-home-menu-integration' into main 2026-10-21 06:10:06 +09:00
shkim4 c89407a436 docs(sw): record the 2026-10-21 follow-up
Unattended follow-up report: test alignment, Firefox fixes, shared helpers, source guard and public API checks,
verification results and the commit split.
2026-10-21 06:09:25 +09:00
shkim4 0f9e9b0e4c test(sw): cover roving focus wrap and outside pointer dismissal
keyboard-dismiss.browser.mjs + fixtures/tool-group.tsx: end-point wrap, Home / End, disabled items and a pointerdown
outside that does not move focus, for the callers of the shared helpers (22 checks; same result before the refactor).
2026-10-21 06:08:46 +09:00
shkim4 7cc3aa1ff8 refactor(sw): share roving focus and outside pointer handling
- components/shared/roving-focus.ts (moveRovingFocus): the same Arrow / Home / End algorithm of SWFooter, SWToolGroup,
  the SWViewerHeader tabs and SWHomeMenu; each caller passes its own keys, wrap and select behavior.
- components/shared/use-outside-pointer.ts (useOutsidePointerDown): the same pointerdown effect of the SWHeader
  dropdowns, layer menu, document title and More. Escape, focus return and positioning stay in each component.
Both modules are internal: the package entry and the public declarations are unchanged.
2026-10-21 06:08:45 +09:00
shkim4 af7f98d66b test(sw): stabilize Firefox hover, pixel and timing checks
- hover-stability-firefox: instant scroll and state waits instead of a fixed 60ms delay (smooth scroll in preview).
- integrated-visual, viewer-regression, theme-inheritance: deterministic Chromium raster flags, animations held at
  time 0, layout settle wait, integer instant scroll of inner panels; tolerance stays 0.
- text-weight: wait for the Viewer More panel instead of a fixed 200ms and fix the failure report.
2026-10-21 06:08:31 +09:00