nuxt-og-image 2.0.0-beta.7 → 2.0.0-beta.70

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.
Files changed (117) hide show
  1. package/README.md +312 -97
  2. package/dist/client/200.html +2 -2
  3. package/dist/client/404.html +2 -2
  4. package/dist/client/_nuxt/IconCSS.78433ecd.js +1 -0
  5. package/dist/client/_nuxt/IconCSS.b41b9663.css +1 -0
  6. package/dist/client/_nuxt/ImageLoader.7571516f.css +1 -0
  7. package/dist/client/_nuxt/ImageLoader.b930015f.js +1 -0
  8. package/dist/client/_nuxt/entry.1311cc29.css +1 -0
  9. package/dist/client/_nuxt/entry.212e85d9.js +143 -0
  10. package/dist/client/_nuxt/{error-404.1ff52902.js → error-404.0875e3f6.js} +1 -1
  11. package/dist/client/_nuxt/error-404.f3dd5020.css +1 -0
  12. package/dist/client/_nuxt/error-500.06915589.css +1 -0
  13. package/dist/client/_nuxt/{error-500.f7d30da5.js → error-500.f06aa28f.js} +1 -1
  14. package/dist/client/_nuxt/index.9dc826bf.js +1 -0
  15. package/dist/client/_nuxt/index.ffbea0a9.css +1 -0
  16. package/dist/client/_nuxt/options.f2b6402e.js +1 -0
  17. package/dist/client/_nuxt/png.04e14eef.js +1 -0
  18. package/dist/client/_nuxt/{shiki.3a930bb8.js → shiki.a8b6534b.js} +1 -1
  19. package/dist/client/_nuxt/svg.9ac05c0d.js +1 -0
  20. package/dist/client/_nuxt/vnodes.c25d5717.js +1 -0
  21. package/dist/client/index.html +2 -2
  22. package/dist/client/options/index.html +2 -2
  23. package/dist/client/png/index.html +2 -2
  24. package/dist/client/svg/index.html +2 -2
  25. package/dist/client/vnodes/index.html +2 -2
  26. package/dist/module.d.ts +101 -11
  27. package/dist/module.json +2 -2
  28. package/dist/module.mjs +394 -134
  29. package/dist/runtime/browserUtil.d.ts +1 -0
  30. package/dist/runtime/browserUtil.mjs +10 -5
  31. package/dist/runtime/components/{OgImageDynamic.d.ts → OgImage/Cached.d.ts} +2 -2
  32. package/dist/runtime/components/OgImage/Cached.mjs +10 -0
  33. package/dist/runtime/components/{OgImageScreenshot.d.ts → OgImage/Screenshot.d.ts} +2 -2
  34. package/dist/runtime/components/{OgImageScreenshot.mjs → OgImage/Screenshot.mjs} +2 -2
  35. package/dist/runtime/components/OgImage/WithoutCache.d.ts +4 -0
  36. package/dist/runtime/components/OgImage/WithoutCache.mjs +10 -0
  37. package/dist/runtime/components/OgImage/_OgImageDynamic.d.ts +8 -0
  38. package/dist/runtime/components/{OgImageDynamic.mjs → OgImage/_OgImageDynamic.mjs} +3 -3
  39. package/dist/runtime/components/OgImage/_OgImageStatic.d.ts +8 -0
  40. package/dist/runtime/components/{OgImageStatic.mjs → OgImage/_OgImageStatic.mjs} +3 -3
  41. package/dist/runtime/components/{OgImageStatic.d.ts → OgImage/index.d.ts} +2 -2
  42. package/dist/runtime/components/OgImage/index.mjs +10 -0
  43. package/dist/runtime/components/OgImageTemplate/Fallback.vue +170 -0
  44. package/dist/runtime/composables/defineOgImage.d.ts +12 -4
  45. package/dist/runtime/composables/defineOgImage.mjs +31 -49
  46. package/dist/runtime/composables/util.d.ts +2 -0
  47. package/dist/runtime/composables/util.mjs +26 -0
  48. package/dist/runtime/nitro/middleware/og.png.mjs +54 -8
  49. package/dist/runtime/nitro/middleware/playground.mjs +4 -3
  50. package/dist/runtime/nitro/plugins/prerender.d.ts +3 -0
  51. package/dist/runtime/nitro/plugins/prerender.mjs +28 -0
  52. package/dist/runtime/nitro/providers/browser/lambda.d.ts +1 -1
  53. package/dist/runtime/nitro/providers/browser/lambda.mjs +3 -3
  54. package/dist/runtime/nitro/providers/browser/{node.mjs → playwright.mjs} +0 -9
  55. package/dist/runtime/nitro/providers/browser/universal.d.ts +1 -0
  56. package/dist/runtime/nitro/providers/browser/universal.mjs +33 -0
  57. package/dist/runtime/nitro/providers/png/resvg-node.d.ts +4 -0
  58. package/dist/runtime/nitro/providers/png/resvg-node.mjs +6 -0
  59. package/dist/runtime/nitro/providers/png/resvg-wasm.d.ts +3 -0
  60. package/dist/runtime/nitro/providers/png/resvg-wasm.mjs +11 -0
  61. package/dist/runtime/nitro/providers/{svg2png/universal.d.ts → png/svg2png.d.ts} +2 -3
  62. package/dist/runtime/nitro/providers/png/svg2png.mjs +11 -0
  63. package/dist/runtime/nitro/providers/satori/{webworker.d.ts → yoga-wasm.d.ts} +2 -3
  64. package/dist/runtime/nitro/providers/satori/{webworker.mjs → yoga-wasm.mjs} +4 -5
  65. package/dist/runtime/nitro/renderers/browser.d.ts +2 -2
  66. package/dist/runtime/nitro/renderers/browser.mjs +14 -10
  67. package/dist/runtime/nitro/renderers/satori/index.d.ts +2 -2
  68. package/dist/runtime/nitro/renderers/satori/index.mjs +27 -32
  69. package/dist/runtime/nitro/renderers/satori/plugins/emojis.d.ts +1 -1
  70. package/dist/runtime/nitro/renderers/satori/plugins/emojis.mjs +19 -6
  71. package/dist/runtime/nitro/renderers/satori/plugins/encoding.d.ts +1 -1
  72. package/dist/runtime/nitro/renderers/satori/plugins/encoding.mjs +5 -7
  73. package/dist/runtime/nitro/renderers/satori/plugins/flex.d.ts +1 -1
  74. package/dist/runtime/nitro/renderers/satori/plugins/flex.mjs +8 -10
  75. package/dist/runtime/nitro/renderers/satori/plugins/imageSrc.d.ts +1 -1
  76. package/dist/runtime/nitro/renderers/satori/plugins/imageSrc.mjs +45 -13
  77. package/dist/runtime/nitro/renderers/satori/plugins/twClasses.d.ts +1 -1
  78. package/dist/runtime/nitro/renderers/satori/plugins/twClasses.mjs +5 -7
  79. package/dist/runtime/nitro/renderers/satori/utils.d.ts +4 -5
  80. package/dist/runtime/nitro/renderers/satori/utils.mjs +28 -17
  81. package/dist/runtime/nitro/routes/debug.d.ts +8 -0
  82. package/dist/runtime/nitro/routes/debug.mjs +14 -0
  83. package/dist/runtime/nitro/routes/font.mjs +2 -2
  84. package/dist/runtime/nitro/routes/html.mjs +102 -27
  85. package/dist/runtime/nitro/routes/options.d.ts +2 -2
  86. package/dist/runtime/nitro/routes/options.mjs +25 -22
  87. package/dist/runtime/nitro/routes/svg.mjs +5 -3
  88. package/dist/runtime/nitro/routes/vnode.mjs +5 -3
  89. package/dist/runtime/nitro/utils-pure.d.ts +2 -2
  90. package/dist/runtime/nitro/utils-pure.mjs +1 -4
  91. package/dist/runtime/nitro/utils.d.ts +11 -11
  92. package/dist/runtime/nitro/utils.mjs +69 -54
  93. package/dist/runtime/public-assets/__nuxt_og_image__/browser-provider-not-supported.png +0 -0
  94. package/dist/runtime/public-assets-optional/resvg/resvg.wasm +0 -0
  95. package/dist/types.d.ts +6 -0
  96. package/package.json +39 -27
  97. package/dist/client/_nuxt/IconCSS.a041aca0.js +0 -1
  98. package/dist/client/_nuxt/ImageLoader.9bf39d71.js +0 -1
  99. package/dist/client/_nuxt/entry.74018bda.js +0 -5
  100. package/dist/client/_nuxt/entry.7a8c1ab2.css +0 -1
  101. package/dist/client/_nuxt/error-404.1469f10f.css +0 -1
  102. package/dist/client/_nuxt/error-500.92b94fae.css +0 -1
  103. package/dist/client/_nuxt/error-component.cf7543e5.js +0 -3
  104. package/dist/client/_nuxt/index.3f356409.js +0 -1
  105. package/dist/client/_nuxt/options.56a3e5f9.js +0 -1
  106. package/dist/client/_nuxt/png.37f3e77b.js +0 -1
  107. package/dist/client/_nuxt/svg.186c6bd1.js +0 -1
  108. package/dist/client/_nuxt/vnodes.a799f183.js +0 -1
  109. package/dist/runtime/components/OgImageBasic.island.vue +0 -92
  110. package/dist/runtime/nitro/providers/svg2png/universal.mjs +0 -9
  111. /package/dist/runtime/nitro/providers/browser/{node.d.ts → playwright.d.ts} +0 -0
  112. /package/dist/runtime/nitro/providers/satori/{node.d.ts → default.d.ts} +0 -0
  113. /package/dist/runtime/nitro/providers/satori/{node.mjs → default.mjs} +0 -0
  114. /package/dist/runtime/{public-assets → public-assets-optional/inter-font}/inter-latin-ext-400-normal.woff +0 -0
  115. /package/dist/runtime/{public-assets → public-assets-optional/inter-font}/inter-latin-ext-700-normal.woff +0 -0
  116. /package/dist/runtime/{public-assets → public-assets-optional/svg2png}/svg2png.wasm +0 -0
  117. /package/dist/runtime/{public-assets → public-assets-optional/yoga}/yoga.wasm +0 -0
@@ -1 +0,0 @@
1
- .spotlight[data-v-01f15790]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-01f15790]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-01f15790]{background-color:#ffffff4d}.gradient-border[data-v-01f15790]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82 50%,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-01f15790]{background-color:#1414144d}.gradient-border[data-v-01f15790]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82 50%,#36e4da 75%,#0047e1)}}.gradient-border[data-v-01f15790]:before{background-size:400% auto;border-radius:.5rem;content:"";inset:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-01f15790]:hover:before{background-position:-50% 0;opacity:1}.bg-white[data-v-01f15790]{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.cursor-pointer[data-v-01f15790]{cursor:pointer}.flex[data-v-01f15790]{display:flex}.grid[data-v-01f15790]{display:grid}.place-content-center[data-v-01f15790]{place-content:center}.items-center[data-v-01f15790]{align-items:center}.justify-center[data-v-01f15790]{justify-content:center}.font-sans[data-v-01f15790]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-medium[data-v-01f15790]{font-weight:500}.font-light[data-v-01f15790]{font-weight:300}.text-8xl[data-v-01f15790]{font-size:6rem;line-height:1}.text-xl[data-v-01f15790]{font-size:1.25rem;line-height:1.75rem}.leading-tight[data-v-01f15790]{line-height:1.25}.mb-8[data-v-01f15790]{margin-bottom:2rem}.mb-16[data-v-01f15790]{margin-bottom:4rem}.max-w-520px[data-v-01f15790]{max-width:520px}.min-h-screen[data-v-01f15790]{min-height:100vh}.overflow-hidden[data-v-01f15790]{overflow:hidden}.px-8[data-v-01f15790]{padding-left:2rem;padding-right:2rem}.py-2[data-v-01f15790]{padding-bottom:.5rem;padding-top:.5rem}.px-4[data-v-01f15790]{padding-left:1rem;padding-right:1rem}.fixed[data-v-01f15790]{position:fixed}.left-0[data-v-01f15790]{left:0}.right-0[data-v-01f15790]{right:0}.text-center[data-v-01f15790]{text-align:center}.text-black[data-v-01f15790]{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.antialiased[data-v-01f15790]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.w-full[data-v-01f15790]{width:100%}.z-10[data-v-01f15790]{z-index:10}.z-20[data-v-01f15790]{z-index:20}@media (min-width:640px){.sm\:text-4xl[data-v-01f15790]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-01f15790]{font-size:1.25rem;line-height:1.75rem}.sm\:text-10xl[data-v-01f15790]{font-size:10rem;line-height:1}.sm\:px-0[data-v-01f15790]{padding-left:0;padding-right:0}.sm\:py-3[data-v-01f15790]{padding-bottom:.75rem;padding-top:.75rem}.sm\:px-6[data-v-01f15790]{padding-left:1.5rem;padding-right:1.5rem}}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-01f15790]{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.dark\:text-white[data-v-01f15790]{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}}
@@ -1 +0,0 @@
1
- .spotlight[data-v-8e50e92f]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.bg-white[data-v-8e50e92f]{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.grid[data-v-8e50e92f]{display:grid}.place-content-center[data-v-8e50e92f]{place-content:center}.font-sans[data-v-8e50e92f]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-medium[data-v-8e50e92f]{font-weight:500}.font-light[data-v-8e50e92f]{font-weight:300}.h-1\/2[data-v-8e50e92f]{height:50%}.text-8xl[data-v-8e50e92f]{font-size:6rem;line-height:1}.text-xl[data-v-8e50e92f]{font-size:1.25rem;line-height:1.75rem}.leading-tight[data-v-8e50e92f]{line-height:1.25}.mb-8[data-v-8e50e92f]{margin-bottom:2rem}.mb-16[data-v-8e50e92f]{margin-bottom:4rem}.max-w-520px[data-v-8e50e92f]{max-width:520px}.min-h-screen[data-v-8e50e92f]{min-height:100vh}.overflow-hidden[data-v-8e50e92f]{overflow:hidden}.px-8[data-v-8e50e92f]{padding-left:2rem;padding-right:2rem}.fixed[data-v-8e50e92f]{position:fixed}.left-0[data-v-8e50e92f]{left:0}.right-0[data-v-8e50e92f]{right:0}.-bottom-1\/2[data-v-8e50e92f]{bottom:-50%}.text-center[data-v-8e50e92f]{text-align:center}.text-black[data-v-8e50e92f]{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.antialiased[data-v-8e50e92f]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (min-width:640px){.sm\:text-4xl[data-v-8e50e92f]{font-size:2.25rem;line-height:2.5rem}.sm\:text-10xl[data-v-8e50e92f]{font-size:10rem;line-height:1}.sm\:px-0[data-v-8e50e92f]{padding-left:0;padding-right:0}}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-8e50e92f]{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.dark\:text-white[data-v-8e50e92f]{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}}
@@ -1,3 +0,0 @@
1
- import{o as m,c as p,n as _,g as E,u as t,d as n,_ as o}from"./entry.74018bda.js";const f={__name:"nuxt-error-page",props:{error:Object},setup(r){(r.error.stack||"").split(`
2
- `).splice(1).map(e=>({text:e.replace("webpack:/","").replace(".vue",".js").trim(),internal:e.includes("node_modules")&&!e.includes(".cache")||e.includes("internal")||e.includes("new Promise")})).map(e=>`<span class="stack${e.internal?" internal":""}">${e.text}</span>`).join(`
3
- `);const s=Number(r.error.statusCode||500),a=s===404,c=r.error.statusMessage??(a?"Page Not Found":"Internal Server Error"),u=r.error.message||r.error.toString(),i=void 0,d=a?n(()=>o(()=>import("./error-404.1ff52902.js"),["./error-404.1ff52902.js","./entry.74018bda.js","./entry.7a8c1ab2.css","./error-404.1469f10f.css"],import.meta.url).then(e=>e.default||e)):n(()=>o(()=>import("./error-500.f7d30da5.js"),["./error-500.f7d30da5.js","./entry.74018bda.js","./entry.7a8c1ab2.css","./error-500.92b94fae.css"],import.meta.url).then(e=>e.default||e));return(e,l)=>(m(),p(t(d),_(E({statusCode:t(s),statusMessage:t(c),description:t(u),stack:t(i)})),null,16))}},v=f;export{v as default};
@@ -1 +0,0 @@
1
- import{a as x,r as u,k as y,l as S,m as $,w as p,p as R,q as k,f as C,s as H,o as v,h as g,t as B,i as D,j as M,v as W,x as b,u as i,y as z,z as A,A as F,B as I,C as L}from"./entry.74018bda.js";const N={class:"w-full mx-auto max-w-1200px h-full max-h-630px justify-center flex",style:{"max-height":"630px"}},T=x({__name:"IFrameLoader",props:{src:String,aspectRatio:Number,description:String},setup(l){const t=l,s=u(t.src),a=y(),c=u(),n=u(0),o=S(()=>{let e=c.value;e||(e=document.querySelector("#iframe-loader"));const r=Date.now();e.src="";const d=e.offsetHeight,f=e.offsetWidth,h=d>630?1:d/630,_=f>1200?1:f/1200,w=_>h?h:_;n.value=0,e.style.opacity="0",e.onload=()=>{e.style.opacity="1",n.value=Date.now()-r},e.src=`${s.value}&scale=${w}&mode=${a.value}`},200);$(()=>{p(()=>t.src,e=>{s.value=e,o()},{immediate:!0}),p([()=>R.value,a],()=>{o()})}),k({bodyAttrs:{onresize:()=>{o()}}});const m=C(()=>t.description.replace("%s",n.value.toString()));return p(m,e=>{H.value=e}),(e,r)=>(v(),g("div",N,[B("iframe",{id:"iframe-loader",ref_key:"iframe",ref:c,class:"max-h-full",style:D({aspectRatio:l.aspectRatio}),width:"1200",height:"630"},null,4)]))}}),j=M(T,[["__scopeId","data-v-85f41f36"]]),q={class:"flex h-full w-full"},E=x({__name:"index",async setup(l){let t,s;const a=([t,s]=W(()=>z.useServerConfig()),t=await t,s(),t),c=a.value?.height||630,o=(a.value?.width||1200)/c;return(m,e)=>{const r=j;return v(),g("div",q,[b(r,{src:`${i(A)}/api/og-image-html?path=${i(F)}&timestamp=${i(I)}`,"aspect-ratio":o,description:"[HTML] Generated in %sms.",class:"max-h-full",onRefresh:i(L)},null,8,["src","onRefresh"])])}}});export{E as default};
@@ -1 +0,0 @@
1
- import{a as o,v as a,h as r,u as s,D as i,o as c}from"./entry.74018bda.js";import{h as p}from"./shiki.3a930bb8.js";const _=["innerHTML"],x=o({__name:"options",async setup(l){let t,e;const n=([t,e]=a(()=>i()),t=await t,e(),t);return(h,f)=>(c(),r("pre",{"of-auto":"","h-full":"","text-sm":"",style:{"white-space":"break-spaces"},innerHTML:s(p)(JSON.stringify(s(n),null,2),"json")},null,8,_))}});export{x as default};
@@ -1 +0,0 @@
1
- import{_ as c}from"./ImageLoader.9bf39d71.js";import{a as _,v as i,c as p,u as a,y as m,o as u,E as g,B as h}from"./entry.74018bda.js";const B=_({__name:"png",async setup(f){let e,t;const s=([e,t]=i(()=>m.useServerConfig()),e=await e,t(),e),o=s.value?.height||630,n=(s.value?.width||1200)/o;return(d,v)=>{const r=c;return u(),p(r,{src:`${a(g)}/__og_image__/og.png?timestamp=${a(h)}`,"aspect-ratio":n,description:"[PNG] Generated in %sms using Satori & Resvg."},null,8,["src"])}}});export{B as default};
@@ -1 +0,0 @@
1
- import{_ as c}from"./ImageLoader.9bf39d71.js";import{a as i,v as p,c as _,u as e,y as m,o as h,z as u,A as g,B as f}from"./entry.74018bda.js";const B=i({__name:"svg",async setup(d){let t,s;const a=([t,s]=p(()=>m.useServerConfig()),t=await t,s(),t),o=a.value?.height||630,n=(a.value?.width||1200)/o;return(v,w)=>{const r=c;return h(),_(r,{src:`${e(u)}/api/og-image-svg?path=${e(g)}&timestamp=${e(f)}`,"aspect-ratio":n,description:"[SVG] Generated in %sms using Satori."},null,8,["src"])}}});export{B as default};
@@ -1 +0,0 @@
1
- import{a as o,v as a,h as r,u as s,F as c,o as i}from"./entry.74018bda.js";import{h as _}from"./shiki.3a930bb8.js";const l=["innerHTML"],d=o({__name:"vnodes",async setup(p){let e,t;const n=([e,t]=a(()=>c()),e=await e,t(),e);return(h,f)=>(i(),r("pre",{"of-auto":"","h-full":"","text-sm":"",style:{"white-space":"break-spaces"},innerHTML:s(_)(JSON.stringify(s(n),null,2),"json")},null,8,l))}});export{d as default};
@@ -1,92 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed } from 'vue'
3
-
4
- const props = defineProps({
5
- path: String,
6
- title: {
7
- type: String,
8
- default: 'Og Image Template',
9
- },
10
- description: {
11
- type: String,
12
- default: 'Set a description to change me.',
13
- },
14
- background: {
15
- type: String,
16
- default: 'linear-gradient(to bottom, #dbf4ff, #fff1f1)',
17
- },
18
- color: {
19
- type: String,
20
- },
21
- padding: {
22
- type: String,
23
- default: '0 100px',
24
- },
25
- titleFontSize: {
26
- type: String,
27
- default: '60px',
28
- },
29
- descriptionFontSize: {
30
- type: String,
31
- default: '26px',
32
- },
33
- })
34
-
35
- const containerAttrs = computed(() => {
36
- const isBackgroundTw = props.background?.startsWith('bg-')
37
- const isColorTw = props.color?.startsWith('text-')
38
-
39
- const classes = [
40
- 'w-full',
41
- 'h-full',
42
- 'flex',
43
- 'items-center',
44
- 'justify-center',
45
- ]
46
- const styles: Record<string, any> = {
47
- padding: props.padding,
48
- }
49
-
50
- if (isBackgroundTw)
51
- classes.push(props.background)
52
- else if (props.background)
53
- styles.background = props.background
54
-
55
- if (isColorTw)
56
- classes.push(props.color)
57
- else
58
- styles.color = props.color
59
- return { class: classes, style: styles }
60
- })
61
-
62
- const titleAttrs = computed(() => {
63
- const classes = []
64
- const styles = {
65
- fontWeight: 'bold',
66
- marginBottom: '20px',
67
- fontSize: props.titleFontSize,
68
- }
69
- return { class: classes, style: styles }
70
- })
71
-
72
- const descriptionAttrs = computed(() => {
73
- const classes = []
74
- const styles = {
75
- fontSize: props.descriptionFontSize,
76
- }
77
- return { class: classes, style: styles }
78
- })
79
- </script>
80
-
81
- <template>
82
- <div v-bind="containerAttrs">
83
- <div class="flex flex-col w-full">
84
- <div v-bind="titleAttrs">
85
- {{ title || 'Null Title' }}
86
- </div>
87
- <div v-if="description" v-bind="descriptionAttrs">
88
- {{ description }}
89
- </div>
90
- </div>
91
- </div>
92
- </template>
@@ -1,9 +0,0 @@
1
- import { initialize, svg2png } from "svg2png-wasm";
2
- import { wasmLoader } from "../../utils.mjs";
3
- export default async function(svg, options) {
4
- const loader = wasmLoader("/* NUXT_OG_IMAGE_SVG2PNG_WASM */", "/svg2png.wasm", options.baseUrl);
5
- if (!await loader.loaded())
6
- await initialize(await loader.load()).catch(() => {
7
- });
8
- return await svg2png(svg, options);
9
- }