foldkit 0.100.0 → 0.101.0

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 (60) hide show
  1. package/README.md +38 -36
  2. package/dist/devTools/overlay.d.ts.map +1 -1
  3. package/dist/devTools/overlay.js +25 -40
  4. package/dist/devTools/store.d.ts.map +1 -1
  5. package/dist/devTools/store.js +50 -49
  6. package/dist/runtime/runtime.d.ts +10 -10
  7. package/dist/runtime/runtime.d.ts.map +1 -1
  8. package/dist/runtime/runtime.js +3 -2
  9. package/dist/runtime/subscription.d.ts +139 -19
  10. package/dist/runtime/subscription.d.ts.map +1 -1
  11. package/dist/runtime/subscription.js +90 -9
  12. package/dist/subscription/animationFrame.d.ts +23 -26
  13. package/dist/subscription/animationFrame.d.ts.map +1 -1
  14. package/dist/subscription/animationFrame.js +17 -18
  15. package/dist/subscription/public.d.ts +2 -2
  16. package/dist/subscription/public.d.ts.map +1 -1
  17. package/dist/subscription/public.js +1 -1
  18. package/dist/test/apps/bubbling.d.ts.map +1 -1
  19. package/dist/test/apps/bubbling.js +7 -5
  20. package/dist/test/apps/counter.d.ts.map +1 -1
  21. package/dist/test/apps/counter.js +8 -6
  22. package/dist/test/apps/disabledButton.d.ts.map +1 -1
  23. package/dist/test/apps/disabledButton.js +32 -21
  24. package/dist/test/apps/fileUpload.d.ts.map +1 -1
  25. package/dist/test/apps/fileUpload.js +18 -16
  26. package/dist/test/apps/interactions.d.ts.map +1 -1
  27. package/dist/test/apps/interactions.js +21 -19
  28. package/dist/test/apps/keypress.d.ts.map +1 -1
  29. package/dist/test/apps/keypress.js +12 -10
  30. package/dist/test/apps/login.d.ts.map +1 -1
  31. package/dist/test/apps/login.js +38 -36
  32. package/dist/test/apps/logoutButton.d.ts.map +1 -1
  33. package/dist/test/apps/logoutButton.js +4 -2
  34. package/dist/test/apps/mountPanel.d.ts.map +1 -1
  35. package/dist/test/apps/mountPanel.js +29 -21
  36. package/dist/test/apps/multiRole.d.ts.map +1 -1
  37. package/dist/test/apps/multiRole.js +6 -4
  38. package/dist/test/apps/pointer.d.ts.map +1 -1
  39. package/dist/test/apps/pointer.js +15 -13
  40. package/dist/test/apps/resumeUpload.d.ts.map +1 -1
  41. package/dist/test/apps/resumeUpload.js +20 -15
  42. package/dist/ui/dragAndDrop/index.d.ts +383 -101
  43. package/dist/ui/dragAndDrop/index.d.ts.map +1 -1
  44. package/dist/ui/dragAndDrop/index.js +19 -24
  45. package/dist/ui/dragAndDrop/public.d.ts +1 -1
  46. package/dist/ui/dragAndDrop/public.d.ts.map +1 -1
  47. package/dist/ui/dragAndDrop/public.js +1 -1
  48. package/dist/ui/slider/index.d.ts +193 -87
  49. package/dist/ui/slider/index.d.ts.map +1 -1
  50. package/dist/ui/slider/index.js +12 -19
  51. package/dist/ui/slider/public.d.ts +1 -1
  52. package/dist/ui/slider/public.d.ts.map +1 -1
  53. package/dist/ui/slider/public.js +1 -1
  54. package/dist/ui/virtualList/index.d.ts +45 -39
  55. package/dist/ui/virtualList/index.d.ts.map +1 -1
  56. package/dist/ui/virtualList/index.js +5 -12
  57. package/dist/ui/virtualList/public.d.ts +1 -1
  58. package/dist/ui/virtualList/public.d.ts.map +1 -1
  59. package/dist/ui/virtualList/public.js +1 -1
  60. package/package.json +1 -1
@@ -45,22 +45,24 @@ 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 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
- ], [`clicks=${model.clicks} dbl=${model.doubleClicks}`]),
56
- h.input([
57
- h.Role('textbox'),
58
- h.AriaLabel('name'),
59
- h.OnFocus(FocusedInput()),
60
- h.OnBlur(BlurredInput()),
61
- ]),
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
- ]),
66
- ]);
48
+ export const view = (model) => {
49
+ const h = html();
50
+ return h.div([], [
51
+ h.button([
52
+ h.OnClick(ClickedButton()),
53
+ h.OnDoubleClick(DoubleClickedButton()),
54
+ h.OnMouseEnter(HoveredTarget()),
55
+ h.AriaLabel('action'),
56
+ ], [`clicks=${model.clicks} dbl=${model.doubleClicks}`]),
57
+ h.input([
58
+ h.Role('textbox'),
59
+ h.AriaLabel('name'),
60
+ h.OnFocus(FocusedInput()),
61
+ h.OnBlur(BlurredInput()),
62
+ ]),
63
+ h.select([h.AriaLabel('fruit'), h.OnChange(value => ChangedSelect({ value }))], [
64
+ h.option([h.Value('apple')], ['Apple']),
65
+ h.option([h.Value('banana')], ['Banana']),
66
+ ]),
67
+ ]);
68
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"keypress.d.ts","sourceRoot":"","sources":["../../../src/test/apps/keypress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAM/C,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,UAAU;;EAAqC,CAAA;AAC5D,eAAO,MAAM,eAAe;;EAA0C,CAAA;AAEtE,eAAO,MAAM,OAAO;;;;IAAyC,CAAA;AAC7D,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAG1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAarC,CAAA;AAMH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAiBjC,CAAA"}
1
+ {"version":3,"file":"keypress.d.ts","sourceRoot":"","sources":["../../../src/test/apps/keypress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAM/C,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,UAAU;;EAAqC,CAAA;AAC5D,eAAO,MAAM,eAAe;;EAA0C,CAAA;AAEtE,eAAO,MAAM,OAAO;;;;IAAyC,CAAA;AAC7D,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAG1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAarC,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAoBnC,CAAA"}
@@ -27,13 +27,15 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
27
27
  ],
28
28
  }));
29
29
  // VIEW
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
- ], [
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
- ]);
30
+ export const view = (model) => {
31
+ const h = html();
32
+ return h.div([
33
+ h.Id('key-app'),
34
+ h.Role('application'),
35
+ h.AriaLabel('Key press area'),
36
+ h.OnKeyDown((key, modifiers) => modifiers.shiftKey ? PressedShiftKey({ key }) : PressedKey({ key })),
37
+ ], [
38
+ h.span([h.Class('last-key'), h.AriaLabel('Last key')], [model.lastKey]),
39
+ h.span([h.Class('shifted'), h.AriaLabel('Shift pressed')], [model.isShifted ? 'true' : 'false']),
40
+ ]);
41
+ };
@@ -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;AAMH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA6EjC,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;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAgFnC,CAAA"}
@@ -59,39 +59,41 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
59
59
  ],
60
60
  }));
61
61
  // VIEW
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 })),
86
- ]),
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 })),
94
- ]),
95
- h.button([h.Type('submit'), h.Class('primary'), h.Disabled(false)], ['Sign in']),
96
- ])), M.exhaustive),
97
- ]);
62
+ export const view = (model) => {
63
+ const h = html();
64
+ return h.div([h.Id('app')], [
65
+ 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([
66
+ h.Class('logged-in'),
67
+ h.Role('region'),
68
+ h.AriaLabel('User session'),
69
+ ], [
70
+ h.span([h.Class('greeting'), h.Role('status')], [`Welcome, ${model.username}!`]),
71
+ h.button([
72
+ h.OnClick(ClickedLogout()),
73
+ h.Role('button'),
74
+ h.AriaExpanded(false),
75
+ ], ['Log out']),
76
+ ])), M.when('Error', () => h.div([], [
77
+ h.p([h.Class('error'), h.Role('alert')], [model.error]),
78
+ h.button([h.OnClick(SubmittedLogin()), h.Class('retry')], ['Retry']),
79
+ ])), M.when('Idle', () => h.form([h.OnSubmit(SubmittedLogin()), h.Class('login-form')], [
80
+ h.label([h.For('email'), h.Class('sr-only')], ['Email']),
81
+ h.input([
82
+ h.Id('email'),
83
+ h.Type('email'),
84
+ h.Placeholder('Email'),
85
+ h.Value(model.email),
86
+ h.OnInput(value => UpdatedEmail({ value })),
87
+ ]),
88
+ h.label([h.For('password'), h.Class('sr-only')], ['Password']),
89
+ h.input([
90
+ h.Id('password'),
91
+ h.Type('password'),
92
+ h.Placeholder('Password'),
93
+ h.Value(model.password),
94
+ h.OnInput(value => UpdatedPassword({ value })),
95
+ ]),
96
+ h.button([h.Type('submit'), h.Class('primary'), h.Disabled(false)], ['Sign in']),
97
+ ])), M.exhaustive),
98
+ ]);
99
+ };
@@ -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,IAIjC,CAAA"}
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;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAOnC,CAAA"}
@@ -18,5 +18,7 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
18
18
  CompletedAction: () => [model, [], Option.none()],
19
19
  }));
20
20
  // VIEW
21
- const h = html();
22
- export const view = (model) => h.div([], [h.button([h.OnClick(ClickedLogout()), h.Role('button')], [model.label])]);
21
+ export const view = (model) => {
22
+ const h = html();
23
+ return h.div([], [h.button([h.OnClick(ClickedLogout()), h.Role('button')], [model.label])]);
24
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"mountPanel.d.ts","sourceRoot":"","sources":["../../../src/test/apps/mountPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAGhE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAI7C,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,aAAa;;EAA0C,CAAA;AACpE,eAAO,MAAM,oBAAoB,kFAA4B,CAAA;AAC7D,eAAO,MAAM,kBAAkB;;EAAgD,CAAA;AAC/E,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,UAAU;;EAAwC,CAAA;AAE/D,eAAO,MAAM,OAAO;;;;;;IAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAWzC,eAAO,MAAM,YAAY;;;;;;EAI6B,CAAA;AAEtD,eAAO,MAAM,WAAW;;EAGuB,CAAA;AAE/C,eAAO,MAAM,UAAU;;;;;EAatB,CAAA;AAID,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,CAcrC,CAAA;AAMH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA2BjC,CAAA;AAEH;;4BAE4B;AAC5B,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,IAWzC,CAAA;AAEH;;;2DAG2D;AAC3D,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,IAI7C,CAAA"}
1
+ {"version":3,"file":"mountPanel.d.ts","sourceRoot":"","sources":["../../../src/test/apps/mountPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAGhE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAI7C,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,aAAa;;EAA0C,CAAA;AACpE,eAAO,MAAM,oBAAoB,kFAA4B,CAAA;AAC7D,eAAO,MAAM,kBAAkB;;EAAgD,CAAA;AAC/E,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,UAAU;;EAAwC,CAAA;AAE/D,eAAO,MAAM,OAAO;;;;;;IAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAWzC,eAAO,MAAM,YAAY;;;;;;EAI6B,CAAA;AAEtD,eAAO,MAAM,WAAW;;EAGuB,CAAA;AAE/C,eAAO,MAAM,UAAU;;;;;EAatB,CAAA;AAID,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,CAcrC,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA8BnC,CAAA;AAED;;4BAE4B;AAC5B,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,IAc3C,CAAA;AAED;;;2DAG2D;AAC3D,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,IAO/C,CAAA"}
@@ -57,32 +57,40 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
57
57
  ScrolledTo: () => [model, []],
58
58
  }));
59
59
  // VIEW
60
- const h = html();
61
- export const view = (model) => h.div([h.Class('panel-test')], [
62
- h.button([h.Key('toggle'), h.OnClick(ClickedToggle()), h.OnMount(FocusButton())], [model.isOpen ? 'Close' : 'Open']),
63
- ...(model.isOpen
64
- ? [
65
- h.div([h.Key('panel'), h.OnMount(MeasurePanel())], [
66
- h.span([], [
67
- Option.match(model.measuredWidth, {
68
- onNone: () => 'unmeasured',
69
- onSome: width => `width: ${width}`,
70
- }),
60
+ export const view = (model) => {
61
+ const h = html();
62
+ return h.div([h.Class('panel-test')], [
63
+ h.button([h.Key('toggle'), h.OnClick(ClickedToggle()), h.OnMount(FocusButton())], [model.isOpen ? 'Close' : 'Open']),
64
+ ...(model.isOpen
65
+ ? [
66
+ h.div([h.Key('panel'), h.OnMount(MeasurePanel())], [
67
+ h.span([], [
68
+ Option.match(model.measuredWidth, {
69
+ onNone: () => 'unmeasured',
70
+ onSome: width => `width: ${width}`,
71
+ }),
72
+ ]),
71
73
  ]),
72
- ]),
73
- ]
74
- : []),
75
- ]);
74
+ ]
75
+ : []),
76
+ ]);
77
+ };
76
78
  /** A view that always renders both the toggle button and the panel, exposing
77
79
  * two MeasurePanel mounts simultaneously so we can exercise the (name,
78
80
  * occurrence) tracking. */
79
- export const twoPanelView = (model) => h.div([h.Class('two-panels')], [
80
- h.div([h.Key('panel-a'), h.OnMount(MeasurePanel())], [h.span([], ['A'])]),
81
- h.div([h.Key('panel-b'), h.OnMount(MeasurePanel())], [h.span([], ['B'])]),
82
- h.button([h.Key('inc'), h.OnClick(ClickedIncrement())], [`count: ${model.count}`]),
83
- ]);
81
+ export const twoPanelView = (model) => {
82
+ const h = html();
83
+ return h.div([h.Class('two-panels')], [
84
+ h.div([h.Key('panel-a'), h.OnMount(MeasurePanel())], [h.span([], ['A'])]),
85
+ h.div([h.Key('panel-b'), h.OnMount(MeasurePanel())], [h.span([], ['B'])]),
86
+ h.button([h.Key('inc'), h.OnClick(ClickedIncrement())], [`count: ${model.count}`]),
87
+ ]);
88
+ };
84
89
  /** A view that renders an arg-bearing Mount so Scene tests can exercise
85
90
  * Instance-based mount matching (matcher's args structurally equal the
86
91
  * pending Mount's args). The chosen `offset` flows through `ScrollList`'s
87
92
  * args and is observable on the rendered Mount marker. */
88
- export const scrollListView = (offset) => h.div([h.Class('scroll-list')], [h.div([h.Key('list'), h.OnMount(ScrollList({ offset }))], [])]);
93
+ export const scrollListView = (offset) => {
94
+ const h = html();
95
+ return h.div([h.Class('scroll-list')], [h.div([h.Key('list'), h.OnMount(ScrollList({ offset }))], [])]);
96
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"multiRole.d.ts","sourceRoot":"","sources":["../../../src/test/apps/multiRole.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;;EAAiC,CAAA;AACnD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,eAAe,6EAAuB,CAAA;AAEnD,eAAO,MAAM,OAAO,iGAA6B,CAAA;AACjD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAAqB,CAAA;AAIhD,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,IASjC,CAAA"}
1
+ {"version":3,"file":"multiRole.d.ts","sourceRoot":"","sources":["../../../src/test/apps/multiRole.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;;EAAiC,CAAA;AACnD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,eAAe,6EAAuB,CAAA;AAEnD,eAAO,MAAM,OAAO,iGAA6B,CAAA;AACjD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAAqB,CAAA;AAIhD,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAMrC,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAYnC,CAAA"}
@@ -13,7 +13,9 @@ 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 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
- ]);
16
+ export const view = (model) => {
17
+ const h = html();
18
+ return h.div([], [
19
+ h.div([h.Role('doc-subtitle heading'), h.OnClick(ClickedFallback())], [`Fallback element clicks=${model.clicks}`]),
20
+ ]);
21
+ };
@@ -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;AAMH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA2BjC,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;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA8BnC,CAAA"}
@@ -37,16 +37,18 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
37
37
  ],
38
38
  }));
39
39
  // VIEW
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
- ], [`down=${model.pointerDownCount} up=${model.pointerUpCount}`]),
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
- ]);
40
+ export const view = (model) => {
41
+ const h = html();
42
+ return h.div([], [
43
+ h.button([
44
+ h.AriaLabel('pointer target'),
45
+ h.OnPointerDown(pointerType => Option.some(PressedPointerDown({ pointerType }))),
46
+ h.OnPointerUp((_screenX, _screenY, pointerType, _timeStamp) => Option.some(ReleasedPointerUp({ pointerType }))),
47
+ ], [`down=${model.pointerDownCount} up=${model.pointerUpCount}`]),
48
+ h.div([
49
+ h.AriaLabel('nested target'),
50
+ h.OnPointerDown(pointerType => Option.some(PressedPointerDown({ pointerType }))),
51
+ ], [h.span([], [`type=${model.lastPointerType}`])]),
52
+ h.span([h.AriaLabel('no handler')], ['orphan']),
53
+ ]);
54
+ };
@@ -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;AAuBH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAkBjC,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;AAwBH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAqBnC,CAAA"}
@@ -73,18 +73,23 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
73
73
  ],
74
74
  }));
75
75
  // VIEW
76
- const h = html();
77
- const previewView = (model) => Option.match(model.maybePreviewDataUrl, {
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
- });
81
- export const view = (model) => h.div([h.Class('resume-upload')], [
82
- Option.match(model.maybeResume, {
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
- previewView(model),
87
- h.button([h.OnClick(ClickedRemoveResume())], ['Remove']),
88
- ]),
89
- }),
90
- ]);
76
+ const previewView = (model) => {
77
+ const h = html();
78
+ return Option.match(model.maybePreviewDataUrl, {
79
+ onSome: dataUrl => h.img([h.Src(dataUrl), h.Alt('Resume preview')]),
80
+ 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),
81
+ });
82
+ };
83
+ export const view = (model) => {
84
+ const h = html();
85
+ return h.div([h.Class('resume-upload')], [
86
+ Option.match(model.maybeResume, {
87
+ onNone: () => h.button([h.OnClick(ClickedChooseResume())], ['Choose resume']),
88
+ onSome: file => h.section([h.AriaLabel('Selected resume')], [
89
+ h.p([h.Class('resume-name')], [File.name(file)]),
90
+ previewView(model),
91
+ h.button([h.OnClick(ClickedRemoveResume())], ['Remove']),
92
+ ]),
93
+ }),
94
+ ]);
95
+ };