q2-tecton-elements 1.9.6 → 1.10.1

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 (123) hide show
  1. package/dist/cjs/{icons-077ed9b7.js → icons-fa5f4367.js} +22 -22
  2. package/dist/cjs/index-14348270.js +557 -0
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  5. package/dist/cjs/q2-btn_2.cjs.entry.js +7 -6
  6. package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  9. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  10. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-dropdown.cjs.entry.js +2 -2
  13. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  14. package/dist/cjs/q2-icon.cjs.entry.js +23 -10
  15. package/dist/cjs/q2-input.cjs.entry.js +18 -5
  16. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-option.cjs.entry.js +43 -5
  19. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-section.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-select.cjs.entry.js +104 -62
  23. package/dist/cjs/q2-stepper-pane.cjs.entry.js +27 -0
  24. package/dist/cjs/q2-stepper.cjs.entry.js +187 -0
  25. package/dist/cjs/q2-tab-container.cjs.entry.js +12 -464
  26. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  27. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  28. package/dist/collection/collection-manifest.json +2 -0
  29. package/dist/collection/components/q2-btn/index.js +6 -5
  30. package/dist/collection/components/q2-calendar/styles.css +18 -0
  31. package/dist/collection/components/q2-checkbox-group/styles.css +12 -2
  32. package/dist/collection/components/q2-dropdown/styles.css +18 -0
  33. package/dist/collection/components/q2-icon/icons.js +22 -22
  34. package/dist/collection/components/q2-icon/index.js +41 -9
  35. package/dist/collection/components/q2-icon/styles.css +33 -42
  36. package/dist/collection/components/q2-input/formatting/phone.js +8 -0
  37. package/dist/collection/components/q2-input/index.js +8 -3
  38. package/dist/collection/components/q2-input/styles.css +20 -125
  39. package/dist/collection/components/q2-option/index.js +104 -8
  40. package/dist/collection/components/q2-option/styles.css +31 -37
  41. package/dist/collection/components/q2-select/index.js +106 -62
  42. package/dist/collection/components/q2-select/styles.css +18 -0
  43. package/dist/collection/components/q2-stepper/index.js +283 -0
  44. package/dist/collection/components/q2-stepper/styles.css +253 -0
  45. package/dist/collection/components/q2-stepper-pane/index.js +76 -0
  46. package/dist/collection/components/q2-stepper-pane/styles.css +70 -0
  47. package/dist/collection/components/q2-tab-container/index.js +2 -9
  48. package/dist/collection/utils/index.js +23 -2
  49. package/dist/esm/{icons-5506a72c.js → icons-17612675.js} +22 -22
  50. package/dist/esm/index-da24669a.js +548 -0
  51. package/dist/esm/loader.js +1 -1
  52. package/dist/esm/q2-avatar.entry.js +1 -1
  53. package/dist/esm/q2-btn_2.entry.js +7 -6
  54. package/dist/esm/q2-calendar.entry.js +2 -2
  55. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  56. package/dist/esm/q2-carousel.entry.js +1 -1
  57. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  58. package/dist/esm/q2-checkbox.entry.js +1 -1
  59. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  60. package/dist/esm/q2-dropdown.entry.js +2 -2
  61. package/dist/esm/q2-editable-field.entry.js +1 -1
  62. package/dist/esm/q2-icon.entry.js +23 -10
  63. package/dist/esm/q2-input.entry.js +18 -5
  64. package/dist/esm/q2-loc.entry.js +1 -1
  65. package/dist/esm/q2-optgroup.entry.js +1 -1
  66. package/dist/esm/q2-option.entry.js +44 -6
  67. package/dist/esm/q2-radio-group.entry.js +1 -1
  68. package/dist/esm/q2-radio.entry.js +1 -1
  69. package/dist/esm/q2-section.entry.js +1 -1
  70. package/dist/esm/q2-select.entry.js +104 -62
  71. package/dist/esm/q2-stepper-pane.entry.js +23 -0
  72. package/dist/esm/q2-stepper.entry.js +183 -0
  73. package/dist/esm/q2-tab-container.entry.js +2 -454
  74. package/dist/esm/q2-tecton-elements.js +1 -1
  75. package/dist/esm/q2-textarea.entry.js +1 -1
  76. package/dist/q2-tecton-elements/{p-f1ec7948.entry.js → p-2a28baa9.entry.js} +1 -1
  77. package/dist/q2-tecton-elements/p-2c2a5d58.entry.js +1 -0
  78. package/dist/q2-tecton-elements/{p-93799868.entry.js → p-2f2bbed9.entry.js} +3 -3
  79. package/dist/q2-tecton-elements/p-37d281b7.entry.js +1 -0
  80. package/dist/q2-tecton-elements/{p-dfe693e9.entry.js → p-3f2590c0.entry.js} +1 -1
  81. package/dist/q2-tecton-elements/p-4d283b84.entry.js +1 -0
  82. package/dist/q2-tecton-elements/p-5289f040.entry.js +1 -0
  83. package/dist/q2-tecton-elements/{p-f6d2fa2f.entry.js → p-576509e6.entry.js} +1 -1
  84. package/dist/q2-tecton-elements/{p-c6d4933e.entry.js → p-64eef8d1.entry.js} +1 -1
  85. package/dist/q2-tecton-elements/{p-89ae4f7b.entry.js → p-65894494.entry.js} +1 -1
  86. package/dist/q2-tecton-elements/p-6ed006a7.entry.js +1 -0
  87. package/dist/q2-tecton-elements/p-6f570344.js +1 -0
  88. package/dist/q2-tecton-elements/{p-0c23d50a.entry.js → p-7520656d.entry.js} +1 -1
  89. package/dist/q2-tecton-elements/p-7c06467f.entry.js +1 -0
  90. package/dist/q2-tecton-elements/{p-ccb8126f.entry.js → p-82b24667.entry.js} +1 -1
  91. package/dist/q2-tecton-elements/{p-ec245511.entry.js → p-86116f5c.entry.js} +1 -1
  92. package/dist/q2-tecton-elements/{p-ed433950.entry.js → p-891ca6f8.entry.js} +1 -1
  93. package/dist/q2-tecton-elements/p-8b4f6d3f.entry.js +1 -0
  94. package/dist/q2-tecton-elements/{p-0e9e5b53.entry.js → p-9b420e22.entry.js} +1 -1
  95. package/dist/q2-tecton-elements/p-aaa55918.js +1 -0
  96. package/dist/q2-tecton-elements/{p-915ce8d8.entry.js → p-c14e0622.entry.js} +1 -1
  97. package/dist/q2-tecton-elements/p-c92e3bc2.entry.js +1 -0
  98. package/dist/q2-tecton-elements/{p-7a952b02.entry.js → p-d0d605dc.entry.js} +1 -1
  99. package/dist/q2-tecton-elements/p-e3a27b97.entry.js +1 -0
  100. package/dist/q2-tecton-elements/{p-72f9686c.entry.js → p-ebee91e2.entry.js} +1 -1
  101. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  102. package/dist/types/components/q2-icon/index.d.ts +1 -0
  103. package/dist/types/components/q2-input/formatting/phone.d.ts +8 -0
  104. package/dist/types/components/q2-option/index.d.ts +9 -2
  105. package/dist/types/components/q2-select/index.d.ts +4 -1
  106. package/dist/types/components/q2-stepper/index.d.ts +33 -0
  107. package/dist/types/components/q2-stepper-pane/index.d.ts +9 -0
  108. package/dist/types/components.d.ts +46 -0
  109. package/dist/types/global.d.ts +1 -0
  110. package/dist/types/utils/index.d.ts +5 -2
  111. package/dist/types/workspace/workspace/{_tecton-production_release_1.9.x → tecton-production_release_1.10.x}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
  112. package/package.json +2 -2
  113. package/dist/cjs/index-2dcb1a72.js +0 -99
  114. package/dist/esm/index-f3de8cee.js +0 -91
  115. package/dist/q2-tecton-elements/p-031a8f06.js +0 -1
  116. package/dist/q2-tecton-elements/p-044827e2.entry.js +0 -1
  117. package/dist/q2-tecton-elements/p-0feefe56.js +0 -1
  118. package/dist/q2-tecton-elements/p-1022a1c6.entry.js +0 -1
  119. package/dist/q2-tecton-elements/p-12f6dc10.entry.js +0 -1
  120. package/dist/q2-tecton-elements/p-5da60194.entry.js +0 -1
  121. package/dist/q2-tecton-elements/p-b0cb8867.entry.js +0 -1
  122. package/dist/q2-tecton-elements/p-d93abdce.entry.js +0 -1
  123. package/dist/q2-tecton-elements/p-e5e8eac3.entry.js +0 -1
@@ -114,6 +114,10 @@ label {
114
114
  .input-container {
115
115
  display: flex;
116
116
  align-items: center;
117
+ --comp-input-horizontal-gap: var(
118
+ --tct-input-horizontal-gap,
119
+ var(--t-input-horizontal-gap, 8px)
120
+ );
117
121
  --comp-input-border-top-left-radius: var(
118
122
  --tct-input-border-top-left-radius,
119
123
  var(--tct-border-radius-1, var(--app-border-radius-1, 3px))
@@ -239,21 +243,27 @@ input::placeholder,
239
243
  text-overflow: ellipsis;
240
244
  }
241
245
 
246
+ .input-icons-container-left:empty {
247
+ display: none;
248
+ }
242
249
  .input-icons-container-left {
243
250
  display: flex;
244
251
  flex-direction: row;
245
252
  align-items: center;
253
+ gap: var(--comp-input-horizontal-gap);
254
+ padding-left: var(--comp-input-horizontal-gap);
246
255
  }
247
- .input-icons-container-left q2-icon {
248
- position: absolute;
256
+
257
+ .input-icons-container-right:empty {
258
+ display: none;
249
259
  }
260
+
250
261
  .input-icons-container-right {
251
262
  display: flex;
252
- gap: var(--tct-scale-2, var(--app-scale-2, 10px));
253
263
  flex-direction: row;
254
- padding-left: 3px;
255
264
  align-items: center;
256
- margin-right: var(--tct-scale-2, var(--app-scale-2, 10px));
265
+ gap: var(--comp-input-horizontal-gap);
266
+ padding-right: var(--comp-input-horizontal-gap);
257
267
  }
258
268
  .input-icons-container-right .btn-visibility-toggle {
259
269
  color: var(--tct-primary, var(--t-primary, #006eb2));
@@ -278,16 +288,15 @@ q2-icon {
278
288
  );
279
289
  }
280
290
 
281
- .icon-left {
282
- left: var(--tct-scale-1, var(--app-scale-1, 5px));
283
- }
284
-
285
291
  .icon-left-muted {
286
292
  opacity: 0.5;
287
293
  }
288
294
 
289
295
  .input-prefix,
290
296
  .input-suffix {
297
+ margin-left: calc(var(--comp-input-horizontal-gap) * -1);
298
+ margin-right: calc(var(--comp-input-horizontal-gap) * -1);
299
+ width: 3em;
291
300
  display: inline-flex;
292
301
  align-items: center;
293
302
  justify-content: center;
@@ -299,8 +308,6 @@ q2-icon {
299
308
  var(--tct-input-height, 44px) - var(--tct-input-focus-border-top-width, 1px) -
300
309
  var(--tct-input-focus-border-bottom-width, 1px)
301
310
  );
302
- width: 3em;
303
- bottom: var(--tct-input-border-bottom-width, 1px);
304
311
  font-size: var(--tct-input-prefix-font-size, inherit);
305
312
  color: var(--tct-input-prefix-font-color, inherit);
306
313
  background-color: var(
@@ -312,21 +319,6 @@ q2-icon {
312
319
  }
313
320
 
314
321
  .input-prefix {
315
- left: var(--tct-input-border-left-width, 1px);
316
- border-right: 1px solid
317
- var(
318
- --tct-input-prefix-border-color,
319
- var(
320
- --tct-input-border-color,
321
- var(
322
- --t-input-border,
323
- var(
324
- --tct-gray-11,
325
- var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc)))
326
- )
327
- )
328
- )
329
- );
330
322
  border-top-left-radius: calc(
331
323
  var(--comp-input-border-top-left-radius) - var(--tct-input-border-top-width, 1px) -
332
324
  var(--tct-input-border-left-width, 1px)
@@ -339,21 +331,6 @@ q2-icon {
339
331
  }
340
332
 
341
333
  .input-suffix {
342
- right: var(--tct-input-border-right-width, 1px);
343
- border-left: 1px solid
344
- var(
345
- --tct-input-prefix-border-color,
346
- var(
347
- --tct-input-border-color,
348
- var(
349
- --t-input-border,
350
- var(
351
- --tct-gray-11,
352
- var(--t-gray-11, var(--tct-gray-l1, var(--app-grayl1, #cccccc)))
353
- )
354
- )
355
- )
356
- );
357
334
  border-top-right-radius: calc(
358
335
  var(--comp-input-border-top-right-radius) - var(--tct-input-border-top-width, 1px) -
359
336
  var(--tct-input-border-right-width, 1px)
@@ -416,39 +393,10 @@ q2-icon {
416
393
  cursor: not-allowed;
417
394
  }
418
395
 
419
- .has-focus .input-prefix {
420
- border-top-left-radius: calc(
421
- var(--comp-input-border-top-left-radius) - var(--tct-input-focus-border-top-width, 1px) -
422
- var(--tct-input-focus-border-left-width, 1px)
423
- );
424
- border-bottom-left-radius: calc(
425
- var(--comp-input-border-bottom-left-radius) -
426
- var(--tct-input-focus-border-bottom-width, 1px) -
427
- var(--tct-input-focus-border-left-width, 1px)
428
- );
429
- }
430
-
431
- .has-focus .input-suffix {
432
- border-top-left-radius: calc(
433
- var(--comp-input-border-top-left-radius) - var(--tct-input-focus-border-top-width, 1px) -
434
- var(--tct-input-focus-border-left-width, 1px)
435
- );
436
- border-bottom-left-radius: calc(
437
- var(--comp-input-border-bottom-left-radius) -
438
- var(--tct-input-focus-border-bottom-width, 1px) -
439
- var(--tct-input-focus-border-left-width, 1px)
440
- );
441
- }
442
-
443
396
  .right-aligned .input-field {
444
397
  text-align: right;
445
398
  }
446
399
 
447
- .right-aligned .icon-error {
448
- left: var(--tct-scale-2, var(--app-scale-2, 10px));
449
- right: auto;
450
- }
451
-
452
400
  .has-error label {
453
401
  color: var(--tct-input-error-label-font-color, var(--tct-input-label-font-color, inherit));
454
402
  }
@@ -472,65 +420,12 @@ q2-icon {
472
420
  border-color: var(--tct-input-error-border-color, var(--const-stoplight-alert, #c30000));
473
421
  }
474
422
 
475
- .has-error.has-icon-right.left-aligned .btn-clear {
476
- right: calc(2 * var(--comp-input-icon-clearance));
477
- }
478
-
479
- .has-error.has-clear.has-icon-right.left-aligned .input-field {
480
- padding-right: calc(3 * var(--comp-input-icon-clearance));
481
- }
482
-
483
- .has-error.right-aligned .input-field {
484
- padding-left: var(--comp-input-icon-clearance);
485
- }
486
-
487
- .has-error.right-aligned.has-prefix .input-field {
488
- padding-left: calc(var(--comp-input-prefix-clearance) + var(--comp-input-icon-clearance));
489
- }
490
-
491
- .has-error.right-aligned.has-icon-left .input-field {
492
- padding-left: calc(2 * var(--comp-input-icon-clearance));
493
- }
494
-
495
- .has-error.right-aligned .icon-left {
496
- left: var(--comp-input-icon-clearance);
497
- }
498
-
499
- .has-prefix .input-field {
500
- padding-left: var(--comp-input-prefix-clearance);
501
- }
502
-
503
- .has-prefix.right-aligned .icon-error {
504
- left: var(--comp-input-prefix-clearance);
505
- margin-left: var(--tct-scale-1, 5px);
506
- }
507
-
508
- .has-suffix .icon-error,
509
- .has-suffix .btn-clear {
510
- right: var(--comp-input-prefix-clearance);
511
- }
512
-
513
- .has-suffix.has-error .btn-clear {
514
- right: calc(var(--comp-input-prefix-clearance) + var(--comp-input-icon-clearance));
515
- }
516
-
517
- .has-icon-left .input-field {
518
- padding-left: var(--comp-input-icon-clearance);
519
- }
520
-
521
- .has-icon-left.has-icon-separator .input-field {
522
- padding-left: calc(var(--comp-input-icon-clearance) + 14px);
523
- }
524
- .has-icon-left.has-icon-separator .icon-left {
423
+ .icon-left {
525
424
  width: 26px;
526
425
  height: 26px;
527
- left: 8px;
528
426
  }
529
- .has-icon-left.has-icon-separator .input-container .vertical-separator {
530
- position: absolute;
531
- left: var(--tct-input-border-left-width, 1px);
427
+ .vertical-separator {
532
428
  height: calc(var(--comp-input-min-height) - 2px);
533
- width: 3em;
534
429
  border-right: 1px solid
535
430
  var(
536
431
  --tct-input-prefix-border-color,
@@ -1,28 +1,95 @@
1
- import { Component, Prop, h, Element } from '@stencil/core';
1
+ import { Component, Prop, h, Event, Element, Watch, Fragment } from '@stencil/core';
2
2
  export class Q2Option {
3
3
  constructor() {
4
+ this.role = 'option';
5
+ this.tabindex = '-1';
4
6
  this._multiSelectHidden = false;
5
- this.onOptionClick = (event) => {
7
+ this.onClick = (event) => {
6
8
  event.stopImmediatePropagation();
7
- const disabled = this.disabled || this.disabledGroup;
8
- !disabled && this.hostElement.dispatchEvent(new MouseEvent('click', { bubbles: true }));
9
+ const { disabled, disabledGroup } = this;
10
+ if (disabled || disabledGroup)
11
+ return;
12
+ this.click.emit();
9
13
  };
10
14
  }
15
+ connectedCallback() {
16
+ this.checkDisabledStatus();
17
+ this.checkSelectedStatus();
18
+ this.checkMultiSelectHiddenStatus();
19
+ }
20
+ checkDisabledStatus() {
21
+ const { disabled, disabledGroup, hostElement } = this;
22
+ const isDisabled = disabled || disabledGroup;
23
+ if (isDisabled)
24
+ hostElement.setAttribute('aria-disabled', 'true');
25
+ else
26
+ hostElement.removeAttribute('aria-disabled');
27
+ }
28
+ checkSelectedStatus() {
29
+ const { selected, hostElement } = this;
30
+ if (selected)
31
+ hostElement.setAttribute('aria-selected', 'true');
32
+ else
33
+ hostElement.removeAttribute('aria-selected');
34
+ }
35
+ checkMultiSelectHiddenStatus() {
36
+ const { _multiSelectHidden, hostElement } = this;
37
+ if (_multiSelectHidden)
38
+ hostElement.setAttribute('aria-hidden', 'true');
39
+ else
40
+ hostElement.removeAttribute('aria-hidden');
41
+ }
11
42
  render() {
12
- return (h("div", { role: "option", "aria-selected": `${this.selected}`, "aria-disabled": `${this.disabledGroup || this.disabled || false}`, id: this.optionId, hidden: this._multiSelectHidden || this.hidden || false, class: "q2-option-container", tabindex: "0", onClick: this.onOptionClick },
13
- h("div", { class: "q2-option-selection" }, this.selected ? (h("q2-icon", { type: "checkmark", class: "q2-option-selection-icon" })) : ('')),
14
- h("div", { class: "q2-option-content" },
43
+ return (h(Fragment, null,
44
+ this.selected && h("q2-icon", { type: "checkmark" }),
45
+ h("div", { class: "content", onClick: this.onClick },
15
46
  h("slot", null))));
16
47
  }
17
48
  static get is() { return "q2-option"; }
18
49
  static get encapsulation() { return "shadow"; }
19
50
  static get originalStyleUrls() { return {
20
- "$": ["styles.css"]
51
+ "$": ["styles.scss"]
21
52
  }; }
22
53
  static get styleUrls() { return {
23
54
  "$": ["styles.css"]
24
55
  }; }
25
56
  static get properties() { return {
57
+ "role": {
58
+ "type": "string",
59
+ "mutable": false,
60
+ "complexType": {
61
+ "original": "string",
62
+ "resolved": "string",
63
+ "references": {}
64
+ },
65
+ "required": false,
66
+ "optional": false,
67
+ "docs": {
68
+ "tags": [],
69
+ "text": ""
70
+ },
71
+ "attribute": "role",
72
+ "reflect": true,
73
+ "defaultValue": "'option'"
74
+ },
75
+ "tabindex": {
76
+ "type": "string",
77
+ "mutable": false,
78
+ "complexType": {
79
+ "original": "string",
80
+ "resolved": "string",
81
+ "references": {}
82
+ },
83
+ "required": false,
84
+ "optional": false,
85
+ "docs": {
86
+ "tags": [],
87
+ "text": ""
88
+ },
89
+ "attribute": "tabindex",
90
+ "reflect": true,
91
+ "defaultValue": "'-1'"
92
+ },
26
93
  "display": {
27
94
  "type": "string",
28
95
  "mutable": false,
@@ -195,5 +262,34 @@ export class Q2Option {
195
262
  "defaultValue": "false"
196
263
  }
197
264
  }; }
265
+ static get events() { return [{
266
+ "method": "click",
267
+ "name": "click",
268
+ "bubbles": true,
269
+ "cancelable": true,
270
+ "composed": true,
271
+ "docs": {
272
+ "tags": [],
273
+ "text": ""
274
+ },
275
+ "complexType": {
276
+ "original": "any",
277
+ "resolved": "any",
278
+ "references": {}
279
+ }
280
+ }]; }
198
281
  static get elementRef() { return "hostElement"; }
282
+ static get watchers() { return [{
283
+ "propName": "disabled",
284
+ "methodName": "checkDisabledStatus"
285
+ }, {
286
+ "propName": "disabledGroup",
287
+ "methodName": "checkDisabledStatus"
288
+ }, {
289
+ "propName": "selected",
290
+ "methodName": "checkSelectedStatus"
291
+ }, {
292
+ "propName": "_multiSelectHidden",
293
+ "methodName": "checkMultiSelectHiddenStatus"
294
+ }]; }
199
295
  }
@@ -64,54 +64,48 @@ button {
64
64
  visibility: hidden;
65
65
  }
66
66
 
67
-
68
67
  :host {
69
- display: block;
70
- }
71
-
72
- .q2-option-container {
73
- --comp-option-selected-icon-size: var(
74
- --tct-option-selected-icon-size,
75
- var(--tct-scale-3, var(--app-scale-3, 15px))
76
- );
68
+ padding: 0 var(--tct-scale-2, var(--app-scale-2, 10px));
69
+ min-height: 44px;
70
+ align-items: center;
71
+ cursor: pointer;
72
+ grid-template-columns: var(--tct-option-selected-icon-size, var(--tct-scale-3, var(--app-scale-3, 15px))) 1fr;
73
+ align-items: center;
74
+ grid-template-areas: "icon content";
75
+ gap: var(--tct-scale-1, var(--app-scale-1, 5px));
77
76
  }
78
77
 
79
- .q2-option-container:not([hidden]) {
80
- padding: var(--tct-scale-2, var(--app-scale-2, 10px));
81
- min-height: 44px;
82
- display: flex;
83
- align-items: center;
84
- cursor: pointer;
78
+ :host([aria-disabled]) {
79
+ cursor: not-allowed;
80
+ opacity: var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4));
81
+ pointer-events: none;
85
82
  }
86
83
 
87
- .q2-option-container[aria-disabled='true'] {
88
- cursor: not-allowed;
89
- opacity: var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4));
84
+ :host([aria-hidden]) {
85
+ display: none;
90
86
  }
91
87
 
92
- .q2-option-container:not([aria-disabled='true']):hover,
93
- :host([active]) .q2-option-container,
94
- :host(:focus) .q2-option-container {
95
- background-color: var(--tct-option-active-bg, var(--tct-gray-14, var(--t-gray-14, var(--tct-gray-l3, var(--app-gray-l3, #f2f2f2)))));
96
- color: var(--tct-option-active-font-color, inherit);
88
+ :host(:not([hidden]):not([aria-hidden])) {
89
+ display: grid;
97
90
  }
98
91
 
99
- .q2-option-selection {
100
- flex: 0 0 var(--comp-option-selected-icon-size);
101
- margin-right: var(--tct-scale-1, var(--app-scale-1, 5px));
92
+ :host(:not([aria-disabled]):hover),
93
+ :host([active]),
94
+ :host(:focus) {
95
+ background-color: var(--tct-option-active-bg, var(--tct-gray-14, var(--t-gray-14, var(--tct-gray-l3, var(--app-gray-l3, #f2f2f2)))));
102
96
  }
103
97
 
104
- .q2-option-selection-icon {
105
- width: var(--comp-option-selected-icon-size);
106
- height: var(--comp-option-selected-icon-size);
98
+ q2-icon {
99
+ grid-area: icon;
100
+ --tct-icon-size: var(--tct-option-selected-icon-size, var(--tct-scale-3, var(--app-scale-3, 15px)));
107
101
  }
108
102
 
109
- .q2-option-content {
110
- flex: 1 1 auto;
111
- }
112
-
113
- :host(:not([multiline])) .q2-option-content {
114
- white-space: nowrap;
115
- overflow: hidden;
116
- text-overflow: ellipsis;
103
+ .content {
104
+ display: block;
105
+ grid-area: content;
117
106
  }
107
+ :host(:not([multiline])) .content {
108
+ white-space: nowrap;
109
+ overflow: hidden;
110
+ text-overflow: ellipsis;
111
+ }