{"version":3,"file":"manifest.cjs","names":[],"sources":["../../../src/components/manifest.ts"],"sourcesContent":["/**\n * Typed manifest of all Ionic 8 custom elements supported by nix-ionic.\n * This is the single source of truth for:\n *   - the Vite plugin (auto-import scanning)\n *   - direct subpath generation\n *   - bundle composition\n *   - diagnostics (unsupported tags, version drift)\n *\n * Each entry maps a kebab-case tag name to its Ionic Core import path and\n * metadata (category, dependencies, wrapper/controller if any).\n */\n\nexport type ComponentCategory =\n    | \"layout\"\n    | \"navigation\"\n    | \"forms\"\n    | \"lists\"\n    | \"feedback\"\n    | \"buttons\"\n    | \"overlays\"\n    | \"data\"\n    | \"routing-legacy\";\n\nexport interface ComponentManifestEntry {\n    /** Custom element tag name, e.g. \"ion-button\". */\n    tag: string;\n    /** Import specifier relative to @ionic/core, e.g. \"ion-button.js\". */\n    importPath: string;\n    /** Category for bundle composition. */\n    category: ComponentCategory;\n    /** Other components this one depends on (e.g. ion-card needs ion-card-content). */\n    dependencies?: string[];\n    /** Associated nix-ionic wrapper or controller, if any. */\n    wrapper?: string;\n    /** Minimum Ionic Core major version. */\n    minIonicMajor: number;\n    /** True if this is a legacy/deprecated component (ion-router, ion-route, etc.). */\n    legacy?: boolean;\n}\n\n// --- Manifest ---\n\nexport const COMPONENT_MANIFEST: readonly ComponentManifestEntry[] = [\n    // Layout & Core\n    { tag: \"ion-app\", importPath: \"ion-app.js\", category: \"layout\", minIonicMajor: 8 },\n    { tag: \"ion-header\", importPath: \"ion-header.js\", category: \"layout\", minIonicMajor: 8 },\n    { tag: \"ion-toolbar\", importPath: \"ion-toolbar.js\", category: \"layout\", minIonicMajor: 8 },\n    { tag: \"ion-title\", importPath: \"ion-title.js\", category: \"layout\", minIonicMajor: 8 },\n    { tag: \"ion-content\", importPath: \"ion-content.js\", category: \"layout\", minIonicMajor: 8 },\n    { tag: \"ion-footer\", importPath: \"ion-footer.js\", category: \"layout\", minIonicMajor: 8 },\n    { tag: \"ion-grid\", importPath: \"ion-grid.js\", category: \"layout\", minIonicMajor: 8 },\n    { tag: \"ion-row\", importPath: \"ion-row.js\", category: \"layout\", minIonicMajor: 8, dependencies: [\"ion-grid\"] },\n    { tag: \"ion-col\", importPath: \"ion-col.js\", category: \"layout\", minIonicMajor: 8, dependencies: [\"ion-grid\", \"ion-row\"] },\n    { tag: \"ion-split-pane\", importPath: \"ion-split-pane.js\", category: \"layout\", minIonicMajor: 8 },\n    { tag: \"ion-text\", importPath: \"ion-text.js\", category: \"layout\", minIonicMajor: 8 },\n    { tag: \"ion-img\", importPath: \"ion-img.js\", category: \"layout\", minIonicMajor: 8 },\n    { tag: \"ion-backdrop\", importPath: \"ion-backdrop.js\", category: \"layout\", minIonicMajor: 8 },\n\n    // Navigation\n    { tag: \"ion-buttons\", importPath: \"ion-buttons.js\", category: \"navigation\", minIonicMajor: 8 },\n    { tag: \"ion-back-button\", importPath: \"ion-back-button.js\", category: \"navigation\", minIonicMajor: 8 },\n    { tag: \"ion-menu\", importPath: \"ion-menu.js\", category: \"navigation\", minIonicMajor: 8 },\n    { tag: \"ion-menu-button\", importPath: \"ion-menu-button.js\", category: \"navigation\", minIonicMajor: 8 },\n    { tag: \"ion-menu-toggle\", importPath: \"ion-menu-toggle.js\", category: \"navigation\", minIonicMajor: 8 },\n    { tag: \"ion-tabs\", importPath: \"ion-tabs.js\", category: \"navigation\", minIonicMajor: 8 },\n    { tag: \"ion-tab\", importPath: \"ion-tab.js\", category: \"navigation\", minIonicMajor: 8 },\n    { tag: \"ion-tab-bar\", importPath: \"ion-tab-bar.js\", category: \"navigation\", minIonicMajor: 8 },\n    { tag: \"ion-tab-button\", importPath: \"ion-tab-button.js\", category: \"navigation\", minIonicMajor: 8 },\n    { tag: \"ion-nav\", importPath: \"ion-nav.js\", category: \"navigation\", minIonicMajor: 8 },\n    { tag: \"ion-nav-link\", importPath: \"ion-nav-link.js\", category: \"navigation\", minIonicMajor: 8 },\n    { tag: \"ion-router-link\", importPath: \"ion-router-link.js\", category: \"navigation\", minIonicMajor: 8 },\n\n    // Forms & Inputs\n    { tag: \"ion-input\", importPath: \"ion-input.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-input-otp\", importPath: \"ion-input-otp.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-input-password-toggle\", importPath: \"ion-input-password-toggle.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-textarea\", importPath: \"ion-textarea.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-checkbox\", importPath: \"ion-checkbox.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-toggle\", importPath: \"ion-toggle.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-select\", importPath: \"ion-select.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-select-option\", importPath: \"ion-select-option.js\", category: \"forms\", minIonicMajor: 8, dependencies: [\"ion-select\"] },\n    { tag: \"ion-select-modal\", importPath: \"ion-select-modal.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-select-popover\", importPath: \"ion-select-popover.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-radio\", importPath: \"ion-radio.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-radio-group\", importPath: \"ion-radio-group.js\", category: \"forms\", minIonicMajor: 8, dependencies: [\"ion-radio\"] },\n    { tag: \"ion-range\", importPath: \"ion-range.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-searchbar\", importPath: \"ion-searchbar.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-datetime\", importPath: \"ion-datetime.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-datetime-button\", importPath: \"ion-datetime-button.js\", category: \"forms\", minIonicMajor: 8, dependencies: [\"ion-datetime\"] },\n    { tag: \"ion-segment\", importPath: \"ion-segment.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-segment-button\", importPath: \"ion-segment-button.js\", category: \"forms\", minIonicMajor: 8, dependencies: [\"ion-segment\"] },\n    { tag: \"ion-segment-view\", importPath: \"ion-segment-view.js\", category: \"forms\", minIonicMajor: 8 },\n    { tag: \"ion-segment-content\", importPath: \"ion-segment-content.js\", category: \"forms\", minIonicMajor: 8, dependencies: [\"ion-segment-view\"] },\n\n    // List & Items\n    { tag: \"ion-list\", importPath: \"ion-list.js\", category: \"lists\", minIonicMajor: 8 },\n    { tag: \"ion-list-header\", importPath: \"ion-list-header.js\", category: \"lists\", minIonicMajor: 8 },\n    { tag: \"ion-item\", importPath: \"ion-item.js\", category: \"lists\", minIonicMajor: 8 },\n    { tag: \"ion-item-divider\", importPath: \"ion-item-divider.js\", category: \"lists\", minIonicMajor: 8 },\n    { tag: \"ion-item-group\", importPath: \"ion-item-group.js\", category: \"lists\", minIonicMajor: 8 },\n    { tag: \"ion-item-sliding\", importPath: \"ion-item-sliding.js\", category: \"lists\", minIonicMajor: 8 },\n    { tag: \"ion-item-options\", importPath: \"ion-item-options.js\", category: \"lists\", minIonicMajor: 8, dependencies: [\"ion-item-sliding\"] },\n    { tag: \"ion-item-option\", importPath: \"ion-item-option.js\", category: \"lists\", minIonicMajor: 8, dependencies: [\"ion-item-sliding\"] },\n    { tag: \"ion-label\", importPath: \"ion-label.js\", category: \"lists\", minIonicMajor: 8 },\n    { tag: \"ion-note\", importPath: \"ion-note.js\", category: \"lists\", minIonicMajor: 8 },\n    { tag: \"ion-reorder\", importPath: \"ion-reorder.js\", category: \"lists\", minIonicMajor: 8 },\n    { tag: \"ion-reorder-group\", importPath: \"ion-reorder-group.js\", category: \"lists\", minIonicMajor: 8, dependencies: [\"ion-reorder\"] },\n\n    // Cards & Data\n    { tag: \"ion-card\", importPath: \"ion-card.js\", category: \"data\", minIonicMajor: 8 },\n    { tag: \"ion-card-header\", importPath: \"ion-card-header.js\", category: \"data\", minIonicMajor: 8, dependencies: [\"ion-card\"] },\n    { tag: \"ion-card-title\", importPath: \"ion-card-title.js\", category: \"data\", minIonicMajor: 8, dependencies: [\"ion-card\"] },\n    { tag: \"ion-card-subtitle\", importPath: \"ion-card-subtitle.js\", category: \"data\", minIonicMajor: 8, dependencies: [\"ion-card\"] },\n    { tag: \"ion-card-content\", importPath: \"ion-card-content.js\", category: \"data\", minIonicMajor: 8, dependencies: [\"ion-card\"] },\n    { tag: \"ion-chip\", importPath: \"ion-chip.js\", category: \"data\", minIonicMajor: 8 },\n    { tag: \"ion-badge\", importPath: \"ion-badge.js\", category: \"data\", minIonicMajor: 8 },\n    { tag: \"ion-avatar\", importPath: \"ion-avatar.js\", category: \"data\", minIonicMajor: 8 },\n    { tag: \"ion-thumbnail\", importPath: \"ion-thumbnail.js\", category: \"data\", minIonicMajor: 8 },\n    { tag: \"ion-accordion\", importPath: \"ion-accordion.js\", category: \"data\", minIonicMajor: 8 },\n    { tag: \"ion-accordion-group\", importPath: \"ion-accordion-group.js\", category: \"data\", minIonicMajor: 8, dependencies: [\"ion-accordion\"] },\n    { tag: \"ion-breadcrumb\", importPath: \"ion-breadcrumb.js\", category: \"data\", minIonicMajor: 8 },\n    { tag: \"ion-breadcrumbs\", importPath: \"ion-breadcrumbs.js\", category: \"data\", minIonicMajor: 8, dependencies: [\"ion-breadcrumb\"] },\n    { tag: \"ion-infinite-scroll\", importPath: \"ion-infinite-scroll.js\", category: \"data\", minIonicMajor: 8 },\n    { tag: \"ion-infinite-scroll-content\", importPath: \"ion-infinite-scroll-content.js\", category: \"data\", minIonicMajor: 8, dependencies: [\"ion-infinite-scroll\"] },\n    { tag: \"ion-refresher\", importPath: \"ion-refresher.js\", category: \"data\", minIonicMajor: 8 },\n    { tag: \"ion-refresher-content\", importPath: \"ion-refresher-content.js\", category: \"data\", minIonicMajor: 8, dependencies: [\"ion-refresher\"] },\n\n    // Feedback & Progress\n    { tag: \"ion-spinner\", importPath: \"ion-spinner.js\", category: \"feedback\", minIonicMajor: 8 },\n    { tag: \"ion-progress-bar\", importPath: \"ion-progress-bar.js\", category: \"feedback\", minIonicMajor: 8 },\n    { tag: \"ion-skeleton-text\", importPath: \"ion-skeleton-text.js\", category: \"feedback\", minIonicMajor: 8 },\n\n    // Buttons & Actions\n    { tag: \"ion-button\", importPath: \"ion-button.js\", category: \"buttons\", minIonicMajor: 8 },\n    { tag: \"ion-fab\", importPath: \"ion-fab.js\", category: \"buttons\", minIonicMajor: 8 },\n    { tag: \"ion-fab-button\", importPath: \"ion-fab-button.js\", category: \"buttons\", minIonicMajor: 8, dependencies: [\"ion-fab\"] },\n    { tag: \"ion-fab-list\", importPath: \"ion-fab-list.js\", category: \"buttons\", minIonicMajor: 8, dependencies: [\"ion-fab\"] },\n    { tag: \"ion-ripple-effect\", importPath: \"ion-ripple-effect.js\", category: \"buttons\", minIonicMajor: 8 },\n\n    // Overlays\n    { tag: \"ion-modal\", importPath: \"ion-modal.js\", category: \"overlays\", minIonicMajor: 8, wrapper: \"useModal\" },\n    { tag: \"ion-popover\", importPath: \"ion-popover.js\", category: \"overlays\", minIonicMajor: 8, wrapper: \"usePopover\" },\n    { tag: \"ion-toast\", importPath: \"ion-toast.js\", category: \"overlays\", minIonicMajor: 8, wrapper: \"useToast\" },\n    { tag: \"ion-alert\", importPath: \"ion-alert.js\", category: \"overlays\", minIonicMajor: 8, wrapper: \"useAlert\" },\n    { tag: \"ion-action-sheet\", importPath: \"ion-action-sheet.js\", category: \"overlays\", minIonicMajor: 8, wrapper: \"useActionSheet\" },\n    { tag: \"ion-loading\", importPath: \"ion-loading.js\", category: \"overlays\", minIonicMajor: 8, wrapper: \"useLoading\" },\n    { tag: \"ion-picker\", importPath: \"ion-picker.js\", category: \"overlays\", minIonicMajor: 8, wrapper: \"usePicker\" },\n    { tag: \"ion-picker-column\", importPath: \"ion-picker-column.js\", category: \"overlays\", minIonicMajor: 8, dependencies: [\"ion-picker\"] },\n    { tag: \"ion-picker-column-option\", importPath: \"ion-picker-column-option.js\", category: \"overlays\", minIonicMajor: 8, dependencies: [\"ion-picker-column\"] },\n\n    // Routing (legacy — not registered by default)\n    { tag: \"ion-router\", importPath: \"ion-router.js\", category: \"routing-legacy\", minIonicMajor: 8, legacy: true },\n    { tag: \"ion-route\", importPath: \"ion-route.js\", category: \"routing-legacy\", minIonicMajor: 8, legacy: true },\n    { tag: \"ion-route-redirect\", importPath: \"ion-route-redirect.js\", category: \"routing-legacy\", minIonicMajor: 8, legacy: true },\n    { tag: \"ion-router-outlet\", importPath: \"ion-router-outlet.js\", category: \"layout\", minIonicMajor: 8 },\n\n    // Icon (from ionicons, not @ionic/core)\n    { tag: \"ion-icon\", importPath: \"ion-icon.js\", category: \"feedback\", minIonicMajor: 8 },\n] as const;\n\n// --- Lookup helpers ---\n\nconst _byTag = new Map<string, ComponentManifestEntry>(\n    COMPONENT_MANIFEST.map((e) => [e.tag, e]),\n);\n\nconst _byCategory = new Map<ComponentCategory, ComponentManifestEntry[]>();\nfor (const entry of COMPONENT_MANIFEST) {\n    const list = _byCategory.get(entry.category) ?? [];\n    list.push(entry);\n    _byCategory.set(entry.category, list);\n}\n\n/** Get a manifest entry by tag name. */\nexport function getComponentByTag(tag: string): ComponentManifestEntry | undefined {\n    return _byTag.get(tag);\n}\n\n/** Get all entries in a category (excluding legacy). */\nexport function getComponentsByCategory(category: ComponentCategory): readonly ComponentManifestEntry[] {\n    return (_byCategory.get(category) ?? []).filter((e) => !e.legacy);\n}\n\n/** Get all non-legacy tags. */\nexport function getAllSupportedTags(): readonly string[] {\n    return COMPONENT_MANIFEST.filter((e) => !e.legacy).map((e) => e.tag);\n}\n\n/** Check if a tag is in the manifest (and not legacy). */\nexport function isSupportedTag(tag: string): boolean {\n    const entry = _byTag.get(tag);\n    return entry != null && !entry.legacy;\n}\n\n/** Get the full dependency chain for a tag (recursive). */\nexport function getDependencyChain(tag: string): string[] {\n    const entry = _byTag.get(tag);\n    if (!entry?.dependencies) return [];\n    const seen = new Set<string>();\n    const result: string[] = [];\n    function visit(t: string) {\n        const e = _byTag.get(t);\n        if (!e?.dependencies) return;\n        for (const dep of e.dependencies) {\n            if (seen.has(dep)) continue;\n            seen.add(dep);\n            result.push(dep);\n            visit(dep);\n        }\n    }\n    visit(tag);\n    return result;\n}\n\n/** Convert a tag name to a subpath-safe name (e.g. \"ion-button\" → \"button\"). */\nexport function tagToSubpath(tag: string): string {\n    return tag.replace(/^ion-/, \"\");\n}\n\n/** Convert a tag name to a definer export name (e.g. \"ion-button\" → \"defineIonButton\"). */\nexport function tagToDefinerName(tag: string): string {\n    return \"defineIon\" + tagToSubpath(tag)\n        .split(\"-\")\n        .map((s) => s.charAt(0).toUpperCase() + s.slice(1))\n        .join(\"\");\n}\n"],"mappings":"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"}