{
  "name": "@jskit-ai/shell-web",
  "version": "0.1.252",
  "type": "module",
  "scripts": {
    "test": "node --test --test-concurrency=1"
  },
  "exports": {
    "./client": "./src/client/index.js",
    "./client/error": "./src/client/error/index.js",
    "./client/placement": "./src/client/placement/index.js",
    "./client/asyncModuleRecovery": "./src/client/asyncModuleRecovery/index.js",
    "./client/requestRecovery": "./src/client/requestRecovery/index.js",
    "./client/bootstrap": "./src/client/bootstrap/index.js",
    "./client/navigation/linkResolver": "./src/client/navigation/linkResolver.js",
    "./client/navigation/usePaths": "./src/client/navigation/usePaths.js",
    "./client/navigation/useSurfaceRouteContext": "./src/client/navigation/useSurfaceRouteContext.js",
    "./client/components/ShellLayout": "./src/client/components/ShellLayout.vue",
    "./client/components/ShellOutlet": "./src/client/components/ShellOutlet.vue",
    "./client/components/ShellOutletMenuWidget": "./src/client/components/ShellOutletMenuWidget.vue",
    "./client/components/ShellRouteTransition": "./src/client/components/ShellRouteTransition.vue",
    "./client/components/ShellErrorHost": "./src/client/components/ShellErrorHost.vue",
    "./client/components/ShellMenuLinkItem": "./src/client/components/ShellMenuLinkItem.vue",
    "./client/components/ShellSurfaceAwareMenuLinkItem": "./src/client/components/ShellSurfaceAwareMenuLinkItem.vue",
    "./client/components/ShellTabLinkItem": "./src/client/components/ShellTabLinkItem.vue",
    "./client/composables/useShellLayoutState": "./src/client/composables/useShellLayoutState.js",
    "./client/providers/ShellWebClientProvider": "./src/client/providers/ShellWebClientProvider.js",
    "./test/adaptiveShellSmoke": "./src/test/adaptiveShellSmoke.js",
    "./architecture": "./src/architecture/inspectVueArchitecture.js"
  },
  "dependencies": {
    "@mdi/js": "^7.4.47",
    "@babel/parser": "7.29.9",
    "@vue/compiler-sfc": "3.5.44"
  },
  "peerDependencies": {
    "@jskit-ai/kernel": "0.1.246",
    "pinia": "^4.0.3",
    "vue": "^3.5.44",
    "vue-router": "^5.3.1",
    "vuetify": "^4.0.0"
  },
  "description": "Web shell layout runtime with outlet-based placement contributions.",
  "jskit": {
    "kind": "runtime",
    "capabilities": {
      "provides": [
        "client.shell"
      ],
      "requires": []
    },
    "runtime": {
      "server": {
        "providers": []
      },
      "client": {
        "providers": [
          {
            "entrypoint": "src/client/providers/ShellWebClientProvider.js",
            "export": "ShellWebClientProvider"
          }
        ]
      }
    },
    "metadata": {
      "client": {
        "optimizeDeps": {
          "include": [
            "@jskit-ai/shell-web/client/placement",
            "@jskit-ai/shell-web/client/error",
            "@jskit-ai/shell-web/client/asyncModuleRecovery",
            "@jskit-ai/shell-web/client/requestRecovery",
            "@jskit-ai/shell-web/client/bootstrap",
            "@jskit-ai/shell-web/client/navigation/linkResolver",
            "@jskit-ai/shell-web/client/navigation/usePaths",
            "@jskit-ai/shell-web/client/navigation/useSurfaceRouteContext",
            "@jskit-ai/shell-web/client/composables/useShellLayoutState"
          ],
          "exclude": [
            "@jskit-ai/shell-web/client"
          ]
        },
        "singleton": true
      },
      "apiSummary": {
        "surfaces": [
          {
            "subpath": "./client",
            "summary": "Exports shell layout/outlet/outlet-menu/route-transition/error-host components and ShellWebClientProvider."
          },
          {
            "subpath": "./client/placement",
            "summary": "Exports placement registry, placement context access, runtime token, and surface path helpers."
          },
          {
            "subpath": "./client/navigation/usePaths",
            "summary": "Exports surface-aware page and API path resolution."
          },
          {
            "subpath": "./client/navigation/useSurfaceRouteContext",
            "summary": "Exports the current route, placement context, and resolved surface id."
          },
          {
            "subpath": "./client/error",
            "summary": "Exports default error policy and runtime error reporter hook."
          },
          {
            "subpath": "./client/requestRecovery",
            "summary": "Exports request connectivity recovery classification and runtime access for app-caught request failures."
          },
          {
            "subpath": "./client/bootstrap",
            "summary": "Exports the shared client bootstrap handler registry used to extend /api/bootstrap handling."
          },
          {
            "subpath": "./test/adaptiveShellSmoke",
            "summary": "Exports reusable Playwright smoke coverage for generated adaptive shell layouts."
          }
        ]
      },
      "ui": {
        "placements": {
          "outlets": [
            {
              "target": "shell-layout:top-left",
              "surfaces": [
                "*"
              ],
              "source": "src/client/components/ShellLayout.vue"
            },
            {
              "target": "shell-layout:top-right",
              "surfaces": [
                "*"
              ],
              "source": "src/client/components/ShellLayout.vue"
            },
            {
              "target": "shell-layout:primary-menu",
              "surfaces": [
                "*"
              ],
              "source": "src/client/components/ShellLayout.vue"
            },
            {
              "target": "shell-layout:primary-bottom-nav",
              "surfaces": [
                "*"
              ],
              "source": "src/client/components/ShellLayout.vue"
            },
            {
              "target": "shell-layout:secondary-menu",
              "surfaces": [
                "*"
              ],
              "source": "src/client/components/ShellLayout.vue"
            },
            {
              "target": "shell-layout:supporting-bottom-sheet",
              "surfaces": [
                "*"
              ],
              "source": "src/client/components/ShellLayout.vue"
            },
            {
              "target": "shell-layout:supporting-side-panel",
              "surfaces": [
                "*"
              ],
              "source": "src/client/components/ShellLayout.vue"
            },
            {
              "target": "home-settings:primary-menu",
              "surfaces": [
                "home"
              ],
              "source": "patterns/application-shell/example/src/pages/home/settings.vue"
            }
          ],
          "topology": {
            "placements": [
              {
                "id": "shell.primary-nav",
                "description": "Primary top-level navigation for the current surface.",
                "surfaces": [
                  "*"
                ],
                "default": true,
                "variants": {
                  "compact": {
                    "outlet": "shell-layout:primary-bottom-nav",
                    "renderers": {
                      "link": "local.main.ui.tab-link-item"
                    }
                  },
                  "medium": {
                    "outlet": "shell-layout:primary-menu",
                    "renderers": {
                      "link": "local.main.ui.surface-aware-menu-link-item"
                    }
                  },
                  "expanded": {
                    "outlet": "shell-layout:primary-menu",
                    "renderers": {
                      "link": "local.main.ui.surface-aware-menu-link-item"
                    }
                  }
                }
              },
              {
                "id": "shell.status",
                "description": "Surface status, connection, and utility indicators.",
                "surfaces": [
                  "*"
                ],
                "variants": {
                  "compact": {
                    "outlet": "shell-layout:top-right"
                  },
                  "medium": {
                    "outlet": "shell-layout:top-right"
                  },
                  "expanded": {
                    "outlet": "shell-layout:top-right"
                  }
                }
              },
              {
                "id": "shell.secondary-nav",
                "description": "Secondary navigation for lower-priority shell links.",
                "surfaces": [
                  "*"
                ],
                "variants": {
                  "compact": {
                    "outlet": "shell-layout:secondary-menu",
                    "renderers": {
                      "link": "local.main.ui.surface-aware-menu-link-item"
                    }
                  },
                  "medium": {
                    "outlet": "shell-layout:secondary-menu",
                    "renderers": {
                      "link": "local.main.ui.surface-aware-menu-link-item"
                    }
                  },
                  "expanded": {
                    "outlet": "shell-layout:secondary-menu",
                    "renderers": {
                      "link": "local.main.ui.surface-aware-menu-link-item"
                    }
                  }
                }
              },
              {
                "id": "shell.identity",
                "description": "Current user, workspace, and surface identity controls.",
                "surfaces": [
                  "*"
                ],
                "variants": {
                  "compact": {
                    "outlet": "shell-layout:top-left"
                  },
                  "medium": {
                    "outlet": "shell-layout:top-left"
                  },
                  "expanded": {
                    "outlet": "shell-layout:top-left"
                  }
                }
              },
              {
                "id": "shell.global-actions",
                "description": "Global surface actions that should stay outside primary navigation.",
                "surfaces": [
                  "*"
                ],
                "variants": {
                  "compact": {
                    "outlet": "shell-layout:top-right",
                    "renderers": {
                      "link": "local.main.ui.surface-aware-menu-link-item"
                    }
                  },
                  "medium": {
                    "outlet": "shell-layout:top-right",
                    "renderers": {
                      "link": "local.main.ui.surface-aware-menu-link-item"
                    }
                  },
                  "expanded": {
                    "outlet": "shell-layout:top-right",
                    "renderers": {
                      "link": "local.main.ui.surface-aware-menu-link-item"
                    }
                  }
                }
              },
              {
                "id": "page.supporting-content",
                "description": "Supporting page content that opens as a bottom sheet on compact layouts and a side panel on wider layouts.",
                "surfaces": [
                  "*"
                ],
                "variants": {
                  "compact": {
                    "outlet": "shell-layout:supporting-bottom-sheet"
                  },
                  "medium": {
                    "outlet": "shell-layout:supporting-side-panel"
                  },
                  "expanded": {
                    "outlet": "shell-layout:supporting-side-panel"
                  }
                }
              },
              {
                "id": "page.section-nav",
                "owner": "home-settings",
                "description": "Navigation between child pages in the home settings section.",
                "surfaces": [
                  "home"
                ],
                "variants": {
                  "compact": {
                    "outlet": "home-settings:primary-menu",
                    "renderers": {
                      "link": "local.main.ui.surface-aware-menu-link-item"
                    }
                  },
                  "medium": {
                    "outlet": "home-settings:primary-menu",
                    "renderers": {
                      "link": "local.main.ui.surface-aware-menu-link-item"
                    }
                  },
                  "expanded": {
                    "outlet": "home-settings:primary-menu",
                    "renderers": {
                      "link": "local.main.ui.surface-aware-menu-link-item"
                    }
                  }
                }
              }
            ]
          },
          "contributions": [
            {
              "id": "shell-web.home.menu.home",
              "target": "shell.primary-nav",
              "kind": "link",
              "surfaces": [
                "home"
              ],
              "order": 50,
              "source": "patterns/application-shell/example/src/placement.js"
            },
            {
              "id": "shell-web.home.menu.settings",
              "target": "shell.primary-nav",
              "kind": "link",
              "surfaces": [
                "home"
              ],
              "order": 100,
              "source": "patterns/application-shell/example/src/placement.js"
            },
            {
              "id": "shell-web.home.settings.general",
              "target": "page.section-nav",
              "owner": "home-settings",
              "kind": "link",
              "surfaces": [
                "home"
              ],
              "order": 100,
              "source": "patterns/application-shell/example/src/placement.js"
            }
          ]
        }
      }
    }
  },
  "bin": {
    "jskit-inspect-vue": "./src/architecture/cli.js"
  }
}
