element-vir 26.11.2 → 26.12.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 (188) hide show
  1. package/package.json +12 -12
  2. package/src/declarative-element/declarative-element-init.ts +115 -0
  3. package/src/declarative-element/declarative-element.ts +372 -0
  4. package/src/declarative-element/define-element.ts +515 -0
  5. package/{dist/declarative-element/definition-options.d.ts → src/declarative-element/definition-options.ts} +7 -2
  6. package/src/declarative-element/directives/assign.directive.ts +89 -0
  7. package/{dist/declarative-element/directives/async-prop.js → src/declarative-element/directives/async-prop.ts} +42 -8
  8. package/src/declarative-element/directives/attributes.directive.ts +63 -0
  9. package/src/declarative-element/directives/create-attribute-directive.ts +47 -0
  10. package/src/declarative-element/directives/directive-helpers.ts +67 -0
  11. package/{dist/declarative-element/directives/listen-to-activate.js → src/declarative-element/directives/listen-to-activate.ts} +8 -3
  12. package/src/declarative-element/directives/listen.directive.ts +206 -0
  13. package/src/declarative-element/directives/mutate.directive.ts +78 -0
  14. package/src/declarative-element/directives/on-dom-created.directive.ts +68 -0
  15. package/src/declarative-element/directives/on-dom-rendered.directive.ts +61 -0
  16. package/src/declarative-element/directives/on-intersect.directive.ts +139 -0
  17. package/src/declarative-element/directives/on-resize.directive.ts +142 -0
  18. package/src/declarative-element/directives/render-async.directive.ts +111 -0
  19. package/{dist/declarative-element/directives/render-if.directive.js → src/declarative-element/directives/render-if.directive.ts} +12 -3
  20. package/{dist/declarative-element/directives/test-id.directive.js → src/declarative-element/directives/test-id.directive.ts} +7 -2
  21. package/{dist/declarative-element/has-declarative-element-parent.js → src/declarative-element/has-declarative-element-parent.ts} +7 -4
  22. package/{dist/declarative-element/is-declarative-element-definition.js → src/declarative-element/is-declarative-element-definition.ts} +28 -11
  23. package/{dist/declarative-element/is-declarative-element.js → src/declarative-element/is-declarative-element.ts} +11 -5
  24. package/src/declarative-element/properties/assign-inputs.ts +30 -0
  25. package/src/declarative-element/properties/css-vars.ts +24 -0
  26. package/src/declarative-element/properties/element-events.ts +161 -0
  27. package/src/declarative-element/properties/host-classes.ts +63 -0
  28. package/{dist/declarative-element/properties/property-proxy.js → src/declarative-element/properties/property-proxy.ts} +58 -21
  29. package/src/declarative-element/properties/string-names.ts +83 -0
  30. package/src/declarative-element/properties/styles.ts +112 -0
  31. package/src/declarative-element/render-callback.ts +196 -0
  32. package/src/declarative-element/wrap-define-element.ts +127 -0
  33. package/{dist/index.d.ts → src/index.ts} +2 -0
  34. package/{dist/lit-exports/base-lit-exports.js → src/lit-exports/base-lit-exports.ts} +10 -1
  35. package/{dist/lit-exports/lit-repeat-fix.d.ts → src/lit-exports/lit-repeat-fix.ts} +45 -16
  36. package/{dist/readme-examples/my-app.element.js → src/readme-examples/my-app.element.ts} +5 -4
  37. package/src/readme-examples/my-custom-action.event.ts +3 -0
  38. package/{dist/readme-examples/my-custom-define.js → src/readme-examples/my-custom-define.ts} +9 -4
  39. package/{dist/readme-examples/my-simple.element.js → src/readme-examples/my-simple.element.ts} +4 -3
  40. package/src/readme-examples/my-with-assignment.element.ts +16 -0
  41. package/{dist/readme-examples/my-with-async-prop.element.js → src/readme-examples/my-with-async-prop.element.ts} +24 -16
  42. package/{dist/readme-examples/my-with-cleanup-callback.element.js → src/readme-examples/my-with-cleanup-callback.element.ts} +5 -4
  43. package/{dist/readme-examples/my-with-css-vars.element.js → src/readme-examples/my-with-css-vars.element.ts} +5 -4
  44. package/src/readme-examples/my-with-custom-events.element.ts +23 -0
  45. package/{dist/readme-examples/my-with-event-listening.element.js → src/readme-examples/my-with-event-listening.element.ts} +10 -9
  46. package/src/readme-examples/my-with-events.element.ts +23 -0
  47. package/{dist/readme-examples/my-with-host-class-definition.element.js → src/readme-examples/my-with-host-class-definition.element.ts} +7 -6
  48. package/{dist/readme-examples/my-with-host-class-usage.element.js → src/readme-examples/my-with-host-class-usage.element.ts} +5 -4
  49. package/src/readme-examples/my-with-inputs.element.ts +13 -0
  50. package/{dist/readme-examples/my-with-on-dom-created.element.js → src/readme-examples/my-with-on-dom-created.element.ts} +7 -6
  51. package/src/readme-examples/my-with-on-resize.element.ts +19 -0
  52. package/src/readme-examples/my-with-render-if.element.ts +15 -0
  53. package/{dist/readme-examples/my-with-styles-and-interpolated-selector.element.js → src/readme-examples/my-with-styles-and-interpolated-selector.element.ts} +6 -5
  54. package/{dist/readme-examples/my-with-styles.element.js → src/readme-examples/my-with-styles.element.ts} +5 -4
  55. package/{dist/readme-examples/my-with-update-state.element.js → src/readme-examples/my-with-update-state.element.ts} +8 -7
  56. package/src/readme-examples/require-declarative-element.ts +3 -0
  57. package/{dist/require-declarative-element.js → src/require-declarative-element.ts} +1 -0
  58. package/{dist/template-transforms/minimal-element-definition.d.ts → src/template-transforms/minimal-element-definition.ts} +19 -7
  59. package/src/template-transforms/nested-mapped-templates.ts +157 -0
  60. package/{dist/template-transforms/template-transform-type.d.ts → src/template-transforms/template-transform-type.ts} +3 -1
  61. package/{dist/template-transforms/transform-template.js → src/template-transforms/transform-template.ts} +70 -22
  62. package/src/template-transforms/vir-css/css-transform.ts +30 -0
  63. package/src/template-transforms/vir-css/vir-css.ts +30 -0
  64. package/src/template-transforms/vir-html/html-interpolation.ts +103 -0
  65. package/src/template-transforms/vir-html/html-transform.ts +149 -0
  66. package/{dist/template-transforms/vir-html/tag-name-keys.js → src/template-transforms/vir-html/tag-name-keys.ts} +1 -1
  67. package/{dist/template-transforms/vir-html/vir-html.js → src/template-transforms/vir-html/vir-html.ts} +13 -5
  68. package/src/typed-event/typed-event.ts +90 -0
  69. package/{dist/util/array.js → src/util/array.ts} +18 -5
  70. package/{dist/util/increment.d.ts → src/util/increment.ts} +24 -5
  71. package/{dist/util/lit-template.js → src/util/lit-template.ts} +30 -10
  72. package/src/util/map-async-value.ts +33 -0
  73. package/dist/declarative-element/custom-tag-name.js +0 -1
  74. package/dist/declarative-element/declarative-element-init.d.ts +0 -56
  75. package/dist/declarative-element/declarative-element-init.js +0 -1
  76. package/dist/declarative-element/declarative-element.d.ts +0 -114
  77. package/dist/declarative-element/declarative-element.js +0 -36
  78. package/dist/declarative-element/define-element.d.ts +0 -41
  79. package/dist/declarative-element/define-element.js +0 -248
  80. package/dist/declarative-element/definition-options.js +0 -9
  81. package/dist/declarative-element/directives/assign.directive.d.ts +0 -24
  82. package/dist/declarative-element/directives/assign.directive.js +0 -34
  83. package/dist/declarative-element/directives/async-prop.d.ts +0 -61
  84. package/dist/declarative-element/directives/attributes.directive.d.ts +0 -30
  85. package/dist/declarative-element/directives/attributes.directive.js +0 -35
  86. package/dist/declarative-element/directives/create-attribute-directive.d.ts +0 -28
  87. package/dist/declarative-element/directives/create-attribute-directive.js +0 -41
  88. package/dist/declarative-element/directives/directive-helpers.d.ts +0 -27
  89. package/dist/declarative-element/directives/directive-helpers.js +0 -37
  90. package/dist/declarative-element/directives/listen-to-activate.d.ts +0 -15
  91. package/dist/declarative-element/directives/listen.directive.d.ts +0 -92
  92. package/dist/declarative-element/directives/listen.directive.js +0 -48
  93. package/dist/declarative-element/directives/mutate.directive.d.ts +0 -38
  94. package/dist/declarative-element/directives/mutate.directive.js +0 -45
  95. package/dist/declarative-element/directives/on-dom-created.directive.d.ts +0 -44
  96. package/dist/declarative-element/directives/on-dom-created.directive.js +0 -51
  97. package/dist/declarative-element/directives/on-dom-rendered.directive.d.ts +0 -41
  98. package/dist/declarative-element/directives/on-dom-rendered.directive.js +0 -45
  99. package/dist/declarative-element/directives/on-intersect.directive.d.ts +0 -64
  100. package/dist/declarative-element/directives/on-intersect.directive.js +0 -89
  101. package/dist/declarative-element/directives/on-resize.directive.d.ts +0 -74
  102. package/dist/declarative-element/directives/on-resize.directive.js +0 -106
  103. package/dist/declarative-element/directives/render-async.directive.d.ts +0 -45
  104. package/dist/declarative-element/directives/render-async.directive.js +0 -33
  105. package/dist/declarative-element/directives/render-if.directive.d.ts +0 -32
  106. package/dist/declarative-element/directives/test-id.directive.d.ts +0 -52
  107. package/dist/declarative-element/has-declarative-element-parent.d.ts +0 -1
  108. package/dist/declarative-element/is-declarative-element-definition.d.ts +0 -17
  109. package/dist/declarative-element/is-declarative-element.d.ts +0 -15
  110. package/dist/declarative-element/properties/assign-inputs.d.ts +0 -1
  111. package/dist/declarative-element/properties/assign-inputs.js +0 -25
  112. package/dist/declarative-element/properties/css-vars.d.ts +0 -16
  113. package/dist/declarative-element/properties/css-vars.js +0 -1
  114. package/dist/declarative-element/properties/element-events.d.ts +0 -65
  115. package/dist/declarative-element/properties/element-events.js +0 -62
  116. package/dist/declarative-element/properties/element-properties.js +0 -1
  117. package/dist/declarative-element/properties/host-classes.d.ts +0 -36
  118. package/dist/declarative-element/properties/host-classes.js +0 -16
  119. package/dist/declarative-element/properties/property-proxy.d.ts +0 -22
  120. package/dist/declarative-element/properties/string-names.d.ts +0 -28
  121. package/dist/declarative-element/properties/string-names.js +0 -40
  122. package/dist/declarative-element/properties/styles.d.ts +0 -51
  123. package/dist/declarative-element/properties/styles.js +0 -41
  124. package/dist/declarative-element/properties/tag-name.js +0 -1
  125. package/dist/declarative-element/render-callback.d.ts +0 -56
  126. package/dist/declarative-element/render-callback.js +0 -27
  127. package/dist/declarative-element/wrap-define-element.d.ts +0 -36
  128. package/dist/declarative-element/wrap-define-element.js +0 -25
  129. package/dist/index.js +0 -42
  130. package/dist/lit-exports/all-lit-exports.js +0 -2
  131. package/dist/lit-exports/base-lit-exports.d.ts +0 -25
  132. package/dist/lit-exports/lit-repeat-fix.js +0 -37
  133. package/dist/readme-examples/my-app.element.d.ts +0 -1
  134. package/dist/readme-examples/my-custom-action.event.d.ts +0 -1
  135. package/dist/readme-examples/my-custom-action.event.js +0 -2
  136. package/dist/readme-examples/my-custom-define.d.ts +0 -4
  137. package/dist/readme-examples/my-simple.element.d.ts +0 -1
  138. package/dist/readme-examples/my-with-assignment.element.d.ts +0 -1
  139. package/dist/readme-examples/my-with-assignment.element.js +0 -15
  140. package/dist/readme-examples/my-with-async-prop.element.d.ts +0 -10
  141. package/dist/readme-examples/my-with-cleanup-callback.element.d.ts +0 -3
  142. package/dist/readme-examples/my-with-css-vars.element.d.ts +0 -1
  143. package/dist/readme-examples/my-with-custom-events.element.d.ts +0 -1
  144. package/dist/readme-examples/my-with-custom-events.element.js +0 -22
  145. package/dist/readme-examples/my-with-event-listening.element.d.ts +0 -3
  146. package/dist/readme-examples/my-with-events.element.d.ts +0 -4
  147. package/dist/readme-examples/my-with-events.element.js +0 -20
  148. package/dist/readme-examples/my-with-host-class-definition.element.d.ts +0 -3
  149. package/dist/readme-examples/my-with-host-class-usage.element.d.ts +0 -1
  150. package/dist/readme-examples/my-with-inputs.element.d.ts +0 -4
  151. package/dist/readme-examples/my-with-inputs.element.js +0 -9
  152. package/dist/readme-examples/my-with-on-dom-created.element.d.ts +0 -1
  153. package/dist/readme-examples/my-with-on-resize.element.d.ts +0 -1
  154. package/dist/readme-examples/my-with-on-resize.element.js +0 -18
  155. package/dist/readme-examples/my-with-render-if.element.d.ts +0 -3
  156. package/dist/readme-examples/my-with-render-if.element.js +0 -11
  157. package/dist/readme-examples/my-with-styles-and-interpolated-selector.element.d.ts +0 -1
  158. package/dist/readme-examples/my-with-styles.element.d.ts +0 -1
  159. package/dist/readme-examples/my-with-update-state.element.d.ts +0 -8
  160. package/dist/readme-examples/require-declarative-element.d.ts +0 -1
  161. package/dist/readme-examples/require-declarative-element.js +0 -2
  162. package/dist/require-declarative-element.d.ts +0 -14
  163. package/dist/template-transforms/minimal-element-definition.js +0 -19
  164. package/dist/template-transforms/nested-mapped-templates.d.ts +0 -6
  165. package/dist/template-transforms/nested-mapped-templates.js +0 -96
  166. package/dist/template-transforms/template-transform-type.js +0 -1
  167. package/dist/template-transforms/transform-template.d.ts +0 -14
  168. package/dist/template-transforms/vir-css/css-transform.d.ts +0 -4
  169. package/dist/template-transforms/vir-css/css-transform.js +0 -15
  170. package/dist/template-transforms/vir-css/vir-css.d.ts +0 -12
  171. package/dist/template-transforms/vir-css/vir-css.js +0 -21
  172. package/dist/template-transforms/vir-html/html-interpolation.d.ts +0 -42
  173. package/dist/template-transforms/vir-html/html-interpolation.js +0 -1
  174. package/dist/template-transforms/vir-html/html-transform.d.ts +0 -5
  175. package/dist/template-transforms/vir-html/html-transform.js +0 -96
  176. package/dist/template-transforms/vir-html/tag-name-keys.d.ts +0 -7
  177. package/dist/template-transforms/vir-html/vir-html.d.ts +0 -11
  178. package/dist/typed-event/typed-event.d.ts +0 -55
  179. package/dist/typed-event/typed-event.js +0 -50
  180. package/dist/util/array.d.ts +0 -5
  181. package/dist/util/increment.js +0 -1
  182. package/dist/util/lit-template.d.ts +0 -9
  183. package/dist/util/type.js +0 -1
  184. /package/{dist/declarative-element/custom-tag-name.d.ts → src/declarative-element/custom-tag-name.ts} +0 -0
  185. /package/{dist/declarative-element/properties/element-properties.d.ts → src/declarative-element/properties/element-properties.ts} +0 -0
  186. /package/{dist/declarative-element/properties/tag-name.d.ts → src/declarative-element/properties/tag-name.ts} +0 -0
  187. /package/{dist/lit-exports/all-lit-exports.d.ts → src/lit-exports/all-lit-exports.ts} +0 -0
  188. /package/{dist/util/type.d.ts → src/util/type.ts} +0 -0
@@ -1,62 +0,0 @@
1
- import { defineTypedEvent, } from '../../typed-event/typed-event.js';
2
- /**
3
- * Used to define element events, with a type.
4
- *
5
- * @category Element Definition
6
- * @example
7
- *
8
- * ```ts
9
- * import {html, defineElement, defineElementEvent, listen} from 'element-vir';
10
- *
11
- * const MyElement = defineElement()({
12
- * tagName: 'my-element',
13
- * events: {
14
- * myOutput: defineElementEvent<number>(),
15
- * },
16
- * render({events, dispatch}) {
17
- * return html`
18
- * <div
19
- * ${listen('click', () => {
20
- * dispatch(new events.myOutput(1));
21
- * })}
22
- * >
23
- * Some div
24
- * </div>
25
- * `;
26
- * },
27
- * });
28
- * ```
29
- */
30
- export function defineElementEvent() {
31
- return defineTypedEvent();
32
- }
33
- /**
34
- * Maps an element definition initialization's tag name and event map to a map of ready-to-construct
35
- * event classes. This also verifies that the input event init map has valid keys.
36
- *
37
- * @category Internal
38
- */
39
- export function createEventDescriptorMap(tagName, eventsInit) {
40
- if (!eventsInit) {
41
- return {};
42
- }
43
- return (Object.keys(eventsInit)
44
- /** Verify event keys. */
45
- .filter((currentElementEventKey) => {
46
- if (typeof currentElementEventKey !== 'string') {
47
- throw new TypeError(`Expected event key of type string but got type '${typeof currentElementEventKey}' for key ${String(currentElementEventKey)}`);
48
- }
49
- else if (currentElementEventKey === '') {
50
- throw new Error(`Got empty string for events key.`);
51
- }
52
- return true;
53
- })
54
- .reduce((accum, currentElementEventKey) => {
55
- const eventObject = defineTypedEvent()([
56
- tagName,
57
- currentElementEventKey,
58
- ].join('-'));
59
- accum[currentElementEventKey] = eventObject;
60
- return accum;
61
- }, {}));
62
- }
@@ -1,36 +0,0 @@
1
- import { type CustomElementTagName } from '../custom-tag-name.js';
2
- import { type PropertyInitMapBase } from './element-properties.js';
3
- import { type BaseStringName } from './string-names.js';
4
- import { type WithTagName } from './tag-name.js';
5
- /**
6
- * Base init map for defining host classes in an element definition.
7
- *
8
- * @category Internal
9
- */
10
- export type HostClassesInitMap<TagName extends CustomElementTagName, HostClassKeys extends BaseStringName<TagName>, Inputs extends PropertyInitMapBase, State extends PropertyInitMapBase> = Record<HostClassKeys,
11
- /**
12
- * Callback to determine when host class should be enabled (based on current inputs and state),
13
- * or just undefined to mark that this host class name will only be manually applied.
14
- */
15
- ((inputs: {
16
- state: Readonly<State>;
17
- inputs: Readonly<Inputs>;
18
- }) => boolean) | false>;
19
- /**
20
- * Creates a mapping of host class keys (as defined in an element definition) to their runtime host
21
- * class names.
22
- *
23
- * @category Internal
24
- */
25
- export type HostClassNamesMap<TagName extends string, HostClassKeys extends string> = Record<HostClassKeys, WithTagName<TagName, string>>;
26
- /**
27
- * Maps element definition host class definitions to their runtime host class name equivalents.
28
- *
29
- * @category Internal
30
- */
31
- export declare function createHostClassNamesMap<TagName extends CustomElementTagName, HostClassKeys extends BaseStringName<TagName>, HostClassesInit extends HostClassesInitMap<TagName, HostClassKeys,
32
- /**
33
- * We can use any here because we don't care what the state or input names are, we just care
34
- * what the host class names are
35
- */
36
- any, any>>(hostClassesInit?: HostClassesInit): HostClassNamesMap<TagName, HostClassKeys>;
@@ -1,16 +0,0 @@
1
- import { mapObjectValues } from '@augment-vir/common';
2
- /**
3
- * Maps element definition host class definitions to their runtime host class name equivalents.
4
- *
5
- * @category Internal
6
- */
7
- export function createHostClassNamesMap(hostClassesInit) {
8
- if (hostClassesInit) {
9
- return mapObjectValues(hostClassesInit, (key) => {
10
- return key;
11
- });
12
- }
13
- else {
14
- return {};
15
- }
16
- }
@@ -1,22 +0,0 @@
1
- import { type ObservableListener } from 'observavir';
2
- import { type DeclarativeElement } from '../declarative-element.js';
3
- import { type PropertyInitMapBase } from './element-properties.js';
4
- /**
5
- * Used for a map of all observables registered to an element instance.
6
- *
7
- * @category Internal
8
- */
9
- export type ObservableListenerMap<OriginalPropertyMap extends PropertyInitMapBase> = Partial<Record<keyof OriginalPropertyMap, ObservableListener<any> | undefined>>;
10
- /**
11
- * Binds the given property key as a reactive property on the given element.
12
- *
13
- * @category Internal
14
- */
15
- export declare function bindReactiveProperty(element: HTMLElement, propertyKey: PropertyKey): void;
16
- /**
17
- * Creates an internal proxy for setting inputs and state properties and then updating them on the
18
- * element itself so they will trigger lit's change detection.
19
- *
20
- * @category Internal
21
- */
22
- export declare function createElementPropertyProxy<PropertyInitGeneric extends PropertyInitMapBase>(element: DeclarativeElement, shouldAlreadyExist: boolean): PropertyInitGeneric;
@@ -1,28 +0,0 @@
1
- import { type ArrayElement } from '@augment-vir/common';
2
- import { type CustomElementTagName } from '../custom-tag-name.js';
3
- /**
4
- * Base requirement for all string names with the element tag name prepended.
5
- *
6
- * @category Internal
7
- */
8
- export type BaseStringName<ElementTagName extends CustomElementTagName> = `${ElementTagName}-${string}`;
9
- /**
10
- * Asserts that all the given string names for the given element are valid.
11
- *
12
- * @category Internal
13
- */
14
- export declare function assertValidStringNames(elementTagName: CustomElementTagName, stringNames: Record<BaseStringName<CustomElementTagName>, any>): void;
15
- /**
16
- * Type safe mapping of string names to themself with the element tag name inserted.
17
- *
18
- * @category Internal
19
- */
20
- export type StringNameMap<ElementTagName extends CustomElementTagName, NameType extends string, StringNames extends ReadonlyArray<string>> = Readonly<{
21
- [StringName in ArrayElement<StringNames>]: `${ElementTagName}-${NameType}-${StringName}`;
22
- }>;
23
- /**
24
- * Converts an array of string names into a `StringNameMap`.
25
- *
26
- * @category Internal
27
- */
28
- export declare function createStringNameMap<ElementTagName extends CustomElementTagName, NameType extends string, StringNames extends ReadonlyArray<string>>(elementTagName: ElementTagName, nameType: NameType, stringNames: StringNames | undefined): StringNameMap<ElementTagName, NameType, StringNames>;
@@ -1,40 +0,0 @@
1
- import { arrayToObject } from '@augment-vir/common';
2
- /**
3
- * Asserts that all the given string names for the given element are valid.
4
- *
5
- * @category Internal
6
- */
7
- export function assertValidStringNames(elementTagName, stringNames) {
8
- const requiredNameStart = [
9
- elementTagName,
10
- '-',
11
- ].join('');
12
- Object.keys(stringNames).forEach((stringName) => {
13
- if (!stringName.startsWith(requiredNameStart)) {
14
- throw new Error(`Invalid element string name '${stringName}' in '${elementTagName}': element string names must begin with the element's tag name.`);
15
- }
16
- });
17
- }
18
- /**
19
- * Converts an array of string names into a `StringNameMap`.
20
- *
21
- * @category Internal
22
- */
23
- export function createStringNameMap(elementTagName, nameType, stringNames) {
24
- if (!stringNames) {
25
- return {};
26
- }
27
- const stringNameMap = arrayToObject(stringNames, (stringName) => {
28
- return {
29
- key: stringName,
30
- value: [
31
- elementTagName,
32
- nameType,
33
- stringName,
34
- ].join('-'),
35
- };
36
- }, {
37
- useRequired: true,
38
- });
39
- return stringNameMap;
40
- }
@@ -1,51 +0,0 @@
1
- import { type CSSResult } from '../../lit-exports/base-lit-exports.js';
2
- import { type CustomElementTagName } from '../custom-tag-name.js';
3
- import { type CssVars } from './css-vars.js';
4
- import { type PropertyInitMapBase } from './element-properties.js';
5
- import { type HostClassNamesMap, type HostClassesInitMap } from './host-classes.js';
6
- import { type BaseStringName } from './string-names.js';
7
- /**
8
- * A host class instance to be referenced inside of an element definition's `styles` callback.
9
- *
10
- * @category Internal
11
- */
12
- export type HostClass = {
13
- selector: CSSResult;
14
- name: CSSResult;
15
- };
16
- /**
17
- * Input type for an element definition's `styles` callback.
18
- *
19
- * @category Internal
20
- */
21
- export type StylesCallbackInput<TagName extends CustomElementTagName, HostClassKeys extends BaseStringName<TagName>, CssVarKeys extends BaseStringName<TagName>> = {
22
- hostClasses: Record<HostClassKeys, HostClass>;
23
- cssVars: Readonly<CssVars<TagName, CssVarKeys>>;
24
- };
25
- /**
26
- * The type for an element definition's `styles` callback.
27
- *
28
- * @category Internal
29
- */
30
- export type StylesCallback<TagName extends CustomElementTagName, HostClassKeys extends BaseStringName<TagName>, CssVarKeys extends BaseStringName<TagName>> = (input: StylesCallbackInput<TagName, HostClassKeys, CssVarKeys>) => CSSResult;
31
- /**
32
- * Creates the input for an element definition's `styles` callback.
33
- *
34
- * @category Internal
35
- */
36
- export declare function createStylesCallbackInput<TagName extends CustomElementTagName, HostClassKeys extends BaseStringName<TagName>, CssVarKeys extends BaseStringName<TagName>>({ hostClassNames, cssVars, }: {
37
- hostClassNames: HostClassNamesMap<TagName, HostClassKeys>;
38
- cssVars: Readonly<CssVars<TagName, CssVarKeys>>;
39
- }): StylesCallbackInput<TagName, HostClassKeys, CssVarKeys>;
40
- /**
41
- * Used inside of an element instance to apply host classes on each render.
42
- *
43
- * @category Internal
44
- */
45
- export declare function applyHostClasses<TagName extends CustomElementTagName, Inputs extends PropertyInitMapBase, State extends PropertyInitMapBase, HostClassKeys extends BaseStringName<TagName>>({ host, hostClassesInit, hostClassNames, state, inputs, }: {
46
- host: HTMLElement;
47
- hostClassesInit: Readonly<HostClassesInitMap<TagName, HostClassKeys, Inputs, State>> | undefined;
48
- hostClassNames: HostClassNamesMap<string, HostClassKeys>;
49
- state: Readonly<State>;
50
- inputs: Readonly<Inputs>;
51
- }): void;
@@ -1,41 +0,0 @@
1
- import { getObjectTypedKeys, mapObjectValues } from '@augment-vir/common';
2
- import { unsafeCSS } from '../../lit-exports/base-lit-exports.js';
3
- /**
4
- * Creates the input for an element definition's `styles` callback.
5
- *
6
- * @category Internal
7
- */
8
- export function createStylesCallbackInput({ hostClassNames, cssVars, }) {
9
- return {
10
- hostClasses: mapObjectValues(hostClassNames, (key, name) => {
11
- return {
12
- name: unsafeCSS(name),
13
- selector: unsafeCSS(`:host(.${name})`),
14
- };
15
- }),
16
- cssVars,
17
- };
18
- }
19
- /**
20
- * Used inside of an element instance to apply host classes on each render.
21
- *
22
- * @category Internal
23
- */
24
- export function applyHostClasses({ host, hostClassesInit, hostClassNames, state, inputs, }) {
25
- if (!hostClassesInit) {
26
- return;
27
- }
28
- getObjectTypedKeys(hostClassesInit).forEach((hostClassKey) => {
29
- const maybeCallback = hostClassesInit[hostClassKey];
30
- const hostClassName = hostClassNames[hostClassKey];
31
- if (typeof maybeCallback === 'function') {
32
- const shouldApplyHostClass = maybeCallback({ state, inputs });
33
- if (shouldApplyHostClass) {
34
- host.classList.add(hostClassName);
35
- }
36
- else {
37
- host.classList.remove(hostClassName);
38
- }
39
- }
40
- });
41
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,56 +0,0 @@
1
- import { type HtmlInterpolation } from '../template-transforms/vir-html/html-interpolation.js';
2
- import { type TypedEvent } from '../typed-event/typed-event.js';
3
- import { type CustomElementTagName } from './custom-tag-name.js';
4
- import { type DeclarativeElement, type DeclarativeElementHost } from './declarative-element.js';
5
- import { type CssVars } from './properties/css-vars.js';
6
- import { type EventDescriptorMap, type EventInitMapEventDetailExtractor, type EventsInitMap } from './properties/element-events.js';
7
- import { type PropertyInitMapBase } from './properties/element-properties.js';
8
- import { type BaseStringName, type StringNameMap } from './properties/string-names.js';
9
- /**
10
- * Type for the `render` element definition method.
11
- *
12
- * @category Internal
13
- */
14
- export type RenderCallback<TagName extends CustomElementTagName = any, Inputs extends PropertyInitMapBase = any, State extends PropertyInitMapBase = any, EventsInit extends EventsInitMap = any, HostClassKeys extends BaseStringName<TagName> = any, CssVarKeys extends BaseStringName<TagName> = any, SlotNames extends ReadonlyArray<string> = any, TestIds extends ReadonlyArray<string> = any> = (params: RenderParams<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>) => HtmlInterpolation;
15
- /**
16
- * Type for the `init` and `cleanup` element definition methods.
17
- *
18
- * @category Internal
19
- */
20
- export type InitCallback<TagName extends CustomElementTagName, Inputs extends PropertyInitMapBase, State extends PropertyInitMapBase, EventsInit extends EventsInitMap, HostClassKeys extends BaseStringName<TagName>, CssVarKeys extends BaseStringName<TagName>, SlotNames extends ReadonlyArray<string>, TestIds extends ReadonlyArray<string>> = (params: RenderParams<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>) => undefined | void;
21
- /**
22
- * Type for the `updateState` render parameter.
23
- *
24
- * @category Internal
25
- */
26
- export type UpdateStateCallback<State extends PropertyInitMapBase> = (newState: Partial<State>) => void;
27
- /**
28
- * The full parameters object passed to `render`, `init`, and `cleanup` element definition methods.
29
- *
30
- * @category Internal
31
- */
32
- export type RenderParams<TagName extends CustomElementTagName, Inputs extends PropertyInitMapBase, State extends PropertyInitMapBase, EventsInit extends EventsInitMap, HostClassKeys extends BaseStringName<TagName>, CssVarKeys extends BaseStringName<TagName>, SlotNames extends ReadonlyArray<string>, TestIds extends ReadonlyArray<string>> = {
33
- state: Readonly<State>;
34
- cssVars: Readonly<CssVars<TagName, CssVarKeys>>;
35
- updateState: UpdateStateCallback<State>;
36
- events: EventDescriptorMap<TagName, EventsInit>;
37
- host: DeclarativeElementHost<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>;
38
- slotNames: Readonly<StringNameMap<TagName, 'slot', SlotNames>>;
39
- testIds: Readonly<StringNameMap<TagName, 'test-id', TestIds>>;
40
- /** Dispatch an event from the current element. */
41
- dispatch: <EventTypeName extends keyof EventsInit>(event: TypedEvent<EventTypeName extends string ? EventTypeName : never, EventInitMapEventDetailExtractor<EventTypeName, EventsInit>> | Event) => boolean;
42
- inputs: Readonly<Inputs>;
43
- };
44
- /**
45
- * This is used to create the parameters passed to the `render`, `init`, and `cleanup` element
46
- * definition methods whenever they are called.
47
- *
48
- * @category Internal
49
- */
50
- export declare function createRenderParams<TagName extends CustomElementTagName, Inputs extends PropertyInitMapBase, State extends PropertyInitMapBase, EventsInit extends EventsInitMap, HostClassKeys extends BaseStringName<TagName>, CssVarKeys extends BaseStringName<TagName>, SlotNames extends ReadonlyArray<string>, TestIds extends ReadonlyArray<string>>({ element, eventsMap, cssVars, slotNamesMap, testIdsMap, }: {
51
- element: DeclarativeElement<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>;
52
- eventsMap: EventDescriptorMap<TagName, EventsInit>;
53
- cssVars: Readonly<CssVars<TagName, CssVarKeys>>;
54
- slotNamesMap: Readonly<StringNameMap<TagName, 'slot', SlotNames>>;
55
- testIdsMap: Readonly<StringNameMap<TagName, 'test-id', TestIds>>;
56
- }): RenderParams<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>;
@@ -1,27 +0,0 @@
1
- import { getObjectTypedKeys } from '@augment-vir/common';
2
- /**
3
- * This is used to create the parameters passed to the `render`, `init`, and `cleanup` element
4
- * definition methods whenever they are called.
5
- *
6
- * @category Internal
7
- */
8
- export function createRenderParams({ element, eventsMap, cssVars, slotNamesMap, testIdsMap, }) {
9
- function updateState(newStatePartial) {
10
- getObjectTypedKeys(newStatePartial).forEach((stateKey) => {
11
- const newValue = newStatePartial[stateKey];
12
- element.instanceState[stateKey] = newValue;
13
- });
14
- }
15
- const renderParams = {
16
- cssVars,
17
- slotNames: slotNamesMap,
18
- testIds: testIdsMap,
19
- dispatch: (event) => element.dispatchEvent(event),
20
- events: eventsMap,
21
- host: element,
22
- inputs: element.instanceInputs,
23
- state: element.instanceState,
24
- updateState,
25
- };
26
- return renderParams;
27
- }
@@ -1,36 +0,0 @@
1
- import { type PartialWithNullable } from '@augment-vir/common';
2
- import { type CustomElementTagName } from './custom-tag-name.js';
3
- import { type DeclarativeElementInit } from './declarative-element-init.js';
4
- import { type DeclarativeElementInputErrorParams } from './define-element.js';
5
- import { type EventsInitMap } from './properties/element-events.js';
6
- import { type PropertyInitMapBase } from './properties/element-properties.js';
7
- import { type BaseStringName } from './properties/string-names.js';
8
- /**
9
- * Options for {@link wrapDefineElement}.
10
- *
11
- * @category Internal
12
- */
13
- export type WrapDefineElementOptions<TagNameRequirement extends CustomElementTagName = CustomElementTagName, InputsRequirement extends PropertyInitMapBase = {}, StateRequirement extends PropertyInitMapBase = {}, EventsInitRequirement extends EventsInitMap = {}> = PartialWithNullable<{
14
- /**
15
- * An optional callback which asserts that an element definition init object given to the
16
- * wrapped element definition functions is valid.
17
- */
18
- assertInputs: (inputInit: DeclarativeElementInit<TagNameRequirement, InputsRequirement, StateRequirement, EventsInitRequirement, BaseStringName<TagNameRequirement>, BaseStringName<TagNameRequirement>, ReadonlyArray<string>, ReadonlyArray<string>>) => void;
19
- /**
20
- * An optional callback which transforms a element definition init object given to the wrapped
21
- * element definition.
22
- */
23
- transformInputs: (inputInit: DeclarativeElementInit<TagNameRequirement, InputsRequirement, StateRequirement, EventsInitRequirement, BaseStringName<TagNameRequirement>, BaseStringName<TagNameRequirement>, ReadonlyArray<string>, ReadonlyArray<string>>) => DeclarativeElementInit<TagNameRequirement, InputsRequirement, StateRequirement, EventsInitRequirement, BaseStringName<TagNameRequirement>, BaseStringName<TagNameRequirement>, ReadonlyArray<string>, ReadonlyArray<string>>;
24
- }>;
25
- /**
26
- * Wraps {@link defineElement} in a superset of requirements. For example:
27
- *
28
- * - You could create element definition functions that require all elements to start with a common
29
- * prefix, like `vir-`.
30
- * - You could create element definition functions that require all elements to have _at least_ a
31
- * specified set of input properties.
32
- * - Etc.
33
- *
34
- * @category Element Definition
35
- */
36
- export declare function wrapDefineElement<TagNameRequirement extends CustomElementTagName = CustomElementTagName, InputsRequirement extends PropertyInitMapBase = {}, StateRequirement extends PropertyInitMapBase = {}, EventsInitRequirement extends EventsInitMap = {}>(options?: WrapDefineElementOptions | undefined): <Inputs extends InputsRequirement>(...errorParams: DeclarativeElementInputErrorParams<Inputs>) => <const TagName extends TagNameRequirement, State extends StateRequirement, EventsInit extends EventsInitRequirement, const HostClassKeys extends BaseStringName<TagName> = `${TagName}-`, const CssVarKeys extends BaseStringName<TagName> = `${TagName}-`, const SlotNames extends ReadonlyArray<string> = Readonly<[]>, const TestIds extends ReadonlyArray<string> = Readonly<[]>>(inputs: DeclarativeElementInit<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>) => import("./declarative-element.js").DeclarativeElementDefinition<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>;
@@ -1,25 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-empty-object-type */
2
- import { defineElement } from './define-element.js';
3
- /**
4
- * Wraps {@link defineElement} in a superset of requirements. For example:
5
- *
6
- * - You could create element definition functions that require all elements to start with a common
7
- * prefix, like `vir-`.
8
- * - You could create element definition functions that require all elements to have _at least_ a
9
- * specified set of input properties.
10
- * - Etc.
11
- *
12
- * @category Element Definition
13
- */
14
- export function wrapDefineElement(options) {
15
- const { assertInputs, transformInputs } = {
16
- assertInputs: options?.assertInputs ?? (() => { }),
17
- transformInputs: options?.transformInputs ?? ((inputs) => inputs),
18
- };
19
- return (...errorParams) => {
20
- return (inputs) => {
21
- assertInputs(inputs);
22
- return defineElement(...errorParams)(transformInputs(inputs));
23
- };
24
- };
25
- }
package/dist/index.js DELETED
@@ -1,42 +0,0 @@
1
- export * from 'observavir';
2
- export * from './declarative-element/custom-tag-name.js';
3
- export * from './declarative-element/declarative-element-init.js';
4
- export * from './declarative-element/declarative-element.js';
5
- export * from './declarative-element/define-element.js';
6
- export * from './declarative-element/definition-options.js';
7
- export * from './declarative-element/directives/async-prop.js';
8
- export * from './declarative-element/directives/attributes.directive.js';
9
- export * from './declarative-element/directives/create-attribute-directive.js';
10
- export * from './declarative-element/directives/directive-helpers.js';
11
- export * from './declarative-element/directives/listen-to-activate.js';
12
- export * from './declarative-element/directives/listen.directive.js';
13
- export * from './declarative-element/directives/mutate.directive.js';
14
- export * from './declarative-element/directives/on-dom-created.directive.js';
15
- export * from './declarative-element/directives/on-dom-rendered.directive.js';
16
- export * from './declarative-element/directives/on-intersect.directive.js';
17
- export * from './declarative-element/directives/on-resize.directive.js';
18
- export * from './declarative-element/directives/render-async.directive.js';
19
- export * from './declarative-element/directives/render-if.directive.js';
20
- export * from './declarative-element/directives/test-id.directive.js';
21
- export * from './declarative-element/is-declarative-element-definition.js';
22
- export * from './declarative-element/is-declarative-element.js';
23
- export * from './declarative-element/properties/css-vars.js';
24
- export * from './declarative-element/properties/element-events.js';
25
- export * from './declarative-element/properties/element-properties.js';
26
- export * from './declarative-element/properties/host-classes.js';
27
- export * from './declarative-element/properties/property-proxy.js';
28
- export * from './declarative-element/properties/string-names.js';
29
- export * from './declarative-element/properties/styles.js';
30
- export * from './declarative-element/properties/tag-name.js';
31
- export * from './declarative-element/render-callback.js';
32
- export * from './declarative-element/wrap-define-element.js';
33
- export * from './lit-exports/all-lit-exports.js';
34
- export * from './require-declarative-element.js';
35
- export * from './template-transforms/minimal-element-definition.js';
36
- export * from './template-transforms/vir-css/vir-css.js';
37
- export * from './template-transforms/vir-html/html-interpolation.js';
38
- export * from './template-transforms/vir-html/vir-html.js';
39
- export * from './typed-event/typed-event.js';
40
- export * from './util/increment.js';
41
- export * from './util/lit-template.js';
42
- export * from './util/type.js';
@@ -1,2 +0,0 @@
1
- export * from './base-lit-exports.js';
2
- export * from './lit-repeat-fix.js';
@@ -1,25 +0,0 @@
1
- export { LitElement, noChange, nothing, svg, unsafeCSS } from 'lit';
2
- export type { CSSResult, CSSResultGroup, CompiledTemplate, CompiledTemplateResult, HTMLTemplateResult, SVGTemplateResult, TemplateResult, } from 'lit';
3
- export * from 'lit/async-directive.js';
4
- export * from 'lit/decorators.js';
5
- export * from 'lit/directive-helpers.js';
6
- export * from 'lit/directive.js';
7
- export * from 'lit/directives/async-append.js';
8
- export * from 'lit/directives/async-replace.js';
9
- export * from 'lit/directives/cache.js';
10
- export * from 'lit/directives/choose.js';
11
- export * from 'lit/directives/class-map.js';
12
- export * from 'lit/directives/guard.js';
13
- export * from 'lit/directives/if-defined.js';
14
- export * from 'lit/directives/join.js';
15
- export * from 'lit/directives/keyed.js';
16
- export * from 'lit/directives/live.js';
17
- export * from 'lit/directives/map.js';
18
- export * from 'lit/directives/range.js';
19
- export * from 'lit/directives/ref.js';
20
- export * from 'lit/directives/style-map.js';
21
- export * from 'lit/directives/template-content.js';
22
- export * from 'lit/directives/unsafe-html.js';
23
- export * from 'lit/directives/unsafe-svg.js';
24
- export * from 'lit/directives/until.js';
25
- export * from 'lit/directives/when.js';
@@ -1,37 +0,0 @@
1
- import { repeat as repeatImport } from 'lit/directives/repeat.js';
2
- /**
3
- * A directive that repeats a series of values (usually `TemplateResults`) generated from an
4
- * iterable, and updates those items efficiently when the iterable changes based on user-provided
5
- * `keys` associated with each item.
6
- *
7
- * Note that if a `keyFn` is provided, strict key-to-DOM mapping is maintained, meaning previous DOM
8
- * for a given key is moved into the new position if needed, and DOM will never be reused with
9
- * values for different keys (new DOM will always be created for new keys). This is generally the
10
- * most efficient way to use `repeat` since it performs minimum unnecessary work for insertions and
11
- * removals.
12
- *
13
- * The `keyFn` takes two parameters, the item and its index, and returns a unique key value.
14
- *
15
- * ```js
16
- * html`
17
- * <ol>
18
- * ${repeat(
19
- * this.items,
20
- * (item) => item.id,
21
- * (item, index) => {
22
- * return html`
23
- * <li>${index}: ${item.name}</li>
24
- * `;
25
- * },
26
- * )}
27
- * </ol>
28
- * `;
29
- * ```
30
- *
31
- * **Important**: If providing a `keyFn`, keys _must_ be unique for all items in a given call to
32
- * `repeat`. The behavior when two or more items have the same key is undefined.
33
- *
34
- * If no `keyFn` is provided, this directive will perform similar to mapping items to values, and
35
- * DOM will be reused against potentially different items.
36
- */
37
- export const repeat = repeatImport;
@@ -1 +0,0 @@
1
- export declare const MyApp: import("element-vir").DeclarativeElementDefinition<"my-app", {}, {}, {}, "my-app-", "my-app-", readonly [], readonly []>;
@@ -1 +0,0 @@
1
- export declare const MyCustomActionEvent: import("../index.js").DefinedTypedEvent<"my-custom-action", number>;
@@ -1,2 +0,0 @@
1
- import { defineTypedEvent } from '../index.js';
2
- export const MyCustomActionEvent = defineTypedEvent()('my-custom-action');
@@ -1,4 +0,0 @@
1
- export type VirTagName = `vir-${string}`;
2
- export declare const defineVirElement: <Inputs extends {}>(...errorParams: import("../index.js").DeclarativeElementInputErrorParams<Inputs>) => <const TagName extends `vir-${string}`, State extends {}, EventsInit extends {}, const HostClassKeys extends import("../index.js").BaseStringName<TagName> = `${TagName}-`, const CssVarKeys extends import("../index.js").BaseStringName<TagName> = `${TagName}-`, const SlotNames extends ReadonlyArray<string> = Readonly<[]>, const TestIds extends ReadonlyArray<string> = Readonly<[]>>(inputs: import("../index.js").DeclarativeElementInit<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>) => import("../index.js").DeclarativeElementDefinition<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>;
3
- export declare const defineVerifiedVirElement: <Inputs extends {}>(...errorParams: import("../index.js").DeclarativeElementInputErrorParams<Inputs>) => <const TagName extends `vir-${string}`, State extends {}, EventsInit extends {}, const HostClassKeys extends import("../index.js").BaseStringName<TagName> = `${TagName}-`, const CssVarKeys extends import("../index.js").BaseStringName<TagName> = `${TagName}-`, const SlotNames extends ReadonlyArray<string> = Readonly<[]>, const TestIds extends ReadonlyArray<string> = Readonly<[]>>(inputs: import("../index.js").DeclarativeElementInit<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>) => import("../index.js").DeclarativeElementDefinition<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>;
4
- export declare const defineTransformedVirElement: <Inputs extends {}>(...errorParams: import("../index.js").DeclarativeElementInputErrorParams<Inputs>) => <const TagName extends `vir-${string}`, State extends {}, EventsInit extends {}, const HostClassKeys extends import("../index.js").BaseStringName<TagName> = `${TagName}-`, const CssVarKeys extends import("../index.js").BaseStringName<TagName> = `${TagName}-`, const SlotNames extends ReadonlyArray<string> = Readonly<[]>, const TestIds extends ReadonlyArray<string> = Readonly<[]>>(inputs: import("../index.js").DeclarativeElementInit<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>) => import("../index.js").DeclarativeElementDefinition<TagName, Inputs, State, EventsInit, HostClassKeys, CssVarKeys, SlotNames, TestIds>;
@@ -1 +0,0 @@
1
- export declare const MySimple: import("element-vir").DeclarativeElementDefinition<"my-simple", {}, {}, {}, "my-simple-", "my-simple-", readonly [], readonly []>;
@@ -1 +0,0 @@
1
- export declare const MyWithAssignment: import("element-vir").DeclarativeElementDefinition<"my-with-assignment", {}, {}, {}, "my-with-assignment-", "my-with-assignment-", readonly [], readonly []>;
@@ -1,15 +0,0 @@
1
- import { defineElement } from 'element-vir';
2
- import { html } from '../index.js';
3
- import { MyWithInputs } from './my-with-inputs.element.js';
4
- export const MyWithAssignment = defineElement()({
5
- tagName: 'my-with-assignment',
6
- render() {
7
- return html `
8
- <h1>My App</h1>
9
- <${MyWithInputs.assign({
10
- email: 'user@example.com',
11
- username: 'user',
12
- })}></${MyWithInputs}>
13
- `;
14
- },
15
- });
@@ -1,10 +0,0 @@
1
- type EndpointData = number[];
2
- export declare const MyWithAsyncProp: import("../index.js").DeclarativeElementDefinition<"my-with-async-prop", {
3
- endpoint: string;
4
- }, {
5
- data: import("../index.js").AsyncProp<EndpointData, {
6
- endpoint: string;
7
- }>;
8
- hi: string;
9
- }, {}, "my-with-async-prop-", "my-with-async-prop-", readonly [], readonly []>;
10
- export {};
@@ -1,3 +0,0 @@
1
- export declare const MyWithAssignmentCleanupCallback: import("element-vir").DeclarativeElementDefinition<"my-with-cleanup-callback", {}, {
2
- intervalId: number;
3
- }, {}, "my-with-cleanup-callback-", "my-with-cleanup-callback-", readonly [], readonly []>;
@@ -1 +0,0 @@
1
- export declare const MyWithCssVars: import("element-vir").DeclarativeElementDefinition<"my-with-css-vars", {}, {}, {}, "my-with-css-vars-", "my-with-css-vars-my-var", readonly [], readonly []>;
@@ -1 +0,0 @@
1
- export declare const MyWithCustomEvents: import("element-vir").DeclarativeElementDefinition<"my-with-custom-events", {}, {}, {}, "my-with-custom-events-", "my-with-custom-events-", readonly [], readonly []>;