q2-tecton-elements 1.70.2 → 1.71.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 (360) hide show
  1. package/dist/bundle-report.json +556 -231
  2. package/dist/cjs/click-elsewhere_3.cjs.entry.js +2 -2
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/q2-action-group_2.cjs.entry.js +3 -3
  5. package/dist/cjs/q2-action-sheet.cjs.entry.js +4 -3
  6. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  7. package/dist/cjs/q2-badge_2.cjs.entry.js +17 -8
  8. package/dist/cjs/q2-btn_2.cjs.entry.js +2 -2
  9. package/dist/cjs/q2-calendar.cjs.entry.js +8 -6
  10. package/dist/cjs/q2-card-image.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-carousel.cjs.entry.js +108 -74
  14. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-checkbox_2.cjs.entry.js +3 -3
  19. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-editable-field.cjs.entry.js +3 -3
  25. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-file-picker.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-form.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-item.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-link_2.cjs.entry.js +2 -2
  33. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-meter.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-modal.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-otp.cjs.entry.js +1 -1
  40. package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
  41. package/dist/cjs/q2-pill.cjs.entry.js +18 -2
  42. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  43. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  45. package/dist/cjs/q2-search.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  47. package/dist/cjs/q2-select.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  49. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +32 -9
  50. package/dist/cjs/q2-stepper.cjs.entry.js +18 -4
  51. package/dist/cjs/q2-surface.cjs.entry.js +3 -3
  52. package/dist/cjs/q2-tab-container.cjs.entry.js +89 -20
  53. package/dist/cjs/q2-tab-pane.cjs.entry.js +2 -2
  54. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  55. package/dist/cjs/q2-textarea.cjs.entry.js +3 -3
  56. package/dist/cjs/q2-toast.cjs.entry.js +1 -1
  57. package/dist/cjs/q2-tooltip.cjs.entry.js +26 -15
  58. package/dist/cjs/tecton-tab-pane.cjs.entry.js +3 -3
  59. package/dist/collection/components/q2-action-group/q2-action-group.css +22 -0
  60. package/dist/collection/components/q2-action-sheet/q2-action-sheet.css +24 -1
  61. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +3 -2
  62. package/dist/collection/components/q2-avatar/q2-avatar.css +23 -1
  63. package/dist/collection/components/q2-avatar/test/q2-avatar-test.vr.js +13 -1
  64. package/dist/collection/components/q2-badge/q2-badge.css +26 -4
  65. package/dist/collection/components/q2-badge/test/q2-badge-test.vr.js +13 -1
  66. package/dist/collection/components/q2-btn/q2-btn.css +53 -9
  67. package/dist/collection/components/q2-btn/test/q2-btn-test.vr.js +19 -1
  68. package/dist/collection/components/q2-calendar/q2-calendar.css +26 -4
  69. package/dist/collection/components/q2-calendar/q2-calendar.js +7 -5
  70. package/dist/collection/components/q2-calendar/q2-month-picker.css +22 -0
  71. package/dist/collection/components/q2-calendar/test/q2-calendar-test.vr.js +34 -1
  72. package/dist/collection/components/q2-card/q2-card.css +23 -1
  73. package/dist/collection/components/q2-card/test/q2-card-test.vr.js +10 -1
  74. package/dist/collection/components/q2-card-image/q2-card-image.css +23 -1
  75. package/dist/collection/components/q2-card-image/test/q2-card-image-test.vr.js +9 -1
  76. package/dist/collection/components/q2-carousel/q2-carousel.css +29 -39
  77. package/dist/collection/components/q2-carousel/q2-carousel.js +122 -69
  78. package/dist/collection/components/q2-carousel/test/q2-carousel-test.vr.js +5 -4
  79. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.css +22 -0
  80. package/dist/collection/components/q2-chart-area/q2-chart-area.css +22 -0
  81. package/dist/collection/components/q2-chart-bar/q2-chart-bar.css +22 -0
  82. package/dist/collection/components/q2-chart-donut/q2-chart-donut.css +24 -2
  83. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.vr.js +13 -1
  84. package/dist/collection/components/q2-checkbox/q2-checkbox.css +23 -1
  85. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.vr.js +11 -1
  86. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +23 -1
  87. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.vr.js +11 -1
  88. package/dist/collection/components/q2-currency/q2-currency.css +25 -3
  89. package/dist/collection/components/q2-currency/test/q2-currency-test.vr.js +13 -1
  90. package/dist/collection/components/q2-data-table/q2-data-table.css +24 -2
  91. package/dist/collection/components/q2-data-table/test/q2-data-table-test.vr.js +11 -1
  92. package/dist/collection/components/q2-detail/q2-detail.css +32 -10
  93. package/dist/collection/components/q2-dropdown/q2-dropdown.css +22 -0
  94. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.css +22 -0
  95. package/dist/collection/components/q2-editable-field/q2-editable-field.css +22 -0
  96. package/dist/collection/components/q2-editable-field/q2-editable-field.js +2 -2
  97. package/dist/collection/components/q2-example/q2-example.css +23 -0
  98. package/dist/collection/components/q2-file-picker/q2-file-picker.css +57 -10
  99. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.vr.js +14 -1
  100. package/dist/collection/components/q2-form/q2-form.css +22 -0
  101. package/dist/collection/components/q2-formatted-text/q2-formatted-text.css +25 -3
  102. package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.vr.js +13 -1
  103. package/dist/collection/components/q2-icon/assets/standard.symbol.svg +1 -1
  104. package/dist/collection/components/q2-icon/q2-icon.css +22 -0
  105. package/dist/collection/components/q2-input/q2-input.css +26 -4
  106. package/dist/collection/components/q2-input/q2-input.js +39 -7
  107. package/dist/collection/components/q2-input/test/q2-input-test.vr.js +36 -1
  108. package/dist/collection/components/q2-item/q2-item.css +46 -2
  109. package/dist/collection/components/q2-item/test/q2-item-test.vr.js +12 -1
  110. package/dist/collection/components/q2-legend/q2-legend.css +24 -2
  111. package/dist/collection/components/q2-link/q2-link.css +22 -0
  112. package/dist/collection/components/q2-list/q2-list.css +46 -2
  113. package/dist/collection/components/q2-list/test/q2-list-test.vr.js +12 -1
  114. package/dist/collection/components/q2-loading/q2-loading.css +23 -0
  115. package/dist/collection/components/q2-message/q2-message.css +22 -0
  116. package/dist/collection/components/q2-meter/q2-meter.css +25 -3
  117. package/dist/collection/components/q2-meter/test/q2-meter-test.vr.js +12 -1
  118. package/dist/collection/components/q2-modal/q2-modal.css +23 -1
  119. package/dist/collection/components/q2-modal/test/q2-modal-test.vr.js +12 -1
  120. package/dist/collection/components/q2-optgroup/q2-optgroup.css +23 -1
  121. package/dist/collection/components/q2-option/q2-option.css +22 -0
  122. package/dist/collection/components/q2-option-list/q2-option-list.css +22 -0
  123. package/dist/collection/components/q2-otp/q2-otp.css +27 -4
  124. package/dist/collection/components/q2-otp/test/q2-otp-test.vr.js +12 -1
  125. package/dist/collection/components/q2-pagination/q2-pagination.css +22 -0
  126. package/dist/collection/components/q2-pill/q2-pill.css +42 -2
  127. package/dist/collection/components/q2-pill/q2-pill.js +18 -1
  128. package/dist/collection/components/q2-pill/test/q2-pill-test.vr.js +27 -1
  129. package/dist/collection/components/q2-popover/q2-popover.css +22 -7
  130. package/dist/collection/components/q2-radio/q2-radio.css +24 -2
  131. package/dist/collection/components/q2-radio/test/q2-radio-test.vr.js +12 -1
  132. package/dist/collection/components/q2-radio-group/q2-radio-group.css +23 -1
  133. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.vr.js +11 -1
  134. package/dist/collection/components/q2-relative-time/q2-relative-time.css +22 -0
  135. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  136. package/dist/collection/components/q2-resize-observer/q2-resize-observer.css +22 -0
  137. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  138. package/dist/collection/components/q2-search/q2-search.css +22 -0
  139. package/dist/collection/components/q2-search/q2-search.js +1 -1
  140. package/dist/collection/components/q2-section/q2-section.css +23 -1
  141. package/dist/collection/components/q2-section/q2-section.js +2 -2
  142. package/dist/collection/components/q2-section/test/q2-section-test.vr.js +11 -1
  143. package/dist/collection/components/q2-select/q2-select.css +22 -0
  144. package/dist/collection/components/q2-stepper/q2-stepper.css +38 -4
  145. package/dist/collection/components/q2-stepper/q2-stepper.js +17 -3
  146. package/dist/collection/components/q2-stepper/test/q2-stepper-test.vr.js +12 -1
  147. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.css +22 -0
  148. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
  149. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +39 -5
  150. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +31 -8
  151. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.vr.js +16 -1
  152. package/dist/collection/components/q2-surface/q2-surface.css +71 -32
  153. package/dist/collection/components/q2-surface/q2-surface.js +7 -7
  154. package/dist/collection/components/q2-surface/test/q2-surface-test.vr.js +54 -0
  155. package/dist/collection/components/q2-tab-container/q2-tab-container.css +112 -6
  156. package/dist/collection/components/q2-tab-container/q2-tab-container.js +114 -21
  157. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.vr.js +24 -1
  158. package/dist/collection/components/q2-tab-pane/q2-tab-pane.css +22 -0
  159. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  160. package/dist/collection/components/q2-tag/q2-tag.css +25 -2
  161. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  162. package/dist/collection/components/q2-tag/test/q2-tag-test.vr.js +21 -1
  163. package/dist/collection/components/q2-textarea/q2-textarea.css +24 -2
  164. package/dist/collection/components/q2-textarea/q2-textarea.js +2 -2
  165. package/dist/collection/components/q2-textarea/test/q2-textarea-test.vr.js +16 -1
  166. package/dist/collection/components/q2-toast/q2-toast.css +22 -0
  167. package/dist/collection/components/q2-tooltip/q2-tooltip.css +27 -19
  168. package/dist/collection/components/q2-tooltip/q2-tooltip.js +32 -21
  169. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.vr.js +13 -1
  170. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.css +22 -0
  171. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  172. package/dist/collection/utils/helpers.js +29 -6
  173. package/dist/collection/utils/test/vr-helpers.js +7 -0
  174. package/dist/components/q2-action-group2.js +1 -1
  175. package/dist/components/q2-action-sheet.js +21 -18
  176. package/dist/components/q2-avatar2.js +1 -1
  177. package/dist/components/q2-badge2.js +1 -1
  178. package/dist/components/q2-btn2.js +15 -15
  179. package/dist/components/q2-calendar.js +306 -301
  180. package/dist/components/q2-card-image.js +6 -6
  181. package/dist/components/q2-card.js +14 -14
  182. package/dist/components/q2-carousel-pane2.js +1 -1
  183. package/dist/components/q2-carousel.js +633 -585
  184. package/dist/components/q2-chart-area.js +1 -1
  185. package/dist/components/q2-chart-bar.js +70 -70
  186. package/dist/components/q2-chart-donut.js +1 -1
  187. package/dist/components/q2-checkbox-group.js +42 -42
  188. package/dist/components/q2-checkbox2.js +1 -1
  189. package/dist/components/q2-currency.js +32 -32
  190. package/dist/components/q2-data-table.js +34 -34
  191. package/dist/components/q2-detail.js +5 -5
  192. package/dist/components/q2-dropdown-item2.js +11 -11
  193. package/dist/components/q2-dropdown.js +17 -17
  194. package/dist/components/q2-editable-field.js +12 -11
  195. package/dist/components/q2-example.js +15 -15
  196. package/dist/components/q2-file-picker.js +25 -25
  197. package/dist/components/q2-form.js +11 -11
  198. package/dist/components/q2-formatted-text.js +5 -5
  199. package/dist/components/q2-icon2.js +1 -1
  200. package/dist/components/q2-input2.js +24 -13
  201. package/dist/components/q2-item2.js +1 -1
  202. package/dist/components/q2-legend2.js +56 -56
  203. package/dist/components/q2-link2.js +6 -6
  204. package/dist/components/q2-list2.js +22 -22
  205. package/dist/components/q2-loading2.js +1 -1
  206. package/dist/components/q2-message2.js +20 -20
  207. package/dist/components/q2-meter.js +1 -1
  208. package/dist/components/q2-modal.js +3 -3
  209. package/dist/components/q2-month-picker.js +10 -10
  210. package/dist/components/q2-optgroup2.js +7 -7
  211. package/dist/components/q2-option-list2.js +34 -34
  212. package/dist/components/q2-option2.js +13 -13
  213. package/dist/components/q2-otp.js +5 -5
  214. package/dist/components/q2-pagination.js +58 -58
  215. package/dist/components/q2-pill.js +66 -54
  216. package/dist/components/q2-popover2.js +1 -1
  217. package/dist/components/q2-radio-group.js +5 -5
  218. package/dist/components/q2-radio.js +14 -14
  219. package/dist/components/q2-relative-time.js +10 -10
  220. package/dist/components/q2-resize-observer2.js +9 -9
  221. package/dist/components/q2-search.js +5 -5
  222. package/dist/components/q2-section.js +22 -22
  223. package/dist/components/q2-select2.js +1 -1
  224. package/dist/components/q2-stepper-pane.js +33 -33
  225. package/dist/components/q2-stepper-vertical.js +84 -60
  226. package/dist/components/q2-stepper.js +79 -65
  227. package/dist/components/q2-surface.js +14 -14
  228. package/dist/components/q2-tab-container.js +110 -55
  229. package/dist/components/q2-tab-pane.js +7 -7
  230. package/dist/components/q2-tag2.js +39 -39
  231. package/dist/components/q2-textarea.js +16 -16
  232. package/dist/components/q2-toast.js +22 -22
  233. package/dist/components/q2-tooltip2.js +26 -25
  234. package/dist/components/tecton-tab-pane.js +11 -11
  235. package/dist/esm/click-elsewhere_3.entry.js +2 -2
  236. package/dist/esm/loader.js +1 -1
  237. package/dist/esm/q2-action-group_2.entry.js +3 -3
  238. package/dist/esm/q2-action-sheet.entry.js +4 -3
  239. package/dist/esm/q2-avatar.entry.js +1 -1
  240. package/dist/esm/q2-badge_2.entry.js +17 -8
  241. package/dist/esm/q2-btn_2.entry.js +2 -2
  242. package/dist/esm/q2-calendar.entry.js +8 -6
  243. package/dist/esm/q2-card-image.entry.js +1 -1
  244. package/dist/esm/q2-card.entry.js +1 -1
  245. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  246. package/dist/esm/q2-carousel.entry.js +104 -70
  247. package/dist/esm/q2-chart-area.entry.js +1 -1
  248. package/dist/esm/q2-chart-bar.entry.js +1 -1
  249. package/dist/esm/q2-chart-donut.entry.js +1 -1
  250. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  251. package/dist/esm/q2-checkbox_2.entry.js +3 -3
  252. package/dist/esm/q2-currency.entry.js +1 -1
  253. package/dist/esm/q2-data-table.entry.js +1 -1
  254. package/dist/esm/q2-detail.entry.js +1 -1
  255. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  256. package/dist/esm/q2-dropdown.entry.js +1 -1
  257. package/dist/esm/q2-editable-field.entry.js +3 -3
  258. package/dist/esm/q2-example.entry.js +1 -1
  259. package/dist/esm/q2-file-picker.entry.js +1 -1
  260. package/dist/esm/q2-form.entry.js +1 -1
  261. package/dist/esm/q2-formatted-text.entry.js +1 -1
  262. package/dist/esm/q2-icon.entry.js +1 -1
  263. package/dist/esm/q2-item.entry.js +1 -1
  264. package/dist/esm/q2-legend.entry.js +1 -1
  265. package/dist/esm/q2-link_2.entry.js +2 -2
  266. package/dist/esm/q2-message.entry.js +1 -1
  267. package/dist/esm/q2-meter.entry.js +1 -1
  268. package/dist/esm/q2-modal.entry.js +1 -1
  269. package/dist/esm/q2-month-picker.entry.js +1 -1
  270. package/dist/esm/q2-optgroup.entry.js +1 -1
  271. package/dist/esm/q2-option.entry.js +1 -1
  272. package/dist/esm/q2-otp.entry.js +1 -1
  273. package/dist/esm/q2-pagination.entry.js +1 -1
  274. package/dist/esm/q2-pill.entry.js +18 -2
  275. package/dist/esm/q2-radio-group.entry.js +1 -1
  276. package/dist/esm/q2-radio.entry.js +1 -1
  277. package/dist/esm/q2-relative-time.entry.js +2 -2
  278. package/dist/esm/q2-search.entry.js +2 -2
  279. package/dist/esm/q2-section.entry.js +3 -3
  280. package/dist/esm/q2-select.entry.js +1 -1
  281. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  282. package/dist/esm/q2-stepper-vertical.entry.js +32 -9
  283. package/dist/esm/q2-stepper.entry.js +18 -4
  284. package/dist/esm/q2-surface.entry.js +3 -3
  285. package/dist/esm/q2-tab-container.entry.js +89 -20
  286. package/dist/esm/q2-tab-pane.entry.js +2 -2
  287. package/dist/esm/q2-tecton-elements.js +1 -1
  288. package/dist/esm/q2-textarea.entry.js +3 -3
  289. package/dist/esm/q2-toast.entry.js +1 -1
  290. package/dist/esm/q2-tooltip.entry.js +27 -16
  291. package/dist/esm/tecton-tab-pane.entry.js +3 -3
  292. package/dist/q2-tecton-elements/assets/standard.symbol.svg +1 -1
  293. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js +23 -23
  294. package/dist/q2-tecton-elements/q2-action-group_2.entry.js +42 -42
  295. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +21 -18
  296. package/dist/q2-tecton-elements/q2-avatar.entry.js +1 -1
  297. package/dist/q2-tecton-elements/q2-badge_2.entry.js +25 -15
  298. package/dist/q2-tecton-elements/q2-btn_2.entry.js +2 -2
  299. package/dist/q2-tecton-elements/q2-calendar.entry.js +120 -115
  300. package/dist/q2-tecton-elements/q2-card-image.entry.js +1 -1
  301. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  302. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +11 -11
  303. package/dist/q2-tecton-elements/q2-carousel.entry.js +572 -540
  304. package/dist/q2-tecton-elements/q2-chart-area.entry.js +166 -166
  305. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +190 -190
  306. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +1 -1
  307. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +8 -8
  308. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +7 -7
  309. package/dist/q2-tecton-elements/q2-currency.entry.js +40 -40
  310. package/dist/q2-tecton-elements/q2-data-table.entry.js +64 -64
  311. package/dist/q2-tecton-elements/q2-detail.entry.js +1 -1
  312. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +5 -5
  313. package/dist/q2-tecton-elements/q2-dropdown.entry.js +21 -21
  314. package/dist/q2-tecton-elements/q2-editable-field.entry.js +18 -17
  315. package/dist/q2-tecton-elements/q2-example.entry.js +5 -5
  316. package/dist/q2-tecton-elements/q2-file-picker.entry.js +6 -6
  317. package/dist/q2-tecton-elements/q2-form.entry.js +3 -3
  318. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +3 -3
  319. package/dist/q2-tecton-elements/q2-icon.entry.js +1 -1
  320. package/dist/q2-tecton-elements/q2-item.entry.js +1 -1
  321. package/dist/q2-tecton-elements/q2-legend.entry.js +8 -8
  322. package/dist/q2-tecton-elements/q2-link_2.entry.js +5 -5
  323. package/dist/q2-tecton-elements/q2-message.entry.js +23 -23
  324. package/dist/q2-tecton-elements/q2-meter.entry.js +4 -4
  325. package/dist/q2-tecton-elements/q2-modal.entry.js +3 -3
  326. package/dist/q2-tecton-elements/q2-month-picker.entry.js +39 -39
  327. package/dist/q2-tecton-elements/q2-optgroup.entry.js +13 -13
  328. package/dist/q2-tecton-elements/q2-option.entry.js +22 -22
  329. package/dist/q2-tecton-elements/q2-otp.entry.js +1 -1
  330. package/dist/q2-tecton-elements/q2-pagination.entry.js +11 -11
  331. package/dist/q2-tecton-elements/q2-pill.entry.js +30 -18
  332. package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
  333. package/dist/q2-tecton-elements/q2-radio.entry.js +24 -24
  334. package/dist/q2-tecton-elements/q2-relative-time.entry.js +21 -21
  335. package/dist/q2-tecton-elements/q2-search.entry.js +12 -12
  336. package/dist/q2-tecton-elements/q2-section.entry.js +25 -25
  337. package/dist/q2-tecton-elements/q2-select.entry.js +5 -5
  338. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +16 -16
  339. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +77 -53
  340. package/dist/q2-tecton-elements/q2-stepper.entry.js +44 -30
  341. package/dist/q2-tecton-elements/q2-surface.entry.js +5 -5
  342. package/dist/q2-tecton-elements/q2-tab-container.entry.js +109 -56
  343. package/dist/q2-tecton-elements/q2-tab-pane.entry.js +13 -13
  344. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  345. package/dist/q2-tecton-elements/q2-textarea.entry.js +14 -14
  346. package/dist/q2-tecton-elements/q2-toast.entry.js +6 -6
  347. package/dist/q2-tecton-elements/q2-tooltip.entry.js +25 -24
  348. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +11 -11
  349. package/dist/types/components/q2-carousel/q2-carousel.d.ts +14 -0
  350. package/dist/types/components/q2-input/q2-input.d.ts +7 -1
  351. package/dist/types/components/q2-pill/q2-pill.d.ts +2 -0
  352. package/dist/types/components/q2-stepper/q2-stepper.d.ts +1 -0
  353. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +3 -2
  354. package/dist/types/components/q2-surface/q2-surface.d.ts +3 -3
  355. package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +17 -3
  356. package/dist/types/components/q2-tooltip/q2-tooltip.d.ts +2 -1
  357. package/dist/types/components.d.ts +50 -21
  358. package/dist/types/utils/helpers.d.ts +16 -1
  359. package/dist/types/utils/test/vr-helpers.d.ts +11 -0
  360. package/package.json +12 -5
@@ -65,6 +65,28 @@ button {
65
65
  visibility: hidden;
66
66
  }
67
67
 
68
+ @container style(--t-prefers-motion: "reduced") {
69
+ *,
70
+ *::before,
71
+ *::after {
72
+ animation-duration: 0.01ms !important;
73
+ transition-duration: 0.01ms !important;
74
+ animation-delay: 0ms !important;
75
+ transition-delay: 0ms !important;
76
+ }
77
+ }
78
+ @container (not style(--t-prefers-motion: "normal")) and (not style(--t-prefers-motion: "reduced")) {
79
+ @media (prefers-reduced-motion: reduce) {
80
+ *,
81
+ *::before,
82
+ *::after {
83
+ animation-duration: 0.01ms !important;
84
+ transition-duration: 0.01ms !important;
85
+ animation-delay: 0ms !important;
86
+ transition-delay: 0ms !important;
87
+ }
88
+ }
89
+ }
68
90
  * {
69
91
  box-sizing: border-box;
70
92
  }
@@ -132,6 +154,28 @@ button {
132
154
  visibility: hidden;
133
155
  }
134
156
 
157
+ @container style(--t-prefers-motion: "reduced") {
158
+ *,
159
+ *::before,
160
+ *::after {
161
+ animation-duration: 0.01ms !important;
162
+ transition-duration: 0.01ms !important;
163
+ animation-delay: 0ms !important;
164
+ transition-delay: 0ms !important;
165
+ }
166
+ }
167
+ @container (not style(--t-prefers-motion: "normal")) and (not style(--t-prefers-motion: "reduced")) {
168
+ @media (prefers-reduced-motion: reduce) {
169
+ *,
170
+ *::before,
171
+ *::after {
172
+ animation-duration: 0.01ms !important;
173
+ transition-duration: 0.01ms !important;
174
+ animation-delay: 0ms !important;
175
+ transition-delay: 0ms !important;
176
+ }
177
+ }
178
+ }
135
179
  /**
136
180
  * @prop --tct-btn-border?: (*) Controls the optional border shorthand of the button.
137
181
  * @prop --tct-btn-border-radius: (<length-percentage>) Controls the corner radius of the button.
@@ -513,6 +557,7 @@ button {
513
557
  transition-property: background, color, box-shadow, fill, border-color, border-width;
514
558
  outline: 0;
515
559
  min-height: var(--tct-btn-min-height, none);
560
+ letter-spacing: var(--tct-btn-letter-spacing, inherit);
516
561
  }
517
562
  button:disabled {
518
563
  opacity: var(--tct-btn-disabled-opacity, var(--t-btn-disabled-opacity, var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4))));
@@ -522,7 +567,6 @@ button.has-color, button.has-intent {
522
567
  font-size: var(--tct-btn-font-size, var(--t-btn-font-size, inherit));
523
568
  border-radius: var(--tct-btn-border-radius, var(--comp-border-radius));
524
569
  text-transform: var(--tct-btn-text-transform);
525
- letter-spacing: var(--tct-btn-letter-spacing, inherit);
526
570
  }
527
571
  button.has-color:not(.has-size), button.has-intent:not(.has-size) {
528
572
  padding: var(--tct-btn-padding, var(--t-btn-padding, var(--tct-scale-2, var(--app-scale-2x, 10px))));
@@ -547,8 +591,8 @@ button:not(.has-size):not(.icon-only) ::slotted(q2-icon) {
547
591
  }
548
592
  :host([size=small]) button.has-intent:not(.intent-coin):not(.icon-only) {
549
593
  padding: var(--tct-btn-padding-size-small, var(--t-btn-padding-size-small, 6px 13px));
550
- font-size: var(--tct-btn-font-size-small, var(--t-btn-font-size-small, 14px));
551
- line-height: var(--tct-btn-line-height-small, var(--app-line-height, 14px));
594
+ font-size: var(--tct-btn-font-size-small, var(--t-btn-font-size-small, var(--const-px-14, 14px)));
595
+ line-height: var(--tct-btn-line-height-small, var(--app-line-height, var(--const-px-14, 14px)));
552
596
  min-height: var(--tct-btn-min-height-small, 36px);
553
597
  }
554
598
  :host([size=small]) button.has-intent:not(.intent-coin):not(.icon-only) ::slotted(q2-icon) {
@@ -556,8 +600,8 @@ button:not(.has-size):not(.icon-only) ::slotted(q2-icon) {
556
600
  }
557
601
  :host(:is(:not([size]), [size=medium])) button.has-intent:not(.intent-coin):not(.icon-only) {
558
602
  padding: var(--tct-btn-padding-size-medium, var(--t-btn-padding-size-medium, 10px 13px));
559
- font-size: var(--tct-btn-font-size-medium, var(--t-btn-font-size-medium, 14px));
560
- line-height: var(--tct-btn-line-height-medium, var(--app-line-height, 14px));
603
+ font-size: var(--tct-btn-font-size-medium, var(--t-btn-font-size-medium, var(--const-px-14, 14px)));
604
+ line-height: var(--tct-btn-line-height-medium, var(--app-line-height, var(--const-px-14, 14px)));
561
605
  min-height: var(--tct-btn-min-height-medium, 44px);
562
606
  }
563
607
  :host(:is(:not([size]), [size=medium])) button.has-intent:not(.intent-coin):not(.icon-only) ::slotted(q2-icon) {
@@ -565,8 +609,8 @@ button:not(.has-size):not(.icon-only) ::slotted(q2-icon) {
565
609
  }
566
610
  :host([size=large]) button.has-intent:not(.intent-coin):not(.icon-only) {
567
611
  padding: var(--tct-btn-padding-size-large, var(--t-btn-padding-size-large, 13px 18px));
568
- font-size: var(--tct-btn-font-size-large, var(--t-btn-font-size-large, 14px));
569
- line-height: var(--tct-btn-line-height-large, var(--app-line-height, 14px));
612
+ font-size: var(--tct-btn-font-size-large, var(--t-btn-font-size-large, var(--const-px-14, 14px)));
613
+ line-height: var(--tct-btn-line-height-large, var(--app-line-height, var(--const-px-14, 14px)));
570
614
  min-height: var(--tct-btn-min-height-large, 50px);
571
615
  }
572
616
  :host([size=large]) button.has-intent:not(.intent-coin):not(.icon-only) ::slotted(q2-icon) {
@@ -1183,7 +1227,7 @@ button.intent-coin:focus:active:not([disabled]) {
1183
1227
 
1184
1228
  .coin-label {
1185
1229
  color: var(--tct-btn-coin-label-color, var(--t-text, #4d4d4d));
1186
- font-size: var(--tct-btn-coin-label-font-size, var(--app-font-size, 14px));
1230
+ font-size: var(--tct-btn-coin-label-font-size, var(--app-font-size, var(--const-px-14, 14px)));
1187
1231
  max-width: 100px;
1188
1232
  text-align: center;
1189
1233
  text-overflow: ellipsis;
@@ -1212,7 +1256,7 @@ button.intent-coin:focus:active:not([disabled]) {
1212
1256
  }
1213
1257
  .coin-wrapper .coin-label {
1214
1258
  color: var(--tct-btn-coin-label-color, var(--t-text, #4d4d4d));
1215
- font-size: var(--tct-btn-coin-label-font-size, var(--app-font-size, 14px));
1259
+ font-size: var(--tct-btn-coin-label-font-size, var(--app-font-size, var(--const-px-14, 14px)));
1216
1260
  margin-top: var(--tct-btn-coin-gap, var(--app-scale-2x, 10px));
1217
1261
  max-width: 100px;
1218
1262
  text-align: center;
@@ -1,6 +1,6 @@
1
1
  import { expect } from "@playwright/test";
2
2
  import { test } from "@stencil/playwright";
3
- import { setupPage, THEMES } from "../../../utils/test/vr-helpers";
3
+ import { setupPage, THEMES, FONT_SCALE_PX, FONT_SCALE_SUFFIX } from "../../../utils/test/vr-helpers";
4
4
  const INTENTS = [
5
5
  'workflow-primary',
6
6
  'workflow-secondary',
@@ -98,3 +98,21 @@ test.describe('q2-btn plain (no intent) — states × themes', () => {
98
98
  focusCase('q2-btn--plain--focus', plainHtml(), theme);
99
99
  }
100
100
  });
101
+ // coin exercises --tct-btn-coin-label-font-size.
102
+ // workflow-primary at each size exercises --tct-btn-font-size-small/medium/large.
103
+ const BTN_FONT_SCALE_CASES = [
104
+ { name: 'coin', html: coinHtml() },
105
+ { name: 'workflow-primary--size-small', html: sizeHtml('workflow-primary', 'small') },
106
+ { name: 'workflow-primary--size-medium', html: sizeHtml('workflow-primary', 'medium') },
107
+ { name: 'workflow-primary--size-large', html: sizeHtml('workflow-primary', 'large') },
108
+ ];
109
+ test.describe(`q2-btn — scaled font size × themes`, () => {
110
+ for (const { name, html } of BTN_FONT_SCALE_CASES) {
111
+ for (const theme of THEMES) {
112
+ test(`q2-btn--${name}--resting--${FONT_SCALE_SUFFIX} — ${theme}`, async ({ page }) => {
113
+ await setupPage(page, html, { theme, fontSizePx: FONT_SCALE_PX });
114
+ await expect(page).toHaveScreenshot(`q2-btn--${name}--resting--${FONT_SCALE_SUFFIX}--${theme}.png`);
115
+ });
116
+ }
117
+ }
118
+ });
@@ -65,6 +65,28 @@ button {
65
65
  visibility: hidden;
66
66
  }
67
67
 
68
+ @container style(--t-prefers-motion: "reduced") {
69
+ *,
70
+ *::before,
71
+ *::after {
72
+ animation-duration: 0.01ms !important;
73
+ transition-duration: 0.01ms !important;
74
+ animation-delay: 0ms !important;
75
+ transition-delay: 0ms !important;
76
+ }
77
+ }
78
+ @container (not style(--t-prefers-motion: "normal")) and (not style(--t-prefers-motion: "reduced")) {
79
+ @media (prefers-reduced-motion: reduce) {
80
+ *,
81
+ *::before,
82
+ *::after {
83
+ animation-duration: 0.01ms !important;
84
+ transition-duration: 0.01ms !important;
85
+ animation-delay: 0ms !important;
86
+ transition-delay: 0ms !important;
87
+ }
88
+ }
89
+ }
68
90
  /**
69
91
  * @prop --tct-calendar-margin: (<length-percentage>+) Controls the outer margin of the calendar host.
70
92
  * @prop --tct-calendar-margin-top: (<length-percentage>) Controls the top margin of the calendar host when --tct-calendar-margin is not set.
@@ -143,7 +165,7 @@ q2-popover {
143
165
 
144
166
  .calendar-label {
145
167
  --comp-label-padding: var(--tct-calendar-label-padding, var(--tct-calendar-label-vertical-padding, var(--t-calendar-label-vertical-padding, var(--tct-scale-2, var(--app-scale-2x, 10px)))) 0);
146
- font-size: var(--tct-calendar-label-font-size, var(--t-calendar-label-font-size, 16px));
168
+ font-size: var(--tct-calendar-label-font-size, var(--t-calendar-label-font-size, var(--const-px-16, 16px)));
147
169
  flex: 1 1;
148
170
  flex-basis: calc(100% - var(--tct-btn-icon-width, 44px));
149
171
  margin: 0;
@@ -155,7 +177,7 @@ q2-popover {
155
177
  display: flex;
156
178
  justify-content: center;
157
179
  align-items: center;
158
- font-size: var(--tct-calendar-month-font-size, var(--t-calendar-month-font-size, 16px));
180
+ font-size: var(--tct-calendar-month-font-size, var(--t-calendar-month-font-size, var(--const-px-16, 16px)));
159
181
  font-weight: var(--tct-calendar-month-font-weight, var(--t-calendar-month-font-weight, 600));
160
182
  text-align: center;
161
183
  }
@@ -222,7 +244,7 @@ td:focus-visible {
222
244
  .today-decorator {
223
245
  text-transform: uppercase;
224
246
  font-weight: 700;
225
- font-size: var(--tct-calendar-today-decorator-font-size, 10px);
247
+ font-size: var(--tct-calendar-today-decorator-font-size, var(--const-px-10, 10px));
226
248
  height: 12px;
227
249
  }
228
250
 
@@ -231,7 +253,7 @@ td:focus-visible {
231
253
  }
232
254
 
233
255
  .calendar-disclaimer {
234
- font-size: var(--tct-calendar-disclaimer-font-size, var(--t-calendar-disclaimer-font-size, var(--tct-font-size-small, var(--app-font-size-small, 12px))));
256
+ font-size: var(--tct-calendar-disclaimer-font-size, var(--t-calendar-disclaimer-font-size, var(--tct-font-size-small, var(--app-font-size-small, var(--const-px-12, 12px)))));
235
257
  border-style: solid;
236
258
  border-width: var(--tct-calendar-disclaimer-border-width, var(--t-calendar-disclaimer-border-width, 1px 0 0 0));
237
259
  border-color: var(--tct-calendar-disclaimer-border-color, var(--t-calendar-disclaimer-border-color, var(--tct-gray-13, var(--t-gray-13, var(--tct-gray-l3, var(--app-gray-l3, #e6e6e6))))));
@@ -181,7 +181,7 @@ export class Q2Calendar {
181
181
  }
182
182
  };
183
183
  this.onInputClick = () => {
184
- if (this.disabled)
184
+ if (this.disabled || this.readonly)
185
185
  return;
186
186
  this.toggleCalendar();
187
187
  };
@@ -779,7 +779,7 @@ export class Q2Calendar {
779
779
  // #endregion
780
780
  // #region Render Methods
781
781
  renderCalendarDays() {
782
- return (h("table", { role: "grid", "aria-labelledby": "table-label", ref: ref => (this.calendarTable = ref) }, h("thead", null, h("tr", null, [...Array(7).keys()].map(index => (h("th", { scope: "col", "aria-label": this.dayStrings[index] }, this.dayAbbrStrings[index]))))), h("tbody", { onClick: this.onDateSelection, onKeyDown: this.onDateKeydown, ref: elm => (this.calendarBody = elm), "test-id": "calendarTableBody" }, this.currentWeeks.map(week => (h("tr", null, week.map(day => {
782
+ return (h("table", { role: "grid", "aria-labelledby": "table-label", ref: ref => (this.calendarTable = ref) }, h("caption", { class: "sr" }, loc('tecton.element.calendar.caption')), h("thead", null, h("tr", null, [...Array(7).keys()].map(index => (h("th", { scope: "col", "aria-label": this.dayStrings[index] }, this.dayAbbrStrings[index]))))), h("tbody", { onClick: this.onDateSelection, onKeyDown: this.onDateKeydown, ref: elm => (this.calendarBody = elm), "test-id": "calendarTableBody" }, this.currentWeeks.map(week => (h("tr", null, week.map(day => {
783
783
  var _a;
784
784
  let ariaLabel = '';
785
785
  if (day.isToday)
@@ -800,11 +800,13 @@ export class Q2Calendar {
800
800
  return (h("q2-message", { class: "calendar-hint sr", ref: el => (this.hintMessageElement = el), type: this.hintMessageType }, this.hintMessage));
801
801
  }
802
802
  renderInputField() {
803
- const { isTypeable } = this;
804
- return (h("q2-input", { ref: el => (this.controlElement = el), class: "calendar-input-field", value: this.formattedValue, label: loc(this.label), hideLabel: this.hideLabel, disabled: !!this.disabled, readonly: !!this.readonly, clearable: this.canClear, placeholder: this.computedPlaceholder, optional: !!this.optional, valid: this.valid, "aria-expanded": `${!!this.open}`, "aria-controls": "calendar-popover", hints: this.hintList, errors: this.errorList, onClick: isTypeable ? undefined : this.onInputClick, onChange: e => e.stopImmediatePropagation(), onTctChange: e => e.stopImmediatePropagation(), onInput: e => e.stopImmediatePropagation(), onTctInput: this.onInputInput, onKeyDown: this.onInputKeydown, onKeyUp: this.onInputKeyup, onBlur: this.onInputBlur, onFocus: this.onInputFocus, "icon-right": isTypeable ? undefined : 'calendar', "format-modifier": isTypeable ? this.formatModifier : this.displayFormat || this.formatModifier, type: "date", "hide-messages": !isTypeable, "test-id": "inputAndCalendarToggle", _role: "combobox", _preventEntry: !isTypeable }, isTypeable && (h("q2-btn", { ref: el => (this.btnCalendarToggle = el), slot: "input-right", onClick: this.onInputClick, "test-id": "calendarToggle", label: "tecton.element.calendar.toggleAriaLabel", "hide-label": true }, h("q2-icon", { type: "calendar" })))));
803
+ const { isTypeable, label } = this;
804
+ return (h("q2-input", { ref: el => (this.controlElement = el), class: "calendar-input-field", value: this.formattedValue, label: loc(label), hideLabel: this.hideLabel, disabled: !!this.disabled, readonly: !!this.readonly, clearable: this.canClear, placeholder: this.computedPlaceholder, optional: !!this.optional, valid: this.valid, ariaExpanded: `${!!this.open}`, ariaControls: "calendar-popover", ariaHaspopup: "dialog", hints: this.hintList, errors: this.errorList, onClick: isTypeable ? undefined : this.onInputClick, onChange: e => e.stopImmediatePropagation(), onTctChange: e => e.stopImmediatePropagation(), onInput: e => e.stopImmediatePropagation(), onTctInput: this.onInputInput, onKeyDown: this.onInputKeydown, onKeyUp: this.onInputKeyup, onBlur: this.onInputBlur, onFocus: this.onInputFocus, "icon-right": isTypeable ? undefined : 'calendar', "format-modifier": isTypeable ? this.formatModifier : this.displayFormat || this.formatModifier, type: "date", "hide-messages": !isTypeable, "test-id": "inputAndCalendarToggle", _role: "combobox", _preventEntry: !isTypeable }, isTypeable && (h("q2-btn", { ref: el => (this.btnCalendarToggle = el), slot: "input-right", onClick: this.onInputClick, "test-id": "calendarToggle", label: loc('tecton.element.calendar.toggleAriaLabel', [
805
+ label ? loc(label) : loc('tecton.element.calendar.defaultLabel'),
806
+ ]), ariaExpanded: `${!!this.open}`, "hide-label": true, disabled: !!this.disabled || !!this.readonly }, h("q2-icon", { type: "calendar" })))));
805
807
  }
806
808
  render() {
807
- return (h("click-elsewhere", { key: 'b13259be3c0d64bff32654faf0c738a7a7450c4e', class: this.open ? 'dropdown-open' : undefined, onChange: this.onClickElsewhere }, this.renderInputField(), h("q2-popover", { key: '2e183cd962e7abc4186b93da7edd835e0db5504a', ref: el => (this.popoverElement = el), id: "calendar-popover", controlElement: this.innerInputContainer, open: this.open, direction: this.popoverDirection, minHeight: this.popoverMinHeight, align: this.popoverAlignment, mode: this.popoverMode || undefined, block: true }, this.renderHintField(), this.renderCalendarPopover())));
809
+ return (h("click-elsewhere", { key: 'e7bcb2f1aec6ca1149742b0b3edc0a7bbf9ce925', class: this.open ? 'dropdown-open' : undefined, onChange: this.onClickElsewhere }, this.renderInputField(), h("q2-popover", { key: 'c80c5d1ecfb42a319bba294b20f519a2be6808e1', ref: el => (this.popoverElement = el), id: "calendar-popover", controlElement: this.innerInputContainer, open: this.open, direction: this.popoverDirection, minHeight: this.popoverMinHeight, align: this.popoverAlignment, mode: this.popoverMode || undefined, block: true }, this.renderHintField(), this.renderCalendarPopover())));
808
810
  }
809
811
  static get is() { return "q2-calendar"; }
810
812
  static get encapsulation() { return "shadow"; }
@@ -65,6 +65,28 @@ button {
65
65
  visibility: hidden;
66
66
  }
67
67
 
68
+ @container style(--t-prefers-motion: "reduced") {
69
+ *,
70
+ *::before,
71
+ *::after {
72
+ animation-duration: 0.01ms !important;
73
+ transition-duration: 0.01ms !important;
74
+ animation-delay: 0ms !important;
75
+ transition-delay: 0ms !important;
76
+ }
77
+ }
78
+ @container (not style(--t-prefers-motion: "normal")) and (not style(--t-prefers-motion: "reduced")) {
79
+ @media (prefers-reduced-motion: reduce) {
80
+ *,
81
+ *::before,
82
+ *::after {
83
+ animation-duration: 0.01ms !important;
84
+ transition-duration: 0.01ms !important;
85
+ animation-delay: 0ms !important;
86
+ transition-delay: 0ms !important;
87
+ }
88
+ }
89
+ }
68
90
  .month-container {
69
91
  --comp-month-primary-background: var(--tct-btn-primary-background, var(--tct-btn-primary-bg, var(--t-btn-primary-bg, #2e2e2e)));
70
92
  --comp-month-primary-font-color: var(--tct-btn-primary-font-color, var(--t-btn-primary-font-color, var(--tct-white, var(--app-white, #ffffff))));
@@ -1,6 +1,6 @@
1
1
  import { expect } from "@playwright/test";
2
2
  import { test } from "@stencil/playwright";
3
- import { setupPage, THEMES } from "../../../utils/test/vr-helpers";
3
+ import { setupPage, THEMES, FONT_SCALE_PX, FONT_SCALE_SUFFIX } from "../../../utils/test/vr-helpers";
4
4
  // Resting variants — input field in its default closed state.
5
5
  // Note: variants that show the calendar popover use a fixed value (2025-05-20) so
6
6
  // the rendered month/year is stable across runs. Resting variants without a value
@@ -169,3 +169,36 @@ test.describe('q2-calendar — variants × themes', () => {
169
169
  dayHoverCase(POPOVER_VARIANT, theme);
170
170
  }
171
171
  });
172
+ // 'default' (resting, closed) exercises --tct-calendar-label-font-size.
173
+ // POPOVER_VARIANT (open) exercises --tct-calendar-month-font-size.
174
+ // disclaimer variant exercises --tct-calendar-disclaimer-font-size.
175
+ const CALENDAR_DISCLAIMER_VARIANT = {
176
+ name: 'with-disclaimer',
177
+ html: `<q2-calendar label="My calendar" disclaimer="Rates subject to change."></q2-calendar>`,
178
+ };
179
+ test.describe(`q2-calendar — scaled font size × themes`, () => {
180
+ for (const theme of THEMES) {
181
+ test(`q2-calendar--default--resting--${FONT_SCALE_SUFFIX} — ${theme}`, async ({ page }) => {
182
+ await setupPage(page, `<q2-calendar label="My calendar" placeholder="My date"></q2-calendar>`, {
183
+ theme,
184
+ setupLoc: true,
185
+ fontSizePx: FONT_SCALE_PX,
186
+ });
187
+ await expect(page).toHaveScreenshot(`q2-calendar--default--resting--${FONT_SCALE_SUFFIX}--${theme}.png`);
188
+ });
189
+ test(`q2-calendar--popover--expanded-default--${FONT_SCALE_SUFFIX} — ${theme}`, async ({ page }) => {
190
+ await freezeClock(page);
191
+ await setupPage(page, POPOVER_VARIANT.html, { theme, setupLoc: true, fontSizePx: FONT_SCALE_PX });
192
+ await openPopoverViaKeyboard(page);
193
+ await expect(page).toHaveScreenshot(`q2-calendar--popover--expanded-default--${FONT_SCALE_SUFFIX}--${theme}.png`);
194
+ });
195
+ test(`q2-calendar--with-disclaimer--resting--${FONT_SCALE_SUFFIX} — ${theme}`, async ({ page }) => {
196
+ await setupPage(page, CALENDAR_DISCLAIMER_VARIANT.html, {
197
+ theme,
198
+ setupLoc: true,
199
+ fontSizePx: FONT_SCALE_PX,
200
+ });
201
+ await expect(page).toHaveScreenshot(`q2-calendar--with-disclaimer--resting--${FONT_SCALE_SUFFIX}--${theme}.png`);
202
+ });
203
+ }
204
+ });
@@ -65,6 +65,28 @@ button {
65
65
  visibility: hidden;
66
66
  }
67
67
 
68
+ @container style(--t-prefers-motion: "reduced") {
69
+ *,
70
+ *::before,
71
+ *::after {
72
+ animation-duration: 0.01ms !important;
73
+ transition-duration: 0.01ms !important;
74
+ animation-delay: 0ms !important;
75
+ transition-delay: 0ms !important;
76
+ }
77
+ }
78
+ @container (not style(--t-prefers-motion: "normal")) and (not style(--t-prefers-motion: "reduced")) {
79
+ @media (prefers-reduced-motion: reduce) {
80
+ *,
81
+ *::before,
82
+ *::after {
83
+ animation-duration: 0.01ms !important;
84
+ transition-duration: 0.01ms !important;
85
+ animation-delay: 0ms !important;
86
+ transition-delay: 0ms !important;
87
+ }
88
+ }
89
+ }
68
90
  /**
69
91
  * @prop --tct-card-background: (<color>) Controls the background color of the card container.
70
92
  * @prop --tct-card-backdrop-filter?: (*) Controls the optional backdrop-filter applied to the card container.
@@ -252,7 +274,7 @@ p {
252
274
 
253
275
  h3 {
254
276
  font-weight: var(--tct-card-font-weight, var(--t-card-font-weight, 600));
255
- font-size: var(--tct-card-font-size, var(--t-card-font-size, 17px));
277
+ font-size: var(--tct-card-font-size, var(--t-card-font-size, var(--const-px-17, 17px)));
256
278
  line-height: var(--tct-card-title-line-height, var(--app-line-height, 1.428571429em));
257
279
  text-overflow: ellipsis;
258
280
  overflow: hidden;
@@ -1,6 +1,6 @@
1
1
  import { expect } from "@playwright/test";
2
2
  import { test } from "@stencil/playwright";
3
- import { setupPage, THEMES } from "../../../utils/test/vr-helpers";
3
+ import { setupPage, THEMES, FONT_SCALE_PX, FONT_SCALE_SUFFIX } from "../../../utils/test/vr-helpers";
4
4
  const DESC = 'This is your card description which can be up to two lines long.';
5
5
  const SHORT_DESC = 'This is your card description';
6
6
  const VARIANTS = [
@@ -69,3 +69,12 @@ test.describe('q2-card — variants × themes', () => {
69
69
  focusCase(DEFAULT_VARIANT, theme);
70
70
  }
71
71
  });
72
+ // 'default' exercises --tct-card-font-size (card title h3).
73
+ test.describe(`q2-card — scaled font size × themes`, () => {
74
+ for (const theme of THEMES) {
75
+ test(`q2-card--default--resting--${FONT_SCALE_SUFFIX} — ${theme}`, async ({ page }) => {
76
+ await setupPage(page, DEFAULT_VARIANT.html, { theme, fontSizePx: FONT_SCALE_PX });
77
+ await expect(page).toHaveScreenshot(`q2-card--default--resting--${FONT_SCALE_SUFFIX}--${theme}.png`);
78
+ });
79
+ }
80
+ });
@@ -65,6 +65,28 @@ button {
65
65
  visibility: hidden;
66
66
  }
67
67
 
68
+ @container style(--t-prefers-motion: "reduced") {
69
+ *,
70
+ *::before,
71
+ *::after {
72
+ animation-duration: 0.01ms !important;
73
+ transition-duration: 0.01ms !important;
74
+ animation-delay: 0ms !important;
75
+ transition-delay: 0ms !important;
76
+ }
77
+ }
78
+ @container (not style(--t-prefers-motion: "normal")) and (not style(--t-prefers-motion: "reduced")) {
79
+ @media (prefers-reduced-motion: reduce) {
80
+ *,
81
+ *::before,
82
+ *::after {
83
+ animation-duration: 0.01ms !important;
84
+ transition-duration: 0.01ms !important;
85
+ animation-delay: 0ms !important;
86
+ transition-delay: 0ms !important;
87
+ }
88
+ }
89
+ }
68
90
  :host {
69
91
  /**
70
92
  * @prop --tct-card-image-base-blur: (<length>) Controls the blur radius applied to the base card image layer.
@@ -360,7 +382,7 @@ button {
360
382
  }
361
383
 
362
384
  .card-status-text {
363
- font-size: 14px;
385
+ font-size: var(--const-px-14, 14px);
364
386
  font-family: var(--uux-app-fontFamily, OpenSans, Helvetica Neue, Helvetica, Arial, sans-serif);
365
387
  text-transform: uppercase;
366
388
  white-space: nowrap;
@@ -2,7 +2,7 @@ import { readFileSync } from "fs";
2
2
  import { join } from "path";
3
3
  import { expect } from "@playwright/test";
4
4
  import { test } from "@stencil/playwright";
5
- import { setupPage, THEMES } from "../../../utils/test/vr-helpers";
5
+ import { setupPage, THEMES, FONT_SCALE_PX, FONT_SCALE_SUFFIX } from "../../../utils/test/vr-helpers";
6
6
  // Inline FI logo as a data URI so the test stays hermetic — `setContent` runs
7
7
  // against `about:blank`, so relative paths from the .html playground would not
8
8
  // resolve here.
@@ -149,3 +149,11 @@ test.describe('q2-card-image — variants × themes', () => {
149
149
  focusCase(CLICKABLE_VARIANT, theme);
150
150
  }
151
151
  });
152
+ test.describe(`q2-card-image — font scale ${FONT_SCALE_PX}px × themes`, () => {
153
+ for (const theme of THEMES) {
154
+ test(`q2-card-image--status-enabled--resting--${FONT_SCALE_SUFFIX} — ${theme}`, async ({ page }) => {
155
+ await setupPage(page, `<q2-card-image background="primary" card-status="enabled" fi-logo="${FI_LOGO}" chip="gold" card-number="${NUMBER}" expiration-date="${EXP}" card-holder="${HOLDER}" vendor="mastercard" ${W_LG}></q2-card-image>`, { theme, fontSizePx: FONT_SCALE_PX });
156
+ await expect(page).toHaveScreenshot(`q2-card-image--status-enabled--resting--${FONT_SCALE_SUFFIX}--${theme}.png`);
157
+ });
158
+ }
159
+ });
@@ -65,6 +65,28 @@ button {
65
65
  visibility: hidden;
66
66
  }
67
67
 
68
+ @container style(--t-prefers-motion: "reduced") {
69
+ *,
70
+ *::before,
71
+ *::after {
72
+ animation-duration: 0.01ms !important;
73
+ transition-duration: 0.01ms !important;
74
+ animation-delay: 0ms !important;
75
+ transition-delay: 0ms !important;
76
+ }
77
+ }
78
+ @container (not style(--t-prefers-motion: "normal")) and (not style(--t-prefers-motion: "reduced")) {
79
+ @media (prefers-reduced-motion: reduce) {
80
+ *,
81
+ *::before,
82
+ *::after {
83
+ animation-duration: 0.01ms !important;
84
+ transition-duration: 0.01ms !important;
85
+ animation-delay: 0ms !important;
86
+ transition-delay: 0ms !important;
87
+ }
88
+ }
89
+ }
68
90
  /**
69
91
  * @prop --tct-carousel-background: (<color>) Controls the background color of the insufficient-pane feedback container.
70
92
  * @prop --tct-carousel-gap: (<length-percentage>) Controls the gap between the carousel content row and the pagination row.
@@ -93,8 +115,6 @@ button {
93
115
  * @prop --tct-carousel-navigation-arrow-opacity: (<number>) Controls the opacity of the navigation arrows.
94
116
  * @prop --tct-carousel-arrow-background: (<color>) Controls the background color of the navigation arrow buttons.
95
117
  * @prop --tct-carousel-arrow-hover-background: (<color>) Controls the background color of the navigation arrow buttons on hover and focus.
96
- * @prop --tct-carousel-arrow-font-color: (<color>) Controls the color of the icon inside the navigation arrow buttons.
97
- * @prop --tct-carousel-btn-icon-stroke-secondary: (<color>) Controls the secondary stroke color of the navigation arrow icon.
98
118
  * @prop --tct-carousel-autoplay-hover-background: (<color>) Controls the background color of the autoplay toggle button on hover and focus.
99
119
  * @prop --tct-carousel-autoplay-icon-color: (<color>) Controls the color of the autoplay toggle button icon.
100
120
  * @prop --tct-carousel-autoplay-icon-height: (<length>) Controls the height of the autoplay toggle button icon.
@@ -320,44 +340,14 @@ q2-carousel {
320
340
  }
321
341
 
322
342
  .q2-carousel-navigation-button {
323
- display: flex;
324
- align-items: center;
325
- justify-content: center;
326
- position: relative;
327
- width: 44px;
328
- height: 44px;
329
- padding: 0;
330
- border: none;
331
- background: transparent;
332
- cursor: pointer;
333
- opacity: var(--tct-carousel-navigation-arrow-opacity, 1);
334
- -webkit-tap-highlight-color: transparent;
335
- }
336
- .q2-carousel-navigation-button::before {
337
- content: "";
338
- position: absolute;
339
- width: 32px;
340
- height: 32px;
341
- border-radius: 50%;
342
- background-color: var(--tct-carousel-arrow-background, var(--t-primary, #6a4a9e));
343
- transition: background-color var(--t-tween-time-in-2, 200ms) var(--t-tween-ease-inout, cubic-bezier(0.4, 0, 0.2, 1));
344
- }
345
- .q2-carousel-navigation-button:hover::before, .q2-carousel-navigation-button:focus-visible::before {
346
- background-color: var(--tct-carousel-arrow-hover-background, var(--t-primary-d1, #5f438e));
347
- }
348
- .q2-carousel-navigation-button:focus-visible {
349
- outline: none;
350
- box-shadow: none;
351
- }
352
- .q2-carousel-navigation-button:focus-visible::before {
353
- outline: 2px solid var(--const-focus-color, #1a73e8);
354
- outline-offset: 2px;
355
- }
356
- .q2-carousel-navigation-button q2-icon {
357
- position: relative;
343
+ --tct-btn-icon-width: 32px;
344
+ --tct-btn-icon-height: 32px;
345
+ --tct-btn-icon-border-radius: 50%;
346
+ --tct-btn-icon-padding: 0;
358
347
  --tct-icon-size: 16px;
359
- --tct-icon-stroke-primary: var(--tct-carousel-arrow-font-color, var(--t-base, #ffffff));
360
- --tct-icon-stroke-secondary: var(--tct-carousel-btn-icon-stroke-secondary, var(--app-gray, #747474));
348
+ --tct-btn-primary-background: var(--tct-carousel-arrow-background, var(--tct-carousel-indicator-active, var(--t-primary, #6a4a9e)));
349
+ --tct-btn-primary-hover-background: var(--tct-carousel-arrow-hover-background, var(--t-primary-d1, #5f438e));
350
+ opacity: var(--tct-carousel-navigation-arrow-opacity, 1);
361
351
  }
362
352
 
363
353
  .q2-carousel-autoplay-control {