element-vir 26.12.0 → 26.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/declarative-element/custom-tag-name.js +1 -0
  2. package/dist/declarative-element/declarative-element-init.d.ts +56 -0
  3. package/dist/declarative-element/declarative-element-init.js +1 -0
  4. package/dist/declarative-element/declarative-element.d.ts +114 -0
  5. package/dist/declarative-element/declarative-element.js +36 -0
  6. package/dist/declarative-element/define-element.d.ts +41 -0
  7. package/dist/declarative-element/define-element.js +248 -0
  8. package/{src/declarative-element/definition-options.ts → dist/declarative-element/definition-options.d.ts} +2 -7
  9. package/dist/declarative-element/definition-options.js +9 -0
  10. package/dist/declarative-element/directives/assign.directive.d.ts +24 -0
  11. package/dist/declarative-element/directives/assign.directive.js +34 -0
  12. package/dist/declarative-element/directives/async-prop.d.ts +61 -0
  13. package/{src/declarative-element/directives/async-prop.ts → dist/declarative-element/directives/async-prop.js} +8 -42
  14. package/dist/declarative-element/directives/attributes.directive.d.ts +30 -0
  15. package/dist/declarative-element/directives/attributes.directive.js +35 -0
  16. package/dist/declarative-element/directives/create-attribute-directive.d.ts +28 -0
  17. package/dist/declarative-element/directives/create-attribute-directive.js +41 -0
  18. package/dist/declarative-element/directives/directive-helpers.d.ts +27 -0
  19. package/dist/declarative-element/directives/directive-helpers.js +37 -0
  20. package/dist/declarative-element/directives/listen-to-activate.d.ts +15 -0
  21. package/{src/declarative-element/directives/listen-to-activate.ts → dist/declarative-element/directives/listen-to-activate.js} +3 -8
  22. package/dist/declarative-element/directives/listen.directive.d.ts +92 -0
  23. package/dist/declarative-element/directives/listen.directive.js +48 -0
  24. package/dist/declarative-element/directives/mutate.directive.d.ts +38 -0
  25. package/dist/declarative-element/directives/mutate.directive.js +45 -0
  26. package/dist/declarative-element/directives/on-dom-created.directive.d.ts +44 -0
  27. package/dist/declarative-element/directives/on-dom-created.directive.js +51 -0
  28. package/dist/declarative-element/directives/on-dom-rendered.directive.d.ts +41 -0
  29. package/dist/declarative-element/directives/on-dom-rendered.directive.js +45 -0
  30. package/dist/declarative-element/directives/on-intersect.directive.d.ts +64 -0
  31. package/dist/declarative-element/directives/on-intersect.directive.js +89 -0
  32. package/dist/declarative-element/directives/on-resize.directive.d.ts +74 -0
  33. package/dist/declarative-element/directives/on-resize.directive.js +106 -0
  34. package/dist/declarative-element/directives/render-async.directive.d.ts +45 -0
  35. package/dist/declarative-element/directives/render-async.directive.js +33 -0
  36. package/dist/declarative-element/directives/render-if.directive.d.ts +32 -0
  37. package/{src/declarative-element/directives/render-if.directive.ts → dist/declarative-element/directives/render-if.directive.js} +3 -12
  38. package/dist/declarative-element/directives/test-id.directive.d.ts +52 -0
  39. package/{src/declarative-element/directives/test-id.directive.ts → dist/declarative-element/directives/test-id.directive.js} +2 -7
  40. package/dist/declarative-element/has-declarative-element-parent.d.ts +1 -0
  41. package/{src/declarative-element/has-declarative-element-parent.ts → dist/declarative-element/has-declarative-element-parent.js} +4 -7
  42. package/dist/declarative-element/is-declarative-element-definition.d.ts +17 -0
  43. package/{src/declarative-element/is-declarative-element-definition.ts → dist/declarative-element/is-declarative-element-definition.js} +11 -28
  44. package/dist/declarative-element/is-declarative-element.d.ts +15 -0
  45. package/{src/declarative-element/is-declarative-element.ts → dist/declarative-element/is-declarative-element.js} +5 -11
  46. package/dist/declarative-element/properties/assign-inputs.d.ts +1 -0
  47. package/dist/declarative-element/properties/assign-inputs.js +25 -0
  48. package/dist/declarative-element/properties/css-vars.d.ts +16 -0
  49. package/dist/declarative-element/properties/css-vars.js +1 -0
  50. package/dist/declarative-element/properties/element-events.d.ts +65 -0
  51. package/dist/declarative-element/properties/element-events.js +62 -0
  52. package/dist/declarative-element/properties/element-properties.js +1 -0
  53. package/dist/declarative-element/properties/host-classes.d.ts +36 -0
  54. package/dist/declarative-element/properties/host-classes.js +16 -0
  55. package/dist/declarative-element/properties/property-proxy.d.ts +22 -0
  56. package/{src/declarative-element/properties/property-proxy.ts → dist/declarative-element/properties/property-proxy.js} +21 -58
  57. package/dist/declarative-element/properties/string-names.d.ts +28 -0
  58. package/dist/declarative-element/properties/string-names.js +40 -0
  59. package/dist/declarative-element/properties/styles.d.ts +51 -0
  60. package/dist/declarative-element/properties/styles.js +41 -0
  61. package/dist/declarative-element/properties/tag-name.js +1 -0
  62. package/dist/declarative-element/render-callback.d.ts +56 -0
  63. package/dist/declarative-element/render-callback.js +27 -0
  64. package/dist/declarative-element/wrap-define-element.d.ts +36 -0
  65. package/dist/declarative-element/wrap-define-element.js +25 -0
  66. package/{src/index.ts → dist/index.d.ts} +0 -1
  67. package/dist/index.js +43 -0
  68. package/dist/lit-exports/all-lit-exports.js +2 -0
  69. package/{src/lit-exports/base-lit-exports.ts → dist/lit-exports/base-lit-exports.d.ts} +2 -10
  70. package/dist/lit-exports/base-lit-exports.js +24 -0
  71. package/{src/lit-exports/lit-repeat-fix.ts → dist/lit-exports/lit-repeat-fix.d.ts} +16 -45
  72. package/dist/lit-exports/lit-repeat-fix.js +37 -0
  73. package/dist/readme-examples/my-app.element.d.ts +1 -0
  74. package/{src/readme-examples/my-app.element.ts → dist/readme-examples/my-app.element.js} +4 -5
  75. package/dist/readme-examples/my-custom-action.event.d.ts +1 -0
  76. package/dist/readme-examples/my-custom-action.event.js +2 -0
  77. package/dist/readme-examples/my-custom-define.d.ts +4 -0
  78. package/{src/readme-examples/my-custom-define.ts → dist/readme-examples/my-custom-define.js} +4 -9
  79. package/dist/readme-examples/my-simple.element.d.ts +1 -0
  80. package/{src/readme-examples/my-simple.element.ts → dist/readme-examples/my-simple.element.js} +3 -4
  81. package/dist/readme-examples/my-with-assignment.element.d.ts +1 -0
  82. package/dist/readme-examples/my-with-assignment.element.js +15 -0
  83. package/dist/readme-examples/my-with-async-prop.element.d.ts +10 -0
  84. package/{src/readme-examples/my-with-async-prop.element.ts → dist/readme-examples/my-with-async-prop.element.js} +16 -24
  85. package/dist/readme-examples/my-with-cleanup-callback.element.d.ts +3 -0
  86. package/{src/readme-examples/my-with-cleanup-callback.element.ts → dist/readme-examples/my-with-cleanup-callback.element.js} +4 -5
  87. package/dist/readme-examples/my-with-css-vars.element.d.ts +1 -0
  88. package/{src/readme-examples/my-with-css-vars.element.ts → dist/readme-examples/my-with-css-vars.element.js} +4 -5
  89. package/dist/readme-examples/my-with-custom-events.element.d.ts +1 -0
  90. package/dist/readme-examples/my-with-custom-events.element.js +22 -0
  91. package/dist/readme-examples/my-with-event-listening.element.d.ts +3 -0
  92. package/{src/readme-examples/my-with-event-listening.element.ts → dist/readme-examples/my-with-event-listening.element.js} +9 -10
  93. package/dist/readme-examples/my-with-events.element.d.ts +4 -0
  94. package/dist/readme-examples/my-with-events.element.js +20 -0
  95. package/dist/readme-examples/my-with-host-class-definition.element.d.ts +3 -0
  96. package/{src/readme-examples/my-with-host-class-definition.element.ts → dist/readme-examples/my-with-host-class-definition.element.js} +6 -7
  97. package/dist/readme-examples/my-with-host-class-usage.element.d.ts +1 -0
  98. package/{src/readme-examples/my-with-host-class-usage.element.ts → dist/readme-examples/my-with-host-class-usage.element.js} +4 -5
  99. package/dist/readme-examples/my-with-inputs.element.d.ts +4 -0
  100. package/dist/readme-examples/my-with-inputs.element.js +9 -0
  101. package/dist/readme-examples/my-with-on-dom-created.element.d.ts +1 -0
  102. package/{src/readme-examples/my-with-on-dom-created.element.ts → dist/readme-examples/my-with-on-dom-created.element.js} +6 -7
  103. package/dist/readme-examples/my-with-on-resize.element.d.ts +1 -0
  104. package/dist/readme-examples/my-with-on-resize.element.js +18 -0
  105. package/dist/readme-examples/my-with-render-if.element.d.ts +3 -0
  106. package/dist/readme-examples/my-with-render-if.element.js +11 -0
  107. package/dist/readme-examples/my-with-styles-and-interpolated-selector.element.d.ts +1 -0
  108. package/{src/readme-examples/my-with-styles-and-interpolated-selector.element.ts → dist/readme-examples/my-with-styles-and-interpolated-selector.element.js} +5 -6
  109. package/dist/readme-examples/my-with-styles.element.d.ts +1 -0
  110. package/{src/readme-examples/my-with-styles.element.ts → dist/readme-examples/my-with-styles.element.js} +4 -5
  111. package/dist/readme-examples/my-with-update-state.element.d.ts +8 -0
  112. package/{src/readme-examples/my-with-update-state.element.ts → dist/readme-examples/my-with-update-state.element.js} +7 -8
  113. package/dist/readme-examples/require-declarative-element.d.ts +1 -0
  114. package/dist/readme-examples/require-declarative-element.js +2 -0
  115. package/dist/require-declarative-element.d.ts +14 -0
  116. package/{src/require-declarative-element.ts → dist/require-declarative-element.js} +0 -1
  117. package/{src/template-transforms/minimal-element-definition.ts → dist/template-transforms/minimal-element-definition.d.ts} +7 -19
  118. package/dist/template-transforms/minimal-element-definition.js +19 -0
  119. package/dist/template-transforms/nested-mapped-templates.d.ts +6 -0
  120. package/dist/template-transforms/nested-mapped-templates.js +96 -0
  121. package/{src/template-transforms/template-transform-type.ts → dist/template-transforms/template-transform-type.d.ts} +1 -3
  122. package/dist/template-transforms/template-transform-type.js +1 -0
  123. package/dist/template-transforms/transform-template.d.ts +14 -0
  124. package/{src/template-transforms/transform-template.ts → dist/template-transforms/transform-template.js} +22 -70
  125. package/dist/template-transforms/vir-css/css-transform.d.ts +4 -0
  126. package/dist/template-transforms/vir-css/css-transform.js +15 -0
  127. package/dist/template-transforms/vir-css/vir-css.d.ts +12 -0
  128. package/dist/template-transforms/vir-css/vir-css.js +21 -0
  129. package/dist/template-transforms/vir-html/html-interpolation.d.ts +42 -0
  130. package/dist/template-transforms/vir-html/html-interpolation.js +1 -0
  131. package/dist/template-transforms/vir-html/html-transform.d.ts +5 -0
  132. package/dist/template-transforms/vir-html/html-transform.js +96 -0
  133. package/dist/template-transforms/vir-html/tag-name-keys.d.ts +7 -0
  134. package/{src/template-transforms/vir-html/tag-name-keys.ts → dist/template-transforms/vir-html/tag-name-keys.js} +1 -1
  135. package/dist/template-transforms/vir-html/vir-html.d.ts +11 -0
  136. package/{src/template-transforms/vir-html/vir-html.ts → dist/template-transforms/vir-html/vir-html.js} +5 -13
  137. package/dist/typed-event/typed-event.d.ts +55 -0
  138. package/dist/typed-event/typed-event.js +50 -0
  139. package/dist/util/array.d.ts +5 -0
  140. package/{src/util/array.ts → dist/util/array.js} +5 -18
  141. package/{src/util/increment.ts → dist/util/increment.d.ts} +5 -24
  142. package/dist/util/increment.js +1 -0
  143. package/dist/util/lit-template.d.ts +9 -0
  144. package/{src/util/lit-template.ts → dist/util/lit-template.js} +10 -30
  145. package/dist/util/map-async-value.d.ts +7 -0
  146. package/{src/util/map-async-value.ts → dist/util/map-async-value.js} +10 -12
  147. package/dist/util/type.js +1 -0
  148. package/package.json +4 -4
  149. package/src/declarative-element/declarative-element-init.ts +0 -115
  150. package/src/declarative-element/declarative-element.ts +0 -372
  151. package/src/declarative-element/define-element.ts +0 -515
  152. package/src/declarative-element/directives/assign.directive.ts +0 -89
  153. package/src/declarative-element/directives/attributes.directive.ts +0 -63
  154. package/src/declarative-element/directives/create-attribute-directive.ts +0 -47
  155. package/src/declarative-element/directives/directive-helpers.ts +0 -67
  156. package/src/declarative-element/directives/listen.directive.ts +0 -206
  157. package/src/declarative-element/directives/mutate.directive.ts +0 -78
  158. package/src/declarative-element/directives/on-dom-created.directive.ts +0 -68
  159. package/src/declarative-element/directives/on-dom-rendered.directive.ts +0 -61
  160. package/src/declarative-element/directives/on-intersect.directive.ts +0 -139
  161. package/src/declarative-element/directives/on-resize.directive.ts +0 -142
  162. package/src/declarative-element/directives/render-async.directive.ts +0 -111
  163. package/src/declarative-element/properties/assign-inputs.ts +0 -30
  164. package/src/declarative-element/properties/css-vars.ts +0 -24
  165. package/src/declarative-element/properties/element-events.ts +0 -161
  166. package/src/declarative-element/properties/host-classes.ts +0 -63
  167. package/src/declarative-element/properties/string-names.ts +0 -83
  168. package/src/declarative-element/properties/styles.ts +0 -112
  169. package/src/declarative-element/render-callback.ts +0 -196
  170. package/src/declarative-element/wrap-define-element.ts +0 -127
  171. package/src/readme-examples/my-custom-action.event.ts +0 -3
  172. package/src/readme-examples/my-with-assignment.element.ts +0 -16
  173. package/src/readme-examples/my-with-custom-events.element.ts +0 -23
  174. package/src/readme-examples/my-with-events.element.ts +0 -23
  175. package/src/readme-examples/my-with-inputs.element.ts +0 -13
  176. package/src/readme-examples/my-with-on-resize.element.ts +0 -19
  177. package/src/readme-examples/my-with-render-if.element.ts +0 -15
  178. package/src/readme-examples/require-declarative-element.ts +0 -3
  179. package/src/template-transforms/nested-mapped-templates.ts +0 -157
  180. package/src/template-transforms/vir-css/css-transform.ts +0 -30
  181. package/src/template-transforms/vir-css/vir-css.ts +0 -30
  182. package/src/template-transforms/vir-html/html-interpolation.ts +0 -103
  183. package/src/template-transforms/vir-html/html-transform.ts +0 -149
  184. package/src/typed-event/typed-event.ts +0 -90
  185. /package/{src/declarative-element/custom-tag-name.ts → dist/declarative-element/custom-tag-name.d.ts} +0 -0
  186. /package/{src/declarative-element/properties/element-properties.ts → dist/declarative-element/properties/element-properties.d.ts} +0 -0
  187. /package/{src/declarative-element/properties/tag-name.ts → dist/declarative-element/properties/tag-name.d.ts} +0 -0
  188. /package/{src/lit-exports/all-lit-exports.ts → dist/lit-exports/all-lit-exports.d.ts} +0 -0
  189. /package/{src/util/type.ts → dist/util/type.d.ts} +0 -0
@@ -1,372 +0,0 @@
1
- import {type SetRequiredAndNotNull} from '@augment-vir/common';
2
- import {type EmptyObject, type IsAny, type IsEmptyObject} from 'type-fest';
3
- import {LitElement, type CSSResult} from '../lit-exports/base-lit-exports.js';
4
- import {type MinimalDefinitionWithInputs} from '../template-transforms/minimal-element-definition.js';
5
- import {type CustomElementTagName} from './custom-tag-name.js';
6
- import {type DeclarativeElementInit} from './declarative-element-init.js';
7
- import {type DeclarativeElementDefinitionOptions} from './definition-options.js';
8
- import {type CssVars} from './properties/css-vars.js';
9
- import {type EventDescriptorMap, type EventsInitMap} from './properties/element-events.js';
10
- import {type PropertyInitMapBase} from './properties/element-properties.js';
11
- import {type HostClassNamesMap} from './properties/host-classes.js';
12
- import {type ObservableListenerMap} from './properties/property-proxy.js';
13
- import {type BaseStringName, type StringNameMap} from './properties/string-names.js';
14
- import {
15
- type RenderCallback,
16
- type RenderParams,
17
- type UpdateStateCallback,
18
- } from './render-callback.js';
19
-
20
- /**
21
- * The `host` type for a declarative element. This references a declarative element instance's
22
- * top-level HTML element and always contains a shadow root (wherein the element is rendered).
23
- *
24
- * @category Internal
25
- */
26
- export type DeclarativeElementHost<
27
- TagName extends CustomElementTagName = any,
28
- Inputs extends PropertyInitMapBase = any,
29
- State extends PropertyInitMapBase = any,
30
- EventsInit extends EventsInitMap = any,
31
- HostClassKeys extends BaseStringName<TagName> = any,
32
- CssVarKeys extends BaseStringName<TagName> = any,
33
- SlotNames extends ReadonlyArray<string> = any,
34
- TestIds extends ReadonlyArray<string> = any,
35
- > = SetRequiredAndNotNull<
36
- Omit<
37
- DeclarativeElement<
38
- TagName,
39
- Inputs,
40
- State,
41
- EventsInit,
42
- HostClassKeys,
43
- CssVarKeys,
44
- SlotNames,
45
- TestIds
46
- >,
47
- Exclude<
48
- keyof StaticDeclarativeElementProperties<any, any, any, any, any, any, any, any>,
49
- keyof HTMLElement
50
- >
51
- >,
52
- 'shadowRoot'
53
- >;
54
-
55
- /**
56
- * The full definition for a declarative element.
57
- *
58
- * @category Internal
59
- */
60
- export type DeclarativeElementDefinition<
61
- TagName extends CustomElementTagName = any,
62
- Inputs extends PropertyInitMapBase = any,
63
- State extends PropertyInitMapBase = any,
64
- EventsInit extends EventsInitMap = any,
65
- HostClassKeys extends BaseStringName<TagName> = any,
66
- CssVarKeys extends BaseStringName<TagName> = any,
67
- SlotNames extends ReadonlyArray<string> = any,
68
- TestIds extends ReadonlyArray<string> = any,
69
- > = (new () => DeclarativeElementHost<
70
- TagName,
71
- Inputs,
72
- State,
73
- EventsInit,
74
- HostClassKeys,
75
- CssVarKeys,
76
- SlotNames,
77
- TestIds
78
- >) &
79
- StaticDeclarativeElementProperties<
80
- TagName,
81
- Inputs,
82
- State,
83
- EventsInit,
84
- HostClassKeys,
85
- CssVarKeys,
86
- SlotNames,
87
- TestIds
88
- > & {
89
- InstanceType: DeclarativeElementHost<
90
- TagName,
91
- Inputs,
92
- State,
93
- EventsInit,
94
- HostClassKeys,
95
- CssVarKeys,
96
- SlotNames,
97
- TestIds
98
- >;
99
- };
100
-
101
- /**
102
- * Abstract class base for all declarative elements.
103
- *
104
- * @category Internal
105
- */
106
- export abstract class DeclarativeElement<
107
- TagName extends CustomElementTagName = any,
108
- Inputs extends PropertyInitMapBase = any,
109
- State extends PropertyInitMapBase = any,
110
- EventsInit extends EventsInitMap = any,
111
- HostClassKeys extends BaseStringName<TagName> = any,
112
- CssVarKeys extends BaseStringName<TagName> = any,
113
- SlotNames extends ReadonlyArray<string> = any,
114
- TestIds extends ReadonlyArray<string> = any,
115
- > extends LitElement {
116
- /**
117
- * Assign inputs to an element instantiation. Use only on the opening tag.
118
- *
119
- * @example
120
- *
121
- * ```ts
122
- * import {html} from 'element-vir';
123
- *
124
- * const myTemplate = html`
125
- * <${MyElement.assign({input1: 'a', input2: 'b'})}></${MyElement}>
126
- * `;
127
- * ```
128
- */
129
- public static readonly assign: StaticDeclarativeElementProperties<
130
- CustomElementTagName,
131
- PropertyInitMapBase,
132
- PropertyInitMapBase,
133
- EventsInitMap,
134
- BaseStringName<CustomElementTagName>,
135
- BaseStringName<CustomElementTagName>,
136
- ReadonlyArray<string>,
137
- ReadonlyArray<string>
138
- >['assign'];
139
- public static readonly assignedInputs: PropertyInitMapBase | undefined;
140
- public static readonly tagName: StaticDeclarativeElementProperties<
141
- CustomElementTagName,
142
- PropertyInitMapBase,
143
- PropertyInitMapBase,
144
- EventsInitMap,
145
- BaseStringName<CustomElementTagName>,
146
- BaseStringName<CustomElementTagName>,
147
- ReadonlyArray<string>,
148
- ReadonlyArray<string>
149
- >['tagName'];
150
- public static override readonly styles: StaticDeclarativeElementProperties<
151
- CustomElementTagName,
152
- PropertyInitMapBase,
153
- PropertyInitMapBase,
154
- EventsInitMap,
155
- BaseStringName<CustomElementTagName>,
156
- BaseStringName<CustomElementTagName>,
157
- ReadonlyArray<string>,
158
- ReadonlyArray<string>
159
- >['styles'];
160
- public static readonly render: StaticDeclarativeElementProperties<
161
- CustomElementTagName,
162
- PropertyInitMapBase,
163
- PropertyInitMapBase,
164
- EventsInitMap,
165
- BaseStringName<CustomElementTagName>,
166
- BaseStringName<CustomElementTagName>,
167
- ReadonlyArray<string>,
168
- ReadonlyArray<string>
169
- >['render'];
170
- public static readonly InputsType: StaticDeclarativeElementProperties<
171
- CustomElementTagName,
172
- PropertyInitMapBase,
173
- PropertyInitMapBase,
174
- EventsInitMap,
175
- BaseStringName<CustomElementTagName>,
176
- BaseStringName<CustomElementTagName>,
177
- ReadonlyArray<string>,
178
- ReadonlyArray<string>
179
- >['InputsType'];
180
- public static readonly StateType: StaticDeclarativeElementProperties<
181
- CustomElementTagName,
182
- PropertyInitMapBase,
183
- PropertyInitMapBase,
184
- EventsInitMap,
185
- BaseStringName<CustomElementTagName>,
186
- BaseStringName<CustomElementTagName>,
187
- ReadonlyArray<string>,
188
- ReadonlyArray<string>
189
- >['StateType'];
190
- public static readonly UpdateStateType: StaticDeclarativeElementProperties<
191
- CustomElementTagName,
192
- PropertyInitMapBase,
193
- PropertyInitMapBase,
194
- EventsInitMap,
195
- BaseStringName<CustomElementTagName>,
196
- BaseStringName<CustomElementTagName>,
197
- ReadonlyArray<string>,
198
- ReadonlyArray<string>
199
- >['UpdateStateType'];
200
- public static readonly events: StaticDeclarativeElementProperties<
201
- CustomElementTagName,
202
- PropertyInitMapBase,
203
- PropertyInitMapBase,
204
- EventsInitMap,
205
- BaseStringName<CustomElementTagName>,
206
- BaseStringName<CustomElementTagName>,
207
- ReadonlyArray<string>,
208
- ReadonlyArray<string>
209
- >['events'];
210
- public static readonly init: StaticDeclarativeElementProperties<
211
- CustomElementTagName,
212
- PropertyInitMapBase,
213
- PropertyInitMapBase,
214
- EventsInitMap,
215
- BaseStringName<CustomElementTagName>,
216
- BaseStringName<CustomElementTagName>,
217
- ReadonlyArray<string>,
218
- ReadonlyArray<string>
219
- >['init'];
220
- public static readonly elementOptions: StaticDeclarativeElementProperties<
221
- CustomElementTagName,
222
- PropertyInitMapBase,
223
- PropertyInitMapBase,
224
- EventsInitMap,
225
- BaseStringName<CustomElementTagName>,
226
- BaseStringName<CustomElementTagName>,
227
- ReadonlyArray<string>,
228
- ReadonlyArray<string>
229
- >['elementOptions'];
230
- public static readonly hostClasses: StaticDeclarativeElementProperties<
231
- CustomElementTagName,
232
- PropertyInitMapBase,
233
- PropertyInitMapBase,
234
- EventsInitMap,
235
- BaseStringName<CustomElementTagName>,
236
- BaseStringName<CustomElementTagName>,
237
- ReadonlyArray<string>,
238
- ReadonlyArray<string>
239
- >['hostClasses'];
240
- public static readonly cssVars: StaticDeclarativeElementProperties<
241
- CustomElementTagName,
242
- PropertyInitMapBase,
243
- PropertyInitMapBase,
244
- EventsInitMap,
245
- BaseStringName<CustomElementTagName>,
246
- BaseStringName<CustomElementTagName>,
247
- ReadonlyArray<string>,
248
- ReadonlyArray<string>
249
- >['cssVars'];
250
- public static readonly slotNames: StaticDeclarativeElementProperties<
251
- CustomElementTagName,
252
- PropertyInitMapBase,
253
- PropertyInitMapBase,
254
- EventsInitMap,
255
- BaseStringName<CustomElementTagName>,
256
- BaseStringName<CustomElementTagName>,
257
- ReadonlyArray<string>,
258
- ReadonlyArray<string>
259
- >['slotNames'];
260
- public static readonly testIds: StaticDeclarativeElementProperties<
261
- CustomElementTagName,
262
- PropertyInitMapBase,
263
- PropertyInitMapBase,
264
- EventsInitMap,
265
- BaseStringName<CustomElementTagName>,
266
- BaseStringName<CustomElementTagName>,
267
- ReadonlyArray<string>,
268
- ReadonlyArray<string>
269
- >['testIds'];
270
-
271
- public abstract _lastRenderError: Error | undefined;
272
- public abstract _internalRenderCount: number;
273
- public abstract _lastRenderedProps: Readonly<
274
- Pick<RenderParams<any, Inputs, State, any, any, any, any, any>, 'inputs' | 'state'>
275
- >;
276
- /**
277
- * Calls all destroy methods on all state properties, if they exist. This is automatically
278
- * called whenever the element is detached.
279
- */
280
- public abstract destroy(): void;
281
- public abstract override render(): unknown;
282
- public abstract readonly instanceState: State;
283
- public abstract readonly observablePropertyListenerMap: ObservableListenerMap<State & Inputs>;
284
- public abstract readonly instanceInputs: Inputs;
285
- /**
286
- * Used to assign inputs to the given element. This can be externally called as an API for
287
- * setting inputs on an element reference, though this is discouraged. Inputs should typically
288
- * be called using the `.assign()` method on an element definition inside of an HTML template.
289
- */
290
- public abstract assignInputs(
291
- inputs: EmptyObject extends Required<Inputs> ? never : Partial<Inputs>,
292
- ): void;
293
- /** The element definition for this element instance. */
294
- public abstract readonly definition: DeclarativeElementDefinition<
295
- TagName,
296
- Inputs,
297
- State,
298
- EventsInit,
299
- HostClassKeys,
300
- CssVarKeys,
301
- SlotNames,
302
- TestIds
303
- >;
304
- }
305
-
306
- /**
307
- * The assign inputs method of a declarative element.
308
- *
309
- * @category Internal
310
- */
311
- export type AssignMethod<TagName extends CustomElementTagName, Inputs extends PropertyInitMapBase> =
312
- IsAny<Inputs> extends true
313
- ? any
314
- : IsEmptyObject<Required<Inputs>> extends true
315
- ? (inputsObject: never) => never
316
- : (
317
- inputsObject: IsEmptyObject<Required<Inputs>> extends true ? never : Inputs,
318
- ) => MinimalDefinitionWithInputs<TagName>;
319
-
320
- /**
321
- * All static properties on a declarative element. These all come from the element's definition.
322
- *
323
- * @category Internal
324
- */
325
- export type StaticDeclarativeElementProperties<
326
- TagName extends CustomElementTagName,
327
- Inputs extends PropertyInitMapBase,
328
- State extends PropertyInitMapBase,
329
- EventsInit extends EventsInitMap,
330
- HostClassKeys extends BaseStringName<TagName>,
331
- CssVarKeys extends BaseStringName<TagName>,
332
- SlotNames extends ReadonlyArray<string>,
333
- TestIds extends ReadonlyArray<string>,
334
- > = {
335
- /** Assign inputs to an element directly on its interpolated tag. */
336
- readonly assign: AssignMethod<TagName, Inputs>;
337
- assignedInputs: Inputs | undefined;
338
-
339
- /** Pass through the render callback for direct unit testability */
340
- readonly render: RenderCallback<
341
- TagName,
342
- Inputs,
343
- State,
344
- EventsInit,
345
- HostClassKeys,
346
- CssVarKeys,
347
- SlotNames,
348
- TestIds
349
- >;
350
- readonly events: EventDescriptorMap<TagName, EventsInit>;
351
- readonly slotNames: Readonly<StringNameMap<TagName, 'slot', SlotNames>>;
352
- readonly testIds: Readonly<StringNameMap<TagName, 'test-id', TestIds>>;
353
- readonly init: DeclarativeElementInit<
354
- TagName,
355
- Inputs,
356
- State,
357
- EventsInit,
358
- HostClassKeys,
359
- CssVarKeys,
360
- SlotNames,
361
- TestIds
362
- >;
363
- readonly elementOptions: DeclarativeElementDefinitionOptions;
364
- readonly InputsType: Inputs;
365
- readonly StateType: Readonly<State>;
366
- readonly UpdateStateType: UpdateStateCallback<State>;
367
- readonly hostClasses: HostClassNamesMap<string, HostClassKeys>;
368
- readonly cssVars: CssVars<TagName, CssVarKeys>;
369
-
370
- readonly tagName: TagName;
371
- readonly styles: CSSResult;
372
- };