@kodaris/krubble-components 1.0.61 → 1.0.63
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/custom-elements.json +1271 -460
- package/dist/form/checkbox/checkbox.d.ts +71 -0
- package/dist/form/checkbox/checkbox.d.ts.map +1 -0
- package/dist/form/checkbox/checkbox.js +304 -0
- package/dist/form/checkbox/checkbox.js.map +1 -0
- package/dist/form/index.d.ts +2 -0
- package/dist/form/index.d.ts.map +1 -1
- package/dist/form/index.js +2 -0
- package/dist/form/index.js.map +1 -1
- package/dist/form/radio-cards/radio-cards.d.ts +81 -0
- package/dist/form/radio-cards/radio-cards.d.ts.map +1 -0
- package/dist/form/radio-cards/radio-cards.js +388 -0
- package/dist/form/radio-cards/radio-cards.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/krubble-components.bundled.js +892 -210
- package/dist/krubble-components.bundled.js.map +1 -1
- package/dist/krubble-components.bundled.min.js +384 -117
- package/dist/krubble-components.bundled.min.js.map +1 -1
- package/dist/krubble-components.umd.js +891 -209
- package/dist/krubble-components.umd.js.map +1 -1
- package/dist/krubble-components.umd.min.js +342 -75
- package/dist/krubble-components.umd.min.js.map +1 -1
- package/package.json +17 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* A checkbox component that works with native browser forms.
|
|
4
|
+
*
|
|
5
|
+
* Uses ElementInternals for form association, allowing the component
|
|
6
|
+
* to participate in form submission, validation, and reset.
|
|
7
|
+
*
|
|
8
|
+
* @element kr-checkbox
|
|
9
|
+
* @fires change - Fired when the checked state changes
|
|
10
|
+
*/
|
|
11
|
+
export declare class KRCheckbox extends LitElement {
|
|
12
|
+
static styles: import("lit").CSSResult[];
|
|
13
|
+
static formAssociated: boolean;
|
|
14
|
+
private _internals;
|
|
15
|
+
/**
|
|
16
|
+
* The checkbox label text
|
|
17
|
+
*/
|
|
18
|
+
label: string;
|
|
19
|
+
/**
|
|
20
|
+
* The input name for form submission
|
|
21
|
+
*/
|
|
22
|
+
name: string;
|
|
23
|
+
/**
|
|
24
|
+
* The value submitted when checked
|
|
25
|
+
*/
|
|
26
|
+
value: string;
|
|
27
|
+
/**
|
|
28
|
+
* Whether the checkbox is checked
|
|
29
|
+
*/
|
|
30
|
+
checked: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Whether the checkbox is disabled
|
|
33
|
+
*/
|
|
34
|
+
disabled: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the checkbox is required
|
|
37
|
+
*/
|
|
38
|
+
required: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Helper text shown below the checkbox
|
|
41
|
+
*/
|
|
42
|
+
hint: string;
|
|
43
|
+
private _touched;
|
|
44
|
+
constructor();
|
|
45
|
+
get form(): HTMLFormElement | null;
|
|
46
|
+
get validity(): ValidityState;
|
|
47
|
+
get validationMessage(): string;
|
|
48
|
+
get willValidate(): boolean;
|
|
49
|
+
checkValidity(): boolean;
|
|
50
|
+
reportValidity(): boolean;
|
|
51
|
+
formResetCallback(): void;
|
|
52
|
+
formStateRestoreCallback(state: string): void;
|
|
53
|
+
connectedCallback(): void;
|
|
54
|
+
disconnectedCallback(): void;
|
|
55
|
+
private _handleInvalid;
|
|
56
|
+
protected firstUpdated(): void;
|
|
57
|
+
updated(changedProperties: Map<string, unknown>): void;
|
|
58
|
+
private _syncFormValue;
|
|
59
|
+
private _updateValidity;
|
|
60
|
+
private _handleClick;
|
|
61
|
+
private _handleKeyDown;
|
|
62
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
63
|
+
focus(): void;
|
|
64
|
+
blur(): void;
|
|
65
|
+
}
|
|
66
|
+
declare global {
|
|
67
|
+
interface HTMLElementTagNameMap {
|
|
68
|
+
'kr-checkbox': KRCheckbox;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/form/checkbox/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAKrD;;;;;;;;GAQG;AACH,qBACa,UAAW,SAAQ,UAAU;IACxC,OAAgB,MAAM,4BAmFnB;IAEH,MAAM,CAAC,cAAc,UAAQ;IAE7B,OAAO,CAAC,UAAU,CAAmB;IAErC;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,KAAK,SAAQ;IAEb;;OAEG;IAEH,OAAO,UAAS;IAEhB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,SAAM;IAGV,OAAO,CAAC,QAAQ,CAAS;;IAQzB,IAAI,IAAI,2BAEP;IAED,IAAI,QAAQ,kBAEX;IAED,IAAI,iBAAiB,WAEpB;IAED,IAAI,YAAY,YAEf;IAED,aAAa;IAIb,cAAc;IAId,iBAAiB;IAOjB,wBAAwB,CAAC,KAAK,EAAE,MAAM;IAI7B,iBAAiB;IAKjB,oBAAoB;IAK7B,OAAO,CAAC,cAAc,CAGpB;cAEiB,YAAY;IAKtB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IASxD,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,cAAc;IAUb,MAAM;IA8Cf,KAAK;IAIL,IAAI;CAGL;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { LitElement, html, css, nothing } from 'lit';
|
|
8
|
+
import { customElement, property, state } from 'lit/decorators.js';
|
|
9
|
+
import { classMap } from 'lit/directives/class-map.js';
|
|
10
|
+
import { krBaseCSS } from '../../style/base.js';
|
|
11
|
+
/**
|
|
12
|
+
* A checkbox component that works with native browser forms.
|
|
13
|
+
*
|
|
14
|
+
* Uses ElementInternals for form association, allowing the component
|
|
15
|
+
* to participate in form submission, validation, and reset.
|
|
16
|
+
*
|
|
17
|
+
* @element kr-checkbox
|
|
18
|
+
* @fires change - Fired when the checked state changes
|
|
19
|
+
*/
|
|
20
|
+
let KRCheckbox = class KRCheckbox extends LitElement {
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
/**
|
|
24
|
+
* The checkbox label text
|
|
25
|
+
*/
|
|
26
|
+
this.label = '';
|
|
27
|
+
/**
|
|
28
|
+
* The input name for form submission
|
|
29
|
+
*/
|
|
30
|
+
this.name = '';
|
|
31
|
+
/**
|
|
32
|
+
* The value submitted when checked
|
|
33
|
+
*/
|
|
34
|
+
this.value = 'on';
|
|
35
|
+
/**
|
|
36
|
+
* Whether the checkbox is checked
|
|
37
|
+
*/
|
|
38
|
+
this.checked = false;
|
|
39
|
+
/**
|
|
40
|
+
* Whether the checkbox is disabled
|
|
41
|
+
*/
|
|
42
|
+
this.disabled = false;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the checkbox is required
|
|
45
|
+
*/
|
|
46
|
+
this.required = false;
|
|
47
|
+
/**
|
|
48
|
+
* Helper text shown below the checkbox
|
|
49
|
+
*/
|
|
50
|
+
this.hint = '';
|
|
51
|
+
this._touched = false;
|
|
52
|
+
this._handleInvalid = (e) => {
|
|
53
|
+
e.preventDefault();
|
|
54
|
+
this._touched = true;
|
|
55
|
+
};
|
|
56
|
+
this._internals = this.attachInternals();
|
|
57
|
+
}
|
|
58
|
+
// Form-associated custom element callbacks
|
|
59
|
+
get form() {
|
|
60
|
+
return this._internals.form;
|
|
61
|
+
}
|
|
62
|
+
get validity() {
|
|
63
|
+
return this._internals.validity;
|
|
64
|
+
}
|
|
65
|
+
get validationMessage() {
|
|
66
|
+
return this._internals.validationMessage;
|
|
67
|
+
}
|
|
68
|
+
get willValidate() {
|
|
69
|
+
return this._internals.willValidate;
|
|
70
|
+
}
|
|
71
|
+
checkValidity() {
|
|
72
|
+
return this._internals.checkValidity();
|
|
73
|
+
}
|
|
74
|
+
reportValidity() {
|
|
75
|
+
return this._internals.reportValidity();
|
|
76
|
+
}
|
|
77
|
+
formResetCallback() {
|
|
78
|
+
this.checked = false;
|
|
79
|
+
this._touched = false;
|
|
80
|
+
this._internals.setFormValue('');
|
|
81
|
+
this._internals.setValidity({});
|
|
82
|
+
}
|
|
83
|
+
formStateRestoreCallback(state) {
|
|
84
|
+
this.checked = state === this.value;
|
|
85
|
+
}
|
|
86
|
+
connectedCallback() {
|
|
87
|
+
super.connectedCallback();
|
|
88
|
+
this.addEventListener('invalid', this._handleInvalid);
|
|
89
|
+
}
|
|
90
|
+
disconnectedCallback() {
|
|
91
|
+
super.disconnectedCallback();
|
|
92
|
+
this.removeEventListener('invalid', this._handleInvalid);
|
|
93
|
+
}
|
|
94
|
+
firstUpdated() {
|
|
95
|
+
this._syncFormValue();
|
|
96
|
+
this._updateValidity();
|
|
97
|
+
}
|
|
98
|
+
updated(changedProperties) {
|
|
99
|
+
if (changedProperties.has('checked') || changedProperties.has('value')) {
|
|
100
|
+
this._syncFormValue();
|
|
101
|
+
}
|
|
102
|
+
if (changedProperties.has('required') || changedProperties.has('checked')) {
|
|
103
|
+
this._updateValidity();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
_syncFormValue() {
|
|
107
|
+
if (this.checked) {
|
|
108
|
+
this._internals.setFormValue(this.value);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
this._internals.setFormValue('');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
_updateValidity() {
|
|
115
|
+
if (this.required && !this.checked) {
|
|
116
|
+
this._internals.setValidity({ valueMissing: true }, 'This field is required');
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this._internals.setValidity({});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
_handleClick(e) {
|
|
123
|
+
if (this.disabled) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
this.checked = !this.checked;
|
|
127
|
+
this._touched = true;
|
|
128
|
+
this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));
|
|
129
|
+
}
|
|
130
|
+
_handleKeyDown(e) {
|
|
131
|
+
if (this.disabled) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (e.key === ' ' || e.key === 'Enter') {
|
|
135
|
+
e.preventDefault();
|
|
136
|
+
this._handleClick(e);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
render() {
|
|
140
|
+
return html `
|
|
141
|
+
<div class="wrapper">
|
|
142
|
+
<div
|
|
143
|
+
class=${classMap({
|
|
144
|
+
'checkbox': true,
|
|
145
|
+
'checkbox--disabled': this.disabled,
|
|
146
|
+
})}
|
|
147
|
+
role="checkbox"
|
|
148
|
+
aria-checked=${this.checked}
|
|
149
|
+
aria-disabled=${this.disabled}
|
|
150
|
+
aria-label=${this.label}
|
|
151
|
+
tabindex=${this.disabled ? -1 : 0}
|
|
152
|
+
@click=${this._handleClick}
|
|
153
|
+
@keydown=${this._handleKeyDown}
|
|
154
|
+
>
|
|
155
|
+
<div class=${classMap({
|
|
156
|
+
'checkbox__box': true,
|
|
157
|
+
'checkbox__box--checked': this.checked,
|
|
158
|
+
'checkbox__box--invalid': this._touched && this.required && !this.checked,
|
|
159
|
+
})}>
|
|
160
|
+
<svg class=${classMap({
|
|
161
|
+
'checkbox__check': true,
|
|
162
|
+
'checkbox__check--hidden': !this.checked,
|
|
163
|
+
})} viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
|
|
164
|
+
<polyline points="20 6 9 17 4 12"></polyline>
|
|
165
|
+
</svg>
|
|
166
|
+
</div>
|
|
167
|
+
${this.label
|
|
168
|
+
? html `
|
|
169
|
+
<span class="checkbox__label">
|
|
170
|
+
${this.label}
|
|
171
|
+
${this.required ? html `<span class="required" aria-hidden="true">*</span>` : nothing}
|
|
172
|
+
</span>
|
|
173
|
+
`
|
|
174
|
+
: nothing}
|
|
175
|
+
</div>
|
|
176
|
+
${this._touched && this.required && !this.checked
|
|
177
|
+
? html `<div class="validation-message">This field is required</div>`
|
|
178
|
+
: this.hint
|
|
179
|
+
? html `<div class="hint">${this.hint}</div>`
|
|
180
|
+
: nothing}
|
|
181
|
+
</div>
|
|
182
|
+
`;
|
|
183
|
+
}
|
|
184
|
+
focus() {
|
|
185
|
+
this.shadowRoot?.querySelector('.checkbox')?.focus();
|
|
186
|
+
}
|
|
187
|
+
blur() {
|
|
188
|
+
this.shadowRoot?.querySelector('.checkbox')?.blur();
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
KRCheckbox.styles = [krBaseCSS, css `
|
|
192
|
+
:host {
|
|
193
|
+
display: inline-block;
|
|
194
|
+
font-family: inherit;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.wrapper {
|
|
198
|
+
display: flex;
|
|
199
|
+
flex-direction: column;
|
|
200
|
+
gap: 6px;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.checkbox {
|
|
204
|
+
display: inline-flex;
|
|
205
|
+
align-items: center;
|
|
206
|
+
gap: 8px;
|
|
207
|
+
cursor: pointer;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.checkbox--disabled {
|
|
211
|
+
opacity: 0.5;
|
|
212
|
+
cursor: not-allowed;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.checkbox__box {
|
|
216
|
+
flex-shrink: 0;
|
|
217
|
+
width: 18px;
|
|
218
|
+
height: 18px;
|
|
219
|
+
border: 2px solid var(--kr-checkbox-border-color, #0000003d);
|
|
220
|
+
border-radius: 4px;
|
|
221
|
+
background-color: var(--kr-checkbox-bg, #fff);
|
|
222
|
+
display: flex;
|
|
223
|
+
align-items: center;
|
|
224
|
+
justify-content: center;
|
|
225
|
+
transition: border-color 0.2s, background-color 0.2s, box-shadow 0.2s;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.checkbox:focus-visible .checkbox__box {
|
|
229
|
+
outline: none;
|
|
230
|
+
box-shadow: 0 0 0 3px rgba(22, 48, 82, 0.1);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.checkbox__box--checked {
|
|
234
|
+
border-color: var(--kr-checkbox-checked-border-color, var(--kr-primary));
|
|
235
|
+
background-color: var(--kr-checkbox-checked-bg, var(--kr-primary));
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.checkbox__box--invalid {
|
|
239
|
+
border-color: var(--kr-checkbox-error-border-color, #ef4444);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.checkbox__check {
|
|
243
|
+
width: 12px;
|
|
244
|
+
height: 12px;
|
|
245
|
+
color: var(--kr-checkbox-check-color, #fff);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.checkbox__check--hidden {
|
|
249
|
+
visibility: hidden;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.checkbox__label {
|
|
253
|
+
font-size: 14px;
|
|
254
|
+
color: var(--kr-checkbox-label-color, #000);
|
|
255
|
+
user-select: none;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.required {
|
|
259
|
+
color: var(--kr-checkbox-required-color, #ef4444);
|
|
260
|
+
margin-left: 0.125rem;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
.hint {
|
|
264
|
+
font-size: 0.75rem;
|
|
265
|
+
color: var(--kr-checkbox-helper-color, #6b7280);
|
|
266
|
+
margin-left: 26px;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
.validation-message {
|
|
270
|
+
font-size: 0.75rem;
|
|
271
|
+
color: var(--kr-checkbox-error-color, #ef4444);
|
|
272
|
+
margin-left: 26px;
|
|
273
|
+
}
|
|
274
|
+
`];
|
|
275
|
+
KRCheckbox.formAssociated = true;
|
|
276
|
+
__decorate([
|
|
277
|
+
property({ type: String })
|
|
278
|
+
], KRCheckbox.prototype, "label", void 0);
|
|
279
|
+
__decorate([
|
|
280
|
+
property({ type: String })
|
|
281
|
+
], KRCheckbox.prototype, "name", void 0);
|
|
282
|
+
__decorate([
|
|
283
|
+
property({ type: String })
|
|
284
|
+
], KRCheckbox.prototype, "value", void 0);
|
|
285
|
+
__decorate([
|
|
286
|
+
property({ type: Boolean })
|
|
287
|
+
], KRCheckbox.prototype, "checked", void 0);
|
|
288
|
+
__decorate([
|
|
289
|
+
property({ type: Boolean })
|
|
290
|
+
], KRCheckbox.prototype, "disabled", void 0);
|
|
291
|
+
__decorate([
|
|
292
|
+
property({ type: Boolean })
|
|
293
|
+
], KRCheckbox.prototype, "required", void 0);
|
|
294
|
+
__decorate([
|
|
295
|
+
property({ type: String })
|
|
296
|
+
], KRCheckbox.prototype, "hint", void 0);
|
|
297
|
+
__decorate([
|
|
298
|
+
state()
|
|
299
|
+
], KRCheckbox.prototype, "_touched", void 0);
|
|
300
|
+
KRCheckbox = __decorate([
|
|
301
|
+
customElement('kr-checkbox')
|
|
302
|
+
], KRCheckbox);
|
|
303
|
+
export { KRCheckbox };
|
|
304
|
+
//# sourceMappingURL=checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../src/form/checkbox/checkbox.ts"],"names":[],"mappings":"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"}
|
package/dist/form/index.d.ts
CHANGED
|
@@ -5,4 +5,6 @@ export { KRTextareaField } from './textarea-field/textarea-field.js';
|
|
|
5
5
|
export { KRDetailField } from './detail-field/detail-field.js';
|
|
6
6
|
export { KRAutoSuggest } from './auto-suggest/auto-suggest.js';
|
|
7
7
|
export { KRComboBox } from './combo-box/combo-box.js';
|
|
8
|
+
export { KRRadioCards } from './radio-cards/radio-cards.js';
|
|
9
|
+
export { KRCheckbox } from './checkbox/checkbox.js';
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/form/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/form/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/form/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/form/index.js
CHANGED
|
@@ -6,4 +6,6 @@ export { KRTextareaField } from './textarea-field/textarea-field.js';
|
|
|
6
6
|
export { KRDetailField } from './detail-field/detail-field.js';
|
|
7
7
|
export { KRAutoSuggest } from './auto-suggest/auto-suggest.js';
|
|
8
8
|
export { KRComboBox } from './combo-box/combo-box.js';
|
|
9
|
+
export { KRRadioCards } from './radio-cards/radio-cards.js';
|
|
10
|
+
export { KRCheckbox } from './checkbox/checkbox.js';
|
|
9
11
|
//# sourceMappingURL=index.js.map
|
package/dist/form/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/form/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/form/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export interface KRRadioCardsOption {
|
|
3
|
+
value: string;
|
|
4
|
+
label: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A card-style radio group for selecting between a small number of options.
|
|
10
|
+
* Each option renders as a bordered card with a radio indicator, label, and optional description.
|
|
11
|
+
*
|
|
12
|
+
* Uses ElementInternals for form association, allowing the component
|
|
13
|
+
* to participate in form submission, validation, and reset.
|
|
14
|
+
*
|
|
15
|
+
* @element kr-radio-cards
|
|
16
|
+
* @fires change - Fired when the selected value changes
|
|
17
|
+
*/
|
|
18
|
+
export declare class KRRadioCards extends LitElement {
|
|
19
|
+
static styles: import("lit").CSSResult[];
|
|
20
|
+
static formAssociated: boolean;
|
|
21
|
+
private _internals;
|
|
22
|
+
private _focusedIndex;
|
|
23
|
+
/**
|
|
24
|
+
* The label text above the cards
|
|
25
|
+
*/
|
|
26
|
+
label: string;
|
|
27
|
+
/**
|
|
28
|
+
* The input name for form submission
|
|
29
|
+
*/
|
|
30
|
+
name: string;
|
|
31
|
+
/**
|
|
32
|
+
* The currently selected value
|
|
33
|
+
*/
|
|
34
|
+
value: string;
|
|
35
|
+
/**
|
|
36
|
+
* The card options to display
|
|
37
|
+
*/
|
|
38
|
+
options: KRRadioCardsOption[];
|
|
39
|
+
/**
|
|
40
|
+
* Whether the field is disabled
|
|
41
|
+
*/
|
|
42
|
+
disabled: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the field is required
|
|
45
|
+
*/
|
|
46
|
+
required: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Helper text shown below the cards
|
|
49
|
+
*/
|
|
50
|
+
hint: string;
|
|
51
|
+
/**
|
|
52
|
+
* Layout direction: 'row' or 'column'
|
|
53
|
+
*/
|
|
54
|
+
direction: 'row' | 'column';
|
|
55
|
+
private _touched;
|
|
56
|
+
constructor();
|
|
57
|
+
get form(): HTMLFormElement | null;
|
|
58
|
+
get validity(): ValidityState;
|
|
59
|
+
get validationMessage(): string;
|
|
60
|
+
get willValidate(): boolean;
|
|
61
|
+
checkValidity(): boolean;
|
|
62
|
+
reportValidity(): boolean;
|
|
63
|
+
formResetCallback(): void;
|
|
64
|
+
formStateRestoreCallback(state: string): void;
|
|
65
|
+
connectedCallback(): void;
|
|
66
|
+
disconnectedCallback(): void;
|
|
67
|
+
private _handleInvalid;
|
|
68
|
+
protected firstUpdated(): void;
|
|
69
|
+
updated(changedProperties: Map<string, unknown>): void;
|
|
70
|
+
private _updateValidity;
|
|
71
|
+
private _handleCardClick;
|
|
72
|
+
private _handleKeyDown;
|
|
73
|
+
private _findNextEnabledIndex;
|
|
74
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
75
|
+
}
|
|
76
|
+
declare global {
|
|
77
|
+
interface HTMLElementTagNameMap {
|
|
78
|
+
'kr-radio-cards': KRRadioCards;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=radio-cards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-cards.d.ts","sourceRoot":"","sources":["../../../src/form/radio-cards/radio-cards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAKrD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,4BA2HnB;IAEH,MAAM,CAAC,cAAc,UAAQ;IAE7B,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,aAAa,CAAM;IAE3B;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,OAAO,EAAE,kBAAkB,EAAE,CAAM;IAEnC;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,SAAS,EAAE,KAAK,GAAG,QAAQ,CAAS;IAGpC,OAAO,CAAC,QAAQ,CAAS;;IAQzB,IAAI,IAAI,2BAEP;IAED,IAAI,QAAQ,kBAEX;IAED,IAAI,iBAAiB,WAEpB;IAED,IAAI,YAAY,YAEf;IAED,aAAa;IAIb,cAAc;IAId,iBAAiB;IAOjB,wBAAwB,CAAC,KAAK,EAAE,MAAM;IAI7B,iBAAiB;IAKjB,oBAAoB;IAK7B,OAAO,CAAC,cAAc,CAGpB;cAEiB,YAAY;IAItB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAMxD,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,qBAAqB;IAWpB,MAAM;CA2DhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
|