tyrell-components 1.0.0-RC11 → 1.0.0-RC13
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.
- package/README.md +1 -0
- package/css/tyrell-colors-static.css +316 -0
- package/css/tyrell-theme.css +1454 -0
- package/css/tyrell.css +112 -420
- package/dist/tyrell-colors-static.css +316 -0
- package/dist/tyrell-theme.css +1454 -0
- package/dist/tyrell.css +112 -420
- package/dist/tyrell.js +1 -1
- package/lib/base/ty-component.d.ts +7 -0
- package/lib/base/ty-component.d.ts.map +1 -1
- package/lib/base/ty-component.js +27 -0
- package/lib/base/ty-component.js.map +1 -1
- package/lib/components/button.d.ts +16 -1
- package/lib/components/button.d.ts.map +1 -1
- package/lib/components/button.js +34 -4
- package/lib/components/button.js.map +1 -1
- package/lib/components/calendar-month.d.ts +23 -0
- package/lib/components/calendar-month.d.ts.map +1 -1
- package/lib/components/calendar-month.js +168 -11
- package/lib/components/calendar-month.js.map +1 -1
- package/lib/components/calendar-navigation.d.ts +31 -5
- package/lib/components/calendar-navigation.d.ts.map +1 -1
- package/lib/components/calendar-navigation.js +71 -31
- package/lib/components/calendar-navigation.js.map +1 -1
- package/lib/components/calendar.d.ts +17 -2
- package/lib/components/calendar.d.ts.map +1 -1
- package/lib/components/calendar.js +83 -12
- package/lib/components/calendar.js.map +1 -1
- package/lib/components/checkbox.d.ts +14 -3
- package/lib/components/checkbox.d.ts.map +1 -1
- package/lib/components/checkbox.js +86 -57
- package/lib/components/checkbox.js.map +1 -1
- package/lib/components/copy.d.ts +14 -3
- package/lib/components/copy.d.ts.map +1 -1
- package/lib/components/copy.js +47 -25
- package/lib/components/copy.js.map +1 -1
- package/lib/components/date-picker.d.ts +26 -1
- package/lib/components/date-picker.d.ts.map +1 -1
- package/lib/components/date-picker.js +151 -32
- package/lib/components/date-picker.js.map +1 -1
- package/lib/components/input.d.ts +17 -2
- package/lib/components/input.d.ts.map +1 -1
- package/lib/components/input.js +104 -25
- package/lib/components/input.js.map +1 -1
- package/lib/components/modal.d.ts.map +1 -1
- package/lib/components/modal.js +28 -3
- package/lib/components/modal.js.map +1 -1
- package/lib/components/option.d.ts +0 -27
- package/lib/components/option.d.ts.map +1 -1
- package/lib/components/option.js +11 -102
- package/lib/components/option.js.map +1 -1
- package/lib/components/popup.d.ts.map +1 -1
- package/lib/components/popup.js +36 -2
- package/lib/components/popup.js.map +1 -1
- package/lib/components/radio.d.ts +6 -2
- package/lib/components/radio.d.ts.map +1 -1
- package/lib/components/radio.js +55 -13
- package/lib/components/radio.js.map +1 -1
- package/lib/components/scroll-container.d.ts +16 -0
- package/lib/components/scroll-container.d.ts.map +1 -1
- package/lib/components/scroll-container.js +105 -1
- package/lib/components/scroll-container.js.map +1 -1
- package/lib/components/select.d.ts +550 -0
- package/lib/components/select.d.ts.map +1 -0
- package/lib/components/select.js +2115 -0
- package/lib/components/select.js.map +1 -0
- package/lib/components/selected-tags.d.ts +93 -0
- package/lib/components/selected-tags.d.ts.map +1 -0
- package/lib/components/selected-tags.js +286 -0
- package/lib/components/selected-tags.js.map +1 -0
- package/lib/components/switch.d.ts +6 -3
- package/lib/components/switch.d.ts.map +1 -1
- package/lib/components/switch.js +54 -36
- package/lib/components/switch.js.map +1 -1
- package/lib/components/tabs.d.ts.map +1 -1
- package/lib/components/tabs.js +190 -25
- package/lib/components/tabs.js.map +1 -1
- package/lib/components/tag.d.ts +9 -1
- package/lib/components/tag.d.ts.map +1 -1
- package/lib/components/tag.js +41 -5
- package/lib/components/tag.js.map +1 -1
- package/lib/components/textarea.d.ts +3 -0
- package/lib/components/textarea.d.ts.map +1 -1
- package/lib/components/textarea.js +61 -6
- package/lib/components/textarea.js.map +1 -1
- package/lib/components/tooltip.d.ts +4 -2
- package/lib/components/tooltip.d.ts.map +1 -1
- package/lib/components/tooltip.js +109 -70
- package/lib/components/tooltip.js.map +1 -1
- package/lib/components/wizard.d.ts.map +1 -1
- package/lib/components/wizard.js +22 -3
- package/lib/components/wizard.js.map +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -2
- package/lib/index.js.map +1 -1
- package/lib/styles/button.d.ts +41 -6
- package/lib/styles/button.d.ts.map +1 -1
- package/lib/styles/button.js +294 -254
- package/lib/styles/button.js.map +1 -1
- package/lib/styles/calendar-month.d.ts +3 -1
- package/lib/styles/calendar-month.d.ts.map +1 -1
- package/lib/styles/calendar-month.js +100 -67
- package/lib/styles/calendar-month.js.map +1 -1
- package/lib/styles/calendar-navigation.d.ts +1 -1
- package/lib/styles/calendar-navigation.d.ts.map +1 -1
- package/lib/styles/calendar-navigation.js +20 -28
- package/lib/styles/calendar-navigation.js.map +1 -1
- package/lib/styles/checkbox.d.ts +7 -5
- package/lib/styles/checkbox.d.ts.map +1 -1
- package/lib/styles/checkbox.js +125 -8
- package/lib/styles/checkbox.js.map +1 -1
- package/lib/styles/copy.d.ts +3 -1
- package/lib/styles/copy.d.ts.map +1 -1
- package/lib/styles/copy.js +61 -6
- package/lib/styles/copy.js.map +1 -1
- package/lib/styles/custom-scrollbar.d.ts +1 -1
- package/lib/styles/custom-scrollbar.d.ts.map +1 -1
- package/lib/styles/custom-scrollbar.js +2 -2
- package/lib/styles/date-picker.d.ts +3 -1
- package/lib/styles/date-picker.d.ts.map +1 -1
- package/lib/styles/date-picker.js +65 -103
- package/lib/styles/date-picker.js.map +1 -1
- package/lib/styles/file-upload.d.ts +1 -1
- package/lib/styles/file-upload.d.ts.map +1 -1
- package/lib/styles/file-upload.js +3 -3
- package/lib/styles/input.d.ts +3 -1
- package/lib/styles/input.d.ts.map +1 -1
- package/lib/styles/input.js +93 -419
- package/lib/styles/input.js.map +1 -1
- package/lib/styles/multiselect.d.ts +3 -1
- package/lib/styles/multiselect.d.ts.map +1 -1
- package/lib/styles/multiselect.js +26 -2
- package/lib/styles/multiselect.js.map +1 -1
- package/lib/styles/option.d.ts +1 -1
- package/lib/styles/option.d.ts.map +1 -1
- package/lib/styles/option.js +20 -47
- package/lib/styles/option.js.map +1 -1
- package/lib/styles/radio.d.ts +3 -1
- package/lib/styles/radio.d.ts.map +1 -1
- package/lib/styles/radio.js +24 -21
- package/lib/styles/radio.js.map +1 -1
- package/lib/styles/scroll-container.d.ts +1 -1
- package/lib/styles/scroll-container.d.ts.map +1 -1
- package/lib/styles/scroll-container.js +6 -0
- package/lib/styles/scroll-container.js.map +1 -1
- package/lib/styles/select-base.d.ts +9 -0
- package/lib/styles/select-base.d.ts.map +1 -0
- package/lib/styles/select-base.js +973 -0
- package/lib/styles/select-base.js.map +1 -0
- package/lib/styles/select.d.ts +12 -0
- package/lib/styles/select.d.ts.map +1 -0
- package/lib/styles/select.js +308 -0
- package/lib/styles/select.js.map +1 -0
- package/lib/styles/step.d.ts +1 -1
- package/lib/styles/step.d.ts.map +1 -1
- package/lib/styles/switch.d.ts +3 -1
- package/lib/styles/switch.d.ts.map +1 -1
- package/lib/styles/switch.js +25 -10
- package/lib/styles/switch.js.map +1 -1
- package/lib/styles/tab.d.ts +1 -1
- package/lib/styles/tab.d.ts.map +1 -1
- package/lib/styles/tabs.d.ts +1 -1
- package/lib/styles/tabs.d.ts.map +1 -1
- package/lib/styles/tabs.js +71 -1
- package/lib/styles/tabs.js.map +1 -1
- package/lib/styles/tag.d.ts +1 -1
- package/lib/styles/tag.d.ts.map +1 -1
- package/lib/styles/tag.js +40 -141
- package/lib/styles/tag.js.map +1 -1
- package/lib/styles/textarea.d.ts +1 -1
- package/lib/styles/textarea.d.ts.map +1 -1
- package/lib/styles/textarea.js +71 -37
- package/lib/styles/textarea.js.map +1 -1
- package/lib/styles/tooltip.d.ts +4 -2
- package/lib/styles/tooltip.d.ts.map +1 -1
- package/lib/styles/tooltip.js +4 -119
- package/lib/styles/tooltip.js.map +1 -1
- package/lib/styles/wizard.d.ts +1 -1
- package/lib/styles/wizard.d.ts.map +1 -1
- package/lib/styles/wizard.js +18 -6
- package/lib/styles/wizard.js.map +1 -1
- package/lib/types/common.d.ts +2 -1
- package/lib/types/common.d.ts.map +1 -1
- package/lib/types/common.js +15 -1
- package/lib/types/common.js.map +1 -1
- package/lib/utils/calendar-utils.d.ts +0 -48
- package/lib/utils/calendar-utils.d.ts.map +1 -1
- package/lib/utils/calendar-utils.js +0 -69
- package/lib/utils/calendar-utils.js.map +1 -1
- package/lib/utils/flavor-sheet.d.ts +32 -0
- package/lib/utils/flavor-sheet.d.ts.map +1 -0
- package/lib/utils/flavor-sheet.js +40 -0
- package/lib/utils/flavor-sheet.js.map +1 -0
- package/lib/utils/icon-registry.d.ts +0 -13
- package/lib/utils/icon-registry.d.ts.map +1 -1
- package/lib/utils/icon-registry.js +0 -35
- package/lib/utils/icon-registry.js.map +1 -1
- package/lib/utils/icons.d.ts +10 -0
- package/lib/utils/icons.d.ts.map +1 -0
- package/lib/utils/icons.js +10 -0
- package/lib/utils/icons.js.map +1 -0
- package/lib/utils/loader-registry.d.ts +2 -2
- package/lib/utils/loader-registry.js +2 -2
- package/lib/utils/locale.d.ts +0 -57
- package/lib/utils/locale.d.ts.map +1 -1
- package/lib/utils/locale.js +0 -89
- package/lib/utils/locale.js.map +1 -1
- package/lib/utils/number-format.d.ts +0 -21
- package/lib/utils/number-format.d.ts.map +1 -1
- package/lib/utils/number-format.js +0 -27
- package/lib/utils/number-format.js.map +1 -1
- package/lib/utils/positioning.d.ts +29 -22
- package/lib/utils/positioning.d.ts.map +1 -1
- package/lib/utils/positioning.js +23 -87
- package/lib/utils/positioning.js.map +1 -1
- package/lib/utils/scroll-lock.d.ts.map +1 -1
- package/lib/utils/scroll-lock.js +0 -1
- package/lib/utils/scroll-lock.js.map +1 -1
- package/lib/utils/styles.d.ts +0 -5
- package/lib/utils/styles.d.ts.map +1 -1
- package/lib/utils/styles.js +0 -7
- package/lib/utils/styles.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +22 -11
- package/css/tyrell-brand.css +0 -913
- package/dist/tyrell-brand.css +0 -913
- package/lib/components/dropdown.d.ts +0 -424
- package/lib/components/dropdown.d.ts.map +0 -1
- package/lib/components/dropdown.js +0 -1640
- package/lib/components/dropdown.js.map +0 -1
- package/lib/components/multiselect.d.ts +0 -397
- package/lib/components/multiselect.d.ts.map +0 -1
- package/lib/components/multiselect.js +0 -1595
- package/lib/components/multiselect.js.map +0 -1
- package/lib/styles/dropdown.d.ts +0 -12
- package/lib/styles/dropdown.d.ts.map +0 -1
- package/lib/styles/dropdown.js +0 -1081
- package/lib/styles/dropdown.js.map +0 -1
|
@@ -1,424 +0,0 @@
|
|
|
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">
|
|
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
|
-
* <!-- External search (parent owns filtering, dropdown emits `search` events) -->
|
|
33
|
-
* <ty-dropdown label="Search API" external-search debounce="300">
|
|
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
|
-
externalSearch: {
|
|
102
|
-
type: "boolean";
|
|
103
|
-
visual: boolean;
|
|
104
|
-
default: boolean;
|
|
105
|
-
aliases: {
|
|
106
|
-
'external-search': 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
|
-
debounce: {
|
|
132
|
-
type: "number";
|
|
133
|
-
default: number;
|
|
134
|
-
validate: (v: any) => boolean;
|
|
135
|
-
coerce: (v: any) => number;
|
|
136
|
-
};
|
|
137
|
-
loading: {
|
|
138
|
-
type: "boolean";
|
|
139
|
-
visual: boolean;
|
|
140
|
-
default: boolean;
|
|
141
|
-
};
|
|
142
|
-
};
|
|
143
|
-
private _value;
|
|
144
|
-
private _placeholder;
|
|
145
|
-
private _label;
|
|
146
|
-
private _disabled;
|
|
147
|
-
private _readonly;
|
|
148
|
-
private _required;
|
|
149
|
-
private _externalSearch;
|
|
150
|
-
private _clearable;
|
|
151
|
-
private _loading;
|
|
152
|
-
private _size;
|
|
153
|
-
private _state;
|
|
154
|
-
private _scrollLockId;
|
|
155
|
-
private _stubClickHandler;
|
|
156
|
-
private _outsideClickHandler;
|
|
157
|
-
private _optionClickHandler;
|
|
158
|
-
private _searchInputHandler;
|
|
159
|
-
private _blockSearchClick;
|
|
160
|
-
private _keyboardHandler;
|
|
161
|
-
private _clearClickHandler;
|
|
162
|
-
private _debounce;
|
|
163
|
-
private _searchDebounceTimer;
|
|
164
|
-
private _optionsScrollbar;
|
|
165
|
-
private _childObserver;
|
|
166
|
-
constructor();
|
|
167
|
-
render(): void;
|
|
168
|
-
/**
|
|
169
|
-
* Called when component is connected to DOM
|
|
170
|
-
* TyComponent handles property capture automatically
|
|
171
|
-
*/
|
|
172
|
-
protected onConnect(): void;
|
|
173
|
-
/**
|
|
174
|
-
* Called when component is disconnected from DOM
|
|
175
|
-
* Clean up event listeners and timers
|
|
176
|
-
*/
|
|
177
|
-
protected onDisconnect(): void;
|
|
178
|
-
/**
|
|
179
|
-
* Re-establish the visual selection (selected attribute + slot clone) for the
|
|
180
|
-
* current value, when the matching option exists in children but isn't yet
|
|
181
|
-
* marked. Called from the children MutationObserver — covers the case where
|
|
182
|
-
* a consumer swaps options dynamically (external-search refresh) and wipes
|
|
183
|
-
* out the previous selection's marker + clone in the process.
|
|
184
|
-
*
|
|
185
|
-
* Idempotent — bails when nothing to do, so it's safe to call from the
|
|
186
|
-
* MutationObserver callback even when the trigger was our own clone work.
|
|
187
|
-
*/
|
|
188
|
-
private redisplaySelected;
|
|
189
|
-
/**
|
|
190
|
-
* Called when properties change
|
|
191
|
-
* Handle state synchronization BEFORE render
|
|
192
|
-
*/
|
|
193
|
-
protected onPropertiesChanged(changes: PropertyChange[]): void;
|
|
194
|
-
/**
|
|
195
|
-
* Toggle the loading visual state on the open popup.
|
|
196
|
-
* Replaces the options list with a centered spinner; search input stays usable.
|
|
197
|
-
* Pulls the latest registered loader SVG on each call so registry changes
|
|
198
|
-
* take effect on the next loading toggle.
|
|
199
|
-
*/
|
|
200
|
-
private applyLoadingState;
|
|
201
|
-
/**
|
|
202
|
-
* Get the form value for this component
|
|
203
|
-
* TyComponent calls this automatically when formValue property changes
|
|
204
|
-
*/
|
|
205
|
-
protected getFormValue(): FormDataEntryValue | null;
|
|
206
|
-
/**
|
|
207
|
-
* Parse dropdown value (single string)
|
|
208
|
-
*/
|
|
209
|
-
private parseValue;
|
|
210
|
-
/**
|
|
211
|
-
* Initialize component state from attributes
|
|
212
|
-
*/
|
|
213
|
-
private initializeState;
|
|
214
|
-
/**
|
|
215
|
-
* Update placeholder text in existing rendered HTML
|
|
216
|
-
* Called when placeholder changes after initial render
|
|
217
|
-
*/
|
|
218
|
-
private updatePlaceholderInDOM;
|
|
219
|
-
/**
|
|
220
|
-
* Update form value via ElementInternals
|
|
221
|
-
*/
|
|
222
|
-
/**
|
|
223
|
-
* Get all option elements from slot
|
|
224
|
-
* Supports: <option>, <ty-option>, <ty-tag>
|
|
225
|
-
*/
|
|
226
|
-
private getOptions;
|
|
227
|
-
/**
|
|
228
|
-
* Extract value and text from option element
|
|
229
|
-
*/
|
|
230
|
-
private getOptionData;
|
|
231
|
-
/**
|
|
232
|
-
* Clear all selections
|
|
233
|
-
*/
|
|
234
|
-
private clearSelection;
|
|
235
|
-
/**
|
|
236
|
-
* Select an option
|
|
237
|
-
*/
|
|
238
|
-
private selectOption;
|
|
239
|
-
/**
|
|
240
|
-
* Sync selected option based on current value
|
|
241
|
-
*/
|
|
242
|
-
private syncSelectedOption;
|
|
243
|
-
/**
|
|
244
|
-
* Update component value attribute for consistency
|
|
245
|
-
*/
|
|
246
|
-
private updateComponentValue;
|
|
247
|
-
/**
|
|
248
|
-
* Update selection display (show/hide placeholder)
|
|
249
|
-
*/
|
|
250
|
-
private updateSelectionDisplay;
|
|
251
|
-
private updateClearButton;
|
|
252
|
-
/**
|
|
253
|
-
* Dispatch change event
|
|
254
|
-
*/
|
|
255
|
-
private dispatchChangeEvent;
|
|
256
|
-
private filterOptions;
|
|
257
|
-
private updateOptionVisibility;
|
|
258
|
-
/**
|
|
259
|
-
* Clear all option highlights
|
|
260
|
-
*/
|
|
261
|
-
private clearHighlights;
|
|
262
|
-
private highlightOption;
|
|
263
|
-
/**
|
|
264
|
-
* Setup event listeners
|
|
265
|
-
*/
|
|
266
|
-
private setupDesktopEventListeners;
|
|
267
|
-
/**
|
|
268
|
-
* Lock scroll with consistent ID generation
|
|
269
|
-
*/
|
|
270
|
-
private lockDropdownScroll;
|
|
271
|
-
/**
|
|
272
|
-
* Unlock scroll using stored ID
|
|
273
|
-
*/
|
|
274
|
-
private unlockDropdownScroll;
|
|
275
|
-
/**
|
|
276
|
-
* Initialize options state when opening dropdown/modal
|
|
277
|
-
* @param highlightSelected - Whether to highlight the currently selected option
|
|
278
|
-
*/
|
|
279
|
-
private initializeOptionsState;
|
|
280
|
-
/**
|
|
281
|
-
* Base stub click handler - validates state then calls open callback
|
|
282
|
-
* @param e - Click event
|
|
283
|
-
* @param openCallback - Function to call to open (desktop or mobile)
|
|
284
|
-
*/
|
|
285
|
-
private handleStubClickBase;
|
|
286
|
-
/**
|
|
287
|
-
* Base option click handler - finds option, selects it, then calls close callback
|
|
288
|
-
* @param e - Click event
|
|
289
|
-
* @param closeCallback - Function to call to close (desktop or mobile)
|
|
290
|
-
*/
|
|
291
|
-
private handleOptionClickBase;
|
|
292
|
-
/**
|
|
293
|
-
* Base clear click handler - clears selection and optionally closes
|
|
294
|
-
* @param e - Click event
|
|
295
|
-
* @param closeCallback - Optional function to call to close (mobile only)
|
|
296
|
-
*/
|
|
297
|
-
private handleClearClickBase;
|
|
298
|
-
/**
|
|
299
|
-
* Calculate and set dropdown position with smart direction detection
|
|
300
|
-
*/
|
|
301
|
-
private calculateDesktopPosition;
|
|
302
|
-
/**
|
|
303
|
-
* Open dropdown dialog
|
|
304
|
-
*/
|
|
305
|
-
private openDesktopDropdown;
|
|
306
|
-
/**
|
|
307
|
-
* Close dropdown dialog
|
|
308
|
-
*/
|
|
309
|
-
private closeDesktopDropdown;
|
|
310
|
-
/**
|
|
311
|
-
* Handle outside click to close dropdown
|
|
312
|
-
*/
|
|
313
|
-
private handleDesktopOutsideClick;
|
|
314
|
-
/**
|
|
315
|
-
* Handle search input changes
|
|
316
|
-
*/
|
|
317
|
-
private handleSearchInput;
|
|
318
|
-
/**
|
|
319
|
-
* Block search input click from bubbling
|
|
320
|
-
* Prevents search input clicks from triggering outside click handler
|
|
321
|
-
*/
|
|
322
|
-
private blockSearchClick;
|
|
323
|
-
/**
|
|
324
|
-
* Dispatch search event for external search handling
|
|
325
|
-
* With optional debounce support
|
|
326
|
-
*/
|
|
327
|
-
private dispatchSearchEvent;
|
|
328
|
-
/**
|
|
329
|
-
* Fire the actual search event
|
|
330
|
-
*/
|
|
331
|
-
private fireSearchEvent;
|
|
332
|
-
/**
|
|
333
|
-
* Dispatch lifecycle events for popup open/close.
|
|
334
|
-
* On open with external-search, also fire a `search` event with an empty
|
|
335
|
-
* query so consumers have a clean hook to reset/refetch the option list —
|
|
336
|
-
* fixes the "stale filtered options on reopen" UX issue.
|
|
337
|
-
*/
|
|
338
|
-
private fireOpenEvent;
|
|
339
|
-
private fireCloseEvent;
|
|
340
|
-
/**
|
|
341
|
-
* Handle keyboard navigation
|
|
342
|
-
*/
|
|
343
|
-
private handleDesktopKeyboard;
|
|
344
|
-
/**
|
|
345
|
-
* Handle stub click - open dropdown
|
|
346
|
-
*/
|
|
347
|
-
private handleDesktopStubClick;
|
|
348
|
-
/**
|
|
349
|
-
* Handle option click - select option and close
|
|
350
|
-
*/
|
|
351
|
-
private handleDesktopOptionClick;
|
|
352
|
-
/**
|
|
353
|
-
* Handle clear button click - clear selection
|
|
354
|
-
* CRITICAL: Must prevent dropdown from opening!
|
|
355
|
-
*/
|
|
356
|
-
private handleDesktopClearClick;
|
|
357
|
-
private _setupOptionsScrollbar;
|
|
358
|
-
private _destroyOptionsScrollbar;
|
|
359
|
-
/**
|
|
360
|
-
* Build CSS class list for stub
|
|
361
|
-
*/
|
|
362
|
-
private buildStubClasses;
|
|
363
|
-
/**
|
|
364
|
-
* Render desktop mode with dialog
|
|
365
|
-
*/
|
|
366
|
-
private renderDesktop;
|
|
367
|
-
/**
|
|
368
|
-
* Render mobile mode with full-screen modal
|
|
369
|
-
*/
|
|
370
|
-
private renderMobile;
|
|
371
|
-
/**
|
|
372
|
-
* Setup event listeners for mobile mode
|
|
373
|
-
*/
|
|
374
|
-
private setupMobileEventListeners;
|
|
375
|
-
/**
|
|
376
|
-
* Handle mobile stub click - open modal
|
|
377
|
-
*/
|
|
378
|
-
private handleMobileStubClick;
|
|
379
|
-
/**
|
|
380
|
-
* Handle mobile option click - select and close
|
|
381
|
-
*/
|
|
382
|
-
private handleMobileOptionClick;
|
|
383
|
-
/**
|
|
384
|
-
* Handle clear click in mobile modal
|
|
385
|
-
*/
|
|
386
|
-
private handleMobileClearClick;
|
|
387
|
-
/**
|
|
388
|
-
* Open mobile modal
|
|
389
|
-
*/
|
|
390
|
-
private openMobileModal;
|
|
391
|
-
/**
|
|
392
|
-
* Close mobile modal
|
|
393
|
-
*/
|
|
394
|
-
private closeMobileModal;
|
|
395
|
-
get value(): string;
|
|
396
|
-
set value(v: string);
|
|
397
|
-
get name(): string;
|
|
398
|
-
set name(v: string);
|
|
399
|
-
get placeholder(): string;
|
|
400
|
-
set placeholder(v: string);
|
|
401
|
-
get label(): string;
|
|
402
|
-
set label(v: string);
|
|
403
|
-
get disabled(): boolean;
|
|
404
|
-
set disabled(v: boolean);
|
|
405
|
-
get readonly(): boolean;
|
|
406
|
-
set readonly(v: boolean);
|
|
407
|
-
get required(): boolean;
|
|
408
|
-
set required(v: boolean);
|
|
409
|
-
get externalSearch(): boolean;
|
|
410
|
-
set externalSearch(v: boolean);
|
|
411
|
-
get clearable(): boolean;
|
|
412
|
-
set clearable(v: boolean);
|
|
413
|
-
get loading(): boolean;
|
|
414
|
-
set loading(v: boolean);
|
|
415
|
-
get size(): Size;
|
|
416
|
-
set size(v: Size);
|
|
417
|
-
get flavor(): Flavor;
|
|
418
|
-
set flavor(v: Flavor);
|
|
419
|
-
get debounce(): number;
|
|
420
|
-
set debounce(v: number);
|
|
421
|
-
get form(): HTMLFormElement | null;
|
|
422
|
-
}
|
|
423
|
-
export {};
|
|
424
|
-
//# sourceMappingURL=dropdown.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../src/components/dropdown.ts"],"names":[],"mappings":"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"}
|