verstak 0.96.26031 → 0.96.26040

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 (54) hide show
  1. package/build/dist/source/components/Button.v.d.ts +6 -2
  2. package/build/dist/source/components/Button.v.js +8 -7
  3. package/build/dist/source/components/Icon.v.d.ts +6 -2
  4. package/build/dist/source/components/Icon.v.js +5 -4
  5. package/build/dist/source/components/Image.v.d.ts +6 -2
  6. package/build/dist/source/components/Image.v.js +6 -5
  7. package/build/dist/source/components/Input.v.d.ts +6 -2
  8. package/build/dist/source/components/Input.v.js +12 -11
  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 +7 -6
  13. package/build/dist/source/components/Toggle.v.d.ts +6 -2
  14. package/build/dist/source/components/Toggle.v.js +8 -7
  15. package/build/dist/source/core/El.d.ts +4 -3
  16. package/build/dist/source/core/ElDriver.d.ts +8 -21
  17. package/build/dist/source/core/ElDriver.js +4 -15
  18. package/build/dist/source/core/HtmlApiExt.d.ts +1 -1
  19. package/build/dist/source/core/HtmlApiExt.js +1 -1
  20. package/build/dist/source/core/SplitViewMath.js +3 -2
  21. package/build/dist/source/core/WebDriver.d.ts +11 -11
  22. package/build/dist/source/core/WebDriver.js +11 -11
  23. package/build/dist/source/core/api.d.ts +1 -1
  24. package/build/dist/source/core/api.js +1 -1
  25. package/build/dist/source/core/elements/ApplicationWindow.d.ts +13 -0
  26. package/build/dist/source/core/elements/ApplicationWindow.js +20 -0
  27. package/build/dist/source/core/elements/Cursor.d.ts +13 -0
  28. package/build/dist/source/core/elements/Cursor.js +19 -0
  29. package/build/dist/source/core/elements/Element.d.ts +15 -0
  30. package/build/dist/source/core/elements/Element.js +136 -0
  31. package/build/dist/source/core/elements/Fragment.d.ts +13 -0
  32. package/build/dist/source/core/elements/Fragment.js +16 -0
  33. package/build/dist/source/core/elements/Group.d.ts +13 -0
  34. package/build/dist/source/core/elements/Group.js +13 -0
  35. package/build/dist/source/core/elements/Partition.d.ts +17 -0
  36. package/build/dist/source/core/elements/Partition.js +64 -0
  37. package/build/dist/source/core/elements/Splitter.d.ts +15 -0
  38. package/build/dist/source/core/elements/Splitter.js +71 -0
  39. package/build/dist/source/core/elements/Table.d.ts +13 -0
  40. package/build/dist/source/core/elements/Table.js +13 -0
  41. package/build/dist/source/core/elements/api.d.ts +16 -0
  42. package/build/dist/source/core/elements/api.js +16 -0
  43. package/build/dist/source/core/elements/v5k.d.ts +1 -0
  44. package/build/dist/source/core/elements/v5k.js +274 -0
  45. package/build/dist/source/core/sensors/Handlers.js +6 -6
  46. package/build/dist/source/html/DraggableArea.view.d.ts +3 -3
  47. package/build/dist/source/html/DraggableArea.view.js +2 -2
  48. package/build/dist/source/html/HtmlElements.d.ts +571 -115
  49. package/build/dist/source/html/HtmlElements.js +343 -115
  50. package/build/dist/source/svg/SvgElements.d.ts +296 -60
  51. package/build/dist/source/svg/SvgElements.js +178 -60
  52. package/package.json +9 -9
  53. package/build/dist/source/core/Elements.d.ts +0 -44
  54. package/build/dist/source/core/Elements.js +0 -552
@@ -1,8 +1,12 @@
1
- import { ReactiveTreeNode, ReactiveTreeNodeDecl } 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(declaration?: ReactiveTreeNodeDecl<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(declaration) {
7
- return (Element(setBasis(declaration, {
8
- preparation() {
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);
8
+ return (Element(setBasis(description, {
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(declaration) {
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 { ReactiveTreeNodeDecl } from "reactronic";
1
+ import { ReactiveTreeNode, ReactiveTreeNodeDesc, Script, Mode, ScriptAsync } from "reactronic";
2
2
  import { El } from "verstak";
3
- export declare function Icon(name: string, declaration?: ReactiveTreeNodeDecl<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, declaration) {
5
- return (Element(setBasis(declaration, {
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);
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 { ReactiveTreeNodeDecl } 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(declaration?: ReactiveTreeNodeDecl<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(declaration) {
5
- return (Element(setBasis(declaration, {
6
- preparation() {
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);
6
+ return (Element(setBasis(description, {
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 { ReactiveTreeNodeDecl } 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(declaration?: ReactiveTreeNodeDecl<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(declaration) {
7
- return (Element(setBasis(declaration, {
8
- preparation() {
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);
8
+ return (Element(setBasis(description, {
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 { ReactiveTreeNodeDecl } 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(declaration?: ReactiveTreeNodeDecl<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(declaration) {
5
- return (Element(setBasis(declaration, {
6
- preparation() {
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);
6
+ return (Element(setBasis(description, {
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, ReactiveTreeNodeDecl } 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(declaration?: ReactiveTreeNodeDecl<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(declaration) {
7
- return (Element(setBasis(declaration, {
8
- preparation() {
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);
8
+ return (Element(setBasis(description, {
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(declaration) {
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(declaration) {
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>;
@@ -144,21 +145,7 @@ declare enum ElLayoutInfoFlags {
144
145
  childrenRelayoutIsNeeded = 8
145
146
  }
146
147
  export declare const InitialElLayoutInfo: ElLayoutInfo;
147
- export declare class CursorCommand {
148
- absolute?: string;
149
- columnShift?: number;
150
- rowShift?: number;
151
- }
152
- export declare class CursorCommandDriver extends ElDriver<Element, unknown> {
153
- constructor();
154
- }
155
148
  export declare const Constants: {
156
- element: string;
157
- partition: string;
158
- wrapper: string;
159
- splitter: string;
160
- group: string;
161
- layouts: string[];
162
149
  keyAttrName: string;
163
150
  kindAttrName: string;
164
151
  ownReactiveTreeNodeKey: symbol;
@@ -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;
@@ -72,7 +73,7 @@ export class ElImpl {
72
73
  const prevEl = (_a = node.prev) === null || _a === void 0 ? void 0 : _a.element;
73
74
  const prevElLayoutInfo = (_b = prevEl === null || prevEl === void 0 ? void 0 : prevEl.layoutInfo) !== null && _b !== void 0 ? _b : InitialElLayoutInfo;
74
75
  const layoutInfo = this.layoutInfo = owner.children.isStrictOrder ? new ElLayoutInfo(prevElLayoutInfo) : undefined;
75
- const isCursorElement = driver instanceof CursorCommandDriver;
76
+ const isCursorElement = this.kind === ElKind.cursor;
76
77
  const coords = getElCoordsAndAdjustLayoutInfo(!isCursorElement, value, ownerEl.maxColumnCount, ownerEl.maxRowCount, prevElLayoutInfo, layoutInfo);
77
78
  if (!equalElCoords(coords, this._coords)) {
78
79
  if (this.native !== undefined)
@@ -352,6 +353,7 @@ export class ElImpl {
352
353
  el.classList.add(StylingClassNameByAlignmentVerticalRowWise[value]);
353
354
  }
354
355
  static applySelfAlignmentHorizontal(element, existing, value) {
356
+ var _a;
355
357
  const e = element.native;
356
358
  if (existing !== undefined) {
357
359
  e.classList.remove(StylingClassNameBySelfAlignmentHorizontal[existing]);
@@ -360,7 +362,7 @@ export class ElImpl {
360
362
  }
361
363
  if (value !== undefined) {
362
364
  e.classList.add(StylingClassNameBySelfAlignmentHorizontal[value]);
363
- const grow = element.selfStretchingStrengthHorizontal;
365
+ const grow = (_a = element.selfStretchingStrengthHorizontal) !== null && _a !== void 0 ? _a : 1;
364
366
  if ((value === H.stretch || value === H.stretchAndFix) && grow !== undefined && grow !== 1)
365
367
  element.style.flexGrow = `${grow}`;
366
368
  else
@@ -669,20 +671,7 @@ function absolutizePosition(pos, cursor, max) {
669
671
  pos = Math.min(pos, max);
670
672
  return pos;
671
673
  }
672
- export class CursorCommand {
673
- }
674
- export class CursorCommandDriver extends ElDriver {
675
- constructor() {
676
- super("cursor", false, el => el.kind = ElKind.cursor);
677
- }
678
- }
679
674
  export const Constants = {
680
- element: "el",
681
- partition: "part",
682
- wrapper: "wrapper",
683
- splitter: "splitter",
684
- group: "group",
685
- layouts: ["element", "table", "group", "", "", ""],
686
675
  keyAttrName: "key",
687
676
  kindAttrName: "kind",
688
677
  ownReactiveTreeNodeKey: Symbol("own-reactive-tree-node"),
@@ -1,5 +1,5 @@
1
1
  import { DataForSensor } from "../core/sensors/DataForSensor.js";
2
- import { HtmlSensors } from "../core/sensors/HtmlSensors.js";
2
+ import { HtmlSensors } from "../core/sensors/api.js";
3
3
  declare global {
4
4
  interface Element {
5
5
  sensors: HtmlSensors;
@@ -1,5 +1,5 @@
1
1
  import { SymDataForSensor, SymHtmlSensors, SymResizeObserver } from "../core/sensors/DataForSensor.js";
2
- import { HtmlSensors } from "../core/sensors/HtmlSensors.js";
2
+ import { HtmlSensors } from "../core/sensors/api.js";
3
3
  const ElementType = Element !== null && Element !== void 0 ? Element : global.Element;
4
4
  if (ElementType !== undefined) {
5
5
  Object.defineProperty(ElementType.prototype, "sensors", {
@@ -1,6 +1,7 @@
1
1
  import { Direction } from "./El.js";
2
2
  import { clamp } from "./ElUtils.js";
3
- import { Drivers, isSplitViewPartition } from "./Elements.js";
3
+ import { isSplitViewPartition } from "./elements/Splitter.js";
4
+ import { SplitterDriver } from "./elements/Splitter.js";
4
5
  const DEBUG = false;
5
6
  const eps = 0.0001;
6
7
  export function equal(a, b) {
@@ -133,7 +134,7 @@ export function layout(splitViewNode) {
133
134
  }
134
135
  }
135
136
  }
136
- else if (child.driver === Drivers.splitter) {
137
+ else if (child.driver instanceof SplitterDriver) {
137
138
  const el = child.element;
138
139
  if (el.native !== undefined) {
139
140
  el.style.display = isSplitterEnabled ? "block" : "none";
@@ -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;
@@ -17,12 +17,12 @@ export declare class WebDriver<T extends Element, M = unknown> extends ElDriver<
17
17
  }
18
18
  export declare class StaticDriver<T extends HTMLElement> extends WebDriver<T> {
19
19
  readonly native: T;
20
- constructor(native: T, name: string, isPartition: boolean, initialize?: Handler<El<T>>);
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
  }