tyrell-components 1.0.0-TC54 → 1.0.0-TC56

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 (239) hide show
  1. package/README.md +53 -53
  2. package/css/tyrell-theme.css +7 -2
  3. package/css/tyrell.css +6 -15
  4. package/dist/tyrell-theme.css +1 -1
  5. package/dist/tyrell.css +1 -1
  6. package/dist/tyrell.js +1 -1
  7. package/lib/base/ty-component.d.ts +14 -0
  8. package/lib/base/ty-component.d.ts.map +1 -0
  9. package/lib/base/ty-component.js +27 -0
  10. package/lib/base/ty-component.js.map +1 -0
  11. package/lib/components/button.d.ts.map +1 -0
  12. package/lib/components/button.js +7 -0
  13. package/lib/components/button.js.map +1 -0
  14. package/lib/components/calendar-month.d.ts.map +1 -0
  15. package/lib/components/calendar-month.js +20 -6
  16. package/lib/components/calendar-month.js.map +1 -0
  17. package/lib/components/calendar-navigation.d.ts +11 -0
  18. package/lib/components/calendar-navigation.d.ts.map +1 -0
  19. package/lib/components/calendar-navigation.js +51 -40
  20. package/lib/components/calendar-navigation.js.map +1 -0
  21. package/lib/components/calendar.d.ts +31 -3
  22. package/lib/components/calendar.d.ts.map +1 -0
  23. package/lib/components/calendar.js +197 -18
  24. package/lib/components/calendar.js.map +1 -0
  25. package/lib/components/checkbox.d.ts.map +1 -0
  26. package/lib/components/checkbox.js +3 -3
  27. package/lib/components/checkbox.js.map +1 -0
  28. package/lib/components/copy.d.ts.map +1 -0
  29. package/lib/components/copy.js +14 -6
  30. package/lib/components/copy.js.map +1 -0
  31. package/lib/components/date-picker.d.ts +15 -9
  32. package/lib/components/date-picker.d.ts.map +1 -0
  33. package/lib/components/date-picker.js +187 -236
  34. package/lib/components/date-picker.js.map +1 -0
  35. package/lib/components/dropdown.d.ts +403 -0
  36. package/lib/components/dropdown.d.ts.map +1 -0
  37. package/lib/components/dropdown.js +1315 -0
  38. package/lib/components/dropdown.js.map +1 -0
  39. package/lib/components/file-upload.d.ts +4 -0
  40. package/lib/components/file-upload.js +14 -0
  41. package/lib/components/icon.d.ts.map +1 -0
  42. package/lib/components/icon.js.map +1 -0
  43. package/lib/components/input.d.ts.map +1 -0
  44. package/lib/components/input.js +3 -3
  45. package/lib/components/input.js.map +1 -0
  46. package/lib/components/modal.d.ts +2 -8
  47. package/lib/components/modal.d.ts.map +1 -0
  48. package/lib/components/modal.js +8 -18
  49. package/lib/components/modal.js.map +1 -0
  50. package/lib/components/multiselect.d.ts +389 -0
  51. package/lib/components/multiselect.d.ts.map +1 -0
  52. package/lib/components/multiselect.js +1301 -0
  53. package/lib/components/multiselect.js.map +1 -0
  54. package/lib/components/option.d.ts.map +1 -0
  55. package/lib/components/option.js +1 -1
  56. package/lib/components/option.js.map +1 -0
  57. package/lib/components/popup.d.ts.map +1 -0
  58. package/lib/components/popup.js +4 -1
  59. package/lib/components/popup.js.map +1 -0
  60. package/lib/components/radio.d.ts +15 -0
  61. package/lib/components/radio.js +34 -4
  62. package/lib/components/resize-observer.d.ts.map +1 -0
  63. package/lib/components/resize-observer.js.map +1 -0
  64. package/lib/components/scroll-container.d.ts +3 -2
  65. package/lib/components/scroll-container.d.ts.map +1 -0
  66. package/lib/components/scroll-container.js +14 -19
  67. package/lib/components/scroll-container.js.map +1 -0
  68. package/lib/components/select.d.ts +52 -16
  69. package/lib/components/select.js +170 -67
  70. package/lib/components/step.d.ts.map +1 -0
  71. package/lib/components/step.js.map +1 -0
  72. package/lib/components/switch.js +3 -3
  73. package/lib/components/tab.d.ts +49 -1
  74. package/lib/components/tab.d.ts.map +1 -0
  75. package/lib/components/tab.js +151 -10
  76. package/lib/components/tab.js.map +1 -0
  77. package/lib/components/tabs.d.ts +14 -2
  78. package/lib/components/tabs.d.ts.map +1 -0
  79. package/lib/components/tabs.js +186 -130
  80. package/lib/components/tabs.js.map +1 -0
  81. package/lib/components/tag.d.ts +4 -7
  82. package/lib/components/tag.d.ts.map +1 -0
  83. package/lib/components/tag.js +6 -7
  84. package/lib/components/tag.js.map +1 -0
  85. package/lib/components/textarea.d.ts +4 -3
  86. package/lib/components/textarea.d.ts.map +1 -0
  87. package/lib/components/textarea.js +16 -15
  88. package/lib/components/textarea.js.map +1 -0
  89. package/lib/components/tooltip.d.ts +4 -3
  90. package/lib/components/tooltip.d.ts.map +1 -0
  91. package/lib/components/tooltip.js +34 -24
  92. package/lib/components/tooltip.js.map +1 -0
  93. package/lib/components/wizard.d.ts +5 -4
  94. package/lib/components/wizard.d.ts.map +1 -0
  95. package/lib/components/wizard.js +120 -156
  96. package/lib/components/wizard.js.map +1 -0
  97. package/lib/icons/fontawesome/brands.d.ts.map +1 -0
  98. package/lib/icons/fontawesome/brands.js.map +1 -0
  99. package/lib/icons/fontawesome/regular.d.ts.map +1 -0
  100. package/lib/icons/fontawesome/regular.js.map +1 -0
  101. package/lib/icons/fontawesome/solid.d.ts.map +1 -0
  102. package/lib/icons/fontawesome/solid.js.map +1 -0
  103. package/lib/icons/heroicons/micro.d.ts.map +1 -0
  104. package/lib/icons/heroicons/micro.js.map +1 -0
  105. package/lib/icons/heroicons/mini.d.ts.map +1 -0
  106. package/lib/icons/heroicons/mini.js.map +1 -0
  107. package/lib/icons/heroicons/outline.d.ts.map +1 -0
  108. package/lib/icons/heroicons/outline.js.map +1 -0
  109. package/lib/icons/heroicons/solid.d.ts.map +1 -0
  110. package/lib/icons/heroicons/solid.js.map +1 -0
  111. package/lib/icons/lucide.d.ts.map +1 -0
  112. package/lib/icons/lucide.js.map +1 -0
  113. package/lib/icons/material/filled.d.ts.map +1 -0
  114. package/lib/icons/material/filled.js.map +1 -0
  115. package/lib/icons/material/outlined.d.ts.map +1 -0
  116. package/lib/icons/material/outlined.js.map +1 -0
  117. package/lib/icons/material/round.d.ts.map +1 -0
  118. package/lib/icons/material/round.js.map +1 -0
  119. package/lib/icons/material/sharp.d.ts.map +1 -0
  120. package/lib/icons/material/sharp.js.map +1 -0
  121. package/lib/icons/material/two-tone.d.ts.map +1 -0
  122. package/lib/icons/material/two-tone.js.map +1 -0
  123. package/lib/index.d.ts +1 -1
  124. package/lib/index.d.ts.map +1 -0
  125. package/lib/index.js.map +1 -0
  126. package/lib/styles/button.d.ts.map +1 -0
  127. package/lib/styles/button.js +68 -58
  128. package/lib/styles/button.js.map +1 -0
  129. package/lib/styles/calendar-month.d.ts +3 -0
  130. package/lib/styles/calendar-month.d.ts.map +1 -0
  131. package/lib/styles/calendar-month.js +47 -31
  132. package/lib/styles/calendar-month.js.map +1 -0
  133. package/lib/styles/calendar-navigation.d.ts +1 -1
  134. package/lib/styles/calendar-navigation.d.ts.map +1 -0
  135. package/lib/styles/calendar-navigation.js +55 -22
  136. package/lib/styles/calendar-navigation.js.map +1 -0
  137. package/lib/styles/calendar.d.ts +3 -2
  138. package/lib/styles/calendar.d.ts.map +1 -0
  139. package/lib/styles/calendar.js +75 -0
  140. package/lib/styles/calendar.js.map +1 -0
  141. package/lib/styles/checkbox.js +22 -10
  142. package/lib/styles/copy.d.ts.map +1 -0
  143. package/lib/styles/copy.js +5 -1
  144. package/lib/styles/copy.js.map +1 -0
  145. package/lib/styles/date-picker.d.ts.map +1 -0
  146. package/lib/styles/date-picker.js +52 -22
  147. package/lib/styles/date-picker.js.map +1 -0
  148. package/lib/styles/dropdown.d.ts +12 -0
  149. package/lib/styles/dropdown.d.ts.map +1 -0
  150. package/lib/styles/dropdown.js +725 -0
  151. package/lib/styles/dropdown.js.map +1 -0
  152. package/lib/styles/icon.d.ts.map +1 -0
  153. package/lib/styles/icon.js.map +1 -0
  154. package/lib/styles/input.d.ts.map +1 -0
  155. package/lib/styles/input.js.map +1 -0
  156. package/lib/styles/modal.d.ts.map +1 -0
  157. package/lib/styles/modal.js.map +1 -0
  158. package/lib/styles/multiselect.d.ts +6 -0
  159. package/lib/styles/multiselect.d.ts.map +1 -0
  160. package/lib/styles/multiselect.js +568 -0
  161. package/lib/styles/multiselect.js.map +1 -0
  162. package/lib/styles/option.d.ts +1 -1
  163. package/lib/styles/option.d.ts.map +1 -0
  164. package/lib/styles/option.js +3 -3
  165. package/lib/styles/option.js.map +1 -0
  166. package/lib/styles/popup.d.ts +1 -1
  167. package/lib/styles/popup.d.ts.map +1 -0
  168. package/lib/styles/popup.js +8 -5
  169. package/lib/styles/popup.js.map +1 -0
  170. package/lib/styles/radio.js +8 -2
  171. package/lib/styles/resize-observer.d.ts.map +1 -0
  172. package/lib/styles/resize-observer.js.map +1 -0
  173. package/lib/styles/scroll-container.d.ts +1 -1
  174. package/lib/styles/scroll-container.d.ts.map +1 -0
  175. package/lib/styles/scroll-container.js +1 -1
  176. package/lib/styles/scroll-container.js.map +1 -0
  177. package/lib/styles/select-base.js +81 -14
  178. package/lib/styles/select.d.ts +1 -1
  179. package/lib/styles/select.js +6 -0
  180. package/lib/styles/step.d.ts +1 -1
  181. package/lib/styles/step.d.ts.map +1 -0
  182. package/lib/styles/step.js +1 -9
  183. package/lib/styles/step.js.map +1 -0
  184. package/lib/styles/switch.js +6 -3
  185. package/lib/styles/tab.d.ts +1 -1
  186. package/lib/styles/tab.d.ts.map +1 -0
  187. package/lib/styles/tab.js +67 -3
  188. package/lib/styles/tab.js.map +1 -0
  189. package/lib/styles/tabs.d.ts +1 -1
  190. package/lib/styles/tabs.d.ts.map +1 -0
  191. package/lib/styles/tabs.js +7 -3
  192. package/lib/styles/tabs.js.map +1 -0
  193. package/lib/styles/tag.d.ts.map +1 -0
  194. package/lib/styles/tag.js +1 -2
  195. package/lib/styles/tag.js.map +1 -0
  196. package/lib/styles/textarea.d.ts.map +1 -0
  197. package/lib/styles/textarea.js.map +1 -0
  198. package/lib/styles/tooltip.d.ts.map +1 -0
  199. package/lib/styles/tooltip.js.map +1 -0
  200. package/lib/styles/wizard.d.ts +9 -5
  201. package/lib/styles/wizard.d.ts.map +1 -0
  202. package/lib/styles/wizard.js +211 -99
  203. package/lib/styles/wizard.js.map +1 -0
  204. package/lib/types/common.d.ts +2 -2
  205. package/lib/types/common.d.ts.map +1 -0
  206. package/lib/types/common.js.map +1 -0
  207. package/lib/utils/calendar-utils.d.ts.map +1 -0
  208. package/lib/utils/calendar-utils.js.map +1 -0
  209. package/lib/utils/icon-registry.d.ts.map +1 -0
  210. package/lib/utils/icon-registry.js.map +1 -0
  211. package/lib/utils/locale.d.ts.map +1 -0
  212. package/lib/utils/locale.js.map +1 -0
  213. package/lib/utils/number-format.d.ts.map +1 -0
  214. package/lib/utils/number-format.js.map +1 -0
  215. package/lib/utils/parse-boolean.d.ts +39 -0
  216. package/lib/utils/parse-boolean.d.ts.map +1 -0
  217. package/lib/utils/parse-boolean.js +23 -0
  218. package/lib/utils/parse-boolean.js.map +1 -0
  219. package/lib/utils/positioning.d.ts.map +1 -0
  220. package/lib/utils/positioning.js.map +1 -0
  221. package/lib/utils/property-capture.d.ts.map +1 -0
  222. package/lib/utils/property-capture.js.map +1 -0
  223. package/lib/utils/property-manager.d.ts +1 -1
  224. package/lib/utils/property-manager.d.ts.map +1 -0
  225. package/lib/utils/property-manager.js +2 -0
  226. package/lib/utils/property-manager.js.map +1 -0
  227. package/lib/utils/resize-observer.d.ts.map +1 -0
  228. package/lib/utils/resize-observer.js.map +1 -0
  229. package/lib/utils/scroll-lock.d.ts.map +1 -0
  230. package/lib/utils/scroll-lock.js.map +1 -0
  231. package/lib/utils/styles.d.ts.map +1 -0
  232. package/lib/utils/styles.js.map +1 -0
  233. package/lib/utils/validity.d.ts +26 -0
  234. package/lib/utils/validity.js +53 -0
  235. package/lib/version.d.ts +1 -1
  236. package/lib/version.d.ts.map +1 -0
  237. package/lib/version.js +1 -1
  238. package/lib/version.js.map +1 -0
  239. package/package.json +25 -4
@@ -0,0 +1,403 @@
1
+ /**
2
+ * TyDropdown Web Component
3
+ * PORTED FROM: clj/ty/components/dropdown.cljs
4
+ *
5
+ * A semantic dropdown component with:
6
+ * - Desktop mode with smart positioning
7
+ * - Mobile mode with full-screen modal
8
+ * - Search and filtering capabilities
9
+ * - Keyboard navigation
10
+ * - Form association for native form submission
11
+ * - Rich option support (option, ty-option, ty-tag)
12
+ *
13
+ * @example
14
+ * ```html
15
+ * <!-- Basic dropdown -->
16
+ * <ty-dropdown label="Country" placeholder="Select country" required>
17
+ * <option value="us">United States</option>
18
+ * <option value="uk">United Kingdom</option>
19
+ * <option value="ca">Canada</option>
20
+ * </ty-dropdown>
21
+ *
22
+ * <!-- With rich options -->
23
+ * <ty-dropdown label="User" searchable>
24
+ * <ty-option value="1">
25
+ * <div class="flex items-center gap-2">
26
+ * <img src="avatar1.jpg" class="w-8 h-8 rounded-full" />
27
+ * <span>John Doe</span>
28
+ * </div>
29
+ * </ty-option>
30
+ * </ty-dropdown>
31
+ *
32
+ * <!-- Not searchable (external search) -->
33
+ * <ty-dropdown label="Search API" not-searchable>
34
+ * <option value="1">Result 1</option>
35
+ * </ty-dropdown>
36
+ * ```
37
+ */
38
+ import type { Flavor, Size } from '../types/common.js';
39
+ import { TyComponent } from '../base/ty-component.js';
40
+ import type { PropertyChange } from '../utils/property-manager.js';
41
+ /**
42
+ * Option data structure
43
+ */
44
+ interface OptionData {
45
+ value: string;
46
+ text: string;
47
+ element: HTMLElement;
48
+ }
49
+ /**
50
+ * Component state structure
51
+ */
52
+ interface DropdownState {
53
+ open: boolean;
54
+ search: string;
55
+ highlightedIndex: number;
56
+ filteredOptions: OptionData[];
57
+ currentValue: string | null;
58
+ mode: 'desktop' | 'mobile';
59
+ }
60
+ /**
61
+ * Ty Dropdown Component
62
+ */
63
+ export declare class TyDropdown extends TyComponent<DropdownState> {
64
+ protected static properties: {
65
+ value: {
66
+ type: "string";
67
+ visual: boolean;
68
+ formValue: boolean;
69
+ emitChange: boolean;
70
+ default: string;
71
+ };
72
+ name: {
73
+ type: "string";
74
+ default: string;
75
+ };
76
+ placeholder: {
77
+ type: "string";
78
+ visual: boolean;
79
+ default: string;
80
+ };
81
+ label: {
82
+ type: "string";
83
+ visual: boolean;
84
+ default: string;
85
+ };
86
+ disabled: {
87
+ type: "boolean";
88
+ visual: boolean;
89
+ default: boolean;
90
+ };
91
+ readonly: {
92
+ type: "boolean";
93
+ visual: boolean;
94
+ default: boolean;
95
+ };
96
+ required: {
97
+ type: "boolean";
98
+ visual: boolean;
99
+ default: boolean;
100
+ };
101
+ searchable: {
102
+ type: "boolean";
103
+ visual: boolean;
104
+ default: boolean;
105
+ aliases: {
106
+ 'not-searchable': boolean;
107
+ };
108
+ };
109
+ clearable: {
110
+ type: "boolean";
111
+ visual: boolean;
112
+ default: boolean;
113
+ aliases: {
114
+ 'not-clearable': boolean;
115
+ };
116
+ };
117
+ size: {
118
+ type: "string";
119
+ visual: boolean;
120
+ default: string;
121
+ validate: (v: any) => boolean;
122
+ coerce: (v: any) => any;
123
+ };
124
+ flavor: {
125
+ type: "string";
126
+ visual: boolean;
127
+ default: string;
128
+ validate: (v: any) => boolean;
129
+ coerce: (v: any) => any;
130
+ };
131
+ delay: {
132
+ type: "number";
133
+ default: number;
134
+ validate: (v: any) => boolean;
135
+ coerce: (v: any) => number;
136
+ };
137
+ };
138
+ private _value;
139
+ private _name;
140
+ private _placeholder;
141
+ private _label;
142
+ private _disabled;
143
+ private _readonly;
144
+ private _required;
145
+ private _searchable;
146
+ private _clearable;
147
+ private _size;
148
+ private _flavor;
149
+ private _state;
150
+ private _scrollLockId;
151
+ private _stubClickHandler;
152
+ private _outsideClickHandler;
153
+ private _optionClickHandler;
154
+ private _searchInputHandler;
155
+ private _searchBlurHandler;
156
+ private _blockSearchClick;
157
+ private _keyboardHandler;
158
+ private _clearClickHandler;
159
+ private _delay;
160
+ private _searchDebounceTimer;
161
+ constructor();
162
+ render(): void;
163
+ /**
164
+ * Called when component is connected to DOM
165
+ * TyComponent handles property capture automatically
166
+ */
167
+ protected onConnect(): void;
168
+ /**
169
+ * Called when component is disconnected from DOM
170
+ * Clean up event listeners and timers
171
+ */
172
+ protected onDisconnect(): void;
173
+ /**
174
+ * Called when properties change
175
+ * Handle state synchronization BEFORE render
176
+ */
177
+ protected onPropertiesChanged(changes: PropertyChange[]): void;
178
+ /**
179
+ * Get the form value for this component
180
+ * TyComponent calls this automatically when formValue property changes
181
+ */
182
+ protected getFormValue(): FormDataEntryValue | null;
183
+ /**
184
+ * Parse dropdown value (single string)
185
+ */
186
+ private parseValue;
187
+ /**
188
+ * Validate flavor attribute
189
+ */
190
+ private validateFlavor;
191
+ /**
192
+ * Initialize component state from attributes
193
+ */
194
+ private initializeState;
195
+ /**
196
+ * Update placeholder text in existing rendered HTML
197
+ * Called when placeholder changes after initial render
198
+ */
199
+ private updatePlaceholderInDOM;
200
+ /**
201
+ * Update form value via ElementInternals
202
+ */
203
+ /**
204
+ * Get all option elements from slot
205
+ * Supports: <option>, <ty-option>, <ty-tag>
206
+ */
207
+ private getOptions;
208
+ /**
209
+ * Extract value and text from option element
210
+ */
211
+ private getOptionData;
212
+ /**
213
+ * Clear all selections
214
+ */
215
+ private clearSelection;
216
+ /**
217
+ * Select an option
218
+ */
219
+ private selectOption;
220
+ /**
221
+ * Sync selected option based on current value
222
+ */
223
+ private syncSelectedOption;
224
+ /**
225
+ * Update component value attribute for consistency
226
+ */
227
+ private updateComponentValue;
228
+ /**
229
+ * Update selection display (show/hide placeholder)
230
+ */
231
+ private updateSelectionDisplay;
232
+ private updateClearButton;
233
+ /**
234
+ * Dispatch change event
235
+ */
236
+ private dispatchChangeEvent;
237
+ private filterOptions;
238
+ private updateOptionVisibility;
239
+ /**
240
+ * Clear all option highlights
241
+ */
242
+ private clearHighlights;
243
+ private highlightOption;
244
+ /**
245
+ * Setup event listeners
246
+ */
247
+ private setupDesktopEventListeners;
248
+ /**
249
+ * Lock scroll with consistent ID generation
250
+ */
251
+ private lockDropdownScroll;
252
+ /**
253
+ * Unlock scroll using stored ID
254
+ */
255
+ private unlockDropdownScroll;
256
+ /**
257
+ * Initialize options state when opening dropdown/modal
258
+ * @param highlightSelected - Whether to highlight the currently selected option
259
+ */
260
+ private initializeOptionsState;
261
+ /**
262
+ * Base stub click handler - validates state then calls open callback
263
+ * @param e - Click event
264
+ * @param openCallback - Function to call to open (desktop or mobile)
265
+ */
266
+ private handleStubClickBase;
267
+ /**
268
+ * Base option click handler - finds option, selects it, then calls close callback
269
+ * @param e - Click event
270
+ * @param closeCallback - Function to call to close (desktop or mobile)
271
+ */
272
+ private handleOptionClickBase;
273
+ /**
274
+ * Base clear click handler - clears selection and optionally closes
275
+ * @param e - Click event
276
+ * @param closeCallback - Optional function to call to close (mobile only)
277
+ */
278
+ private handleClearClickBase;
279
+ /**
280
+ * Calculate and set dropdown position with smart direction detection
281
+ */
282
+ private calculateDesktopPosition;
283
+ /**
284
+ * Open dropdown dialog
285
+ */
286
+ private openDesktopDropdown;
287
+ /**
288
+ * Close dropdown dialog
289
+ */
290
+ private closeDesktopDropdown;
291
+ /**
292
+ * Handle outside click to close dropdown
293
+ */
294
+ private handleDesktopOutsideClick;
295
+ /**
296
+ * Handle search input changes
297
+ */
298
+ private handleSearchInput;
299
+ /**
300
+ * Handle search blur - DISABLED
301
+ * Previously caused race conditions with option clicks.
302
+ * Search reset now handled in closeDesktopDropdown() instead.
303
+ */
304
+ private handleSearchBlur;
305
+ /**
306
+ * Block search input click from bubbling
307
+ * Prevents search input clicks from triggering outside click handler
308
+ */
309
+ private blockSearchClick;
310
+ /**
311
+ * Dispatch search event for external search handling
312
+ * With optional delay/debounce support
313
+ */
314
+ private dispatchSearchEvent;
315
+ /**
316
+ * Fire the actual search event
317
+ */
318
+ private fireSearchEvent;
319
+ /**
320
+ * Handle keyboard navigation
321
+ */
322
+ private handleDesktopKeyboard;
323
+ /**
324
+ * Handle stub click - open dropdown
325
+ */
326
+ private handleDesktopStubClick;
327
+ /**
328
+ * Handle option click - select option and close
329
+ */
330
+ private handleDesktopOptionClick;
331
+ /**
332
+ * Handle clear button click - clear selection
333
+ * CRITICAL: Must prevent dropdown from opening!
334
+ */
335
+ private handleDesktopClearClick;
336
+ /**
337
+ * Build CSS class list for stub
338
+ */
339
+ private buildStubClasses;
340
+ /**
341
+ * Render desktop mode with dialog
342
+ */
343
+ private renderDesktop;
344
+ /**
345
+ * Render mobile mode with full-screen modal
346
+ */
347
+ private renderMobile;
348
+ /**
349
+ * Setup event listeners for mobile mode
350
+ */
351
+ private setupMobileEventListeners;
352
+ /**
353
+ * Handle mobile stub click - open modal
354
+ */
355
+ private handleMobileStubClick;
356
+ /**
357
+ * Handle mobile option click - select and close
358
+ */
359
+ private handleMobileOptionClick;
360
+ /**
361
+ * Handle mobile keyboard navigation
362
+ */
363
+ private handleMobileKeyboard;
364
+ /**
365
+ * Handle clear click in mobile modal
366
+ */
367
+ private handleMobileClearClick;
368
+ /**
369
+ * Open mobile modal
370
+ */
371
+ private openMobileModal;
372
+ /**
373
+ * Close mobile modal
374
+ */
375
+ private closeMobileModal;
376
+ get value(): string;
377
+ set value(v: string);
378
+ get name(): string;
379
+ set name(v: string);
380
+ get placeholder(): string;
381
+ set placeholder(v: string);
382
+ get label(): string;
383
+ set label(v: string);
384
+ get disabled(): boolean;
385
+ set disabled(v: boolean);
386
+ get readonly(): boolean;
387
+ set readonly(v: boolean);
388
+ get required(): boolean;
389
+ set required(v: boolean);
390
+ get searchable(): boolean;
391
+ set searchable(v: boolean);
392
+ get clearable(): boolean;
393
+ set clearable(v: boolean);
394
+ get size(): Size;
395
+ set size(v: Size);
396
+ get flavor(): Flavor;
397
+ set flavor(v: Flavor);
398
+ get delay(): number;
399
+ set delay(v: number);
400
+ get form(): HTMLFormElement | null;
401
+ }
402
+ export {};
403
+ //# sourceMappingURL=dropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../src/components/dropdown.ts"],"names":[],"mappings":"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"}