foldkit 0.90.0 → 0.90.1
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/README.md +19 -10
- package/dist/devTools/overlay.d.ts.map +1 -1
- package/dist/devTools/overlay.js +150 -150
- package/dist/runtime/crashUI.js +30 -30
- package/dist/test/apps/bubbling.js +4 -4
- package/dist/test/apps/disabledButton.js +10 -10
- package/dist/test/apps/fileUpload.d.ts.map +1 -1
- package/dist/test/apps/fileUpload.js +13 -13
- package/dist/test/apps/interactions.d.ts.map +1 -1
- package/dist/test/apps/interactions.js +15 -15
- package/dist/test/apps/keypress.js +8 -8
- package/dist/test/apps/login.d.ts.map +1 -1
- package/dist/test/apps/login.js +32 -24
- package/dist/test/apps/logoutButton.d.ts.map +1 -1
- package/dist/test/apps/logoutButton.js +2 -2
- package/dist/test/apps/mountPanel.js +10 -10
- package/dist/test/apps/multiRole.js +3 -3
- package/dist/test/apps/pointer.d.ts.map +1 -1
- package/dist/test/apps/pointer.js +11 -11
- package/dist/test/apps/resumeUpload.d.ts.map +1 -1
- package/dist/test/apps/resumeUpload.js +8 -8
- package/dist/ui/animation/index.js +24 -24
- package/dist/ui/button/index.d.ts.map +1 -1
- package/dist/ui/button/index.js +6 -6
- package/dist/ui/calendar/index.d.ts.map +1 -1
- package/dist/ui/calendar/index.js +101 -99
- package/dist/ui/checkbox/index.d.ts.map +1 -1
- package/dist/ui/checkbox/index.js +15 -15
- package/dist/ui/combobox/shared.d.ts.map +1 -1
- package/dist/ui/combobox/shared.js +102 -90
- package/dist/ui/datePicker/index.js +4 -4
- package/dist/ui/dialog/index.d.ts.map +1 -1
- package/dist/ui/dialog/index.js +27 -27
- package/dist/ui/disclosure/index.d.ts.map +1 -1
- package/dist/ui/disclosure/index.js +24 -22
- package/dist/ui/dragAndDrop/index.d.ts.map +1 -1
- package/dist/ui/dragAndDrop/index.js +15 -15
- package/dist/ui/fieldset/index.js +6 -6
- package/dist/ui/fileDrop/index.d.ts +2 -2
- package/dist/ui/fileDrop/index.d.ts.map +1 -1
- package/dist/ui/fileDrop/index.js +16 -16
- package/dist/ui/input/index.d.ts.map +1 -1
- package/dist/ui/input/index.js +15 -13
- package/dist/ui/listbox/shared.d.ts.map +1 -1
- package/dist/ui/listbox/shared.js +85 -79
- package/dist/ui/menu/index.d.ts.map +1 -1
- package/dist/ui/menu/index.js +69 -67
- package/dist/ui/popover/index.d.ts.map +1 -1
- package/dist/ui/popover/index.js +41 -39
- package/dist/ui/radioGroup/index.d.ts.map +1 -1
- package/dist/ui/radioGroup/index.js +20 -20
- package/dist/ui/select/index.d.ts.map +1 -1
- package/dist/ui/select/index.js +13 -11
- package/dist/ui/slider/index.d.ts.map +1 -1
- package/dist/ui/slider/index.js +26 -26
- package/dist/ui/switch/index.d.ts.map +1 -1
- package/dist/ui/switch/index.js +14 -14
- package/dist/ui/tabs/index.d.ts.map +1 -1
- package/dist/ui/tabs/index.js +40 -36
- package/dist/ui/textarea/index.d.ts.map +1 -1
- package/dist/ui/textarea/index.js +15 -13
- package/dist/ui/toast/index.d.ts.map +1 -1
- package/dist/ui/toast/index.js +27 -27
- package/dist/ui/tooltip/index.d.ts.map +1 -1
- package/dist/ui/tooltip/index.js +23 -23
- package/dist/ui/virtualList/index.d.ts.map +1 -1
- package/dist/ui/virtualList/index.js +18 -15
- package/package.json +1 -1
package/dist/runtime/crashUI.js
CHANGED
|
@@ -18,8 +18,8 @@ const colors = {
|
|
|
18
18
|
const fontStack = 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif';
|
|
19
19
|
const monoStack = 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace';
|
|
20
20
|
export const defaultCrashView = (context, viewError) => {
|
|
21
|
-
const
|
|
22
|
-
const codeBlockStyle = Style({
|
|
21
|
+
const h = html();
|
|
22
|
+
const codeBlockStyle = h.Style({
|
|
23
23
|
fontFamily: monoStack,
|
|
24
24
|
color: colors.textPrimary,
|
|
25
25
|
margin: '0',
|
|
@@ -29,13 +29,13 @@ export const defaultCrashView = (context, viewError) => {
|
|
|
29
29
|
padding: '0.75rem 1rem',
|
|
30
30
|
borderRadius: '0.375rem',
|
|
31
31
|
});
|
|
32
|
-
const labelStyle = Style({
|
|
32
|
+
const labelStyle = h.Style({
|
|
33
33
|
color: colors.textSecondary,
|
|
34
34
|
margin: '0 0 0.5rem 0',
|
|
35
35
|
fontSize: '0.875rem',
|
|
36
36
|
fontWeight: '500',
|
|
37
37
|
});
|
|
38
|
-
const inlineCodeStyle = Style({
|
|
38
|
+
const inlineCodeStyle = h.Style({
|
|
39
39
|
fontFamily: monoStack,
|
|
40
40
|
backgroundColor: colors.codeBg,
|
|
41
41
|
padding: '0.125rem 0.375rem',
|
|
@@ -45,7 +45,7 @@ export const defaultCrashView = (context, viewError) => {
|
|
|
45
45
|
const introText = viewError
|
|
46
46
|
? [
|
|
47
47
|
'Your custom ',
|
|
48
|
-
span([inlineCodeStyle], ['crash.view']),
|
|
48
|
+
h.span([inlineCodeStyle], ['crash.view']),
|
|
49
49
|
' threw an error while rendering.',
|
|
50
50
|
]
|
|
51
51
|
: [
|
|
@@ -53,18 +53,18 @@ export const defaultCrashView = (context, viewError) => {
|
|
|
53
53
|
];
|
|
54
54
|
const errorContent = viewError
|
|
55
55
|
? [
|
|
56
|
-
div([Style({ margin: '0 0 1rem 0' })], [
|
|
57
|
-
p([labelStyle], ['Original error']),
|
|
58
|
-
p([codeBlockStyle], [context.error.message]),
|
|
56
|
+
h.div([h.Style({ margin: '0 0 1rem 0' })], [
|
|
57
|
+
h.p([labelStyle], ['Original error']),
|
|
58
|
+
h.p([codeBlockStyle], [context.error.message]),
|
|
59
59
|
]),
|
|
60
|
-
div([Style({ margin: '0 0 1.25rem 0' })], [
|
|
61
|
-
p([labelStyle], ['crash.view error']),
|
|
62
|
-
p([codeBlockStyle], [viewErrorMessage]),
|
|
60
|
+
h.div([h.Style({ margin: '0 0 1.25rem 0' })], [
|
|
61
|
+
h.p([labelStyle], ['crash.view error']),
|
|
62
|
+
h.p([codeBlockStyle], [viewErrorMessage]),
|
|
63
63
|
]),
|
|
64
64
|
]
|
|
65
65
|
: [
|
|
66
|
-
p([
|
|
67
|
-
Style({
|
|
66
|
+
h.p([
|
|
67
|
+
h.Style({
|
|
68
68
|
fontFamily: monoStack,
|
|
69
69
|
color: colors.textPrimary,
|
|
70
70
|
margin: '0 0 1.25rem 0',
|
|
@@ -79,8 +79,8 @@ export const defaultCrashView = (context, viewError) => {
|
|
|
79
79
|
const footerText = viewError
|
|
80
80
|
? []
|
|
81
81
|
: [
|
|
82
|
-
p([
|
|
83
|
-
Style({
|
|
82
|
+
h.p([
|
|
83
|
+
h.Style({
|
|
84
84
|
color: colors.textSecondary,
|
|
85
85
|
margin: '1.5rem 0 0 0',
|
|
86
86
|
fontSize: '0.875rem',
|
|
@@ -90,14 +90,14 @@ export const defaultCrashView = (context, viewError) => {
|
|
|
90
90
|
}),
|
|
91
91
|
], [
|
|
92
92
|
'This is the default crash view. You can customize it by providing a ',
|
|
93
|
-
span([inlineCodeStyle], ['crash.view']),
|
|
93
|
+
h.span([inlineCodeStyle], ['crash.view']),
|
|
94
94
|
' function to ',
|
|
95
|
-
span([inlineCodeStyle], ['makeProgram']),
|
|
95
|
+
h.span([inlineCodeStyle], ['makeProgram']),
|
|
96
96
|
'.',
|
|
97
97
|
]),
|
|
98
98
|
];
|
|
99
|
-
const body = div([
|
|
100
|
-
Style({
|
|
99
|
+
const body = h.div([
|
|
100
|
+
h.Style({
|
|
101
101
|
fontFamily: fontStack,
|
|
102
102
|
padding: '2rem',
|
|
103
103
|
minHeight: '100vh',
|
|
@@ -107,8 +107,8 @@ export const defaultCrashView = (context, viewError) => {
|
|
|
107
107
|
justifyContent: 'center',
|
|
108
108
|
}),
|
|
109
109
|
], [
|
|
110
|
-
div([
|
|
111
|
-
Style({
|
|
110
|
+
h.div([
|
|
111
|
+
h.Style({
|
|
112
112
|
width: '100%',
|
|
113
113
|
maxWidth: '960px',
|
|
114
114
|
margin: '0 auto',
|
|
@@ -119,8 +119,8 @@ export const defaultCrashView = (context, viewError) => {
|
|
|
119
119
|
padding: '1.5rem',
|
|
120
120
|
}),
|
|
121
121
|
], [
|
|
122
|
-
h1([
|
|
123
|
-
Style({
|
|
122
|
+
h.h1([
|
|
123
|
+
h.Style({
|
|
124
124
|
color: colors.errorAccent,
|
|
125
125
|
margin: '0 0 0.75rem 0',
|
|
126
126
|
fontSize: '1.25rem',
|
|
@@ -128,8 +128,8 @@ export const defaultCrashView = (context, viewError) => {
|
|
|
128
128
|
lineHeight: '1.5',
|
|
129
129
|
}),
|
|
130
130
|
], ['Application Crash']),
|
|
131
|
-
p([
|
|
132
|
-
Style({
|
|
131
|
+
h.p([
|
|
132
|
+
h.Style({
|
|
133
133
|
color: colors.textPrimary,
|
|
134
134
|
margin: '0 0 1rem 0',
|
|
135
135
|
fontSize: '1rem',
|
|
@@ -137,8 +137,8 @@ export const defaultCrashView = (context, viewError) => {
|
|
|
137
137
|
}),
|
|
138
138
|
], introText),
|
|
139
139
|
...errorContent,
|
|
140
|
-
p([
|
|
141
|
-
Style({
|
|
140
|
+
h.p([
|
|
141
|
+
h.Style({
|
|
142
142
|
color: colors.textPrimary,
|
|
143
143
|
margin: '0 0 1.5rem 0',
|
|
144
144
|
fontSize: '1rem',
|
|
@@ -147,8 +147,8 @@ export const defaultCrashView = (context, viewError) => {
|
|
|
147
147
|
], [
|
|
148
148
|
'→ Check the browser console for the full stack trace with source-mapped line numbers.',
|
|
149
149
|
]),
|
|
150
|
-
button([
|
|
151
|
-
Style({
|
|
150
|
+
h.button([
|
|
151
|
+
h.Style({
|
|
152
152
|
fontFamily: fontStack,
|
|
153
153
|
backgroundColor: colors.buttonBg,
|
|
154
154
|
color: colors.buttonText,
|
|
@@ -159,7 +159,7 @@ export const defaultCrashView = (context, viewError) => {
|
|
|
159
159
|
fontWeight: '500',
|
|
160
160
|
cursor: 'pointer',
|
|
161
161
|
}),
|
|
162
|
-
Attribute('onclick', 'location.reload()'),
|
|
162
|
+
h.Attribute('onclick', 'location.reload()'),
|
|
163
163
|
], ['Reload']),
|
|
164
164
|
...footerText,
|
|
165
165
|
]),
|
|
@@ -24,8 +24,8 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
24
24
|
],
|
|
25
25
|
}));
|
|
26
26
|
// VIEW
|
|
27
|
-
const
|
|
28
|
-
export const view = (model) => div([], [
|
|
29
|
-
div([Role('option'), OnClick(ClickedContainer())], [span([], [`clicks=${model.clicks}`])]),
|
|
30
|
-
div([Role('listitem'), OnDoubleClick(DoubleClickedContainer())], [span([], [`dbl=${model.doubleClicks}`])]),
|
|
27
|
+
const h = html();
|
|
28
|
+
export const view = (model) => h.div([], [
|
|
29
|
+
h.div([h.Role('option'), h.OnClick(ClickedContainer())], [h.span([], [`clicks=${model.clicks}`])]),
|
|
30
|
+
h.div([h.Role('listitem'), h.OnDoubleClick(DoubleClickedContainer())], [h.span([], [`dbl=${model.doubleClicks}`])]),
|
|
31
31
|
]);
|
|
@@ -33,19 +33,19 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
33
33
|
},
|
|
34
34
|
}));
|
|
35
35
|
// VIEW
|
|
36
|
-
const
|
|
37
|
-
const submitButton = (isEnabled) => button([
|
|
38
|
-
Class('submit'),
|
|
39
|
-
...(isEnabled ? [OnClick(ClickedSubmit())] : [Disabled(true)]),
|
|
36
|
+
const h = html();
|
|
37
|
+
const submitButton = (isEnabled) => h.button([
|
|
38
|
+
h.Class('submit'),
|
|
39
|
+
...(isEnabled ? [h.OnClick(ClickedSubmit())] : [h.Disabled(true)]),
|
|
40
40
|
], ['Submit']);
|
|
41
41
|
/** Plain view — no dialog wrapper. */
|
|
42
|
-
export const view = (model) => div([], [
|
|
43
|
-
button([OnClick(ClickedToggle())], ['Toggle']),
|
|
42
|
+
export const view = (model) => h.div([], [
|
|
43
|
+
h.button([h.OnClick(ClickedToggle())], ['Toggle']),
|
|
44
44
|
submitButton(model.isEnabled),
|
|
45
45
|
]);
|
|
46
46
|
/** View with submit button inside a dialog's panelContent. */
|
|
47
|
-
export const viewWithDialog = (model) => div([], [
|
|
48
|
-
button([OnClick(ClickedToggle())], ['Toggle']),
|
|
47
|
+
export const viewWithDialog = (model) => h.div([], [
|
|
48
|
+
h.button([h.OnClick(ClickedToggle())], ['Toggle']),
|
|
49
49
|
Dialog.view({
|
|
50
50
|
model: model.dialog,
|
|
51
51
|
toParentMessage: (dialogMessage) => GotDialogMessage({ message: dialogMessage }),
|
|
@@ -54,7 +54,7 @@ export const viewWithDialog = (model) => div([], [
|
|
|
54
54
|
]);
|
|
55
55
|
/** View using Dialog.lazy with panelContent passed dynamically. */
|
|
56
56
|
const lazyDialogView = Dialog.lazy({});
|
|
57
|
-
export const viewWithLazyDialog = (model) => div([], [
|
|
58
|
-
button([OnClick(ClickedToggle())], ['Toggle']),
|
|
57
|
+
export const viewWithLazyDialog = (model) => h.div([], [
|
|
58
|
+
h.button([h.OnClick(ClickedToggle())], ['Toggle']),
|
|
59
59
|
lazyDialogView(model.dialog, (dialogMessage) => GotDialogMessage({ message: dialogMessage }), submitButton(model.isEnabled)),
|
|
60
60
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileUpload.d.ts","sourceRoot":"","sources":["../../../src/test/apps/fileUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;CACnC,CAAC,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAA;AAIxD,eAAO,MAAM,aAAa;;EAA+C,CAAA;AAEzE,eAAO,MAAM,OAAO;;IAA2B,CAAA;AAC/C,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAMrC,CAAA;
|
|
1
|
+
{"version":3,"file":"fileUpload.d.ts","sourceRoot":"","sources":["../../../src/test/apps/fileUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;CACnC,CAAC,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAA;AAIxD,eAAO,MAAM,aAAa;;EAA+C,CAAA;AAEzE,eAAO,MAAM,OAAO;;IAA2B,CAAA;AAC/C,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAMrC,CAAA;AAMH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA2BjC,CAAA"}
|
|
@@ -11,19 +11,19 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
11
11
|
ReceivedFiles: ({ files }) => [{ ...model, receivedFiles: files }, []],
|
|
12
12
|
}));
|
|
13
13
|
// VIEW
|
|
14
|
-
const
|
|
15
|
-
export const view = (model) => div([], [
|
|
16
|
-
input([
|
|
17
|
-
Key('file-input'),
|
|
18
|
-
AriaLabel('resume'),
|
|
19
|
-
Type('file'),
|
|
20
|
-
OnFileChange(files => ReceivedFiles({ files })),
|
|
14
|
+
const h = html();
|
|
15
|
+
export const view = (model) => h.div([], [
|
|
16
|
+
h.input([
|
|
17
|
+
h.Key('file-input'),
|
|
18
|
+
h.AriaLabel('resume'),
|
|
19
|
+
h.Type('file'),
|
|
20
|
+
h.OnFileChange(files => ReceivedFiles({ files })),
|
|
21
21
|
]),
|
|
22
|
-
div([
|
|
23
|
-
Key('drop-zone'),
|
|
24
|
-
AriaLabel('attachments'),
|
|
25
|
-
OnDropFiles(files => ReceivedFiles({ files })),
|
|
22
|
+
h.div([
|
|
23
|
+
h.Key('drop-zone'),
|
|
24
|
+
h.AriaLabel('attachments'),
|
|
25
|
+
h.OnDropFiles(files => ReceivedFiles({ files })),
|
|
26
26
|
], ['Drop files here']),
|
|
27
|
-
div([Key('received-count')], [`count=${String(model.receivedFiles.length)}`]),
|
|
28
|
-
div([Key('received-names')], [`names=${model.receivedFiles.map(file => file.name).join(',')}`]),
|
|
27
|
+
h.div([h.Key('received-count')], [`count=${String(model.receivedFiles.length)}`]),
|
|
28
|
+
h.div([h.Key('received-names')], [`names=${model.receivedFiles.map(file => file.name).join(',')}`]),
|
|
29
29
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../src/test/apps/interactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;;;;EAMhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,aAAa;;EAA0C,CAAA;AAEpE,eAAO,MAAM,OAAO;;IAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAcrC,CAAA;
|
|
1
|
+
{"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../src/test/apps/interactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;;;;EAMhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,aAAa;;EAA0C,CAAA;AAEpE,eAAO,MAAM,OAAO;;IAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAcrC,CAAA;AAMH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA2BjC,CAAA"}
|
|
@@ -45,22 +45,22 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
45
45
|
ChangedSelect: ({ value }) => [{ ...model, changed: value }, []],
|
|
46
46
|
}));
|
|
47
47
|
// VIEW
|
|
48
|
-
const
|
|
49
|
-
export const view = (model) => div([], [
|
|
50
|
-
button([
|
|
51
|
-
OnClick(ClickedButton()),
|
|
52
|
-
OnDoubleClick(DoubleClickedButton()),
|
|
53
|
-
OnMouseEnter(HoveredTarget()),
|
|
54
|
-
AriaLabel('action'),
|
|
48
|
+
const h = html();
|
|
49
|
+
export const view = (model) => h.div([], [
|
|
50
|
+
h.button([
|
|
51
|
+
h.OnClick(ClickedButton()),
|
|
52
|
+
h.OnDoubleClick(DoubleClickedButton()),
|
|
53
|
+
h.OnMouseEnter(HoveredTarget()),
|
|
54
|
+
h.AriaLabel('action'),
|
|
55
55
|
], [`clicks=${model.clicks} dbl=${model.doubleClicks}`]),
|
|
56
|
-
input([
|
|
57
|
-
Role('textbox'),
|
|
58
|
-
AriaLabel('name'),
|
|
59
|
-
OnFocus(FocusedInput()),
|
|
60
|
-
OnBlur(BlurredInput()),
|
|
56
|
+
h.input([
|
|
57
|
+
h.Role('textbox'),
|
|
58
|
+
h.AriaLabel('name'),
|
|
59
|
+
h.OnFocus(FocusedInput()),
|
|
60
|
+
h.OnBlur(BlurredInput()),
|
|
61
61
|
]),
|
|
62
|
-
select([AriaLabel('fruit'), OnChange(value => ChangedSelect({ value }))], [
|
|
63
|
-
option([Value('apple')], ['Apple']),
|
|
64
|
-
option([Value('banana')], ['Banana']),
|
|
62
|
+
h.select([h.AriaLabel('fruit'), h.OnChange(value => ChangedSelect({ value }))], [
|
|
63
|
+
h.option([h.Value('apple')], ['Apple']),
|
|
64
|
+
h.option([h.Value('banana')], ['Banana']),
|
|
65
65
|
]),
|
|
66
66
|
]);
|
|
@@ -27,13 +27,13 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
27
27
|
],
|
|
28
28
|
}));
|
|
29
29
|
// VIEW
|
|
30
|
-
const
|
|
31
|
-
export const view = (model) => div([
|
|
32
|
-
Id('key-app'),
|
|
33
|
-
Role('application'),
|
|
34
|
-
AriaLabel('Key press area'),
|
|
35
|
-
OnKeyDown((key, modifiers) => modifiers.shiftKey ? PressedShiftKey({ key }) : PressedKey({ key })),
|
|
30
|
+
const h = html();
|
|
31
|
+
export const view = (model) => h.div([
|
|
32
|
+
h.Id('key-app'),
|
|
33
|
+
h.Role('application'),
|
|
34
|
+
h.AriaLabel('Key press area'),
|
|
35
|
+
h.OnKeyDown((key, modifiers) => modifiers.shiftKey ? PressedShiftKey({ key }) : PressedKey({ key })),
|
|
36
36
|
], [
|
|
37
|
-
span([Class('last-key'), AriaLabel('Last key')], [model.lastKey]),
|
|
38
|
-
span([Class('shifted'), AriaLabel('Shift pressed')], [model.isShifted ? 'true' : 'false']),
|
|
37
|
+
h.span([h.Class('last-key'), h.AriaLabel('Last key')], [model.lastKey]),
|
|
38
|
+
h.span([h.Class('shifted'), h.AriaLabel('Shift pressed')], [model.isShifted ? 'true' : 'false']),
|
|
39
39
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/test/apps/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;;;;EAMhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,YAAY;;EAAyC,CAAA;AAClE,eAAO,MAAM,eAAe;;EAA4C,CAAA;AACxE,eAAO,MAAM,cAAc,4EAAsB,CAAA;AACjD,eAAO,MAAM,qBAAqB;;EAEhC,CAAA;AACF,eAAO,MAAM,kBAAkB;;EAA+C,CAAA;AAC9E,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAE/C,eAAO,MAAM,OAAO;;;;;;;;+EAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;;iBAIyC,CAAA;AAIlE,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAyBxD,CAAA;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/test/apps/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;;;;EAMhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,YAAY;;EAAyC,CAAA;AAClE,eAAO,MAAM,eAAe;;EAA4C,CAAA;AACxE,eAAO,MAAM,cAAc,4EAAsB,CAAA;AACjD,eAAO,MAAM,qBAAqB;;EAEhC,CAAA;AACF,eAAO,MAAM,kBAAkB;;EAA+C,CAAA;AAC9E,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAE/C,eAAO,MAAM,OAAO;;;;;;;;+EAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;;iBAIyC,CAAA;AAIlE,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAyBxD,CAAA;AAMH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA6EjC,CAAA"}
|
package/dist/test/apps/login.js
CHANGED
|
@@ -59,31 +59,39 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
59
59
|
],
|
|
60
60
|
}));
|
|
61
61
|
// VIEW
|
|
62
|
-
const
|
|
63
|
-
export const view = (model) => div([Id('app')], [
|
|
64
|
-
M.value(model.status).pipe(M.withReturnType(), M.when('Submitting', () => form([Class('login-form'), Disabled(true)], [button([Type('submit'), Disabled(true)], ['Signing in...'])])), M.when('LoggedIn', () => div([
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
62
|
+
const h = html();
|
|
63
|
+
export const view = (model) => h.div([h.Id('app')], [
|
|
64
|
+
M.value(model.status).pipe(M.withReturnType(), M.when('Submitting', () => h.form([h.Class('login-form'), h.Disabled(true)], [h.button([h.Type('submit'), h.Disabled(true)], ['Signing in...'])])), M.when('LoggedIn', () => h.div([
|
|
65
|
+
h.Class('logged-in'),
|
|
66
|
+
h.Role('region'),
|
|
67
|
+
h.AriaLabel('User session'),
|
|
68
|
+
], [
|
|
69
|
+
h.span([h.Class('greeting'), h.Role('status')], [`Welcome, ${model.username}!`]),
|
|
70
|
+
h.button([
|
|
71
|
+
h.OnClick(ClickedLogout()),
|
|
72
|
+
h.Role('button'),
|
|
73
|
+
h.AriaExpanded(false),
|
|
74
|
+
], ['Log out']),
|
|
75
|
+
])), M.when('Error', () => h.div([], [
|
|
76
|
+
h.p([h.Class('error'), h.Role('alert')], [model.error]),
|
|
77
|
+
h.button([h.OnClick(SubmittedLogin()), h.Class('retry')], ['Retry']),
|
|
78
|
+
])), M.when('Idle', () => h.form([h.OnSubmit(SubmittedLogin()), h.Class('login-form')], [
|
|
79
|
+
h.label([h.For('email'), h.Class('sr-only')], ['Email']),
|
|
80
|
+
h.input([
|
|
81
|
+
h.Id('email'),
|
|
82
|
+
h.Type('email'),
|
|
83
|
+
h.Placeholder('Email'),
|
|
84
|
+
h.Value(model.email),
|
|
85
|
+
h.OnInput(value => UpdatedEmail({ value })),
|
|
78
86
|
]),
|
|
79
|
-
label([For('password'), Class('sr-only')], ['Password']),
|
|
80
|
-
input([
|
|
81
|
-
Id('password'),
|
|
82
|
-
Type('password'),
|
|
83
|
-
Placeholder('Password'),
|
|
84
|
-
Value(model.password),
|
|
85
|
-
OnInput(value => UpdatedPassword({ value })),
|
|
87
|
+
h.label([h.For('password'), h.Class('sr-only')], ['Password']),
|
|
88
|
+
h.input([
|
|
89
|
+
h.Id('password'),
|
|
90
|
+
h.Type('password'),
|
|
91
|
+
h.Placeholder('Password'),
|
|
92
|
+
h.Value(model.password),
|
|
93
|
+
h.OnInput(value => UpdatedPassword({ value })),
|
|
86
94
|
]),
|
|
87
|
-
button([Type('submit'), Class('primary'), Disabled(false)], ['Sign in']),
|
|
95
|
+
h.button([h.Type('submit'), h.Class('primary'), h.Disabled(false)], ['Sign in']),
|
|
88
96
|
])), M.exhaustive),
|
|
89
97
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logoutButton.d.ts","sourceRoot":"","sources":["../../../src/test/apps/logoutButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAM/C,eAAO,MAAM,KAAK;;EAAgC,CAAA;AAClD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,eAAe,6EAAuB,CAAA;AAEnD,eAAO,MAAM,OAAO,4KAA4C,CAAA;AAChE,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,eAAe,6EAAuB,CAAA;AAEnD,eAAO,MAAM,UAAU,iGAA6B,CAAA;AACpD,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAI/C,eAAO,MAAM,YAAY,EAAE,KAA4B,CAAA;AAIvD,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAShE,CAAA;AAMH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,
|
|
1
|
+
{"version":3,"file":"logoutButton.d.ts","sourceRoot":"","sources":["../../../src/test/apps/logoutButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAM/C,eAAO,MAAM,KAAK;;EAAgC,CAAA;AAClD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,eAAe,6EAAuB,CAAA;AAEnD,eAAO,MAAM,OAAO,4KAA4C,CAAA;AAChE,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,eAAe,6EAAuB,CAAA;AAEnD,eAAO,MAAM,UAAU,iGAA6B,CAAA;AACpD,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAI/C,eAAO,MAAM,YAAY,EAAE,KAA4B,CAAA;AAIvD,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAShE,CAAA;AAMH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAIjC,CAAA"}
|
|
@@ -18,5 +18,5 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
18
18
|
CompletedAction: () => [model, [], Option.none()],
|
|
19
19
|
}));
|
|
20
20
|
// VIEW
|
|
21
|
-
const
|
|
22
|
-
export const view = (model) => div([], [button([OnClick(ClickedLogout()), Role('button')], [model.label])]);
|
|
21
|
+
const h = html();
|
|
22
|
+
export const view = (model) => h.div([], [h.button([h.OnClick(ClickedLogout()), h.Role('button')], [model.label])]);
|
|
@@ -66,13 +66,13 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
66
66
|
ScrolledTo: () => [model, []],
|
|
67
67
|
}));
|
|
68
68
|
// VIEW
|
|
69
|
-
const
|
|
70
|
-
export const view = (model) => div([Class('panel-test')], [
|
|
71
|
-
button([Key('toggle'), OnClick(ClickedToggle()), OnMount(FocusButton())], [model.isOpen ? 'Close' : 'Open']),
|
|
69
|
+
const h = html();
|
|
70
|
+
export const view = (model) => h.div([h.Class('panel-test')], [
|
|
71
|
+
h.button([h.Key('toggle'), h.OnClick(ClickedToggle()), h.OnMount(FocusButton())], [model.isOpen ? 'Close' : 'Open']),
|
|
72
72
|
...(model.isOpen
|
|
73
73
|
? [
|
|
74
|
-
div([Key('panel'), OnMount(MeasurePanel())], [
|
|
75
|
-
span([], [
|
|
74
|
+
h.div([h.Key('panel'), h.OnMount(MeasurePanel())], [
|
|
75
|
+
h.span([], [
|
|
76
76
|
Option.match(model.measuredWidth, {
|
|
77
77
|
onNone: () => 'unmeasured',
|
|
78
78
|
onSome: width => `width: ${width}`,
|
|
@@ -85,13 +85,13 @@ export const view = (model) => div([Class('panel-test')], [
|
|
|
85
85
|
/** A view that always renders both the toggle button and the panel, exposing
|
|
86
86
|
* two MeasurePanel mounts simultaneously so we can exercise the (name,
|
|
87
87
|
* occurrence) tracking. */
|
|
88
|
-
export const twoPanelView = (model) => div([Class('two-panels')], [
|
|
89
|
-
div([Key('panel-a'), OnMount(MeasurePanel())], [span([], ['A'])]),
|
|
90
|
-
div([Key('panel-b'), OnMount(MeasurePanel())], [span([], ['B'])]),
|
|
91
|
-
button([Key('inc'), OnClick(ClickedIncrement())], [`count: ${model.count}`]),
|
|
88
|
+
export const twoPanelView = (model) => h.div([h.Class('two-panels')], [
|
|
89
|
+
h.div([h.Key('panel-a'), h.OnMount(MeasurePanel())], [h.span([], ['A'])]),
|
|
90
|
+
h.div([h.Key('panel-b'), h.OnMount(MeasurePanel())], [h.span([], ['B'])]),
|
|
91
|
+
h.button([h.Key('inc'), h.OnClick(ClickedIncrement())], [`count: ${model.count}`]),
|
|
92
92
|
]);
|
|
93
93
|
/** A view that renders an arg-bearing Mount so Scene tests can exercise
|
|
94
94
|
* Instance-based mount matching (matcher's args structurally equal the
|
|
95
95
|
* pending Mount's args). The chosen `offset` flows through `ScrollList`'s
|
|
96
96
|
* args and is observable on the rendered Mount marker. */
|
|
97
|
-
export const scrollListView = (offset) => div([Class('scroll-list')], [div([Key('list'), OnMount(ScrollList({ offset }))], [])]);
|
|
97
|
+
export const scrollListView = (offset) => h.div([h.Class('scroll-list')], [h.div([h.Key('list'), h.OnMount(ScrollList({ offset }))], [])]);
|
|
@@ -13,7 +13,7 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
13
13
|
ClickedFallback: () => [{ ...model, clicks: model.clicks + 1 }, []],
|
|
14
14
|
}));
|
|
15
15
|
// VIEW
|
|
16
|
-
const
|
|
17
|
-
export const view = (model) => div([], [
|
|
18
|
-
div([Role('doc-subtitle heading'), OnClick(ClickedFallback())], [`Fallback element clicks=${model.clicks}`]),
|
|
16
|
+
const h = html();
|
|
17
|
+
export const view = (model) => h.div([], [
|
|
18
|
+
h.div([h.Role('doc-subtitle heading'), h.OnClick(ClickedFallback())], [`Fallback element clicks=${model.clicks}`]),
|
|
19
19
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/test/apps/pointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAOrC,QAAA,MAAM,OAAO;;;;IAAmD,CAAA;AAChE,KAAK,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIlC,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAqBrC,CAAA;
|
|
1
|
+
{"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/test/apps/pointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAOrC,QAAA,MAAM,OAAO;;;;IAAmD,CAAA;AAChE,KAAK,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIlC,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAqBrC,CAAA;AAMH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA2BjC,CAAA"}
|
|
@@ -37,16 +37,16 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
37
37
|
],
|
|
38
38
|
}));
|
|
39
39
|
// VIEW
|
|
40
|
-
const
|
|
41
|
-
export const view = (model) => div([], [
|
|
42
|
-
button([
|
|
43
|
-
AriaLabel('pointer target'),
|
|
44
|
-
OnPointerDown(pointerType => Option.some(PressedPointerDown({ pointerType }))),
|
|
45
|
-
OnPointerUp((_screenX, _screenY, pointerType, _timeStamp) => Option.some(ReleasedPointerUp({ pointerType }))),
|
|
40
|
+
const h = html();
|
|
41
|
+
export const view = (model) => h.div([], [
|
|
42
|
+
h.button([
|
|
43
|
+
h.AriaLabel('pointer target'),
|
|
44
|
+
h.OnPointerDown(pointerType => Option.some(PressedPointerDown({ pointerType }))),
|
|
45
|
+
h.OnPointerUp((_screenX, _screenY, pointerType, _timeStamp) => Option.some(ReleasedPointerUp({ pointerType }))),
|
|
46
46
|
], [`down=${model.pointerDownCount} up=${model.pointerUpCount}`]),
|
|
47
|
-
div([
|
|
48
|
-
AriaLabel('nested target'),
|
|
49
|
-
OnPointerDown(pointerType => Option.some(PressedPointerDown({ pointerType }))),
|
|
50
|
-
], [span([], [`type=${model.lastPointerType}`])]),
|
|
51
|
-
span([AriaLabel('no handler')], ['orphan']),
|
|
47
|
+
h.div([
|
|
48
|
+
h.AriaLabel('nested target'),
|
|
49
|
+
h.OnPointerDown(pointerType => Option.some(PressedPointerDown({ pointerType }))),
|
|
50
|
+
], [h.span([], [`type=${model.lastPointerType}`])]),
|
|
51
|
+
h.span([h.AriaLabel('no handler')], ['orphan']),
|
|
52
52
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resumeUpload.d.ts","sourceRoot":"","sources":["../../../src/test/apps/resumeUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEvE,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAMrD,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,cAAc;;EAEzB,CAAA;AACF,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,eAAO,MAAM,oBAAoB;;EAE/B,CAAA;AACF,eAAO,MAAM,iBAAiB,+EAAyB,CAAA;AACvD,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAE3D,eAAO,MAAM,OAAO;;;;oKAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;;;;iBAaxB,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;iBAU7B,CAAA;AAID,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,KAAK,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAE7E,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO,KAAG,YAmCrD,CAAA;
|
|
1
|
+
{"version":3,"file":"resumeUpload.d.ts","sourceRoot":"","sources":["../../../src/test/apps/resumeUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEvE,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAMrD,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,cAAc;;EAEzB,CAAA;AACF,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,eAAO,MAAM,oBAAoB;;EAE/B,CAAA;AACF,eAAO,MAAM,iBAAiB,+EAAyB,CAAA;AACvD,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAE3D,eAAO,MAAM,OAAO;;;;oKAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;;;;iBAaxB,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;iBAU7B,CAAA;AAID,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,KAAK,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAE7E,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO,KAAG,YAmCrD,CAAA;AAuBH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAkBjC,CAAA"}
|
|
@@ -73,18 +73,18 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
73
73
|
],
|
|
74
74
|
}));
|
|
75
75
|
// VIEW
|
|
76
|
-
const
|
|
76
|
+
const h = html();
|
|
77
77
|
const previewView = (model) => Option.match(model.maybePreviewDataUrl, {
|
|
78
|
-
onSome: dataUrl => img([Src(dataUrl), Alt('Resume preview')]),
|
|
79
|
-
onNone: () => M.value(model.readStatus).pipe(M.withReturnType(), M.when('Reading', () => keyed('p')('reading', [Role('status')], ['Reading preview...'])), M.when('Failed', () => keyed('p')('failed', [Role('alert')], ['Could not read preview'])), M.when('Idle', () => empty), M.exhaustive),
|
|
78
|
+
onSome: dataUrl => h.img([h.Src(dataUrl), h.Alt('Resume preview')]),
|
|
79
|
+
onNone: () => M.value(model.readStatus).pipe(M.withReturnType(), M.when('Reading', () => h.keyed('p')('reading', [h.Role('status')], ['Reading preview...'])), M.when('Failed', () => h.keyed('p')('failed', [h.Role('alert')], ['Could not read preview'])), M.when('Idle', () => h.empty), M.exhaustive),
|
|
80
80
|
});
|
|
81
|
-
export const view = (model) => div([Class('resume-upload')], [
|
|
81
|
+
export const view = (model) => h.div([h.Class('resume-upload')], [
|
|
82
82
|
Option.match(model.maybeResume, {
|
|
83
|
-
onNone: () => button([OnClick(ClickedChooseResume())], ['Choose resume']),
|
|
84
|
-
onSome: file => section([AriaLabel('Selected resume')], [
|
|
85
|
-
p([Class('resume-name')], [File.name(file)]),
|
|
83
|
+
onNone: () => h.button([h.OnClick(ClickedChooseResume())], ['Choose resume']),
|
|
84
|
+
onSome: file => h.section([h.AriaLabel('Selected resume')], [
|
|
85
|
+
h.p([h.Class('resume-name')], [File.name(file)]),
|
|
86
86
|
previewView(model),
|
|
87
|
-
button([OnClick(ClickedRemoveResume())], ['Remove']),
|
|
87
|
+
h.button([h.OnClick(ClickedRemoveResume())], ['Remove']),
|
|
88
88
|
]),
|
|
89
89
|
}),
|
|
90
90
|
]);
|
|
@@ -14,60 +14,60 @@ export { RequestFrame, WaitForAnimationSettled, defaultLeaveCommand, update };
|
|
|
14
14
|
* - `data-transition` — any animation is active
|
|
15
15
|
*/
|
|
16
16
|
export const view = (config) => {
|
|
17
|
-
const
|
|
17
|
+
const h = html();
|
|
18
18
|
const { model: { id, isShowing, transitionState }, content, className, attributes = [], element = 'div', animateSize = false, } = config;
|
|
19
19
|
const isLeaving = transitionState === 'LeaveStart' || transitionState === 'LeaveAnimating';
|
|
20
20
|
const isVisible = isShowing || isLeaving;
|
|
21
21
|
const transitionAttributes = M.value(transitionState).pipe(M.when('EnterStart', () => [
|
|
22
|
-
DataAttribute('closed', ''),
|
|
23
|
-
DataAttribute('enter', ''),
|
|
24
|
-
DataAttribute('transition', ''),
|
|
22
|
+
h.DataAttribute('closed', ''),
|
|
23
|
+
h.DataAttribute('enter', ''),
|
|
24
|
+
h.DataAttribute('transition', ''),
|
|
25
25
|
]), M.when('EnterAnimating', () => [
|
|
26
|
-
DataAttribute('enter', ''),
|
|
27
|
-
DataAttribute('transition', ''),
|
|
26
|
+
h.DataAttribute('enter', ''),
|
|
27
|
+
h.DataAttribute('transition', ''),
|
|
28
28
|
]), M.when('LeaveStart', () => [
|
|
29
|
-
DataAttribute('leave', ''),
|
|
30
|
-
DataAttribute('transition', ''),
|
|
29
|
+
h.DataAttribute('leave', ''),
|
|
30
|
+
h.DataAttribute('transition', ''),
|
|
31
31
|
]), M.when('LeaveAnimating', () => [
|
|
32
|
-
DataAttribute('closed', ''),
|
|
33
|
-
DataAttribute('leave', ''),
|
|
34
|
-
DataAttribute('transition', ''),
|
|
32
|
+
h.DataAttribute('closed', ''),
|
|
33
|
+
h.DataAttribute('leave', ''),
|
|
34
|
+
h.DataAttribute('transition', ''),
|
|
35
35
|
]), M.orElse(() => []));
|
|
36
36
|
if (animateSize) {
|
|
37
37
|
const isClosed = transitionState === 'EnterStart' ||
|
|
38
38
|
transitionState === 'LeaveAnimating' ||
|
|
39
39
|
!isVisible;
|
|
40
|
-
return div([
|
|
41
|
-
Style({
|
|
40
|
+
return h.div([
|
|
41
|
+
h.Style({
|
|
42
42
|
display: 'grid',
|
|
43
43
|
gridTemplateRows: isClosed ? '0fr' : '1fr',
|
|
44
44
|
transition: 'grid-template-rows 200ms ease-out',
|
|
45
45
|
overflow: 'hidden',
|
|
46
46
|
}),
|
|
47
47
|
], [
|
|
48
|
-
div([
|
|
49
|
-
Style({ minHeight: '0px', overflow: 'hidden' }),
|
|
50
|
-
...(!isVisible ? [AriaHidden(true)] : []),
|
|
48
|
+
h.div([
|
|
49
|
+
h.Style({ minHeight: '0px', overflow: 'hidden' }),
|
|
50
|
+
...(!isVisible ? [h.AriaHidden(true)] : []),
|
|
51
51
|
], [
|
|
52
|
-
keyed(element)(id, [
|
|
53
|
-
Id(id),
|
|
52
|
+
h.keyed(element)(id, [
|
|
53
|
+
h.Id(id),
|
|
54
54
|
...(isClosed && transitionState === 'Idle'
|
|
55
|
-
? [DataAttribute('closed', '')]
|
|
55
|
+
? [h.DataAttribute('closed', '')]
|
|
56
56
|
: []),
|
|
57
57
|
...transitionAttributes,
|
|
58
|
-
...(className ? [Class(className)] : []),
|
|
58
|
+
...(className ? [h.Class(className)] : []),
|
|
59
59
|
...attributes,
|
|
60
60
|
], [content]),
|
|
61
61
|
]),
|
|
62
62
|
]);
|
|
63
63
|
}
|
|
64
64
|
if (!isVisible) {
|
|
65
|
-
return empty;
|
|
65
|
+
return h.empty;
|
|
66
66
|
}
|
|
67
|
-
return keyed(element)(id, [
|
|
68
|
-
Id(id),
|
|
67
|
+
return h.keyed(element)(id, [
|
|
68
|
+
h.Id(id),
|
|
69
69
|
...transitionAttributes,
|
|
70
|
-
...(className ? [Class(className)] : []),
|
|
70
|
+
...(className ? [h.Class(className)] : []),
|
|
71
71
|
...attributes,
|
|
72
72
|
], [content]);
|
|
73
73
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/button/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAI/C,0FAA0F;AAC1F,MAAM,MAAM,gBAAgB,CAAC,aAAa,IAAI,QAAQ,CAAC;IACrD,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;CAChD,CAAC,CAAA;AAEF,wDAAwD;AACxD,MAAM,MAAM,UAAU,CAAC,aAAa,IAAI,QAAQ,CAAC;IAC/C,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;IAC7D,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IACpC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAC,CAAA;AAEF,2HAA2H;AAC3H,eAAO,MAAM,IAAI,GAAI,aAAa,EAChC,QAAQ,UAAU,CAAC,aAAa,CAAC,KAChC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/button/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAI/C,0FAA0F;AAC1F,MAAM,MAAM,gBAAgB,CAAC,aAAa,IAAI,QAAQ,CAAC;IACrD,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;CAChD,CAAC,CAAA;AAEF,wDAAwD;AACxD,MAAM,MAAM,UAAU,CAAC,aAAa,IAAI,QAAQ,CAAC;IAC/C,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;IAC7D,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IACpC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAC,CAAA;AAEF,2HAA2H;AAC3H,eAAO,MAAM,IAAI,GAAI,aAAa,EAChC,QAAQ,UAAU,CAAC,aAAa,CAAC,KAChC,IA+BF,CAAA"}
|