@vollowx/seele 0.13.5 → 0.13.6

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 (146) hide show
  1. package/custom-elements.json +1256 -115
  2. package/package.json +22 -14
  3. package/src/all.d.ts +34 -0
  4. package/src/base/autocomplete.d.ts +56 -0
  5. package/src/base/autocomplete.js +75 -87
  6. package/src/base/button.d.ts +13 -0
  7. package/src/base/button.js +21 -19
  8. package/src/base/checkbox.d.ts +18 -0
  9. package/src/base/checkbox.js +39 -34
  10. package/src/base/controllers/list-controller.d.ts +37 -0
  11. package/src/base/controllers/list-controller.js +23 -15
  12. package/src/base/controllers/popover-controller.d.ts +35 -0
  13. package/src/base/controllers/popover-controller.js +37 -29
  14. package/src/base/dialog.d.ts +20 -0
  15. package/src/base/dialog.js +11 -9
  16. package/src/base/field.d.ts +3 -0
  17. package/src/base/input.d.ts +44 -0
  18. package/src/base/input.js +57 -65
  19. package/src/base/item.d.ts +7 -0
  20. package/src/base/item.js +2 -1
  21. package/src/base/list-item.d.ts +15 -0
  22. package/src/base/list-item.js +22 -22
  23. package/src/base/list.d.ts +54 -0
  24. package/src/base/list.js +69 -55
  25. package/src/base/menu-item.d.ts +6 -0
  26. package/src/base/menu-item.js +4 -3
  27. package/src/base/menu.d.ts +76 -0
  28. package/src/base/menu.js +135 -143
  29. package/src/base/mixins/attachable.d.ts +9 -0
  30. package/src/base/mixins/attachable.js +22 -18
  31. package/src/base/mixins/focus-delegated.d.ts +5 -0
  32. package/src/base/mixins/focus-delegated.js +6 -8
  33. package/src/base/mixins/form-associated.d.ts +15 -0
  34. package/src/base/mixins/form-associated.js +11 -18
  35. package/src/base/mixins/internals-attached.d.ts +6 -0
  36. package/src/base/mixins/internals-attached.js +1 -1
  37. package/src/base/option.d.ts +9 -0
  38. package/src/base/option.js +7 -8
  39. package/src/base/radio.d.ts +13 -0
  40. package/src/base/radio.js +49 -42
  41. package/src/base/select.d.ts +116 -0
  42. package/src/base/select.js +130 -128
  43. package/src/base/slider.d.ts +75 -0
  44. package/src/base/slider.js +115 -118
  45. package/src/base/tab-panel.d.ts +9 -0
  46. package/src/base/tab-panel.js +11 -11
  47. package/src/base/tab.d.ts +18 -0
  48. package/src/base/tab.js +25 -24
  49. package/src/base/tabs.d.ts +19 -0
  50. package/src/base/tabs.js +84 -81
  51. package/src/base/toggle-button.d.ts +47 -0
  52. package/src/base/toggle-button.js +56 -52
  53. package/src/base/tooltip.d.ts +37 -0
  54. package/src/base/tooltip.js +70 -65
  55. package/src/core/decorators.d.ts +2 -0
  56. package/src/core/decorators.js +4 -3
  57. package/src/core/focus-visible.d.ts +2 -0
  58. package/src/core/focus-visible.js +4 -4
  59. package/src/core/shared.d.ts +1 -0
  60. package/src/core/unique-id.d.ts +4 -0
  61. package/src/core/unique-id.js +2 -1
  62. package/src/m3/autocomplete/autocomplete.d.ts +8 -0
  63. package/src/m3/autocomplete/autocomplete.js +10 -10
  64. package/src/m3/badge/badge.d.ts +12 -0
  65. package/src/m3/badge/badge.js +24 -37
  66. package/src/m3/button/common-button-toggle.d.ts +31 -0
  67. package/src/m3/button/common-button-toggle.js +44 -41
  68. package/src/m3/button/common-button.d.ts +29 -0
  69. package/src/m3/button/common-button.js +40 -40
  70. package/src/m3/button/icon-button-toggle.d.ts +24 -0
  71. package/src/m3/button/icon-button-toggle.js +35 -32
  72. package/src/m3/button/icon-button.d.ts +23 -0
  73. package/src/m3/button/icon-button.js +33 -31
  74. package/src/m3/button-group/connected-button-group.d.ts +19 -0
  75. package/src/m3/button-group/connected-button-group.js +26 -24
  76. package/src/m3/button-group/standard-button-group.d.ts +24 -0
  77. package/src/m3/button-group/standard-button-group.js +71 -65
  78. package/src/m3/checkbox/checkbox.d.ts +25 -0
  79. package/src/m3/checkbox/checkbox.js +23 -22
  80. package/src/m3/dialog/dialog-spring.d.ts +45 -0
  81. package/src/m3/dialog/dialog-spring.js +83 -86
  82. package/src/m3/dialog/dialog.d.ts +46 -0
  83. package/src/m3/dialog/dialog.js +90 -117
  84. package/src/m3/divider/divider.d.ts +13 -0
  85. package/src/m3/divider/divider.js +20 -33
  86. package/src/m3/fab/fab.d.ts +23 -0
  87. package/src/m3/fab/fab.js +24 -23
  88. package/src/m3/field/field.d.ts +28 -0
  89. package/src/m3/field/field.js +40 -55
  90. package/src/m3/field/filled-field.d.ts +11 -0
  91. package/src/m3/field/filled-field.js +7 -11
  92. package/src/m3/field/outlined-field.d.ts +11 -0
  93. package/src/m3/field/outlined-field.js +8 -12
  94. package/src/m3/focus-ring/focus-ring.d.ts +32 -0
  95. package/src/m3/focus-ring/focus-ring.js +38 -23
  96. package/src/m3/item/item.d.ts +31 -0
  97. package/src/m3/item/item.js +32 -17
  98. package/src/m3/list/list-item.d.ts +22 -0
  99. package/src/m3/list/list-item.js +18 -16
  100. package/src/m3/list/list.d.ts +15 -0
  101. package/src/m3/list/list.js +16 -15
  102. package/src/m3/loading-indicator/loading-indicator.d.ts +26 -0
  103. package/src/m3/loading-indicator/loading-indicator.js +113 -161
  104. package/src/m3/menu/menu-item.d.ts +15 -0
  105. package/src/m3/menu/menu-item.js +10 -4
  106. package/src/m3/menu/menu.d.ts +22 -0
  107. package/src/m3/menu/menu.js +20 -18
  108. package/src/m3/radio/radio-styles.css.js +1 -1
  109. package/src/m3/radio/radio.d.ts +17 -0
  110. package/src/m3/radio/radio.js +22 -11
  111. package/src/m3/ripple/ripple.d.ts +43 -0
  112. package/src/m3/ripple/ripple.js +82 -89
  113. package/src/m3/select/filled-select.d.ts +16 -0
  114. package/src/m3/select/filled-select.js +12 -10
  115. package/src/m3/select/option.d.ts +15 -0
  116. package/src/m3/select/option.js +10 -4
  117. package/src/m3/select/outlined-select.d.ts +16 -0
  118. package/src/m3/select/outlined-select.js +12 -10
  119. package/src/m3/select/select.d.ts +13 -0
  120. package/src/m3/select/select.js +16 -16
  121. package/src/m3/slider/slider.d.ts +20 -0
  122. package/src/m3/slider/slider.js +32 -26
  123. package/src/m3/switch/switch.d.ts +27 -0
  124. package/src/m3/switch/switch.js +62 -53
  125. package/src/m3/system/motion.d.ts +12 -0
  126. package/src/m3/system/motion.js +16 -9
  127. package/src/m3/tab/tab-panel.d.ts +9 -0
  128. package/src/m3/tab/tab-panel.js +6 -9
  129. package/src/m3/tab/tab.d.ts +19 -0
  130. package/src/m3/tab/tab.js +14 -12
  131. package/src/m3/tab/tabs.d.ts +25 -0
  132. package/src/m3/tab/tabs.js +34 -30
  133. package/src/m3/text-field/filled-text-field.d.ts +13 -0
  134. package/src/m3/text-field/filled-text-field.js +15 -20
  135. package/src/m3/text-field/outlined-text-field.d.ts +13 -0
  136. package/src/m3/text-field/outlined-text-field.js +15 -20
  137. package/src/m3/toolbar/toolbar.d.ts +26 -0
  138. package/src/m3/toolbar/toolbar.js +28 -25
  139. package/src/m3/tooltip/tooltip.d.ts +19 -0
  140. package/src/m3/tooltip/tooltip.js +15 -14
  141. package/src/win98/button/button.d.ts +13 -0
  142. package/src/win98/button/button.js +13 -11
  143. package/src/win98/button/radio.d.ts +3 -0
  144. package/src/win98/button/radio.js +5 -4
  145. package/src/win98/radio/radio.d.ts +3 -0
  146. package/src/win98/radio/radio.js +5 -4
@@ -0,0 +1,75 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2018-2023 Google, Inc.
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { LitElement, PropertyValues } from 'lit';
7
+ declare const Base: Constructor<import("./mixins/form-associated.js").FormAssociatedInterface> & Constructor<import("./mixins/focus-delegated.js").FocusDelegatedInterface> & Constructor<import("./mixins/internals-attached.js").InternalsAttachedInterface> & typeof LitElement;
8
+ export declare class Slider extends Base {
9
+ min: number;
10
+ max: number;
11
+ value?: number;
12
+ valueStart?: number;
13
+ valueEnd?: number;
14
+ valueLabel: string;
15
+ valueLabelStart: string;
16
+ valueLabelEnd: string;
17
+ ariaLabelStart: string;
18
+ ariaValueTextStart: string;
19
+ ariaLabelEnd: string;
20
+ ariaValueTextEnd: string;
21
+ step: number;
22
+ ticks: boolean;
23
+ labeled: boolean;
24
+ range: boolean;
25
+ get nameStart(): string;
26
+ set nameStart(name: string);
27
+ get nameEnd(): string;
28
+ set nameEnd(name: string);
29
+ protected readonly inputStart: HTMLInputElement | null;
30
+ protected readonly inputEnd: HTMLInputElement | null;
31
+ protected readonly handleStart: HTMLDivElement | null;
32
+ protected readonly handleEnd: HTMLDivElement | null;
33
+ protected startOnTop: boolean;
34
+ protected handlesOverlapping: boolean;
35
+ protected renderValueStart?: number;
36
+ protected renderValueEnd?: number;
37
+ protected get renderAriaLabelStart(): string;
38
+ protected get renderAriaValueTextStart(): string;
39
+ protected get renderAriaLabelEnd(): string;
40
+ protected get renderAriaValueTextEnd(): string;
41
+ protected renderInput({ start, value, ariaLabel, ariaValueText, ariaMin, ariaMax, }: {
42
+ start: boolean;
43
+ value?: number;
44
+ ariaLabel: string;
45
+ ariaValueText: string;
46
+ ariaMin: number;
47
+ ariaMax: number;
48
+ }): import("lit-html").TemplateResult<1>;
49
+ private isRedispatchingEvent;
50
+ private action?;
51
+ ariaLabel: string | null;
52
+ ariaValueText: string | null;
53
+ constructor();
54
+ focus(): void;
55
+ protected willUpdate(changed: PropertyValues): void;
56
+ protected updated(changed: PropertyValues): void;
57
+ protected handleFocus(event: Event): void;
58
+ protected handleKeydown(event: KeyboardEvent): void;
59
+ protected handleKeyup(event: KeyboardEvent): void;
60
+ protected handleDown(event: PointerEvent): void;
61
+ protected handleUp(event: PointerEvent): Promise<void>;
62
+ protected handleInput(event: InputEvent): void;
63
+ protected handleChange(event: Event): void;
64
+ private startAction;
65
+ private finishAction;
66
+ private updateOnTop;
67
+ private needsClamping;
68
+ private isActionFlipped;
69
+ private flipAction;
70
+ private clampAction;
71
+ formResetCallback(): void;
72
+ formStateRestoreCallback(state: string | Array<[string, string]> | null): void;
73
+ protected updateFormValue(): void;
74
+ }
75
+ export {};
@@ -1,9 +1,10 @@
1
- import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
2
1
  /**
3
2
  * @license
4
3
  * Copyright 2018-2023 Google, Inc.
5
4
  * SPDX-License-Identifier: Apache-2.0
6
- */ import { LitElement, html, nothing } from 'lit';
5
+ */
6
+ import { __decorate } from "tslib";
7
+ import { LitElement, html, nothing } from 'lit';
7
8
  import { property, query, state } from 'lit/decorators.js';
8
9
  import { classMap } from 'lit/directives/class-map.js';
9
10
  import { InternalsAttached, internals } from './mixins/internals-attached.js';
@@ -24,36 +25,60 @@ export class Slider extends Base {
24
25
  this.setAttribute('name-end', name);
25
26
  }
26
27
  get renderAriaLabelStart() {
27
- return this.ariaLabelStart || this.ariaLabel && `${this.ariaLabel} start` || this.valueLabelStart || String(this.valueStart);
28
+ return (this.ariaLabelStart ||
29
+ (this.ariaLabel && `${this.ariaLabel} start`) ||
30
+ this.valueLabelStart ||
31
+ String(this.valueStart));
28
32
  }
29
33
  get renderAriaValueTextStart() {
30
- return this.ariaValueTextStart || this.valueLabelStart || String(this.valueStart);
34
+ return (this.ariaValueTextStart || this.valueLabelStart || String(this.valueStart));
31
35
  }
32
36
  get renderAriaLabelEnd() {
33
37
  if (this.range) {
34
- return this.ariaLabelEnd || this.ariaLabel && `${this.ariaLabel} end` || this.valueLabelEnd || String(this.valueEnd);
38
+ return (this.ariaLabelEnd ||
39
+ (this.ariaLabel && `${this.ariaLabel} end`) ||
40
+ this.valueLabelEnd ||
41
+ String(this.valueEnd));
35
42
  }
36
43
  return this.ariaLabel || this.valueLabel || String(this.value);
37
44
  }
38
45
  get renderAriaValueTextEnd() {
39
46
  if (this.range) {
40
- return this.ariaValueTextEnd || this.valueLabelEnd || String(this.valueEnd);
47
+ return (this.ariaValueTextEnd || this.valueLabelEnd || String(this.valueEnd));
41
48
  }
42
49
  return this.ariaValueText || this.valueLabel || String(this.value);
43
50
  }
44
- renderInput({ start, value, ariaLabel, ariaValueText, ariaMin, ariaMax }) {
51
+ renderInput({ start, value, ariaLabel, ariaValueText, ariaMin, ariaMax, }) {
45
52
  const name = start ? `start` : `end`;
46
- return html`<input type="range" class="${classMap({
53
+ return html `<input type="range" class="${classMap({
47
54
  start,
48
- end: !start
55
+ end: !start,
49
56
  })}" @focus="${this.handleFocus}" @pointerdown="${this.handleDown}" @pointerup="${this.handleUp}" @keydown="${this.handleKeydown}" @keyup="${this.handleKeyup}" @input="${this.handleInput}" @change="${this.handleChange}" id="${name}" .disabled="${this.disabled}" .min="${String(this.min)}" aria-valuemin="${ariaMin}" .max="${String(this.max)}" aria-valuemax="${ariaMax}" .step="${String(this.step)}" .value="${String(value)}" .tabIndex="${start ? 1 : 0}" aria-label="${ariaLabel || nothing}" aria-valuetext="${ariaValueText}">`;
50
57
  }
51
- constructor(){
52
- super(), this.min = 0, this.max = 100, this.valueLabel = '', this.valueLabelStart = '', this.valueLabelEnd = '', this.ariaLabelStart = '', this.ariaValueTextStart = '', this.ariaLabelEnd = '', this.ariaValueTextEnd = '', this.step = 1, this.ticks = false, this.labeled = false, this.range = false, this.startOnTop = false, this.handlesOverlapping = false, this.isRedispatchingEvent = false, // @TODO: Delegate ARIA attributes to inputs, automatically convert from
58
+ constructor() {
59
+ super();
60
+ this.min = 0;
61
+ this.max = 100;
62
+ this.valueLabel = '';
63
+ this.valueLabelStart = '';
64
+ this.valueLabelEnd = '';
65
+ this.ariaLabelStart = '';
66
+ this.ariaValueTextStart = '';
67
+ this.ariaLabelEnd = '';
68
+ this.ariaValueTextEnd = '';
69
+ this.step = 1;
70
+ this.ticks = false;
71
+ this.labeled = false;
72
+ this.range = false;
73
+ this.startOnTop = false;
74
+ this.handlesOverlapping = false;
75
+ this.isRedispatchingEvent = false;
76
+ // @TODO: Delegate ARIA attributes to inputs, automatically convert from
53
77
  // aria-* to data-aria-*.
54
- this.ariaLabel = null, this.ariaValueText = null;
78
+ this.ariaLabel = null;
79
+ this.ariaValueText = null;
55
80
  // Activation click handling usually goes here if needed
56
- this.addEventListener('click', (event)=>{
81
+ this.addEventListener('click', (event) => {
57
82
  if (!isActivationClick(event) || !this.inputEnd) {
58
83
  return;
59
84
  }
@@ -65,9 +90,15 @@ export class Slider extends Base {
65
90
  this.inputEnd?.focus();
66
91
  }
67
92
  willUpdate(changed) {
68
- this.renderValueStart = changed.has('valueStart') ? this.valueStart : this.inputStart?.valueAsNumber;
69
- const endValueChanged = changed.has('valueEnd') && this.range || changed.has('value');
70
- this.renderValueEnd = endValueChanged ? this.range ? this.valueEnd : this.value : this.inputEnd?.valueAsNumber;
93
+ this.renderValueStart = changed.has('valueStart')
94
+ ? this.valueStart
95
+ : this.inputStart?.valueAsNumber;
96
+ const endValueChanged = (changed.has('valueEnd') && this.range) || changed.has('value');
97
+ this.renderValueEnd = endValueChanged
98
+ ? this.range
99
+ ? this.valueEnd
100
+ : this.value
101
+ : this.inputEnd?.valueAsNumber;
71
102
  }
72
103
  updated(changed) {
73
104
  if (this.range) {
@@ -86,10 +117,14 @@ export class Slider extends Base {
86
117
  const v = this.inputEnd.valueAsNumber;
87
118
  this.valueEnd = this.renderValueEnd = v;
88
119
  }
89
- } else {
120
+ }
121
+ else {
90
122
  this.value ??= this.renderValueEnd;
91
123
  }
92
- if (changed.has('range') || changed.has('renderValueStart') || changed.has('renderValueEnd') || this.isUpdatePending) {
124
+ if (changed.has('range') ||
125
+ changed.has('renderValueStart') ||
126
+ changed.has('renderValueEnd') ||
127
+ this.isUpdatePending) {
93
128
  const startNub = this.handleStart?.querySelector('.handleNub');
94
129
  const endNub = this.handleEnd?.querySelector('.handleNub');
95
130
  this.handlesOverlapping = isOverlapping(startNub, endNub);
@@ -119,9 +154,7 @@ export class Slider extends Base {
119
154
  if (target !== undefined) {
120
155
  target.focus();
121
156
  if (flipped && target.valueAsNumber !== values.get(target)) {
122
- target.dispatchEvent(new Event('change', {
123
- bubbles: true
124
- }));
157
+ target.dispatchEvent(new Event('change', { bubbles: true }));
125
158
  }
126
159
  }
127
160
  this.finishAction(event);
@@ -147,7 +180,8 @@ export class Slider extends Base {
147
180
  if (this.range) {
148
181
  this.valueStart = this.inputStart.valueAsNumber;
149
182
  this.valueEnd = this.inputEnd.valueAsNumber;
150
- } else {
183
+ }
184
+ else {
151
185
  this.value = this.inputEnd.valueAsNumber;
152
186
  }
153
187
  if (stopPropagation) {
@@ -178,15 +212,9 @@ export class Slider extends Base {
178
212
  target,
179
213
  fixed,
180
214
  values: new Map([
181
- [
182
- target,
183
- target.valueAsNumber
184
- ],
185
- [
186
- fixed,
187
- fixed?.valueAsNumber
188
- ]
189
- ])
215
+ [target, target.valueAsNumber],
216
+ [fixed, fixed?.valueAsNumber],
217
+ ]),
190
218
  };
191
219
  }
192
220
  finishAction(event) {
@@ -201,7 +229,9 @@ export class Slider extends Base {
201
229
  }
202
230
  const { target, fixed } = this.action;
203
231
  const isStart = target === this.inputStart;
204
- return isStart ? target.valueAsNumber > fixed.valueAsNumber : target.valueAsNumber < fixed.valueAsNumber;
232
+ return isStart
233
+ ? target.valueAsNumber > fixed.valueAsNumber
234
+ : target.valueAsNumber < fixed.valueAsNumber;
205
235
  }
206
236
  isActionFlipped() {
207
237
  const { action } = this;
@@ -268,126 +298,89 @@ export class Slider extends Base {
268
298
  data.append(this.nameStart, String(this.valueStart));
269
299
  data.append(this.nameEnd, String(this.valueEnd));
270
300
  this[internals].setFormValue(data);
271
- } else {
301
+ }
302
+ else {
272
303
  this[internals].setFormValue(String(this.value));
273
304
  }
274
305
  }
275
306
  }
276
- _ts_decorate([
277
- property({
278
- type: Number
279
- })
307
+ __decorate([
308
+ property({ type: Number })
280
309
  ], Slider.prototype, "min", void 0);
281
- _ts_decorate([
282
- property({
283
- type: Number
284
- })
310
+ __decorate([
311
+ property({ type: Number })
285
312
  ], Slider.prototype, "max", void 0);
286
- _ts_decorate([
287
- property({
288
- type: Number
289
- })
313
+ __decorate([
314
+ property({ type: Number })
290
315
  ], Slider.prototype, "value", void 0);
291
- _ts_decorate([
292
- property({
293
- type: Number,
294
- attribute: 'value-start'
295
- })
316
+ __decorate([
317
+ property({ type: Number, attribute: 'value-start' })
296
318
  ], Slider.prototype, "valueStart", void 0);
297
- _ts_decorate([
298
- property({
299
- type: Number,
300
- attribute: 'value-end'
301
- })
319
+ __decorate([
320
+ property({ type: Number, attribute: 'value-end' })
302
321
  ], Slider.prototype, "valueEnd", void 0);
303
- _ts_decorate([
304
- property({
305
- attribute: 'value-label'
306
- })
322
+ __decorate([
323
+ property({ attribute: 'value-label' })
307
324
  ], Slider.prototype, "valueLabel", void 0);
308
- _ts_decorate([
309
- property({
310
- attribute: 'value-label-start'
311
- })
325
+ __decorate([
326
+ property({ attribute: 'value-label-start' })
312
327
  ], Slider.prototype, "valueLabelStart", void 0);
313
- _ts_decorate([
314
- property({
315
- attribute: 'value-label-end'
316
- })
328
+ __decorate([
329
+ property({ attribute: 'value-label-end' })
317
330
  ], Slider.prototype, "valueLabelEnd", void 0);
318
- _ts_decorate([
319
- property({
320
- attribute: 'aria-label-start'
321
- })
331
+ __decorate([
332
+ property({ attribute: 'aria-label-start' })
322
333
  ], Slider.prototype, "ariaLabelStart", void 0);
323
- _ts_decorate([
324
- property({
325
- attribute: 'aria-valuetext-start'
326
- })
334
+ __decorate([
335
+ property({ attribute: 'aria-valuetext-start' })
327
336
  ], Slider.prototype, "ariaValueTextStart", void 0);
328
- _ts_decorate([
329
- property({
330
- attribute: 'aria-label-end'
331
- })
337
+ __decorate([
338
+ property({ attribute: 'aria-label-end' })
332
339
  ], Slider.prototype, "ariaLabelEnd", void 0);
333
- _ts_decorate([
334
- property({
335
- attribute: 'aria-valuetext-end'
336
- })
340
+ __decorate([
341
+ property({ attribute: 'aria-valuetext-end' })
337
342
  ], Slider.prototype, "ariaValueTextEnd", void 0);
338
- _ts_decorate([
339
- property({
340
- type: Number
341
- })
343
+ __decorate([
344
+ property({ type: Number })
342
345
  ], Slider.prototype, "step", void 0);
343
- _ts_decorate([
344
- property({
345
- type: Boolean
346
- })
346
+ __decorate([
347
+ property({ type: Boolean })
347
348
  ], Slider.prototype, "ticks", void 0);
348
- _ts_decorate([
349
- property({
350
- type: Boolean
351
- })
349
+ __decorate([
350
+ property({ type: Boolean })
352
351
  ], Slider.prototype, "labeled", void 0);
353
- _ts_decorate([
354
- property({
355
- type: Boolean
356
- })
352
+ __decorate([
353
+ property({ type: Boolean })
357
354
  ], Slider.prototype, "range", void 0);
358
- _ts_decorate([
355
+ __decorate([
359
356
  query('input.start')
360
357
  ], Slider.prototype, "inputStart", void 0);
361
- _ts_decorate([
358
+ __decorate([
362
359
  query('input.end')
363
360
  ], Slider.prototype, "inputEnd", void 0);
364
- _ts_decorate([
361
+ __decorate([
365
362
  query('.handle.start')
366
363
  ], Slider.prototype, "handleStart", void 0);
367
- _ts_decorate([
364
+ __decorate([
368
365
  query('.handle.end')
369
366
  ], Slider.prototype, "handleEnd", void 0);
370
- _ts_decorate([
367
+ __decorate([
371
368
  state()
372
369
  ], Slider.prototype, "startOnTop", void 0);
373
- _ts_decorate([
370
+ __decorate([
374
371
  state()
375
372
  ], Slider.prototype, "handlesOverlapping", void 0);
376
- _ts_decorate([
373
+ __decorate([
377
374
  state()
378
375
  ], Slider.prototype, "renderValueStart", void 0);
379
- _ts_decorate([
376
+ __decorate([
380
377
  state()
381
378
  ], Slider.prototype, "renderValueEnd", void 0);
382
- _ts_decorate([
383
- property({
384
- attribute: 'data-aria-label'
385
- })
379
+ __decorate([
380
+ property({ attribute: 'data-aria-label' })
386
381
  ], Slider.prototype, "ariaLabel", void 0);
387
- _ts_decorate([
388
- property({
389
- attribute: 'data-aria-valuetext'
390
- })
382
+ __decorate([
383
+ property({ attribute: 'data-aria-valuetext' })
391
384
  ], Slider.prototype, "ariaValueText", void 0);
392
385
  function isOverlapping(elA, elB) {
393
386
  if (!(elA && elB)) {
@@ -395,7 +388,10 @@ function isOverlapping(elA, elB) {
395
388
  }
396
389
  const a = elA.getBoundingClientRect();
397
390
  const b = elB.getBoundingClientRect();
398
- return !(a.top > b.bottom || a.right < b.left || a.bottom < b.top || a.left > b.right);
391
+ return !(a.top > b.bottom ||
392
+ a.right < b.left ||
393
+ a.bottom < b.top ||
394
+ a.left > b.right);
399
395
  }
400
396
  function isActivationClick(event) {
401
397
  // Simple check for now, simplified version of material web's check
@@ -408,7 +404,7 @@ function dispatchActivationClick(element) {
408
404
  const event = new MouseEvent('click', {
409
405
  bubbles: true,
410
406
  cancelable: true,
411
- view: window
407
+ view: window,
412
408
  });
413
409
  element.dispatchEvent(event);
414
410
  }
@@ -421,7 +417,8 @@ function redispatchEvent(element, event) {
421
417
  const copy = new event.constructor(event.type, {
422
418
  bubbles: event.bubbles,
423
419
  cancelable: event.cancelable,
424
- composed: event.composed
420
+ composed: event.composed,
421
+ // detail: (event as any).detail,
425
422
  });
426
423
  element.dispatchEvent(copy);
427
424
  return true;
@@ -0,0 +1,9 @@
1
+ import { LitElement } from 'lit';
2
+ declare const TabPanel_base: Constructor<import("./mixins/internals-attached.js").InternalsAttachedInterface> & typeof LitElement;
3
+ export declare class TabPanel extends TabPanel_base {
4
+ protected _role: string;
5
+ render(): import("lit-html").TemplateResult<1>;
6
+ value: string;
7
+ connectedCallback(): void;
8
+ }
9
+ export {};
@@ -1,25 +1,25 @@
1
- import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
1
+ import { __decorate } from "tslib";
2
2
  import { LitElement, html } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
4
  import { InternalsAttached, internals } from './mixins/internals-attached.js';
5
5
  import { genUniqueId } from '../core/unique-id.js';
6
6
  export class TabPanel extends InternalsAttached(LitElement) {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._role = 'tabpanel';
10
+ this.value = '';
11
+ }
7
12
  render() {
8
- return html`<slot></slot>`;
13
+ return html `<slot></slot>`;
9
14
  }
10
15
  connectedCallback() {
11
16
  super.connectedCallback();
12
17
  this.setAttribute('seele-base', 'tabpanel');
13
18
  this[internals].role = this._role;
14
- if (!this.id) this.id = genUniqueId('tabpanel');
15
- }
16
- constructor(...args){
17
- super(...args), this._role = 'tabpanel', this.value = '';
19
+ if (!this.id)
20
+ this.id = genUniqueId('tabpanel');
18
21
  }
19
22
  }
20
- _ts_decorate([
21
- property({
22
- type: String,
23
- reflect: true
24
- })
23
+ __decorate([
24
+ property({ type: String, reflect: true })
25
25
  ], TabPanel.prototype, "value", void 0);
@@ -0,0 +1,18 @@
1
+ import { LitElement } from 'lit';
2
+ declare const Tab_base: Constructor<import("./mixins/internals-attached.js").InternalsAttachedInterface> & typeof LitElement;
3
+ /**
4
+ * TODO: disabled
5
+ */
6
+ export declare class Tab extends Tab_base {
7
+ #private;
8
+ protected _role: string;
9
+ selected: boolean;
10
+ focused: boolean;
11
+ value: string;
12
+ render(): import("lit-html").TemplateResult<1>;
13
+ connectedCallback(): void;
14
+ protected updated(changed: Map<string, any>): void;
15
+ focus(): void;
16
+ blur(): void;
17
+ }
18
+ export {};
package/src/base/tab.js CHANGED
@@ -1,19 +1,28 @@
1
- import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
1
+ import { __decorate } from "tslib";
2
2
  import { LitElement, html } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
4
  import { InternalsAttached, internals } from './mixins/internals-attached.js';
5
5
  import { genUniqueId } from '../core/unique-id.js';
6
6
  /**
7
7
  * TODO: disabled
8
- */ export class Tab extends InternalsAttached(LitElement) {
8
+ */
9
+ export class Tab extends InternalsAttached(LitElement) {
10
+ constructor() {
11
+ super(...arguments);
12
+ this._role = 'tab';
13
+ this.selected = false;
14
+ this.focused = false;
15
+ this.value = '';
16
+ }
9
17
  render() {
10
- return html`<slot></slot>`;
18
+ return html `<slot></slot>`;
11
19
  }
12
20
  connectedCallback() {
13
21
  super.connectedCallback();
14
22
  this.setAttribute('seele-base', 'tab');
15
23
  this[internals].role = this._role;
16
- if (!this.id) this.id = genUniqueId('tab');
24
+ if (!this.id)
25
+ this.id = genUniqueId('tab');
17
26
  this.#updateInternals();
18
27
  }
19
28
  updated(changed) {
@@ -24,8 +33,12 @@ import { genUniqueId } from '../core/unique-id.js';
24
33
  }
25
34
  #updateInternals() {
26
35
  this[internals].ariaSelected = this.selected ? 'true' : 'false';
27
- this.focused ? this[internals].states.add('focused') : this[internals].states.delete('focused');
28
- this.selected ? this[internals].states.add('selected') : this[internals].states.delete('selected');
36
+ this.focused
37
+ ? this[internals].states.add('focused')
38
+ : this[internals].states.delete('focused');
39
+ this.selected
40
+ ? this[internals].states.add('selected')
41
+ : this[internals].states.delete('selected');
29
42
  }
30
43
  focus() {
31
44
  this.focused = true;
@@ -35,25 +48,13 @@ import { genUniqueId } from '../core/unique-id.js';
35
48
  this.focused = false;
36
49
  super.blur();
37
50
  }
38
- constructor(...args){
39
- super(...args), this._role = 'tab', this.selected = false, this.focused = false, this.value = '';
40
- }
41
51
  }
42
- _ts_decorate([
43
- property({
44
- type: Boolean,
45
- reflect: true
46
- })
52
+ __decorate([
53
+ property({ type: Boolean, reflect: true })
47
54
  ], Tab.prototype, "selected", void 0);
48
- _ts_decorate([
49
- property({
50
- type: Boolean,
51
- reflect: true
52
- })
55
+ __decorate([
56
+ property({ type: Boolean, reflect: true })
53
57
  ], Tab.prototype, "focused", void 0);
54
- _ts_decorate([
55
- property({
56
- type: String,
57
- reflect: true
58
- })
58
+ __decorate([
59
+ property({ type: String, reflect: true })
59
60
  ], Tab.prototype, "value", void 0);
@@ -0,0 +1,19 @@
1
+ import { LitElement } from 'lit';
2
+ import type { Tab } from './tab.js';
3
+ /**
4
+ * @fires {CustomEvent} tab-select
5
+ */
6
+ export declare class Tabs extends LitElement {
7
+ #private;
8
+ protected _role: string;
9
+ switch: 'auto' | 'manual';
10
+ selected: string;
11
+ $slotItems: Array<HTMLElement>;
12
+ get $tabs(): Tab[];
13
+ get $parent(): HTMLElement;
14
+ render(): import("lit-html").TemplateResult<1>;
15
+ connectedCallback(): void;
16
+ protected updated(changed: Map<string, any>): void;
17
+ focusTab(tab: Tab): void;
18
+ selectTab(selectedTab: Tab): void;
19
+ }