@reactful/create 0.0.57 → 0.0.59
Sign up to get free protection for your applications and to get access to all the features.
- package/index.js +39 -19
- package/package.json +6 -4
- package/bun.lockb +0 -0
- package/common/package.json +0 -22
- package/common/tsconfig.json +0 -24
- package/templates/empty/index.html +0 -12
- package/templates/empty/index.ts +0 -5
- package/templates/minimal/index.html +0 -12
- package/templates/minimal/index.ts +0 -5
- package/templates/sampling/apis/auth/db.ts +0 -15
- package/templates/sampling/apis/auth/index.ts +0 -28
- package/templates/sampling/apis/hello.ts +0 -3
- package/templates/sampling/apis/quotes.ts +0 -16
- package/templates/sampling/apis/sub/index.ts +0 -3
- package/templates/sampling/apis/sub/sub.ts +0 -3
- package/templates/sampling/assets/SLIDEME.png +0 -0
- package/templates/sampling/assets/default.css +0 -91
- package/templates/sampling/assets/favicon.ico +0 -0
- package/templates/sampling/assets/icon.png +0 -0
- package/templates/sampling/assets/icon.svg +0 -6
- package/templates/sampling/assets/logo-144.png +0 -0
- package/templates/sampling/assets/logo-168.png +0 -0
- package/templates/sampling/assets/logo-192.png +0 -0
- package/templates/sampling/assets/logo-48.png +0 -0
- package/templates/sampling/assets/logo-512.png +0 -0
- package/templates/sampling/assets/logo-72.png +0 -0
- package/templates/sampling/assets/logo-96.png +0 -0
- package/templates/sampling/assets/manifest.json +0 -57
- package/templates/sampling/assets/markdown.css +0 -274
- package/templates/sampling/assets/robots.txt +0 -1
- package/templates/sampling/assets/system.css +0 -7
- package/templates/sampling/builds/about.html +0 -27
- package/templates/sampling/builds/bundle.js +0 -13116
- package/templates/sampling/builds/bundle.ts +0 -25
- package/templates/sampling/builds/client.ts +0 -1
- package/templates/sampling/builds/clock.html +0 -30
- package/templates/sampling/builds/counter.html +0 -30
- package/templates/sampling/builds/forms/form.html +0 -48
- package/templates/sampling/builds/forms/index.html +0 -48
- package/templates/sampling/builds/hello.html +0 -60
- package/templates/sampling/builds/htmlx.html +0 -24
- package/templates/sampling/builds/htmlx.tsx +0 -13
- package/templates/sampling/builds/index.html +0 -98
- package/templates/sampling/builds/login.html +0 -45
- package/templates/sampling/builds/profile/index.html +0 -54
- package/templates/sampling/builds/quotes.html +0 -26
- package/templates/sampling/builds/shared.js +0 -76
- package/templates/sampling/builds/system.html +0 -27
- package/templates/sampling/components/header.tsx +0 -7
- package/templates/sampling/directives/index.ts +0 -1
- package/templates/sampling/directives/shown.ts +0 -6
- package/templates/sampling/index.html +0 -20
- package/templates/sampling/index.ts +0 -19
- package/templates/sampling/routes/about.html +0 -13
- package/templates/sampling/routes/clock.tsx +0 -35
- package/templates/sampling/routes/counter.tsx +0 -21
- package/templates/sampling/routes/forms/form.css +0 -19
- package/templates/sampling/routes/forms/form.tsx +0 -51
- package/templates/sampling/routes/forms/index.tsx +0 -3
- package/templates/sampling/routes/hello.tsx +0 -62
- package/templates/sampling/routes/htmlx.html +0 -15
- package/templates/sampling/routes/index.md +0 -15
- package/templates/sampling/routes/login.tsx +0 -36
- package/templates/sampling/routes/profile/detail.css +0 -13
- package/templates/sampling/routes/profile/detail.tsx +0 -48
- package/templates/sampling/routes/profile/index.tsx +0 -14
- package/templates/sampling/routes/profile/profile.css +0 -8
- package/templates/sampling/routes/profile/tester.tsx +0 -11
- package/templates/sampling/routes/quotes.tsx +0 -25
- package/templates/sampling/routes/system.tsx +0 -23
- package/templates/sampling/tests/access.spec.ts +0 -29
- package/templates/sampling/tests/counter.spec.ts +0 -19
- package/templates/sampling/tests/form.spec.ts +0 -51
- package/templates/sampling/tests/hello.spec.ts +0 -25
- package/templates/sampling/tests/path.test.ts +0 -20
- package/testings/apis/auth/db.ts +0 -15
- package/testings/apis/auth/index.ts +0 -28
- package/testings/apis/hello.ts +0 -3
- package/testings/apis/quotes.ts +0 -16
- package/testings/apis/sub/index.ts +0 -3
- package/testings/apis/sub/sub.ts +0 -3
- package/testings/assets/SLIDEME.png +0 -0
- package/testings/assets/default.css +0 -91
- package/testings/assets/favicon.ico +0 -0
- package/testings/assets/icon.png +0 -0
- package/testings/assets/icon.svg +0 -6
- package/testings/assets/logo-144.png +0 -0
- package/testings/assets/logo-168.png +0 -0
- package/testings/assets/logo-192.png +0 -0
- package/testings/assets/logo-48.png +0 -0
- package/testings/assets/logo-512.png +0 -0
- package/testings/assets/logo-72.png +0 -0
- package/testings/assets/logo-96.png +0 -0
- package/testings/assets/manifest.json +0 -57
- package/testings/assets/markdown.css +0 -274
- package/testings/assets/robots.txt +0 -1
- package/testings/assets/system.css +0 -7
- package/testings/builds/forms/form.html +0 -48
- package/testings/builds/forms/index.html +0 -48
- package/testings/builds/profile/index.html +0 -54
- package/testings/bun.lockb +0 -0
- package/testings/components/header.tsx +0 -7
- package/testings/directives/index.ts +0 -1
- package/testings/directives/shown.ts +0 -6
- package/testings/index.html +0 -20
- package/testings/index.ts +0 -19
- package/testings/package.json +0 -22
- package/testings/routes/about.html +0 -13
- package/testings/routes/clock.tsx +0 -35
- package/testings/routes/counter.tsx +0 -21
- package/testings/routes/forms/form.css +0 -19
- package/testings/routes/forms/form.tsx +0 -51
- package/testings/routes/forms/index.tsx +0 -3
- package/testings/routes/hello.tsx +0 -62
- package/testings/routes/htmlx.html +0 -15
- package/testings/routes/index.md +0 -15
- package/testings/routes/login.tsx +0 -36
- package/testings/routes/profile/detail.css +0 -13
- package/testings/routes/profile/detail.tsx +0 -48
- package/testings/routes/profile/index.tsx +0 -14
- package/testings/routes/profile/profile.css +0 -8
- package/testings/routes/profile/tester.tsx +0 -11
- package/testings/routes/quotes.tsx +0 -25
- package/testings/routes/system.tsx +0 -23
- package/testings/tests/access.spec.ts +0 -29
- package/testings/tests/counter.spec.ts +0 -19
- package/testings/tests/form.spec.ts +0 -51
- package/testings/tests/hello.spec.ts +0 -25
- package/testings/tests/path.test.ts +0 -20
- package/testings/tsconfig.json +0 -24
- package/tsconfig.json +0 -22
@@ -1,274 +0,0 @@
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
3
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
5
|
-
@import url('https://fonts.cdnfonts.com/css/agave');
|
6
|
-
@import url('https://fonts.googleapis.com/css2?family=Fira+Sans:wght@100;200;300;400&display=swap');
|
7
|
-
@import url('https://fonts.googleapis.com/css2?family=Fira+Sans:wght@100;200;300;400&family=Quicksand:wght@300;400;500;600;700&display=swap');
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
:root {
|
12
|
-
--base-font: 'fira-sans';
|
13
|
-
--code-font: 'agave';
|
14
|
-
}
|
15
|
-
|
16
|
-
@media (prefers-color-scheme: dark) {
|
17
|
-
/* :root { filter: invert(80%) contrast(150%); }
|
18
|
-
input { filter: invert(10%); } */
|
19
|
-
}
|
20
|
-
|
21
|
-
label > input { margin-left:10px; }
|
22
|
-
|
23
|
-
input {
|
24
|
-
font-family: var(--code-font);
|
25
|
-
padding: 5px 7px;
|
26
|
-
color: black;
|
27
|
-
}
|
28
|
-
|
29
|
-
html, body {
|
30
|
-
font-family: var(--base-font, -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", system-ui, "Ubuntu", "Droid Sans", sans-serif);
|
31
|
-
font-size: var(--markdown-font-size, 14px);
|
32
|
-
line-height: var(--markdown-line-height, 22px);
|
33
|
-
word-wrap: break-word;
|
34
|
-
}
|
35
|
-
|
36
|
-
body {
|
37
|
-
padding: 10px;
|
38
|
-
background: whitesmoke;
|
39
|
-
zoom: 1.1;
|
40
|
-
}
|
41
|
-
|
42
|
-
|
43
|
-
/* Reset margin top for elements */
|
44
|
-
h1,h2,h3,h4,h5,h6,p,ol,ul,pre {
|
45
|
-
margin-top: 0;
|
46
|
-
}
|
47
|
-
|
48
|
-
h1,h2,h3,h4,h5,h6 {
|
49
|
-
font-weight: 600;
|
50
|
-
margin-top: 24px;
|
51
|
-
margin-bottom: 16px;
|
52
|
-
line-height: 1.25;
|
53
|
-
}
|
54
|
-
|
55
|
-
#code-csp-warning {
|
56
|
-
position: fixed;
|
57
|
-
top: 0;
|
58
|
-
right: 0;
|
59
|
-
color: white;
|
60
|
-
margin: 16px;
|
61
|
-
text-align: center;
|
62
|
-
font-size: 12px;
|
63
|
-
font-family: sans-serif;
|
64
|
-
background-color: #444444;
|
65
|
-
cursor: pointer;
|
66
|
-
padding: 6px;
|
67
|
-
box-shadow: 1px 1px 1px rgba(0, 0, 0, .25);
|
68
|
-
}
|
69
|
-
|
70
|
-
#code-csp-warning:hover {
|
71
|
-
text-decoration: none;
|
72
|
-
background-color: #007acc;
|
73
|
-
box-shadow: 2px 2px 2px rgba(0, 0, 0, .25);
|
74
|
-
}
|
75
|
-
|
76
|
-
body.scrollBeyondLastLine {
|
77
|
-
margin-bottom: calc(100vh - 22px);
|
78
|
-
}
|
79
|
-
|
80
|
-
body.showEditorSelection .code-line {
|
81
|
-
position: relative;
|
82
|
-
}
|
83
|
-
|
84
|
-
body.showEditorSelection :not(tr, ul, ol).code-active-line:before,
|
85
|
-
body.showEditorSelection :not(tr, ul, ol).code-line:hover:before {
|
86
|
-
content: "";
|
87
|
-
display: block;
|
88
|
-
position: absolute;
|
89
|
-
top: 0;
|
90
|
-
left: -12px;
|
91
|
-
height: 100%;
|
92
|
-
}
|
93
|
-
|
94
|
-
.vscode-high-contrast.showEditorSelection :not(tr, ul, ol).code-line .code-line:hover:before {
|
95
|
-
border-left: none;
|
96
|
-
}
|
97
|
-
|
98
|
-
body.showEditorSelection li.code-active-line:before,
|
99
|
-
body.showEditorSelection li.code-line:hover:before {
|
100
|
-
left: -30px;
|
101
|
-
}
|
102
|
-
|
103
|
-
.vscode-light.showEditorSelection .code-active-line:before {
|
104
|
-
border-left: 3px solid rgba(0, 0, 0, 0.15);
|
105
|
-
}
|
106
|
-
|
107
|
-
.vscode-light.showEditorSelection .code-line:hover:before {
|
108
|
-
border-left: 3px solid rgba(0, 0, 0, 0.40);
|
109
|
-
}
|
110
|
-
|
111
|
-
.vscode-dark.showEditorSelection .code-active-line:before {
|
112
|
-
border-left: 3px solid rgba(255, 255, 255, 0.4);
|
113
|
-
}
|
114
|
-
|
115
|
-
.vscode-dark.showEditorSelection .code-line:hover:before {
|
116
|
-
border-left: 3px solid rgba(255, 255, 255, 0.60);
|
117
|
-
}
|
118
|
-
|
119
|
-
.vscode-high-contrast.showEditorSelection .code-active-line:before {
|
120
|
-
border-left: 3px solid rgba(255, 160, 0, 0.7);
|
121
|
-
}
|
122
|
-
|
123
|
-
.vscode-high-contrast.showEditorSelection .code-line:hover:before {
|
124
|
-
border-left: 3px solid rgba(255, 160, 0, 1);
|
125
|
-
}
|
126
|
-
|
127
|
-
/* Prevent `sub` and `sup` elements from affecting line height */
|
128
|
-
sub, sup { line-height: 0; }
|
129
|
-
|
130
|
-
ul ul:first-child,
|
131
|
-
ul ol:first-child,
|
132
|
-
ol ul:first-child,
|
133
|
-
ol ol:first-child {
|
134
|
-
margin-bottom: 0;
|
135
|
-
}
|
136
|
-
|
137
|
-
img, video {
|
138
|
-
max-width: 100%;
|
139
|
-
max-height: 100%;
|
140
|
-
}
|
141
|
-
|
142
|
-
a { text-decoration: none; }
|
143
|
-
|
144
|
-
a:hover { text-decoration: underline; }
|
145
|
-
|
146
|
-
a:focus,
|
147
|
-
input:focus,
|
148
|
-
select:focus,
|
149
|
-
textarea:focus {
|
150
|
-
outline: 1px solid -webkit-focus-ring-color;
|
151
|
-
outline-offset: -1px;
|
152
|
-
}
|
153
|
-
|
154
|
-
p {
|
155
|
-
margin-bottom: 16px;
|
156
|
-
}
|
157
|
-
|
158
|
-
li p {
|
159
|
-
margin-bottom: 0.7em;
|
160
|
-
}
|
161
|
-
|
162
|
-
ul,
|
163
|
-
ol {
|
164
|
-
margin-bottom: 0.7em;
|
165
|
-
}
|
166
|
-
|
167
|
-
hr {
|
168
|
-
border: 0;
|
169
|
-
height: 1px;
|
170
|
-
border-bottom: 1px solid;
|
171
|
-
}
|
172
|
-
|
173
|
-
h1 {
|
174
|
-
font-size: 2em;
|
175
|
-
margin-top: 0;
|
176
|
-
padding-bottom: 0.3em;
|
177
|
-
border-bottom-width: 1px;
|
178
|
-
border-bottom-style: solid;
|
179
|
-
}
|
180
|
-
|
181
|
-
h2 {
|
182
|
-
font-size: 1.5em;
|
183
|
-
padding-bottom: 0.3em;
|
184
|
-
border-bottom-width: 1px;
|
185
|
-
border-bottom-style: solid;
|
186
|
-
}
|
187
|
-
|
188
|
-
h3 {
|
189
|
-
font-size: 1.25em;
|
190
|
-
}
|
191
|
-
|
192
|
-
h4 {
|
193
|
-
font-size: 1em;
|
194
|
-
}
|
195
|
-
|
196
|
-
h5 {
|
197
|
-
font-size: 0.875em;
|
198
|
-
}
|
199
|
-
|
200
|
-
h6 {
|
201
|
-
font-size: 0.85em;
|
202
|
-
}
|
203
|
-
|
204
|
-
table {
|
205
|
-
border-collapse: collapse;
|
206
|
-
margin-bottom: 0.7em;
|
207
|
-
}
|
208
|
-
|
209
|
-
th {
|
210
|
-
text-align: left;
|
211
|
-
border-bottom: 1px solid;
|
212
|
-
}
|
213
|
-
|
214
|
-
th,
|
215
|
-
td {
|
216
|
-
padding: 5px 10px;
|
217
|
-
}
|
218
|
-
|
219
|
-
table>tbody>tr+tr>td {
|
220
|
-
border-top: 1px solid;
|
221
|
-
}
|
222
|
-
|
223
|
-
blockquote {
|
224
|
-
margin: 0;
|
225
|
-
padding: 2px 16px 0 10px;
|
226
|
-
border-left-width: 5px;
|
227
|
-
border-left-style: solid;
|
228
|
-
border-radius: 2px;
|
229
|
-
}
|
230
|
-
|
231
|
-
code {
|
232
|
-
font-family: var(--code-font, "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace);
|
233
|
-
font-size: 1em;
|
234
|
-
line-height: 1.357em;
|
235
|
-
}
|
236
|
-
|
237
|
-
body.wordWrap pre {
|
238
|
-
white-space: pre-wrap;
|
239
|
-
}
|
240
|
-
|
241
|
-
pre:not(.hljs),
|
242
|
-
pre.hljs code>div {
|
243
|
-
padding: 16px;
|
244
|
-
border-radius: 3px;
|
245
|
-
overflow: auto;
|
246
|
-
}
|
247
|
-
|
248
|
-
pre code {
|
249
|
-
color: var(--vscode-editor-foreground);
|
250
|
-
tab-size: 4;
|
251
|
-
}
|
252
|
-
|
253
|
-
/** Theming */
|
254
|
-
|
255
|
-
pre {
|
256
|
-
background-color: var(--vscode-textCodeBlock-background);
|
257
|
-
border: 1px solid var(--vscode-widget-border);
|
258
|
-
}
|
259
|
-
|
260
|
-
.vscode-high-contrast h1 {
|
261
|
-
border-color: rgb(0, 0, 0);
|
262
|
-
}
|
263
|
-
|
264
|
-
.vscode-light th {
|
265
|
-
border-color: rgba(0, 0, 0, 0.69);
|
266
|
-
}
|
267
|
-
|
268
|
-
.vscode-dark th {
|
269
|
-
border-color: rgba(255, 255, 255, 0.69);
|
270
|
-
}
|
271
|
-
|
272
|
-
.vscode-light h1,.vscode-light h2,.vscode-light hr,.vscode-light td { border-color: rgba(0, 0, 0, 0.18);}
|
273
|
-
|
274
|
-
.vscode-dark h1,.vscode-dark h2,.vscode-dark hr,.vscode-dark td { border-color: rgba(255, 255, 255, 0.18);}
|
@@ -1 +0,0 @@
|
|
1
|
-
User-agent: *
|
@@ -1,48 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="UTF-8">
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
-
<meta name="description" content="Home page">
|
7
|
-
<meta name="theme-color" content="#333">
|
8
|
-
<link rel="stylesheet" href="/assets/markdown.css">
|
9
|
-
<link rel="stylesheet" href="/assets/default.css">
|
10
|
-
<link rel="manifest" href="/assets/manifest.json">
|
11
|
-
<title>Welcome</title>
|
12
|
-
<meta name='viewport' content='width=device-width, initial-scale=1.0' />
|
13
|
-
<meta name='description' content='Home page' />
|
14
|
-
<meta name='theme-color' content='#333' />
|
15
|
-
<meta name='title' content='Welcome' />
|
16
|
-
<script src='/mnt/b/Repositorios/reactful/experiments/builds/shared.js'></script>
|
17
|
-
<script type='module' src='/mnt/b/Repositorios/reactful/experiments/builds/bundle.js'></script></head>
|
18
|
-
<body>
|
19
|
-
<div id='root'>
|
20
|
-
<jsx tag="jsx" uid="2" own="default"
|
21
|
-
src="/mnt/b/Repositorios/reactful/experiments/routes/forms/form.tsx" hidden
|
22
|
-
class="default">
|
23
|
-
<h1>Uncontrolled Components</h1>
|
24
|
-
<progress hidden>test...</progress>
|
25
|
-
<form cols="2" method="post" action="https://jsonplaceholder.typicode.com/posts1">
|
26
|
-
<label>Name<input id="name" bind="name" />
|
27
|
-
</label>
|
28
|
-
<label>Date<input type="date" bind="date" />
|
29
|
-
</label>
|
30
|
-
<label>Work<input pattern="dev|test" bind="work" />
|
31
|
-
</label>
|
32
|
-
<label>Mode<input bind="mode" />
|
33
|
-
</label>
|
34
|
-
<hr />
|
35
|
-
<hr />
|
36
|
-
<label>Accept?<input bind="term" type="checkbox" required />
|
37
|
-
</label>
|
38
|
-
<button>Submit</button>
|
39
|
-
</form>
|
40
|
-
<fieldset>
|
41
|
-
<legend>ERROR</legend>
|
42
|
-
<ul>
|
43
|
-
</ul>
|
44
|
-
</fieldset>
|
45
|
-
</jsx>
|
46
|
-
</div>
|
47
|
-
</body>
|
48
|
-
</html>
|
@@ -1,48 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="UTF-8">
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
-
<meta name="description" content="Home page">
|
7
|
-
<meta name="theme-color" content="#333">
|
8
|
-
<link rel="stylesheet" href="/assets/markdown.css">
|
9
|
-
<link rel="stylesheet" href="/assets/default.css">
|
10
|
-
<link rel="manifest" href="/assets/manifest.json">
|
11
|
-
<title>Welcome</title>
|
12
|
-
<meta name='viewport' content='width=device-width, initial-scale=1.0' />
|
13
|
-
<meta name='description' content='Home page' />
|
14
|
-
<meta name='theme-color' content='#333' />
|
15
|
-
<meta name='title' content='Welcome' />
|
16
|
-
<script src='/mnt/b/Repositorios/reactful/experiments/builds/shared.js'></script>
|
17
|
-
<script type='module' src='/mnt/b/Repositorios/reactful/experiments/builds/bundle.js'></script></head>
|
18
|
-
<body>
|
19
|
-
<div id='root'>
|
20
|
-
<jsx tag="jsx" uid="2" own="default"
|
21
|
-
src="/mnt/b/Repositorios/reactful/experiments/routes/forms/form.tsx" hidden
|
22
|
-
class="default">
|
23
|
-
<h1>Uncontrolled Components</h1>
|
24
|
-
<progress hidden>test...</progress>
|
25
|
-
<form cols="2" method="post" action="https://jsonplaceholder.typicode.com/posts1">
|
26
|
-
<label>Name<input id="name" bind="name" />
|
27
|
-
</label>
|
28
|
-
<label>Date<input type="date" bind="date" />
|
29
|
-
</label>
|
30
|
-
<label>Work<input pattern="dev|test" bind="work" />
|
31
|
-
</label>
|
32
|
-
<label>Mode<input bind="mode" />
|
33
|
-
</label>
|
34
|
-
<hr />
|
35
|
-
<hr />
|
36
|
-
<label>Accept?<input bind="term" type="checkbox" required />
|
37
|
-
</label>
|
38
|
-
<button>Submit</button>
|
39
|
-
</form>
|
40
|
-
<fieldset>
|
41
|
-
<legend>ERROR</legend>
|
42
|
-
<ul>
|
43
|
-
</ul>
|
44
|
-
</fieldset>
|
45
|
-
</jsx>
|
46
|
-
</div>
|
47
|
-
</body>
|
48
|
-
</html>
|
@@ -1,54 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="UTF-8">
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
-
<meta name="description" content="Home page">
|
7
|
-
<meta name="theme-color" content="#333">
|
8
|
-
<link rel="stylesheet" href="/assets/markdown.css">
|
9
|
-
<link rel="stylesheet" href="/assets/default.css">
|
10
|
-
<link rel="manifest" href="/assets/manifest.json">
|
11
|
-
<title>Welcome</title>
|
12
|
-
<meta name='viewport' content='width=device-width, initial-scale=1.0' />
|
13
|
-
<meta name='description' content='Home page' />
|
14
|
-
<meta name='theme-color' content='#333' />
|
15
|
-
<meta name='title' content='Welcome' />
|
16
|
-
<script src='/mnt/b/Repositorios/reactful/experiments/builds/shared.js'></script>
|
17
|
-
<script type='module' src='/mnt/b/Repositorios/reactful/experiments/builds/bundle.js'></script></head>
|
18
|
-
<body>
|
19
|
-
<div id='root'>
|
20
|
-
<h1 tag="h1" uid="3" class="default" style="color:#ffb300">Profile</h1>
|
21
|
-
<jsx tag="jsx" uid="12" own="default"
|
22
|
-
src="/mnt/b/Repositorios/reactful/experiments/routes/profile/detail.tsx" hidden
|
23
|
-
class="default">
|
24
|
-
<h3>Detail</h3>Parametric value = <b>
|
25
|
-
</b>
|
26
|
-
<hr />
|
27
|
-
<p>modular CSS keep original color</p>
|
28
|
-
<fieldset>
|
29
|
-
<legend>Mode</legend>
|
30
|
-
<section>
|
31
|
-
<button link="./developer">developer</button>
|
32
|
-
<button link="./manager">manager</button>
|
33
|
-
<button link="./tester">tester(component)</button>
|
34
|
-
</section>
|
35
|
-
<hr />
|
36
|
-
<section route="./developer">
|
37
|
-
<b>DEVELOPER</b> is Lorem ipsum dolor sit amet consectetur adipisicing elit.
|
38
|
-
Aspernatur similique ipsa, molestiae numquam laudantium quod, aliquid soluta
|
39
|
-
cumque placeat saepe mollitia sint consectetur labore consequatur pariatur
|
40
|
-
praesentium animi. Obcaecati, nihil?</section>
|
41
|
-
<section route="./manager">
|
42
|
-
<b>MANAGER</b> is Lorem ipsum dolor sit amet consectetur adipisicing elit.
|
43
|
-
Aspernatur similique ipsa, molestiae numquam laudantium quod, aliquid soluta
|
44
|
-
cumque placeat saepe mollitia sint consectetur labore consequatur pariatur
|
45
|
-
praesentium animi. Obcaecati, nihil?</section>
|
46
|
-
<div>
|
47
|
-
</div>
|
48
|
-
</fieldset>
|
49
|
-
</jsx>
|
50
|
-
<hr tag="hr" uid="8" class="default" />
|
51
|
-
<p tag="p" uid="10" class="default" style="color:red">modular CSS chainging to red</p>
|
52
|
-
</div>
|
53
|
-
</body>
|
54
|
-
</html>
|
package/testings/bun.lockb
DELETED
Binary file
|
@@ -1 +0,0 @@
|
|
1
|
-
export * from './shown'
|
package/testings/index.html
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="en">
|
3
|
-
|
4
|
-
<head>
|
5
|
-
<meta charset="UTF-8">
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7
|
-
|
8
|
-
<meta name="description" content="Home page" >
|
9
|
-
<meta name="theme-color" content="#333"/>
|
10
|
-
|
11
|
-
<link rel="stylesheet" href="/assets/markdown.css">
|
12
|
-
<link rel="stylesheet" href="/assets/default.css" />
|
13
|
-
<link rel="manifest" href="/assets/manifest.json" />
|
14
|
-
|
15
|
-
<title>Welcome</title>
|
16
|
-
</head>
|
17
|
-
<body>
|
18
|
-
<div id="root"></div>
|
19
|
-
</body>
|
20
|
-
</html>
|
package/testings/index.ts
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
import React from "react"
|
2
|
-
import { shown } from './directives'
|
3
|
-
import { server } from "@reactful/server"
|
4
|
-
|
5
|
-
const storage = { name: "ok" }
|
6
|
-
|
7
|
-
await server("/routes", { failure, storage })
|
8
|
-
.inject(shown)
|
9
|
-
.render("#root")
|
10
|
-
|
11
|
-
function failure(status, errors) {
|
12
|
-
const children: any[] = errors.map((x, i) =>
|
13
|
-
React.createElement('li', { key:i }, x))
|
14
|
-
|
15
|
-
return React.createElement('div', {}, [
|
16
|
-
React.createElement('h1', {}, status),
|
17
|
-
React.createElement('ul', {}, children),
|
18
|
-
])
|
19
|
-
}
|
package/testings/package.json
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"type": "module",
|
3
|
-
"name": "testings",
|
4
|
-
"module": "index.ts",
|
5
|
-
"scripts": {
|
6
|
-
"start": "bun --hot run index.ts",
|
7
|
-
"build": "rm -rf tsconfig.tsbuildinfo; bunx tsc -p tsconfig.json",
|
8
|
-
"clear": "rm -rf node_modules package-lock.json bun.lockb; bun i; bun run build"
|
9
|
-
},
|
10
|
-
"dependencies": {
|
11
|
-
"react": "^18.2.0",
|
12
|
-
"react-dom": "^18.2.0",
|
13
|
-
"@reactful/extensions": "latest",
|
14
|
-
"@reactful/server": "latest",
|
15
|
-
"@reactful/web": "latest"
|
16
|
-
},
|
17
|
-
"devDependencies": {
|
18
|
-
"bun-types": "^1.0.20",
|
19
|
-
"typescript": "^5.3.3",
|
20
|
-
"@types/react": "^18.2.57"
|
21
|
-
}
|
22
|
-
}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
<head>
|
2
|
-
<title>About</title>
|
3
|
-
<meta name="description" content="About page">
|
4
|
-
</head>
|
5
|
-
<body>
|
6
|
-
<h1>About</h1>
|
7
|
-
<p>
|
8
|
-
Lorem ipsum dolor sit amet consectetur adipisicing elit.
|
9
|
-
Adipisci id eaque saepe ab numquam, nisi minus atque obcaecati,
|
10
|
-
dignissimos facere accusamus nihil ipsam repudiandae praesentium,
|
11
|
-
quia animi perspiciatis architecto fuga?
|
12
|
-
</p>
|
13
|
-
</body>
|
@@ -1,35 +0,0 @@
|
|
1
|
-
import React, { Suspense } from 'react'
|
2
|
-
import { server, seo } from '@reactful/web'
|
3
|
-
|
4
|
-
const loading = <h3>Loading content...</h3>
|
5
|
-
const address = "https://timeapi.io/api/Time/current/zone?timeZone=Europe/Amsterdam"
|
6
|
-
|
7
|
-
//@ts-ignore
|
8
|
-
@server("dynamic")
|
9
|
-
@seo('Time Zone', 'Time zone clock...')
|
10
|
-
export default function(props: any) {
|
11
|
-
return <Suspense fallback={loading}>
|
12
|
-
<TimeZone />
|
13
|
-
</Suspense>
|
14
|
-
}
|
15
|
-
|
16
|
-
async function TimeZone() {
|
17
|
-
const response = await fetch(address)
|
18
|
-
const { year, month, day, hour, minute, seconds } = await response.json()
|
19
|
-
const time = `${hour}:${minute}:${seconds}`
|
20
|
-
const date = `${year}-${month}-${day}`
|
21
|
-
|
22
|
-
return <React.Fragment>
|
23
|
-
<h1>World Clock</h1>
|
24
|
-
<h2>Europe/Amistedan timezone</h2>
|
25
|
-
<h3 style={{color:'yellow'}}> {date} {time} </h3>
|
26
|
-
<Suspense fallback={loading}>
|
27
|
-
<InnerAsyncComponent />
|
28
|
-
</Suspense>
|
29
|
-
</React.Fragment>
|
30
|
-
}
|
31
|
-
|
32
|
-
async function InnerAsyncComponent() {
|
33
|
-
await new Promise(promise => setTimeout(promise, 1000))
|
34
|
-
return <code><mark>I'm a inner subcomponent !!!</mark></code>
|
35
|
-
}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import React from 'react'
|
2
|
-
import { seo, client } from '@reactful/web'
|
3
|
-
|
4
|
-
//@ts-ignore
|
5
|
-
@seo('Counter', '...')
|
6
|
-
export default (props: any) => <>
|
7
|
-
<h1>Counter</h1>
|
8
|
-
<CountButton />
|
9
|
-
|
10
|
-
<h6 shown={false}>DONT SHOW ME!</h6>
|
11
|
-
</>
|
12
|
-
|
13
|
-
//@ts-ignore
|
14
|
-
@client(true)
|
15
|
-
export function CountButton(props: any, feeds: any) {
|
16
|
-
function onClick() { props.count ||= 0; props.count++ }
|
17
|
-
|
18
|
-
return <button style={{ padding:'20px' }} onClick={onClick}>
|
19
|
-
COUNTED: <b>{ props.count || 0 }</b>
|
20
|
-
</button>
|
21
|
-
}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
/* form {
|
2
|
-
gap: 20px;
|
3
|
-
display: grid;
|
4
|
-
grid-template-columns: repeat(2, 1fr);
|
5
|
-
} */
|
6
|
-
|
7
|
-
code {
|
8
|
-
padding: 10px;
|
9
|
-
display: block;
|
10
|
-
background: silver;
|
11
|
-
}
|
12
|
-
|
13
|
-
progress {
|
14
|
-
width: 100%;
|
15
|
-
height: 30px;
|
16
|
-
}
|
17
|
-
|
18
|
-
progress[value]::-webkit-progress-bar { border-radius: 0; }
|
19
|
-
progress[value]::-webkit-progress-value { border-radius: 0; }
|
@@ -1,51 +0,0 @@
|
|
1
|
-
import React from "react"
|
2
|
-
import { client } from "@reactful/web"
|
3
|
-
import '@reactful/commons'
|
4
|
-
import "./form.css"
|
5
|
-
|
6
|
-
//@ts-ignore
|
7
|
-
@client(true)
|
8
|
-
export default (props, { fails: errors, await: awaits }: Feeds ) => <>
|
9
|
-
<h1>Uncontrolled Components</h1>
|
10
|
-
<progress hidden={!awaits} >test...</progress>
|
11
|
-
|
12
|
-
<form grid cols={2} method="post" data={props.user}
|
13
|
-
action="https://jsonplaceholder.typicode.com/posts1"
|
14
|
-
onValidate={onValidate} onSubmit={e => onSubmit(e)}>
|
15
|
-
|
16
|
-
<label>Name<input id="name" bind="name" /></label>
|
17
|
-
<label>Date<input type="date" bind="date" /></label>
|
18
|
-
<label>Work<input pattern="dev|test" bind="work" /></label>
|
19
|
-
<label>Mode<input validate={modeValidate} bind="mode" /></label>
|
20
|
-
|
21
|
-
<hr/><hr/>
|
22
|
-
<label>Accept?<input bind="term" type="checkbox" required /></label>
|
23
|
-
<button>Submit</button>
|
24
|
-
</form>
|
25
|
-
|
26
|
-
|
27
|
-
<fieldset shown={!!errors?.length}>
|
28
|
-
<legend>ERROR</legend>
|
29
|
-
<ul>{ errors?.map(x => <li>{ x.error }</li>) }</ul>
|
30
|
-
</fieldset>
|
31
|
-
</>
|
32
|
-
|
33
|
-
function modeValidate(value: string) {
|
34
|
-
console.log('modeValidate', value)
|
35
|
-
if (!value) return 'Mode is required!'
|
36
|
-
if (value.match(/\d+/)) return 'Mode is non-numerical!'
|
37
|
-
return ''
|
38
|
-
}
|
39
|
-
|
40
|
-
function onSubmit(e) {
|
41
|
-
// after submited validation (feeds)
|
42
|
-
console.log('after form submit', e)
|
43
|
-
|
44
|
-
}
|
45
|
-
|
46
|
-
async function onValidate(errors: Invalid[]) {
|
47
|
-
// add some async custom invalidations
|
48
|
-
// ex.: errors.push({field:'*', error:'some error', value:''})
|
49
|
-
|
50
|
-
console.warn(errors)
|
51
|
-
}
|