q2-tecton-elements 1.70.2 → 1.71.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/dist/bundle-report.json +580 -255
  2. package/dist/cjs/{action-sheet-D71RSc-w.js → action-sheet-DUBlF_x3.js} +1 -0
  3. package/dist/cjs/click-elsewhere_3.cjs.entry.js +3 -3
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/q2-action-group_2.cjs.entry.js +3 -3
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js +8 -5
  7. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-badge_2.cjs.entry.js +18 -9
  9. package/dist/cjs/q2-btn_2.cjs.entry.js +2 -2
  10. package/dist/cjs/q2-calendar.cjs.entry.js +8 -6
  11. package/dist/cjs/q2-card-image.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  14. package/dist/cjs/q2-carousel.cjs.entry.js +108 -74
  15. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-checkbox_2.cjs.entry.js +4 -4
  20. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-dropdown.cjs.entry.js +2 -2
  25. package/dist/cjs/q2-editable-field.cjs.entry.js +3 -3
  26. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-file-picker.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-form.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-item.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-link_2.cjs.entry.js +2 -2
  34. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-meter.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-modal.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  40. package/dist/cjs/q2-otp.cjs.entry.js +1 -1
  41. package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
  42. package/dist/cjs/q2-pill.cjs.entry.js +19 -3
  43. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  45. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-search.cjs.entry.js +2 -2
  47. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  48. package/dist/cjs/q2-select.cjs.entry.js +2 -2
  49. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  50. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +32 -9
  51. package/dist/cjs/q2-stepper.cjs.entry.js +18 -4
  52. package/dist/cjs/q2-surface.cjs.entry.js +3 -3
  53. package/dist/cjs/q2-tab-container.cjs.entry.js +89 -20
  54. package/dist/cjs/q2-tab-pane.cjs.entry.js +2 -2
  55. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  56. package/dist/cjs/q2-textarea.cjs.entry.js +3 -3
  57. package/dist/cjs/q2-toast.cjs.entry.js +1 -1
  58. package/dist/cjs/q2-tooltip.cjs.entry.js +26 -15
  59. package/dist/cjs/tecton-tab-pane.cjs.entry.js +3 -3
  60. package/dist/collection/components/click-elsewhere/click-elsewhere.js +1 -1
  61. package/dist/collection/components/q2-action-group/q2-action-group.css +22 -0
  62. package/dist/collection/components/q2-action-sheet/q2-action-sheet.css +24 -1
  63. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +7 -4
  64. package/dist/collection/components/q2-avatar/q2-avatar.css +23 -1
  65. package/dist/collection/components/q2-avatar/test/q2-avatar-test.vr.js +13 -1
  66. package/dist/collection/components/q2-badge/q2-badge.css +26 -4
  67. package/dist/collection/components/q2-badge/test/q2-badge-test.vr.js +13 -1
  68. package/dist/collection/components/q2-btn/q2-btn.css +53 -9
  69. package/dist/collection/components/q2-btn/test/q2-btn-test.vr.js +19 -1
  70. package/dist/collection/components/q2-calendar/q2-calendar.css +26 -4
  71. package/dist/collection/components/q2-calendar/q2-calendar.js +7 -5
  72. package/dist/collection/components/q2-calendar/q2-month-picker.css +22 -0
  73. package/dist/collection/components/q2-calendar/test/q2-calendar-test.vr.js +34 -1
  74. package/dist/collection/components/q2-card/q2-card.css +23 -1
  75. package/dist/collection/components/q2-card/test/q2-card-test.vr.js +10 -1
  76. package/dist/collection/components/q2-card-image/q2-card-image.css +23 -1
  77. package/dist/collection/components/q2-card-image/test/q2-card-image-test.vr.js +9 -1
  78. package/dist/collection/components/q2-carousel/q2-carousel.css +29 -39
  79. package/dist/collection/components/q2-carousel/q2-carousel.js +122 -69
  80. package/dist/collection/components/q2-carousel/test/q2-carousel-test.vr.js +5 -4
  81. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.css +22 -0
  82. package/dist/collection/components/q2-chart-area/q2-chart-area.css +22 -0
  83. package/dist/collection/components/q2-chart-bar/q2-chart-bar.css +22 -0
  84. package/dist/collection/components/q2-chart-donut/q2-chart-donut.css +24 -2
  85. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.vr.js +13 -1
  86. package/dist/collection/components/q2-checkbox/q2-checkbox.css +23 -1
  87. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.vr.js +11 -1
  88. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +23 -1
  89. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.vr.js +11 -1
  90. package/dist/collection/components/q2-currency/q2-currency.css +25 -3
  91. package/dist/collection/components/q2-currency/test/q2-currency-test.vr.js +13 -1
  92. package/dist/collection/components/q2-data-table/q2-data-table.css +24 -2
  93. package/dist/collection/components/q2-data-table/test/q2-data-table-test.vr.js +11 -1
  94. package/dist/collection/components/q2-detail/q2-detail.css +32 -10
  95. package/dist/collection/components/q2-dropdown/q2-dropdown.css +22 -0
  96. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.css +22 -0
  97. package/dist/collection/components/q2-editable-field/q2-editable-field.css +22 -0
  98. package/dist/collection/components/q2-editable-field/q2-editable-field.js +2 -2
  99. package/dist/collection/components/q2-example/q2-example.css +23 -0
  100. package/dist/collection/components/q2-file-picker/q2-file-picker.css +57 -10
  101. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.vr.js +14 -1
  102. package/dist/collection/components/q2-form/q2-form.css +22 -0
  103. package/dist/collection/components/q2-formatted-text/q2-formatted-text.css +25 -3
  104. package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.vr.js +13 -1
  105. package/dist/collection/components/q2-icon/assets/standard.symbol.svg +1 -1
  106. package/dist/collection/components/q2-icon/q2-icon.css +22 -0
  107. package/dist/collection/components/q2-input/q2-input.css +26 -4
  108. package/dist/collection/components/q2-input/q2-input.js +40 -8
  109. package/dist/collection/components/q2-input/test/q2-input-test.vr.js +36 -1
  110. package/dist/collection/components/q2-item/q2-item.css +46 -2
  111. package/dist/collection/components/q2-item/test/q2-item-test.vr.js +12 -1
  112. package/dist/collection/components/q2-legend/q2-legend.css +24 -2
  113. package/dist/collection/components/q2-link/q2-link.css +22 -0
  114. package/dist/collection/components/q2-list/q2-list.css +46 -2
  115. package/dist/collection/components/q2-list/test/q2-list-test.vr.js +12 -1
  116. package/dist/collection/components/q2-loading/q2-loading.css +23 -0
  117. package/dist/collection/components/q2-message/q2-message.css +22 -0
  118. package/dist/collection/components/q2-meter/q2-meter.css +25 -3
  119. package/dist/collection/components/q2-meter/test/q2-meter-test.vr.js +12 -1
  120. package/dist/collection/components/q2-modal/q2-modal.css +23 -1
  121. package/dist/collection/components/q2-modal/test/q2-modal-test.vr.js +12 -1
  122. package/dist/collection/components/q2-optgroup/q2-optgroup.css +23 -1
  123. package/dist/collection/components/q2-option/q2-option.css +22 -0
  124. package/dist/collection/components/q2-option-list/q2-option-list.css +22 -0
  125. package/dist/collection/components/q2-otp/q2-otp.css +27 -4
  126. package/dist/collection/components/q2-otp/test/q2-otp-test.vr.js +12 -1
  127. package/dist/collection/components/q2-pagination/q2-pagination.css +22 -0
  128. package/dist/collection/components/q2-pill/q2-pill.css +42 -2
  129. package/dist/collection/components/q2-pill/q2-pill.js +18 -1
  130. package/dist/collection/components/q2-pill/test/q2-pill-test.vr.js +27 -1
  131. package/dist/collection/components/q2-popover/q2-popover.css +22 -7
  132. package/dist/collection/components/q2-radio/q2-radio.css +24 -2
  133. package/dist/collection/components/q2-radio/test/q2-radio-test.vr.js +12 -1
  134. package/dist/collection/components/q2-radio-group/q2-radio-group.css +23 -1
  135. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.vr.js +11 -1
  136. package/dist/collection/components/q2-relative-time/q2-relative-time.css +22 -0
  137. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  138. package/dist/collection/components/q2-resize-observer/q2-resize-observer.css +22 -0
  139. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  140. package/dist/collection/components/q2-search/q2-search.css +22 -0
  141. package/dist/collection/components/q2-search/q2-search.js +1 -1
  142. package/dist/collection/components/q2-section/q2-section.css +23 -1
  143. package/dist/collection/components/q2-section/q2-section.js +2 -2
  144. package/dist/collection/components/q2-section/test/q2-section-test.vr.js +11 -1
  145. package/dist/collection/components/q2-select/q2-select.css +22 -0
  146. package/dist/collection/components/q2-stepper/q2-stepper.css +38 -4
  147. package/dist/collection/components/q2-stepper/q2-stepper.js +17 -3
  148. package/dist/collection/components/q2-stepper/test/q2-stepper-test.vr.js +12 -1
  149. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.css +22 -0
  150. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
  151. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +39 -5
  152. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +31 -8
  153. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.vr.js +16 -1
  154. package/dist/collection/components/q2-surface/q2-surface.css +71 -32
  155. package/dist/collection/components/q2-surface/q2-surface.js +7 -7
  156. package/dist/collection/components/q2-surface/test/q2-surface-test.vr.js +54 -0
  157. package/dist/collection/components/q2-tab-container/q2-tab-container.css +112 -6
  158. package/dist/collection/components/q2-tab-container/q2-tab-container.js +114 -21
  159. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.vr.js +24 -1
  160. package/dist/collection/components/q2-tab-pane/q2-tab-pane.css +22 -0
  161. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  162. package/dist/collection/components/q2-tag/q2-tag.css +25 -2
  163. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  164. package/dist/collection/components/q2-tag/test/q2-tag-test.vr.js +21 -1
  165. package/dist/collection/components/q2-textarea/q2-textarea.css +24 -2
  166. package/dist/collection/components/q2-textarea/q2-textarea.js +2 -2
  167. package/dist/collection/components/q2-textarea/test/q2-textarea-test.vr.js +16 -1
  168. package/dist/collection/components/q2-toast/q2-toast.css +22 -0
  169. package/dist/collection/components/q2-tooltip/q2-tooltip.css +27 -19
  170. package/dist/collection/components/q2-tooltip/q2-tooltip.js +32 -21
  171. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.vr.js +13 -1
  172. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.css +22 -0
  173. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  174. package/dist/collection/utils/action-sheet.js +1 -0
  175. package/dist/collection/utils/helpers.js +29 -6
  176. package/dist/collection/utils/test/vr-helpers.js +9 -0
  177. package/dist/components/action-sheet.js +28 -27
  178. package/dist/components/click-elsewhere2.js +1 -1
  179. package/dist/components/q2-action-group2.js +1 -1
  180. package/dist/components/q2-action-sheet.js +25 -19
  181. package/dist/components/q2-avatar2.js +1 -1
  182. package/dist/components/q2-badge2.js +1 -1
  183. package/dist/components/q2-btn2.js +15 -15
  184. package/dist/components/q2-calendar.js +306 -301
  185. package/dist/components/q2-card-image.js +6 -6
  186. package/dist/components/q2-card.js +14 -14
  187. package/dist/components/q2-carousel-pane2.js +1 -1
  188. package/dist/components/q2-carousel.js +633 -585
  189. package/dist/components/q2-chart-area.js +1 -1
  190. package/dist/components/q2-chart-bar.js +70 -70
  191. package/dist/components/q2-chart-donut.js +1 -1
  192. package/dist/components/q2-checkbox-group.js +42 -42
  193. package/dist/components/q2-checkbox2.js +1 -1
  194. package/dist/components/q2-currency.js +32 -32
  195. package/dist/components/q2-data-table.js +34 -34
  196. package/dist/components/q2-detail.js +5 -5
  197. package/dist/components/q2-dropdown-item2.js +11 -11
  198. package/dist/components/q2-dropdown.js +17 -17
  199. package/dist/components/q2-editable-field.js +12 -11
  200. package/dist/components/q2-example.js +15 -15
  201. package/dist/components/q2-file-picker.js +25 -25
  202. package/dist/components/q2-form.js +11 -11
  203. package/dist/components/q2-formatted-text.js +5 -5
  204. package/dist/components/q2-icon2.js +1 -1
  205. package/dist/components/q2-input2.js +25 -14
  206. package/dist/components/q2-item2.js +1 -1
  207. package/dist/components/q2-legend2.js +56 -56
  208. package/dist/components/q2-link2.js +6 -6
  209. package/dist/components/q2-list2.js +22 -22
  210. package/dist/components/q2-loading2.js +1 -1
  211. package/dist/components/q2-message2.js +20 -20
  212. package/dist/components/q2-meter.js +1 -1
  213. package/dist/components/q2-modal.js +3 -3
  214. package/dist/components/q2-month-picker.js +10 -10
  215. package/dist/components/q2-optgroup2.js +7 -7
  216. package/dist/components/q2-option-list2.js +34 -34
  217. package/dist/components/q2-option2.js +13 -13
  218. package/dist/components/q2-otp.js +5 -5
  219. package/dist/components/q2-pagination.js +58 -58
  220. package/dist/components/q2-pill.js +66 -54
  221. package/dist/components/q2-popover2.js +1 -1
  222. package/dist/components/q2-radio-group.js +5 -5
  223. package/dist/components/q2-radio.js +14 -14
  224. package/dist/components/q2-relative-time.js +10 -10
  225. package/dist/components/q2-resize-observer2.js +9 -9
  226. package/dist/components/q2-search.js +5 -5
  227. package/dist/components/q2-section.js +22 -22
  228. package/dist/components/q2-select2.js +1 -1
  229. package/dist/components/q2-stepper-pane.js +33 -33
  230. package/dist/components/q2-stepper-vertical.js +84 -60
  231. package/dist/components/q2-stepper.js +79 -65
  232. package/dist/components/q2-surface.js +14 -14
  233. package/dist/components/q2-tab-container.js +110 -55
  234. package/dist/components/q2-tab-pane.js +7 -7
  235. package/dist/components/q2-tag2.js +39 -39
  236. package/dist/components/q2-textarea.js +16 -16
  237. package/dist/components/q2-toast.js +22 -22
  238. package/dist/components/q2-tooltip2.js +26 -25
  239. package/dist/components/tecton-tab-pane.js +11 -11
  240. package/dist/esm/{action-sheet-B7adb3xs.js → action-sheet-DuQ7VZ08.js} +1 -0
  241. package/dist/esm/click-elsewhere_3.entry.js +3 -3
  242. package/dist/esm/loader.js +1 -1
  243. package/dist/esm/q2-action-group_2.entry.js +3 -3
  244. package/dist/esm/q2-action-sheet.entry.js +8 -5
  245. package/dist/esm/q2-avatar.entry.js +1 -1
  246. package/dist/esm/q2-badge_2.entry.js +18 -9
  247. package/dist/esm/q2-btn_2.entry.js +2 -2
  248. package/dist/esm/q2-calendar.entry.js +8 -6
  249. package/dist/esm/q2-card-image.entry.js +1 -1
  250. package/dist/esm/q2-card.entry.js +1 -1
  251. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  252. package/dist/esm/q2-carousel.entry.js +104 -70
  253. package/dist/esm/q2-chart-area.entry.js +1 -1
  254. package/dist/esm/q2-chart-bar.entry.js +1 -1
  255. package/dist/esm/q2-chart-donut.entry.js +1 -1
  256. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  257. package/dist/esm/q2-checkbox_2.entry.js +4 -4
  258. package/dist/esm/q2-currency.entry.js +1 -1
  259. package/dist/esm/q2-data-table.entry.js +1 -1
  260. package/dist/esm/q2-detail.entry.js +1 -1
  261. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  262. package/dist/esm/q2-dropdown.entry.js +2 -2
  263. package/dist/esm/q2-editable-field.entry.js +3 -3
  264. package/dist/esm/q2-example.entry.js +1 -1
  265. package/dist/esm/q2-file-picker.entry.js +1 -1
  266. package/dist/esm/q2-form.entry.js +1 -1
  267. package/dist/esm/q2-formatted-text.entry.js +1 -1
  268. package/dist/esm/q2-icon.entry.js +1 -1
  269. package/dist/esm/q2-item.entry.js +1 -1
  270. package/dist/esm/q2-legend.entry.js +1 -1
  271. package/dist/esm/q2-link_2.entry.js +2 -2
  272. package/dist/esm/q2-message.entry.js +1 -1
  273. package/dist/esm/q2-meter.entry.js +1 -1
  274. package/dist/esm/q2-modal.entry.js +1 -1
  275. package/dist/esm/q2-month-picker.entry.js +1 -1
  276. package/dist/esm/q2-optgroup.entry.js +1 -1
  277. package/dist/esm/q2-option.entry.js +1 -1
  278. package/dist/esm/q2-otp.entry.js +1 -1
  279. package/dist/esm/q2-pagination.entry.js +1 -1
  280. package/dist/esm/q2-pill.entry.js +19 -3
  281. package/dist/esm/q2-radio-group.entry.js +1 -1
  282. package/dist/esm/q2-radio.entry.js +1 -1
  283. package/dist/esm/q2-relative-time.entry.js +2 -2
  284. package/dist/esm/q2-search.entry.js +2 -2
  285. package/dist/esm/q2-section.entry.js +3 -3
  286. package/dist/esm/q2-select.entry.js +2 -2
  287. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  288. package/dist/esm/q2-stepper-vertical.entry.js +32 -9
  289. package/dist/esm/q2-stepper.entry.js +18 -4
  290. package/dist/esm/q2-surface.entry.js +3 -3
  291. package/dist/esm/q2-tab-container.entry.js +89 -20
  292. package/dist/esm/q2-tab-pane.entry.js +2 -2
  293. package/dist/esm/q2-tecton-elements.js +1 -1
  294. package/dist/esm/q2-textarea.entry.js +3 -3
  295. package/dist/esm/q2-toast.entry.js +1 -1
  296. package/dist/esm/q2-tooltip.entry.js +27 -16
  297. package/dist/esm/tecton-tab-pane.entry.js +3 -3
  298. package/dist/q2-tecton-elements/action-sheet-DuQ7VZ08.js +65 -0
  299. package/dist/q2-tecton-elements/assets/standard.symbol.svg +1 -1
  300. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js +24 -24
  301. package/dist/q2-tecton-elements/q2-action-group_2.entry.js +42 -42
  302. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +25 -19
  303. package/dist/q2-tecton-elements/q2-avatar.entry.js +1 -1
  304. package/dist/q2-tecton-elements/q2-badge_2.entry.js +26 -16
  305. package/dist/q2-tecton-elements/q2-btn_2.entry.js +2 -2
  306. package/dist/q2-tecton-elements/q2-calendar.entry.js +120 -115
  307. package/dist/q2-tecton-elements/q2-card-image.entry.js +1 -1
  308. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  309. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +11 -11
  310. package/dist/q2-tecton-elements/q2-carousel.entry.js +572 -540
  311. package/dist/q2-tecton-elements/q2-chart-area.entry.js +166 -166
  312. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +190 -190
  313. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +1 -1
  314. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +8 -8
  315. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +8 -8
  316. package/dist/q2-tecton-elements/q2-currency.entry.js +40 -40
  317. package/dist/q2-tecton-elements/q2-data-table.entry.js +64 -64
  318. package/dist/q2-tecton-elements/q2-detail.entry.js +1 -1
  319. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +5 -5
  320. package/dist/q2-tecton-elements/q2-dropdown.entry.js +21 -21
  321. package/dist/q2-tecton-elements/q2-editable-field.entry.js +18 -17
  322. package/dist/q2-tecton-elements/q2-example.entry.js +5 -5
  323. package/dist/q2-tecton-elements/q2-file-picker.entry.js +6 -6
  324. package/dist/q2-tecton-elements/q2-form.entry.js +3 -3
  325. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +3 -3
  326. package/dist/q2-tecton-elements/q2-icon.entry.js +1 -1
  327. package/dist/q2-tecton-elements/q2-item.entry.js +1 -1
  328. package/dist/q2-tecton-elements/q2-legend.entry.js +8 -8
  329. package/dist/q2-tecton-elements/q2-link_2.entry.js +5 -5
  330. package/dist/q2-tecton-elements/q2-message.entry.js +23 -23
  331. package/dist/q2-tecton-elements/q2-meter.entry.js +4 -4
  332. package/dist/q2-tecton-elements/q2-modal.entry.js +3 -3
  333. package/dist/q2-tecton-elements/q2-month-picker.entry.js +39 -39
  334. package/dist/q2-tecton-elements/q2-optgroup.entry.js +13 -13
  335. package/dist/q2-tecton-elements/q2-option.entry.js +22 -22
  336. package/dist/q2-tecton-elements/q2-otp.entry.js +1 -1
  337. package/dist/q2-tecton-elements/q2-pagination.entry.js +11 -11
  338. package/dist/q2-tecton-elements/q2-pill.entry.js +31 -19
  339. package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
  340. package/dist/q2-tecton-elements/q2-radio.entry.js +24 -24
  341. package/dist/q2-tecton-elements/q2-relative-time.entry.js +21 -21
  342. package/dist/q2-tecton-elements/q2-search.entry.js +12 -12
  343. package/dist/q2-tecton-elements/q2-section.entry.js +25 -25
  344. package/dist/q2-tecton-elements/q2-select.entry.js +5 -5
  345. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +16 -16
  346. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +77 -53
  347. package/dist/q2-tecton-elements/q2-stepper.entry.js +44 -30
  348. package/dist/q2-tecton-elements/q2-surface.entry.js +5 -5
  349. package/dist/q2-tecton-elements/q2-tab-container.entry.js +109 -56
  350. package/dist/q2-tecton-elements/q2-tab-pane.entry.js +13 -13
  351. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  352. package/dist/q2-tecton-elements/q2-textarea.entry.js +14 -14
  353. package/dist/q2-tecton-elements/q2-toast.entry.js +6 -6
  354. package/dist/q2-tecton-elements/q2-tooltip.entry.js +25 -24
  355. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +11 -11
  356. package/dist/types/components/q2-carousel/q2-carousel.d.ts +14 -0
  357. package/dist/types/components/q2-input/q2-input.d.ts +7 -1
  358. package/dist/types/components/q2-pill/q2-pill.d.ts +2 -0
  359. package/dist/types/components/q2-stepper/q2-stepper.d.ts +1 -0
  360. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +3 -2
  361. package/dist/types/components/q2-surface/q2-surface.d.ts +3 -3
  362. package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +17 -3
  363. package/dist/types/components/q2-tooltip/q2-tooltip.d.ts +2 -1
  364. package/dist/types/components.d.ts +50 -21
  365. package/dist/types/utils/helpers.d.ts +16 -1
  366. package/dist/types/utils/test/vr-helpers.d.ts +11 -0
  367. package/package.json +12 -5
  368. package/dist/q2-tecton-elements/action-sheet-B7adb3xs.js +0 -64
@@ -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-modal-background: (<color>) Controls the background color of the modal dialog.
70
92
  * @prop --tct-modal-color: (<color>) Controls the text color of the modal dialog.
@@ -192,7 +214,7 @@ dialog[open].is-closing::backdrop {
192
214
  border-radius: var(--tct-modal-image-border-radius, var(--app-border-radius-2, 8px));
193
215
  }
194
216
  .content .description {
195
- font-size: var(--tct-modal-description-font-size, 14px);
217
+ font-size: var(--tct-modal-description-font-size, var(--const-px-14, 14px));
196
218
  }
197
219
  .content.more-gradient {
198
220
  -webkit-mask-image: linear-gradient(to bottom, red 85%, transparent 100%);
@@ -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 ACTIONS = `
5
5
  <q2-btn slot="action" intent="workflow-primary" label="Submit"></q2-btn>
6
6
  <q2-btn slot="action" intent="workflow-secondary" label="Cancel"></q2-btn>
@@ -104,3 +104,14 @@ test.describe('q2-modal — variants × themes', () => {
104
104
  }
105
105
  }
106
106
  });
107
+ test.describe(`q2-modal — scaled font size × themes`, () => {
108
+ if (BASIC_VARIANT) {
109
+ for (const theme of THEMES) {
110
+ test(`q2-modal--basic--open--${FONT_SCALE_SUFFIX} — ${theme}`, async ({ page }) => {
111
+ await setupPage(page, BASIC_VARIANT.html, { theme, fontSizePx: FONT_SCALE_PX, setupLoc: true });
112
+ await openModal(page);
113
+ await expect(page).toHaveScreenshot(`q2-modal--basic--open--${FONT_SCALE_SUFFIX}--${theme}.png`);
114
+ });
115
+ }
116
+ }
117
+ });
@@ -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-optgroup-header-background: (<color>) Controls the background color of the optgroup header.
70
92
  * @prop --tct-optgroup-header-color?: (<color>) Controls the optional text color of the optgroup header.
@@ -84,7 +106,7 @@ button {
84
106
  --comp-header-padding: var(--tct-scale-1, var(--app-scale-1x, 5px)) var(--tct-scale-2, var(--app-scale-2x, 10px));
85
107
  background: var(--tct-optgroup-header-background, var(--tct-optgroup-header-bg, var(--t-optgroup-header-bg, var(--t-base, #FFFFFF))));
86
108
  color: var(--tct-optgroup-header-color, inherit);
87
- font-size: var(--tct-optgroup-header-font-size, 14px);
109
+ font-size: var(--tct-optgroup-header-font-size, var(--const-px-14, 14px));
88
110
  font-weight: var(--tct-optgroup-header-font-weight, 600);
89
111
  letter-spacing: var(--tct-optgroup-header-letter-spacing, inherit);
90
112
  position: var(--tct-optgroup-header-position, sticky);
@@ -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-option-active-background: (<color>) Controls the background color of the option in its active, focused, and hover states.
70
92
  * @prop --tct-option-active-color?: (<color>) Controls the optional text color of the option in its active, focused, and hover states.
@@ -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-option-list-line-height: (<number> | <length-percentage>) Controls the line height of the option list container.
70
92
  */
@@ -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-otp-margin?: (<length-percentage>+) Controls the margin of the component host as a shorthand. Overrides --tct-otp-margin-top and --tct-otp-margin-bottom when set.
70
92
  * @prop --tct-otp-margin-top: (<length-percentage>) Controls the top margin of the component host.
@@ -119,9 +141,9 @@ button {
119
141
  --comp-otp-field-border-radius: var(--tct-otp-field-border-radius, var(--tct-border-radius-2, var(--app-border-radius-2, 8px)));
120
142
  --comp-otp-field-border-width: var(--tct-otp-field-border-width, 1px);
121
143
  --comp-otp-field-font-color: var(--tct-otp-field-font-color, var(--t-text, inherit));
122
- --comp-otp-field-font-size: var(--tct-otp-field-font-size, var(--app-font-size, 16px));
144
+ --comp-otp-field-font-size: var(--tct-otp-field-font-size, var(--app-font-size, var(--const-px-16, 16px)));
123
145
  --comp-otp-field-masked-color: var(--tct-otp-field-masked-color, var(--tct-otp-field-font-color, var(--t-text, #1f1f1f)));
124
- --comp-otp-field-masked-size: var(--tct-otp-field-masked-size, var(--tct-otp-field-masked-font-size, 8px));
146
+ --comp-otp-field-masked-size: var(--tct-otp-field-masked-size, var(--tct-otp-field-masked-font-size, var(--const-px-8, 8px)));
125
147
  --comp-otp-field-font-weight: var(--tct-otp-field-font-weight, 400);
126
148
  --comp-otp-field-focus-box-shadow: var(--tct-otp-field-focus-box-shadow, var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc));
127
149
  --comp-otp-field-error-border-color: var(--tct-otp-field-error-border-color, var(--const-stoplight-alert, #c30000));
@@ -132,7 +154,7 @@ button {
132
154
  --comp-otp-field-success-focus-box-shadow: var(--tct-otp-field-success-focus-box-shadow, 0 0 0 2px #ffffff, 0 0 0 4px var(--comp-otp-field-success-focus-ring-color));
133
155
  --comp-otp-field-disabled-opacity: var(--tct-otp-field-disabled-opacity, var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4)));
134
156
  --comp-otp-separator-color: var(--tct-otp-separator-color, var(--t-textA, var(--t-a11y-gray-color, #4d4d4d)));
135
- --comp-otp-separator-font-size: var(--tct-otp-separator-font-size, 20px);
157
+ --comp-otp-separator-font-size: var(--tct-otp-separator-font-size, var(--const-px-20, 20px));
136
158
  --comp-otp-separator-font-weight: var(--tct-otp-separator-font-weight, 600);
137
159
  align-items: center;
138
160
  display: inline-flex;
@@ -156,7 +178,7 @@ button {
156
178
 
157
179
  .helper-text {
158
180
  color: var(--tct-otp-helper-font-color, var(--t-textA, var(--t-a11y-gray-color, rgba(77, 77, 77, 0.77))));
159
- font-size: var(--tct-otp-helper-font-size, var(--app-font-size-small, 12px));
181
+ font-size: var(--tct-otp-helper-font-size, var(--app-font-size-small, var(--const-px-12, 12px)));
160
182
  text-align: center;
161
183
  }
162
184
 
@@ -211,6 +233,7 @@ button {
211
233
  caret-color: transparent;
212
234
  color: transparent;
213
235
  cursor: text;
236
+ /* stylelint-disable-next-line tecton/require-t-px-fallback */
214
237
  font-size: 16px;
215
238
  height: 100%;
216
239
  inset: 0;
@@ -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 VARIANTS = [
5
5
  {
6
6
  name: 'default',
@@ -81,3 +81,14 @@ test.describe('q2-otp — variants × themes', () => {
81
81
  }
82
82
  }
83
83
  });
84
+ const HELPER_TEXT = VARIANTS.find(v => v.name === 'helper-text');
85
+ test.describe(`q2-otp — scaled font size × themes`, () => {
86
+ if (HELPER_TEXT) {
87
+ for (const theme of THEMES) {
88
+ test(`q2-otp--helper-text--resting--${FONT_SCALE_SUFFIX} — ${theme}`, async ({ page }) => {
89
+ await setupPage(page, HELPER_TEXT.html, { theme, fontSizePx: FONT_SCALE_PX, setupLoc: true });
90
+ await expect(page).toHaveScreenshot(`q2-otp--helper-text--resting--${FONT_SCALE_SUFFIX}--${theme}.png`);
91
+ });
92
+ }
93
+ }
94
+ });
@@ -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-pagination-color?: (<color>) Controls the optional text color of the pagination container.
70
92
  * @prop --tct-pagination-font-size?: (<length-percentage>) Controls the optional font size of pagination text.
@@ -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-pill-margin: (<length-percentage>) Controls the trailing inline margin between sibling pills.
70
92
  * @prop --tct-pill-min-height: (<length>) Controls the minimum height of the pill (and its popover container).
@@ -81,6 +103,7 @@ button {
81
103
  * @prop --tct-pill-btn-color: (<color>) Controls the text color of the pill button in the default state.
82
104
  * @prop --tct-pill-btn-font-size: (<length-percentage>) Controls the font size of the pill button.
83
105
  * @prop --tct-pill-btn-font-weight: (<number>) Controls the font weight of the pill button.
106
+ * @prop --tct-pill-btn-letter-spacing?: (<length>) Controls the optional letter spacing of the pill button.
84
107
  * @prop --tct-pill-btn-tween: (*) Controls the transition timing of the pill button's interactive state changes.
85
108
  * @prop --tct-pill-btn-focus-box-shadow: (*) Controls the box shadow of the pill button when focused.
86
109
  * @prop --tct-pill-btn-focus-visible-box-shadow: (*) Controls the box shadow of the pill button when focused via keyboard.
@@ -117,6 +140,10 @@ button {
117
140
  * @prop --tct-pill-tertiary-active-hover-border-color: (<color>) Controls the border color of the pill button when active and theme is tertiary, on hover.
118
141
  * @prop --tct-pill-tertiary-active-box-shadow?: (*) Controls the optional box shadow of the pill button when active and theme is tertiary.
119
142
  * @prop --tct-pill-tertiary-active-backdrop-filter?: (*) Controls the optional backdrop-filter of the pill button when active and theme is tertiary.
143
+ * @prop --tct-pill-decorator-icon-primary-stroke: (<color>) Controls the primary stroke color of a q2-icon placed in the decorator slot.
144
+ * @prop --tct-pill-decorator-icon-secondary-stroke: (<color>) Controls the secondary stroke color of a q2-icon placed in the decorator slot.
145
+ * @prop --tct-pill-active-decorator-icon-primary-stroke: (<color>) Controls the primary stroke color of a q2-icon placed in the decorator slot when the pill is active.
146
+ * @prop --tct-pill-active-decorator-icon-secondary-stroke: (<color>) Controls the secondary stroke color of a q2-icon placed in the decorator slot when the pill is active.
120
147
  */
121
148
  :host {
122
149
  display: inline-block;
@@ -154,6 +181,7 @@ q2-popover,
154
181
  --comp-btn-backdrop-filter: var(--tct-pill-btn-backdrop-filter, none);
155
182
  --comp-hover-btn-background: var(--tct-pill-hover-btn-background, var(--t-pill-hover-btn-background, var(--t-gray-13, #e6e6e6)));
156
183
  --comp-btn-padding: var(--tct-pill-btn-padding-inline, var(--t-pill-btn-padding-inline, var(--app-scale-3x, 15px)));
184
+ --comp-btn-letter-spacing: var(--tct-pill-btn-letter-spacing, inherit);
157
185
  --comp-btn-color: var(--tct-pill-btn-color, var(--t-pill-btn-color, var(--t-gray-3, #262626)));
158
186
  --comp-active-btn-color: var(--tct-pill-active-btn-color, var(--comp-btn-background));
159
187
  --comp-active-btn-background: var(--tct-pill-active-btn-background, var(--t-pill-active-btn-background, var(--t-gray-7, #666666)));
@@ -234,15 +262,23 @@ q2-popover,
234
262
  backdrop-filter: var(--comp-btn-backdrop-filter);
235
263
  border-width: var(--comp-pill-btn-border-width);
236
264
  border-color: var(--tct-pill-btn-border-color, var(--t-pill-btn-border-color, var(--t-a11y-gray-color-AA, #949494)));
265
+ letter-spacing: var(--comp-btn-letter-spacing);
237
266
  padding-inline: var(--comp-btn-padding);
238
267
  padding-right: calc(var(--comp-btn-padding) + var(--comp-close-size));
239
- font-size: var(--tct-pill-btn-font-size, var(--t-pill-btn-font-size, var(--app-font-size, 14px)));
268
+ font-size: var(--tct-pill-btn-font-size, var(--t-pill-btn-font-size, var(--app-font-size, var(--const-px-14, 14px))));
240
269
  font-weight: var(--tct-pill-btn-font-weight, 400);
241
270
  color: var(--comp-btn-color);
242
- display: block;
271
+ display: flex;
272
+ align-items: center;
273
+ gap: var(--app-scale-1x, 5px);
243
274
  width: 100%;
244
275
  text-align: start;
245
276
  }
277
+ .btn-primary ::slotted(q2-icon[slot=decorator]) {
278
+ --tct-icon-size: 1em;
279
+ --tct-icon-stroke-primary: var(--tct-pill-decorator-icon-primary-stroke, var(--comp-btn-color));
280
+ --tct-icon-stroke-secondary: var(--tct-pill-decorator-icon-secondary-stroke, var(--comp-btn-color));
281
+ }
246
282
  .btn-primary:focus {
247
283
  box-shadow: var(--tct-pill-btn-focus-box-shadow, var(--const-double-focus-ring));
248
284
  }
@@ -278,6 +314,10 @@ q2-popover,
278
314
  background: var(--comp-hover-active-btn-background);
279
315
  border-color: var(--comp-hover-active-btn-border-color);
280
316
  }
317
+ :host([active]:not([active=false])) .btn-primary ::slotted(q2-icon[slot=decorator]) {
318
+ --tct-icon-stroke-primary: var(--tct-pill-active-decorator-icon-primary-stroke, var(--tct-pill-decorator-icon-primary-stroke, var(--comp-active-btn-color)));
319
+ --tct-icon-stroke-secondary: var(--tct-pill-active-decorator-icon-secondary-stroke, var(--tct-pill-decorator-icon-secondary-stroke, var(--comp-active-btn-color)));
320
+ }
281
321
 
282
322
  .btn-close {
283
323
  background: transparent;
@@ -6,6 +6,7 @@ import { shouldShowActionSheet, showActionSheetList } from "../../utils/action-s
6
6
  * @name Pill
7
7
  * @category Display
8
8
  * @summary Use for displaying and removing active filters in data views.
9
+ * @slot decorator - An optional slot that supports an [Icon](https://tecton.q2developer.com/design-system/q2-icon) to be displayed before the pill label.
9
10
  * @slot popover-top - An optional slot to display custom content persistently at the top of the popover. This is **not** compatible with the action sheet workflow.
10
11
  * @slot popover-bottom - An optional slot to display custom content persistently at the bottom of the popover. This is **not** compatible with the action sheet workflow.
11
12
  */
@@ -54,6 +55,20 @@ export class Q2Pill {
54
55
  this.primaryBtn.focus();
55
56
  this.handleSelectionChanges(result);
56
57
  };
58
+ this.filterSlottedElements = () => {
59
+ if (!('HTMLSlotElement' in window))
60
+ return;
61
+ const slot = this.hostElement.shadowRoot.querySelector('slot[name="decorator"]');
62
+ const assignedElements = Array.from((slot === null || slot === void 0 ? void 0 : slot.assignedElements()) || []);
63
+ if (!assignedElements.length)
64
+ return;
65
+ const approvedElements = ['Q2-ICON'];
66
+ assignedElements.forEach((element, index) => {
67
+ if (!approvedElements.includes(element.tagName) || index > 0) {
68
+ element.remove();
69
+ }
70
+ });
71
+ };
57
72
  this.getOption = async (value) => {
58
73
  if (this.optionList) {
59
74
  const options = await this.getOptionListOptions();
@@ -178,6 +193,7 @@ export class Q2Pill {
178
193
  this.updateSlotState();
179
194
  this.determineOptionCount();
180
195
  this.updateSelectedOptionElements();
196
+ this.filterSlottedElements();
181
197
  };
182
198
  this.onPopoverState = (event) => {
183
199
  const { open, action } = event.detail;
@@ -238,6 +254,7 @@ export class Q2Pill {
238
254
  componentDidLoad() {
239
255
  overrideFocus(this.hostElement);
240
256
  this.syncValueProperties();
257
+ this.filterSlottedElements();
241
258
  }
242
259
  componentDidRender() {
243
260
  this.scheduledAfterRender.forEach(fn => fn());
@@ -393,7 +410,7 @@ export class Q2Pill {
393
410
  wrapperClassNames.push('has-icon');
394
411
  if (optionCount)
395
412
  wrapperClassNames.push('has-options');
396
- return (h("click-elsewhere", { key: 'af7276f19b602f08f69bd1b7e0dc86108796db68', onChange: this.onClickElsewhere }, h("div", { key: '329da4b893e1988902269e58f95fb182d6e5991e', class: wrapperClassNames.join(' ') }, h("div", { key: 'd7c48db3fa02c71d2c9427600aa76435435cf213', class: "btn-height-wrapper", ref: el => (this.primaryBtnWrapper = el), onClick: this.handleWrapperClick, tabIndex: -1 }, h("button", { key: 'cdbfab7954662c929566935b20d9bbc209d3ff2d', class: "btn-primary", "test-id": "btn-control", type: "button", role: (optionCount && 'combobox') || undefined, ref: el => (this.primaryBtn = el), onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleFocusOut, disabled: this.disabled, "aria-roledescription": !optionCount && 'filter', "aria-controls": (optionCount && 'option-list') || undefined, "aria-expanded": (optionCount && `${!!open}`) || undefined, "aria-label": text, "aria-pressed": !optionCount ? `${!!active}` : undefined, "aria-describedby": (optionCount && 'option-description') || undefined }, truncatedText)), this.renderIcon(), !!optionCount && this.renderHiddenElement()), this.optionCount > 0 && (h("q2-popover", { key: 'e41cd2f6024b51a11a2dcb509dad18fad4f0019d', ref: el => (this.popoverElement = el), controlElement: this.primaryBtn, open: this.open, "max-height": this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment, onFocusout: this.handleFocusOut }, h("div", { key: 'e235761dfe3537b47fb80a72150d87e60091f47b', class: "popover-content" }, h("div", { key: 'c80a8dba5b832f3b1fbb286648289d3bc81e7c0a', ref: el => (this.popoverTopContainer = el), class: "popover-top-container", tabindex: "-1", hidden: !this.hasPopoverTop, onKeyDown: this.handleSlotKeydown }, h("slot", { key: '44e011b6808a6c038cfb264c5a786f6512dfd1bc', name: "popover-top" })), h("q2-option-list", { key: '546d12c22227897acd089360a119262ab8d8d732', type: "listbox", ref: el => (this.optionList = el), id: "option-list", onChange: this.handleChange, multiple: this.multiple, selectedOptions: this.selectedOptions, onReady: () => this.updateSelectedOptionElements(), onPopoverState: this.onPopoverState, label: loc('tecton.element.optionList.label', [this.optionListLabel]) }, h("slot", { key: 'e115796433e08a2e346362bba8a852b37728f94d' })), h("div", { key: '92014390d384a3a5ff71aad12959ef7c5f91de17', ref: el => (this.popoverBottomContainer = el), class: "popover-bottom-container", tabindex: "-1", hidden: !this.hasPopoverBottom, onKeyDown: this.handleSlotKeydown }, h("slot", { key: '1bff78f8808f83e1346ee0f482befae2ee16312f', name: "popover-bottom" })))))));
413
+ return (h("click-elsewhere", { key: '5bbfce776dcd2ef3ac7097b37fd2df039d47c21f', onChange: this.onClickElsewhere }, h("div", { key: '9d8d7a4b6afb1d931d762a0e656509a2036180ba', class: wrapperClassNames.join(' ') }, h("div", { key: '5bbf245bd78d2ed075b9a16cc46396528f20b823', class: "btn-height-wrapper", ref: el => (this.primaryBtnWrapper = el), onClick: this.handleWrapperClick, tabIndex: -1 }, h("button", { key: '494b1555d332a62c8a2946da260a9bb5f26849d5', class: "btn-primary", "test-id": "btn-control", type: "button", role: (optionCount && 'combobox') || undefined, ref: el => (this.primaryBtn = el), onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleFocusOut, disabled: this.disabled, "aria-roledescription": !optionCount && 'filter', "aria-controls": (optionCount && 'option-list') || undefined, "aria-expanded": (optionCount && `${!!open}`) || undefined, "aria-label": text, "aria-pressed": !optionCount ? `${!!active}` : undefined, "aria-describedby": (optionCount && 'option-description') || undefined }, h("slot", { key: 'd26426863ec1dadfbf2049ca6b85dcdb28875858', name: "decorator" }), truncatedText)), this.renderIcon(), !!optionCount && this.renderHiddenElement()), this.optionCount > 0 && (h("q2-popover", { key: '1b06b432ce4ab98a1d1d0b70acb7074849e94999', ref: el => (this.popoverElement = el), controlElement: this.primaryBtn, open: this.open, "max-height": this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment, onFocusout: this.handleFocusOut }, h("div", { key: 'ea87e923fe84d94fc1f9a1b72b9fd1deef5cb5ad', class: "popover-content" }, h("div", { key: '53b50f438af20d4474b42511ee334391ff429fa0', ref: el => (this.popoverTopContainer = el), class: "popover-top-container", tabindex: "-1", hidden: !this.hasPopoverTop, onKeyDown: this.handleSlotKeydown }, h("slot", { key: '0996ca12d288c696601919df48ef6c8784bbf8d4', name: "popover-top" })), h("q2-option-list", { key: '9faef4049f040e8c22b46107a7a618224cd0e82c', type: "listbox", ref: el => (this.optionList = el), id: "option-list", onChange: this.handleChange, multiple: this.multiple, selectedOptions: this.selectedOptions, onReady: () => this.updateSelectedOptionElements(), onPopoverState: this.onPopoverState, label: loc('tecton.element.optionList.label', [this.optionListLabel]) }, h("slot", { key: '8f54a5eb6670b9bffb2062eeb9815834b2aa8de7' })), h("div", { key: '1e61e07bb5c6bdcdfd68080cc606bb1a42f48d79', ref: el => (this.popoverBottomContainer = el), class: "popover-bottom-container", tabindex: "-1", hidden: !this.hasPopoverBottom, onKeyDown: this.handleSlotKeydown }, h("slot", { key: '48a8d60e3eae7de823d1e55ab9153dedda9a739d', name: "popover-bottom" })))))));
397
414
  }
398
415
  static get is() { return "q2-pill"; }
399
416
  static get encapsulation() { return "shadow"; }
@@ -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 OPTIONS = `
5
5
  <q2-option value="1">Option 1</q2-option>
6
6
  <q2-option value="2">Option 2</q2-option>
@@ -50,6 +50,17 @@ const WITH_OPTIONS_VARIANTS = THEME_VALUES.map(t => ({
50
50
  name: `with-options-${t}`,
51
51
  html: `<q2-pill label="My pill" value="2"${themeAttr(t)}>${OPTIONS}</q2-pill>`,
52
52
  }));
53
+ // Decorator variants — icon alone and icon with options present.
54
+ const DECORATOR_VARIANTS = [
55
+ {
56
+ name: 'with-icon-decorator',
57
+ html: `<q2-pill label="My pill"><q2-icon slot="decorator" type="star"></q2-icon></q2-pill>`,
58
+ },
59
+ {
60
+ name: 'with-icon-decorator-and-options',
61
+ html: `<q2-pill label="My pill" value="2"><q2-icon slot="decorator" type="star"></q2-icon>${OPTIONS}</q2-pill>`,
62
+ },
63
+ ];
53
64
  const restingCase = (variant, theme) => {
54
65
  test(`q2-pill--${variant.name}--resting — ${theme}`, async ({ page }) => {
55
66
  await setupPage(page, variant.html, { theme });
@@ -106,4 +117,19 @@ test.describe('q2-pill — variants × themes', () => {
106
117
  closeBtnFocusCase(variant, theme);
107
118
  }
108
119
  }
120
+ for (const variant of DECORATOR_VARIANTS) {
121
+ for (const theme of THEMES) {
122
+ restingCase(variant, theme);
123
+ }
124
+ }
125
+ });
126
+ // 'default' (inactive, no value) exercises --tct-pill-btn-font-size (button label text).
127
+ const PILL_DEFAULT_VARIANT = VARIANTS.find(v => v.name === 'default');
128
+ test.describe(`q2-pill — scaled font size × themes`, () => {
129
+ for (const theme of THEMES) {
130
+ test(`q2-pill--default--resting--${FONT_SCALE_SUFFIX} — ${theme}`, async ({ page }) => {
131
+ await setupPage(page, PILL_DEFAULT_VARIANT.html, { theme, fontSizePx: FONT_SCALE_PX });
132
+ await expect(page).toHaveScreenshot(`q2-pill--default--resting--${FONT_SCALE_SUFFIX}--${theme}.png`);
133
+ });
134
+ }
109
135
  });
@@ -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-popover-background: (<color>) Controls the background color of the popover.
70
92
  * @prop --tct-popover-font-color: (<color>) Controls the text color of the popover content.
@@ -154,13 +176,6 @@ button {
154
176
  animation-timing-function: var(--tct-popover-close-animation-timing-function, ease-in);
155
177
  animation-fill-mode: var(--tct-popover-close-animation-fill-mode, forwards);
156
178
  }
157
- @media (prefers-reduced-motion: reduce) {
158
- :popover-open.animating-open, :popover-open.animating-close,
159
- .show.animating-open,
160
- .show.animating-close {
161
- animation-duration: 0.01ms;
162
- }
163
- }
164
179
  :popover-open.block,
165
180
  .show.block {
166
181
  right: unset;
@@ -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-radio-margin: (<length-percentage>+) Controls the outer margin of the radio container.
70
92
  * @prop --tct-radio-transition: (*) Controls the transition timing of radio state changes.
@@ -158,7 +180,7 @@ button {
158
180
  .radio-container label[for] {
159
181
  color: var(---comp-label-content-color);
160
182
  font-weight: var(---comp-label-content-font-weight);
161
- font-size: var(--tct-radio-label-font-size, 14px);
183
+ font-size: var(--tct-radio-label-font-size, var(--const-px-14, 14px));
162
184
  align-items: start;
163
185
  cursor: pointer;
164
186
  margin-right: var(---comp-label-content-margin-right);
@@ -241,7 +263,7 @@ button {
241
263
  background: var(--tct-radio-background-fill, transparent);
242
264
  cursor: pointer;
243
265
  display: block;
244
- font-size: var(--tct-radio-tile-label-font-size, var(--tct-radio-label-font-size, 14px));
266
+ font-size: var(--tct-radio-tile-label-font-size, var(--tct-radio-label-font-size, var(--const-px-14, 14px)));
245
267
  padding: 10px;
246
268
  position: relative;
247
269
  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 VARIANTS = [
5
5
  {
6
6
  name: 'unchecked',
@@ -70,3 +70,14 @@ test.describe('q2-radio — variants × themes', () => {
70
70
  }
71
71
  }
72
72
  });
73
+ const UNCHECKED = VARIANTS.find(v => v.name === 'unchecked');
74
+ test.describe(`q2-radio — scaled font size × themes`, () => {
75
+ if (UNCHECKED) {
76
+ for (const theme of THEMES) {
77
+ test(`q2-radio--unchecked--resting--${FONT_SCALE_SUFFIX} — ${theme}`, async ({ page }) => {
78
+ await setupPage(page, UNCHECKED.html, { theme, fontSizePx: FONT_SCALE_PX });
79
+ await expect(page).toHaveScreenshot(`q2-radio--unchecked--resting--${FONT_SCALE_SUFFIX}--${theme}.png`);
80
+ });
81
+ }
82
+ }
83
+ });
@@ -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-radio-group-margin: (<length-percentage>+) Controls the outer margin of the radio-group host.
70
92
  * @prop --tct-radio-group-margin-top: (<length-percentage>) Controls the top margin of the radio-group host when --tct-radio-group-margin is not set.
@@ -134,7 +156,7 @@ legend.sr-only {
134
156
  .optional-tag {
135
157
  margin-left: var(--tct-radio-group-label-optional-margin-left, var(--app-scale-1x, 5px));
136
158
  color: var(--tct-radio-group-label-optional-color, var(--t-radio-group-label-optional-color, var(--tct-a11y-color, var(--t-a11y-color, var(--tct-a11y-gray-color, var(--t-a11y-gray-color, var(--tct-gray-7, var(--t-gray-7, var(--tct-gray-d1, var(--t-gray-d1, var(--app-gray-d1, rgba(77, 77, 77, 0.77))))))))))));
137
- font-size: var(--tct-radio-group-label-optional-font-size, var(--t-radio-group-label-optional-font-size, 12px));
159
+ font-size: var(--tct-radio-group-label-optional-font-size, var(--t-radio-group-label-optional-font-size, var(--const-px-12, 12px)));
138
160
  font-weight: var(--tct-radio-group-label-optional-font-weight, var(--t-radio-group-label-optional-font-weight, 400));
139
161
  }
140
162
 
@@ -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 RADIOS = `
5
5
  <q2-radio value="1" label="Option 1"></q2-radio>
6
6
  <q2-radio value="2" label="Option 2"></q2-radio>
@@ -96,3 +96,13 @@ test.describe('q2-radio-group — variants × themes', () => {
96
96
  }
97
97
  }
98
98
  });
99
+ // 'optional' exercises --tct-radio-group-label-optional-font-size (.optional-tag).
100
+ const OPTIONAL_VARIANT = VARIANTS.find(v => v.name === 'optional');
101
+ test.describe(`q2-radio-group — scaled font size × themes`, () => {
102
+ for (const theme of THEMES) {
103
+ test(`q2-radio-group--optional--resting--${FONT_SCALE_SUFFIX} — ${theme}`, async ({ page }) => {
104
+ await setupPage(page, OPTIONAL_VARIANT.html, { theme, fontSizePx: FONT_SCALE_PX });
105
+ await expect(page).toHaveScreenshot(`q2-radio-group--optional--resting--${FONT_SCALE_SUFFIX}--${theme}.png`);
106
+ });
107
+ }
108
+ });