@lmvz-ds/components 0.36.0 → 0.37.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.
- package/CHANGELOG.md +10 -0
- package/cjs/aria.constants-DPK5mQEL.js +65 -0
- package/cjs/{stencil.util-TjS8_DoU.js → async.util-Dnl6c82X.js} +1 -13
- package/cjs/{directional-focus-controller-3uDoin45.js → directional-focus-controller-8Xd_7MHT.js} +1 -1
- package/cjs/{element-activation-controller-BWtUKzu2.js → element-activation-controller-DzTUocEO.js} +1 -1
- package/cjs/{element.util-CctmBvUY.js → element.util-BlhcwmfR.js} +2 -62
- package/cjs/lmvz-action-list.cjs.entry.js +4 -3
- package/cjs/lmvz-button-group.cjs.entry.js +2 -1
- package/cjs/lmvz-button_2.cjs.entry.js +4 -3
- package/cjs/lmvz-card.cjs.entry.js +1 -1
- package/cjs/lmvz-checkbox.cjs.entry.js +38 -4
- package/cjs/lmvz-components.cjs.js +1 -1
- package/cjs/lmvz-datepicker.cjs.entry.js +10 -3
- package/cjs/lmvz-header_2.cjs.entry.js +4 -3
- package/cjs/lmvz-input.cjs.entry.js +242 -0
- package/cjs/lmvz-menuitem.cjs.entry.js +3 -2
- package/cjs/lmvz-modal.cjs.entry.js +3 -2
- package/cjs/{lmvz-input_2.cjs.entry.js → lmvz-popover.cjs.entry.js} +24 -228
- package/cjs/lmvz-radio.cjs.entry.js +61 -3
- package/cjs/lmvz-select.cjs.entry.js +423 -16
- package/cjs/lmvz-snackbar.cjs.entry.js +1 -1
- package/cjs/lmvz-spinner.cjs.entry.js +1 -1
- package/cjs/lmvz-tab.cjs.entry.js +2 -2
- package/cjs/lmvz-tabs.cjs.entry.js +5 -4
- package/cjs/lmvz-toggle.cjs.entry.js +7 -3
- package/cjs/loader.cjs.js +1 -1
- package/cjs/stencil.util-CBrPLd-F.js +17 -0
- package/collection/components/lmvz-action-list/lmvz-action-list.css +11 -0
- package/collection/components/lmvz-button/lmvz-button.css +11 -0
- package/collection/components/lmvz-card/lmvz-card.css +11 -0
- package/collection/components/lmvz-checkbox/lmvz-checkbox.css +4 -2
- package/collection/components/lmvz-checkbox/lmvz-checkbox.js +68 -8
- package/collection/components/lmvz-datepicker/lmvz-datepicker.css +0 -5
- package/collection/components/lmvz-datepicker/lmvz-datepicker.js +17 -3
- package/collection/components/lmvz-input/lmvz-input.css +1 -1
- package/collection/components/lmvz-input/lmvz-input.js +47 -12
- package/collection/components/lmvz-modal/lmvz-modal.css +11 -0
- package/collection/components/lmvz-popover/lmvz-popover.css +1 -1
- package/collection/components/lmvz-popover/lmvz-popover.js +45 -5
- package/collection/components/lmvz-radio/lmvz-radio.js +77 -9
- package/collection/components/lmvz-select/lmvz-select.css +96 -34
- package/collection/components/lmvz-select/lmvz-select.js +412 -21
- package/collection/components/lmvz-snackbar/lmvz-snackbar.js +1 -1
- package/collection/components/lmvz-spinner/lmvz-spinner.js +1 -1
- package/collection/components/lmvz-tab/lmvz-tab.css +11 -0
- package/collection/components/lmvz-tab/lmvz-tab.js +1 -1
- package/collection/components/lmvz-tabs/lmvz-tabs.css +11 -0
- package/collection/components/lmvz-tabs/lmvz-tabs.js +1 -1
- package/collection/components/lmvz-toggle/lmvz-toggle.js +21 -1
- package/collection/integration/header-integration/header-integration.js +1 -1
- package/collection/styles/fragments/_focus-within.css +2 -2
- package/collection/utils/aria/listbox-controller.js +154 -0
- package/collection/utils/radio/radio-group-controller.js +17 -0
- package/components/lmvz-action-list.js +1 -1
- package/components/lmvz-button.js +1 -1
- package/components/lmvz-card.js +1 -1
- package/components/lmvz-checkbox.js +1 -1
- package/components/lmvz-datepicker.js +1 -1
- package/components/lmvz-input.js +1 -1
- package/components/lmvz-message.js +1 -1
- package/components/lmvz-modal.js +1 -1
- package/components/lmvz-popover.js +1 -1
- package/components/lmvz-radio.js +1 -1
- package/components/lmvz-select.js +1 -1
- package/components/lmvz-snackbar.js +1 -1
- package/components/lmvz-spinner.js +1 -1
- package/components/lmvz-tab.js +1 -1
- package/components/lmvz-tabs.js +1 -1
- package/components/lmvz-toggle.js +1 -1
- package/components/p-BApwCp0R.js +1 -0
- package/components/p-C5gRiLRR.js +1 -0
- package/components/p-DiRcp9V6.js +1 -0
- package/esm/aria.constants-DIyiticz.js +62 -0
- package/esm/{stencil.util-C3QOYC8E.js → async.util-DZj20TV1.js} +1 -13
- package/esm/{directional-focus-controller-Bhu7RqYE.js → directional-focus-controller-QukTTWBE.js} +1 -1
- package/esm/{element-activation-controller-BuwyVq4A.js → element-activation-controller-dxJZKMag.js} +1 -1
- package/esm/{element.util-Bd9JyKJZ.js → element.util-3ydVsxUW.js} +2 -61
- package/esm/lmvz-action-list.entry.js +4 -3
- package/esm/lmvz-button-group.entry.js +2 -1
- package/esm/lmvz-button_2.entry.js +4 -3
- package/esm/lmvz-card.entry.js +1 -1
- package/esm/lmvz-checkbox.entry.js +38 -4
- package/esm/lmvz-components.js +1 -1
- package/esm/lmvz-datepicker.entry.js +10 -3
- package/esm/lmvz-header_2.entry.js +4 -3
- package/esm/lmvz-input.entry.js +240 -0
- package/esm/lmvz-menuitem.entry.js +3 -2
- package/esm/lmvz-modal.entry.js +3 -2
- package/esm/{lmvz-input_2.entry.js → lmvz-popover.entry.js} +23 -226
- package/esm/lmvz-radio.entry.js +61 -3
- package/esm/lmvz-select.entry.js +423 -16
- package/esm/lmvz-snackbar.entry.js +1 -1
- package/esm/lmvz-spinner.entry.js +1 -1
- package/esm/lmvz-tab.entry.js +2 -2
- package/esm/lmvz-tabs.entry.js +5 -4
- package/esm/lmvz-toggle.entry.js +7 -3
- package/esm/loader.js +1 -1
- package/esm/stencil.util-D2-5rsN3.js +15 -0
- package/hydrate/index.js +631 -74
- package/hydrate/index.mjs +631 -74
- package/lmvz-components/lmvz-components.esm.js +1 -1
- package/lmvz-components/p-00489151.entry.js +1 -0
- package/lmvz-components/{p-544e3ccb.entry.js → p-0f65d001.entry.js} +1 -1
- package/lmvz-components/p-137b1fe1.entry.js +1 -0
- package/lmvz-components/p-26dd9684.entry.js +1 -0
- package/lmvz-components/p-398b5cf4.entry.js +1 -0
- package/lmvz-components/p-40716828.entry.js +1 -0
- package/lmvz-components/p-4deaa010.entry.js +1 -0
- package/lmvz-components/p-57a366e6.entry.js +1 -0
- package/lmvz-components/p-70f1e31a.entry.js +1 -0
- package/lmvz-components/p-7872a6b4.entry.js +1 -0
- package/lmvz-components/{p-d280d21a.entry.js → p-88661c50.entry.js} +1 -1
- package/lmvz-components/p-91eb71bb.entry.js +1 -0
- package/lmvz-components/p-BA3wizqg.js +1 -0
- package/lmvz-components/{p-GGkwaiT6.js → p-CHxiS3ja.js} +1 -1
- package/lmvz-components/{p-UhNgD4L3.js → p-CPSyM_e-.js} +1 -1
- package/lmvz-components/p-DIyiticz.js +1 -0
- package/lmvz-components/p-DZj20TV1.js +1 -0
- package/lmvz-components/p-a680a7b2.entry.js +1 -0
- package/lmvz-components/{p-d48203f9.entry.js → p-a6fe9b61.entry.js} +1 -1
- package/lmvz-components/p-bh9cItsP.js +1 -0
- package/lmvz-components/p-e14058e1.entry.js +1 -0
- package/lmvz-components/p-eabbf901.entry.js +1 -0
- package/lmvz-components/p-f3f0ed49.entry.js +1 -0
- package/lmvz-components/p-f516a949.entry.js +1 -0
- package/manifest.json +366 -30
- package/package.json +1 -1
- package/types/api/ds.types.d.ts +1 -0
- package/types/components/lmvz-checkbox/lmvz-checkbox.d.ts +9 -1
- package/types/components/lmvz-datepicker/lmvz-datepicker.d.ts +2 -0
- package/types/components/lmvz-input/lmvz-input.d.ts +3 -0
- package/types/components/lmvz-popover/lmvz-popover.d.ts +2 -0
- package/types/components/lmvz-radio/lmvz-radio.d.ts +12 -2
- package/types/components/lmvz-select/lmvz-select.d.ts +53 -4
- package/types/components/lmvz-toggle/lmvz-toggle.d.ts +1 -0
- package/types/components.d.ts +96 -12
- package/types/utils/aria/listbox-controller.d.ts +42 -0
- package/types/utils/radio/radio-group-controller.d.ts +3 -0
- package/components/p-Bnri3fEI.js +0 -1
- package/components/p-CPuI0_r_.js +0 -1
- package/components/p-CWpl0WaZ.js +0 -1
- package/lmvz-components/p-63f6a596.entry.js +0 -1
- package/lmvz-components/p-7a7aa922.entry.js +0 -1
- package/lmvz-components/p-8022c6dc.entry.js +0 -1
- package/lmvz-components/p-Bd9JyKJZ.js +0 -1
- package/lmvz-components/p-C3QOYC8E.js +0 -1
- package/lmvz-components/p-a611c110.entry.js +0 -1
- package/lmvz-components/p-b1bb4393.entry.js +0 -1
- package/lmvz-components/p-b50b1cb5.entry.js +0 -1
- package/lmvz-components/p-b932cf91.entry.js +0 -1
- package/lmvz-components/p-bff115d4.entry.js +0 -1
- package/lmvz-components/p-d9aede81.entry.js +0 -1
- package/lmvz-components/p-dbfbcb74.entry.js +0 -1
- package/lmvz-components/p-f0e28f3a.entry.js +0 -1
- package/lmvz-components/p-f853faae.entry.js +0 -1
- package/lmvz-components/p-fa2efc42.entry.js +0 -1
- package/lmvz-components/p-fe6f5bdc.entry.js +0 -1
|
@@ -1,226 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-BgvZ4y-3.js');
|
|
4
|
-
var index$1 = require('./index-Bp6Dd2i1.js');
|
|
5
|
-
var ariaValidationController = require('./aria-validation-controller-Do0uEK4t.js');
|
|
6
|
-
var element_util = require('./element.util-CctmBvUY.js');
|
|
7
|
-
var reactiveControllerHost = require('./reactive-controller-host-Bc6B_T45.js');
|
|
8
|
-
var stencil_util = require('./stencil.util-TjS8_DoU.js');
|
|
9
4
|
var ariaLoader = require('./aria-loader-DWUVcapD.js');
|
|
10
|
-
var directionalFocusController = require('./directional-focus-controller-
|
|
11
|
-
var elementActivationController = require('./element-activation-controller-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const LmvzInput = class extends reactiveControllerHost.ReactiveControllerHost {
|
|
17
|
-
get el() { return index.getElement(this); }
|
|
18
|
-
get validationEl() {
|
|
19
|
-
return this.el;
|
|
20
|
-
}
|
|
21
|
-
lmvzInput;
|
|
22
|
-
internals;
|
|
23
|
-
nativeInputElement;
|
|
24
|
-
inputId = `lmvz-input-${inputIdCounter++}`;
|
|
25
|
-
initialValue = '';
|
|
26
|
-
ariaHostMirrorObserver;
|
|
27
|
-
nativeError = false;
|
|
28
|
-
errorFromProp = false;
|
|
29
|
-
get helperId() {
|
|
30
|
-
return this.helperText ? `${this.inputId}-helper` : undefined;
|
|
31
|
-
}
|
|
32
|
-
get showErrorMessage() {
|
|
33
|
-
return this.error && Boolean(this.errorMessage);
|
|
34
|
-
}
|
|
35
|
-
get errorId() {
|
|
36
|
-
return `${this.inputId}-error`;
|
|
37
|
-
}
|
|
38
|
-
get describedBy() {
|
|
39
|
-
const ids = [];
|
|
40
|
-
if (this.helperId)
|
|
41
|
-
ids.push(this.helperId);
|
|
42
|
-
if (this.showErrorMessage)
|
|
43
|
-
ids.push(this.errorId);
|
|
44
|
-
return ids.length > 0 ? ids.join(' ') : undefined;
|
|
45
|
-
}
|
|
46
|
-
value;
|
|
47
|
-
label;
|
|
48
|
-
helperText;
|
|
49
|
-
placeholder;
|
|
50
|
-
disabled = false;
|
|
51
|
-
readonly = false;
|
|
52
|
-
required = false;
|
|
53
|
-
name;
|
|
54
|
-
type = 'text';
|
|
55
|
-
errorMessage;
|
|
56
|
-
autocomplete;
|
|
57
|
-
inputmode;
|
|
58
|
-
autocorrect;
|
|
59
|
-
autocapitalize;
|
|
60
|
-
spellcheck;
|
|
61
|
-
autofocus = false;
|
|
62
|
-
minlength;
|
|
63
|
-
maxlength;
|
|
64
|
-
pattern;
|
|
65
|
-
min;
|
|
66
|
-
max;
|
|
67
|
-
step;
|
|
68
|
-
form;
|
|
69
|
-
size = 'md';
|
|
70
|
-
get error() {
|
|
71
|
-
return this.errorFromProp || this.nativeError;
|
|
72
|
-
}
|
|
73
|
-
set error(value) {
|
|
74
|
-
this.errorFromProp = value;
|
|
75
|
-
}
|
|
76
|
-
async setValue(newValue) {
|
|
77
|
-
const input = this.nativeInputElement;
|
|
78
|
-
const val = newValue ?? '';
|
|
79
|
-
if (input) {
|
|
80
|
-
input.value = val;
|
|
81
|
-
}
|
|
82
|
-
this.value = val;
|
|
83
|
-
this.internals.setFormValue?.(val);
|
|
84
|
-
this.lmvzInput.emit(val);
|
|
85
|
-
}
|
|
86
|
-
async focusInput() {
|
|
87
|
-
this.nativeInputElement?.focus();
|
|
88
|
-
}
|
|
89
|
-
async blurInput() {
|
|
90
|
-
this.nativeInputElement?.blur();
|
|
91
|
-
}
|
|
92
|
-
async select() {
|
|
93
|
-
this.nativeInputElement?.select();
|
|
94
|
-
}
|
|
95
|
-
async checkValidity() {
|
|
96
|
-
return this.nativeInputElement?.checkValidity?.() ?? false;
|
|
97
|
-
}
|
|
98
|
-
async reportValidity() {
|
|
99
|
-
return this.nativeInputElement?.reportValidity?.() ?? false;
|
|
100
|
-
}
|
|
101
|
-
async getInputElement() {
|
|
102
|
-
if (!this.nativeInputElement) {
|
|
103
|
-
await new Promise((resolve) => stencil_util.componentOnReady(this.el, resolve));
|
|
104
|
-
}
|
|
105
|
-
return Promise.resolve(this.nativeInputElement);
|
|
106
|
-
}
|
|
107
|
-
constructor(hostRef) {
|
|
108
|
-
super();
|
|
109
|
-
index.registerInstance(this, hostRef);
|
|
110
|
-
this.lmvzInput = index.createEvent(this, "lmvzInput", 7);
|
|
111
|
-
if (hostRef.$hostElement$["s-ei"]) {
|
|
112
|
-
this.internals = hostRef.$hostElement$["s-ei"];
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
this.internals = hostRef.$hostElement$.attachInternals();
|
|
116
|
-
hostRef.$hostElement$["s-ei"] = this.internals;
|
|
117
|
-
}
|
|
118
|
-
this.addController(new ariaValidationController.AriaValidationController(this, {
|
|
119
|
-
reValidateOnPropChanges: true,
|
|
120
|
-
}));
|
|
121
|
-
}
|
|
122
|
-
componentWillLoad() {
|
|
123
|
-
this.initialValue = this.value ?? '';
|
|
124
|
-
super.componentWillLoad();
|
|
125
|
-
}
|
|
126
|
-
connectedCallback() {
|
|
127
|
-
super.connectedCallback();
|
|
128
|
-
this.ariaHostMirrorObserver = new MutationObserver((mutations) => {
|
|
129
|
-
for (const mutation of mutations) {
|
|
130
|
-
this.mirrorHostAriaAttribute(mutation.attributeName);
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
this.ariaHostMirrorObserver.observe(this.el, {
|
|
134
|
-
attributes: true,
|
|
135
|
-
attributeFilter: [...element_util.ariaHostMirrorAttributes],
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
disconnectedCallback() {
|
|
139
|
-
super.disconnectedCallback();
|
|
140
|
-
this.ariaHostMirrorObserver?.disconnect();
|
|
141
|
-
this.ariaHostMirrorObserver = undefined;
|
|
142
|
-
}
|
|
143
|
-
componentDidLoad() {
|
|
144
|
-
super.componentDidLoad();
|
|
145
|
-
for (const attr of element_util.ariaHostMirrorAttributes) {
|
|
146
|
-
this.mirrorHostAriaAttribute(attr);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
mirrorHostAriaAttribute(attr) {
|
|
150
|
-
if (!attr || !this.nativeInputElement)
|
|
151
|
-
return;
|
|
152
|
-
if (this.el.hasAttribute(attr)) {
|
|
153
|
-
const value = this.el.getAttribute(attr);
|
|
154
|
-
if (value !== null) {
|
|
155
|
-
this.nativeInputElement.setAttribute(attr, value);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
this.nativeInputElement.removeAttribute(attr);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
formAssociatedCallback(form) {
|
|
163
|
-
if (!form)
|
|
164
|
-
return;
|
|
165
|
-
this.internals.setFormValue?.(this.value ?? '');
|
|
166
|
-
}
|
|
167
|
-
formResetCallback() {
|
|
168
|
-
this.internals.setValidity({});
|
|
169
|
-
this.setValue(this.initialValue);
|
|
170
|
-
}
|
|
171
|
-
formStateRestoreCallback(state) {
|
|
172
|
-
this.setValue(state);
|
|
173
|
-
}
|
|
174
|
-
handleValueChange(newValue) {
|
|
175
|
-
if (!this.nativeInputElement)
|
|
176
|
-
return;
|
|
177
|
-
const isInternalChange = this.nativeInputElement.value === newValue;
|
|
178
|
-
if (isInternalChange)
|
|
179
|
-
return;
|
|
180
|
-
this.setValue(newValue);
|
|
181
|
-
}
|
|
182
|
-
handleDisabledChange(disabled) {
|
|
183
|
-
if (disabled && this.nativeInputElement) {
|
|
184
|
-
this.nativeInputElement.blur();
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
handleInput = (event) => {
|
|
188
|
-
const input = event.target;
|
|
189
|
-
this.setValue(input.value);
|
|
190
|
-
};
|
|
191
|
-
handleChange = (event) => {
|
|
192
|
-
const input = event.target ?? this.nativeInputElement;
|
|
193
|
-
this.updateNativeError(input);
|
|
194
|
-
};
|
|
195
|
-
handleFocus = () => { };
|
|
196
|
-
handleBlur = (event) => {
|
|
197
|
-
const input = event.target;
|
|
198
|
-
input.checkValidity?.();
|
|
199
|
-
};
|
|
200
|
-
updateNativeError(fromEvent) {
|
|
201
|
-
const input = fromEvent ?? this.nativeInputElement;
|
|
202
|
-
if (!input)
|
|
203
|
-
return;
|
|
204
|
-
this.nativeError = !(input.checkValidity?.() ?? true);
|
|
205
|
-
}
|
|
206
|
-
render() {
|
|
207
|
-
const hasValue = Boolean(this.value);
|
|
208
|
-
const shouldFloatLabel = hasValue || Boolean(this.placeholder);
|
|
209
|
-
return (index.h("div", { key: 'b7e432c7dbc598189d85040252455c5163fe6395', class: index$1.classNames('input-container', {
|
|
210
|
-
'interaction-filled': hasValue,
|
|
211
|
-
}) }, index.h("div", { key: 'a912a49f4372423d06c7a4856fb5101cb0afd0c5', class: "input-wrapper" }, index.h("slot", { key: '88e4ee4518de0bfeef9e30a254e0d2ec6693048c', name: "before-input" }), index.h("div", { key: 'a413a7b7e8f6510f1c09fd0052889c8fad1653f1', class: "label-input-group" }, index.h("label", { key: '9639713adff74afcf4fb1eab0e74b7447d02b986', htmlFor: this.inputId, class: index$1.classNames({ floating: shouldFloatLabel }) }, this.label, this.required && (index.h("span", { key: '28c1069908a2f1905008f1decce9077e9ef1538a', class: "required-indicator", "aria-hidden": "true" }, ' ', "*"))), index.h("input", { key: '421fd9bb50de8ba189a59578373060593e1a9aab', id: this.inputId, ref: (el) => (this.nativeInputElement = el), type: this.type, min: this.min, max: this.max, step: this.step, value: this.value, name: this.name, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, form: this.form, autocomplete: this.autocomplete, inputmode: this.inputmode, autocorrect: this.autocorrect, autocapitalize: this.autocapitalize, spellcheck: this.spellcheck, autofocus: this.autofocus, minlength: this.minlength, maxlength: this.maxlength, pattern: this.pattern, "aria-invalid": this.error ? 'true' : 'false', "aria-required": this.required ? 'true' : 'false', "aria-describedby": this.describedBy, "aria-errormessage": this.errorId, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur })), index.h("slot", { key: '09557e1d84bb4ab2456caf391a177c8f80063ab9', name: "after-input" })), index.h("div", { key: '34162f744f8584991e4493ebcdb6a2f75a1f8990', id: this.helperId, role: "status" }, this.helperText || null), index.h("div", { key: 'a3c3bffbb439f9127278cedbfefa5e1986e68f23', id: this.errorId, role: "alert" }, (this.showErrorMessage && this.errorMessage) || null)));
|
|
212
|
-
}
|
|
213
|
-
static get formAssociated() { return true; }
|
|
214
|
-
static get watchers() { return {
|
|
215
|
-
"value": [{
|
|
216
|
-
"handleValueChange": 0
|
|
217
|
-
}],
|
|
218
|
-
"disabled": [{
|
|
219
|
-
"handleDisabledChange": 0
|
|
220
|
-
}]
|
|
221
|
-
}; }
|
|
222
|
-
};
|
|
223
|
-
LmvzInput.style = lmvzInputCss();
|
|
5
|
+
var directionalFocusController = require('./directional-focus-controller-8Xd_7MHT.js');
|
|
6
|
+
var elementActivationController = require('./element-activation-controller-DzTUocEO.js');
|
|
7
|
+
var async_util = require('./async.util-Dnl6c82X.js');
|
|
8
|
+
var element_util = require('./element.util-BlhcwmfR.js');
|
|
9
|
+
require('./reactive-controller-host-Bc6B_T45.js');
|
|
10
|
+
require('./aria.constants-DPK5mQEL.js');
|
|
224
11
|
|
|
225
12
|
/**
|
|
226
13
|
* Custom positioning reference element.
|
|
@@ -1579,7 +1366,7 @@ const computePosition = (reference, floating, options) => {
|
|
|
1579
1366
|
});
|
|
1580
1367
|
};
|
|
1581
1368
|
|
|
1582
|
-
const lmvzPopoverCss = () => `@layer lmvz-ds.reset,lmvz-ds.theme,lmvz-ds.components,lmvz-ds.overrides; @layer lmvz-ds.components{.lmvz-wrapper-card-sm,.lmvz-wrapper-card-md,.lmvz-wrapper-card-lg{background:var(--lmvz-semantic-color-surface-primary, #ffffff);box-shadow:var(--lmvz-ds-shadow-l3-default-strong, 0 2px 32px 0 rgba(120, 120, 128, 0.11))}.lmvz-wrapper-card-sm{padding:var(--lmvz-component-wrapper-sm-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)) var(--lmvz-component-wrapper-sm-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem));border-radius:var(--lmvz-component-wrapper-sm-border-radius, 14px)}.lmvz-wrapper-card-md{padding:var(--lmvz-component-wrapper-md-padding-y, clamp(1rem, 0.88rem + 0.52vw, 1.5rem)) var(--lmvz-component-wrapper-md-padding-x, clamp(1rem, 0.88rem + 0.52vw, 1.5rem));border-radius:var(--lmvz-component-wrapper-md-border-radius, 18px)}.lmvz-wrapper-card-lg{padding:var(--lmvz-component-wrapper-lg-padding-y, clamp(2.25rem, 2.19rem + 0.26vw, 2.5rem)) var(--lmvz-component-wrapper-lg-padding-x, clamp(1.5rem, 1.14rem + 1.55vw, 3rem));border-radius:var(--lmvz-component-wrapper-lg-border-radius, 18px)}}:host{--lmvz-popover-z-index-internal:var(--lmvz-popover-z-index,
|
|
1369
|
+
const lmvzPopoverCss = () => `@layer lmvz-ds.reset,lmvz-ds.theme,lmvz-ds.components,lmvz-ds.overrides; @layer lmvz-ds.components{.lmvz-wrapper-card-sm,.lmvz-wrapper-card-md,.lmvz-wrapper-card-lg{background:var(--lmvz-semantic-color-surface-primary, #ffffff);box-shadow:var(--lmvz-ds-shadow-l3-default-strong, 0 2px 32px 0 rgba(120, 120, 128, 0.11))}.lmvz-wrapper-card-sm{padding:var(--lmvz-component-wrapper-sm-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)) var(--lmvz-component-wrapper-sm-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem));border-radius:var(--lmvz-component-wrapper-sm-border-radius, 14px)}.lmvz-wrapper-card-md{padding:var(--lmvz-component-wrapper-md-padding-y, clamp(1rem, 0.88rem + 0.52vw, 1.5rem)) var(--lmvz-component-wrapper-md-padding-x, clamp(1rem, 0.88rem + 0.52vw, 1.5rem));border-radius:var(--lmvz-component-wrapper-md-border-radius, 18px)}.lmvz-wrapper-card-lg{padding:var(--lmvz-component-wrapper-lg-padding-y, clamp(2.25rem, 2.19rem + 0.26vw, 2.5rem)) var(--lmvz-component-wrapper-lg-padding-x, clamp(1.5rem, 1.14rem + 1.55vw, 3rem));border-radius:var(--lmvz-component-wrapper-lg-border-radius, 18px)}}:host{--lmvz-popover-z-index-internal:var(--lmvz-popover-z-index, 100);display:contents;.container{position:absolute;top:-9999999999px;left:-9999999999px;max-width:var(--lmvz-popover-max-width, none);max-height:var(--lmvz-popover-max-height, none);z-index:var(--lmvz-popover-z-index-internal);overflow:auto;box-sizing:border-box}}:host(:not([open])) .container{display:none}`;
|
|
1583
1370
|
|
|
1584
1371
|
const LmvzPopover = class {
|
|
1585
1372
|
constructor(hostRef) {
|
|
@@ -1600,6 +1387,7 @@ const LmvzPopover = class {
|
|
|
1600
1387
|
placement = 'bottom-start';
|
|
1601
1388
|
size = 'sm';
|
|
1602
1389
|
autoFocus = true;
|
|
1390
|
+
containerRole = 'dialog';
|
|
1603
1391
|
label;
|
|
1604
1392
|
lmvzOpen;
|
|
1605
1393
|
lmvzClose;
|
|
@@ -1620,6 +1408,7 @@ const LmvzPopover = class {
|
|
|
1620
1408
|
}
|
|
1621
1409
|
componentDidLoad() {
|
|
1622
1410
|
autoAssignId(this.el);
|
|
1411
|
+
this.syncContainerId();
|
|
1623
1412
|
}
|
|
1624
1413
|
handleOpenChange(isOpen) {
|
|
1625
1414
|
if (isOpen) {
|
|
@@ -1635,7 +1424,7 @@ const LmvzPopover = class {
|
|
|
1635
1424
|
this.anchor = undefined;
|
|
1636
1425
|
return;
|
|
1637
1426
|
}
|
|
1638
|
-
await
|
|
1427
|
+
await async_util.wait();
|
|
1639
1428
|
this.anchorEl = typeof anchor === 'string' ? document.getElementById(anchor) : anchor;
|
|
1640
1429
|
this.setupAnchorEl();
|
|
1641
1430
|
if (!this.open)
|
|
@@ -1646,16 +1435,23 @@ const LmvzPopover = class {
|
|
|
1646
1435
|
this.removeCloseHandlers();
|
|
1647
1436
|
this.extEventController.abort();
|
|
1648
1437
|
}
|
|
1438
|
+
syncContainerId() {
|
|
1439
|
+
const hostId = this.el.getAttribute('id');
|
|
1440
|
+
if (!hostId || !this.containerEl)
|
|
1441
|
+
return;
|
|
1442
|
+
this.containerEl.id = hostId;
|
|
1443
|
+
}
|
|
1649
1444
|
setupAnchorEl() {
|
|
1650
1445
|
const { anchorEl } = this;
|
|
1651
1446
|
if (!anchorEl) {
|
|
1652
1447
|
console.warn('no anchor element set for', this);
|
|
1653
1448
|
return;
|
|
1654
1449
|
}
|
|
1450
|
+
this.syncContainerId();
|
|
1655
1451
|
if (!anchorEl.hasAttribute('aria-haspopup')) {
|
|
1656
|
-
anchorEl.setAttribute('aria-haspopup', 'dialog');
|
|
1452
|
+
anchorEl.setAttribute('aria-haspopup', this.containerRole === 'dialog' ? 'dialog' : this.containerRole);
|
|
1657
1453
|
}
|
|
1658
|
-
anchorEl.setAttribute('aria-controls', this.el.getAttribute('id'));
|
|
1454
|
+
anchorEl.setAttribute('aria-controls', this.containerEl?.id || this.el.getAttribute('id'));
|
|
1659
1455
|
if (!anchorEl.hasAttribute('aria-expanded')) {
|
|
1660
1456
|
anchorEl.setAttribute('aria-expanded', this.open ? 'true' : 'false');
|
|
1661
1457
|
}
|
|
@@ -1680,13 +1476,14 @@ const LmvzPopover = class {
|
|
|
1680
1476
|
async onOpen() {
|
|
1681
1477
|
this.previouslyFocusedElement = element_util.getDeepActiveElement(document);
|
|
1682
1478
|
this.setupCloseHandlers();
|
|
1683
|
-
await
|
|
1479
|
+
await async_util.waitFrame();
|
|
1684
1480
|
await this.updatePosition();
|
|
1685
1481
|
autoAssignId(this.el);
|
|
1482
|
+
this.syncContainerId();
|
|
1686
1483
|
this.applyAnchorAriaOpen();
|
|
1687
1484
|
this.lmvzOpen.emit();
|
|
1688
|
-
await
|
|
1689
|
-
if (this.autoFocus) {
|
|
1485
|
+
await async_util.waitFrame();
|
|
1486
|
+
if (this.autoFocus && this.containerRole === 'dialog') {
|
|
1690
1487
|
this.focusFirst();
|
|
1691
1488
|
}
|
|
1692
1489
|
}
|
|
@@ -1761,7 +1558,7 @@ const LmvzPopover = class {
|
|
|
1761
1558
|
this.closureController?.abort();
|
|
1762
1559
|
}
|
|
1763
1560
|
render() {
|
|
1764
|
-
return (index.h(index.Host, { key: '
|
|
1561
|
+
return (index.h(index.Host, { key: '8dadcc766deebc03ea744fd1002078b382bfd48d' }, index.h("div", { key: 'd332714964212db6f5446afb1b8f38ff031a87b9', role: this.containerRole, part: "container", class: `container lmvz-wrapper-card-${this.size}`, "aria-label": this.label || undefined, ref: (el) => (this.containerEl = el) }, index.h("slot", { key: '0fa1d214c8c48942751cbd4759ebc992eacc8f72', ref: (el) => (this.slotEl = el) }))));
|
|
1765
1562
|
}
|
|
1766
1563
|
static get watchers() { return {
|
|
1767
1564
|
"open": [{
|
|
@@ -1805,5 +1602,4 @@ function validatePopoverAria(hostEl, label, anchorProp, anchorEl) {
|
|
|
1805
1602
|
}
|
|
1806
1603
|
LmvzPopover.style = lmvzPopoverCss();
|
|
1807
1604
|
|
|
1808
|
-
exports.lmvz_input = LmvzInput;
|
|
1809
1605
|
exports.lmvz_popover = LmvzPopover;
|
|
@@ -36,6 +36,7 @@ class RadioGroup {
|
|
|
36
36
|
if (wasEmpty) {
|
|
37
37
|
document.addEventListener('focusin', this._focusinHandler, true);
|
|
38
38
|
}
|
|
39
|
+
this.refreshValidity();
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
unregister(host) {
|
|
@@ -46,10 +47,19 @@ class RadioGroup {
|
|
|
46
47
|
if (this.hosts.length === 0) {
|
|
47
48
|
document.removeEventListener('focusin', this._focusinHandler, true);
|
|
48
49
|
}
|
|
50
|
+
this.refreshValidity();
|
|
49
51
|
}
|
|
50
52
|
get sortedEnabled() {
|
|
51
53
|
return this.hosts.filter((h) => !h.disabled);
|
|
52
54
|
}
|
|
55
|
+
isAnyChecked() {
|
|
56
|
+
return this.hosts.some((host) => host.checked);
|
|
57
|
+
}
|
|
58
|
+
refreshValidity() {
|
|
59
|
+
for (const host of this.hosts) {
|
|
60
|
+
host.updateValidity();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
53
63
|
setFocused(host) {
|
|
54
64
|
this._focusedHost = host;
|
|
55
65
|
this.updateTabindex();
|
|
@@ -65,6 +75,7 @@ class RadioGroup {
|
|
|
65
75
|
host.checked = host === selectedHost;
|
|
66
76
|
}
|
|
67
77
|
this.updateTabindex();
|
|
78
|
+
this.refreshValidity();
|
|
68
79
|
}
|
|
69
80
|
updateTabindex() {
|
|
70
81
|
const enabled = this.sortedEnabled;
|
|
@@ -126,6 +137,12 @@ class RadioGroupController {
|
|
|
126
137
|
select(selectedHost) {
|
|
127
138
|
this.group?.select(selectedHost);
|
|
128
139
|
}
|
|
140
|
+
isAnyChecked() {
|
|
141
|
+
return this.group?.isAnyChecked() ?? false;
|
|
142
|
+
}
|
|
143
|
+
refreshValidity() {
|
|
144
|
+
this.group?.refreshValidity();
|
|
145
|
+
}
|
|
129
146
|
setFocused(host) {
|
|
130
147
|
this.group?.setFocused(host);
|
|
131
148
|
}
|
|
@@ -168,7 +185,7 @@ class RadioGroupController {
|
|
|
168
185
|
|
|
169
186
|
const lmvzRadioCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('RouterBook-Regular'), local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'); font-weight: 400; } @font-face { font-family: Router; src: local('RouterMedium-Regular'), local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'); font-weight: 500; } @font-face { font-family: Router; src: local('RouterBold-Regular'), local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'); font-weight: 700; } } .sc-lmvz-radio-h { display: inline-block; --radio-circle-size: var(--lmvz-global-s18, 18px); --radio-dot-size: 0.5rem; --radio-bg: var(--lmvz-semantic-color-surface-input-primary, #ffffff); --radio-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); --radio-border-color-hover: var(--lmvz-semantic-color-border-hover, #a1a1a1); --radio-border-color-checked: var(--lmvz-semantic-color-border-active, #0f8acc); --radio-border-color-error: var(--lmvz-semantic-color-status-on-danger, #a31419); --radio-dot-color: var(--lmvz-semantic-color-border-active, #0f8acc); --radio-wrapper-bg-hover: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); --radio-wrapper-bg-active: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); --radio-label-color: var(--lmvz-semantic-color-on-surface-primary, #000000); --radio-label-color-checked: var(--lmvz-semantic-color-status-on-active, #0e7ab4); --radio-helper-color: var(--lmvz-semantic-color-on-surface-secondary, #545454); --radio-easing: var(--lmvz-global-easing-default, ease); --radio-duration: 0.2s; display: flex; align-items: center; gap: var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); padding-block: var(--lmvz-dimension-8-2, clamp(0.13rem, 0.03rem + 0.39vw, 0.5rem)); padding-inline: var(--lmvz-dimension-12-8, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); border-radius: var(--lmvz-semantic-border-radius-round, 999px); overflow: clip; cursor: pointer; background-color: transparent; position: relative; transition: background-color var(--radio-duration) var(--radio-easing); } input.sc-lmvz-radio { position: absolute; inset-block-start: var(--lmvz-dimension-8-2, clamp(0.13rem, 0.03rem + 0.39vw, 0.5rem)); inset-inline-start: var(--lmvz-dimension-10-4, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); opacity: 0; width: var(--radio-circle-size); height: var(--radio-circle-size); margin: 0; cursor: pointer; z-index: 1; } .circle.sc-lmvz-radio { width: var(--radio-circle-size); height: var(--radio-circle-size); border-radius: 50%; border: var(--lmvz-semantic-border-width-default, 1px) solid var(--radio-border-color); background-color: var(--radio-bg); pointer-events: none; flex-shrink: 0; display: flex; align-items: center; justify-content: center; box-sizing: border-box; transition: border-color var(--radio-duration) var(--radio-easing); } .dot.sc-lmvz-radio { width: var(--radio-dot-size); height: var(--radio-dot-size); border-radius: 50%; background-color: var(--radio-dot-color); } .content.sc-lmvz-radio { display: flex; flex-direction: column; overflow-wrap: break-word; min-width: 0; } label.sc-lmvz-radio { font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router); color: var(--radio-label-color); cursor: pointer; transition: color var(--radio-duration) var(--radio-easing); } .helper-text.sc-lmvz-radio { display: block; font: var(--lmvz-typography-body-sm, 400 clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem) / 1.5 Router); color: var(--radio-helper-color); margin-block-start: 2px; } .helper-text.sc-lmvz-radio:empty { display: none; } @media (hover: hover) { .sc-lmvz-radio-h:hover .circle.sc-lmvz-radio { border-color: var(--radio-border-color-hover); } .sc-lmvz-radio-h:hover { background-color: var(--radio-wrapper-bg-hover); } } .sc-lmvz-radio-h:active { background-color: var(--radio-wrapper-bg-active); } [checked].sc-lmvz-radio-h .circle.sc-lmvz-radio { border-color: var(--radio-border-color-checked); } [checked].sc-lmvz-radio-h label.sc-lmvz-radio { color: var(--radio-label-color-checked); } [error].sc-lmvz-radio-h .circle.sc-lmvz-radio { border-color: var(--radio-border-color-error); } [error].sc-lmvz-radio-h .helper-text.sc-lmvz-radio { color: var(--lmvz-semantic-color-status-on-danger, #a31419); } [disabled].sc-lmvz-radio-h { opacity: var(--lmvz-component-input-disabled-opacity, 40%); pointer-events: none; cursor: not-allowed; } @media (forced-colors: active) { .circle.sc-lmvz-radio { forced-color-adjust: auto; border-color: ButtonText; background-color: Field; } [checked].sc-lmvz-radio-h .circle.sc-lmvz-radio { border-color: Highlight; } .dot.sc-lmvz-radio { background-color: ButtonText; } [checked].sc-lmvz-radio-h .dot.sc-lmvz-radio { background-color: HighlightText; } }`;
|
|
170
187
|
|
|
171
|
-
const focusWithinCss = () => `.sc-lmvz-radio-h:focus-
|
|
188
|
+
const focusWithinCss = () => `.sc-lmvz-radio-h:has(:focus-visible){outline:var(--lmvz-ds-outline, 1px solid #0e7ab4);outline-offset:var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem))}@media (forced-colors: active){.sc-lmvz-radio-h:has(:focus-visible){outline-color:Highlight;box-shadow:none}}`;
|
|
172
189
|
|
|
173
190
|
let radioIdCounter = 0;
|
|
174
191
|
const LmvzRadio = class extends reactiveControllerHost.ReactiveControllerHost {
|
|
@@ -190,7 +207,14 @@ const LmvzRadio = class extends reactiveControllerHost.ReactiveControllerHost {
|
|
|
190
207
|
name;
|
|
191
208
|
disabled = false;
|
|
192
209
|
required = false;
|
|
193
|
-
|
|
210
|
+
nativeError = false;
|
|
211
|
+
errorFromProp = false;
|
|
212
|
+
get error() {
|
|
213
|
+
return this.errorFromProp || this.nativeError;
|
|
214
|
+
}
|
|
215
|
+
set error(value) {
|
|
216
|
+
this.errorFromProp = value;
|
|
217
|
+
}
|
|
194
218
|
helperText;
|
|
195
219
|
form;
|
|
196
220
|
autofocus = false;
|
|
@@ -198,6 +222,7 @@ const LmvzRadio = class extends reactiveControllerHost.ReactiveControllerHost {
|
|
|
198
222
|
_handlingFormReset = false;
|
|
199
223
|
handleCheckedChange(newVal, oldVal) {
|
|
200
224
|
this.internals.setFormValue?.(newVal ? this.value : null);
|
|
225
|
+
this.updateValidity();
|
|
201
226
|
if (!newVal && oldVal && !this._handlingNativeChange && !this._handlingFormReset) {
|
|
202
227
|
this.lmvzChange.emit(false);
|
|
203
228
|
}
|
|
@@ -205,6 +230,9 @@ const LmvzRadio = class extends reactiveControllerHost.ReactiveControllerHost {
|
|
|
205
230
|
this.lmvzChange.emit(true);
|
|
206
231
|
}
|
|
207
232
|
}
|
|
233
|
+
handleRequiredChange() {
|
|
234
|
+
this.updateValidity();
|
|
235
|
+
}
|
|
208
236
|
handleValueChange(newVal) {
|
|
209
237
|
if (this.checked) {
|
|
210
238
|
this.internals.setFormValue?.(newVal);
|
|
@@ -226,6 +254,9 @@ const LmvzRadio = class extends reactiveControllerHost.ReactiveControllerHost {
|
|
|
226
254
|
async reportValidity() {
|
|
227
255
|
return this.internals?.reportValidity() ?? true;
|
|
228
256
|
}
|
|
257
|
+
async getValidationMessage() {
|
|
258
|
+
return this.internals?.validationMessage ?? '';
|
|
259
|
+
}
|
|
229
260
|
constructor(hostRef) {
|
|
230
261
|
super();
|
|
231
262
|
index.registerInstance(this, hostRef);
|
|
@@ -247,8 +278,13 @@ const LmvzRadio = class extends reactiveControllerHost.ReactiveControllerHost {
|
|
|
247
278
|
componentWillLoad() {
|
|
248
279
|
this.initialChecked = this.checked;
|
|
249
280
|
this.internals.setFormValue?.(this.checked ? this.value : null);
|
|
281
|
+
this.updateValidity();
|
|
250
282
|
super.componentWillLoad();
|
|
251
283
|
}
|
|
284
|
+
componentDidLoad() {
|
|
285
|
+
this.updateValidity();
|
|
286
|
+
super.componentDidLoad();
|
|
287
|
+
}
|
|
252
288
|
formAssociatedCallback() {
|
|
253
289
|
this.internals.setFormValue?.(this.checked ? this.value : null);
|
|
254
290
|
}
|
|
@@ -260,6 +296,8 @@ const LmvzRadio = class extends reactiveControllerHost.ReactiveControllerHost {
|
|
|
260
296
|
finally {
|
|
261
297
|
this._handlingFormReset = false;
|
|
262
298
|
}
|
|
299
|
+
this.updateValidity();
|
|
300
|
+
this.radioGroupController.refreshValidity();
|
|
263
301
|
}
|
|
264
302
|
formStateRestoreCallback(state) {
|
|
265
303
|
if (typeof state !== 'string')
|
|
@@ -272,6 +310,20 @@ const LmvzRadio = class extends reactiveControllerHost.ReactiveControllerHost {
|
|
|
272
310
|
this._handlingFormReset = false;
|
|
273
311
|
}
|
|
274
312
|
}
|
|
313
|
+
isAnyInGroupChecked() {
|
|
314
|
+
return this.radioGroupController.isAnyChecked();
|
|
315
|
+
}
|
|
316
|
+
updateValidity() {
|
|
317
|
+
if (this.required && !this.isAnyInGroupChecked()) {
|
|
318
|
+
this.internals.setValidity?.({ valueMissing: true }, 'Please select an option.', this.nativeInput);
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
this.internals.setValidity?.({});
|
|
322
|
+
this.nativeError = false;
|
|
323
|
+
}
|
|
324
|
+
handleInvalid() {
|
|
325
|
+
this.nativeError = true;
|
|
326
|
+
}
|
|
275
327
|
handleChange = (event) => {
|
|
276
328
|
this._handlingNativeChange = true;
|
|
277
329
|
try {
|
|
@@ -314,14 +366,20 @@ const LmvzRadio = class extends reactiveControllerHost.ReactiveControllerHost {
|
|
|
314
366
|
return;
|
|
315
367
|
this.radioGroupController.setFocused(target);
|
|
316
368
|
}
|
|
369
|
+
retargetInnerClicks() {
|
|
370
|
+
this.nativeInput?.click();
|
|
371
|
+
}
|
|
317
372
|
render() {
|
|
318
|
-
return (index.h(index.Host, { key: '
|
|
373
|
+
return (index.h(index.Host, { key: 'f1fdc1167c4e59c2524e1e545c3382ca32853788' }, index.h("input", { key: 'c1b711444475ed401766cc5827eeaec0c46b62cf', type: "radio", id: this.radioId, value: this.value, checked: this.checked, disabled: this.disabled, autoFocus: this.autofocus, "aria-required": this.required ? 'true' : 'false', "aria-invalid": this.error ? 'true' : undefined, "aria-describedby": this.helperId, ref: (el) => (this.nativeInput = el), onChange: this.handleChange }), index.h("span", { key: 'b25e623269df05bdf8159e72da4df2e0bfb5d7bc', class: "circle", "aria-hidden": "true" }, this.checked && index.h("span", { key: '93d12890c7ba0abe203c63953ea1115aee37d7a0', class: "dot" })), index.h("span", { key: '44dcfdc4e7ee3820624b0d02a438139f45bb8733', class: "content" }, index.h("label", { key: 'd0547cd5e79642b298da155c9937715224b52cae', htmlFor: this.radioId }, this.label), index.h("span", { key: 'a9df5dd8a775a2f7422d5bac296869f88553e33f', onClick: this.retargetInnerClicks.bind(this), "aria-live": "polite", class: "helper-text", id: this.helperId }, this.helperText))));
|
|
319
374
|
}
|
|
320
375
|
static get formAssociated() { return true; }
|
|
321
376
|
static get watchers() { return {
|
|
322
377
|
"checked": [{
|
|
323
378
|
"handleCheckedChange": 0
|
|
324
379
|
}],
|
|
380
|
+
"required": [{
|
|
381
|
+
"handleRequiredChange": 0
|
|
382
|
+
}],
|
|
325
383
|
"value": [{
|
|
326
384
|
"handleValueChange": 0
|
|
327
385
|
}],
|