├── netlify.toml ├── src ├── global.d.ts ├── routes │ ├── [...404].tsx │ ├── solid-meta │ │ ├── reference │ │ │ ├── data.json │ │ │ └── meta │ │ │ │ ├── data.json │ │ │ │ ├── metaprovider.mdx │ │ │ │ ├── title.mdx │ │ │ │ ├── base.mdx │ │ │ │ ├── style.mdx │ │ │ │ └── meta.mdx │ │ ├── data.json │ │ ├── getting-started │ │ │ ├── data.json │ │ │ ├── client-setup.mdx │ │ │ └── server-setup.mdx │ │ └── index.mdx │ ├── solid-router │ │ ├── guides │ │ │ └── data.json │ │ ├── rendering-modes │ │ │ ├── data.json │ │ │ ├── spa.mdx │ │ │ └── ssr.mdx │ │ ├── reference │ │ │ ├── preload-functions │ │ │ │ └── data.json │ │ │ ├── response-helpers │ │ │ │ └── data.json │ │ │ ├── data.json │ │ │ ├── components │ │ │ │ ├── data.json │ │ │ │ ├── navigate.mdx │ │ │ │ └── route.mdx │ │ │ ├── data-apis │ │ │ │ ├── data.json │ │ │ │ ├── use-action.mdx │ │ │ │ └── revalidate.mdx │ │ │ └── primitives │ │ │ │ ├── data.json │ │ │ │ ├── use-is-routing.mdx │ │ │ │ ├── use-current-matches.mdx │ │ │ │ ├── use-resolved-path.mdx │ │ │ │ ├── use-navigate.mdx │ │ │ │ ├── use-location.mdx │ │ │ │ ├── use-preload-route.mdx │ │ │ │ ├── use-before-leave.mdx │ │ │ │ ├── use-params.mdx │ │ │ │ └── use-match.mdx │ │ ├── advanced-concepts │ │ │ ├── data.json │ │ │ └── lazy-loading.mdx │ │ ├── data-fetching │ │ │ ├── data.json │ │ │ └── how-to │ │ │ │ ├── data.json │ │ │ │ └── handle-error-and-loading-states.mdx │ │ ├── getting-started │ │ │ └── data.json │ │ ├── data.json │ │ ├── concepts │ │ │ ├── data.json │ │ │ └── catch-all.mdx │ │ └── index.mdx │ ├── reference │ │ ├── lifecycle │ │ │ ├── data.json │ │ │ ├── on-mount.mdx │ │ │ └── on-cleanup.mdx │ │ ├── server-utilities │ │ │ └── data.json │ │ ├── basic-reactivity │ │ │ └── data.json │ │ ├── component-apis │ │ │ ├── data.json │ │ │ ├── use-context.mdx │ │ │ └── create-unique-id.mdx │ │ ├── store-utilities │ │ │ ├── data.json │ │ │ ├── unwrap.mdx │ │ │ └── produce.mdx │ │ ├── secondary-primitives │ │ │ ├── data.json │ │ │ ├── create-reaction.mdx │ │ │ └── create-deferred.mdx │ │ ├── rendering │ │ │ ├── data.json │ │ │ ├── is-server.mdx │ │ │ ├── dev.mdx │ │ │ ├── render-to-string.mdx │ │ │ ├── hydration-script.mdx │ │ │ ├── hydrate.mdx │ │ │ ├── render-to-string-async.mdx │ │ │ └── render.mdx │ │ ├── data.json │ │ ├── components │ │ │ ├── data.json │ │ │ ├── no-hydration.mdx │ │ │ └── dynamic.mdx │ │ ├── jsx-attributes │ │ │ ├── data.json │ │ │ ├── innerhtml.mdx │ │ │ ├── prop.mdx │ │ │ ├── attr.mdx │ │ │ ├── textcontent.mdx │ │ │ ├── once.mdx │ │ │ ├── bool.mdx │ │ │ ├── ref.mdx │ │ │ ├── style.mdx │ │ │ └── on.mdx │ │ └── reactive-utilities │ │ │ ├── data.json │ │ │ ├── start-transition.mdx │ │ │ ├── catch-error.mdx │ │ │ ├── use-transition.mdx │ │ │ ├── observable.mdx │ │ │ ├── merge-props.mdx │ │ │ ├── index-array.mdx │ │ │ ├── map-array.mdx │ │ │ ├── untrack.mdx │ │ │ ├── get-owner.mdx │ │ │ ├── from.mdx │ │ │ └── split-props.mdx │ ├── advanced-concepts │ │ └── data.json │ ├── solid-start │ │ ├── reference │ │ │ ├── config │ │ │ │ └── data.json │ │ │ ├── routing │ │ │ │ ├── data.json │ │ │ │ └── file-routes.mdx │ │ │ ├── client │ │ │ │ ├── data.json │ │ │ │ ├── start-client.mdx │ │ │ │ └── mount.mdx │ │ │ ├── data.json │ │ │ ├── entrypoints │ │ │ │ ├── data.json │ │ │ │ ├── entry-client.mdx │ │ │ │ ├── app-config.mdx │ │ │ │ ├── entry-server.mdx │ │ │ │ └── app.mdx │ │ │ └── server │ │ │ │ ├── data.json │ │ │ │ ├── start-server.mdx │ │ │ │ ├── get-server-function-meta.mdx │ │ │ │ ├── get.mdx │ │ │ │ ├── http-header.mdx │ │ │ │ └── create-handler.mdx │ │ ├── guides │ │ │ ├── data.json │ │ │ └── service-workers.mdx │ │ ├── data.json │ │ ├── advanced │ │ │ ├── data.json │ │ │ ├── request-events.mdx │ │ │ ├── auth.mdx │ │ │ └── websocket.mdx │ │ └── building-your-application │ │ │ ├── data.json │ │ │ └── route-prerendering.mdx │ ├── concepts │ │ ├── derived-values │ │ │ ├── data.json │ │ │ └── derived-signals.mdx │ │ ├── components │ │ │ └── data.json │ │ ├── control-flow │ │ │ └── data.json │ │ └── data.json │ ├── configuration │ │ └── data.json │ ├── data.json │ └── guides │ │ ├── styling-components │ │ ├── data.json │ │ └── less.mdx │ │ ├── deployment-options │ │ ├── data.json │ │ ├── stormkit.mdx │ │ └── aws-via-sst.mdx │ │ ├── data.json │ │ └── deploying-your-app.mdx ├── entry-client.tsx ├── middleware │ └── index.ts ├── ui │ ├── layout │ │ ├── hero-code-snippet.code │ │ ├── side-panel.tsx │ │ ├── hero-code-snippet.tsx │ │ ├── contribute.tsx │ │ └── mobile-navigation.tsx │ ├── eraser-link │ │ └── eraser-link.css │ ├── not-found.tsx │ ├── edit-page-link.tsx │ ├── button-link.tsx │ ├── i18n-anchor.tsx │ ├── page-issue-link.tsx │ ├── use-project.ts │ └── tabs.tsx ├── i18n │ ├── dictionaries │ │ ├── index.ts │ │ └── pt-br │ │ │ └── ui.ts │ ├── config.ts │ ├── translator.ts │ ├── helpers.ts │ └── i18n-context.tsx ├── app.tsx ├── data │ └── get-nav.tsx ├── entry-server.tsx ├── solidbase-theme │ └── Layout.tsx ├── styles │ ├── prism.css │ └── fonts.css └── utils │ └── route-metadata-helper.ts ├── .prettierignore ├── public ├── favicon.ico ├── fonts │ ├── Geist-Bold.woff2 │ ├── Geist-Light.woff2 │ ├── Geist-Medium.woff2 │ ├── Geist-Regular.woff2 │ ├── Inter-Regular.woff2 │ ├── Geist-SemiBold.woff2 │ ├── GeistMono-Bold.woff2 │ ├── GeistMono-Medium.woff2 │ ├── GeistMono-Regular.woff2 │ └── GeistMono-SemiBold.woff2 ├── robots.txt ├── images │ ├── tutorial │ │ ├── solid-start-app.png │ │ ├── template-files-js.png │ │ └── template-files-ts.png │ └── how-to-guides │ │ ├── deployment │ │ ├── netlify-deploy.png │ │ ├── vercel-deploy.png │ │ ├── vercel-login.png │ │ ├── cloudflare-login.png │ │ ├── cloudflare-setup.png │ │ ├── google-cloud-create.png │ │ ├── netlify-cli-success.png │ │ ├── netlify-dashboard.png │ │ ├── railway-dashboard.png │ │ ├── railway-new-project.png │ │ ├── vercel-deploy-done.png │ │ ├── vercel-import-repo.png │ │ ├── cloudflare-dashboard.png │ │ ├── firebase-deploy-done.png │ │ ├── Flightcontrol-link-AWS.png │ │ ├── flightcontrol-services.png │ │ ├── netlify-connect-import.png │ │ ├── railway-deploy-success.png │ │ ├── railway-generate-domain.png │ │ ├── railway-select-project.png │ │ ├── cloudflare-after-connection.png │ │ ├── flightcontrol-config-option.png │ │ ├── flightcontrol-connect-github.png │ │ ├── flightcontrol-static-website.png │ │ ├── google-cloud-container-registry.png │ │ └── google-cloud-project-dashboard.png │ │ └── comparison │ │ └── react │ │ ├── react-simple-state-update-dark.png │ │ ├── solid-simple-state-update-dark.png │ │ ├── react-simple-state-update-light.png │ │ └── solid-simple-state-update-light.png ├── assets │ ├── vercel.svg │ ├── cloudflare-pages.svg │ ├── tailwind.svg │ ├── netlify.svg │ ├── uno.svg │ ├── stormkit.svg │ ├── railway.svg │ ├── zerops.svg │ └── firebase.svg ├── scripts │ └── browser-specific.js └── favicon.svg ├── postcss.config.js ├── .prettierrc ├── .github ├── ISSUE_TEMPLATE │ ├── config.yml │ ├── OTHER.yml │ ├── REQUEST.yml │ ├── CONTENT.yml │ └── BUGS.yml ├── dependabot.yml ├── actions │ └── install │ │ └── action.yml ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── static_checks.yml │ └── orama_sync.yml ├── scripts ├── collections │ ├── utils │ │ ├── create-dir.mjs │ │ ├── get-frontmatter.mjs │ │ ├── write-file.mjs │ │ └── get-dir-data.mjs │ ├── create-flat-entry-list.mjs │ ├── create-nav-tree.mjs │ └── schemas.mjs └── generateSitemap.js ├── tsconfig.json ├── .kodiak.toml ├── global.d.ts ├── env.d.ts ├── .gitignore ├── tailwind.config.ts └── eslint.config.ts /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | publish = "dist/" -------------------------------------------------------------------------------- /src/global.d.ts: -------------------------------------------------------------------------------- 1 | // 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .solid 2 | dist 3 | *.min.* 4 | package-lock.json -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /src/routes/[...404].tsx: -------------------------------------------------------------------------------- 1 | export default function NoEntry() { 2 | throw new Error("404"); 3 | } 4 | -------------------------------------------------------------------------------- /src/routes/solid-meta/reference/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Reference", 3 | "pages": ["meta"] 4 | } 5 | -------------------------------------------------------------------------------- /src/routes/solid-router/guides/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Guides", 3 | "pages": ["migration.mdx"] 4 | } 5 | -------------------------------------------------------------------------------- /public/fonts/Geist-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/fonts/Geist-Bold.woff2 -------------------------------------------------------------------------------- /src/routes/solid-meta/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "root", 3 | "pages": ["index.mdx", "getting-started"] 4 | } 5 | -------------------------------------------------------------------------------- /public/fonts/Geist-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/fonts/Geist-Light.woff2 -------------------------------------------------------------------------------- /public/fonts/Geist-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/fonts/Geist-Medium.woff2 -------------------------------------------------------------------------------- /public/fonts/Geist-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/fonts/Geist-Regular.woff2 -------------------------------------------------------------------------------- /public/fonts/Inter-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/fonts/Inter-Regular.woff2 -------------------------------------------------------------------------------- /public/fonts/Geist-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/fonts/Geist-SemiBold.woff2 -------------------------------------------------------------------------------- /public/fonts/GeistMono-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/fonts/GeistMono-Bold.woff2 -------------------------------------------------------------------------------- /public/fonts/GeistMono-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/fonts/GeistMono-Medium.woff2 -------------------------------------------------------------------------------- /public/fonts/GeistMono-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/fonts/GeistMono-Regular.woff2 -------------------------------------------------------------------------------- /public/fonts/GeistMono-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/fonts/GeistMono-SemiBold.woff2 -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-Agent: * 2 | Allow: / 3 | Disallow: /i18n-status/ 4 | Sitemap: https://docs.solidjs.com/sitemap.xml 5 | -------------------------------------------------------------------------------- /src/routes/reference/lifecycle/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Lifecycle", 3 | "pages": ["on-mount.mdx", "on-cleanup.mdx"] 4 | } 5 | -------------------------------------------------------------------------------- /src/routes/advanced-concepts/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Advanced concepts", 3 | "pages": ["fine-grained-reactivity.mdx"] 4 | } 5 | -------------------------------------------------------------------------------- /src/routes/solid-router/rendering-modes/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Rendering modes", 3 | "pages": ["spa.mdx", "ssr.mdx"] 4 | } 5 | -------------------------------------------------------------------------------- /src/routes/solid-start/reference/config/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Config", 3 | "pages": [ 4 | "define-config.mdx" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/routes/solid-start/reference/routing/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Routing", 3 | "pages": [ 4 | "file-routes.mdx" 5 | ] 6 | } -------------------------------------------------------------------------------- /public/images/tutorial/solid-start-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/tutorial/solid-start-app.png -------------------------------------------------------------------------------- /src/routes/solid-router/reference/preload-functions/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Preload functions", 3 | "pages": ["preload.mdx"] 4 | } 5 | -------------------------------------------------------------------------------- /public/images/tutorial/template-files-js.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/tutorial/template-files-js.png -------------------------------------------------------------------------------- /public/images/tutorial/template-files-ts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/tutorial/template-files-ts.png -------------------------------------------------------------------------------- /src/routes/concepts/derived-values/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Derived values", 3 | "pages": ["derived-signals.mdx", "memos.mdx"] 4 | } 5 | -------------------------------------------------------------------------------- /src/routes/configuration/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Configuration", 3 | "pages": ["environment-variables.mdx", "typescript.mdx"] 4 | } 5 | -------------------------------------------------------------------------------- /src/routes/reference/server-utilities/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Server utilities", 3 | "pages": [ 4 | "get-request-event.mdx" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | "tailwindcss/nesting": {}, 4 | tailwindcss: {}, 5 | autoprefixer: {}, 6 | }, 7 | }; 8 | -------------------------------------------------------------------------------- /public/assets/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/entry-client.tsx: -------------------------------------------------------------------------------- 1 | import { mount, StartClient } from "@solidjs/start/client"; 2 | 3 | mount(() => , document.getElementById("app")!); 4 | -------------------------------------------------------------------------------- /src/routes/solid-router/advanced-concepts/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Advanced concepts", 3 | "pages": ["preloading.mdx", "lazy-loading.mdx"] 4 | } 5 | -------------------------------------------------------------------------------- /src/routes/concepts/components/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Components", 3 | "pages": ["basics.mdx", "class-style.mdx", "event-handlers.mdx", "props.mdx"] 4 | } 5 | -------------------------------------------------------------------------------- /src/routes/solid-router/reference/response-helpers/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Response helpers", 3 | "pages": ["json.mdx", "redirect.mdx", "reload.mdx"] 4 | } 5 | -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/netlify-deploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/netlify-deploy.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/vercel-deploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/vercel-deploy.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/vercel-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/vercel-login.png -------------------------------------------------------------------------------- /src/routes/solid-router/data-fetching/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Data fetching", 3 | "pages": ["queries.mdx", "streaming.mdx", "revalidation.mdx", "how-to"] 4 | } 5 | -------------------------------------------------------------------------------- /src/routes/solid-router/data-fetching/how-to/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "How to", 3 | "pages": ["preload-data.mdx", "handle-error-and-loading-states.mdx"] 4 | } 5 | -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/cloudflare-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/cloudflare-login.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/cloudflare-setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/cloudflare-setup.png -------------------------------------------------------------------------------- /src/routes/solid-router/getting-started/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Getting started", 3 | "pages": ["installation-and-setup.mdx", "component.mdx", "config.mdx"] 4 | } 5 | -------------------------------------------------------------------------------- /src/routes/solid-start/reference/client/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Client", 3 | "pages": [ 4 | "client-only.mdx", 5 | "mount.mdx", 6 | "start-client.mdx" 7 | ] 8 | } -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/google-cloud-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/google-cloud-create.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/netlify-cli-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/netlify-cli-success.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/netlify-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/netlify-dashboard.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/railway-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/railway-dashboard.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/railway-new-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/railway-new-project.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/vercel-deploy-done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/vercel-deploy-done.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/vercel-import-repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/vercel-import-repo.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/cloudflare-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/cloudflare-dashboard.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/firebase-deploy-done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/firebase-deploy-done.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/Flightcontrol-link-AWS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/Flightcontrol-link-AWS.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/flightcontrol-services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/flightcontrol-services.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/netlify-connect-import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/netlify-connect-import.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/railway-deploy-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/railway-deploy-success.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/railway-generate-domain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/railway-generate-domain.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/railway-select-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/railway-select-project.png -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "tabWidth": 2, 4 | "semi": true, 5 | "singleQuote": false, 6 | "useTabs": true, 7 | "plugins": ["prettier-plugin-tailwindcss"] 8 | } 9 | -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/cloudflare-after-connection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/cloudflare-after-connection.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/flightcontrol-config-option.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/flightcontrol-config-option.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/flightcontrol-connect-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/flightcontrol-connect-github.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/flightcontrol-static-website.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/flightcontrol-static-website.png -------------------------------------------------------------------------------- /src/routes/solid-start/reference/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Reference", 3 | "pages": [ 4 | "entrypoints", 5 | "config", 6 | "routing", 7 | "client", 8 | "server" 9 | ] 10 | } -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/google-cloud-container-registry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/google-cloud-container-registry.png -------------------------------------------------------------------------------- /public/images/how-to-guides/deployment/google-cloud-project-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/deployment/google-cloud-project-dashboard.png -------------------------------------------------------------------------------- /src/routes/solid-meta/getting-started/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Getting started", 3 | "pages": [ 4 | "installation-and-setup.mdx", 5 | "client-setup.mdx", 6 | "server-setup.mdx" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /src/routes/solid-start/reference/entrypoints/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Entrypoints", 3 | "pages": [ 4 | "app-config.mdx", 5 | "app.mdx", 6 | "entry-client.mdx", 7 | "entry-server.mdx" 8 | ] 9 | } -------------------------------------------------------------------------------- /public/images/how-to-guides/comparison/react/react-simple-state-update-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/comparison/react/react-simple-state-update-dark.png -------------------------------------------------------------------------------- /public/images/how-to-guides/comparison/react/solid-simple-state-update-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/comparison/react/solid-simple-state-update-dark.png -------------------------------------------------------------------------------- /src/routes/solid-start/guides/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Guides", 3 | "pages": [ 4 | "security.mdx", 5 | "data-fetching.mdx", 6 | "data-mutation.mdx", 7 | "service-workers.mdx" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /public/images/how-to-guides/comparison/react/react-simple-state-update-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/comparison/react/react-simple-state-update-light.png -------------------------------------------------------------------------------- /public/images/how-to-guides/comparison/react/solid-simple-state-update-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/solidjs/solid-docs/HEAD/public/images/how-to-guides/comparison/react/solid-simple-state-update-light.png -------------------------------------------------------------------------------- /src/routes/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "root", 3 | "pages": [ 4 | "index.mdx", 5 | "quick-start.mdx", 6 | "concepts", 7 | "advanced-concepts", 8 | "guides", 9 | "configuration" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/routes/solid-start/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "root", 3 | "pages": [ 4 | "index.mdx", 5 | "getting-started.mdx", 6 | "building-your-application", 7 | "advanced", 8 | "guides" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/routes/solid-router/reference/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Reference", 3 | "pages": [ 4 | "components", 5 | "data-apis", 6 | "preload-functions", 7 | "primitives", 8 | "response-helpers" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/routes/reference/basic-reactivity/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Basic reactivity", 3 | "pages": [ 4 | "create-effect.mdx", 5 | "create-memo.mdx", 6 | "create-resource.mdx", 7 | "create-signal.mdx" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /src/routes/solid-meta/reference/meta/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Meta reference", 3 | "pages": [ 4 | "title.mdx", 5 | "link.mdx", 6 | "meta.mdx", 7 | "style.mdx", 8 | "base.mdx", 9 | "metaprovider.mdx" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/middleware/index.ts: -------------------------------------------------------------------------------- 1 | import { createMiddleware } from "@solidjs/start/middleware"; 2 | import { handleLegacyRoutes } from "./legacy-routes-redirect"; 3 | 4 | export default createMiddleware({ 5 | onRequest: [handleLegacyRoutes], 6 | }); 7 | -------------------------------------------------------------------------------- /src/routes/reference/component-apis/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Component APIs", 3 | "pages": [ 4 | "children.mdx", 5 | "create-context.mdx", 6 | "create-unique-id.mdx", 7 | "lazy.mdx", 8 | "use-context.mdx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/routes/guides/styling-components/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Styling your Components", 3 | "pages": [ 4 | "sass.mdx", 5 | "less.mdx", 6 | "css-modules.mdx", 7 | "macaron.mdx", 8 | "tailwind.mdx", 9 | "uno.mdx" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/routes/solid-router/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "root", 3 | "pages": [ 4 | "index.mdx", 5 | "getting-started", 6 | "concepts", 7 | "rendering-modes", 8 | "data-fetching", 9 | "advanced-concepts", 10 | "guides" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/routes/solid-router/reference/components/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Components", 3 | "pages": [ 4 | "a.mdx", 5 | "hash-router.mdx", 6 | "memory-router.mdx", 7 | "navigate.mdx", 8 | "route.mdx", 9 | "router.mdx" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/routes/solid-start/advanced/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Advanced", 3 | "pages": [ 4 | "middleware.mdx", 5 | "session.mdx", 6 | "request-events.mdx", 7 | "return-responses.mdx", 8 | "auth.mdx", 9 | "websocket.mdx" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/routes/concepts/control-flow/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Control flow", 3 | "pages": [ 4 | "conditional-rendering.mdx", 5 | "dynamic.mdx", 6 | "list-rendering.mdx", 7 | "portal.mdx", 8 | "error-boundary.mdx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/routes/reference/store-utilities/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Store utilities", 3 | "pages": [ 4 | "create-mutable.mdx", 5 | "create-store.mdx", 6 | "modify-mutable.mdx", 7 | "produce.mdx", 8 | "reconcile.mdx", 9 | "unwrap.mdx" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/routes/reference/secondary-primitives/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Secondary primitives", 3 | "pages": [ 4 | "create-computed.mdx", 5 | "create-deferred.mdx", 6 | "create-reaction.mdx", 7 | "create-render-effect.mdx", 8 | "create-selector.mdx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/ui/layout/hero-code-snippet.code: -------------------------------------------------------------------------------- 1 | import { createSignal } from "solid-js"; 2 | 3 | function Counter() { 4 | const [count, setCount] = createSignal(0); 5 | 6 | return ( 7 | 12 | ); 13 | } 14 | -------------------------------------------------------------------------------- /src/ui/layout/side-panel.tsx: -------------------------------------------------------------------------------- 1 | import { Contribute } from "./contribute"; 2 | import { TableOfContents } from "./table-of-contents"; 3 | 4 | export const SidePanel = () => { 5 | return ( 6 |
7 | 8 | 9 |
10 | ); 11 | }; 12 | -------------------------------------------------------------------------------- /src/routes/reference/rendering/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Rendering", 3 | "pages": [ 4 | "dev.mdx", 5 | "hydrate.mdx", 6 | "hydration-script.mdx", 7 | "is-server.mdx", 8 | "render.mdx", 9 | "render-to-stream.mdx", 10 | "render-to-string-async.mdx", 11 | "render-to-string.mdx" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /src/ui/layout/hero-code-snippet.tsx: -------------------------------------------------------------------------------- 1 | import { highlightedCode } from "solid:hero-code-snippet"; 2 | import counterTxt from "./hero-code-snippet.code?raw"; 3 | 4 | export const snippetLines = counterTxt.split("\n"); 5 | 6 | export default function CodeSnippet() { 7 | return
; 8 | } 9 | -------------------------------------------------------------------------------- /src/i18n/dictionaries/index.ts: -------------------------------------------------------------------------------- 1 | import english from "./en/ui"; 2 | // import ptbr from "./pt-br/ui"; 3 | 4 | export const dictionaries = { 5 | default: english, 6 | // "pt-br": ptbr, 7 | }; 8 | 9 | export const languages: { [key: string]: string } = { 10 | en: "English", 11 | // "pt-br": "Português do Brasil", 12 | }; 13 | -------------------------------------------------------------------------------- /src/routes/concepts/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Concepts", 3 | "pages": [ 4 | "intro-to-reactivity.mdx", 5 | "understanding-jsx.mdx", 6 | "components", 7 | "signals.mdx", 8 | "control-flow", 9 | "effects.mdx", 10 | "derived-values", 11 | "context.mdx", 12 | "stores.mdx", 13 | "refs.mdx" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: true 2 | contact_links: 3 | - name: Support & Community 💁 4 | url: https://discord.com/invite/solidjs 5 | about: 'This issue tracker is not for support questions. Our Discord server hosts the community of Solid users. Come join us to discuss Solid or find assistance!' 6 | -------------------------------------------------------------------------------- /src/routes/guides/deployment-options/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Deploying your App", 3 | "pages": [ 4 | "aws-via-flightcontrol.mdx", 5 | "aws-via-sst.mdx", 6 | "cloudflare.mdx", 7 | "firebase.mdx", 8 | "netlify.mdx", 9 | "railway.mdx", 10 | "vercel.mdx", 11 | "stormkit.mdx", 12 | "zerops.mdx" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /src/routes/solid-router/concepts/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Concepts", 3 | "pages": [ 4 | "navigation.mdx", 5 | "path-parameters.mdx", 6 | "search-parameters.mdx", 7 | "catch-all.mdx", 8 | "nesting.mdx", 9 | "layouts.mdx", 10 | "alternative-routers.mdx", 11 | "queries.mdx", 12 | "actions.mdx" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /src/routes/solid-start/reference/server/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Server", 3 | "pages": [ 4 | "get.mdx", 5 | "use-server.mdx", 6 | "http-header.mdx", 7 | "http-status-code.mdx", 8 | "start-server.mdx", 9 | "create-handler.mdx", 10 | "get-server-function-meta.mdx", 11 | "create-middleware.mdx" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /src/routes/reference/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Reference", 3 | "pages": [ 4 | "basic-reactivity", 5 | "component-apis", 6 | "components", 7 | "jsx-attributes", 8 | "lifecycle", 9 | "reactive-utilities", 10 | "rendering", 11 | "secondary-primitives", 12 | "store-utilities", 13 | "server-utilities" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /src/routes/solid-router/reference/data-apis/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Data APIs", 3 | "pages": [ 4 | "action.mdx", 5 | "cache.mdx", 6 | "create-async.mdx", 7 | "create-async-store.mdx", 8 | "query.mdx", 9 | "revalidate.mdx", 10 | "use-action.mdx", 11 | "use-submission.mdx", 12 | "use-submissions.mdx" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /src/routes/reference/components/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Components", 3 | "pages": [ 4 | "dynamic.mdx", 5 | "error-boundary.mdx", 6 | "for.mdx", 7 | "index-component.mdx", 8 | "no-hydration.mdx", 9 | "portal.mdx", 10 | "show.mdx", 11 | "switch-and-match.mdx", 12 | "suspense.mdx", 13 | "suspense-list.mdx" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /src/routes/reference/jsx-attributes/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "JSX attributes", 3 | "pages": [ 4 | "attr.mdx", 5 | "classlist.mdx", 6 | "bool.mdx", 7 | "innerhtml.mdx", 8 | "textcontent.mdx", 9 | "on_.mdx", 10 | "on.mdx", 11 | "once.mdx", 12 | "prop.mdx", 13 | "ref.mdx", 14 | "style.mdx", 15 | "use.mdx" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /src/routes/solid-start/building-your-application/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Building your application", 3 | "pages": [ 4 | "routing.mdx", 5 | "api-routes.mdx", 6 | "css-and-styling.mdx", 7 | "data-fetching.mdx", 8 | "data-mutation.mdx", 9 | "head-and-metadata.mdx", 10 | "route-prerendering.mdx", 11 | "static-assets.mdx" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /src/routes/guides/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Guides", 3 | "pages": [ 4 | "styling-your-components.mdx", 5 | "styling-components", 6 | "state-management.mdx", 7 | "routing-and-navigation.mdx", 8 | "complex-state-management.mdx", 9 | "fetching-data.mdx", 10 | "testing.mdx", 11 | "deploying-your-app.mdx", 12 | "deployment-options" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /src/routes/solid-router/reference/primitives/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Primitives", 3 | "pages": [ 4 | "use-before-leave.mdx", 5 | "use-is-routing.mdx", 6 | "use-location.mdx", 7 | "use-match.mdx", 8 | "use-navigate.mdx", 9 | "use-params.mdx", 10 | "use-search-params.mdx", 11 | "use-current-matches.mdx", 12 | "use-preload-route.mdx" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /public/scripts/browser-specific.js: -------------------------------------------------------------------------------- 1 | // add class to `html` for browser specific styles, such scrollbars 2 | if (navigator.userAgent.includes("Firefox")) 3 | document.documentElement.classList.add("firefox"); 4 | // add class to `html` for platform specific styles, such scrollbars 5 | if (navigator.userAgent.includes("Windows")) 6 | document.documentElement.classList.add("windows"); 7 | -------------------------------------------------------------------------------- /scripts/collections/utils/create-dir.mjs: -------------------------------------------------------------------------------- 1 | import { existsSync } from "fs"; 2 | import fs from "fs/promises"; 3 | import path from "path"; 4 | 5 | export async function createSolidCollectionDir() { 6 | const collectionDir = path.resolve(process.cwd(), ".solid"); 7 | 8 | if (!existsSync(collectionDir)) { 9 | fs.mkdir(path.resolve(process.cwd(), ".solid")); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "npm" 4 | directory: "/" 5 | schedule: 6 | interval: "weekly" 7 | day: "monday" 8 | assignees: 9 | - "ladybluenotes" 10 | group: 11 | minor-patch: 12 | applies-to: 13 | - 14 | patterns: 15 | - "*" 16 | update-types: 17 | - "minor" 18 | - "patch" 19 | -------------------------------------------------------------------------------- /public/assets/cloudflare-pages.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/app.tsx: -------------------------------------------------------------------------------- 1 | // @refresh reload 2 | import { Router } from "@solidjs/router"; 3 | import { SolidBaseRoot } from "@kobalte/solidbase/client"; 4 | import { FileRoutes } from "@solidjs/start/router"; 5 | import "~/styles.css"; 6 | import { Suspense } from "solid-js"; 7 | 8 | export default function App() { 9 | return ( 10 | 11 | 12 | 13 | 14 | 15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /scripts/collections/utils/get-frontmatter.mjs: -------------------------------------------------------------------------------- 1 | import fs from "fs/promises"; 2 | import matter from "gray-matter"; 3 | /** 4 | * returns data from the frontmatter of an mdx file 5 | * 6 | * @param {string} entryPath 7 | * @returns {Promise<{ title: string; mainNavExclude?: boolean }>} 8 | */ 9 | export async function getFrontMatterData(entryPath) { 10 | const file = await fs.readFile(entryPath, "utf-8"); 11 | 12 | return matter(file).data; 13 | } 14 | -------------------------------------------------------------------------------- /src/data/get-nav.tsx: -------------------------------------------------------------------------------- 1 | import { GrayMatterFile } from "gray-matter"; 2 | 3 | export type Section = { 4 | type: "section"; 5 | title: string; 6 | children: (Section | EntryFile)[]; 7 | pages: string[]; 8 | }; 9 | 10 | type FrontMatter = GrayMatterFile & { 11 | data: { title: string }; 12 | }; 13 | 14 | export type EntryFile = { 15 | type: "markdown"; 16 | path: string; 17 | slug: string; 18 | title: FrontMatter["data"]["title"]; 19 | }; 20 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/OTHER.yml: -------------------------------------------------------------------------------- 1 | name: "Other Report 🌐" 2 | title: "[Other]:" 3 | description: Report something else we should know about the docs site! 4 | labels: [ 5 | "pending review" 6 | ] 7 | body: 8 | - type: textarea 9 | id: issue 10 | attributes: 11 | label: "📋 Explain your issue" 12 | description: Please describe the problem with the documentation in detail. 13 | placeholder: "..." 14 | validations: 15 | required: true 16 | -------------------------------------------------------------------------------- /src/ui/eraser-link/eraser-link.css: -------------------------------------------------------------------------------- 1 | .eraserLinkContainer { 2 | position: absolute; 3 | top: 40px; 4 | right: 10px; 5 | height: 29px; 6 | width: 43px; 7 | transition: width 200ms ease-in-out; 8 | overflow: hidden; 9 | background-color: #fefefe; 10 | border: 1px solid #e4e4e4; 11 | border-radius: 3px; 12 | } 13 | .eraserLinkContainer:hover { 14 | width: 149px; 15 | } 16 | .eraserLinkContainer img { 17 | position: absolute; 18 | top: -1px; 19 | left: -5px; 20 | } 21 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "skipLibCheck": true, 4 | "allowSyntheticDefaultImports": true, 5 | "esModuleInterop": true, 6 | "target": "ESNext", 7 | "module": "ESNext", 8 | "moduleResolution": "Bundler", 9 | "jsxImportSource": "solid-js", 10 | "jsx": "preserve", 11 | "strict": true, 12 | "baseUrl": "./", 13 | "paths": { 14 | "~/*": ["./src/*"] 15 | }, 16 | "types": ["vite/client"] 17 | }, 18 | "exclude": ["node_modules"] 19 | } 20 | -------------------------------------------------------------------------------- /src/routes/reference/reactive-utilities/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Reactive utilities", 3 | "pages": [ 4 | "batch.mdx", 5 | "catch-error.mdx", 6 | "create-root.mdx", 7 | "from.mdx", 8 | "get-owner.mdx", 9 | "index-array.mdx", 10 | "map-array.mdx", 11 | "merge-props.mdx", 12 | "observable.mdx", 13 | "on-util.mdx", 14 | "run-with-owner.mdx", 15 | "split-props.mdx", 16 | "start-transition.mdx", 17 | "untrack.mdx", 18 | "use-transition.mdx" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /.github/actions/install/action.yml: -------------------------------------------------------------------------------- 1 | name: Install Tools & Dependencies 2 | description: Installs pnpm, Node.js & package dependencies 3 | 4 | runs: 5 | using: composite 6 | steps: 7 | - name: Setup pnpm 8 | uses: pnpm/action-setup@v4 9 | with: 10 | version: 10 11 | 12 | - name: Setup Node.js 13 | uses: actions/setup-node@v6 14 | with: 15 | node-version: 24 16 | cache: pnpm 17 | 18 | - name: Install dependencies 19 | run: pnpm install 20 | shell: bash 21 | -------------------------------------------------------------------------------- /src/i18n/config.ts: -------------------------------------------------------------------------------- 1 | import { dictionaries } from "./dictionaries"; 2 | 3 | const locales = Object.keys(dictionaries); 4 | locales.shift(); 5 | 6 | /** 7 | * An array of locales 8 | * language (ISO 639-1 - set 1): https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes 9 | * country code (ISO 3166-1 alpha-2): https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 10 | * E.g.: Canadian French would be: `fr-ca` 11 | */ 12 | export const SUPPORTED_LOCALES: string[] = locales as Array< 13 | keyof Omit 14 | >; 15 | -------------------------------------------------------------------------------- /scripts/collections/create-flat-entry-list.mjs: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * @param {Awaited>} tree 4 | * @param {object} entryMap 5 | */ 6 | export function createFlatEntryList(tree, entryMap) { 7 | for (const item of tree) { 8 | if (item.type === "markdown") { 9 | if (entryMap.findIndex((e) => e.path === item.path) > -1) { 10 | console.error(`Duplicated entry found: ${item.slug}`); 11 | break; 12 | } 13 | entryMap.push(item); 14 | } else { 15 | createFlatEntryList(item.children, entryMap); 16 | } 17 | } 18 | 19 | return entryMap; 20 | } 21 | -------------------------------------------------------------------------------- /scripts/collections/create-nav-tree.mjs: -------------------------------------------------------------------------------- 1 | import { buildFileTree } from "./build-file-tree.mjs"; 2 | 3 | /** 4 | * 5 | * @param {string} rootDir 6 | * @returns 7 | */ 8 | export async function createNavTree(rootDir) { 9 | const [learn, references] = await Promise.all([ 10 | buildFileTree(rootDir), 11 | buildFileTree(`${rootDir}/reference`), 12 | ]); 13 | 14 | if ( 15 | learn && 16 | learn.type === "section" && 17 | references && 18 | references.type === "section" 19 | ) { 20 | return { 21 | reference: references.children, 22 | learn: learn.children, 23 | }; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /scripts/collections/utils/write-file.mjs: -------------------------------------------------------------------------------- 1 | import fs from "fs/promises"; 2 | import path from "path"; 3 | /** 4 | * 5 | * @param {string} fileName 6 | * @param {object} fileContent 7 | * @param {boolean} removeAsConst 8 | * @param {string} collectionDir 9 | */ 10 | export async function writeFile( 11 | fileName, 12 | fileContent, 13 | removeAsConst = false, 14 | collectionDir = ".solid" 15 | ) { 16 | return fs.writeFile( 17 | path.resolve(collectionDir, fileName), 18 | `export default ${JSON.stringify(fileContent, null, 2)} ${ 19 | removeAsConst ? "" : "as const" 20 | }` 21 | ); 22 | } 23 | -------------------------------------------------------------------------------- /src/i18n/translator.ts: -------------------------------------------------------------------------------- 1 | import { dictionaries } from "./dictionaries"; 2 | import { SUPPORTED_LOCALES } from "./config"; 3 | 4 | export function createTranslator( 5 | locale: (typeof SUPPORTED_LOCALES)[number] | null 6 | ) { 7 | // type overlap will only be 100% when translations are done 8 | // so we're fine with `dictionaries[locale][key]` being implicit `any` 9 | // @ts-expect-error: expected any here 10 | const dictionary = dictionaries[locale || "default"]; 11 | return (key: keyof (typeof dictionaries)["default"]) => { 12 | return dictionary[key] || dictionaries["default"][key]; 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /scripts/collections/schemas.mjs: -------------------------------------------------------------------------------- 1 | import { z } from "zod"; 2 | 3 | export const pages = z.array(z.string()); 4 | 5 | export const sectionSchema = z.object({ 6 | type: z.literal("section"), 7 | title: z.string(), 8 | // children: z.array(z.string()), 9 | pages, 10 | }); 11 | export const entrySchema = z.object({ 12 | type: z.literal("markdown"), 13 | path: z.string(), 14 | slug: z.string(), 15 | titles: z.string(), 16 | }); 17 | 18 | export const sectionData = z.object({ 19 | title: z.string(), 20 | pages, 21 | }); 22 | 23 | export const frontMatterSchema = z.object({ 24 | title: z.string(), 25 | }); 26 | -------------------------------------------------------------------------------- /.kodiak.toml: -------------------------------------------------------------------------------- 1 | version = 1 2 | 3 | [merge] 4 | automerge_label = "automerge" 5 | delete_branch_on_merge = true 6 | merge_method = "squash" 7 | 8 | [merge.message] 9 | title= "pull_request_title" 10 | include_pull_request_author = true 11 | include_coauthors = true 12 | include_pr_number= true 13 | include_pull_request_url = true 14 | body = "pull_request_body" 15 | 16 | # once we have Renovate and CI checks 17 | # [merge.automerge_dependencies] 18 | # versions = ["minor", "patch"] 19 | # usernames = ["renovate"] 20 | 21 | [update] 22 | # ignored_usernames = ["renovate"] 23 | require_automerge_label = false 24 | always = true 25 | -------------------------------------------------------------------------------- /public/assets/tailwind.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /global.d.ts: -------------------------------------------------------------------------------- 1 | declare module "solid:collection" { 2 | import coreTree from ".solid/tree"; 3 | import startTree from ".solid/solid-router-tree"; 4 | import routerTree from ".solid/solid-start-tree"; 5 | import metaTree from ".solid/solid-meta-tree"; 6 | import coreEntries from ".solid/flat-entries"; 7 | import routerEntries from ".solid/solid-start-flat-entries"; 8 | import startEntries from ".solid/solid-router-flat-entries"; 9 | import metaEntries from ".solid/solid-meta-flat-entries"; 10 | 11 | export { 12 | coreEntries, 13 | routerEntries, 14 | startEntries, 15 | metaEntries, 16 | coreTree, 17 | routerTree, 18 | startTree, 19 | metaTree, 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /src/routes/reference/store-utilities/unwrap.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: unwrap 3 | use_cases: >- 4 | raw data access, proxy removal, debugging, third-party integration, data 5 | serialization 6 | tags: 7 | - store 8 | - proxy 9 | - data 10 | - debugging 11 | - utilities 12 | version: '1.0' 13 | description: >- 14 | Extract raw data from Solid stores without proxy wrapping. Essential for 15 | debugging, serialization, or third-party integrations. 16 | --- 17 | 18 | `unwrap` returns the underlying data in the store without a proxy. 19 | 20 | ```tsx 21 | import { unwrap } from "solid-js/store" 22 | import type { Store } from "solid-js/store" 23 | 24 | function unwrap(store: Store): T 25 | ``` 26 | -------------------------------------------------------------------------------- /public/assets/netlify.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/routes/solid-start/reference/client/start-client.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: StartClient 3 | use_cases: 'client entry setup, app wrapper configuration, root component setup' 4 | tags: 5 | - client 6 | - entry 7 | - components 8 | - configuration 9 | version: '1.0' 10 | description: >- 11 | StartClient component wraps your SolidStart application root. Essential for 12 | proper client-side initialization and mounting. 13 | --- 14 | 15 | `StartClient` is a component that wraps the application root. 16 | It can be passed to [`mount`](/solid-start/reference/client/start-client) in the [`entry-client.tsx`](/solid-start/reference/entrypoints/entry-client). 17 | 18 | ```tsx 19 | import { StartClient } from "@solidjs/start/client"; 20 | ``` 21 | -------------------------------------------------------------------------------- /env.d.ts: -------------------------------------------------------------------------------- 1 | interface ImportMetaEnv { 2 | readonly VITE_ORAMA_ENDPOINT: string; 3 | readonly VITE_ORAMA_API_KEY: string; 4 | readonly VITE_ORAMA_SECURE_PROXY: string; 5 | } 6 | 7 | interface ImportMeta { 8 | readonly env: ImportMetaEnv; 9 | } 10 | 11 | declare namespace NodeJS { 12 | interface ProcessEnv { 13 | readonly ORAMA_PROJECT_ID: string; 14 | readonly ORAMA_DATASOURCE_ID: string; 15 | readonly ORAMA_PUBLIC_API_KEY: string; 16 | readonly ORAMA_PRIVATE_API_KEY: string; 17 | } 18 | } 19 | 20 | declare module "solid:collection" { 21 | // eslint-disable-next-line 22 | const component: any; 23 | export default component; 24 | } 25 | 26 | declare module "solid:hero-code-snippet" { 27 | export const highlightedCode: string; 28 | } 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/ 2 | coverage/ 3 | types/ 4 | 5 | # only pnpm lockfile is versioned 6 | # so Netlify can infer correctly everytime. 7 | yarn.lock 8 | package-lock.json 9 | bun.lockb 10 | 11 | .turbo 12 | 13 | packages/create-solid/bin 14 | *.log 15 | 16 | dist 17 | worker 18 | .solid 19 | 20 | # dependencies 21 | node_modules 22 | 23 | # IDEs and editors 24 | .idea 25 | .project 26 | .classpath 27 | *.launch 28 | .settings/ 29 | 30 | # Temp 31 | gitignore 32 | 33 | .env 34 | 35 | # System Files 36 | .DS_Store 37 | Thumbs.db 38 | # Local Netlify folder 39 | .netlify 40 | # Netlify build dir 41 | netlify 42 | /test-results/ 43 | /playwright-report/ 44 | /playwright/.cache/ 45 | 46 | .solid 47 | .vinxi 48 | 49 | public/sitemap.xml 50 | public/i18n-status 51 | -------------------------------------------------------------------------------- /src/routes/reference/reactive-utilities/start-transition.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: startTransition 3 | use_cases: >- 4 | async updates, performance optimization, non-blocking updates, transition 5 | control 6 | tags: 7 | - transitions 8 | - async 9 | - performance 10 | - updates 11 | - batching 12 | version: '1.0' 13 | description: >- 14 | Start transitions in SolidJS without pending state tracking. Batch async 15 | updates for improved performance and smoother user interactions. 16 | --- 17 | 18 | ```ts 19 | import { startTransition } from "solid-js" 20 | 21 | function startTransition: (fn: () => void) => Promise 22 | 23 | ``` 24 | 25 | Similar to `useTransition` except there is no associated pending state. 26 | This one can just be used directly to start the Transition. 27 | -------------------------------------------------------------------------------- /src/ui/not-found.tsx: -------------------------------------------------------------------------------- 1 | import { Title } from "@solidjs/meta"; 2 | import { Layout } from "./layout"; 3 | import { HttpStatusCode } from "@solidjs/start"; 4 | import { A } from "~/ui/i18n-anchor"; 5 | import { useProjectTitle } from "./use-project"; 6 | 7 | export function NotFound() { 8 | const projectTitle = useProjectTitle(); 9 | 10 | return ( 11 | <> 12 | Not Found - {projectTitle()} 13 | 14 | 15 |
16 |

17 | Page Not Found 18 |

19 | Take me back. 20 |
21 |
22 | 23 | ); 24 | } 25 | -------------------------------------------------------------------------------- /public/assets/uno.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | - [ ] I have read the [Contribution guide](https://github.com/solidjs/solid-docs/blob/main/CONTRIBUTING.md) 4 | - [ ] This PR references an issue (except for typos, broken links, or other minor problems) 5 | 6 | ### Description(required) 7 | 8 | 9 | ### Related issues & labels 10 | 11 | - Closes # 12 | - Suggested label(s) (optional): 13 | -------------------------------------------------------------------------------- /src/ui/edit-page-link.tsx: -------------------------------------------------------------------------------- 1 | import { Component, Show } from "solid-js"; 2 | import { Icon } from "solid-heroicons"; 3 | import { pencilSquare } from "solid-heroicons/outline"; 4 | import { useCurrentPageData } from "@kobalte/solidbase/client"; 5 | 6 | import { useI18n } from "~/i18n/i18n-context"; 7 | 8 | export const EditPageLink: Component = () => { 9 | const i18n = useI18n(); 10 | const data = useCurrentPageData(); 11 | 12 | return ( 13 | 14 | {(editLink) => ( 15 | 20 | 23 | )} 24 | 25 | ); 26 | }; 27 | -------------------------------------------------------------------------------- /src/routes/solid-meta/reference/meta/metaprovider.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: MetaProvider 3 | order: 6 4 | use_cases: >- 5 | initializing meta tags, wrapping app, head management setup, meta context, 6 | always in meta apps 7 | tags: 8 | - provider 9 | - meta 10 | - setup 11 | - context 12 | - wrapper 13 | - head 14 | version: '1.0' 15 | description: >- 16 | MetaProvider wraps your Solid app to enable head tag management. Essential 17 | parent component for all metadata components to function properly. 18 | --- 19 | 20 | `MetaProvider` is a parent component responsible for wrapping all the metadata components. 21 | All components that are contained within this will be added to the application `` 22 | 23 | ```tsx twoslash 24 | import { MetaProvider } from "@solidjs/meta"; 25 | 26 | // add meta components; 27 | ``` 28 | -------------------------------------------------------------------------------- /src/routes/reference/jsx-attributes/innerhtml.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: innerHTML 3 | use_cases: >- 4 | rendering html strings, dynamic html content, third-party html, legacy content 5 | migration, sanitized markup 6 | tags: 7 | - html 8 | - dom 9 | - security 10 | - content 11 | - markup 12 | version: '1.0' 13 | description: >- 14 | Set raw HTML content in SolidJS elements using innerHTML attribute and render 15 | HTML strings dynamically. 16 | --- 17 | 18 | The `innerHTML` attribute is equivalent to the [`innerHTML` DOM property](https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML). 19 | This attribute replaces all existing nodes of the element with new nodes generated by parsing the provided string as HTML. 20 | 21 | :::caution 22 | 23 | Using `innerHTML` with unsanitized user-supplied data can introduce security vulnerabilities. 24 | 25 | ::: 26 | -------------------------------------------------------------------------------- /src/i18n/helpers.ts: -------------------------------------------------------------------------------- 1 | import { useLocation, useMatch } from "@solidjs/router"; 2 | import { useCurrentRouteMetaData } from "~/utils/route-metadata-helper"; 3 | import { SUPPORTED_LOCALES } from "./config"; 4 | 5 | export function getCurrentLocale() { 6 | const match = useMatch(() => "/:locale?/*", { 7 | locale: SUPPORTED_LOCALES, 8 | }); 9 | return match()?.params.project ?? null; 10 | } 11 | 12 | export function getEntryFileName() { 13 | const pathname = useLocation().pathname; 14 | const currentRouteMetaData = useCurrentRouteMetaData(); 15 | 16 | if (currentRouteMetaData.isProjectRoot) { 17 | return `${pathname}/index.mdx`.replace("//", "/"); 18 | } else { 19 | // Trim trailing slash 20 | return (pathname.endsWith("/") ? pathname.slice(0, -1) : pathname) + ".mdx"; 21 | } 22 | } 23 | 24 | export const isExternalURL = (url: string) => /^https?:\/\//.test(url); 25 | -------------------------------------------------------------------------------- /src/routes/reference/reactive-utilities/catch-error.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: catchError 3 | use_cases: >- 4 | error handling, error boundaries, exception management, debugging, graceful 5 | error recovery 6 | tags: 7 | - errors 8 | - debugging 9 | - exceptions 10 | - handlers 11 | version: '1.0' 12 | description: >- 13 | Wrap SolidJS code with error handlers to catch and handle exceptions 14 | gracefully. Create error boundaries for robust error management in components. 15 | --- 16 | 17 | :::note 18 | New in v1.7.0 19 | ::: 20 | 21 | ```tsx 22 | import { catchError } from "solid-js" 23 | 24 | function catchError(tryFn: () => T, onError: (err: any) => void): T 25 | ``` 26 | 27 | Wraps a `tryFn` with an error handler that fires if an error occurs below that point. 28 | Only the nearest scope error handlers execute. 29 | Rethrow to trigger up the line. 30 | -------------------------------------------------------------------------------- /src/ui/button-link.tsx: -------------------------------------------------------------------------------- 1 | import { A, type RouterLinkProps } from "./i18n-anchor"; 2 | 3 | type ButtonLinkProps = RouterLinkProps & { 4 | variant: "primary" | "secondary"; 5 | }; 6 | 7 | export const ButtonLink = (props: ButtonLinkProps) => { 8 | return ( 9 | 19 | ); 20 | }; 21 | -------------------------------------------------------------------------------- /src/entry-server.tsx: -------------------------------------------------------------------------------- 1 | import { createHandler, StartServer } from "@solidjs/start/server"; 2 | 3 | export default createHandler(() => ( 4 | { 6 | return ( 7 | 8 | 9 | 10 | 14 | 15 | 20 |