Files
houseplan-card/docs/data-hp-contract.json
T
Claudeandclaude[bot] 89e8aecbc1 refactor: вынести box-модель лестниц в ленивый модуль stairs-box.ts (#676)
Просмотр импортирует stairTargetState из stairs-editor-model.ts, и общий
модуль Rollup кладёт в eager-чанк: новые функции протяжки, ресайза, магнита
и диалога утянули туда 2,5 КБ gzip и выбили бюджет первого View. Теперь
eager-модуль снова маленький, а всё редакторское живёт в stairs-box.ts,
который импортирует только ленивый редактор: initial View 299 165 Б при
бюджете 301 066, запас 1 901 Б.

Потолок ленивого редактора 236 400 → 239 000 (замер 237 985) с записью
истории в bundle-budget.mjs; база монолита bundleBytes поднята тем же
коммитом (+10 069 Б сырых — код слоя редактирования). Хук data-hp получил
запись stair-frame; смок не пишет в приватное поле.

Issue: #676
User-Visible: no
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd
2026-09-27 14:41:18 +00:00

284 lines
6.6 KiB
JSON

{
"schemaVersion": 1,
"attribute": "data-hp",
"stability": {
"removalPolicy": "changelog-and-one-stable-version-transition",
"additionsAreCompatible": true
},
"hooks": {
"create-space": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"decor": {
"elements": ["ellipse", "image", "line", "path", "rect", "text"],
"since": "1.59.0-beta.3",
"audience": ["styling", "test"]
},
"device": {
"elements": ["div"],
"since": "1.59.0-beta.3",
"audience": ["styling", "test"]
},
"dialog": {
"elements": ["hp-dialog"],
"since": "1.73.0-beta.7",
"audience": ["test"],
"attributes": {
"data-kind": [
"backup",
"confirm",
"decor",
"device-inbox",
"import",
"info",
"kiosk",
"marker",
"onboarding",
"opening",
"pdf",
"physical",
"room",
"rules",
"settings",
"space",
"stairs",
"summary",
"support",
"vacuum"
]
}
},
"dialog-cancel": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"dialog-confirm": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"editor-close": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"empty": {
"elements": ["div"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"header-menu": {
"elements": ["button"],
"since": "1.78.0-beta.3",
"audience": ["styling", "test"]
},
"header-menu-item": {
"elements": ["button"],
"since": "1.78.0-beta.3",
"audience": ["styling", "test"],
"attributes": { "data-id": ["mode-plan", "mode-devices", "mode-decor", "space-settings", "space-add", "settings", "pdf", "support", "summary-settings", "summary-toggle"] }
},
"header-menu-scrim": {
"elements": ["div"],
"since": "1.78.0-beta.3",
"audience": ["test"]
},
"mode-tab": {
"elements": ["button"],
"since": "1.78.0-beta.2",
"audience": ["test"],
"attributes": { "data-mode": ["plan", "devices", "decor"] }
},
"opening": {
"elements": ["g"],
"since": "1.59.0-beta.3",
"audience": ["styling", "test"]
},
"opening-tunnel": {
"elements": ["g", "path"],
"since": "1.60.2",
"audience": ["styling", "test"]
},
"panel-menu": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"panel-title": {
"elements": ["div"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"partition": {
"elements": ["path"],
"since": "1.60.2-beta.1",
"audience": ["styling", "test"]
},
"pdf": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"room": {
"elements": ["path", "polygon", "rect"],
"since": "1.59.0-beta.3",
"audience": ["styling", "test"]
},
"room-label": {
"elements": ["div"],
"since": "1.59.0-beta.3",
"audience": ["styling", "test"]
},
"room-settings": {
"elements": ["button"],
"since": "1.67.0-rc.2",
"audience": ["styling", "test"]
},
"settings": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"space-add": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"space-settings": {
"elements": ["ha-icon"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"space-tab": {
"elements": ["button"],
"since": "1.59.0-beta.3",
"audience": ["styling", "test"]
},
"stair": {
"elements": ["g"],
"since": "1.78.0-beta.5",
"audience": ["styling", "test"]
},
"stair-frame": {
"elements": ["g"],
"since": "1.78.0-beta.6",
"audience": ["styling", "test"]
},
"support": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"toast": {
"elements": ["div"],
"since": "1.73.0-beta.7",
"audience": ["test"],
"attributes": {
"data-kind": ["message"]
}
},
"tool": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"],
"attributes": {
"data-tool": [
"add-device",
"backdrop",
"column",
"delete-room",
"device-inbox",
"draw",
"ellipse",
"erase",
"furniture",
"icon-rules",
"image",
"line",
"merge",
"opening",
"rect",
"resize",
"select",
"split",
"stairs",
"text",
"wall-thickness"
]
}
},
"toolbar": {
"elements": ["div"],
"since": "1.73.0-beta.7",
"audience": ["test"],
"attributes": {
"data-kind": ["decor", "device", "plan"]
}
},
"tray": {
"elements": ["div"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"wall": {
"elements": ["path"],
"since": "1.59.0-beta.4",
"audience": ["styling", "test"]
},
"wall-column": {
"elements": ["path"],
"since": "1.60.2-beta.1",
"audience": ["styling", "test"]
},
"zoom-fit": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"zoom-in": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"]
},
"zoom-out": {
"elements": ["button"],
"since": "1.73.0-beta.7",
"audience": ["test"]
}
},
"rootAttributes": {
"data-hp-mode": {
"element": "ha-card",
"values": ["view", "plan", "devices", "decor"],
"since": "1.73.0-beta.7"
},
"data-hp-state": {
"element": "ha-card",
"values": ["booting", "ready"],
"since": "1.73.0-beta.7"
}
},
"retiredHooks": {
"room-draft": {
"elements": ["line"],
"since": "1.60.2-beta.1",
"retired": "1.73.0-beta.1",
"reason": "Unfinished room contours were replaced by ordinary partitions in issue #478."
}
},
"internalPrefixes": [
"hidden-wall-",
"iso-",
"plan-snap-",
"resize-",
"zigbee-topology-"
],
"internalExactValues": [
"opening-orphan",
"vacuum-route-missing-group"
]
}