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
@@ -1,8 +1,8 @@
1
1
  import { r as t, h as o, g as i } from "./index-Cqkz7Bnm.js";
2
2
 
3
- import { o as e, i as s } from "./index-Cps4jSQM.js";
3
+ import { o as e, g as s, i as a } from "./index-Cps4jSQM.js";
4
4
 
5
- const a = class {
5
+ const r = class {
6
6
  constructor(o) {
7
7
  t(this, o),
8
8
  // #region Own Properties
@@ -32,14 +32,18 @@ const a = class {
32
32
  (null === (o = t.composedPath) || void 0 === o ? void 0 : o.call(t).includes(this.hostElement)) || t.target instanceof Node && this.hostElement.contains(t.target) ? this.persistOnHoverDismissed = !1 : (this.persistOnHoverDismissed = !0,
33
33
  this.hideTooltip());
34
34
  }
35
+ clickHandler() {
36
+ this.adjustSide(), !this.persistent && s() && (this.persistOnHoverDismissed = !1,
37
+ this.focusClass = "has-touch-click");
38
+ }
35
39
  focusCaptureHandler() {
36
- this.checkFocusClass();
40
+ (this.shouldBeVisible || this.persistent) && this.adjustSide(), this.checkFocusClass();
37
41
  }
38
42
  focusHandler(t) {
39
- s(t, this.hostElement) && this.focusable && this.tooltipElement.focus();
43
+ a(t, this.hostElement) && this.focusable && this.tooltipElement.focus();
40
44
  }
41
45
  focusOutHandler() {
42
- this.shouldBeVisible || ("has-generic-focus" === this.focusClass ? this.focusClass = "has-generic-focus-out" : this.focusClass = null);
46
+ this.shouldBeVisible || (this.focusClass = null);
43
47
  }
44
48
  // Escape must be handled on `document` so it still dismisses when the tooltip is visible by hover only and focus is not inside the tooltip host.
45
49
  keyDownDocumentHandler(t) {
@@ -67,26 +71,24 @@ const a = class {
67
71
  const {left: t, right: o, width: i, top: e, bottom: s} = this.hostElement.getBoundingClientRect();
68
72
  if (!t || !i) return;
69
73
  // Find the constraining container (modal, dialog, or any overflow:hidden ancestor)
70
- const a = this.findConstrainingContainer().getBoundingClientRect(), {width: n, paddingLeft: r, paddingRight: p} = window.getComputedStyle(this.tooltipElement, "::after"), l = Number(n.replace(/[px]/g, "")) + Number(r.replace(/[px]/g, "")) + Number(p.replace(/[px]/g, "")), h = [ "se", "sw", "ne", "nw" ].includes(this.position) ? 0 : 15, c = t - a.left + i / 2, f = a.right - o + i / 2, d = e - a.top, m = a.bottom - s, u = this.calculateTooltipHeight();
74
+ const a = this.findConstrainingContainer().getBoundingClientRect(), {width: r, paddingLeft: n, paddingRight: l} = window.getComputedStyle(this.tooltipElement, "::after"), p = Number(r.replace(/[px]/g, "")) + Number(n.replace(/[px]/g, "")) + Number(l.replace(/[px]/g, "")), h = [ "se", "sw", "ne", "nw" ].includes(this.position) ? 0 : 15, c = t - a.left + i / 2, d = a.right - o + i / 2, f = e - a.top, m = a.bottom - s, u = this.calculateTooltipHeight();
71
75
  // Check if we need to flip vertical position
72
- [ "n", "ne", "nw" ].includes(this.position) && d < u ?
76
+ [ "n", "ne", "nw" ].includes(this.position) && f < u ?
73
77
  // Not enough space above, try flipping to bottom
74
- m >= u && (this.position = this.position.replace("n", "s")) : [ "s", "se", "sw" ].includes(this.position) && m < u && d >= u && (this.position = this.position.replace("s", "n")),
78
+ m >= u && (this.position = this.position.replace("n", "s")) : [ "s", "se", "sw" ].includes(this.position) && m < u && f >= u && (this.position = this.position.replace("s", "n")),
75
79
  // Adjust horizontal positioning
76
- [ "ne", "se" ].includes(this.position) ? l > f && this.tooltipElement.style.setProperty("--comp-offset-translate", `-${Math.round(l - f + h)}px`) : [ "nw", "sw" ].includes(this.position) ? l > c && this.tooltipElement.style.setProperty("--comp-offset-translate", `${Math.round(l - c + h)}px`) : [ "n", "s" ].includes(this.position) && (l / 2 > c ? this.tooltipElement.style.setProperty("--comp-offset-translate", `${Math.round(l / 2 - c + h)}px`) : l / 2 > f ? this.tooltipElement.style.setProperty("--comp-offset-translate", `-${Math.round(l / 2 - f + h)}px`) : this.tooltipElement.style.setProperty("--comp-offset-translate", "0px")),
80
+ [ "ne", "se" ].includes(this.position) ? p > d ? this.tooltipElement.style.setProperty("--comp-offset-translate", `-${Math.round(p - d + h)}px`) : this.tooltipElement.style.setProperty("--comp-offset-translate", "0px") : [ "nw", "sw" ].includes(this.position) ? p > c ? this.tooltipElement.style.setProperty("--comp-offset-translate", `${Math.round(p - c + h)}px`) : this.tooltipElement.style.setProperty("--comp-offset-translate", "0px") : [ "n", "s" ].includes(this.position) && (p / 2 > c ? this.tooltipElement.style.setProperty("--comp-offset-translate", `${Math.round(p / 2 - c + h)}px`) : p / 2 > d ? this.tooltipElement.style.setProperty("--comp-offset-translate", `-${Math.round(p / 2 - d + h)}px`) : this.tooltipElement.style.setProperty("--comp-offset-translate", "0px")),
77
81
  // Handle east/west positioning
78
- "e" === this.position && l > f ?
82
+ "e" === this.position && p > d ?
79
83
  // Not enough space on right, flip to left
80
- c >= l && (this.position = "w") : "w" === this.position && l > c && f >= l && (this.position = "e");
84
+ c >= p && (this.position = "w") : "w" === this.position && p > c && d >= p && (this.position = "e");
81
85
  }
82
86
  animationEndHandler() {
83
87
  this.animationEndCount = this.animationEndCount + 1;
84
88
  const {focusClass: t, animationEndCount: o} = this;
85
- // animationEnd is fired once for :before and once for :after pseudo elements
86
- // there are multiple animations defined for .has-generic-focus
87
- // so we need to wait for all of them to finish before we can remove the class
88
- ("has-generic-focus-out" === t || "has-generic-focus" === t && 4 === o) && (this.focusClass = null,
89
- this.animationEndCount = 0);
89
+ // animationEnd fires once for :before and once for :after, and there
90
+ // are two animations on .has-touch-click, so wait for all four before clearing.
91
+ "has-touch-click" === t && o >= 4 && (this.focusClass = null, this.animationEndCount = 0);
90
92
  }
91
93
  calculateTooltipHeight() {
92
94
  if (null !== this.cachedTooltipHeight) return this.cachedTooltipHeight;
@@ -98,11 +100,11 @@ const a = class {
98
100
  return this.cachedTooltipHeight = i + e + s, this.cachedTooltipHeight;
99
101
  }
100
102
  // Fallback: Calculate based on text and wrapping
101
- const i = Number(t.width.replace(/px/g, "")), e = Number(t.paddingLeft.replace(/px/g, "")), s = Number(t.paddingRight.replace(/px/g, "")), a = Number(t.paddingTop.replace(/px/g, "")), n = Number(t.paddingBottom.replace(/px/g, "")), r = Number(t.fontSize.replace(/px/g, "")), p = t.lineHeight, l = "normal" === p ? 1.5 * r : Number(p.replace(/px/g, "")), h = i - e - s;
103
+ const i = Number(t.width.replace(/px/g, "")), e = Number(t.paddingLeft.replace(/px/g, "")), s = Number(t.paddingRight.replace(/px/g, "")), a = Number(t.paddingTop.replace(/px/g, "")), r = Number(t.paddingBottom.replace(/px/g, "")), n = Number(t.fontSize.replace(/px/g, "")), l = t.lineHeight, p = "normal" === l ? 1.5 * n : Number(l.replace(/px/g, "")), h = i - e - s;
102
104
  // Single-line tooltip (white-space: pre)
103
- if ("pre" === t.whiteSpace || !this.multiline) return l + a + n;
105
+ if ("pre" === t.whiteSpace || !this.multiline) return p + a + r;
104
106
  // Multi-line tooltip: estimate line count
105
- const c = this.label || "", f = .5 * r, d = Math.floor(h / f), m = Math.max(1, Math.ceil(c.length / d)) * l + a + n;
107
+ const c = this.label || "", d = .5 * n, f = Math.floor(h / d), m = Math.max(1, Math.ceil(c.length / f)) * p + a + r;
106
108
  // Add some buffer for safety (10px)
107
109
  return this.cachedTooltipHeight = Math.ceil(m) + 10, this.cachedTooltipHeight;
108
110
  } catch (t) {
@@ -114,8 +116,7 @@ const a = class {
114
116
  }
115
117
  checkFocusClass() {
116
118
  if (!this.shouldBeVisible) return;
117
- const t = !!this.findFocusVisibleElement(document.activeElement);
118
- this.focusClass = t ? "has-keyboard-focus" : "has-generic-focus";
119
+ !this.findFocusVisibleElement(document.activeElement) ? s() && (this.focusClass = "has-touch-click") : this.focusClass = "has-keyboard-focus";
119
120
  }
120
121
  clearTooltipOnChildren() {
121
122
  const t = Array.from(this.hostElement.children);
@@ -139,7 +140,7 @@ const a = class {
139
140
  (null == t ? void 0 : t.matches(":focus-visible")) ? t : null;
140
141
  }
141
142
  hideTooltip() {
142
- "has-generic-focus" === this.focusClass ? this.focusClass = "has-generic-focus-out" : this.focusClass = null;
143
+ this.focusClass = null;
143
144
  }
144
145
  propagateTooltip() {
145
146
  if (this.focusable) return;
@@ -177,6 +178,6 @@ const a = class {
177
178
  }
178
179
  };
179
180
 
180
- a.style = '*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:inline-block;line-height:0}:host([block]){display:block}.tooltip{--comp-background:var(--tct-tooltip-background, var(--tct-tooltip-background-color, var(--t-tooltip-background-color, var(--t-top-a3, rgba(13, 13, 13, 0.8509803922)))));--comp-offset-default:calc(var(--app-scale-1x, 5px) * -1);--comp-offset:var(--tct-tooltip-offset, var(--t-tooltip-offset, var(--comp-offset-default)));--comp-position:var(--tct-tooltip-position, var(--t-tooltip-position, var(--app-scale-1x, 5px)));--comp-body-offset-default:calc(var(--app-scale-3x, 15px) * -1);--comp-body-offset:var(--tct-tooltip-body-offset, var(--t-tooltip-body-offset, var(--comp-body-offset-default)));--comp-duration:var(--tct-tooltip-transition-duration, var(--t-tooltip-transition-duration, var(--app-duration-1, 0.2s)));--comp-visible-duration:var(--tct-tooltip-transition-visible-duration, var(--t-tooltip-transition-visible-duration, 2s));--comp-delay:var(--tct-tooltip-transition-delay, var(--t-tooltip-transition-delay, 0s));display:inline-flex;line-height:normal;position:relative}.tooltip:hover{--comp-delay:var(--tct-tooltip-transition-delay, var(--t-tooltip-transition-delay, 1s))}:host([immediate]:not([immediate=false])) .tooltip:hover{--comp-delay:0s}.tooltip:before{position:absolute;z-index:2;width:0;height:0;color:var(--comp-background);pointer-events:none;content:"";border:var(--tct-tooltip-arrow-size, var(--t-tooltip-arrow-size, var(--app-scale-1x, 5px))) solid transparent}.tooltip:after{--comp-padding:var(--app-scale-1x, 5px) 8px;position:absolute;z-index:1;padding:var(--tct-tooltip-padding, var(--t-tooltip-padding, var(--comp-padding)));font-weight:var(--tct-tooltip-font-weight, var(--t-tooltip-font-weight, 600));font-size:var(--tct-tooltip-font-size, var(--t-tooltip-font-size, var(--app-font-size-small, 12px)));line-height:1.5;color:var(--tct-tooltip-color, var(--t-tooltip-color, var(--app-white, #ffffff)));text-align:center;text-decoration:none;text-shadow:none;text-transform:none;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(data-label);background:var(--comp-background);border-radius:var(--tct-tooltip-border-radius, var(--t-tooltip-border-radius, var(--app-border-radius-1, 4px)))}.tooltip:before,.tooltip:after{display:inline-block;visibility:hidden;opacity:0;transition:all var(--comp-duration) ease-in-out var(--comp-delay);transition-property:visibility, opacity}:host([block]) .tooltip{display:block}:host([persist-on-hover]:not([persist-on-hover=false])) .tooltip:before,:host([persist-on-hover]:not([persist-on-hover=false])) .tooltip:after{pointer-events:auto}.tooltip:not(.dismissed):hover:before,.tooltip:not(.dismissed):hover:after,.tooltip:not(.dismissed).has-keyboard-focus:focus-within:before,.tooltip:not(.dismissed).has-keyboard-focus:focus-within:after,:host([persistent]:not([persistent=false])) .tooltip:not(.dismissed):before,:host([persistent]:not([persistent=false])) .tooltip:not(.dismissed):after{text-decoration:none;visibility:visible;opacity:1}@keyframes tooltippedFade{from{opacity:0}to{opacity:1}}.tooltip.has-generic-focus:focus-within:before,.tooltip.has-generic-focus:focus-within:after{visibility:visible;opacity:0;transition:none;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-name:tooltippedFade, tooltippedFade;animation-direction:normal, reverse;animation-duration:var(--comp-duration);animation-delay:0ms, calc(var(--comp-visible-duration) + var(--comp-duration))}.tooltip.has-generic-focus:hover:focus-within:before,.tooltip.has-generic-focus:hover:focus-within:after{animation-name:tooltippedFade;animation-direction:normal;animation-delay:0ms}:host([persist-on-hover]:not([persist-on-hover=false])) .tooltip.has-generic-focus:focus-within:before,:host([persist-on-hover]:not([persist-on-hover=false])) .tooltip.has-generic-focus:focus-within:after{animation-name:tooltippedFade;animation-direction:normal;animation-delay:0ms}.tooltip.has-generic-focus-out:before,.tooltip.has-generic-focus-out:after{visibility:visible;opacity:0;transition:none;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-name:tooltippedFade;animation-direction:reverse;animation-duration:var(--comp-duration)}.tooltip.dismissed:before,.tooltip.dismissed:after{visibility:hidden;opacity:0;animation-name:none}:host([multiline]) .tooltip:after{width:max-content;max-width:var(--tct-tooltip-max-width, var(--t-tooltip-max-width, 200px));word-break:break-word;word-wrap:normal;white-space:pre-line;border-collapse:separate;text-align:left}:host([position=s]) :host([multiline]) .tooltip:after,:host([position=n]) :host([multiline]) .tooltip:after{right:auto;left:50%;transform:translateX(-50%)}:host([position=w]) :host([multiline]) .tooltip:after,:host([position=e]) :host([multiline]) .tooltip:after{right:100%}:host([multiline]) .tooltip:hover:after,:host([multiline]) .tooltip:active:after,:host([multiline]) .tooltip:focus:after{display:table-cell}:host([multiline]) .tooltip:focus-within:after{display:table-cell}:host([position=s]) .tooltip:after,:host([position=se]) .tooltip:after,:host([position=sw]) .tooltip:after{top:100%;right:50%;margin-top:var(--comp-position)}:host([position=s]) .tooltip:before,:host([position=se]) .tooltip:before,:host([position=sw]) .tooltip:before{top:auto;right:50%;bottom:var(--comp-offset);margin-right:var(--comp-offset);border-bottom-color:var(--comp-background)}:host([position=n]) .tooltip:after,:host([position=ne]) .tooltip:after,:host([position=nw]) .tooltip:after{right:50%;bottom:100%;margin-bottom:var(--comp-position)}:host([position=n]) .tooltip:before,:host([position=ne]) .tooltip:before,:host([position=nw]) .tooltip:before{top:var(--comp-offset);right:50%;bottom:auto;margin-right:var(--comp-offset);border-top-color:var(--comp-background)}:host([position=se]) .tooltip:after,:host([position=ne]) .tooltip:after{right:auto;left:50%;margin-left:var(--comp-body-offset);margin-right:var(--comp-body-offset);transform:translateX(var(--comp-offset-translate, 0))}:host([position=sw]) .tooltip:after,:host([position=nw]) .tooltip:after{margin-right:var(--comp-body-offset);margin-left:var(--comp-body-offset);right:50%;transform:translateX(var(--comp-offset-translate, 0))}:host([position=s]) .tooltip:after,:host([position=n]) .tooltip:after{transform:translateX(calc(50% + var(--comp-offset-translate, 0)))}:host([position=w]) .tooltip:after{right:100%;bottom:50%;margin-right:var(--comp-position);transform:translateY(50%)}:host([position=w]) .tooltip:before{top:50%;bottom:50%;left:var(--comp-offset);margin-top:var(--comp-offset);border-left-color:var(--comp-background)}:host([position=e]) .tooltip:after{bottom:50%;left:100%;margin-left:var(--comp-position);transform:translateY(50%)}:host([position=e]) .tooltip:before{top:50%;right:var(--comp-offset);bottom:50%;margin-top:var(--comp-offset);border-right-color:var(--comp-background)}';
181
+ r.style = '*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}@container style(--t-prefers-motion: "reduced"){*,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important;animation-delay:0ms !important;transition-delay:0ms !important}}@container (not style(--t-prefers-motion: "normal")) and (not style(--t-prefers-motion: "reduced")){@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important;animation-delay:0ms !important;transition-delay:0ms !important}}}:host{display:inline-block;line-height:0}:host([block]){display:block}.tooltip{--comp-background:var(--tct-tooltip-background, var(--tct-tooltip-background-color, var(--t-tooltip-background-color, var(--t-top-a3, rgba(13, 13, 13, 0.8509803922)))));--comp-offset-default:calc(var(--app-scale-1x, 5px) * -1);--comp-offset:var(--tct-tooltip-offset, var(--t-tooltip-offset, var(--comp-offset-default)));--comp-position:var(--tct-tooltip-position, var(--t-tooltip-position, var(--app-scale-1x, 5px)));--comp-body-offset-default:calc(var(--app-scale-3x, 15px) * -1);--comp-body-offset:var(--tct-tooltip-body-offset, var(--t-tooltip-body-offset, var(--comp-body-offset-default)));--comp-duration:var(--tct-tooltip-transition-duration, var(--t-tooltip-transition-duration, var(--app-duration-1, 0.2s)));--comp-visible-duration:var(--tct-tooltip-transition-visible-duration, var(--t-tooltip-transition-visible-duration, 2s));--comp-delay:var(--tct-tooltip-transition-delay, var(--t-tooltip-transition-delay, 0s));display:inline-flex;line-height:normal;position:relative}.tooltip:hover{--comp-delay:var(--tct-tooltip-hover-delay, var(--tct-tooltip-transition-delay, 1s))}:host([immediate]:not([immediate=false])) .tooltip:hover{--comp-delay:0s}.tooltip:before{position:absolute;z-index:2;width:0;height:0;color:var(--comp-background);pointer-events:none;content:"";border:var(--tct-tooltip-arrow-size, var(--t-tooltip-arrow-size, var(--app-scale-1x, 5px))) solid transparent}.tooltip:after{--comp-padding:var(--app-scale-1x, 5px) 8px;position:absolute;z-index:1;padding:var(--tct-tooltip-padding, var(--t-tooltip-padding, var(--comp-padding)));font-weight:var(--tct-tooltip-font-weight, var(--t-tooltip-font-weight, 600));font-size:var(--tct-tooltip-font-size, var(--t-tooltip-font-size, var(--app-font-size-small, var(--const-px-12, 12px))));line-height:1.5;color:var(--tct-tooltip-color, var(--t-tooltip-color, var(--app-white, #ffffff)));text-align:center;text-decoration:none;text-shadow:none;text-transform:none;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(data-label);background:var(--comp-background);border-radius:var(--tct-tooltip-border-radius, var(--t-tooltip-border-radius, var(--app-border-radius-1, 4px)))}.tooltip:before,.tooltip:after{display:inline-block;visibility:hidden;opacity:0;transition:all var(--comp-duration) ease-in-out var(--comp-delay);transition-property:visibility, opacity}:host([block]) .tooltip{display:block}:host([persist-on-hover]:not([persist-on-hover=false])) .tooltip:before,:host([persist-on-hover]:not([persist-on-hover=false])) .tooltip:after{pointer-events:auto}.tooltip:not(.dismissed):hover:before,.tooltip:not(.dismissed):hover:after,.tooltip:not(.dismissed).has-keyboard-focus:focus-within:before,.tooltip:not(.dismissed).has-keyboard-focus:focus-within:after,:host([persistent]:not([persistent=false])) .tooltip:not(.dismissed):before,:host([persistent]:not([persistent=false])) .tooltip:not(.dismissed):after{text-decoration:none;visibility:visible;opacity:1}@keyframes tooltippedFade{from{opacity:0}to{opacity:1}}.tooltip.has-touch-click:before,.tooltip.has-touch-click:after{visibility:visible;opacity:0;transition:none;animation-timing-function:ease-in-out;animation-fill-mode:forwards;animation-name:tooltippedFade, tooltippedFade;animation-direction:normal, reverse;animation-duration:var(--comp-duration);animation-delay:0ms, calc(var(--comp-visible-duration) + var(--comp-duration))}.tooltip.has-touch-click:hover:before,.tooltip.has-touch-click:hover:after{animation-name:tooltippedFade;animation-direction:normal;animation-delay:0ms}.tooltip.dismissed:before,.tooltip.dismissed:after{visibility:hidden;opacity:0;animation-name:none}:host([multiline]) .tooltip:after{width:max-content;max-width:var(--tct-tooltip-max-width, var(--t-tooltip-max-width, 200px));word-break:break-word;word-wrap:normal;white-space:pre-line;border-collapse:separate;text-align:left}:host([position=s]) :host([multiline]) .tooltip:after,:host([position=n]) :host([multiline]) .tooltip:after{right:auto;left:50%;transform:translateX(-50%)}:host([position=w]) :host([multiline]) .tooltip:after,:host([position=e]) :host([multiline]) .tooltip:after{right:100%}:host([multiline]) .tooltip:hover:after,:host([multiline]) .tooltip:active:after,:host([multiline]) .tooltip:focus:after{display:table-cell}:host([multiline]) .tooltip:focus-within:after{display:table-cell}:host([position=s]) .tooltip:after,:host([position=se]) .tooltip:after,:host([position=sw]) .tooltip:after{top:100%;right:50%;margin-top:var(--comp-position)}:host([position=s]) .tooltip:before,:host([position=se]) .tooltip:before,:host([position=sw]) .tooltip:before{top:auto;right:50%;bottom:var(--comp-offset);margin-right:var(--comp-offset);border-bottom-color:var(--comp-background)}:host([position=n]) .tooltip:after,:host([position=ne]) .tooltip:after,:host([position=nw]) .tooltip:after{right:50%;bottom:100%;margin-bottom:var(--comp-position)}:host([position=n]) .tooltip:before,:host([position=ne]) .tooltip:before,:host([position=nw]) .tooltip:before{top:var(--comp-offset);right:50%;bottom:auto;margin-right:var(--comp-offset);border-top-color:var(--comp-background)}:host([position=se]) .tooltip:after,:host([position=ne]) .tooltip:after{right:auto;left:50%;margin-left:var(--comp-body-offset);margin-right:var(--comp-body-offset);transform:translateX(var(--comp-offset-translate, 0))}:host([position=sw]) .tooltip:after,:host([position=nw]) .tooltip:after{margin-right:var(--comp-body-offset);margin-left:var(--comp-body-offset);right:50%;transform:translateX(var(--comp-offset-translate, 0))}:host([position=s]) .tooltip:after,:host([position=n]) .tooltip:after{transform:translateX(calc(50% + var(--comp-offset-translate, 0)))}:host([position=w]) .tooltip:after{right:100%;bottom:50%;margin-right:var(--comp-position);transform:translateY(50%)}:host([position=w]) .tooltip:before{top:50%;bottom:50%;left:var(--comp-offset);margin-top:var(--comp-offset);border-left-color:var(--comp-background)}:host([position=e]) .tooltip:after{bottom:50%;left:100%;margin-left:var(--comp-position);transform:translateY(50%)}:host([position=e]) .tooltip:before{top:50%;right:var(--comp-offset);bottom:50%;margin-top:var(--comp-offset);border-right-color:var(--comp-background)}';
181
182
 
182
- export { a as q2_tooltip }
183
+ export { r as q2_tooltip }
@@ -1,6 +1,6 @@
1
- import { r as e, c as t, h as i, g as s } from "./index-Cqkz7Bnm.js";
1
+ import { r as e, c as t, h as i, g as n } from "./index-Cqkz7Bnm.js";
2
2
 
3
- const n = class {
3
+ const o = class {
4
4
  constructor(i) {
5
5
  e(this, i), this.badge = t(this, "badge", 7), this.onIFrameLoad = e => {
6
6
  const t = e.target;
@@ -40,7 +40,7 @@ const n = class {
40
40
  // #region Render Methods
41
41
  render() {
42
42
  return i("div", {
43
- key: "6fd41d78c9d8a6e1abf28713f52d92ac214ad8ab",
43
+ key: "68c7250777ec0c700107df4997634d4aee8f8e91",
44
44
  id: `tab-pane-${this.guid}-${this.index}`,
45
45
  class: "tab-pane" + (this.selected ? "" : " hidden"),
46
46
  role: "tabpanel",
@@ -48,12 +48,12 @@ const n = class {
48
48
  "aria-hidden": `${!this.selected}`,
49
49
  "aria-labelledby": `tab-${this.guid}-${this.index}`
50
50
  }, this.selected && void 0 !== this.provided && !this.provided && i("div", {
51
- key: "b5302bdd5ae8e749e84e4e12505d843c0ba0950a"
51
+ key: "7b8c74b691fc1c599766900125e09afe79e53859"
52
52
  }, i("slot", {
53
- key: "4b935505187b21260398c28ea876ecd64d9ed172",
53
+ key: "bbf7c58bef21ab334059655e958e976b9bdf327e",
54
54
  name: "loading-wrapper"
55
55
  }), i("iframe", {
56
- key: "c18b96c8849a6a69abec9ced6d27a6860113b8c7",
56
+ key: "6a262f757dd78294fcf49242b337b02c13842ee8",
57
57
  hidden: !0,
58
58
  name: this.moduleId,
59
59
  scrolling: "no",
@@ -76,15 +76,15 @@ const n = class {
76
76
  value: e.value,
77
77
  name: e.key
78
78
  })))) : ""), i("div", {
79
- key: "1016d617dc6cf49aa8e4bf52010e3cf246191875",
79
+ key: "d9be64623c99011b7f30256d0abfaeab23f72c00",
80
80
  class: "slot-wrapper",
81
81
  hidden: this.selected && void 0 !== this.provided && !this.provided
82
82
  }, i("slot", {
83
- key: "466d820db179e1b6e350722eff9ec9190be6c869"
83
+ key: "a1a3a9772b2875c7d4ab510e9014d99b6e036ad3"
84
84
  })));
85
85
  }
86
86
  get hostElement() {
87
- return s(this);
87
+ return n(this);
88
88
  }
89
89
  static get watchers() {
90
90
  return {
@@ -107,6 +107,6 @@ const n = class {
107
107
  }
108
108
  };
109
109
 
110
- n.style = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.tab-pane[aria-hidden=true]{display:none}.tab-pane:focus{outline:none;box-shadow:none}.loading-wrapper{height:44px;width:100%;align-items:center;justify-content:center}.loading-wrapper:not([hidden]){display:flex}iframe{width:100%;height:auto;overflow-y:hidden;border:none}iframe:not([hidden]){display:inline-block}.slot-wrapper:focus-visible{outline:none;box-shadow:var(--const-global-focus)}";
110
+ o.style = '*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}@container style(--t-prefers-motion: "reduced"){*,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important;animation-delay:0ms !important;transition-delay:0ms !important}}@container (not style(--t-prefers-motion: "normal")) and (not style(--t-prefers-motion: "reduced")){@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important;animation-delay:0ms !important;transition-delay:0ms !important}}}.tab-pane[aria-hidden=true]{display:none}.tab-pane:focus{outline:none;box-shadow:none}.loading-wrapper{height:44px;width:100%;align-items:center;justify-content:center}.loading-wrapper:not([hidden]){display:flex}iframe{width:100%;height:auto;overflow-y:hidden;border:none}iframe:not([hidden]){display:inline-block}.slot-wrapper:focus-visible{outline:none;box-shadow:var(--const-global-focus)}';
111
111
 
112
- export { n as tecton_tab_pane }
112
+ export { o as tecton_tab_pane }
@@ -58,6 +58,8 @@ export declare class Q2Carousel implements ComponentInterface {
58
58
  * @localizable
59
59
  */
60
60
  label: string;
61
+ /** Enables continuous looping so navigating past the last pane wraps to the first (and vice versa). Defaults to enabled; pass `false` to disable. */
62
+ loop: boolean;
61
63
  /** Display navigation arrow buttons as another way to navigate the carousel. */
62
64
  showNavigationArrows: boolean;
63
65
  /**
@@ -113,7 +115,13 @@ export declare class Q2Carousel implements ComponentInterface {
113
115
  * loops back to Pane 1.
114
116
  */
115
117
  get useFullWidthPanes(): boolean;
118
+ /**
119
+ * Rebuilt whenever a prop that feeds Swiper's static config (e.g. `loop`) changes,
120
+ * since Swiper reads its options only at construction time.
121
+ */
122
+ buildCarouselOptions: () => void;
116
123
  configureCarousel: (carouselWrapper: any, carouselOptions: any) => void;
124
+ getPaginationLabel: (index: number) => string;
117
125
  handleAriaLive(activeAndFocused: boolean): void;
118
126
  handleAutoPlayPause: (action: "play" | "pause") => void;
119
127
  handlePopovers: (event: CustomEvent) => void;
@@ -123,6 +131,12 @@ export declare class Q2Carousel implements ComponentInterface {
123
131
  onMutationObserved: () => void;
124
132
  schedulePaneHeightSync: () => void;
125
133
  setCarouselWrapperWidth: () => void;
134
+ /**
135
+ * Swiper's `slideToLoop` snaps by real (logical) index but only exists when loop mode is on.
136
+ * For non-looped carousels, `slideTo` targets the same logical index directly since the DOM
137
+ * has no duplicates.
138
+ */
139
+ slideToPane: (index: number, speed?: number) => void;
126
140
  /**
127
141
  * Swiper's loop mode needs enough DOM slides on both sides of a centered active slide. For
128
142
  * two-pane full-width carousels and 3 to 5 pane peek carousels, we double the pane set in the
@@ -66,6 +66,12 @@ export declare class Q2Input {
66
66
  * Will assign role to combobox when used inside q2-select and q2-calendar.
67
67
  */
68
68
  _role: 'combobox' | undefined;
69
+ /**
70
+ * Determines whether the input updates its value property as native input occurs.
71
+ *
72
+ * @private
73
+ */
74
+ _updateValueOnInput: boolean;
69
75
  ariaActivedescendant: string;
70
76
  ariaControls: string;
71
77
  ariaExpanded: string;
@@ -237,7 +243,7 @@ export declare class Q2Input {
237
243
  * @info
238
244
  * The visible value of formatted input fields may not match the element's `value` property.
239
245
  * When setting an input's value programmatically (e.g. pre-populating a form), ensure that the supplied value is in a format that can be handled by its consuming logic.
240
- * `q2-input` does not change its own `value` outside of its default change event handler.
246
+ * `q2-input` updates its own `value` through its default input and change event handlers.
241
247
  *
242
248
  * In `q2-input` where `type="currency"`
243
249
  * - element.value = 1234.56
@@ -4,6 +4,7 @@ import { OptionValue } from '../q2-option-list/q2-option-list';
4
4
  * @name Pill
5
5
  * @category Display
6
6
  * @summary Use for displaying and removing active filters in data views.
7
+ * @slot decorator - An optional slot that supports an [Icon](https://tecton.q2developer.com/design-system/q2-icon) to be displayed before the pill label.
7
8
  * @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.
8
9
  * @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.
9
10
  */
@@ -144,6 +145,7 @@ export declare class Q2Pill implements ComponentInterface {
144
145
  clearSelectedOptions: () => void;
145
146
  determineOptionCount: () => Promise<void>;
146
147
  executeActionSheet: (event: MouseEvent | KeyboardEvent) => Promise<void>;
148
+ filterSlottedElements: () => void;
147
149
  getOption: (value: string) => Promise<import("../..").ValidOptionElements>;
148
150
  getOptionListOptions: () => Promise<import("../..").ValidOptionElements[]>;
149
151
  handleChange: (event: any) => void;
@@ -61,6 +61,7 @@ export declare class Q2Stepper implements ComponentInterface {
61
61
  checkScrollState: () => void;
62
62
  focusStep(stepNumber: number, scrollIntoView?: boolean, forceFocus?: boolean): void;
63
63
  getPaneSlotOrProperty(pane: HTMLQ2StepperPaneElement, slotName: 'description' | 'label'): string;
64
+ getStatusLabel(status: 'complete' | 'error' | 'pending'): string;
64
65
  handleUndefinedStepProperties(): void;
65
66
  onScrollBtnClick: (direction: "left" | "right") => void;
66
67
  onSlotChange: () => void;
@@ -71,6 +71,7 @@ export declare class Q2StepperVertical implements ComponentInterface {
71
71
  };
72
72
  focusStepBtn(stepId: string, forceFocus?: boolean): void;
73
73
  getPaneSlotOrProperty(pane: HTMLQ2StepperPaneElement, slotName: 'description' | 'label'): string;
74
+ getStatusLabel(status: 'complete' | 'error' | 'pending'): string;
74
75
  getStepId(currentStepId: string, goTo: string): string;
75
76
  onStepClick: (event: any, stepId: string) => void;
76
77
  onStepKeyDown: (event: KeyboardEvent, stepId: string) => void;
@@ -79,8 +80,8 @@ export declare class Q2StepperVertical implements ComponentInterface {
79
80
  setDefaultPane(): void;
80
81
  showStep(stepId: string): void;
81
82
  showStepPane(stepId: string): void;
82
- renderChildStepBtn(pane: BaseStructuredPane, index: number, children: number, parentLabel: string): any;
83
- renderSpacer(pane: StructuredPane, stepLabel: string, isExpanded: boolean, isLastStep: boolean): any;
83
+ renderChildStepBtn(pane: BaseStructuredPane, index: number, children: number): any;
84
+ renderSpacer(pane: StructuredPane, isExpanded: boolean, isLastStep: boolean): any;
84
85
  renderStepBtn(pane: StructuredPane, index: number): any;
85
86
  render(): any;
86
87
  }
@@ -8,13 +8,13 @@ export declare class Q2Surface implements ComponentInterface {
8
8
  private _cancelAnimation;
9
9
  hostElement: HTMLElement;
10
10
  /** Applies a background color from the design-system token palette. When unset, the surface is transparent. */
11
- background?: 'default' | 'primary' | 'secondary' | 'tertiary';
11
+ background?: 'default' | 'primary' | 'secondary' | 'tertiary' | 'gray';
12
12
  /** Applies a gradient fade across the background.
13
13
  *
14
14
  * @info Direction and colors are customizable via CSS custom properties. */
15
15
  backgroundGradient: boolean;
16
16
  /** Renders a visible border around the surface, optionally in a themed color. */
17
- border?: 'default' | 'primary' | 'secondary' | 'tertiary';
17
+ border?: 'default' | 'primary' | 'secondary' | 'tertiary' | 'gray';
18
18
  /**
19
19
  * Renders the border as a gradient using the color set by the `border` prop. Takes precedence over a solid `border` when both are set.
20
20
  *
@@ -49,6 +49,6 @@ export declare class Q2Surface implements ComponentInterface {
49
49
  * @param animation The animation to play. Defaults to `'pulse'`.
50
50
  * @returns A Promise that resolves when the animation finishes or is cancelled.
51
51
  */
52
- animate(animation?: 'bounce' | 'flash' | 'pulse' | 'tada'): Promise<void>;
52
+ triggerAnimation(animation?: 'bounce' | 'flash' | 'pulse' | 'tada'): Promise<void>;
53
53
  render(): any;
54
54
  }
@@ -20,14 +20,17 @@ export declare class Q2TabContainer implements ComponentInterface {
20
20
  lastScrolled: number;
21
21
  listElement: HTMLUListElement;
22
22
  mutationObserver: MutationObserver;
23
+ narrowViewportListener: (event: MediaQueryListEvent) => void;
24
+ narrowViewportMedia: MediaQueryList;
23
25
  resizeObserver: ResizeObserver;
24
26
  scheduledAfterRender: (() => void)[];
25
27
  hostElement: HTMLElement;
26
28
  hasLeft: boolean;
27
29
  hasRight: boolean;
30
+ isNarrowViewport: boolean;
28
31
  scrollEnabled: boolean;
29
- showScrollLeft: boolean;
30
- showScrollRight: boolean;
32
+ showScrollBack: boolean;
33
+ showScrollForward: boolean;
31
34
  tabs: TabPane[];
32
35
  /**
33
36
  * Controls which variables are used to color the tab controls.
@@ -47,6 +50,16 @@ export declare class Q2TabContainer implements ComponentInterface {
47
50
  name: string;
48
51
  /** Controls visibility of tab list in a print view. Tab content will still be visible even if `noPrint` is true. */
49
52
  noPrint: boolean;
53
+ /**
54
+ * The orientation of the tab strip.
55
+ * - `horizontal` (default) — tabs run left-to-right above the panel content.
56
+ * - `vertical` — tabs stack top-to-bottom beside the panel content.
57
+ *
58
+ * @info
59
+ * Vertical orientation is intended for wider layouts (e.g. admin consoles).
60
+ * At viewports narrower than 768px, the component falls back to horizontal.
61
+ */
62
+ orientation: 'horizontal' | 'vertical';
50
63
  /** Determines the font size of the tab controls. */
51
64
  type: 'main' | 'section';
52
65
  /** Corresponds to the value of the selected tab pane. */
@@ -87,6 +100,7 @@ export declare class Q2TabContainer implements ComponentInterface {
87
100
  selectTab(value: string): Promise<void>;
88
101
  nameObserver(): void;
89
102
  valueObserver(): void;
103
+ get computedOrientation(): 'horizontal' | 'vertical';
90
104
  get selectedTabValue(): string;
91
105
  get tabList(): Element;
92
106
  get tabPanes(): (HTMLQ2TabPaneElement | HTMLTectonTabPaneElement)[];
@@ -94,7 +108,7 @@ export declare class Q2TabContainer implements ComponentInterface {
94
108
  determineTabMove(): void;
95
109
  moveToAdjacentTab: (value: string, direction: "next" | "prev" | "first" | "last") => void;
96
110
  moveToTab: (index: number, shouldFocus?: boolean) => void;
97
- onScrollBtnClick: (direction?: "left" | "right") => void;
111
+ onScrollBtnClick: (direction?: "back" | "forward") => void;
98
112
  onSlotChange: () => void;
99
113
  onTabClick: (event: MouseEvent) => void;
100
114
  onTabKeyDown: (event: KeyboardEvent) => void;
@@ -9,7 +9,7 @@ export declare class Q2Tooltip implements ComponentInterface {
9
9
  cachedTooltipHeight: number | null;
10
10
  tooltipElement: HTMLDivElement;
11
11
  hostElement: HTMLElement;
12
- focusClass: 'has-keyboard-focus' | 'has-generic-focus' | 'has-generic-focus-out';
12
+ focusClass: 'has-keyboard-focus' | 'has-touch-click';
13
13
  persistOnHoverDismissed: boolean;
14
14
  /** Displays the element as a block, making it take up the full width of its container. */
15
15
  block: boolean;
@@ -37,6 +37,7 @@ export declare class Q2Tooltip implements ComponentInterface {
37
37
  disconnectedCallback(): void;
38
38
  componentDidLoad(): void;
39
39
  documentPointerHandler(event: Event): void;
40
+ clickHandler(): void;
40
41
  focusCaptureHandler(): void;
41
42
  focusHandler(event: any): void;
42
43
  focusOutHandler(): void;
@@ -633,6 +633,10 @@ export namespace Components {
633
633
  * @default 'tecton.element.carousel.ariaLabel'
634
634
  */
635
635
  "label": string;
636
+ /**
637
+ * Enables continuous looping so navigating past the last pane wraps to the first (and vice versa). Defaults to enabled; pass `false` to disable.
638
+ */
639
+ "loop": boolean;
636
640
  /**
637
641
  * Clicks and Focuses the `q2-carousel-pane` matching the specified index.
638
642
  * @testOnly
@@ -2073,6 +2077,12 @@ export namespace Components {
2073
2077
  * @default undefined
2074
2078
  */
2075
2079
  "_role": 'combobox' | undefined;
2080
+ /**
2081
+ * Determines whether the input updates its value property as native input occurs.
2082
+ * @private
2083
+ * @default true
2084
+ */
2085
+ "_updateValueOnInput": boolean;
2076
2086
  "ariaActivedescendant": string;
2077
2087
  "ariaControls": string;
2078
2088
  "ariaExpanded": string;
@@ -2250,7 +2260,7 @@ export namespace Components {
2250
2260
  "validity": ValidityState;
2251
2261
  /**
2252
2262
  * The value of the input field.
2253
- * @info The visible value of formatted input fields may not match the element's `value` property. When setting an input's value programmatically (e.g. pre-populating a form), ensure that the supplied value is in a format that can be handled by its consuming logic. `q2-input` does not change its own `value` outside of its default change event handler. In `q2-input` where `type="currency"` - element.value = 1234.56 - visible value: $1,234.56
2263
+ * @info The visible value of formatted input fields may not match the element's `value` property. When setting an input's value programmatically (e.g. pre-populating a form), ensure that the supplied value is in a format that can be handled by its consuming logic. `q2-input` updates its own `value` through its default input and change event handlers. In `q2-input` where `type="currency"` - element.value = 1234.56 - visible value: $1,234.56
2254
2264
  */
2255
2265
  "value": string;
2256
2266
  }
@@ -3690,16 +3700,10 @@ export namespace Components {
3690
3700
  * @summary An unopinionated visual primitive. A plain block by default that gains visual treatment via attributes.
3691
3701
  */
3692
3702
  interface Q2Surface {
3693
- /**
3694
- * Triggers a named animation on the surface. If an animation is already running, cancels it before starting the new one.
3695
- * @param animation The animation to play. Defaults to `'pulse'`.
3696
- * @returns A Promise that resolves when the animation finishes or is cancelled.
3697
- */
3698
- "animate": (animation?: "bounce" | "flash" | "pulse" | "tada") => Promise<void>;
3699
3703
  /**
3700
3704
  * Applies a background color from the design-system token palette. When unset, the surface is transparent.
3701
3705
  */
3702
- "background"?: 'default' | 'primary' | 'secondary' | 'tertiary';
3706
+ "background"?: 'default' | 'primary' | 'secondary' | 'tertiary' | 'gray';
3703
3707
  /**
3704
3708
  * Applies a gradient fade across the background.
3705
3709
  * @info Direction and colors are customizable via CSS custom properties.
@@ -3709,7 +3713,7 @@ export namespace Components {
3709
3713
  /**
3710
3714
  * Renders a visible border around the surface, optionally in a themed color.
3711
3715
  */
3712
- "border"?: 'default' | 'primary' | 'secondary' | 'tertiary';
3716
+ "border"?: 'default' | 'primary' | 'secondary' | 'tertiary' | 'gray';
3713
3717
  /**
3714
3718
  * Renders the border as a gradient using the color set by the `border` prop. Takes precedence over a solid `border` when both are set.
3715
3719
  * @info Requires `border` to be set to produce a colored gradient. Without `border`, falls back to the default border color.
@@ -3747,6 +3751,12 @@ export namespace Components {
3747
3751
  * @default 0
3748
3752
  */
3749
3753
  "radius": 0 | 1 | 2 | 3 | 4 | 5;
3754
+ /**
3755
+ * Triggers a named animation on the surface. If an animation is already running, cancels it before starting the new one.
3756
+ * @param animation The animation to play. Defaults to `'pulse'`.
3757
+ * @returns A Promise that resolves when the animation finishes or is cancelled.
3758
+ */
3759
+ "triggerAnimation": (animation?: "bounce" | "flash" | "pulse" | "tada") => Promise<void>;
3750
3760
  }
3751
3761
  /**
3752
3762
  * @name Tab Container
@@ -3768,6 +3778,12 @@ export namespace Components {
3768
3778
  * @default false
3769
3779
  */
3770
3780
  "noPrint": boolean;
3781
+ /**
3782
+ * The orientation of the tab strip. - `horizontal` (default) — tabs run left-to-right above the panel content. - `vertical` — tabs stack top-to-bottom beside the panel content.
3783
+ * @info Vertical orientation is intended for wider layouts (e.g. admin consoles). At viewports narrower than 768px, the component falls back to horizontal.
3784
+ * @default 'horizontal'
3785
+ */
3786
+ "orientation": 'horizontal' | 'vertical';
3771
3787
  /**
3772
3788
  * A method to select a tab pane corresponding with the value.
3773
3789
  * @testOnly
@@ -5488,13 +5504,7 @@ declare global {
5488
5504
  * @category Display
5489
5505
  * @summary An unopinionated visual primitive. A plain block by default that gains visual treatment via attributes.
5490
5506
  */
5491
- interface HTMLQ2SurfaceElement extends Omit<Components.Q2Surface, "animate">, HTMLStencilElement {
5492
- /**
5493
- * Triggers a named animation on the surface. If an animation is already running, cancels it before starting the new one.
5494
- * @param animation The animation to play. Defaults to `'pulse'`.
5495
- * @returns A Promise that resolves when the animation finishes or is cancelled.
5496
- */
5497
- "animate": (animation?: "bounce" | "flash" | "pulse" | "tada") => Promise<void>;
5507
+ interface HTMLQ2SurfaceElement extends Components.Q2Surface, HTMLStencilElement {
5498
5508
  addEventListener<K extends keyof HTMLQ2SurfaceElementEventMap>(type: K, listener: (this: HTMLQ2SurfaceElement, ev: Q2SurfaceCustomEvent<HTMLQ2SurfaceElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
5499
5509
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
5500
5510
  addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -6391,6 +6401,10 @@ declare namespace LocalJSX {
6391
6401
  * @default 'tecton.element.carousel.ariaLabel'
6392
6402
  */
6393
6403
  "label"?: string;
6404
+ /**
6405
+ * Enables continuous looping so navigating past the last pane wraps to the first (and vice versa). Defaults to enabled; pass `false` to disable.
6406
+ */
6407
+ "loop"?: boolean;
6394
6408
  /**
6395
6409
  * Emitted when the displayed carousel pane changes.
6396
6410
  * @deprecated Use 'tctChange' instead
@@ -7878,6 +7892,12 @@ declare namespace LocalJSX {
7878
7892
  * @default undefined
7879
7893
  */
7880
7894
  "_role"?: 'combobox' | undefined;
7895
+ /**
7896
+ * Determines whether the input updates its value property as native input occurs.
7897
+ * @private
7898
+ * @default true
7899
+ */
7900
+ "_updateValueOnInput"?: boolean;
7881
7901
  "ariaActivedescendant"?: string;
7882
7902
  "ariaControls"?: string;
7883
7903
  "ariaExpanded"?: string;
@@ -8091,7 +8111,7 @@ declare namespace LocalJSX {
8091
8111
  "validity"?: ValidityState;
8092
8112
  /**
8093
8113
  * The value of the input field.
8094
- * @info The visible value of formatted input fields may not match the element's `value` property. When setting an input's value programmatically (e.g. pre-populating a form), ensure that the supplied value is in a format that can be handled by its consuming logic. `q2-input` does not change its own `value` outside of its default change event handler. In `q2-input` where `type="currency"` - element.value = 1234.56 - visible value: $1,234.56
8114
+ * @info The visible value of formatted input fields may not match the element's `value` property. When setting an input's value programmatically (e.g. pre-populating a form), ensure that the supplied value is in a format that can be handled by its consuming logic. `q2-input` updates its own `value` through its default input and change event handlers. In `q2-input` where `type="currency"` - element.value = 1234.56 - visible value: $1,234.56
8095
8115
  */
8096
8116
  "value"?: string;
8097
8117
  }
@@ -9631,7 +9651,7 @@ declare namespace LocalJSX {
9631
9651
  /**
9632
9652
  * Applies a background color from the design-system token palette. When unset, the surface is transparent.
9633
9653
  */
9634
- "background"?: 'default' | 'primary' | 'secondary' | 'tertiary';
9654
+ "background"?: 'default' | 'primary' | 'secondary' | 'tertiary' | 'gray';
9635
9655
  /**
9636
9656
  * Applies a gradient fade across the background.
9637
9657
  * @info Direction and colors are customizable via CSS custom properties.
@@ -9641,7 +9661,7 @@ declare namespace LocalJSX {
9641
9661
  /**
9642
9662
  * Renders a visible border around the surface, optionally in a themed color.
9643
9663
  */
9644
- "border"?: 'default' | 'primary' | 'secondary' | 'tertiary';
9664
+ "border"?: 'default' | 'primary' | 'secondary' | 'tertiary' | 'gray';
9645
9665
  /**
9646
9666
  * Renders the border as a gradient using the color set by the `border` prop. Takes precedence over a solid `border` when both are set.
9647
9667
  * @info Requires `border` to be set to produce a colored gradient. Without `border`, falls back to the default border color.
@@ -9720,6 +9740,12 @@ declare namespace LocalJSX {
9720
9740
  * @legacyEvent
9721
9741
  */
9722
9742
  "onTctChange"?: (event: Q2TabContainerCustomEvent<{ value: string }>) => void;
9743
+ /**
9744
+ * The orientation of the tab strip. - `horizontal` (default) — tabs run left-to-right above the panel content. - `vertical` — tabs stack top-to-bottom beside the panel content.
9745
+ * @info Vertical orientation is intended for wider layouts (e.g. admin consoles). At viewports narrower than 768px, the component falls back to horizontal.
9746
+ * @default 'horizontal'
9747
+ */
9748
+ "orientation"?: 'horizontal' | 'vertical';
9723
9749
  /**
9724
9750
  * Determines the font size of the tab controls.
9725
9751
  */
@@ -10206,6 +10232,7 @@ declare namespace LocalJSX {
10206
10232
  "hidePagination": boolean;
10207
10233
  "index": number;
10208
10234
  "label": string;
10235
+ "loop": boolean;
10209
10236
  "showNavigationArrows": boolean;
10210
10237
  }
10211
10238
  interface Q2CarouselPaneAttributes {
@@ -10497,6 +10524,7 @@ declare namespace LocalJSX {
10497
10524
  interface Q2InputAttributes {
10498
10525
  "_preventEntry": boolean;
10499
10526
  "_role": 'combobox' | undefined;
10527
+ "_updateValueOnInput": boolean;
10500
10528
  "ariaActivedescendant": string;
10501
10529
  "ariaControls": string;
10502
10530
  "ariaExpanded": string;
@@ -10819,9 +10847,9 @@ declare namespace LocalJSX {
10819
10847
  "currentStepId": string;
10820
10848
  }
10821
10849
  interface Q2SurfaceAttributes {
10822
- "background": 'default' | 'primary' | 'secondary' | 'tertiary';
10850
+ "background": 'default' | 'primary' | 'secondary' | 'tertiary' | 'gray';
10823
10851
  "backgroundGradient": boolean;
10824
- "border": 'default' | 'primary' | 'secondary' | 'tertiary';
10852
+ "border": 'default' | 'primary' | 'secondary' | 'tertiary' | 'gray';
10825
10853
  "borderGradient": boolean;
10826
10854
  "clickable": boolean;
10827
10855
  "elevation": 0 | 1 | 2 | 3 | 4 | 5;
@@ -10834,6 +10862,7 @@ declare namespace LocalJSX {
10834
10862
  "color": 'alt' | undefined;
10835
10863
  "name": string;
10836
10864
  "noPrint": boolean;
10865
+ "orientation": 'horizontal' | 'vertical';
10837
10866
  "type": 'main' | 'section';
10838
10867
  "value": string;
10839
10868
  }