verstak 0.96.26035 → 0.96.26041

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 (41) hide show
  1. package/build/dist/source/components/Button.v.d.ts +6 -2
  2. package/build/dist/source/components/Button.v.js +7 -6
  3. package/build/dist/source/components/Icon.v.d.ts +6 -2
  4. package/build/dist/source/components/Icon.v.js +4 -3
  5. package/build/dist/source/components/Image.v.d.ts +6 -2
  6. package/build/dist/source/components/Image.v.js +5 -4
  7. package/build/dist/source/components/Input.v.d.ts +6 -2
  8. package/build/dist/source/components/Input.v.js +11 -10
  9. package/build/dist/source/components/Markdown.v.d.ts +7 -1
  10. package/build/dist/source/components/Markdown.v.js +7 -5
  11. package/build/dist/source/components/Spinner.v.d.ts +6 -2
  12. package/build/dist/source/components/Spinner.v.js +6 -5
  13. package/build/dist/source/components/Toggle.v.d.ts +6 -2
  14. package/build/dist/source/components/Toggle.v.js +7 -6
  15. package/build/dist/source/core/El.d.ts +4 -3
  16. package/build/dist/source/core/ElDriver.d.ts +8 -7
  17. package/build/dist/source/core/ElDriver.js +1 -0
  18. package/build/dist/source/core/WebDriver.d.ts +10 -10
  19. package/build/dist/source/core/WebDriver.js +7 -7
  20. package/build/dist/source/core/elements/ApplicationWindow.d.ts +4 -4
  21. package/build/dist/source/core/elements/ApplicationWindow.js +2 -2
  22. package/build/dist/source/core/elements/Cursor.js +2 -2
  23. package/build/dist/source/core/elements/Element.d.ts +6 -6
  24. package/build/dist/source/core/elements/Element.js +8 -8
  25. package/build/dist/source/core/elements/Fragment.d.ts +5 -5
  26. package/build/dist/source/core/elements/Fragment.js +5 -5
  27. package/build/dist/source/core/elements/Group.d.ts +5 -5
  28. package/build/dist/source/core/elements/Group.js +2 -2
  29. package/build/dist/source/core/elements/Partition.d.ts +1 -1
  30. package/build/dist/source/core/elements/Partition.js +5 -5
  31. package/build/dist/source/core/elements/Splitter.d.ts +5 -5
  32. package/build/dist/source/core/elements/Splitter.js +4 -4
  33. package/build/dist/source/core/elements/Table.d.ts +5 -5
  34. package/build/dist/source/core/elements/Table.js +2 -2
  35. package/build/dist/source/core/sensors/Handlers.js +5 -5
  36. package/build/dist/source/html/DraggableArea.view.js +1 -1
  37. package/build/dist/source/html/HtmlElements.d.ts +571 -115
  38. package/build/dist/source/html/HtmlElements.js +342 -114
  39. package/build/dist/source/svg/SvgElements.d.ts +296 -60
  40. package/build/dist/source/svg/SvgElements.js +177 -59
  41. package/package.json +9 -9
@@ -1,8 +1,12 @@
1
- import { ReactiveTreeNode, ReactiveTreeNodeDesc } from "reactronic";
1
+ import { ReactiveTreeNode, ReactiveTreeNodeDesc, Script, Mode, ScriptAsync } from "reactronic";
2
2
  import { El } from "verstak";
3
3
  export type ButtonModel = {
4
4
  icon?: string;
5
5
  label?: string;
6
6
  action?(): void;
7
7
  };
8
- export declare function Button(description?: ReactiveTreeNodeDesc<El<HTMLElement, ButtonModel>>): ReactiveTreeNode<El<HTMLElement, ButtonModel>>;
8
+ export declare function Button<D = unknown>(setup: Script<El<HTMLElement, ButtonModel, D>>): ReactiveTreeNode<El<HTMLElement, ButtonModel, D>>;
9
+ export declare function Button<D = unknown>(key: string, setup: Script<El<HTMLElement, ButtonModel, D>>): ReactiveTreeNode<El<HTMLElement, ButtonModel, D>>;
10
+ export declare function Button<D = unknown>(mode: Mode, setup: Script<El<HTMLElement, ButtonModel, D>>): ReactiveTreeNode<El<HTMLElement, ButtonModel, D>>;
11
+ export declare function Button<D = unknown>(description: ReactiveTreeNodeDesc<El<HTMLElement, ButtonModel, D>>): ReactiveTreeNode<El<HTMLElement, ButtonModel, D>>;
12
+ export declare function Button<D = unknown>(key?: string, mode?: Mode, setup?: Script<El<HTMLElement, ButtonModel, D>>, setupTask?: ScriptAsync<El<HTMLElement, ButtonModel, D>>, creation?: Script<El<HTMLElement, ButtonModel, D>>, creationTask?: ScriptAsync<El<HTMLElement, ButtonModel, D>>, mounting?: Script<El<HTMLElement, ButtonModel, D>>, destruction?: Script<El<HTMLElement, ButtonModel, D>>, signalArgs?: unknown, unmounted?: boolean, basis?: ReactiveTreeNodeDesc<El<HTMLElement, ButtonModel, D>>): ReactiveTreeNode<El<HTMLElement, ButtonModel, D>>;
@@ -1,24 +1,25 @@
1
- import { ReactiveTreeNode, setBasis } from "reactronic";
1
+ import { ReactiveTreeNode, args2desc, setBasis } from "reactronic";
2
2
  import { Element, OnClick } from "verstak";
3
3
  import { rxModel } from "./common/Utils.js";
4
4
  import { Theme } from "./Theme.js";
5
5
  import { Icon } from "./Icon.v.js";
6
- export function Button(description) {
6
+ export function Button(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis) {
7
+ const description = args2desc(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis);
7
8
  return (Element(setBasis(description, {
8
- preparation() {
9
+ creation() {
9
10
  var _a;
10
11
  (_a = this.model) !== null && _a !== void 0 ? _a : (this.model = rxModel({
11
12
  icon: "fa-solid fa-square",
12
13
  label: ReactiveTreeNode.current.key,
13
14
  }));
14
15
  },
15
- body() {
16
+ setup() {
16
17
  const m = this.model;
17
18
  const theme = Theme.current.button;
18
19
  this.useStylingPreset(theme.main);
19
20
  if (m.icon) {
20
21
  Icon(m.icon, {
21
- body(el, base) {
22
+ setup(el, base) {
22
23
  base();
23
24
  this.useStylingPreset(theme.icon);
24
25
  },
@@ -26,7 +27,7 @@ export function Button(description) {
26
27
  }
27
28
  if (m.label) {
28
29
  Element({
29
- body(el, base) {
30
+ setup(el, base) {
30
31
  base();
31
32
  this.textIsFormatted = false;
32
33
  this.text = m.label;
@@ -1,3 +1,7 @@
1
- import { ReactiveTreeNodeDesc } from "reactronic";
1
+ import { ReactiveTreeNode, ReactiveTreeNodeDesc, Script, Mode, ScriptAsync } from "reactronic";
2
2
  import { El } from "verstak";
3
- export declare function Icon(name: string, description?: ReactiveTreeNodeDesc<El<HTMLElement, void>>): import("reactronic").ReactiveTreeNode<El<HTMLElement, void>>;
3
+ export declare function Icon<D = unknown>(name: string, setup: Script<El<HTMLElement, void, D>>): ReactiveTreeNode<El<HTMLElement, void, D>>;
4
+ export declare function Icon<D = unknown>(name: string, key: string, setup: Script<El<HTMLElement, void, D>>): ReactiveTreeNode<El<HTMLElement, void, D>>;
5
+ export declare function Icon<D = unknown>(name: string, mode: Mode, setup: Script<El<HTMLElement, void, D>>): ReactiveTreeNode<El<HTMLElement, void, D>>;
6
+ export declare function Icon<D = unknown>(name: string, description: ReactiveTreeNodeDesc<El<HTMLElement, void, D>>): ReactiveTreeNode<El<HTMLElement, void, D>>;
7
+ export declare function Icon<D = unknown>(name: string, key?: string, mode?: Mode, setup?: Script<El<HTMLElement, void, D>>, setupTask?: ScriptAsync<El<HTMLElement, void, D>>, creation?: Script<El<HTMLElement, void, D>>, creationTask?: ScriptAsync<El<HTMLElement, void, D>>, mounting?: Script<El<HTMLElement, void, D>>, destruction?: Script<El<HTMLElement, void, D>>, signalArgs?: unknown, unmounted?: boolean, basis?: ReactiveTreeNodeDesc<El<HTMLElement, void, D>>): ReactiveTreeNode<El<HTMLElement, void, D>>;
@@ -1,10 +1,11 @@
1
- import { setBasis } from "reactronic";
1
+ import { args2desc, setBasis } from "reactronic";
2
2
  import { Element } from "verstak";
3
3
  import { Theme } from "./Theme.js";
4
- export function Icon(name, description) {
4
+ export function Icon(name, setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis) {
5
+ const description = args2desc(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis);
5
6
  return (Element(setBasis(description, {
6
7
  signalArgs: { name },
7
- body() {
8
+ setup() {
8
9
  const theme = Theme.current.icon;
9
10
  this.useStylingPreset(name);
10
11
  this.useStylingPreset(theme.main);
@@ -1,6 +1,10 @@
1
- import { ReactiveTreeNodeDesc } from "reactronic";
1
+ import { ReactiveTreeNode, ReactiveTreeNodeDesc, Script, Mode, ScriptAsync } from "reactronic";
2
2
  import { El } from "verstak";
3
3
  export type ImageModel = {
4
4
  source?: string;
5
5
  };
6
- export declare function Image(description?: ReactiveTreeNodeDesc<El<HTMLElement, ImageModel>>): import("reactronic").ReactiveTreeNode<El<HTMLElement, ImageModel>>;
6
+ export declare function Image<D = unknown>(setup: Script<El<HTMLElement, ImageModel, D>>): ReactiveTreeNode<El<HTMLElement, ImageModel, D>>;
7
+ export declare function Image<D = unknown>(key: string, setup: Script<El<HTMLElement, ImageModel, D>>): ReactiveTreeNode<El<HTMLElement, ImageModel, D>>;
8
+ export declare function Image<D = unknown>(mode: Mode, setup: Script<El<HTMLElement, ImageModel, D>>): ReactiveTreeNode<El<HTMLElement, ImageModel, D>>;
9
+ export declare function Image<D = unknown>(description: ReactiveTreeNodeDesc<El<HTMLElement, ImageModel, D>>): ReactiveTreeNode<El<HTMLElement, ImageModel, D>>;
10
+ export declare function Image<D = unknown>(key?: string, mode?: Mode, setup?: Script<El<HTMLElement, ImageModel, D>>, setupTask?: ScriptAsync<El<HTMLElement, ImageModel, D>>, creation?: Script<El<HTMLElement, ImageModel, D>>, creationTask?: ScriptAsync<El<HTMLElement, ImageModel, D>>, mounting?: Script<El<HTMLElement, ImageModel, D>>, destruction?: Script<El<HTMLElement, ImageModel, D>>, signalArgs?: unknown, unmounted?: boolean, basis?: ReactiveTreeNodeDesc<El<HTMLElement, ImageModel, D>>): ReactiveTreeNode<El<HTMLElement, ImageModel, D>>;
@@ -1,13 +1,14 @@
1
- import { setBasis } from "reactronic";
1
+ import { args2desc, setBasis } from "reactronic";
2
2
  import { Element } from "verstak";
3
3
  import { rxModel } from "./common/Utils.js";
4
- export function Image(description) {
4
+ export function Image(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis) {
5
+ const description = args2desc(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis);
5
6
  return (Element(setBasis(description, {
6
- preparation() {
7
+ creation() {
7
8
  var _a;
8
9
  (_a = this.model) !== null && _a !== void 0 ? _a : (this.model = rxModel({ source: undefined }));
9
10
  },
10
- body() {
11
+ setup() {
11
12
  const m = this.model;
12
13
  this.style.backgroundImage = `url(${m.source})`;
13
14
  this.style.backgroundSize = "contain";
@@ -1,4 +1,4 @@
1
- import { ReactiveTreeNodeDesc } from "reactronic";
1
+ import { ReactiveTreeNode, ReactiveTreeNodeDesc, Script, Mode, ScriptAsync } from "reactronic";
2
2
  import { FocusModel, El } from "verstak";
3
3
  import { ValuesOrRefs } from "./common/Utils.js";
4
4
  export type InputModel<T = string> = FocusModel & {
@@ -12,5 +12,9 @@ export type InputModel<T = string> = FocusModel & {
12
12
  isHotText: boolean;
13
13
  inputStyle: string;
14
14
  };
15
- export declare function Input(description?: ReactiveTreeNodeDesc<El<HTMLElement, InputModel>>): import("reactronic").ReactiveTreeNode<El<HTMLElement, InputModel<string>>>;
15
+ export declare function Input<D = unknown>(setup: Script<El<HTMLElement, InputModel, D>>): ReactiveTreeNode<El<HTMLElement, InputModel, D>>;
16
+ export declare function Input<D = unknown>(key: string, setup: Script<El<HTMLElement, InputModel, D>>): ReactiveTreeNode<El<HTMLElement, InputModel, D>>;
17
+ export declare function Input<D = unknown>(mode: Mode, setup: Script<El<HTMLElement, InputModel, D>>): ReactiveTreeNode<El<HTMLElement, InputModel, D>>;
18
+ export declare function Input<D = unknown>(description: ReactiveTreeNodeDesc<El<HTMLElement, InputModel, D>>): ReactiveTreeNode<El<HTMLElement, InputModel, D>>;
19
+ export declare function Input<D = unknown>(key?: string, mode?: Mode, setup?: Script<El<HTMLElement, InputModel, D>>, setupTask?: ScriptAsync<El<HTMLElement, InputModel, D>>, creation?: Script<El<HTMLElement, InputModel, D>>, creationTask?: ScriptAsync<El<HTMLElement, InputModel, D>>, mounting?: Script<El<HTMLElement, InputModel, D>>, destruction?: Script<El<HTMLElement, InputModel, D>>, signalArgs?: unknown, unmounted?: boolean, basis?: ReactiveTreeNodeDesc<El<HTMLElement, InputModel, D>>): ReactiveTreeNode<El<HTMLElement, InputModel, D>>;
16
20
  export declare function composeInputModel<T>(props?: Partial<ValuesOrRefs<InputModel<T>>>): InputModel<T>;
@@ -1,22 +1,23 @@
1
- import { Mode, setBasis } from "reactronic";
1
+ import { Mode, args2desc, setBasis } from "reactronic";
2
2
  import { Element, OnFocus, rowBreak, Fragment, KeyboardModifiers, H, V } from "verstak";
3
3
  import { rxModel } from "./common/Utils.js";
4
4
  import { Theme } from "./Theme.js";
5
5
  import { Icon } from "./Icon.v.js";
6
- export function Input(description) {
6
+ export function Input(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis) {
7
+ const description = args2desc(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis);
7
8
  return (Element(setBasis(description, {
8
- preparation() {
9
+ creation() {
9
10
  var _a;
10
11
  (_a = this.model) !== null && _a !== void 0 ? _a : (this.model = composeInputModel());
11
12
  this.native.dataForSensor.focus = this.model;
12
13
  },
13
- body() {
14
+ setup() {
14
15
  const m = this.model;
15
16
  const theme = Theme.current.input;
16
17
  this.useStylingPreset(theme.main);
17
18
  if (m.icon)
18
19
  Icon(m.icon, {
19
- body(el, base) {
20
+ setup(el, base) {
20
21
  base();
21
22
  this.useStylingPreset(theme.icon);
22
23
  },
@@ -45,7 +46,7 @@ function InputField(model, styling) {
45
46
  return (Element({
46
47
  key: InputField.name,
47
48
  mode: Mode.primitive,
48
- preparation(el, base) {
49
+ creation(el, base) {
49
50
  const e = this.native;
50
51
  this.useStylingPreset(styling.field);
51
52
  this.selfAlignmentHorizontal = H.stretch;
@@ -55,7 +56,7 @@ function InputField(model, styling) {
55
56
  e.dataForSensor.focus = model;
56
57
  base();
57
58
  },
58
- body() {
59
+ setup() {
59
60
  const e = this.native;
60
61
  if (!model.isEditMode)
61
62
  this.text = model.text;
@@ -82,7 +83,7 @@ function InputPopup(model, styling) {
82
83
  return (Element({
83
84
  key: InputPopup.name,
84
85
  mode: Mode.primitive,
85
- body() {
86
+ setup() {
86
87
  this.useStylingPreset(styling.popup);
87
88
  Fragment(() => model.position = this.native.sensors.scroll.y);
88
89
  const visible = this.overlayVisible = model.isEditMode;
@@ -94,7 +95,7 @@ function InputPopup(model, styling) {
94
95
  Element({
95
96
  key: x,
96
97
  mode: Mode.primitive,
97
- preparation() {
98
+ creation() {
98
99
  this.text = x;
99
100
  this.contentWrapping = false;
100
101
  },
@@ -105,7 +106,7 @@ function InputPopup(model, styling) {
105
106
  Element({
106
107
  key: "(nothing)",
107
108
  mode: Mode.primitive,
108
- body() {
109
+ setup() {
109
110
  this.text = "(nothing)";
110
111
  },
111
112
  });
@@ -1 +1,7 @@
1
- export declare function Markdown(content: string): import("reactronic").ReactiveTreeNode<import("verstak").El<HTMLElement, unknown>>;
1
+ import { ReactiveTreeNode, ReactiveTreeNodeDesc, Script, Mode, ScriptAsync } from "reactronic";
2
+ import { El } from "verstak";
3
+ export declare function Markdown<D = unknown>(content: string, setup: Script<El<HTMLElement, any, D>>): ReactiveTreeNode<El<HTMLElement, any, D>>;
4
+ export declare function Markdown<D = unknown>(content: string, key: string, setup: Script<El<HTMLElement, any, D>>): ReactiveTreeNode<El<HTMLElement, any, D>>;
5
+ export declare function Markdown<D = unknown>(content: string, mode: Mode, setup: Script<El<HTMLElement, any, D>>): ReactiveTreeNode<El<HTMLElement, any, D>>;
6
+ export declare function Markdown<D = unknown>(content: string, description: ReactiveTreeNodeDesc<El<HTMLElement, any, D>>): ReactiveTreeNode<El<HTMLElement, any, D>>;
7
+ export declare function Markdown<D = unknown>(content: string, key?: string, mode?: Mode, setup?: Script<El<HTMLElement, any, D>>, setupTask?: ScriptAsync<El<HTMLElement, any, D>>, creation?: Script<El<HTMLElement, any, D>>, creationTask?: ScriptAsync<El<HTMLElement, any, D>>, mounting?: Script<El<HTMLElement, any, D>>, destruction?: Script<El<HTMLElement, any, D>>, signalArgs?: unknown, unmounted?: boolean, basis?: ReactiveTreeNodeDesc<El<HTMLElement, any, D>>): ReactiveTreeNode<El<HTMLElement, any, D>>;
@@ -1,17 +1,19 @@
1
+ import { args2desc, setBasis } from "reactronic";
1
2
  import Md from "markdown-it";
2
3
  import * as prism from "prismjs";
3
4
  import { Element } from "verstak";
4
- export function Markdown(content) {
5
- return (Element({
6
- preparation(el, base) {
5
+ export function Markdown(content, setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis) {
6
+ const description = args2desc(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis);
7
+ return (Element(setBasis(description, {
8
+ creation(el, base) {
7
9
  this.contentWrapping = true;
8
10
  base();
9
11
  },
10
- body() {
12
+ setup() {
11
13
  this.textIsFormatted = true;
12
14
  this.text = md.render(content);
13
15
  },
14
- }));
16
+ })));
15
17
  }
16
18
  const md = new Md({
17
19
  html: true,
@@ -1,9 +1,13 @@
1
- import { ReactiveTreeNodeDesc } from "reactronic";
1
+ import { ReactiveTreeNode, ReactiveTreeNodeDesc, Script, Mode, ScriptAsync } from "reactronic";
2
2
  import { El } from "verstak";
3
3
  import { ValuesOrRefs } from "./common/Utils.js";
4
4
  export type SpinnerModel = {
5
5
  active: boolean;
6
6
  color: string;
7
7
  };
8
- export declare function Spinner(description?: ReactiveTreeNodeDesc<El<HTMLElement, SpinnerModel>>): import("reactronic").ReactiveTreeNode<El<HTMLElement, SpinnerModel>>;
8
+ export declare function Spinner<D = unknown>(setup: Script<El<HTMLElement, SpinnerModel, D>>): ReactiveTreeNode<El<HTMLElement, SpinnerModel, D>>;
9
+ export declare function Spinner<D = unknown>(key: string, setup: Script<El<HTMLElement, SpinnerModel, D>>): ReactiveTreeNode<El<HTMLElement, SpinnerModel, D>>;
10
+ export declare function Spinner<D = unknown>(mode: Mode, setup: Script<El<HTMLElement, SpinnerModel, D>>): ReactiveTreeNode<El<HTMLElement, SpinnerModel, D>>;
11
+ export declare function Spinner<D = unknown>(description: ReactiveTreeNodeDesc<El<HTMLElement, SpinnerModel, D>>): ReactiveTreeNode<El<HTMLElement, SpinnerModel, D>>;
12
+ export declare function Spinner<D = unknown>(key?: string, mode?: Mode, setup?: Script<El<HTMLElement, SpinnerModel, D>>, setupTask?: ScriptAsync<El<HTMLElement, SpinnerModel, D>>, creation?: Script<El<HTMLElement, SpinnerModel, D>>, creationTask?: ScriptAsync<El<HTMLElement, SpinnerModel, D>>, mounting?: Script<El<HTMLElement, SpinnerModel, D>>, destruction?: Script<El<HTMLElement, SpinnerModel, D>>, signalArgs?: unknown, unmounted?: boolean, basis?: ReactiveTreeNodeDesc<El<HTMLElement, SpinnerModel, D>>): ReactiveTreeNode<El<HTMLElement, SpinnerModel, D>>;
9
13
  export declare function composeSpinnerModel<T>(props?: Partial<ValuesOrRefs<SpinnerModel>>): SpinnerModel;
@@ -1,18 +1,19 @@
1
- import { Mode, setBasis } from "reactronic";
1
+ import { Mode, args2desc, setBasis } from "reactronic";
2
2
  import { Element } from "verstak";
3
3
  import { rxModel } from "./common/Utils.js";
4
- export function Spinner(description) {
4
+ export function Spinner(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis) {
5
+ const description = args2desc(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis);
5
6
  return (Element(setBasis(description, {
6
- preparation() {
7
+ creation() {
7
8
  var _a;
8
9
  (_a = this.model) !== null && _a !== void 0 ? _a : (this.model = composeSpinnerModel());
9
10
  },
10
- body() {
11
+ setup() {
11
12
  const m = this.model;
12
13
  if (m.active)
13
14
  Element({
14
15
  mode: Mode.primitive,
15
- body() {
16
+ setup() {
16
17
  this.text = "loading...";
17
18
  },
18
19
  });
@@ -1,8 +1,12 @@
1
- import { ReactiveTreeNode, ReactiveTreeNodeDesc } from "reactronic";
1
+ import { ReactiveTreeNode, ReactiveTreeNodeDesc, Script, Mode, ScriptAsync } from "reactronic";
2
2
  import { El } from "verstak";
3
3
  export type ToggleModel = {
4
4
  label?: string;
5
5
  checked?: boolean;
6
6
  color?: string;
7
7
  };
8
- export declare function Toggle(description?: ReactiveTreeNodeDesc<El<HTMLElement, ToggleModel>>): ReactiveTreeNode<El<HTMLElement, ToggleModel>>;
8
+ export declare function Toggle<D = unknown>(setup: Script<El<HTMLElement, ToggleModel, D>>): ReactiveTreeNode<El<HTMLElement, ToggleModel, D>>;
9
+ export declare function Toggle<D = unknown>(key: string, setup: Script<El<HTMLElement, ToggleModel, D>>): ReactiveTreeNode<El<HTMLElement, ToggleModel, D>>;
10
+ export declare function Toggle<D = unknown>(mode: Mode, setup: Script<El<HTMLElement, ToggleModel, D>>): ReactiveTreeNode<El<HTMLElement, ToggleModel, D>>;
11
+ export declare function Toggle<D = unknown>(description: ReactiveTreeNodeDesc<El<HTMLElement, ToggleModel, D>>): ReactiveTreeNode<El<HTMLElement, ToggleModel, D>>;
12
+ export declare function Toggle<D = unknown>(key?: string, mode?: Mode, setup?: Script<El<HTMLElement, ToggleModel, D>>, setupTask?: ScriptAsync<El<HTMLElement, ToggleModel, D>>, creation?: Script<El<HTMLElement, ToggleModel, D>>, creationTask?: ScriptAsync<El<HTMLElement, ToggleModel, D>>, mounting?: Script<El<HTMLElement, ToggleModel, D>>, destruction?: Script<El<HTMLElement, ToggleModel, D>>, signalArgs?: unknown, unmounted?: boolean, basis?: ReactiveTreeNodeDesc<El<HTMLElement, ToggleModel, D>>): ReactiveTreeNode<El<HTMLElement, ToggleModel, D>>;
@@ -1,11 +1,12 @@
1
- import { ReactiveTreeNode, Mode, setBasis } from "reactronic";
1
+ import { ReactiveTreeNode, Mode, args2desc, setBasis } from "reactronic";
2
2
  import { Element, OnClick } from "verstak";
3
3
  import { rxModel } from "./common/Utils.js";
4
4
  import { Theme } from "./Theme.js";
5
5
  import { Icon } from "./Icon.v.js";
6
- export function Toggle(description) {
6
+ export function Toggle(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis) {
7
+ const description = args2desc(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis);
7
8
  return (Element(setBasis(description, {
8
- preparation() {
9
+ creation() {
9
10
  var _a;
10
11
  (_a = this.model) !== null && _a !== void 0 ? _a : (this.model = rxModel({
11
12
  label: ReactiveTreeNode.current.key,
@@ -13,13 +14,13 @@ export function Toggle(description) {
13
14
  color: "green"
14
15
  }));
15
16
  },
16
- body() {
17
+ setup() {
17
18
  const m = this.model;
18
19
  const theme = Theme.current;
19
20
  const toggleTheme = theme.toggle;
20
21
  this.useStylingPreset(toggleTheme.main);
21
22
  Icon(`fa-solid fa-toggle-${m.checked ? "on" : "off"}`, {
22
- body(el, base) {
23
+ setup(el, base) {
23
24
  var _a;
24
25
  base();
25
26
  this.useStylingPreset(toggleTheme.icon);
@@ -29,7 +30,7 @@ export function Toggle(description) {
29
30
  if (m.label) {
30
31
  Element({
31
32
  mode: Mode.primitive,
32
- body(el, base) {
33
+ setup(el, base) {
33
34
  base();
34
35
  this.text = m.label;
35
36
  this.useStylingPreset(toggleTheme.label);
@@ -1,9 +1,10 @@
1
1
  import { Handler, ReactiveTreeNode } from "reactronic";
2
- export type El<T = any, M = any> = {
3
- readonly node: ReactiveTreeNode<El<T, M>>;
2
+ export type El<T = any, M = any, D = any> = {
3
+ readonly node: ReactiveTreeNode<El<T, M, D>>;
4
4
  readonly rank: number;
5
5
  native: T;
6
6
  model: M;
7
+ data: D;
7
8
  kind: ElKind;
8
9
  place: ElPlace;
9
10
  width: Range;
@@ -33,7 +34,7 @@ export type El<T = any, M = any> = {
33
34
  };
34
35
  partitionSizeInSplitViewPx: number;
35
36
  readonly style: CSSStyleDeclaration;
36
- action: Handler<El<T, M>, void> | undefined;
37
+ action: Handler<El<T, M, D>, void> | undefined;
37
38
  useStylingPreset(stylingPresetName: string, enabled?: boolean): void;
38
39
  };
39
40
  export declare enum ElKind {
@@ -1,15 +1,16 @@
1
1
  import { ReactiveTreeNode, Handler, BaseDriver } from "reactronic";
2
2
  import { El, ElKind, H, V, Range, ElPlace, Direction } from "./El.js";
3
- export declare class ElDriver<T extends Element, M = unknown> extends BaseDriver<El<T, M>> {
4
- create(node: ReactiveTreeNode<El<T, M>>): El<T, M>;
3
+ export declare class ElDriver<T extends Element, M = unknown, D = unknown> extends BaseDriver<El<T, M, D>> {
4
+ create(node: ReactiveTreeNode<El<T, M, D>>): El<T, M, D>;
5
5
  }
6
- export declare class ElImpl<T extends Element = any, M = any> implements El<T, M> {
7
- readonly node: ReactiveTreeNode<El<T, M>>;
6
+ export declare class ElImpl<T extends Element = any, M = any, D = any> implements El<T, M, D> {
7
+ readonly node: ReactiveTreeNode<El<T, M, D>>;
8
8
  maxColumnCount: number;
9
9
  maxRowCount: number;
10
10
  layoutInfo?: ElLayoutInfo;
11
11
  native: T;
12
12
  model: M;
13
+ data: D;
13
14
  private _kind;
14
15
  private _place;
15
16
  private _coords;
@@ -31,7 +32,7 @@ export declare class ElImpl<T extends Element = any, M = any> implements El<T, M
31
32
  private _sealed;
32
33
  private _splitView;
33
34
  private _hasStylingPresets;
34
- constructor(node: ReactiveTreeNode<El<T, M>>);
35
+ constructor(node: ReactiveTreeNode<El<T, M, D>>);
35
36
  prepareForUpdate(): void;
36
37
  get rank(): number;
37
38
  get isElement(): boolean;
@@ -93,8 +94,8 @@ export declare class ElImpl<T extends Element = any, M = any> implements El<T, M
93
94
  set splitView(value: Direction | undefined);
94
95
  get partitionSizeInSplitViewPx(): number;
95
96
  get style(): CSSStyleDeclaration;
96
- get action(): Handler<El<T, M>, void> | undefined;
97
- set action(value: Handler<El<T, M>, void> | undefined);
97
+ get action(): Handler<El<T, M, D>, void> | undefined;
98
+ set action(value: Handler<El<T, M, D>, void> | undefined);
98
99
  useStylingPreset(stylingPresetName: string, enabled?: boolean): void;
99
100
  protected children(onlyAfter?: ElImpl): Generator<ElImpl>;
100
101
  static childrenOf(node: ReactiveTreeNode<El>, onlyAfter?: El): Generator<ElImpl>;
@@ -23,6 +23,7 @@ export class ElImpl {
23
23
  this.layoutInfo = undefined;
24
24
  this.native = undefined;
25
25
  this.model = undefined;
26
+ this.data = undefined;
26
27
  this._kind = ElKind.partition;
27
28
  this._place = undefined;
28
29
  this._coords = UndefinedElCoords;
@@ -1,12 +1,12 @@
1
1
  import { ReactiveTreeNode, Handler } from "reactronic";
2
2
  import { El } from "./El.js";
3
3
  import { ElDriver } from "./ElDriver.js";
4
- export declare class WebDriver<T extends Element, M = unknown> extends ElDriver<T, M> {
5
- assignNativeElement(node: ReactiveTreeNode<El<T, M>>): void;
6
- runPreparation(node: ReactiveTreeNode<El<T, M>>): void | Promise<void>;
7
- runFinalization(node: ReactiveTreeNode<El<T, M>>, isLeader: boolean): boolean;
8
- runMount(node: ReactiveTreeNode<El<T, M>>): void;
9
- rebuildBody(node: ReactiveTreeNode<El<T, M>>): void | Promise<void>;
4
+ export declare class WebDriver<T extends Element, M = unknown, D = unknown> extends ElDriver<T, M, D> {
5
+ assignNativeElement(node: ReactiveTreeNode<El<T, M, D>>): void;
6
+ runCreation(node: ReactiveTreeNode<El<T, M, D>>): void | Promise<void>;
7
+ runDestruction(node: ReactiveTreeNode<El<T, M, D>>, isLeader: boolean): boolean;
8
+ runMount(node: ReactiveTreeNode<El<T, M, D>>): void;
9
+ runSetup(node: ReactiveTreeNode<El<T, M, D>>): void | Promise<void>;
10
10
  private assignExtraAttributesAndProperties;
11
11
  private clearExtraAttributesAndProperties;
12
12
  static getOwnNodeOfNativeElement<T extends Element>(element: T): ReactiveTreeNode<El<T>> | undefined;
@@ -20,9 +20,9 @@ export declare class StaticDriver<T extends HTMLElement> extends WebDriver<T> {
20
20
  constructor(native: T, id: string, isPartition: boolean, initialize?: Handler<El<T>>);
21
21
  assignNativeElement(node: ReactiveTreeNode<El<T>>): void;
22
22
  }
23
- export declare class HtmlDriver<T extends HTMLElement, M = any> extends WebDriver<T, M> {
24
- assignNativeElement(node: ReactiveTreeNode<El<T, M>>): void;
23
+ export declare class HtmlDriver<T extends HTMLElement, M = any, D = any> extends WebDriver<T, M, D> {
24
+ assignNativeElement(node: ReactiveTreeNode<El<T, M, D>>): void;
25
25
  }
26
- export declare class SvgDriver<T extends SVGElement, M = any> extends WebDriver<T, M> {
27
- assignNativeElement(node: ReactiveTreeNode<El<T, M>>): void;
26
+ export declare class SvgDriver<T extends SVGElement, M = any, D = any> extends WebDriver<T, M, D> {
27
+ assignNativeElement(node: ReactiveTreeNode<El<T, M, D>>): void;
28
28
  }
@@ -3,18 +3,18 @@ import { Constants, ElDriver, ElImpl } from "./ElDriver.js";
3
3
  export class WebDriver extends ElDriver {
4
4
  assignNativeElement(node) {
5
5
  }
6
- runPreparation(node) {
6
+ runCreation(node) {
7
7
  this.assignNativeElement(node);
8
8
  const native = node.element.native;
9
9
  const isPartition = node.driver.isPartition;
10
10
  if (native !== undefined && !isPartition)
11
11
  this.assignExtraAttributesAndProperties(node);
12
- const result = super.runPreparation(node);
12
+ const result = super.runCreation(node);
13
13
  if (native == undefined && node.element.native !== undefined && !isPartition)
14
14
  this.assignExtraAttributesAndProperties(node);
15
15
  return result;
16
16
  }
17
- runFinalization(node, isLeader) {
17
+ runDestruction(node, isLeader) {
18
18
  var _a;
19
19
  const el = node.element;
20
20
  const native = el.native;
@@ -24,7 +24,7 @@ export class WebDriver extends ElDriver {
24
24
  if (isLeader)
25
25
  native.remove();
26
26
  }
27
- super.runFinalization(node, isLeader);
27
+ super.runDestruction(node, isLeader);
28
28
  el.native = null;
29
29
  return false;
30
30
  }
@@ -57,11 +57,11 @@ export class WebDriver extends ElDriver {
57
57
  }
58
58
  }
59
59
  }
60
- rebuildBody(node) {
60
+ runSetup(node) {
61
61
  const el = node.element;
62
62
  if (el instanceof ElImpl)
63
63
  el.prepareForUpdate();
64
- let result = super.rebuildBody(node);
64
+ let result = super.runSetup(node);
65
65
  result = proceedSyncOrAsync(result, v => {
66
66
  if (el.place === undefined) {
67
67
  const oel = node.owner.element;
@@ -69,7 +69,7 @@ export class WebDriver extends ElDriver {
69
69
  el.place = undefined;
70
70
  }
71
71
  if (gBlinkingEffect)
72
- blink(el.native, ReactiveTreeNode.currentBodyPriority, node.stamp);
72
+ blink(el.native, ReactiveTreeNode.currentNodePriority, node.stamp);
73
73
  }, e => {
74
74
  });
75
75
  return result;
@@ -1,11 +1,11 @@
1
1
  import { ReactiveTreeNode, ReactiveTreeNodeDesc, Script, Mode, ScriptAsync } from "reactronic";
2
2
  import { El } from "../El.js";
3
3
  import { ElementDriver } from "./Element.js";
4
- export declare function ApplicationWindow(body: Script<El<HTMLElement>>): ReactiveTreeNode<El<HTMLElement>>;
5
- export declare function ApplicationWindow(key: string, body: Script<El<HTMLElement>>): ReactiveTreeNode<El<HTMLElement>>;
6
- export declare function ApplicationWindow(mode: Mode, body: Script<El<HTMLElement>>): ReactiveTreeNode<El<HTMLElement>>;
4
+ export declare function ApplicationWindow(setup: Script<El<HTMLElement>>): ReactiveTreeNode<El<HTMLElement>>;
5
+ export declare function ApplicationWindow(key: string, setup: Script<El<HTMLElement>>): ReactiveTreeNode<El<HTMLElement>>;
6
+ export declare function ApplicationWindow(mode: Mode, setup: Script<El<HTMLElement>>): ReactiveTreeNode<El<HTMLElement>>;
7
7
  export declare function ApplicationWindow(description: ReactiveTreeNodeDesc<El<HTMLElement>>): ReactiveTreeNode<El<HTMLElement>>;
8
- export declare function ApplicationWindow(key?: string, mode?: Mode, body?: Script<El<HTMLElement>>, bodyTask?: ScriptAsync<El<HTMLElement>>, preparation?: Script<El<HTMLElement>>, preparationTask?: ScriptAsync<El<HTMLElement>>, mounting?: Script<El<HTMLElement>>, finalization?: Script<El<HTMLElement>>, signalArgs?: unknown, unmounted?: boolean, basis?: ReactiveTreeNodeDesc<El<HTMLElement>>): ReactiveTreeNode<El<HTMLElement>>;
8
+ export declare function ApplicationWindow(key?: string, mode?: Mode, setup?: Script<El<HTMLElement>>, setupTask?: ScriptAsync<El<HTMLElement>>, creation?: Script<El<HTMLElement>>, creationTask?: ScriptAsync<El<HTMLElement>>, mounting?: Script<El<HTMLElement>>, destruction?: Script<El<HTMLElement>>, signalArgs?: unknown, unmounted?: boolean, basis?: ReactiveTreeNodeDesc<El<HTMLElement>>): ReactiveTreeNode<El<HTMLElement>>;
9
9
  export declare class ApplicationWindowDriver<T extends HTMLElement> extends ElementDriver<T> {
10
10
  readonly native: T;
11
11
  constructor(native: T);
@@ -1,13 +1,13 @@
1
1
  import { describe } from "reactronic";
2
2
  import { ElementDriver } from "./Element.js";
3
3
  import { acquireVerstakStyleSheet } from "./v5k.js";
4
- export function ApplicationWindow(bodyOrKeyOrModeDescription, bodyOrMode, body, bodyTask, preparation, preparationTask, mounting, finalization, signalArgs, unmounted, basis) {
4
+ export function ApplicationWindow(setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis) {
5
5
  acquireVerstakStyleSheet();
6
6
  const page = (document !== null && document !== void 0 ? document : global.document).body;
7
7
  const driver = new ApplicationWindowDriver(page);
8
8
  page.classList.add("v5k-app");
9
9
  page.classList.add("v5k-element");
10
- return describe(driver, bodyOrKeyOrModeDescription, bodyOrMode, body, bodyTask, preparation, preparationTask, mounting, finalization, signalArgs, unmounted, basis);
10
+ return describe(ApplicationWindow.name, driver, setupOrKeyOrModeDescription, setupOrMode, setup, setupTask, creation, creationTask, mounting, destruction, signalArgs, unmounted, basis);
11
11
  }
12
12
  export class ApplicationWindowDriver extends ElementDriver {
13
13
  constructor(native) {
@@ -2,8 +2,8 @@ import { describe } from "reactronic";
2
2
  import { ElKind } from "../El.js";
3
3
  import { ElDriver } from "../ElDriver.js";
4
4
  export function cursor(place) {
5
- describe(CursorCommandDriver.glob, {
6
- body() {
5
+ describe(cursor.name, CursorCommandDriver.glob, {
6
+ setup() {
7
7
  this.place = place;
8
8
  },
9
9
  });
@@ -1,15 +1,15 @@
1
1
  import { ReactiveTreeNode, ReactiveTreeNodeDesc, ReactiveTreeNodeDriver, LinkedItem, Script, Mode, ScriptAsync } from "reactronic";
2
2
  import { El } from "../El.js";
3
3
  import { HtmlDriver } from "../WebDriver.js";
4
- export declare function Element<M = unknown>(body: Script<El<HTMLElement, M>>): ReactiveTreeNode<El<HTMLElement, M>>;
5
- export declare function Element<M = unknown>(key: string, body: Script<El<HTMLElement, M>>): ReactiveTreeNode<El<HTMLElement, M>>;
6
- export declare function Element<M = unknown>(mode: Mode, body: Script<El<HTMLElement, M>>): ReactiveTreeNode<El<HTMLElement, M>>;
7
- export declare function Element<M = unknown>(description: ReactiveTreeNodeDesc<El<HTMLElement, M>>): ReactiveTreeNode<El<HTMLElement, M>>;
8
- export declare function Element<M = unknown>(key?: string, mode?: Mode, body?: Script<El<HTMLElement, M>>, bodyTask?: ScriptAsync<El<HTMLElement, M>>, preparation?: Script<El<HTMLElement, M>>, preparationTask?: ScriptAsync<El<HTMLElement, M>>, mounting?: Script<El<HTMLElement, M>>, finalization?: Script<El<HTMLElement, M>>, signalArgs?: unknown, unmounted?: boolean, basis?: ReactiveTreeNodeDesc<El<HTMLElement, M>>): ReactiveTreeNode<El<HTMLElement, M>>;
4
+ export declare function Element<M = unknown, D = unknown>(setup: Script<El<HTMLElement, M, D>>): ReactiveTreeNode<El<HTMLElement, M, D>>;
5
+ export declare function Element<M = unknown, D = unknown>(key: string, setup: Script<El<HTMLElement, M, D>>): ReactiveTreeNode<El<HTMLElement, M, D>>;
6
+ export declare function Element<M = unknown, D = unknown>(mode: Mode, setup: Script<El<HTMLElement, M, D>>): ReactiveTreeNode<El<HTMLElement, M, D>>;
7
+ export declare function Element<M = unknown, D = unknown>(description: ReactiveTreeNodeDesc<El<HTMLElement, M, D>>): ReactiveTreeNode<El<HTMLElement, M, D>>;
8
+ export declare function Element<M = unknown, D = unknown>(key?: string, mode?: Mode, setup?: Script<El<HTMLElement, M, D>>, setupTask?: ScriptAsync<El<HTMLElement, M, D>>, creation?: Script<El<HTMLElement, M, D>>, creationTask?: ScriptAsync<El<HTMLElement, M, D>>, mounting?: Script<El<HTMLElement, M, D>>, destruction?: Script<El<HTMLElement, M, D>>, signalArgs?: unknown, unmounted?: boolean, basis?: ReactiveTreeNodeDesc<El<HTMLElement, M, D>>): ReactiveTreeNode<El<HTMLElement, M, D>>;
9
9
  export declare class ElementDriver<T extends HTMLElement> extends HtmlDriver<T> {
10
10
  static readonly id: string;
11
11
  static readonly glob: ElementDriver<HTMLElement>;
12
12
  constructor();
13
- rebuildBody(node: ReactiveTreeNode<El<T>>): void | Promise<void>;
13
+ runSetup(node: ReactiveTreeNode<El<T>>): void | Promise<void>;
14
14
  describeChild(ownerNode: ReactiveTreeNode<El<T, any>>, childDriver: ReactiveTreeNodeDriver<any>, childDescription?: ReactiveTreeNodeDesc<any> | undefined, childBasis?: ReactiveTreeNodeDesc<any> | undefined): LinkedItem<ReactiveTreeNode> | undefined;
15
15
  }