tyrell-components 1.0.0-TC25 → 1.0.0-TC27

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 (137) hide show
  1. package/css/tyrell-brand.css +15 -11
  2. package/css/tyrell.css +4 -4
  3. package/dist/tyrell-brand.css +15 -11
  4. package/dist/tyrell.css +4 -4
  5. package/dist/tyrell.js +1 -1
  6. package/lib/components/calendar-month.d.ts +6 -0
  7. package/lib/components/calendar-month.d.ts.map +1 -1
  8. package/lib/components/calendar-month.js +52 -9
  9. package/lib/components/calendar-month.js.map +1 -1
  10. package/lib/components/calendar-navigation.d.ts +31 -5
  11. package/lib/components/calendar-navigation.d.ts.map +1 -1
  12. package/lib/components/calendar-navigation.js +71 -31
  13. package/lib/components/calendar-navigation.js.map +1 -1
  14. package/lib/components/calendar.d.ts +14 -1
  15. package/lib/components/calendar.d.ts.map +1 -1
  16. package/lib/components/calendar.js +65 -4
  17. package/lib/components/calendar.js.map +1 -1
  18. package/lib/components/checkbox.d.ts +8 -0
  19. package/lib/components/checkbox.d.ts.map +1 -1
  20. package/lib/components/checkbox.js +48 -27
  21. package/lib/components/checkbox.js.map +1 -1
  22. package/lib/components/copy.d.ts +10 -0
  23. package/lib/components/copy.d.ts.map +1 -1
  24. package/lib/components/copy.js +25 -4
  25. package/lib/components/copy.js.map +1 -1
  26. package/lib/components/date-picker.d.ts +14 -0
  27. package/lib/components/date-picker.d.ts.map +1 -1
  28. package/lib/components/date-picker.js +29 -0
  29. package/lib/components/date-picker.js.map +1 -1
  30. package/lib/components/input.d.ts +6 -0
  31. package/lib/components/input.d.ts.map +1 -1
  32. package/lib/components/input.js +30 -0
  33. package/lib/components/input.js.map +1 -1
  34. package/lib/components/modal.js +6 -0
  35. package/lib/components/modal.js.map +1 -1
  36. package/lib/components/option.d.ts +0 -16
  37. package/lib/components/option.d.ts.map +1 -1
  38. package/lib/components/option.js +9 -1
  39. package/lib/components/option.js.map +1 -1
  40. package/lib/components/radio.d.ts +1 -0
  41. package/lib/components/radio.d.ts.map +1 -1
  42. package/lib/components/radio.js +37 -8
  43. package/lib/components/radio.js.map +1 -1
  44. package/lib/components/{multiselect.d.ts → select.d.ts} +110 -67
  45. package/lib/components/select.d.ts.map +1 -0
  46. package/lib/components/{multiselect.js → select.js} +642 -490
  47. package/lib/components/select.js.map +1 -0
  48. package/lib/components/selected-tags.d.ts +80 -0
  49. package/lib/components/selected-tags.d.ts.map +1 -0
  50. package/lib/components/selected-tags.js +250 -0
  51. package/lib/components/selected-tags.js.map +1 -0
  52. package/lib/components/switch.d.ts.map +1 -1
  53. package/lib/components/switch.js +19 -7
  54. package/lib/components/switch.js.map +1 -1
  55. package/lib/components/tabs.d.ts.map +1 -1
  56. package/lib/components/tabs.js +10 -0
  57. package/lib/components/tabs.js.map +1 -1
  58. package/lib/index.d.ts +2 -2
  59. package/lib/index.d.ts.map +1 -1
  60. package/lib/index.js +2 -2
  61. package/lib/index.js.map +1 -1
  62. package/lib/styles/calendar-month.d.ts +1 -1
  63. package/lib/styles/calendar-month.d.ts.map +1 -1
  64. package/lib/styles/calendar-month.js +9 -1
  65. package/lib/styles/calendar-month.js.map +1 -1
  66. package/lib/styles/calendar-navigation.d.ts +1 -1
  67. package/lib/styles/calendar-navigation.d.ts.map +1 -1
  68. package/lib/styles/calendar-navigation.js +7 -1
  69. package/lib/styles/calendar-navigation.js.map +1 -1
  70. package/lib/styles/checkbox.d.ts +5 -5
  71. package/lib/styles/checkbox.d.ts.map +1 -1
  72. package/lib/styles/checkbox.js +147 -8
  73. package/lib/styles/checkbox.js.map +1 -1
  74. package/lib/styles/copy.d.ts +1 -1
  75. package/lib/styles/copy.d.ts.map +1 -1
  76. package/lib/styles/copy.js +32 -0
  77. package/lib/styles/copy.js.map +1 -1
  78. package/lib/styles/input.d.ts +1 -1
  79. package/lib/styles/input.d.ts.map +1 -1
  80. package/lib/styles/input.js +28 -298
  81. package/lib/styles/input.js.map +1 -1
  82. package/lib/styles/option.d.ts +1 -1
  83. package/lib/styles/option.d.ts.map +1 -1
  84. package/lib/styles/option.js +29 -5
  85. package/lib/styles/option.js.map +1 -1
  86. package/lib/styles/radio.d.ts +1 -1
  87. package/lib/styles/radio.d.ts.map +1 -1
  88. package/lib/styles/select.d.ts +12 -0
  89. package/lib/styles/select.d.ts.map +1 -0
  90. package/lib/styles/select.js +245 -0
  91. package/lib/styles/select.js.map +1 -0
  92. package/lib/styles/switch.d.ts +1 -1
  93. package/lib/styles/switch.d.ts.map +1 -1
  94. package/lib/styles/textarea.d.ts +1 -1
  95. package/lib/styles/textarea.d.ts.map +1 -1
  96. package/lib/styles/textarea.js +1 -1
  97. package/lib/utils/calendar-utils.d.ts +0 -48
  98. package/lib/utils/calendar-utils.d.ts.map +1 -1
  99. package/lib/utils/calendar-utils.js +0 -69
  100. package/lib/utils/calendar-utils.js.map +1 -1
  101. package/lib/utils/icon-registry.d.ts +0 -13
  102. package/lib/utils/icon-registry.d.ts.map +1 -1
  103. package/lib/utils/icon-registry.js +0 -35
  104. package/lib/utils/icon-registry.js.map +1 -1
  105. package/lib/utils/locale.d.ts +0 -57
  106. package/lib/utils/locale.d.ts.map +1 -1
  107. package/lib/utils/locale.js +0 -89
  108. package/lib/utils/locale.js.map +1 -1
  109. package/lib/utils/number-format.d.ts +0 -21
  110. package/lib/utils/number-format.d.ts.map +1 -1
  111. package/lib/utils/number-format.js +0 -27
  112. package/lib/utils/number-format.js.map +1 -1
  113. package/lib/utils/positioning.d.ts +0 -24
  114. package/lib/utils/positioning.d.ts.map +1 -1
  115. package/lib/utils/positioning.js +3 -86
  116. package/lib/utils/positioning.js.map +1 -1
  117. package/lib/utils/scroll-lock.d.ts.map +1 -1
  118. package/lib/utils/scroll-lock.js +0 -1
  119. package/lib/utils/scroll-lock.js.map +1 -1
  120. package/lib/utils/styles.d.ts +0 -5
  121. package/lib/utils/styles.d.ts.map +1 -1
  122. package/lib/utils/styles.js +0 -7
  123. package/lib/utils/styles.js.map +1 -1
  124. package/lib/version.d.ts +1 -1
  125. package/lib/version.js +1 -1
  126. package/package.json +8 -8
  127. package/css/tyrell-simple.css +0 -257
  128. package/lib/components/dropdown.d.ts +0 -424
  129. package/lib/components/dropdown.d.ts.map +0 -1
  130. package/lib/components/dropdown.js +0 -1640
  131. package/lib/components/dropdown.js.map +0 -1
  132. package/lib/components/multiselect.d.ts.map +0 -1
  133. package/lib/components/multiselect.js.map +0 -1
  134. package/lib/styles/dropdown.d.ts +0 -12
  135. package/lib/styles/dropdown.d.ts.map +0 -1
  136. package/lib/styles/dropdown.js +0 -1081
  137. package/lib/styles/dropdown.js.map +0 -1
@@ -1,48 +1,46 @@
1
1
  /**
2
- * TyMultiselect Web Component
3
- * PORTED FROM: clj/ty/components/multiselect.cljs
2
+ * TySelect Web Component
4
3
  *
5
- * A multiselect dropdown component using ty-tag for selections with:
6
- * - Tag-only options (only ty-tag elements supported)
7
- * - Multiple selection with visual tags
8
- * - Desktop mode with smart positioning
9
- * - Mobile mode with full-screen modal
10
- * - Search and filtering capabilities
11
- * - Keyboard navigation
12
- * - Form association for native form submission with multiple values
13
- * - Scroll locking when dropdown is open
14
- * - Outside click to close
4
+ * The select control — replaces ty-dropdown and ty-multiselect.
5
+ *
6
+ * Cardinality (native <select> semantics):
7
+ * - default: SINGLE select — scalar value, picking an option closes the popup
8
+ * - `multiple`: multi select — comma value / repeated FormData entries,
9
+ * options toggle and the popup stays open
10
+ *
11
+ * Skins:
12
+ * - default: form FIELD — full width, --ty-input-* tokens, matches ty-input;
13
+ * shows the selected label(s) inline
14
+ * - `compact`: content-hugging trigger for toolbars/filter bars; single shows
15
+ * the selected label, multiple shows placeholder + count badge (pair with
16
+ * <ty-selected-tags>)
17
+ * - slot="trigger": consumer skin — replaces field/compact chrome entirely,
18
+ * behavior/ARIA/form participation unchanged
19
+ *
20
+ * - ty-option children (ty-tag also accepted)
21
+ * - Desktop popup with smart positioning, mobile full-screen modal
22
+ * - Search / external-search / debounce, keyboard navigation
23
+ * - Form association: single submits one entry, multiple submits repeated
24
+ * `name=` entries (HTMX-ready)
25
+ * - change event detail: { value, values, items: [{value, label, flavor}], action, item }
26
+ * (`value` is a scalar for single, array for multiple)
15
27
  *
16
28
  * @example
17
29
  * ```html
18
- * <!-- Basic multiselect -->
19
- * <ty-multiselect label="Skills" placeholder="Select skills" required>
20
- * <ty-tag value="js">JavaScript</ty-tag>
21
- * <ty-tag value="ts">TypeScript</ty-tag>
22
- * <ty-tag value="py">Python</ty-tag>
23
- * </ty-multiselect>
30
+ * <!-- Single select, field skin -->
31
+ * <ty-select label="Robot" name="robot">
32
+ * <ty-option value="bobo">Bobo Robot</ty-option>
33
+ * <ty-option value="eywa">EYWA Dataset Example</ty-option>
34
+ * </ty-select>
24
35
  *
25
- * <!-- With pre-selected values -->
26
- * <ty-multiselect value="js,ts">
27
- * <ty-tag value="js">JavaScript</ty-tag>
28
- * <ty-tag value="ts">TypeScript</ty-tag>
29
- * <ty-tag value="py">Python</ty-tag>
30
- * </ty-multiselect>
31
- *
32
- * <!-- With rich tag content -->
33
- * <ty-multiselect label="Team Members">
34
- * <ty-tag value="1" flavor="primary">
35
- * <div class="flex items-center gap-2">
36
- * <img src="avatar1.jpg" class="w-6 h-6 rounded-full" />
37
- * <span>John Doe</span>
38
- * </div>
39
- * </ty-tag>
40
- * </ty-multiselect>
36
+ * <!-- Multi select, compact skin + out-of-band chips -->
37
+ * <ty-select multiple compact label="Robots" name="robots" id="robots">...</ty-select>
38
+ * <ty-selected-tags for="robots"></ty-selected-tags>
41
39
  * ```
42
40
  */
43
- import type { Flavor, Size } from '../types/common.js';
44
- import { TyComponent } from '../base/ty-component.js';
45
- import type { PropertyChange } from '../utils/property-manager.js';
41
+ import type { Size } from "../types/common.js";
42
+ import { TyComponent } from "../base/ty-component.js";
43
+ import type { PropertyChange } from "../utils/property-manager.js";
46
44
  /**
47
45
  * Tag data structure
48
46
  */
@@ -60,12 +58,12 @@ interface MultiselectState {
60
58
  highlightedIndex: number;
61
59
  filteredTags: TagData[];
62
60
  selectedValues: string[];
63
- mode: 'desktop' | 'mobile';
61
+ mode: "desktop" | "mobile";
64
62
  }
65
63
  /**
66
64
  * Ty Multiselect Component
67
65
  */
68
- export declare class TyMultiselect extends TyComponent<MultiselectState> {
66
+ export declare class TySelect extends TyComponent<MultiselectState> {
69
67
  protected static properties: {
70
68
  value: {
71
69
  type: "string";
@@ -79,6 +77,16 @@ export declare class TyMultiselect extends TyComponent<MultiselectState> {
79
77
  type: "string";
80
78
  default: string;
81
79
  };
80
+ multiple: {
81
+ type: "boolean";
82
+ visual: boolean;
83
+ default: boolean;
84
+ };
85
+ compact: {
86
+ type: "boolean";
87
+ visual: boolean;
88
+ default: boolean;
89
+ };
82
90
  placeholder: {
83
91
  type: "string";
84
92
  visual: boolean;
@@ -109,17 +117,16 @@ export declare class TyMultiselect extends TyComponent<MultiselectState> {
109
117
  visual: boolean;
110
118
  default: boolean;
111
119
  aliases: {
112
- 'external-search': boolean;
120
+ "external-search": boolean;
113
121
  };
114
122
  };
115
- size: {
123
+ searchable: {
116
124
  type: "string";
117
125
  visual: boolean;
118
126
  default: string;
119
- validate: (v: any) => boolean;
120
- coerce: (v: any) => any;
127
+ coerce: (v: any) => "auto" | "always" | "never";
121
128
  };
122
- flavor: {
129
+ size: {
123
130
  type: "string";
124
131
  visual: boolean;
125
132
  default: string;
@@ -132,17 +139,12 @@ export declare class TyMultiselect extends TyComponent<MultiselectState> {
132
139
  validate: (v: any) => boolean;
133
140
  coerce: (v: any) => number;
134
141
  };
135
- 'selected-label': {
136
- type: "string";
137
- visual: boolean;
138
- default: string;
139
- };
140
- 'available-label': {
142
+ "available-label": {
141
143
  type: "string";
142
144
  visual: boolean;
143
145
  default: string;
144
146
  };
145
- 'no-options-message': {
147
+ "no-options-message": {
146
148
  type: "string";
147
149
  visual: boolean;
148
150
  default: string;
@@ -154,22 +156,23 @@ export declare class TyMultiselect extends TyComponent<MultiselectState> {
154
156
  };
155
157
  };
156
158
  private _name;
159
+ private _multiple;
160
+ private _compact;
157
161
  private _placeholder;
158
162
  private _label;
159
163
  private _disabled;
160
164
  private _readonly;
161
165
  private _required;
162
166
  private _externalSearch;
167
+ private _searchable;
163
168
  private _loading;
164
169
  private _scrollLockId;
165
170
  private _size;
166
- private _selectedLabel;
167
171
  private _availableLabel;
168
172
  private _noOptionsMessage;
169
173
  private _state;
170
174
  private _stubClickHandler;
171
175
  private _tagClickHandler;
172
- private _tagDismissHandler;
173
176
  private _searchInputHandler;
174
177
  private _blockSearchClick;
175
178
  private _keyboardHandler;
@@ -177,6 +180,7 @@ export declare class TyMultiselect extends TyComponent<MultiselectState> {
177
180
  private _searchDebounceTimer;
178
181
  private _optionsScrollbar;
179
182
  private _childObserver;
183
+ private _selectedClone;
180
184
  constructor();
181
185
  /**
182
186
  * Called when component is connected to DOM
@@ -215,7 +219,7 @@ export declare class TyMultiselect extends TyComponent<MultiselectState> {
215
219
  */
216
220
  private initializeState;
217
221
  /**
218
- * Get all ty-tag elements from the component (ALL slots)
222
+ * Get all option elements from the component (ty-option preferred, ty-tag accepted)
219
223
  */
220
224
  private getTagElements;
221
225
  /**
@@ -223,21 +227,18 @@ export declare class TyMultiselect extends TyComponent<MultiselectState> {
223
227
  */
224
228
  private getTagData;
225
229
  /**
226
- * Select a tag - set selected state, move to selected slot, make dismissible
230
+ * Select an option - attribute only. The option stays in the list with
231
+ * selected styling; chips are rendered out-of-band (ty-selected-tags).
227
232
  */
228
233
  private selectTag;
229
234
  /**
230
- * Deselect a tag - remove selected state, remove from selected slot, remove dismissible
235
+ * Deselect an option - attribute only.
231
236
  */
232
237
  private deselectTag;
233
238
  /**
234
239
  * Get array of currently selected values from tags (ALWAYS reads from DOM)
235
240
  */
236
241
  private getSelectedValues;
237
- /**
238
- * Check if all available tags are selected
239
- */
240
- private allTagsSelected;
241
242
  /**
242
243
  * Sync tag selection states with desired values
243
244
  */
@@ -247,6 +248,10 @@ export declare class TyMultiselect extends TyComponent<MultiselectState> {
247
248
  * Uses TyComponent's property system for proper lifecycle
248
249
  */
249
250
  private updateComponentValue;
251
+ /**
252
+ * Build rich item info for values, read off the matching option elements
253
+ */
254
+ private getSelectedItems;
250
255
  /**
251
256
  * Calculate and set dropdown position with smart direction detection
252
257
  */
@@ -279,7 +284,6 @@ export declare class TyMultiselect extends TyComponent<MultiselectState> {
279
284
  private closeMobileModal;
280
285
  private handleStubClick;
281
286
  private handleTagClick;
282
- private handleTagDismiss;
283
287
  private blockSearchClick;
284
288
  private handleSearchInput;
285
289
  private handleKeyboard;
@@ -328,6 +332,11 @@ export declare class TyMultiselect extends TyComponent<MultiselectState> {
328
332
  * Delegates to mode-specific renderer
329
333
  */
330
334
  protected render(): void;
335
+ /**
336
+ * When a consumer slots their own trigger (slot="trigger"), strip the
337
+ * default field chrome so the trigger is styled entirely by the consumer.
338
+ */
339
+ private setupTriggerSlot;
331
340
  /**
332
341
  * Setup event listeners
333
342
  */
@@ -359,18 +368,52 @@ export declare class TyMultiselect extends TyComponent<MultiselectState> {
359
368
  */
360
369
  private handleMobileTagClick;
361
370
  /**
362
- * Update mobile selected section state (collapsed view, empty states, etc.)
371
+ * Update mobile options section state (count, empty state)
363
372
  */
364
373
  private updateMobileSelectedState;
365
374
  /**
366
- * Update selection display (show/hide placeholder)
367
- * Matches dropdown.ts pattern - uses CSS via has-selection class
375
+ * Update selection display: count badge next to the placeholder
376
+ */
377
+ /**
378
+ * Should the popup show a search row? external-search always (the input is
379
+ * the mechanism); searchable always/never wins otherwise; 'auto' shows it
380
+ * only when the option list is long enough to need filtering.
381
+ */
382
+ private shouldShowSearch;
383
+ /**
384
+ * Toggle the search row (desktop header / mobile input) per shouldShowSearch.
385
+ */
386
+ private updateSearchVisibility;
387
+ /**
388
+ * Selection summary appropriate to cardinality × skin:
389
+ * - single (field or compact): the selected OPTION itself — cloned into
390
+ * slot="selected" so rich HTML options display intact (dropdown parity);
391
+ * placeholder when empty
392
+ * - multiple + field: joined labels (ellipsis via CSS), or placeholder
393
+ * - multiple + compact: placeholder + count badge
368
394
  */
369
395
  private updateSelectionDisplay;
396
+ /**
397
+ * Keep exactly one display clone (slot="selected", marked `cloned`) in our
398
+ * light DOM matching the given value — or none. The clone never counts as
399
+ * an option (getTagElements filters [cloned]) and ty-option's own
400
+ * :host([cloned]) styling strips its list-row chrome.
401
+ */
402
+ private syncSelectedClone;
403
+ /**
404
+ * Deselect a value programmatically WITH a change event.
405
+ * Used by out-of-band chip displays (ty-selected-tags) so dismissing a chip
406
+ * fires change like any in-popup interaction (HTMX hx-trigger="change" etc.).
407
+ */
408
+ deselectValue(value: string): void;
370
409
  get value(): string;
371
410
  set value(val: string);
372
411
  get name(): string;
373
412
  set name(val: string);
413
+ get multiple(): boolean;
414
+ set multiple(value: boolean);
415
+ get compact(): boolean;
416
+ set compact(value: boolean);
374
417
  get placeholder(): string;
375
418
  set placeholder(val: string);
376
419
  get label(): string;
@@ -383,15 +426,15 @@ export declare class TyMultiselect extends TyComponent<MultiselectState> {
383
426
  set readonly(value: boolean);
384
427
  get required(): boolean;
385
428
  set required(value: boolean);
429
+ get searchable(): "auto" | "always" | "never";
430
+ set searchable(value: "auto" | "always" | "never" | boolean);
386
431
  get externalSearch(): boolean;
387
432
  set externalSearch(value: boolean);
388
433
  get debounce(): number;
389
434
  set debounce(value: number | string);
390
435
  get size(): Size;
391
436
  set size(value: Size);
392
- get flavor(): Flavor;
393
- set flavor(value: Flavor);
394
437
  get form(): HTMLFormElement | null;
395
438
  }
396
439
  export {};
397
- //# sourceMappingURL=multiselect.d.ts.map
440
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/components/select.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAO/C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAkEnE;;GAEG;AACH,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,UAAU,gBAAgB;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC5B;AA4BD;;GAEG;AACH,qBAAa,QAAS,SAAQ,WAAW,CAAC,gBAAgB,CAAC;IAIzD,SAAS,CAAC,MAAM,CAAC,UAAU;;;;;;;wBAOX,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAoEH,GAAG;;;;;;0BAUD,GAAG;wBACL,GAAG;;;;;0BAWD,GAAG;wBACL,GAAG;;;;;;;;;;;;;;;;;MAqBjB;IAKF,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,iBAAiB,CAAkC;IAG3D,OAAO,CAAC,MAAM,CAOZ;IAGF,OAAO,CAAC,iBAAiB,CAAqC;IAC9D,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,mBAAmB,CAAqC;IAChE,OAAO,CAAC,iBAAiB,CAAqC;IAC9D,OAAO,CAAC,gBAAgB,CAA6C;IAGrE,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,oBAAoB,CAAuB;IAGnD,OAAO,CAAC,iBAAiB,CAAgC;IAIzD,OAAO,CAAC,cAAc,CAAiC;IAIvD,OAAO,CAAC,cAAc,CAA4B;;IAalD;;;OAGG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAsC3B;;;OAGG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAgC9B;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IA+E9D;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;;OAGG;IACH,SAAS,CAAC,YAAY,IAAI,kBAAkB,GAAG,QAAQ,GAAG,IAAI;IAkB9D;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAoCvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;IACH,OAAO,CAAC,UAAU;IAelB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAiC5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2FzB,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,wBAAwB;IAQhC;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IAoDpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoErB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAuCvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAqDxB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;IAwCtB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,cAAc;IA4FtB;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAQ/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAgBpB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;;OAGG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IAgBxB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+C3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,aAAa;IA6ErB;;;OAGG;IACH,OAAO,CAAC,YAAY;IA2GpB;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAiDjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA2BjC;;OAEG;IACH;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IA4C9B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAWlC,IAAI,KAAK,IAAI,MAAM,CAGlB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAEnB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,EAE1B;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,QAAQ,GAAG,OAAO,CAE5C;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,EAE1D;IAED,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,EAEhC;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAGlC;IAED,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAEnB;IAED,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;CACF"}