create-qwik 0.0.18-0 → 0.0.18-3
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/create-qwik +1 -1
- package/package.json +1 -1
- package/starters/apps/base/.vscode/qwik.code-snippets +68 -0
- package/starters/apps/base/package.json +2 -2
- package/starters/apps/base/vite.config.ts +1 -0
- package/starters/apps/starter/src/main.tsx +9 -7
- package/starters/servers/express/vite.config.ts +1 -0
package/create-qwik
CHANGED
|
@@ -101,6 +101,6 @@ Instructions:
|
|
|
101
101
|
Filtered results for: ${this.inputValue?this.inputValue:F.gray("Enter something to filter")}
|
|
102
102
|
`}renderOption(e,t,s){let r;return t.disabled?r=e===s?F.gray().underline(t.title):F.strikethrough().gray(t.title):r=e===s?F.cyan().underline(t.title):t.title,(t.selected?F.green(W.radioOn):W.radioOff)+" "+r}renderDoneOrInstructions(){if(this.done)return this.value.filter(t=>t.selected).map(t=>t.title).join(", ");let e=[F.gray(this.hint),this.renderInstructions(),this.renderCurrentInput()];return this.filteredOptions.length&&this.filteredOptions[this.cursor].disabled&&e.push(F.yellow(this.warn)),e.join(" ")}render(){if(this.closed)return;this.firstRender&&this.out.write(Ul.hide),super.render();let e=[xn.symbol(this.done,this.aborted),F.bold(this.msg),xn.delimiter(!1),this.renderDoneOrInstructions()].join(" ");this.showMinError&&(e+=F.red(`You must select a minimum of ${this.minSelected} choices.`),this.showMinError=!1),e+=this.renderOptions(this.filteredOptions),this.out.write(this.clear+e),this.clear=yn(e,this.out.columns)}};On.exports=Sn});var Dn=u((Sa,In)=>{var Mn=g(),zl=R(),{style:Tn,clear:Wl}=S(),{erase:Zl,cursor:Pn}=b(),$n=class extends zl{constructor(e={}){super(e);this.msg=e.message,this.value=e.initial,this.initialValue=!!e.initial,this.yesMsg=e.yes||"yes",this.yesOption=e.yesOption||"(Y/n)",this.noMsg=e.no||"no",this.noOption=e.noOption||"(y/N)",this.render()}reset(){this.value=this.initialValue,this.fire(),this.render()}exit(){this.abort()}abort(){this.done=this.aborted=!0,this.fire(),this.render(),this.out.write(`
|
|
103
103
|
`),this.close()}submit(){this.value=this.value||!1,this.done=!0,this.aborted=!1,this.fire(),this.render(),this.out.write(`
|
|
104
|
-
`),this.close()}_(e,t){return e.toLowerCase()==="y"?(this.value=!0,this.submit()):e.toLowerCase()==="n"?(this.value=!1,this.submit()):this.bell()}render(){this.closed||(this.firstRender?this.out.write(Pn.hide):this.out.write(Wl(this.outputText,this.out.columns)),super.render(),this.outputText=[Tn.symbol(this.done,this.aborted),Mn.bold(this.msg),Tn.delimiter(this.done),this.done?this.value?this.yesMsg:this.noMsg:Mn.gray(this.initialValue?this.yesOption:this.noOption)].join(" "),this.out.write(Zl.line+Pn.to(0)+this.outputText))}};In.exports=$n});var Cn=u((Oa,_n)=>{"use strict";_n.exports={TextPrompt:dr(),SelectPrompt:br(),TogglePrompt:Sr(),DatePrompt:rn(),NumberPrompt:un(),MultiselectPrompt:ht(),AutocompletePrompt:wn(),AutocompleteMultiselectPrompt:qn(),ConfirmPrompt:Dn()}});var An=u(En=>{"use strict";var y=En,Kl=Cn(),Ae=i=>i;function I(i,e,t={}){return new Promise((s,r)=>{let n=new Kl[i](e),o=t.onAbort||Ae,h=t.onSubmit||Ae,l=t.onExit||Ae;n.on("state",e.onState||Ae),n.on("submit",a=>s(h(a))),n.on("exit",a=>s(l(a))),n.on("abort",a=>r(o(a)))})}y.text=i=>I("TextPrompt",i);y.password=i=>(i.style="password",y.text(i));y.invisible=i=>(i.style="invisible",y.text(i));y.number=i=>I("NumberPrompt",i);y.date=i=>I("DatePrompt",i);y.confirm=i=>I("ConfirmPrompt",i);y.list=i=>{let e=i.separator||",";return I("TextPrompt",i,{onSubmit:t=>t.split(e).map(s=>s.trim())})};y.toggle=i=>I("TogglePrompt",i);y.select=i=>I("SelectPrompt",i);y.multiselect=i=>{i.choices=[].concat(i.choices||[]);let e=t=>t.filter(s=>s.selected).map(s=>s.value);return I("MultiselectPrompt",i,{onAbort:e,onSubmit:e})};y.autocompleteMultiselect=i=>{i.choices=[].concat(i.choices||[]);let e=t=>t.filter(s=>s.selected).map(s=>s.value);return I("AutocompleteMultiselectPrompt",i,{onAbort:e,onSubmit:e})};var Xl=(i,e)=>Promise.resolve(e.filter(t=>t.title.slice(0,i.length).toLowerCase()===i.toLowerCase()));y.autocomplete=i=>(i.suggest=i.suggest||Xl,i.choices=[].concat(i.choices||[]),I("AutocompletePrompt",i))});var kn=u((Ma,Rn)=>{"use strict";var at=An(),Ql=["suggest","format","onState","validate","onRender","type"],jn=()=>{};async function N(i=[],{onSubmit:e=jn,onCancel:t=jn}={}){let s={},r=N._override||{};i=[].concat(i);let n,o,h,l,a,Z,K=async(v,O,ce=!1)=>{if(!(!ce&&v.validate&&v.validate(O)!==!0))return v.format?await v.format(O,s):O};for(o of i)if({name:l,type:a}=o,typeof a=="function"&&(a=await a(n,Re({},s),o),o.type=a),!!a){for(let v in o){if(Ql.includes(v))continue;let O=o[v];o[v]=typeof O=="function"?await O(n,Re({},s),Z):O}if(Z=o,typeof o.message!="string")throw new Error("prompt message is required");if({name:l,type:a}=o,at[a]===void 0)throw new Error(`prompt type (${a}) is not defined`);if(r[o.name]!==void 0&&(n=await K(o,r[o.name]),n!==void 0)){s[l]=n;continue}try{n=N._injected?eu(N._injected,o.initial):await at[a](o),s[l]=n=await K(o,n,!0),h=await e(o,n,s)}catch{h=!await t(o,s)}if(h)return s}return s}function eu(i,e){let t=i.shift();if(t instanceof Error)throw t;return t===void 0?e:t}function tu(i){N._injected=(N._injected||[]).concat(i)}function iu(i){N._override=Object.assign({},i)}Rn.exports=Object.assign(N,{prompt:N,prompts:at,inject:tu,override:iu})});var Yn=u((Ta,Fn)=>{function su(i){i=(Array.isArray(i)?i:i.split(".")).map(Number);let e=0,t=process.versions.node.split(".").map(Number);for(;e<i.length;e++){if(t[e]>i[e])return!1;if(i[e]>t[e])return!0}return!1}Fn.exports=su("8.6.0")?Gs():kn()});var qt=require("fs"),Mt=require("./index.js");var ke,bt,vt,wt,yt=!0;typeof process<"u"&&({FORCE_COLOR:ke,NODE_DISABLE_COLORS:bt,NO_COLOR:vt,TERM:wt}=process.env,yt=process.stdout&&process.stdout.isTTY);var c={enabled:!bt&&vt==null&&wt!=="dumb"&&(ke!=null&&ke!=="0"||yt),reset:f(0,0),bold:f(1,22),dim:f(2,22),italic:f(3,23),underline:f(4,24),inverse:f(7,27),hidden:f(8,28),strikethrough:f(9,29),black:f(30,39),red:f(31,39),green:f(32,39),yellow:f(33,39),blue:f(34,39),magenta:f(35,39),cyan:f(36,39),white:f(37,39),gray:f(90,39),grey:f(90,39),bgBlack:f(40,49),bgRed:f(41,49),bgGreen:f(42,49),bgYellow:f(43,49),bgBlue:f(44,49),bgMagenta:f(45,49),bgCyan:f(46,49),bgWhite:f(47,49)};function mt(i,e){let t=0,s,r="",n="";for(;t<i.length;t++)s=i[t],r+=s.open,n+=s.close,~e.indexOf(s.close)&&(e=e.replace(s.rgx,s.close+s.open));return r+e+n}function Zn(i,e){let t={has:i,keys:e};return t.reset=c.reset.bind(t),t.bold=c.bold.bind(t),t.dim=c.dim.bind(t),t.italic=c.italic.bind(t),t.underline=c.underline.bind(t),t.inverse=c.inverse.bind(t),t.hidden=c.hidden.bind(t),t.strikethrough=c.strikethrough.bind(t),t.black=c.black.bind(t),t.red=c.red.bind(t),t.green=c.green.bind(t),t.yellow=c.yellow.bind(t),t.blue=c.blue.bind(t),t.magenta=c.magenta.bind(t),t.cyan=c.cyan.bind(t),t.white=c.white.bind(t),t.gray=c.gray.bind(t),t.grey=c.grey.bind(t),t.bgBlack=c.bgBlack.bind(t),t.bgRed=c.bgRed.bind(t),t.bgGreen=c.bgGreen.bind(t),t.bgYellow=c.bgYellow.bind(t),t.bgBlue=c.bgBlue.bind(t),t.bgMagenta=c.bgMagenta.bind(t),t.bgCyan=c.bgCyan.bind(t),t.bgWhite=c.bgWhite.bind(t),t}function f(i,e){let t={open:`\x1B[${i}m`,close:`\x1B[${e}m`,rgx:new RegExp(`\\x1b\\[${e}m`,"g")};return function(s){return this!==void 0&&this.has!==void 0?(
|
|
104
|
+
`),this.close()}_(e,t){return e.toLowerCase()==="y"?(this.value=!0,this.submit()):e.toLowerCase()==="n"?(this.value=!1,this.submit()):this.bell()}render(){this.closed||(this.firstRender?this.out.write(Pn.hide):this.out.write(Wl(this.outputText,this.out.columns)),super.render(),this.outputText=[Tn.symbol(this.done,this.aborted),Mn.bold(this.msg),Tn.delimiter(this.done),this.done?this.value?this.yesMsg:this.noMsg:Mn.gray(this.initialValue?this.yesOption:this.noOption)].join(" "),this.out.write(Zl.line+Pn.to(0)+this.outputText))}};In.exports=$n});var Cn=u((Oa,_n)=>{"use strict";_n.exports={TextPrompt:dr(),SelectPrompt:br(),TogglePrompt:Sr(),DatePrompt:rn(),NumberPrompt:un(),MultiselectPrompt:ht(),AutocompletePrompt:wn(),AutocompleteMultiselectPrompt:qn(),ConfirmPrompt:Dn()}});var An=u(En=>{"use strict";var y=En,Kl=Cn(),Ae=i=>i;function I(i,e,t={}){return new Promise((s,r)=>{let n=new Kl[i](e),o=t.onAbort||Ae,h=t.onSubmit||Ae,l=t.onExit||Ae;n.on("state",e.onState||Ae),n.on("submit",a=>s(h(a))),n.on("exit",a=>s(l(a))),n.on("abort",a=>r(o(a)))})}y.text=i=>I("TextPrompt",i);y.password=i=>(i.style="password",y.text(i));y.invisible=i=>(i.style="invisible",y.text(i));y.number=i=>I("NumberPrompt",i);y.date=i=>I("DatePrompt",i);y.confirm=i=>I("ConfirmPrompt",i);y.list=i=>{let e=i.separator||",";return I("TextPrompt",i,{onSubmit:t=>t.split(e).map(s=>s.trim())})};y.toggle=i=>I("TogglePrompt",i);y.select=i=>I("SelectPrompt",i);y.multiselect=i=>{i.choices=[].concat(i.choices||[]);let e=t=>t.filter(s=>s.selected).map(s=>s.value);return I("MultiselectPrompt",i,{onAbort:e,onSubmit:e})};y.autocompleteMultiselect=i=>{i.choices=[].concat(i.choices||[]);let e=t=>t.filter(s=>s.selected).map(s=>s.value);return I("AutocompleteMultiselectPrompt",i,{onAbort:e,onSubmit:e})};var Xl=(i,e)=>Promise.resolve(e.filter(t=>t.title.slice(0,i.length).toLowerCase()===i.toLowerCase()));y.autocomplete=i=>(i.suggest=i.suggest||Xl,i.choices=[].concat(i.choices||[]),I("AutocompletePrompt",i))});var kn=u((Ma,Rn)=>{"use strict";var at=An(),Ql=["suggest","format","onState","validate","onRender","type"],jn=()=>{};async function N(i=[],{onSubmit:e=jn,onCancel:t=jn}={}){let s={},r=N._override||{};i=[].concat(i);let n,o,h,l,a,Z,K=async(v,O,ce=!1)=>{if(!(!ce&&v.validate&&v.validate(O)!==!0))return v.format?await v.format(O,s):O};for(o of i)if({name:l,type:a}=o,typeof a=="function"&&(a=await a(n,Re({},s),o),o.type=a),!!a){for(let v in o){if(Ql.includes(v))continue;let O=o[v];o[v]=typeof O=="function"?await O(n,Re({},s),Z):O}if(Z=o,typeof o.message!="string")throw new Error("prompt message is required");if({name:l,type:a}=o,at[a]===void 0)throw new Error(`prompt type (${a}) is not defined`);if(r[o.name]!==void 0&&(n=await K(o,r[o.name]),n!==void 0)){s[l]=n;continue}try{n=N._injected?eu(N._injected,o.initial):await at[a](o),s[l]=n=await K(o,n,!0),h=await e(o,n,s)}catch{h=!await t(o,s)}if(h)return s}return s}function eu(i,e){let t=i.shift();if(t instanceof Error)throw t;return t===void 0?e:t}function tu(i){N._injected=(N._injected||[]).concat(i)}function iu(i){N._override=Object.assign({},i)}Rn.exports=Object.assign(N,{prompt:N,prompts:at,inject:tu,override:iu})});var Yn=u((Ta,Fn)=>{function su(i){i=(Array.isArray(i)?i:i.split(".")).map(Number);let e=0,t=process.versions.node.split(".").map(Number);for(;e<i.length;e++){if(t[e]>i[e])return!1;if(i[e]>t[e])return!0}return!1}Fn.exports=su("8.6.0")?Gs():kn()});var qt=require("fs"),Mt=require("./index.js");var ke,bt,vt,wt,yt=!0;typeof process<"u"&&({FORCE_COLOR:ke,NODE_DISABLE_COLORS:bt,NO_COLOR:vt,TERM:wt}=process.env,yt=process.stdout&&process.stdout.isTTY);var c={enabled:!bt&&vt==null&&wt!=="dumb"&&(ke!=null&&ke!=="0"||yt),reset:f(0,0),bold:f(1,22),dim:f(2,22),italic:f(3,23),underline:f(4,24),inverse:f(7,27),hidden:f(8,28),strikethrough:f(9,29),black:f(30,39),red:f(31,39),green:f(32,39),yellow:f(33,39),blue:f(34,39),magenta:f(35,39),cyan:f(36,39),white:f(37,39),gray:f(90,39),grey:f(90,39),bgBlack:f(40,49),bgRed:f(41,49),bgGreen:f(42,49),bgYellow:f(43,49),bgBlue:f(44,49),bgMagenta:f(45,49),bgCyan:f(46,49),bgWhite:f(47,49)};function mt(i,e){let t=0,s,r="",n="";for(;t<i.length;t++)s=i[t],r+=s.open,n+=s.close,~e.indexOf(s.close)&&(e=e.replace(s.rgx,s.close+s.open));return r+e+n}function Zn(i,e){let t={has:i,keys:e};return t.reset=c.reset.bind(t),t.bold=c.bold.bind(t),t.dim=c.dim.bind(t),t.italic=c.italic.bind(t),t.underline=c.underline.bind(t),t.inverse=c.inverse.bind(t),t.hidden=c.hidden.bind(t),t.strikethrough=c.strikethrough.bind(t),t.black=c.black.bind(t),t.red=c.red.bind(t),t.green=c.green.bind(t),t.yellow=c.yellow.bind(t),t.blue=c.blue.bind(t),t.magenta=c.magenta.bind(t),t.cyan=c.cyan.bind(t),t.white=c.white.bind(t),t.gray=c.gray.bind(t),t.grey=c.grey.bind(t),t.bgBlack=c.bgBlack.bind(t),t.bgRed=c.bgRed.bind(t),t.bgGreen=c.bgGreen.bind(t),t.bgYellow=c.bgYellow.bind(t),t.bgBlue=c.bgBlue.bind(t),t.bgMagenta=c.bgMagenta.bind(t),t.bgCyan=c.bgCyan.bind(t),t.bgWhite=c.bgWhite.bind(t),t}function f(i,e){let t={open:`\x1B[${i}m`,close:`\x1B[${e}m`,rgx:new RegExp(`\\x1b\\[${e}m`,"g")};return function(s){return this!==void 0&&this.has!==void 0?(~this.has.indexOf(i)||(this.has.push(i),this.keys.push(t)),s===void 0?this:c.enabled?mt(this.keys,s+""):s+""):s===void 0?Zn([i],[t]):c.enabled?mt([t],s+""):s+""}}var _=c;var xt=require("path");function pe(i){let e=process.cwd()===i.outDir,t=(0,xt.relative)(process.cwd(),i.outDir);console.log(""),console.log(e?`\u2B50\uFE0F ${_.green("Success!")}`:`\u2B50\uFE0F ${_.green("Success! Project saved in")} ${_.yellow(t)} ${_.green("directory")}`),console.log(""),console.log(`\u{1F4DF} ${_.cyan("Next steps:")}`),e||console.log(` cd ${t}`),console.log(" npm install"),console.log(" npm start"),console.log("")}function ge(i){console.error(`
|
|
105
105
|
\u274C ${_.red(i)}
|
|
106
106
|
`),process.exit(1)}var St=require("fs"),Ot=require("path");function me(i){return i.toLocaleLowerCase().replace(/ /g,"-")}function be(i){return(0,Ot.resolve)(process.cwd(),i)}function ve(i){(0,St.existsSync)(i)&&ge(`Directory "${i}" already exists. Please either remove this directory, or choose another location.`)}async function Tt(i,e){let t=me(e),s;Kn()?s=process.cwd():(s=be(t),ve(s),(0,qt.mkdirSync)(s,{recursive:!0}));let n=await(0,Mt.generateStarter)({appId:i,projectName:e,serverId:"express",outDir:s,featureIds:[]});pe(n)}function Kn(){return Xn()}function Xn(){try{return process.cwd().startsWith("/home/projects/")}catch{}return!1}var Hn=Wn(Yn());var je=require("./index.js");async function Vn(){console.clear(),console.log(`\u{1F4AB} ${_.cyan("Let's create a Qwik project")} \u{1F4AB}`),console.log("");let i=await(0,je.getStarters)(),e=i.apps.filter(r=>r.id!=="base"),t={projectName:"",appId:"",serverId:"",featureIds:[],outDir:""};await(0,Hn.default)([{type:"text",name:"projectName",message:"Project name",initial:"qwik-app",validate:r=>{let n=me(r);return t.outDir=be(n),ve(t.outDir),!0},format:r=>t.projectName=r},{type:"select",name:"appId",message:"Select a starter",choices:e.map(r=>({title:r.name,value:r.id,description:r.description})),format:r=>t.appId=r},{type:"select",name:"serverId",message:"Select a server",choices:()=>[...i.servers.map(r=>({title:r.name,value:r.id,description:r.description})),{title:"Setup later",value:"no-hosting",description:"I'll setup my own hosting"}],format:r=>t.serverId=r},{type:()=>{let r=i.apps.find(n=>n.id===t.appId);return r&&r.featureOptions.length>0?"multiselect":null},name:"featureIds",message:"Features",instructions:!1,choices:()=>[...i.apps.find(o=>o.id===t.appId).featureOptions].map(o=>{let h=i.features.find(l=>l.id===o);return{title:h.name,value:h.id,description:h.description,selected:!0}}),format:r=>t.featureIds=r}]);let s=await(0,je.generateStarter)(t);pe(s)}async function ru(){try{let i=process.argv.slice(2);if(i.length>=2){let e=i[0],t=i[1];await Tt(e,t)}else await Vn()}catch(i){ge(i.message||i)}}ru();
|
package/package.json
CHANGED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Qwik component": {
|
|
3
|
+
"scope": "typescriptreact",
|
|
4
|
+
"prefix": "component$",
|
|
5
|
+
"description": "Qwik counter component",
|
|
6
|
+
"body": [
|
|
7
|
+
"export interface ${1:MyCmp}Props {",
|
|
8
|
+
" step: number;",
|
|
9
|
+
"}",
|
|
10
|
+
"",
|
|
11
|
+
"export const ${1:MyCmp} = component$((props: ${1:MyCmp}Props) => {",
|
|
12
|
+
" const state = useStore({",
|
|
13
|
+
" count: 0",
|
|
14
|
+
" });",
|
|
15
|
+
" $0",
|
|
16
|
+
" return $(() => {",
|
|
17
|
+
" return (",
|
|
18
|
+
" <Host>",
|
|
19
|
+
" <button on$:click={() => state.count += props.step}>",
|
|
20
|
+
" {state.count}",
|
|
21
|
+
" </button>",
|
|
22
|
+
" </Host>",
|
|
23
|
+
" );",
|
|
24
|
+
" });",
|
|
25
|
+
"});"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"Qwik component (basic)": {
|
|
29
|
+
"scope": "javascriptreact,typescriptreact",
|
|
30
|
+
"prefix": "component$basic",
|
|
31
|
+
"description": "Basic Qwik component",
|
|
32
|
+
"body": [
|
|
33
|
+
"export const ${1:MyCmp} = component$(() => {",
|
|
34
|
+
" return $(() => {",
|
|
35
|
+
" return (",
|
|
36
|
+
" <Host>",
|
|
37
|
+
" <div>",
|
|
38
|
+
" ${1:MyCmp}",
|
|
39
|
+
" </div>",
|
|
40
|
+
" </Host>",
|
|
41
|
+
" );",
|
|
42
|
+
" });",
|
|
43
|
+
"});"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"Qwik state": {
|
|
47
|
+
"scope": "javascriptreact,typescriptreact",
|
|
48
|
+
"prefix": "useStore$",
|
|
49
|
+
"description": "useStore() declaration",
|
|
50
|
+
"body": [
|
|
51
|
+
"const ${1:state} = useStore({",
|
|
52
|
+
" $2",
|
|
53
|
+
"});",
|
|
54
|
+
"$0"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"$ hook": {
|
|
58
|
+
"scope": "javascriptreact,typescriptreact",
|
|
59
|
+
"prefix": "$",
|
|
60
|
+
"description": "$() function hook",
|
|
61
|
+
"body": [
|
|
62
|
+
"$(() => {",
|
|
63
|
+
" $0",
|
|
64
|
+
"});",
|
|
65
|
+
""
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -6,13 +6,13 @@ import './global.css';
|
|
|
6
6
|
export const Main = component$(() => {
|
|
7
7
|
const state = useStore({ name: 'World' });
|
|
8
8
|
return $(() => (
|
|
9
|
-
<Host class="my-app">
|
|
10
|
-
<Logo />
|
|
9
|
+
<Host class="my-app p-20">
|
|
10
|
+
<Logo class="mb-10" />
|
|
11
11
|
|
|
12
|
-
<
|
|
12
|
+
<h1 class="text-3xl mb-2">Congratulations Qwik is working!</h1>
|
|
13
13
|
|
|
14
|
-
<
|
|
15
|
-
<ol>
|
|
14
|
+
<h2 class="text-2xl my-1">Next steps:</h2>
|
|
15
|
+
<ol class="list-decimal list-inside ml-10">
|
|
16
16
|
<li>
|
|
17
17
|
Open dev-tools network tab and notice that no JavaScript was downloaded to render this
|
|
18
18
|
page. (Zero JavaScript no matter the size of your app.)
|
|
@@ -21,6 +21,8 @@ export const Main = component$(() => {
|
|
|
21
21
|
Try interacting with this component by changing{' '}
|
|
22
22
|
<input
|
|
23
23
|
value={state.name}
|
|
24
|
+
class="border-2 border-solid border-blue-500"
|
|
25
|
+
placeholder="Write some text"
|
|
24
26
|
on$:keyup={() => {
|
|
25
27
|
const event = useEvent<KeyboardEvent>();
|
|
26
28
|
const input = event.target as HTMLInputElement;
|
|
@@ -43,8 +45,8 @@ export const Main = component$(() => {
|
|
|
43
45
|
<li>Replace the content of this component with your code.</li>
|
|
44
46
|
<li>Build amazing web-sites with unbeatable startup performance.</li>
|
|
45
47
|
</ol>
|
|
46
|
-
<hr />
|
|
47
|
-
<p
|
|
48
|
+
<hr class="mt-10" />
|
|
49
|
+
<p class="text-center text-sm mt-2">
|
|
48
50
|
Made with ❤️ by{' '}
|
|
49
51
|
<a target="_blank" href="https://www.builder.io/">
|
|
50
52
|
Builder.io
|