feat(module-studio): add configurable map page

This commit is contained in:
DCCONSTRUCTIONS
2026-07-13 17:14:34 +03:00
parent 1f2dffc031
commit 1a2ca8c82c
23 changed files with 2700 additions and 31 deletions
+17
View File
@@ -26,6 +26,13 @@ export type PageTemplateAction = {
feature?: string;
};
export type PageTemplateContracts = {
fixtureSchema: string;
acceptanceFixtures: readonly string[];
lodPolicySchema?: string;
lodPolicies?: string;
};
export type PageTemplateDefinition = {
schemaVersion: "0.1.0";
id: string;
@@ -42,6 +49,7 @@ export type PageTemplateDefinition = {
features: PageTemplateFeature[];
slots: PageTemplateSlot[];
actions: PageTemplateAction[];
contracts?: PageTemplateContracts;
};
export const mapPageTemplate = {
@@ -76,6 +84,15 @@ export const mapPageTemplate = {
{ id: "toggle-toolbar", label: "Toolbar", command: "map.toolbar.toggle", feature: "toolbar" },
{ id: "open-assistant", label: "Assistant", command: "assistant.open", feature: "assistant" },
],
contracts: {
fixtureSchema: "registry/schemas/map-scene-fixture-v0.1.schema.json",
acceptanceFixtures: [
"registry/fixtures/map/map-operational-v0.1.json",
"registry/fixtures/map/map-empty-offline-v0.1.json",
],
lodPolicySchema: "registry/schemas/map-lod-policy-v0.1.schema.json",
lodPolicies: "registry/fixtures/map/map-lod-policies-v0.1.json",
},
} as const satisfies PageTemplateDefinition;
export const pageTemplates = [mapPageTemplate] as const satisfies readonly PageTemplateDefinition[];
+8 -2
View File
@@ -2582,18 +2582,24 @@ textarea.nodedc-field__control {
cursor: pointer;
}
.nodedc-inspector__section-trigger:hover,
.nodedc-inspector__section-trigger[data-open="true"] {
.nodedc-inspector__section-trigger:not([data-open="true"]):hover {
background: var(--nodedc-glass-control-hover);
color: var(--nodedc-text-primary);
}
.nodedc-inspector__section-trigger[data-open="true"],
.nodedc-inspector__section-trigger[data-active="true"],
.nodedc-inspector__section-trigger[data-tone="accent"] {
background: rgb(var(--nodedc-accent-rgb));
color: rgb(var(--nodedc-on-accent-rgb));
}
.nodedc-inspector__section-trigger[data-open="true"] .nodedc-inspector__section-description,
.nodedc-inspector__section-trigger[data-active="true"] .nodedc-inspector__section-description,
.nodedc-inspector__section-trigger[data-tone="accent"] .nodedc-inspector__section-description {
color: rgb(var(--nodedc-on-accent-rgb));
}
.nodedc-inspector__section-label {
overflow: hidden;
font-size: var(--nodedc-font-size-md);