@redvars/peacock 3.2.7 → 3.2.8

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 (109) hide show
  1. package/dist/PeacockComponent-DMrFEGDh.js +80 -0
  2. package/dist/PeacockComponent-DMrFEGDh.js.map +1 -0
  3. package/dist/breadcrumb-item-DkhwoMAH.js +6879 -0
  4. package/dist/breadcrumb-item-DkhwoMAH.js.map +1 -0
  5. package/dist/button-BtpAXuLN.js +1180 -0
  6. package/dist/button-BtpAXuLN.js.map +1 -0
  7. package/dist/button-group.js +7 -6
  8. package/dist/button-group.js.map +1 -1
  9. package/dist/button.js +5 -0
  10. package/dist/button.js.map +1 -0
  11. package/dist/{class-map-BmCohX9p.js → class-map-CbncA34D.js} +2 -3
  12. package/dist/class-map-CbncA34D.js.map +1 -0
  13. package/dist/code-highlighter.js +9 -8
  14. package/dist/code-highlighter.js.map +1 -1
  15. package/dist/custom-elements.json +28 -0
  16. package/dist/index.js +87 -35
  17. package/dist/index.js.map +1 -1
  18. package/dist/number-counter.js +7 -6
  19. package/dist/number-counter.js.map +1 -1
  20. package/dist/peacock-loader.js +963 -38
  21. package/dist/peacock-loader.js.map +1 -1
  22. package/dist/src/PeacockComponent.d.ts +1 -0
  23. package/dist/{state-CV1fRmOT.js → state-CEVpI7Vv.js} +2 -2
  24. package/dist/{state-CV1fRmOT.js.map → state-CEVpI7Vv.js.map} +1 -1
  25. package/dist/{style-map-CdmclYgz.js → style-map-mOmZwsJT.js} +2 -3
  26. package/dist/style-map-mOmZwsJT.js.map +1 -0
  27. package/dist/tsconfig.tsbuildinfo +1 -1
  28. package/dist/{unsafe-html-BS8X6Gto.js → unsafe-html-Ca00SXpn.js} +2 -3
  29. package/dist/unsafe-html-Ca00SXpn.js.map +1 -0
  30. package/package.json +1 -1
  31. package/readme.md +2 -2
  32. package/src/PeacockComponent.ts +3 -0
  33. package/src/button/button/button.ts +3 -1
  34. package/src/button/button-group/button-group.ts +2 -0
  35. package/src/code-highlighter/code-highlighter.ts +2 -0
  36. package/src/number-counter/number-counter.ts +2 -0
  37. package/dist/BaseButton.js +0 -209
  38. package/dist/BaseButton.js.map +0 -1
  39. package/dist/BaseInput.js +0 -27
  40. package/dist/BaseInput.js.map +0 -1
  41. package/dist/accordion-item.js +0 -191
  42. package/dist/accordion-item.js.map +0 -1
  43. package/dist/accordion.js +0 -142
  44. package/dist/accordion.js.map +0 -1
  45. package/dist/avatar.js +0 -106
  46. package/dist/avatar.js.map +0 -1
  47. package/dist/badge.js +0 -84
  48. package/dist/badge.js.map +0 -1
  49. package/dist/base-progress.js +0 -33
  50. package/dist/base-progress.js.map +0 -1
  51. package/dist/breadcrumb-item.js +0 -160
  52. package/dist/breadcrumb-item.js.map +0 -1
  53. package/dist/breadcrumb.js +0 -84
  54. package/dist/breadcrumb.js.map +0 -1
  55. package/dist/checkbox.js +0 -530
  56. package/dist/checkbox.js.map +0 -1
  57. package/dist/chip.js +0 -303
  58. package/dist/chip.js.map +0 -1
  59. package/dist/class-map-BmCohX9p.js.map +0 -1
  60. package/dist/clock.js +0 -83
  61. package/dist/clock.js.map +0 -1
  62. package/dist/container.js +0 -135
  63. package/dist/container.js.map +0 -1
  64. package/dist/directive-Cuw6h7YA.js +0 -9
  65. package/dist/directive-Cuw6h7YA.js.map +0 -1
  66. package/dist/divider.js +0 -126
  67. package/dist/divider.js.map +0 -1
  68. package/dist/elevation.js +0 -79
  69. package/dist/elevation.js.map +0 -1
  70. package/dist/empty-state.js +0 -171
  71. package/dist/empty-state.js.map +0 -1
  72. package/dist/field.js +0 -416
  73. package/dist/field.js.map +0 -1
  74. package/dist/focus-ring.js +0 -107
  75. package/dist/focus-ring.js.map +0 -1
  76. package/dist/icon.js +0 -183
  77. package/dist/icon.js.map +0 -1
  78. package/dist/link.js +0 -91
  79. package/dist/link.js.map +0 -1
  80. package/dist/lit-element-CA46RFZ_.js +0 -28
  81. package/dist/lit-element-CA46RFZ_.js.map +0 -1
  82. package/dist/menu-item.js +0 -232
  83. package/dist/menu-item.js.map +0 -1
  84. package/dist/menu-list.js +0 -108
  85. package/dist/menu-list.js.map +0 -1
  86. package/dist/menu.js +0 -117
  87. package/dist/menu.js.map +0 -1
  88. package/dist/property-DNVWDdPC.js +0 -45
  89. package/dist/property-DNVWDdPC.js.map +0 -1
  90. package/dist/query-QBcUV-L_.js +0 -15
  91. package/dist/query-QBcUV-L_.js.map +0 -1
  92. package/dist/ripple.js +0 -128
  93. package/dist/ripple.js.map +0 -1
  94. package/dist/skeleton.js +0 -113
  95. package/dist/skeleton.js.map +0 -1
  96. package/dist/spinner.js +0 -93
  97. package/dist/spinner.js.map +0 -1
  98. package/dist/spread-axRTFMoH.js +0 -32
  99. package/dist/spread-axRTFMoH.js.map +0 -1
  100. package/dist/style-map-CdmclYgz.js.map +0 -1
  101. package/dist/switch-DqxIiVsB.js +0 -2738
  102. package/dist/switch-DqxIiVsB.js.map +0 -1
  103. package/dist/tag.js +0 -323
  104. package/dist/tag.js.map +0 -1
  105. package/dist/tooltip.js +0 -1857
  106. package/dist/tooltip.js.map +0 -1
  107. package/dist/unsafe-html-BS8X6Gto.js.map +0 -1
  108. package/dist/utils-DGMeCC48.js +0 -273
  109. package/dist/utils-DGMeCC48.js.map +0 -1
package/dist/checkbox.js DELETED
@@ -1,530 +0,0 @@
1
- import { _ as __decorate, n } from './property-DNVWDdPC.js';
2
- import { i, a as i$1, w, b } from './lit-element-CA46RFZ_.js';
3
- import { r } from './state-CV1fRmOT.js';
4
- import { e } from './query-QBcUV-L_.js';
5
- import { e as e$1 } from './class-map-BmCohX9p.js';
6
- import { s as spread } from './spread-axRTFMoH.js';
7
- import './directive-Cuw6h7YA.js';
8
-
9
- var css_248z = i`* {
10
- box-sizing: border-box;
11
- }
12
-
13
- .screen-reader-only {
14
- display: none !important;
15
- }
16
-
17
- :host {
18
- display: inline-block;
19
- --checkbox-size: 18px;
20
- --checkbox-icon-size: 12px;
21
- --checkbox-selected-color: var(--color-primary);
22
- --checkbox-unselected-color: var(--color-on-surface-variant);
23
- --checkbox-checkmark-color: var(--color-on-primary);
24
- --checkbox-state-layer-size: 40px;
25
- --checkbox-disabled-opacity: 0.38;
26
- --checkbox-border-radius: 2px;
27
- }
28
-
29
- .checkbox {
30
- position: relative;
31
- display: inline-flex;
32
- align-items: center;
33
- cursor: pointer;
34
- user-select: none;
35
- vertical-align: middle;
36
- font-family: var(--typography-body-medium-font-family) !important;
37
- font-size: var(--typography-body-medium-font-size) !important;
38
- font-weight: var(--typography-body-medium-font-weight) !important;
39
- line-height: var(--typography-body-medium-line-height) !important;
40
- letter-spacing: var(--typography-body-medium-letter-spacing) !important;
41
- }
42
- .checkbox.has-content {
43
- gap: 8px;
44
- }
45
- .checkbox .input-native {
46
- position: absolute;
47
- width: 1px;
48
- height: 1px;
49
- padding: 0;
50
- margin: -1px;
51
- overflow: hidden;
52
- clip: rect(0, 0, 0, 0);
53
- border: 0;
54
- }
55
- .checkbox .container {
56
- position: relative;
57
- display: inline-flex;
58
- align-items: center;
59
- justify-content: center;
60
- width: var(--checkbox-state-layer-size);
61
- height: var(--checkbox-state-layer-size);
62
- cursor: inherit;
63
- outline: none;
64
- flex-shrink: 0;
65
- }
66
- .checkbox .state-layer {
67
- position: absolute;
68
- inset: 0;
69
- border-radius: 50%;
70
- opacity: 0;
71
- transition: opacity var(--duration-short2) var(--easing-standard);
72
- }
73
- .checkbox .outline {
74
- position: absolute;
75
- width: var(--checkbox-size);
76
- height: var(--checkbox-size);
77
- border: 2px solid var(--checkbox-unselected-color);
78
- border-radius: var(--checkbox-border-radius);
79
- box-sizing: border-box;
80
- transition: border-color var(--duration-short2) var(--easing-standard);
81
- }
82
- .checkbox .background {
83
- position: absolute;
84
- width: var(--checkbox-size);
85
- height: var(--checkbox-size);
86
- background: var(--checkbox-selected-color);
87
- border-radius: var(--checkbox-border-radius);
88
- opacity: 0;
89
- transform: scale(0);
90
- transition: transform var(--duration-short2) var(--easing-standard), opacity var(--duration-short2) var(--easing-standard);
91
- }
92
- .checkbox .icon {
93
- position: absolute;
94
- width: var(--checkbox-icon-size);
95
- height: var(--checkbox-icon-size);
96
- fill: none;
97
- stroke: var(--checkbox-checkmark-color);
98
- stroke-width: 2;
99
- stroke-linecap: round;
100
- stroke-linejoin: round;
101
- opacity: 0;
102
- transition: opacity var(--duration-short1) var(--easing-standard);
103
- }
104
- .checkbox .icon .checkmark {
105
- stroke-dasharray: 14;
106
- stroke-dashoffset: 14;
107
- transition: stroke-dashoffset var(--duration-short4) var(--easing-emphasized);
108
- }
109
- .checkbox .icon .indeterminate {
110
- transform-origin: center;
111
- opacity: 0;
112
- transition: opacity var(--duration-short1) var(--easing-standard);
113
- }
114
- .checkbox .label {
115
- color: var(--color-on-surface);
116
- cursor: inherit;
117
- }
118
- .checkbox:hover:not(.disabled):not(.readonly) .state-layer {
119
- opacity: 0.08;
120
- background: var(--color-on-surface);
121
- }
122
- .checkbox:hover:not(.disabled):not(.readonly).state-checked .state-layer, .checkbox:hover:not(.disabled):not(.readonly).state-indeterminate .state-layer {
123
- background: var(--checkbox-selected-color);
124
- }
125
- .checkbox.has-focus:not(.active):not(.disabled):not(.readonly) .state-layer {
126
- opacity: 0.12;
127
- background: var(--color-on-surface);
128
- }
129
- .checkbox.has-focus:not(.active):not(.disabled):not(.readonly) .container {
130
- outline: 3px solid var(--color-primary);
131
- outline-offset: 2px;
132
- border-radius: 50%;
133
- }
134
- .checkbox.has-focus:not(.active):not(.disabled):not(.readonly).state-checked .state-layer, .checkbox.has-focus:not(.active):not(.disabled):not(.readonly).state-indeterminate .state-layer {
135
- background: var(--checkbox-selected-color);
136
- }
137
- .checkbox.active:not(.disabled):not(.readonly) .state-layer {
138
- opacity: 0.12;
139
- background: var(--color-on-surface);
140
- }
141
- .checkbox.active:not(.disabled):not(.readonly).state-checked .state-layer, .checkbox.active:not(.disabled):not(.readonly).state-indeterminate .state-layer {
142
- background: var(--checkbox-selected-color);
143
- }
144
- .checkbox.rounded {
145
- --checkbox-border-radius: 18px;
146
- }
147
-
148
- .checkbox.state-checked .outline {
149
- border-color: transparent;
150
- }
151
- .checkbox.state-checked .background {
152
- opacity: 1;
153
- transform: scale(1);
154
- }
155
- .checkbox.state-checked .icon {
156
- opacity: 1;
157
- }
158
- .checkbox.state-checked .icon .checkmark {
159
- stroke-dashoffset: 0;
160
- }
161
-
162
- .checkbox.state-indeterminate .outline {
163
- border-color: transparent;
164
- }
165
- .checkbox.state-indeterminate .background {
166
- opacity: 1;
167
- transform: scale(1);
168
- }
169
- .checkbox.state-indeterminate .icon {
170
- opacity: 1;
171
- fill: var(--checkbox-checkmark-color);
172
- }
173
- .checkbox.state-indeterminate .icon .indeterminate {
174
- opacity: 1;
175
- }
176
-
177
- .checkbox.size-sm {
178
- --checkbox-size: 16px;
179
- --checkbox-icon-size: 10px;
180
- --checkbox-state-layer-size: 36px;
181
- font-size: var(--font-size-body-small);
182
- line-height: var(--line-height-body-small);
183
- }
184
- .checkbox.size-sm .icon {
185
- stroke-width: 1.5;
186
- }
187
-
188
- .checkbox.size-md {
189
- --checkbox-size: 18px;
190
- --checkbox-icon-size: 12px;
191
- --checkbox-state-layer-size: 40px;
192
- }
193
- .checkbox.size-md .icon {
194
- stroke-width: 2;
195
- }
196
-
197
- .checkbox.size-lg {
198
- --checkbox-size: 24px;
199
- --checkbox-icon-size: 16px;
200
- --checkbox-state-layer-size: 48px;
201
- font-size: var(--font-size-body-large);
202
- line-height: var(--line-height-body-large);
203
- }
204
- .checkbox.size-lg .icon {
205
- stroke-width: 2.5;
206
- }
207
-
208
- .checkbox.readonly {
209
- cursor: default;
210
- }
211
- .checkbox.readonly .label {
212
- color: var(--color-on-surface);
213
- }
214
- .checkbox.readonly .outline {
215
- border-color: var(--color-on-surface-variant);
216
- }
217
- .checkbox.readonly.state-checked .background, .checkbox.readonly.state-indeterminate .background {
218
- background: var(--color-on-surface-variant);
219
- }
220
- .checkbox.readonly .state-layer {
221
- display: none;
222
- }
223
-
224
- .checkbox.disabled {
225
- cursor: not-allowed;
226
- opacity: var(--checkbox-disabled-opacity);
227
- }
228
- .checkbox.disabled .label {
229
- color: var(--color-on-surface);
230
- }
231
- .checkbox.disabled .outline {
232
- border-color: var(--color-on-surface);
233
- }
234
- .checkbox.disabled.state-checked .background, .checkbox.disabled.state-indeterminate .background {
235
- background: var(--color-on-surface);
236
- }
237
- .checkbox.disabled .state-layer {
238
- display: none;
239
- }`;
240
-
241
- /**
242
- * @label Checkbox
243
- * @tag base-checkbox
244
- * @rawTag checkbox
245
- *
246
- * @summary Captures boolean input with an optional indeterminate mode.
247
- * @overview
248
- * <p>Checkboxes allow users to select one or more items from a set. Checkboxes can turn an option on or off.</p>
249
- * <p>Material Design 3 checkboxes feature a smooth animation and clear visual states for checked, unchecked, and indeterminate.</p>
250
- *
251
- * @cssprop --checkbox-size: Size of the checkbox container.
252
- * @cssprop --checkbox-selected-color: Color of the checkbox when selected.
253
- * @cssprop --checkbox-unselected-color: Color of the checkbox border when unselected.
254
- * @cssprop --checkbox-checkmark-color: Color of the checkmark icon.
255
- * @cssprop --checkbox-state-layer-size: Size of the state layer for touch target.
256
- *
257
- * @fires {CustomEvent} change - Dispatched when the checkbox value changes.
258
- * @fires {CustomEvent} blur - Dispatched when the checkbox loses focus.
259
- * @fires {CustomEvent} focus - Dispatched when the checkbox receives focus.
260
- *
261
- * @example
262
- * ```html
263
- * <base-checkbox label="Accept terms"></base-checkbox>
264
- * ```
265
- * @tags input, form
266
- */
267
- class Checkbox extends i$1 {
268
- constructor() {
269
- super(...arguments);
270
- /**
271
- * The input field name.
272
- */
273
- this.name = '';
274
- /**
275
- * The checkbox label.
276
- */
277
- this.label = '';
278
- /**
279
- * The input field value (checked state).
280
- */
281
- this.value = false;
282
- /**
283
- * If true, displays the checkbox in an indeterminate state.
284
- */
285
- this.indeterminate = false;
286
- /**
287
- * If true, the checkbox has rounded corners. Defaults to `false`.
288
- */
289
- this.rounded = false;
290
- /**
291
- * The checkbox size.
292
- * Possible values are: `"sm"`, `"md"`, `"lg"`. Defaults to `"md"`.
293
- */
294
- this.size = 'md';
295
- /**
296
- * If true, required icon is shown. Defaults to `false`.
297
- */
298
- this.required = false;
299
- /**
300
- * If true, the checkbox is readonly. Defaults to `false`.
301
- */
302
- this.readonly = false;
303
- /**
304
- * If true, the user cannot interact with the checkbox. Defaults to `false`.
305
- */
306
- this.disabled = false;
307
- /**
308
- * Configuration object for aria attributes.
309
- */
310
- this.configAria = {};
311
- this.hasFocus = false;
312
- this.isActive = false;
313
- this.slotHasContent = false;
314
- this.windowMouseUp = () => {
315
- if (this.isActive) {
316
- this.isActive = false;
317
- }
318
- };
319
- this.windowKeyUp = (evt) => {
320
- if (this.isActive && evt.key === ' ') {
321
- this.isActive = false;
322
- }
323
- };
324
- this.mouseDownHandler = () => {
325
- this.isActive = true;
326
- };
327
- this.keyDownHandler = (evt) => {
328
- if (evt.key === ' ') {
329
- evt.preventDefault();
330
- this.isActive = true;
331
- this.clickHandler(evt);
332
- }
333
- };
334
- this.clickHandler = (ev) => {
335
- if (!this.disabled && !this.readonly) {
336
- this.value = !this.value;
337
- this.indeterminate = false;
338
- this.dispatchEvent(new CustomEvent('change', {
339
- detail: { value: this.value, originalEvent: ev },
340
- bubbles: true,
341
- composed: true,
342
- }));
343
- this.containerElement?.focus();
344
- }
345
- };
346
- this.blurHandler = (ev) => {
347
- this.hasFocus = false;
348
- this.dispatchEvent(new CustomEvent('blur', {
349
- detail: ev,
350
- bubbles: true,
351
- composed: true,
352
- }));
353
- };
354
- this.focusHandler = (ev) => {
355
- this.hasFocus = true;
356
- this.dispatchEvent(new CustomEvent('focus', {
357
- detail: ev,
358
- bubbles: true,
359
- composed: true,
360
- }));
361
- };
362
- this.handleKeyUp = (evt) => {
363
- if (evt.key === 'Enter') {
364
- this.clickHandler(evt);
365
- }
366
- };
367
- }
368
- connectedCallback() {
369
- super.connectedCallback();
370
- this.handleInitialAttributes();
371
- window.addEventListener('mouseup', this.windowMouseUp);
372
- window.addEventListener('keyup', this.windowKeyUp);
373
- }
374
- disconnectedCallback() {
375
- super.disconnectedCallback();
376
- window.removeEventListener('mouseup', this.windowMouseUp);
377
- window.removeEventListener('keyup', this.windowKeyUp);
378
- }
379
- firstUpdated() {
380
- this.slotHasContent = this.hasChildNodes();
381
- }
382
- handleInitialAttributes() {
383
- if (this.hasAttribute('tabindex')) {
384
- this.tabindex = this.getAttribute('tabindex') || undefined;
385
- this.removeAttribute('tabindex');
386
- }
387
- Array.from(this.attributes).forEach(attr => {
388
- if (attr.name.startsWith('aria-')) {
389
- this.configAria[attr.name] = attr.value;
390
- this.removeAttribute(attr.name);
391
- }
392
- });
393
- }
394
- /**
395
- * Sets focus on the checkbox.
396
- */
397
- focus() {
398
- this.containerElement?.focus();
399
- }
400
- /**
401
- * Removes focus from the checkbox.
402
- */
403
- blur() {
404
- this.containerElement?.blur();
405
- }
406
- render() {
407
- const cssClasses = {
408
- checkbox: true,
409
- 'state-checked': this.value,
410
- 'state-indeterminate': !this.value && this.indeterminate,
411
- [`size-${this.size}`]: true,
412
- 'has-focus': this.hasFocus,
413
- active: this.isActive,
414
- disabled: this.disabled,
415
- readonly: this.readonly,
416
- required: this.required,
417
- rounded: this.rounded,
418
- 'has-content': this.slotHasContent,
419
- };
420
- return b `
421
- <label class=${e$1(cssClasses)}>
422
- <div
423
- class="container"
424
- tabindex=${this.tabindex || 0}
425
- @keyup=${this.handleKeyUp}
426
- @mousedown=${this.mouseDownHandler}
427
- @keydown=${this.keyDownHandler}
428
- @blur=${this.blurHandler}
429
- @focus=${this.focusHandler}
430
- role="checkbox"
431
- aria-disabled=${this.disabled}
432
- aria-required=${this.required}
433
- aria-checked=${this.value
434
- ? 'true'
435
- : this.indeterminate
436
- ? 'mixed'
437
- : 'false'}
438
- ${spread(this.configAria)}
439
- >
440
- <div class="state-layer"></div>
441
- <div class="outline"></div>
442
- <div class="background"></div>
443
- <svg class="icon" viewBox="0 0 12 12">
444
- ${this.value
445
- ? w `
446
- <path
447
- class="checkmark"
448
- d="M2 6L5 9L10 2"
449
- />
450
- `
451
- : this.indeterminate
452
- ? w `<rect
453
- class="indeterminate"
454
- x="2"
455
- y="5"
456
- width="8"
457
- height="2"
458
- />`
459
- : ''}
460
- </svg>
461
- </div>
462
-
463
- <input
464
- type="checkbox"
465
- class="input-native"
466
- name=${this.name}
467
- .checked=${this.value}
468
- .indeterminate=${this.indeterminate}
469
- aria-hidden="true"
470
- ?required=${this.required}
471
- tabindex="-1"
472
- @click=${this.clickHandler}
473
- />
474
-
475
- ${this.label
476
- ? b `<div class="label">${this.label}</div>`
477
- : b `<div class="label slot-container"><slot></slot></div>`}
478
- </label>
479
- `;
480
- }
481
- }
482
- Checkbox.styles = [css_248z];
483
- __decorate([
484
- n({ type: String })
485
- ], Checkbox.prototype, "name", void 0);
486
- __decorate([
487
- n({ type: String })
488
- ], Checkbox.prototype, "label", void 0);
489
- __decorate([
490
- n({ type: Boolean, reflect: true })
491
- ], Checkbox.prototype, "value", void 0);
492
- __decorate([
493
- n({ type: Boolean, reflect: true })
494
- ], Checkbox.prototype, "indeterminate", void 0);
495
- __decorate([
496
- n({ type: Boolean })
497
- ], Checkbox.prototype, "rounded", void 0);
498
- __decorate([
499
- n({ type: String })
500
- ], Checkbox.prototype, "size", void 0);
501
- __decorate([
502
- n({ type: Boolean, reflect: true })
503
- ], Checkbox.prototype, "required", void 0);
504
- __decorate([
505
- n({ type: Boolean, reflect: true })
506
- ], Checkbox.prototype, "readonly", void 0);
507
- __decorate([
508
- n({ type: Boolean, reflect: true })
509
- ], Checkbox.prototype, "disabled", void 0);
510
- __decorate([
511
- n({ type: Object })
512
- ], Checkbox.prototype, "configAria", void 0);
513
- __decorate([
514
- r()
515
- ], Checkbox.prototype, "hasFocus", void 0);
516
- __decorate([
517
- r()
518
- ], Checkbox.prototype, "isActive", void 0);
519
- __decorate([
520
- r()
521
- ], Checkbox.prototype, "slotHasContent", void 0);
522
- __decorate([
523
- e('.container')
524
- ], Checkbox.prototype, "containerElement", void 0);
525
- __decorate([
526
- e('.input-native')
527
- ], Checkbox.prototype, "nativeElement", void 0);
528
-
529
- export { Checkbox };
530
- //# sourceMappingURL=checkbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkbox.js","sources":["../../src/checkbox/checkbox.ts"],"sourcesContent":["import { html, LitElement, svg } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { spread } from '../spread.js';\nimport styles from './checkbox.scss';\n\n/**\n * @label Checkbox\n * @tag base-checkbox\n * @rawTag checkbox\n *\n * @summary Captures boolean input with an optional indeterminate mode.\n * @overview\n * <p>Checkboxes allow users to select one or more items from a set. Checkboxes can turn an option on or off.</p>\n * <p>Material Design 3 checkboxes feature a smooth animation and clear visual states for checked, unchecked, and indeterminate.</p>\n *\n * @cssprop --checkbox-size: Size of the checkbox container.\n * @cssprop --checkbox-selected-color: Color of the checkbox when selected.\n * @cssprop --checkbox-unselected-color: Color of the checkbox border when unselected.\n * @cssprop --checkbox-checkmark-color: Color of the checkmark icon.\n * @cssprop --checkbox-state-layer-size: Size of the state layer for touch target.\n *\n * @fires {CustomEvent} change - Dispatched when the checkbox value changes.\n * @fires {CustomEvent} blur - Dispatched when the checkbox loses focus.\n * @fires {CustomEvent} focus - Dispatched when the checkbox receives focus.\n *\n * @example\n * ```html\n * <base-checkbox label=\"Accept terms\"></base-checkbox>\n * ```\n * @tags input, form\n */\nexport class Checkbox extends LitElement {\n static styles = [styles];\n\n /**\n * The input field name.\n */\n @property({ type: String })\n name: string = '';\n\n /**\n * The checkbox label.\n */\n @property({ type: String })\n label: string = '';\n\n /**\n * The input field value (checked state).\n */\n @property({ type: Boolean, reflect: true })\n value: boolean = false;\n\n /**\n * If true, displays the checkbox in an indeterminate state.\n */\n @property({ type: Boolean, reflect: true })\n indeterminate: boolean = false;\n\n /**\n * If true, the checkbox has rounded corners. Defaults to `false`.\n */\n @property({ type: Boolean })\n rounded: boolean = false;\n\n /**\n * The checkbox size.\n * Possible values are: `\"sm\"`, `\"md\"`, `\"lg\"`. Defaults to `\"md\"`.\n */\n @property({ type: String })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * If true, required icon is shown. Defaults to `false`.\n */\n @property({ type: Boolean, reflect: true })\n required: boolean = false;\n\n /**\n * If true, the checkbox is readonly. Defaults to `false`.\n */\n @property({ type: Boolean, reflect: true })\n readonly: boolean = false;\n\n /**\n * If true, the user cannot interact with the checkbox. Defaults to `false`.\n */\n @property({ type: Boolean, reflect: true })\n disabled: boolean = false;\n\n /**\n * Configuration object for aria attributes.\n */\n @property({ type: Object })\n configAria: Record<string, string> = {};\n\n @state()\n private hasFocus = false;\n\n @state()\n private isActive = false;\n\n @state()\n private slotHasContent = false;\n\n @query('.container')\n private containerElement?: HTMLElement;\n\n @query('.input-native')\n private nativeElement?: HTMLInputElement;\n\n private tabindex?: string;\n\n connectedCallback() {\n super.connectedCallback();\n this.handleInitialAttributes();\n window.addEventListener('mouseup', this.windowMouseUp);\n window.addEventListener('keyup', this.windowKeyUp);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('mouseup', this.windowMouseUp);\n window.removeEventListener('keyup', this.windowKeyUp);\n }\n\n firstUpdated() {\n this.slotHasContent = this.hasChildNodes();\n }\n\n private handleInitialAttributes() {\n if (this.hasAttribute('tabindex')) {\n this.tabindex = this.getAttribute('tabindex') || undefined;\n this.removeAttribute('tabindex');\n }\n\n Array.from(this.attributes).forEach(attr => {\n if (attr.name.startsWith('aria-')) {\n this.configAria[attr.name] = attr.value;\n this.removeAttribute(attr.name);\n }\n });\n }\n\n private windowMouseUp = () => {\n if (this.isActive) {\n this.isActive = false;\n }\n };\n\n private windowKeyUp = (evt: KeyboardEvent) => {\n if (this.isActive && evt.key === ' ') {\n this.isActive = false;\n }\n };\n\n private mouseDownHandler = () => {\n this.isActive = true;\n };\n\n private keyDownHandler = (evt: KeyboardEvent) => {\n if (evt.key === ' ') {\n evt.preventDefault();\n this.isActive = true;\n this.clickHandler(evt);\n }\n };\n\n private clickHandler = (ev: MouseEvent | KeyboardEvent) => {\n if (!this.disabled && !this.readonly) {\n this.value = !this.value;\n this.indeterminate = false;\n this.dispatchEvent(\n new CustomEvent('change', {\n detail: { value: this.value, originalEvent: ev },\n bubbles: true,\n composed: true,\n }),\n );\n this.containerElement?.focus();\n }\n };\n\n private blurHandler = (ev: FocusEvent) => {\n this.hasFocus = false;\n this.dispatchEvent(\n new CustomEvent('blur', {\n detail: ev,\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n private focusHandler = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.dispatchEvent(\n new CustomEvent('focus', {\n detail: ev,\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n private handleKeyUp = (evt: KeyboardEvent) => {\n if (evt.key === 'Enter') {\n this.clickHandler(evt);\n }\n };\n\n /**\n * Sets focus on the checkbox.\n */\n focus() {\n this.containerElement?.focus();\n }\n\n /**\n * Removes focus from the checkbox.\n */\n blur() {\n this.containerElement?.blur();\n }\n\n render() {\n const cssClasses = {\n checkbox: true,\n 'state-checked': this.value,\n 'state-indeterminate': !this.value && this.indeterminate,\n [`size-${this.size}`]: true,\n 'has-focus': this.hasFocus,\n active: this.isActive,\n disabled: this.disabled,\n readonly: this.readonly,\n required: this.required,\n rounded: this.rounded,\n 'has-content': this.slotHasContent,\n };\n\n return html`\n <label class=${classMap(cssClasses)}>\n <div\n class=\"container\"\n tabindex=${this.tabindex || 0}\n @keyup=${this.handleKeyUp}\n @mousedown=${this.mouseDownHandler}\n @keydown=${this.keyDownHandler}\n @blur=${this.blurHandler}\n @focus=${this.focusHandler}\n role=\"checkbox\"\n aria-disabled=${this.disabled}\n aria-required=${this.required}\n aria-checked=${this.value\n ? 'true'\n : this.indeterminate\n ? 'mixed'\n : 'false'}\n ${spread(this.configAria)}\n >\n <div class=\"state-layer\"></div>\n <div class=\"outline\"></div>\n <div class=\"background\"></div>\n <svg class=\"icon\" viewBox=\"0 0 12 12\">\n ${this.value\n ? svg`\n <path\n class=\"checkmark\"\n d=\"M2 6L5 9L10 2\"\n />\n `\n : this.indeterminate\n ? svg`<rect\n class=\"indeterminate\"\n x=\"2\"\n y=\"5\"\n width=\"8\"\n height=\"2\"\n />`\n : ''}\n </svg>\n </div>\n\n <input\n type=\"checkbox\"\n class=\"input-native\"\n name=${this.name}\n .checked=${this.value}\n .indeterminate=${this.indeterminate}\n aria-hidden=\"true\"\n ?required=${this.required}\n tabindex=\"-1\"\n @click=${this.clickHandler}\n />\n\n ${this.label\n ? html`<div class=\"label\">${this.label}</div>`\n : html`<div class=\"label slot-container\"><slot></slot></div>`}\n </label>\n `;\n }\n}\n"],"names":["LitElement","html","classMap","svg","styles","property","state","query"],"mappings":"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"}