@coreframe/vite 0.1.17 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/icons-Dn2tl9hg.js +25 -0
- package/dist/{managed-dev-overlay.d.ts → overlay/managed-dev-overlay.d.ts} +1 -1
- package/dist/{assets.d.ts → plugins/assets.d.ts} +1 -1
- package/dist/{cloudflare.d.ts → plugins/cloudflare.d.ts} +1 -1
- package/dist/{dashboard.d.ts → plugins/dashboard.d.ts} +1 -1
- package/dist/{icons.d.ts → plugins/icons.d.ts} +1 -1
- package/dist/plugins/icons.js +1 -0
- package/dist/{index.d.ts → plugins/index.d.ts} +1 -1
- package/dist/{managed-dev.d.ts → plugins/managed-dev.d.ts} +1 -1
- package/dist/{markdown-frontmatter.d.ts → plugins/markdown-frontmatter.d.ts} +1 -1
- package/dist/{preset.d.ts → plugins/preset.d.ts} +1 -1
- package/dist/plugins/preset.js +1 -0
- package/package.json +15 -38
- package/dist/icons.js +0 -14
- package/dist/preset.js +0 -1
- /package/dist/{managed-dev-overlay.js → overlay/managed-dev-overlay.js} +0 -0
- /package/dist/{assets.js → plugins/assets.js} +0 -0
- /package/dist/{cloudflare.js → plugins/cloudflare.js} +0 -0
- /package/dist/{dashboard.js → plugins/dashboard.js} +0 -0
- /package/dist/{index.js → plugins/index.js} +0 -0
- /package/dist/{managed-dev.js → plugins/managed-dev.js} +0 -0
- /package/dist/{markdown-frontmatter.js → plugins/markdown-frontmatter.js} +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import{readFile as e}from"node:fs/promises";import{isAbsolute as t,relative as n,resolve as r}from"node:path";import{createHash as i}from"node:crypto";import{buildParsedSVG as a,parseSVGContent as o}from"@iconify/utils";import{loadNodeIcon as s}from"@iconify/utils/lib/loader/node-loader";import{createUnplugin as c}from"unplugin";import{camelize as l}from"@iconify/utils/lib/misc/strings";import u from"node:process";import{createDebug as d}from"obug";const f=(e=>`---
|
|
2
|
+
interface Props extends astroHTML.JSX.SVGAttributes {};
|
|
3
|
+
const props = Astro.props;
|
|
4
|
+
---
|
|
5
|
+
${e.replace(`<svg`,`<svg {...props}`)}`),p=(e=>{let t=e.replace(`<svg`,`<svg ...attributes`);return`import { template } from "@ember/template-compiler";
|
|
6
|
+
|
|
7
|
+
const Icon = template(${JSON.stringify(t)})
|
|
8
|
+
export default Icon;`}),m=(async(e,t,n,r)=>{let i=await import(`@svgr/core`),a=await(i.transform||(i.default?i.default.transform??i.default:i.default)||i)(e,{plugins:[`@svgr/plugin-jsx`],ref:r.jsx===`react`,titleProp:r.jsx===`react`},{componentName:l(`${t}-${n}`)});return r.jsx!==`react`&&(a=a.replace(`import * as React from "react";`,``)),a}),h=(e=>{let t=e.indexOf(`>`,e.indexOf(`<svg `)),n=e.lastIndexOf(`</svg`);return`${`${e.slice(0,t)} ...input>`}${`$!{\`${g(e.slice(t+1,n))}\`}`}${e.slice(n)}`});function g(e){return e.replace(/\\.|[$`]/g,e=>{switch(e){case`$`:return`$`;case"`":return```;default:return e}})}const _=(e=>e),ee=(async(e,t,n,r)=>{let i={importSource:`@builder.io/qwik`,runtime:`automatic`,componentName:l(`${t}-${n}`)},a=Object.assign({},i,r),o=(await importModule(`@svgx/core`)).toJsxComponent;return o(e,{...a,defaultExport:!0})}),v=(e=>`export default ${JSON.stringify(e)}`),y=(e=>`export default (props = {}) => ${e.replace(/([{}])/g,`{'$1'}`).replace(/(?<=<svg[\s\S]*?)(>)/i,`{...props}>`)}`);let b;const x=(async e=>{if(b==null)try{let{VERSION:e}=await import(`svelte/compiler`);b=Number(e.split(`.`)[0])>=5}catch{b=!1}let t=e.indexOf(`>`,e.indexOf(`<svg `)),n=e.lastIndexOf(`</svg`),r=`${e.slice(0,t)} {...${b?`p`:`$$props`}}>`;return b?r+=e.slice(t+1,n):r+=`{@html \`${S(e.slice(t+1,n))}\`}`,r+=e.slice(n),b?`<script>const{...p}=$props()<\/script>${r}`:r});function S(e){return e.replace(/\{/g,`{`).replace(/\}/g,`}`).replace(/`/g,```).replace(/\\([trn])/g,` `)}function C(e){let t=/="url\(#/.test(e),n={},r=``;return t&&(e=e.replace(/\b([\w-]+)="url\(#(.+?)\)"/g,(e,t,r)=>(n[r]=`'${r}':'uicons-'+__randId()`,`:${t}="'url(#'+idMap['${r}']+')'"`)).replace(/\bid="(.+?)"/g,(e,t)=>n[t]?`:id="idMap['${t}']"`:e),r=`const __randId = () => Math.random().toString(36).substr(2, 10);const idMap = {${Object.values(n).join(`,`)}};`),{hasID:t,svg:e,injectScripts:r}}const w={astro:f,ember:p,jsx:m,marko:h,none:_,raw:v,solid:y,svelte:x,vue3:(async(e,t,n)=>{let{compileTemplate:r}=await importModule(`@vue/compiler-sfc`),{injectScripts:i,svg:a}=C(e),{code:o}=r({source:a,id:`${t}:${n}`,filename:`${t}-${n}.vue`});return o=`import { markRaw } from 'vue'\n${o}`,o=o.replace(/^export /gm,``),o+=`\n\nexport default markRaw({ name: '${t}-${n}', render${i?`, setup() {${i};return { idMap }}`:``} })`,o+=`
|
|
9
|
+
/* vite-plugin-components disabled */`,o}),"web-components":((e,t,n,{webComponents:r})=>{let i=`${t}-${n}`;r.iconPrefix&&(i=`${r.iconPrefix}-${i}`);let a=l(i),o=`export default class ${a} extends HTMLElement {`;return r.shadow?o+=`constructor() {
|
|
10
|
+
super()
|
|
11
|
+
this.attachShadow({ mode: 'open' }).innerHTML = ${JSON.stringify(e)}
|
|
12
|
+
}`:o+=`connectedCallback() { this.innerHTML = ${JSON.stringify(e)} }`,o+=`}`,r.autoDefine&&(o+=`\ncustomElements.define('${i}', ${a})`),o}),qwik:ee},T=[`/~icons/`,`~icons/`,`virtual:icons/`,`virtual/icons/`],E=RegExp(`${T.map(e=>`^${e}`).join(`|`)}`);function D(e){return E.test(e)}function O(e){return e.replace(E,T[0])}function k(e){if(!D(e))return null;e=e.replace(E,``);let t={},n=e.indexOf(`?`);if(n!==-1){let r=e.slice(n+1);e=e.slice(0,n),new URLSearchParams(r).forEach((e,n)=>{n===`raw`?t.raw=e===``||e===`true`?`true`:`false`:t[n]=e})}e=e.replace(/\.\w+$/,``);let[r,i]=e.split(`/`);return{collection:r,icon:i,query:t}}async function A({collection:e,icon:t,query:n},r){let i=`${e}/${t}`,{scale:a,defaultStyle:o,defaultClass:c,customCollections:l,iconCustomizer:u,transform:d,autoInstall:f=!1,collectionsNodeResolvePath:p}=r,m=await s(e,t,{addXmlNs:!1,scale:a,customCollections:l,autoInstall:f,defaultClass:c,defaultStyle:o,cwd:p,warn:void 0,customizations:{transform:d,async iconCustomizer(e,t,r){await u?.(e,t,r),Object.keys(n).forEach(e=>{let t=n[e];e!==`raw`&&t!=null&&(r[e]=t)})}}});if(!m)throw Error(`Icon \`${i}\` not found`);let h=n.raw===`true`?`raw`:r.compiler;if(h){let n=typeof h==`string`?w[h]:await h.compiler;if(n)return n(m,e,t,r)}throw Error(`Unknown compiler: ${h}`)}async function j(e,t){let n=k(e);return n?A(n,t):null}const M=d(`unplugin-icons:options`);async function N(e){let{scale:t=1.2,defaultStyle:n=``,defaultClass:r=``,compiler:i=await P(),jsx:a=F(),customCollections:o={},iconCustomizer:s=()=>{},transform:c,autoInstall:l=!1,collectionsNodeResolvePath:d=u.cwd()}=e,f=Object.assign({autoDefine:!1,iconPrefix:`icon`},e.webComponents);return M(`compiler`,i),{scale:t,defaultStyle:n,defaultClass:r,customCollections:o,iconCustomizer:s,compiler:i,jsx:a,webComponents:f,transform:c,autoInstall:l,collectionsNodeResolvePath:d}}async function P(){return`jsx`}function F(){return`react`}var I=c((e={})=>{let t=N(e);return{name:`unplugin-icons`,enforce:`pre`,resolveId(t){if(D(t)){let n=O(t),r=n.indexOf(`?`),i=`${(r>-1?n.slice(0,r):n).replace(/\.\w+$/,``).replace(/^\//,``)}${r>-1?`?${n.slice(r+1)}`:``}`,a=k(i)?.query?.raw===`true`?`raw`:e.compiler;if(a&&typeof a!=`string`){let e=a.extension;if(e)return`${i}.${e.startsWith(`.`)?e.slice(1):e}`}else switch(a){case`astro`:return`${i}.astro`;case`jsx`:return`${i}.jsx`;case`qwik`:return`${i}.jsx`;case`marko`:return`${i}.marko`;case`svelte`:return`${i}.svelte`;case`solid`:return`${i}.tsx`}return i}return null},loadInclude(e){return D(e)},async load(e){let n=await j(e,await t)||null;if(n)return{code:n,map:{version:3,mappings:``,sources:[]}}},rollup:{api:{config:e}}}}).vite;const L=`src/assets/icons`,R=`\0coreframe:sprite-icon:`,z=`__COREFRAME_SPRITE_URL__`,B=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function V(t={}){let n=r(t.appIconsDirectory??L);async function i(t){if(B.test(t))try{let i=await e(r(n,`${t}.svg`),`utf8`);X(i,`app/${t}`);let s=o(i);if(!s||!a(s))throw Error(`Icon \`app/${t}\` must contain a valid viewBox`);return i}catch(e){if(re(e)&&e.code===`ENOENT`)return;throw e}}return[H({options:t,loadAppIcon:i,setAppIconsDirectory(e){n=e}}),I({compiler:`jsx`,jsx:`react`,customCollections:{app:i}})]}function H({options:e,loadAppIcon:t,setAppIconsDirectory:n}){let i=new Map,a=``,o,c;return{name:`coreframe:icons`,enforce:`pre`,configResolved(t){o=t,a=Q(t.root,e.appIconsDirectory??L),n(a)},resolveId(e){let t=W(e);return t?`${R}${encodeURIComponent(JSON.stringify(t))}.js`:null},async load(e){let n=U(e);if(!n)return null;n.collection===`app`&&this.addWatchFile(r(a,`${n.icon}.svg`));let c=n.collection===`app`?await t(n.icon):await s(n.collection,n.icon,{addXmlNs:!1,autoInstall:!1,cwd:o.root,scale:1.2});if(!c)throw Error(`Icon \`${n.collection}/${n.icon}\` not found`);let l=G(c,n.collection,n.icon);return i.set(l.id,l),K(l,n.props,o.command===`serve`)},renderStart(){o.command!==`build`||i.size===0||(c=this.emitFile({type:`asset`,name:`coreframe-icons.svg`,source:q(i.values())}))},renderChunk(e){if(!e.includes(z))return null;if(!c)throw Error(`Coreframe sprite asset was not emitted before chunk rendering`);let t=J(o.base,this.getFileName(c));return e.replaceAll(z,t)},handleHotUpdate(e){if(te(a,e.file)){for(let t of e.server.moduleGraph.idToModuleMap.values())(t.id?.includes(`~icons/app/`)||t.id?.startsWith(R))&&e.server.moduleGraph.invalidateModule(t);return e.server.ws.send({type:`full-reload`}),[]}}}}function U(e){if(!e.startsWith(R)||!e.endsWith(`.js`))return null;let t=e.slice(23,-3);return JSON.parse(decodeURIComponent(t))}function W(e){let t=e.indexOf(`?`);if(t===-1)return null;let n=new URLSearchParams(e.slice(t+1));if(!n.has(`sprite`))return null;n.delete(`sprite`);let r=e.slice(0,t).replace(/^\/?(?:~icons|virtual:icons|virtual\/icons)\//,``).replace(/\.\w+$/,``).split(`/`);if(r.length!==2||r.some(e=>!B.test(e)))throw Error(`Invalid sprite icon import: ${e}`);let i=Object.create(null);return n.forEach((e,t)=>{if(t===`raw`)throw Error(`An icon import cannot use both ?sprite and ?raw`);if(t===`style`)throw Error(`Pass sprite icon styles through the component style prop`);i[Z(t)]=e}),{collection:r[0],icon:r[1],props:i}}function G(e,t,n){X(e,`${t}/${n}`);let r=o(e),s=r&&a(r);if(!r||!s)throw Error(`Icon \`${t}/${n}\` must contain a valid viewBox`);let c=`coreframe-icon-${t}-${n}-${i(`sha256`).update(`${t}/${n}\0${s.attributes.viewBox}\0${s.body}`).digest(`hex`).slice(0,12)}`,l=Y(s.body,c),u=r.attribs.preserveAspectRatio?` preserveAspectRatio="${$(r.attribs.preserveAspectRatio)}"`:``;return{id:c,markup:`<symbol id="${c}" viewBox="${$(s.attributes.viewBox)}"${u}>${l}</symbol>`,viewBox:s.attributes.viewBox,width:s.attributes.width,height:s.attributes.height}}function K(e,t,n){let r={...e.width?{width:e.width}:{},...e.height?{height:e.height}:{},...t},i=n?`\nregisterSpriteSymbol(${JSON.stringify({id:e.id,markup:e.markup})})\n`:``,a=n?`import { registerSpriteSymbol, SpriteIcon } from "@coreframe/lib/sprite-icon"`:`import { SpriteIcon } from "@coreframe/lib/sprite-icon"`,o=n?`#${e.id}`:`${z}#${e.id}`;return`${a}
|
|
13
|
+
import { createElement } from "react"
|
|
14
|
+
${i}
|
|
15
|
+
const defaultProps = ${JSON.stringify(r)}
|
|
16
|
+
|
|
17
|
+
export default function CoreframeSpriteIcon(props) {
|
|
18
|
+
return createElement(SpriteIcon, {
|
|
19
|
+
...defaultProps,
|
|
20
|
+
...props,
|
|
21
|
+
href: "${o}",
|
|
22
|
+
viewBox: "${e.viewBox}",
|
|
23
|
+
})
|
|
24
|
+
}
|
|
25
|
+
`}function q(e){return`<svg xmlns="http://www.w3.org/2000/svg" id="coreframe-icon-sprite">${Array.from(e,e=>e.markup).join(``)}</svg>`}function J(e,t){return`${e.endsWith(`/`)?e:`${e}/`}${t}`}function Y(e,t){let n=Array.from(e.matchAll(/\bid=(['"])(.*?)\1/g),e=>e[2]),r=e;for(let[e,i]of n.entries()){let n=ne(i),a=`${t}-${e+1}`;r=r.replace(RegExp(`\\bid=(['"])${n}\\1`,`g`),`id="${a}"`).replace(RegExp(`(["#;])${n}(?=[)"']|\\.[a-z])`,`g`),`$1${a}`)}return r}function X(e,t){if(/<(?:script|foreignObject)\b/i.test(e)||/\son[a-z]+\s*=/i.test(e))throw Error(`Icon \`${t}\` contains executable SVG content`);if(/\b(?:href|xlink:href)\s*=\s*['"](?!#)/i.test(e))throw Error(`Icon \`${t}\` contains an external SVG reference`)}function Z(e){return e===`class`?`className`:e.startsWith(`aria-`)||e.startsWith(`data-`)?e:e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}function Q(e,n){return t(n)?n:r(e,n)}function te(e,r){let i=n(e,r);return i!==``&&!i.startsWith(`..`)&&!t(i)}function $(e){return e.replaceAll(`&`,`&`).replaceAll(`"`,`"`)}function ne(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function re(e){return e instanceof Error&&`code`in e}export{V as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"../icons-Dn2tl9hg.js";export{e as coreframeIconsPlugin};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { startManagedDevSession } from "@coreframe/scripts/managed-dev";
|
|
2
2
|
import { Plugin } from "vite";
|
|
3
3
|
|
|
4
|
-
//#region managed-dev.d.ts
|
|
4
|
+
//#region plugins/managed-dev.d.ts
|
|
5
5
|
type CoreframeManagedDevPluginOptions = {
|
|
6
6
|
env?: NodeJS.ProcessEnv;
|
|
7
7
|
startSession?: typeof startManagedDevSession;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{coreframeAssetsPlugin as e}from"./assets.js";import{coreframeDashboardPlugin as t}from"./dashboard.js";import{t as n}from"../icons-Dn2tl9hg.js";import{coreframeManagedDevPlugin as r}from"./managed-dev.js";function i(){return[e(),...n(),r(),t()]}export{i as coreframeVitePreset};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coreframe/vite",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/airlock-labs/coreframe.git",
|
|
@@ -12,52 +12,28 @@
|
|
|
12
12
|
"type": "module",
|
|
13
13
|
"exports": {
|
|
14
14
|
".": {
|
|
15
|
-
"types": "./dist/index.d.ts",
|
|
16
|
-
"default": "./dist/index.js"
|
|
17
|
-
},
|
|
18
|
-
"./assets": {
|
|
19
|
-
"types": "./dist/assets.d.ts",
|
|
20
|
-
"default": "./dist/assets.js"
|
|
21
|
-
},
|
|
22
|
-
"./cloudflare": {
|
|
23
|
-
"types": "./dist/cloudflare.d.ts",
|
|
24
|
-
"default": "./dist/cloudflare.js"
|
|
25
|
-
},
|
|
26
|
-
"./dashboard": {
|
|
27
|
-
"types": "./dist/dashboard.d.ts",
|
|
28
|
-
"default": "./dist/dashboard.js"
|
|
29
|
-
},
|
|
30
|
-
"./icons": {
|
|
31
|
-
"types": "./dist/icons.d.ts",
|
|
32
|
-
"default": "./dist/icons.js"
|
|
33
|
-
},
|
|
34
|
-
"./markdown-frontmatter": {
|
|
35
|
-
"types": "./dist/markdown-frontmatter.d.ts",
|
|
36
|
-
"default": "./dist/markdown-frontmatter.js"
|
|
37
|
-
},
|
|
38
|
-
"./managed-dev": {
|
|
39
|
-
"types": "./dist/managed-dev.d.ts",
|
|
40
|
-
"default": "./dist/managed-dev.js"
|
|
15
|
+
"types": "./dist/plugins/index.d.ts",
|
|
16
|
+
"default": "./dist/plugins/index.js"
|
|
41
17
|
},
|
|
42
18
|
"./managed-dev-overlay": {
|
|
43
|
-
"types": "./dist/managed-dev-overlay.d.ts",
|
|
44
|
-
"default": "./dist/managed-dev-overlay.js"
|
|
19
|
+
"types": "./dist/overlay/managed-dev-overlay.d.ts",
|
|
20
|
+
"default": "./dist/overlay/managed-dev-overlay.js"
|
|
45
21
|
},
|
|
46
|
-
"
|
|
47
|
-
"types": "./dist/
|
|
48
|
-
"default": "./dist/
|
|
22
|
+
"./*": {
|
|
23
|
+
"types": "./dist/plugins/*.d.ts",
|
|
24
|
+
"default": "./dist/plugins/*.js"
|
|
49
25
|
}
|
|
50
26
|
},
|
|
51
27
|
"dependencies": {
|
|
52
28
|
"@iconify/utils": "^3.1.4",
|
|
53
29
|
"@svgr/core": "^8.1.0",
|
|
54
30
|
"@svgr/plugin-jsx": "^8.1.0",
|
|
55
|
-
"local-pkg": "^1.2.1",
|
|
56
31
|
"lucide-react": "^1.24.0",
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"@coreframe/lib": "^0.1.
|
|
60
|
-
"@coreframe/
|
|
32
|
+
"obug": "^2.1.3",
|
|
33
|
+
"unplugin": "^2.3.11",
|
|
34
|
+
"@coreframe/lib": "^0.1.10",
|
|
35
|
+
"@coreframe/dashboard": "^0.2.8",
|
|
36
|
+
"@coreframe/scripts": "^0.1.30"
|
|
61
37
|
},
|
|
62
38
|
"devDependencies": {
|
|
63
39
|
"@tsdown/css": "0.22.3",
|
|
@@ -69,6 +45,7 @@
|
|
|
69
45
|
"react-dom": "^19.2.7",
|
|
70
46
|
"tsdown": "0.22.3",
|
|
71
47
|
"typescript": "6.0.3",
|
|
48
|
+
"unplugin-icons": "^23.0.1",
|
|
72
49
|
"vite": "^8.1.0",
|
|
73
50
|
"vitest": "^4.1.9"
|
|
74
51
|
},
|
|
@@ -78,7 +55,7 @@
|
|
|
78
55
|
"vite": "^8.0.0"
|
|
79
56
|
},
|
|
80
57
|
"scripts": {
|
|
81
|
-
"build": "tsdown
|
|
58
|
+
"build": "tsdown",
|
|
82
59
|
"test": "vitest run",
|
|
83
60
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
84
61
|
"format": "oxfmt",
|
package/dist/icons.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import{readFile as e}from"node:fs/promises";import{isAbsolute as t,relative as n,resolve as r}from"node:path";import{createHash as i}from"node:crypto";import{buildParsedSVG as a,parseSVGContent as o}from"@iconify/utils";import{loadNodeIcon as s}from"@iconify/utils/lib/loader/node-loader";import c from"unplugin-icons/vite";const l=`src/assets/icons`,u=`\0coreframe:sprite-icon:`,d=`__COREFRAME_SPRITE_URL__`,f=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function p(t={}){let n=r(t.appIconsDirectory??l);async function i(t){if(f.test(t))try{let i=await e(r(n,`${t}.svg`),`utf8`);S(i,`app/${t}`);let s=o(i);if(!s||!a(s))throw Error(`Icon \`app/${t}\` must contain a valid viewBox`);return i}catch(e){if(O(e)&&e.code===`ENOENT`)return;throw e}}return[m({options:t,loadAppIcon:i,setAppIconsDirectory(e){n=e}}),c({compiler:`jsx`,jsx:`react`,customCollections:{app:i}})]}function m({options:e,loadAppIcon:t,setAppIconsDirectory:n}){let i=new Map,a=``,o,c;return{name:`coreframe:icons`,enforce:`pre`,configResolved(t){o=t,a=w(t.root,e.appIconsDirectory??l),n(a)},resolveId(e){let t=g(e);return t?`${u}${encodeURIComponent(JSON.stringify(t))}.js`:null},async load(e){let n=h(e);if(!n)return null;n.collection===`app`&&this.addWatchFile(r(a,`${n.icon}.svg`));let c=n.collection===`app`?await t(n.icon):await s(n.collection,n.icon,{addXmlNs:!1,autoInstall:!1,cwd:o.root,scale:1.2});if(!c)throw Error(`Icon \`${n.collection}/${n.icon}\` not found`);let l=_(c,n.collection,n.icon);return i.set(l.id,l),v(l,n.props,o.command===`serve`)},renderStart(){o.command!==`build`||i.size===0||(c=this.emitFile({type:`asset`,name:`coreframe-icons.svg`,source:y(i.values())}))},renderChunk(e){if(!e.includes(d))return null;if(!c)throw Error(`Coreframe sprite asset was not emitted before chunk rendering`);let t=b(o.base,this.getFileName(c));return e.replaceAll(d,t)},handleHotUpdate(e){if(T(a,e.file)){for(let t of e.server.moduleGraph.idToModuleMap.values())(t.id?.includes(`~icons/app/`)||t.id?.startsWith(u))&&e.server.moduleGraph.invalidateModule(t);return e.server.ws.send({type:`full-reload`}),[]}}}}function h(e){if(!e.startsWith(u)||!e.endsWith(`.js`))return null;let t=e.slice(23,-3);return JSON.parse(decodeURIComponent(t))}function g(e){let t=e.indexOf(`?`);if(t===-1)return null;let n=new URLSearchParams(e.slice(t+1));if(!n.has(`sprite`))return null;n.delete(`sprite`);let r=e.slice(0,t).replace(/^\/?(?:~icons|virtual:icons|virtual\/icons)\//,``).replace(/\.\w+$/,``).split(`/`);if(r.length!==2||r.some(e=>!f.test(e)))throw Error(`Invalid sprite icon import: ${e}`);let i=Object.create(null);return n.forEach((e,t)=>{if(t===`raw`)throw Error(`An icon import cannot use both ?sprite and ?raw`);if(t===`style`)throw Error(`Pass sprite icon styles through the component style prop`);i[C(t)]=e}),{collection:r[0],icon:r[1],props:i}}function _(e,t,n){S(e,`${t}/${n}`);let r=o(e),s=r&&a(r);if(!r||!s)throw Error(`Icon \`${t}/${n}\` must contain a valid viewBox`);let c=`coreframe-icon-${t}-${n}-${i(`sha256`).update(`${t}/${n}\0${s.attributes.viewBox}\0${s.body}`).digest(`hex`).slice(0,12)}`,l=x(s.body,c),u=r.attribs.preserveAspectRatio?` preserveAspectRatio="${E(r.attribs.preserveAspectRatio)}"`:``;return{id:c,markup:`<symbol id="${c}" viewBox="${E(s.attributes.viewBox)}"${u}>${l}</symbol>`,viewBox:s.attributes.viewBox,width:s.attributes.width,height:s.attributes.height}}function v(e,t,n){let r={...e.width?{width:e.width}:{},...e.height?{height:e.height}:{},...t},i=n?`\nregisterSpriteSymbol(${JSON.stringify({id:e.id,markup:e.markup})})\n`:``,a=n?`import { registerSpriteSymbol, SpriteIcon } from "@coreframe/lib/sprite-icon"`:`import { SpriteIcon } from "@coreframe/lib/sprite-icon"`,o=n?`#${e.id}`:`${d}#${e.id}`;return`${a}
|
|
2
|
-
import { createElement } from "react"
|
|
3
|
-
${i}
|
|
4
|
-
const defaultProps = ${JSON.stringify(r)}
|
|
5
|
-
|
|
6
|
-
export default function CoreframeSpriteIcon(props) {
|
|
7
|
-
return createElement(SpriteIcon, {
|
|
8
|
-
...defaultProps,
|
|
9
|
-
...props,
|
|
10
|
-
href: "${o}",
|
|
11
|
-
viewBox: "${e.viewBox}",
|
|
12
|
-
})
|
|
13
|
-
}
|
|
14
|
-
`}function y(e){return`<svg xmlns="http://www.w3.org/2000/svg" id="coreframe-icon-sprite">${Array.from(e,e=>e.markup).join(``)}</svg>`}function b(e,t){return`${e.endsWith(`/`)?e:`${e}/`}${t}`}function x(e,t){let n=Array.from(e.matchAll(/\bid=(['"])(.*?)\1/g),e=>e[2]),r=e;for(let[e,i]of n.entries()){let n=D(i),a=`${t}-${e+1}`;r=r.replace(RegExp(`\\bid=(['"])${n}\\1`,`g`),`id="${a}"`).replace(RegExp(`(["#;])${n}(?=[)"']|\\.[a-z])`,`g`),`$1${a}`)}return r}function S(e,t){if(/<(?:script|foreignObject)\b/i.test(e)||/\son[a-z]+\s*=/i.test(e))throw Error(`Icon \`${t}\` contains executable SVG content`);if(/\b(?:href|xlink:href)\s*=\s*['"](?!#)/i.test(e))throw Error(`Icon \`${t}\` contains an external SVG reference`)}function C(e){return e===`class`?`className`:e.startsWith(`aria-`)||e.startsWith(`data-`)?e:e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}function w(e,n){return t(n)?n:r(e,n)}function T(e,r){let i=n(e,r);return i!==``&&!i.startsWith(`..`)&&!t(i)}function E(e){return e.replaceAll(`&`,`&`).replaceAll(`"`,`"`)}function D(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function O(e){return e instanceof Error&&`code`in e}export{p as coreframeIconsPlugin};
|
package/dist/preset.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{coreframeAssetsPlugin as e}from"./assets.js";import{coreframeDashboardPlugin as t}from"./dashboard.js";import{coreframeIconsPlugin as n}from"./icons.js";import{coreframeManagedDevPlugin as r}from"./managed-dev.js";function i(){return[e(),...n(),r(),t()]}export{i as coreframeVitePreset};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|