create-qwik 0.0.109 → 0.0.110

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 (27) hide show
  1. package/index.cjs +12 -12
  2. package/package.json +1 -1
  3. package/starters/apps/base/package.json +6 -5
  4. package/starters/apps/base/src/entry.dev.tsx +6 -4
  5. package/starters/apps/base/src/entry.preview.tsx +15 -2
  6. package/starters/apps/base/src/entry.ssr.tsx +12 -0
  7. package/starters/apps/base/src/global.css +7 -0
  8. package/starters/apps/base/src/routes/service-worker.ts +11 -2
  9. package/starters/apps/basic/package.json +9 -0
  10. package/starters/apps/{blank → basic}/src/components/header/header.css +0 -0
  11. package/starters/apps/{blank → basic}/src/components/header/header.tsx +4 -4
  12. package/starters/apps/{blank → basic}/src/components/icons/qwik.tsx +0 -0
  13. package/starters/apps/{blank → basic}/src/components/router-head/router-head.tsx +0 -0
  14. package/starters/apps/basic/src/global.css +125 -0
  15. package/starters/apps/{blank → basic}/src/root.tsx +1 -1
  16. package/starters/apps/basic/src/routes/flower/flower.css +71 -0
  17. package/starters/apps/basic/src/routes/flower/index.tsx +54 -0
  18. package/starters/apps/{blank → basic}/src/routes/index.tsx +53 -1
  19. package/starters/apps/basic/src/routes/layout.tsx +20 -0
  20. package/starters/apps/documentation-site/package.json +2 -2
  21. package/starters/apps/documentation-site/src/components/footer/footer.css +3 -3
  22. package/starters/apps/documentation-site/src/components/footer/footer.tsx +5 -3
  23. package/starters/apps/documentation-site/src/routes/index.tsx +49 -1
  24. package/starters/apps/library/package.json +1 -7
  25. package/starters/apps/blank/package.json +0 -9
  26. package/starters/apps/blank/src/global.css +0 -70
  27. package/starters/apps/blank/src/routes/layout.tsx +0 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-qwik",
3
- "version": "0.0.109",
3
+ "version": "0.0.110",
4
4
  "description": "Interactive CLI for create Qwik projects and adding features.",
5
5
  "bin": "./create-qwik.cjs",
6
6
  "main": "./index.cjs",
@@ -5,22 +5,23 @@
5
5
  "build.client": "vite build",
6
6
  "build.preview": "vite build --ssr src/entry.preview.tsx",
7
7
  "dev": "vite --mode ssr",
8
+ "dev.debug": "node --inspect-brk ./node_modules/vite/bin/vite.js --mode ssr --force",
8
9
  "fmt": "prettier --write .",
9
10
  "fmt.check": "prettier --check .",
10
11
  "lint": "eslint \"src/**/*.ts*\"",
11
- "preview": "qwik build preview && vite preview",
12
- "start": "vite --mode ssr",
12
+ "preview": "qwik build preview && vite preview --open",
13
+ "start": "vite --open --mode ssr",
13
14
  "typecheck": "tsc --incremental --noEmit",
14
15
  "qwik": "qwik"
15
16
  },
16
17
  "devDependencies": {
17
- "@builder.io/qwik": "0.0.109",
18
- "@builder.io/qwik-city": "0.0.110",
18
+ "@builder.io/qwik": "0.0.110",
19
+ "@builder.io/qwik-city": "0.0.111",
19
20
  "@types/eslint": "8.4.6",
20
21
  "@types/node": "latest",
21
22
  "@typescript-eslint/eslint-plugin": "5.37.0",
22
23
  "@typescript-eslint/parser": "5.37.0",
23
- "eslint-plugin-qwik": "0.0.109",
24
+ "eslint-plugin-qwik": "0.0.110",
24
25
  "eslint": "8.23.1",
25
26
  "node-fetch": "3.2.10",
26
27
  "prettier": "2.7.1",
@@ -1,7 +1,6 @@
1
- import { render, RenderOptions } from '@builder.io/qwik';
2
- import Root from './root';
3
-
4
- /**
1
+ /*
2
+ * WHAT IS THIS FILE?
3
+ *
5
4
  * Development entry point using only client-side modules:
6
5
  * - Do not use this mode in production!
7
6
  * - No SSR
@@ -10,6 +9,9 @@ import Root from './root';
10
9
  * - More code is transferred to the browser than in SSR mode.
11
10
  * - Optimizer/Serialization/Deserialization code is not exercised!
12
11
  */
12
+ import { render, RenderOptions } from '@builder.io/qwik';
13
+ import Root from './root';
14
+
13
15
  export default function (opts: RenderOptions) {
14
16
  return render(document, <Root />, opts);
15
17
  }
@@ -1,6 +1,19 @@
1
+ /*
2
+ * WHAT IS THIS FILE?
3
+ *
4
+ * It's the bundle entry point for `npm run preview`.
5
+ * That is, serving your app built in production mode.
6
+ *
7
+ * Feel free to modify this file, but don't remove it!
8
+ *
9
+ * Learn more about Vite's preview command:
10
+ * - https://vitejs.dev/config/preview-options.html#preview-options
11
+ *
12
+ */
1
13
  import { qwikCity } from '@builder.io/qwik-city/middleware/node';
2
14
  import render from './entry.ssr';
3
15
 
4
- // Create the Qwik City ssr preview middleware
5
- // Imported by vite preview
16
+ /**
17
+ * The default export is the QwikCity adaptor used by Vite preview.
18
+ */
6
19
  export default qwikCity(render);
@@ -1,3 +1,15 @@
1
+ /**
2
+ * WHAT IS THIS FILE?
3
+ *
4
+ * SSR entry point, in all cases the application is render outside the browser, this
5
+ * entry point will be the common one.
6
+ *
7
+ * - Server (express, cloudflare...)
8
+ * - npm run start
9
+ * - npm run preview
10
+ * - npm run build
11
+ *
12
+ */
1
13
  import { renderToStream, RenderToStreamOptions } from '@builder.io/qwik/server';
2
14
  import { manifest } from '@qwik-client-manifest';
3
15
  import Root from './root';
@@ -1,3 +1,10 @@
1
+ /**
2
+ * WHAT IS THIS FILE?
3
+ *
4
+ * Globally applied styles. No matter which components are in the page or matching route,
5
+ * the styles in here will be applied to the Document, without any sort of CSS scoping.
6
+ *
7
+ */
1
8
  html {
2
9
  line-height: 1.5;
3
10
  -webkit-text-size-adjust: 100%;
@@ -1,5 +1,12 @@
1
- declare const self: ServiceWorkerGlobalScope;
2
-
1
+ /*
2
+ * WHAT IS THIS FILE?
3
+ *
4
+ * The service-worker.ts file is used to have state of the art prefetching.
5
+ * https://qwik.builder.io/docs/advanced/prefetching/#prefetching
6
+ *
7
+ * Qwik uses service worker to speed up your site and reduce latency, ie, not used in the tradicional way of offiline.
8
+ * You can also use this file to add more functionality that runs in the service worker.
9
+ */
3
10
  import { setupServiceWorker } from '@builder.io/qwik-city/service-worker';
4
11
 
5
12
  setupServiceWorker();
@@ -7,3 +14,5 @@ setupServiceWorker();
7
14
  addEventListener('install', () => self.skipWaiting());
8
15
 
9
16
  addEventListener('activate', () => self.clients.claim());
17
+
18
+ declare const self: ServiceWorkerGlobalScope;
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "qwik-basic-starter",
3
+ "description": "Recommended for your first Qwik app",
4
+ "type": "module",
5
+ "__qwik__": {
6
+ "priority": 1,
7
+ "qwikCity": true
8
+ }
9
+ }
@@ -1,9 +1,9 @@
1
- import { component$, useStyles$ } from '@builder.io/qwik';
1
+ import { component$, useStylesScoped$ } from '@builder.io/qwik';
2
2
  import { QwikLogo } from '../icons/qwik';
3
- import styles from './header.css';
3
+ import styles from './header.css?inline';
4
4
 
5
5
  export default component$(() => {
6
- useStyles$(styles);
6
+ useStylesScoped$(styles);
7
7
 
8
8
  return (
9
9
  <header>
@@ -14,7 +14,7 @@ export default component$(() => {
14
14
  </div>
15
15
  <ul>
16
16
  <li>
17
- <a href="https://qwik.builder.io/" target="_blank">
17
+ <a href="https://qwik.builder.io/docs/components/overview/" target="_blank">
18
18
  Docs
19
19
  </a>
20
20
  </li>
@@ -0,0 +1,125 @@
1
+ /**
2
+ * WHAT IS THIS FILE?
3
+ *
4
+ * Globally applied styles. No matter which components are in the page or matching route,
5
+ * the styles in here will be applied to the Document, without any sort of CSS scoping.
6
+ *
7
+ */
8
+
9
+ :root {
10
+ --qwik-dark-blue: #006ce9;
11
+ --qwik-light-blue: #18b6f6;
12
+ --qwik-light-purple: #ac7ff4;
13
+ --qwik-dark-purple: #713fc2;
14
+ }
15
+
16
+ body {
17
+ background-color: #fafafa;
18
+ font-family: 'Poppins', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
19
+ padding: 20px 20px 40px 20px;
20
+ }
21
+
22
+ main {
23
+ max-width: 760px;
24
+ margin: 0 auto;
25
+ background-color: white;
26
+ border-radius: 5px;
27
+ box-shadow: 0px 0px 130px -50px var(--qwik-light-purple);
28
+ overflow: hidden;
29
+ }
30
+
31
+ h1,
32
+ h2 {
33
+ margin: 0 0 5px 0;
34
+ }
35
+
36
+ .lightning {
37
+ filter: hue-rotate(180deg);
38
+ }
39
+
40
+ section {
41
+ padding: 20px;
42
+ border-bottom: 10px solid var(--qwik-dark-blue);
43
+ }
44
+
45
+ ul {
46
+ list-style-type: square;
47
+ margin: 5px 0 30px 0;
48
+ padding-left: 25px;
49
+ }
50
+
51
+ li {
52
+ padding: 5px 0;
53
+ }
54
+
55
+ li::marker {
56
+ color: var(--qwik-light-blue);
57
+ }
58
+
59
+ a,
60
+ a:visited {
61
+ color: var(--qwik-dark-blue);
62
+ }
63
+
64
+ a:hover {
65
+ text-decoration: none;
66
+ }
67
+
68
+ table.commands {
69
+ margin: 0 0 30px 0;
70
+ }
71
+
72
+ .commands td {
73
+ padding: 5px;
74
+ }
75
+
76
+ .commands td:first-child {
77
+ white-space: nowrap;
78
+ padding-right: 20px;
79
+ }
80
+
81
+ code {
82
+ font-family: Menlo, Monaco, Courier New, monospace;
83
+ font-size: 0.9em;
84
+ background-color: rgb(224, 224, 224);
85
+ padding: 2px 4px;
86
+ border-radius: 3px;
87
+ border-bottom: 2px solid #bfbfbf;
88
+ }
89
+
90
+ footer {
91
+ padding: 15px;
92
+ text-align: center;
93
+ font-size: 0.8em;
94
+ }
95
+
96
+ footer a {
97
+ text-decoration: none;
98
+ }
99
+
100
+ footer a:hover {
101
+ text-decoration: underline;
102
+ }
103
+
104
+ a.mindblow {
105
+ margin: 0 auto;
106
+ display: block;
107
+ background: var(--qwik-light-purple);
108
+ padding: 10px 20px;
109
+ border-radius: 10px;
110
+ border: 0;
111
+ color: white;
112
+ text-decoration: none;
113
+ font-size: 20px;
114
+ width: fit-content;
115
+ border-bottom: 4px solid black;
116
+ cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='48' viewport='0 0 100 100' style='fill:black;font-size:24px;'><text y='50%'>🤯</text></svg>")
117
+ 16 0,
118
+ auto; /*!emojicursor.app*/
119
+ }
120
+
121
+ a.mindblow:hover {
122
+ border-bottom-width: 0px;
123
+ margin-bottom: 4px;
124
+ transform: translateY(4px);
125
+ }
@@ -5,7 +5,7 @@ import { RouterHead } from './components/router-head/router-head';
5
5
  import './global.css';
6
6
 
7
7
  export default component$(() => {
8
- /*
8
+ /**
9
9
  * The root of a QwikCity site always start with the <QwikCity> component,
10
10
  * immediately followed by the document's <head> and <body>.
11
11
  *
@@ -0,0 +1,71 @@
1
+ .host {
2
+ display: grid;
3
+
4
+ align-items: center;
5
+ justify-content: center;
6
+ justify-items: center;
7
+ --rotation: 135deg;
8
+ --rotation: 225deg;
9
+ --size-step: 10px;
10
+ --odd-color-step: 5;
11
+ --even-color-step: 5;
12
+ --center: 12;
13
+
14
+ width: 100%;
15
+ height: 500px;
16
+
17
+ contain: strict;
18
+ }
19
+
20
+ input {
21
+ width: 100%;
22
+ }
23
+
24
+ .square {
25
+ --size: calc(40px + var(--index) * var(--size-step));
26
+
27
+ display: block;
28
+ width: var(--size);
29
+ height: var(--size);
30
+ transform: rotateZ(calc(var(--rotation) * var(--state) * (var(--center) - var(--index))));
31
+ transition-property: transform, border-color;
32
+ transition-duration: 5s;
33
+ transition-timing-function: ease-in-out;
34
+ grid-area: 1 / 1;
35
+ background: white;
36
+ border-width: 2px;
37
+ border-style: solid;
38
+ border-color: black;
39
+ box-sizing: border-box;
40
+ will-change: transform, border-color;
41
+
42
+ contain: strict;
43
+ }
44
+
45
+ .square.odd {
46
+ --luminance: calc(1 - calc(calc(var(--index) * var(--odd-color-step)) / 256));
47
+ background: rgb(
48
+ calc(172 * var(--luminance)),
49
+ calc(127 * var(--luminance)),
50
+ calc(244 * var(--luminance))
51
+ );
52
+ }
53
+
54
+ .pride .square:nth-child(12n + 1) {
55
+ background: #e70000;
56
+ }
57
+ .pride .square:nth-child(12n + 3) {
58
+ background: #ff8c00;
59
+ }
60
+ .pride .square:nth-child(12n + 5) {
61
+ background: #ffef00;
62
+ }
63
+ .pride .square:nth-child(12n + 7) {
64
+ background: #00811f;
65
+ }
66
+ .pride .square:nth-child(12n + 9) {
67
+ background: #0044ff;
68
+ }
69
+ .pride .square:nth-child(12n + 11) {
70
+ background: #760089;
71
+ }
@@ -0,0 +1,54 @@
1
+ import { component$, useClientEffect$, useStore, useStylesScoped$ } from '@builder.io/qwik';
2
+ import { useLocation } from '@builder.io/qwik-city';
3
+ import styles from './flower.css?inline';
4
+
5
+ export default component$(() => {
6
+ useStylesScoped$(styles);
7
+ const loc = useLocation();
8
+
9
+ const state = useStore({
10
+ count: 0,
11
+ number: 20,
12
+ });
13
+
14
+ useClientEffect$(({ cleanup }) => {
15
+ const timeout = setTimeout(() => (state.count = 1), 500);
16
+ cleanup(() => clearTimeout(timeout));
17
+
18
+ const internal = setInterval(() => state.count++, 7000);
19
+ cleanup(() => clearInterval(internal));
20
+ });
21
+
22
+ return (
23
+ <>
24
+ <input
25
+ type="range"
26
+ value={state.number}
27
+ max={50}
28
+ onInput$={(ev) => {
29
+ state.number = (ev.target as HTMLInputElement).valueAsNumber;
30
+ }}
31
+ />
32
+ <div
33
+ style={{
34
+ '--state': `${state.count * 0.1}`,
35
+ }}
36
+ class={{
37
+ host: true,
38
+ pride: loc.query['pride'] === 'true',
39
+ }}
40
+ >
41
+ {Array.from({ length: state.number }, (_, i) => (
42
+ <div
43
+ key={i}
44
+ class={{
45
+ square: true,
46
+ odd: i % 2 === 0,
47
+ }}
48
+ style={{ '--index': `${i + 1}` }}
49
+ />
50
+ )).reverse()}
51
+ </div>
52
+ </>
53
+ );
54
+ });
@@ -1,5 +1,6 @@
1
1
  import { component$ } from '@builder.io/qwik';
2
2
  import type { DocumentHead } from '@builder.io/qwik-city';
3
+ import { Link } from '@builder.io/qwik-city';
3
4
 
4
5
  export default component$(() => {
5
6
  return (
@@ -45,7 +46,55 @@ export default component$(() => {
45
46
  <td>
46
47
  <code>npm run qwik add</code>
47
48
  </td>
48
- <td>Add integration like edge servers and SSG.</td>
49
+ <td>Select an integration to add.</td>
50
+ </tr>
51
+ </table>
52
+
53
+ <h2>Add Integrations</h2>
54
+
55
+ <table class="commands">
56
+ <tr>
57
+ <td>
58
+ <code>npm run qwik add cloudflare-pages</code>
59
+ </td>
60
+ <td>
61
+ <a href="https://developers.cloudflare.com/pages" target="_blank">
62
+ Cloudflare Pages Server
63
+ </a>
64
+ </td>
65
+ </tr>
66
+ <tr>
67
+ <td>
68
+ <code>npm run qwik add express</code>
69
+ </td>
70
+ <td>
71
+ <a href="https://expressjs.com/" target="_blank">
72
+ Nodejs Express Server
73
+ </a>
74
+ </td>
75
+ </tr>
76
+ <tr>
77
+ <td>
78
+ <code>npm run qwik add netlify-edge</code>
79
+ </td>
80
+ <td>
81
+ <a href="https://docs.netlify.com/" target="_blank">
82
+ Netlify Edge Functions
83
+ </a>
84
+ </td>
85
+ </tr>
86
+ <tr>
87
+ <td>
88
+ <code>npm run qwik add static-node</code>
89
+ </td>
90
+ <td>
91
+ <a
92
+ href="https://qwik.builder.io/qwikcity/static-site-generation/overview/"
93
+ target="_blank"
94
+ >
95
+ Static Site Generation (SSG)
96
+ </a>
97
+ </td>
49
98
  </tr>
50
99
  </table>
51
100
 
@@ -72,6 +121,9 @@ export default component$(() => {
72
121
  </a>
73
122
  </li>
74
123
  </ul>
124
+ <Link class="mindblow" href="/flower">
125
+ Blow my mind 🤯
126
+ </Link>
75
127
  </div>
76
128
  );
77
129
  });
@@ -0,0 +1,20 @@
1
+ import { component$, Slot } from '@builder.io/qwik';
2
+ import Header from '../components/header/header';
3
+
4
+ export default component$(() => {
5
+ return (
6
+ <>
7
+ <main>
8
+ <Header />
9
+ <section>
10
+ <Slot />
11
+ </section>
12
+ </main>
13
+ <footer>
14
+ <a href="https://www.builder.io/" target="_blank">
15
+ Made with ♡ by Builder.io
16
+ </a>
17
+ </footer>
18
+ </>
19
+ );
20
+ });
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "qwik-docs-starter",
3
- "description": "Documentation site starter.",
3
+ "description": "Documentation site starter",
4
4
  "__qwik__": {
5
- "priority": 1,
5
+ "priority": 0,
6
6
  "qwikCity": true
7
7
  },
8
8
  "type": "module"
@@ -2,10 +2,11 @@ footer {
2
2
  border-top: 0.5px solid #ddd;
3
3
  margin-top: 40px;
4
4
  padding: 20px;
5
+ text-align: center;
5
6
  }
6
7
 
7
8
  footer a {
8
- color: #949494;
9
+ color: #9e9e9e;
9
10
  font-size: 12px;
10
11
  }
11
12
 
@@ -13,10 +14,9 @@ footer ul {
13
14
  list-style: none;
14
15
  margin: 0;
15
16
  padding: 0;
16
- text-align: center;
17
17
  }
18
18
 
19
19
  footer li {
20
20
  display: inline-block;
21
- padding: 4px 12px;
21
+ padding: 6px 12px;
22
22
  }
@@ -25,10 +25,12 @@ export default component$(() => {
25
25
  <li>
26
26
  <a href="https://qwik.builder.io/chat">Chat</a>
27
27
  </li>
28
- <li>
29
- <a href="/">Home</a>
30
- </li>
31
28
  </ul>
29
+ <div>
30
+ <a href="https://www.builder.io/" target="_blank" class="builder">
31
+ Made with ♡ by Builder.io
32
+ </a>
33
+ </div>
32
34
  </footer>
33
35
  );
34
36
  });
@@ -53,7 +53,55 @@ export default component$(() => {
53
53
  <td>
54
54
  <code>npm run qwik add</code>
55
55
  </td>
56
- <td>Add integration like edge servers and SSG.</td>
56
+ <td>Select an integration to add.</td>
57
+ </tr>
58
+ </table>
59
+
60
+ <h2>Add Integrations</h2>
61
+
62
+ <table class="commands">
63
+ <tr>
64
+ <td>
65
+ <code>npm run qwik add cloudflare-pages</code>
66
+ </td>
67
+ <td>
68
+ <a href="https://developers.cloudflare.com/pages" target="_blank">
69
+ Cloudflare Pages Server
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ <tr>
74
+ <td>
75
+ <code>npm run qwik add express</code>
76
+ </td>
77
+ <td>
78
+ <a href="https://expressjs.com/" target="_blank">
79
+ Nodejs Express Server
80
+ </a>
81
+ </td>
82
+ </tr>
83
+ <tr>
84
+ <td>
85
+ <code>npm run qwik add netlify-edge</code>
86
+ </td>
87
+ <td>
88
+ <a href="https://docs.netlify.com/" target="_blank">
89
+ Netlify Edge Functions
90
+ </a>
91
+ </td>
92
+ </tr>
93
+ <tr>
94
+ <td>
95
+ <code>npm run qwik add static-node</code>
96
+ </td>
97
+ <td>
98
+ <a
99
+ href="https://qwik.builder.io/qwikcity/static-site-generation/overview/"
100
+ target="_blank"
101
+ >
102
+ Static Site Generation (SSG)
103
+ </a>
104
+ </td>
57
105
  </tr>
58
106
  </table>
59
107
 
@@ -27,12 +27,6 @@
27
27
  "np": "7.6.1"
28
28
  },
29
29
  "__qwik__": {
30
- "priority": -1,
31
- "featureOptions": [
32
- "prettier"
33
- ],
34
- "featureEnabled": [
35
- "prettier"
36
- ]
30
+ "priority": -1
37
31
  }
38
32
  }
@@ -1,9 +0,0 @@
1
- {
2
- "name": "qwik-blank-starter",
3
- "description": "Blank Qwik starter app.",
4
- "type": "module",
5
- "__qwik__": {
6
- "priority": 0,
7
- "qwikCity": true
8
- }
9
- }