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
@@ -41,6 +41,7 @@ export class Q2Popover {
41
41
  this.displayBuffer = 10;
42
42
  this.orientationChanged = false;
43
43
  this.pendingAnimationResolve = null;
44
+ this.platformScrollUnsubscribe = null;
44
45
  // #endregion
45
46
  // #region State Properties
46
47
  this.animationState = 'idle';
@@ -52,11 +53,30 @@ export class Q2Popover {
52
53
  /** Aligns the popover to the left or right side of the control element. */
53
54
  this.align = 'left';
54
55
  this.mode = null;
56
+ this.handleInsideScroll = (event) => {
57
+ const { containerElement } = this;
58
+ if (!containerElement)
59
+ return;
60
+ if (containerElement.scrollHeight > containerElement.clientHeight)
61
+ return;
62
+ event.preventDefault();
63
+ };
55
64
  this.handleMinHeight = () => {
56
65
  if (this.minHeight) {
57
66
  handleDeprecationWarning(this, 'minHeight', 'prop');
58
67
  }
59
68
  };
69
+ this.handleOutsideScroll = (event) => {
70
+ if (!this.open)
71
+ return;
72
+ if (event.composedPath().includes(this.hostElement))
73
+ return;
74
+ this.open = false;
75
+ };
76
+ this.handlePlatformScroll = () => {
77
+ if (this.open)
78
+ this.open = false;
79
+ };
60
80
  this.handlePopoverToggleEvent = (event) => {
61
81
  mirrorEmit(this, ['popoverStateChanged', 'tctPopoverStateChanged'], { open: event.newState === 'open' });
62
82
  };
@@ -117,10 +137,10 @@ export class Q2Popover {
117
137
  const isScrollableIframe = isModule && isInScrollableContainer(this.hostElement);
118
138
  if (currentDirection === 'up') {
119
139
  if (isModule && !isScrollableIframe) {
120
- containerElement.style.setProperty('--comp-pop-bottom', `${window.innerHeight - controlTop}px`);
140
+ containerElement.style.setProperty('--comp-pop-top', `${controlTop}px`);
121
141
  }
122
142
  else {
123
- containerElement.style.setProperty('--comp-pop-bottom', `${window.innerHeight - controlTop - scrollY}px`);
143
+ containerElement.style.setProperty('--comp-pop-top', `${controlTop + scrollY}px`);
124
144
  }
125
145
  }
126
146
  if (currentDirection === 'down') {
@@ -171,8 +191,10 @@ export class Q2Popover {
171
191
  this.handleMinHeight();
172
192
  if (this.supportsPopoverAPI)
173
193
  (_a = this.containerElement) === null || _a === void 0 ? void 0 : _a.addEventListener('toggle', this.handlePopoverToggleEvent);
174
- if (this.open)
194
+ if (this.open) {
195
+ this.addViewportListeners();
175
196
  this.determinePopDirection();
197
+ }
176
198
  }
177
199
  // #endregion
178
200
  // #region Listeners
@@ -265,14 +287,22 @@ export class Q2Popover {
265
287
  return isNaN(maxHeight) ? undefined : maxHeight;
266
288
  }
267
289
  addViewportListeners() {
268
- var _a;
290
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
269
291
  window.addEventListener('resize', this.viewPortOrientationChanged);
270
- visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.addEventListener('resize', this.viewPortChanged);
292
+ (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.addEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, 'resize', this.viewPortChanged);
271
293
  if (isInScrollableContainer(this.hostElement) && !isMobile()) {
272
294
  window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });
273
295
  }
274
- (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.addEventListener('orientationchange', this.viewPortOrientationChanged);
296
+ (_e = (_d = (_c = window.screen) === null || _c === void 0 ? void 0 : _c.orientation) === null || _d === void 0 ? void 0 : _d.addEventListener) === null || _e === void 0 ? void 0 : _e.call(_d, 'orientationchange', this.viewPortOrientationChanged);
275
297
  window.addEventListener('orientationchange', this.viewPortOrientationChanged);
298
+ if (!isMobile()) {
299
+ window.addEventListener('scroll', this.handleOutsideScroll, { passive: true, capture: true });
300
+ }
301
+ (_f = this.containerElement) === null || _f === void 0 ? void 0 : _f.addEventListener('wheel', this.handleInsideScroll, { passive: false });
302
+ (_g = this.containerElement) === null || _g === void 0 ? void 0 : _g.addEventListener('touchmove', this.handleInsideScroll, { passive: false });
303
+ (_h = this.platformScrollUnsubscribe) === null || _h === void 0 ? void 0 : _h.call(this);
304
+ this.platformScrollUnsubscribe =
305
+ (_l = (_k = (_j = window.TectonElements) === null || _j === void 0 ? void 0 : _j.platformScrollChanged) === null || _k === void 0 ? void 0 : _k.call(_j, this.handlePlatformScroll)) !== null && _l !== void 0 ? _l : null;
276
306
  }
277
307
  clearCSSProperties() {
278
308
  if (!this.containerElement)
@@ -287,7 +317,7 @@ export class Q2Popover {
287
317
  this.containerElement.style.removeProperty('--comp-pop-position');
288
318
  }
289
319
  async determinePopDirection() {
290
- var _a, _b, _c;
320
+ var _a, _b, _c, _d;
291
321
  const { containerElement, controlElement, providedDirection, displayBuffer } = this;
292
322
  if (containerElement)
293
323
  containerElement.style.maxHeight = null;
@@ -320,9 +350,10 @@ export class Q2Popover {
320
350
  : viewableSpaceBelow - displayBuffer;
321
351
  }
322
352
  else {
323
- windowHeight = window.innerHeight;
324
- maxSpaceAbove = controlTop - displayBuffer;
325
- maxSpaceBelow = windowHeight - controlBottom - displayBuffer;
353
+ const { height = window.innerHeight, offsetTop = 0 } = (_d = window.visualViewport) !== null && _d !== void 0 ? _d : {};
354
+ windowHeight = height;
355
+ maxSpaceAbove = controlTop - offsetTop - displayBuffer;
356
+ maxSpaceBelow = offsetTop + windowHeight - controlBottom - displayBuffer;
326
357
  }
327
358
  const directionWithMostSpace = maxSpaceAbove > maxSpaceBelow ? 'up' : 'down';
328
359
  // We do not want to update the max height once the popover is open unless the page orientation shifts (resize or mobile use cases)
@@ -352,12 +383,17 @@ export class Q2Popover {
352
383
  }
353
384
  }
354
385
  removeViewportListeners() {
355
- var _a;
386
+ var _a, _b, _c, _d, _e, _f, _g, _h;
356
387
  window.removeEventListener('resize', this.viewPortOrientationChanged);
357
- visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.removeEventListener('resize', this.viewPortChanged);
388
+ (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, 'resize', this.viewPortChanged);
358
389
  window.removeEventListener('scroll', this.viewPortChanged, { capture: true });
359
- (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.removeEventListener('orientationchange', this.viewPortOrientationChanged);
390
+ (_e = (_d = (_c = window.screen) === null || _c === void 0 ? void 0 : _c.orientation) === null || _d === void 0 ? void 0 : _d.removeEventListener) === null || _e === void 0 ? void 0 : _e.call(_d, 'orientationchange', this.viewPortOrientationChanged);
360
391
  window.removeEventListener('orientationchange', this.viewPortOrientationChanged);
392
+ window.removeEventListener('scroll', this.handleOutsideScroll, { capture: true });
393
+ (_f = this.containerElement) === null || _f === void 0 ? void 0 : _f.removeEventListener('wheel', this.handleInsideScroll);
394
+ (_g = this.containerElement) === null || _g === void 0 ? void 0 : _g.removeEventListener('touchmove', this.handleInsideScroll);
395
+ (_h = this.platformScrollUnsubscribe) === null || _h === void 0 ? void 0 : _h.call(this);
396
+ this.platformScrollUnsubscribe = null;
361
397
  }
362
398
  setDirectionAndShow(direction) {
363
399
  var _a;
@@ -392,7 +428,7 @@ export class Q2Popover {
392
428
  containerClasses.push('animating-open');
393
429
  if (this.animationState === 'closing')
394
430
  containerClasses.push('animating-close');
395
- return (h("div", { key: '4fe0c06793144eb83fe53cfc568af81226f78345', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1, popover: "manual" }, h("div", { key: 'ed5d7c9f5efba8b129d580e68ab6692849332cf4', ref: el => (this.contentElement = el), class: "content" }, h("slot", { key: '4c5d5b9682014b2e94b153ca33a3e0c4dd58d6bb' }))));
431
+ return (h("div", { key: 'f608766723c6ae6737181318b5baf8b52ed7fc0f', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1, popover: "manual" }, h("div", { key: '477f1a209cf4abc984a82324d0c6fc07ede82160', ref: el => (this.contentElement = el), class: "content" }, h("slot", { key: '5b48ff13907b952a2cdcffc1b6e271e4982c78ad' }))));
396
432
  }
397
433
  static get is() { return "q2-popover"; }
398
434
  static get encapsulation() { return "shadow"; }
@@ -88,9 +88,9 @@ button {
88
88
  }
89
89
  }
90
90
  /**
91
- * @prop --tct-radio-margin: (<length-percentage>+) Controls the outer margin of the radio container.
92
91
  * @prop --tct-radio-transition: (*) Controls the transition timing of radio state changes.
93
- * @prop --tct-radio-stroke-width: (<number>) Controls the stroke width of the radio circles in the default state.
92
+ * @prop --tct-radio-mark-size: (<length>) Controls the width and height of the radio mark.
93
+ * @prop --tct-radio-stroke-width: (<number>) Controls the stroke width of the radio circles in the default state. Values above `2` are clipped by the radio mark envelope.
94
94
  * @prop --tct-radio-stroke-color: (<color>) Controls the stroke color of the radio circles in the default state.
95
95
  * @prop --tct-radio-background-fill?: (<color>) Controls the optional background fill of the radio in the default state.
96
96
  * @prop --tct-radio-background-stroke: (<color>) Controls the stroke color of the radio in the default state.
@@ -109,6 +109,7 @@ button {
109
109
  * @prop --tct-radio-background-stroke-active: (<color>) Controls the stroke color when the radio is active.
110
110
  * @prop --tct-radio-hover-background-fill?: (<color>) Controls the optional background fill when the radio is hovered.
111
111
  * @prop --tct-radio-hover-stroke-color: (<color>) Controls the stroke color when the radio is hovered.
112
+ * @prop --tct-radio-checked-hover-stroke-color: (<color>) Controls the stroke color when a checked radio is hovered.
112
113
  * @prop --tct-radio-hover-label-color?: (<color>) Controls the optional label text color when the radio is hovered.
113
114
  * @prop --tct-radio-focus-background-fill?: (<color>) Controls the optional background fill when the radio is focused.
114
115
  * @prop --tct-radio-focus-stroke-color: (<color>) Controls the stroke color when the radio is focused.
@@ -129,65 +130,81 @@ button {
129
130
  * @prop --tct-radio-checked-label-letter-spacing: (<length>) Controls the label letter spacing when the radio is checked (legacy alias).
130
131
  * @prop --tct-radio-label-gap: (<length-percentage>) Controls the gap between the radio circle and label content.
131
132
  * @prop --tct-radio-label-margin-right: (<length-percentage>) Controls the right margin of the radio label.
133
+ * @prop --tct-radio-min-height: (<length>) Controls the minimum height of the radio label row.
132
134
  * @prop --tct-radio-hidden-columns: (*) Controls the grid-template-columns when the label is visually hidden.
133
135
  * @prop --tct-radio-label-hidden-columns?: (*) Controls the optional grid-template-columns when the label is visually hidden.
134
- * @prop --tct-radio-tile-border-radius: (<length-percentage>) Controls the corner radius of the radio tile.
135
136
  * @prop --tct-radio-tile-label-font-size: (<length-percentage>) Controls the font size of the radio tile label.
137
+ * @prop --tct-radio-tile-padding: (<length-percentage>+) Controls the inner padding of a radio tile.
138
+ * @prop --tct-radio-tile-divider-width: (<length>) Controls the width of the divider between radio tiles.
139
+ * @prop --tct-radio-tile-divider-color: (<color>) Controls the color of the divider between radio tiles.
140
+ * @prop --tct-radio-tile-hover-background-fill: (<color>) Controls the background of an unselected radio tile on hover.
141
+ * @prop --tct-radio-tile-active-background-fill: (<color>) Controls the background of an unselected radio tile while active.
142
+ * @prop --tct-radio-tile-checked-background-fill: (<color>) Controls the background of a selected radio tile.
143
+ * @prop --tct-radio-tile-checked-label-color: (<color>) Controls the label color of a selected radio tile.
144
+ * @prop --tct-radio-tile-indicator-height: (<length>) Controls the height of the selected radio tile indicator.
145
+ * @prop --tct-radio-tile-indicator-border-radius: (<length-percentage>+) Controls the selected radio tile indicator radius.
136
146
  * @prop --tct-radio-tile-checked-stroke-color: (<color>) Controls the border color of the radio tile when checked.
137
- * @prop --tct-radio-tile-focus-stroke-color: (<color>) Controls the border color of the radio tile when focused.
138
147
  * @prop --tct-radio-tile-focus-box-shadow: (*) Controls the box shadow of the radio tile when focused via keyboard.
139
148
  */
140
149
  :host {
141
150
  display: block;
151
+ letter-spacing: var(--tct-radio-label-letter-spacing, inherit);
152
+ }
153
+
154
+ :host([checked]:not([checked=false])) {
155
+ letter-spacing: var(--tct-radio-label-letter-spacing-checked, var(--tct-radio-checked-label-letter-spacing, var(--tct-checkbox-selected-letter-spacing, var(--tct-radio-label-letter-spacing, inherit))));
156
+ }
157
+
158
+ :host(:active) {
159
+ letter-spacing: var(--tct-radio-label-letter-spacing-active, var(--tct-radio-label-letter-spacing, inherit));
142
160
  }
143
161
 
144
162
  .radio-container {
145
- --comp-radio-margin: var(--tct-radio-margin, var(--tct-radio-margin-vertical, var(--tct-scale-2, 10px)) var(--tct-radio-margin-horizontal, var(--tct-scale-3, 15px)));
146
- --comp-big-circle-fill: var(--tct-radio-background-fill, transparent);
147
- --comp-big-circle-stroke: var(--tct-radio-background-stroke, var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494)));
148
- --comp-big-circle-stroke-width: var(--tct-radio-background-stroke-width, var(--tct-radio-stroke-width, 2));
149
- --comp-big-circle-transition: fill var(--tct-radio-background-transition, var(--tct-checkbox-tween, var(--app-tween-2, 0.4s ease)));
150
- --comp-small-circle-fill: var(--tct-radio-select-fill-default, transparent);
163
+ --comp-radio-mark-track-size: 36px;
164
+ --comp-radio-mark-size: var(--tct-radio-mark-size, 20px);
165
+ --comp-radio-mark-fill: var(--tct-radio-background-fill, transparent);
166
+ --comp-radio-mark-stroke: var(--tct-radio-background-stroke, var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494)));
167
+ --comp-radio-mark-stroke-width: var(--tct-radio-background-stroke-width, var(--tct-radio-stroke-width, 2));
168
+ --comp-radio-mark-color-transition: background-color var(--tct-radio-background-transition, var(--tct-checkbox-tween, var(--app-tween-1, 0.15s ease))), border-color var(--tct-radio-background-transition, var(--tct-checkbox-tween, var(--app-tween-1, 0.15s ease)));
169
+ --comp-radio-mark-dot-fill: var(--tct-radio-select-fill-default, transparent);
151
170
  --comp-label-content-color: var(--tct-radio-label-color, inherit);
152
171
  --comp-label-content-font-weight: var(--tct-radio-label-font-weight, var(--tct-radio-font-weight, var(--tct-checkbox-font-weight, 400)));
153
- --comp-label-content-letter-spacing: var(--tct-radio-label-letter-spacing, 0.25);
154
- --comp-label-content-margin-right: var(--tct-radio-label-margin-right, 1rem);
155
- --comp-label-content-gap: var(--tct-radio-label-gap, var(--tct-scale-1, var(--app-scale-1x, 5px)));
156
- --comp-label-hidden-columns: var(--tct-radio-hidden-columns, var(--tct-radio-label-hidden-columns, 18px 1fr));
157
- --comp-svg-transition: box-shadow var(--tct-radio-transition, var(--tct-tween-1, var(--app-tween-1, 0.2s ease)));
158
- --comp-svg-box-shadow: var(--tct-radio-box-shadow, none);
159
- --comp-big-circle-fill-checked: var(--tct-radio-checked-background-fill, var(--comp-big-circle-fill));
160
- --comp-big-circle-stroke-checked: var(--tct-radio-checked-stroke-color, var(--comp-big-circle-stroke));
161
- --comp-small-circle-fill-checked: var(--tct-radio-select-fill-checked, var(--tct-radio-checked-fill, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e))));
162
- --comp-label-content-font-weight-checked: var(--tct-radio-label-font-weight-checked, var(--tct-radio-checked-label-font-weight, var(--tct-checkbox-selected-font-weight, 600)));
163
- --comp-label-content-letter-spacing-checked: var(--tct-radio-label-letter-spacing-checked, var(--tct-radio-checked-label-letter-spacing, var(--tct-checkbox-selected-letter-spacing, var(--comp-label-content-letter-spacing))));
172
+ --comp-label-content-margin-right: var(--tct-radio-label-margin-right, 0);
173
+ --comp-label-content-gap: var(--tct-radio-label-gap, 0);
174
+ --comp-label-hidden-columns: var(--tct-radio-hidden-columns, var(--tct-radio-label-hidden-columns, var(--comp-radio-mark-track-size) 1fr));
175
+ --comp-radio-mark-transition: box-shadow var(--tct-radio-transition, var(--tct-tween-1, var(--app-tween-1, 0.15s ease))), transform var(--tct-radio-transition, var(--tct-tween-1, var(--app-tween-1, 0.15s ease)));
176
+ --comp-radio-mark-box-shadow: var(--tct-radio-box-shadow, none);
177
+ --comp-radio-mark-fill-checked: var(--tct-radio-checked-background-fill, var(--t-base, #ffffff));
178
+ --comp-radio-mark-stroke-checked: var(--tct-radio-checked-stroke-color, var(--t-primary, #6a4a9e));
179
+ --comp-radio-mark-dot-fill-checked: var(--tct-radio-select-fill-checked, var(--tct-radio-checked-fill, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, var(--t-primary, #6a4a9e)))));
180
+ --comp-label-content-font-weight-checked: var(--tct-radio-label-font-weight-checked, var(--tct-radio-checked-label-font-weight, var(--tct-checkbox-selected-font-weight, var(--comp-label-content-font-weight))));
164
181
  --comp-label-content-color-checked: var(--tct-radio-label-font-color-checked, var(--tct-radio-checked-label-font-color, var(--tct-radio-checked-label-color, inherit)));
165
- --comp-big-circle-fill-active: var(--tct-radio-background-fill-active, var(--comp-big-circle-fill));
166
- --comp-big-circle-stroke-active: var(--tct-radio-background-stroke-active, var(--comp-big-circle-stroke));
167
- --comp-small-circle-fill-active: var(--tct-radio-selected-fill-active, var(--comp-small-circle-fill-checked));
182
+ --comp-radio-mark-fill-active: var(--tct-radio-background-fill-active, #e8ddef);
183
+ --comp-radio-mark-stroke-active: var(--tct-radio-background-stroke-active, var(--t-primary-d2, #553b7e));
184
+ --comp-radio-mark-dot-fill-active: var(--tct-radio-selected-fill-active, var(--comp-radio-mark-dot-fill-checked));
168
185
  --comp-label-content-font-weight-active: var(--tct-radio-label-font-weight-active, var(--comp-label-content-font-weight));
169
- --comp-label-content-letter-spacing-active: var(--tct-radio-label-letter-spacing-active, var(--comp-label-content-letter-spacing));
170
186
  --comp-label-content-color-active: var(--tct-radio-label-color-active, var(--comp-label-content-color));
171
- --comp-big-circle-fill-hover: var(--tct-radio-hover-background-fill, var(--comp-big-circle-fill));
172
- --comp-big-circle-stroke-hover: var(--tct-radio-hover-stroke-color, var(--comp-big-circle-stroke));
187
+ --comp-radio-mark-fill-hover: var(--tct-radio-hover-background-fill, #f3eefa);
188
+ --comp-radio-mark-stroke-hover: var(--tct-radio-hover-stroke-color, var(--t-primary, #6a4a9e));
189
+ --comp-radio-mark-stroke-checked-hover: var(--tct-radio-checked-hover-stroke-color, var(--t-primary-d2, #553b7e));
173
190
  --comp-label-content-color-hover: var(--tct-radio-hover-label-color, var(--comp-label-content-color));
174
- --comp-big-circle-fill-focus: var(--tct-radio-focus-background-fill, var(--comp-big-circle-fill));
175
- --comp-big-circle-stroke-focus: var(--tct-radio-focus-stroke-color, var(--comp-big-circle-stroke));
191
+ --comp-radio-mark-fill-focus: var(--tct-radio-focus-background-fill, var(--comp-radio-mark-fill));
192
+ --comp-radio-mark-stroke-focus: var(--tct-radio-focus-stroke-color, var(--comp-radio-mark-stroke));
176
193
  --comp-label-content-color-focus: var(--tct-radio-focus-label-color, var(--comp-label-content-color));
177
- --comp-svg-box-shadow-focus-visible: var(--tct-radio-box-shadow-focus-visible, var(--tct-radio-focus-box-shadow, var(--const-double-focus-ring)));
178
- margin: var(--comp-radio-margin);
194
+ --comp-radio-mark-box-shadow-focus-visible: var(--tct-radio-box-shadow-focus-visible, var(--tct-radio-focus-box-shadow, var(--const-double-focus-ring)));
179
195
  }
180
196
  .radio-container label[for] {
181
- color: var(---comp-label-content-color);
182
- font-weight: var(---comp-label-content-font-weight);
197
+ color: var(--comp-label-content-color);
198
+ font-weight: var(--comp-label-content-font-weight);
183
199
  font-size: var(--tct-radio-label-font-size, var(--const-px-14, 14px));
184
- align-items: start;
200
+ align-items: center;
185
201
  cursor: pointer;
186
- margin-right: var(---comp-label-content-margin-right);
202
+ margin-right: var(--comp-label-content-margin-right);
187
203
  display: grid;
188
- grid-template-columns: 18px 1fr;
204
+ grid-template-columns: var(--comp-radio-mark-track-size) 1fr;
189
205
  gap: var(--comp-label-content-gap);
190
- letter-spacing: var(--comp-label-content-letter-spacing);
206
+ min-height: var(--tct-radio-min-height, var(--comp-radio-mark-track-size));
207
+ user-select: none;
191
208
  }
192
209
  .radio-container label[for].label-hidden {
193
210
  grid-template-columns: var(--comp-label-hidden-columns);
@@ -195,116 +212,153 @@ button {
195
212
  .radio-container label[for] .description-content {
196
213
  grid-column: 2;
197
214
  }
198
- .radio-container svg {
215
+ .radio-container .radio-mark {
216
+ --comp-radio-mark-current-fill: var(--comp-radio-mark-fill);
217
+ --comp-radio-mark-current-stroke: var(--comp-radio-mark-stroke);
218
+ border-radius: 50%;
219
+ box-shadow: var(--comp-radio-mark-box-shadow);
220
+ height: var(--comp-radio-mark-size);
221
+ justify-self: center;
222
+ overflow: hidden;
223
+ position: relative;
224
+ transition: var(--comp-radio-mark-transition);
225
+ width: var(--comp-radio-mark-size);
226
+ }
227
+ .radio-container .radio-mark::before {
228
+ background: var(--comp-radio-mark-current-fill);
229
+ border-color: var(--comp-radio-mark-current-stroke);
199
230
  border-radius: 50%;
200
- transition: var(--comp-svg-transition);
201
- outline: 0;
202
- width: 100%;
203
- box-shadow: var(--comp-svg-box-shadow);
231
+ border-style: solid;
232
+ border-width: calc(var(--comp-radio-mark-stroke-width) * 1px);
233
+ box-sizing: border-box;
234
+ content: "";
235
+ height: calc(var(--comp-radio-mark-size) - 2px + var(--comp-radio-mark-stroke-width) * 1px);
236
+ left: 50%;
237
+ position: absolute;
238
+ top: 50%;
239
+ transform: translate(-50%, -50%);
240
+ transition: var(--comp-radio-mark-color-transition);
241
+ width: calc(var(--comp-radio-mark-size) - 2px + var(--comp-radio-mark-stroke-width) * 1px);
204
242
  }
205
- .radio-container .big-circle {
206
- fill: var(--comp-big-circle-fill);
207
- stroke: var(--comp-big-circle-stroke);
208
- stroke-width: var(--comp-big-circle-stroke-width);
209
- transition: var(--comp-big-circle-transition);
243
+ .radio-container .radio-mark::after {
244
+ background: var(--comp-radio-mark-dot-fill);
245
+ border-radius: 50%;
246
+ content: "";
247
+ height: calc(var(--comp-radio-mark-size) / 2);
248
+ left: 50%;
249
+ position: absolute;
250
+ top: 50%;
251
+ transform: translate(-50%, -50%) scale(0);
252
+ transition: transform var(--tct-radio-transition, var(--tct-tween-1, var(--app-tween-1, 0.15s ease)));
253
+ width: calc(var(--comp-radio-mark-size) / 2);
210
254
  }
211
- .radio-container .small-circle {
212
- fill: var(--comp-small-circle-fill);
255
+ .radio-container input:focus-visible {
256
+ box-shadow: none;
213
257
  }
214
- .radio-container input:checked + label .big-circle {
215
- fill: var(--comp-big-circle-fill-checked);
216
- stroke: var(--comp-big-circle-stroke-checked);
258
+ .radio-container input:checked + label .radio-mark {
259
+ --comp-radio-mark-current-fill: var(--comp-radio-mark-fill-checked);
260
+ --comp-radio-mark-current-stroke: var(--comp-radio-mark-stroke-checked);
217
261
  }
218
- .radio-container input:checked + label .small-circle {
219
- fill: var(--comp-small-circle-fill-checked);
262
+ .radio-container input:checked + label .radio-mark::after {
263
+ background: var(--comp-radio-mark-dot-fill-checked);
264
+ transform: translate(-50%, -50%) scale(1);
220
265
  }
221
266
  .radio-container input:checked + label .label-content {
222
267
  font-weight: var(--comp-label-content-font-weight-checked);
223
- letter-spacing: var(--comp-label-content-letter-spacing-checked);
224
268
  color: var(--comp-label-content-color-checked);
225
269
  }
226
- .radio-container input:hover + label .big-circle {
227
- fill: var(--comp-big-circle-fill-hover);
228
- stroke: var(--comp-big-circle-stroke-hover);
270
+ .radio-container input:hover:not(:disabled) + label .radio-mark {
271
+ --comp-radio-mark-current-fill: var(--comp-radio-mark-fill-hover);
272
+ --comp-radio-mark-current-stroke: var(--comp-radio-mark-stroke-hover);
229
273
  }
230
- .radio-container input:hover + label .label-content {
274
+ .radio-container input:hover:not(:disabled) + label .label-content {
231
275
  color: var(--comp-label-content-color-hover);
232
276
  }
233
- .radio-container input:active + label .big-circle {
234
- fill: var(--comp-big-circle-fill-active);
235
- stroke: var(--comp-big-circle-stroke-active);
277
+ .radio-container input:active:not(:disabled) + label .radio-mark {
278
+ --comp-radio-mark-current-fill: var(--comp-radio-mark-fill-active);
279
+ --comp-radio-mark-current-stroke: var(--comp-radio-mark-stroke-active);
280
+ transform: scale(0.9);
236
281
  }
237
- .radio-container input:active + label .small-circle {
238
- fill: var(--comp-small-circle-fill-active);
282
+ .radio-container input:active:not(:disabled) + label .radio-mark::after {
283
+ background: var(--comp-radio-mark-dot-fill-active);
239
284
  }
240
- .radio-container input:active + label .label-content {
285
+ .radio-container input:active:not(:disabled) + label .label-content {
241
286
  font-weight: var(--comp-label-content-font-weight-active);
242
- letter-spacing: var(--comp-label-content-letter-spacing-active);
243
287
  color: var(--comp-label-content-color-active);
244
288
  }
245
- .radio-container input:focus + label .big-circle {
246
- fill: var(--comp-big-circle-fill-focus);
247
- stroke: var(--comp-big-circle-stroke-focus);
289
+ .radio-container input:focus + label .radio-mark {
290
+ --comp-radio-mark-current-fill: var(--comp-radio-mark-fill-focus);
291
+ --comp-radio-mark-current-stroke: var(--comp-radio-mark-stroke-focus);
248
292
  }
249
293
  .radio-container input:focus + label .label-content {
250
294
  color: var(--comp-label-content-color-focus);
251
295
  }
252
-
253
- .radio-tile {
254
- flex-basis: 100px;
255
- flex-grow: 0;
256
- flex-wrap: wrap;
296
+ .radio-container input:focus-visible + label .radio-mark {
297
+ box-shadow: var(--comp-radio-mark-box-shadow-focus-visible);
257
298
  }
299
+ .radio-container input:checked:hover:not(:disabled) + label .radio-mark {
300
+ --comp-radio-mark-current-stroke: var(--comp-radio-mark-stroke-checked-hover);
301
+ }
302
+
258
303
  .radio-tile label[for] {
259
304
  color: var(--tct-radio-label-font-color, var(--tct-radio-label-color, inherit));
260
305
  align-items: center;
261
- border-radius: var(--tct-radio-tile-border-radius, var(--app-border-radius-1, 3px));
262
- border: 2px solid var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494));
263
- background: var(--tct-radio-background-fill, transparent);
306
+ border: 0;
307
+ background: var(--tct-radio-background-fill, var(--t-base, #ffffff));
264
308
  cursor: pointer;
265
309
  display: block;
266
310
  font-size: var(--tct-radio-tile-label-font-size, var(--tct-radio-label-font-size, var(--const-px-14, 14px)));
267
- padding: 10px;
311
+ overflow: hidden;
312
+ padding: var(--tct-radio-tile-padding, 10px 20px);
268
313
  position: relative;
269
314
  text-align: center;
270
- transition: border-color var(--tct-tween-1, var(--app-tween-1, 0.2s ease));
315
+ transition: background var(--tct-tween-1, var(--app-tween-1, 0.15s ease)), color var(--tct-tween-1, var(--app-tween-1, 0.15s ease)), box-shadow var(--tct-tween-1, var(--app-tween-1, 0.15s ease));
271
316
  white-space: nowrap;
317
+ user-select: none;
318
+ }
319
+ .radio-tile input:focus-visible {
320
+ box-shadow: none;
272
321
  }
273
322
  .radio-tile input:checked + label {
274
- border-color: var(--tct-radio-tile-checked-stroke-color, var(--tct-radio-checked-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)))));
275
- box-shadow: inset 0 0 0 2px #ffffff;
276
- background: var(--tct-radio-checked-background-fill, transparent);
277
- color: var(--tct-radio-checked-label-color, inherit);
323
+ background: var(--tct-radio-tile-checked-background-fill, var(--tct-radio-checked-background-fill, #f3eefa));
324
+ color: var(--tct-radio-tile-checked-label-color, var(--tct-radio-checked-label-color, var(--t-primary, #6a4a9e)));
278
325
  }
279
326
  .radio-tile input:checked + label:after {
280
- border-bottom-width: 3px;
281
- border-bottom: 5px solid var(--tct-radio-tile-checked-stroke-color, var(--tct-radio-checked-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)))));
282
- border-left-width: 5px;
283
- border-left: 8px solid transparent;
284
- border-right-width: 5px;
285
- border-right: 8px solid transparent;
327
+ background: var(--tct-radio-tile-checked-stroke-color, var(--t-primary, #6a4a9e));
328
+ border-radius: var(--tct-radio-tile-indicator-border-radius, 9999px 9999px 0 0);
286
329
  bottom: 0;
287
330
  content: "";
288
- height: 0;
289
- left: 50%;
290
- margin-left: -5px;
331
+ height: var(--tct-radio-tile-indicator-height, 2px);
332
+ left: 0;
291
333
  position: absolute;
292
- width: 0;
334
+ right: 0;
293
335
  }
294
- .radio-tile input:hover + label {
295
- border-color: var(--tct-radio-hover-stroke-color, var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494)));
296
- background: var(--tct-radio-hover-background-fill, transparent);
336
+ .radio-tile input:not(:checked):hover:not(:disabled) + label {
337
+ background: var(--tct-radio-tile-hover-background-fill, #fafafa);
297
338
  color: var(--tct-radio-hover-label-color, var(--tct-radio-label-color, inherit));
298
339
  }
299
- .radio-tile input:focus + label, .radio-tile input:focus:checked + label {
300
- --comp-radio-tile-focus-box-shadow-fallback: var(--const-double-focus-ring), var(--tct-global-focus, 0 0 0 2px #33b4ff);
301
- border-color: var(--tct-radio-tile-focus-stroke-color, var(--tct-radio-focus-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)))));
302
- background: var(--tct-radio-focus-background-fill, transparent);
303
- box-shadow: var(--tct-radio-tile-focus-box-shadow, var(--comp-radio-tile-focus-box-shadow-fallback));
304
- color: var(--tct-radio-focus-label-color, var(--tct-radio-checked-label-color, inherit));
340
+ .radio-tile input:not(:checked):active:not(:disabled) + label {
341
+ background: var(--tct-radio-tile-active-background-fill, var(--t-gray-14, #f2f2f2));
305
342
  }
306
- .radio-tile input:focus:checked + label:after {
307
- border-bottom: 5px solid var(--tct-radio-tile-focus-stroke-color, var(--tct-radio-focus-stroke-color, #2e2e2e));
343
+ .radio-tile input:focus-visible + label {
344
+ z-index: 1;
345
+ box-shadow: var(--tct-radio-tile-focus-box-shadow, var(--const-double-focus-ring));
346
+ }
347
+
348
+ :host(:not(:first-child)) .radio-tile label[for] {
349
+ border-left: var(--tct-radio-tile-divider-width, 1px) solid var(--tct-radio-tile-divider-color, var(--t-gray-13, #e6e6e6));
350
+ }
351
+
352
+ :host(:first-child) .radio-tile label[for] {
353
+ border-radius: var(--tct-radio-group-tile-border-radius, var(--app-border-radius-2, 8px)) 0 0 var(--tct-radio-group-tile-border-radius, var(--app-border-radius-2, 8px));
354
+ }
355
+
356
+ :host(:last-child) .radio-tile label[for] {
357
+ border-radius: 0 var(--tct-radio-group-tile-border-radius, var(--app-border-radius-2, 8px)) var(--tct-radio-group-tile-border-radius, var(--app-border-radius-2, 8px)) 0;
358
+ }
359
+
360
+ :host(:only-child) .radio-tile label[for] {
361
+ border-radius: var(--tct-radio-group-tile-border-radius, var(--app-border-radius-2, 8px));
308
362
  }
309
363
 
310
364
  input:disabled + label[for] {
@@ -90,7 +90,7 @@ export class Q2Radio {
90
90
  // #endregion
91
91
  // #region Render Methods
92
92
  render() {
93
- return (h("div", { key: '699970d6bed602cbd0e6954d36ca3b03b2122fdc', class: this.groupTileLayout ? 'radio-tile' : 'radio-container' }, h("input", { key: 'edaaa6bbba5eb256fed9e02863b3cf3b706b4e73', ref: el => (this.inputField = el), class: "sr", id: this._id, type: "radio", name: this.name, value: this.value, disabled: this.disabled || this.groupDisabled, checked: this.checked, "aria-label": this.label && this.hideLabel ? loc(this.label) : undefined, onChange: this.inputChange, "test-id": "q2RadioInnerRadioBox" }), h("label", { key: 'fd0c67c56535a53f3cbbeddd32f3817b430b9075', htmlFor: this._id, class: this.hideLabel ? 'label-hidden' : undefined, "test-id": "radioButton" }, !this.groupTileLayout && (h("svg", { key: '2cfaa2fa7393ff369a319adb780f3667dc11194d', viewBox: "0 0 18 18" }, h("circle", { key: '157a1a5b430a0e63e695aec87bba111f60357444', class: "big-circle", stroke: "none", fill: "none", cx: "9", cy: "9", r: "8" }), h("circle", { key: '4c4daede7d3414b1e7a9c037ba4d9e919300a9ca', class: "small-circle", stroke: "none", fill: "none", cx: "9", cy: "9", r: "4" }))), !this.hideLabel && (h("div", { key: 'e9b3ba9aceb316988bf570a3dd50cf99166fb248', class: "label-content" }, (this.label && loc(this.label)) || '', h("slot", { key: 'a6ae2c01e62af90255f836a69458d530136daccb' }))))));
93
+ return (h("div", { key: '1aafcfbdb7d6e2863618d6741bc12491a109ec80', class: this.groupTileLayout ? 'radio-tile' : 'radio-container' }, h("input", { key: '1989707753be2d6b8bc8c69098a5c9bf27af99b7', ref: el => (this.inputField = el), class: "sr", id: this._id, type: "radio", name: this.name, value: this.value, disabled: this.disabled || this.groupDisabled, checked: this.checked, "aria-label": this.label && this.hideLabel ? loc(this.label) : undefined, onChange: this.inputChange, "test-id": "q2RadioInnerRadioBox" }), h("label", { key: '93a6f7f8d718c8070c4d4d88c3b48905f518e166', htmlFor: this._id, class: this.hideLabel ? 'label-hidden' : undefined, "test-id": "radioButton" }, !this.groupTileLayout && (h("span", { key: 'f351a1aef39845bbb1bbd360037d36486de27cd9', class: "radio-mark", "aria-hidden": "true" })), !this.hideLabel && (h("div", { key: 'c9cb25115cffc72dfbb52024b6343f16a0744fbc', class: "label-content" }, (this.label && loc(this.label)) || '', h("slot", { key: '8d63e148c83fb247b60b719d3de8627c327efaa4' }))))));
94
94
  }
95
95
  static get is() { return "q2-radio"; }
96
96
  static get encapsulation() { return "shadow"; }
@@ -250,7 +250,7 @@ export class Q2Radio {
250
250
  "docs": {
251
251
  "tags": [{
252
252
  "name": "warning",
253
- "text": "Only use when a visible label is impractical."
253
+ "text": "Hides the label visually. `label` text is still required for screenreader compliance."
254
254
  }],
255
255
  "text": "Hides the field's `<label>` element from view."
256
256
  },
@@ -271,6 +271,9 @@ export class Q2Radio {
271
271
  "optional": false,
272
272
  "docs": {
273
273
  "tags": [{
274
+ "name": "warning",
275
+ "text": "Required for screen reader compliance even when `hideLabel` is `true`."
276
+ }, {
274
277
  "name": "localizable",
275
278
  "text": undefined
276
279
  }],
@@ -5,12 +5,24 @@ const VARIANTS = [
5
5
  {
6
6
  name: 'unchecked',
7
7
  html: `<q2-radio value="1" label="Default"></q2-radio>`,
8
- states: ['resting', 'hover', 'focus'],
8
+ states: ['resting', 'hover', 'focus', 'active'],
9
+ },
10
+ {
11
+ name: 'letter-spacing-override',
12
+ html: `<style>
13
+ q2-radio {
14
+ letter-spacing: 0.12em !important;
15
+ }
16
+ </style>
17
+ <div style="width: 220px">
18
+ <q2-radio value="1" label="Send the payment on the next business day" checked></q2-radio>
19
+ </div>`,
20
+ states: ['resting'],
9
21
  },
10
22
  {
11
23
  name: 'checked',
12
24
  html: `<q2-radio value="1" label="Default" checked></q2-radio>`,
13
- states: ['resting', 'hover', 'focus'],
25
+ states: ['resting', 'hover', 'focus', 'active'],
14
26
  },
15
27
  {
16
28
  name: 'disabled-unchecked',
@@ -58,6 +70,15 @@ const focusCase = (variant, theme) => {
58
70
  await expect(page).toHaveScreenshot(`q2-radio--${variant.name}--focus--${theme}.png`);
59
71
  });
60
72
  };
73
+ const activeCase = (variant, theme) => {
74
+ test(`q2-radio--${variant.name}--active — ${theme}`, async ({ page }) => {
75
+ await setupPage(page, variant.html, { theme });
76
+ await page.locator('q2-radio').hover();
77
+ await page.mouse.down();
78
+ await expect(page).toHaveScreenshot(`q2-radio--${variant.name}--active--${theme}.png`);
79
+ await page.mouse.up();
80
+ });
81
+ };
61
82
  test.describe('q2-radio — variants × themes', () => {
62
83
  for (const variant of VARIANTS) {
63
84
  for (const theme of THEMES) {
@@ -67,6 +88,8 @@ test.describe('q2-radio — variants × themes', () => {
67
88
  hoverCase(variant, theme);
68
89
  if (variant.states.includes('focus'))
69
90
  focusCase(variant, theme);
91
+ if (variant.states.includes('active'))
92
+ activeCase(variant, theme);
70
93
  }
71
94
  }
72
95
  });