refactor(storybook): remove unused SW header demo stories
Remove nine SW/Header demo pages (property-fields, property-shape-slot, composition, colorize, dynamic-controls, property-bar, additional-hover, property-panel, layer-detail-input) and the demo code and Storybook-only CSS used only by them. SW Stories 19 -> 10, total 338 -> 329. The package runtime, public API, AI template and the retained Stories (Overview, Dropdown, Property Panel 4-state comparison, Window Move Motion and others) are unchanged. Add a current regression script and mark the older scripts that open the retired IDs as historical evidence. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No files matched your search
@@ -0,0 +1 @@
|
||||
{"v":5,"entries":{"foundation-color--all":{"type":"story","subtype":"story","id":"foundation-color--all","name":"Color","title":"Foundation/Color","importPath":"./src/foundation/color.stories.tsx","tags":["dev","test","manifest"],"exportName":"All"},"foundation-typography--all":{"type":"story","subtype":"story","id":"foundation-typography--all","name":"Typography","title":"Foundation/Typography","importPath":"./src/foundation/typography.stories.tsx","tags":["dev","test","manifest"],"exportName":"All"},"foundation-layout--all":{"type":"story","subtype":"story","id":"foundation-layout--all","name":"Layout","title":"Foundation/Layout","importPath":"./src/foundation/layout.stories.tsx","tags":["dev","test","manifest"],"exportName":"All"},"components-form-button--all":{"type":"story","subtype":"story","id":"components-form-button--all","name":"Button","title":"Components/Form/Button","importPath":"./src/components/button.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":["dev","test","manifest"],"exportName":"All"},"components-form-button--roles":{"type":"story","subtype":"story","id":"components-form-button--roles","name":"Roles","title":"Components/Form/Button","importPath":"./src/components/button.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":["dev","test","manifest","verification"],"exportName":"Roles"},"components-form-button--sizes":{"type":"story","subtype":"story","id":"components-form-button--sizes","name":"Sizes","title":"Components/Form/Button","importPath":"./src/components/button.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":["dev","test","manifest","verification"],"exportName":"Sizes"},"components-form-button--states":{"type":"story","subtype":"story","id":"components-form-button--states","name":"Brand States","title":"Components/Form/Button","importPath":"./src/components/button.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":["dev","test","manifest","verification"],"exportName":"States"},"components-form-button--standard-states":{"type":"story","subtype":"story","id":"components-form-button--standard-states","name":"Standard States","title":"Components/Form/Button","importPath":"./src/components/button.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":["dev","test","manifest","verification"],"exportName":"StandardStates"},"components-form-button--long-label":{"type":"story","subtype":"story","id":"components-form-button--long-label","name":"Long Label","title":"Components/Form/Button","importPath":"./src/components/button.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":["dev","test","manifest","verification"],"exportName":"LongLabel"},"components-form-button--korean-labels":{"type":"story","subtype":"story","id":"components-form-button--korean-labels","name":"Korean Labels","title":"Components/Form/Button","importPath":"./src/components/button.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":["dev","test","manifest","verification"],"exportName":"KoreanLabels"},"components-form-button--icon-text-narrow":{"type":"story","subtype":"story","id":"components-form-button--icon-text-narrow","name":"Icon Text Narrow","title":"Components/Form/Button","importPath":"./src/components/button.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":["dev","test","manifest","verification"],"exportName":"IconTextNarrow"},"components-form-button--destructive":{"type":"story","subtype":"story","id":"components-form-button--destructive","name":"Destructive","title":"Components/Form/Button","importPath":"./src/components/button.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":["dev","test","manifest","verification"],"exportName":"Destructive"},"components-form-button--playground":{"type":"story","subtype":"story","id":"components-form-button--playground","name":"Playground","title":"Components/Form/Button","importPath":"./src/components/button.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":["dev","test","manifest","verification"],"exportName":"Playground"},"components-form-button--compatibility":{"type":"story","subtype":"story","id":"components-form-button--compatibility","name":"Compatibility","title":"Components/Form/Button","importPath":"./src/components/button.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":["dev","test","manifest","verification"],"exportName":"Compatibility"},"components-form-input--all":{"type":"story","subtype":"story","id":"components-form-input--all","name":"Input","title":"Components/Form/Input","importPath":"./src/components/input.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":["dev","test","manifest","play-fn"],"exportName":"All"},"components-form-input--default":{"type":"story","subtype":"story","id":"components-form-input--default","name":"Default","title":"Components/Form/Input","importPath":"./src/components/input.stories.tsx","componentPath":"./packages/ui/dist/index.js","tags":Line truncated
|
||||
@@ -0,0 +1,197 @@
|
||||
{
|
||||
"head": "c8e5fbeebc26fba92998fc5ddcd28c6c110e452d",
|
||||
"total": 338,
|
||||
"sw": [
|
||||
{
|
||||
"id": "sw-header--composed-controls",
|
||||
"name": "Dropdown",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--detail-buttons",
|
||||
"name": "Detail Buttons (Shared States)",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest",
|
||||
"verification"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--overview",
|
||||
"name": "Overview",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--interactive-states",
|
||||
"name": "Interactive States",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--window-move-motion",
|
||||
"name": "Window Move Motion",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--logo-slot",
|
||||
"name": "Logo Slot",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--document-dropdown",
|
||||
"name": "Document Dropdown",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--responsive-more",
|
||||
"name": "Responsive More",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--layer-detail-input",
|
||||
"name": "Layer Detail · Input",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--property-panel",
|
||||
"name": "Property Panel",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--k-guide",
|
||||
"name": "K Guide",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--additional-hover",
|
||||
"name": "Additional Hover",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--property-bar",
|
||||
"name": "Property Bar",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--dynamic-controls",
|
||||
"name": "Dynamic Controls",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--colorize",
|
||||
"name": "Colorize",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--composition",
|
||||
"name": "Composition (Visibility · Order)",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--property-panel-compare",
|
||||
"name": "Property Panel · 4개 비교",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--property-shape-slot",
|
||||
"name": "Property Panel · 형상 Slot",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--property-fields",
|
||||
"name": "Property Panel · 필드 13개",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 256 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 117 KiB |
|
After Width: | Height: | Size: 105 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 87 KiB |
|
After Width: | Height: | Size: 83 KiB |
@@ -0,0 +1,639 @@
|
||||
{
|
||||
"before": [
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--detail-buttons",
|
||||
"name": "Detail Buttons (Shared States)",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest",
|
||||
"verification"
|
||||
],
|
||||
"exportName": "DetailButtons"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--overview",
|
||||
"name": "Overview",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "Overview"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--interactive-states",
|
||||
"name": "Interactive States",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "InteractiveStates"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--window-move-motion",
|
||||
"name": "Window Move Motion",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "WindowMoveMotion"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--composed-controls",
|
||||
"name": "Composed Controls",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "ComposedControls"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--logo-slot",
|
||||
"name": "Logo Slot",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "LogoSlot"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--document-dropdown",
|
||||
"name": "Document Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "DocumentDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--layer-dropdown",
|
||||
"name": "Layer Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "LayerDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--color-dropdown",
|
||||
"name": "Color Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "ColorDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--line-style-dropdown",
|
||||
"name": "Line Style Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "LineStyleDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--text-dimension-style-dropdown",
|
||||
"name": "Text · Dimension Style Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "TextDimensionStyleDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--responsive-more",
|
||||
"name": "Responsive More",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "ResponsiveMore"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--layer-detail-input",
|
||||
"name": "Layer Detail · Input",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "LayerDetailInput"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel",
|
||||
"name": "Property Panel",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanel"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-variants",
|
||||
"name": "Property Panel Variants",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelVariants"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--k-guide",
|
||||
"name": "K Guide",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "KGuide"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--additional-hover",
|
||||
"name": "Additional Hover",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "AdditionalHover"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-bar",
|
||||
"name": "Property Bar",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyBar"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--dynamic-controls",
|
||||
"name": "Dynamic Controls",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "DynamicControls"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--colorize",
|
||||
"name": "Colorize",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "Colorize"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--composition",
|
||||
"name": "Composition (Visibility · Order)",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "Composition"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-none",
|
||||
"name": "Property Panel · 선택 없음",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelNone"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-all",
|
||||
"name": "Property Panel · 전체 선택",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelAll"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-circle",
|
||||
"name": "Property Panel · 원 1개",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelCircle"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-expanded",
|
||||
"name": "Property Panel · 모두 펼침",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelExpanded"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-compare",
|
||||
"name": "Property Panel · 4개 비교",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelCompare"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-shape-slot",
|
||||
"name": "Property Panel · 형상 Slot",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyShapeSlot"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-fields",
|
||||
"name": "Property Panel · 필드 13개",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyFields"
|
||||
}
|
||||
],
|
||||
"after": [
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--composed-controls",
|
||||
"name": "Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header-dropdown.stories.tsx",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "ComposedControls"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--detail-buttons",
|
||||
"name": "Detail Buttons (Shared States)",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest",
|
||||
"verification"
|
||||
],
|
||||
"exportName": "DetailButtons"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--overview",
|
||||
"name": "Overview",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "Overview"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--interactive-states",
|
||||
"name": "Interactive States",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "InteractiveStates"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--window-move-motion",
|
||||
"name": "Window Move Motion",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "WindowMoveMotion"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--logo-slot",
|
||||
"name": "Logo Slot",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "LogoSlot"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--document-dropdown",
|
||||
"name": "Document Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "DocumentDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--responsive-more",
|
||||
"name": "Responsive More",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "ResponsiveMore"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--k-guide",
|
||||
"name": "K Guide",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "KGuide"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-compare",
|
||||
"name": "Property Panel · 4개 비교",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelCompare"
|
||||
}
|
||||
],
|
||||
"removed": [
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--layer-dropdown",
|
||||
"name": "Layer Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "LayerDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--color-dropdown",
|
||||
"name": "Color Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "ColorDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--line-style-dropdown",
|
||||
"name": "Line Style Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "LineStyleDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--text-dimension-style-dropdown",
|
||||
"name": "Text · Dimension Style Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "TextDimensionStyleDropdown"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,152 @@
|
||||
[
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--composed-controls",
|
||||
"name": "Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header-dropdown.stories.tsx",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "ComposedControls"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--detail-buttons",
|
||||
"name": "Detail Buttons (Shared States)",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest",
|
||||
"verification"
|
||||
],
|
||||
"exportName": "DetailButtons"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--overview",
|
||||
"name": "Overview",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "Overview"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--interactive-states",
|
||||
"name": "Interactive States",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "InteractiveStates"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--window-move-motion",
|
||||
"name": "Window Move Motion",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "WindowMoveMotion"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--logo-slot",
|
||||
"name": "Logo Slot",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "LogoSlot"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--document-dropdown",
|
||||
"name": "Document Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "DocumentDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--responsive-more",
|
||||
"name": "Responsive More",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "ResponsiveMore"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--k-guide",
|
||||
"name": "K Guide",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "KGuide"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-compare",
|
||||
"name": "Property Panel · 4개 비교",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelCompare"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,423 @@
|
||||
[
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--detail-buttons",
|
||||
"name": "Detail Buttons (Shared States)",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest",
|
||||
"verification"
|
||||
],
|
||||
"exportName": "DetailButtons"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--overview",
|
||||
"name": "Overview",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "Overview"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--interactive-states",
|
||||
"name": "Interactive States",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "InteractiveStates"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--window-move-motion",
|
||||
"name": "Window Move Motion",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "WindowMoveMotion"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--composed-controls",
|
||||
"name": "Composed Controls",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "ComposedControls"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--logo-slot",
|
||||
"name": "Logo Slot",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "LogoSlot"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--document-dropdown",
|
||||
"name": "Document Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "DocumentDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--layer-dropdown",
|
||||
"name": "Layer Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "LayerDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--color-dropdown",
|
||||
"name": "Color Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "ColorDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--line-style-dropdown",
|
||||
"name": "Line Style Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "LineStyleDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--text-dimension-style-dropdown",
|
||||
"name": "Text · Dimension Style Dropdown",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "TextDimensionStyleDropdown"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--responsive-more",
|
||||
"name": "Responsive More",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "ResponsiveMore"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--layer-detail-input",
|
||||
"name": "Layer Detail · Input",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "LayerDetailInput"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel",
|
||||
"name": "Property Panel",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanel"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-variants",
|
||||
"name": "Property Panel Variants",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelVariants"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--k-guide",
|
||||
"name": "K Guide",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "KGuide"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--additional-hover",
|
||||
"name": "Additional Hover",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "AdditionalHover"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-bar",
|
||||
"name": "Property Bar",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyBar"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--dynamic-controls",
|
||||
"name": "Dynamic Controls",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "DynamicControls"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--colorize",
|
||||
"name": "Colorize",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "Colorize"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--composition",
|
||||
"name": "Composition (Visibility · Order)",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "Composition"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-none",
|
||||
"name": "Property Panel · 선택 없음",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelNone"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-all",
|
||||
"name": "Property Panel · 전체 선택",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelAll"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-circle",
|
||||
"name": "Property Panel · 원 1개",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelCircle"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-expanded",
|
||||
"name": "Property Panel · 모두 펼침",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelExpanded"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-panel-compare",
|
||||
"name": "Property Panel · 4개 비교",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyPanelCompare"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-shape-slot",
|
||||
"name": "Property Panel · 형상 Slot",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyShapeSlot"
|
||||
},
|
||||
{
|
||||
"type": "story",
|
||||
"subtype": "story",
|
||||
"id": "sw-header--property-fields",
|
||||
"name": "Property Panel · 필드 13개",
|
||||
"title": "SW/Header",
|
||||
"importPath": "./src/sw/sw-header.stories.tsx",
|
||||
"componentPath": "./packages/sw/dist/index.js",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
],
|
||||
"exportName": "PropertyFields"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,656 @@
|
||||
{
|
||||
"baseCommit": "50bf5bda8e956a4973b923d64131f2f2285bd38c",
|
||||
"checks": [
|
||||
{
|
||||
"name": "24 retained Story IDs, names and tags; only approved Dropdown retirements",
|
||||
"status": "FAIL"
|
||||
},
|
||||
{
|
||||
"name": "retained non-Overview declarations byte-identical; relocated composition separately verified",
|
||||
"status": "FAIL"
|
||||
},
|
||||
{
|
||||
"name": "retired Dropdown IDs absent",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "package production source untouched",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "16:9 fitted to both Inner dimensions at 1920x1080",
|
||||
"status": "PASS",
|
||||
"data": {
|
||||
"stage": {
|
||||
"x": 360,
|
||||
"y": 264.25,
|
||||
"w": 1200,
|
||||
"h": 675,
|
||||
"right": 1560,
|
||||
"bottom": 939.25
|
||||
},
|
||||
"slot": {
|
||||
"x": 360,
|
||||
"y": 169.5,
|
||||
"w": 1200,
|
||||
"h": 864.5,
|
||||
"right": 1560,
|
||||
"bottom": 1034
|
||||
},
|
||||
"header": {
|
||||
"x": 360,
|
||||
"y": 264.25,
|
||||
"w": 1200,
|
||||
"h": 49,
|
||||
"right": 1560,
|
||||
"bottom": 313.25
|
||||
},
|
||||
"viewport": {
|
||||
"w": 1920,
|
||||
"h": 1080
|
||||
},
|
||||
"overflow": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "16:9 fitted to both Inner dimensions at 1440x900",
|
||||
"status": "PASS",
|
||||
"data": {
|
||||
"stage": {
|
||||
"x": 120,
|
||||
"y": 174.25,
|
||||
"w": 1200,
|
||||
"h": 675,
|
||||
"right": 1320,
|
||||
"bottom": 849.25
|
||||
},
|
||||
"slot": {
|
||||
"x": 120,
|
||||
"y": 169.5,
|
||||
"w": 1200,
|
||||
"h": 684.5,
|
||||
"right": 1320,
|
||||
"bottom": 854
|
||||
},
|
||||
"header": {
|
||||
"x": 120,
|
||||
"y": 174.25,
|
||||
"w": 1200,
|
||||
"h": 49,
|
||||
"right": 1320,
|
||||
"bottom": 223.25
|
||||
},
|
||||
"viewport": {
|
||||
"w": 1440,
|
||||
"h": 900
|
||||
},
|
||||
"overflow": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "16:9 fitted to both Inner dimensions at 1280x720",
|
||||
"status": "PASS",
|
||||
"data": {
|
||||
"stage": {
|
||||
"x": 191.5625,
|
||||
"y": 169.5,
|
||||
"w": 896.875,
|
||||
"h": 504.5,
|
||||
"right": 1088.4375,
|
||||
"bottom": 674
|
||||
},
|
||||
"slot": {
|
||||
"x": 38.40625,
|
||||
"y": 169.5,
|
||||
"w": 1203.1875,
|
||||
"h": 504.5,
|
||||
"right": 1241.59375,
|
||||
"bottom": 674
|
||||
},
|
||||
"header": {
|
||||
"x": 191.5625,
|
||||
"y": 169.5,
|
||||
"w": 896.875,
|
||||
"h": 49,
|
||||
"right": 1088.4375,
|
||||
"bottom": 218.5
|
||||
},
|
||||
"viewport": {
|
||||
"w": 1280,
|
||||
"h": 720
|
||||
},
|
||||
"overflow": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "16:9 fitted to both Inner dimensions at 768x600",
|
||||
"status": "PASS",
|
||||
"data": {
|
||||
"stage": {
|
||||
"x": 42.21875,
|
||||
"y": 169.5,
|
||||
"w": 683.546875,
|
||||
"h": 384.5,
|
||||
"right": 725.765625,
|
||||
"bottom": 554
|
||||
},
|
||||
"slot": {
|
||||
"x": 23.046875,
|
||||
"y": 169.5,
|
||||
"w": 721.90625,
|
||||
"h": 384.5,
|
||||
"right": 744.953125,
|
||||
"bottom": 554
|
||||
},
|
||||
"header": {
|
||||
"x": 42.21875,
|
||||
"y": 169.5,
|
||||
"w": 683.546875,
|
||||
"h": 49,
|
||||
"right": 725.765625,
|
||||
"bottom": 218.5
|
||||
},
|
||||
"viewport": {
|
||||
"w": 768,
|
||||
"h": 600
|
||||
},
|
||||
"overflow": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "16:9 fitted to both Inner dimensions at 390x844",
|
||||
"status": "PASS",
|
||||
"data": {
|
||||
"stage": {
|
||||
"x": 16,
|
||||
"y": 383.0625,
|
||||
"w": 358,
|
||||
"h": 201.375,
|
||||
"right": 374,
|
||||
"bottom": 584.4375
|
||||
},
|
||||
"slot": {
|
||||
"x": 16,
|
||||
"y": 169.5,
|
||||
"w": 358,
|
||||
"h": 628.5,
|
||||
"right": 374,
|
||||
"bottom": 798
|
||||
},
|
||||
"header": {
|
||||
"x": 16,
|
||||
"y": 383.0625,
|
||||
"w": 390,
|
||||
"h": 49,
|
||||
"right": 406,
|
||||
"bottom": 432.0625
|
||||
},
|
||||
"viewport": {
|
||||
"w": 390,
|
||||
"h": 844
|
||||
},
|
||||
"overflow": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "16:9 fitted to both Inner dimensions at 1000x500",
|
||||
"status": "PASS",
|
||||
"data": {
|
||||
"stage": {
|
||||
"x": 247.109375,
|
||||
"y": 169.5,
|
||||
"w": 505.765625,
|
||||
"h": 284.5,
|
||||
"right": 752.875,
|
||||
"bottom": 454
|
||||
},
|
||||
"slot": {
|
||||
"x": 30,
|
||||
"y": 169.5,
|
||||
"w": 940,
|
||||
"h": 284.5,
|
||||
"right": 970,
|
||||
"bottom": 454
|
||||
},
|
||||
"header": {
|
||||
"x": 247.109375,
|
||||
"y": 169.5,
|
||||
"w": 505.765625,
|
||||
"h": 49,
|
||||
"right": 752.875,
|
||||
"bottom": 218.5
|
||||
},
|
||||
"viewport": {
|
||||
"w": 1000,
|
||||
"h": 500
|
||||
},
|
||||
"overflow": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "one Header and no duplicate fixed Figma specimen",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "document selection updates Header and Callback",
|
||||
"status": "PASS",
|
||||
"data": "onDocumentClick → documentOpen(true) → onDocumentSelect(doc-2) → documentOpen(false)"
|
||||
},
|
||||
{
|
||||
"name": "layer selection updates shared data",
|
||||
"status": "PASS",
|
||||
"data": "onDocumentClick → documentOpen(true) → onDocumentSelect(doc-2) → documentOpen(false) → onLayerOpen → onLayerSelect(layer, CC-D GNL)"
|
||||
},
|
||||
{
|
||||
"name": "existing layer Detail callback closes list",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "color selection invokes host callback",
|
||||
"status": "PASS",
|
||||
"data": "onLayerOpen → onLayerSelect(layer, CC-D GNL) → onLayerOpen → onLayerDetail → onColorOpen → onColorSelect(color, 255,255,255)"
|
||||
},
|
||||
{
|
||||
"name": "line selection updates Header",
|
||||
"status": "PASS",
|
||||
"data": "onLayerOpen → onLayerDetail → onColorOpen → onColorSelect(color, 255,255,255) → onLineStyleOpen → onLineTypeSelect(line, CENTER)"
|
||||
},
|
||||
{
|
||||
"name": "ByLayer weight mode does not turn numeric property into a mode string",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "text style selection updates Header",
|
||||
"status": "PASS",
|
||||
"data": "onColorSelect(color, 255,255,255) → onLineStyleOpen → onLineTypeSelect(line, CENTER) → onLineWeightSelect(w-bylayer) → onTextStyleOpen → onTextStyleSelect(dotum)"
|
||||
},
|
||||
{
|
||||
"name": "dimension style selection updates Header",
|
||||
"status": "PASS",
|
||||
"data": "onLineTypeSelect(line, CENTER) → onLineWeightSelect(w-bylayer) → onTextStyleOpen → onTextStyleSelect(dotum) → onDimensionStyleOpen → onDimensionStyleSelect(iso-25)"
|
||||
},
|
||||
{
|
||||
"name": "opening another dropdown closes the previous one",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "Escape closes Header dropdown",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "outside click closes Header dropdown",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "Bar Enter commits state",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "Bar validates min=0",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "Bar Escape cancels edit",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "Header opens panel with same Bar value",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "numeric weight property remains numeric after ByLayer mode",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "Header layer value shared with panel",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "panel edit updates the Bar",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "panel number validation rejects negative radius",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "panel Layer dropdown updates Header shared value",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "panel line dropdown updates Header shared value",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "panel color dropdown updates Header shared value",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "panel RGB validation rejects out-of-range value",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "gauge keyboard editing commits host state",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "first Escape cancels draft and retains panel",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "next Escape closes panel and restores Header focus",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "panel Close button restores focus",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "external Props update Bar",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "Bar ReadOnly",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "Bar Disabled",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "dynamic Bar field added",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "dynamic field shared with panel",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "dynamic field removed from both",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "shape Slot can be empty without changing panel structure",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "original panel size none:314x256",
|
||||
"status": "PASS",
|
||||
"data": {
|
||||
"x": 1000,
|
||||
"y": 301.25,
|
||||
"width": 314,
|
||||
"height": 256
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "original panel size all:314x361",
|
||||
"status": "PASS",
|
||||
"data": {
|
||||
"x": 1000,
|
||||
"y": 301.25,
|
||||
"width": 314,
|
||||
"height": 361
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "original panel size circle:314x658",
|
||||
"status": "PASS",
|
||||
"data": {
|
||||
"x": 1000,
|
||||
"y": 301.25,
|
||||
"width": 314,
|
||||
"height": 658
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "original panel size expanded:314x754",
|
||||
"status": "PASS",
|
||||
"data": {
|
||||
"x": 1000,
|
||||
"y": 301.25,
|
||||
"width": 314,
|
||||
"height": 754
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "expanded popup bottom accessible through internal scroll",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "small Inner reaches full popup bottom with native Header and popup dimensions",
|
||||
"status": "PASS",
|
||||
"data": {
|
||||
"top": 630,
|
||||
"left": 16,
|
||||
"height": 201,
|
||||
"scrollHeight": 831,
|
||||
"width": 358,
|
||||
"scrollWidth": 390
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "narrow popup Escape restores More focus",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "actual Storybook manager iframe fits its own Inner",
|
||||
"status": "PASS",
|
||||
"data": {
|
||||
"width": 1071.59375,
|
||||
"height": 602.765625,
|
||||
"slotWidth": 1071.59375,
|
||||
"slotHeight": 744.5,
|
||||
"viewportWidth": 1140,
|
||||
"viewportHeight": 960
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "no browser errors",
|
||||
"status": "PASS",
|
||||
"data": []
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"sizes": [
|
||||
{
|
||||
"stage": {
|
||||
"x": 360,
|
||||
"y": 264.25,
|
||||
"w": 1200,
|
||||
"h": 675,
|
||||
"right": 1560,
|
||||
"bottom": 939.25
|
||||
},
|
||||
"slot": {
|
||||
"x": 360,
|
||||
"y": 169.5,
|
||||
"w": 1200,
|
||||
"h": 864.5,
|
||||
"right": 1560,
|
||||
"bottom": 1034
|
||||
},
|
||||
"header": {
|
||||
"x": 360,
|
||||
"y": 264.25,
|
||||
"w": 1200,
|
||||
"h": 49,
|
||||
"right": 1560,
|
||||
"bottom": 313.25
|
||||
},
|
||||
"viewport": {
|
||||
"w": 1920,
|
||||
"h": 1080
|
||||
},
|
||||
"overflow": 0
|
||||
},
|
||||
{
|
||||
"stage": {
|
||||
"x": 120,
|
||||
"y": 174.25,
|
||||
"w": 1200,
|
||||
"h": 675,
|
||||
"right": 1320,
|
||||
"bottom": 849.25
|
||||
},
|
||||
"slot": {
|
||||
"x": 120,
|
||||
"y": 169.5,
|
||||
"w": 1200,
|
||||
"h": 684.5,
|
||||
"right": 1320,
|
||||
"bottom": 854
|
||||
},
|
||||
"header": {
|
||||
"x": 120,
|
||||
"y": 174.25,
|
||||
"w": 1200,
|
||||
"h": 49,
|
||||
"right": 1320,
|
||||
"bottom": 223.25
|
||||
},
|
||||
"viewport": {
|
||||
"w": 1440,
|
||||
"h": 900
|
||||
},
|
||||
"overflow": 0
|
||||
},
|
||||
{
|
||||
"stage": {
|
||||
"x": 191.5625,
|
||||
"y": 169.5,
|
||||
"w": 896.875,
|
||||
"h": 504.5,
|
||||
"right": 1088.4375,
|
||||
"bottom": 674
|
||||
},
|
||||
"slot": {
|
||||
"x": 38.40625,
|
||||
"y": 169.5,
|
||||
"w": 1203.1875,
|
||||
"h": 504.5,
|
||||
"right": 1241.59375,
|
||||
"bottom": 674
|
||||
},
|
||||
"header": {
|
||||
"x": 191.5625,
|
||||
"y": 169.5,
|
||||
"w": 896.875,
|
||||
"h": 49,
|
||||
"right": 1088.4375,
|
||||
"bottom": 218.5
|
||||
},
|
||||
"viewport": {
|
||||
"w": 1280,
|
||||
"h": 720
|
||||
},
|
||||
"overflow": 0
|
||||
},
|
||||
{
|
||||
"stage": {
|
||||
"x": 42.21875,
|
||||
"y": 169.5,
|
||||
"w": 683.546875,
|
||||
"h": 384.5,
|
||||
"right": 725.765625,
|
||||
"bottom": 554
|
||||
},
|
||||
"slot": {
|
||||
"x": 23.046875,
|
||||
"y": 169.5,
|
||||
"w": 721.90625,
|
||||
"h": 384.5,
|
||||
"right": 744.953125,
|
||||
"bottom": 554
|
||||
},
|
||||
"header": {
|
||||
"x": 42.21875,
|
||||
"y": 169.5,
|
||||
"w": 683.546875,
|
||||
"h": 49,
|
||||
"right": 725.765625,
|
||||
"bottom": 218.5
|
||||
},
|
||||
"viewport": {
|
||||
"w": 768,
|
||||
"h": 600
|
||||
},
|
||||
"overflow": 0
|
||||
},
|
||||
{
|
||||
"stage": {
|
||||
"x": 16,
|
||||
"y": 383.0625,
|
||||
"w": 358,
|
||||
"h": 201.375,
|
||||
"right": 374,
|
||||
"bottom": 584.4375
|
||||
},
|
||||
"slot": {
|
||||
"x": 16,
|
||||
"y": 169.5,
|
||||
"w": 358,
|
||||
"h": 628.5,
|
||||
"right": 374,
|
||||
"bottom": 798
|
||||
},
|
||||
"header": {
|
||||
"x": 16,
|
||||
"y": 383.0625,
|
||||
"w": 390,
|
||||
"h": 49,
|
||||
"right": 406,
|
||||
"bottom": 432.0625
|
||||
},
|
||||
"viewport": {
|
||||
"w": 390,
|
||||
"h": 844
|
||||
},
|
||||
"overflow": 0
|
||||
},
|
||||
{
|
||||
"stage": {
|
||||
"x": 247.109375,
|
||||
"y": 169.5,
|
||||
"w": 505.765625,
|
||||
"h": 284.5,
|
||||
"right": 752.875,
|
||||
"bottom": 454
|
||||
},
|
||||
"slot": {
|
||||
"x": 30,
|
||||
"y": 169.5,
|
||||
"w": 940,
|
||||
"h": 284.5,
|
||||
"right": 970,
|
||||
"bottom": 454
|
||||
},
|
||||
"header": {
|
||||
"x": 247.109375,
|
||||
"y": 169.5,
|
||||
"w": 505.765625,
|
||||
"h": 49,
|
||||
"right": 752.875,
|
||||
"bottom": 218.5
|
||||
},
|
||||
"viewport": {
|
||||
"w": 1000,
|
||||
"h": 500
|
||||
},
|
||||
"overflow": 0
|
||||
}
|
||||
],
|
||||
"browser": "155.0.8059.80",
|
||||
"managerOrder": [
|
||||
"sw-header--composed-controls",
|
||||
"sw-header--overview",
|
||||
"sw-header--interactive-states",
|
||||
"sw-header--window-move-motion",
|
||||
"sw-header--logo-slot",
|
||||
"sw-header--document-dropdown",
|
||||
"sw-header--responsive-more",
|
||||
"sw-header--k-guide",
|
||||
"sw-header--property-panel-compare"
|
||||
],
|
||||
"status": "FAIL"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
[
|
||||
"sw-header--composed-controls",
|
||||
"sw-header--overview",
|
||||
"sw-header--interactive-states",
|
||||
"sw-header--window-move-motion",
|
||||
"sw-header--logo-slot",
|
||||
"sw-header--document-dropdown",
|
||||
"sw-header--responsive-more",
|
||||
"sw-header--k-guide",
|
||||
"sw-header--property-panel-compare"
|
||||
]
|
||||
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 230 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 95 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 93 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 223 KiB |
@@ -0,0 +1,38 @@
|
||||
[
|
||||
[
|
||||
"sw-header--composed-controls",
|
||||
"Dropdown"
|
||||
],
|
||||
[
|
||||
"sw-header--overview",
|
||||
"Overview"
|
||||
],
|
||||
[
|
||||
"sw-header--interactive-states",
|
||||
"Interactive States"
|
||||
],
|
||||
[
|
||||
"sw-header--window-move-motion",
|
||||
"Window Move Motion"
|
||||
],
|
||||
[
|
||||
"sw-header--logo-slot",
|
||||
"Logo Slot"
|
||||
],
|
||||
[
|
||||
"sw-header--document-dropdown",
|
||||
"Document Dropdown"
|
||||
],
|
||||
[
|
||||
"sw-header--responsive-more",
|
||||
"Responsive More"
|
||||
],
|
||||
[
|
||||
"sw-header--k-guide",
|
||||
"K Guide"
|
||||
],
|
||||
[
|
||||
"sw-header--property-panel-compare",
|
||||
"Property Panel · 4개 비교"
|
||||
]
|
||||
]
|
||||
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 43 KiB |
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"total": 329,
|
||||
"sw": [
|
||||
{
|
||||
"id": "sw-header--composed-controls",
|
||||
"name": "Dropdown",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--detail-buttons",
|
||||
"name": "Detail Buttons (Shared States)",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest",
|
||||
"verification"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--overview",
|
||||
"name": "Overview",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--interactive-states",
|
||||
"name": "Interactive States",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--window-move-motion",
|
||||
"name": "Window Move Motion",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--logo-slot",
|
||||
"name": "Logo Slot",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--document-dropdown",
|
||||
"name": "Document Dropdown",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--responsive-more",
|
||||
"name": "Responsive More",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--k-guide",
|
||||
"name": "K Guide",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "sw-header--property-panel-compare",
|
||||
"name": "Property Panel · 4개 비교",
|
||||
"title": "SW/Header",
|
||||
"tags": [
|
||||
"dev",
|
||||
"test",
|
||||
"manifest"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
# SW Storybook 불필요 9개 메뉴 삭제 (2026-10-19)
|
||||
|
||||
> 범위: Storybook 시연 페이지 정리만 합니다. `@hm-design/sw` 런타임·공개 API·디자인·AI 템플릿은 바꾸지 않았습니다.
|
||||
> 기준 HEAD `c8e5fbeebc26fba92998fc5ddcd28c6c110e452d` (`feature/sw-package`, 시작 시 Working Tree Clean).
|
||||
> 증거: [storybook-unused-story-removal-qa/](storybook-unused-story-removal-qa/). 이전 단계 증거는 수정하지 않았습니다.
|
||||
|
||||
## 1. 작업 전 Story 목록 (SW 19개 / 전체 338개)
|
||||
|
||||
`storybook-static/index.json`(HEAD 빌드) 기준: [before/story-inventory-before.json](storybook-unused-story-removal-qa/before/story-inventory-before.json), 전체 인덱스 [before/full-index-before.json](storybook-unused-story-removal-qa/before/full-index-before.json).
|
||||
|
||||
`composed-controls`, `detail-buttons`, `overview`, `interactive-states`, `window-move-motion`, `logo-slot`, `document-dropdown`, `responsive-more`, `layer-detail-input`, `property-panel`, `k-guide`, `additional-hover`, `property-bar`, `dynamic-controls`, `colorize`, `composition`, `property-panel-compare`, `property-shape-slot`, `property-fields` (모두 `sw-header--` 접두사, title `SW/Header`).
|
||||
|
||||
## 2. 요청 메뉴와 실제 Story 대응
|
||||
|
||||
요청 메뉴명은 각 Story의 페이지 제목(`StoryPageHeader title`)입니다. 9개 모두 `src/sw/sw-header.stories.tsx`의 **독립 Story**이며, 다른 Story의 내부 섹션이거나 서로 겹치는 항목은 없습니다.
|
||||
|
||||
| 요청 메뉴 (페이지 제목) | 실제 Story 이름 (사이드바) | Export | Story ID | 결과 |
|
||||
|---|---|---|---|---|
|
||||
| 속성창 입력·선택 필드 | Property Panel · 필드 13개 | `PropertyFields` | `sw-header--property-fields` | 삭제 |
|
||||
| 형상 영역 Slot | Property Panel · 형상 Slot | `PropertyShapeSlot` | `sw-header--property-shape-slot` | 삭제 |
|
||||
| Header 구성 · 메뉴 순서 | Composition (Visibility · Order) | `Composition` | `sw-header--composition` | 삭제 |
|
||||
| btn_colorize | Colorize | `Colorize` | `sw-header--colorize` | 삭제 |
|
||||
| 메뉴 컴포넌트 구성 | Dynamic Controls | `DynamicControls` | `sw-header--dynamic-controls` | 삭제 |
|
||||
| 속성Bar · 동적 편집 | Property Bar | `PropertyBar` | `sw-header--property-bar` | 삭제 |
|
||||
| 추가 Hover 및 Selected | Additional Hover | `AdditionalHover` | `sw-header--additional-hover` | 삭제 |
|
||||
| 속성창 | Property Panel | `PropertyPanel` | `sw-header--property-panel` | 삭제 |
|
||||
| Layer Detail Button · Editable Input | Layer Detail · Input | `LayerDetailInput` | `sw-header--layer-detail-input` | 삭제 |
|
||||
|
||||
`속성창`은 제목이 정확히 `속성창`인 `sw-header--property-panel`입니다. 제목이 `속성창 4개 상태 비교`인 `sw-header--property-panel-compare`는 유지했습니다.
|
||||
|
||||
## 3. 실제 삭제한 Story: 9개
|
||||
|
||||
위 표의 9개 ID입니다. 다른 Story는 삭제·통합·재분류하지 않았습니다.
|
||||
|
||||
## 4. 삭제 후 Story 목록 (SW 10개)
|
||||
|
||||
[verify/story-inventory-after.json](storybook-unused-story-removal-qa/verify/story-inventory-after.json)
|
||||
|
||||
| 순서 | Story ID | 이름 | 비고 |
|
||||
|---|---|---|---|
|
||||
| 1 | `sw-header--composed-controls` | Dropdown | 별도 CSF `sw-header-dropdown.stories.tsx` |
|
||||
| 2 | `sw-header--detail-buttons` | Detail Buttons (Shared States) | `verification` 태그: 기존 정책대로 기본 사이드바에서 숨김, 직접 URL 유지 |
|
||||
| 3 | `sw-header--overview` | Overview | |
|
||||
| 4 | `sw-header--interactive-states` | Interactive States | |
|
||||
| 5 | `sw-header--window-move-motion` | Window Move Motion | |
|
||||
| 6 | `sw-header--logo-slot` | Logo Slot | |
|
||||
| 7 | `sw-header--document-dropdown` | Document Dropdown | |
|
||||
| 8 | `sw-header--responsive-more` | Responsive More | |
|
||||
| 9 | `sw-header--k-guide` | K Guide | |
|
||||
| 10 | `sw-header--property-panel-compare` | Property Panel · 4개 비교 | |
|
||||
|
||||
## 5–7. 개수와 유지 ID
|
||||
|
||||
- 최종 SW Story: **10개** (19 → 10).
|
||||
- 저장소 전체 Story: **329개** (338 → 329). 삭제된 9개 외 인덱스 항목(docs 포함)은 전부 동일합니다(자동 비교 PASS).
|
||||
- 유지 10개의 ID·이름·title·tags·순서는 작업 전과 같습니다(자동 비교 PASS). 유지 Export(Story 10개 + `ComposedDemo`) 선언은 byte 단위로 같습니다.
|
||||
|
||||
## 8. Overview 보존
|
||||
|
||||
`storybook-unused-removal.browser.mjs`: 390 / 768 / 1280 / 1440에서 Header 1개·높이 49px·16:9 Stage 1개·문서 가로 넘침 없음. 레이어 Dropdown 열기, Escape 닫기·Focus 복귀, 레이어 상세 Callback, `btn_colorize` 24 × 24와 `onColorPick`, 속성Bar Enter 확정·`min=0` 검증, 속성창 열기(같은 Bar 값), Escape 닫기·Trigger Focus 복귀 모두 PASS.
|
||||
|
||||
기존 `overview.browser.mjs`(증거 `legacy-overview/`): 기능 검사 52개 PASS. 문서 선택, 5개 Dropdown 선택·전환·바깥 클릭 닫기, 속성Bar·속성창 공유 편집과 검증, 동적 필드 추가·제거, 형상 Slot 비우기, 4개 상태 314 × 256/361/658/754, 내부 스크롤, 390px More Focus 복귀, Manager iframe 16:9, 콘솔 오류 0을 포함합니다. 남은 FAIL 2개는 과거 기준에 고정된 단언입니다(§17).
|
||||
|
||||
## 9. Header → Dropdown 보존
|
||||
|
||||
- ID `sw-header--composed-controls`, 이름 `Dropdown`, title `SW/Header`, 내부 그룹 `Composed Controls` 그대로입니다.
|
||||
- 새 검사: 5개 필드 + `상세보기` 그룹(6개 컨트롤). 4개 폭에서 5개 메뉴 열기·Escape 닫기·Focus 복귀, 문서 넘침 없음, 문자스타일·선스타일 선택 반영 PASS.
|
||||
- 기존 `dropdown-consolidation.browser.mjs`(증거 `legacy-dropdown/`): 214 PASS / 4 FAIL. 이전 실행의 223 PASS와의 차이 9개는 Story별 렌더 검사 수(19 → 10)입니다. 4개 FAIL은 이전 기록과 같은 과거 기준 단언입니다(§17).
|
||||
|
||||
## 10. 속성창 4개 상태 비교 보존
|
||||
|
||||
ID·이름·페이지 제목·상태명·순서는 그대로이고 소스 선언도 같습니다. 390 / 768 / 1280 / 1440에서 4개 패널 314 × 256 / 361 / 658 / 754, 좌표 기준 2열 × 2행, Inner 스크롤로 754px 패널 하단·우측 도달, 문서 스크롤 없음 PASS. Input Enter 확정(해당 패널만)·Escape 취소·caret `#E60403`, 레이어 Dropdown 선택 Callback, Escape 닫기·Focus 복귀도 PASS입니다.
|
||||
|
||||
## 11. Window Move Motion 보존
|
||||
|
||||
`단계별 진행 (3배 확대)` 섹션 1개, 단계 9개, zoom 3. Rest 단계는 정지 상태이고 시간 지정 단계는 일시정지된 애니메이션 3개를 유지합니다(PASS). 선언은 byte 단위로 같습니다.
|
||||
|
||||
## 12–13. SW 런타임·공개 API와 AI 템플릿
|
||||
|
||||
`git diff c8e5fbe -- packages/sw/src packages/sw/ai packages/sw/package.json packages/sw/README.md packages/ui packages/org-chart packages/org-chart-react packages/center-graphic src/sw/sw-header-overview.tsx src/sw/sw-header-dropdown.stories.tsx src/sw/sw-composed-controls.css src/sw/assets .storybook` 결과는 비어 있습니다(자동 검사 PASS). `ai-docs.check.mjs` 19/19 PASS.
|
||||
|
||||
삭제한 시연 페이지가 보여 주던 기능(`hiddenControls`·`menuOrder`, `controls`, `shapeContent`, `SWHeaderPropertyBar`, `SWHeaderInput`, 레이어 상세, `btn_colorize`, 상세 Hover·Selected)은 패키지와 AI 템플릿 가이드·예제에 그대로 있습니다.
|
||||
|
||||
## 14. 변경 파일
|
||||
|
||||
| 파일 | 내용 |
|
||||
|---|---|
|
||||
| `src/sw/sw-header.stories.tsx` | 9개 Story 선언과 그 Story만 쓰던 데모 컴포넌트·상태·fixture 삭제: `InputDemo`, `LayerHeader`/`LayerDemo`/`describeLayers`, `noop`, `FIGMA_LAYERS`, `PropertyPanelDemo`, `RequiredColorDemo`, `PropertyBarDemo`, `CONTROL_FIXTURE`/`DynamicControlsDemo`, `HIDEABLE_PARTS`/`MENU_IDS`/`COMPOSITION_PRESETS`/`CompositionDemo`, `SampleShapeViewer`/`SHAPE_MODES`/`ShapeSlotDemo`, `FIELD_*`/`FieldPanel`/`PropertyFieldsDemo`. `StyleHeader`의 `initialColorMode`(Additional Hover 전용 prop)와 사용하지 않는 import(`SWHeaderInput`, `SWHeaderControlConfig`, `SWHeaderHideableControlId`, Figma 비교 PNG 2개) 제거 |
|
||||
| `src/sw/sw-stories.css` | 삭제한 Story만 쓰던 Storybook 전용 class 제거: `sw-story-explicit-disabled`, `-row`, `-layer-room`, `-reference`, `-figma`, `-detail`, `-controls`, `-followup`, `-property-state`, `-node-table` |
|
||||
| `packages/sw/tests/storybook-inventory.mjs` | `retiredUnusedDemoIds` 추가 |
|
||||
| `packages/sw/tests/storybook-unused-removal.browser.mjs` | 신규 현재 회귀 스크립트 |
|
||||
| `packages/sw/tests/{detail-buttons,followup-four,property-close,property-fields,property-panel-comparison,storybook-cleanup-stage1}.browser.mjs` | 상단에 "삭제된 ID를 여는 과거 증거용 스크립트" 주석 2줄만 추가. 단언은 바꾸지 않음 |
|
||||
| `docs/sw/sw-storybook-unused-story-removal-2026-10-19.md`, `docs/sw/storybook-unused-story-removal-qa/` | 이 보고서와 증거 |
|
||||
|
||||
`src/sw/assets/figma-reference/btn-detail-layer-26-10767.png`, `input-26-11656.png`는 이제 코드에서 참조하지 않지만, 자산 보존 원칙에 따라 그대로 두었습니다.
|
||||
|
||||
## 15. Typecheck / Build
|
||||
|
||||
| 명령 | 결과 |
|
||||
|---|---|
|
||||
| `npm run typecheck:sw` | PASS |
|
||||
| `npm run build:sw` | PASS |
|
||||
| Storybook Typecheck `npx tsc -b` | PASS |
|
||||
| `npm run build-storybook` (prebuild: theme defaults, 전체 package build) | PASS. 기존 CSS 최적화·chunk 크기 경고만 있음 |
|
||||
| `git diff --check` | PASS |
|
||||
|
||||
## 16. 브라우저 검증
|
||||
|
||||
Chrome headless(Playwright)로 production `storybook-static`을 로컬에서 제공해 확인했습니다.
|
||||
|
||||
| 스크립트 | 결과 | 증거 |
|
||||
|---|---|---|
|
||||
| `storybook-unused-removal.browser.mjs` (신규, 현재 회귀) | **81/81 PASS**, 콘솔·페이지 오류 0 | `verify/` |
|
||||
| `overview.browser.mjs` | 52 PASS / 2 FAIL(과거 기준 단언) | `legacy-overview/chrome-result.json` |
|
||||
| `dropdown-consolidation.browser.mjs` | 214 PASS / 4 FAIL(과거 기준 단언) | `legacy-dropdown/result.json` |
|
||||
| `ai-docs.check.mjs` | 19/19 PASS | 콘솔 |
|
||||
|
||||
신규 스크립트 내용: 인벤토리(19 → 10, 338 → 329, 9개 부재, 유지 항목 동일), 소스(9개 Export 삭제, 유지 선언 동일, 제품·템플릿·다른 패키지 미변경), 실제 Manager 사이드바(유지 Story만 순서대로 표시, 삭제 메뉴 ID·이름 없음), 삭제 URL 미렌더, 유지 10개 렌더, 그리고 §8–§11의 Story별 기능. 삭제 URL 검사에서 Storybook이 내는 "story 없음" 오류는 의도한 결과라 오류 집계를 비운 뒤 회귀 검사를 시작합니다.
|
||||
|
||||
## 17. 테스트 갱신과 과거 기준 단언
|
||||
|
||||
- **현재 회귀:** `storybook-unused-removal.browser.mjs`를 추가했습니다. 삭제 Story의 고유 검증 중 유지 Story에서 확인할 수 있는 것(레이어 상세 Callback, `btn_colorize` 크기·Callback, 속성Bar 편집·검증, Input caret·확정·취소)은 Overview·4개 비교에서 검증합니다.
|
||||
- **과거 증거로 구분(단언 미수정):** 삭제한 ID를 직접 여는 `detail-buttons`(preservation·verify 모드), `followup-four`, `property-close`, `property-fields`, `property-panel-comparison`(verify), `storybook-cleanup-stage1`. 기존 결과 파일은 그대로 두었습니다. 실패를 숨기려고 기능 검사를 지우지 않았습니다.
|
||||
- **과거 기준 단언 FAIL (기능 실패 아님):**
|
||||
- `overview.browser.mjs`: "24 retained Story IDs"(현재 10개), "retained non-Overview declarations byte-identical"(50bf5bd 기준에 있던 9개 선언이 의도적으로 삭제됨).
|
||||
- `dropdown-consolidation.browser.mjs`: 28 → 24 / 24 개수 단언 2개, c165753 기준 선언 동일성 1개, `src/sw/sw-stories.css` 미변경 1개. 이전 단계에서도 같은 4개가 FAIL이었고, 이번에는 삭제한 선언과 CSS가 원인에 더해졌습니다.
|
||||
|
||||
## 18. NOT VERIFIED
|
||||
|
||||
- Firefox·Safari 등 Chrome 이외 브라우저(이번에 실행하지 않음).
|
||||
- 개발 서버(포트 6024)에서의 실행. 검증은 production `storybook-static`으로만 했습니다.
|
||||
- 삭제한 페이지에서만 보이던 조합의 Storybook 시연: `hiddenControls`·`menuOrder` 프리셋, `controls` allowlist, `shapeContent`의 ReactNode·Render Prop, 13개 필드 Hover 고정 표본, 상세 Hover·Selected 비교표. 패키지 코드는 바뀌지 않았지만, 이번 작업에서 해당 동작을 브라우저로 다시 실행하지는 않았습니다(과거 증거는 기존 QA 폴더에 있음).
|
||||
- 과거 증거로 구분한 6개 스크립트의 재실행.
|
||||
|
||||
## 19–20. Commit / Push
|
||||
|
||||
- 로컬 Commit `refactor(storybook): remove unused SW header demo stories`. SHA는 최종 보고에 기록합니다.
|
||||
- Push·PR·Publish·배포는 진행하지 않았습니다.
|
||||