@arcanejs/toolkit 0.5.1 → 1.0.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 (75) hide show
  1. package/dist/backend/components/base.d.mts +25 -22
  2. package/dist/backend/components/base.d.ts +25 -22
  3. package/dist/backend/components/base.js +2 -2
  4. package/dist/backend/components/base.mjs +1 -1
  5. package/dist/backend/components/button.d.mts +5 -3
  6. package/dist/backend/components/button.d.ts +5 -3
  7. package/dist/backend/components/button.js +3 -3
  8. package/dist/backend/components/button.mjs +2 -2
  9. package/dist/backend/components/group.d.mts +6 -4
  10. package/dist/backend/components/group.d.ts +6 -4
  11. package/dist/backend/components/group.js +3 -3
  12. package/dist/backend/components/group.mjs +2 -2
  13. package/dist/backend/components/label.d.mts +4 -3
  14. package/dist/backend/components/label.d.ts +4 -3
  15. package/dist/backend/components/label.js +3 -3
  16. package/dist/backend/components/label.mjs +2 -2
  17. package/dist/backend/components/rect.d.mts +4 -3
  18. package/dist/backend/components/rect.d.ts +4 -3
  19. package/dist/backend/components/rect.js +3 -3
  20. package/dist/backend/components/rect.mjs +2 -2
  21. package/dist/backend/components/slider-button.d.mts +6 -4
  22. package/dist/backend/components/slider-button.d.ts +6 -4
  23. package/dist/backend/components/slider-button.js +3 -3
  24. package/dist/backend/components/slider-button.mjs +2 -2
  25. package/dist/backend/components/switch.d.mts +6 -4
  26. package/dist/backend/components/switch.d.ts +6 -4
  27. package/dist/backend/components/switch.js +3 -3
  28. package/dist/backend/components/switch.mjs +2 -2
  29. package/dist/backend/components/tabs.d.mts +9 -8
  30. package/dist/backend/components/tabs.d.ts +9 -8
  31. package/dist/backend/components/tabs.js +3 -3
  32. package/dist/backend/components/tabs.mjs +2 -2
  33. package/dist/backend/components/text-input.d.mts +6 -4
  34. package/dist/backend/components/text-input.d.ts +6 -4
  35. package/dist/backend/components/text-input.js +3 -3
  36. package/dist/backend/components/text-input.mjs +2 -2
  37. package/dist/backend/components/timeline.d.mts +4 -3
  38. package/dist/backend/components/timeline.d.ts +4 -3
  39. package/dist/backend/components/timeline.js +3 -3
  40. package/dist/backend/components/timeline.mjs +2 -2
  41. package/dist/backend/util/index.d.mts +1 -1
  42. package/dist/backend/util/index.d.ts +1 -1
  43. package/dist/{chunk-Q5TEM6MM.js → chunk-25LALCAN.js} +17 -7
  44. package/dist/{chunk-IQ4SDDYP.js → chunk-5JPYL5IU.js} +3 -2
  45. package/dist/{chunk-KBPQZJKE.mjs → chunk-5TGGF5UJ.mjs} +17 -5
  46. package/dist/{chunk-PW7QVLLF.mjs → chunk-7SZA6JUN.mjs} +34 -3
  47. package/dist/{chunk-CFO5PSSK.js → chunk-ADH7RZG5.js} +54 -23
  48. package/dist/{chunk-C2TVGO43.js → chunk-ARRRZPUK.js} +5 -3
  49. package/dist/{chunk-ESMRIWOM.mjs → chunk-BDBRQJSI.mjs} +2 -1
  50. package/dist/{chunk-G5QXW2L3.mjs → chunk-EFNFSHV3.mjs} +16 -4
  51. package/dist/chunk-HNFNG5MD.js +55 -0
  52. package/dist/{chunk-SN2XKRYX.mjs → chunk-IBIEYR3L.mjs} +14 -4
  53. package/dist/{chunk-KR6LSBBX.mjs → chunk-ISHGZXPO.mjs} +14 -3
  54. package/dist/{chunk-DBSYI5Z4.mjs → chunk-LX5IL6WX.mjs} +2 -1
  55. package/dist/{chunk-JOW3XRQI.mjs → chunk-OAPIVG6M.mjs} +2 -1
  56. package/dist/{chunk-H734NV65.mjs → chunk-PXYXUWXE.mjs} +3 -1
  57. package/dist/{chunk-Q3NG5UUN.mjs → chunk-SBHNIFAS.mjs} +14 -4
  58. package/dist/{chunk-53DEDXHG.js → chunk-SIXWXDZW.js} +17 -7
  59. package/dist/{chunk-FUINWM5H.js → chunk-T4TMVBFM.js} +3 -2
  60. package/dist/{chunk-4HHKW7VA.js → chunk-TOPIQUBZ.js} +21 -9
  61. package/dist/{chunk-FLRGYURV.js → chunk-V5T44HCM.js} +3 -2
  62. package/dist/{chunk-4X3QY5EP.js → chunk-ZLJECS4H.js} +19 -7
  63. package/dist/{frontend.js → frontend/entrypoint.js} +20292 -20253
  64. package/dist/frontend/entrypoint.js.map +7 -0
  65. package/dist/frontend/index.d.mts +8 -0
  66. package/dist/frontend/index.d.ts +8 -0
  67. package/dist/frontend/index.js +143 -0
  68. package/dist/frontend/index.mjs +143 -0
  69. package/dist/index.d.mts +16 -3
  70. package/dist/index.d.ts +16 -3
  71. package/dist/index.js +33 -22
  72. package/dist/index.mjs +32 -21
  73. package/package.json +55 -29
  74. package/dist/chunk-DONU33U4.js +0 -44
  75. package/dist/frontend.js.map +0 -7
@@ -1,14 +1,8 @@
1
- import * as proto from '@arcanejs/protocol';
1
+ import { BaseComponentProto, AnyClientComponentMessage } from '@arcanejs/protocol';
2
2
  import { I as IDMap } from '../../id-map-DxQ3_gyA.mjs';
3
3
  import { Logger } from '@arcanejs/protocol/logging';
4
4
 
5
- interface Component {
6
- getProtoInfo(idMap: IDMap): proto.Component;
7
- handleMessage(message: proto.ClientComponentMessage): void;
8
- routeMessage(idMap: IDMap, message: proto.ClientComponentMessage): void;
9
- setParent(parent: Parent | null): void;
10
- }
11
- declare abstract class Base<Props> implements Component {
5
+ declare abstract class Base<Namespace extends string, Proto extends BaseComponentProto<Namespace>, Props> {
12
6
  /** @hidden */
13
7
  private parent;
14
8
  /** @hidden */
@@ -18,8 +12,12 @@ declare abstract class Base<Props> implements Component {
18
12
  /** @hidden */
19
13
  private _onPropsUpdated;
20
14
  constructor(defaultProps: Props, props?: Partial<Props>, options?: {
21
- onPropsUpdated?: () => void;
15
+ onPropsUpdated?: (oldProps: Props) => void;
22
16
  });
17
+ /**
18
+ * Call if
19
+ */
20
+ triggerInitialPropsUpdate: () => void;
23
21
  log: () => Logger | null;
24
22
  get props(): Props;
25
23
  set props(props: Partial<Props>);
@@ -30,37 +28,38 @@ declare abstract class Base<Props> implements Component {
30
28
  /** @hidden */
31
29
  updateTree(): void;
32
30
  /** @hidden */
33
- abstract getProtoInfo(idMap: IDMap): proto.Component;
31
+ abstract getProtoInfo(idMap: IDMap): Proto;
34
32
  /** @hidden */
35
- handleMessage(_message: proto.ClientComponentMessage): void;
36
- routeMessage(_idMap: IDMap, _message: proto.ClientComponentMessage): void;
33
+ handleMessage(_message: AnyClientComponentMessage): void;
34
+ routeMessage(_idMap: IDMap, _message: AnyClientComponentMessage): void;
37
35
  }
36
+ type AnyComponent = Base<string, BaseComponentProto<string>, any>;
38
37
  /** @hidden */
39
38
  interface Parent {
40
39
  updateTree(): void;
41
- removeChild(component: Component): void;
40
+ removeChild(component: AnyComponent): void;
42
41
  log(): Logger | null;
43
42
  }
44
- declare abstract class BaseParent<T> extends Base<T> implements Parent {
43
+ declare abstract class BaseParent<Namespace extends string, Proto extends BaseComponentProto<Namespace>, T> extends Base<Namespace, Proto, T> implements Parent {
45
44
  /** @hidden */
46
45
  private children;
47
- abstract validateChildren(children: Component[]): void;
48
- appendChildren: <CS extends Component[]>(...children: CS) => CS;
49
- appendChild: <C extends Component>(child: C) => C;
50
- removeChild: (component: Component) => void;
46
+ abstract validateChildren(children: AnyComponent[]): void;
47
+ appendChildren: <CS extends AnyComponent[]>(...children: CS) => CS;
48
+ appendChild: <C extends AnyComponent>(child: C) => C;
49
+ removeChild: (component: AnyComponent) => void;
51
50
  removeAllChildren: () => void;
52
51
  /**
53
52
  * Return all children components that messages need to be routed to
54
53
  */
55
- getChildren: () => readonly Component[];
54
+ getChildren: () => readonly AnyComponent[];
56
55
  /**
57
56
  * TODO: we can do this better, right now it broadcasts the message to all
58
57
  * components of the tree
59
58
  *
60
59
  * @hidden
61
60
  */
62
- routeMessage(idMap: IDMap, message: proto.ClientComponentMessage): void;
63
- insertBefore(child: Component, beforeChild: Component): void;
61
+ routeMessage(idMap: IDMap, message: AnyClientComponentMessage): void;
62
+ insertBefore(child: AnyComponent, beforeChild: AnyComponent): void;
64
63
  }
65
64
  interface Listenable<Map extends Record<string, (...args: any[]) => void>> {
66
65
  addListener<T extends keyof Map>(type: T, listener: Map[T]): void;
@@ -71,6 +70,10 @@ declare class EventEmitter<Map extends Record<string, (...args: any[]) => void>>
71
70
  addListener: <T extends keyof Map>(type: T, listener: Map[T]) => void;
72
71
  removeListener: <T extends keyof Map>(type: T, listener: Map[T]) => void;
73
72
  emit: <T extends keyof Map>(type: T, ...args: Parameters<Map[T]>) => Promise<unknown>;
73
+ /**
74
+ * Process prop changes to update listeners
75
+ */
76
+ processPropChanges: <Mapping extends Record<string, keyof Map>, Props extends { [key in keyof Mapping]?: Map[Mapping[key]] | null | undefined; }>(mapping: Mapping, oldProps: Props, newProps: Props) => void;
74
77
  }
75
78
 
76
- export { Base, BaseParent, type Component, EventEmitter, type Listenable, type Parent };
79
+ export { type AnyComponent, Base, BaseParent, EventEmitter, type Listenable, type Parent };
@@ -1,14 +1,8 @@
1
- import * as proto from '@arcanejs/protocol';
1
+ import { BaseComponentProto, AnyClientComponentMessage } from '@arcanejs/protocol';
2
2
  import { I as IDMap } from '../../id-map-DxQ3_gyA.js';
3
3
  import { Logger } from '@arcanejs/protocol/logging';
4
4
 
5
- interface Component {
6
- getProtoInfo(idMap: IDMap): proto.Component;
7
- handleMessage(message: proto.ClientComponentMessage): void;
8
- routeMessage(idMap: IDMap, message: proto.ClientComponentMessage): void;
9
- setParent(parent: Parent | null): void;
10
- }
11
- declare abstract class Base<Props> implements Component {
5
+ declare abstract class Base<Namespace extends string, Proto extends BaseComponentProto<Namespace>, Props> {
12
6
  /** @hidden */
13
7
  private parent;
14
8
  /** @hidden */
@@ -18,8 +12,12 @@ declare abstract class Base<Props> implements Component {
18
12
  /** @hidden */
19
13
  private _onPropsUpdated;
20
14
  constructor(defaultProps: Props, props?: Partial<Props>, options?: {
21
- onPropsUpdated?: () => void;
15
+ onPropsUpdated?: (oldProps: Props) => void;
22
16
  });
17
+ /**
18
+ * Call if
19
+ */
20
+ triggerInitialPropsUpdate: () => void;
23
21
  log: () => Logger | null;
24
22
  get props(): Props;
25
23
  set props(props: Partial<Props>);
@@ -30,37 +28,38 @@ declare abstract class Base<Props> implements Component {
30
28
  /** @hidden */
31
29
  updateTree(): void;
32
30
  /** @hidden */
33
- abstract getProtoInfo(idMap: IDMap): proto.Component;
31
+ abstract getProtoInfo(idMap: IDMap): Proto;
34
32
  /** @hidden */
35
- handleMessage(_message: proto.ClientComponentMessage): void;
36
- routeMessage(_idMap: IDMap, _message: proto.ClientComponentMessage): void;
33
+ handleMessage(_message: AnyClientComponentMessage): void;
34
+ routeMessage(_idMap: IDMap, _message: AnyClientComponentMessage): void;
37
35
  }
36
+ type AnyComponent = Base<string, BaseComponentProto<string>, any>;
38
37
  /** @hidden */
39
38
  interface Parent {
40
39
  updateTree(): void;
41
- removeChild(component: Component): void;
40
+ removeChild(component: AnyComponent): void;
42
41
  log(): Logger | null;
43
42
  }
44
- declare abstract class BaseParent<T> extends Base<T> implements Parent {
43
+ declare abstract class BaseParent<Namespace extends string, Proto extends BaseComponentProto<Namespace>, T> extends Base<Namespace, Proto, T> implements Parent {
45
44
  /** @hidden */
46
45
  private children;
47
- abstract validateChildren(children: Component[]): void;
48
- appendChildren: <CS extends Component[]>(...children: CS) => CS;
49
- appendChild: <C extends Component>(child: C) => C;
50
- removeChild: (component: Component) => void;
46
+ abstract validateChildren(children: AnyComponent[]): void;
47
+ appendChildren: <CS extends AnyComponent[]>(...children: CS) => CS;
48
+ appendChild: <C extends AnyComponent>(child: C) => C;
49
+ removeChild: (component: AnyComponent) => void;
51
50
  removeAllChildren: () => void;
52
51
  /**
53
52
  * Return all children components that messages need to be routed to
54
53
  */
55
- getChildren: () => readonly Component[];
54
+ getChildren: () => readonly AnyComponent[];
56
55
  /**
57
56
  * TODO: we can do this better, right now it broadcasts the message to all
58
57
  * components of the tree
59
58
  *
60
59
  * @hidden
61
60
  */
62
- routeMessage(idMap: IDMap, message: proto.ClientComponentMessage): void;
63
- insertBefore(child: Component, beforeChild: Component): void;
61
+ routeMessage(idMap: IDMap, message: AnyClientComponentMessage): void;
62
+ insertBefore(child: AnyComponent, beforeChild: AnyComponent): void;
64
63
  }
65
64
  interface Listenable<Map extends Record<string, (...args: any[]) => void>> {
66
65
  addListener<T extends keyof Map>(type: T, listener: Map[T]): void;
@@ -71,6 +70,10 @@ declare class EventEmitter<Map extends Record<string, (...args: any[]) => void>>
71
70
  addListener: <T extends keyof Map>(type: T, listener: Map[T]) => void;
72
71
  removeListener: <T extends keyof Map>(type: T, listener: Map[T]) => void;
73
72
  emit: <T extends keyof Map>(type: T, ...args: Parameters<Map[T]>) => Promise<unknown>;
73
+ /**
74
+ * Process prop changes to update listeners
75
+ */
76
+ processPropChanges: <Mapping extends Record<string, keyof Map>, Props extends { [key in keyof Mapping]?: Map[Mapping[key]] | null | undefined; }>(mapping: Mapping, oldProps: Props, newProps: Props) => void;
74
77
  }
75
78
 
76
- export { Base, BaseParent, type Component, EventEmitter, type Listenable, type Parent };
79
+ export { type AnyComponent, Base, BaseParent, EventEmitter, type Listenable, type Parent };
@@ -2,10 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkCFO5PSSKjs = require('../../chunk-CFO5PSSK.js');
5
+ var _chunkADH7RZG5js = require('../../chunk-ADH7RZG5.js');
6
6
  require('../../chunk-3RG5ZIWI.js');
7
7
 
8
8
 
9
9
 
10
10
 
11
- exports.Base = _chunkCFO5PSSKjs.Base; exports.BaseParent = _chunkCFO5PSSKjs.BaseParent; exports.EventEmitter = _chunkCFO5PSSKjs.EventEmitter;
11
+ exports.Base = _chunkADH7RZG5js.Base; exports.BaseParent = _chunkADH7RZG5js.BaseParent; exports.EventEmitter = _chunkADH7RZG5js.EventEmitter;
@@ -2,7 +2,7 @@ import {
2
2
  Base,
3
3
  BaseParent,
4
4
  EventEmitter
5
- } from "../../chunk-PW7QVLLF.mjs";
5
+ } from "../../chunk-7SZA6JUN.mjs";
6
6
  import "../../chunk-Y6FXYEAI.mjs";
7
7
  export {
8
8
  Base,
@@ -1,6 +1,7 @@
1
- import * as proto from '@arcanejs/protocol';
1
+ import * as proto from '@arcanejs/protocol/core';
2
2
  import { I as IDMap } from '../../id-map-DxQ3_gyA.mjs';
3
3
  import { Base, Listenable } from './base.mjs';
4
+ import { AnyClientComponentMessage } from '@arcanejs/protocol';
4
5
  import '@arcanejs/protocol/logging';
5
6
 
6
7
  type Events = {
@@ -12,9 +13,10 @@ type InternalProps = {
12
13
  icon: string | null;
13
14
  mode: ButtonMode;
14
15
  error: string | null;
16
+ onClick?: Events['click'] | null;
15
17
  };
16
18
  type Props = Partial<InternalProps>;
17
- declare class Button extends Base<InternalProps> implements Listenable<Events> {
19
+ declare class Button extends Base<proto.CoreNamespace, proto.CoreComponent, InternalProps> implements Listenable<Events> {
18
20
  /** @hidden */
19
21
  private readonly events;
20
22
  constructor(props?: Props);
@@ -26,7 +28,7 @@ declare class Button extends Base<InternalProps> implements Listenable<Events> {
26
28
  /** @hidden */
27
29
  getProtoInfo: (idMap: IDMap) => proto.ButtonComponent;
28
30
  /** @hidden */
29
- handleMessage: (message: proto.ClientComponentMessage) => void;
31
+ handleMessage: (message: AnyClientComponentMessage) => void;
30
32
  }
31
33
 
32
34
  export { Button, type ButtonMode, type Events, type InternalProps, type Props };
@@ -1,6 +1,7 @@
1
- import * as proto from '@arcanejs/protocol';
1
+ import * as proto from '@arcanejs/protocol/core';
2
2
  import { I as IDMap } from '../../id-map-DxQ3_gyA.js';
3
3
  import { Base, Listenable } from './base.js';
4
+ import { AnyClientComponentMessage } from '@arcanejs/protocol';
4
5
  import '@arcanejs/protocol/logging';
5
6
 
6
7
  type Events = {
@@ -12,9 +13,10 @@ type InternalProps = {
12
13
  icon: string | null;
13
14
  mode: ButtonMode;
14
15
  error: string | null;
16
+ onClick?: Events['click'] | null;
15
17
  };
16
18
  type Props = Partial<InternalProps>;
17
- declare class Button extends Base<InternalProps> implements Listenable<Events> {
19
+ declare class Button extends Base<proto.CoreNamespace, proto.CoreComponent, InternalProps> implements Listenable<Events> {
18
20
  /** @hidden */
19
21
  private readonly events;
20
22
  constructor(props?: Props);
@@ -26,7 +28,7 @@ declare class Button extends Base<InternalProps> implements Listenable<Events> {
26
28
  /** @hidden */
27
29
  getProtoInfo: (idMap: IDMap) => proto.ButtonComponent;
28
30
  /** @hidden */
29
- handleMessage: (message: proto.ClientComponentMessage) => void;
31
+ handleMessage: (message: AnyClientComponentMessage) => void;
30
32
  }
31
33
 
32
34
  export { Button, type ButtonMode, type Events, type InternalProps, type Props };
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk4X3QY5EPjs = require('../../chunk-4X3QY5EP.js');
4
- require('../../chunk-CFO5PSSK.js');
3
+ var _chunkZLJECS4Hjs = require('../../chunk-ZLJECS4H.js');
4
+ require('../../chunk-ADH7RZG5.js');
5
5
  require('../../chunk-3RG5ZIWI.js');
6
6
 
7
7
 
8
- exports.Button = _chunk4X3QY5EPjs.Button;
8
+ exports.Button = _chunkZLJECS4Hjs.Button;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Button
3
- } from "../../chunk-G5QXW2L3.mjs";
4
- import "../../chunk-PW7QVLLF.mjs";
3
+ } from "../../chunk-EFNFSHV3.mjs";
4
+ import "../../chunk-7SZA6JUN.mjs";
5
5
  import "../../chunk-Y6FXYEAI.mjs";
6
6
  export {
7
7
  Button
@@ -1,8 +1,9 @@
1
- import * as proto from '@arcanejs/protocol';
1
+ import * as proto from '@arcanejs/protocol/core';
2
2
  import { GroupComponentStyle } from '@arcanejs/protocol/styles';
3
3
  import { I as IDMap } from '../../id-map-DxQ3_gyA.mjs';
4
4
  import { BaseParent, Listenable } from './base.mjs';
5
5
  import { Button } from './button.mjs';
6
+ import { AnyClientComponentMessage } from '@arcanejs/protocol';
6
7
  import '@arcanejs/protocol/logging';
7
8
 
8
9
  type Label = (proto.GroupComponent['labels'] & Array<unknown>)[number];
@@ -16,9 +17,10 @@ type Events = {
16
17
  type InternalProps = GroupComponentStyle & GroupOptions & {
17
18
  title: string | null;
18
19
  labels: Label[] | null;
20
+ onTitleChanged?: Events['title-changed'];
19
21
  };
20
22
  type Props = Partial<InternalProps>;
21
- declare class GroupHeader extends BaseParent<Record<never, never>> {
23
+ declare class GroupHeader extends BaseParent<proto.CoreNamespace, proto.CoreComponent, Record<never, never>> {
22
24
  validateChildren: () => void;
23
25
  /** @hidden */
24
26
  getProtoInfo: (idMap: IDMap) => proto.GroupHeaderComponent;
@@ -30,7 +32,7 @@ declare class GroupHeader extends BaseParent<Record<never, never>> {
30
32
  *
31
33
  * ![](media://images/group_screenshot.png)
32
34
  */
33
- declare class Group extends BaseParent<InternalProps> implements Listenable<Events> {
35
+ declare class Group extends BaseParent<proto.CoreNamespace, proto.GroupComponent, Props> implements Listenable<Events> {
34
36
  /** @hidden */
35
37
  private readonly events;
36
38
  constructor(props?: Props);
@@ -47,7 +49,7 @@ declare class Group extends BaseParent<InternalProps> implements Listenable<Even
47
49
  /** @hidden */
48
50
  getProtoInfo: (idMap: IDMap) => proto.GroupComponent;
49
51
  /** @hidden */
50
- handleMessage: (message: proto.ClientComponentMessage) => void;
52
+ handleMessage: (message: AnyClientComponentMessage) => void;
51
53
  }
52
54
 
53
55
  export { type Events, Group, GroupHeader, type InternalProps, type Props };
@@ -1,8 +1,9 @@
1
- import * as proto from '@arcanejs/protocol';
1
+ import * as proto from '@arcanejs/protocol/core';
2
2
  import { GroupComponentStyle } from '@arcanejs/protocol/styles';
3
3
  import { I as IDMap } from '../../id-map-DxQ3_gyA.js';
4
4
  import { BaseParent, Listenable } from './base.js';
5
5
  import { Button } from './button.js';
6
+ import { AnyClientComponentMessage } from '@arcanejs/protocol';
6
7
  import '@arcanejs/protocol/logging';
7
8
 
8
9
  type Label = (proto.GroupComponent['labels'] & Array<unknown>)[number];
@@ -16,9 +17,10 @@ type Events = {
16
17
  type InternalProps = GroupComponentStyle & GroupOptions & {
17
18
  title: string | null;
18
19
  labels: Label[] | null;
20
+ onTitleChanged?: Events['title-changed'];
19
21
  };
20
22
  type Props = Partial<InternalProps>;
21
- declare class GroupHeader extends BaseParent<Record<never, never>> {
23
+ declare class GroupHeader extends BaseParent<proto.CoreNamespace, proto.CoreComponent, Record<never, never>> {
22
24
  validateChildren: () => void;
23
25
  /** @hidden */
24
26
  getProtoInfo: (idMap: IDMap) => proto.GroupHeaderComponent;
@@ -30,7 +32,7 @@ declare class GroupHeader extends BaseParent<Record<never, never>> {
30
32
  *
31
33
  * ![](media://images/group_screenshot.png)
32
34
  */
33
- declare class Group extends BaseParent<InternalProps> implements Listenable<Events> {
35
+ declare class Group extends BaseParent<proto.CoreNamespace, proto.GroupComponent, Props> implements Listenable<Events> {
34
36
  /** @hidden */
35
37
  private readonly events;
36
38
  constructor(props?: Props);
@@ -47,7 +49,7 @@ declare class Group extends BaseParent<InternalProps> implements Listenable<Even
47
49
  /** @hidden */
48
50
  getProtoInfo: (idMap: IDMap) => proto.GroupComponent;
49
51
  /** @hidden */
50
- handleMessage: (message: proto.ClientComponentMessage) => void;
52
+ handleMessage: (message: AnyClientComponentMessage) => void;
51
53
  }
52
54
 
53
55
  export { type Events, Group, GroupHeader, type InternalProps, type Props };
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunk4HHKW7VAjs = require('../../chunk-4HHKW7VA.js');
5
- require('../../chunk-CFO5PSSK.js');
4
+ var _chunkTOPIQUBZjs = require('../../chunk-TOPIQUBZ.js');
5
+ require('../../chunk-ADH7RZG5.js');
6
6
  require('../../chunk-3RG5ZIWI.js');
7
7
 
8
8
 
9
9
 
10
- exports.Group = _chunk4HHKW7VAjs.Group; exports.GroupHeader = _chunk4HHKW7VAjs.GroupHeader;
10
+ exports.Group = _chunkTOPIQUBZjs.Group; exports.GroupHeader = _chunkTOPIQUBZjs.GroupHeader;
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  Group,
3
3
  GroupHeader
4
- } from "../../chunk-KBPQZJKE.mjs";
5
- import "../../chunk-PW7QVLLF.mjs";
4
+ } from "../../chunk-5TGGF5UJ.mjs";
5
+ import "../../chunk-7SZA6JUN.mjs";
6
6
  import "../../chunk-Y6FXYEAI.mjs";
7
7
  export {
8
8
  Group,
@@ -1,7 +1,8 @@
1
- import * as proto from '@arcanejs/protocol';
1
+ import * as proto from '@arcanejs/protocol/core';
2
2
  import { LabelComponentStyle } from '@arcanejs/protocol/styles';
3
3
  import { I as IDMap } from '../../id-map-DxQ3_gyA.mjs';
4
4
  import { Base } from './base.mjs';
5
+ import '@arcanejs/protocol';
5
6
  import '@arcanejs/protocol/logging';
6
7
 
7
8
  type InternalProps = LabelComponentStyle & {
@@ -14,10 +15,10 @@ type Props = InternalProps;
14
15
  *
15
16
  * ![](media://images/label_screenshot.png)
16
17
  */
17
- declare class Label extends Base<InternalProps> {
18
+ declare class Label extends Base<proto.CoreNamespace, proto.LabelComponent, InternalProps> {
18
19
  constructor(props?: Props);
19
20
  /** @hidden */
20
- getProtoInfo(idMap: IDMap): proto.Component;
21
+ getProtoInfo(idMap: IDMap): proto.LabelComponent;
21
22
  setText(text: string): Label;
22
23
  }
23
24
 
@@ -1,7 +1,8 @@
1
- import * as proto from '@arcanejs/protocol';
1
+ import * as proto from '@arcanejs/protocol/core';
2
2
  import { LabelComponentStyle } from '@arcanejs/protocol/styles';
3
3
  import { I as IDMap } from '../../id-map-DxQ3_gyA.js';
4
4
  import { Base } from './base.js';
5
+ import '@arcanejs/protocol';
5
6
  import '@arcanejs/protocol/logging';
6
7
 
7
8
  type InternalProps = LabelComponentStyle & {
@@ -14,10 +15,10 @@ type Props = InternalProps;
14
15
  *
15
16
  * ![](media://images/label_screenshot.png)
16
17
  */
17
- declare class Label extends Base<InternalProps> {
18
+ declare class Label extends Base<proto.CoreNamespace, proto.LabelComponent, InternalProps> {
18
19
  constructor(props?: Props);
19
20
  /** @hidden */
20
- getProtoInfo(idMap: IDMap): proto.Component;
21
+ getProtoInfo(idMap: IDMap): proto.LabelComponent;
21
22
  setText(text: string): Label;
22
23
  }
23
24
 
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkFLRGYURVjs = require('../../chunk-FLRGYURV.js');
4
- require('../../chunk-CFO5PSSK.js');
3
+ var _chunkV5T44HCMjs = require('../../chunk-V5T44HCM.js');
4
+ require('../../chunk-ADH7RZG5.js');
5
5
  require('../../chunk-3RG5ZIWI.js');
6
6
 
7
7
 
8
- exports.Label = _chunkFLRGYURVjs.Label;
8
+ exports.Label = _chunkV5T44HCMjs.Label;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Label
3
- } from "../../chunk-JOW3XRQI.mjs";
4
- import "../../chunk-PW7QVLLF.mjs";
3
+ } from "../../chunk-OAPIVG6M.mjs";
4
+ import "../../chunk-7SZA6JUN.mjs";
5
5
  import "../../chunk-Y6FXYEAI.mjs";
6
6
  export {
7
7
  Label
@@ -1,6 +1,7 @@
1
- import * as proto from '@arcanejs/protocol';
1
+ import * as proto from '@arcanejs/protocol/core';
2
2
  import { I as IDMap } from '../../id-map-DxQ3_gyA.mjs';
3
3
  import { Base } from './base.mjs';
4
+ import '@arcanejs/protocol';
4
5
  import '@arcanejs/protocol/logging';
5
6
 
6
7
  type InternalProps = Pick<proto.RectComponent, 'color' | 'grow'>;
@@ -10,10 +11,10 @@ type Props = Partial<InternalProps>;
10
11
  * certain states, or represent the color of certain lights or fixtures,
11
12
  * or perhaps colors used in a chase.
12
13
  */
13
- declare class Rect extends Base<InternalProps> {
14
+ declare class Rect extends Base<proto.CoreNamespace, proto.CoreComponent, InternalProps> {
14
15
  constructor(props?: Props);
15
16
  /** @hidden */
16
- getProtoInfo(idMap: IDMap): proto.Component;
17
+ getProtoInfo(idMap: IDMap): proto.CoreComponent;
17
18
  setColor(color: string): Rect;
18
19
  }
19
20
 
@@ -1,6 +1,7 @@
1
- import * as proto from '@arcanejs/protocol';
1
+ import * as proto from '@arcanejs/protocol/core';
2
2
  import { I as IDMap } from '../../id-map-DxQ3_gyA.js';
3
3
  import { Base } from './base.js';
4
+ import '@arcanejs/protocol';
4
5
  import '@arcanejs/protocol/logging';
5
6
 
6
7
  type InternalProps = Pick<proto.RectComponent, 'color' | 'grow'>;
@@ -10,10 +11,10 @@ type Props = Partial<InternalProps>;
10
11
  * certain states, or represent the color of certain lights or fixtures,
11
12
  * or perhaps colors used in a chase.
12
13
  */
13
- declare class Rect extends Base<InternalProps> {
14
+ declare class Rect extends Base<proto.CoreNamespace, proto.CoreComponent, InternalProps> {
14
15
  constructor(props?: Props);
15
16
  /** @hidden */
16
- getProtoInfo(idMap: IDMap): proto.Component;
17
+ getProtoInfo(idMap: IDMap): proto.CoreComponent;
17
18
  setColor(color: string): Rect;
18
19
  }
19
20
 
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkIQ4SDDYPjs = require('../../chunk-IQ4SDDYP.js');
4
- require('../../chunk-CFO5PSSK.js');
3
+ var _chunk5JPYL5IUjs = require('../../chunk-5JPYL5IU.js');
4
+ require('../../chunk-ADH7RZG5.js');
5
5
  require('../../chunk-3RG5ZIWI.js');
6
6
 
7
7
 
8
- exports.Rect = _chunkIQ4SDDYPjs.Rect;
8
+ exports.Rect = _chunk5JPYL5IUjs.Rect;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Rect
3
- } from "../../chunk-ESMRIWOM.mjs";
4
- import "../../chunk-PW7QVLLF.mjs";
3
+ } from "../../chunk-BDBRQJSI.mjs";
4
+ import "../../chunk-7SZA6JUN.mjs";
5
5
  import "../../chunk-Y6FXYEAI.mjs";
6
6
  export {
7
7
  Rect
@@ -1,6 +1,7 @@
1
- import * as proto from '@arcanejs/protocol';
1
+ import * as proto from '@arcanejs/protocol/core';
2
2
  import { I as IDMap } from '../../id-map-DxQ3_gyA.mjs';
3
3
  import { Base, Listenable } from './base.mjs';
4
+ import { AnyClientComponentMessage } from '@arcanejs/protocol';
4
5
  import '@arcanejs/protocol/logging';
5
6
 
6
7
  type Events = {
@@ -9,10 +10,11 @@ type Events = {
9
10
  type InternalProps = Pick<proto.SliderButtonComponent, 'min' | 'max' | 'step' | 'gradient' | 'grow'> & {
10
11
  value?: number;
11
12
  defaultValue?: number;
13
+ onChange?: Events['change'];
12
14
  };
13
15
  type RequiredProps = 'value';
14
16
  type Props = Pick<InternalProps, RequiredProps> & Partial<Omit<InternalProps, RequiredProps>>;
15
- declare class SliderButton extends Base<InternalProps> implements Listenable<Events> {
17
+ declare class SliderButton extends Base<proto.CoreNamespace, proto.CoreComponent, InternalProps> implements Listenable<Events> {
16
18
  /** @hidden */
17
19
  private readonly events;
18
20
  /**
@@ -24,9 +26,9 @@ declare class SliderButton extends Base<InternalProps> implements Listenable<Eve
24
26
  addListener: <T extends "change">(type: T, listener: Events[T]) => void;
25
27
  removeListener: <T extends "change">(type: T, listener: Events[T]) => void;
26
28
  /** @hidden */
27
- getProtoInfo(idMap: IDMap): proto.Component;
29
+ getProtoInfo(idMap: IDMap): proto.CoreComponent;
28
30
  /** @hidden */
29
- handleMessage(message: proto.ClientComponentMessage): void;
31
+ handleMessage(message: AnyClientComponentMessage): void;
30
32
  setValue(value: number): void;
31
33
  private sanitizeNumber;
32
34
  private onPropsUpdated;
@@ -1,6 +1,7 @@
1
- import * as proto from '@arcanejs/protocol';
1
+ import * as proto from '@arcanejs/protocol/core';
2
2
  import { I as IDMap } from '../../id-map-DxQ3_gyA.js';
3
3
  import { Base, Listenable } from './base.js';
4
+ import { AnyClientComponentMessage } from '@arcanejs/protocol';
4
5
  import '@arcanejs/protocol/logging';
5
6
 
6
7
  type Events = {
@@ -9,10 +10,11 @@ type Events = {
9
10
  type InternalProps = Pick<proto.SliderButtonComponent, 'min' | 'max' | 'step' | 'gradient' | 'grow'> & {
10
11
  value?: number;
11
12
  defaultValue?: number;
13
+ onChange?: Events['change'];
12
14
  };
13
15
  type RequiredProps = 'value';
14
16
  type Props = Pick<InternalProps, RequiredProps> & Partial<Omit<InternalProps, RequiredProps>>;
15
- declare class SliderButton extends Base<InternalProps> implements Listenable<Events> {
17
+ declare class SliderButton extends Base<proto.CoreNamespace, proto.CoreComponent, InternalProps> implements Listenable<Events> {
16
18
  /** @hidden */
17
19
  private readonly events;
18
20
  /**
@@ -24,9 +26,9 @@ declare class SliderButton extends Base<InternalProps> implements Listenable<Eve
24
26
  addListener: <T extends "change">(type: T, listener: Events[T]) => void;
25
27
  removeListener: <T extends "change">(type: T, listener: Events[T]) => void;
26
28
  /** @hidden */
27
- getProtoInfo(idMap: IDMap): proto.Component;
29
+ getProtoInfo(idMap: IDMap): proto.CoreComponent;
28
30
  /** @hidden */
29
- handleMessage(message: proto.ClientComponentMessage): void;
31
+ handleMessage(message: AnyClientComponentMessage): void;
30
32
  setValue(value: number): void;
31
33
  private sanitizeNumber;
32
34
  private onPropsUpdated;
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk53DEDXHGjs = require('../../chunk-53DEDXHG.js');
4
- require('../../chunk-CFO5PSSK.js');
3
+ var _chunkSIXWXDZWjs = require('../../chunk-SIXWXDZW.js');
4
+ require('../../chunk-ADH7RZG5.js');
5
5
  require('../../chunk-3RG5ZIWI.js');
6
6
 
7
7
 
8
- exports.SliderButton = _chunk53DEDXHGjs.SliderButton;
8
+ exports.SliderButton = _chunkSIXWXDZWjs.SliderButton;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SliderButton
3
- } from "../../chunk-SN2XKRYX.mjs";
4
- import "../../chunk-PW7QVLLF.mjs";
3
+ } from "../../chunk-IBIEYR3L.mjs";
4
+ import "../../chunk-7SZA6JUN.mjs";
5
5
  import "../../chunk-Y6FXYEAI.mjs";
6
6
  export {
7
7
  SliderButton