// Generated by scripts/generate-manifest.mjs. Do not edit by hand. import type { AddOnCompiled } from '../../../../../types.js' type TemplateRecord = Record type TemplateAddOn = TemplateRecord & { integrations?: Array routes?: Array } type TemplateRenderContext = { [key: string]: any packageManager: any projectName: any typescript: any tailwind: any blank: any js: any jsx: any fileRouter: any codeRouter: any routerOnly: any includeExamples: any addOnEnabled: Record addOnOption: Record addOns: Array integrations: Array routes: Array getPackageManagerAddScript: (...args: Array) => string getPackageManagerRunScript: (...args: Array) => string getPackageManagerExecuteScript: (...args: Array) => string relativePath: (...args: Array) => string integrationImportContent: (...args: Array) => string integrationImportCode: (...args: Array) => string | undefined renderTemplate: (content: string) => string ignoreFile: () => never } type TemplateRenderer = (context: TemplateRenderContext) => string | undefined function __escapeXML(value: unknown) { if (value === undefined || value === null) { return '' } return String(value).replace(/[&<>'"]/g, (character) => { switch (character) { case '&': return '&' case '<': return '<' case '>': return '>' case '"': return '"' case "'": return ''' default: return character } }) } export function getManifestTemplateKey(template: string) { let hash = 0x811c9dc5 for (let i = 0; i < template.length; i++) { hash ^= template.charCodeAt(i) hash = Math.imul(hash, 0x01000193) >>> 0 } return `${hash.toString(16).padStart(8, '0')}:${template.length}` } function __render_994aa035_1674(context: TemplateRenderContext) { const { packageManager, projectName, typescript, tailwind, blank, js, jsx, fileRouter, codeRouter, routerOnly, includeExamples, addOnEnabled, addOnOption, addOns, integrations, routes, getPackageManagerAddScript, getPackageManagerRunScript, getPackageManagerExecuteScript, relativePath, integrationImportContent, integrationImportCode, renderTemplate, ignoreFile, } = context let __output = '' const __append = (value: unknown) => { if (value !== undefined && value !== null) { __output += String(value) } } __append("import { ") if (fileRouter) { __append("createFileRoute") } else { __append("createRoute") } __append(" } from '@tanstack/solid-router'\nimport { useStore } from '@tanstack/solid-store'\n\nimport { fullName, store } from '../lib/demo-store'\n\n") if (codeRouter) { __append("\nimport type { RootRoute } from '@tanstack/solid-router'\n") } else { __append("\nexport const Route = createFileRoute('/demo/store')({\n component: DemoStore,\n})\n") } __append("\n\nfunction FirstName() {\n const firstName = useStore(store, (state) => state.firstName)\n return (\n \n store.setState((state) => ({ ...state, firstName: e.target.value }))\n }\n class=\"demo-input\"\n />\n )\n}\n\nfunction LastName() {\n const lastName = useStore(store, (state) => state.lastName)\n return (\n \n store.setState((state) => ({ ...state, lastName: e.target.value }))\n }\n class=\"demo-input\"\n />\n )\n}\n\nfunction FullName() {\n const fName = useStore(fullName)\n return (\n
\n {fName()}\n
\n )\n}\n\nfunction DemoStore() {\n return (\n
\n
\n

TanStack Store

\n

Store Example

\n \n \n \n
\n
\n )\n}\n\n") if (codeRouter) { __append("\nexport default (parentRoute: RootRoute) => createRoute({\n path: '/demo/store',\n component: DemoStore,\n getParentRoute: () => parentRoute,\n})\n") } __append("\n \n") return __output } const templateRenderers: Record = { "994aa035:1674": __render_994aa035_1674, } export function hasManifestTemplate(template: string) { return getManifestTemplateKey(template) in templateRenderers } export function renderManifestTemplate( template: string, context: TemplateRenderContext, ) { const key = getManifestTemplateKey(template) const renderer = templateRenderers[key] if (!renderer) { throw new Error(`Template ${key} was not precompiled into the manifest`) } return renderer(context) ?? '' } export const addOn = { "name": "Store", "description": "Add TanStack Store to your application.", "phase": "add-on", "modes": [ "file-router", "code-router" ], "type": "add-on", "category": "tanstack", "color": "#B89A56", "link": "https://tanstack.com/store/latest", "routes": [ { "url": "/demo/store", "name": "Store", "path": "src/routes/demo.store.tsx", "jsName": "StoreDemo" } ], "id": "store", "version": "0.0.0", "packageAdditions": { "dependencies": { "@tanstack/solid-store": "latest", "@tanstack/store": "latest" } }, "readmeIsEjs": false, "files": { "src/lib/demo-store.ts": "import { Store } from '@tanstack/store'\n\nexport const store = new Store({\n firstName: 'Jane',\n lastName: 'Smith',\n})\n\nexport const fullName = new Store(`${store.state.firstName} ${store.state.lastName}`)\n\nstore.subscribe(() => {\n fullName.setState(() => `${store.state.firstName} ${store.state.lastName}`)\n})\n", "src/routes/demo.store.tsx.ejs": "import { <% if (fileRouter) { %>createFileRoute<% } else { %>createRoute<% } %> } from '@tanstack/solid-router'\nimport { useStore } from '@tanstack/solid-store'\n\nimport { fullName, store } from '../lib/demo-store'\n\n<% if (codeRouter) { %>\nimport type { RootRoute } from '@tanstack/solid-router'\n<% } else { %>\nexport const Route = createFileRoute('/demo/store')({\n component: DemoStore,\n})\n<% } %>\n\nfunction FirstName() {\n const firstName = useStore(store, (state) => state.firstName)\n return (\n \n store.setState((state) => ({ ...state, firstName: e.target.value }))\n }\n class=\"demo-input\"\n />\n )\n}\n\nfunction LastName() {\n const lastName = useStore(store, (state) => state.lastName)\n return (\n \n store.setState((state) => ({ ...state, lastName: e.target.value }))\n }\n class=\"demo-input\"\n />\n )\n}\n\nfunction FullName() {\n const fName = useStore(fullName)\n return (\n
\n {fName()}\n
\n )\n}\n\nfunction DemoStore() {\n return (\n
\n
\n

TanStack Store

\n

Store Example

\n \n \n \n
\n
\n )\n}\n\n<% if (codeRouter) { %>\nexport default (parentRoute: RootRoute) => createRoute({\n path: '/demo/store',\n component: DemoStore,\n getParentRoute: () => parentRoute,\n})\n<% } %>\n \n" }, "deletedFiles": [], "smallLogo": "" } satisfies AddOnCompiled