mirror of
https://github.com/gromlab-ru/svg-sprites.git
synced 2026-07-22 04:40:17 +03:00
feat: добавить поддержку 20 framework exact modes
Добавлены exact modes: - vue@vite и vue@webpack - nuxt@vite и nuxt@webpack - svelte@vite, svelte@webpack и sveltekit@vite - angular@application и angular@webpack - astro@vite - solid@vite, solid@webpack и solid-start@vite - preact@vite и preact@webpack - qwik@vite - lit@vite и lit@webpack - alpine@vite и alpine@webpack Для каждого mode реализованы изолированный adapter, нативный framework-компонент, declarations, manifest, CSS и внешний asset URL. Добавлены production integration-стенды с генерацией, typecheck, сборкой и Playwright-проверкой рендера спрайта и Viewer. Обновлены Viewer, RU/EN-гайды, README, technical reference и AI skills. Итоговая матрица включает 29 exact modes. Проверки: - 48 unit-тестов - 29 integration E2E-тестов
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"../../../dist/viewer-element.js": {
|
||||
"file": "assets/viewer-element-BO6fulPI.js",
|
||||
"name": "viewer-element",
|
||||
"src": "../../../dist/viewer-element.js",
|
||||
"isDynamicEntry": true
|
||||
},
|
||||
"_index-BWUdTtCi.css": {
|
||||
"file": "assets/index-BWUdTtCi.css",
|
||||
"src": "_index-BWUdTtCi.css"
|
||||
},
|
||||
"_index-DgFw7Fi1.js": {
|
||||
"file": "assets/index-DgFw7Fi1.js",
|
||||
"name": "index",
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_preload-helper-C_-y6sQU.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"../../../dist/viewer-element.js",
|
||||
"src/sprite/.svg-sprite/svg-sprite.manifest.js"
|
||||
],
|
||||
"css": [
|
||||
"assets/index-BWUdTtCi.css"
|
||||
],
|
||||
"assets": [
|
||||
"assets/sprite-DvsqBNon.svg"
|
||||
]
|
||||
},
|
||||
"_preload-helper-C_-y6sQU.js": {
|
||||
"file": "assets/preload-helper-C_-y6sQU.js",
|
||||
"name": "preload-helper"
|
||||
},
|
||||
"src/routes/index.jsx?pick=default&pick=$css": {
|
||||
"file": "assets/index-B1AR4FGy.js",
|
||||
"name": "index",
|
||||
"src": "src/routes/index.jsx?pick=default&pick=$css",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_preload-helper-C_-y6sQU.js",
|
||||
"_index-DgFw7Fi1.js"
|
||||
]
|
||||
},
|
||||
"src/sprite/.svg-sprite/sprite.svg": {
|
||||
"file": "assets/sprite-DvsqBNon.svg",
|
||||
"src": "src/sprite/.svg-sprite/sprite.svg"
|
||||
},
|
||||
"src/sprite/.svg-sprite/svg-sprite.manifest.js": {
|
||||
"file": "assets/svg-sprite.manifest-ByXNchEI.js",
|
||||
"name": "svg-sprite.manifest",
|
||||
"src": "src/sprite/.svg-sprite/svg-sprite.manifest.js",
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_index-DgFw7Fi1.js",
|
||||
"_preload-helper-C_-y6sQU.js"
|
||||
]
|
||||
},
|
||||
"virtual:$vinxi/handler/client": {
|
||||
"file": "assets/client-BDFkFOh8.js",
|
||||
"name": "client",
|
||||
"src": "virtual:$vinxi/handler/client",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_preload-helper-C_-y6sQU.js"
|
||||
],
|
||||
"dynamicImports": [
|
||||
"src/routes/index.jsx?pick=default&pick=$css"
|
||||
],
|
||||
"css": [
|
||||
"assets/client-BVONibDl.css"
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
:root{font-family:system-ui,sans-serif;color:#172033;background:#fff}body{margin:0;padding:40px}.viewer{margin-top:32px}
|
||||
@@ -0,0 +1 @@
|
||||
import"./preload-helper-C_-y6sQU.js";import{H as a}from"./index-DgFw7Fi1.js";export{a as default};
|
||||
@@ -0,0 +1 @@
|
||||
._root_1egzq_3{transition-property:fill,stroke,color;transition-duration:.3s;transition-timing-function:ease}._wrap_1egzq_9{display:inline-flex}._wrap_1egzq_9 svg{width:100%;height:100%;transition-property:fill,stroke,color;transition-duration:.3s;transition-timing-function:ease}
|
||||
@@ -0,0 +1,2 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/svg-sprite.manifest-ByXNchEI.js","assets/preload-helper-C_-y6sQU.js"])))=>i.map(i=>d[i]);
|
||||
import{F as w,j as g,t as n,w as _,x as p,b as d,G as u,y as v,S as $,A as l,H as m,I as b,z as S,J as E,_ as h}from"./preload-helper-C_-y6sQU.js";const x="_root_1egzq_3",I="_wrap_1egzq_9",f={root:x,wrap:I},k={check:"check"},y="/_build/assets/sprite-DvsqBNon.svg";var C=l("<span><svg><use>"),H=l("<svg><use>");const P=r=>{const[e,a]=w(r,["icon","wrapped","class"]),o=()=>y+"#"+k[e.icon];return g($,{get when(){return e.wrapped},get fallback(){return(()=>{var t=n(H),s=t.firstChild;return _(t,p(a,{get class(){return[f.root,e.class].filter(Boolean).join(" ")}}),!0,!0),d(()=>u(s,"href",o())),v(),t})()},get children(){var t=n(C),s=t.firstChild,i=s.firstChild;return _(t,p(a,{get class(){return[f.wrap,e.class].filter(Boolean).join(" ")}}),!1,!0),d(()=>u(i,"href",o())),v(),t}})};var V=l("<main><h1>SolidStart + Vite</h1><!$><!/><div class=viewer>");function j(){let r;return m(async()=>{await h(()=>import("./viewer-element-BO6fulPI.js"),[]);const e=document.createElement("gromlab-sprite-viewer");e.viewerTitle="SolidStart Vite Viewer",e.sources=[()=>h(()=>import("./svg-sprite.manifest-ByXNchEI.js"),__vite__mapDeps([0,1]))],r.append(e)}),(()=>{var e=n(V),a=e.firstChild,o=a.nextSibling,[t,s]=b(o.nextSibling),i=t.nextSibling;S(e,g(P,{"data-testid":"icon","data-app":"solid-start-vite",icon:"check","aria-label":"Check icon",width:64,height:64,style:{"--icon-color-1":"#16a34a"}}),t,s);var c=r;return typeof c=="function"?E(c,i):r=i,e})()}export{j as H,y as s};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- @generated by @gromlab/svg-sprites. Do not edit. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style>:root>svg{display:none}:root>svg:target{display:block}</style><svg viewBox="0 0 24 24" id="check" xmlns="http://www.w3.org/2000/svg"><path fill="var(--icon-color-1, currentColor)" d="M9.2 16.6 4.6 12l-2.1 2.1 6.7 6.7L22 8l-2.1-2.1z" style="transition:fill 0.3s,stroke 0.3s;"/></svg></svg>
|
||||
|
After Width: | Height: | Size: 475 B |
@@ -0,0 +1 @@
|
||||
import{s as o}from"./index-DgFw7Fi1.js";import"./preload-helper-C_-y6sQU.js";const s={schemaVersion:1,generator:"@gromlab/svg-sprites",name:"icons",usage:{framework:"solid-start",componentName:"IconsIcon",ssr:!0},mode:"solid-start@vite",target:"vite",format:"stack",iconCount:1,spriteUrl:o,icons:[{name:"check",id:"check",viewBox:"0 0 24 24",colors:[{variable:"--icon-color-1",fallback:"currentColor"}]}]};export{s as default,s as spriteManifest};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"../../../dist/viewer-element.js": {
|
||||
"file": "assets/viewer-element-BO6fulPI.js",
|
||||
"name": "viewer-element",
|
||||
"src": "../../../dist/viewer-element.js",
|
||||
"isDynamicEntry": true
|
||||
},
|
||||
"_index-AIk5O37p.js": {
|
||||
"file": "assets/index-AIk5O37p.js",
|
||||
"name": "index",
|
||||
"isDynamicEntry": true,
|
||||
"dynamicImports": [
|
||||
"../../../dist/viewer-element.js",
|
||||
"src/sprite/.svg-sprite/svg-sprite.manifest.js"
|
||||
],
|
||||
"css": [
|
||||
"assets/index-BWUdTtCi.css"
|
||||
],
|
||||
"assets": [
|
||||
"assets/sprite-DvsqBNon.svg"
|
||||
]
|
||||
},
|
||||
"_index-BWUdTtCi.css": {
|
||||
"file": "assets/index-BWUdTtCi.css",
|
||||
"src": "_index-BWUdTtCi.css"
|
||||
},
|
||||
"_server-fns-XxvbTHGR.js": {
|
||||
"file": "assets/server-fns-XxvbTHGR.js",
|
||||
"name": "server-fns",
|
||||
"dynamicImports": [
|
||||
"src/routes/index.jsx?pick=default&pick=$css",
|
||||
"src/routes/index.jsx?pick=default&pick=$css",
|
||||
"src/app.jsx"
|
||||
]
|
||||
},
|
||||
"src/app.jsx": {
|
||||
"file": "assets/app-Bgr52ZUm.js",
|
||||
"name": "app",
|
||||
"src": "src/app.jsx",
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_server-fns-XxvbTHGR.js"
|
||||
],
|
||||
"css": [
|
||||
"assets/app-BVONibDl.css"
|
||||
]
|
||||
},
|
||||
"src/routes/index.jsx?pick=default&pick=$css": {
|
||||
"file": "index.js",
|
||||
"name": "index",
|
||||
"src": "src/routes/index.jsx?pick=default&pick=$css",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index-AIk5O37p.js"
|
||||
]
|
||||
},
|
||||
"src/sprite/.svg-sprite/sprite.svg": {
|
||||
"file": "assets/sprite-DvsqBNon.svg",
|
||||
"src": "src/sprite/.svg-sprite/sprite.svg"
|
||||
},
|
||||
"src/sprite/.svg-sprite/svg-sprite.manifest.js": {
|
||||
"file": "assets/svg-sprite.manifest-D0DHYqq2.js",
|
||||
"name": "svg-sprite.manifest",
|
||||
"src": "src/sprite/.svg-sprite/svg-sprite.manifest.js",
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_index-AIk5O37p.js"
|
||||
]
|
||||
},
|
||||
"virtual:$vinxi/handler/server-fns": {
|
||||
"file": "server-fns.js",
|
||||
"name": "server-fns",
|
||||
"src": "virtual:$vinxi/handler/server-fns",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_server-fns-XxvbTHGR.js"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
:root{font-family:system-ui,sans-serif;color:#172033;background:#fff}body{margin:0;padding:40px}.viewer{margin-top:32px}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import{createComponent as p,ssrElement as n,mergeProps as i,ssr as r,ssrAttribute as c,escape as s,ssrHydrationKey as u}from"solid-js/web";import{splitProps as m,Show as d,onMount as v}from"solid-js";const w="_root_1egzq_3",h="_wrap_1egzq_9",l={root:w,wrap:h},g={check:"check"},f="/_server/assets/sprite-DvsqBNon.svg";var _=["<svg><use","></use></svg>"],k=["<use","></use>"];const y=t=>{const[e,o]=m(t,["icon","wrapped","class"]),a=()=>f+"#"+g[e.icon];return p(d,{get when(){return e.wrapped},get fallback(){return n("svg",i(o,{get class(){return[l.root,e.class].filter(Boolean).join(" ")}}),()=>r(k,c("href",s(a(),!0),!1)),!0)},get children(){return n("span",i(o,{get class(){return[l.wrap,e.class].filter(Boolean).join(" ")}}),()=>r(_,c("href",s(a(),!0),!1)),!0)}})};var S=["<main","><h1>SolidStart + Vite</h1><!--$-->",'<!--/--><div class="viewer"></div></main>'];function H(){let t;return v(async()=>{await import("./viewer-element-BO6fulPI.js");const e=document.createElement("gromlab-sprite-viewer");e.viewerTitle="SolidStart Vite Viewer",e.sources=[()=>import("./svg-sprite.manifest-D0DHYqq2.js")],t.append(e)}),r(S,u(),s(p(y,{"data-testid":"icon","data-app":"solid-start-vite",icon:"check","aria-label":"Check icon",width:64,height:64,style:{"--icon-color-1":"#16a34a"}})))}export{H,f as s};
|
||||
@@ -0,0 +1 @@
|
||||
._root_1egzq_3{transition-property:fill,stroke,color;transition-duration:.3s;transition-timing-function:ease}._wrap_1egzq_9{display:inline-flex}._wrap_1egzq_9 svg{width:100%;height:100%;transition-property:fill,stroke,color;transition-duration:.3s;transition-timing-function:ease}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- @generated by @gromlab/svg-sprites. Do not edit. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style>:root>svg{display:none}:root>svg:target{display:block}</style><svg viewBox="0 0 24 24" id="check" xmlns="http://www.w3.org/2000/svg"><path fill="var(--icon-color-1, currentColor)" d="M9.2 16.6 4.6 12l-2.1 2.1 6.7 6.7L22 8l-2.1-2.1z" style="transition:fill 0.3s,stroke 0.3s;"/></svg></svg>
|
||||
|
After Width: | Height: | Size: 475 B |
@@ -0,0 +1 @@
|
||||
import{s as o}from"./index-AIk5O37p.js";import"solid-js/web";import"solid-js";const s={schemaVersion:1,generator:"@gromlab/svg-sprites",name:"icons",usage:{framework:"solid-start",componentName:"IconsIcon",ssr:!0},mode:"solid-start@vite",target:"vite",format:"stack",iconCount:1,spriteUrl:o,icons:[{name:"check",id:"check",viewBox:"0 0 24 24",colors:[{variable:"--icon-color-1",fallback:"currentColor"}]}]};export{s as default,s as spriteManifest};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import"solid-js/web";import"solid-js";import{H as p}from"./assets/index-AIk5O37p.js";export{p as default};
|
||||
@@ -0,0 +1 @@
|
||||
import{h as s}from"./assets/server-fns-XxvbTHGR.js";import"cookie-es";import"solid-js";import"solid-js/web";import"solid-js/web/storage";import"h3";import"unctx";import"node:async_hooks";import"radix3";import"seroval";import"seroval-plugins/web";export{s as default};
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"../../../dist/viewer-element.js": {
|
||||
"file": "assets/viewer-element-BO6fulPI.js",
|
||||
"name": "viewer-element",
|
||||
"src": "../../../dist/viewer-element.js",
|
||||
"isDynamicEntry": true
|
||||
},
|
||||
"_index-BWUdTtCi.css": {
|
||||
"file": "assets/index-BWUdTtCi.css",
|
||||
"src": "_index-BWUdTtCi.css"
|
||||
},
|
||||
"_index-CV0w8CD4.js": {
|
||||
"file": "assets/index-CV0w8CD4.js",
|
||||
"name": "index",
|
||||
"isDynamicEntry": true,
|
||||
"dynamicImports": [
|
||||
"../../../dist/viewer-element.js",
|
||||
"src/sprite/.svg-sprite/svg-sprite.manifest.js"
|
||||
],
|
||||
"css": [
|
||||
"assets/index-BWUdTtCi.css"
|
||||
],
|
||||
"assets": [
|
||||
"assets/sprite-DvsqBNon.svg"
|
||||
]
|
||||
},
|
||||
"src/routes/index.jsx?pick=default&pick=$css": {
|
||||
"file": "index.js",
|
||||
"name": "index",
|
||||
"src": "src/routes/index.jsx?pick=default&pick=$css",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index-CV0w8CD4.js"
|
||||
]
|
||||
},
|
||||
"src/sprite/.svg-sprite/sprite.svg": {
|
||||
"file": "assets/sprite-DvsqBNon.svg",
|
||||
"src": "src/sprite/.svg-sprite/sprite.svg"
|
||||
},
|
||||
"src/sprite/.svg-sprite/svg-sprite.manifest.js": {
|
||||
"file": "assets/svg-sprite.manifest-Di7XhmOO.js",
|
||||
"name": "svg-sprite.manifest",
|
||||
"src": "src/sprite/.svg-sprite/svg-sprite.manifest.js",
|
||||
"isDynamicEntry": true,
|
||||
"imports": [
|
||||
"_index-CV0w8CD4.js"
|
||||
]
|
||||
},
|
||||
"virtual:$vinxi/handler/ssr": {
|
||||
"file": "ssr.js",
|
||||
"name": "ssr",
|
||||
"src": "virtual:$vinxi/handler/ssr",
|
||||
"isEntry": true,
|
||||
"dynamicImports": [
|
||||
"src/routes/index.jsx?pick=default&pick=$css",
|
||||
"src/routes/index.jsx?pick=default&pick=$css"
|
||||
],
|
||||
"css": [
|
||||
"assets/ssr-BVONibDl.css"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
._root_1egzq_3{transition-property:fill,stroke,color;transition-duration:.3s;transition-timing-function:ease}._wrap_1egzq_9{display:inline-flex}._wrap_1egzq_9 svg{width:100%;height:100%;transition-property:fill,stroke,color;transition-duration:.3s;transition-timing-function:ease}
|
||||
@@ -0,0 +1 @@
|
||||
import{createComponent as p,ssrElement as n,mergeProps as i,ssr as r,ssrAttribute as c,escape as s,ssrHydrationKey as u}from"solid-js/web";import{splitProps as m,Show as d,onMount as w}from"solid-js";const h="_root_1egzq_3",v="_wrap_1egzq_9",l={root:h,wrap:v},g={check:"check"},f="/_build/assets/sprite-DvsqBNon.svg";var _=["<svg><use","></use></svg>"],b=["<use","></use>"];const k=t=>{const[e,o]=m(t,["icon","wrapped","class"]),a=()=>f+"#"+g[e.icon];return p(d,{get when(){return e.wrapped},get fallback(){return n("svg",i(o,{get class(){return[l.root,e.class].filter(Boolean).join(" ")}}),()=>r(b,c("href",s(a(),!0),!1)),!0)},get children(){return n("span",i(o,{get class(){return[l.wrap,e.class].filter(Boolean).join(" ")}}),()=>r(_,c("href",s(a(),!0),!1)),!0)}})};var y=["<main","><h1>SolidStart + Vite</h1><!--$-->",'<!--/--><div class="viewer"></div></main>'];function H(){let t;return w(async()=>{await import("./viewer-element-BO6fulPI.js");const e=document.createElement("gromlab-sprite-viewer");e.viewerTitle="SolidStart Vite Viewer",e.sources=[()=>import("./svg-sprite.manifest-Di7XhmOO.js")],t.append(e)}),r(y,u(),s(p(k,{"data-testid":"icon","data-app":"solid-start-vite",icon:"check","aria-label":"Check icon",width:64,height:64,style:{"--icon-color-1":"#16a34a"}})))}export{H,f as s};
|
||||
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- @generated by @gromlab/svg-sprites. Do not edit. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style>:root>svg{display:none}:root>svg:target{display:block}</style><svg viewBox="0 0 24 24" id="check" xmlns="http://www.w3.org/2000/svg"><path fill="var(--icon-color-1, currentColor)" d="M9.2 16.6 4.6 12l-2.1 2.1 6.7 6.7L22 8l-2.1-2.1z" style="transition:fill 0.3s,stroke 0.3s;"/></svg></svg>
|
||||
|
After Width: | Height: | Size: 475 B |
@@ -0,0 +1 @@
|
||||
:root{font-family:system-ui,sans-serif;color:#172033;background:#fff}body{margin:0;padding:40px}.viewer{margin-top:32px}
|
||||
@@ -0,0 +1 @@
|
||||
import{s as o}from"./index-CV0w8CD4.js";import"solid-js/web";import"solid-js";const s={schemaVersion:1,generator:"@gromlab/svg-sprites",name:"icons",usage:{framework:"solid-start",componentName:"IconsIcon",ssr:!0},mode:"solid-start@vite",target:"vite",format:"stack",iconCount:1,spriteUrl:o,icons:[{name:"check",id:"check",viewBox:"0 0 24 24",colors:[{variable:"--icon-color-1",fallback:"currentColor"}]}]};export{s as default,s as spriteManifest};
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
import"solid-js/web";import"solid-js";import{H as p}from"./assets/index-CV0w8CD4.js";export{p as default};
|
||||
File diff suppressed because one or more lines are too long
16
integration/apps/solid-start-vite/.vinxi/types/nitro-config.d.ts
vendored
Normal file
16
integration/apps/solid-start-vite/.vinxi/types/nitro-config.d.ts
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
// Generated by nitro
|
||||
|
||||
// App Config
|
||||
import type { Defu } from 'defu'
|
||||
|
||||
|
||||
|
||||
type UserAppConfig = Defu<{}, []>
|
||||
|
||||
declare module "nitropack/types" {
|
||||
interface AppConfig extends UserAppConfig {}
|
||||
interface NitroRuntimeConfig {
|
||||
|
||||
}
|
||||
}
|
||||
export {}
|
||||
1
integration/apps/solid-start-vite/.vinxi/types/nitro-imports.d.ts
vendored
Normal file
1
integration/apps/solid-start-vite/.vinxi/types/nitro-imports.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export {}
|
||||
14
integration/apps/solid-start-vite/.vinxi/types/nitro-routes.d.ts
vendored
Normal file
14
integration/apps/solid-start-vite/.vinxi/types/nitro-routes.d.ts
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
// Generated by nitro
|
||||
import type { Serialize, Simplify } from "nitropack/types";
|
||||
declare module "nitropack/types" {
|
||||
type Awaited<T> = T extends PromiseLike<infer U> ? Awaited<U> : T
|
||||
interface InternalApi {
|
||||
'/_server': {
|
||||
'default': Simplify<Serialize<Awaited<ReturnType<typeof import('../build/server-fns/_server/server-fns').default>>>>
|
||||
}
|
||||
'/': {
|
||||
'default': Simplify<Serialize<Awaited<ReturnType<typeof import('../build/ssr/ssr').default>>>>
|
||||
}
|
||||
}
|
||||
}
|
||||
export {}
|
||||
3
integration/apps/solid-start-vite/.vinxi/types/nitro.d.ts
vendored
Normal file
3
integration/apps/solid-start-vite/.vinxi/types/nitro.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
/// <reference path="./nitro-routes.d.ts" />
|
||||
/// <reference path="./nitro-config.d.ts" />
|
||||
/// <reference path="./nitro-imports.d.ts" />
|
||||
38
integration/apps/solid-start-vite/.vinxi/types/tsconfig.json
Normal file
38
integration/apps/solid-start-vite/.vinxi/types/tsconfig.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strict": false,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
"target": "ESNext",
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "Bundler",
|
||||
"allowJs": true,
|
||||
"resolveJsonModule": true,
|
||||
"jsx": "preserve",
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"jsxFactory": "h",
|
||||
"jsxFragmentFactory": "Fragment",
|
||||
"paths": {
|
||||
"#imports": [
|
||||
"./nitro-imports"
|
||||
],
|
||||
"~/*": [
|
||||
"../../*"
|
||||
],
|
||||
"@/*": [
|
||||
"../../*"
|
||||
],
|
||||
"~~/*": [
|
||||
"../../*"
|
||||
],
|
||||
"@@/*": [
|
||||
"../../*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"include": [
|
||||
"./nitro.d.ts",
|
||||
"../../**/*"
|
||||
]
|
||||
}
|
||||
3
integration/apps/solid-start-vite/app.config.ts
Normal file
3
integration/apps/solid-start-vite/app.config.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
import { defineConfig } from '@solidjs/start/config'
|
||||
|
||||
export default defineConfig({})
|
||||
22
integration/apps/solid-start-vite/package.json
Normal file
22
integration/apps/solid-start-vite/package.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "@svg-sprites-fixtures/solid-start-vite",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"sprites": "svg-sprites src/sprite/svg-sprite.config.ts",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"build": "npm run sprites && npm run typecheck && vinxi build",
|
||||
"dev": "npm run sprites && vinxi dev"
|
||||
},
|
||||
"dependencies": {
|
||||
"@solidjs/router": "^0.15.0",
|
||||
"@solidjs/start": "^1.1.0",
|
||||
"solid-js": "1.9.14",
|
||||
"vinxi": "^0.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@gromlab/svg-sprites": "file:../../..",
|
||||
"typescript": "6.0.2"
|
||||
}
|
||||
}
|
||||
13
integration/apps/solid-start-vite/src/app.jsx
Normal file
13
integration/apps/solid-start-vite/src/app.jsx
Normal file
@@ -0,0 +1,13 @@
|
||||
import { Router } from '@solidjs/router'
|
||||
import { FileRoutes } from '@solidjs/start/router'
|
||||
import { Suspense } from 'solid-js'
|
||||
|
||||
import './style.css'
|
||||
|
||||
export default function App() {
|
||||
return (
|
||||
<Router root={(props) => <Suspense>{props.children}</Suspense>}>
|
||||
<FileRoutes />
|
||||
</Router>
|
||||
)
|
||||
}
|
||||
3
integration/apps/solid-start-vite/src/entry-client.jsx
Normal file
3
integration/apps/solid-start-vite/src/entry-client.jsx
Normal file
@@ -0,0 +1,3 @@
|
||||
import { mount, StartClient } from '@solidjs/start/client'
|
||||
|
||||
export default mount(() => <StartClient />, document.getElementById('app'))
|
||||
20
integration/apps/solid-start-vite/src/entry-server.jsx
Normal file
20
integration/apps/solid-start-vite/src/entry-server.jsx
Normal file
@@ -0,0 +1,20 @@
|
||||
import { createHandler, StartServer } from '@solidjs/start/server'
|
||||
|
||||
function Document(props) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>SolidStart Vite sprite fixture</title>
|
||||
{props.assets}
|
||||
</head>
|
||||
<body>
|
||||
<div id="app">{props.children}</div>
|
||||
{props.scripts}
|
||||
</body>
|
||||
</html>
|
||||
)
|
||||
}
|
||||
|
||||
export default createHandler(() => <StartServer document={Document} />)
|
||||
@@ -0,0 +1,13 @@
|
||||
import { IconsIcon, iconsIconNames } from './sprite'
|
||||
import type { IconsIconName, IconsIconProps } from './sprite'
|
||||
|
||||
const iconName: IconsIconName = 'check'
|
||||
const props: IconsIconProps = { icon: iconName, width: 24 }
|
||||
|
||||
void IconsIcon
|
||||
void iconsIconNames
|
||||
void props
|
||||
|
||||
// @ts-expect-error Generated icon names form a literal union.
|
||||
const missingIcon: IconsIconName = 'missing'
|
||||
void missingIcon
|
||||
31
integration/apps/solid-start-vite/src/routes/index.jsx
Normal file
31
integration/apps/solid-start-vite/src/routes/index.jsx
Normal file
@@ -0,0 +1,31 @@
|
||||
import { onMount } from 'solid-js'
|
||||
|
||||
import { IconsIcon } from '../sprite'
|
||||
|
||||
export default function Home() {
|
||||
let viewerHost
|
||||
|
||||
onMount(async () => {
|
||||
await import('@gromlab/svg-sprites/viewer/element')
|
||||
const viewer = document.createElement('gromlab-sprite-viewer')
|
||||
viewer.viewerTitle = 'SolidStart Vite Viewer'
|
||||
viewer.sources = [() => import('../sprite/.svg-sprite/svg-sprite.manifest.js')]
|
||||
viewerHost.append(viewer)
|
||||
})
|
||||
|
||||
return (
|
||||
<main>
|
||||
<h1>SolidStart + Vite</h1>
|
||||
<IconsIcon
|
||||
data-testid="icon"
|
||||
data-app="solid-start-vite"
|
||||
icon="check"
|
||||
aria-label="Check icon"
|
||||
width={64}
|
||||
height={64}
|
||||
style={{ '--icon-color-1': '#16a34a' }}
|
||||
/>
|
||||
<div class="viewer" ref={viewerHost} />
|
||||
</main>
|
||||
)
|
||||
}
|
||||
2
integration/apps/solid-start-vite/src/sprite/.gitignore
vendored
Normal file
2
integration/apps/solid-start-vite/src/sprite/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# @generated by @gromlab/svg-sprites. Do not edit.
|
||||
/.svg-sprite/
|
||||
1
integration/apps/solid-start-vite/src/sprite/index.d.ts
vendored
Normal file
1
integration/apps/solid-start-vite/src/sprite/index.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export * from './.svg-sprite/index.js'
|
||||
1
integration/apps/solid-start-vite/src/sprite/index.js
Normal file
1
integration/apps/solid-start-vite/src/sprite/index.js
Normal file
@@ -0,0 +1 @@
|
||||
export * from './.svg-sprite'
|
||||
@@ -0,0 +1,8 @@
|
||||
import { defineSpriteConfig } from '@gromlab/svg-sprites'
|
||||
|
||||
export default defineSpriteConfig({
|
||||
mode: 'solid-start@vite',
|
||||
name: 'icons',
|
||||
input: '../../../../fixtures/icons/check.svg',
|
||||
generatedNotice: false,
|
||||
})
|
||||
14
integration/apps/solid-start-vite/src/style.css
Normal file
14
integration/apps/solid-start-vite/src/style.css
Normal file
@@ -0,0 +1,14 @@
|
||||
:root {
|
||||
font-family: system-ui, sans-serif;
|
||||
color: #172033;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 40px;
|
||||
}
|
||||
|
||||
.viewer {
|
||||
margin-top: 32px;
|
||||
}
|
||||
15
integration/apps/solid-start-vite/tsconfig.json
Normal file
15
integration/apps/solid-start-vite/tsconfig.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2022",
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "Bundler",
|
||||
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
||||
"jsx": "preserve",
|
||||
"jsxImportSource": "solid-js",
|
||||
"strict": true,
|
||||
"noEmit": true,
|
||||
"skipLibCheck": true,
|
||||
"types": ["vinxi/types/client"]
|
||||
},
|
||||
"include": ["src", "app.config.ts"]
|
||||
}
|
||||
Reference in New Issue
Block a user