{
  "schema": "freshvibe-way-v8.trace-atlas",
  "schema_version": "1.0.0",
  "app_id": "freshvibe-cms.1.0.0",
  "app_version": "1.0.0",
  "generated_at": "2026-08-04T07:25:00Z",

  "surfaces": {
    "surface.editor.outline-tag": {
      "id": "surface.editor.outline-tag",
      "name": "Yellow clickable outline tag on a region or block",
      "file": "app-fragments/editor-outline/index.js",
      "behaviours": ["behaviour.outline.show-on-hover", "behaviour.outline.click-to-select"]
    },
    "surface.editor.palette": {
      "id": "surface.editor.palette",
      "name": "Editor palette (2-column grid of 16 blocks)",
      "file": "app-fragments/editor-palette/index.js",
      "behaviours": ["behaviour.palette.render-blocks", "behaviour.palette.drag-block-to-region"]
    },
    "surface.editor.region-actions": {
      "id": "surface.editor.region-actions",
      "name": "Region actions toolbar (background, gradient, parallax, columns)",
      "file": "app-fragments/editor-region-actions/index.js",
      "behaviours": ["behaviour.region.show-actions-on-click", "behaviour.region.apply-property"]
    },
    "surface.editor.layout-templates": {
      "id": "surface.editor.layout-templates",
      "name": "Layout picker for adding a new region",
      "file": "app-fragments/editor-layout-templates/index.js",
      "behaviours": ["behaviour.layout.show-picker-on-add-region", "behaviour.layout.apply-template"]
    },
    "surface.editor.inspector": {
      "id": "surface.editor.inspector",
      "name": "Property inspector for selected region/block",
      "file": "app-fragments/editor-inspector/index.js",
      "behaviours": ["behaviour.inspector.render-fields-for-selected", "behaviour.inspector.save-on-change"]
    },
    "surface.editor.navigator": {
      "id": "surface.editor.navigator",
      "name": "Structure tree showing all regions and blocks on the page",
      "file": "app-fragments/editor-navigator/index.js",
      "behaviours": ["behaviour.navigator.render-tree", "behaviour.navigator.click-to-jump"]
    },
    "surface.editor.content-admin": {
      "id": "surface.editor.content-admin",
      "name": "Content admin (records CRUD, lives in the chrome)",
      "file": "app-fragments/editor-content-admin/index.js",
      "behaviours": ["behaviour.content-admin.list-records", "behaviour.content-admin.create-record", "behaviour.content-admin.edit-record", "behaviour.content-admin.delete-record"]
    },
    "surface.editor.breadcrumb": {
      "id": "surface.editor.breadcrumb",
      "name": "Breadcrumb showing current region/block path",
      "file": "app-fragments/editor-breadcrumb/index.js",
      "behaviours": ["behaviour.breadcrumb.render-path", "behaviour.breadcrumb.click-to-jump"]
    },
    "surface.editor.context-menu": {
      "id": "surface.editor.context-menu",
      "name": "Right-click context menu on regions and blocks",
      "file": "app-fragments/editor-context-menu/index.js",
      "behaviours": ["behaviour.context-menu.show-on-right-click", "behaviour.context-menu.apply-action"]
    },
    "surface.editor.selection": {
      "id": "surface.editor.selection",
      "name": "Selection state management UI",
      "file": "app-fragments/editor-selection/index.js",
      "behaviours": ["behaviour.selection.set-selected", "behaviour.selection.clear-selected"]
    },
    "surface.dev.button": {
      "id": "surface.dev.button",
      "name": "The { } floating button in the bottom-right corner",
      "file": "app-fragments/fvcms-dev-btn/index.js",
      "behaviours": ["behaviour.dev-btn.toggle-chrome"]
    },
    "surface.dev.panel": {
      "id": "surface.dev.panel",
      "name": "The Dev panel that opens when { } is pressed",
      "file": "app-fragments/fvcms-dev-panel/index.js",
      "behaviours": ["behaviour.dev-panel.show-on-toggle", "behaviour.dev-panel.render-chrome-tabs"]
    },
    "surface.panel.manager": {
      "id": "surface.panel.manager",
      "name": "Panel manager (multi-panel state machine, pinned, slimmed, auto-hide)",
      "file": "app-fragments/fvcms-panel-manager/index.js",
      "behaviours": ["behaviour.panel-manager.mount-panel", "behaviour.panel-manager.dock-to-edge", "behaviour.panel-manager.auto-hide-on-inactivity", "behaviour.panel-manager.remove-panel"]
    },
    "surface.panel.cms": {
      "id": "surface.panel.cms",
      "name": "The main content management surface (legacy v0.7.3 panel)",
      "file": "app-fragments/fvcms-cms-panel/index.js",
      "behaviours": ["behaviour.cms-panel.mount", "behaviour.cms-panel.render-chrome"]
    },
    "surface.cms-data.modules-json": {
      "id": "surface.cms-data.modules-json",
      "name": "Static CMS modules catalogue (modules.json)",
      "file": "app-fragments/cms-data/modules.json",
      "behaviours": ["behaviour.cms-data.load-modules"]
    },
    "surface.module.heading": {
      "id": "surface.module.heading",
      "name": "Heading block (content chunk)",
      "file": "modules/heading/index.js",
      "behaviours": ["behaviour.block.heading.render"]
    },
    "surface.module.button": {
      "id": "surface.module.button",
      "name": "Button block (content chunk)",
      "file": "modules/button/index.js",
      "behaviours": ["behaviour.block.button.render", "behaviour.block.button.handle-click"]
    },
    "surface.module.image": {
      "id": "surface.module.image",
      "name": "Image block (content chunk)",
      "file": "modules/image/index.js",
      "behaviours": ["behaviour.block.image.render"]
    },
    "surface.module.carousel": {
      "id": "surface.module.carousel",
      "name": "Carousel block (content chunk)",
      "file": "modules/carousel/index.js",
      "behaviours": ["behaviour.block.carousel.render", "behaviour.block.carousel.next-slide", "behaviour.block.carousel.prev-slide"]
    },
    "surface.module.testimonial": {
      "id": "surface.module.testimonial",
      "name": "Testimonial block (content chunk)",
      "file": "modules/testimonial/index.js",
      "behaviours": ["behaviour.block.testimonial.render"]
    },
    "surface.module.info-box": {
      "id": "surface.module.info-box",
      "name": "Info-box block (content chunk)",
      "file": "modules/info-box/index.js",
      "behaviours": ["behaviour.block.info-box.render"]
    },
    "surface.module.cta-box": {
      "id": "surface.module.cta-box",
      "name": "CTA-box block (content chunk)",
      "file": "modules/cta-box/index.js",
      "behaviours": ["behaviour.block.cta-box.render"]
    }
  },

  "behaviours": {
    "behaviour.outline.show-on-hover": {
      "id": "behaviour.outline.show-on-hover",
      "name": "Show outline tag when user hovers a region or block",
      "trigger": "mouseenter on [data-fv-region] or [data-fv-block]",
      "modules": ["module.editor-outline"]
    },
    "behaviour.outline.click-to-select": {
      "id": "behaviour.outline.click-to-select",
      "name": "Click outline tag to select region/block",
      "trigger": "click on .fvcms-outline-tag",
      "modules": ["module.editor-outline"]
    },
    "behaviour.palette.render-blocks": {
      "id": "behaviour.palette.render-blocks",
      "name": "Render 16 blocks in 2-column grid when palette opens",
      "trigger": "panel-manager.mount: editor-palette",
      "modules": ["module.editor-palette"]
    },
    "behaviour.palette.drag-block-to-region": {
      "id": "behaviour.palette.drag-block-to-region",
      "name": "Drag block from palette to a region to add it",
      "trigger": "drop on [data-fv-region]",
      "modules": ["module.editor-palette", "module.region-system"]
    },
    "behaviour.region.show-actions-on-click": {
      "id": "behaviour.region.show-actions-on-click",
      "name": "Show region actions toolbar when region is selected",
      "trigger": "selection.set: region",
      "modules": ["module.editor-region-actions"]
    },
    "behaviour.region.apply-property": {
      "id": "behaviour.region.apply-property",
      "name": "Apply property change (background, gradient, parallax, columns) to region",
      "trigger": "change on region-actions input",
      "modules": ["module.editor-region-actions", "module.store"]
    },
    "behaviour.layout.show-picker-on-add-region": {
      "id": "behaviour.layout.show-picker-on-add-region",
      "name": "Show layout picker when operator adds a new region",
      "trigger": "click on '+ Add region'",
      "modules": ["module.editor-layout-templates"]
    },
    "behaviour.layout.apply-template": {
      "id": "behaviour.layout.apply-template",
      "name": "Apply selected layout template to the new region",
      "trigger": "click on layout-template",
      "modules": ["module.editor-layout-templates", "module.region-system"]
    },
    "behaviour.inspector.render-fields-for-selected": {
      "id": "behaviour.inspector.render-fields-for-selected",
      "name": "Render the right form fields for the currently selected region/block",
      "trigger": "selection.set: any",
      "modules": ["module.editor-inspector"]
    },
    "behaviour.inspector.save-on-change": {
      "id": "behaviour.inspector.save-on-change",
      "name": "Save field changes back to the region/block",
      "trigger": "change on inspector input",
      "modules": ["module.editor-inspector", "module.store"]
    },
    "behaviour.navigator.render-tree": {
      "id": "behaviour.navigator.render-tree",
      "name": "Render structure tree of all regions and blocks on the page",
      "trigger": "panel-manager.mount: editor-navigator",
      "modules": ["module.editor-navigator"]
    },
    "behaviour.navigator.click-to-jump": {
      "id": "behaviour.navigator.click-to-jump",
      "name": "Click tree node to scroll to and select that region/block",
      "trigger": "click on .nav-tree-node",
      "modules": ["module.editor-navigator"]
    },
    "behaviour.content-admin.list-records": {
      "id": "behaviour.content-admin.list-records",
      "name": "List all records of a content type",
      "trigger": "click on content-type in content-admin",
      "modules": ["module.editor-content-admin", "module.content-store"]
    },
    "behaviour.content-admin.create-record": {
      "id": "behaviour.content-admin.create-record",
      "name": "Create a new record of a content type",
      "trigger": "click on '+ New record'",
      "modules": ["module.editor-content-admin", "module.content-store"]
    },
    "behaviour.content-admin.edit-record": {
      "id": "behaviour.content-admin.edit-record",
      "name": "Edit an existing record",
      "trigger": "click on record row",
      "modules": ["module.editor-content-admin", "module.content-store"]
    },
    "behaviour.content-admin.delete-record": {
      "id": "behaviour.content-admin.delete-record",
      "name": "Delete a record (with confirmation)",
      "trigger": "click on 'Delete'",
      "modules": ["module.editor-content-admin", "module.content-store"]
    },
    "behaviour.breadcrumb.render-path": {
      "id": "behaviour.breadcrumb.render-path",
      "name": "Render breadcrumb path of current selection",
      "trigger": "selection.set: any",
      "modules": ["module.editor-breadcrumb"]
    },
    "behaviour.breadcrumb.click-to-jump": {
      "id": "behaviour.breadcrumb.click-to-jump",
      "name": "Click breadcrumb crumb to jump to that region/block",
      "trigger": "click on .breadcrumb-crumb",
      "modules": ["module.editor-breadcrumb"]
    },
    "behaviour.context-menu.show-on-right-click": {
      "id": "behaviour.context-menu.show-on-right-click",
      "name": "Show context menu on right-click of region/block",
      "trigger": "contextmenu on [data-fv-region] or [data-fv-block]",
      "modules": ["module.editor-context-menu"]
    },
    "behaviour.context-menu.apply-action": {
      "id": "behaviour.context-menu.apply-action",
      "name": "Apply context menu action (delete, duplicate, move)",
      "trigger": "click on .context-menu-item",
      "modules": ["module.editor-context-menu", "module.store"]
    },
    "behaviour.selection.set-selected": {
      "id": "behaviour.selection.set-selected",
      "name": "Set the currently selected region/block",
      "trigger": "click on [data-fv-region] or [data-fv-block]",
      "modules": ["module.editor-selection"]
    },
    "behaviour.selection.clear-selected": {
      "id": "behaviour.selection.clear-selected",
      "name": "Clear the current selection (escape key or click outside)",
      "trigger": "keydown.escape or click on body",
      "modules": ["module.editor-selection"]
    },
    "behaviour.dev-btn.toggle-chrome": {
      "id": "behaviour.dev-btn.toggle-chrome",
      "name": "Toggle the editing chrome (on = panels appear, off = panels hide)",
      "trigger": "click on #fvcms-dev-btn",
      "modules": ["module.fvcms-dev-btn", "module.panel-manager"]
    },
    "behaviour.dev-panel.show-on-toggle": {
      "id": "behaviour.dev-panel.show-on-toggle",
      "name": "Show dev panel when { } is pressed",
      "trigger": "dev-btn.toggle-chrome",
      "modules": ["module.fvcms-dev-panel"]
    },
    "behaviour.dev-panel.render-chrome-tabs": {
      "id": "behaviour.dev-panel.render-chrome-tabs",
      "name": "Render the chrome tabs (Overview, Structure, Inspector, Content Admin)",
      "trigger": "panel-manager.mount: fvcms-dev-panel",
      "modules": ["module.fvcms-dev-panel"]
    },
    "behaviour.panel-manager.mount-panel": {
      "id": "behaviour.panel-manager.mount-panel",
      "name": "Mount a panel (panel creation)",
      "trigger": "chrome.button.click or programmatic",
      "modules": ["module.fvcms-panel-manager"]
    },
    "behaviour.panel-manager.dock-to-edge": {
      "id": "behaviour.panel-manager.dock-to-edge",
      "name": "Dock a panel to a viewport edge when dragged near one",
      "trigger": "drag-end within 50px of edge",
      "modules": ["module.fvcms-panel-manager"]
    },
    "behaviour.panel-manager.auto-hide-on-inactivity": {
      "id": "behaviour.panel-manager.auto-hide-on-inactivity",
      "name": "Slim a docked panel to header bar after 20s inactivity (unless pinned)",
      "trigger": "no mouse/keyboard for 20s on pinned=false panel",
      "modules": ["module.fvcms-panel-manager"]
    },
    "behaviour.panel-manager.remove-panel": {
      "id": "behaviour.panel-manager.remove-panel",
      "name": "Completely remove a panel (not just hide)",
      "trigger": "click on panel × button",
      "modules": ["module.fvcms-panel-manager"]
    },
    "behaviour.cms-panel.mount": {
      "id": "behaviour.cms-panel.mount",
      "name": "Mount the legacy v0.7.3 CMS panel",
      "trigger": "chrome.button.click: legacy-cms",
      "modules": ["module.fvcms-cms-panel"]
    },
    "behaviour.cms-panel.render-chrome": {
      "id": "behaviour.cms-panel.render-chrome",
      "name": "Render the legacy v0.7.3 chrome tabs",
      "trigger": "panel-manager.mount: fvcms-cms-panel",
      "modules": ["module.fvcms-cms-panel"]
    },
    "behaviour.cms-data.load-modules": {
      "id": "behaviour.cms-data.load-modules",
      "name": "Load the static modules catalogue (modules.json)",
      "trigger": "chrome.init",
      "modules": ["module.cms-data"]
    },
    "behaviour.block.heading.render": {
      "id": "behaviour.block.heading.render",
      "name": "Render the heading block to the page",
      "trigger": "region.add-block: heading",
      "modules": ["module.heading"]
    },
    "behaviour.block.button.render": {
      "id": "behaviour.block.button.render",
      "name": "Render the button block to the page",
      "trigger": "region.add-block: button",
      "modules": ["module.button"]
    },
    "behaviour.block.button.handle-click": {
      "id": "behaviour.block.button.handle-click",
      "name": "Handle click on the button block (navigate to URL or fire callback)",
      "trigger": "click on [data-fv-block=button]",
      "modules": ["module.button"]
    },
    "behaviour.block.image.render": {
      "id": "behaviour.block.image.render",
      "name": "Render the image block to the page",
      "trigger": "region.add-block: image",
      "modules": ["module.image"]
    },
    "behaviour.block.carousel.render": {
      "id": "behaviour.block.carousel.render",
      "name": "Render the carousel block to the page",
      "trigger": "region.add-block: carousel",
      "modules": ["module.carousel"]
    },
    "behaviour.block.carousel.next-slide": {
      "id": "behaviour.block.carousel.next-slide",
      "name": "Advance to the next slide in the carousel",
      "trigger": "click on .carousel-next",
      "modules": ["module.carousel"]
    },
    "behaviour.block.carousel.prev-slide": {
      "id": "behaviour.block.carousel.prev-slide",
      "name": "Go back to the previous slide in the carousel",
      "trigger": "click on .carousel-prev",
      "modules": ["module.carousel"]
    },
    "behaviour.block.testimonial.render": {
      "id": "behaviour.block.testimonial.render",
      "name": "Render the testimonial block to the page",
      "trigger": "region.add-block: testimonial",
      "modules": ["module.testimonial"]
    },
    "behaviour.block.info-box.render": {
      "id": "behaviour.block.info-box.render",
      "name": "Render the info-box block to the page",
      "trigger": "region.add-block: info-box",
      "modules": ["module.info-box"]
    },
    "behaviour.block.cta-box.render": {
      "id": "behaviour.block.cta-box.render",
      "name": "Render the cta-box block to the page",
      "trigger": "region.add-block: cta-box",
      "modules": ["module.cta-box"]
    }
  },

  "modules": {
    "module.editor-outline": {
      "id": "module.editor-outline",
      "name": "Editor outline (yellow clickable tags)",
      "files": ["app-fragments/editor-outline/index.js", "app-fragments/editor-outline/fragment.md"]
    },
    "module.editor-palette": {
      "id": "module.editor-palette",
      "name": "Editor palette (16 blocks in 2-col grid)",
      "files": ["app-fragments/editor-palette/index.js", "app-fragments/editor-palette/fragment.md"]
    },
    "module.editor-region-actions": {
      "id": "module.editor-region-actions",
      "name": "Editor region actions toolbar",
      "files": ["app-fragments/editor-region-actions/index.js", "app-fragments/editor-region-actions/fragment.md"]
    },
    "module.editor-layout-templates": {
      "id": "module.editor-layout-templates",
      "name": "Editor layout templates picker",
      "files": ["app-fragments/editor-layout-templates/index.js", "app-fragments/editor-layout-templates/fragment.md"]
    },
    "module.editor-inspector": {
      "id": "module.editor-inspector",
      "name": "Editor inspector (property editor)",
      "files": ["app-fragments/editor-inspector/index.js", "app-fragments/editor-inspector/fragment.md"]
    },
    "module.editor-navigator": {
      "id": "module.editor-navigator",
      "name": "Editor navigator (structure tree)",
      "files": ["app-fragments/editor-navigator/index.js", "app-fragments/editor-navigator/fragment.md"]
    },
    "module.editor-content-admin": {
      "id": "module.editor-content-admin",
      "name": "Editor content admin (records CRUD)",
      "files": ["app-fragments/editor-content-admin/index.js", "app-fragments/editor-content-admin/fragment.md", "runtime/content-admin.js", "runtime/content-items/store.js"]
    },
    "module.editor-breadcrumb": {
      "id": "module.editor-breadcrumb",
      "name": "Editor breadcrumb",
      "files": ["app-fragments/editor-breadcrumb/index.js", "app-fragments/editor-breadcrumb/fragment.md"]
    },
    "module.editor-context-menu": {
      "id": "module.editor-context-menu",
      "name": "Editor context menu (right-click)",
      "files": ["app-fragments/editor-context-menu/index.js", "app-fragments/editor-context-menu/fragment.md"]
    },
    "module.editor-selection": {
      "id": "module.editor-selection",
      "name": "Editor selection state",
      "files": ["app-fragments/editor-selection/index.js", "app-fragments/editor-selection/fragment.md"]
    },
    "module.fvcms-dev-btn": {
      "id": "module.fvcms-dev-btn",
      "name": "Dev button ({ } floating button)",
      "files": ["app-fragments/fvcms-dev-btn/index.js"]
    },
    "module.fvcms-dev-panel": {
      "id": "module.fvcms-dev-panel",
      "name": "Dev panel (chrome tabs)",
      "files": ["app-fragments/fvcms-dev-panel/index.js"]
    },
    "module.fvcms-panel-manager": {
      "id": "module.fvcms-panel-manager",
      "name": "Panel manager (multi-panel state machine)",
      "files": ["app-fragments/fvcms-panel-manager/index.js", "app-fragments/fvcms-panel-manager/styles.css"]
    },
    "module.fvcms-cms-panel": {
      "id": "module.fvcms-cms-panel",
      "name": "Legacy v0.7.3 CMS panel",
      "files": ["app-fragments/fvcms-cms-panel/index.js"]
    },
    "module.cms-data": {
      "id": "module.cms-data",
      "name": "Static CMS data (modules.json, coverage-report.json)",
      "files": ["app-fragments/cms-data/modules.json", "app-fragments/cms-data/coverage-report.json", "app-fragments/cms-data/annotation.json"]
    },
    "module.region-system": {
      "id": "module.region-system",
      "name": "Region system (renderer, scanner, editor)",
      "files": ["runtime/region-renderer.js", "runtime/region-scanner.js", "runtime/region-editor.js"]
    },
    "module.store": {
      "id": "module.store",
      "name": "Store (state management)",
      "files": ["runtime/store.js", "runtime/scope.js"]
    },
    "module.content-store": {
      "id": "module.content-store",
      "name": "Content store (per-site records)",
      "files": ["runtime/content-store-bootstrap.js", "runtime/content-items-bootstrap.js", "runtime/content-items/store.js", "runtime/content-types/store.js", "runtime/content-types/cache.js"]
    },
    "module.heading": {
      "id": "module.heading",
      "name": "Heading block",
      "files": ["modules/heading/index.js", "modules/heading/recipe.md"]
    },
    "module.button": {
      "id": "module.button",
      "name": "Button block",
      "files": ["modules/button/index.js", "modules/button/recipe.md"]
    },
    "module.image": {
      "id": "module.image",
      "name": "Image block",
      "files": ["modules/image/index.js", "modules/image/recipe.md"]
    },
    "module.carousel": {
      "id": "module.carousel",
      "name": "Carousel block",
      "files": ["modules/carousel/index.js", "modules/carousel/recipe.md"]
    },
    "module.testimonial": {
      "id": "module.testimonial",
      "name": "Testimonial block",
      "files": ["modules/testimonial/index.js", "modules/testimonial/recipe.md"]
    },
    "module.info-box": {
      "id": "module.info-box",
      "name": "Info-box block",
      "files": ["modules/info-box/index.js", "modules/info-box/recipe.md"]
    },
    "module.cta-box": {
      "id": "module.cta-box",
      "name": "CTA-box block",
      "files": ["modules/cta-box/index.js", "modules/cta-box/recipe.md"]
    }
  },

  "files": {
    "app-fragments/editor-outline/index.js": {"path": "app-fragments/editor-outline/index.js", "exports": ["mountEditorOutline", "unmountEditorOutline"], "tests": ["tests/outline.mjs"]},
    "app-fragments/editor-palette/index.js": {"path": "app-fragments/editor-palette/index.js", "exports": ["mountEditorPalette", "renderPaletteGrid"], "tests": ["tests/test-page-builder.mjs"]},
    "app-fragments/editor-region-actions/index.js": {"path": "app-fragments/editor-region-actions/index.js", "exports": ["mountRegionActions", "applyProperty"], "tests": ["tests/test-page-builder.mjs"]},
    "app-fragments/editor-layout-templates/index.js": {"path": "app-fragments/editor-layout-templates/index.js", "exports": ["mountLayoutTemplates", "applyTemplate"], "tests": ["tests/test-page-builder.mjs"]},
    "app-fragments/editor-inspector/index.js": {"path": "app-fragments/editor-inspector/index.js", "exports": ["mountInspector", "renderFieldsForSelected"], "tests": ["tests/inspector.mjs"]},
    "app-fragments/editor-navigator/index.js": {"path": "app-fragments/editor-navigator/index.js", "exports": ["mountNavigator", "renderTree"], "tests": ["tests/navigator.mjs"]},
    "app-fragments/editor-content-admin/index.js": {"path": "app-fragments/editor-content-admin/index.js", "exports": ["mountContentAdmin", "listRecords", "createRecord", "editRecord", "deleteRecord"], "tests": ["tests/content-admin.mjs"]},
    "app-fragments/editor-breadcrumb/index.js": {"path": "app-fragments/editor-breadcrumb/index.js", "exports": ["mountBreadcrumb", "renderPath"], "tests": ["tests/breadcrumb.mjs", "tests/breadcrumb-mount.mjs"]},
    "app-fragments/editor-context-menu/index.js": {"path": "app-fragments/editor-context-menu/index.js", "exports": ["mountContextMenu", "showOnRightClick"], "tests": ["tests/context-menu.mjs"]},
    "app-fragments/editor-selection/index.js": {"path": "app-fragments/editor-selection/index.js", "exports": ["setSelected", "clearSelected"], "tests": ["tests/selection.mjs"]},
    "app-fragments/fvcms-dev-btn/index.js": {"path": "app-fragments/fvcms-dev-btn/index.js", "exports": ["mountDevBtn", "toggleChrome"], "tests": ["tests/smoke.mjs"]},
    "app-fragments/fvcms-dev-panel/index.js": {"path": "app-fragments/fvcms-dev-panel/index.js", "exports": ["mountDevPanel"], "tests": ["tests/smoke.mjs"]},
    "app-fragments/fvcms-panel-manager/index.js": {"path": "app-fragments/fvcms-panel-manager/index.js", "exports": ["mountPanel", "dockToEdge", "autoHide", "removePanel"], "tests": ["tests/multi-panel.mjs"]},
    "app-fragments/fvcms-cms-panel/index.js": {"path": "app-fragments/fvcms-cms-panel/index.js", "exports": ["mountCmsPanel"], "tests": ["tests/smoke.mjs"]},
    "runtime/region-renderer.js": {"path": "runtime/region-renderer.js", "exports": ["renderRegion"], "tests": ["tests/rerender-watcher.mjs"]},
    "runtime/store.js": {"path": "runtime/store.js", "exports": ["getState", "setState", "select", "subscribe"], "tests": ["tests/smoke.mjs"]},
    "runtime/content-items/store.js": {"path": "runtime/content-items/store.js", "exports": ["getRecords", "addRecord", "updateRecord", "removeRecord"], "tests": ["tests/content-admin.mjs"]},
    "modules/heading/index.js": {"path": "modules/heading/index.js", "exports": ["render"], "tests": []},
    "modules/button/index.js": {"path": "modules/button/index.js", "exports": ["render", "handleClick"], "tests": []},
    "modules/image/index.js": {"path": "modules/image/index.js", "exports": ["render"], "tests": []},
    "modules/carousel/index.js": {"path": "modules/carousel/index.js", "exports": ["render", "nextSlide", "prevSlide"], "tests": []},
    "modules/testimonial/index.js": {"path": "modules/testimonial/index.js", "exports": ["render"], "tests": []},
    "modules/info-box/index.js": {"path": "modules/info-box/index.js", "exports": ["render"], "tests": []},
    "modules/cta-box/index.js": {"path": "modules/cta-box/index.js", "exports": ["render"], "tests": []}
  },

  "tests": {
    "tests/outline.mjs": {"path": "tests/outline.mjs", "covers": ["behaviour.outline.show-on-hover", "behaviour.outline.click-to-select"], "type": "validity"},
    "tests/inspector.mjs": {"path": "tests/inspector.mjs", "covers": ["behaviour.inspector.render-fields-for-selected", "behaviour.inspector.save-on-change"], "type": "validity"},
    "tests/navigator.mjs": {"path": "tests/navigator.mjs", "covers": ["behaviour.navigator.render-tree", "behaviour.navigator.click-to-jump"], "type": "validity"},
    "tests/content-admin.mjs": {"path": "tests/content-admin.mjs", "covers": ["behaviour.content-admin.list-records", "behaviour.content-admin.create-record", "behaviour.content-admin.edit-record", "behaviour.content-admin.delete-record"], "type": "validity"},
    "tests/breadcrumb.mjs": {"path": "tests/breadcrumb.mjs", "covers": ["behaviour.breadcrumb.render-path", "behaviour.breadcrumb.click-to-jump"], "type": "validity"},
    "tests/context-menu.mjs": {"path": "tests/context-menu.mjs", "covers": ["behaviour.context-menu.show-on-right-click", "behaviour.context-menu.apply-action"], "type": "validity"},
    "tests/selection.mjs": {"path": "tests/selection.mjs", "covers": ["behaviour.selection.set-selected", "behaviour.selection.clear-selected"], "type": "validity"},
    "tests/multi-panel.mjs": {"path": "tests/multi-panel.mjs", "covers": ["behaviour.panel-manager.mount-panel", "behaviour.panel-manager.dock-to-edge", "behaviour.panel-manager.auto-hide-on-inactivity", "behaviour.panel-manager.remove-panel"], "type": "validity"},
    "tests/test-page-builder.mjs": {"path": "tests/test-page-builder.mjs", "covers": ["behaviour.palette.render-blocks", "behaviour.palette.drag-block-to-region", "behaviour.layout.show-picker-on-add-region", "behaviour.layout.apply-template"], "type": "validity"},
    "tests/smoke.mjs": {"path": "tests/smoke.mjs", "covers": ["behaviour.dev-btn.toggle-chrome", "behaviour.dev-panel.show-on-toggle", "behaviour.cms-panel.mount"], "type": "validity"},
    "tests/rerender-watcher.mjs": {"path": "tests/rerender-watcher.mjs", "covers": ["behaviour.region.apply-property"], "type": "validity"},
    "tests/colors-and-drilldown.mjs": {"path": "tests/colors-and-drilldown.mjs", "covers": ["behaviour.cms-data.load-modules"], "type": "validity"}
  },

  "summary": {
    "surfaces_count": 22,
    "behaviours_count": 39,
    "modules_count": 24,
    "files_count": 23,
    "tests_count": 12,
    "panels_count": 23,
    "blocks_count": 7,
    "panel_block_naming_per_1_7a": true,
    "app_v8_3_compliant": true
  }
}
