@vialiq/web-components 0.9.0 → 0.10.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.
@@ -1,5 +1,9 @@
1
1
  import { LitElement } from 'lit';
2
2
  type Constructor<T = object> = new (...args: any[]) => T;
3
+ /**
4
+ * Generic shape of value types supported by form controls.
5
+ */
6
+ export type DefaultValueType = string | string[] | number | boolean | File | FileList | unknown;
3
7
  /**
4
8
  * Tri-state visual status for form controls.
5
9
  *
@@ -7,35 +11,14 @@ type Constructor<T = object> = new (...args: any[]) => T;
7
11
  * - `'invalid'` — red border, error colours; set by the form when validation fails
8
12
  * - `'valid'` — green border, success colours; set explicitly by the parent when
9
13
  * it wants to confirm a correct value (independent of message)
10
- *
11
- * Designed to be driven from outside (Angular binding, React prop, plain JS) so
12
- * the component never decides on its own that it is "valid" — that is always an
13
- * explicit, intentional signal from the consuming code.
14
14
  */
15
15
  export type ControlStatus = 'default' | 'valid' | 'invalid';
16
16
  /**
17
17
  * Type-only declaration of the shape ValidityMixin adds to a class.
18
18
  * `declare class` emits no runtime code — it is a TS-only contract.
19
- *
20
- * Properties listed here (invalid, required, validityMessage, value) must be
21
- * declared as reactive `@property` accessors on the subclass. The mixin reads
22
- * and writes them but cannot create them — they must exist on the concrete class
23
- * for Lit's reactivity system to pick them up.
24
- *
25
- * _internals must be set via `this.attachInternals()` on the subclass.
26
- * The class must also declare `static formAssociated = true`.
27
19
  */
28
- export declare class ValidityInterface {
29
- /**
30
- * Visual/validation state of the control. Reflects as the `[status]` attribute.
31
- * - `'default'` — no validation styling
32
- * - `'invalid'` — red border / error colours
33
- * - `'valid'` — green border / success colours
34
- *
35
- * Set by the mixin's constraint-validation methods AND by the consuming
36
- * code/framework. The parent always controls this — the component never
37
- * auto-promotes itself to `'valid'`.
38
- */
20
+ export declare class ValidityInterface<V = DefaultValueType> {
21
+ /** Visual/validation state of the control. Reflects as the `[status]` attribute. */
39
22
  get status(): ControlStatus;
40
23
  set status(value: ControlStatus);
41
24
  /** Whether a value is required. Drives the valueMissing validity flag. */
@@ -45,187 +28,55 @@ export declare class ValidityInterface {
45
28
  get validityMessage(): string;
46
29
  set validityMessage(value: string);
47
30
  /** The current component value. Read by _testValidity for required check. */
48
- get value(): string;
49
- set value(v: string);
50
- /**
51
- * ElementInternals instance. Subclass MUST declare:
52
- * protected readonly _internals = this.attachInternals();
53
- * and set:
54
- * static formAssociated = true;
55
- */
31
+ get value(): V;
32
+ set value(v: V);
33
+ /** ElementInternals instance created by the mixin. */
56
34
  protected readonly _internals: ElementInternals;
57
- /**
58
- * Checks if the current value satisfies all constraints.
59
- * Fires a cancelable 'invalid' event (bubbles: false) if invalid.
60
- * Does NOT show browser validation tooltip.
61
- * Returns true if valid.
62
- */
35
+ /** Checks if the current value satisfies all constraints. Does NOT mutate visual status. */
63
36
  checkValidity(): boolean;
64
- /**
65
- * Checks validity AND triggers the browser's built-in validation UI
66
- * (tooltip near the field). Delegates to ElementInternals.reportValidity().
67
- * Returns true if valid.
68
- */
37
+ /** Checks validity, updates visual status, AND triggers the browser's built-in validation UI. */
69
38
  reportValidity(): boolean;
39
+ /** Sets an arbitrary custom validation message. */
40
+ setCustomValidity(message: string): void;
41
+ /** Returns the ValidityState object from ElementInternals. */
42
+ get validity(): ValidityState;
43
+ /** Returns the current validation message from ElementInternals. */
44
+ get validationMessage(): string;
70
45
  /**
71
- * Sets an arbitrary custom validation message.
72
- * Pass an empty string to clear the custom error and restore validity.
73
- * Syncs immediately to ElementInternals so native form constraint API works.
46
+ * Whether this element will be validated when the form is submitted.
47
+ * Returns `false` when the element is disabled.
74
48
  */
75
- setCustomValidity(message: string): void;
49
+ get willValidate(): boolean;
76
50
  /**
77
- * Returns the set of ValidityStateFlags describing why the value is invalid.
78
- * Return {} (empty object) when the value is valid.
79
- *
80
- * The base implementation returns {} (always valid).
81
- * Subclasses override this to add component-specific checks.
82
- *
83
- * Standard flags (all optional, all boolean):
84
- * valueMissing — required field has no value
85
- * tooShort — value is shorter than minlength
86
- * tooLong — value exceeds maxlength
87
- * rangeUnderflow — numeric value < min
88
- * rangeOverflow — numeric value > max
89
- * patternMismatch— value doesn't match pattern
90
- * typeMismatch — value not well-formed for type (email, url, etc.)
91
- * badInput — user input cannot be converted to a value at all
92
- * customError — setCustomValidity() was called with a non-empty string
93
- * stepMismatch — value doesn't conform to step
51
+ * Returns the ValidityStateFlags describing why the value is invalid.
52
+ * Subclasses MUST override this to provide component-specific validation logic.
94
53
  */
95
54
  protected _testValidity(): Partial<ValidityStateFlags>;
55
+ /**
56
+ * Returns the element that the browser validation popup should point at.
57
+ * Override in subclasses that wrap a native control (input, textarea, etc.).
58
+ */
59
+ protected _getValidationAnchor(): HTMLElement | undefined;
60
+ /** Called when the associated form is reset. Resets status and validityMessage. */
61
+ formResetCallback(): void;
62
+ /** Called when the form or parent fieldset disabled state changes. */
63
+ formDisabledCallback(disabled: boolean): void;
64
+ /** Called when the browser restores form state (bfcache, autofill). */
65
+ formStateRestoreCallback(state: string | File | FormData | null, reason: string): void;
96
66
  }
97
67
  /**
98
68
  * ValidityMixin
99
69
  *
100
- * Adds the standard form validation API (`checkValidity`, `reportValidity`,
101
- * `setCustomValidity`) to any form-associated Lit element.
102
- *
103
- * Backed by the native `ElementInternals` API so the component participates
104
- * in `HTMLFormElement` constraint validation, `.elements`, and browser
105
- * validation UI — exactly like a native `<input>`.
106
- *
107
- * ─────────────────────────────────────────────────────────────────────────
108
- * MINIMUM SUBCLASS REQUIREMENTS
109
- * ─────────────────────────────────────────────────────────────────────────
110
- *
111
- * 1. Declare static formAssociated = true;
112
- * Makes the browser register this element as a form participant.
113
- *
114
- * 2. Attach ElementInternals:
115
- * protected readonly _internals = this.attachInternals();
116
- * Must be a field initializer (runs after super() in the constructor).
117
- *
118
- * 3. Declare reactive properties (MUST be @property so Lit tracks changes):
119
- * @property({ reflect: true }) accessor status: ControlStatus = 'default';
120
- * @property({ type: Boolean, reflect: true }) accessor required = false;
121
- * @property() accessor validityMessage = '';
122
- * @property() accessor value = '';
123
- *
124
- * 4. Sync value to internals on every value change:
125
- * override updated(changed: PropertyValues): void {
126
- * super.updated(changed);
127
- * if (changed.has('value')) {
128
- * this._internals.setFormValue(this.value);
129
- * }
130
- * }
131
- *
132
- * 5. Handle form reset:
133
- * formResetCallback(): void {
134
- * this.value = this.getAttribute('value') ?? '';
135
- * this.status = 'default';
136
- * this.validityMessage = '';
137
- * }
138
- *
139
- * 6. Handle fieldset/form disable:
140
- * formDisabledCallback(disabled: boolean): void {
141
- * this.disabled = disabled;
142
- * }
143
- *
144
- * ─────────────────────────────────────────────────────────────────────────
145
- * OVERRIDE _testValidity() FOR CUSTOM CONSTRAINTS
146
- * ─────────────────────────────────────────────────────────────────────────
147
- *
148
- * protected override _testValidity(): Partial<ValidityStateFlags> {
149
- * if (this.required && !this.value) return { valueMissing: true };
150
- * return {};
151
- * }
152
- *
153
- * Chain constraints for components with multiple rules (e.g. vi-input[type="number"]):
154
- *
155
- * protected override _testValidity(): Partial<ValidityStateFlags> {
156
- * if (this.required && !this.value) return { valueMissing: true };
157
- * if (this.minlength && this.value.length < this.minlength)
158
- * return { tooShort: true };
159
- * if (this.maxlength && this.value.length > this.maxlength)
160
- * return { tooLong: true };
161
- * return {};
162
- * }
163
- *
164
- * ─────────────────────────────────────────────────────────────────────────
165
- * FULL USAGE EXAMPLE — vi-input
166
- * ─────────────────────────────────────────────────────────────────────────
167
- *
168
- * import { property } from 'lit/decorators.js';
169
- * import { ValidityMixin } from '../base/validity-mixin.js';
170
- * import { FocusableMixin } from '../base/focusable-mixin.js';
171
- * import { ViElement } from '../base/vi-element.js';
172
- *
173
- * @customElement('vi-input')
174
- * export class ViInput extends ValidityMixin(FocusableMixin(ViElement)) {
175
- * static override formAssociated = true;
176
- * protected readonly _internals = this.attachInternals();
177
- *
178
- * @property({ reflect: true }) accessor status: ControlStatus = 'default';
179
- * @property({ type: Boolean, reflect: true }) accessor required = false;
180
- * @property() accessor validityMessage = '';
181
- * @property() accessor value = '';
182
- *
183
- * protected override _testValidity(): Partial<ValidityStateFlags> {
184
- * if (this.required && !this.value) return { valueMissing: true };
185
- * return {};
186
- * }
187
- *
188
- * override updated(changed: PropertyValues): void {
189
- * super.updated(changed);
190
- * if (changed.has('value')) this._internals.setFormValue(this.value);
191
- * }
192
- *
193
- * formResetCallback(): void {
194
- * this.value = this.getAttribute('value') ?? '';
195
- * this.status = 'default';
196
- * this.validityMessage = '';
197
- * }
198
- *
199
- * formDisabledCallback(disabled: boolean): void {
200
- * this.disabled = disabled;
201
- * }
202
- * }
203
- *
204
- * ─────────────────────────────────────────────────────────────────────────
205
- * INVALID EVENT BEHAVIOUR
206
- * ─────────────────────────────────────────────────────────────────────────
207
- *
208
- * checkValidity() fires a cancelable 'invalid' event when validation fails.
209
- * The event does NOT bubble (matches native form element behaviour).
210
- * Consumer can suppress the default UI by calling event.preventDefault().
211
- *
212
- * Example:
213
- * myInput.addEventListener('invalid', (e) => {
214
- * e.preventDefault(); // suppress browser tooltip
215
- * showMyCustomError(myInput.validityMessage);
216
- * });
217
- *
218
- * ─────────────────────────────────────────────────────────────────────────
219
- * MIXIN COMPOSITION ORDER
220
- * ─────────────────────────────────────────────────────────────────────────
70
+ * Adds the full WHATWG Constraint Validation API and form-associated lifecycle
71
+ * to any Lit element. Consumers only need to:
221
72
  *
222
- * ValidityMixin should wrap FocusableMixin (outermost):
223
- * ValidityMixin(FocusableMixin(ViElement))
73
+ * 1. Override `_testValidity()` to return component-specific validity flags.
74
+ * 2. Declare `value`, `name`, and `disabled` as `@property`.
75
+ * 3. Call `_internals.setFormValue()` in their `updated()` lifecycle.
224
76
  *
225
- * Reason: ValidityMixin only adds methods (checkValidity etc.). It does not
226
- * touch shadowRootOptions or focus delegation, so order has no side-effects.
227
- * Convention is: functionality mixins wrap infrastructure mixins.
77
+ * The mixin owns: `static formAssociated`, `_internals`, `status`, `required`,
78
+ * `validityMessage`, and all form lifecycle callbacks.
228
79
  */
229
- export declare function ValidityMixin<T extends Constructor<LitElement>>(Base: T): T & Constructor<ValidityInterface>;
80
+ export declare function ValidityMixin<V = DefaultValueType, T extends Constructor<LitElement> = Constructor<LitElement>>(Base: T): T & Constructor<ValidityInterface<V>>;
230
81
  export {};
231
82
  //# sourceMappingURL=validity-mixin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validity-mixin.d.ts","sourceRoot":"","sources":["../../../../libs/web-components/src/base/validity-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAIjC,KAAK,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE5D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAOpC;;;;;;;;;OASG;IACH,IAAI,MAAM,IAAI,aAAa,CAAC;IAC5B,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE;IAEjC,0EAA0E;IAC1E,IAAI,QAAQ,IAAI,OAAO,CAAC;IACxB,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;IAE7B,2EAA2E;IAC3E,IAAI,eAAe,IAAI,MAAM,CAAC;IAC9B,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE;IAEnC,6EAA6E;IAC7E,IAAI,KAAK,IAAI,MAAM,CAAC;IACpB,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE;IAIrB;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAIhD;;;;;OAKG;IACH,aAAa,IAAI,OAAO;IAExB;;;;OAIG;IACH,cAAc,IAAI,OAAO;IAEzB;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIxC;;;;;;;;;;;;;;;;;;OAkBG;IAKH,SAAS,CAAC,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;CACvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmIG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,CAAC,UAAU,CAAC,EAC7D,IAAI,EAAE,CAAC,GACN,CAAC,GAAG,WAAW,CAAC,iBAAiB,CAAC,CA0FpC"}
1
+ {"version":3,"file":"validity-mixin.d.ts","sourceRoot":"","sources":["../../../../libs/web-components/src/base/validity-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAItD,KAAK,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhG;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB,CAAC,CAAC,GAAG,gBAAgB;IACzD,oFAAoF;IACpF,IAAI,MAAM,IAAI,aAAa,CAAC;IAC5B,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE;IAEjC,0EAA0E;IAC1E,IAAI,QAAQ,IAAI,OAAO,CAAC;IACxB,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;IAE7B,2EAA2E;IAC3E,IAAI,eAAe,IAAI,MAAM,CAAC;IAC9B,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE;IAEnC,6EAA6E;IAC7E,IAAI,KAAK,IAAI,CAAC,CAAC;IACf,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;IAEhB,sDAAsD;IACtD,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAEhD,4FAA4F;IAC5F,aAAa,IAAI,OAAO;IAExB,iGAAiG;IACjG,cAAc,IAAI,OAAO;IAEzB,mDAAmD;IACnD,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAExC,8DAA8D;IAC9D,IAAI,QAAQ,IAAI,aAAa,CAAC;IAE9B,oEAAoE;IACpE,IAAI,iBAAiB,IAAI,MAAM,CAAC;IAEhC;;;OAGG;IACH,IAAI,YAAY,IAAI,OAAO,CAAC;IAE5B;;;OAGG;IACH,SAAS,CAAC,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAEtD;;;OAGG;IACH,SAAS,CAAC,oBAAoB,IAAI,WAAW,GAAG,SAAS;IAEzD,mFAAmF;IACnF,iBAAiB,IAAI,IAAI;IAEzB,sEAAsE;IACtE,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAE7C,uEAAuE;IACvE,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CACvF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,CAAC,GAAG,gBAAgB,EACpB,CAAC,SAAS,WAAW,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,EAE3D,IAAI,EAAE,CAAC,GACN,CAAC,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAqPvC"}
@@ -2,7 +2,7 @@ import { type PropertyValues, type TemplateResult } from 'lit';
2
2
  import { type ControlStatus } from '../base/validity-mixin.js';
3
3
  import { ViElement } from '../base/vi-element.js';
4
4
  export type CheckboxSize = 'xs' | 'sm' | 'md' | 'lg';
5
- declare const ViCheckbox_base: typeof ViElement & (new (...args: any[]) => import("../base/focusable-mixin.js").FocusableInterface) & (new (...args: any[]) => import("../base/validity-mixin.js").ValidityInterface);
5
+ declare const ViCheckbox_base: typeof ViElement & (new (...args: any[]) => import("../base/focusable-mixin.js").FocusableInterface) & (new (...args: any[]) => import("../base/validity-mixin.js").ValidityInterface<unknown>);
6
6
  /**
7
7
  * vi-checkbox
8
8
  * Form-associated checkbox control using Flux UI tokens.
@@ -29,9 +29,7 @@ declare const ViCheckbox_base: typeof ViElement & (new (...args: any[]) => impor
29
29
  * @csspart label - The label text wrapper.
30
30
  */
31
31
  export declare class ViCheckbox extends ViCheckbox_base {
32
- static formAssociated: boolean;
33
32
  static styles: import("lit").CSSResult;
34
- protected readonly _internals: ElementInternals;
35
33
  private _initialChecked;
36
34
  protected get _focusableElement(): HTMLInputElement | null;
37
35
  accessor status: ControlStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"vi-checkbox.d.ts","sourceRoot":"","sources":["../../../../libs/web-components/src/checkbox/vi-checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;;AAErD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBACa,UAAW,SAAQ,eAAwC;IACtE,MAAM,CAAC,cAAc,UAAQ;IAC7B,OAAgB,MAAM,0BAEpB;IAEF,SAAS,CAAC,QAAQ,CAAC,UAAU,mBAA0B;IACvD,OAAO,CAAC,eAAe,CAAS;IAEhC,cAAuB,iBAAiB,IAAI,gBAAgB,GAAG,IAAI,CAElE;IAI4B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAa;IAC5B,QAAQ,CAAC,QAAQ,UAAS;IAC1D,QAAQ,CAAC,eAAe,SAAM;IAI1C,qBAAqB;IACuB,QAAQ,CAAC,OAAO,UAAS;IAErE,qCAAqC;IACO,QAAQ,CAAC,aAAa,UAAS;IAE3E,0DAA0D;IACf,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAQ;IAE9E,0CAA0C;IAC9B,QAAQ,CAAC,KAAK,SAAQ;IAElC,uBAAuB;IACX,QAAQ,CAAC,IAAI,SAAM;IAE/B,6BAA6B;IACe,QAAQ,CAAC,QAAQ,UAAS;IAItE,SAAS,CAAC,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA0B7C,iBAAiB,IAAI,IAAI;IAKzB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAoB/C,yEAAyE;IACzE,iBAAiB,IAAI,IAAI;IAOzB,6EAA6E;IAC7E,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAM7C,OAAO,CAAC,SAAS;IAmBR,MAAM,IAAI,cAAc;CA0ClC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
1
+ {"version":3,"file":"vi-checkbox.d.ts","sourceRoot":"","sources":["../../../../libs/web-components/src/checkbox/vi-checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;;AAErD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBACa,UAAW,SAAQ,eAAwC;IACtE,OAAgB,MAAM,0BAEpB;IAEF,OAAO,CAAC,eAAe,CAAS;IAEhC,cAAuB,iBAAiB,IAAI,gBAAgB,GAAG,IAAI,CAElE;IAI4B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAa;IAC5B,QAAQ,CAAC,QAAQ,UAAS;IAC1D,QAAQ,CAAC,eAAe,SAAM;IAI1C,qBAAqB;IACuB,QAAQ,CAAC,OAAO,UAAS;IAErE,qCAAqC;IACO,QAAQ,CAAC,aAAa,UAAS;IAE3E,0DAA0D;IACf,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAQ;IAE9E,0CAA0C;IAC9B,QAAQ,CAAC,KAAK,SAAQ;IAElC,uBAAuB;IACX,QAAQ,CAAC,IAAI,SAAM;IAE/B,6BAA6B;IACe,QAAQ,CAAC,QAAQ,UAAS;IAItE,SAAS,CAAC,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA0B7C,iBAAiB,IAAI,IAAI;IAKzB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAoB/C,yEAAyE;IACzE,iBAAiB,IAAI,IAAI;IAOzB,6EAA6E;IAC7E,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAM7C,OAAO,CAAC,SAAS;IAmBR,MAAM,IAAI,cAAc;CA0ClC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { unsafeCSS, css, html } from 'lit';
2
2
  import { customElement, property } from 'lit/decorators.js';
3
3
  import { F as FocusableMixin } from '../focusable-mixin-CmxOyPX5.js';
4
- import { V as ValidityMixin } from '../validity-mixin-BjmXwgWk.js';
4
+ import { V as ValidityMixin } from '../validity-mixin-H4aOFJEr.js';
5
5
  import { V as ViElement } from '../vi-element-C6GfDPs3.js';
6
6
  import { classMap } from 'lit/directives/class-map.js';
7
7
 
@@ -461,12 +461,10 @@ new class extends _identity {
461
461
  _dec
462
462
  ], _ValidityMixin));
463
463
  }
464
- static formAssociated = true;
465
464
  static styles = css`
466
465
  ${unsafeCSS(checkboxStyles)}
467
466
  `;
468
- _internals = (_initProto(this), this.attachInternals());
469
- _initialChecked = false;
467
+ _initialChecked = (_initProto(this), false);
470
468
  get _focusableElement() {
471
469
  return this.shadowRoot?.querySelector('input') ?? null;
472
470
  }
package/index.d.ts CHANGED
@@ -25,4 +25,7 @@ export { ViBadge } from './badge/vi-badge.js';
25
25
  export type { BadgeVariant, BadgeSize } from './badge/vi-badge.js';
26
26
  export { ViAlert } from './alert/vi-alert.js';
27
27
  export type { AlertVariant } from './alert/vi-alert.js';
28
+ export { ViChip } from './chip/vi-chip.js';
29
+ export type { ChipVariant, ChipSize } from './chip/vi-chip.js';
30
+ export { ViChipGroup } from './chip/vi-chip-group.js';
28
31
  //# sourceMappingURL=index.d.ts.map