@sondor-technology/sondor-components 1.0.4 → 1.0.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 (220) hide show
  1. package/dist/components/alert/alert.constants.d.ts +3 -0
  2. package/dist/components/alert/alert.constants.d.ts.map +1 -0
  3. package/dist/components/alert/alert.constants.js +2 -0
  4. package/dist/components/alert/alert.constants.js.map +1 -0
  5. package/dist/components/alert/alert.d.ts +4 -3
  6. package/dist/components/alert/alert.d.ts.map +1 -1
  7. package/dist/components/alert/alert.js +21 -11
  8. package/dist/components/alert/alert.js.map +1 -0
  9. package/dist/components/badge/badge.constants.d.ts +3 -0
  10. package/dist/components/badge/badge.constants.d.ts.map +1 -0
  11. package/dist/components/badge/badge.constants.js +2 -0
  12. package/dist/components/badge/badge.constants.js.map +1 -0
  13. package/dist/components/badge/badge.d.ts +1 -1
  14. package/dist/components/badge/badge.d.ts.map +1 -1
  15. package/dist/components/badge/badge.js +3 -2
  16. package/dist/components/badge/badge.js.map +1 -0
  17. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  18. package/dist/components/breadcrumb/breadcrumb.js +2 -1
  19. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  20. package/dist/components/button/button.constants.d.ts +7 -0
  21. package/dist/components/button/button.constants.d.ts.map +1 -0
  22. package/dist/components/button/button.constants.js +4 -0
  23. package/dist/components/button/button.constants.js.map +1 -0
  24. package/dist/components/button/button.d.ts +8 -4
  25. package/dist/components/button/button.d.ts.map +1 -1
  26. package/dist/components/button/button.js +181 -137
  27. package/dist/components/button/button.js.map +1 -0
  28. package/dist/components/button-group/button-group.d.ts +6 -0
  29. package/dist/components/button-group/button-group.d.ts.map +1 -1
  30. package/dist/components/button-group/button-group.js +17 -21
  31. package/dist/components/button-group/button-group.js.map +1 -0
  32. package/dist/components/checkbox/checkbox.constants.d.ts +3 -0
  33. package/dist/components/checkbox/checkbox.constants.d.ts.map +1 -0
  34. package/dist/components/checkbox/checkbox.constants.js +2 -0
  35. package/dist/components/checkbox/checkbox.constants.js.map +1 -0
  36. package/dist/components/checkbox/checkbox.d.ts +5 -1
  37. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  38. package/dist/components/checkbox/checkbox.js +21 -5
  39. package/dist/components/checkbox/checkbox.js.map +1 -0
  40. package/dist/components/code-block/code-block.d.ts +12 -7
  41. package/dist/components/code-block/code-block.d.ts.map +1 -1
  42. package/dist/components/code-block/code-block.js +130 -66
  43. package/dist/components/code-block/code-block.js.map +1 -0
  44. package/dist/components/content-card/content-card.d.ts.map +1 -1
  45. package/dist/components/content-card/content-card.js +10 -15
  46. package/dist/components/content-card/content-card.js.map +1 -0
  47. package/dist/components/divider/divider.constants.d.ts +5 -0
  48. package/dist/components/divider/divider.constants.d.ts.map +1 -0
  49. package/dist/components/divider/divider.constants.js +3 -0
  50. package/dist/components/divider/divider.constants.js.map +1 -0
  51. package/dist/components/divider/divider.d.ts +4 -2
  52. package/dist/components/divider/divider.d.ts.map +1 -1
  53. package/dist/components/divider/divider.js +18 -9
  54. package/dist/components/divider/divider.js.map +1 -0
  55. package/dist/components/drawer/drawer.d.ts +7 -4
  56. package/dist/components/drawer/drawer.d.ts.map +1 -1
  57. package/dist/components/drawer/drawer.js +73 -30
  58. package/dist/components/drawer/drawer.js.map +1 -0
  59. package/dist/components/field/field.d.ts +2 -2
  60. package/dist/components/field/field.d.ts.map +1 -1
  61. package/dist/components/field/field.js +8 -9
  62. package/dist/components/field/field.js.map +1 -0
  63. package/dist/components/footer/footer.d.ts +8 -1
  64. package/dist/components/footer/footer.d.ts.map +1 -1
  65. package/dist/components/footer/footer.js +42 -12
  66. package/dist/components/footer/footer.js.map +1 -0
  67. package/dist/components/form/form-step.js +1 -0
  68. package/dist/components/form/form-step.js.map +1 -0
  69. package/dist/components/form/form.d.ts +3 -0
  70. package/dist/components/form/form.d.ts.map +1 -1
  71. package/dist/components/form/form.js +107 -67
  72. package/dist/components/form/form.js.map +1 -0
  73. package/dist/components/grid/grid-row.d.ts +3 -3
  74. package/dist/components/grid/grid-row.d.ts.map +1 -1
  75. package/dist/components/grid/grid-row.js +36 -22
  76. package/dist/components/grid/grid-row.js.map +1 -0
  77. package/dist/components/grid/grid.d.ts +2 -2
  78. package/dist/components/grid/grid.d.ts.map +1 -1
  79. package/dist/components/grid/grid.js +5 -2
  80. package/dist/components/grid/grid.js.map +1 -0
  81. package/dist/components/icon/icon-paths.js +1 -0
  82. package/dist/components/icon/icon-paths.js.map +1 -0
  83. package/dist/components/icon/icon.js +1 -0
  84. package/dist/components/icon/icon.js.map +1 -0
  85. package/dist/components/input/input.d.ts +14 -0
  86. package/dist/components/input/input.d.ts.map +1 -1
  87. package/dist/components/input/input.js +30 -37
  88. package/dist/components/input/input.js.map +1 -0
  89. package/dist/components/link/link.d.ts +6 -6
  90. package/dist/components/link/link.d.ts.map +1 -1
  91. package/dist/components/link/link.js +42 -19
  92. package/dist/components/link/link.js.map +1 -0
  93. package/dist/components/metadata/metadata.d.ts +3 -3
  94. package/dist/components/metadata/metadata.d.ts.map +1 -1
  95. package/dist/components/metadata/metadata.js +23 -20
  96. package/dist/components/metadata/metadata.js.map +1 -0
  97. package/dist/components/modal/modal.d.ts +4 -16
  98. package/dist/components/modal/modal.d.ts.map +1 -1
  99. package/dist/components/modal/modal.js +99 -62
  100. package/dist/components/modal/modal.js.map +1 -0
  101. package/dist/components/page-layout/page-layout.d.ts +4 -3
  102. package/dist/components/page-layout/page-layout.d.ts.map +1 -1
  103. package/dist/components/page-layout/page-layout.js +96 -69
  104. package/dist/components/page-layout/page-layout.js.map +1 -0
  105. package/dist/components/radio/radio.d.ts +8 -0
  106. package/dist/components/radio/radio.d.ts.map +1 -1
  107. package/dist/components/radio/radio.js +8 -12
  108. package/dist/components/radio/radio.js.map +1 -0
  109. package/dist/components/radio-group/radio-group.d.ts +6 -1
  110. package/dist/components/radio-group/radio-group.d.ts.map +1 -1
  111. package/dist/components/radio-group/radio-group.js +44 -18
  112. package/dist/components/radio-group/radio-group.js.map +1 -0
  113. package/dist/components/router/router.d.ts +5 -7
  114. package/dist/components/router/router.d.ts.map +1 -1
  115. package/dist/components/router/router.js +54 -38
  116. package/dist/components/router/router.js.map +1 -0
  117. package/dist/components/select/select.d.ts +41 -7
  118. package/dist/components/select/select.d.ts.map +1 -1
  119. package/dist/components/select/select.js +467 -150
  120. package/dist/components/select/select.js.map +1 -0
  121. package/dist/components/skeleton/skeleton.d.ts +3 -2
  122. package/dist/components/skeleton/skeleton.d.ts.map +1 -1
  123. package/dist/components/skeleton/skeleton.js +10 -13
  124. package/dist/components/skeleton/skeleton.js.map +1 -0
  125. package/dist/components/switch/switch.d.ts +12 -0
  126. package/dist/components/switch/switch.d.ts.map +1 -1
  127. package/dist/components/switch/switch.js +28 -22
  128. package/dist/components/switch/switch.js.map +1 -0
  129. package/dist/components/table/data-table.d.ts +3 -25
  130. package/dist/components/table/data-table.d.ts.map +1 -1
  131. package/dist/components/table/data-table.js +211 -146
  132. package/dist/components/table/data-table.js.map +1 -0
  133. package/dist/components/table/table.d.ts +3 -3
  134. package/dist/components/table/table.d.ts.map +1 -1
  135. package/dist/components/table/table.js +39 -20
  136. package/dist/components/table/table.js.map +1 -0
  137. package/dist/components/tabs/tab-panel.d.ts +8 -1
  138. package/dist/components/tabs/tab-panel.d.ts.map +1 -1
  139. package/dist/components/tabs/tab-panel.js +21 -11
  140. package/dist/components/tabs/tab-panel.js.map +1 -0
  141. package/dist/components/tabs/tab.d.ts +10 -1
  142. package/dist/components/tabs/tab.d.ts.map +1 -1
  143. package/dist/components/tabs/tab.js +46 -28
  144. package/dist/components/tabs/tab.js.map +1 -0
  145. package/dist/components/tabs/tabs.d.ts +9 -0
  146. package/dist/components/tabs/tabs.d.ts.map +1 -1
  147. package/dist/components/tabs/tabs.js +76 -13
  148. package/dist/components/tabs/tabs.js.map +1 -0
  149. package/dist/components/textarea/textarea.d.ts +13 -0
  150. package/dist/components/textarea/textarea.d.ts.map +1 -1
  151. package/dist/components/textarea/textarea.js +59 -13
  152. package/dist/components/textarea/textarea.js.map +1 -0
  153. package/dist/components/theme-toggle/theme-toggle.constants.d.ts +3 -0
  154. package/dist/components/theme-toggle/theme-toggle.constants.d.ts.map +1 -0
  155. package/dist/components/theme-toggle/theme-toggle.constants.js +2 -0
  156. package/dist/components/theme-toggle/theme-toggle.constants.js.map +1 -0
  157. package/dist/components/theme-toggle/theme-toggle.d.ts +3 -2
  158. package/dist/components/theme-toggle/theme-toggle.d.ts.map +1 -1
  159. package/dist/components/theme-toggle/theme-toggle.js +46 -19
  160. package/dist/components/theme-toggle/theme-toggle.js.map +1 -0
  161. package/dist/components/vertical-nav/vertical-nav-group.d.ts +5 -2
  162. package/dist/components/vertical-nav/vertical-nav-group.d.ts.map +1 -1
  163. package/dist/components/vertical-nav/vertical-nav-group.js +50 -14
  164. package/dist/components/vertical-nav/vertical-nav-group.js.map +1 -0
  165. package/dist/components/vertical-nav/vertical-nav-item.d.ts +3 -2
  166. package/dist/components/vertical-nav/vertical-nav-item.d.ts.map +1 -1
  167. package/dist/components/vertical-nav/vertical-nav-item.js +30 -8
  168. package/dist/components/vertical-nav/vertical-nav-item.js.map +1 -0
  169. package/dist/styles/index.css +50 -17
  170. package/dist/styles/reset.js +1 -0
  171. package/dist/styles/reset.js.map +1 -0
  172. package/package.json +2 -1
  173. package/src/components/alert/alert.constants.ts +2 -0
  174. package/src/components/alert/alert.ts +24 -15
  175. package/src/components/badge/badge.constants.ts +2 -0
  176. package/src/components/badge/badge.ts +3 -4
  177. package/src/components/breadcrumb/breadcrumb.ts +2 -2
  178. package/src/components/button/button.constants.ts +8 -0
  179. package/src/components/button/button.ts +184 -144
  180. package/src/components/button-group/button-group.ts +23 -21
  181. package/src/components/checkbox/checkbox.constants.ts +2 -0
  182. package/src/components/checkbox/checkbox.ts +33 -18
  183. package/src/components/code-block/code-block.ts +157 -84
  184. package/src/components/content-card/content-card.ts +10 -16
  185. package/src/components/divider/divider.constants.ts +5 -0
  186. package/src/components/divider/divider.ts +22 -11
  187. package/src/components/drawer/drawer.ts +79 -34
  188. package/src/components/field/field.ts +9 -11
  189. package/src/components/footer/footer.ts +43 -12
  190. package/src/components/form/form.ts +120 -83
  191. package/src/components/grid/grid-row.ts +45 -32
  192. package/src/components/grid/grid.ts +7 -4
  193. package/src/components/input/input.ts +37 -41
  194. package/src/components/link/link.ts +45 -21
  195. package/src/components/metadata/metadata.ts +26 -24
  196. package/src/components/modal/modal.ts +108 -74
  197. package/src/components/page-layout/page-layout.ts +98 -73
  198. package/src/components/radio/radio.ts +8 -13
  199. package/src/components/radio-group/radio-group.ts +45 -21
  200. package/src/components/router/router.ts +73 -50
  201. package/src/components/select/select.ts +502 -131
  202. package/src/components/skeleton/skeleton.ts +14 -14
  203. package/src/components/switch/switch.ts +31 -25
  204. package/src/components/table/data-table.ts +248 -177
  205. package/src/components/table/table.ts +52 -29
  206. package/src/components/tabs/tab-panel.ts +30 -13
  207. package/src/components/tabs/tab.ts +64 -33
  208. package/src/components/tabs/tabs.ts +82 -14
  209. package/src/components/textarea/textarea.ts +63 -15
  210. package/src/components/theme-toggle/theme-toggle.constants.ts +2 -0
  211. package/src/components/theme-toggle/theme-toggle.ts +47 -22
  212. package/src/components/vertical-nav/vertical-nav-group.ts +57 -18
  213. package/src/components/vertical-nav/vertical-nav-item.ts +35 -12
  214. package/src/styles/globals.css +27 -4
  215. package/src/styles/theme.css +39 -31
  216. package/tsconfig.json +2 -1
  217. package/dist/components/card/card.d.ts +0 -11
  218. package/dist/components/card/card.d.ts.map +0 -1
  219. package/dist/components/card/card.js +0 -54
  220. package/src/components/card/card.ts +0 -53
@@ -4,169 +4,486 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
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
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { LitElement, html, css } from 'lit';
8
- import { customElement, property } from 'lit/decorators.js';
9
- import { resetStyles } from '../../styles/reset.js';
7
+ import { LitElement, html, css } from "lit";
8
+ import { customElement, property, state, query } from "lit/decorators.js";
9
+ import { classMap } from "lit/directives/class-map.js";
10
10
  let StSelect = class StSelect extends LitElement {
11
11
  constructor() {
12
12
  super();
13
- this.size = 'md';
14
- this.variant = 'outline';
15
- this.color = 'default';
16
- // Internal state to handle the chevron animation when the slotted select is focused
17
- this.focused = false;
18
- // Track focus states to animate the chevron
19
- this.addEventListener('focusin', () => this.focused = true);
20
- this.addEventListener('focusout', () => this.focused = false);
13
+ this.name = "";
14
+ this.label = "";
15
+ this.value = "";
16
+ this.required = false;
17
+ this.multiple = false;
18
+ this.searchable = false;
19
+ this.options = [];
20
+ this.error = "";
21
+ this.disabled = false;
22
+ this.invalid = false;
23
+ this.autocomplete = "off";
24
+ this.open = false;
25
+ this.filterText = "";
26
+ this.nativeError = "";
27
+ this.touched = false;
28
+ this.internals = this.attachInternals();
29
+ this.handleClickOutside = this.handleClickOutside.bind(this);
30
+ }
31
+ checkValidity() {
32
+ return this.internals.checkValidity();
33
+ }
34
+ reportValidity() {
35
+ const isValid = this.checkValidity();
36
+ this.touched = true;
37
+ this.invalid = !isValid;
38
+ return isValid;
39
+ }
40
+ focus(options) {
41
+ this.buttonElement?.focus(options);
42
+ }
43
+ connectedCallback() {
44
+ super.connectedCallback();
45
+ document.addEventListener("click", this.handleClickOutside);
46
+ this.addEventListener("invalid", () => {
47
+ this.touched = true;
48
+ this.invalid = true;
49
+ });
50
+ }
51
+ disconnectedCallback() {
52
+ document.removeEventListener("click", this.handleClickOutside);
53
+ super.disconnectedCallback();
54
+ }
55
+ willUpdate(changedProperties) {
56
+ super.willUpdate(changedProperties);
57
+ if (changedProperties.has("value") ||
58
+ changedProperties.has("required") ||
59
+ changedProperties.has("error")) {
60
+ this.validate();
61
+ }
62
+ }
63
+ get selectedValues() {
64
+ if (!this.value)
65
+ return [];
66
+ return this.value
67
+ .split(",")
68
+ .map((v) => v.trim())
69
+ .filter(Boolean);
70
+ }
71
+ validate() {
72
+ this.internals.setFormValue(this.value);
73
+ const isMissing = this.required && this.selectedValues.length === 0;
74
+ if (this.error) {
75
+ this.internals.setValidity({ customError: true }, this.error);
76
+ this.nativeError = this.error;
77
+ }
78
+ else if (isMissing) {
79
+ const msg = "Please make a selection.";
80
+ this.internals.setValidity({ valueMissing: true }, msg);
81
+ this.nativeError = msg;
82
+ }
83
+ else {
84
+ this.internals.setValidity({});
85
+ this.nativeError = "";
86
+ this.invalid = false;
87
+ }
88
+ }
89
+ formResetCallback() {
90
+ const initialValue = this.getAttribute("value") || "";
91
+ this.value = initialValue;
92
+ this.touched = false;
93
+ this.validate();
94
+ }
95
+ handleClickOutside(e) {
96
+ const path = e.composedPath();
97
+ if (!path.includes(this)) {
98
+ if (this.open) {
99
+ this.touched = true;
100
+ }
101
+ this.open = false;
102
+ this.filterText = "";
103
+ }
104
+ }
105
+ toggleOpen() {
106
+ if (this.disabled)
107
+ return;
108
+ if (this.open) {
109
+ this.touched = true;
110
+ }
111
+ this.open = !this.open;
112
+ if (this.open) {
113
+ setTimeout(() => {
114
+ if (this.searchable && this.searchInputEl) {
115
+ this.searchInputEl.focus();
116
+ }
117
+ else {
118
+ const first = this.shadowRoot?.querySelector(".option");
119
+ first?.focus();
120
+ }
121
+ }, 0);
122
+ }
123
+ else {
124
+ this.filterText = "";
125
+ }
126
+ }
127
+ handleOptionClick(optValue, e) {
128
+ e.stopPropagation();
129
+ this.touched = true;
130
+ if (this.multiple) {
131
+ const current = this.selectedValues;
132
+ const index = current.indexOf(optValue);
133
+ let updated;
134
+ if (index > -1) {
135
+ updated = current.filter((v) => v !== optValue);
136
+ }
137
+ else {
138
+ updated = [...current, optValue];
139
+ }
140
+ this.value = updated.join(",");
141
+ }
142
+ else {
143
+ this.value = optValue;
144
+ this.open = false;
145
+ this.buttonElement?.focus();
146
+ }
147
+ this.dispatchEvent(new Event("change", { bubbles: true, composed: true }));
148
+ }
149
+ handleSearchInput(e) {
150
+ this.filterText = e.target.value;
151
+ }
152
+ handleButtonKeydown(e) {
153
+ if (this.disabled)
154
+ return;
155
+ if (e.key === "Enter" || e.key === " " || e.key === "ArrowDown") {
156
+ e.preventDefault();
157
+ this.toggleOpen();
158
+ }
21
159
  }
22
160
  render() {
161
+ const currentValues = this.selectedValues;
162
+ const selectedOptions = this.options.filter((opt) => currentValues.includes(opt.value));
163
+ const isInvalid = this.invalid || (this.touched && !this.internals.validity.valid) || !!this.error;
164
+ const displayError = isInvalid ? this.error || this.nativeError : "";
165
+ const filteredOptions = this.searchable
166
+ ? this.options.filter((opt) => opt.label.toLowerCase().includes(this.filterText.toLowerCase()))
167
+ : this.options;
23
168
  return html `
24
- <div class="select-wrapper">
25
- <slot></slot>
26
- <svg class="chevron" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
169
+ ${this.label ? html `<label id="select-label">${this.label}</label>` : ""}
170
+
171
+ <button
172
+ type="button"
173
+ ?disabled=${this.disabled}
174
+ class=${classMap({
175
+ combobox: true,
176
+ "is-placeholder": selectedOptions.length === 0,
177
+ "is-invalid": isInvalid,
178
+ })}
179
+ role="combobox"
180
+ aria-haspopup="listbox"
181
+ aria-expanded="${this.open}"
182
+ aria-labelledby="select-label"
183
+ aria-controls="select-listbox"
184
+ @click=${this.toggleOpen}
185
+ @keydown=${this.handleButtonKeydown}
186
+ >
187
+ <div class="selection-container">
188
+ ${selectedOptions.length > 0
189
+ ? this.multiple
190
+ ? selectedOptions.map((opt) => html `<span class="chip">${opt.label}</span>`)
191
+ : html `<span>${selectedOptions[0].label}</span>`
192
+ : html `<span>Select option...</span>`}
193
+ </div>
194
+ <svg
195
+ style="width:16px;height:16px;flex-shrink:0"
196
+ viewBox="0 0 24 24"
197
+ fill="none"
198
+ stroke="currentColor"
199
+ stroke-width="2"
200
+ >
27
201
  <polyline points="6 9 12 15 18 9"></polyline>
28
202
  </svg>
29
- </div>
203
+ </button>
204
+
205
+ ${this.open
206
+ ? html `
207
+ <div class="listbox-container">
208
+ ${this.searchable
209
+ ? html `
210
+ <div class="search-wrapper" @click=${(e) => e.stopPropagation()}>
211
+ <input
212
+ type="text"
213
+ class="search-input"
214
+ placeholder="Search options..."
215
+ autocomplete="off"
216
+ spellcheck="false"
217
+ autocapitalize="none"
218
+ .value=${this.filterText}
219
+ @input=${this.handleSearchInput}
220
+ />
221
+ </div>
222
+ `
223
+ : ""}
224
+
225
+ <ul
226
+ id="select-listbox"
227
+ class="listbox"
228
+ role="listbox"
229
+ aria-multiselectable="${this.multiple}"
230
+ >
231
+ ${filteredOptions.length > 0
232
+ ? filteredOptions.map((opt) => {
233
+ const isSelected = currentValues.includes(opt.value);
234
+ return html `
235
+ <li
236
+ class="option"
237
+ role="option"
238
+ aria-selected="${isSelected}"
239
+ @click=${(e) => this.handleOptionClick(opt.value, e)}
240
+ >
241
+ <span>${opt.label}</span>
242
+ ${this.multiple && isSelected ? html `<span>✓</span>` : ""}
243
+ </li>
244
+ `;
245
+ })
246
+ : html `<li
247
+ class="option"
248
+ role="option"
249
+ aria-disabled="true"
250
+ style="color:var(--st-color-text-muted); cursor:default;"
251
+ >
252
+ No options found
253
+ </li>`}
254
+ </ul>
255
+ </div>
256
+ `
257
+ : ""}
258
+ ${displayError ? html `<span class="error-msg">${displayError}</span>` : ""}
259
+
260
+ <select
261
+ class="hidden-native"
262
+ name="${this.name}"
263
+ .autocomplete="${this.autocomplete}"
264
+ ?multiple=${this.multiple}
265
+ tabindex="-1"
266
+ aria-hidden="true"
267
+ ?disabled=${this.disabled}
268
+ >
269
+ <option value=""></option>
270
+ ${this.options.map((opt) => html `
271
+ <option value="${opt.value}" ?selected=${currentValues.includes(opt.value)}>
272
+ ${opt.label}
273
+ </option>
274
+ `)}
275
+ </select>
30
276
  `;
31
277
  }
32
278
  };
33
- StSelect.styles = [
34
- resetStyles,
35
- css `
36
- :host {
37
- display: inline-block;
38
- width: 100%;
39
- position: relative;
40
- }
41
-
42
- .select-wrapper {
43
- position: relative;
44
- display: flex;
45
- align-items: center;
46
- width: 100%;
47
- }
48
-
49
- /*
50
- Target the native select provided by the user in the Light DOM.
51
- This completely bypasses the browser rendering bug.
52
- */
53
- ::slotted(select) {
54
- appearance: none;
55
- -webkit-appearance: none;
56
- width: 100%;
57
- font-family: inherit;
58
- background-color: transparent;
59
- border-radius: var(--st-radius-md, 0.5rem);
60
- color: var(--st-color-text);
61
- cursor: pointer;
62
- outline: none;
63
- transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s;
64
- }
65
-
66
- ::slotted(select:disabled) {
67
- opacity: 0.6;
68
- cursor: not-allowed;
69
- }
70
-
71
- /* ==========================================================
72
- Sizes
73
- ========================================================== */
74
- :host([size="sm"]) ::slotted(select) {
75
- padding: 0.25rem 2rem 0.25rem 0.75rem;
76
- font-size: 0.875rem;
77
- height: 2rem;
78
- }
79
- :host([size="md"]) ::slotted(select) {
80
- padding: 0.5rem 2.5rem 0.5rem 1rem;
81
- font-size: 1rem;
82
- height: 2.5rem;
83
- }
84
- :host([size="lg"]) ::slotted(select) {
85
- padding: 0.75rem 3rem 0.75rem 1.25rem;
86
- font-size: 1.125rem;
87
- height: 3rem;
88
- }
89
-
90
- /* Multiple select formatting (No fixed height, no right padding for chevron) */
91
- ::slotted(select[multiple]) {
92
- height: auto !important;
93
- padding-right: 1rem !important;
94
- }
95
-
96
- /* ==========================================================
97
- Variants & Colors
98
- ========================================================== */
99
- :host([variant="outline"]) ::slotted(select) {
100
- border: 1px solid var(--st-color-border);
101
- }
102
- :host([variant="outline"][color="default"]) ::slotted(select:focus-visible) {
103
- border-color: var(--st-color-primary);
104
- box-shadow: 0 0 0 2px rgba(var(--st-color-primary-rgb, 99, 102, 241), 0.2);
105
- }
106
-
107
- :host([variant="filled"]) ::slotted(select) {
108
- border: 1px solid transparent;
109
- background-color: var(--st-color-surface-hover, rgba(0, 0, 0, 0.05));
110
- }
111
- :host([variant="filled"]) ::slotted(select:not(:disabled):hover) {
112
- background-color: var(--st-color-surface-active, rgba(0, 0, 0, 0.1));
113
- }
114
- :host([variant="filled"][color="default"]) ::slotted(select:focus-visible) {
115
- border-color: var(--st-color-primary);
116
- background-color: transparent;
117
- }
118
-
119
- /* Error Color State */
120
- :host([color="error"]) ::slotted(select) {
121
- border-color: var(--st-color-error, #ef4444);
122
- }
123
- :host([color="error"]) ::slotted(select:focus-visible) {
124
- box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2);
125
- }
126
-
127
- /* Primary Color State */
128
- :host([color="primary"]) ::slotted(select) {
129
- border-color: var(--st-color-primary);
130
- }
131
-
132
- /* ==========================================================
133
- Chevron Icon
134
- ========================================================== */
135
- .chevron {
136
- position: absolute;
137
- right: 0.75rem;
138
- width: 1.25rem;
139
- height: 1.25rem;
140
- pointer-events: none;
141
- color: var(--st-color-text-muted);
142
- transition: transform 0.2s ease, color 0.2s ease;
143
- }
144
-
145
- /* Animate chevron when the wrapper detects focus */
146
- :host([focused]) .chevron {
147
- transform: rotate(180deg);
148
- color: var(--st-color-primary);
149
- }
150
-
151
- /* Hide chevron if the user slots a native multiple select */
152
- ::slotted(select[multiple]) ~ .chevron {
153
- display: none;
154
- }
155
- `
156
- ];
157
- __decorate([
158
- property({ type: String, reflect: true })
159
- ], StSelect.prototype, "size", void 0);
160
- __decorate([
161
- property({ type: String, reflect: true })
162
- ], StSelect.prototype, "variant", void 0);
163
- __decorate([
164
- property({ type: String, reflect: true })
165
- ], StSelect.prototype, "color", void 0);
279
+ StSelect.formAssociated = true;
280
+ StSelect.styles = css `
281
+ :host {
282
+ display: block;
283
+ font-family: inherit;
284
+ position: relative;
285
+ }
286
+
287
+ label {
288
+ display: block;
289
+ font-size: var(--st-font-size-sm);
290
+ font-weight: 500;
291
+ color: var(--st-color-text-muted);
292
+ margin-bottom: var(--st-spacing-xs);
293
+ }
294
+
295
+ .combobox {
296
+ display: flex;
297
+ justify-content: space-between;
298
+ align-items: center;
299
+ width: 100%;
300
+ min-height: 42px;
301
+ padding: var(--st-spacing-xs) var(--st-spacing-md);
302
+ background: var(--st-color-surface);
303
+ border: 1px solid var(--st-color-border);
304
+ border-radius: var(--st-radius-md);
305
+ font-size: var(--st-font-size-base);
306
+ color: var(--st-color-text);
307
+ cursor: pointer;
308
+ text-align: left;
309
+ box-sizing: border-box;
310
+ transition:
311
+ border-color 0.2s,
312
+ box-shadow 0.2s,
313
+ background-color 0.2s;
314
+ }
315
+
316
+ .combobox:disabled {
317
+ background: var(--st-color-surface-muted);
318
+ cursor: not-allowed;
319
+ opacity: 0.7;
320
+ }
321
+
322
+ .combobox.is-invalid {
323
+ border-color: var(--st-color-danger, #dc2626);
324
+ }
325
+
326
+ .combobox:focus-visible {
327
+ outline: none;
328
+ border-color: var(--st-color-primary);
329
+ box-shadow: 0 0 0 2px var(--st-color-primary-muted);
330
+ }
331
+
332
+ .combobox.is-placeholder {
333
+ color: var(--st-color-text-muted);
334
+ }
335
+
336
+ .selection-container {
337
+ display: flex;
338
+ flex-wrap: wrap;
339
+ gap: 4px;
340
+ align-items: center;
341
+ flex: 1;
342
+ overflow: hidden;
343
+ }
344
+
345
+ .chip {
346
+ display: inline-flex;
347
+ align-items: center;
348
+ background: var(--st-color-surface-muted);
349
+ border: 1px solid var(--st-color-border);
350
+ border-radius: var(--st-radius-sm);
351
+ padding: 2px 6px;
352
+ font-size: var(--st-font-size-xs);
353
+ color: var(--st-color-text);
354
+ }
355
+
356
+ .listbox-container {
357
+ position: absolute;
358
+ top: calc(100% + 4px);
359
+ left: 0;
360
+ right: 0;
361
+ z-index: 10;
362
+ background: var(--st-color-surface);
363
+ border: 1px solid var(--st-color-border);
364
+ border-radius: var(--st-radius-md);
365
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
366
+ overflow: hidden;
367
+ }
368
+
369
+ .search-wrapper {
370
+ padding: var(--st-spacing-xs);
371
+ border-bottom: 1px solid var(--st-color-border);
372
+ }
373
+
374
+ .search-input {
375
+ width: 100%;
376
+ padding: var(--st-spacing-xs) var(--st-spacing-sm);
377
+ background: var(--st-color-surface-muted);
378
+ border: 1px solid var(--st-color-border);
379
+ border-radius: var(--st-radius-sm);
380
+ font-size: var(--st-font-size-sm);
381
+ color: var(--st-color-text);
382
+ box-sizing: border-box;
383
+ }
384
+
385
+ .search-input:focus {
386
+ outline: none;
387
+ border-color: var(--st-color-primary);
388
+ }
389
+
390
+ .listbox {
391
+ margin: 0;
392
+ padding: var(--st-spacing-xs) 0;
393
+ max-height: 220px;
394
+ overflow-y: auto;
395
+ list-style: none;
396
+ }
397
+
398
+ .option {
399
+ padding: var(--st-spacing-sm) var(--st-spacing-md);
400
+ cursor: pointer;
401
+ color: var(--st-color-text);
402
+ display: flex;
403
+ justify-content: space-between;
404
+ align-items: center;
405
+ }
406
+
407
+ .option:hover {
408
+ background: var(--st-color-surface-muted);
409
+ }
410
+
411
+ .option[aria-selected="true"] {
412
+ font-weight: 500;
413
+ color: var(--st-color-primary);
414
+ }
415
+
416
+ .error-msg {
417
+ display: block;
418
+ margin-top: var(--st-spacing-xs);
419
+ font-size: var(--st-font-size-xs);
420
+ color: var(--st-color-danger, #dc2626);
421
+ }
422
+
423
+ .hidden-native {
424
+ position: absolute;
425
+ width: 1px;
426
+ height: 1px;
427
+ padding: 0;
428
+ margin: -1px;
429
+ overflow: hidden;
430
+ clip: rect(0, 0, 0, 0);
431
+ border: 0;
432
+ }
433
+ `;
434
+ __decorate([
435
+ property({ type: String })
436
+ ], StSelect.prototype, "name", void 0);
437
+ __decorate([
438
+ property({ type: String })
439
+ ], StSelect.prototype, "label", void 0);
440
+ __decorate([
441
+ property({ type: String })
442
+ ], StSelect.prototype, "value", void 0);
443
+ __decorate([
444
+ property({ type: Boolean })
445
+ ], StSelect.prototype, "required", void 0);
446
+ __decorate([
447
+ property({ type: Boolean })
448
+ ], StSelect.prototype, "multiple", void 0);
449
+ __decorate([
450
+ property({ type: Boolean })
451
+ ], StSelect.prototype, "searchable", void 0);
452
+ __decorate([
453
+ property({ type: Array })
454
+ ], StSelect.prototype, "options", void 0);
455
+ __decorate([
456
+ property({ type: String })
457
+ ], StSelect.prototype, "error", void 0);
166
458
  __decorate([
167
459
  property({ type: Boolean, reflect: true })
168
- ], StSelect.prototype, "focused", void 0);
460
+ ], StSelect.prototype, "disabled", void 0);
461
+ __decorate([
462
+ property({ type: Boolean, reflect: true })
463
+ ], StSelect.prototype, "invalid", void 0);
464
+ __decorate([
465
+ property({ type: String })
466
+ ], StSelect.prototype, "autocomplete", void 0);
467
+ __decorate([
468
+ state()
469
+ ], StSelect.prototype, "open", void 0);
470
+ __decorate([
471
+ state()
472
+ ], StSelect.prototype, "filterText", void 0);
473
+ __decorate([
474
+ state()
475
+ ], StSelect.prototype, "nativeError", void 0);
476
+ __decorate([
477
+ state()
478
+ ], StSelect.prototype, "touched", void 0);
479
+ __decorate([
480
+ query(".combobox")
481
+ ], StSelect.prototype, "buttonElement", void 0);
482
+ __decorate([
483
+ query(".search-input")
484
+ ], StSelect.prototype, "searchInputEl", void 0);
169
485
  StSelect = __decorate([
170
- customElement('st-select')
486
+ customElement("st-select")
171
487
  ], StSelect);
172
488
  export { StSelect };
489
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/components/select/select.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, PropertyValues } from 'lit';
2
2
  export declare class StSkeleton extends LitElement {
3
3
  variant: 'text' | 'circular' | 'rectangular';
4
4
  animation: 'shimmer' | 'pulse' | 'none';
5
5
  width: string;
6
6
  height: string;
7
- updated(changedProperties: Map<string | number | symbol, unknown>): void;
7
+ constructor();
8
+ updated(changedProperties: PropertyValues<this>): void;
8
9
  static styles: import("lit").CSSResult[];
9
10
  render(): import("lit-html").TemplateResult<1>;
10
11
  }