[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-tanstack-devtools-marketplace":3,"mdc--3cojaq-key":31,"related-repo-tanstack-devtools-marketplace":4879,"related-org-tanstack-devtools-marketplace":4966},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":16,"repoUrl":17,"updatedAt":18,"license":19,"forks":20,"topics":21,"repo":26,"sourceUrl":29,"mdContent":30},"devtools-marketplace","publish plugins to TanStack Devtools Marketplace","Publish plugin to npm and submit to TanStack Devtools Marketplace. PluginMetadata registry format, plugin-registry.ts, pluginImport (importName, type), requires (packageName, minVersion), framework tagging, multi-framework submissions, featured plugins.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"tanstack","TanStack","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftanstack.png",[12,15],{"name":13,"slug":13,"type":14},"npm","tag",{"name":9,"slug":8,"type":14},476,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Fdevtools","2026-07-16T06:04:09.110642",null,92,[22,23,24,25],"devtool","devtools","react","solidjs",{"repoUrl":17,"stars":16,"forks":20,"topics":27,"description":28},[22,23,24,25],"🤖 Framework-agnostic devtools panel for handling TanStack libraries devtools and your custom devtool plugins","https:\u002F\u002Fgithub.com\u002FTanStack\u002Fdevtools\u002Ftree\u002FHEAD\u002Fpackages\u002Fdevtools\u002Fskills\u002Fdevtools-marketplace","---\nname: devtools-marketplace\ndescription: >\n  Publish plugin to npm and submit to TanStack Devtools Marketplace.\n  PluginMetadata registry format, plugin-registry.ts, pluginImport (importName, type),\n  requires (packageName, minVersion), framework tagging, multi-framework submissions,\n  featured plugins.\ntype: lifecycle\nlibrary: '@tanstack\u002Fdevtools'\nlibrary_version: '0.10.12'\nrequires:\n  - devtools-plugin-panel\nsources:\n  - docs\u002Fthird-party-plugins.md\n  - packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fplugin-registry.ts\n  - packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fmarketplace\u002Ftypes.ts\n  - packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fmarketplace\u002Fplugin-utils.ts\n  - packages\u002Fdevtools-vite\u002Fsrc\u002Finject-plugin.ts\n  - packages\u002Fdevtools-client\u002Fsrc\u002Findex.ts\n---\n\n# TanStack Devtools Marketplace\n\n> **Prerequisite:** Build a working plugin first using the **devtools-plugin-panel** skill. The marketplace submission assumes you already have a published npm package that exports either a JSX panel component or a function-based plugin.\n\n## Overview\n\nThe TanStack Devtools Marketplace is a built-in registry inside the devtools shell. Users browse it from the Marketplace tab, and can install plugins with a single click. Submission is a PR to the `packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fplugin-registry.ts` file in the [TanStack\u002Fdevtools](https:\u002F\u002Fgithub.com\u002FTanStack\u002Fdevtools) repository.\n\n## PluginMetadata Interface\n\nEvery marketplace entry conforms to the `PluginMetadata` interface exported from `packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fplugin-registry.ts`:\n\n```ts\nexport interface PluginMetadata {\n  \u002F** Package name on npm (e.g., '@acme\u002Freact-analytics-devtools') *\u002F\n  packageName: string\n\n  \u002F** Display title shown on the marketplace card *\u002F\n  title: string\n\n  \u002F** Short description of what the plugin does *\u002F\n  description?: string\n\n  \u002F** URL to a logo image (SVG, PNG, etc.) *\u002F\n  logoUrl?: string\n\n  \u002F** Required base package dependency *\u002F\n  requires?: {\n    \u002F** Required package name (e.g., '@tanstack\u002Freact-query') *\u002F\n    packageName: string\n    \u002F** Minimum required version (semver) *\u002F\n    minVersion: string\n    \u002F** Maximum version (if there's a known breaking change) *\u002F\n    maxVersion?: string\n  }\n\n  \u002F** Plugin import configuration -- enables one-click auto-install *\u002F\n  pluginImport?: {\n    \u002F** The exact export name to import from the package\n     *  (e.g., 'FormDevtoolsPlugin' or 'ReactQueryDevtoolsPanel') *\u002F\n    importName: string\n    \u002F** 'jsx' = component rendered via { name, render: \u003CComponent \u002F> }\n     *  'function' = called directly as FnName() in the plugins array *\u002F\n    type: 'jsx' | 'function'\n  }\n\n  \u002F** Custom plugin ID for matching against registered plugins.\n   *  The default behavior lowercases the package name and replaces\n   *  non-alphanumeric characters with '-'.\n   *  Example: pluginId: 'tanstack-form' matches 'tanstack-form-4'. *\u002F\n  pluginId?: string\n\n  \u002F** URL to the plugin's documentation *\u002F\n  docsUrl?: string\n\n  \u002F** Plugin author\u002Fmaintainer *\u002F\n  author?: string\n\n  \u002F** Repository URL *\u002F\n  repoUrl?: string\n\n  \u002F** Framework this plugin supports *\u002F\n  framework: 'react' | 'solid' | 'vue' | 'svelte' | 'angular' | 'other'\n\n  \u002F** Mark as featured -- appears in the Featured section with animated border.\n   *  Reserved for official TanStack partners. *\u002F\n  featured?: boolean\n\n  \u002F** Mark as new -- shows a \"New\" banner on the card *\u002F\n  isNew?: boolean\n\n  \u002F** Tags for filtering and categorization *\u002F\n  tags?: Array\u003Cstring>\n}\n```\n\n### Required vs Optional Fields\n\nOnly two fields are strictly required by the TypeScript interface: `packageName`, `title`, and `framework`. In practice, always provide `requires`, `pluginImport`, and `description` -- without them the marketplace card is functional but auto-install cannot wire up the plugin.\n\n## Registry Entry Examples\n\n### React Plugin (function-based)\n\nA function-based plugin exports a factory function that returns a plugin object. The auto-injector calls it as `FormDevtoolsPlugin()` inside the `plugins` array:\n\n```ts\n\u002F\u002F In packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fplugin-registry.ts\n\n'@acme\u002Freact-analytics-devtools': {\n  packageName: '@acme\u002Freact-analytics-devtools',\n  title: 'Acme Analytics Devtools',\n  description: 'Inspect analytics events, funnels, and session data',\n  requires: {\n    packageName: '@acme\u002Freact-analytics',\n    minVersion: '2.0.0',\n  },\n  pluginImport: {\n    importName: 'AnalyticsDevtoolsPlugin',\n    type: 'function',\n  },\n  pluginId: 'acme-analytics',\n  docsUrl: 'https:\u002F\u002Facme.dev\u002Fanalytics\u002Fdevtools',\n  repoUrl: 'https:\u002F\u002Fgithub.com\u002Facme\u002Fanalytics',\n  author: 'Acme Corp',\n  framework: 'react',\n  isNew: true,\n  tags: ['Analytics', 'Tracking'],\n},\n```\n\nWhen a user clicks \"Install\" in the marketplace, the Vite plugin:\n\n1. Runs the package manager to install `@acme\u002Freact-analytics-devtools`\n2. Finds the file containing `\u003CTanStackDevtools \u002F>`\n3. Adds `import { AnalyticsDevtoolsPlugin } from '@acme\u002Freact-analytics-devtools'`\n4. Injects `AnalyticsDevtoolsPlugin()` into the `plugins` array\n\n### React Plugin (JSX-based)\n\nA JSX-based plugin exports a React component. The auto-injector wraps it in `{ name, render: \u003CComponent \u002F> }`:\n\n```ts\n'@acme\u002Freact-state-devtools': {\n  packageName: '@acme\u002Freact-state-devtools',\n  title: 'Acme State Inspector',\n  description: 'Real-time state tree visualization',\n  requires: {\n    packageName: '@acme\u002Freact-state',\n    minVersion: '1.5.0',\n  },\n  pluginImport: {\n    importName: 'AcmeStateDevtoolsPanel',\n    type: 'jsx',\n  },\n  author: 'Acme Corp',\n  framework: 'react',\n  tags: ['State Management'],\n},\n```\n\nThe injected code looks like:\n\n```tsx\nimport { AcmeStateDevtoolsPanel } from '@acme\u002Freact-state-devtools'\n;\u003CTanStackDevtools\n  plugins={[\n    { name: 'Acme State Inspector', render: \u003CAcmeStateDevtoolsPanel \u002F> },\n  ]}\n\u002F>\n```\n\n### Multi-Framework Submission (React + Solid)\n\nWhen your devtools package supports multiple frameworks, add one entry per framework. Each entry is keyed by its own npm package name:\n\n```ts\n'@acme\u002Freact-analytics-devtools': {\n  packageName: '@acme\u002Freact-analytics-devtools',\n  title: 'Acme Analytics Devtools',\n  description: 'Inspect analytics events, funnels, and session data',\n  requires: {\n    packageName: '@acme\u002Freact-analytics',\n    minVersion: '2.0.0',\n  },\n  pluginImport: {\n    importName: 'AnalyticsDevtoolsPlugin',\n    type: 'function',\n  },\n  pluginId: 'acme-analytics',\n  author: 'Acme Corp',\n  framework: 'react',\n  isNew: true,\n  tags: ['Analytics', 'Tracking'],\n},\n'@acme\u002Fsolid-analytics-devtools': {\n  packageName: '@acme\u002Fsolid-analytics-devtools',\n  title: 'Acme Analytics Devtools',\n  description: 'Inspect analytics events, funnels, and session data',\n  requires: {\n    packageName: '@acme\u002Fsolid-analytics',\n    minVersion: '2.0.0',\n  },\n  pluginImport: {\n    importName: 'AnalyticsDevtoolsPlugin',\n    type: 'function',\n  },\n  pluginId: 'acme-analytics',\n  author: 'Acme Corp',\n  framework: 'solid',\n  isNew: true,\n  tags: ['Analytics', 'Tracking'],\n},\n```\n\nThe marketplace auto-detects the user's framework from their `package.json` dependencies and shows only matching entries. Users can still browse other frameworks via the filter controls.\n\n## How Auto-Install Works\n\nThe auto-install pipeline lives in `packages\u002Fdevtools-vite\u002Fsrc\u002Finject-plugin.ts`. Understanding it clarifies why `pluginImport` matters:\n\n1. **Package installation** -- The Vite plugin detects the project's package manager and runs the appropriate install command.\n2. **File detection** -- It scans project files for imports from `@tanstack\u002Freact-devtools`, `@tanstack\u002Fsolid-devtools`, `@tanstack\u002Fvue-devtools`, etc.\n3. **AST transformation** -- It parses the file with oxc-parser, finds the `\u003CTanStackDevtools \u002F>` JSX element, and modifies the `plugins` prop via MagicString.\n4. **Import insertion** -- It adds `import { \u003CimportName> } from '\u003CpackageName>'` after the last existing import.\n5. **Plugin injection** -- Based on `pluginImport.type`:\n   - `'function'`: Appends `ImportName()` directly to the plugins array\n   - `'jsx'`: Appends `{ name: '\u003Ctitle>', render: \u003CImportName \u002F> }` to the plugins array\n\nIf `pluginImport` is missing, step 3-5 are skipped entirely. The package gets installed but the user must manually wire it into the `plugins` prop.\n\n## PR Submission Process\n\n1. **Publish your package to npm.** The marketplace links to npm for installation; the package must be publicly available.\n\n2. **Fork and clone** the [TanStack\u002Fdevtools](https:\u002F\u002Fgithub.com\u002FTanStack\u002Fdevtools) repository.\n\n3. **Edit `packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fplugin-registry.ts`.** Add your entry to the `PLUGIN_REGISTRY` object under the `THIRD-PARTY PLUGINS` comment section:\n\n   ```ts\n   \u002F\u002F ==========================================\n   \u002F\u002F THIRD-PARTY PLUGINS - Examples\n   \u002F\u002F ==========================================\n   \u002F\u002F External contributors can add their plugins below!\n   ```\n\n4. **Open a PR** against the `main` branch. Title format: `feat(marketplace): add \u003Cyour-plugin-name>`.\n\n5. **The PR will be reviewed** by TanStack maintainers. Common review feedback:\n   - Missing `pluginImport` -- reviewers will ask you to add it\n   - Missing `framework` -- required for marketplace filtering\n   - Missing `requires.minVersion` -- avoids runtime errors for users on older versions\n   - Incorrect `importName` -- must match the exact named export from your package\n\n## Framework Detection\n\nThe marketplace determines the user's current framework by scanning their `package.json` dependencies for known framework packages:\n\n| Framework | Detected packages    |\n| --------- | -------------------- |\n| react     | `react`, `react-dom` |\n| solid     | `solid-js`           |\n| vue       | `vue`, `@vue\u002Fcore`   |\n| svelte    | `svelte`             |\n| angular   | `@angular\u002Fcore`      |\n\nPlugins with `framework: 'other'` are shown regardless of the detected framework.\n\n## Featured Plugins\n\nThe `featured` field is reserved for official TanStack partners and select library authors. Featured plugins appear in a dedicated section at the top of the marketplace with an animated border.\n\nTo request featured status, email \u003Cpartners+devtools@tanstack.com>.\n\nDo not set `featured: true` in your PR submission -- it will be rejected. The TanStack team sets this flag.\n\n## Plugin ID Matching\n\nWhen the marketplace checks if a plugin is already active, it uses `pluginId` for matching. The matching logic in `packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fmarketplace\u002Fplugin-utils.ts` does:\n\n1. If `pluginId` is set, checks whether any registered plugin's ID starts with or contains the `pluginId` (case-insensitive).\n2. Otherwise falls back to matching on `packageName` and extracting keyword segments.\n\nSet a custom `pluginId` when your plugin registers with an ID that differs from the default (lowercased package name with non-alphanumeric characters replaced by `-`). For example, `@tanstack\u002Freact-form-devtools` registers as `tanstack-form-4` at runtime, so the registry entry uses `pluginId: 'tanstack-form'` to match it.\n\n## Common Mistakes\n\n### HIGH: Missing pluginImport metadata for auto-install\n\nWithout `pluginImport.importName` and `pluginImport.type`, the marketplace auto-install pipeline installs the npm package but cannot inject the plugin into the user's code. The user sees a successful install but the plugin tab never appears -- they must manually add the import and wire it into the `plugins` prop.\n\nWrong -- no pluginImport:\n\n```ts\n'@acme\u002Freact-analytics-devtools': {\n  packageName: '@acme\u002Freact-analytics-devtools',\n  title: 'Acme Analytics Devtools',\n  requires: {\n    packageName: '@acme\u002Freact-analytics',\n    minVersion: '2.0.0',\n  },\n  author: 'Acme Corp',\n  framework: 'react',\n},\n```\n\nCorrect -- pluginImport provided:\n\n```ts\n'@acme\u002Freact-analytics-devtools': {\n  packageName: '@acme\u002Freact-analytics-devtools',\n  title: 'Acme Analytics Devtools',\n  requires: {\n    packageName: '@acme\u002Freact-analytics',\n    minVersion: '2.0.0',\n  },\n  pluginImport: {\n    importName: 'AnalyticsDevtoolsPlugin',\n    type: 'function',\n  },\n  author: 'Acme Corp',\n  framework: 'react',\n},\n```\n\nThe `importName` must be the exact named export from your package. The `type` must match how the export is consumed:\n\n- `'function'` if your export is a factory like `export function AnalyticsDevtoolsPlugin() { return { name: '...', ... } }`\n- `'jsx'` if your export is a component like `export function AnalyticsDevtoolsPanel() { return \u003Cdiv>...\u003C\u002Fdiv> }`\n\n### MEDIUM: Not specifying requires.minVersion\n\nWhen `requires` is present but `minVersion` is omitted or set too low, users running older versions of the base package get runtime errors when the devtools plugin tries to access APIs that do not exist in their version.\n\nWrong -- missing minVersion:\n\n```ts\nrequires: {\n  packageName: '@acme\u002Freact-analytics',\n},\n```\n\nThis does not type-check -- `minVersion` is a required field inside `requires`. But setting it to `'0.0.0'` or an arbitrarily low version has the same practical effect: the marketplace shows the plugin as installable even when the user's version lacks the APIs your devtools plugin depends on.\n\nCorrect -- specify the actual minimum version your plugin is tested against:\n\n```ts\nrequires: {\n  packageName: '@acme\u002Freact-analytics',\n  minVersion: '2.0.0',\n},\n```\n\nIf there is a known breaking change in a later version, also set `maxVersion`:\n\n```ts\nrequires: {\n  packageName: '@acme\u002Freact-analytics',\n  minVersion: '2.0.0',\n  maxVersion: '3.0.0',\n},\n```\n\nThe marketplace uses semver comparison (`packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fsemver-utils.ts`) to determine if the user's installed version satisfies the range. When it does not, the card shows a \"Bump Version\" action instead of \"Install\".\n\n### MEDIUM: Submitting without framework field\n\nThe `framework` field enables marketplace filtering. Without it (or with it set incorrectly), users cannot find your plugin when browsing by framework, and the marketplace cannot determine whether to show it for the current project.\n\nThe framework is required by the TypeScript interface, so omitting it is a compile error. The real mistake is setting it to `'other'` when the plugin is framework-specific. A React-only plugin tagged `'other'` will appear for Solid, Vue, and Angular users who cannot use it.\n\nWrong:\n\n```ts\nframework: 'other', \u002F\u002F but the plugin only works with React\n```\n\nCorrect:\n\n```ts\nframework: 'react',\n```\n\nUse `'other'` only for truly framework-agnostic plugins that work in any environment.\n\n## See Also\n\n- **devtools-plugin-panel** -- Build a working devtools plugin panel before submitting to the marketplace\n- **devtools-app-setup** -- TanStackDevtools component setup, plugins prop format, framework adapters\n",{"data":32,"body":45},{"name":4,"description":6,"type":33,"library":34,"library_version":35,"requires":36,"sources":38},"lifecycle","@tanstack\u002Fdevtools","0.10.12",[37],"devtools-plugin-panel",[39,40,41,42,43,44],"docs\u002Fthird-party-plugins.md","packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fplugin-registry.ts","packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fmarketplace\u002Ftypes.ts","packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fmarketplace\u002Fplugin-utils.ts","packages\u002Fdevtools-vite\u002Fsrc\u002Finject-plugin.ts","packages\u002Fdevtools-client\u002Fsrc\u002Findex.ts",{"type":46,"children":47},"root",[48,57,79,86,109,115,135,1001,1008,1059,1065,1071,1092,1605,1610,1667,1673,1685,2051,2056,2213,2219,2224,3061,3074,3080,3099,3245,3264,3270,3456,3462,3474,3593,3606,3612,3625,3637,3650,3656,3676,3709,3753,3759,3765,3791,3796,4017,4022,4319,4338,4373,4379,4399,4404,4460,4487,4492,4576,4588,4700,4713,4719,4730,4750,4755,4794,4799,4833,4845,4851,4873],{"type":49,"tag":50,"props":51,"children":53},"element","h1",{"id":52},"tanstack-devtools-marketplace",[54],{"type":55,"value":56},"text","TanStack Devtools Marketplace",{"type":49,"tag":58,"props":59,"children":60},"blockquote",{},[61],{"type":49,"tag":62,"props":63,"children":64},"p",{},[65,71,73,77],{"type":49,"tag":66,"props":67,"children":68},"strong",{},[69],{"type":55,"value":70},"Prerequisite:",{"type":55,"value":72}," Build a working plugin first using the ",{"type":49,"tag":66,"props":74,"children":75},{},[76],{"type":55,"value":37},{"type":55,"value":78}," skill. The marketplace submission assumes you already have a published npm package that exports either a JSX panel component or a function-based plugin.",{"type":49,"tag":80,"props":81,"children":83},"h2",{"id":82},"overview",[84],{"type":55,"value":85},"Overview",{"type":49,"tag":62,"props":87,"children":88},{},[89,91,97,99,107],{"type":55,"value":90},"The TanStack Devtools Marketplace is a built-in registry inside the devtools shell. Users browse it from the Marketplace tab, and can install plugins with a single click. Submission is a PR to the ",{"type":49,"tag":92,"props":93,"children":95},"code",{"className":94},[],[96],{"type":55,"value":40},{"type":55,"value":98}," file in the ",{"type":49,"tag":100,"props":101,"children":104},"a",{"href":17,"rel":102},[103],"nofollow",[105],{"type":55,"value":106},"TanStack\u002Fdevtools",{"type":55,"value":108}," repository.",{"type":49,"tag":80,"props":110,"children":112},{"id":111},"pluginmetadata-interface",[113],{"type":55,"value":114},"PluginMetadata Interface",{"type":49,"tag":62,"props":116,"children":117},{},[118,120,126,128,133],{"type":55,"value":119},"Every marketplace entry conforms to the ",{"type":49,"tag":92,"props":121,"children":123},{"className":122},[],[124],{"type":55,"value":125},"PluginMetadata",{"type":55,"value":127}," interface exported from ",{"type":49,"tag":92,"props":129,"children":131},{"className":130},[],[132],{"type":55,"value":40},{"type":55,"value":134},":",{"type":49,"tag":136,"props":137,"children":142},"pre",{"className":138,"code":139,"language":140,"meta":141,"style":141},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export interface PluginMetadata {\n  \u002F** Package name on npm (e.g., '@acme\u002Freact-analytics-devtools') *\u002F\n  packageName: string\n\n  \u002F** Display title shown on the marketplace card *\u002F\n  title: string\n\n  \u002F** Short description of what the plugin does *\u002F\n  description?: string\n\n  \u002F** URL to a logo image (SVG, PNG, etc.) *\u002F\n  logoUrl?: string\n\n  \u002F** Required base package dependency *\u002F\n  requires?: {\n    \u002F** Required package name (e.g., '@tanstack\u002Freact-query') *\u002F\n    packageName: string\n    \u002F** Minimum required version (semver) *\u002F\n    minVersion: string\n    \u002F** Maximum version (if there's a known breaking change) *\u002F\n    maxVersion?: string\n  }\n\n  \u002F** Plugin import configuration -- enables one-click auto-install *\u002F\n  pluginImport?: {\n    \u002F** The exact export name to import from the package\n     *  (e.g., 'FormDevtoolsPlugin' or 'ReactQueryDevtoolsPanel') *\u002F\n    importName: string\n    \u002F** 'jsx' = component rendered via { name, render: \u003CComponent \u002F> }\n     *  'function' = called directly as FnName() in the plugins array *\u002F\n    type: 'jsx' | 'function'\n  }\n\n  \u002F** Custom plugin ID for matching against registered plugins.\n   *  The default behavior lowercases the package name and replaces\n   *  non-alphanumeric characters with '-'.\n   *  Example: pluginId: 'tanstack-form' matches 'tanstack-form-4'. *\u002F\n  pluginId?: string\n\n  \u002F** URL to the plugin's documentation *\u002F\n  docsUrl?: string\n\n  \u002F** Plugin author\u002Fmaintainer *\u002F\n  author?: string\n\n  \u002F** Repository URL *\u002F\n  repoUrl?: string\n\n  \u002F** Framework this plugin supports *\u002F\n  framework: 'react' | 'solid' | 'vue' | 'svelte' | 'angular' | 'other'\n\n  \u002F** Mark as featured -- appears in the Featured section with animated border.\n   *  Reserved for official TanStack partners. *\u002F\n  featured?: boolean\n\n  \u002F** Mark as new -- shows a \"New\" banner on the card *\u002F\n  isNew?: boolean\n\n  \u002F** Tags for filtering and categorization *\u002F\n  tags?: Array\u003Cstring>\n}\n","ts","",[143],{"type":49,"tag":92,"props":144,"children":145},{"__ignoreMap":141},[146,176,186,205,215,224,241,249,258,276,284,293,310,318,327,344,353,370,379,396,405,422,431,439,448,465,474,483,500,509,518,566,574,582,591,600,609,618,635,643,652,669,677,686,703,711,720,737,745,754,864,872,881,890,908,916,925,942,950,959,992],{"type":49,"tag":147,"props":148,"children":151},"span",{"class":149,"line":150},"line",1,[152,158,164,170],{"type":49,"tag":147,"props":153,"children":155},{"style":154},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[156],{"type":55,"value":157},"export",{"type":49,"tag":147,"props":159,"children":161},{"style":160},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[162],{"type":55,"value":163}," interface",{"type":49,"tag":147,"props":165,"children":167},{"style":166},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[168],{"type":55,"value":169}," PluginMetadata",{"type":49,"tag":147,"props":171,"children":173},{"style":172},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[174],{"type":55,"value":175}," {\n",{"type":49,"tag":147,"props":177,"children":179},{"class":149,"line":178},2,[180],{"type":49,"tag":147,"props":181,"children":183},{"style":182},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[184],{"type":55,"value":185},"  \u002F** Package name on npm (e.g., '@acme\u002Freact-analytics-devtools') *\u002F\n",{"type":49,"tag":147,"props":187,"children":189},{"class":149,"line":188},3,[190,196,200],{"type":49,"tag":147,"props":191,"children":193},{"style":192},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[194],{"type":55,"value":195},"  packageName",{"type":49,"tag":147,"props":197,"children":198},{"style":172},[199],{"type":55,"value":134},{"type":49,"tag":147,"props":201,"children":202},{"style":166},[203],{"type":55,"value":204}," string\n",{"type":49,"tag":147,"props":206,"children":208},{"class":149,"line":207},4,[209],{"type":49,"tag":147,"props":210,"children":212},{"emptyLinePlaceholder":211},true,[213],{"type":55,"value":214},"\n",{"type":49,"tag":147,"props":216,"children":218},{"class":149,"line":217},5,[219],{"type":49,"tag":147,"props":220,"children":221},{"style":182},[222],{"type":55,"value":223},"  \u002F** Display title shown on the marketplace card *\u002F\n",{"type":49,"tag":147,"props":225,"children":227},{"class":149,"line":226},6,[228,233,237],{"type":49,"tag":147,"props":229,"children":230},{"style":192},[231],{"type":55,"value":232},"  title",{"type":49,"tag":147,"props":234,"children":235},{"style":172},[236],{"type":55,"value":134},{"type":49,"tag":147,"props":238,"children":239},{"style":166},[240],{"type":55,"value":204},{"type":49,"tag":147,"props":242,"children":244},{"class":149,"line":243},7,[245],{"type":49,"tag":147,"props":246,"children":247},{"emptyLinePlaceholder":211},[248],{"type":55,"value":214},{"type":49,"tag":147,"props":250,"children":252},{"class":149,"line":251},8,[253],{"type":49,"tag":147,"props":254,"children":255},{"style":182},[256],{"type":55,"value":257},"  \u002F** Short description of what the plugin does *\u002F\n",{"type":49,"tag":147,"props":259,"children":261},{"class":149,"line":260},9,[262,267,272],{"type":49,"tag":147,"props":263,"children":264},{"style":192},[265],{"type":55,"value":266},"  description",{"type":49,"tag":147,"props":268,"children":269},{"style":172},[270],{"type":55,"value":271},"?:",{"type":49,"tag":147,"props":273,"children":274},{"style":166},[275],{"type":55,"value":204},{"type":49,"tag":147,"props":277,"children":279},{"class":149,"line":278},10,[280],{"type":49,"tag":147,"props":281,"children":282},{"emptyLinePlaceholder":211},[283],{"type":55,"value":214},{"type":49,"tag":147,"props":285,"children":287},{"class":149,"line":286},11,[288],{"type":49,"tag":147,"props":289,"children":290},{"style":182},[291],{"type":55,"value":292},"  \u002F** URL to a logo image (SVG, PNG, etc.) *\u002F\n",{"type":49,"tag":147,"props":294,"children":296},{"class":149,"line":295},12,[297,302,306],{"type":49,"tag":147,"props":298,"children":299},{"style":192},[300],{"type":55,"value":301},"  logoUrl",{"type":49,"tag":147,"props":303,"children":304},{"style":172},[305],{"type":55,"value":271},{"type":49,"tag":147,"props":307,"children":308},{"style":166},[309],{"type":55,"value":204},{"type":49,"tag":147,"props":311,"children":313},{"class":149,"line":312},13,[314],{"type":49,"tag":147,"props":315,"children":316},{"emptyLinePlaceholder":211},[317],{"type":55,"value":214},{"type":49,"tag":147,"props":319,"children":321},{"class":149,"line":320},14,[322],{"type":49,"tag":147,"props":323,"children":324},{"style":182},[325],{"type":55,"value":326},"  \u002F** Required base package dependency *\u002F\n",{"type":49,"tag":147,"props":328,"children":330},{"class":149,"line":329},15,[331,336,340],{"type":49,"tag":147,"props":332,"children":333},{"style":192},[334],{"type":55,"value":335},"  requires",{"type":49,"tag":147,"props":337,"children":338},{"style":172},[339],{"type":55,"value":271},{"type":49,"tag":147,"props":341,"children":342},{"style":172},[343],{"type":55,"value":175},{"type":49,"tag":147,"props":345,"children":347},{"class":149,"line":346},16,[348],{"type":49,"tag":147,"props":349,"children":350},{"style":182},[351],{"type":55,"value":352},"    \u002F** Required package name (e.g., '@tanstack\u002Freact-query') *\u002F\n",{"type":49,"tag":147,"props":354,"children":356},{"class":149,"line":355},17,[357,362,366],{"type":49,"tag":147,"props":358,"children":359},{"style":192},[360],{"type":55,"value":361},"    packageName",{"type":49,"tag":147,"props":363,"children":364},{"style":172},[365],{"type":55,"value":134},{"type":49,"tag":147,"props":367,"children":368},{"style":166},[369],{"type":55,"value":204},{"type":49,"tag":147,"props":371,"children":373},{"class":149,"line":372},18,[374],{"type":49,"tag":147,"props":375,"children":376},{"style":182},[377],{"type":55,"value":378},"    \u002F** Minimum required version (semver) *\u002F\n",{"type":49,"tag":147,"props":380,"children":382},{"class":149,"line":381},19,[383,388,392],{"type":49,"tag":147,"props":384,"children":385},{"style":192},[386],{"type":55,"value":387},"    minVersion",{"type":49,"tag":147,"props":389,"children":390},{"style":172},[391],{"type":55,"value":134},{"type":49,"tag":147,"props":393,"children":394},{"style":166},[395],{"type":55,"value":204},{"type":49,"tag":147,"props":397,"children":399},{"class":149,"line":398},20,[400],{"type":49,"tag":147,"props":401,"children":402},{"style":182},[403],{"type":55,"value":404},"    \u002F** Maximum version (if there's a known breaking change) *\u002F\n",{"type":49,"tag":147,"props":406,"children":408},{"class":149,"line":407},21,[409,414,418],{"type":49,"tag":147,"props":410,"children":411},{"style":192},[412],{"type":55,"value":413},"    maxVersion",{"type":49,"tag":147,"props":415,"children":416},{"style":172},[417],{"type":55,"value":271},{"type":49,"tag":147,"props":419,"children":420},{"style":166},[421],{"type":55,"value":204},{"type":49,"tag":147,"props":423,"children":425},{"class":149,"line":424},22,[426],{"type":49,"tag":147,"props":427,"children":428},{"style":172},[429],{"type":55,"value":430},"  }\n",{"type":49,"tag":147,"props":432,"children":434},{"class":149,"line":433},23,[435],{"type":49,"tag":147,"props":436,"children":437},{"emptyLinePlaceholder":211},[438],{"type":55,"value":214},{"type":49,"tag":147,"props":440,"children":442},{"class":149,"line":441},24,[443],{"type":49,"tag":147,"props":444,"children":445},{"style":182},[446],{"type":55,"value":447},"  \u002F** Plugin import configuration -- enables one-click auto-install *\u002F\n",{"type":49,"tag":147,"props":449,"children":451},{"class":149,"line":450},25,[452,457,461],{"type":49,"tag":147,"props":453,"children":454},{"style":192},[455],{"type":55,"value":456},"  pluginImport",{"type":49,"tag":147,"props":458,"children":459},{"style":172},[460],{"type":55,"value":271},{"type":49,"tag":147,"props":462,"children":463},{"style":172},[464],{"type":55,"value":175},{"type":49,"tag":147,"props":466,"children":468},{"class":149,"line":467},26,[469],{"type":49,"tag":147,"props":470,"children":471},{"style":182},[472],{"type":55,"value":473},"    \u002F** The exact export name to import from the package\n",{"type":49,"tag":147,"props":475,"children":477},{"class":149,"line":476},27,[478],{"type":49,"tag":147,"props":479,"children":480},{"style":182},[481],{"type":55,"value":482},"     *  (e.g., 'FormDevtoolsPlugin' or 'ReactQueryDevtoolsPanel') *\u002F\n",{"type":49,"tag":147,"props":484,"children":486},{"class":149,"line":485},28,[487,492,496],{"type":49,"tag":147,"props":488,"children":489},{"style":192},[490],{"type":55,"value":491},"    importName",{"type":49,"tag":147,"props":493,"children":494},{"style":172},[495],{"type":55,"value":134},{"type":49,"tag":147,"props":497,"children":498},{"style":166},[499],{"type":55,"value":204},{"type":49,"tag":147,"props":501,"children":503},{"class":149,"line":502},29,[504],{"type":49,"tag":147,"props":505,"children":506},{"style":182},[507],{"type":55,"value":508},"    \u002F** 'jsx' = component rendered via { name, render: \u003CComponent \u002F> }\n",{"type":49,"tag":147,"props":510,"children":512},{"class":149,"line":511},30,[513],{"type":49,"tag":147,"props":514,"children":515},{"style":182},[516],{"type":55,"value":517},"     *  'function' = called directly as FnName() in the plugins array *\u002F\n",{"type":49,"tag":147,"props":519,"children":521},{"class":149,"line":520},31,[522,527,531,536,542,547,552,556,561],{"type":49,"tag":147,"props":523,"children":524},{"style":192},[525],{"type":55,"value":526},"    type",{"type":49,"tag":147,"props":528,"children":529},{"style":172},[530],{"type":55,"value":134},{"type":49,"tag":147,"props":532,"children":533},{"style":172},[534],{"type":55,"value":535}," '",{"type":49,"tag":147,"props":537,"children":539},{"style":538},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[540],{"type":55,"value":541},"jsx",{"type":49,"tag":147,"props":543,"children":544},{"style":172},[545],{"type":55,"value":546},"'",{"type":49,"tag":147,"props":548,"children":549},{"style":172},[550],{"type":55,"value":551}," |",{"type":49,"tag":147,"props":553,"children":554},{"style":172},[555],{"type":55,"value":535},{"type":49,"tag":147,"props":557,"children":558},{"style":538},[559],{"type":55,"value":560},"function",{"type":49,"tag":147,"props":562,"children":563},{"style":172},[564],{"type":55,"value":565},"'\n",{"type":49,"tag":147,"props":567,"children":569},{"class":149,"line":568},32,[570],{"type":49,"tag":147,"props":571,"children":572},{"style":172},[573],{"type":55,"value":430},{"type":49,"tag":147,"props":575,"children":577},{"class":149,"line":576},33,[578],{"type":49,"tag":147,"props":579,"children":580},{"emptyLinePlaceholder":211},[581],{"type":55,"value":214},{"type":49,"tag":147,"props":583,"children":585},{"class":149,"line":584},34,[586],{"type":49,"tag":147,"props":587,"children":588},{"style":182},[589],{"type":55,"value":590},"  \u002F** Custom plugin ID for matching against registered plugins.\n",{"type":49,"tag":147,"props":592,"children":594},{"class":149,"line":593},35,[595],{"type":49,"tag":147,"props":596,"children":597},{"style":182},[598],{"type":55,"value":599},"   *  The default behavior lowercases the package name and replaces\n",{"type":49,"tag":147,"props":601,"children":603},{"class":149,"line":602},36,[604],{"type":49,"tag":147,"props":605,"children":606},{"style":182},[607],{"type":55,"value":608},"   *  non-alphanumeric characters with '-'.\n",{"type":49,"tag":147,"props":610,"children":612},{"class":149,"line":611},37,[613],{"type":49,"tag":147,"props":614,"children":615},{"style":182},[616],{"type":55,"value":617},"   *  Example: pluginId: 'tanstack-form' matches 'tanstack-form-4'. *\u002F\n",{"type":49,"tag":147,"props":619,"children":621},{"class":149,"line":620},38,[622,627,631],{"type":49,"tag":147,"props":623,"children":624},{"style":192},[625],{"type":55,"value":626},"  pluginId",{"type":49,"tag":147,"props":628,"children":629},{"style":172},[630],{"type":55,"value":271},{"type":49,"tag":147,"props":632,"children":633},{"style":166},[634],{"type":55,"value":204},{"type":49,"tag":147,"props":636,"children":638},{"class":149,"line":637},39,[639],{"type":49,"tag":147,"props":640,"children":641},{"emptyLinePlaceholder":211},[642],{"type":55,"value":214},{"type":49,"tag":147,"props":644,"children":646},{"class":149,"line":645},40,[647],{"type":49,"tag":147,"props":648,"children":649},{"style":182},[650],{"type":55,"value":651},"  \u002F** URL to the plugin's documentation *\u002F\n",{"type":49,"tag":147,"props":653,"children":655},{"class":149,"line":654},41,[656,661,665],{"type":49,"tag":147,"props":657,"children":658},{"style":192},[659],{"type":55,"value":660},"  docsUrl",{"type":49,"tag":147,"props":662,"children":663},{"style":172},[664],{"type":55,"value":271},{"type":49,"tag":147,"props":666,"children":667},{"style":166},[668],{"type":55,"value":204},{"type":49,"tag":147,"props":670,"children":672},{"class":149,"line":671},42,[673],{"type":49,"tag":147,"props":674,"children":675},{"emptyLinePlaceholder":211},[676],{"type":55,"value":214},{"type":49,"tag":147,"props":678,"children":680},{"class":149,"line":679},43,[681],{"type":49,"tag":147,"props":682,"children":683},{"style":182},[684],{"type":55,"value":685},"  \u002F** Plugin author\u002Fmaintainer *\u002F\n",{"type":49,"tag":147,"props":687,"children":689},{"class":149,"line":688},44,[690,695,699],{"type":49,"tag":147,"props":691,"children":692},{"style":192},[693],{"type":55,"value":694},"  author",{"type":49,"tag":147,"props":696,"children":697},{"style":172},[698],{"type":55,"value":271},{"type":49,"tag":147,"props":700,"children":701},{"style":166},[702],{"type":55,"value":204},{"type":49,"tag":147,"props":704,"children":706},{"class":149,"line":705},45,[707],{"type":49,"tag":147,"props":708,"children":709},{"emptyLinePlaceholder":211},[710],{"type":55,"value":214},{"type":49,"tag":147,"props":712,"children":714},{"class":149,"line":713},46,[715],{"type":49,"tag":147,"props":716,"children":717},{"style":182},[718],{"type":55,"value":719},"  \u002F** Repository URL *\u002F\n",{"type":49,"tag":147,"props":721,"children":723},{"class":149,"line":722},47,[724,729,733],{"type":49,"tag":147,"props":725,"children":726},{"style":192},[727],{"type":55,"value":728},"  repoUrl",{"type":49,"tag":147,"props":730,"children":731},{"style":172},[732],{"type":55,"value":271},{"type":49,"tag":147,"props":734,"children":735},{"style":166},[736],{"type":55,"value":204},{"type":49,"tag":147,"props":738,"children":740},{"class":149,"line":739},48,[741],{"type":49,"tag":147,"props":742,"children":743},{"emptyLinePlaceholder":211},[744],{"type":55,"value":214},{"type":49,"tag":147,"props":746,"children":748},{"class":149,"line":747},49,[749],{"type":49,"tag":147,"props":750,"children":751},{"style":182},[752],{"type":55,"value":753},"  \u002F** Framework this plugin supports *\u002F\n",{"type":49,"tag":147,"props":755,"children":757},{"class":149,"line":756},50,[758,763,767,771,775,779,783,787,792,796,800,804,809,813,817,821,826,830,834,838,843,847,851,855,860],{"type":49,"tag":147,"props":759,"children":760},{"style":192},[761],{"type":55,"value":762},"  framework",{"type":49,"tag":147,"props":764,"children":765},{"style":172},[766],{"type":55,"value":134},{"type":49,"tag":147,"props":768,"children":769},{"style":172},[770],{"type":55,"value":535},{"type":49,"tag":147,"props":772,"children":773},{"style":538},[774],{"type":55,"value":24},{"type":49,"tag":147,"props":776,"children":777},{"style":172},[778],{"type":55,"value":546},{"type":49,"tag":147,"props":780,"children":781},{"style":172},[782],{"type":55,"value":551},{"type":49,"tag":147,"props":784,"children":785},{"style":172},[786],{"type":55,"value":535},{"type":49,"tag":147,"props":788,"children":789},{"style":538},[790],{"type":55,"value":791},"solid",{"type":49,"tag":147,"props":793,"children":794},{"style":172},[795],{"type":55,"value":546},{"type":49,"tag":147,"props":797,"children":798},{"style":172},[799],{"type":55,"value":551},{"type":49,"tag":147,"props":801,"children":802},{"style":172},[803],{"type":55,"value":535},{"type":49,"tag":147,"props":805,"children":806},{"style":538},[807],{"type":55,"value":808},"vue",{"type":49,"tag":147,"props":810,"children":811},{"style":172},[812],{"type":55,"value":546},{"type":49,"tag":147,"props":814,"children":815},{"style":172},[816],{"type":55,"value":551},{"type":49,"tag":147,"props":818,"children":819},{"style":172},[820],{"type":55,"value":535},{"type":49,"tag":147,"props":822,"children":823},{"style":538},[824],{"type":55,"value":825},"svelte",{"type":49,"tag":147,"props":827,"children":828},{"style":172},[829],{"type":55,"value":546},{"type":49,"tag":147,"props":831,"children":832},{"style":172},[833],{"type":55,"value":551},{"type":49,"tag":147,"props":835,"children":836},{"style":172},[837],{"type":55,"value":535},{"type":49,"tag":147,"props":839,"children":840},{"style":538},[841],{"type":55,"value":842},"angular",{"type":49,"tag":147,"props":844,"children":845},{"style":172},[846],{"type":55,"value":546},{"type":49,"tag":147,"props":848,"children":849},{"style":172},[850],{"type":55,"value":551},{"type":49,"tag":147,"props":852,"children":853},{"style":172},[854],{"type":55,"value":535},{"type":49,"tag":147,"props":856,"children":857},{"style":538},[858],{"type":55,"value":859},"other",{"type":49,"tag":147,"props":861,"children":862},{"style":172},[863],{"type":55,"value":565},{"type":49,"tag":147,"props":865,"children":867},{"class":149,"line":866},51,[868],{"type":49,"tag":147,"props":869,"children":870},{"emptyLinePlaceholder":211},[871],{"type":55,"value":214},{"type":49,"tag":147,"props":873,"children":875},{"class":149,"line":874},52,[876],{"type":49,"tag":147,"props":877,"children":878},{"style":182},[879],{"type":55,"value":880},"  \u002F** Mark as featured -- appears in the Featured section with animated border.\n",{"type":49,"tag":147,"props":882,"children":884},{"class":149,"line":883},53,[885],{"type":49,"tag":147,"props":886,"children":887},{"style":182},[888],{"type":55,"value":889},"   *  Reserved for official TanStack partners. *\u002F\n",{"type":49,"tag":147,"props":891,"children":893},{"class":149,"line":892},54,[894,899,903],{"type":49,"tag":147,"props":895,"children":896},{"style":192},[897],{"type":55,"value":898},"  featured",{"type":49,"tag":147,"props":900,"children":901},{"style":172},[902],{"type":55,"value":271},{"type":49,"tag":147,"props":904,"children":905},{"style":166},[906],{"type":55,"value":907}," boolean\n",{"type":49,"tag":147,"props":909,"children":911},{"class":149,"line":910},55,[912],{"type":49,"tag":147,"props":913,"children":914},{"emptyLinePlaceholder":211},[915],{"type":55,"value":214},{"type":49,"tag":147,"props":917,"children":919},{"class":149,"line":918},56,[920],{"type":49,"tag":147,"props":921,"children":922},{"style":182},[923],{"type":55,"value":924},"  \u002F** Mark as new -- shows a \"New\" banner on the card *\u002F\n",{"type":49,"tag":147,"props":926,"children":928},{"class":149,"line":927},57,[929,934,938],{"type":49,"tag":147,"props":930,"children":931},{"style":192},[932],{"type":55,"value":933},"  isNew",{"type":49,"tag":147,"props":935,"children":936},{"style":172},[937],{"type":55,"value":271},{"type":49,"tag":147,"props":939,"children":940},{"style":166},[941],{"type":55,"value":907},{"type":49,"tag":147,"props":943,"children":945},{"class":149,"line":944},58,[946],{"type":49,"tag":147,"props":947,"children":948},{"emptyLinePlaceholder":211},[949],{"type":55,"value":214},{"type":49,"tag":147,"props":951,"children":953},{"class":149,"line":952},59,[954],{"type":49,"tag":147,"props":955,"children":956},{"style":182},[957],{"type":55,"value":958},"  \u002F** Tags for filtering and categorization *\u002F\n",{"type":49,"tag":147,"props":960,"children":962},{"class":149,"line":961},60,[963,968,972,977,982,987],{"type":49,"tag":147,"props":964,"children":965},{"style":192},[966],{"type":55,"value":967},"  tags",{"type":49,"tag":147,"props":969,"children":970},{"style":172},[971],{"type":55,"value":271},{"type":49,"tag":147,"props":973,"children":974},{"style":166},[975],{"type":55,"value":976}," Array",{"type":49,"tag":147,"props":978,"children":979},{"style":172},[980],{"type":55,"value":981},"\u003C",{"type":49,"tag":147,"props":983,"children":984},{"style":166},[985],{"type":55,"value":986},"string",{"type":49,"tag":147,"props":988,"children":989},{"style":172},[990],{"type":55,"value":991},">\n",{"type":49,"tag":147,"props":993,"children":995},{"class":149,"line":994},61,[996],{"type":49,"tag":147,"props":997,"children":998},{"style":172},[999],{"type":55,"value":1000},"}\n",{"type":49,"tag":1002,"props":1003,"children":1005},"h3",{"id":1004},"required-vs-optional-fields",[1006],{"type":55,"value":1007},"Required vs Optional Fields",{"type":49,"tag":62,"props":1009,"children":1010},{},[1011,1013,1019,1021,1027,1029,1035,1037,1043,1044,1050,1051,1057],{"type":55,"value":1012},"Only two fields are strictly required by the TypeScript interface: ",{"type":49,"tag":92,"props":1014,"children":1016},{"className":1015},[],[1017],{"type":55,"value":1018},"packageName",{"type":55,"value":1020},", ",{"type":49,"tag":92,"props":1022,"children":1024},{"className":1023},[],[1025],{"type":55,"value":1026},"title",{"type":55,"value":1028},", and ",{"type":49,"tag":92,"props":1030,"children":1032},{"className":1031},[],[1033],{"type":55,"value":1034},"framework",{"type":55,"value":1036},". In practice, always provide ",{"type":49,"tag":92,"props":1038,"children":1040},{"className":1039},[],[1041],{"type":55,"value":1042},"requires",{"type":55,"value":1020},{"type":49,"tag":92,"props":1045,"children":1047},{"className":1046},[],[1048],{"type":55,"value":1049},"pluginImport",{"type":55,"value":1028},{"type":49,"tag":92,"props":1052,"children":1054},{"className":1053},[],[1055],{"type":55,"value":1056},"description",{"type":55,"value":1058}," -- without them the marketplace card is functional but auto-install cannot wire up the plugin.",{"type":49,"tag":80,"props":1060,"children":1062},{"id":1061},"registry-entry-examples",[1063],{"type":55,"value":1064},"Registry Entry Examples",{"type":49,"tag":1002,"props":1066,"children":1068},{"id":1067},"react-plugin-function-based",[1069],{"type":55,"value":1070},"React Plugin (function-based)",{"type":49,"tag":62,"props":1072,"children":1073},{},[1074,1076,1082,1084,1090],{"type":55,"value":1075},"A function-based plugin exports a factory function that returns a plugin object. The auto-injector calls it as ",{"type":49,"tag":92,"props":1077,"children":1079},{"className":1078},[],[1080],{"type":55,"value":1081},"FormDevtoolsPlugin()",{"type":55,"value":1083}," inside the ",{"type":49,"tag":92,"props":1085,"children":1087},{"className":1086},[],[1088],{"type":55,"value":1089},"plugins",{"type":55,"value":1091}," array:",{"type":49,"tag":136,"props":1093,"children":1095},{"className":138,"code":1094,"language":140,"meta":141,"style":141},"\u002F\u002F In packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fplugin-registry.ts\n\n'@acme\u002Freact-analytics-devtools': {\n  packageName: '@acme\u002Freact-analytics-devtools',\n  title: 'Acme Analytics Devtools',\n  description: 'Inspect analytics events, funnels, and session data',\n  requires: {\n    packageName: '@acme\u002Freact-analytics',\n    minVersion: '2.0.0',\n  },\n  pluginImport: {\n    importName: 'AnalyticsDevtoolsPlugin',\n    type: 'function',\n  },\n  pluginId: 'acme-analytics',\n  docsUrl: 'https:\u002F\u002Facme.dev\u002Fanalytics\u002Fdevtools',\n  repoUrl: 'https:\u002F\u002Fgithub.com\u002Facme\u002Fanalytics',\n  author: 'Acme Corp',\n  framework: 'react',\n  isNew: true,\n  tags: ['Analytics', 'Tracking'],\n},\n",[1096],{"type":49,"tag":92,"props":1097,"children":1098},{"__ignoreMap":141},[1099,1107,1114,1141,1169,1197,1225,1240,1268,1296,1304,1319,1347,1374,1381,1409,1437,1465,1493,1520,1541,1597],{"type":49,"tag":147,"props":1100,"children":1101},{"class":149,"line":150},[1102],{"type":49,"tag":147,"props":1103,"children":1104},{"style":182},[1105],{"type":55,"value":1106},"\u002F\u002F In packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fplugin-registry.ts\n",{"type":49,"tag":147,"props":1108,"children":1109},{"class":149,"line":178},[1110],{"type":49,"tag":147,"props":1111,"children":1112},{"emptyLinePlaceholder":211},[1113],{"type":55,"value":214},{"type":49,"tag":147,"props":1115,"children":1116},{"class":149,"line":188},[1117,1121,1126,1130,1136],{"type":49,"tag":147,"props":1118,"children":1119},{"style":172},[1120],{"type":55,"value":546},{"type":49,"tag":147,"props":1122,"children":1123},{"style":538},[1124],{"type":55,"value":1125},"@acme\u002Freact-analytics-devtools",{"type":49,"tag":147,"props":1127,"children":1128},{"style":172},[1129],{"type":55,"value":546},{"type":49,"tag":147,"props":1131,"children":1133},{"style":1132},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1134],{"type":55,"value":1135},": ",{"type":49,"tag":147,"props":1137,"children":1138},{"style":172},[1139],{"type":55,"value":1140},"{\n",{"type":49,"tag":147,"props":1142,"children":1143},{"class":149,"line":207},[1144,1148,1152,1156,1160,1164],{"type":49,"tag":147,"props":1145,"children":1146},{"style":192},[1147],{"type":55,"value":195},{"type":49,"tag":147,"props":1149,"children":1150},{"style":172},[1151],{"type":55,"value":134},{"type":49,"tag":147,"props":1153,"children":1154},{"style":172},[1155],{"type":55,"value":535},{"type":49,"tag":147,"props":1157,"children":1158},{"style":538},[1159],{"type":55,"value":1125},{"type":49,"tag":147,"props":1161,"children":1162},{"style":172},[1163],{"type":55,"value":546},{"type":49,"tag":147,"props":1165,"children":1166},{"style":172},[1167],{"type":55,"value":1168},",\n",{"type":49,"tag":147,"props":1170,"children":1171},{"class":149,"line":217},[1172,1176,1180,1184,1189,1193],{"type":49,"tag":147,"props":1173,"children":1174},{"style":192},[1175],{"type":55,"value":232},{"type":49,"tag":147,"props":1177,"children":1178},{"style":172},[1179],{"type":55,"value":134},{"type":49,"tag":147,"props":1181,"children":1182},{"style":172},[1183],{"type":55,"value":535},{"type":49,"tag":147,"props":1185,"children":1186},{"style":538},[1187],{"type":55,"value":1188},"Acme Analytics Devtools",{"type":49,"tag":147,"props":1190,"children":1191},{"style":172},[1192],{"type":55,"value":546},{"type":49,"tag":147,"props":1194,"children":1195},{"style":172},[1196],{"type":55,"value":1168},{"type":49,"tag":147,"props":1198,"children":1199},{"class":149,"line":226},[1200,1204,1208,1212,1217,1221],{"type":49,"tag":147,"props":1201,"children":1202},{"style":192},[1203],{"type":55,"value":266},{"type":49,"tag":147,"props":1205,"children":1206},{"style":172},[1207],{"type":55,"value":134},{"type":49,"tag":147,"props":1209,"children":1210},{"style":172},[1211],{"type":55,"value":535},{"type":49,"tag":147,"props":1213,"children":1214},{"style":538},[1215],{"type":55,"value":1216},"Inspect analytics events, funnels, and session data",{"type":49,"tag":147,"props":1218,"children":1219},{"style":172},[1220],{"type":55,"value":546},{"type":49,"tag":147,"props":1222,"children":1223},{"style":172},[1224],{"type":55,"value":1168},{"type":49,"tag":147,"props":1226,"children":1227},{"class":149,"line":243},[1228,1232,1236],{"type":49,"tag":147,"props":1229,"children":1230},{"style":192},[1231],{"type":55,"value":335},{"type":49,"tag":147,"props":1233,"children":1234},{"style":172},[1235],{"type":55,"value":134},{"type":49,"tag":147,"props":1237,"children":1238},{"style":172},[1239],{"type":55,"value":175},{"type":49,"tag":147,"props":1241,"children":1242},{"class":149,"line":251},[1243,1247,1251,1255,1260,1264],{"type":49,"tag":147,"props":1244,"children":1245},{"style":192},[1246],{"type":55,"value":361},{"type":49,"tag":147,"props":1248,"children":1249},{"style":172},[1250],{"type":55,"value":134},{"type":49,"tag":147,"props":1252,"children":1253},{"style":172},[1254],{"type":55,"value":535},{"type":49,"tag":147,"props":1256,"children":1257},{"style":538},[1258],{"type":55,"value":1259},"@acme\u002Freact-analytics",{"type":49,"tag":147,"props":1261,"children":1262},{"style":172},[1263],{"type":55,"value":546},{"type":49,"tag":147,"props":1265,"children":1266},{"style":172},[1267],{"type":55,"value":1168},{"type":49,"tag":147,"props":1269,"children":1270},{"class":149,"line":260},[1271,1275,1279,1283,1288,1292],{"type":49,"tag":147,"props":1272,"children":1273},{"style":192},[1274],{"type":55,"value":387},{"type":49,"tag":147,"props":1276,"children":1277},{"style":172},[1278],{"type":55,"value":134},{"type":49,"tag":147,"props":1280,"children":1281},{"style":172},[1282],{"type":55,"value":535},{"type":49,"tag":147,"props":1284,"children":1285},{"style":538},[1286],{"type":55,"value":1287},"2.0.0",{"type":49,"tag":147,"props":1289,"children":1290},{"style":172},[1291],{"type":55,"value":546},{"type":49,"tag":147,"props":1293,"children":1294},{"style":172},[1295],{"type":55,"value":1168},{"type":49,"tag":147,"props":1297,"children":1298},{"class":149,"line":278},[1299],{"type":49,"tag":147,"props":1300,"children":1301},{"style":172},[1302],{"type":55,"value":1303},"  },\n",{"type":49,"tag":147,"props":1305,"children":1306},{"class":149,"line":286},[1307,1311,1315],{"type":49,"tag":147,"props":1308,"children":1309},{"style":192},[1310],{"type":55,"value":456},{"type":49,"tag":147,"props":1312,"children":1313},{"style":172},[1314],{"type":55,"value":134},{"type":49,"tag":147,"props":1316,"children":1317},{"style":172},[1318],{"type":55,"value":175},{"type":49,"tag":147,"props":1320,"children":1321},{"class":149,"line":295},[1322,1326,1330,1334,1339,1343],{"type":49,"tag":147,"props":1323,"children":1324},{"style":192},[1325],{"type":55,"value":491},{"type":49,"tag":147,"props":1327,"children":1328},{"style":172},[1329],{"type":55,"value":134},{"type":49,"tag":147,"props":1331,"children":1332},{"style":172},[1333],{"type":55,"value":535},{"type":49,"tag":147,"props":1335,"children":1336},{"style":538},[1337],{"type":55,"value":1338},"AnalyticsDevtoolsPlugin",{"type":49,"tag":147,"props":1340,"children":1341},{"style":172},[1342],{"type":55,"value":546},{"type":49,"tag":147,"props":1344,"children":1345},{"style":172},[1346],{"type":55,"value":1168},{"type":49,"tag":147,"props":1348,"children":1349},{"class":149,"line":312},[1350,1354,1358,1362,1366,1370],{"type":49,"tag":147,"props":1351,"children":1352},{"style":192},[1353],{"type":55,"value":526},{"type":49,"tag":147,"props":1355,"children":1356},{"style":172},[1357],{"type":55,"value":134},{"type":49,"tag":147,"props":1359,"children":1360},{"style":172},[1361],{"type":55,"value":535},{"type":49,"tag":147,"props":1363,"children":1364},{"style":538},[1365],{"type":55,"value":560},{"type":49,"tag":147,"props":1367,"children":1368},{"style":172},[1369],{"type":55,"value":546},{"type":49,"tag":147,"props":1371,"children":1372},{"style":172},[1373],{"type":55,"value":1168},{"type":49,"tag":147,"props":1375,"children":1376},{"class":149,"line":320},[1377],{"type":49,"tag":147,"props":1378,"children":1379},{"style":172},[1380],{"type":55,"value":1303},{"type":49,"tag":147,"props":1382,"children":1383},{"class":149,"line":329},[1384,1388,1392,1396,1401,1405],{"type":49,"tag":147,"props":1385,"children":1386},{"style":192},[1387],{"type":55,"value":626},{"type":49,"tag":147,"props":1389,"children":1390},{"style":172},[1391],{"type":55,"value":134},{"type":49,"tag":147,"props":1393,"children":1394},{"style":172},[1395],{"type":55,"value":535},{"type":49,"tag":147,"props":1397,"children":1398},{"style":538},[1399],{"type":55,"value":1400},"acme-analytics",{"type":49,"tag":147,"props":1402,"children":1403},{"style":172},[1404],{"type":55,"value":546},{"type":49,"tag":147,"props":1406,"children":1407},{"style":172},[1408],{"type":55,"value":1168},{"type":49,"tag":147,"props":1410,"children":1411},{"class":149,"line":346},[1412,1416,1420,1424,1429,1433],{"type":49,"tag":147,"props":1413,"children":1414},{"style":192},[1415],{"type":55,"value":660},{"type":49,"tag":147,"props":1417,"children":1418},{"style":172},[1419],{"type":55,"value":134},{"type":49,"tag":147,"props":1421,"children":1422},{"style":172},[1423],{"type":55,"value":535},{"type":49,"tag":147,"props":1425,"children":1426},{"style":538},[1427],{"type":55,"value":1428},"https:\u002F\u002Facme.dev\u002Fanalytics\u002Fdevtools",{"type":49,"tag":147,"props":1430,"children":1431},{"style":172},[1432],{"type":55,"value":546},{"type":49,"tag":147,"props":1434,"children":1435},{"style":172},[1436],{"type":55,"value":1168},{"type":49,"tag":147,"props":1438,"children":1439},{"class":149,"line":355},[1440,1444,1448,1452,1457,1461],{"type":49,"tag":147,"props":1441,"children":1442},{"style":192},[1443],{"type":55,"value":728},{"type":49,"tag":147,"props":1445,"children":1446},{"style":172},[1447],{"type":55,"value":134},{"type":49,"tag":147,"props":1449,"children":1450},{"style":172},[1451],{"type":55,"value":535},{"type":49,"tag":147,"props":1453,"children":1454},{"style":538},[1455],{"type":55,"value":1456},"https:\u002F\u002Fgithub.com\u002Facme\u002Fanalytics",{"type":49,"tag":147,"props":1458,"children":1459},{"style":172},[1460],{"type":55,"value":546},{"type":49,"tag":147,"props":1462,"children":1463},{"style":172},[1464],{"type":55,"value":1168},{"type":49,"tag":147,"props":1466,"children":1467},{"class":149,"line":372},[1468,1472,1476,1480,1485,1489],{"type":49,"tag":147,"props":1469,"children":1470},{"style":192},[1471],{"type":55,"value":694},{"type":49,"tag":147,"props":1473,"children":1474},{"style":172},[1475],{"type":55,"value":134},{"type":49,"tag":147,"props":1477,"children":1478},{"style":172},[1479],{"type":55,"value":535},{"type":49,"tag":147,"props":1481,"children":1482},{"style":538},[1483],{"type":55,"value":1484},"Acme Corp",{"type":49,"tag":147,"props":1486,"children":1487},{"style":172},[1488],{"type":55,"value":546},{"type":49,"tag":147,"props":1490,"children":1491},{"style":172},[1492],{"type":55,"value":1168},{"type":49,"tag":147,"props":1494,"children":1495},{"class":149,"line":381},[1496,1500,1504,1508,1512,1516],{"type":49,"tag":147,"props":1497,"children":1498},{"style":192},[1499],{"type":55,"value":762},{"type":49,"tag":147,"props":1501,"children":1502},{"style":172},[1503],{"type":55,"value":134},{"type":49,"tag":147,"props":1505,"children":1506},{"style":172},[1507],{"type":55,"value":535},{"type":49,"tag":147,"props":1509,"children":1510},{"style":538},[1511],{"type":55,"value":24},{"type":49,"tag":147,"props":1513,"children":1514},{"style":172},[1515],{"type":55,"value":546},{"type":49,"tag":147,"props":1517,"children":1518},{"style":172},[1519],{"type":55,"value":1168},{"type":49,"tag":147,"props":1521,"children":1522},{"class":149,"line":398},[1523,1527,1531,1537],{"type":49,"tag":147,"props":1524,"children":1525},{"style":192},[1526],{"type":55,"value":933},{"type":49,"tag":147,"props":1528,"children":1529},{"style":172},[1530],{"type":55,"value":134},{"type":49,"tag":147,"props":1532,"children":1534},{"style":1533},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[1535],{"type":55,"value":1536}," true",{"type":49,"tag":147,"props":1538,"children":1539},{"style":172},[1540],{"type":55,"value":1168},{"type":49,"tag":147,"props":1542,"children":1543},{"class":149,"line":407},[1544,1548,1552,1557,1561,1566,1570,1575,1579,1584,1588,1593],{"type":49,"tag":147,"props":1545,"children":1546},{"style":192},[1547],{"type":55,"value":967},{"type":49,"tag":147,"props":1549,"children":1550},{"style":172},[1551],{"type":55,"value":134},{"type":49,"tag":147,"props":1553,"children":1554},{"style":1132},[1555],{"type":55,"value":1556}," [",{"type":49,"tag":147,"props":1558,"children":1559},{"style":172},[1560],{"type":55,"value":546},{"type":49,"tag":147,"props":1562,"children":1563},{"style":538},[1564],{"type":55,"value":1565},"Analytics",{"type":49,"tag":147,"props":1567,"children":1568},{"style":172},[1569],{"type":55,"value":546},{"type":49,"tag":147,"props":1571,"children":1572},{"style":172},[1573],{"type":55,"value":1574},",",{"type":49,"tag":147,"props":1576,"children":1577},{"style":172},[1578],{"type":55,"value":535},{"type":49,"tag":147,"props":1580,"children":1581},{"style":538},[1582],{"type":55,"value":1583},"Tracking",{"type":49,"tag":147,"props":1585,"children":1586},{"style":172},[1587],{"type":55,"value":546},{"type":49,"tag":147,"props":1589,"children":1590},{"style":1132},[1591],{"type":55,"value":1592},"]",{"type":49,"tag":147,"props":1594,"children":1595},{"style":172},[1596],{"type":55,"value":1168},{"type":49,"tag":147,"props":1598,"children":1599},{"class":149,"line":424},[1600],{"type":49,"tag":147,"props":1601,"children":1602},{"style":172},[1603],{"type":55,"value":1604},"},\n",{"type":49,"tag":62,"props":1606,"children":1607},{},[1608],{"type":55,"value":1609},"When a user clicks \"Install\" in the marketplace, the Vite plugin:",{"type":49,"tag":1611,"props":1612,"children":1613},"ol",{},[1614,1625,1636,1647],{"type":49,"tag":1615,"props":1616,"children":1617},"li",{},[1618,1620],{"type":55,"value":1619},"Runs the package manager to install ",{"type":49,"tag":92,"props":1621,"children":1623},{"className":1622},[],[1624],{"type":55,"value":1125},{"type":49,"tag":1615,"props":1626,"children":1627},{},[1628,1630],{"type":55,"value":1629},"Finds the file containing ",{"type":49,"tag":92,"props":1631,"children":1633},{"className":1632},[],[1634],{"type":55,"value":1635},"\u003CTanStackDevtools \u002F>",{"type":49,"tag":1615,"props":1637,"children":1638},{},[1639,1641],{"type":55,"value":1640},"Adds ",{"type":49,"tag":92,"props":1642,"children":1644},{"className":1643},[],[1645],{"type":55,"value":1646},"import { AnalyticsDevtoolsPlugin } from '@acme\u002Freact-analytics-devtools'",{"type":49,"tag":1615,"props":1648,"children":1649},{},[1650,1652,1658,1660,1665],{"type":55,"value":1651},"Injects ",{"type":49,"tag":92,"props":1653,"children":1655},{"className":1654},[],[1656],{"type":55,"value":1657},"AnalyticsDevtoolsPlugin()",{"type":55,"value":1659}," into the ",{"type":49,"tag":92,"props":1661,"children":1663},{"className":1662},[],[1664],{"type":55,"value":1089},{"type":55,"value":1666}," array",{"type":49,"tag":1002,"props":1668,"children":1670},{"id":1669},"react-plugin-jsx-based",[1671],{"type":55,"value":1672},"React Plugin (JSX-based)",{"type":49,"tag":62,"props":1674,"children":1675},{},[1676,1678,1684],{"type":55,"value":1677},"A JSX-based plugin exports a React component. The auto-injector wraps it in ",{"type":49,"tag":92,"props":1679,"children":1681},{"className":1680},[],[1682],{"type":55,"value":1683},"{ name, render: \u003CComponent \u002F> }",{"type":55,"value":134},{"type":49,"tag":136,"props":1686,"children":1688},{"className":138,"code":1687,"language":140,"meta":141,"style":141},"'@acme\u002Freact-state-devtools': {\n  packageName: '@acme\u002Freact-state-devtools',\n  title: 'Acme State Inspector',\n  description: 'Real-time state tree visualization',\n  requires: {\n    packageName: '@acme\u002Freact-state',\n    minVersion: '1.5.0',\n  },\n  pluginImport: {\n    importName: 'AcmeStateDevtoolsPanel',\n    type: 'jsx',\n  },\n  author: 'Acme Corp',\n  framework: 'react',\n  tags: ['State Management'],\n},\n",[1689],{"type":49,"tag":92,"props":1690,"children":1691},{"__ignoreMap":141},[1692,1716,1743,1771,1799,1814,1842,1870,1877,1892,1920,1947,1954,1981,2008,2044],{"type":49,"tag":147,"props":1693,"children":1694},{"class":149,"line":150},[1695,1699,1704,1708,1712],{"type":49,"tag":147,"props":1696,"children":1697},{"style":172},[1698],{"type":55,"value":546},{"type":49,"tag":147,"props":1700,"children":1701},{"style":538},[1702],{"type":55,"value":1703},"@acme\u002Freact-state-devtools",{"type":49,"tag":147,"props":1705,"children":1706},{"style":172},[1707],{"type":55,"value":546},{"type":49,"tag":147,"props":1709,"children":1710},{"style":1132},[1711],{"type":55,"value":1135},{"type":49,"tag":147,"props":1713,"children":1714},{"style":172},[1715],{"type":55,"value":1140},{"type":49,"tag":147,"props":1717,"children":1718},{"class":149,"line":178},[1719,1723,1727,1731,1735,1739],{"type":49,"tag":147,"props":1720,"children":1721},{"style":192},[1722],{"type":55,"value":195},{"type":49,"tag":147,"props":1724,"children":1725},{"style":172},[1726],{"type":55,"value":134},{"type":49,"tag":147,"props":1728,"children":1729},{"style":172},[1730],{"type":55,"value":535},{"type":49,"tag":147,"props":1732,"children":1733},{"style":538},[1734],{"type":55,"value":1703},{"type":49,"tag":147,"props":1736,"children":1737},{"style":172},[1738],{"type":55,"value":546},{"type":49,"tag":147,"props":1740,"children":1741},{"style":172},[1742],{"type":55,"value":1168},{"type":49,"tag":147,"props":1744,"children":1745},{"class":149,"line":188},[1746,1750,1754,1758,1763,1767],{"type":49,"tag":147,"props":1747,"children":1748},{"style":192},[1749],{"type":55,"value":232},{"type":49,"tag":147,"props":1751,"children":1752},{"style":172},[1753],{"type":55,"value":134},{"type":49,"tag":147,"props":1755,"children":1756},{"style":172},[1757],{"type":55,"value":535},{"type":49,"tag":147,"props":1759,"children":1760},{"style":538},[1761],{"type":55,"value":1762},"Acme State Inspector",{"type":49,"tag":147,"props":1764,"children":1765},{"style":172},[1766],{"type":55,"value":546},{"type":49,"tag":147,"props":1768,"children":1769},{"style":172},[1770],{"type":55,"value":1168},{"type":49,"tag":147,"props":1772,"children":1773},{"class":149,"line":207},[1774,1778,1782,1786,1791,1795],{"type":49,"tag":147,"props":1775,"children":1776},{"style":192},[1777],{"type":55,"value":266},{"type":49,"tag":147,"props":1779,"children":1780},{"style":172},[1781],{"type":55,"value":134},{"type":49,"tag":147,"props":1783,"children":1784},{"style":172},[1785],{"type":55,"value":535},{"type":49,"tag":147,"props":1787,"children":1788},{"style":538},[1789],{"type":55,"value":1790},"Real-time state tree visualization",{"type":49,"tag":147,"props":1792,"children":1793},{"style":172},[1794],{"type":55,"value":546},{"type":49,"tag":147,"props":1796,"children":1797},{"style":172},[1798],{"type":55,"value":1168},{"type":49,"tag":147,"props":1800,"children":1801},{"class":149,"line":217},[1802,1806,1810],{"type":49,"tag":147,"props":1803,"children":1804},{"style":192},[1805],{"type":55,"value":335},{"type":49,"tag":147,"props":1807,"children":1808},{"style":172},[1809],{"type":55,"value":134},{"type":49,"tag":147,"props":1811,"children":1812},{"style":172},[1813],{"type":55,"value":175},{"type":49,"tag":147,"props":1815,"children":1816},{"class":149,"line":226},[1817,1821,1825,1829,1834,1838],{"type":49,"tag":147,"props":1818,"children":1819},{"style":192},[1820],{"type":55,"value":361},{"type":49,"tag":147,"props":1822,"children":1823},{"style":172},[1824],{"type":55,"value":134},{"type":49,"tag":147,"props":1826,"children":1827},{"style":172},[1828],{"type":55,"value":535},{"type":49,"tag":147,"props":1830,"children":1831},{"style":538},[1832],{"type":55,"value":1833},"@acme\u002Freact-state",{"type":49,"tag":147,"props":1835,"children":1836},{"style":172},[1837],{"type":55,"value":546},{"type":49,"tag":147,"props":1839,"children":1840},{"style":172},[1841],{"type":55,"value":1168},{"type":49,"tag":147,"props":1843,"children":1844},{"class":149,"line":243},[1845,1849,1853,1857,1862,1866],{"type":49,"tag":147,"props":1846,"children":1847},{"style":192},[1848],{"type":55,"value":387},{"type":49,"tag":147,"props":1850,"children":1851},{"style":172},[1852],{"type":55,"value":134},{"type":49,"tag":147,"props":1854,"children":1855},{"style":172},[1856],{"type":55,"value":535},{"type":49,"tag":147,"props":1858,"children":1859},{"style":538},[1860],{"type":55,"value":1861},"1.5.0",{"type":49,"tag":147,"props":1863,"children":1864},{"style":172},[1865],{"type":55,"value":546},{"type":49,"tag":147,"props":1867,"children":1868},{"style":172},[1869],{"type":55,"value":1168},{"type":49,"tag":147,"props":1871,"children":1872},{"class":149,"line":251},[1873],{"type":49,"tag":147,"props":1874,"children":1875},{"style":172},[1876],{"type":55,"value":1303},{"type":49,"tag":147,"props":1878,"children":1879},{"class":149,"line":260},[1880,1884,1888],{"type":49,"tag":147,"props":1881,"children":1882},{"style":192},[1883],{"type":55,"value":456},{"type":49,"tag":147,"props":1885,"children":1886},{"style":172},[1887],{"type":55,"value":134},{"type":49,"tag":147,"props":1889,"children":1890},{"style":172},[1891],{"type":55,"value":175},{"type":49,"tag":147,"props":1893,"children":1894},{"class":149,"line":278},[1895,1899,1903,1907,1912,1916],{"type":49,"tag":147,"props":1896,"children":1897},{"style":192},[1898],{"type":55,"value":491},{"type":49,"tag":147,"props":1900,"children":1901},{"style":172},[1902],{"type":55,"value":134},{"type":49,"tag":147,"props":1904,"children":1905},{"style":172},[1906],{"type":55,"value":535},{"type":49,"tag":147,"props":1908,"children":1909},{"style":538},[1910],{"type":55,"value":1911},"AcmeStateDevtoolsPanel",{"type":49,"tag":147,"props":1913,"children":1914},{"style":172},[1915],{"type":55,"value":546},{"type":49,"tag":147,"props":1917,"children":1918},{"style":172},[1919],{"type":55,"value":1168},{"type":49,"tag":147,"props":1921,"children":1922},{"class":149,"line":286},[1923,1927,1931,1935,1939,1943],{"type":49,"tag":147,"props":1924,"children":1925},{"style":192},[1926],{"type":55,"value":526},{"type":49,"tag":147,"props":1928,"children":1929},{"style":172},[1930],{"type":55,"value":134},{"type":49,"tag":147,"props":1932,"children":1933},{"style":172},[1934],{"type":55,"value":535},{"type":49,"tag":147,"props":1936,"children":1937},{"style":538},[1938],{"type":55,"value":541},{"type":49,"tag":147,"props":1940,"children":1941},{"style":172},[1942],{"type":55,"value":546},{"type":49,"tag":147,"props":1944,"children":1945},{"style":172},[1946],{"type":55,"value":1168},{"type":49,"tag":147,"props":1948,"children":1949},{"class":149,"line":295},[1950],{"type":49,"tag":147,"props":1951,"children":1952},{"style":172},[1953],{"type":55,"value":1303},{"type":49,"tag":147,"props":1955,"children":1956},{"class":149,"line":312},[1957,1961,1965,1969,1973,1977],{"type":49,"tag":147,"props":1958,"children":1959},{"style":192},[1960],{"type":55,"value":694},{"type":49,"tag":147,"props":1962,"children":1963},{"style":172},[1964],{"type":55,"value":134},{"type":49,"tag":147,"props":1966,"children":1967},{"style":172},[1968],{"type":55,"value":535},{"type":49,"tag":147,"props":1970,"children":1971},{"style":538},[1972],{"type":55,"value":1484},{"type":49,"tag":147,"props":1974,"children":1975},{"style":172},[1976],{"type":55,"value":546},{"type":49,"tag":147,"props":1978,"children":1979},{"style":172},[1980],{"type":55,"value":1168},{"type":49,"tag":147,"props":1982,"children":1983},{"class":149,"line":320},[1984,1988,1992,1996,2000,2004],{"type":49,"tag":147,"props":1985,"children":1986},{"style":192},[1987],{"type":55,"value":762},{"type":49,"tag":147,"props":1989,"children":1990},{"style":172},[1991],{"type":55,"value":134},{"type":49,"tag":147,"props":1993,"children":1994},{"style":172},[1995],{"type":55,"value":535},{"type":49,"tag":147,"props":1997,"children":1998},{"style":538},[1999],{"type":55,"value":24},{"type":49,"tag":147,"props":2001,"children":2002},{"style":172},[2003],{"type":55,"value":546},{"type":49,"tag":147,"props":2005,"children":2006},{"style":172},[2007],{"type":55,"value":1168},{"type":49,"tag":147,"props":2009,"children":2010},{"class":149,"line":329},[2011,2015,2019,2023,2027,2032,2036,2040],{"type":49,"tag":147,"props":2012,"children":2013},{"style":192},[2014],{"type":55,"value":967},{"type":49,"tag":147,"props":2016,"children":2017},{"style":172},[2018],{"type":55,"value":134},{"type":49,"tag":147,"props":2020,"children":2021},{"style":1132},[2022],{"type":55,"value":1556},{"type":49,"tag":147,"props":2024,"children":2025},{"style":172},[2026],{"type":55,"value":546},{"type":49,"tag":147,"props":2028,"children":2029},{"style":538},[2030],{"type":55,"value":2031},"State Management",{"type":49,"tag":147,"props":2033,"children":2034},{"style":172},[2035],{"type":55,"value":546},{"type":49,"tag":147,"props":2037,"children":2038},{"style":1132},[2039],{"type":55,"value":1592},{"type":49,"tag":147,"props":2041,"children":2042},{"style":172},[2043],{"type":55,"value":1168},{"type":49,"tag":147,"props":2045,"children":2046},{"class":149,"line":346},[2047],{"type":49,"tag":147,"props":2048,"children":2049},{"style":172},[2050],{"type":55,"value":1604},{"type":49,"tag":62,"props":2052,"children":2053},{},[2054],{"type":55,"value":2055},"The injected code looks like:",{"type":49,"tag":136,"props":2057,"children":2061},{"className":2058,"code":2059,"language":2060,"meta":141,"style":141},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { AcmeStateDevtoolsPanel } from '@acme\u002Freact-state-devtools'\n;\u003CTanStackDevtools\n  plugins={[\n    { name: 'Acme State Inspector', render: \u003CAcmeStateDevtoolsPanel \u002F> },\n  ]}\n\u002F>\n","tsx",[2062],{"type":49,"tag":92,"props":2063,"children":2064},{"__ignoreMap":141},[2065,2105,2118,2136,2197,2205],{"type":49,"tag":147,"props":2066,"children":2067},{"class":149,"line":150},[2068,2073,2078,2083,2088,2093,2097,2101],{"type":49,"tag":147,"props":2069,"children":2070},{"style":154},[2071],{"type":55,"value":2072},"import",{"type":49,"tag":147,"props":2074,"children":2075},{"style":172},[2076],{"type":55,"value":2077}," {",{"type":49,"tag":147,"props":2079,"children":2080},{"style":1132},[2081],{"type":55,"value":2082}," AcmeStateDevtoolsPanel",{"type":49,"tag":147,"props":2084,"children":2085},{"style":172},[2086],{"type":55,"value":2087}," }",{"type":49,"tag":147,"props":2089,"children":2090},{"style":154},[2091],{"type":55,"value":2092}," from",{"type":49,"tag":147,"props":2094,"children":2095},{"style":172},[2096],{"type":55,"value":535},{"type":49,"tag":147,"props":2098,"children":2099},{"style":538},[2100],{"type":55,"value":1703},{"type":49,"tag":147,"props":2102,"children":2103},{"style":172},[2104],{"type":55,"value":565},{"type":49,"tag":147,"props":2106,"children":2107},{"class":149,"line":178},[2108,2113],{"type":49,"tag":147,"props":2109,"children":2110},{"style":172},[2111],{"type":55,"value":2112},";\u003C",{"type":49,"tag":147,"props":2114,"children":2115},{"style":1132},[2116],{"type":55,"value":2117},"TanStackDevtools\n",{"type":49,"tag":147,"props":2119,"children":2120},{"class":149,"line":188},[2121,2126,2131],{"type":49,"tag":147,"props":2122,"children":2123},{"style":1132},[2124],{"type":55,"value":2125},"  plugins",{"type":49,"tag":147,"props":2127,"children":2128},{"style":172},[2129],{"type":55,"value":2130},"={",{"type":49,"tag":147,"props":2132,"children":2133},{"style":192},[2134],{"type":55,"value":2135},"[\n",{"type":49,"tag":147,"props":2137,"children":2138},{"class":149,"line":207},[2139,2144,2149,2153,2157,2161,2165,2169,2174,2178,2183,2187,2192],{"type":49,"tag":147,"props":2140,"children":2141},{"style":172},[2142],{"type":55,"value":2143},"    {",{"type":49,"tag":147,"props":2145,"children":2146},{"style":192},[2147],{"type":55,"value":2148}," name",{"type":49,"tag":147,"props":2150,"children":2151},{"style":172},[2152],{"type":55,"value":134},{"type":49,"tag":147,"props":2154,"children":2155},{"style":172},[2156],{"type":55,"value":535},{"type":49,"tag":147,"props":2158,"children":2159},{"style":192},[2160],{"type":55,"value":1762},{"type":49,"tag":147,"props":2162,"children":2163},{"style":172},[2164],{"type":55,"value":546},{"type":49,"tag":147,"props":2166,"children":2167},{"style":172},[2168],{"type":55,"value":1574},{"type":49,"tag":147,"props":2170,"children":2171},{"style":192},[2172],{"type":55,"value":2173}," render",{"type":49,"tag":147,"props":2175,"children":2176},{"style":172},[2177],{"type":55,"value":134},{"type":49,"tag":147,"props":2179,"children":2180},{"style":172},[2181],{"type":55,"value":2182}," \u003C",{"type":49,"tag":147,"props":2184,"children":2185},{"style":166},[2186],{"type":55,"value":1911},{"type":49,"tag":147,"props":2188,"children":2189},{"style":172},[2190],{"type":55,"value":2191}," \u002F>",{"type":49,"tag":147,"props":2193,"children":2194},{"style":172},[2195],{"type":55,"value":2196}," },\n",{"type":49,"tag":147,"props":2198,"children":2199},{"class":149,"line":217},[2200],{"type":49,"tag":147,"props":2201,"children":2202},{"style":192},[2203],{"type":55,"value":2204},"  ]}\n",{"type":49,"tag":147,"props":2206,"children":2207},{"class":149,"line":226},[2208],{"type":49,"tag":147,"props":2209,"children":2210},{"style":192},[2211],{"type":55,"value":2212},"\u002F>\n",{"type":49,"tag":1002,"props":2214,"children":2216},{"id":2215},"multi-framework-submission-react-solid",[2217],{"type":55,"value":2218},"Multi-Framework Submission (React + Solid)",{"type":49,"tag":62,"props":2220,"children":2221},{},[2222],{"type":55,"value":2223},"When your devtools package supports multiple frameworks, add one entry per framework. Each entry is keyed by its own npm package name:",{"type":49,"tag":136,"props":2225,"children":2227},{"className":138,"code":2226,"language":140,"meta":141,"style":141},"'@acme\u002Freact-analytics-devtools': {\n  packageName: '@acme\u002Freact-analytics-devtools',\n  title: 'Acme Analytics Devtools',\n  description: 'Inspect analytics events, funnels, and session data',\n  requires: {\n    packageName: '@acme\u002Freact-analytics',\n    minVersion: '2.0.0',\n  },\n  pluginImport: {\n    importName: 'AnalyticsDevtoolsPlugin',\n    type: 'function',\n  },\n  pluginId: 'acme-analytics',\n  author: 'Acme Corp',\n  framework: 'react',\n  isNew: true,\n  tags: ['Analytics', 'Tracking'],\n},\n'@acme\u002Fsolid-analytics-devtools': {\n  packageName: '@acme\u002Fsolid-analytics-devtools',\n  title: 'Acme Analytics Devtools',\n  description: 'Inspect analytics events, funnels, and session data',\n  requires: {\n    packageName: '@acme\u002Fsolid-analytics',\n    minVersion: '2.0.0',\n  },\n  pluginImport: {\n    importName: 'AnalyticsDevtoolsPlugin',\n    type: 'function',\n  },\n  pluginId: 'acme-analytics',\n  author: 'Acme Corp',\n  framework: 'solid',\n  isNew: true,\n  tags: ['Analytics', 'Tracking'],\n},\n",[2228],{"type":49,"tag":92,"props":2229,"children":2230},{"__ignoreMap":141},[2231,2254,2281,2308,2335,2350,2377,2404,2411,2426,2453,2480,2487,2514,2541,2568,2587,2638,2645,2669,2696,2723,2750,2765,2793,2820,2827,2842,2869,2896,2903,2930,2957,2984,3003,3054],{"type":49,"tag":147,"props":2232,"children":2233},{"class":149,"line":150},[2234,2238,2242,2246,2250],{"type":49,"tag":147,"props":2235,"children":2236},{"style":172},[2237],{"type":55,"value":546},{"type":49,"tag":147,"props":2239,"children":2240},{"style":538},[2241],{"type":55,"value":1125},{"type":49,"tag":147,"props":2243,"children":2244},{"style":172},[2245],{"type":55,"value":546},{"type":49,"tag":147,"props":2247,"children":2248},{"style":1132},[2249],{"type":55,"value":1135},{"type":49,"tag":147,"props":2251,"children":2252},{"style":172},[2253],{"type":55,"value":1140},{"type":49,"tag":147,"props":2255,"children":2256},{"class":149,"line":178},[2257,2261,2265,2269,2273,2277],{"type":49,"tag":147,"props":2258,"children":2259},{"style":192},[2260],{"type":55,"value":195},{"type":49,"tag":147,"props":2262,"children":2263},{"style":172},[2264],{"type":55,"value":134},{"type":49,"tag":147,"props":2266,"children":2267},{"style":172},[2268],{"type":55,"value":535},{"type":49,"tag":147,"props":2270,"children":2271},{"style":538},[2272],{"type":55,"value":1125},{"type":49,"tag":147,"props":2274,"children":2275},{"style":172},[2276],{"type":55,"value":546},{"type":49,"tag":147,"props":2278,"children":2279},{"style":172},[2280],{"type":55,"value":1168},{"type":49,"tag":147,"props":2282,"children":2283},{"class":149,"line":188},[2284,2288,2292,2296,2300,2304],{"type":49,"tag":147,"props":2285,"children":2286},{"style":192},[2287],{"type":55,"value":232},{"type":49,"tag":147,"props":2289,"children":2290},{"style":172},[2291],{"type":55,"value":134},{"type":49,"tag":147,"props":2293,"children":2294},{"style":172},[2295],{"type":55,"value":535},{"type":49,"tag":147,"props":2297,"children":2298},{"style":538},[2299],{"type":55,"value":1188},{"type":49,"tag":147,"props":2301,"children":2302},{"style":172},[2303],{"type":55,"value":546},{"type":49,"tag":147,"props":2305,"children":2306},{"style":172},[2307],{"type":55,"value":1168},{"type":49,"tag":147,"props":2309,"children":2310},{"class":149,"line":207},[2311,2315,2319,2323,2327,2331],{"type":49,"tag":147,"props":2312,"children":2313},{"style":192},[2314],{"type":55,"value":266},{"type":49,"tag":147,"props":2316,"children":2317},{"style":172},[2318],{"type":55,"value":134},{"type":49,"tag":147,"props":2320,"children":2321},{"style":172},[2322],{"type":55,"value":535},{"type":49,"tag":147,"props":2324,"children":2325},{"style":538},[2326],{"type":55,"value":1216},{"type":49,"tag":147,"props":2328,"children":2329},{"style":172},[2330],{"type":55,"value":546},{"type":49,"tag":147,"props":2332,"children":2333},{"style":172},[2334],{"type":55,"value":1168},{"type":49,"tag":147,"props":2336,"children":2337},{"class":149,"line":217},[2338,2342,2346],{"type":49,"tag":147,"props":2339,"children":2340},{"style":192},[2341],{"type":55,"value":335},{"type":49,"tag":147,"props":2343,"children":2344},{"style":172},[2345],{"type":55,"value":134},{"type":49,"tag":147,"props":2347,"children":2348},{"style":172},[2349],{"type":55,"value":175},{"type":49,"tag":147,"props":2351,"children":2352},{"class":149,"line":226},[2353,2357,2361,2365,2369,2373],{"type":49,"tag":147,"props":2354,"children":2355},{"style":192},[2356],{"type":55,"value":361},{"type":49,"tag":147,"props":2358,"children":2359},{"style":172},[2360],{"type":55,"value":134},{"type":49,"tag":147,"props":2362,"children":2363},{"style":172},[2364],{"type":55,"value":535},{"type":49,"tag":147,"props":2366,"children":2367},{"style":538},[2368],{"type":55,"value":1259},{"type":49,"tag":147,"props":2370,"children":2371},{"style":172},[2372],{"type":55,"value":546},{"type":49,"tag":147,"props":2374,"children":2375},{"style":172},[2376],{"type":55,"value":1168},{"type":49,"tag":147,"props":2378,"children":2379},{"class":149,"line":243},[2380,2384,2388,2392,2396,2400],{"type":49,"tag":147,"props":2381,"children":2382},{"style":192},[2383],{"type":55,"value":387},{"type":49,"tag":147,"props":2385,"children":2386},{"style":172},[2387],{"type":55,"value":134},{"type":49,"tag":147,"props":2389,"children":2390},{"style":172},[2391],{"type":55,"value":535},{"type":49,"tag":147,"props":2393,"children":2394},{"style":538},[2395],{"type":55,"value":1287},{"type":49,"tag":147,"props":2397,"children":2398},{"style":172},[2399],{"type":55,"value":546},{"type":49,"tag":147,"props":2401,"children":2402},{"style":172},[2403],{"type":55,"value":1168},{"type":49,"tag":147,"props":2405,"children":2406},{"class":149,"line":251},[2407],{"type":49,"tag":147,"props":2408,"children":2409},{"style":172},[2410],{"type":55,"value":1303},{"type":49,"tag":147,"props":2412,"children":2413},{"class":149,"line":260},[2414,2418,2422],{"type":49,"tag":147,"props":2415,"children":2416},{"style":192},[2417],{"type":55,"value":456},{"type":49,"tag":147,"props":2419,"children":2420},{"style":172},[2421],{"type":55,"value":134},{"type":49,"tag":147,"props":2423,"children":2424},{"style":172},[2425],{"type":55,"value":175},{"type":49,"tag":147,"props":2427,"children":2428},{"class":149,"line":278},[2429,2433,2437,2441,2445,2449],{"type":49,"tag":147,"props":2430,"children":2431},{"style":192},[2432],{"type":55,"value":491},{"type":49,"tag":147,"props":2434,"children":2435},{"style":172},[2436],{"type":55,"value":134},{"type":49,"tag":147,"props":2438,"children":2439},{"style":172},[2440],{"type":55,"value":535},{"type":49,"tag":147,"props":2442,"children":2443},{"style":538},[2444],{"type":55,"value":1338},{"type":49,"tag":147,"props":2446,"children":2447},{"style":172},[2448],{"type":55,"value":546},{"type":49,"tag":147,"props":2450,"children":2451},{"style":172},[2452],{"type":55,"value":1168},{"type":49,"tag":147,"props":2454,"children":2455},{"class":149,"line":286},[2456,2460,2464,2468,2472,2476],{"type":49,"tag":147,"props":2457,"children":2458},{"style":192},[2459],{"type":55,"value":526},{"type":49,"tag":147,"props":2461,"children":2462},{"style":172},[2463],{"type":55,"value":134},{"type":49,"tag":147,"props":2465,"children":2466},{"style":172},[2467],{"type":55,"value":535},{"type":49,"tag":147,"props":2469,"children":2470},{"style":538},[2471],{"type":55,"value":560},{"type":49,"tag":147,"props":2473,"children":2474},{"style":172},[2475],{"type":55,"value":546},{"type":49,"tag":147,"props":2477,"children":2478},{"style":172},[2479],{"type":55,"value":1168},{"type":49,"tag":147,"props":2481,"children":2482},{"class":149,"line":295},[2483],{"type":49,"tag":147,"props":2484,"children":2485},{"style":172},[2486],{"type":55,"value":1303},{"type":49,"tag":147,"props":2488,"children":2489},{"class":149,"line":312},[2490,2494,2498,2502,2506,2510],{"type":49,"tag":147,"props":2491,"children":2492},{"style":192},[2493],{"type":55,"value":626},{"type":49,"tag":147,"props":2495,"children":2496},{"style":172},[2497],{"type":55,"value":134},{"type":49,"tag":147,"props":2499,"children":2500},{"style":172},[2501],{"type":55,"value":535},{"type":49,"tag":147,"props":2503,"children":2504},{"style":538},[2505],{"type":55,"value":1400},{"type":49,"tag":147,"props":2507,"children":2508},{"style":172},[2509],{"type":55,"value":546},{"type":49,"tag":147,"props":2511,"children":2512},{"style":172},[2513],{"type":55,"value":1168},{"type":49,"tag":147,"props":2515,"children":2516},{"class":149,"line":320},[2517,2521,2525,2529,2533,2537],{"type":49,"tag":147,"props":2518,"children":2519},{"style":192},[2520],{"type":55,"value":694},{"type":49,"tag":147,"props":2522,"children":2523},{"style":172},[2524],{"type":55,"value":134},{"type":49,"tag":147,"props":2526,"children":2527},{"style":172},[2528],{"type":55,"value":535},{"type":49,"tag":147,"props":2530,"children":2531},{"style":538},[2532],{"type":55,"value":1484},{"type":49,"tag":147,"props":2534,"children":2535},{"style":172},[2536],{"type":55,"value":546},{"type":49,"tag":147,"props":2538,"children":2539},{"style":172},[2540],{"type":55,"value":1168},{"type":49,"tag":147,"props":2542,"children":2543},{"class":149,"line":329},[2544,2548,2552,2556,2560,2564],{"type":49,"tag":147,"props":2545,"children":2546},{"style":192},[2547],{"type":55,"value":762},{"type":49,"tag":147,"props":2549,"children":2550},{"style":172},[2551],{"type":55,"value":134},{"type":49,"tag":147,"props":2553,"children":2554},{"style":172},[2555],{"type":55,"value":535},{"type":49,"tag":147,"props":2557,"children":2558},{"style":538},[2559],{"type":55,"value":24},{"type":49,"tag":147,"props":2561,"children":2562},{"style":172},[2563],{"type":55,"value":546},{"type":49,"tag":147,"props":2565,"children":2566},{"style":172},[2567],{"type":55,"value":1168},{"type":49,"tag":147,"props":2569,"children":2570},{"class":149,"line":346},[2571,2575,2579,2583],{"type":49,"tag":147,"props":2572,"children":2573},{"style":192},[2574],{"type":55,"value":933},{"type":49,"tag":147,"props":2576,"children":2577},{"style":172},[2578],{"type":55,"value":134},{"type":49,"tag":147,"props":2580,"children":2581},{"style":1533},[2582],{"type":55,"value":1536},{"type":49,"tag":147,"props":2584,"children":2585},{"style":172},[2586],{"type":55,"value":1168},{"type":49,"tag":147,"props":2588,"children":2589},{"class":149,"line":355},[2590,2594,2598,2602,2606,2610,2614,2618,2622,2626,2630,2634],{"type":49,"tag":147,"props":2591,"children":2592},{"style":192},[2593],{"type":55,"value":967},{"type":49,"tag":147,"props":2595,"children":2596},{"style":172},[2597],{"type":55,"value":134},{"type":49,"tag":147,"props":2599,"children":2600},{"style":1132},[2601],{"type":55,"value":1556},{"type":49,"tag":147,"props":2603,"children":2604},{"style":172},[2605],{"type":55,"value":546},{"type":49,"tag":147,"props":2607,"children":2608},{"style":538},[2609],{"type":55,"value":1565},{"type":49,"tag":147,"props":2611,"children":2612},{"style":172},[2613],{"type":55,"value":546},{"type":49,"tag":147,"props":2615,"children":2616},{"style":172},[2617],{"type":55,"value":1574},{"type":49,"tag":147,"props":2619,"children":2620},{"style":172},[2621],{"type":55,"value":535},{"type":49,"tag":147,"props":2623,"children":2624},{"style":538},[2625],{"type":55,"value":1583},{"type":49,"tag":147,"props":2627,"children":2628},{"style":172},[2629],{"type":55,"value":546},{"type":49,"tag":147,"props":2631,"children":2632},{"style":1132},[2633],{"type":55,"value":1592},{"type":49,"tag":147,"props":2635,"children":2636},{"style":172},[2637],{"type":55,"value":1168},{"type":49,"tag":147,"props":2639,"children":2640},{"class":149,"line":372},[2641],{"type":49,"tag":147,"props":2642,"children":2643},{"style":172},[2644],{"type":55,"value":1604},{"type":49,"tag":147,"props":2646,"children":2647},{"class":149,"line":381},[2648,2652,2657,2661,2665],{"type":49,"tag":147,"props":2649,"children":2650},{"style":172},[2651],{"type":55,"value":546},{"type":49,"tag":147,"props":2653,"children":2654},{"style":538},[2655],{"type":55,"value":2656},"@acme\u002Fsolid-analytics-devtools",{"type":49,"tag":147,"props":2658,"children":2659},{"style":172},[2660],{"type":55,"value":546},{"type":49,"tag":147,"props":2662,"children":2663},{"style":1132},[2664],{"type":55,"value":1135},{"type":49,"tag":147,"props":2666,"children":2667},{"style":172},[2668],{"type":55,"value":1140},{"type":49,"tag":147,"props":2670,"children":2671},{"class":149,"line":398},[2672,2676,2680,2684,2688,2692],{"type":49,"tag":147,"props":2673,"children":2674},{"style":192},[2675],{"type":55,"value":195},{"type":49,"tag":147,"props":2677,"children":2678},{"style":172},[2679],{"type":55,"value":134},{"type":49,"tag":147,"props":2681,"children":2682},{"style":172},[2683],{"type":55,"value":535},{"type":49,"tag":147,"props":2685,"children":2686},{"style":538},[2687],{"type":55,"value":2656},{"type":49,"tag":147,"props":2689,"children":2690},{"style":172},[2691],{"type":55,"value":546},{"type":49,"tag":147,"props":2693,"children":2694},{"style":172},[2695],{"type":55,"value":1168},{"type":49,"tag":147,"props":2697,"children":2698},{"class":149,"line":407},[2699,2703,2707,2711,2715,2719],{"type":49,"tag":147,"props":2700,"children":2701},{"style":192},[2702],{"type":55,"value":232},{"type":49,"tag":147,"props":2704,"children":2705},{"style":172},[2706],{"type":55,"value":134},{"type":49,"tag":147,"props":2708,"children":2709},{"style":172},[2710],{"type":55,"value":535},{"type":49,"tag":147,"props":2712,"children":2713},{"style":538},[2714],{"type":55,"value":1188},{"type":49,"tag":147,"props":2716,"children":2717},{"style":172},[2718],{"type":55,"value":546},{"type":49,"tag":147,"props":2720,"children":2721},{"style":172},[2722],{"type":55,"value":1168},{"type":49,"tag":147,"props":2724,"children":2725},{"class":149,"line":424},[2726,2730,2734,2738,2742,2746],{"type":49,"tag":147,"props":2727,"children":2728},{"style":192},[2729],{"type":55,"value":266},{"type":49,"tag":147,"props":2731,"children":2732},{"style":172},[2733],{"type":55,"value":134},{"type":49,"tag":147,"props":2735,"children":2736},{"style":172},[2737],{"type":55,"value":535},{"type":49,"tag":147,"props":2739,"children":2740},{"style":538},[2741],{"type":55,"value":1216},{"type":49,"tag":147,"props":2743,"children":2744},{"style":172},[2745],{"type":55,"value":546},{"type":49,"tag":147,"props":2747,"children":2748},{"style":172},[2749],{"type":55,"value":1168},{"type":49,"tag":147,"props":2751,"children":2752},{"class":149,"line":433},[2753,2757,2761],{"type":49,"tag":147,"props":2754,"children":2755},{"style":192},[2756],{"type":55,"value":335},{"type":49,"tag":147,"props":2758,"children":2759},{"style":172},[2760],{"type":55,"value":134},{"type":49,"tag":147,"props":2762,"children":2763},{"style":172},[2764],{"type":55,"value":175},{"type":49,"tag":147,"props":2766,"children":2767},{"class":149,"line":441},[2768,2772,2776,2780,2785,2789],{"type":49,"tag":147,"props":2769,"children":2770},{"style":192},[2771],{"type":55,"value":361},{"type":49,"tag":147,"props":2773,"children":2774},{"style":172},[2775],{"type":55,"value":134},{"type":49,"tag":147,"props":2777,"children":2778},{"style":172},[2779],{"type":55,"value":535},{"type":49,"tag":147,"props":2781,"children":2782},{"style":538},[2783],{"type":55,"value":2784},"@acme\u002Fsolid-analytics",{"type":49,"tag":147,"props":2786,"children":2787},{"style":172},[2788],{"type":55,"value":546},{"type":49,"tag":147,"props":2790,"children":2791},{"style":172},[2792],{"type":55,"value":1168},{"type":49,"tag":147,"props":2794,"children":2795},{"class":149,"line":450},[2796,2800,2804,2808,2812,2816],{"type":49,"tag":147,"props":2797,"children":2798},{"style":192},[2799],{"type":55,"value":387},{"type":49,"tag":147,"props":2801,"children":2802},{"style":172},[2803],{"type":55,"value":134},{"type":49,"tag":147,"props":2805,"children":2806},{"style":172},[2807],{"type":55,"value":535},{"type":49,"tag":147,"props":2809,"children":2810},{"style":538},[2811],{"type":55,"value":1287},{"type":49,"tag":147,"props":2813,"children":2814},{"style":172},[2815],{"type":55,"value":546},{"type":49,"tag":147,"props":2817,"children":2818},{"style":172},[2819],{"type":55,"value":1168},{"type":49,"tag":147,"props":2821,"children":2822},{"class":149,"line":467},[2823],{"type":49,"tag":147,"props":2824,"children":2825},{"style":172},[2826],{"type":55,"value":1303},{"type":49,"tag":147,"props":2828,"children":2829},{"class":149,"line":476},[2830,2834,2838],{"type":49,"tag":147,"props":2831,"children":2832},{"style":192},[2833],{"type":55,"value":456},{"type":49,"tag":147,"props":2835,"children":2836},{"style":172},[2837],{"type":55,"value":134},{"type":49,"tag":147,"props":2839,"children":2840},{"style":172},[2841],{"type":55,"value":175},{"type":49,"tag":147,"props":2843,"children":2844},{"class":149,"line":485},[2845,2849,2853,2857,2861,2865],{"type":49,"tag":147,"props":2846,"children":2847},{"style":192},[2848],{"type":55,"value":491},{"type":49,"tag":147,"props":2850,"children":2851},{"style":172},[2852],{"type":55,"value":134},{"type":49,"tag":147,"props":2854,"children":2855},{"style":172},[2856],{"type":55,"value":535},{"type":49,"tag":147,"props":2858,"children":2859},{"style":538},[2860],{"type":55,"value":1338},{"type":49,"tag":147,"props":2862,"children":2863},{"style":172},[2864],{"type":55,"value":546},{"type":49,"tag":147,"props":2866,"children":2867},{"style":172},[2868],{"type":55,"value":1168},{"type":49,"tag":147,"props":2870,"children":2871},{"class":149,"line":502},[2872,2876,2880,2884,2888,2892],{"type":49,"tag":147,"props":2873,"children":2874},{"style":192},[2875],{"type":55,"value":526},{"type":49,"tag":147,"props":2877,"children":2878},{"style":172},[2879],{"type":55,"value":134},{"type":49,"tag":147,"props":2881,"children":2882},{"style":172},[2883],{"type":55,"value":535},{"type":49,"tag":147,"props":2885,"children":2886},{"style":538},[2887],{"type":55,"value":560},{"type":49,"tag":147,"props":2889,"children":2890},{"style":172},[2891],{"type":55,"value":546},{"type":49,"tag":147,"props":2893,"children":2894},{"style":172},[2895],{"type":55,"value":1168},{"type":49,"tag":147,"props":2897,"children":2898},{"class":149,"line":511},[2899],{"type":49,"tag":147,"props":2900,"children":2901},{"style":172},[2902],{"type":55,"value":1303},{"type":49,"tag":147,"props":2904,"children":2905},{"class":149,"line":520},[2906,2910,2914,2918,2922,2926],{"type":49,"tag":147,"props":2907,"children":2908},{"style":192},[2909],{"type":55,"value":626},{"type":49,"tag":147,"props":2911,"children":2912},{"style":172},[2913],{"type":55,"value":134},{"type":49,"tag":147,"props":2915,"children":2916},{"style":172},[2917],{"type":55,"value":535},{"type":49,"tag":147,"props":2919,"children":2920},{"style":538},[2921],{"type":55,"value":1400},{"type":49,"tag":147,"props":2923,"children":2924},{"style":172},[2925],{"type":55,"value":546},{"type":49,"tag":147,"props":2927,"children":2928},{"style":172},[2929],{"type":55,"value":1168},{"type":49,"tag":147,"props":2931,"children":2932},{"class":149,"line":568},[2933,2937,2941,2945,2949,2953],{"type":49,"tag":147,"props":2934,"children":2935},{"style":192},[2936],{"type":55,"value":694},{"type":49,"tag":147,"props":2938,"children":2939},{"style":172},[2940],{"type":55,"value":134},{"type":49,"tag":147,"props":2942,"children":2943},{"style":172},[2944],{"type":55,"value":535},{"type":49,"tag":147,"props":2946,"children":2947},{"style":538},[2948],{"type":55,"value":1484},{"type":49,"tag":147,"props":2950,"children":2951},{"style":172},[2952],{"type":55,"value":546},{"type":49,"tag":147,"props":2954,"children":2955},{"style":172},[2956],{"type":55,"value":1168},{"type":49,"tag":147,"props":2958,"children":2959},{"class":149,"line":576},[2960,2964,2968,2972,2976,2980],{"type":49,"tag":147,"props":2961,"children":2962},{"style":192},[2963],{"type":55,"value":762},{"type":49,"tag":147,"props":2965,"children":2966},{"style":172},[2967],{"type":55,"value":134},{"type":49,"tag":147,"props":2969,"children":2970},{"style":172},[2971],{"type":55,"value":535},{"type":49,"tag":147,"props":2973,"children":2974},{"style":538},[2975],{"type":55,"value":791},{"type":49,"tag":147,"props":2977,"children":2978},{"style":172},[2979],{"type":55,"value":546},{"type":49,"tag":147,"props":2981,"children":2982},{"style":172},[2983],{"type":55,"value":1168},{"type":49,"tag":147,"props":2985,"children":2986},{"class":149,"line":584},[2987,2991,2995,2999],{"type":49,"tag":147,"props":2988,"children":2989},{"style":192},[2990],{"type":55,"value":933},{"type":49,"tag":147,"props":2992,"children":2993},{"style":172},[2994],{"type":55,"value":134},{"type":49,"tag":147,"props":2996,"children":2997},{"style":1533},[2998],{"type":55,"value":1536},{"type":49,"tag":147,"props":3000,"children":3001},{"style":172},[3002],{"type":55,"value":1168},{"type":49,"tag":147,"props":3004,"children":3005},{"class":149,"line":593},[3006,3010,3014,3018,3022,3026,3030,3034,3038,3042,3046,3050],{"type":49,"tag":147,"props":3007,"children":3008},{"style":192},[3009],{"type":55,"value":967},{"type":49,"tag":147,"props":3011,"children":3012},{"style":172},[3013],{"type":55,"value":134},{"type":49,"tag":147,"props":3015,"children":3016},{"style":1132},[3017],{"type":55,"value":1556},{"type":49,"tag":147,"props":3019,"children":3020},{"style":172},[3021],{"type":55,"value":546},{"type":49,"tag":147,"props":3023,"children":3024},{"style":538},[3025],{"type":55,"value":1565},{"type":49,"tag":147,"props":3027,"children":3028},{"style":172},[3029],{"type":55,"value":546},{"type":49,"tag":147,"props":3031,"children":3032},{"style":172},[3033],{"type":55,"value":1574},{"type":49,"tag":147,"props":3035,"children":3036},{"style":172},[3037],{"type":55,"value":535},{"type":49,"tag":147,"props":3039,"children":3040},{"style":538},[3041],{"type":55,"value":1583},{"type":49,"tag":147,"props":3043,"children":3044},{"style":172},[3045],{"type":55,"value":546},{"type":49,"tag":147,"props":3047,"children":3048},{"style":1132},[3049],{"type":55,"value":1592},{"type":49,"tag":147,"props":3051,"children":3052},{"style":172},[3053],{"type":55,"value":1168},{"type":49,"tag":147,"props":3055,"children":3056},{"class":149,"line":602},[3057],{"type":49,"tag":147,"props":3058,"children":3059},{"style":172},[3060],{"type":55,"value":1604},{"type":49,"tag":62,"props":3062,"children":3063},{},[3064,3066,3072],{"type":55,"value":3065},"The marketplace auto-detects the user's framework from their ",{"type":49,"tag":92,"props":3067,"children":3069},{"className":3068},[],[3070],{"type":55,"value":3071},"package.json",{"type":55,"value":3073}," dependencies and shows only matching entries. Users can still browse other frameworks via the filter controls.",{"type":49,"tag":80,"props":3075,"children":3077},{"id":3076},"how-auto-install-works",[3078],{"type":55,"value":3079},"How Auto-Install Works",{"type":49,"tag":62,"props":3081,"children":3082},{},[3083,3085,3090,3092,3097],{"type":55,"value":3084},"The auto-install pipeline lives in ",{"type":49,"tag":92,"props":3086,"children":3088},{"className":3087},[],[3089],{"type":55,"value":43},{"type":55,"value":3091},". Understanding it clarifies why ",{"type":49,"tag":92,"props":3093,"children":3095},{"className":3094},[],[3096],{"type":55,"value":1049},{"type":55,"value":3098}," matters:",{"type":49,"tag":1611,"props":3100,"children":3101},{},[3102,3112,3144,3168,3186],{"type":49,"tag":1615,"props":3103,"children":3104},{},[3105,3110],{"type":49,"tag":66,"props":3106,"children":3107},{},[3108],{"type":55,"value":3109},"Package installation",{"type":55,"value":3111}," -- The Vite plugin detects the project's package manager and runs the appropriate install command.",{"type":49,"tag":1615,"props":3113,"children":3114},{},[3115,3120,3122,3128,3129,3135,3136,3142],{"type":49,"tag":66,"props":3116,"children":3117},{},[3118],{"type":55,"value":3119},"File detection",{"type":55,"value":3121}," -- It scans project files for imports from ",{"type":49,"tag":92,"props":3123,"children":3125},{"className":3124},[],[3126],{"type":55,"value":3127},"@tanstack\u002Freact-devtools",{"type":55,"value":1020},{"type":49,"tag":92,"props":3130,"children":3132},{"className":3131},[],[3133],{"type":55,"value":3134},"@tanstack\u002Fsolid-devtools",{"type":55,"value":1020},{"type":49,"tag":92,"props":3137,"children":3139},{"className":3138},[],[3140],{"type":55,"value":3141},"@tanstack\u002Fvue-devtools",{"type":55,"value":3143},", etc.",{"type":49,"tag":1615,"props":3145,"children":3146},{},[3147,3152,3154,3159,3161,3166],{"type":49,"tag":66,"props":3148,"children":3149},{},[3150],{"type":55,"value":3151},"AST transformation",{"type":55,"value":3153}," -- It parses the file with oxc-parser, finds the ",{"type":49,"tag":92,"props":3155,"children":3157},{"className":3156},[],[3158],{"type":55,"value":1635},{"type":55,"value":3160}," JSX element, and modifies the ",{"type":49,"tag":92,"props":3162,"children":3164},{"className":3163},[],[3165],{"type":55,"value":1089},{"type":55,"value":3167}," prop via MagicString.",{"type":49,"tag":1615,"props":3169,"children":3170},{},[3171,3176,3178,3184],{"type":49,"tag":66,"props":3172,"children":3173},{},[3174],{"type":55,"value":3175},"Import insertion",{"type":55,"value":3177}," -- It adds ",{"type":49,"tag":92,"props":3179,"children":3181},{"className":3180},[],[3182],{"type":55,"value":3183},"import { \u003CimportName> } from '\u003CpackageName>'",{"type":55,"value":3185}," after the last existing import.",{"type":49,"tag":1615,"props":3187,"children":3188},{},[3189,3194,3196,3202,3204],{"type":49,"tag":66,"props":3190,"children":3191},{},[3192],{"type":55,"value":3193},"Plugin injection",{"type":55,"value":3195}," -- Based on ",{"type":49,"tag":92,"props":3197,"children":3199},{"className":3198},[],[3200],{"type":55,"value":3201},"pluginImport.type",{"type":55,"value":3203},":\n",{"type":49,"tag":3205,"props":3206,"children":3207},"ul",{},[3208,3227],{"type":49,"tag":1615,"props":3209,"children":3210},{},[3211,3217,3219,3225],{"type":49,"tag":92,"props":3212,"children":3214},{"className":3213},[],[3215],{"type":55,"value":3216},"'function'",{"type":55,"value":3218},": Appends ",{"type":49,"tag":92,"props":3220,"children":3222},{"className":3221},[],[3223],{"type":55,"value":3224},"ImportName()",{"type":55,"value":3226}," directly to the plugins array",{"type":49,"tag":1615,"props":3228,"children":3229},{},[3230,3236,3237,3243],{"type":49,"tag":92,"props":3231,"children":3233},{"className":3232},[],[3234],{"type":55,"value":3235},"'jsx'",{"type":55,"value":3218},{"type":49,"tag":92,"props":3238,"children":3240},{"className":3239},[],[3241],{"type":55,"value":3242},"{ name: '\u003Ctitle>', render: \u003CImportName \u002F> }",{"type":55,"value":3244}," to the plugins array",{"type":49,"tag":62,"props":3246,"children":3247},{},[3248,3250,3255,3257,3262],{"type":55,"value":3249},"If ",{"type":49,"tag":92,"props":3251,"children":3253},{"className":3252},[],[3254],{"type":55,"value":1049},{"type":55,"value":3256}," is missing, step 3-5 are skipped entirely. The package gets installed but the user must manually wire it into the ",{"type":49,"tag":92,"props":3258,"children":3260},{"className":3259},[],[3261],{"type":55,"value":1089},{"type":55,"value":3263}," prop.",{"type":49,"tag":80,"props":3265,"children":3267},{"id":3266},"pr-submission-process",[3268],{"type":55,"value":3269},"PR Submission Process",{"type":49,"tag":1611,"props":3271,"children":3272},{},[3273,3283,3299,3370,3395],{"type":49,"tag":1615,"props":3274,"children":3275},{},[3276,3281],{"type":49,"tag":66,"props":3277,"children":3278},{},[3279],{"type":55,"value":3280},"Publish your package to npm.",{"type":55,"value":3282}," The marketplace links to npm for installation; the package must be publicly available.",{"type":49,"tag":1615,"props":3284,"children":3285},{},[3286,3291,3293,3298],{"type":49,"tag":66,"props":3287,"children":3288},{},[3289],{"type":55,"value":3290},"Fork and clone",{"type":55,"value":3292}," the ",{"type":49,"tag":100,"props":3294,"children":3296},{"href":17,"rel":3295},[103],[3297],{"type":55,"value":106},{"type":55,"value":108},{"type":49,"tag":1615,"props":3300,"children":3301},{},[3302,3314,3316,3322,3324,3330,3332],{"type":49,"tag":66,"props":3303,"children":3304},{},[3305,3307,3312],{"type":55,"value":3306},"Edit ",{"type":49,"tag":92,"props":3308,"children":3310},{"className":3309},[],[3311],{"type":55,"value":40},{"type":55,"value":3313},".",{"type":55,"value":3315}," Add your entry to the ",{"type":49,"tag":92,"props":3317,"children":3319},{"className":3318},[],[3320],{"type":55,"value":3321},"PLUGIN_REGISTRY",{"type":55,"value":3323}," object under the ",{"type":49,"tag":92,"props":3325,"children":3327},{"className":3326},[],[3328],{"type":55,"value":3329},"THIRD-PARTY PLUGINS",{"type":55,"value":3331}," comment section:",{"type":49,"tag":136,"props":3333,"children":3335},{"className":138,"code":3334,"language":140,"meta":141,"style":141},"\u002F\u002F ==========================================\n\u002F\u002F THIRD-PARTY PLUGINS - Examples\n\u002F\u002F ==========================================\n\u002F\u002F External contributors can add their plugins below!\n",[3336],{"type":49,"tag":92,"props":3337,"children":3338},{"__ignoreMap":141},[3339,3347,3355,3362],{"type":49,"tag":147,"props":3340,"children":3341},{"class":149,"line":150},[3342],{"type":49,"tag":147,"props":3343,"children":3344},{"style":182},[3345],{"type":55,"value":3346},"\u002F\u002F ==========================================\n",{"type":49,"tag":147,"props":3348,"children":3349},{"class":149,"line":178},[3350],{"type":49,"tag":147,"props":3351,"children":3352},{"style":182},[3353],{"type":55,"value":3354},"\u002F\u002F THIRD-PARTY PLUGINS - Examples\n",{"type":49,"tag":147,"props":3356,"children":3357},{"class":149,"line":188},[3358],{"type":49,"tag":147,"props":3359,"children":3360},{"style":182},[3361],{"type":55,"value":3346},{"type":49,"tag":147,"props":3363,"children":3364},{"class":149,"line":207},[3365],{"type":49,"tag":147,"props":3366,"children":3367},{"style":182},[3368],{"type":55,"value":3369},"\u002F\u002F External contributors can add their plugins below!\n",{"type":49,"tag":1615,"props":3371,"children":3372},{},[3373,3378,3380,3386,3388,3394],{"type":49,"tag":66,"props":3374,"children":3375},{},[3376],{"type":55,"value":3377},"Open a PR",{"type":55,"value":3379}," against the ",{"type":49,"tag":92,"props":3381,"children":3383},{"className":3382},[],[3384],{"type":55,"value":3385},"main",{"type":55,"value":3387}," branch. Title format: ",{"type":49,"tag":92,"props":3389,"children":3391},{"className":3390},[],[3392],{"type":55,"value":3393},"feat(marketplace): add \u003Cyour-plugin-name>",{"type":55,"value":3313},{"type":49,"tag":1615,"props":3396,"children":3397},{},[3398,3403,3405],{"type":49,"tag":66,"props":3399,"children":3400},{},[3401],{"type":55,"value":3402},"The PR will be reviewed",{"type":55,"value":3404}," by TanStack maintainers. Common review feedback:",{"type":49,"tag":3205,"props":3406,"children":3407},{},[3408,3420,3431,3443],{"type":49,"tag":1615,"props":3409,"children":3410},{},[3411,3413,3418],{"type":55,"value":3412},"Missing ",{"type":49,"tag":92,"props":3414,"children":3416},{"className":3415},[],[3417],{"type":55,"value":1049},{"type":55,"value":3419}," -- reviewers will ask you to add it",{"type":49,"tag":1615,"props":3421,"children":3422},{},[3423,3424,3429],{"type":55,"value":3412},{"type":49,"tag":92,"props":3425,"children":3427},{"className":3426},[],[3428],{"type":55,"value":1034},{"type":55,"value":3430}," -- required for marketplace filtering",{"type":49,"tag":1615,"props":3432,"children":3433},{},[3434,3435,3441],{"type":55,"value":3412},{"type":49,"tag":92,"props":3436,"children":3438},{"className":3437},[],[3439],{"type":55,"value":3440},"requires.minVersion",{"type":55,"value":3442}," -- avoids runtime errors for users on older versions",{"type":49,"tag":1615,"props":3444,"children":3445},{},[3446,3448,3454],{"type":55,"value":3447},"Incorrect ",{"type":49,"tag":92,"props":3449,"children":3451},{"className":3450},[],[3452],{"type":55,"value":3453},"importName",{"type":55,"value":3455}," -- must match the exact named export from your package",{"type":49,"tag":80,"props":3457,"children":3459},{"id":3458},"framework-detection",[3460],{"type":55,"value":3461},"Framework Detection",{"type":49,"tag":62,"props":3463,"children":3464},{},[3465,3467,3472],{"type":55,"value":3466},"The marketplace determines the user's current framework by scanning their ",{"type":49,"tag":92,"props":3468,"children":3470},{"className":3469},[],[3471],{"type":55,"value":3071},{"type":55,"value":3473}," dependencies for known framework packages:",{"type":49,"tag":3475,"props":3476,"children":3477},"table",{},[3478,3497],{"type":49,"tag":3479,"props":3480,"children":3481},"thead",{},[3482],{"type":49,"tag":3483,"props":3484,"children":3485},"tr",{},[3486,3492],{"type":49,"tag":3487,"props":3488,"children":3489},"th",{},[3490],{"type":55,"value":3491},"Framework",{"type":49,"tag":3487,"props":3493,"children":3494},{},[3495],{"type":55,"value":3496},"Detected packages",{"type":49,"tag":3498,"props":3499,"children":3500},"tbody",{},[3501,3524,3540,3562,3577],{"type":49,"tag":3483,"props":3502,"children":3503},{},[3504,3509],{"type":49,"tag":3505,"props":3506,"children":3507},"td",{},[3508],{"type":55,"value":24},{"type":49,"tag":3505,"props":3510,"children":3511},{},[3512,3517,3518],{"type":49,"tag":92,"props":3513,"children":3515},{"className":3514},[],[3516],{"type":55,"value":24},{"type":55,"value":1020},{"type":49,"tag":92,"props":3519,"children":3521},{"className":3520},[],[3522],{"type":55,"value":3523},"react-dom",{"type":49,"tag":3483,"props":3525,"children":3526},{},[3527,3531],{"type":49,"tag":3505,"props":3528,"children":3529},{},[3530],{"type":55,"value":791},{"type":49,"tag":3505,"props":3532,"children":3533},{},[3534],{"type":49,"tag":92,"props":3535,"children":3537},{"className":3536},[],[3538],{"type":55,"value":3539},"solid-js",{"type":49,"tag":3483,"props":3541,"children":3542},{},[3543,3547],{"type":49,"tag":3505,"props":3544,"children":3545},{},[3546],{"type":55,"value":808},{"type":49,"tag":3505,"props":3548,"children":3549},{},[3550,3555,3556],{"type":49,"tag":92,"props":3551,"children":3553},{"className":3552},[],[3554],{"type":55,"value":808},{"type":55,"value":1020},{"type":49,"tag":92,"props":3557,"children":3559},{"className":3558},[],[3560],{"type":55,"value":3561},"@vue\u002Fcore",{"type":49,"tag":3483,"props":3563,"children":3564},{},[3565,3569],{"type":49,"tag":3505,"props":3566,"children":3567},{},[3568],{"type":55,"value":825},{"type":49,"tag":3505,"props":3570,"children":3571},{},[3572],{"type":49,"tag":92,"props":3573,"children":3575},{"className":3574},[],[3576],{"type":55,"value":825},{"type":49,"tag":3483,"props":3578,"children":3579},{},[3580,3584],{"type":49,"tag":3505,"props":3581,"children":3582},{},[3583],{"type":55,"value":842},{"type":49,"tag":3505,"props":3585,"children":3586},{},[3587],{"type":49,"tag":92,"props":3588,"children":3590},{"className":3589},[],[3591],{"type":55,"value":3592},"@angular\u002Fcore",{"type":49,"tag":62,"props":3594,"children":3595},{},[3596,3598,3604],{"type":55,"value":3597},"Plugins with ",{"type":49,"tag":92,"props":3599,"children":3601},{"className":3600},[],[3602],{"type":55,"value":3603},"framework: 'other'",{"type":55,"value":3605}," are shown regardless of the detected framework.",{"type":49,"tag":80,"props":3607,"children":3609},{"id":3608},"featured-plugins",[3610],{"type":55,"value":3611},"Featured Plugins",{"type":49,"tag":62,"props":3613,"children":3614},{},[3615,3617,3623],{"type":55,"value":3616},"The ",{"type":49,"tag":92,"props":3618,"children":3620},{"className":3619},[],[3621],{"type":55,"value":3622},"featured",{"type":55,"value":3624}," field is reserved for official TanStack partners and select library authors. Featured plugins appear in a dedicated section at the top of the marketplace with an animated border.",{"type":49,"tag":62,"props":3626,"children":3627},{},[3628,3630,3636],{"type":55,"value":3629},"To request featured status, email ",{"type":49,"tag":100,"props":3631,"children":3633},{"href":3632},"mailto:partners+devtools@tanstack.com",[3634],{"type":55,"value":3635},"partners+devtools@tanstack.com",{"type":55,"value":3313},{"type":49,"tag":62,"props":3638,"children":3639},{},[3640,3642,3648],{"type":55,"value":3641},"Do not set ",{"type":49,"tag":92,"props":3643,"children":3645},{"className":3644},[],[3646],{"type":55,"value":3647},"featured: true",{"type":55,"value":3649}," in your PR submission -- it will be rejected. The TanStack team sets this flag.",{"type":49,"tag":80,"props":3651,"children":3653},{"id":3652},"plugin-id-matching",[3654],{"type":55,"value":3655},"Plugin ID Matching",{"type":49,"tag":62,"props":3657,"children":3658},{},[3659,3661,3667,3669,3674],{"type":55,"value":3660},"When the marketplace checks if a plugin is already active, it uses ",{"type":49,"tag":92,"props":3662,"children":3664},{"className":3663},[],[3665],{"type":55,"value":3666},"pluginId",{"type":55,"value":3668}," for matching. The matching logic in ",{"type":49,"tag":92,"props":3670,"children":3672},{"className":3671},[],[3673],{"type":55,"value":42},{"type":55,"value":3675}," does:",{"type":49,"tag":1611,"props":3677,"children":3678},{},[3679,3697],{"type":49,"tag":1615,"props":3680,"children":3681},{},[3682,3683,3688,3690,3695],{"type":55,"value":3249},{"type":49,"tag":92,"props":3684,"children":3686},{"className":3685},[],[3687],{"type":55,"value":3666},{"type":55,"value":3689}," is set, checks whether any registered plugin's ID starts with or contains the ",{"type":49,"tag":92,"props":3691,"children":3693},{"className":3692},[],[3694],{"type":55,"value":3666},{"type":55,"value":3696}," (case-insensitive).",{"type":49,"tag":1615,"props":3698,"children":3699},{},[3700,3702,3707],{"type":55,"value":3701},"Otherwise falls back to matching on ",{"type":49,"tag":92,"props":3703,"children":3705},{"className":3704},[],[3706],{"type":55,"value":1018},{"type":55,"value":3708}," and extracting keyword segments.",{"type":49,"tag":62,"props":3710,"children":3711},{},[3712,3714,3719,3721,3727,3729,3735,3737,3743,3745,3751],{"type":55,"value":3713},"Set a custom ",{"type":49,"tag":92,"props":3715,"children":3717},{"className":3716},[],[3718],{"type":55,"value":3666},{"type":55,"value":3720}," when your plugin registers with an ID that differs from the default (lowercased package name with non-alphanumeric characters replaced by ",{"type":49,"tag":92,"props":3722,"children":3724},{"className":3723},[],[3725],{"type":55,"value":3726},"-",{"type":55,"value":3728},"). For example, ",{"type":49,"tag":92,"props":3730,"children":3732},{"className":3731},[],[3733],{"type":55,"value":3734},"@tanstack\u002Freact-form-devtools",{"type":55,"value":3736}," registers as ",{"type":49,"tag":92,"props":3738,"children":3740},{"className":3739},[],[3741],{"type":55,"value":3742},"tanstack-form-4",{"type":55,"value":3744}," at runtime, so the registry entry uses ",{"type":49,"tag":92,"props":3746,"children":3748},{"className":3747},[],[3749],{"type":55,"value":3750},"pluginId: 'tanstack-form'",{"type":55,"value":3752}," to match it.",{"type":49,"tag":80,"props":3754,"children":3756},{"id":3755},"common-mistakes",[3757],{"type":55,"value":3758},"Common Mistakes",{"type":49,"tag":1002,"props":3760,"children":3762},{"id":3761},"high-missing-pluginimport-metadata-for-auto-install",[3763],{"type":55,"value":3764},"HIGH: Missing pluginImport metadata for auto-install",{"type":49,"tag":62,"props":3766,"children":3767},{},[3768,3770,3776,3778,3783,3785,3790],{"type":55,"value":3769},"Without ",{"type":49,"tag":92,"props":3771,"children":3773},{"className":3772},[],[3774],{"type":55,"value":3775},"pluginImport.importName",{"type":55,"value":3777}," and ",{"type":49,"tag":92,"props":3779,"children":3781},{"className":3780},[],[3782],{"type":55,"value":3201},{"type":55,"value":3784},", the marketplace auto-install pipeline installs the npm package but cannot inject the plugin into the user's code. The user sees a successful install but the plugin tab never appears -- they must manually add the import and wire it into the ",{"type":49,"tag":92,"props":3786,"children":3788},{"className":3787},[],[3789],{"type":55,"value":1089},{"type":55,"value":3263},{"type":49,"tag":62,"props":3792,"children":3793},{},[3794],{"type":55,"value":3795},"Wrong -- no pluginImport:",{"type":49,"tag":136,"props":3797,"children":3799},{"className":138,"code":3798,"language":140,"meta":141,"style":141},"'@acme\u002Freact-analytics-devtools': {\n  packageName: '@acme\u002Freact-analytics-devtools',\n  title: 'Acme Analytics Devtools',\n  requires: {\n    packageName: '@acme\u002Freact-analytics',\n    minVersion: '2.0.0',\n  },\n  author: 'Acme Corp',\n  framework: 'react',\n},\n",[3800],{"type":49,"tag":92,"props":3801,"children":3802},{"__ignoreMap":141},[3803,3826,3853,3880,3895,3922,3949,3956,3983,4010],{"type":49,"tag":147,"props":3804,"children":3805},{"class":149,"line":150},[3806,3810,3814,3818,3822],{"type":49,"tag":147,"props":3807,"children":3808},{"style":172},[3809],{"type":55,"value":546},{"type":49,"tag":147,"props":3811,"children":3812},{"style":538},[3813],{"type":55,"value":1125},{"type":49,"tag":147,"props":3815,"children":3816},{"style":172},[3817],{"type":55,"value":546},{"type":49,"tag":147,"props":3819,"children":3820},{"style":1132},[3821],{"type":55,"value":1135},{"type":49,"tag":147,"props":3823,"children":3824},{"style":172},[3825],{"type":55,"value":1140},{"type":49,"tag":147,"props":3827,"children":3828},{"class":149,"line":178},[3829,3833,3837,3841,3845,3849],{"type":49,"tag":147,"props":3830,"children":3831},{"style":192},[3832],{"type":55,"value":195},{"type":49,"tag":147,"props":3834,"children":3835},{"style":172},[3836],{"type":55,"value":134},{"type":49,"tag":147,"props":3838,"children":3839},{"style":172},[3840],{"type":55,"value":535},{"type":49,"tag":147,"props":3842,"children":3843},{"style":538},[3844],{"type":55,"value":1125},{"type":49,"tag":147,"props":3846,"children":3847},{"style":172},[3848],{"type":55,"value":546},{"type":49,"tag":147,"props":3850,"children":3851},{"style":172},[3852],{"type":55,"value":1168},{"type":49,"tag":147,"props":3854,"children":3855},{"class":149,"line":188},[3856,3860,3864,3868,3872,3876],{"type":49,"tag":147,"props":3857,"children":3858},{"style":192},[3859],{"type":55,"value":232},{"type":49,"tag":147,"props":3861,"children":3862},{"style":172},[3863],{"type":55,"value":134},{"type":49,"tag":147,"props":3865,"children":3866},{"style":172},[3867],{"type":55,"value":535},{"type":49,"tag":147,"props":3869,"children":3870},{"style":538},[3871],{"type":55,"value":1188},{"type":49,"tag":147,"props":3873,"children":3874},{"style":172},[3875],{"type":55,"value":546},{"type":49,"tag":147,"props":3877,"children":3878},{"style":172},[3879],{"type":55,"value":1168},{"type":49,"tag":147,"props":3881,"children":3882},{"class":149,"line":207},[3883,3887,3891],{"type":49,"tag":147,"props":3884,"children":3885},{"style":192},[3886],{"type":55,"value":335},{"type":49,"tag":147,"props":3888,"children":3889},{"style":172},[3890],{"type":55,"value":134},{"type":49,"tag":147,"props":3892,"children":3893},{"style":172},[3894],{"type":55,"value":175},{"type":49,"tag":147,"props":3896,"children":3897},{"class":149,"line":217},[3898,3902,3906,3910,3914,3918],{"type":49,"tag":147,"props":3899,"children":3900},{"style":192},[3901],{"type":55,"value":361},{"type":49,"tag":147,"props":3903,"children":3904},{"style":172},[3905],{"type":55,"value":134},{"type":49,"tag":147,"props":3907,"children":3908},{"style":172},[3909],{"type":55,"value":535},{"type":49,"tag":147,"props":3911,"children":3912},{"style":538},[3913],{"type":55,"value":1259},{"type":49,"tag":147,"props":3915,"children":3916},{"style":172},[3917],{"type":55,"value":546},{"type":49,"tag":147,"props":3919,"children":3920},{"style":172},[3921],{"type":55,"value":1168},{"type":49,"tag":147,"props":3923,"children":3924},{"class":149,"line":226},[3925,3929,3933,3937,3941,3945],{"type":49,"tag":147,"props":3926,"children":3927},{"style":192},[3928],{"type":55,"value":387},{"type":49,"tag":147,"props":3930,"children":3931},{"style":172},[3932],{"type":55,"value":134},{"type":49,"tag":147,"props":3934,"children":3935},{"style":172},[3936],{"type":55,"value":535},{"type":49,"tag":147,"props":3938,"children":3939},{"style":538},[3940],{"type":55,"value":1287},{"type":49,"tag":147,"props":3942,"children":3943},{"style":172},[3944],{"type":55,"value":546},{"type":49,"tag":147,"props":3946,"children":3947},{"style":172},[3948],{"type":55,"value":1168},{"type":49,"tag":147,"props":3950,"children":3951},{"class":149,"line":243},[3952],{"type":49,"tag":147,"props":3953,"children":3954},{"style":172},[3955],{"type":55,"value":1303},{"type":49,"tag":147,"props":3957,"children":3958},{"class":149,"line":251},[3959,3963,3967,3971,3975,3979],{"type":49,"tag":147,"props":3960,"children":3961},{"style":192},[3962],{"type":55,"value":694},{"type":49,"tag":147,"props":3964,"children":3965},{"style":172},[3966],{"type":55,"value":134},{"type":49,"tag":147,"props":3968,"children":3969},{"style":172},[3970],{"type":55,"value":535},{"type":49,"tag":147,"props":3972,"children":3973},{"style":538},[3974],{"type":55,"value":1484},{"type":49,"tag":147,"props":3976,"children":3977},{"style":172},[3978],{"type":55,"value":546},{"type":49,"tag":147,"props":3980,"children":3981},{"style":172},[3982],{"type":55,"value":1168},{"type":49,"tag":147,"props":3984,"children":3985},{"class":149,"line":260},[3986,3990,3994,3998,4002,4006],{"type":49,"tag":147,"props":3987,"children":3988},{"style":192},[3989],{"type":55,"value":762},{"type":49,"tag":147,"props":3991,"children":3992},{"style":172},[3993],{"type":55,"value":134},{"type":49,"tag":147,"props":3995,"children":3996},{"style":172},[3997],{"type":55,"value":535},{"type":49,"tag":147,"props":3999,"children":4000},{"style":538},[4001],{"type":55,"value":24},{"type":49,"tag":147,"props":4003,"children":4004},{"style":172},[4005],{"type":55,"value":546},{"type":49,"tag":147,"props":4007,"children":4008},{"style":172},[4009],{"type":55,"value":1168},{"type":49,"tag":147,"props":4011,"children":4012},{"class":149,"line":278},[4013],{"type":49,"tag":147,"props":4014,"children":4015},{"style":172},[4016],{"type":55,"value":1604},{"type":49,"tag":62,"props":4018,"children":4019},{},[4020],{"type":55,"value":4021},"Correct -- pluginImport provided:",{"type":49,"tag":136,"props":4023,"children":4025},{"className":138,"code":4024,"language":140,"meta":141,"style":141},"'@acme\u002Freact-analytics-devtools': {\n  packageName: '@acme\u002Freact-analytics-devtools',\n  title: 'Acme Analytics Devtools',\n  requires: {\n    packageName: '@acme\u002Freact-analytics',\n    minVersion: '2.0.0',\n  },\n  pluginImport: {\n    importName: 'AnalyticsDevtoolsPlugin',\n    type: 'function',\n  },\n  author: 'Acme Corp',\n  framework: 'react',\n},\n",[4026],{"type":49,"tag":92,"props":4027,"children":4028},{"__ignoreMap":141},[4029,4052,4079,4106,4121,4148,4175,4182,4197,4224,4251,4258,4285,4312],{"type":49,"tag":147,"props":4030,"children":4031},{"class":149,"line":150},[4032,4036,4040,4044,4048],{"type":49,"tag":147,"props":4033,"children":4034},{"style":172},[4035],{"type":55,"value":546},{"type":49,"tag":147,"props":4037,"children":4038},{"style":538},[4039],{"type":55,"value":1125},{"type":49,"tag":147,"props":4041,"children":4042},{"style":172},[4043],{"type":55,"value":546},{"type":49,"tag":147,"props":4045,"children":4046},{"style":1132},[4047],{"type":55,"value":1135},{"type":49,"tag":147,"props":4049,"children":4050},{"style":172},[4051],{"type":55,"value":1140},{"type":49,"tag":147,"props":4053,"children":4054},{"class":149,"line":178},[4055,4059,4063,4067,4071,4075],{"type":49,"tag":147,"props":4056,"children":4057},{"style":192},[4058],{"type":55,"value":195},{"type":49,"tag":147,"props":4060,"children":4061},{"style":172},[4062],{"type":55,"value":134},{"type":49,"tag":147,"props":4064,"children":4065},{"style":172},[4066],{"type":55,"value":535},{"type":49,"tag":147,"props":4068,"children":4069},{"style":538},[4070],{"type":55,"value":1125},{"type":49,"tag":147,"props":4072,"children":4073},{"style":172},[4074],{"type":55,"value":546},{"type":49,"tag":147,"props":4076,"children":4077},{"style":172},[4078],{"type":55,"value":1168},{"type":49,"tag":147,"props":4080,"children":4081},{"class":149,"line":188},[4082,4086,4090,4094,4098,4102],{"type":49,"tag":147,"props":4083,"children":4084},{"style":192},[4085],{"type":55,"value":232},{"type":49,"tag":147,"props":4087,"children":4088},{"style":172},[4089],{"type":55,"value":134},{"type":49,"tag":147,"props":4091,"children":4092},{"style":172},[4093],{"type":55,"value":535},{"type":49,"tag":147,"props":4095,"children":4096},{"style":538},[4097],{"type":55,"value":1188},{"type":49,"tag":147,"props":4099,"children":4100},{"style":172},[4101],{"type":55,"value":546},{"type":49,"tag":147,"props":4103,"children":4104},{"style":172},[4105],{"type":55,"value":1168},{"type":49,"tag":147,"props":4107,"children":4108},{"class":149,"line":207},[4109,4113,4117],{"type":49,"tag":147,"props":4110,"children":4111},{"style":192},[4112],{"type":55,"value":335},{"type":49,"tag":147,"props":4114,"children":4115},{"style":172},[4116],{"type":55,"value":134},{"type":49,"tag":147,"props":4118,"children":4119},{"style":172},[4120],{"type":55,"value":175},{"type":49,"tag":147,"props":4122,"children":4123},{"class":149,"line":217},[4124,4128,4132,4136,4140,4144],{"type":49,"tag":147,"props":4125,"children":4126},{"style":192},[4127],{"type":55,"value":361},{"type":49,"tag":147,"props":4129,"children":4130},{"style":172},[4131],{"type":55,"value":134},{"type":49,"tag":147,"props":4133,"children":4134},{"style":172},[4135],{"type":55,"value":535},{"type":49,"tag":147,"props":4137,"children":4138},{"style":538},[4139],{"type":55,"value":1259},{"type":49,"tag":147,"props":4141,"children":4142},{"style":172},[4143],{"type":55,"value":546},{"type":49,"tag":147,"props":4145,"children":4146},{"style":172},[4147],{"type":55,"value":1168},{"type":49,"tag":147,"props":4149,"children":4150},{"class":149,"line":226},[4151,4155,4159,4163,4167,4171],{"type":49,"tag":147,"props":4152,"children":4153},{"style":192},[4154],{"type":55,"value":387},{"type":49,"tag":147,"props":4156,"children":4157},{"style":172},[4158],{"type":55,"value":134},{"type":49,"tag":147,"props":4160,"children":4161},{"style":172},[4162],{"type":55,"value":535},{"type":49,"tag":147,"props":4164,"children":4165},{"style":538},[4166],{"type":55,"value":1287},{"type":49,"tag":147,"props":4168,"children":4169},{"style":172},[4170],{"type":55,"value":546},{"type":49,"tag":147,"props":4172,"children":4173},{"style":172},[4174],{"type":55,"value":1168},{"type":49,"tag":147,"props":4176,"children":4177},{"class":149,"line":243},[4178],{"type":49,"tag":147,"props":4179,"children":4180},{"style":172},[4181],{"type":55,"value":1303},{"type":49,"tag":147,"props":4183,"children":4184},{"class":149,"line":251},[4185,4189,4193],{"type":49,"tag":147,"props":4186,"children":4187},{"style":192},[4188],{"type":55,"value":456},{"type":49,"tag":147,"props":4190,"children":4191},{"style":172},[4192],{"type":55,"value":134},{"type":49,"tag":147,"props":4194,"children":4195},{"style":172},[4196],{"type":55,"value":175},{"type":49,"tag":147,"props":4198,"children":4199},{"class":149,"line":260},[4200,4204,4208,4212,4216,4220],{"type":49,"tag":147,"props":4201,"children":4202},{"style":192},[4203],{"type":55,"value":491},{"type":49,"tag":147,"props":4205,"children":4206},{"style":172},[4207],{"type":55,"value":134},{"type":49,"tag":147,"props":4209,"children":4210},{"style":172},[4211],{"type":55,"value":535},{"type":49,"tag":147,"props":4213,"children":4214},{"style":538},[4215],{"type":55,"value":1338},{"type":49,"tag":147,"props":4217,"children":4218},{"style":172},[4219],{"type":55,"value":546},{"type":49,"tag":147,"props":4221,"children":4222},{"style":172},[4223],{"type":55,"value":1168},{"type":49,"tag":147,"props":4225,"children":4226},{"class":149,"line":278},[4227,4231,4235,4239,4243,4247],{"type":49,"tag":147,"props":4228,"children":4229},{"style":192},[4230],{"type":55,"value":526},{"type":49,"tag":147,"props":4232,"children":4233},{"style":172},[4234],{"type":55,"value":134},{"type":49,"tag":147,"props":4236,"children":4237},{"style":172},[4238],{"type":55,"value":535},{"type":49,"tag":147,"props":4240,"children":4241},{"style":538},[4242],{"type":55,"value":560},{"type":49,"tag":147,"props":4244,"children":4245},{"style":172},[4246],{"type":55,"value":546},{"type":49,"tag":147,"props":4248,"children":4249},{"style":172},[4250],{"type":55,"value":1168},{"type":49,"tag":147,"props":4252,"children":4253},{"class":149,"line":286},[4254],{"type":49,"tag":147,"props":4255,"children":4256},{"style":172},[4257],{"type":55,"value":1303},{"type":49,"tag":147,"props":4259,"children":4260},{"class":149,"line":295},[4261,4265,4269,4273,4277,4281],{"type":49,"tag":147,"props":4262,"children":4263},{"style":192},[4264],{"type":55,"value":694},{"type":49,"tag":147,"props":4266,"children":4267},{"style":172},[4268],{"type":55,"value":134},{"type":49,"tag":147,"props":4270,"children":4271},{"style":172},[4272],{"type":55,"value":535},{"type":49,"tag":147,"props":4274,"children":4275},{"style":538},[4276],{"type":55,"value":1484},{"type":49,"tag":147,"props":4278,"children":4279},{"style":172},[4280],{"type":55,"value":546},{"type":49,"tag":147,"props":4282,"children":4283},{"style":172},[4284],{"type":55,"value":1168},{"type":49,"tag":147,"props":4286,"children":4287},{"class":149,"line":312},[4288,4292,4296,4300,4304,4308],{"type":49,"tag":147,"props":4289,"children":4290},{"style":192},[4291],{"type":55,"value":762},{"type":49,"tag":147,"props":4293,"children":4294},{"style":172},[4295],{"type":55,"value":134},{"type":49,"tag":147,"props":4297,"children":4298},{"style":172},[4299],{"type":55,"value":535},{"type":49,"tag":147,"props":4301,"children":4302},{"style":538},[4303],{"type":55,"value":24},{"type":49,"tag":147,"props":4305,"children":4306},{"style":172},[4307],{"type":55,"value":546},{"type":49,"tag":147,"props":4309,"children":4310},{"style":172},[4311],{"type":55,"value":1168},{"type":49,"tag":147,"props":4313,"children":4314},{"class":149,"line":320},[4315],{"type":49,"tag":147,"props":4316,"children":4317},{"style":172},[4318],{"type":55,"value":1604},{"type":49,"tag":62,"props":4320,"children":4321},{},[4322,4323,4328,4330,4336],{"type":55,"value":3616},{"type":49,"tag":92,"props":4324,"children":4326},{"className":4325},[],[4327],{"type":55,"value":3453},{"type":55,"value":4329}," must be the exact named export from your package. The ",{"type":49,"tag":92,"props":4331,"children":4333},{"className":4332},[],[4334],{"type":55,"value":4335},"type",{"type":55,"value":4337}," must match how the export is consumed:",{"type":49,"tag":3205,"props":4339,"children":4340},{},[4341,4357],{"type":49,"tag":1615,"props":4342,"children":4343},{},[4344,4349,4351],{"type":49,"tag":92,"props":4345,"children":4347},{"className":4346},[],[4348],{"type":55,"value":3216},{"type":55,"value":4350}," if your export is a factory like ",{"type":49,"tag":92,"props":4352,"children":4354},{"className":4353},[],[4355],{"type":55,"value":4356},"export function AnalyticsDevtoolsPlugin() { return { name: '...', ... } }",{"type":49,"tag":1615,"props":4358,"children":4359},{},[4360,4365,4367],{"type":49,"tag":92,"props":4361,"children":4363},{"className":4362},[],[4364],{"type":55,"value":3235},{"type":55,"value":4366}," if your export is a component like ",{"type":49,"tag":92,"props":4368,"children":4370},{"className":4369},[],[4371],{"type":55,"value":4372},"export function AnalyticsDevtoolsPanel() { return \u003Cdiv>...\u003C\u002Fdiv> }",{"type":49,"tag":1002,"props":4374,"children":4376},{"id":4375},"medium-not-specifying-requiresminversion",[4377],{"type":55,"value":4378},"MEDIUM: Not specifying requires.minVersion",{"type":49,"tag":62,"props":4380,"children":4381},{},[4382,4384,4389,4391,4397],{"type":55,"value":4383},"When ",{"type":49,"tag":92,"props":4385,"children":4387},{"className":4386},[],[4388],{"type":55,"value":1042},{"type":55,"value":4390}," is present but ",{"type":49,"tag":92,"props":4392,"children":4394},{"className":4393},[],[4395],{"type":55,"value":4396},"minVersion",{"type":55,"value":4398}," is omitted or set too low, users running older versions of the base package get runtime errors when the devtools plugin tries to access APIs that do not exist in their version.",{"type":49,"tag":62,"props":4400,"children":4401},{},[4402],{"type":55,"value":4403},"Wrong -- missing minVersion:",{"type":49,"tag":136,"props":4405,"children":4407},{"className":138,"code":4406,"language":140,"meta":141,"style":141},"requires: {\n  packageName: '@acme\u002Freact-analytics',\n},\n",[4408],{"type":49,"tag":92,"props":4409,"children":4410},{"__ignoreMap":141},[4411,4426,4453],{"type":49,"tag":147,"props":4412,"children":4413},{"class":149,"line":150},[4414,4418,4422],{"type":49,"tag":147,"props":4415,"children":4416},{"style":166},[4417],{"type":55,"value":1042},{"type":49,"tag":147,"props":4419,"children":4420},{"style":172},[4421],{"type":55,"value":134},{"type":49,"tag":147,"props":4423,"children":4424},{"style":172},[4425],{"type":55,"value":175},{"type":49,"tag":147,"props":4427,"children":4428},{"class":149,"line":178},[4429,4433,4437,4441,4445,4449],{"type":49,"tag":147,"props":4430,"children":4431},{"style":166},[4432],{"type":55,"value":195},{"type":49,"tag":147,"props":4434,"children":4435},{"style":172},[4436],{"type":55,"value":134},{"type":49,"tag":147,"props":4438,"children":4439},{"style":172},[4440],{"type":55,"value":535},{"type":49,"tag":147,"props":4442,"children":4443},{"style":538},[4444],{"type":55,"value":1259},{"type":49,"tag":147,"props":4446,"children":4447},{"style":172},[4448],{"type":55,"value":546},{"type":49,"tag":147,"props":4450,"children":4451},{"style":172},[4452],{"type":55,"value":1168},{"type":49,"tag":147,"props":4454,"children":4455},{"class":149,"line":188},[4456],{"type":49,"tag":147,"props":4457,"children":4458},{"style":172},[4459],{"type":55,"value":1604},{"type":49,"tag":62,"props":4461,"children":4462},{},[4463,4465,4470,4472,4477,4479,4485],{"type":55,"value":4464},"This does not type-check -- ",{"type":49,"tag":92,"props":4466,"children":4468},{"className":4467},[],[4469],{"type":55,"value":4396},{"type":55,"value":4471}," is a required field inside ",{"type":49,"tag":92,"props":4473,"children":4475},{"className":4474},[],[4476],{"type":55,"value":1042},{"type":55,"value":4478},". But setting it to ",{"type":49,"tag":92,"props":4480,"children":4482},{"className":4481},[],[4483],{"type":55,"value":4484},"'0.0.0'",{"type":55,"value":4486}," or an arbitrarily low version has the same practical effect: the marketplace shows the plugin as installable even when the user's version lacks the APIs your devtools plugin depends on.",{"type":49,"tag":62,"props":4488,"children":4489},{},[4490],{"type":55,"value":4491},"Correct -- specify the actual minimum version your plugin is tested against:",{"type":49,"tag":136,"props":4493,"children":4495},{"className":138,"code":4494,"language":140,"meta":141,"style":141},"requires: {\n  packageName: '@acme\u002Freact-analytics',\n  minVersion: '2.0.0',\n},\n",[4496],{"type":49,"tag":92,"props":4497,"children":4498},{"__ignoreMap":141},[4499,4514,4541,4569],{"type":49,"tag":147,"props":4500,"children":4501},{"class":149,"line":150},[4502,4506,4510],{"type":49,"tag":147,"props":4503,"children":4504},{"style":166},[4505],{"type":55,"value":1042},{"type":49,"tag":147,"props":4507,"children":4508},{"style":172},[4509],{"type":55,"value":134},{"type":49,"tag":147,"props":4511,"children":4512},{"style":172},[4513],{"type":55,"value":175},{"type":49,"tag":147,"props":4515,"children":4516},{"class":149,"line":178},[4517,4521,4525,4529,4533,4537],{"type":49,"tag":147,"props":4518,"children":4519},{"style":166},[4520],{"type":55,"value":195},{"type":49,"tag":147,"props":4522,"children":4523},{"style":172},[4524],{"type":55,"value":134},{"type":49,"tag":147,"props":4526,"children":4527},{"style":172},[4528],{"type":55,"value":535},{"type":49,"tag":147,"props":4530,"children":4531},{"style":538},[4532],{"type":55,"value":1259},{"type":49,"tag":147,"props":4534,"children":4535},{"style":172},[4536],{"type":55,"value":546},{"type":49,"tag":147,"props":4538,"children":4539},{"style":172},[4540],{"type":55,"value":1168},{"type":49,"tag":147,"props":4542,"children":4543},{"class":149,"line":188},[4544,4549,4553,4557,4561,4565],{"type":49,"tag":147,"props":4545,"children":4546},{"style":166},[4547],{"type":55,"value":4548},"  minVersion",{"type":49,"tag":147,"props":4550,"children":4551},{"style":172},[4552],{"type":55,"value":134},{"type":49,"tag":147,"props":4554,"children":4555},{"style":172},[4556],{"type":55,"value":535},{"type":49,"tag":147,"props":4558,"children":4559},{"style":538},[4560],{"type":55,"value":1287},{"type":49,"tag":147,"props":4562,"children":4563},{"style":172},[4564],{"type":55,"value":546},{"type":49,"tag":147,"props":4566,"children":4567},{"style":172},[4568],{"type":55,"value":1168},{"type":49,"tag":147,"props":4570,"children":4571},{"class":149,"line":207},[4572],{"type":49,"tag":147,"props":4573,"children":4574},{"style":172},[4575],{"type":55,"value":1604},{"type":49,"tag":62,"props":4577,"children":4578},{},[4579,4581,4587],{"type":55,"value":4580},"If there is a known breaking change in a later version, also set ",{"type":49,"tag":92,"props":4582,"children":4584},{"className":4583},[],[4585],{"type":55,"value":4586},"maxVersion",{"type":55,"value":134},{"type":49,"tag":136,"props":4589,"children":4591},{"className":138,"code":4590,"language":140,"meta":141,"style":141},"requires: {\n  packageName: '@acme\u002Freact-analytics',\n  minVersion: '2.0.0',\n  maxVersion: '3.0.0',\n},\n",[4592],{"type":49,"tag":92,"props":4593,"children":4594},{"__ignoreMap":141},[4595,4610,4637,4664,4693],{"type":49,"tag":147,"props":4596,"children":4597},{"class":149,"line":150},[4598,4602,4606],{"type":49,"tag":147,"props":4599,"children":4600},{"style":166},[4601],{"type":55,"value":1042},{"type":49,"tag":147,"props":4603,"children":4604},{"style":172},[4605],{"type":55,"value":134},{"type":49,"tag":147,"props":4607,"children":4608},{"style":172},[4609],{"type":55,"value":175},{"type":49,"tag":147,"props":4611,"children":4612},{"class":149,"line":178},[4613,4617,4621,4625,4629,4633],{"type":49,"tag":147,"props":4614,"children":4615},{"style":166},[4616],{"type":55,"value":195},{"type":49,"tag":147,"props":4618,"children":4619},{"style":172},[4620],{"type":55,"value":134},{"type":49,"tag":147,"props":4622,"children":4623},{"style":172},[4624],{"type":55,"value":535},{"type":49,"tag":147,"props":4626,"children":4627},{"style":538},[4628],{"type":55,"value":1259},{"type":49,"tag":147,"props":4630,"children":4631},{"style":172},[4632],{"type":55,"value":546},{"type":49,"tag":147,"props":4634,"children":4635},{"style":172},[4636],{"type":55,"value":1168},{"type":49,"tag":147,"props":4638,"children":4639},{"class":149,"line":188},[4640,4644,4648,4652,4656,4660],{"type":49,"tag":147,"props":4641,"children":4642},{"style":166},[4643],{"type":55,"value":4548},{"type":49,"tag":147,"props":4645,"children":4646},{"style":172},[4647],{"type":55,"value":134},{"type":49,"tag":147,"props":4649,"children":4650},{"style":172},[4651],{"type":55,"value":535},{"type":49,"tag":147,"props":4653,"children":4654},{"style":538},[4655],{"type":55,"value":1287},{"type":49,"tag":147,"props":4657,"children":4658},{"style":172},[4659],{"type":55,"value":546},{"type":49,"tag":147,"props":4661,"children":4662},{"style":172},[4663],{"type":55,"value":1168},{"type":49,"tag":147,"props":4665,"children":4666},{"class":149,"line":207},[4667,4672,4676,4680,4685,4689],{"type":49,"tag":147,"props":4668,"children":4669},{"style":166},[4670],{"type":55,"value":4671},"  maxVersion",{"type":49,"tag":147,"props":4673,"children":4674},{"style":172},[4675],{"type":55,"value":134},{"type":49,"tag":147,"props":4677,"children":4678},{"style":172},[4679],{"type":55,"value":535},{"type":49,"tag":147,"props":4681,"children":4682},{"style":538},[4683],{"type":55,"value":4684},"3.0.0",{"type":49,"tag":147,"props":4686,"children":4687},{"style":172},[4688],{"type":55,"value":546},{"type":49,"tag":147,"props":4690,"children":4691},{"style":172},[4692],{"type":55,"value":1168},{"type":49,"tag":147,"props":4694,"children":4695},{"class":149,"line":217},[4696],{"type":49,"tag":147,"props":4697,"children":4698},{"style":172},[4699],{"type":55,"value":1604},{"type":49,"tag":62,"props":4701,"children":4702},{},[4703,4705,4711],{"type":55,"value":4704},"The marketplace uses semver comparison (",{"type":49,"tag":92,"props":4706,"children":4708},{"className":4707},[],[4709],{"type":55,"value":4710},"packages\u002Fdevtools\u002Fsrc\u002Ftabs\u002Fsemver-utils.ts",{"type":55,"value":4712},") to determine if the user's installed version satisfies the range. When it does not, the card shows a \"Bump Version\" action instead of \"Install\".",{"type":49,"tag":1002,"props":4714,"children":4716},{"id":4715},"medium-submitting-without-framework-field",[4717],{"type":55,"value":4718},"MEDIUM: Submitting without framework field",{"type":49,"tag":62,"props":4720,"children":4721},{},[4722,4723,4728],{"type":55,"value":3616},{"type":49,"tag":92,"props":4724,"children":4726},{"className":4725},[],[4727],{"type":55,"value":1034},{"type":55,"value":4729}," field enables marketplace filtering. Without it (or with it set incorrectly), users cannot find your plugin when browsing by framework, and the marketplace cannot determine whether to show it for the current project.",{"type":49,"tag":62,"props":4731,"children":4732},{},[4733,4735,4741,4743,4748],{"type":55,"value":4734},"The framework is required by the TypeScript interface, so omitting it is a compile error. The real mistake is setting it to ",{"type":49,"tag":92,"props":4736,"children":4738},{"className":4737},[],[4739],{"type":55,"value":4740},"'other'",{"type":55,"value":4742}," when the plugin is framework-specific. A React-only plugin tagged ",{"type":49,"tag":92,"props":4744,"children":4746},{"className":4745},[],[4747],{"type":55,"value":4740},{"type":55,"value":4749}," will appear for Solid, Vue, and Angular users who cannot use it.",{"type":49,"tag":62,"props":4751,"children":4752},{},[4753],{"type":55,"value":4754},"Wrong:",{"type":49,"tag":136,"props":4756,"children":4758},{"className":138,"code":4757,"language":140,"meta":141,"style":141},"framework: 'other', \u002F\u002F but the plugin only works with React\n",[4759],{"type":49,"tag":92,"props":4760,"children":4761},{"__ignoreMap":141},[4762],{"type":49,"tag":147,"props":4763,"children":4764},{"class":149,"line":150},[4765,4769,4773,4777,4781,4785,4789],{"type":49,"tag":147,"props":4766,"children":4767},{"style":166},[4768],{"type":55,"value":1034},{"type":49,"tag":147,"props":4770,"children":4771},{"style":172},[4772],{"type":55,"value":134},{"type":49,"tag":147,"props":4774,"children":4775},{"style":172},[4776],{"type":55,"value":535},{"type":49,"tag":147,"props":4778,"children":4779},{"style":538},[4780],{"type":55,"value":859},{"type":49,"tag":147,"props":4782,"children":4783},{"style":172},[4784],{"type":55,"value":546},{"type":49,"tag":147,"props":4786,"children":4787},{"style":172},[4788],{"type":55,"value":1574},{"type":49,"tag":147,"props":4790,"children":4791},{"style":182},[4792],{"type":55,"value":4793}," \u002F\u002F but the plugin only works with React\n",{"type":49,"tag":62,"props":4795,"children":4796},{},[4797],{"type":55,"value":4798},"Correct:",{"type":49,"tag":136,"props":4800,"children":4802},{"className":138,"code":4801,"language":140,"meta":141,"style":141},"framework: 'react',\n",[4803],{"type":49,"tag":92,"props":4804,"children":4805},{"__ignoreMap":141},[4806],{"type":49,"tag":147,"props":4807,"children":4808},{"class":149,"line":150},[4809,4813,4817,4821,4825,4829],{"type":49,"tag":147,"props":4810,"children":4811},{"style":166},[4812],{"type":55,"value":1034},{"type":49,"tag":147,"props":4814,"children":4815},{"style":172},[4816],{"type":55,"value":134},{"type":49,"tag":147,"props":4818,"children":4819},{"style":172},[4820],{"type":55,"value":535},{"type":49,"tag":147,"props":4822,"children":4823},{"style":538},[4824],{"type":55,"value":24},{"type":49,"tag":147,"props":4826,"children":4827},{"style":172},[4828],{"type":55,"value":546},{"type":49,"tag":147,"props":4830,"children":4831},{"style":172},[4832],{"type":55,"value":1168},{"type":49,"tag":62,"props":4834,"children":4835},{},[4836,4838,4843],{"type":55,"value":4837},"Use ",{"type":49,"tag":92,"props":4839,"children":4841},{"className":4840},[],[4842],{"type":55,"value":4740},{"type":55,"value":4844}," only for truly framework-agnostic plugins that work in any environment.",{"type":49,"tag":80,"props":4846,"children":4848},{"id":4847},"see-also",[4849],{"type":55,"value":4850},"See Also",{"type":49,"tag":3205,"props":4852,"children":4853},{},[4854,4863],{"type":49,"tag":1615,"props":4855,"children":4856},{},[4857,4861],{"type":49,"tag":66,"props":4858,"children":4859},{},[4860],{"type":55,"value":37},{"type":55,"value":4862}," -- Build a working devtools plugin panel before submitting to the marketplace",{"type":49,"tag":1615,"props":4864,"children":4865},{},[4866,4871],{"type":49,"tag":66,"props":4867,"children":4868},{},[4869],{"type":55,"value":4870},"devtools-app-setup",{"type":55,"value":4872}," -- TanStackDevtools component setup, plugins prop format, framework adapters",{"type":49,"tag":4874,"props":4875,"children":4876},"style",{},[4877],{"type":55,"value":4878},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":4880,"total":260},[4881,4894,4906,4920,4938,4949,4954],{"slug":4870,"name":4870,"fn":4882,"description":4883,"org":4884,"tags":4885,"stars":16,"repoUrl":17,"updatedAt":4893},"configure TanStack Devtools for applications","Install TanStack Devtools, pick framework adapter (React\u002FVue\u002FSolid\u002FPreact), register plugins via plugins prop, configure shell (position, hotkeys, theme, hideUntilHover, requireUrlFlag, eventBusConfig). TanStackDevtools component, defaultOpen, localStorage persistence.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4886,4889,4892],{"name":4887,"slug":4888,"type":14},"Debugging","debugging",{"name":4890,"slug":4891,"type":14},"Frontend","frontend",{"name":9,"slug":8,"type":14},"2026-07-16T06:04:05.544655",{"slug":4895,"name":4895,"fn":4896,"description":4897,"org":4898,"tags":4899,"stars":16,"repoUrl":17,"updatedAt":4905},"devtools-bidirectional","implement bidirectional devtools communication","Two-way event patterns between devtools panel and application. App-to-devtools observation, devtools-to-app commands, time-travel debugging with snapshots and revert. structuredClone for snapshot safety, distinct event suffixes for observation vs commands, serializable payloads only.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4900,4901,4904],{"name":4887,"slug":4888,"type":14},{"name":4902,"slug":4903,"type":14},"Observability","observability",{"name":9,"slug":8,"type":14},"2026-07-16T06:04:40.486044",{"slug":4907,"name":4907,"fn":4908,"description":4909,"org":4910,"tags":4911,"stars":16,"repoUrl":17,"updatedAt":4919},"devtools-event-client","implement typed event clients for libraries","Create typed EventClient for a library. Define event maps with typed payloads, pluginId auto-prepend namespacing, emit()\u002Fon()\u002FonAll()\u002FonAllPluginEvents() API. Connection lifecycle (5 retries, 300ms), event queuing, enabled\u002Fdisabled state, SSR fallbacks, singleton pattern. Unique pluginId requirement to avoid event collisions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4912,4915,4918],{"name":4913,"slug":4914,"type":14},"API Development","api-development",{"name":4916,"slug":4917,"type":14},"Engineering","engineering",{"name":9,"slug":8,"type":14},"2026-07-16T06:04:34.254605",{"slug":4921,"name":4921,"fn":4922,"description":4923,"org":4924,"tags":4925,"stars":16,"repoUrl":17,"updatedAt":4937},"devtools-framework-adapters","create framework adapters for devtools","Use devtools-utils factory functions to create per-framework plugin adapters. createReactPlugin\u002FcreateSolidPlugin\u002FcreateVuePlugin\u002FcreatePreactPlugin, createReactPanel\u002FcreateSolidPanel\u002FcreateVuePanel\u002FcreatePreactPanel. [Plugin, NoOpPlugin] tuple for tree-shaking. DevtoolsPanelProps (theme). Vue uses (name, component) not options object. Solid render must be function.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4926,4927,4930,4932,4934,4935],{"name":4916,"slug":4917,"type":14},{"name":4928,"slug":4929,"type":14},"Preact","preact",{"name":4931,"slug":24,"type":14},"React",{"name":4933,"slug":25,"type":14},"SolidJS",{"name":9,"slug":8,"type":14},{"name":4936,"slug":808,"type":14},"Vue","2026-07-16T06:04:33.553047",{"slug":4939,"name":4939,"fn":4940,"description":4941,"org":4942,"tags":4943,"stars":16,"repoUrl":17,"updatedAt":4948},"devtools-instrumentation","instrument library code for devtools","Analyze library codebase for critical architecture and debugging points, add strategic event emissions. Identify middleware boundaries, state transitions, lifecycle hooks. Consolidate events (1 not 15), debounce high-frequency updates, DRY shared payload fields, guard emit() for production. Transparent server\u002Fclient event bridging.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4944,4945,4946,4947],{"name":4887,"slug":4888,"type":14},{"name":4916,"slug":4917,"type":14},{"name":4902,"slug":4903,"type":14},{"name":9,"slug":8,"type":14},"2026-07-16T06:04:33.21467",{"slug":4,"name":4,"fn":5,"description":6,"org":4950,"tags":4951,"stars":16,"repoUrl":17,"updatedAt":18},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4952,4953],{"name":13,"slug":13,"type":14},{"name":9,"slug":8,"type":14},{"slug":37,"name":37,"fn":4955,"description":4956,"org":4957,"tags":4958,"stars":16,"repoUrl":17,"updatedAt":4965},"build TanStack devtools panels","Build devtools panel components that display emitted event data. Listen via EventClient.on(), handle theme (light\u002Fdark), use @tanstack\u002Fdevtools-ui components. Plugin registration (name, render, id, defaultOpen), lifecycle (mount, activate, destroy), max 3 active plugins. Two paths: Solid.js core with devtools-ui for multi-framework support, or framework-specific panels.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4959,4960,4961,4962],{"name":4890,"slug":4891,"type":14},{"name":4902,"slug":4903,"type":14},{"name":9,"slug":8,"type":14},{"name":4963,"slug":4964,"type":14},"UI Components","ui-components","2026-07-16T06:03:59.434886",{"items":4967,"total":5103},[4968,4982,4992,5002,5017,5029,5039,5049,5062,5072,5083,5093],{"slug":4969,"name":4969,"fn":4970,"description":4971,"org":4972,"tags":4973,"stars":4979,"repoUrl":4980,"updatedAt":4981},"aggregation","perform data aggregation in TanStack Table","Aggregate TanStack Table columns independently of grouping, including grand totals, caller-selected row totals, multiple keyed aggregations, custom context-based definitions, grouped merges, manual values, and worker constraints.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4974,4977,4978],{"name":4975,"slug":4976,"type":14},"Data Analysis","data-analysis",{"name":4890,"slug":4891,"type":14},{"name":9,"slug":8,"type":14},28175,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Ftable","2026-07-30T05:25:59.429787",{"slug":4983,"name":4983,"fn":4984,"description":4985,"org":4986,"tags":4987,"stars":4979,"repoUrl":4980,"updatedAt":4991},"api-not-found","diagnose TanStack Table API errors","Diagnose missing TanStack Table v9 exports, options, state slices, and instance methods. Load before inventing an API when code sees a type error, undefined feature method, absent object key, adapter mismatch, or v8-shaped example.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4988,4989,4990],{"name":4887,"slug":4888,"type":14},{"name":4890,"slug":4891,"type":14},{"name":9,"slug":8,"type":14},"2026-07-30T05:26:05.418735",{"slug":4993,"name":4993,"fn":4994,"description":4995,"org":4996,"tags":4997,"stars":4979,"repoUrl":4980,"updatedAt":5001},"cell-selection","select rectangular cell ranges in tables","Select rectangular cell ranges with cellSelectionFeature: two-corner range state keyed by row and column id, mousedown\u002Fmouseenter handlers, selection edges, render-order resolution under pinning, and autoResetCellSelection. Load when ranges widen unexpectedly after sorting or column reordering, when a drag re-renders the whole table, or when building copy-to-clipboard from a selection.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[4998,4999,5000],{"name":4975,"slug":4976,"type":14},{"name":9,"slug":8,"type":14},{"name":4963,"slug":4964,"type":14},"2026-07-30T05:25:38.403427",{"slug":5003,"name":5003,"fn":5004,"description":5005,"org":5006,"tags":5007,"stars":4979,"repoUrl":4980,"updatedAt":5016},"client-vs-server","manage TanStack Table data pipelines","Choose client or server ownership for filtering, grouping, sorting, expanding, and pagination in TanStack Table v9. Load for manual* flags, mixed pipelines, server counts, or deciding which dataset each row-model stage receives.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[5008,5011,5012,5015],{"name":5009,"slug":5010,"type":14},"Data Pipeline","data-pipeline",{"name":4890,"slug":4891,"type":14},{"name":5013,"slug":5014,"type":14},"Performance","performance",{"name":9,"slug":8,"type":14},"2026-07-30T05:25:45.400104",{"slug":5018,"name":5018,"fn":5019,"description":5020,"org":5021,"tags":5022,"stars":4979,"repoUrl":4980,"updatedAt":5028},"column-faceting","build faceted filter UIs","Build faceted filter UIs with columnFacetingFeature, facetedRowModel, facetedUniqueValues, and facetedMinMaxValues. Load for facet counts, numeric ranges, own-filter exclusion, or server-page facet completeness.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[5023,5026,5027],{"name":5024,"slug":5025,"type":14},"Data Visualization","data-visualization",{"name":4890,"slug":4891,"type":14},{"name":9,"slug":8,"type":14},"2026-07-30T05:25:41.397257",{"slug":5030,"name":5030,"fn":5031,"description":5032,"org":5033,"tags":5034,"stars":4979,"repoUrl":4980,"updatedAt":5038},"column-filtering","implement column filtering in TanStack Table","Filter columns with columnFilteringFeature, filteredRowModel, filterFns, filterMeta, nested-row direction, and manualFiltering. Load for accessor compatibility, controlled filter updaters, fuzzy metadata, or client\u002Fserver ownership.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[5035,5036,5037],{"name":4975,"slug":4976,"type":14},{"name":4890,"slug":4891,"type":14},{"name":9,"slug":8,"type":14},"2026-07-30T05:25:53.391632",{"slug":5040,"name":5040,"fn":5041,"description":5042,"org":5043,"tags":5044,"stars":4979,"repoUrl":4980,"updatedAt":5048},"column-ordering","manage TanStack Table column ordering","Control TanStack Table v9 leaf columnOrder with stable IDs while accounting for pinning regions, visibility, and groupedColumnMode precedence. Load for drag-and-drop columns or rendered order that differs from state.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[5045,5046,5047],{"name":4890,"slug":4891,"type":14},{"name":9,"slug":8,"type":14},{"name":4963,"slug":4964,"type":14},"2026-07-30T05:26:03.37801",{"slug":5050,"name":5050,"fn":5051,"description":5052,"org":5053,"tags":5054,"stars":4979,"repoUrl":4980,"updatedAt":5061},"column-pinning","configure column pinning in TanStack Table","Pin columns into logical start, center, and end regions with columnPinningFeature and renderer-owned sticky CSS. Load for RTL offsets, z-index, backgrounds, overflow, widths, gaps, or overlaps.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[5055,5058,5059,5060],{"name":5056,"slug":5057,"type":14},"CSS","css",{"name":4890,"slug":4891,"type":14},{"name":9,"slug":8,"type":14},{"name":4963,"slug":4964,"type":14},"2026-07-30T05:25:55.377366",{"slug":5063,"name":5063,"fn":5064,"description":5065,"org":5066,"tags":5067,"stars":4979,"repoUrl":4980,"updatedAt":5071},"column-resizing","implement column resizing in TanStack Table","Wire columnResizingFeature, header.getResizeHandler, resize mode and direction, pointer or touch events, and performant CSS-variable updates. Load when resize state changes but widths do not, or large tables resize slowly.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[5068,5069,5070],{"name":4890,"slug":4891,"type":14},{"name":9,"slug":8,"type":14},{"name":4963,"slug":4964,"type":14},"2026-07-30T05:25:51.400011",{"slug":5073,"name":5073,"fn":5074,"description":5075,"org":5076,"tags":5077,"stars":4979,"repoUrl":4980,"updatedAt":5082},"column-sizing","configure column sizing in TanStack Table","Use columnSizingFeature numeric size, minSize, maxSize, getSize, getStart, getAfter, and total-size APIs in table, grid, or flex CSS. Load for auto or percentage misconceptions and sizing\u002Fpinning layout mismatch.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[5078,5079,5080,5081],{"name":5056,"slug":5057,"type":14},{"name":4890,"slug":4891,"type":14},{"name":9,"slug":8,"type":14},{"name":4963,"slug":4964,"type":14},"2026-07-30T05:25:48.703799",{"slug":5084,"name":5084,"fn":5085,"description":5086,"org":5087,"tags":5088,"stars":4979,"repoUrl":4980,"updatedAt":5092},"column-visibility","manage column visibility in TanStack Table","Hide columns with columnVisibilityFeature while rendering visibility-aware header, column, and cell collections. Load when hidden columns remain in the DOM, false-versus-absent state is confused, or enableHiding is misunderstood.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[5089,5090,5091],{"name":4890,"slug":4891,"type":14},{"name":9,"slug":8,"type":14},{"name":4963,"slug":4964,"type":14},"2026-07-30T05:25:47.367943",{"slug":5094,"name":5094,"fn":5095,"description":5096,"org":5097,"tags":5098,"stars":4979,"repoUrl":4980,"updatedAt":5102},"core","build data grids with TanStack Table","Use TanStack Table v9 as a headless data-grid state and row-processing engine. Load for first-table architecture, stable data and columns, row numbering with getDisplayIndex, semantic rendering, framework adapter choice, or deciding what Table owns versus the renderer.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[5099,5100,5101],{"name":4975,"slug":4976,"type":14},{"name":4890,"slug":4891,"type":14},{"name":4963,"slug":4964,"type":14},"2026-07-30T05:25:52.366295",125]