@coreframe/vite 0.1.34 → 0.1.35
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.
|
@@ -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{camelize as c}from"@iconify/utils/lib/misc/strings";import{transform as l}from"@svgr/core";import u from"@svgr/plugin-jsx";import{createUnplugin as d}from"unplugin";import f from"node:process";import{createDebug as p}from"obug";const m=(e=>`---
|
|
2
|
+
interface Props extends astroHTML.JSX.SVGAttributes {};
|
|
3
|
+
const props = Astro.props;
|
|
4
|
+
---
|
|
5
|
+
${e.replace(`<svg`,`<svg {...props}`)}`),h=(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;`}),g=(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:c(`${t}-${n}`)});return r.jsx!==`react`&&(a=a.replace(`import * as React from "react";`,``)),a}),_=(e=>{let t=e.indexOf(`>`,e.indexOf(`<svg `)),n=e.lastIndexOf(`</svg`);return`${`${e.slice(0,t)} ...input>`}${`$!{\`${v(e.slice(t+1,n))}\`}`}${e.slice(n)}`});function v(e){return e.replace(/\\.|[$`]/g,e=>{switch(e){case`$`:return`$`;case"`":return```;default:return e}})}const y=(e=>e),ee=(async(e,t,n,r)=>{let i={importSource:`@builder.io/qwik`,runtime:`automatic`,componentName:c(`${t}-${n}`)},a=Object.assign({},i,r),o=(await importModule(`@svgx/core`)).toJsxComponent;return o(e,{...a,defaultExport:!0})}),b=(e=>`export default ${JSON.stringify(e)}`),te=(e=>`export default (props = {}) => ${e.replace(/([{}])/g,`{'$1'}`).replace(/(?<=<svg[\s\S]*?)(>)/i,`{...props}>`)}`);let x;const S=(async e=>{if(x==null)try{let{VERSION:e}=await import(`svelte/compiler`);x=Number(e.split(`.`)[0])>=5}catch{x=!1}let t=e.indexOf(`>`,e.indexOf(`<svg `)),n=e.lastIndexOf(`</svg`),r=`${e.slice(0,t)} {...${x?`p`:`$$props`}}>`;return x?r+=e.slice(t+1,n):r+=`{@html \`${C(e.slice(t+1,n))}\`}`,r+=e.slice(n),x?`<script>const{...p}=$props()<\/script>${r}`:r});function C(e){return e.replace(/\{/g,`{`).replace(/\}/g,`}`).replace(/`/g,```).replace(/\\([trn])/g,` `)}function w(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 T={astro:m,ember:h,jsx:g,marko:_,none:y,raw:b,solid:te,svelte:S,vue3:(async(e,t,n)=>{let{compileTemplate:r}=await importModule(`@vue/compiler-sfc`),{injectScripts:i,svg:a}=w(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=c(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},E=[`/~icons/`,`~icons/`,`virtual:icons/`,`virtual/icons/`],D=RegExp(`${E.map(e=>`^${e}`).join(`|`)}`);function O(e){return D.test(e)}function k(e){return e.replace(D,E[0])}function A(e){if(!O(e))return null;e=e.replace(D,``);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 j({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`?T[h]:await h.compiler;if(n)return n(m,e,t,r)}throw Error(`Unknown compiler: ${h}`)}async function M(e,t){let n=A(e);return n?j(n,t):null}const N=p(`unplugin-icons:options`);async function P(e){let{scale:t=1.2,defaultStyle:n=``,defaultClass:r=``,compiler:i=await F(),jsx:a=I(),customCollections:o={},iconCustomizer:s=()=>{},transform:c,autoInstall:l=!1,collectionsNodeResolvePath:u=f.cwd()}=e,d=Object.assign({autoDefine:!1,iconPrefix:`icon`},e.webComponents);return N(`compiler`,i),{scale:t,defaultStyle:n,defaultClass:r,customCollections:o,iconCustomizer:s,compiler:i,jsx:a,webComponents:d,transform:c,autoInstall:l,collectionsNodeResolvePath:u}}async function F(){return`jsx`}function I(){return`react`}var L=d((e={})=>{let t=P(e);return{name:`unplugin-icons`,enforce:`pre`,resolveId(t){if(O(t)){let n=k(t),r=n.indexOf(`?`),i=`${(r>-1?n.slice(0,r):n).replace(/\.\w+$/,``).replace(/^\//,``)}${r>-1?`?${n.slice(r+1)}`:``}`,a=A(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 O(e)},async load(e){let n=await M(e,await t)||null;if(n)return{code:n,map:{version:3,mappings:``,sources:[]}}},rollup:{api:{config:e}}}}).vite;const R=`src/assets/icons`,z=`\0coreframe:sprite-icon:`,B=`__COREFRAME_SPRITE_URL__`,V=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function ne(t={}){let n=r(t.appIconsDirectory??R);async function i(t){if(V.test(t))try{let i=await e(r(n,`${t}.svg`),`utf8`);Z(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(oe(e)&&e.code===`ENOENT`)return;throw e}}return[U({options:t,loadAppIcon:i,setAppIconsDirectory(e){n=e}}),L({compiler:{compiler:H,extension:`jsx`},jsx:`react`,customCollections:{app:i}})]}function H(e,t,n){return l(e,{plugins:[u],ref:!0,titleProp:!0},{componentName:c(`${t}-${n}`)})}function U({options:e,loadAppIcon:t,setAppIconsDirectory:n}){let i=new Map,a=``,o,c;return{name:`coreframe:icons`,enforce:`pre`,configResolved(t){o=t,a=re(t.root,e.appIconsDirectory??R),n(a)},resolveId(e){let t=G(e);return t?`${z}${encodeURIComponent(JSON.stringify(t))}.js`:null},async load(e){let n=W(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=K(c,n.collection,n.icon);return i.set(l.id,l),q(l,n.props,o.command===`serve`)},renderStart(){o.command!==`build`||i.size===0||(c=this.emitFile({type:`asset`,name:`coreframe-icons.svg`,source:J(i.values())}))},renderChunk(e){if(!e.includes(B))return null;if(!c)throw Error(`Coreframe sprite asset was not emitted before chunk rendering`);let t=Y(o.base,this.getFileName(c));return e.replaceAll(B,t)},handleHotUpdate(e){if(ie(a,e.file)){for(let t of e.server.moduleGraph.idToModuleMap.values())(t.id?.includes(`~icons/app/`)||t.id?.startsWith(z))&&e.server.moduleGraph.invalidateModule(t);return e.server.ws.send({type:`full-reload`}),[]}}}}function W(e){if(!e.startsWith(z)||!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=>!V.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[Q(t)]=e}),{collection:r[0],icon:r[1],props:i}}function K(e,t,n){Z(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="${$(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 q(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}`:`${B}#${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 J(e){return`<svg xmlns="http://www.w3.org/2000/svg" id="coreframe-icon-sprite">${Array.from(e,e=>e.markup).join(``)}</svg>`}function Y(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=ae(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 Z(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 Q(e){return e===`class`?`className`:e.startsWith(`aria-`)||e.startsWith(`data-`)?e:e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}function re(e,n){return t(n)?n:r(e,n)}function ie(e,r){let i=n(e,r);return i!==``&&!i.startsWith(`..`)&&!t(i)}function $(e){return e.replaceAll(`&`,`&`).replaceAll(`"`,`"`)}function ae(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function oe(e){return e instanceof Error&&`code`in e}export{ne as t};
|
package/dist/plugins/icons.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"../icons-
|
|
1
|
+
import{t as e}from"../icons-vb_lG-av.js";export{e as coreframeIconsPlugin};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{readProjectConfig as e}from"@coreframe/scripts/config";import{startManagedDevSession as t}from"@coreframe/scripts/managed-dev";import{managedDevEnv as n,managedDevEvents as r}from"@coreframe/scripts/managed-dev-protocol";const i=Symbol.for(`@coreframe/vite/managed-dev-session-states`),a=(()=>{let e=globalThis;return e[i]??=new Map})();function o({env:i=process.env,startSession:a=t}={}){let o=i[n]===`1`,l,u;return{name:`coreframe:managed-dev`,apply:`serve`,config(){return{define:{"import.meta.env.COREFRAME_MANAGED_DEV":JSON.stringify(o)}}},async configureServer(t){if(!o)return;let n=t.config.root;u=n;let d=!1,
|
|
1
|
+
import{readProjectConfig as e}from"@coreframe/scripts/config";import{startManagedDevSession as t}from"@coreframe/scripts/managed-dev";import{managedDevEnv as n,managedDevEvents as r}from"@coreframe/scripts/managed-dev-protocol";const i=Symbol.for(`@coreframe/vite/managed-dev-session-states`),a=(()=>{let e=globalThis;return e[i]??=new Map})();function o({env:i=process.env,startSession:a=t}={}){let o=i[n]===`1`,l,u;return{name:`coreframe:managed-dev`,apply:`serve`,config(){return{define:{"import.meta.env.COREFRAME_MANAGED_DEV":JSON.stringify(o)}}},async configureServer(t){if(!o)return;let n=t.config.root;u=n;let d=!1,p=new WeakMap,m=(e,t)=>{p.set(t,{forwardedFor:h(e.headers[`x-forwarded-for`]),forwardedHost:h(e.headers[`x-forwarded-host`]),forwardedProto:h(e.headers[`x-forwarded-proto`]),host:h(e.headers.host),origin:h(e.headers.origin)})};t.httpServer?.prependListener(`upgrade`,m),l=await a({config:await e({cwd:n}),cwd:n,env:i,onRestart:()=>{d=!0},onStatusChange:()=>t.ws.send(r.status,{status:l.getStatus()})}),await s(n,l);let g=(e,t)=>t.send(r.status,{status:l.getStatus()}),_=async(e,a)=>{let o;if(!f(a,i,p))o=Error(`Managed development actions require a trusted local browser origin.`);else try{let i=await l.action(e.action,{onCodexEvent:t=>a.send(r.codex,{...t,requestId:e.requestId})});a.send(r.actionResult,{requestId:e.requestId,...i}),d&&(d=!1,queueMicrotask(()=>{c(n,l).then(()=>t.restart()).catch(e=>{let n=e instanceof Error?e.message:String(e);t.config.logger.error(`Coreframe managed development restart failed: ${n}`,{error:e instanceof Error?e:void 0})})}));return}catch(e){o=e}let s=o instanceof Error?o.message:String(o);t.config.logger.error(`Coreframe managed development action failed: ${s}`,{error:o instanceof Error?o:void 0}),a.send(r.actionResult,{error:s,requestId:e.requestId,status:l.getStatus()})};t.ws.on(r.statusRequest,g),t.ws.on(r.action,_),t.httpServer?.once(`close`,()=>{t.httpServer?.off(`upgrade`,m),t.ws.off(r.statusRequest,g),t.ws.off(r.action,_),l&&c(n,l)})},async closeBundle(){l&&u&&await c(u,l)}}}async function s(e,t){await l(e,async e=>{let n=e.session;e.session=void 0,await n?.close();try{await t.activate(),e.session=t}catch(e){throw await t.close(),e}})}async function c(e,t){await l(e,async e=>{e.session===t&&(e.session=void 0),await t.close()})}async function l(e,t){let n=a.get(e);n||(n={transition:Promise.resolve()},a.set(e,n));let r=n.transition,i;n.transition=new Promise(e=>{i=()=>e()}),await r;try{await t(n)}finally{i()}}function u(e){return e.socket._socket?.remoteAddress}function d(e){return e.socket._socket}function f(e,t,n){if(!_(u(e))||g(t))return!1;let r=d(e),i=r&&n.get(r);if(!i)return!1;if(i.forwardedFor===void 0&&i.forwardedHost===void 0&&i.forwardedProto===void 0)return p(i);let a=m(t.PORTLESS_URL);if(!a||a.protocol!==`https:`||i.origin!==a.origin)return!1;let o=a.protocol.slice(0,-1),s=i.forwardedFor?.split(`,`).map(e=>e.trim());return a.protocol===`https:`&&i.forwardedHost?.toLowerCase()===a.host&&i.forwardedProto?.toLowerCase()===o&&s!==void 0&&s.length>0&&s.every(e=>e.length>0&&_(e))}function p(e){let t=m(e.origin);return t!==void 0&&e.host?.toLowerCase()===t.host.toLowerCase()&&(t.hostname===`localhost`||t.hostname===`127.0.0.1`||t.hostname===`[::1]`)}function m(e){if(e)try{let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&t.origin===e?t:void 0}catch{return}}function h(e){return typeof e==`string`?e:void 0}function g(e){return e.PORTLESS_LAN===`1`||e.PORTLESS_TAILSCALE===`1`||e.PORTLESS_FUNNEL===`1`||e.PORTLESS_NGROK===`1`||!!e.PORTLESS_TAILSCALE_URL||!!e.PORTLESS_NGROK_URL}function _(e){return e===`127.0.0.1`||e===`::1`||e?.startsWith(`::ffff:127.`)}export{o as coreframeManagedDevPlugin};
|
package/dist/plugins/preset.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{coreframeAssetsPlugin as e}from"./assets.js";import{coreframeDashboardPlugin as t}from"./dashboard.js";import{t as n}from"../icons-
|
|
1
|
+
import{coreframeAssetsPlugin as e}from"./assets.js";import{coreframeDashboardPlugin as t}from"./dashboard.js";import{t as n}from"../icons-vb_lG-av.js";import{coreframeManagedDevPlugin as r}from"./managed-dev.js";import{t as i}from"../worktree-head-BZrhW1-Q.js";function a(){return[e(),...n(),r(),i(),t()]}export{a 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.35",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/airlock-labs/coreframe.git",
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
"lucide-react": "^1.24.0",
|
|
37
37
|
"obug": "^2.1.3",
|
|
38
38
|
"unplugin": "^2.3.11",
|
|
39
|
-
"@coreframe/
|
|
40
|
-
"@coreframe/
|
|
41
|
-
"@coreframe/
|
|
39
|
+
"@coreframe/lib": "^0.1.17",
|
|
40
|
+
"@coreframe/scripts": "^0.1.45",
|
|
41
|
+
"@coreframe/dashboard": "^0.2.23"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@tsdown/css": "0.22.3",
|
package/dist/icons-Dn2tl9hg.js
DELETED
|
@@ -1,25 +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{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};
|