q2-tecton-elements 1.10.9 → 1.13.0-alpha.0

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 (74) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
  3. package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
  4. package/dist/cjs/q2-checkbox.cjs.entry.js +14 -5
  5. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  6. package/dist/cjs/q2-editable-field.cjs.entry.js +22 -17
  7. package/dist/cjs/q2-input.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-radio-group.cjs.entry.js +20 -1
  9. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  10. package/dist/cjs/q2-select.cjs.entry.js +6 -4
  11. package/dist/cjs/q2-stepper.cjs.entry.js +3 -1
  12. package/dist/cjs/q2-tab-container.cjs.entry.js +3 -1
  13. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  14. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  15. package/dist/collection/components/q2-calendar/styles.css +1 -1
  16. package/dist/collection/components/q2-checkbox/index.js +15 -6
  17. package/dist/collection/components/q2-checkbox/styles.css +7 -3
  18. package/dist/collection/components/q2-dropdown/styles.css +3 -3
  19. package/dist/collection/components/q2-editable-field/index.js +27 -20
  20. package/dist/collection/components/q2-input/styles.css +95 -119
  21. package/dist/collection/components/q2-loading/styles.css +1 -1
  22. package/dist/collection/components/q2-radio/index.js +1 -0
  23. package/dist/collection/components/q2-radio/styles.css +16 -16
  24. package/dist/collection/components/q2-radio-group/index.js +25 -0
  25. package/dist/collection/components/q2-radio-group/styles.css +4 -9
  26. package/dist/collection/components/q2-select/index.js +5 -3
  27. package/dist/collection/components/q2-select/styles.css +4 -4
  28. package/dist/collection/components/q2-stepper/index.js +2 -0
  29. package/dist/collection/components/q2-stepper/styles.css +3 -3
  30. package/dist/collection/components/q2-tab-container/index.js +3 -1
  31. package/dist/collection/components/q2-textarea/styles.css +72 -109
  32. package/dist/collection/components/tecton-tab-pane/index.js +1 -1
  33. package/dist/esm/loader.js +1 -1
  34. package/dist/esm/q2-btn_2.entry.js +1 -1
  35. package/dist/esm/q2-calendar.entry.js +1 -1
  36. package/dist/esm/q2-checkbox.entry.js +14 -5
  37. package/dist/esm/q2-dropdown.entry.js +1 -1
  38. package/dist/esm/q2-editable-field.entry.js +22 -17
  39. package/dist/esm/q2-input.entry.js +1 -1
  40. package/dist/esm/q2-radio-group.entry.js +20 -1
  41. package/dist/esm/q2-radio.entry.js +1 -1
  42. package/dist/esm/q2-select.entry.js +6 -4
  43. package/dist/esm/q2-stepper.entry.js +3 -1
  44. package/dist/esm/q2-tab-container.entry.js +3 -1
  45. package/dist/esm/q2-tecton-elements.js +1 -1
  46. package/dist/esm/q2-textarea.entry.js +1 -1
  47. package/dist/q2-tecton-elements/{p-8509b171.entry.js → p-06fff43d.entry.js} +1 -1
  48. package/dist/q2-tecton-elements/p-29a37091.entry.js +1 -0
  49. package/dist/q2-tecton-elements/p-50967020.entry.js +1 -0
  50. package/dist/q2-tecton-elements/p-75e87cca.entry.js +1 -0
  51. package/dist/q2-tecton-elements/p-768e3a5d.entry.js +1 -0
  52. package/dist/q2-tecton-elements/{p-bbacb804.entry.js → p-7e030e92.entry.js} +1 -1
  53. package/dist/q2-tecton-elements/{p-fc804ebd.entry.js → p-943c7745.entry.js} +1 -1
  54. package/dist/q2-tecton-elements/{p-5559f126.entry.js → p-9a977ee6.entry.js} +1 -1
  55. package/dist/q2-tecton-elements/p-ac859fcc.entry.js +1 -0
  56. package/dist/q2-tecton-elements/p-b281c349.entry.js +1 -0
  57. package/dist/q2-tecton-elements/p-ccbe9158.entry.js +1 -0
  58. package/dist/q2-tecton-elements/p-db6f90ac.entry.js +1 -0
  59. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  60. package/dist/test/helpers.js +3 -0
  61. package/dist/types/components/q2-checkbox/index.d.ts +2 -0
  62. package/dist/types/components/q2-editable-field/index.d.ts +2 -0
  63. package/dist/types/components/q2-radio-group/index.d.ts +1 -0
  64. package/dist/types/components/q2-select/index.d.ts +1 -0
  65. package/dist/types/workspace/workspace/{tecton-production_release_1.10.x → _production_release_1.11.0-alpha}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -0
  66. package/package.json +2 -2
  67. package/dist/q2-tecton-elements/p-4ae9d1f3.entry.js +0 -1
  68. package/dist/q2-tecton-elements/p-52f53e07.entry.js +0 -1
  69. package/dist/q2-tecton-elements/p-78642b7b.entry.js +0 -1
  70. package/dist/q2-tecton-elements/p-7eb39c90.entry.js +0 -1
  71. package/dist/q2-tecton-elements/p-81df91a1.entry.js +0 -1
  72. package/dist/q2-tecton-elements/p-96c9eb75.entry.js +0 -1
  73. package/dist/q2-tecton-elements/p-ab977515.entry.js +0 -1
  74. package/dist/q2-tecton-elements/p-c555f1de.entry.js +0 -1
@@ -66,9 +66,9 @@ button {
66
66
 
67
67
  :host {
68
68
  display: block;
69
- margin-top: var(--tct-input-margin-top, var(--app-scale-6x, 30px));
70
- margin-bottom: var(--tct-input-margin-bottom, var(--app-scale-6x, 30px));
71
- font-size: var(--tct-input-font-size, var(--app-font-size, inherit));
69
+ margin-top: var(--tct-input-margin-top, var(--t-input-margin-top, var(--app-scale-6x, 30px)));
70
+ margin-bottom: var(--tct-input-margin-bottom, var(--t-input-margin-bottom, var(--app-scale-6x, 30px)));
71
+ font-size: var(--tct-input-font-size, var(--t-input-font-size, var(--app-font-size, inherit)));
72
72
  }
73
73
 
74
74
  :host([hidden]) {
@@ -80,51 +80,40 @@ button {
80
80
  position: relative;
81
81
  }
82
82
 
83
+ .field-container {
84
+ --comp-input-tween: var(--tct-input-tween, var(--t-input-tween, var(--tct-tween-2, var(--app-tween-2, 0.4s ease))));
85
+ }
86
+
83
87
  label {
84
88
  display: block;
85
- padding-left: var(--tct-input-label-padding-left, 0);
86
- padding-right: var(--tct-input-label-padding-right, 0);
87
- margin-top: var(--tct-input-label-margin-top, 0);
88
- margin-bottom: var(--tct-input-label-margin-bottom, var(--tct-scale-1, var(--app-scale-1, 5px)));
89
- color: var(--tct-input-label-font-color, inherit);
90
- font-size: var(--tct-input-label-font-size, inherit);
91
- font-weight: var(--tct-input-label-font-weight, 600);
92
- text-transform: var(--tct-input-label-text-transform, none);
93
- letter-spacing: var(--tct-input-label-letter-spacing, normal);
94
- transition: color var(--tct-input-tween, var(--tct-tween-2, var(--app-tween-2, 0.4s ease)));
89
+ padding-left: var(--tct-input-label-padding-left, var(--t-input-label-padding-left, 0));
90
+ padding-right: var(--tct-input-label-padding-right, var(--t-input-label-padding-right, 0));
91
+ margin-top: var(--tct-input-label-margin-top, var(--t-input-label-margin-top, 0));
92
+ margin-bottom: var(--tct-input-label-margin-bottom, var(--t-input-label-margin-bottom, var(--tct-scale-1, var(--app-scale-1, 5px))));
93
+ color: var(--tct-input-label-font-color, var(--t-input-label-font-color, inherit));
94
+ font-size: var(--tct-input-label-font-size, var(--t-input-label-font-size, inherit));
95
+ font-weight: var(--tct-input-label-font-weight, var(--t-input-label-font-weight, 600));
96
+ text-transform: var(--tct-input-label-text-transform, var(--t-input-label-text-transform, none));
97
+ letter-spacing: var(--tct-input-label-letter-spacing, var(--t-input-label-letter-spacing, normal));
98
+ transition: color var(--comp-input-tween);
95
99
  }
96
100
 
97
101
  .optional-tag {
98
- margin-left: var(--tct-input-label-optional-margin-left, var(--tct-scale-1, var(--app-scale-1, 5px)));
99
- color: var(--tct-input-label-optional-font-color, var(--tct-a11y-color, var(--t-a11y-gray-color, #767676)));
100
- font-size: var(--tct-input-label-optional-font-size, 12px);
101
- font-weight: var(--tct-input-label-optional-font-weight, 400);
102
+ margin-left: var(--tct-input-label-optional-margin-left, var(--t-input-label-optional-margin-left, var(--tct-scale-1, var(--app-scale-1, 5px))));
103
+ color: var(--tct-input-label-optional-font-color, var(--t-input-label-optional-font-color, var(--t-textA, var(--t-a11y-gray-color, rgba(77, 77, 77, 0.77)))));
104
+ font-size: var(--tct-input-label-optional-font-size, var(--t-input-label-optional-font-size, 12px));
105
+ font-weight: var(--tct-input-label-optional-font-weight, var(--t-input-label-optional-font-weight, 400));
102
106
  }
103
107
 
104
108
  .input-container {
105
109
  background-color: var(--tct-input-bg, var(--t-input-bg, var(--tct-gray-14, var(--t-gray-14, #f2f2f2))));
106
110
  display: flex;
107
111
  align-items: center;
108
- --comp-input-horizontal-gap: var(
109
- --tct-input-horizontal-gap,
110
- var(--t-input-horizontal-gap, 8px)
111
- );
112
- --comp-input-border-top-left-radius: var(
113
- --tct-input-border-top-left-radius,
114
- var(--tct-border-radius-1, var(--app-border-radius-1, 3px))
115
- );
116
- --comp-input-border-top-right-radius: var(
117
- --tct-input-border-top-right-radius,
118
- var(--tct-border-radius-1, var(--app-border-radius-1, 3px))
119
- );
120
- --comp-input-border-bottom-right-radius: var(
121
- --tct-input-border-bottom-right-radius,
122
- var(--tct-border-radius-1, var(--app-border-radius-1, 3px))
123
- );
124
- --comp-input-border-bottom-left-radius: var(
125
- --tct-input-border-bottom-left-radius,
126
- var(--tct-border-radius-1, var(--app-border-radius-1, 3px))
127
- );
112
+ --comp-input-horizontal-gap: var(--tct-input-horizontal-gap, var(--t-input-horizontal-gap, 8px));
113
+ --comp-input-border-top-left-radius: var(--tct-input-border-top-left-radius, var(--t-input-border-top-left-radius, var(--tct-border-radius-1, var(--app-border-radius-1, 3px))));
114
+ --comp-input-border-top-right-radius: var(--tct-input-border-top-right-radius, var(--t-input-border-top-right-radius, var(--tct-border-radius-1, var(--app-border-radius-1, 3px))));
115
+ --comp-input-border-bottom-right-radius: var(--tct-input-border-bottom-right-radius, var(--t-input-border-bottom-right-radius, var(--tct-border-radius-1, var(--app-border-radius-1, 3px))));
116
+ --comp-input-border-bottom-left-radius: var(--tct-input-border-bottom-left-radius, var(--t-input-border-bottom-left-radius, var(--tct-border-radius-1, var(--app-border-radius-1, 3px))));
128
117
  --comp-input-border-radius: var(--comp-input-border-top-left-radius)
129
118
  var(--comp-input-border-top-right-radius) var(--comp-input-border-bottom-right-radius)
130
119
  var(--comp-input-border-bottom-left-radius);
@@ -142,10 +131,14 @@ label {
142
131
  --comp-input-min-height: 44px;
143
132
  border-width: var(--comp-input-border-width);
144
133
  border-style: solid;
145
- border-color: var(--tct-input-border-color, var(--t-input-border, var(--tct-gray-11, var(--t-gray-11, #cccccc))));
134
+ border-color: var(--tct-input-border-color, var(--t-input-border-color, var(--tct-gray-11, var(--t-gray-11, #cccccc))));
146
135
  border-radius: var(--comp-input-border-radius);
147
- box-shadow: var(--tct-input-box-shadow, none);
148
- transition: border-width var(--tct-input-tween, var(--tct-tween-2, var(--app-tween-2, 0.4s ease))), border-color var(--tct-input-tween, var(--tct-tween-2, var(--app-tween-2, 0.4s ease))), box-shadow var(--tct-input-tween, var(--tct-tween-2, var(--app-tween-2, 0.4s ease)));
136
+ box-shadow: var(--tct-input-box-shadow, var(--t-input-box-shadow, none));
137
+ transition: border-width var(--comp-input-tween), border-color var(--comp-input-tween), box-shadow var(--comp-input-tween);
138
+ }
139
+ :host([disabled]) .input-container {
140
+ cursor: not-allowed;
141
+ opacity: var(--tct-input-disabled-opacity, var(--t-input-disabled-opacity, var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4))));
149
142
  }
150
143
 
151
144
  .input-field {
@@ -155,109 +148,93 @@ label {
155
148
  appearance: none;
156
149
  box-sizing: border-box;
157
150
  min-height: var(--comp-input-min-height);
158
- height: var(--tct-input-height, 44px);
151
+ height: var(--tct-input-height, var(--t-input-height, 44px));
159
152
  width: 100%;
160
- padding: 0 var(--tct-input-horizontal-padding, var(--tct-scale-2, var(--app-scale-2, 10px)));
153
+ padding: 0 var(--tct-input-horizontal-padding, var(--t-input-horizontal-padding, var(--tct-scale-2, var(--app-scale-2, 10px))));
161
154
  background-color: transparent;
162
155
  color: var(--tct-input-font-color, var(--t-input-font-color, var(--t-text, inherit)));
156
+ /* To remove up/down arrow in number field for webkit based browser */
157
+ /* For Firefox */
163
158
  }
164
-
165
- input {
166
- display: inline-block;
167
- }
168
-
169
159
  .input-field:focus {
170
160
  outline: none;
171
161
  box-shadow: none;
172
162
  }
173
-
174
- /* To remove up/down arrow in number field for webkit based browser */
175
- .input-field::-webkit-outer-spin-button,
176
- .input-field::-webkit-inner-spin-button {
163
+ .input-field::-webkit-outer-spin-button, .input-field::-webkit-inner-spin-button {
177
164
  -webkit-appearance: none;
178
165
  margin: 0;
179
166
  }
180
-
181
- /* For Firefox */
182
167
  .input-field[type=number] {
183
168
  -moz-appearance: textfield;
184
169
  }
170
+ .input-field[disabled] {
171
+ cursor: not-allowed;
172
+ }
173
+ .right-aligned .input-field {
174
+ text-align: right;
175
+ }
185
176
 
186
177
  .input-container:focus-within {
187
178
  border-width: var(--comp-input-focus-border-width, 1px);
188
- border-color: var(--tct-input-focus-border-color, var(--t-input-focus, var(--tct-gray-9, var(--t-gray-9, #999999))));
189
- box-shadow: var(--tct-global-focus, var(--const-global-focus, 0 0 0 2px #33b4ff)), var(--tct-input-focus-box-shadow, 0 0 transparent);
179
+ border-color: var(--tct-input-focus-border-color, var(--t-input-focus-border-color, var(--tct-gray-9, var(--t-gray-9, #999999))));
180
+ box-shadow: var(--tct-global-focus, var(--const-global-focus, 0 0 0 2px #33b4ff)), var(--tct-input-focus-box-shadow, var(--t-input-focus-box-shadow, 0 0 transparent));
190
181
  }
191
182
 
183
+ input {
184
+ display: inline-block;
185
+ }
192
186
  input::-ms-clear {
193
187
  display: none;
194
188
  }
195
-
196
- input[type=search]::-webkit-search-decoration,
197
- input[type=search]::-webkit-search-cancel-button,
198
- input[type=search]::-webkit-search-results-button,
199
- input[type=search]::-webkit-search-results-decoration {
189
+ input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-results-button, input[type=search]::-webkit-search-results-decoration {
200
190
  display: none;
201
191
  }
202
192
 
203
193
  input::placeholder,
204
194
  .placeholder-text {
205
- color: var(--tct-input-placeholder-font-color, var(--t-input-placeholder-font-color, var(--tct-gray-7, var(--t-gray-7, var(--tct-gray-d1, var(--app-gray-d1, #666666))))));
195
+ color: var(--tct-input-placeholder-font-color, var(--t-input-placeholder-font-color, var(--t-textA, var(--app-gray-d1, rgba(77, 77, 77, 0.77)))));
206
196
  }
207
197
 
208
198
  .pseudo-input {
209
199
  display: inline-flex;
210
200
  align-items: center;
211
201
  }
212
-
213
202
  .pseudo-input span {
214
203
  white-space: nowrap;
215
204
  overflow: hidden;
216
205
  text-overflow: ellipsis;
217
206
  }
218
207
 
219
- .input-icons-container-left:empty {
220
- display: none;
221
- }
222
-
223
- .input-icons-container-left {
208
+ .input-icons-container-left,
209
+ .input-icons-container-right {
224
210
  display: flex;
225
211
  flex-direction: row;
226
212
  align-items: center;
227
213
  gap: var(--comp-input-horizontal-gap);
228
- padding-left: var(--comp-input-horizontal-gap);
229
214
  }
230
-
215
+ .input-icons-container-left:empty,
231
216
  .input-icons-container-right:empty {
232
217
  display: none;
233
218
  }
234
219
 
220
+ .input-icons-container-left {
221
+ padding-left: var(--comp-input-horizontal-gap);
222
+ }
223
+
235
224
  .input-icons-container-right {
236
- display: flex;
237
- flex-direction: row;
238
- align-items: center;
239
- gap: var(--comp-input-horizontal-gap);
240
225
  padding-right: var(--comp-input-horizontal-gap);
241
226
  }
242
-
243
227
  .input-icons-container-right .btn-visibility-toggle {
244
228
  color: var(--tct-primary, var(--t-primary, #006eb2));
245
229
  font-size: 12px;
246
230
  }
247
231
 
248
232
  q2-icon {
249
- margin-top: calc(var(--tct-input-border-top-width, 1px) / 2);
250
- margin-bottom: calc(var(--tct-input-border-bottom-width, 1px) / 2);
233
+ margin-top: calc(var(--tct-input-border-top-width, var(--t-input-border-top-width, 1px)) / 2);
234
+ margin-bottom: calc(var(--tct-input-border-bottom-width, var(--t-input-border-bottom-width, 1px)) / 2);
251
235
  pointer-events: none;
252
- color: var(--tct-input-icon-stroke-primary, var(--t-gray-9, var(--tct-gray, var(--app-gray, #999999))));
253
- --tct-icon-stroke-primary: var(
254
- --tct-input-icon-stroke-primary,
255
- var(--tct-gray-9, var(--t-gray-9, var(--tct-gray, var(--app-gray, #999999))))
256
- );
257
- --t-icon-stroke-primary: var(
258
- --tct-input-icon-stroke-primary,
259
- var(--tct-gray-9, var(--t-gray-9, var(--tct-gray, var(--app-gray, #999999))))
260
- );
236
+ color: var(--tct-input-icon-stroke-primary, var(--t-input-icon-stroke-primary, var(--t-textA, var(--app-gray, rgba(77, 77, 77, 0.77)))));
237
+ --tct-icon-stroke-primary: var(--tct-input-icon-stroke-primary, var(--t-input-icon-stroke-primary, var(--t-textA, var(--app-gray, rgba(77, 77, 77, 0.77)))));
261
238
  }
262
239
 
263
240
  .icon-left-muted {
@@ -272,30 +249,42 @@ q2-icon {
272
249
  display: inline-flex;
273
250
  align-items: center;
274
251
  justify-content: center;
275
- min-height: calc( var(--comp-input-min-height) - var(--tct-input-focus-border-top-width, 1px) - var(--tct-input-focus-border-bottom-width, 1px) );
276
- height: calc( var(--tct-input-height, 44px) - var(--tct-input-focus-border-top-width, 1px) - var(--tct-input-focus-border-bottom-width, 1px) );
277
- font-size: var(--tct-input-prefix-font-size, inherit);
278
- color: var(--tct-input-prefix-font-color, inherit);
279
- background-color: var(--tct-input-prefix-bg, var(--tct-input-bg, var(--t-input-bg, var(--tct-gray-14, var(--t-gray-14, #f2f2f2)))));
280
- transition: color var(--tct-input-tween, var(--tct-tween-2, var(--app-tween-2, 0.4s ease))), background-color var(--tct-input-tween, var(--tct-tween-2, var(--app-tween-2, 0.4s ease)));
252
+ min-height: calc(
253
+ var(--comp-input-min-height) - var(--tct-input-focus-border-top-width, var(--t-input-focus-border-top-width, 1px)) -
254
+ var(--tct-input-focus-border-bottom-width, var(--t-input-focus-border-bottom-width, 1px))
255
+ );
256
+ height: calc(
257
+ var(--tct-input-height, var(--t-input-height, 44px)) - var(--tct-input-focus-border-top-width, var(--t-input-focus-border-top-width, 1px)) - var(--tct-input-focus-border-bottom-width, var(--t-input-focus-border-bottom-width, 1px))
258
+ );
259
+ font-size: var(--tct-input-prefix-font-size, var(--t-input-prefix-font-size, inherit));
260
+ color: var(--tct-input-prefix-font-color, var(--t-input-prefix-font-color, inherit));
261
+ background-color: var(--tct-input-prefix-bg, var(--t-input-prefix-bg, var(--tct-input-bg, var(--t-input-bg, var(--tct-gray-14, var(--t-gray-14, #f2f2f2))))));
262
+ transition: color var(--comp-input-tween), background-color var(--comp-input-tween);
281
263
  }
282
264
 
283
265
  .input-prefix {
284
- border-top-left-radius: calc( var(--comp-input-border-top-left-radius) - var(--tct-input-border-top-width, 1px) - var(--tct-input-border-left-width, 1px) );
285
- border-bottom-left-radius: calc( var(--comp-input-border-bottom-left-radius) - var(--tct-input-border-bottom-width, 1px) - var(--tct-input-border-left-width, 1px) );
266
+ border-top-left-radius: calc(
267
+ var(--comp-input-border-top-left-radius) - var(--tct-input-border-top-width, var(--t-input-border-top-width, 1px)) - var(--tct-input-border-left-width, var(--t-input-border-left-width, 1px))
268
+ );
269
+ border-bottom-left-radius: calc(
270
+ var(--comp-input-border-bottom-left-radius) - var(--tct-input-border-bottom-width, var(--t-input-border-bottom-width, 1px)) - var(--tct-input-border-left-width, var(--t-input-border-left-width, 1px))
271
+ );
286
272
  pointer-events: none;
287
273
  /* used to allow iOS voiceover to display keyboard in input TCT-1194 */
288
274
  }
289
275
 
290
276
  .input-suffix {
291
- border-top-right-radius: calc( var(--comp-input-border-top-right-radius) - var(--tct-input-border-top-width, 1px) - var(--tct-input-border-right-width, 1px) );
292
- border-bottom-right-radius: calc( var(--comp-input-border-bottom-right-radius) - var(--tct-input-border-bottom-width, 1px) - var(--tct-input-border-right-width, 1px) );
277
+ border-top-right-radius: calc(
278
+ var(--comp-input-border-top-right-radius) - var(--tct-input-border-top-width, var(--t-input-border-top-width, 1px)) - var(--tct-input-border-right-width, var(--t-input-border-right-width, 1px))
279
+ );
280
+ border-bottom-right-radius: calc(
281
+ var(--comp-input-border-bottom-right-radius) - var(--tct-input-border-bottom-width, var(--t-input-border-bottom-width, 1px)) - var(--tct-input-border-right-width, var(--t-input-border-right-width, 1px))
282
+ );
293
283
  }
294
284
 
295
285
  .icon-error {
296
286
  color: var(--tct-stoplight-error, var(--const-stoplight-alert, #c30000));
297
287
  --tct-icon-stroke-primary: var(--tct-stoplight-error, var(--const-stoplight-alert, #c30000));
298
- --t-icon-stroke-primary: var(--tct-stoplight-error, var(--const-stoplight-alert, #c30000));
299
288
  }
300
289
 
301
290
  .pw-show {
@@ -304,8 +293,8 @@ q2-icon {
304
293
  }
305
294
 
306
295
  .btn-clear {
307
- margin-top: calc(var(--tct-input-border-top-width, 1px) / 2);
308
- margin-bottom: calc(var(--tct-input-border-bottom-width, 1px) / 2);
296
+ margin-top: calc(var(--tct-input-border-top-width, var(--t-input-border-top-width, 1px)) / 2);
297
+ margin-bottom: calc(var(--tct-input-border-bottom-width, var(--t-input-border-bottom-width, 1px)) / 2);
309
298
  height: 22px;
310
299
  --tct-btn-icon-width: 17px;
311
300
  --tct-btn-icon-height: 22px;
@@ -315,37 +304,24 @@ q2-icon {
315
304
  .messages-container {
316
305
  height: 0px;
317
306
  overflow: hidden;
318
- background-color: var(--tct-message-bg, var(--tct-gray-14, var(--t-gray-14, var(--tct-gray-l3, var(--app-gray-l3, #f2f2f2)))));
319
- box-shadow: var(--tct-input-message-box-shadow, var(--tct-box-shadow-1, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3))));
320
- transition: height var(--tct-input-messages-tween, var(--tct-tween-1, var(--app-tween-1, 0.2s ease)));
307
+ background-color: var(--tct-message-bg, var(--t-message-bg, var(--tct-gray-14, var(--t-gray-14, var(--tct-gray-l3, var(--app-gray-l3, #f2f2f2))))));
308
+ box-shadow: var(--tct-input-message-box-shadow, var(--t-input-message-box-shadow, var(--tct-box-shadow-1, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3)))));
309
+ transition: height var(--tct-input-messages-tween, var(--t-input-messages-tween, var(--tct-tween-1, var(--app-tween-1, 0.2s ease))));
321
310
  margin-top: 2px;
322
311
  z-index: 1;
323
312
  position: absolute;
324
313
  width: 100%;
325
- color: var(--tct-input-messages-font-color, inherit);
326
- }
327
-
328
- :host([disabled]) .input-container {
329
- cursor: not-allowed;
330
- opacity: var(--tct-input-disabled-opacity, var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4)));
331
- }
332
-
333
- .input-field[disabled] {
334
- cursor: not-allowed;
335
- }
336
-
337
- .right-aligned .input-field {
338
- text-align: right;
314
+ color: var(--tct-input-messages-font-color, var(--t-input-messages-font-color, inherit));
339
315
  }
340
316
 
341
317
  .has-error label {
342
- color: var(--tct-input-error-label-font-color, var(--tct-input-label-font-color, inherit));
318
+ color: var(--tct-input-error-label-font-color, var(--t-input-error-label-font-color, var(--tct-input-label-font-color, var(--t-input-label-font-color, inherit))));
343
319
  }
344
320
 
345
321
  .has-error:not(.has-focus) .input-prefix,
346
322
  .has-error:not(.has-focus) .input-suffix {
347
- color: var(--tct-input-error-prefix-font-color, inherit);
348
- background-color: var(--tct-input-error-prefix-bg, var(--tct-input-bg, var(--t-input-bg, var(--tct-gray-14, var(--app-var(--tct-gray-l3, var(--app-gray-l3, #f2f2f2)))))));
323
+ color: var(--tct-input-error-prefix-font-color, var(--t-input-error-prefix-font-color, inherit));
324
+ background-color: var(--tct-input-error-prefix-bg, var(--t-input-error-prefix-bg, var(--tct-input-bg, var(--t-input-bg, var(--tct-gray-14, var(--t-gray-14, var(--tct-gray-l3, var(--app-gray-l3, #f2f2f2))))))));
349
325
  }
350
326
 
351
327
  .has-error .input-container:not(:focus-within) {
@@ -359,5 +335,5 @@ q2-icon {
359
335
 
360
336
  .vertical-separator {
361
337
  height: calc(var(--comp-input-min-height) - 2px);
362
- border-right: 1px solid var(--tct-input-prefix-border-color, var(--tct-input-border-color, var(--t-input-border, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc)))))));
338
+ border-right: 1px solid var(--tct-input-prefix-border-color, var(--t-input-prefix-border-color, var(--tct-input-border-color, var(--t-input-border-color, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc))))))));
363
339
  }
@@ -125,7 +125,7 @@ button {
125
125
  width: 100%;
126
126
  height: 100%;
127
127
  border-radius: 100%;
128
- border: calc(1em / 12) solid transparent;
128
+ border: 0.0833333333em solid transparent;
129
129
  }
130
130
 
131
131
  .half-circle-spinner .circle.circle-1 {
@@ -46,6 +46,7 @@ export class Q2Radio {
46
46
  h("slot", null))))));
47
47
  }
48
48
  static get is() { return "q2-radio"; }
49
+ static get encapsulation() { return "shadow"; }
49
50
  static get originalStyleUrls() { return {
50
51
  "$": ["styles.scss"]
51
52
  }; }
@@ -64,15 +64,15 @@ button {
64
64
  visibility: hidden;
65
65
  }
66
66
 
67
- q2-radio {
67
+ :host {
68
68
  margin-top: var(--tct-radio-margin-vertical, var(--tct-scale-2, 10px));
69
69
  margin-right: var(--tct-radio-margin-horizontal, var(--tct-scale-3, 15px));
70
70
  display: block;
71
71
  }
72
- q2-radio .radio-container {
72
+ :host .radio-container {
73
73
  margin-bottom: var(--tct-radio-margin-vertical, var(--tct-scale-2, 10px));
74
74
  }
75
- q2-radio .radio-container label[for] {
75
+ :host .radio-container label[for] {
76
76
  font-weight: var(--tct-radio-font-weight, var(--tct-checkbox-font-weight, 400));
77
77
  align-items: center;
78
78
  cursor: pointer;
@@ -81,39 +81,39 @@ q2-radio .radio-container label[for] {
81
81
  grid-template-columns: 18px 1fr;
82
82
  gap: var(--tct-scale-1, var(--app-scale-1, 5px));
83
83
  }
84
- q2-radio .radio-container svg {
84
+ :host .radio-container svg {
85
85
  border-radius: 50%;
86
86
  transition: box-shadow var(--tct-tween-1, var(--app-tween-1, 0.2s ease));
87
87
  outline: 0;
88
88
  width: 100%;
89
89
  }
90
- q2-radio .radio-container circle:nth-child(1) {
90
+ :host .radio-container circle:nth-child(1) {
91
91
  stroke-width: 2;
92
92
  stroke: var(--tct-radio-stroke-color, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc)))));
93
93
  }
94
- q2-radio .radio-container input:focus + label svg {
94
+ :host .radio-container input:focus + label svg {
95
95
  box-shadow: var(--tct-global-focus, var(--const-global-focus, 0 0 0 2px #33b4ff));
96
96
  }
97
- q2-radio .radio-container input:focus + label circle:nth-child(1) {
97
+ :host .radio-container input:focus + label circle:nth-child(1) {
98
98
  stroke: var(--tct-radio-focus-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)));
99
99
  }
100
- q2-radio .radio-container input:checked + label circle:nth-child(1) {
100
+ :host .radio-container input:checked + label circle:nth-child(1) {
101
101
  background-color: var(--tct-radio-checked-bg, transparent);
102
102
  stroke: var(--tct-radio-checked-stroke-color, var(--tct-radio-stroke-color, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc))))));
103
103
  }
104
- q2-radio .radio-container input:checked + label .label-content {
104
+ :host .radio-container input:checked + label .label-content {
105
105
  font-weight: var(--tct-checkbox-selected-font-weight, 600);
106
106
  letter-spacing: var(--tct-checkbox-selected-letter-spacing, 0.25);
107
107
  }
108
- q2-radio .radio-container input:checked + label circle:nth-child(2) {
108
+ :host .radio-container input:checked + label circle:nth-child(2) {
109
109
  fill: var(--tct-radio-checked-fill, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)));
110
110
  }
111
- q2-radio .radio-tile {
111
+ :host .radio-tile {
112
112
  flex-basis: 100px;
113
113
  flex-grow: 0;
114
114
  flex-wrap: wrap;
115
115
  }
116
- q2-radio .radio-tile label[for] {
116
+ :host .radio-tile label[for] {
117
117
  align-items: center;
118
118
  border-radius: 3px;
119
119
  border: 2px solid var(--tct-radio-stroke-color, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc)))));
@@ -125,15 +125,15 @@ q2-radio .radio-tile label[for] {
125
125
  transition: border-color var(--tct-tween-1, var(--app-tween-1, 0.2s ease));
126
126
  white-space: nowrap;
127
127
  }
128
- q2-radio .radio-tile input:focus + label {
128
+ :host .radio-tile input:focus + label {
129
129
  border-color: #0079c1;
130
130
  box-shadow: var(--tct-global-focus, var(--const-global-focus, 0 0 0 2px #33b4ff));
131
131
  }
132
- q2-radio .radio-tile input:checked + label {
132
+ :host .radio-tile input:checked + label {
133
133
  border-color: var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e));
134
134
  box-shadow: inset 0 0 0 2px #ffffff;
135
135
  }
136
- q2-radio .radio-tile input:checked + label:after {
136
+ :host .radio-tile input:checked + label:after {
137
137
  border-bottom-width: 3px;
138
138
  border-bottom: 5px solid #0079c1;
139
139
  border-left-width: 5px;
@@ -148,7 +148,7 @@ q2-radio .radio-tile input:checked + label:after {
148
148
  position: absolute;
149
149
  width: 0;
150
150
  }
151
- q2-radio input:disabled + label {
151
+ :host input:disabled + label {
152
152
  cursor: not-allowed;
153
153
  opacity: var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4));
154
154
  }
@@ -63,6 +63,25 @@ export class Q2RadioGroup {
63
63
  this.hostElement.querySelector('q2-radio');
64
64
  radio === null || radio === void 0 ? void 0 : radio.dispatchEvent(new FocusEvent('focus'));
65
65
  }
66
+ keydownHandler(event) {
67
+ const currentValue = event.target.getAttribute('value') || this.value;
68
+ let index = this.radioElements.findIndex(el => el === event.target || el.getAttribute('value') === currentValue);
69
+ let sign = 0;
70
+ if (['ArrowLeft', 'Left', 'ArrowUp', 'Up'].includes(event.key)) {
71
+ sign = -1;
72
+ }
73
+ else if (['ArrowRight', 'Right', 'ArrowDown', 'Down'].includes(event.key)) {
74
+ sign = 1;
75
+ }
76
+ if (index === -1 || sign === 0) {
77
+ return;
78
+ }
79
+ index += sign;
80
+ index = sign < 0 ? Math.max(0, index) : Math.min(this.radioElements.length - 1, index);
81
+ event.preventDefault();
82
+ this.value = this.radioElements[index].value;
83
+ this.radioElements[index].dispatchEvent(new FocusEvent('focus'));
84
+ }
66
85
  render() {
67
86
  return (h("div", null,
68
87
  this.label || this.optional ? (h("div", { class: "group-legend" },
@@ -280,5 +299,11 @@ export class Q2RadioGroup {
280
299
  "target": undefined,
281
300
  "capture": false,
282
301
  "passive": false
302
+ }, {
303
+ "name": "keydown",
304
+ "method": "keydownHandler",
305
+ "target": undefined,
306
+ "capture": false,
307
+ "passive": false
283
308
  }]; }
284
309
  }
@@ -73,7 +73,6 @@ fieldset {
73
73
  margin: 0;
74
74
  border: 0;
75
75
  }
76
-
77
76
  fieldset.has-error {
78
77
  border-color: var(--tct-input-error-border-color, var(--const-stoplight-alert, #c30000));
79
78
  border-width: 1px;
@@ -81,7 +80,6 @@ fieldset.has-error {
81
80
  border-radius: var(--tct-border-radius-1, var(--app-border-radius-1, 2px));
82
81
  position: relative;
83
82
  }
84
-
85
83
  fieldset.has-error .error-icon-container {
86
84
  top: 8px;
87
85
  right: 8px;
@@ -90,7 +88,6 @@ fieldset.has-error .error-icon-container {
90
88
  text-align: right;
91
89
  background: linear-gradient(to right, transparent, white);
92
90
  }
93
-
94
91
  fieldset.has-error legend + div.error-icon-container.no-label {
95
92
  top: 28px;
96
93
  }
@@ -110,10 +107,10 @@ legend.sr-only {
110
107
  }
111
108
 
112
109
  .optional-tag {
113
- margin-left: var(--tct-input-label-optional-margin-left, var(--tct-scale-1, var(--app-scale-1, 5px)));
114
- color: var(--tct-input-label-optional-font-color, var(--tct-a11y-color, var(--t-a11y-gray-color, #767676)));
115
- font-size: var(--tct-input-label-optional-font-size, 12px);
116
- font-weight: var(--tct-input-label-optional-font-weight, 400);
110
+ margin-left: var(--tct-input-label-optional-margin-left, var(--t-input-label-optional-margin-left, var(--tct-scale-1, var(--app-scale-1, 5px))));
111
+ color: var(--tct-input-label-optional-font-color, var(--t-input-label-optional-font-color, var(--t-textA, var(--t-a11y-gray-color, rgba(77, 77, 77, 0.77)))));
112
+ font-size: var(--tct-input-label-optional-font-size, var(--t-input-label-optional-font-size, 12px));
113
+ font-weight: var(--tct-input-label-optional-font-weight, var(--t-input-label-optional-font-weight, 400));
117
114
  }
118
115
 
119
116
  .flexed {
@@ -123,11 +120,9 @@ legend.sr-only {
123
120
  align-items: center;
124
121
  justify-content: center;
125
122
  }
126
-
127
123
  .flexed.left {
128
124
  justify-content: left;
129
125
  }
130
-
131
126
  .flexed.right {
132
127
  justify-content: right;
133
128
  }
@@ -42,9 +42,9 @@ export class Q2Select {
42
42
  this.searchAndFocus = keyValue => {
43
43
  // pseudo search in non-searchable select
44
44
  const reorder = () => {
45
- const pivotIndex = (this.activeIndex || 0) + 1;
45
+ this.pivotIndex = this.pivotIndex === undefined ? 0 : (this.activeIndex || 0) + 1;
46
46
  const list = this.optionElements.map((element, index) => ({ element, index }));
47
- return [...list.slice(pivotIndex), ...list.slice(0, pivotIndex)];
47
+ return [...list.slice(this.pivotIndex), ...list.slice(0, this.pivotIndex)];
48
48
  };
49
49
  const buildQueue = () => {
50
50
  const now = new Date();
@@ -60,6 +60,7 @@ export class Q2Select {
60
60
  const searchIndex = list => {
61
61
  return list.find(v => {
62
62
  return (!v.element.disabled &&
63
+ v.element.display &&
63
64
  v.element.display
64
65
  .replace(/\s/g, '')
65
66
  .match(new RegExp(`^${this.keyStore.queue.join('')}`, 'i')));
@@ -180,6 +181,7 @@ export class Q2Select {
180
181
  }
181
182
  };
182
183
  this.inputKeydownHandler = (event) => {
184
+ event.stopPropagation();
183
185
  const { key } = event;
184
186
  const { optionElements, dropdownOpen, searchable } = this;
185
187
  switch (key) {
@@ -342,7 +344,7 @@ export class Q2Select {
342
344
  get minPopHeight() {
343
345
  const { minRows } = this;
344
346
  const firstOption = this.hostElement.querySelector('q2-option:not([hidden])');
345
- const minHeight = window.getComputedStyle(firstOption).minHeight;
347
+ const minHeight = firstOption ? window.getComputedStyle(firstOption).minHeight : '44px';
346
348
  return minRows * parseInt(minHeight);
347
349
  }
348
350
  get selectedDisplay() {
@@ -136,9 +136,9 @@ button {
136
136
  .custom-display-content {
137
137
  position: absolute;
138
138
  bottom: 0;
139
- left: calc(var-list(--tct-scale-2, --app-scale-2, 10px) + 1px);
139
+ left: calc(var(--tct-scale-2, var(--app-scale-2, 10px)) + 1px);
140
140
  height: 44px;
141
- width: calc(100% - 34px - var-list(--tct-scale-3, --app-scale-3, 15px));
141
+ width: calc(100% - 34px - var(--tct-scale-3, var(--app-scale-3, 15px)));
142
142
  overflow: hidden;
143
143
  cursor: pointer;
144
144
  transition: left var(--tct-tween-2, var(--app-tween-1, 0.2s ease));
@@ -151,11 +151,11 @@ button {
151
151
 
152
152
  .is-searchable.is-focused .custom-display-content,
153
153
  .is-searchable .custom-display-content:active {
154
- left: calc(var-list(--tct-scale-3, --app-scale-3, 15px) + 1px);
154
+ left: calc(var(--tct-scale-3, var(--app-scale-3, 15px)) + 1px);
155
155
  }
156
156
 
157
157
  .has-error .custom-display-content {
158
- width: calc(100% - 68px - var-list(--tct-scale-3, --app-scale-3, 15px));
158
+ width: calc(100% - 68px - var(--tct-scale-3, var(--app-scale-3, 15px)));
159
159
  }
160
160
 
161
161
  .dropdown-open .q2-select-dropdown {
@@ -65,6 +65,8 @@ export class Q2Stepper {
65
65
  this.stepCount = allPanes.length;
66
66
  };
67
67
  this.checkScrollState = () => {
68
+ if (!this.listElement)
69
+ return;
68
70
  const { scrollLeft, scrollWidth, clientWidth } = this.listElement;
69
71
  this.scrollEnabled = scrollWidth > clientWidth;
70
72
  this.showScrollLeft = !!scrollLeft;
@@ -171,9 +171,9 @@ li {
171
171
  }
172
172
 
173
173
  hr {
174
- width: calc( var(--comp-step-width) - var(--comp-step-gap) - var(--comp-bullet-gap) - var(--comp-bullet-size) );
175
- top: calc(calc(var(--comp-bullet-size) / 2) + var(--comp-bullet-gap));
176
- left: calc(calc(var(--comp-step-width) * -0.5) + var(--comp-step-gap) + var(--comp-bullet-gap));
174
+ width: calc(var(--comp-step-width) - var(--comp-step-gap) - var(--comp-bullet-gap) - var(--comp-bullet-size));
175
+ top: calc(var(--comp-bullet-size) / 2 + var(--comp-bullet-gap));
176
+ left: calc(var(--comp-step-width) * -0.5 + var(--comp-step-gap) + var(--comp-bullet-gap));
177
177
  border: 0;
178
178
  border-top: 1px solid var(--comp-bullet-bg);
179
179
  height: 0;