tyrell-components 1.0.0-RC14 → 1.0.0-RC15
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 +9 -1
- package/css/tyrell-theme.css +25 -2
- package/css/tyrell.css +4 -0
- package/dist/tyrell-colors-static.css +1 -316
- package/dist/tyrell-theme.css +1 -1443
- package/dist/tyrell.css +1 -1390
- package/dist/tyrell.js +1 -1
- package/lib/base/ty-component.js +196 -196
- package/lib/components/button.d.ts +1 -1
- package/lib/components/button.js +261 -259
- package/lib/components/calendar-month.d.ts +2 -2
- package/lib/components/calendar-month.js +439 -416
- package/lib/components/calendar-navigation.js +238 -238
- package/lib/components/calendar.d.ts +5 -3
- package/lib/components/calendar.js +611 -602
- package/lib/components/checkbox.d.ts +1 -1
- package/lib/components/checkbox.js +273 -272
- package/lib/components/copy.d.ts +1 -1
- package/lib/components/copy.js +280 -278
- package/lib/components/date-picker.d.ts +8 -1
- package/lib/components/date-picker.js +1128 -1108
- package/lib/components/file-upload.js +404 -404
- package/lib/components/icon.js +141 -141
- package/lib/components/input.d.ts +1 -1
- package/lib/components/input.js +593 -596
- package/lib/components/modal.js +319 -319
- package/lib/components/option.js +167 -167
- package/lib/components/popup.js +233 -233
- package/lib/components/radio.d.ts +2 -2
- package/lib/components/radio.js +407 -406
- package/lib/components/resize-observer.js +67 -67
- package/lib/components/scroll-container.js +292 -294
- package/lib/components/select.d.ts +71 -12
- package/lib/components/select.js +1605 -1529
- package/lib/components/selected-tags.d.ts +1 -1
- package/lib/components/selected-tags.js +188 -182
- package/lib/components/step.js +62 -62
- package/lib/components/switch.d.ts +1 -1
- package/lib/components/switch.js +214 -213
- package/lib/components/tab.js +62 -62
- package/lib/components/tabs.d.ts +1 -0
- package/lib/components/tabs.js +523 -492
- package/lib/components/tag.d.ts +1 -1
- package/lib/components/tag.js +236 -235
- package/lib/components/textarea.d.ts +1 -1
- package/lib/components/textarea.js +457 -456
- package/lib/components/tooltip.js +283 -283
- package/lib/components/wizard.js +384 -384
- package/lib/icons/heroicons/micro.js +392 -392
- package/lib/icons/heroicons/mini.js +382 -382
- package/lib/icons/heroicons/outline.js +337 -337
- package/lib/icons/heroicons/solid.js +407 -407
- package/lib/icons/lucide.js +22843 -22843
- package/lib/icons/material/filled.js +9653 -9653
- package/lib/icons/material/outlined.js +10271 -10271
- package/lib/icons/material/round.js +10495 -10495
- package/lib/icons/material/sharp.js +9905 -9905
- package/lib/icons/material/two-tone.js +12792 -12792
- package/lib/index.js +21 -21
- package/lib/styles/button.js +200 -302
- package/lib/styles/calendar-month.js +123 -183
- package/lib/styles/calendar-navigation.d.ts +1 -1
- package/lib/styles/calendar-navigation.js +64 -79
- package/lib/styles/calendar.d.ts +1 -1
- package/lib/styles/calendar.js +9 -9
- package/lib/styles/checkbox.js +45 -72
- package/lib/styles/copy.js +67 -91
- package/lib/styles/custom-scrollbar.js +80 -100
- package/lib/styles/date-picker.js +261 -331
- package/lib/styles/field-size.d.ts +6 -0
- package/lib/styles/field-size.js +91 -0
- package/lib/styles/file-upload.js +139 -169
- package/lib/styles/icon.js +92 -156
- package/lib/styles/input.js +125 -241
- package/lib/styles/modal.js +67 -102
- package/lib/styles/option.d.ts +1 -1
- package/lib/styles/option.js +47 -67
- package/lib/styles/popup.js +34 -65
- package/lib/styles/radio.js +69 -96
- package/lib/styles/resize-observer.js +2 -5
- package/lib/styles/scroll-container.js +100 -130
- package/lib/styles/select-base.js +596 -773
- package/lib/styles/select.js +140 -228
- package/lib/styles/step.js +22 -29
- package/lib/styles/switch.js +34 -55
- package/lib/styles/tab.d.ts +1 -1
- package/lib/styles/tab.js +22 -29
- package/lib/styles/tabs.d.ts +1 -1
- package/lib/styles/tabs.js +186 -180
- package/lib/styles/tag.js +135 -188
- package/lib/styles/textarea.d.ts +1 -1
- package/lib/styles/textarea.js +205 -271
- package/lib/styles/tooltip.js +3 -3
- package/lib/styles/wizard.js +170 -226
- package/lib/types/common.d.ts +2 -0
- package/lib/types/common.js +6 -5
- package/lib/utils/calendar-utils.js +100 -100
- package/lib/utils/custom-scrollbar.js +272 -272
- package/lib/utils/flavor-sheet.js +14 -14
- package/lib/utils/icon-registry.js +127 -127
- package/lib/utils/loader-registry.js +3 -3
- package/lib/utils/locale.js +34 -34
- package/lib/utils/mobile.js +1 -1
- package/lib/utils/number-format.js +54 -54
- package/lib/utils/positioning.js +212 -212
- package/lib/utils/property-capture.js +36 -36
- package/lib/utils/property-manager.js +125 -125
- package/lib/utils/resize-observer.js +23 -23
- package/lib/utils/scroll-lock.js +57 -57
- package/lib/utils/styles.js +17 -17
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +4 -4
|
@@ -106,11 +106,10 @@ export declare class TySelect extends TyComponent<SelectState> {
|
|
|
106
106
|
};
|
|
107
107
|
coerce: (v: any) => "none" | "slug";
|
|
108
108
|
};
|
|
109
|
-
|
|
110
|
-
type: "
|
|
109
|
+
notSearchable: {
|
|
110
|
+
type: "boolean";
|
|
111
111
|
visual: boolean;
|
|
112
|
-
default:
|
|
113
|
-
coerce: (v: any) => "auto" | "always" | "never";
|
|
112
|
+
default: boolean;
|
|
114
113
|
};
|
|
115
114
|
align: {
|
|
116
115
|
type: "string";
|
|
@@ -127,7 +126,7 @@ export declare class TySelect extends TyComponent<SelectState> {
|
|
|
127
126
|
size: {
|
|
128
127
|
type: "string";
|
|
129
128
|
visual: boolean;
|
|
130
|
-
default:
|
|
129
|
+
default: Size;
|
|
131
130
|
validate: (v: any) => boolean;
|
|
132
131
|
coerce: (v: any) => any;
|
|
133
132
|
};
|
|
@@ -142,6 +141,11 @@ export declare class TySelect extends TyComponent<SelectState> {
|
|
|
142
141
|
visual: boolean;
|
|
143
142
|
default: string;
|
|
144
143
|
};
|
|
144
|
+
"selected-label": {
|
|
145
|
+
type: "string";
|
|
146
|
+
visual: boolean;
|
|
147
|
+
default: string;
|
|
148
|
+
};
|
|
145
149
|
"no-options-message": {
|
|
146
150
|
type: "string";
|
|
147
151
|
visual: boolean;
|
|
@@ -170,11 +174,12 @@ export declare class TySelect extends TyComponent<SelectState> {
|
|
|
170
174
|
private _externalSearch;
|
|
171
175
|
private _allowCreate;
|
|
172
176
|
private _createTransform;
|
|
173
|
-
private
|
|
177
|
+
private _notSearchable;
|
|
174
178
|
private _loading;
|
|
175
179
|
private _scrollLockId;
|
|
176
180
|
private _size;
|
|
177
181
|
private _availableLabel;
|
|
182
|
+
private _selectedLabel;
|
|
178
183
|
private _noOptionsMessage;
|
|
179
184
|
private _state;
|
|
180
185
|
private _stubClickHandler;
|
|
@@ -208,6 +213,29 @@ export declare class TySelect extends TyComponent<SelectState> {
|
|
|
208
213
|
private parseValue;
|
|
209
214
|
/** Initialize component state from the value property / pre-selected children. */
|
|
210
215
|
private initializeState;
|
|
216
|
+
/**
|
|
217
|
+
* Declarative init: no `value` attribute, but markup pre-marked one or more
|
|
218
|
+
* options `selected` — native <select> semantics. This is the ONE place
|
|
219
|
+
* selection is read FROM the DOM rather than treated as a rendering of
|
|
220
|
+
* state (see getSelectedValues()): it seeds initial state, once. After
|
|
221
|
+
* this, `value` rules — flipping an option's `selected` property later
|
|
222
|
+
* does nothing, same as native.
|
|
223
|
+
*
|
|
224
|
+
* Called from initializeState() at connect AND from the child observer:
|
|
225
|
+
* a real HTML parser upgrades a custom element the moment its start tag is
|
|
226
|
+
* seen, BEFORE its children exist — `<ty-select>` connects with zero
|
|
227
|
+
* `<ty-option>` children when it's part of the page's own markup (as
|
|
228
|
+
* opposed to an already-built fragment attached via innerHTML/appendChild,
|
|
229
|
+
* where children exist at connect). Calling this only at connect would
|
|
230
|
+
* silently miss every option parsed after that instant, which is the
|
|
231
|
+
* common case for markup that is literally in the page's initial HTML.
|
|
232
|
+
*
|
|
233
|
+
* Safe to call repeatedly: no-ops once `value` has ever been explicitly
|
|
234
|
+
* set (attribute or property) or state is already non-empty — including
|
|
235
|
+
* after a real `.clear()`, which removes `selected` from every option via
|
|
236
|
+
* syncSelectedTags, so there is nothing left here to (re-)seed from.
|
|
237
|
+
*/
|
|
238
|
+
private resolveDeclarativeSelection;
|
|
211
239
|
/**
|
|
212
240
|
* Get all option elements from the component (ty-option preferred, ty-tag accepted)
|
|
213
241
|
*/
|
|
@@ -223,7 +251,15 @@ export declare class TySelect extends TyComponent<SelectState> {
|
|
|
223
251
|
*/
|
|
224
252
|
private deselectTag;
|
|
225
253
|
/**
|
|
226
|
-
* Get array of currently selected values
|
|
254
|
+
* Get the array of currently selected values.
|
|
255
|
+
*
|
|
256
|
+
* Reads STATE (`_state.selectedValues`), not the DOM: `value` is the
|
|
257
|
+
* selection, and an option's `selected` attribute is a rendering of it
|
|
258
|
+
* (written by syncSelectedTags below), never the other way round. This
|
|
259
|
+
* matters whenever options don't fully reflect the selection — external
|
|
260
|
+
* search legitimately has a selected value with no matching option
|
|
261
|
+
* present; a DOM scan would report empty and desync .value, `required`
|
|
262
|
+
* validation and the click-toggle logic from what's actually selected.
|
|
227
263
|
*/
|
|
228
264
|
private getSelectedValues;
|
|
229
265
|
private syncSelectedTags;
|
|
@@ -299,6 +335,13 @@ export declare class TySelect extends TyComponent<SelectState> {
|
|
|
299
335
|
private blockSearchClick;
|
|
300
336
|
private handleSearchInput;
|
|
301
337
|
private handleKeyboard;
|
|
338
|
+
/**
|
|
339
|
+
* Next tag index in `direction` (-1/1) that isn't disabled, wrapping
|
|
340
|
+
* around — mirrors handleTagClick's disabled check so keyboard nav can
|
|
341
|
+
* never land on/select what a click already refuses to. Returns -1 if
|
|
342
|
+
* every tag is disabled (or there are none).
|
|
343
|
+
*/
|
|
344
|
+
private nextEnabledTagIndex;
|
|
302
345
|
private filterTags;
|
|
303
346
|
private updateTagVisibility;
|
|
304
347
|
private updateOptionsVisibility;
|
|
@@ -340,9 +383,25 @@ export declare class TySelect extends TyComponent<SelectState> {
|
|
|
340
383
|
private handleMobileTagClick;
|
|
341
384
|
private updateMobileSelectedState;
|
|
342
385
|
/**
|
|
343
|
-
*
|
|
344
|
-
*
|
|
345
|
-
*
|
|
386
|
+
* Hand the dialog's spare vertical space to one section or the other. Only
|
|
387
|
+
* one can own it: on a phone there isn't enough height for two scrollable
|
|
388
|
+
* lists to both be usefully tall, so tapping a header trades the space
|
|
389
|
+
* rather than splitting it. Selecting from the list hands it back to
|
|
390
|
+
* "available" — you're still picking, so that's the list you want open.
|
|
391
|
+
*/
|
|
392
|
+
private expandMobileSection;
|
|
393
|
+
/**
|
|
394
|
+
* The selected values as dismissible chips, pinned above the available
|
|
395
|
+
* list so a long list can never scroll the current selection out of sight.
|
|
396
|
+
* Rebuilt wholesale: the strip is small, and diffing it would have to
|
|
397
|
+
* track chip identity for the sake of a handful of nodes.
|
|
398
|
+
*/
|
|
399
|
+
private renderMobileSelectedChips;
|
|
400
|
+
/**
|
|
401
|
+
* Should the popup show a search row? external-search/allow-create pin it
|
|
402
|
+
* on (the input is the only way to get a query out at all), not-searchable
|
|
403
|
+
* forces it off, and otherwise it follows the list: shown once there are
|
|
404
|
+
* more options than fit without scrolling.
|
|
346
405
|
*/
|
|
347
406
|
private shouldShowSearch;
|
|
348
407
|
/**
|
|
@@ -400,8 +459,8 @@ export declare class TySelect extends TyComponent<SelectState> {
|
|
|
400
459
|
set clearable(value: boolean);
|
|
401
460
|
get required(): boolean;
|
|
402
461
|
set required(value: boolean);
|
|
403
|
-
get
|
|
404
|
-
set
|
|
462
|
+
get notSearchable(): boolean;
|
|
463
|
+
set notSearchable(value: boolean);
|
|
405
464
|
get externalSearch(): boolean;
|
|
406
465
|
set externalSearch(value: boolean);
|
|
407
466
|
get debounce(): number;
|