@vollowx/seele 0.13.5 → 0.13.7

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 (145) 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 +57 -0
  5. package/src/base/autocomplete.js +80 -98
  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 +78 -0
  28. package/src/base/menu.js +137 -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/ensure-ready.d.ts +1 -0
  58. package/src/core/ensure-ready.js +15 -0
  59. package/src/core/focus-visible.d.ts +2 -0
  60. package/src/core/focus-visible.js +4 -4
  61. package/src/core/shared.d.ts +1 -0
  62. package/src/core/unique-id.d.ts +4 -0
  63. package/src/core/unique-id.js +2 -1
  64. package/src/m3/autocomplete/autocomplete.d.ts +9 -0
  65. package/src/m3/autocomplete/autocomplete.js +11 -10
  66. package/src/m3/badge/badge.d.ts +13 -0
  67. package/src/m3/badge/badge.js +28 -37
  68. package/src/m3/button/common-button-toggle.d.ts +31 -0
  69. package/src/m3/button/common-button-toggle.js +44 -41
  70. package/src/m3/button/common-button.d.ts +29 -0
  71. package/src/m3/button/common-button.js +40 -40
  72. package/src/m3/button/icon-button-toggle.d.ts +24 -0
  73. package/src/m3/button/icon-button-toggle.js +35 -32
  74. package/src/m3/button/icon-button.d.ts +23 -0
  75. package/src/m3/button/icon-button.js +33 -31
  76. package/src/m3/button-group/connected-button-group.d.ts +19 -0
  77. package/src/m3/button-group/connected-button-group.js +26 -24
  78. package/src/m3/button-group/standard-button-group.d.ts +24 -0
  79. package/src/m3/button-group/standard-button-group.js +71 -65
  80. package/src/m3/checkbox/checkbox.d.ts +25 -0
  81. package/src/m3/checkbox/checkbox.js +23 -22
  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 +24 -0
  99. package/src/m3/list/list-item.js +20 -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 +14 -0
  120. package/src/m3/select/select.js +17 -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/m3/dialog/dialog-spring.js +0 -179
  144. package/src/win98/button/radio.js +0 -8
  145. package/src/win98/radio/radio.js +0 -8
@@ -1,16 +1,15 @@
1
- import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
1
+ import { __decorate } from "tslib";
2
2
  import { property } from 'lit/decorators.js';
3
3
  import { ListItem } from './list-item.js';
4
- export const OptionMixin = (superClass)=>{
4
+ export const OptionMixin = (superClass) => {
5
5
  class OptionElement extends superClass {
6
- constructor(...args){
7
- super(...args), this.value = '';
6
+ constructor() {
7
+ super(...arguments);
8
+ this.value = '';
8
9
  }
9
10
  }
10
- _ts_decorate([
11
- property({
12
- reflect: true
13
- })
11
+ __decorate([
12
+ property({ reflect: true })
14
13
  ], OptionElement.prototype, "value", void 0);
15
14
  return OptionElement;
16
15
  };
@@ -0,0 +1,13 @@
1
+ import { LitElement, PropertyValues } from 'lit';
2
+ declare const Radio_base: Constructor<import("./mixins/form-associated.js").FormAssociatedInterface> & Constructor<import("./mixins/internals-attached.js").InternalsAttachedInterface> & typeof LitElement;
3
+ export declare class Radio extends Radio_base {
4
+ #private;
5
+ value: string;
6
+ checked: boolean;
7
+ constructor();
8
+ connectedCallback(): void;
9
+ disconnectedCallback(): void;
10
+ protected updated(changedProperties: PropertyValues<this>): void;
11
+ formResetCallback(): void;
12
+ }
13
+ export {};
package/src/base/radio.js CHANGED
@@ -1,4 +1,5 @@
1
- import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
1
+ var _a;
2
+ import { __decorate } from "tslib";
2
3
  import { LitElement } from 'lit';
3
4
  import { property } from 'lit/decorators.js';
4
5
  import { FormAssociated } from './mixins/form-associated.js';
@@ -8,8 +9,11 @@ export class Radio extends FormAssociated(InternalsAttached(LitElement)) {
8
9
  static #registry = new Map();
9
10
  #currentScope;
10
11
  #currentName;
11
- constructor(){
12
- super(), this.#currentScope = null, this.#currentName = '', this.checked = false;
12
+ constructor() {
13
+ super();
14
+ this.#currentScope = null;
15
+ this.#currentName = '';
16
+ this.checked = false;
13
17
  this[internals].role = 'radio';
14
18
  }
15
19
  connectedCallback() {
@@ -37,24 +41,25 @@ export class Radio extends FormAssociated(InternalsAttached(LitElement)) {
37
41
  }
38
42
  this[internals].setFormValue(this.checked ? this.value : null);
39
43
  this.#updateGroupTabIndices();
40
- this.dispatchEvent(new Event('change', {
41
- bubbles: true,
42
- composed: true
43
- }));
44
+ this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));
44
45
  }
45
- if (changedProperties.has('disabled') || changedProperties.has('checked')) this.#updateAriaState();
46
+ if (changedProperties.has('disabled') || changedProperties.has('checked'))
47
+ this.#updateAriaState();
46
48
  }
47
49
  #handleClick() {
48
- if (this.disabled || this.checked) return;
50
+ if (this.disabled || this.checked)
51
+ return;
49
52
  this.checked = true;
50
53
  this.focus();
51
54
  }
52
55
  #handleKeyDown(event) {
53
- if (this.disabled) return;
54
- switch(event.key){
56
+ if (this.disabled)
57
+ return;
58
+ switch (event.key) {
55
59
  case ' ':
56
60
  event.preventDefault();
57
- if (!this.checked) this.checked = true;
61
+ if (!this.checked)
62
+ this.checked = true;
58
63
  break;
59
64
  case 'ArrowDown':
60
65
  case 'ArrowRight':
@@ -72,14 +77,15 @@ export class Radio extends FormAssociated(InternalsAttached(LitElement)) {
72
77
  return this.form ?? this.getRootNode();
73
78
  }
74
79
  #registerToGroup() {
75
- if (!this.name) return;
80
+ if (!this.name)
81
+ return;
76
82
  const scope = this.#getScope();
77
83
  this.#currentScope = scope;
78
84
  this.#currentName = this.name;
79
- let scopeMap = Radio.#registry.get(scope);
85
+ let scopeMap = _a.#registry.get(scope);
80
86
  if (!scopeMap) {
81
87
  scopeMap = new Map();
82
- Radio.#registry.set(scope, scopeMap);
88
+ _a.#registry.set(scope, scopeMap);
83
89
  }
84
90
  let group = scopeMap.get(this.name);
85
91
  if (!group) {
@@ -90,51 +96,56 @@ export class Radio extends FormAssociated(InternalsAttached(LitElement)) {
90
96
  this.#updateGroupTabIndices(group);
91
97
  }
92
98
  #unregisterFromGroup() {
93
- if (!this.#currentScope || !this.#currentName) return;
94
- const scopeMap = Radio.#registry.get(this.#currentScope);
99
+ if (!this.#currentScope || !this.#currentName)
100
+ return;
101
+ const scopeMap = _a.#registry.get(this.#currentScope);
95
102
  if (scopeMap) {
96
103
  const group = scopeMap.get(this.#currentName);
97
104
  if (group) {
98
105
  group.delete(this);
99
106
  if (group.size === 0) {
100
107
  scopeMap.delete(this.#currentName);
101
- } else {
108
+ }
109
+ else {
102
110
  this.#updateGroupTabIndices(group);
103
111
  }
104
112
  }
105
- if (scopeMap.size === 0) Radio.#registry.delete(this.#currentScope);
113
+ if (scopeMap.size === 0)
114
+ _a.#registry.delete(this.#currentScope);
106
115
  }
107
116
  this.#currentScope = null;
108
117
  this.#currentName = '';
109
118
  }
110
119
  #getGroupRadios() {
111
- if (!this.name) return [
112
- this
113
- ];
120
+ if (!this.name)
121
+ return [this];
114
122
  const scope = this.#getScope();
115
- const group = Radio.#registry.get(scope)?.get(this.name);
116
- return group ? Array.from(group) : [
117
- this
118
- ];
123
+ const group = _a.#registry.get(scope)?.get(this.name);
124
+ return group ? Array.from(group) : [this];
119
125
  }
120
126
  #uncheckSiblings() {
121
127
  const radios = this.#getGroupRadios();
122
- for (const radio of radios)if (radio !== this && radio.checked) radio.checked = false;
128
+ for (const radio of radios)
129
+ if (radio !== this && radio.checked)
130
+ radio.checked = false;
123
131
  }
124
132
  #updateGroupTabIndices(groupSet) {
125
133
  const radios = groupSet ? Array.from(groupSet) : this.#getGroupRadios();
126
- if (radios.length === 0) return;
127
- const hasChecked = radios.some((r)=>r.checked && !r.disabled);
134
+ if (radios.length === 0)
135
+ return;
136
+ const hasChecked = radios.some((r) => r.checked && !r.disabled);
128
137
  let enabledFound = false;
129
- for (const radio of radios){
138
+ for (const radio of radios) {
130
139
  const active = !radio.disabled && (hasChecked ? radio.checked : !enabledFound);
131
- if (active) enabledFound = true;
140
+ if (active)
141
+ enabledFound = true;
132
142
  radio.tabIndex = active ? 0 : -1;
133
143
  }
134
144
  }
135
145
  #navigateGroup(direction) {
136
- const radios = this.#getGroupRadios().filter((r)=>!r.disabled);
137
- if (radios.length <= 1) return;
146
+ const radios = this.#getGroupRadios().filter((r) => !r.disabled);
147
+ if (radios.length <= 1)
148
+ return;
138
149
  const currentIndex = radios.indexOf(this);
139
150
  const nextIndex = (currentIndex + direction + radios.length) % radios.length;
140
151
  const targetRadio = radios[nextIndex];
@@ -149,14 +160,10 @@ export class Radio extends FormAssociated(InternalsAttached(LitElement)) {
149
160
  this.checked = this.hasAttribute('checked');
150
161
  }
151
162
  }
152
- _ts_decorate([
153
- property({
154
- type: String
155
- })
163
+ _a = Radio;
164
+ __decorate([
165
+ property({ type: String })
156
166
  ], Radio.prototype, "value", void 0);
157
- _ts_decorate([
158
- property({
159
- type: Boolean,
160
- reflect: true
161
- })
167
+ __decorate([
168
+ property({ type: Boolean, reflect: true })
162
169
  ], Radio.prototype, "checked", void 0);
@@ -0,0 +1,116 @@
1
+ import { LitElement, PropertyValues } from 'lit';
2
+ import type { Placement, Strategy } from '@floating-ui/dom';
3
+ import type { Field } from './field.js';
4
+ import type { Menu, MenuItemFocusEvent, MenuSelectEvent } from './menu.js';
5
+ import type { Option } from './option.js';
6
+ declare const VALUE: unique symbol;
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
+ /**
9
+ * @csspart field
10
+ * @csspart menu
11
+ * @csspart items
12
+ *
13
+ * @fires {Event} change - Fires when the value is changed.
14
+ * @fires {Event} input - Fires when the value is changed.
15
+ *
16
+ * TODO: Render multiple values
17
+ * FIXME: `aria-expanded` set twice by both Lit and Menu
18
+ */
19
+ export declare class Select extends Base {
20
+ #private;
21
+ required: boolean;
22
+ error: boolean;
23
+ quick: boolean;
24
+ offset: number;
25
+ align: Placement;
26
+ alignStrategy: Strategy;
27
+ open: boolean;
28
+ /**
29
+ * Text to display in the field. Only set for SSR.
30
+ */
31
+ displayText: string;
32
+ get value(): string;
33
+ set value(value: string);
34
+ [VALUE]: string;
35
+ get $options(): Option[];
36
+ get selectedIndex(): number;
37
+ set selectedIndex(index: number);
38
+ get selectedOptions(): Option[];
39
+ $field: Field;
40
+ $menu: Menu;
41
+ private lastUserSetValue;
42
+ private lastUserSetSelectedIndex;
43
+ private lastSelectedOption;
44
+ private lastSelectedOptionRecords;
45
+ render(): import("lit-html").TemplateResult<1>;
46
+ /**
47
+ * Example content:
48
+ *
49
+ * ```html
50
+ * <your-field
51
+ * id="field"
52
+ * part="field"
53
+ * @click=${this.toggle}
54
+ * @keydown=${this.handleFieldKeydown}
55
+ * tabindex=${this.disabled ? '-1' : '0'}
56
+ * role="combobox"
57
+ * aria-haspopup="listbox"
58
+ * aria-expanded=${this.open}
59
+ * aria-controls="menu"
60
+ * aria-disabled=${this.disabled}
61
+ * aria-required=${this.required}
62
+ * >
63
+ * ${this.renderFieldContent()}
64
+ * </your-field>
65
+ * ```
66
+ */
67
+ protected renderField(): import("lit-html").TemplateResult<1>;
68
+ /**
69
+ * Example content:
70
+ *
71
+ * ```html
72
+ * <your-menu
73
+ * id="menu"
74
+ * for="field"
75
+ * type="listbox"
76
+ * data-tabindex="-1"
77
+ * ?quick="${this.quick}"
78
+ * offset="${this.offset}"
79
+ * align="${this.align}"
80
+ * align-strategy="${this.alignStrategy}"
81
+ * keep-open-blur
82
+ * no-focus-control
83
+ * ?open="${this.open}"
84
+ * @item-focus="${this.handleMenuItemFocus}"
85
+ * @select="${this.handleMenuSelect}"
86
+ * >
87
+ * <slot part="items" @slotchange=${this.handleSlotChange}></slot>
88
+ * </your-menu>
89
+ * ```
90
+ */
91
+ protected renderMenu(): import("lit-html").TemplateResult<1>;
92
+ protected renderFieldContent(): import("lit-html").TemplateResult<1>;
93
+ constructor();
94
+ protected firstUpdated(changed: PropertyValues<Select>): Promise<void>;
95
+ protected update(changed: PropertyValues<Select>): void;
96
+ protected updated(changed: PropertyValues): void;
97
+ /**
98
+ * TODO: Handle clear action
99
+ */
100
+ protected _handleFieldKeydown(event: KeyboardEvent): void;
101
+ protected _handleMenuSelect(event: MenuSelectEvent): void;
102
+ protected _handleMenuItemFocus(event: MenuItemFocusEvent): void;
103
+ protected _handleFocusOut(event: FocusEvent): void;
104
+ protected _handleSlotChange(): void;
105
+ private selectItem;
106
+ private initUserSelection;
107
+ private updateValueAndDisplayText;
108
+ private getSelectedOptions;
109
+ formResetCallback(): void;
110
+ formStateRestoreCallback(state: string): void;
111
+ select(value: string): void;
112
+ selectIndex(index: number): void;
113
+ reset(): void;
114
+ toggle(): void;
115
+ }
116
+ export {};