q2-tecton-elements 1.71.4 → 1.73.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 (415) hide show
  1. package/dist/bundle-report.json +32564 -26687
  2. package/dist/cjs/{charting-ClN1ldqv.js → charting-CdNTrVBe.js} +80 -0
  3. package/dist/cjs/click-elsewhere_3.cjs.entry.js +85 -20
  4. package/dist/cjs/{dataSample-BYR-wrOn.js → dataSample-B4blhlH4.js} +1 -1
  5. package/dist/cjs/date-picker-helpers-UYvPn98R.js +257 -0
  6. package/dist/cjs/{index-SpDCZABA.js → index-BqyWHpNu.js} +2 -2
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/{q2-action-group_2.cjs.entry.js → q2-action-group.cjs.entry.js} +1 -89
  9. package/dist/cjs/q2-action-sheet.cjs.entry.js +98 -18
  10. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-badge_2.cjs.entry.js +113 -12
  12. package/dist/cjs/q2-btn_2.cjs.entry.js +2 -2
  13. package/dist/cjs/q2-calendar.cjs.entry.js +14 -7
  14. package/dist/cjs/q2-card-image.cjs.entry.js +4 -4
  15. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  17. package/dist/cjs/q2-carousel.cjs.entry.js +20 -6
  18. package/dist/cjs/q2-chart-area.cjs.entry.js +38 -7
  19. package/dist/cjs/q2-chart-bar.cjs.entry.js +39 -8
  20. package/dist/cjs/q2-chart-donut.cjs.entry.js +31 -13
  21. package/dist/cjs/q2-checkbox-group.cjs.entry.js +3 -3
  22. package/dist/cjs/q2-checkbox_2.cjs.entry.js +9 -6
  23. package/dist/cjs/q2-context.cjs.entry.js +6 -5
  24. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-data-table.cjs.entry.js +7 -7
  26. package/dist/cjs/q2-date-calendar.cjs.entry.js +452 -0
  27. package/dist/cjs/q2-date-picker_2.cjs.entry.js +968 -0
  28. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  29. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-dropdown.cjs.entry.js +4 -4
  31. package/dist/cjs/q2-editable-field.cjs.entry.js +51 -37
  32. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-file-picker.cjs.entry.js +60 -4
  34. package/dist/cjs/q2-form.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-item.cjs.entry.js +21 -3
  38. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-link_2.cjs.entry.js +2 -2
  40. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  41. package/dist/cjs/q2-message.cjs.entry.js +3 -3
  42. package/dist/cjs/q2-meter.cjs.entry.js +2 -2
  43. package/dist/cjs/q2-modal.cjs.entry.js +59 -17
  44. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  45. package/dist/cjs/q2-mutation-observer.cjs.entry.js +1 -1
  46. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  47. package/dist/cjs/q2-otp.cjs.entry.js +5 -5
  48. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  49. package/dist/cjs/q2-pill.cjs.entry.js +8 -5
  50. package/dist/cjs/q2-radio-group.cjs.entry.js +22 -4
  51. package/dist/cjs/q2-radio.cjs.entry.js +3 -3
  52. package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
  53. package/dist/cjs/q2-resize-observer.cjs.entry.js +92 -0
  54. package/dist/cjs/q2-search.cjs.entry.js +4 -4
  55. package/dist/cjs/q2-section.cjs.entry.js +7 -7
  56. package/dist/cjs/q2-select.cjs.entry.js +41 -21
  57. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  58. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  59. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  60. package/dist/cjs/q2-surface.cjs.entry.js +1 -1
  61. package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
  62. package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
  63. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  64. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  65. package/dist/cjs/q2-toast.cjs.entry.js +1 -1
  66. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  67. package/dist/cjs/{sectorHelper-9TWL-3dw.js → sectorHelper-CxhDl5ql.js} +1 -1
  68. package/dist/cjs/tecton-tab-pane.cjs.entry.js +5 -3
  69. package/dist/collection/collection-manifest.json +2 -0
  70. package/dist/collection/components/q2-action-sheet/q2-action-sheet.css +52 -0
  71. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +98 -18
  72. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.vr.js +124 -0
  73. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  74. package/dist/collection/components/q2-btn/q2-btn.css +152 -146
  75. package/dist/collection/components/q2-btn/q2-btn.js +10 -4
  76. package/dist/collection/components/q2-btn/test/q2-btn-test.vr.js +229 -20
  77. package/dist/collection/components/q2-calendar/q2-calendar.css +3 -0
  78. package/dist/collection/components/q2-calendar/q2-calendar.js +20 -7
  79. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  80. package/dist/collection/components/q2-calendar/test/q2-calendar-test.vr.js +26 -15
  81. package/dist/collection/components/q2-card/test/q2-card-test.vr.js +4 -0
  82. package/dist/collection/components/q2-card-image/q2-card-image.css +89 -134
  83. package/dist/collection/components/q2-card-image/q2-card-image.js +4 -4
  84. package/dist/collection/components/q2-card-image/test/q2-card-image-test.vr.js +4 -0
  85. package/dist/collection/components/q2-carousel/q2-carousel.js +19 -5
  86. package/dist/collection/components/q2-carousel/test/q2-carousel-test.vr.js +45 -0
  87. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  88. package/dist/collection/components/q2-chart-area/q2-chart-area.css +11 -0
  89. package/dist/collection/components/q2-chart-area/q2-chart-area.js +53 -7
  90. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.vr.js +14 -0
  91. package/dist/collection/components/q2-chart-bar/q2-chart-bar.css +11 -0
  92. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +50 -4
  93. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.vr.js +14 -0
  94. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +30 -10
  95. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.vr.js +25 -0
  96. package/dist/collection/components/q2-checkbox/q2-checkbox.css +2 -2
  97. package/dist/collection/components/q2-checkbox/q2-checkbox.js +6 -3
  98. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +2 -0
  99. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +6 -3
  100. package/dist/collection/components/q2-context/q2-context.css +5 -0
  101. package/dist/collection/components/q2-context/q2-context.js +4 -3
  102. package/dist/collection/components/q2-context/test/q2-context-test.vr.js +14 -4
  103. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  104. package/dist/collection/components/q2-data-table/q2-data-table.css +6 -0
  105. package/dist/collection/components/q2-data-table/q2-data-table.js +5 -5
  106. package/dist/collection/components/q2-data-table/test/q2-data-table-test.vr.js +52 -0
  107. package/dist/collection/components/q2-date-calendar/q2-date-calendar.css +393 -0
  108. package/dist/collection/components/q2-date-calendar/q2-date-calendar.js +1022 -0
  109. package/dist/collection/components/q2-date-calendar/test/q2-date-calendar-test.vr.js +111 -0
  110. package/dist/collection/components/q2-date-picker/q2-date-picker.css +138 -0
  111. package/dist/collection/components/q2-date-picker/q2-date-picker.js +2010 -0
  112. package/dist/collection/components/q2-date-picker/test/q2-date-picker-test.vr.js +179 -0
  113. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  114. package/dist/collection/components/q2-dropdown/q2-dropdown.css +2 -0
  115. package/dist/collection/components/q2-dropdown/q2-dropdown.js +5 -5
  116. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.vr.js +30 -0
  117. package/dist/collection/components/q2-editable-field/q2-editable-field.css +2 -0
  118. package/dist/collection/components/q2-editable-field/q2-editable-field.js +59 -45
  119. package/dist/collection/components/q2-example/q2-example.js +1 -1
  120. package/dist/collection/components/q2-file-picker/q2-file-picker.css +27 -0
  121. package/dist/collection/components/q2-file-picker/q2-file-picker.js +98 -2
  122. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.vr.js +22 -0
  123. package/dist/collection/components/q2-form/q2-form.js +1 -1
  124. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  125. package/dist/collection/components/q2-input/q2-input.css +67 -1
  126. package/dist/collection/components/q2-input/q2-input.js +160 -15
  127. package/dist/collection/components/q2-input/test/q2-input-test.vr.js +35 -0
  128. package/dist/collection/components/q2-item/q2-item.css +3 -1
  129. package/dist/collection/components/q2-item/q2-item.js +19 -1
  130. package/dist/collection/components/q2-item/test/q2-item-test.vr.js +8 -2
  131. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  132. package/dist/collection/components/q2-list/q2-list.js +1 -1
  133. package/dist/collection/components/q2-message/q2-message.css +5 -5
  134. package/dist/collection/components/q2-message/q2-message.js +1 -1
  135. package/dist/collection/components/q2-meter/q2-meter.js +1 -1
  136. package/dist/collection/components/q2-modal/q2-modal.css +40 -3
  137. package/dist/collection/components/q2-modal/q2-modal.js +100 -16
  138. package/dist/collection/components/q2-modal/test/q2-modal-test.vr.js +32 -7
  139. package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js +1 -1
  140. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  141. package/dist/collection/components/q2-option-list/q2-option-list.js +33 -4
  142. package/dist/collection/components/q2-otp/q2-otp.js +4 -4
  143. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  144. package/dist/collection/components/q2-pill/q2-pill.css +2 -2
  145. package/dist/collection/components/q2-pill/q2-pill.js +6 -3
  146. package/dist/collection/components/q2-popover/q2-popover.css +4 -2
  147. package/dist/collection/components/q2-popover/q2-popover.js +50 -14
  148. package/dist/collection/components/q2-radio/q2-radio.css +158 -104
  149. package/dist/collection/components/q2-radio/q2-radio.js +5 -2
  150. package/dist/collection/components/q2-radio/test/q2-radio-test.vr.js +25 -2
  151. package/dist/collection/components/q2-radio-group/q2-radio-group.css +39 -2
  152. package/dist/collection/components/q2-radio-group/q2-radio-group.js +73 -4
  153. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.vr.js +43 -1
  154. package/dist/collection/components/q2-relative-time/q2-relative-time.js +2 -2
  155. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  156. package/dist/collection/components/q2-search/q2-search.css +2 -0
  157. package/dist/collection/components/q2-search/q2-search.js +6 -3
  158. package/dist/collection/components/q2-section/q2-section.css +2 -0
  159. package/dist/collection/components/q2-section/q2-section.js +6 -6
  160. package/dist/collection/components/q2-select/q2-select.css +3 -0
  161. package/dist/collection/components/q2-select/q2-select.js +48 -22
  162. package/dist/collection/components/q2-select/test/q2-select-test.vr.js +13 -0
  163. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  164. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
  165. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  166. package/dist/collection/components/q2-surface/q2-surface.js +1 -1
  167. package/dist/collection/components/q2-surface/test/q2-surface-test.vr.js +2 -2
  168. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  169. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  170. package/dist/collection/components/q2-tag/q2-tag.js +6 -3
  171. package/dist/collection/components/q2-textarea/q2-textarea.js +6 -3
  172. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.vr.js +1 -1
  173. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +5 -3
  174. package/dist/collection/utils/chart-keyboard.js +76 -0
  175. package/dist/collection/utils/date-picker/date-picker-helpers.js +239 -0
  176. package/dist/collection/utils/date-picker/date-picker-types.js +1 -0
  177. package/dist/collection/utils/index.js +2 -2
  178. package/dist/collection/utils/test/vr-helpers.js +16 -2
  179. package/dist/components/charting.js +1603 -1532
  180. package/dist/components/dataSample.js +7 -7
  181. package/dist/components/index.js +57 -53
  182. package/dist/components/index2.js +3 -3
  183. package/dist/components/q2-action-sheet.js +224 -103
  184. package/dist/components/q2-avatar2.js +8 -8
  185. package/dist/components/q2-btn2.js +2 -2
  186. package/dist/components/q2-calendar.js +15 -10
  187. package/dist/components/q2-card-image.js +24 -24
  188. package/dist/components/q2-carousel-pane2.js +3 -3
  189. package/dist/components/q2-carousel.js +37 -24
  190. package/dist/components/q2-chart-area.js +415 -369
  191. package/dist/components/q2-chart-bar.js +193 -148
  192. package/dist/components/q2-chart-donut.js +185 -158
  193. package/dist/components/q2-checkbox-group.js +12 -12
  194. package/dist/components/q2-checkbox2.js +12 -12
  195. package/dist/components/q2-context.js +30 -29
  196. package/dist/components/q2-currency.js +9 -9
  197. package/dist/components/q2-data-table.js +111 -111
  198. package/dist/components/q2-date-calendar.d.ts +11 -0
  199. package/dist/components/q2-date-calendar.js +5 -0
  200. package/dist/components/q2-date-calendar2.js +678 -0
  201. package/dist/components/q2-date-picker.d.ts +11 -0
  202. package/dist/components/q2-date-picker.js +5 -0
  203. package/dist/components/q2-date-picker2.js +875 -0
  204. package/dist/components/q2-detail.js +3 -3
  205. package/dist/components/q2-dropdown.js +13 -13
  206. package/dist/components/q2-editable-field.js +45 -36
  207. package/dist/components/q2-example.js +11 -11
  208. package/dist/components/q2-file-picker.js +71 -11
  209. package/dist/components/q2-form.js +6 -6
  210. package/dist/components/q2-formatted-text.js +2 -2
  211. package/dist/components/q2-input2.js +268 -163
  212. package/dist/components/q2-item2.js +33 -23
  213. package/dist/components/q2-legend2.js +7 -7
  214. package/dist/components/q2-list2.js +6 -6
  215. package/dist/components/q2-message2.js +29 -29
  216. package/dist/components/q2-meter.js +7 -7
  217. package/dist/components/q2-modal.js +94 -76
  218. package/dist/components/q2-month-picker.js +17 -17
  219. package/dist/components/q2-mutation-observer.js +1 -1
  220. package/dist/components/q2-optgroup2.js +7 -7
  221. package/dist/components/q2-option-list2.js +52 -32
  222. package/dist/components/q2-otp.js +8 -8
  223. package/dist/components/q2-pagination.js +67 -67
  224. package/dist/components/q2-pill.js +17 -15
  225. package/dist/components/q2-popover2.js +77 -53
  226. package/dist/components/q2-radio-group.js +70 -40
  227. package/dist/components/q2-radio.js +40 -55
  228. package/dist/components/q2-relative-time.js +5 -5
  229. package/dist/components/q2-resize-observer2.js +23 -23
  230. package/dist/components/q2-search.js +6 -6
  231. package/dist/components/q2-section.js +33 -33
  232. package/dist/components/q2-select2.js +47 -40
  233. package/dist/components/q2-stepper-pane.js +17 -13
  234. package/dist/components/q2-stepper-vertical.js +4 -4
  235. package/dist/components/q2-stepper.js +57 -57
  236. package/dist/components/q2-surface.js +3 -3
  237. package/dist/components/q2-tab-container.js +18 -18
  238. package/dist/components/q2-tab-pane.js +2 -2
  239. package/dist/components/q2-tag2.js +8 -6
  240. package/dist/components/q2-textarea.js +3 -3
  241. package/dist/components/sectorHelper.js +78 -78
  242. package/dist/components/tecton-tab-pane.js +12 -11
  243. package/dist/esm/{charting-DOZct-UB.js → charting-DFXJklqs.js} +79 -1
  244. package/dist/esm/click-elsewhere_3.entry.js +85 -20
  245. package/dist/esm/{dataSample-Dm1zpQNi.js → dataSample-CP_VKNqt.js} +1 -1
  246. package/dist/esm/date-picker-helpers-D8QnN_AS.js +242 -0
  247. package/dist/esm/{index-Cps4jSQM.js → index-CP8pXJ-l.js} +2 -2
  248. package/dist/esm/loader.js +1 -1
  249. package/dist/esm/{q2-action-group_2.entry.js → q2-action-group.entry.js} +3 -90
  250. package/dist/esm/q2-action-sheet.entry.js +99 -19
  251. package/dist/esm/q2-avatar.entry.js +1 -1
  252. package/dist/esm/q2-badge_2.entry.js +113 -12
  253. package/dist/esm/q2-btn_2.entry.js +2 -2
  254. package/dist/esm/q2-calendar.entry.js +14 -7
  255. package/dist/esm/q2-card-image.entry.js +4 -4
  256. package/dist/esm/q2-card.entry.js +1 -1
  257. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  258. package/dist/esm/q2-carousel.entry.js +20 -6
  259. package/dist/esm/q2-chart-area.entry.js +38 -7
  260. package/dist/esm/q2-chart-bar.entry.js +39 -8
  261. package/dist/esm/q2-chart-donut.entry.js +31 -13
  262. package/dist/esm/q2-checkbox-group.entry.js +3 -3
  263. package/dist/esm/q2-checkbox_2.entry.js +9 -6
  264. package/dist/esm/q2-context.entry.js +6 -5
  265. package/dist/esm/q2-currency.entry.js +1 -1
  266. package/dist/esm/q2-data-table.entry.js +7 -7
  267. package/dist/esm/q2-date-calendar.entry.js +450 -0
  268. package/dist/esm/q2-date-picker_2.entry.js +965 -0
  269. package/dist/esm/q2-detail.entry.js +2 -2
  270. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  271. package/dist/esm/q2-dropdown.entry.js +4 -4
  272. package/dist/esm/q2-editable-field.entry.js +51 -37
  273. package/dist/esm/q2-example.entry.js +1 -1
  274. package/dist/esm/q2-file-picker.entry.js +60 -4
  275. package/dist/esm/q2-form.entry.js +1 -1
  276. package/dist/esm/q2-formatted-text.entry.js +1 -1
  277. package/dist/esm/q2-icon.entry.js +1 -1
  278. package/dist/esm/q2-item.entry.js +21 -3
  279. package/dist/esm/q2-legend.entry.js +1 -1
  280. package/dist/esm/q2-link_2.entry.js +2 -2
  281. package/dist/esm/q2-loc.entry.js +1 -1
  282. package/dist/esm/q2-message.entry.js +3 -3
  283. package/dist/esm/q2-meter.entry.js +2 -2
  284. package/dist/esm/q2-modal.entry.js +59 -17
  285. package/dist/esm/q2-month-picker.entry.js +3 -3
  286. package/dist/esm/q2-mutation-observer.entry.js +1 -1
  287. package/dist/esm/q2-option.entry.js +1 -1
  288. package/dist/esm/q2-otp.entry.js +5 -5
  289. package/dist/esm/q2-pagination.entry.js +4 -4
  290. package/dist/esm/q2-pill.entry.js +8 -5
  291. package/dist/esm/q2-radio-group.entry.js +22 -4
  292. package/dist/esm/q2-radio.entry.js +3 -3
  293. package/dist/esm/q2-relative-time.entry.js +3 -3
  294. package/dist/esm/q2-resize-observer.entry.js +90 -0
  295. package/dist/esm/q2-search.entry.js +4 -4
  296. package/dist/esm/q2-section.entry.js +7 -7
  297. package/dist/esm/q2-select.entry.js +41 -21
  298. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  299. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  300. package/dist/esm/q2-stepper.entry.js +2 -2
  301. package/dist/esm/q2-surface.entry.js +1 -1
  302. package/dist/esm/q2-tab-container.entry.js +2 -2
  303. package/dist/esm/q2-tab-pane.entry.js +1 -1
  304. package/dist/esm/q2-tecton-elements.js +1 -1
  305. package/dist/esm/q2-textarea.entry.js +2 -2
  306. package/dist/esm/q2-toast.entry.js +1 -1
  307. package/dist/esm/q2-tooltip.entry.js +1 -1
  308. package/dist/esm/{sectorHelper--RMGWGAy.js → sectorHelper-DBtkWtpl.js} +1 -1
  309. package/dist/esm/tecton-tab-pane.entry.js +5 -3
  310. package/dist/q2-tecton-elements/{charting-DOZct-UB.js → charting-DFXJklqs.js} +1625 -1554
  311. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js +98 -54
  312. package/dist/q2-tecton-elements/{dataSample-Dm1zpQNi.js → dataSample-CP_VKNqt.js} +33 -33
  313. package/dist/q2-tecton-elements/date-picker-helpers-D8QnN_AS.js +153 -0
  314. package/dist/q2-tecton-elements/{index-Cps4jSQM.js → index-CP8pXJ-l.js} +2 -2
  315. package/dist/q2-tecton-elements/{q2-action-group_2.entry.js → q2-action-group.entry.js} +35 -113
  316. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +169 -84
  317. package/dist/q2-tecton-elements/q2-avatar.entry.js +8 -8
  318. package/dist/q2-tecton-elements/q2-badge_2.entry.js +240 -140
  319. package/dist/q2-tecton-elements/q2-btn_2.entry.js +23 -23
  320. package/dist/q2-tecton-elements/q2-calendar.entry.js +18 -13
  321. package/dist/q2-tecton-elements/q2-card-image.entry.js +9 -9
  322. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  323. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +4 -4
  324. package/dist/q2-tecton-elements/q2-carousel.entry.js +24 -11
  325. package/dist/q2-tecton-elements/q2-chart-area.entry.js +190 -144
  326. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +382 -338
  327. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +186 -160
  328. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +8 -8
  329. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +21 -19
  330. package/dist/q2-tecton-elements/q2-context.entry.js +18 -17
  331. package/dist/q2-tecton-elements/q2-currency.entry.js +9 -9
  332. package/dist/q2-tecton-elements/q2-data-table.entry.js +38 -38
  333. package/dist/q2-tecton-elements/q2-date-calendar.entry.js +438 -0
  334. package/dist/q2-tecton-elements/q2-date-picker_2.entry.js +792 -0
  335. package/dist/q2-tecton-elements/q2-detail.entry.js +4 -4
  336. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
  337. package/dist/q2-tecton-elements/q2-dropdown.entry.js +10 -10
  338. package/dist/q2-tecton-elements/q2-editable-field.entry.js +50 -41
  339. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  340. package/dist/q2-tecton-elements/q2-file-picker.entry.js +62 -7
  341. package/dist/q2-tecton-elements/q2-form.entry.js +2 -2
  342. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  343. package/dist/q2-tecton-elements/q2-icon.entry.js +1 -1
  344. package/dist/q2-tecton-elements/q2-item.entry.js +27 -17
  345. package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
  346. package/dist/q2-tecton-elements/q2-link_2.entry.js +7 -7
  347. package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
  348. package/dist/q2-tecton-elements/q2-message.entry.js +30 -30
  349. package/dist/q2-tecton-elements/q2-meter.entry.js +8 -8
  350. package/dist/q2-tecton-elements/q2-modal.entry.js +61 -45
  351. package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
  352. package/dist/q2-tecton-elements/q2-mutation-observer.entry.js +1 -1
  353. package/dist/q2-tecton-elements/q2-option.entry.js +1 -1
  354. package/dist/q2-tecton-elements/q2-otp.entry.js +9 -9
  355. package/dist/q2-tecton-elements/q2-pagination.entry.js +20 -20
  356. package/dist/q2-tecton-elements/q2-pill.entry.js +43 -41
  357. package/dist/q2-tecton-elements/q2-radio-group.entry.js +55 -34
  358. package/dist/q2-tecton-elements/q2-radio.entry.js +38 -53
  359. package/dist/q2-tecton-elements/q2-relative-time.entry.js +11 -11
  360. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +81 -0
  361. package/dist/q2-tecton-elements/q2-search.entry.js +7 -7
  362. package/dist/q2-tecton-elements/q2-section.entry.js +25 -25
  363. package/dist/q2-tecton-elements/q2-select.entry.js +28 -21
  364. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +19 -15
  365. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +9 -9
  366. package/dist/q2-tecton-elements/q2-stepper.entry.js +45 -45
  367. package/dist/q2-tecton-elements/q2-surface.entry.js +3 -3
  368. package/dist/q2-tecton-elements/q2-tab-container.entry.js +15 -15
  369. package/dist/q2-tecton-elements/q2-tab-pane.entry.js +9 -9
  370. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  371. package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -3
  372. package/dist/q2-tecton-elements/q2-toast.entry.js +1 -1
  373. package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
  374. package/dist/q2-tecton-elements/{sectorHelper--RMGWGAy.js → sectorHelper-DBtkWtpl.js} +56 -56
  375. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +8 -7
  376. package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +21 -1
  377. package/dist/types/components/q2-action-sheet/test/q2-action-sheet-test.vr.d.ts +1 -0
  378. package/dist/types/components/q2-btn/q2-btn.d.ts +7 -3
  379. package/dist/types/components/q2-calendar/q2-calendar.d.ts +10 -2
  380. package/dist/types/components/q2-card-image/q2-card-image.d.ts +1 -1
  381. package/dist/types/components/q2-carousel/q2-carousel.d.ts +5 -0
  382. package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +11 -2
  383. package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +9 -0
  384. package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +1 -0
  385. package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +4 -3
  386. package/dist/types/components/q2-checkbox-group/q2-checkbox-group.d.ts +4 -2
  387. package/dist/types/components/q2-date-calendar/q2-date-calendar.d.ts +122 -0
  388. package/dist/types/components/q2-date-calendar/test/q2-date-calendar-test.vr.d.ts +1 -0
  389. package/dist/types/components/q2-date-picker/q2-date-picker.d.ts +304 -0
  390. package/dist/types/components/q2-date-picker/test/q2-date-picker-test.vr.d.ts +1 -0
  391. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +3 -3
  392. package/dist/types/components/q2-dropdown/test/q2-dropdown-test.vr.d.ts +1 -0
  393. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +20 -2
  394. package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +20 -0
  395. package/dist/types/components/q2-input/q2-input.d.ts +32 -4
  396. package/dist/types/components/q2-item/q2-item.d.ts +3 -0
  397. package/dist/types/components/q2-modal/q2-modal.d.ts +10 -1
  398. package/dist/types/components/q2-option-list/q2-option-list.d.ts +1 -0
  399. package/dist/types/components/q2-popover/q2-popover.d.ts +4 -0
  400. package/dist/types/components/q2-radio/q2-radio.d.ts +3 -2
  401. package/dist/types/components/q2-radio-group/q2-radio-group.d.ts +18 -2
  402. package/dist/types/components/q2-search/q2-search.d.ts +3 -1
  403. package/dist/types/components/q2-select/q2-select.d.ts +12 -4
  404. package/dist/types/components/q2-textarea/q2-textarea.d.ts +4 -2
  405. package/dist/types/components.d.ts +1112 -195
  406. package/dist/types/global.d.ts +1 -0
  407. package/dist/types/index.d.ts +1 -0
  408. package/dist/types/utils/chart-keyboard.d.ts +16 -0
  409. package/dist/types/utils/date-picker/date-picker-helpers.d.ts +47 -0
  410. package/dist/types/utils/date-picker/date-picker-types.d.ts +42 -0
  411. package/dist/types/utils/test/vr-helpers.d.ts +2 -0
  412. package/package.json +3 -3
  413. package/dist/cjs/q2-optgroup.cjs.entry.js +0 -70
  414. package/dist/esm/q2-optgroup.entry.js +0 -68
  415. package/dist/q2-tecton-elements/q2-optgroup.entry.js +0 -88
@@ -97,12 +97,18 @@ button {
97
97
  * @prop --tct-radio-group-border-radius: (<length-percentage>) Controls the corner radius of the radio options container.
98
98
  * @prop --tct-radio-group-border-width: (<length>+) Controls the border width of the radio options container.
99
99
  * @prop --tct-radio-group-error-border-color: (<color>) Controls the border color of the radio options container in the error state.
100
- * @prop --tct-radio-group-tile-gap: (<length-percentage>) Controls the gap between radio tiles in the tile layout.
100
+ * @prop --tct-radio-group-horizontal-gap: (<length-percentage>) Controls the gap between horizontal non-tile radio options.
101
+ * @prop --tct-radio-group-justify-content: (<custom-ident>) Controls how non-tile radio options are aligned along the layout direction.
102
+ * @prop --tct-radio-group-separator-color: (<color>) Controls the color of separators between vertical non-tile radio options.
103
+ * @prop --tct-radio-group-separator-width?: (<length>) Controls the optional thickness of separators between vertical non-tile radio options.
104
+ * @prop --tct-radio-group-tile-border-color: (<color>) Controls the border color around the tiled radio group.
105
+ * @prop --tct-radio-group-tile-border-radius: (<length-percentage>) Controls the corner radius of the tiled radio group.
101
106
  * @prop --tct-radio-group-label-column-gap: (<length-percentage>) Controls the column gap between the radio-group label text and trailing icon.
102
107
  * @prop --tct-radio-group-label-font-color?: (<color>) Controls the optional text color of the radio-group label.
103
108
  * @prop --tct-radio-group-label-font-size?: (<length-percentage>) Controls the optional font size of the radio-group label.
104
109
  * @prop --tct-radio-group-label-font-weight: (<number>) Controls the font weight of the radio-group label.
105
110
  * @prop --tct-radio-group-label-letter-spacing?: (<length>) Controls the optional letter spacing of the radio-group label.
111
+ * @prop --tct-radio-group-label-line-height?: (<length-percentage>) Controls the optional line height of the radio-group label.
106
112
  * @prop --tct-radio-group-label-text-transform?: (<custom-ident>) Controls the optional text transform of the radio-group label.
107
113
  * @prop --tct-radio-group-label-optional-color: (<color>) Controls the text color of the "(optional)" indicator next to the label.
108
114
  * @prop --tct-radio-group-label-optional-font-size: (<length-percentage>) Controls the font size of the "(optional)" indicator next to the label.
@@ -132,6 +138,7 @@ fieldset {
132
138
  font-weight: var(--tct-radio-group-label-font-weight, 600);
133
139
  text-transform: var(--tct-radio-group-label-text-transform, none);
134
140
  letter-spacing: var(--tct-radio-group-label-letter-spacing, inherit);
141
+ line-height: var(--tct-radio-group-label-line-height, inherit);
135
142
  }
136
143
  .label-row q2-icon {
137
144
  grid-area: icon;
@@ -185,6 +192,29 @@ legend.sr-only {
185
192
  :host([has-error=false]) .options-container {
186
193
  border-color: transparent;
187
194
  }
195
+ .options-container.horizontal, .options-container.vertical {
196
+ display: flex;
197
+ flex-wrap: wrap;
198
+ justify-content: var(--tct-radio-group-justify-content, start);
199
+ }
200
+ .options-container.horizontal {
201
+ flex-direction: row;
202
+ column-gap: var(--tct-radio-group-horizontal-gap, var(--app-scale-4x, 20px));
203
+ }
204
+ .options-container.vertical {
205
+ flex-direction: column;
206
+ }
207
+ .options-container.vertical ::slotted(q2-radio:not(:first-child)) {
208
+ position: relative;
209
+ }
210
+ .options-container.vertical ::slotted(q2-radio:not(:first-child))::before {
211
+ border-block-start: var(--tct-radio-group-separator-width, 0) solid var(--tct-radio-group-separator-color, var(--t-gray-12, #d9d9d9));
212
+ content: "";
213
+ inset-block-start: calc(var(--tct-radio-group-separator-width, 0) / -2);
214
+ inset-inline: 0;
215
+ pointer-events: none;
216
+ position: absolute;
217
+ }
188
218
 
189
219
  .tile-container.left {
190
220
  justify-content: start;
@@ -193,6 +223,13 @@ legend.sr-only {
193
223
  justify-content: end;
194
224
  }
195
225
  .tile-container .options-container {
196
- gap: var(--tct-radio-group-tile-gap, var(--t-radio-group-tile-gap, var(--app-scale-2x, 10px)));
226
+ border-color: var(--tct-radio-group-tile-border-color, var(--t-gray-13, #e6e6e6));
227
+ border-radius: var(--tct-radio-group-tile-border-radius, var(--app-border-radius-2, 8px));
228
+ flex-grow: 0;
229
+ flex-wrap: nowrap;
197
230
  justify-content: inherit;
231
+ overflow: visible;
232
+ }
233
+ :host([has-error]) .tile-container .options-container {
234
+ border-color: var(--tct-radio-group-error-border-color, var(--const-stoplight-alert, #d20a0a));
198
235
  }
@@ -12,11 +12,22 @@ export class Q2RadioGroup {
12
12
  // #region Own Properties
13
13
  this._id = `radio-group-${createGuid()}`;
14
14
  // #endregion
15
+ // #region State Properties
16
+ this.responsiveOrientation = 'vertical';
17
+ // #endregion
15
18
  // #region Public Property API
16
19
  /** Determines if all radios in the group are put into a `disabled` state. */
17
20
  this.disabled = false;
18
21
  /** Determines if the component should display in an errant state. */
19
22
  this.hasError = false;
23
+ /** The layout direction of radio options when `tileLayout` is not enabled. */
24
+ this.orientation = 'vertical';
25
+ /**
26
+ * The width, in pixels, below which a horizontal non-tile layout displays vertically.
27
+ *
28
+ * @info The component determines this based on its own width, not the browser window.
29
+ */
30
+ this.orientationThreshold = 440;
20
31
  /** Provides alignment direction for tile-style radio group. */
21
32
  this.tileAlignment = 'center';
22
33
  this.checkedRadioExists = () => {
@@ -32,6 +43,10 @@ export class Q2RadioGroup {
32
43
  this.radioElements[0].tabIndex = 0;
33
44
  }
34
45
  };
46
+ this.handleResize = (event) => {
47
+ const width = event.detail.entries[0].contentRect.width;
48
+ this.responsiveOrientation = width < this.orientationThreshold ? 'vertical' : 'horizontal';
49
+ };
35
50
  this.onInnerRadioChange = (event) => {
36
51
  event.stopImmediatePropagation();
37
52
  if (this.readonly)
@@ -156,6 +171,9 @@ export class Q2RadioGroup {
156
171
  }
157
172
  // #endregion
158
173
  // #region Local Methods
174
+ get computedOrientation() {
175
+ return this.orientation === 'horizontal' ? this.responsiveOrientation : 'vertical';
176
+ }
159
177
  get inputId() {
160
178
  return this._id;
161
179
  }
@@ -169,7 +187,7 @@ export class Q2RadioGroup {
169
187
  return (h("div", { class: `tile-container ${alignment}` }, h("div", { class: "options-container" }, h("slot", null))));
170
188
  }
171
189
  else {
172
- return (h("div", { class: "options-container" }, h("slot", null)));
190
+ return (h("div", { class: `options-container ${this.computedOrientation}` }, h("slot", null)));
173
191
  }
174
192
  }
175
193
  // #endregion
@@ -178,7 +196,7 @@ export class Q2RadioGroup {
178
196
  const showLabel = this.label || this.optional || this.readonly;
179
197
  const { hasError } = this;
180
198
  const showLabelRow = (showLabel && !this.hideLabel) || hasError;
181
- return (h(Fragment, { key: '9aadfcdafda1190aac1d1d23f02d73d9d0982cfb' }, showLabelRow && (h("div", { key: '80ffd1095a810f95e89b839bd4c9e9b10b10c56a', class: "label-row" }, showLabel && !this.hideLabel && h("div", { key: '82663c3dc58235e5a15c6a96d61c0f899e51b34c', class: "group-legend" }, renderLabel(this)), hasError && (h("q2-icon", { key: '75aab19da924c83a43c311c8718213e554e1e41d', type: "error", "test-id": "iconError" })))), h("fieldset", { key: 'df81b71c57ac1c2b7812b1e12dc4f85b95563895', onChange: this.onInnerRadioChange, "aria-invalid": hasError ? `${hasError}` : undefined }, showLabel && h("legend", { key: 'c3aff2496cb12cfaa774aac545f399508f0a679c', class: "sr-only" }, renderLabel(this)), this.inputDom())));
199
+ return (h(Fragment, { key: '0503a52d9cb4715cba418f445b708ad650aa5f1f' }, showLabelRow && (h("div", { key: '7236b03ea65a44bbfacf57944370236c9653d69c', class: "label-row" }, showLabel && !this.hideLabel && h("div", { key: 'fbede7f7cfbd2c0fe8364a77966009a2e14ede37', class: "group-legend" }, renderLabel(this)), hasError && (h("q2-icon", { key: 'b7d7456a6fd1e673d5799748a727db2babc3d2bf', type: "error", "test-id": "iconError" })))), h("fieldset", { key: 'cba87bdefb32eaa0cd6cc1760d874fd622146b5e', onChange: this.onInnerRadioChange, "aria-invalid": hasError ? `${hasError}` : undefined }, showLabel && h("legend", { key: 'c4ff0e86435564ece7e468ecd7b0e373ae9fc078', class: "sr-only" }, renderLabel(this)), h("q2-resize-observer", { key: 'f3bfe6941b46da58433ed959017a4383c07ce16d', onTctResize: this.handleResize, disabled: this.tileLayout || this.orientation !== 'horizontal' }, this.inputDom()))));
182
200
  }
183
201
  static get is() { return "q2-radio-group"; }
184
202
  static get encapsulation() { return "shadow"; }
@@ -247,9 +265,9 @@ export class Q2RadioGroup {
247
265
  "docs": {
248
266
  "tags": [{
249
267
  "name": "warning",
250
- "text": "Only use when a visible label is impractical."
268
+ "text": "Hides the label visually. `label` text is still required for screenreader compliance."
251
269
  }],
252
- "text": "Hide's the group's `<label>` element from view."
270
+ "text": "Hides the group's `<label>` element from view."
253
271
  },
254
272
  "getter": false,
255
273
  "setter": false,
@@ -268,6 +286,9 @@ export class Q2RadioGroup {
268
286
  "optional": false,
269
287
  "docs": {
270
288
  "tags": [{
289
+ "name": "warning",
290
+ "text": "Required for screen reader compliance even when `hideLabel` is `true`."
291
+ }, {
271
292
  "name": "localizable",
272
293
  "text": undefined
273
294
  }],
@@ -316,6 +337,49 @@ export class Q2RadioGroup {
316
337
  "reflect": true,
317
338
  "attribute": "optional"
318
339
  },
340
+ "orientation": {
341
+ "type": "string",
342
+ "mutable": false,
343
+ "complexType": {
344
+ "original": "'vertical' | 'horizontal'",
345
+ "resolved": "\"horizontal\" | \"vertical\"",
346
+ "references": {}
347
+ },
348
+ "required": false,
349
+ "optional": false,
350
+ "docs": {
351
+ "tags": [],
352
+ "text": "The layout direction of radio options when `tileLayout` is not enabled."
353
+ },
354
+ "getter": false,
355
+ "setter": false,
356
+ "reflect": true,
357
+ "attribute": "orientation",
358
+ "defaultValue": "'vertical'"
359
+ },
360
+ "orientationThreshold": {
361
+ "type": "number",
362
+ "mutable": false,
363
+ "complexType": {
364
+ "original": "number",
365
+ "resolved": "number",
366
+ "references": {}
367
+ },
368
+ "required": false,
369
+ "optional": false,
370
+ "docs": {
371
+ "tags": [{
372
+ "name": "info",
373
+ "text": "The component determines this based on its own width, not the browser window."
374
+ }],
375
+ "text": "The width, in pixels, below which a horizontal non-tile layout displays vertically."
376
+ },
377
+ "getter": false,
378
+ "setter": false,
379
+ "reflect": false,
380
+ "attribute": "orientation-threshold",
381
+ "defaultValue": "440"
382
+ },
319
383
  "readonly": {
320
384
  "type": "boolean",
321
385
  "mutable": false,
@@ -417,6 +481,11 @@ export class Q2RadioGroup {
417
481
  }
418
482
  };
419
483
  }
484
+ static get states() {
485
+ return {
486
+ "responsiveOrientation": {}
487
+ };
488
+ }
420
489
  static get events() {
421
490
  return [{
422
491
  "method": "change",
@@ -42,11 +42,38 @@ const VARIANTS = [
42
42
  html: `<q2-radio-group label="Hidden" name="g1" hide-label>${RADIOS}</q2-radio-group>`,
43
43
  states: ['resting'],
44
44
  },
45
+ {
46
+ name: 'horizontal',
47
+ html: `<q2-radio-group label="Group" name="g1" orientation="horizontal">${RADIOS}</q2-radio-group>`,
48
+ states: ['resting'],
49
+ },
50
+ {
51
+ name: 'horizontal-centered',
52
+ html: `<q2-radio-group label="Group" name="g1" orientation="horizontal" style="--tct-radio-group-horizontal-gap: 20px; --tct-radio-group-justify-content: center">${RADIOS}</q2-radio-group>`,
53
+ states: ['resting'],
54
+ },
55
+ {
56
+ name: 'horizontal-mobile',
57
+ html: `<q2-radio-group label="Group" name="g1" orientation="horizontal">${RADIOS}</q2-radio-group>`,
58
+ states: ['resting'],
59
+ viewport: { width: 375, height: 600 },
60
+ },
61
+ {
62
+ name: 'vertical-with-separators',
63
+ html: `<q2-radio-group label="Group" name="g1" style="--tct-radio-group-separator-width: 4px; --tct-radio-min-height: 48px">${RADIOS}</q2-radio-group>`,
64
+ states: ['resting'],
65
+ },
45
66
  {
46
67
  name: 'tile-layout',
47
- html: `<q2-radio-group label="Group" name="g1" tile-layout>${RADIOS}</q2-radio-group>`,
68
+ html: `<q2-radio-group label="Group" name="g1" tile-layout value="2">${RADIOS}</q2-radio-group>`,
48
69
  states: ['resting', 'hover', 'focus'],
49
70
  },
71
+ {
72
+ name: 'tile-layout-focus-last',
73
+ html: `<q2-radio-group label="Group" name="g1" tile-layout value="2">${RADIOS}</q2-radio-group>`,
74
+ states: ['focus'],
75
+ focusSteps: 2,
76
+ },
50
77
  {
51
78
  name: 'tile-layout-left',
52
79
  html: `<q2-radio-group label="Group" name="g1" tile-layout tile-alignment="left">${RADIOS}</q2-radio-group>`,
@@ -63,15 +90,24 @@ const VARIANTS = [
63
90
  states: ['resting'],
64
91
  },
65
92
  ];
93
+ const waitForRadioGroup = async (page) => {
94
+ await page.locator('q2-radio-group[stencil-hydrated]').waitFor();
95
+ await expect(page.locator('q2-radio[stencil-hydrated]')).toHaveCount(3);
96
+ await page.evaluate(() => new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(() => resolve()))));
97
+ };
66
98
  const restingCase = (variant, theme) => {
67
99
  test(`q2-radio-group--${variant.name}--resting — ${theme}`, async ({ page }) => {
100
+ if (variant.viewport)
101
+ await page.setViewportSize(variant.viewport);
68
102
  await setupPage(page, variant.html, { theme });
103
+ await waitForRadioGroup(page);
69
104
  await expect(page).toHaveScreenshot(`q2-radio-group--${variant.name}--resting--${theme}.png`);
70
105
  });
71
106
  };
72
107
  const hoverCase = (variant, theme) => {
73
108
  test(`q2-radio-group--${variant.name}--hover — ${theme}`, async ({ page }) => {
74
109
  await setupPage(page, variant.html, { theme });
110
+ await waitForRadioGroup(page);
75
111
  // Hover the first radio (a tile when tile-layout is active).
76
112
  await page.locator('q2-radio').first().hover();
77
113
  await expect(page).toHaveScreenshot(`q2-radio-group--${variant.name}--hover--${theme}.png`);
@@ -79,8 +115,13 @@ const hoverCase = (variant, theme) => {
79
115
  };
80
116
  const focusCase = (variant, theme) => {
81
117
  test(`q2-radio-group--${variant.name}--focus — ${theme}`, async ({ page }) => {
118
+ var _a;
82
119
  await setupPage(page, variant.html, { theme });
120
+ await waitForRadioGroup(page);
83
121
  await page.keyboard.press('Tab');
122
+ for (let step = 0; step < ((_a = variant.focusSteps) !== null && _a !== void 0 ? _a : 0); step++) {
123
+ await page.keyboard.press('ArrowRight');
124
+ }
84
125
  await expect(page).toHaveScreenshot(`q2-radio-group--${variant.name}--focus--${theme}.png`);
85
126
  });
86
127
  };
@@ -102,6 +143,7 @@ test.describe(`q2-radio-group — scaled font size × themes`, () => {
102
143
  for (const theme of THEMES) {
103
144
  test(`q2-radio-group--optional--resting--${FONT_SCALE_SUFFIX} — ${theme}`, async ({ page }) => {
104
145
  await setupPage(page, OPTIONAL_VARIANT.html, { theme, fontSizePx: FONT_SCALE_PX });
146
+ await waitForRadioGroup(page);
105
147
  await expect(page).toHaveScreenshot(`q2-radio-group--optional--resting--${FONT_SCALE_SUFFIX}--${theme}.png`);
106
148
  });
107
149
  }
@@ -74,7 +74,7 @@ export class Q2RelativeTime {
74
74
  return;
75
75
  }
76
76
  const message = intlFormatDistance(new Date(dateObject), new Date(baseDateObject), {
77
- locale,
77
+ locale: locale || document.documentElement.lang || 'en-US',
78
78
  localeMatcher: 'best fit',
79
79
  numeric: handleNumeric,
80
80
  style: messageFormat,
@@ -153,7 +153,7 @@ export class Q2RelativeTime {
153
153
  // #region Render Methods
154
154
  render() {
155
155
  const { shouldShow, displayedMessage } = this;
156
- return h(Fragment, { key: '48a6ad8165ea3380500edb280142a47e0a7a6848' }, shouldShow ? h("time", { dateTime: displayedMessage }, displayedMessage) : null);
156
+ return h(Fragment, { key: 'c6d24ac6d794284c3f0ea654f1999ff6e201f8b1' }, shouldShow ? h("time", { dateTime: displayedMessage }, displayedMessage) : null);
157
157
  }
158
158
  static get is() { return "q2-relative-time"; }
159
159
  static get encapsulation() { return "shadow"; }
@@ -76,7 +76,7 @@ export class Q2ResizeObserver {
76
76
  // #endregion
77
77
  // #region Render Methods
78
78
  render() {
79
- return h("slot", { key: 'f5cc2cee6e979f047d3854d243ec3560ae5cb35d', onSlotchange: this.handleSlotChange });
79
+ return h("slot", { key: 'cd3c22934ee46501f6ab1dc317ab702ba97150f3', onSlotchange: this.handleSlotChange });
80
80
  }
81
81
  static get is() { return "q2-resize-observer"; }
82
82
  static get encapsulation() { return "shadow"; }
@@ -147,6 +147,7 @@ button {
147
147
  }
148
148
 
149
149
  /**
150
+ * @prop --tct-search-icon-size: (<length>) Controls the size of search input icons, including slotted icons and clear.
150
151
  * @prop --tct-search-margin?: (<length-percentage>+) Controls the margin of the component host as a shorthand. Overrides --tct-search-margin-top and --tct-search-margin-bottom when set.
151
152
  * @prop --tct-search-margin-top: (<length-percentage>) Controls the top margin of the component host.
152
153
  * @prop --tct-search-margin-bottom: (<length-percentage>) Controls the bottom margin of the component host.
@@ -187,6 +188,7 @@ button {
187
188
  }
188
189
 
189
190
  .q2-search-input {
191
+ --tct-input-icon-size: var(--tct-search-icon-size, var(--const-px-18, 18px));
190
192
  margin: 0;
191
193
  --tct-input-min-height: var(--tct-search-input-min-height, initial);
192
194
  --tct-input-max-height: var(--tct-search-input-max-height, none);
@@ -45,7 +45,7 @@ export class Q2Search {
45
45
  /**
46
46
  * Hides the field's `<label>` element from view.
47
47
  * @warning
48
- * Only use when a visible label is impractical.
48
+ * Hides the label visually. `label` text is still required for screenreader compliance.
49
49
  */
50
50
  this.hideLabel = false;
51
51
  /**
@@ -771,7 +771,7 @@ export class Q2Search {
771
771
  return (h("q2-popover", { ref: el => (this.popoverElement = el), controlElement: (_a = this.innerInputContainer) !== null && _a !== void 0 ? _a : undefined, open: this.open, maxHeight: this.popoverMaxHeight, minHeight: this.popoverMinHeight, align: useBlock ? undefined : this.popoverAlignment, block: useBlock }, h("div", { class: "popover-content", "data-loading": this.loading ? 'true' : 'false', "aria-busy": this.loading ? 'true' : null }, h("div", { class: "popover-top-container", hidden: !this.hasPopoverTop && !(this.multiple && this.showSelectedToggle), tabindex: "-1" }, h("slot", { name: "popover-top" }), !this.loading && this.renderMultiSelectHeader()), h("q2-option-list", { ref: el => (this.optionList = el), type: "listbox", id: this.optionListId, label: loc(this.listLabel), multiple: this.multiple, selectedOptions: this.structuredSelectedOptions, showSelected: this.showSelected, customSearch: true, hidden: this.loading, onChange: (e) => e.stopPropagation(), onTctChange: this.onOptionListChange }, h("slot", null)), showEmpty && this.renderEmpty(), h("div", { class: "popover-bottom-container", hidden: !this.hasPopoverBottom, tabindex: "-1" }, h("slot", { name: "popover-bottom" })), this.loading && (h("div", { class: "loading-overlay", "aria-hidden": "true" }, h("q2-loading", { type: "spinner" }))))));
772
772
  }
773
773
  render() {
774
- return (h(Fragment, { key: '78ce7b735d59271600debb18ab2f0f5cf315e465' }, h("div", { key: 'd3e9a713581842cc62969a0df9556733edf6e378', "aria-live": "polite", "aria-atomic": "true", role: "status", class: "sr" }, this.statusMessage), h("click-elsewhere", { key: '6912af1d8f31af8de7c7ffb28786756819c57afc', class: this.wrapperClasses, role: "presentation", onChange: this.onClickElsewhere }, h("q2-input", { key: '95a5397765aab6d3279b3d81cc31215f235aefc2', ref: el => (this.inputField = el), class: "q2-search-input", label: (this.label && loc(this.label)) || '', value: this.searchText, iconLeft: "search", clearable: this.clearable && !this.loading && !!this.searchText, disabled: this.disabled, optional: this.optional, readonly: !!this.readonly, placeholder: this.placeholder ? loc(this.placeholder) : undefined, hideLabel: this.hideLabel, errors: (Array.isArray(this.errors) && this.errors.length > 0 && this.errors.map(e => loc(e))) ||
774
+ return (h(Fragment, { key: '282a0d7a6fc3199a2ae52a9a6f1c3ace8b58c00d' }, h("div", { key: 'b45c3a05cfb004bf7dfbf266af0e983c9740f7e6', "aria-live": "polite", "aria-atomic": "true", role: "status", class: "sr" }, this.statusMessage), h("click-elsewhere", { key: '603d6b423bd6e2a6f3b90b85f13e744d157c7c61', class: this.wrapperClasses, role: "presentation", onChange: this.onClickElsewhere }, h("q2-input", { key: '267c12c340e038bb5d10133d59955b4067699fbf', ref: el => (this.inputField = el), class: "q2-search-input", label: (this.label && loc(this.label)) || '', value: this.searchText, iconLeft: "search", clearable: this.clearable && !this.loading && !!this.searchText, disabled: this.disabled, optional: this.optional, readonly: !!this.readonly, placeholder: this.placeholder ? loc(this.placeholder) : undefined, hideLabel: this.hideLabel, errors: (Array.isArray(this.errors) && this.errors.length > 0 && this.errors.map(e => loc(e))) ||
775
775
  (this.invalid && ['tecton.element.search.invalid']) ||
776
776
  [], ariaExpanded: this.isInputOnlyMode ? undefined : `${this.open}`, ariaControls: this.isInputOnlyMode ? undefined : this.optionListId, ariaHaspopup: this.isInputOnlyMode ? undefined : 'listbox', hideMessages: true, _role: this.isInputOnlyMode ? undefined : 'combobox', onTctInput: this.inputInputHandler, onInput: (e) => e.stopImmediatePropagation(), onChange: (e) => e.stopPropagation(), onTctChange: (e) => e.stopPropagation(), badgeValue: this.badgeValue }, this.renderCustomDisplay()), this.renderOptionsDropdown())));
777
777
  }
@@ -882,7 +882,7 @@ export class Q2Search {
882
882
  "docs": {
883
883
  "tags": [{
884
884
  "name": "warning",
885
- "text": "Only use when a visible label is impractical."
885
+ "text": "Hides the label visually. `label` text is still required for screenreader compliance."
886
886
  }],
887
887
  "text": "Hides the field's `<label>` element from view."
888
888
  },
@@ -923,6 +923,9 @@ export class Q2Search {
923
923
  "optional": false,
924
924
  "docs": {
925
925
  "tags": [{
926
+ "name": "warning",
927
+ "text": "Required for screen reader compliance even when `hideLabel` is `true`."
928
+ }, {
926
929
  "name": "localizable",
927
930
  "text": undefined
928
931
  }],
@@ -104,6 +104,7 @@ button {
104
104
  * @prop --tct-section-header-min-height: (<length>) Controls the minimum height of the section header when a header is present.
105
105
  * @prop --tct-section-title-margin?: (<length-percentage>+) Controls the optional outer margin of the section title.
106
106
  * @prop --tct-section-title-font-size: (<length-percentage>) Controls the font size of the section title.
107
+ * @prop --tct-section-icon-size: (<length>) Controls the size of the section expand/collapse icon.
107
108
  * @prop --tct-section-title-font-weight: (<number>) Controls the font weight of the section title.
108
109
  * @prop --tct-section-title-text-transform?: (<custom-ident>) Controls the optional text transform of the section title.
109
110
  * @prop --tct-section-title-letter-spacing?: (<length>) Controls the optional letter spacing of the section title.
@@ -182,6 +183,7 @@ header.has-header {
182
183
  }
183
184
 
184
185
  q2-icon {
186
+ --tct-icon-size: var(--tct-section-icon-size, var(--const-px-18, 18px));
185
187
  transition: transform var(--comp-tween);
186
188
  }
187
189
  :host(:not([expanded])) q2-icon, :host([expanded=false]) q2-icon {
@@ -1,5 +1,5 @@
1
1
  import { h, } from "@stencil/core";
2
- import { isEventFromElement, loc, nextPaint, overrideFocus, resizeIframe } from "../../utils/index";
2
+ import { hasSlotContent, isEventFromElement, loc, nextPaint, overrideFocus, resizeIframe } from "../../utils/index";
3
3
  import mirrorEmit from "../../utils/mirror-emit";
4
4
  /**
5
5
  * @name Section
@@ -40,9 +40,9 @@ export class Q2Section {
40
40
  });
41
41
  };
42
42
  this.onHeaderSlotChange = () => {
43
- const hasSlotContent = !!this.hostElement.querySelector('[slot="q2-section-header"]');
44
- if (this.hasYieldedHeader !== hasSlotContent) {
45
- this.hasYieldedHeader = !!hasSlotContent;
43
+ const hasHeader = hasSlotContent(this.hostElement, 'q2-section-header');
44
+ if (this.hasYieldedHeader !== hasHeader) {
45
+ this.hasYieldedHeader = hasHeader;
46
46
  }
47
47
  };
48
48
  this.onTransitionEnd = () => {
@@ -186,9 +186,9 @@ export class Q2Section {
186
186
  wrapperClasses.push('is-transitioning');
187
187
  }
188
188
  const showDefaultHeader = !this.hasYieldedHeader && !!this.label;
189
- return (h("section", { key: '5dbed551d8571ef48b81fe7fc40b0c56db2d685a', class: "wrapper" }, h("header", { key: 'dfc3bc20a49856a2fcdee6b5cae1626e32ff5416', class: hasHeader ? 'has-header' : '' }, h("div", { key: 'b9073b701f1006f8048cac33b4cae9e44888c8e2', class: "header-content", id: this.titleId, onClick: this.collapsible && this.onHeaderClick }, showDefaultHeader && h("h2", { key: 'd701205c1808c6eaf2b7f3739c7488d934cf1cc0', class: "title" }, loc(this.label)), h("div", { key: '5428fcecafd6e84a884783c0cc1223cb91160f69', ref: el => (this.headerSlotWrapper = el), class: "header-slot-wrapper" }, h("slot", { key: 'f7d873afc6f319c259e11db10e7cf2d3010ca3c6', ref: (el) => (this.headerSlot = el), name: "q2-section-header" }))), this.collapsible && !this.noCollapseIcon && (h("q2-btn", { key: '6143342070b00156a36db039dee5e19a1a6cbe2f', label: loc(this.label || 'tecton.element.section.defaultToggleLabel'), ariaExpanded: `${!!this.expanded}`, ariaControls: this.contentId, "test-id": "toggleButton", "hide-label": true, onClick: this.onHeaderClick }, h("q2-icon", { key: '297304e09f1b60c2a3e4d8146ff7b75f14d64e5c', type: "chevron-up" })))), h("div", { key: '3a78d8a8ffde28f5e006fd988f6d01463758c4c1', class: wrapperClasses.join(' '), id: this.contentId, "aria-labelledby": this.titleId, role: "region", onTransitionEnd: this.onTransitionEnd, style: this.collapsible && {
189
+ return (h("section", { key: '671c4611adeaff5c3e53d05a43955851d682c792', class: "wrapper" }, h("header", { key: 'fb724579804c9c3dd4da39bbc45d6df5cfad3815', class: hasHeader ? 'has-header' : '' }, h("div", { key: '76ad513b058264c1dbbeac7732120fea97586e1f', class: "header-content", id: this.titleId, onClick: this.collapsible && this.onHeaderClick }, showDefaultHeader && h("h2", { key: '6717219e621e8b605e4cbc7fa4f1f84bd4b1f20a', class: "title" }, loc(this.label)), h("div", { key: '61acf1ce4b3281aed6f35571a62f4da58d692d10', ref: el => (this.headerSlotWrapper = el), class: "header-slot-wrapper" }, h("slot", { key: 'acd5b6f6337700edf60fd03ce3d35a634eb2f97c', ref: (el) => (this.headerSlot = el), name: "q2-section-header" }))), this.collapsible && !this.noCollapseIcon && (h("q2-btn", { key: '02543820b86cf3d8fd103e0384d283e130fc2212', label: loc(this.label || 'tecton.element.section.defaultToggleLabel'), ariaExpanded: `${!!this.expanded}`, ariaControls: this.contentId, "test-id": "toggleButton", "hide-label": true, onClick: this.onHeaderClick }, h("q2-icon", { key: 'fc7484a585f815948d1bed037948f21e777336f5', type: "chevron-up" })))), h("div", { key: 'f57ce6b9a2e8f8ca589274d496362f106148b499', class: wrapperClasses.join(' '), id: this.contentId, "aria-labelledby": this.titleId, role: "region", onTransitionEnd: this.onTransitionEnd, style: this.collapsible && {
190
190
  height: this.contentHeight,
191
- } }, h("div", { key: '0c7019101641ae7d05772a9ec4e8c16ca40e1112', ref: el => (this.contentContainer = el), class: "content", tabindex: "-1" }, h("slot", { key: '49a17e0cd8279255eec0dc2d7344dc0fa260dc46', ref: (el) => (this.contentSlot = el) })))));
191
+ } }, h("div", { key: 'e1473a0a5f86918df19119a62f99918e8f2203f2', ref: el => (this.contentContainer = el), class: "content", tabindex: "-1" }, h("slot", { key: 'f4f92ebdb06b45be6d70759b6b59caf31f816b04', ref: (el) => (this.contentSlot = el) })))));
192
192
  }
193
193
  static get is() { return "q2-section"; }
194
194
  static get encapsulation() { return "shadow"; }
@@ -147,6 +147,7 @@ button {
147
147
  }
148
148
 
149
149
  /**
150
+ * @prop --tct-select-icon-size: (<length>) Controls the size of the select chevron and clear icons.
150
151
  * @prop --tct-select-margin: (<length-percentage>+) Controls the outer margin of the select host.
151
152
  * @prop --tct-select-margin-top: (<length-percentage>) Controls the top margin of the select host when --tct-select-margin is not set.
152
153
  * @prop --tct-select-margin-bottom: (<length-percentage>) Controls the bottom margin of the select host when --tct-select-margin is not set.
@@ -176,6 +177,8 @@ button {
176
177
 
177
178
  .q2-select-input {
178
179
  margin: 0;
180
+ letter-spacing: inherit;
181
+ --tct-input-icon-size: var(--tct-select-icon-size, var(--const-px-18, 18px));
179
182
  --tct-input-min-height: var(--tct-select-input-min-height, var(--t-select-input-min-height));
180
183
  --tct-input-max-height: var(--tct-select-input-max-height, var(--t-select-input-max-height, none));
181
184
  }