q2-tecton-elements 1.67.0 → 1.67.2

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 (294) hide show
  1. package/dist/bundle-report.json +450 -495
  2. package/dist/cjs/click-elsewhere.q2-option-list.q2-popover.entry.cjs.js.map +1 -1
  3. package/dist/cjs/click-elsewhere_3.cjs.entry.js +49 -33
  4. package/dist/cjs/click-elsewhere_3.cjs.entry.js.map +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-action-group_2.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  9. package/dist/cjs/q2-btn.q2-loading.entry.cjs.js.map +1 -1
  10. package/dist/cjs/q2-btn_2.cjs.entry.js +4 -2
  11. package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-card-image.cjs.entry.js +2 -2
  14. package/dist/cjs/q2-carousel-pane.cjs.entry.js +2 -2
  15. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-checkbox.q2-tag.entry.cjs.js.map +1 -1
  21. package/dist/cjs/q2-checkbox_2.cjs.entry.js +41 -11
  22. package/dist/cjs/q2-checkbox_2.cjs.entry.js.map +1 -1
  23. package/dist/cjs/q2-context.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-form.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-grid-area.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-grid.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-input.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-item.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-link_2.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-meter.cjs.entry.js +1 -1
  40. package/dist/cjs/q2-modal.cjs.entry.js +1 -1
  41. package/dist/cjs/q2-month-picker.cjs.entry.js +2 -2
  42. package/dist/cjs/q2-mutation-observer.cjs.entry.js +1 -1
  43. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
  45. package/dist/cjs/q2-pill.cjs.entry.js +1 -1
  46. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  47. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-relative-time.cjs.entry.js +1 -1
  49. package/dist/cjs/q2-section.cjs.entry.js +2 -2
  50. package/dist/cjs/q2-select.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  52. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  53. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  54. package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
  55. package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
  56. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  57. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  58. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  59. package/dist/collection/collection-manifest.json +3 -3
  60. package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
  61. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  62. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  63. package/dist/collection/components/q2-btn/q2-btn.js +4 -2
  64. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  65. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  66. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  67. package/dist/collection/components/q2-card-image/q2-card-image.js +2 -2
  68. package/dist/collection/components/q2-carousel/q2-carousel.js +1 -1
  69. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  70. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  71. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  72. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  73. package/dist/collection/components/q2-checkbox/q2-checkbox.css +5 -1
  74. package/dist/collection/components/q2-checkbox/q2-checkbox.js +45 -10
  75. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  76. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
  77. package/dist/collection/components/q2-context/q2-context.js +1 -1
  78. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  79. package/dist/collection/components/q2-data-table/q2-data-table.js +1 -1
  80. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  81. package/dist/collection/components/q2-dropdown/q2-dropdown.js +1 -1
  82. package/dist/collection/components/q2-editable-field/q2-editable-field.js +2 -2
  83. package/dist/collection/components/q2-example/q2-example.js +1 -1
  84. package/dist/collection/components/q2-form/q2-form.js +1 -1
  85. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  86. package/dist/collection/components/q2-grid/q2-grid.js +31 -31
  87. package/dist/collection/components/q2-grid-area/q2-grid-area.js +43 -43
  88. package/dist/collection/components/q2-input/q2-input.js +3 -3
  89. package/dist/collection/components/q2-item/q2-item.js +1 -1
  90. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  91. package/dist/collection/components/q2-list/q2-list.js +1 -1
  92. package/dist/collection/components/q2-message/q2-message.js +1 -1
  93. package/dist/collection/components/q2-meter/q2-meter.js +1 -1
  94. package/dist/collection/components/q2-modal/q2-modal.js +1 -1
  95. package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js +1 -1
  96. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  97. package/dist/collection/components/q2-option-list/q2-option-list.js +6 -6
  98. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  99. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  100. package/dist/collection/components/q2-popover/q2-popover.js +48 -52
  101. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  102. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  103. package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
  104. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  105. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  106. package/dist/collection/components/q2-section/q2-section.js +2 -2
  107. package/dist/collection/components/q2-select/q2-select.js +1 -1
  108. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  109. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
  110. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  111. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  112. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  113. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  114. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  115. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  116. package/dist/components/q2-action-group2.js +1 -1
  117. package/dist/components/q2-action-sheet.js +1 -1
  118. package/dist/components/q2-avatar2.js +1 -1
  119. package/dist/components/q2-btn2.js +4 -2
  120. package/dist/components/q2-btn2.js.map +1 -1
  121. package/dist/components/q2-calendar.js +1 -1
  122. package/dist/components/q2-card-image.js +2 -2
  123. package/dist/components/q2-carousel-pane.js +2 -2
  124. package/dist/components/q2-carousel.js +1 -1
  125. package/dist/components/q2-chart-area.js +1 -1
  126. package/dist/components/q2-chart-bar.js +1 -1
  127. package/dist/components/q2-chart-donut.js +1 -1
  128. package/dist/components/q2-checkbox-group.js +1 -1
  129. package/dist/components/q2-checkbox2.js +42 -11
  130. package/dist/components/q2-checkbox2.js.map +1 -1
  131. package/dist/components/q2-context.js +1 -1
  132. package/dist/components/q2-currency.js +1 -1
  133. package/dist/components/q2-data-table.js +1 -1
  134. package/dist/components/q2-detail.js +1 -1
  135. package/dist/components/q2-dropdown.js +1 -1
  136. package/dist/components/q2-editable-field.js +1 -1
  137. package/dist/components/q2-example.js +1 -1
  138. package/dist/components/q2-form.js +1 -1
  139. package/dist/components/q2-formatted-text.js +1 -1
  140. package/dist/components/q2-grid-area.js +1 -1
  141. package/dist/components/q2-grid.js +1 -1
  142. package/dist/components/q2-input2.js +1 -1
  143. package/dist/components/q2-item2.js +1 -1
  144. package/dist/components/q2-legend2.js +1 -1
  145. package/dist/components/q2-list2.js +1 -1
  146. package/dist/components/q2-message2.js +1 -1
  147. package/dist/components/q2-meter.js +1 -1
  148. package/dist/components/q2-modal.js +1 -1
  149. package/dist/components/q2-month-picker.js +2 -2
  150. package/dist/components/q2-mutation-observer.js +1 -1
  151. package/dist/components/q2-optgroup2.js +1 -1
  152. package/dist/components/q2-option-list2.js +1 -1
  153. package/dist/components/q2-pagination.js +3 -3
  154. package/dist/components/q2-pill.js +1 -1
  155. package/dist/components/q2-popover2.js +48 -33
  156. package/dist/components/q2-popover2.js.map +1 -1
  157. package/dist/components/q2-radio-group.js +1 -1
  158. package/dist/components/q2-radio.js +1 -1
  159. package/dist/components/q2-relative-time.js +1 -1
  160. package/dist/components/q2-resize-observer2.js +1 -1
  161. package/dist/components/q2-section.js +2 -2
  162. package/dist/components/q2-select2.js +1 -1
  163. package/dist/components/q2-stepper-pane.js +1 -1
  164. package/dist/components/q2-stepper-vertical.js +1 -1
  165. package/dist/components/q2-stepper.js +1 -1
  166. package/dist/components/q2-tab-container.js +1 -1
  167. package/dist/components/q2-tab-pane.js +1 -1
  168. package/dist/components/q2-tag2.js +1 -1
  169. package/dist/components/q2-textarea.js +1 -1
  170. package/dist/components/tecton-tab-pane.js +2 -2
  171. package/dist/esm/click-elsewhere.q2-option-list.q2-popover.entry.js.map +1 -1
  172. package/dist/esm/click-elsewhere_3.entry.js +49 -33
  173. package/dist/esm/click-elsewhere_3.entry.js.map +1 -1
  174. package/dist/esm/loader.js +1 -1
  175. package/dist/esm/q2-action-group_2.entry.js +2 -2
  176. package/dist/esm/q2-action-sheet.entry.js +1 -1
  177. package/dist/esm/q2-avatar.entry.js +1 -1
  178. package/dist/esm/q2-btn.q2-loading.entry.js.map +1 -1
  179. package/dist/esm/q2-btn_2.entry.js +4 -2
  180. package/dist/esm/q2-btn_2.entry.js.map +1 -1
  181. package/dist/esm/q2-calendar.entry.js +1 -1
  182. package/dist/esm/q2-card-image.entry.js +2 -2
  183. package/dist/esm/q2-carousel-pane.entry.js +2 -2
  184. package/dist/esm/q2-carousel.entry.js +1 -1
  185. package/dist/esm/q2-chart-area.entry.js +1 -1
  186. package/dist/esm/q2-chart-bar.entry.js +1 -1
  187. package/dist/esm/q2-chart-donut.entry.js +1 -1
  188. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  189. package/dist/esm/q2-checkbox.q2-tag.entry.js.map +1 -1
  190. package/dist/esm/q2-checkbox_2.entry.js +41 -11
  191. package/dist/esm/q2-checkbox_2.entry.js.map +1 -1
  192. package/dist/esm/q2-context.entry.js +1 -1
  193. package/dist/esm/q2-currency.entry.js +1 -1
  194. package/dist/esm/q2-data-table.entry.js +1 -1
  195. package/dist/esm/q2-detail.entry.js +1 -1
  196. package/dist/esm/q2-dropdown.entry.js +1 -1
  197. package/dist/esm/q2-editable-field.entry.js +1 -1
  198. package/dist/esm/q2-example.entry.js +1 -1
  199. package/dist/esm/q2-form.entry.js +1 -1
  200. package/dist/esm/q2-formatted-text.entry.js +1 -1
  201. package/dist/esm/q2-grid-area.entry.js +1 -1
  202. package/dist/esm/q2-grid.entry.js +1 -1
  203. package/dist/esm/q2-input.entry.js +1 -1
  204. package/dist/esm/q2-item.entry.js +1 -1
  205. package/dist/esm/q2-legend.entry.js +1 -1
  206. package/dist/esm/q2-link_2.entry.js +1 -1
  207. package/dist/esm/q2-message.entry.js +1 -1
  208. package/dist/esm/q2-meter.entry.js +1 -1
  209. package/dist/esm/q2-modal.entry.js +1 -1
  210. package/dist/esm/q2-month-picker.entry.js +2 -2
  211. package/dist/esm/q2-mutation-observer.entry.js +1 -1
  212. package/dist/esm/q2-optgroup.entry.js +1 -1
  213. package/dist/esm/q2-pagination.entry.js +3 -3
  214. package/dist/esm/q2-pill.entry.js +1 -1
  215. package/dist/esm/q2-radio-group.entry.js +1 -1
  216. package/dist/esm/q2-radio.entry.js +1 -1
  217. package/dist/esm/q2-relative-time.entry.js +1 -1
  218. package/dist/esm/q2-section.entry.js +2 -2
  219. package/dist/esm/q2-select.entry.js +1 -1
  220. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  221. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  222. package/dist/esm/q2-stepper.entry.js +1 -1
  223. package/dist/esm/q2-tab-container.entry.js +1 -1
  224. package/dist/esm/q2-tab-pane.entry.js +1 -1
  225. package/dist/esm/q2-tecton-elements.js +1 -1
  226. package/dist/esm/q2-textarea.entry.js +1 -1
  227. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  228. package/dist/q2-tecton-elements/click-elsewhere.q2-option-list.q2-popover.entry.esm.js.map +1 -1
  229. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js +212 -200
  230. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js.map +1 -1
  231. package/dist/q2-tecton-elements/q2-action-group_2.entry.js +4 -4
  232. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +40 -40
  233. package/dist/q2-tecton-elements/q2-avatar.entry.js +8 -8
  234. package/dist/q2-tecton-elements/q2-btn.q2-loading.entry.esm.js.map +1 -1
  235. package/dist/q2-tecton-elements/q2-btn_2.entry.js +4 -2
  236. package/dist/q2-tecton-elements/q2-btn_2.entry.js.map +1 -1
  237. package/dist/q2-tecton-elements/q2-calendar.entry.js +2 -2
  238. package/dist/q2-tecton-elements/q2-card-image.entry.js +2 -2
  239. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +3 -3
  240. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  241. package/dist/q2-tecton-elements/q2-chart-area.entry.js +6 -6
  242. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +2 -2
  243. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +14 -14
  244. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +6 -6
  245. package/dist/q2-tecton-elements/q2-checkbox.q2-tag.entry.esm.js.map +1 -1
  246. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +70 -28
  247. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js.map +1 -1
  248. package/dist/q2-tecton-elements/q2-context.entry.js +11 -11
  249. package/dist/q2-tecton-elements/q2-currency.entry.js +11 -11
  250. package/dist/q2-tecton-elements/q2-data-table.entry.js +3 -3
  251. package/dist/q2-tecton-elements/q2-detail.entry.js +3 -3
  252. package/dist/q2-tecton-elements/q2-dropdown.entry.js +69 -69
  253. package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
  254. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  255. package/dist/q2-tecton-elements/q2-form.entry.js +7 -7
  256. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  257. package/dist/q2-tecton-elements/q2-grid-area.entry.js +2 -2
  258. package/dist/q2-tecton-elements/q2-grid.entry.js +3 -3
  259. package/dist/q2-tecton-elements/q2-input.entry.js +3 -3
  260. package/dist/q2-tecton-elements/q2-item.entry.js +21 -21
  261. package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
  262. package/dist/q2-tecton-elements/q2-link_2.entry.js +6 -6
  263. package/dist/q2-tecton-elements/q2-message.entry.js +6 -6
  264. package/dist/q2-tecton-elements/q2-meter.entry.js +13 -13
  265. package/dist/q2-tecton-elements/q2-modal.entry.js +21 -21
  266. package/dist/q2-tecton-elements/q2-month-picker.entry.js +81 -81
  267. package/dist/q2-tecton-elements/q2-mutation-observer.entry.js +1 -1
  268. package/dist/q2-tecton-elements/q2-optgroup.entry.js +4 -4
  269. package/dist/q2-tecton-elements/q2-pagination.entry.js +26 -26
  270. package/dist/q2-tecton-elements/q2-pill.entry.js +36 -36
  271. package/dist/q2-tecton-elements/q2-radio-group.entry.js +21 -21
  272. package/dist/q2-tecton-elements/q2-radio.entry.js +8 -8
  273. package/dist/q2-tecton-elements/q2-relative-time.entry.js +1 -1
  274. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  275. package/dist/q2-tecton-elements/q2-select.entry.js +1 -1
  276. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +8 -8
  277. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +4 -4
  278. package/dist/q2-tecton-elements/q2-stepper.entry.js +25 -25
  279. package/dist/q2-tecton-elements/q2-tab-container.entry.js +17 -17
  280. package/dist/q2-tecton-elements/q2-tab-pane.entry.js +2 -2
  281. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  282. package/dist/q2-tecton-elements/q2-textarea.entry.js +2 -2
  283. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  284. package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +8 -1
  285. package/dist/types/components/q2-popover/q2-popover.d.ts +1 -6
  286. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +1 -1
  287. package/dist/types/components.d.ts +0 -10
  288. package/package.json +71 -69
  289. /package/dist/types/{Users/kvanhouten/Documents/Work/tecton_extra → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/jest.e2e-coverage.d.ts +0 -0
  290. /package/dist/types/{Users/kvanhouten/Documents/Work/tecton_extra → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +0 -0
  291. /package/dist/types/{Users/kvanhouten/Documents/Work/tecton_extra → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/scripts/docs-generator/index.d.ts +0 -0
  292. /package/dist/types/{Users/kvanhouten/Documents/Work/tecton_extra → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/scripts/docs-generator/markdown-generator.d.ts +0 -0
  293. /package/dist/types/{Users/kvanhouten/Documents/Work/tecton_extra → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/scripts/docs-generator/tag-handlers.d.ts +0 -0
  294. /package/dist/types/{Users/kvanhouten/Documents/Work/tecton_extra → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/scripts/docs-generator/types.d.ts +0 -0
@@ -304,7 +304,7 @@ export class Q2Pagination {
304
304
  total,
305
305
  });
306
306
  }
307
- return (h("nav", { key: 'f99b44d19603ae3981ef849748ef6163fc45919b', class: this.containerClasses.join(' '), ref: el => (this.containerElement = el), "aria-label": loc('tecton.element.pagination.title') }, h("div", { key: 'd1643de16462d1f16fc252eeed2e568e246648a1', class: "description", "test-id": "description" }, pagesOnly
307
+ return (h("nav", { key: '0947c1d04f042cb5f096d74146cc700e7993f277', class: this.containerClasses.join(' '), ref: el => (this.containerElement = el), "aria-label": loc('tecton.element.pagination.title') }, h("div", { key: '6da46e6c76dffa66026057e53c7515bcf00576e0', class: "description", "test-id": "description" }, pagesOnly
308
308
  ? loc('tecton.element.pagination.pages', {
309
309
  current: page,
310
310
  total: totalPages,
@@ -313,10 +313,10 @@ export class Q2Pagination {
313
313
  range: currentRange,
314
314
  recordType: recordType.toLowerCase(),
315
315
  total: total.toLocaleString(),
316
- })), h("div", { key: '6ffec6ee2128172163a381f76d9e06fe82c7316b', class: "controls" }, h("div", { key: 'decc2ca51ad2365a07ffd112c1d1726e174b5d0c', class: "btn-group" }, h("q2-btn", { key: '7b85578c7595c4285c995c5e5359f6c441bdda51', ref: el => (this.firstPageBtn = el), label: loc('tecton.element.pagination.goToFirstPage'), disabled: disabled || onFirstPage, hidden: isFullViewHidden, onTctClick: () => this.handlePageChange(1), "test-id": "firstPageBtn", "hide-label": true }, h("q2-icon", { key: '550559c6d68876121fb3aaa87414e4adb11f4429', type: "chevron-double-left" })), h("q2-btn", { key: '6bf47805cabef90404a66317fc4bff10921818bd', ref: el => (this.prevPageBtn = el), label: prevButtonLabel, disabled: disabled || onFirstPage, onTctClick: () => this.handlePageChange(page - 1), "test-id": "prevPageBtn", "hide-label": true }, h("q2-icon", { key: 'cd7e55771f9de549a7729236df927274745825b9', type: "chevron-left" }))), h("div", { key: '730078a28d7d555bfed57381b972e54c8059a556', class: "input-display", hidden: isFullViewHidden }, h("span", { key: '35b93b8034569d72bf0670d73f7ce1ec0fef826e', "aria-hidden": "true" }, loc('tecton.element.pagination.page')), h("div", { key: 'd28c27c41044573a0fb1adf2b8a89ef582c5aa98', class: "input-wrapper", onClick: () => this.inputField.dispatchEvent(new FocusEvent('focus')) }, h("q2-input", { key: '28bf16274c57944a7a7132dd29a2e606d9f6c108', ref: el => (this.inputField = el), type: "number", value: `${page}`, min: 1, max: this.totalPages, hideLabel: true, optional: true, label: `${loc('tecton.element.pagination.page')} (${loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])})`, onChange: event => event.stopImmediatePropagation(), onTctChange: event => {
316
+ })), h("div", { key: '35963f235d6b549eedb8c9a443ecde053ecd8682', class: "controls" }, h("div", { key: '7016ffd2c95a76d34fd7ca112472a2a1067d7012', class: "btn-group" }, h("q2-btn", { key: 'a2a826b5ed84cedf548eaaf8aa2a8f95ad5085e6', ref: el => (this.firstPageBtn = el), label: loc('tecton.element.pagination.goToFirstPage'), disabled: disabled || onFirstPage, hidden: isFullViewHidden, onTctClick: () => this.handlePageChange(1), "test-id": "firstPageBtn", "hide-label": true }, h("q2-icon", { key: '7ebc8f748c55786954292287b4f593841a367e28', type: "chevron-double-left" })), h("q2-btn", { key: 'dfd853b3bee34fe837dc9c621829fa59c44bc81c', ref: el => (this.prevPageBtn = el), label: prevButtonLabel, disabled: disabled || onFirstPage, onTctClick: () => this.handlePageChange(page - 1), "test-id": "prevPageBtn", "hide-label": true }, h("q2-icon", { key: '519ef8ea441d04291b4393ba1ab03cd2198e88b3', type: "chevron-left" }))), h("div", { key: 'fd9d2f84689b857d134babd6d7d38de5f347488d', class: "input-display", hidden: isFullViewHidden }, h("span", { key: 'c8a48d708096badc6796a9caef840c807aa06db7', "aria-hidden": "true" }, loc('tecton.element.pagination.page')), h("div", { key: '1e9965fa782cdf724e261294ad22eb34305c1c69', class: "input-wrapper", onClick: () => this.inputField.dispatchEvent(new FocusEvent('focus')) }, h("q2-input", { key: 'e61dc0d32f806ffbee54736755f8c2c8fb3dc2a4', ref: el => (this.inputField = el), type: "number", value: `${page}`, min: 1, max: this.totalPages, hideLabel: true, optional: true, label: `${loc('tecton.element.pagination.page')} (${loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])})`, onChange: event => event.stopImmediatePropagation(), onTctChange: event => {
317
317
  event.stopPropagation();
318
318
  this.handlePageChange(event.detail.value);
319
- }, "test-id": "pageInput", current: "page", disabled: disabled })), h("span", { key: '5fc845812367d39bf91826657da31f39436fc670', "aria-hidden": "true" }, loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()]))), h("div", { key: '73183db09f66cad393b33571260579720f2e8c12', class: "btn-group" }, h("q2-btn", { key: 'c3daf5fd49273bede94ce2a9994309d282f1bdbf', ref: el => (this.nextPageBtn = el), label: nextButtonLabel, disabled: disabled || onLastPage, onTctClick: () => this.handlePageChange(page + 1), "test-id": "nextPageBtn", "hide-label": true }, h("q2-icon", { key: '427474ab8f77a0e314a687bb00d199858234f30d', type: "chevron-right" })), h("q2-btn", { key: '607732d95674f7620423817e7394ec4e88ac6e9b', ref: el => (this.lastPageBtn = el), label: "tecton.element.pagination.goToLastPage", disabled: disabled || onLastPage, hidden: isFullViewHidden, onTctClick: () => this.handlePageChange(totalPages), "test-id": "lastPageBtn", "hide-label": true }, h("q2-icon", { key: 'ff871b93e2f4932eddde86761f126fb6937b43fb', type: "chevron-double-right" })))), h("div", { key: '506a9fd9aa1790d1a2efb7b8a744a8fc1d76a409', class: "per-page", hidden: isFullViewHidden || !((_a = this.perPageIncrements) === null || _a === void 0 ? void 0 : _a.length) }, showPerPageSelect && this.renderPerPage())));
319
+ }, "test-id": "pageInput", current: "page", disabled: disabled })), h("span", { key: 'ea7d626698765518e2e5dcd2118b20106413134d', "aria-hidden": "true" }, loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()]))), h("div", { key: 'eb93f6858f18c382d5ebe97007c7de6a3313e6cf', class: "btn-group" }, h("q2-btn", { key: '0ab9275fbfbc3514571f2fb308b1a15345816cf5', ref: el => (this.nextPageBtn = el), label: nextButtonLabel, disabled: disabled || onLastPage, onTctClick: () => this.handlePageChange(page + 1), "test-id": "nextPageBtn", "hide-label": true }, h("q2-icon", { key: '9968130c79eaaa564f1ca47ccc9e09a0d9ec564b', type: "chevron-right" })), h("q2-btn", { key: '08c3ebf15360ba2f1ccf56d2b12c458a2ebdb71e', ref: el => (this.lastPageBtn = el), label: "tecton.element.pagination.goToLastPage", disabled: disabled || onLastPage, hidden: isFullViewHidden, onTctClick: () => this.handlePageChange(totalPages), "test-id": "lastPageBtn", "hide-label": true }, h("q2-icon", { key: '83351e90f2645f9c2e8854ff46a684a9f43f339b', type: "chevron-double-right" })))), h("div", { key: 'dcdb653d221e0a92910a6ece5e234126e66c8410', class: "per-page", hidden: isFullViewHidden || !((_a = this.perPageIncrements) === null || _a === void 0 ? void 0 : _a.length) }, showPerPageSelect && this.renderPerPage())));
320
320
  }
321
321
  static get is() { return "q2-pagination"; }
322
322
  static get encapsulation() { return "shadow"; }
@@ -372,7 +372,7 @@ export class Q2Pill {
372
372
  wrapperClassNames.push('has-icon');
373
373
  if (optionCount)
374
374
  wrapperClassNames.push('has-options');
375
- return (h("click-elsewhere", { key: '33f8d76b96617663d26ec896e9d389fcaa18e6e1', onChange: this.onClickElsewhere }, h("div", { key: '96e54e580f5f313a5f50049fe4a795fc444c1de5', class: wrapperClassNames.join(' ') }, h("div", { key: 'a5482940be97c882b54e4674f96f88344553e274', class: "btn-height-wrapper", ref: el => (this.primaryBtnWrapper = el), onClick: this.handleWrapperClick, tabIndex: -1 }, h("button", { key: 'd19714c018c3ba17433614432fc6225f84c2dbba', 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": `${this.buttonContent}${!optionCount && active ? ` ${loc('tecton.element.pill.active')}` : ''}`, "aria-describedby": (optionCount && 'option-description') || undefined }, this.truncatedButtonContent)), this.renderIcon(), !!optionCount && this.renderHiddenElement()), this.optionCount > 0 && (h("q2-popover", { key: 'a321b1db273a1d401e932f35f05245e3d3199b88', 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: 'e9fc516f6855ae2c9cc67dd46c041e736c4d552e', class: "popover-content" }, h("div", { key: '9cc43dbc66b7eb40f05d89278684a24f7f2b061f', ref: el => (this.popoverTopContainer = el), class: "popover-top-container", tabindex: "-1", hidden: !this.hasPopoverTop, onKeyDown: this.handleKeydown }, h("slot", { key: 'b3d2ff22c4fc3293ebfa70db9f42c2940e149825', name: "popover-top" })), h("q2-option-list", { key: 'ebb64d5e7086c49c84b8da96669b5ad9eaa9b631', 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: 'a09461650fc5b4cd38cdc316eb546f877c0ee9d6' })), h("div", { key: 'f146e3181d0b35dbe28f46b9ab4d0aaf9691f9ef', ref: el => (this.popoverBottomContainer = el), class: "popover-bottom-container", tabindex: "-1", hidden: !this.hasPopoverBottom, onKeyDown: this.handleKeydown }, h("slot", { key: '515c40d83c6de0758426ca430fcfbc35c5266cc3', name: "popover-bottom" })))))));
375
+ return (h("click-elsewhere", { key: '1f6a917d21078d5007387acd85fb7c03736db6ae', onChange: this.onClickElsewhere }, h("div", { key: '346b5d9651e27827e304377f9009edd50a141102', class: wrapperClassNames.join(' ') }, h("div", { key: 'c261c06b88781ea9af6f2b0f0a335476c0c7e89a', class: "btn-height-wrapper", ref: el => (this.primaryBtnWrapper = el), onClick: this.handleWrapperClick, tabIndex: -1 }, h("button", { key: 'b717af900dc54f65de00aef3ee59dade83f6da21', 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": `${this.buttonContent}${!optionCount && active ? ` ${loc('tecton.element.pill.active')}` : ''}`, "aria-describedby": (optionCount && 'option-description') || undefined }, this.truncatedButtonContent)), this.renderIcon(), !!optionCount && this.renderHiddenElement()), this.optionCount > 0 && (h("q2-popover", { key: '4d415fbec7b43fe7f2b8abff0e3a02467028cdb4', 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: '75e71787bad82eb4a5682a2315d7f5dcbd3c3b82', class: "popover-content" }, h("div", { key: '5de5d4a2f606e4b936ee46fda3aded8b09e17854', ref: el => (this.popoverTopContainer = el), class: "popover-top-container", tabindex: "-1", hidden: !this.hasPopoverTop, onKeyDown: this.handleKeydown }, h("slot", { key: '6d971654eb266bd5a3c37e04cde81dd7d6876ca5', name: "popover-top" })), h("q2-option-list", { key: '670e99d6859d673e781eba1e6eee87ee8ac728b4', 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: 'fde147d6d4c6deca9952ebdd5f022f0d348bf75e' })), h("div", { key: 'f8704bee883058f635b936fe03e888eaa9b3ce35', ref: el => (this.popoverBottomContainer = el), class: "popover-bottom-container", tabindex: "-1", hidden: !this.hasPopoverBottom, onKeyDown: this.handleKeydown }, h("slot", { key: '6761a2e76fbba5410a974eb0a24110c0c135b84e', name: "popover-bottom" })))))));
376
376
  }
377
377
  static get is() { return "q2-pill"; }
378
378
  static get encapsulation() { return "shadow"; }
@@ -40,6 +40,7 @@ export class Q2Popover {
40
40
  */
41
41
  this.displayBuffer = 10;
42
42
  this.orientationChanged = false;
43
+ this.pendingAnimationResolve = null;
43
44
  // #endregion
44
45
  // #region State Properties
45
46
  this.animationState = 'idle';
@@ -50,12 +51,6 @@ export class Q2Popover {
50
51
  // #region Public Property API
51
52
  /** Aligns the popover to the left or right side of the control element. */
52
53
  this.align = 'left';
53
- /**
54
- * Controls whether the popover is animated when opening/closing.
55
- * Default is true (animated). Set to false to disable animations.
56
- * Animation is also disabled if the user has enabled prefers-reduced-motion.
57
- */
58
- this.animated = true;
59
54
  this.mode = null;
60
55
  this.handleMinHeight = () => {
61
56
  if (this.minHeight) {
@@ -67,6 +62,8 @@ export class Q2Popover {
67
62
  };
68
63
  this.setAbsoluteCSSProperties = async () => {
69
64
  const { controlElement, containerElement, currentDirection, align } = this;
65
+ if (!containerElement)
66
+ return;
70
67
  if (align === 'right') {
71
68
  containerElement.style.setProperty('--comp-pop-right', '0');
72
69
  containerElement.style.setProperty('--comp-pop-left', 'unset');
@@ -87,11 +84,14 @@ export class Q2Popover {
87
84
  }
88
85
  // Wait for one paint to prevent layout thrashing
89
86
  await waitForNextPaint();
90
- containerElement.style.setProperty('--comp-pop-opacity', '1');
87
+ if (this.containerElement)
88
+ containerElement.style.setProperty('--comp-pop-opacity', '1');
91
89
  };
92
90
  this.setPopoverAPICSSProperties = async () => {
93
91
  var _a, _b, _c;
94
92
  const { controlElement, containerElement, currentDirection, isModule, align } = this;
93
+ if (!containerElement)
94
+ return;
95
95
  const { top: controlTop, bottom: controlBottom, left: controlLeft, right: controlRight, } = (_b = (_a = controlElement === null || controlElement === void 0 ? void 0 : controlElement.getBoundingClientRect) === null || _a === void 0 ? void 0 : _a.call(controlElement)) !== null && _b !== void 0 ? _b : {
96
96
  top: 0,
97
97
  bottom: 0,
@@ -129,7 +129,8 @@ export class Q2Popover {
129
129
  }
130
130
  // Wait for one paint to prevent layout thrashing
131
131
  await waitForNextPaint();
132
- containerElement.style.setProperty('--comp-pop-opacity', '1');
132
+ if (this.containerElement)
133
+ containerElement.style.setProperty('--comp-pop-opacity', '1');
133
134
  };
134
135
  this.viewPortChanged = () => {
135
136
  if (!this.open)
@@ -144,8 +145,13 @@ export class Q2Popover {
144
145
  // #endregion
145
146
  // #region Component Lifecycle Events
146
147
  disconnectedCallback() {
148
+ var _a;
147
149
  this.removeViewportListeners();
148
- this.containerElement.removeEventListener('toggle', this.handlePopoverToggleEvent);
150
+ if (this.pendingAnimationResolve) {
151
+ this.pendingAnimationResolve();
152
+ this.pendingAnimationResolve = null;
153
+ }
154
+ (_a = this.containerElement) === null || _a === void 0 ? void 0 : _a.removeEventListener('toggle', this.handlePopoverToggleEvent);
149
155
  this.containerElement = null;
150
156
  this.contentElement = null;
151
157
  this.controlElement = null;
@@ -157,9 +163,10 @@ export class Q2Popover {
157
163
  }
158
164
  }
159
165
  componentDidLoad() {
166
+ var _a;
160
167
  this.handleMinHeight();
161
168
  if (this.supportsPopoverAPI)
162
- this.containerElement.addEventListener('toggle', this.handlePopoverToggleEvent);
169
+ (_a = this.containerElement) === null || _a === void 0 ? void 0 : _a.addEventListener('toggle', this.handlePopoverToggleEvent);
163
170
  if (this.open)
164
171
  this.determinePopDirection();
165
172
  }
@@ -175,7 +182,8 @@ export class Q2Popover {
175
182
  // #endregion
176
183
  // #region Public Methods API
177
184
  async scrollContainerTo(options) {
178
- this.containerElement.scrollTo(options);
185
+ var _a;
186
+ (_a = this.containerElement) === null || _a === void 0 ? void 0 : _a.scrollTo(options);
179
187
  }
180
188
  async toggle() {
181
189
  this.open = !this.open;
@@ -196,19 +204,22 @@ export class Q2Popover {
196
204
  this.animationState = 'closing';
197
205
  this.removeViewportListeners();
198
206
  // Wait for close animation to complete
199
- if (this.animated) {
200
- await new Promise(resolve => {
201
- const handleAnimationEnd = () => {
202
- this.containerElement.removeEventListener('animationend', handleAnimationEnd);
203
- resolve();
204
- };
205
- this.containerElement.addEventListener('animationend', handleAnimationEnd);
206
- });
207
- }
208
- else {
209
- // No animation, proceed immediately
210
- await waitForNextPaint();
211
- }
207
+ await new Promise(resolve => {
208
+ if (!this.containerElement) {
209
+ resolve();
210
+ return;
211
+ }
212
+ const handleAnimationEnd = () => {
213
+ this.pendingAnimationResolve = null;
214
+ resolve();
215
+ };
216
+ this.pendingAnimationResolve = handleAnimationEnd;
217
+ this.containerElement.addEventListener('animationend', handleAnimationEnd, { once: true });
218
+ });
219
+ if (!this.containerElement)
220
+ return;
221
+ if (this.open)
222
+ return;
212
223
  this.currentDirection = undefined;
213
224
  this.animationState = 'idle';
214
225
  if (this.mode === 'legacy' || !this.supportsPopoverAPI) {
@@ -257,6 +268,8 @@ export class Q2Popover {
257
268
  window.addEventListener('orientationchange', this.viewPortOrientationChanged);
258
269
  }
259
270
  clearCSSProperties() {
271
+ if (!this.containerElement)
272
+ return;
260
273
  this.containerElement.style.removeProperty('--comp-pop-max-height');
261
274
  this.containerElement.style.removeProperty('--comp-pop-top');
262
275
  this.containerElement.style.removeProperty('--comp-pop-bottom');
@@ -271,6 +284,8 @@ export class Q2Popover {
271
284
  if (containerElement)
272
285
  containerElement.style.maxHeight = null;
273
286
  await waitForNextPaint();
287
+ if (!this.containerElement)
288
+ return;
274
289
  const { isModule } = this;
275
290
  const { top: controlTop, bottom: controlBottom } = (_b = (_a = controlElement === null || controlElement === void 0 ? void 0 : controlElement.getBoundingClientRect) === null || _a === void 0 ? void 0 : _a.call(controlElement)) !== null && _b !== void 0 ? _b : {
276
291
  top: 0,
@@ -303,13 +318,13 @@ export class Q2Popover {
303
318
  }
304
319
  const directionWithMostSpace = maxSpaceAbove > maxSpaceBelow ? 'up' : 'down';
305
320
  // We do not want to update the max height once the popover is open unless the page orientation shifts (resize or mobile use cases)
306
- const shouldUpdateMaxHeight = !containerElement.style.getPropertyValue('--comp-pop-max-height') || this.orientationChanged;
321
+ const shouldUpdateMaxHeight = !(containerElement === null || containerElement === void 0 ? void 0 : containerElement.style.getPropertyValue('--comp-pop-max-height')) || this.orientationChanged;
307
322
  // we do not want to constantly update the max-height after an orientation change, so we switch this back to false
308
323
  this.orientationChanged = false;
309
324
  const currentOrDetermineDirection = this.currentDirection || providedDirection || directionWithMostSpace;
310
325
  switch (currentOrDetermineDirection) {
311
326
  case 'up':
312
- if (shouldUpdateMaxHeight) {
327
+ if (shouldUpdateMaxHeight && containerElement) {
313
328
  const priorityMaxHeight = this.validatedMaxHeight || maxSpaceAbove;
314
329
  const maxHeight = Math.min(maxSpaceAbove, priorityMaxHeight);
315
330
  containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);
@@ -317,7 +332,7 @@ export class Q2Popover {
317
332
  this.setDirectionAndShow('up');
318
333
  break;
319
334
  case 'down':
320
- if (shouldUpdateMaxHeight) {
335
+ if (shouldUpdateMaxHeight && containerElement) {
321
336
  const priorityMaxHeight = this.validatedMaxHeight || maxSpaceBelow;
322
337
  const maxHeight = Math.min(maxSpaceBelow, priorityMaxHeight);
323
338
  containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);
@@ -337,10 +352,11 @@ export class Q2Popover {
337
352
  window.removeEventListener('orientationchange', this.viewPortOrientationChanged);
338
353
  }
339
354
  setDirectionAndShow(direction) {
355
+ var _a;
340
356
  // Due to some runtime inconsistency across devices/browsers we need to add one more check here because the
341
357
  // popover can be closed between the time the popover is opened and the time the direction is determined
342
358
  const isOpen = this.open;
343
- if (!isOpen)
359
+ if (!isOpen || !this.containerElement)
344
360
  return;
345
361
  this.currentDirection = direction;
346
362
  if (this.mode === 'legacy' || !this.supportsPopoverAPI) {
@@ -349,7 +365,7 @@ export class Q2Popover {
349
365
  }
350
366
  else {
351
367
  this.setPopoverAPICSSProperties();
352
- this.containerElement.showPopover();
368
+ (_a = this.containerElement) === null || _a === void 0 ? void 0 : _a.showPopover();
353
369
  }
354
370
  }
355
371
  // #endregion
@@ -364,11 +380,11 @@ export class Q2Popover {
364
380
  containerClasses.push('block');
365
381
  if (this.mode === 'legacy')
366
382
  containerClasses.push('legacy');
367
- if (this.animated && this.animationState === 'opening')
383
+ if (this.animationState === 'opening')
368
384
  containerClasses.push('animating-open');
369
- if (this.animated && this.animationState === 'closing')
385
+ if (this.animationState === 'closing')
370
386
  containerClasses.push('animating-close');
371
- return (h("div", { key: 'b5166478bf50c313679ce71b381e6fe305e03446', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1, popover: "manual" }, h("div", { key: '9e939ece2775d98418f726066c9e7b1e7dcb7fde', ref: el => (this.contentElement = el), class: "content" }, h("slot", { key: 'dc16dc214cf71f050e49057f6f35271bb141b692' }))));
387
+ return (h("div", { key: '32b8669d138922c8229232cbeffc24c12142a603', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1, popover: "manual" }, h("div", { key: 'c4a9582bcf7ed063aadd40a214606d32b406f05f', ref: el => (this.contentElement = el), class: "content" }, h("slot", { key: 'e64707b4b54de39c9d9a487e4bdc6d4d5ca8b16f' }))));
372
388
  }
373
389
  static get is() { return "q2-popover"; }
374
390
  static get encapsulation() { return "shadow"; }
@@ -404,26 +420,6 @@ export class Q2Popover {
404
420
  "reflect": true,
405
421
  "defaultValue": "'left'"
406
422
  },
407
- "animated": {
408
- "type": "boolean",
409
- "attribute": "animated",
410
- "mutable": false,
411
- "complexType": {
412
- "original": "boolean",
413
- "resolved": "boolean",
414
- "references": {}
415
- },
416
- "required": false,
417
- "optional": false,
418
- "docs": {
419
- "tags": [],
420
- "text": "Controls whether the popover is animated when opening/closing.\nDefault is true (animated). Set to false to disable animations.\nAnimation is also disabled if the user has enabled prefers-reduced-motion."
421
- },
422
- "getter": false,
423
- "setter": false,
424
- "reflect": true,
425
- "defaultValue": "true"
426
- },
427
423
  "block": {
428
424
  "type": "boolean",
429
425
  "attribute": "block",
@@ -1 +1 @@
1
- {"version":3,"file":"q2-popover.js","sourceRoot":"","sources":["../../../../src/components/q2-popover/q2-popover.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n h,\n ComponentInterface,\n Element,\n Watch,\n Method,\n Listen,\n EventEmitter,\n Event,\n State,\n} from '@stencil/core';\nimport { handleDeprecationWarning, waitForNextPaint, isMobile, isInScrollableContainer } from '../../utils';\nimport mirrorEmit from '@/utils/mirror-emit';\n\n/**\n * ***********\n * * WARNING *\n * ***********\n * Touching this file obligates you to manually test thoroughly, because Puppeteer can't capture every edgecase.\n *\n * Each of the following Scenarios must be tested on each Device, in each Environment.\n *\n * Scenarios:\n * - Q2 Select searchable\n * - Q2 Select non-searchable\n *\n * Orientations:\n * - Portrait\n * - Landscape\n *\n * Devices:\n * - iOS Safari\n * - Android Chrome\n * - MacOS Safari\n * - Chrome\n * - Firefox\n *\n * Environments:\n * - Standard (Outside of Iframe)\n * - SDK Extension (Inside of Iframe)\n */\n\n/**\n * @name Popover\n * @category Display\n * @summary Use for positioning floating content relative to a trigger element.\n */\n@Component({ tag: 'q2-popover', shadow: true, styleUrl: 'q2-popover.scss' })\nexport class Q2Popover implements ComponentInterface {\n // #region Own Properties\n\n containerElement: HTMLDivElement;\n contentElement: HTMLDivElement;\n /**\n * The number of pixels to leave between the popover and the edge of the viewport\n */\n displayBuffer = 10;\n orientationChanged: boolean = false;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n animationState: 'idle' | 'opening' | 'closing' = 'idle';\n\n @State()\n currentDirection: 'down' | 'up' = undefined;\n\n // remove `show` when we transitiong fully to Popover API and get rid of 'legacy' mode\n @State()\n show: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** Aligns the popover to the left or right side of the control element. */\n @Prop({ reflect: true })\n align: 'left' | 'right' = 'left';\n\n /**\n * Controls whether the popover is animated when opening/closing.\n * Default is true (animated). Set to false to disable animations.\n * Animation is also disabled if the user has enabled prefers-reduced-motion.\n */\n @Prop({ reflect: true })\n animated: boolean = true;\n\n /** Indicates the popover will match the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** The element that controls the popover's behavior. */\n @Prop()\n controlElement: HTMLElement;\n\n /**\n * Force the direction of the popover when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ reflect: true })\n direction: 'up' | 'down';\n\n /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n maxHeight: number;\n\n /** @deprecated */\n @Prop()\n minHeight: number;\n\n @Prop()\n mode: 'legacy' = null;\n\n /** Controls whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the popover is opened or closed.\n * @deprecated Use 'tctPopoverStateChanged' instead\n */\n @Event()\n popoverStateChanged: EventEmitter<{ open: boolean }>;\n\n /**\n * Emitted when the popover is opened or closed.\n */\n @Event()\n tctPopoverStateChanged: EventEmitter<{ open: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.removeViewportListeners();\n this.containerElement.removeEventListener('toggle', this.handlePopoverToggleEvent);\n this.containerElement = null;\n this.contentElement = null;\n this.controlElement = null;\n }\n\n componentWillLoad() {\n if (!this.supportsPopoverAPI) {\n console.warn(\n 'The Popover API is not supported in this browser. Please update your browser to the latest version. The component will use legacy mode.'\n );\n this.mode = 'legacy';\n }\n }\n\n componentDidLoad() {\n this.handleMinHeight();\n if (this.supportsPopoverAPI) this.containerElement.addEventListener('toggle', this.handlePopoverToggleEvent);\n if (this.open) this.determinePopDirection();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('popoverState')\n popoverStateHandler(event: CustomEvent<{ open: boolean }>) {\n const {\n detail: { open },\n } = event;\n if (open === this.open) return;\n\n this.open = open;\n event.stopPropagation();\n }\n\n // #endregion\n // #region Public Methods API\n\n @Method()\n async scrollContainerTo(options: ScrollToOptions) {\n this.containerElement.scrollTo(options);\n }\n\n @Method()\n async toggle() {\n this.open = !this.open;\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('minHeight')\n minHeightProvided() {\n this.handleMinHeight();\n }\n\n @Watch('open')\n async openChanged(open: boolean) {\n mirrorEmit(this, ['popoverStateChanged', 'tctPopoverStateChanged'], { open });\n\n if (open) {\n this.animationState = 'opening';\n this.addViewportListeners();\n this.determinePopDirection();\n } else {\n this.animationState = 'closing';\n this.removeViewportListeners();\n\n // Wait for close animation to complete\n if (this.animated) {\n await new Promise<void>(resolve => {\n const handleAnimationEnd = () => {\n this.containerElement.removeEventListener('animationend', handleAnimationEnd);\n resolve();\n };\n this.containerElement.addEventListener('animationend', handleAnimationEnd);\n });\n } else {\n // No animation, proceed immediately\n await waitForNextPaint();\n }\n\n this.currentDirection = undefined;\n this.animationState = 'idle';\n if (this.mode === 'legacy' || !this.supportsPopoverAPI) {\n this.show = false;\n } else {\n this.containerElement.hidePopover();\n }\n\n await waitForNextPaint();\n this.clearCSSProperties();\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get isModule(): boolean {\n const isIframe = window !== window.top;\n const hasPlatformDimensions = Object.keys(window.Tecton?.platformDimensions ?? {}).length > 0;\n return isIframe && hasPlatformDimensions;\n }\n\n get providedDirection(): 'up' | 'down' | undefined {\n const { direction } = this;\n switch (direction) {\n case 'up':\n case 'down':\n return direction;\n default:\n return undefined;\n }\n }\n\n get supportsPopoverAPI(): boolean {\n return Object.hasOwn(HTMLElement.prototype, 'popover');\n }\n\n get validatedMaxHeight(): number | undefined {\n const { maxHeight } = this;\n return isNaN(maxHeight) ? undefined : maxHeight;\n }\n\n addViewportListeners() {\n window.addEventListener('resize', this.viewPortOrientationChanged);\n visualViewport?.addEventListener('resize', this.viewPortChanged);\n if (isInScrollableContainer(this.hostElement) && !isMobile()) {\n window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });\n }\n screen?.orientation?.addEventListener('orientationchange', this.viewPortOrientationChanged);\n window.addEventListener('orientationchange', this.viewPortOrientationChanged);\n }\n\n clearCSSProperties() {\n this.containerElement.style.removeProperty('--comp-pop-max-height');\n this.containerElement.style.removeProperty('--comp-pop-top');\n this.containerElement.style.removeProperty('--comp-pop-bottom');\n this.containerElement.style.removeProperty('--comp-pop-left');\n this.containerElement.style.removeProperty('--comp-pop-right');\n this.containerElement.style.removeProperty('--comp-pop-width');\n this.containerElement.style.removeProperty('--comp-pop-opacity');\n }\n\n async determinePopDirection() {\n const { containerElement, controlElement, providedDirection, displayBuffer } = this;\n if (containerElement) containerElement.style.maxHeight = null;\n await waitForNextPaint();\n\n const { isModule } = this;\n const { top: controlTop, bottom: controlBottom } = controlElement?.getBoundingClientRect?.() ?? {\n top: 0,\n bottom: 0,\n };\n\n let windowHeight: number;\n let maxSpaceAbove: number;\n let maxSpaceBelow: number;\n const isScrollableIframe = isModule && isInScrollableContainer(this.hostElement);\n if (isModule && !isScrollableIframe) {\n const {\n outletOffset = 0,\n innerHeight = window.innerHeight,\n top: topBarHeight = 0,\n bottom: bottomBarHeight = 0,\n } = window.Tecton?.platformDimensions || {};\n\n const distanceToIframeBottom = window.innerHeight - controlBottom;\n\n // controlElement position visually on the page\n const visualControlTop = outletOffset > 0 ? controlTop : controlTop + outletOffset - topBarHeight;\n const visualControlBottom = outletOffset + controlBottom - topBarHeight;\n\n // visual space around the controlElement\n const viewableSpaceAbove = visualControlTop;\n const viewableSpaceBelow = innerHeight - bottomBarHeight - visualControlBottom;\n\n // calculate space above and below controlElement\n const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;\n maxSpaceAbove = viewableSpaceAbove - displayBuffer;\n maxSpaceBelow = isIframeShorterThanWindow\n ? distanceToIframeBottom - displayBuffer\n : viewableSpaceBelow - displayBuffer;\n } else {\n windowHeight = window.innerHeight;\n maxSpaceAbove = controlTop - displayBuffer;\n maxSpaceBelow = windowHeight - controlBottom - displayBuffer;\n }\n\n const directionWithMostSpace: 'up' | 'down' = maxSpaceAbove > maxSpaceBelow ? 'up' : 'down';\n\n // We do not want to update the max height once the popover is open unless the page orientation shifts (resize or mobile use cases)\n const shouldUpdateMaxHeight =\n !containerElement.style.getPropertyValue('--comp-pop-max-height') || this.orientationChanged;\n // we do not want to constantly update the max-height after an orientation change, so we switch this back to false\n this.orientationChanged = false;\n const currentOrDetermineDirection = this.currentDirection || providedDirection || directionWithMostSpace;\n\n switch (currentOrDetermineDirection) {\n case 'up':\n if (shouldUpdateMaxHeight) {\n const priorityMaxHeight = this.validatedMaxHeight || maxSpaceAbove;\n const maxHeight = Math.min(maxSpaceAbove, priorityMaxHeight);\n containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);\n }\n this.setDirectionAndShow('up');\n break;\n case 'down':\n if (shouldUpdateMaxHeight) {\n const priorityMaxHeight = this.validatedMaxHeight || maxSpaceBelow;\n const maxHeight = Math.min(maxSpaceBelow, priorityMaxHeight);\n containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);\n }\n this.setDirectionAndShow('down');\n break;\n default:\n break;\n }\n }\n\n handleMinHeight = () => {\n if (this.minHeight) {\n handleDeprecationWarning(this, 'minHeight', 'prop');\n }\n };\n\n handlePopoverToggleEvent = (event: ToggleEvent) => {\n mirrorEmit(this, ['popoverStateChanged', 'tctPopoverStateChanged'], { open: event.newState === 'open' });\n };\n\n removeViewportListeners() {\n window.removeEventListener('resize', this.viewPortOrientationChanged);\n visualViewport?.removeEventListener('resize', this.viewPortChanged);\n window.removeEventListener('scroll', this.viewPortChanged, { capture: true });\n screen?.orientation?.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n window.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n }\n\n setAbsoluteCSSProperties = async () => {\n const { controlElement, containerElement, currentDirection, align } = this;\n\n if (align === 'right') {\n containerElement.style.setProperty('--comp-pop-right', '0');\n containerElement.style.setProperty('--comp-pop-left', 'unset');\n } else {\n containerElement.style.setProperty('--comp-pop-left', '0');\n containerElement.style.setProperty('--comp-pop-right', 'unset');\n }\n\n if (this.block) {\n containerElement.style.setProperty('--comp-pop-width', '100%');\n }\n\n if (currentDirection === 'up') {\n const controlStyle = getComputedStyle(controlElement);\n const controlSize =\n parseInt(controlStyle.height || '0') +\n parseInt(controlStyle.borderTopWidth || '0') +\n parseInt(controlStyle.borderBottomWidth || '0');\n\n containerElement.style.setProperty('--comp-pop-bottom', `${controlSize}px`);\n }\n\n // Wait for one paint to prevent layout thrashing\n await waitForNextPaint();\n containerElement.style.setProperty('--comp-pop-opacity', '1');\n };\n\n setDirectionAndShow(direction: 'up' | 'down') {\n // Due to some runtime inconsistency across devices/browsers we need to add one more check here because the\n // popover can be closed between the time the popover is opened and the time the direction is determined\n const isOpen = this.open;\n if (!isOpen) return;\n\n this.currentDirection = direction;\n if (this.mode === 'legacy' || !this.supportsPopoverAPI) {\n this.show = true;\n this.setAbsoluteCSSProperties();\n } else {\n this.setPopoverAPICSSProperties();\n this.containerElement.showPopover();\n }\n }\n\n setPopoverAPICSSProperties = async () => {\n const { controlElement, containerElement, currentDirection, isModule, align } = this;\n const {\n top: controlTop,\n bottom: controlBottom,\n left: controlLeft,\n right: controlRight,\n } = controlElement?.getBoundingClientRect?.() ?? {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n\n const popoverLeft: number = controlLeft;\n const popoverRight: number = window?.visualViewport?.width - controlRight;\n\n if (align === 'right') {\n containerElement.style.setProperty('--comp-pop-right', `${popoverRight - window.scrollX}px`);\n containerElement.style.setProperty('--comp-pop-left', 'unset');\n } else {\n containerElement.style.setProperty('--comp-pop-left', `${popoverLeft + window.scrollX}px`);\n containerElement.style.setProperty('--comp-pop-right', 'unset');\n }\n\n if (this.block) containerElement.style.setProperty('--comp-pop-width', `${controlElement?.offsetWidth || 0}px`);\n\n const isScrollableIframe = isModule && isInScrollableContainer(this.hostElement);\n\n if (currentDirection === 'up') {\n if (isModule && !isScrollableIframe) {\n containerElement.style.setProperty('--comp-pop-bottom', `${window.innerHeight - controlTop}px`);\n } else {\n containerElement.style.setProperty(\n '--comp-pop-bottom',\n `${window.innerHeight - controlTop - window.scrollY}px`\n );\n }\n }\n\n if (currentDirection === 'down') {\n if (isModule && !isScrollableIframe) {\n containerElement.style.setProperty('--comp-pop-top', `${controlBottom}px`);\n } else {\n containerElement.style.setProperty('--comp-pop-top', `${controlBottom + window.scrollY}px`);\n }\n }\n\n // Wait for one paint to prevent layout thrashing\n await waitForNextPaint();\n containerElement.style.setProperty('--comp-pop-opacity', '1');\n };\n\n viewPortChanged = () => {\n if (!this.open) return;\n this.determinePopDirection();\n };\n\n viewPortOrientationChanged = () => {\n this.orientationChanged = true;\n this.viewPortChanged();\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const containerClasses = ['container', this.currentDirection, this.align];\n if (isMobile()) containerClasses.push('mobile');\n if (this.show) containerClasses.push('show');\n if (this.block) containerClasses.push('block');\n if (this.mode === 'legacy') containerClasses.push('legacy');\n if (this.animated && this.animationState === 'opening') containerClasses.push('animating-open');\n if (this.animated && this.animationState === 'closing') containerClasses.push('animating-close');\n\n return (\n <div\n ref={el => (this.containerElement = el)}\n class={containerClasses.join(' ')}\n test-id=\"outerContainer\"\n tabIndex={-1}\n popover=\"manual\"\n >\n <div\n ref={el => (this.contentElement = el)}\n class=\"content\"\n >\n <slot />\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-popover.js","sourceRoot":"","sources":["../../../../src/components/q2-popover/q2-popover.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n h,\n ComponentInterface,\n Element,\n Watch,\n Method,\n Listen,\n EventEmitter,\n Event,\n State,\n} from '@stencil/core';\nimport { handleDeprecationWarning, waitForNextPaint, isMobile, isInScrollableContainer } from '../../utils';\nimport mirrorEmit from '@/utils/mirror-emit';\n\n/**\n * ***********\n * * WARNING *\n * ***********\n * Touching this file obligates you to manually test thoroughly, because Puppeteer can't capture every edgecase.\n *\n * Each of the following Scenarios must be tested on each Device, in each Environment.\n *\n * Scenarios:\n * - Q2 Select searchable\n * - Q2 Select non-searchable\n *\n * Orientations:\n * - Portrait\n * - Landscape\n *\n * Devices:\n * - iOS Safari\n * - Android Chrome\n * - MacOS Safari\n * - Chrome\n * - Firefox\n *\n * Environments:\n * - Standard (Outside of Iframe)\n * - SDK Extension (Inside of Iframe)\n */\n\n/**\n * @name Popover\n * @category Display\n * @summary Use for positioning floating content relative to a trigger element.\n */\n@Component({ tag: 'q2-popover', shadow: true, styleUrl: 'q2-popover.scss' })\nexport class Q2Popover implements ComponentInterface {\n // #region Own Properties\n\n containerElement: HTMLDivElement;\n contentElement: HTMLDivElement;\n /**\n * The number of pixels to leave between the popover and the edge of the viewport\n */\n displayBuffer = 10;\n orientationChanged: boolean = false;\n pendingAnimationResolve: (() => void) | null = null;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n animationState: 'idle' | 'opening' | 'closing' = 'idle';\n\n @State()\n currentDirection: 'down' | 'up' = undefined;\n\n // remove `show` when we transitiong fully to Popover API and get rid of 'legacy' mode\n @State()\n show: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** Aligns the popover to the left or right side of the control element. */\n @Prop({ reflect: true })\n align: 'left' | 'right' = 'left';\n\n /** Indicates the popover will match the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** The element that controls the popover's behavior. */\n @Prop()\n controlElement: HTMLElement;\n\n /**\n * Force the direction of the popover when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ reflect: true })\n direction: 'up' | 'down';\n\n /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n maxHeight: number;\n\n /** @deprecated */\n @Prop()\n minHeight: number;\n\n @Prop()\n mode: 'legacy' = null;\n\n /** Controls whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the popover is opened or closed.\n * @deprecated Use 'tctPopoverStateChanged' instead\n */\n @Event()\n popoverStateChanged: EventEmitter<{ open: boolean }>;\n\n /**\n * Emitted when the popover is opened or closed.\n */\n @Event()\n tctPopoverStateChanged: EventEmitter<{ open: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.removeViewportListeners();\n if (this.pendingAnimationResolve) {\n this.pendingAnimationResolve();\n this.pendingAnimationResolve = null;\n }\n this.containerElement?.removeEventListener('toggle', this.handlePopoverToggleEvent);\n this.containerElement = null;\n this.contentElement = null;\n this.controlElement = null;\n }\n\n componentWillLoad() {\n if (!this.supportsPopoverAPI) {\n console.warn(\n 'The Popover API is not supported in this browser. Please update your browser to the latest version. The component will use legacy mode.'\n );\n this.mode = 'legacy';\n }\n }\n\n componentDidLoad() {\n this.handleMinHeight();\n if (this.supportsPopoverAPI) this.containerElement?.addEventListener('toggle', this.handlePopoverToggleEvent);\n if (this.open) this.determinePopDirection();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('popoverState')\n popoverStateHandler(event: CustomEvent<{ open: boolean }>) {\n const {\n detail: { open },\n } = event;\n if (open === this.open) return;\n\n this.open = open;\n event.stopPropagation();\n }\n\n // #endregion\n // #region Public Methods API\n\n @Method()\n async scrollContainerTo(options: ScrollToOptions) {\n this.containerElement?.scrollTo(options);\n }\n\n @Method()\n async toggle() {\n this.open = !this.open;\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('minHeight')\n minHeightProvided() {\n this.handleMinHeight();\n }\n\n @Watch('open')\n async openChanged(open: boolean) {\n mirrorEmit(this, ['popoverStateChanged', 'tctPopoverStateChanged'], { open });\n\n if (open) {\n this.animationState = 'opening';\n this.addViewportListeners();\n this.determinePopDirection();\n } else {\n this.animationState = 'closing';\n this.removeViewportListeners();\n\n // Wait for close animation to complete\n await new Promise<void>(resolve => {\n if (!this.containerElement) {\n resolve();\n return;\n }\n const handleAnimationEnd = () => {\n this.pendingAnimationResolve = null;\n resolve();\n };\n this.pendingAnimationResolve = handleAnimationEnd;\n this.containerElement.addEventListener('animationend', handleAnimationEnd, { once: true });\n });\n\n if (!this.containerElement) return;\n if (this.open) return;\n\n this.currentDirection = undefined;\n this.animationState = 'idle';\n if (this.mode === 'legacy' || !this.supportsPopoverAPI) {\n this.show = false;\n } else {\n this.containerElement.hidePopover();\n }\n\n await waitForNextPaint();\n this.clearCSSProperties();\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get isModule(): boolean {\n const isIframe = window !== window.top;\n const hasPlatformDimensions = Object.keys(window.Tecton?.platformDimensions ?? {}).length > 0;\n return isIframe && hasPlatformDimensions;\n }\n\n get providedDirection(): 'up' | 'down' | undefined {\n const { direction } = this;\n switch (direction) {\n case 'up':\n case 'down':\n return direction;\n default:\n return undefined;\n }\n }\n\n get supportsPopoverAPI(): boolean {\n return Object.hasOwn(HTMLElement.prototype, 'popover');\n }\n\n get validatedMaxHeight(): number | undefined {\n const { maxHeight } = this;\n return isNaN(maxHeight) ? undefined : maxHeight;\n }\n\n addViewportListeners() {\n window.addEventListener('resize', this.viewPortOrientationChanged);\n visualViewport?.addEventListener('resize', this.viewPortChanged);\n if (isInScrollableContainer(this.hostElement) && !isMobile()) {\n window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });\n }\n screen?.orientation?.addEventListener('orientationchange', this.viewPortOrientationChanged);\n window.addEventListener('orientationchange', this.viewPortOrientationChanged);\n }\n\n clearCSSProperties() {\n if (!this.containerElement) return;\n this.containerElement.style.removeProperty('--comp-pop-max-height');\n this.containerElement.style.removeProperty('--comp-pop-top');\n this.containerElement.style.removeProperty('--comp-pop-bottom');\n this.containerElement.style.removeProperty('--comp-pop-left');\n this.containerElement.style.removeProperty('--comp-pop-right');\n this.containerElement.style.removeProperty('--comp-pop-width');\n this.containerElement.style.removeProperty('--comp-pop-opacity');\n }\n\n async determinePopDirection() {\n const { containerElement, controlElement, providedDirection, displayBuffer } = this;\n if (containerElement) containerElement.style.maxHeight = null;\n await waitForNextPaint();\n if (!this.containerElement) return;\n\n const { isModule } = this;\n const { top: controlTop, bottom: controlBottom } = controlElement?.getBoundingClientRect?.() ?? {\n top: 0,\n bottom: 0,\n };\n\n let windowHeight: number;\n let maxSpaceAbove: number;\n let maxSpaceBelow: number;\n const isScrollableIframe = isModule && isInScrollableContainer(this.hostElement);\n if (isModule && !isScrollableIframe) {\n const {\n outletOffset = 0,\n innerHeight = window.innerHeight,\n top: topBarHeight = 0,\n bottom: bottomBarHeight = 0,\n } = window.Tecton?.platformDimensions || {};\n\n const distanceToIframeBottom = window.innerHeight - controlBottom;\n\n // controlElement position visually on the page\n const visualControlTop = outletOffset > 0 ? controlTop : controlTop + outletOffset - topBarHeight;\n const visualControlBottom = outletOffset + controlBottom - topBarHeight;\n\n // visual space around the controlElement\n const viewableSpaceAbove = visualControlTop;\n const viewableSpaceBelow = innerHeight - bottomBarHeight - visualControlBottom;\n\n // calculate space above and below controlElement\n const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;\n maxSpaceAbove = viewableSpaceAbove - displayBuffer;\n maxSpaceBelow = isIframeShorterThanWindow\n ? distanceToIframeBottom - displayBuffer\n : viewableSpaceBelow - displayBuffer;\n } else {\n windowHeight = window.innerHeight;\n maxSpaceAbove = controlTop - displayBuffer;\n maxSpaceBelow = windowHeight - controlBottom - displayBuffer;\n }\n\n const directionWithMostSpace: 'up' | 'down' = maxSpaceAbove > maxSpaceBelow ? 'up' : 'down';\n\n // We do not want to update the max height once the popover is open unless the page orientation shifts (resize or mobile use cases)\n const shouldUpdateMaxHeight =\n !containerElement?.style.getPropertyValue('--comp-pop-max-height') || this.orientationChanged;\n // we do not want to constantly update the max-height after an orientation change, so we switch this back to false\n this.orientationChanged = false;\n const currentOrDetermineDirection = this.currentDirection || providedDirection || directionWithMostSpace;\n\n switch (currentOrDetermineDirection) {\n case 'up':\n if (shouldUpdateMaxHeight && containerElement) {\n const priorityMaxHeight = this.validatedMaxHeight || maxSpaceAbove;\n const maxHeight = Math.min(maxSpaceAbove, priorityMaxHeight);\n containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);\n }\n this.setDirectionAndShow('up');\n break;\n case 'down':\n if (shouldUpdateMaxHeight && containerElement) {\n const priorityMaxHeight = this.validatedMaxHeight || maxSpaceBelow;\n const maxHeight = Math.min(maxSpaceBelow, priorityMaxHeight);\n containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);\n }\n this.setDirectionAndShow('down');\n break;\n default:\n break;\n }\n }\n\n handleMinHeight = () => {\n if (this.minHeight) {\n handleDeprecationWarning(this, 'minHeight', 'prop');\n }\n };\n\n handlePopoverToggleEvent = (event: ToggleEvent) => {\n mirrorEmit(this, ['popoverStateChanged', 'tctPopoverStateChanged'], { open: event.newState === 'open' });\n };\n\n removeViewportListeners() {\n window.removeEventListener('resize', this.viewPortOrientationChanged);\n visualViewport?.removeEventListener('resize', this.viewPortChanged);\n window.removeEventListener('scroll', this.viewPortChanged, { capture: true });\n screen?.orientation?.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n window.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n }\n\n setAbsoluteCSSProperties = async () => {\n const { controlElement, containerElement, currentDirection, align } = this;\n if (!containerElement) return;\n\n if (align === 'right') {\n containerElement.style.setProperty('--comp-pop-right', '0');\n containerElement.style.setProperty('--comp-pop-left', 'unset');\n } else {\n containerElement.style.setProperty('--comp-pop-left', '0');\n containerElement.style.setProperty('--comp-pop-right', 'unset');\n }\n\n if (this.block) {\n containerElement.style.setProperty('--comp-pop-width', '100%');\n }\n\n if (currentDirection === 'up') {\n const controlStyle = getComputedStyle(controlElement);\n const controlSize =\n parseInt(controlStyle.height || '0') +\n parseInt(controlStyle.borderTopWidth || '0') +\n parseInt(controlStyle.borderBottomWidth || '0');\n\n containerElement.style.setProperty('--comp-pop-bottom', `${controlSize}px`);\n }\n\n // Wait for one paint to prevent layout thrashing\n await waitForNextPaint();\n if (this.containerElement) containerElement.style.setProperty('--comp-pop-opacity', '1');\n };\n\n setDirectionAndShow(direction: 'up' | 'down') {\n // Due to some runtime inconsistency across devices/browsers we need to add one more check here because the\n // popover can be closed between the time the popover is opened and the time the direction is determined\n const isOpen = this.open;\n if (!isOpen || !this.containerElement) return;\n\n this.currentDirection = direction;\n if (this.mode === 'legacy' || !this.supportsPopoverAPI) {\n this.show = true;\n this.setAbsoluteCSSProperties();\n } else {\n this.setPopoverAPICSSProperties();\n this.containerElement?.showPopover();\n }\n }\n\n setPopoverAPICSSProperties = async () => {\n const { controlElement, containerElement, currentDirection, isModule, align } = this;\n if (!containerElement) return;\n const {\n top: controlTop,\n bottom: controlBottom,\n left: controlLeft,\n right: controlRight,\n } = controlElement?.getBoundingClientRect?.() ?? {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n\n const popoverLeft: number = controlLeft;\n const popoverRight: number = window?.visualViewport?.width - controlRight;\n\n if (align === 'right') {\n containerElement.style.setProperty('--comp-pop-right', `${popoverRight - window.scrollX}px`);\n containerElement.style.setProperty('--comp-pop-left', 'unset');\n } else {\n containerElement.style.setProperty('--comp-pop-left', `${popoverLeft + window.scrollX}px`);\n containerElement.style.setProperty('--comp-pop-right', 'unset');\n }\n\n if (this.block) containerElement.style.setProperty('--comp-pop-width', `${controlElement?.offsetWidth || 0}px`);\n\n const isScrollableIframe = isModule && isInScrollableContainer(this.hostElement);\n\n if (currentDirection === 'up') {\n if (isModule && !isScrollableIframe) {\n containerElement.style.setProperty('--comp-pop-bottom', `${window.innerHeight - controlTop}px`);\n } else {\n containerElement.style.setProperty(\n '--comp-pop-bottom',\n `${window.innerHeight - controlTop - window.scrollY}px`\n );\n }\n }\n\n if (currentDirection === 'down') {\n if (isModule && !isScrollableIframe) {\n containerElement.style.setProperty('--comp-pop-top', `${controlBottom}px`);\n } else {\n containerElement.style.setProperty('--comp-pop-top', `${controlBottom + window.scrollY}px`);\n }\n }\n\n // Wait for one paint to prevent layout thrashing\n await waitForNextPaint();\n if (this.containerElement) containerElement.style.setProperty('--comp-pop-opacity', '1');\n };\n\n viewPortChanged = () => {\n if (!this.open) return;\n this.determinePopDirection();\n };\n\n viewPortOrientationChanged = () => {\n this.orientationChanged = true;\n this.viewPortChanged();\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const containerClasses = ['container', this.currentDirection, this.align];\n if (isMobile()) containerClasses.push('mobile');\n if (this.show) containerClasses.push('show');\n if (this.block) containerClasses.push('block');\n if (this.mode === 'legacy') containerClasses.push('legacy');\n if (this.animationState === 'opening') containerClasses.push('animating-open');\n if (this.animationState === 'closing') containerClasses.push('animating-close');\n\n return (\n <div\n ref={el => (this.containerElement = el)}\n class={containerClasses.join(' ')}\n test-id=\"outerContainer\"\n tabIndex={-1}\n popover=\"manual\"\n >\n <div\n ref={el => (this.contentElement = el)}\n class=\"content\"\n >\n <slot />\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"]}
@@ -90,7 +90,7 @@ export class Q2Radio {
90
90
  // #endregion
91
91
  // #region Render Methods
92
92
  render() {
93
- return (h("div", { key: '1819bf1b409bdb257c590c95fd059f48e9ec2ebb', class: this.groupTileLayout ? 'radio-tile' : 'radio-container' }, h("input", { key: 'a6ef43c7dbb5da2e42dc24bad503ce48dc537080', ref: el => (this.inputField = el), class: "sr", id: this._id, type: "radio", name: this.name, value: this.value, disabled: this.disabled || this.groupDisabled, checked: this.checked, "aria-label": this.label && this.hideLabel ? loc(this.label) : undefined, onChange: this.inputChange, "test-id": "q2RadioInnerRadioBox" }), h("label", { key: '1da75f9e58a0b461d9bbab4bc09ed839a0364b11', htmlFor: this._id, class: this.hideLabel ? 'label-hidden' : undefined, "test-id": "radioButton" }, !this.groupTileLayout && (h("svg", { key: 'a85fa6abe0998cf6f1e377f1242788c41aae034d', viewBox: "0 0 18 18" }, h("circle", { key: '3c0ce4521a486e2f4d8890b844ca960a3f732b66', class: "big-circle", stroke: "none", fill: "none", cx: "9", cy: "9", r: "8" }), h("circle", { key: '95d480099459712896b5941542fef02002f1bd64', class: "small-circle", stroke: "none", fill: "none", cx: "9", cy: "9", r: "4" }))), !this.hideLabel && (h("div", { key: '3d217b5973322972a84dfafafb30055665840544', class: "label-content" }, (this.label && loc(this.label)) || '', h("slot", { key: '1ae3f23813fe800de5e7fa75e6ebfa33205c3961' }))))));
93
+ return (h("div", { key: 'b3ff3221d679096f3fd42a318cfadb6233ab0ac5', class: this.groupTileLayout ? 'radio-tile' : 'radio-container' }, h("input", { key: 'ed9d41619e21af0927c1ebef5dedd3546683e677', ref: el => (this.inputField = el), class: "sr", id: this._id, type: "radio", name: this.name, value: this.value, disabled: this.disabled || this.groupDisabled, checked: this.checked, "aria-label": this.label && this.hideLabel ? loc(this.label) : undefined, onChange: this.inputChange, "test-id": "q2RadioInnerRadioBox" }), h("label", { key: '817d5260d720061908c803ff34dc826a9aa954e8', htmlFor: this._id, class: this.hideLabel ? 'label-hidden' : undefined, "test-id": "radioButton" }, !this.groupTileLayout && (h("svg", { key: 'aed6e01bca76e33bc6dda009cb78437b75da31df', viewBox: "0 0 18 18" }, h("circle", { key: '12b009b629c2f79b0ff9d973d91eee878680d5e2', class: "big-circle", stroke: "none", fill: "none", cx: "9", cy: "9", r: "8" }), h("circle", { key: 'bdb34bf3af2d9b05ac1a2f13d1ba68bc1be34379', class: "small-circle", stroke: "none", fill: "none", cx: "9", cy: "9", r: "4" }))), !this.hideLabel && (h("div", { key: '67348d1852db1ab314e686a6208d3ab66216f002', class: "label-content" }, (this.label && loc(this.label)) || '', h("slot", { key: 'ac58bd184195bc2c2ed79dcab60df89bc0accf62' }))))));
94
94
  }
95
95
  static get is() { return "q2-radio"; }
96
96
  static get encapsulation() { return "shadow"; }
@@ -178,7 +178,7 @@ export class Q2RadioGroup {
178
178
  const showLabel = this.label || this.optional || this.readonly;
179
179
  const { hasError } = this;
180
180
  const showLabelRow = (showLabel && !this.hideLabel) || hasError;
181
- return (h(Fragment, { key: 'ccf42e615a57f7a10d1dbf83477abe2f3a09c318' }, showLabelRow && (h("div", { key: 'e1dc942fcf0fd1736b3527471507f952d0823705', class: "label-row" }, showLabel && !this.hideLabel && h("div", { key: '5c9f17f222c2b9724b774e2d1963f4a83288b320', class: "group-legend" }, renderLabel(this)), hasError && (h("q2-icon", { key: 'a78ce480598193b64922b11d37b62a29452dd08c', type: "error", "test-id": "iconError" })))), h("fieldset", { key: 'c90583a3df7d565c92b8a39089f38d2a70487389', onChange: this.onInnerRadioChange, "aria-invalid": hasError ? `${hasError}` : undefined }, showLabel && h("legend", { key: '1f4a2f89ade2bb185ba10dc4edd64fbcfc689c05', class: "sr-only" }, renderLabel(this)), this.inputDom())));
181
+ return (h(Fragment, { key: '9aadfcdafda1190aac1d1d23f02d73d9d0982cfb' }, showLabelRow && (h("div", { key: '80ffd1095a810f95e89b839bd4c9e9b10b10c56a', class: "label-row" }, showLabel && !this.hideLabel && h("div", { key: '82663c3dc58235e5a15c6a96d61c0f899e51b34c', class: "group-legend" }, renderLabel(this)), hasError && (h("q2-icon", { key: '75aab19da924c83a43c311c8718213e554e1e41d', type: "error", "test-id": "iconError" })))), h("fieldset", { key: 'df81b71c57ac1c2b7812b1e12dc4f85b95563895', onChange: this.onInnerRadioChange, "aria-invalid": hasError ? `${hasError}` : undefined }, showLabel && h("legend", { key: 'c3aff2496cb12cfaa774aac545f399508f0a679c', class: "sr-only" }, renderLabel(this)), this.inputDom())));
182
182
  }
183
183
  static get is() { return "q2-radio-group"; }
184
184
  static get encapsulation() { return "shadow"; }
@@ -153,7 +153,7 @@ export class Q2RelativeTime {
153
153
  // #region Render Methods
154
154
  render() {
155
155
  const { shouldShow, displayedMessage } = this;
156
- return h(Fragment, { key: 'e2c0439b5b2ef14d719309202959a650e1a8e7d5' }, shouldShow ? h("time", { dateTime: displayedMessage }, displayedMessage) : null);
156
+ return h(Fragment, { key: '368b5847fd62820031d367eaee690212fa655223' }, shouldShow ? h("time", { dateTime: displayedMessage }, displayedMessage) : null);
157
157
  }
158
158
  static get is() { return "q2-relative-time"; }
159
159
  static get encapsulation() { return "shadow"; }
@@ -76,7 +76,7 @@ export class Q2ResizeObserver {
76
76
  // #endregion
77
77
  // #region Render Methods
78
78
  render() {
79
- return h("slot", { key: '2cf512a7e20957cca3fa7339875f2015effe829e', onSlotchange: this.handleSlotChange });
79
+ return h("slot", { key: '185b0be700ed56c383a329811fcde95d4ed2bd34', onSlotchange: this.handleSlotChange });
80
80
  }
81
81
  static get is() { return "q2-resize-observer"; }
82
82
  static get encapsulation() { return "shadow"; }
@@ -186,9 +186,9 @@ export class Q2Section {
186
186
  wrapperClasses.push('is-transitioning');
187
187
  }
188
188
  const showDefaultHeader = !this.hasYieldedHeader && !!this.label;
189
- return (h("section", { key: '05ee53a9a05e1037c893f08ac5cf918c25b7f877', class: "wrapper" }, h("header", { key: '52678d55334407ef19cfae457e0e9fe277fb0bdd', class: hasHeader ? 'has-header' : '' }, h("div", { key: '76a3ade1875c6e64866ed5b50d005885c9108c61', class: "header-content", id: this.titleId, onClick: this.collapsible && this.onHeaderClick }, showDefaultHeader && h("h2", { key: '144199b22c9eb4d2b6c16c8890554f80939ac3f3', class: "title" }, loc(this.label)), h("div", { key: 'ce508b60dced7965b3e5a2c79999f8720176827e', ref: el => (this.headerSlotWrapper = el), class: "header-slot-wrapper" }, h("slot", { key: '73e9cfcfc13fe1eb9ae4b12593ca620f103fd3dd', ref: (el) => (this.headerSlot = el), name: "q2-section-header" }))), this.collapsible && !this.noCollapseIcon && (h("q2-btn", { key: 'd3d53f2d0740600a5178d93107db9ba684f29a44', label: loc(this.label || 'tecton.element.section.defaultToggleLabel'), ariaExpanded: `${!!this.expanded}`, ariaControls: this.contentId, "test-id": "toggleButton", "hide-label": true, onClick: this.onHeaderClick }, h("q2-icon", { key: '5c79651503d2222d92bdc8cc9b7811f75306a436', type: "chevron-up" })))), h("div", { key: '55fc425e4aea009b8102eb495069d9e191660045', class: wrapperClasses.join(' '), id: this.contentId, "aria-labelledby": this.titleId, role: "region", onTransitionEnd: this.onTransitionEnd, style: this.collapsible && {
189
+ return (h("section", { key: 'ea31fa3fcb95aeba58b116111a8de973acfc9dd8', class: "wrapper" }, h("header", { key: '599e2c5d97b7e1a8e82d4f67477feaea39bf44a4', class: hasHeader ? 'has-header' : '' }, h("div", { key: 'ec33d8f308ddc45636df221e103972abb4c743e4', class: "header-content", id: this.titleId, onClick: this.collapsible && this.onHeaderClick }, showDefaultHeader && h("h2", { key: 'c16de7c1c6fb720b4bfa43a8a1768480e7d9df0d', class: "title" }, loc(this.label)), h("div", { key: '3ff11259f114b4ca6c6dbd2c05fb35d5f270fb97', ref: el => (this.headerSlotWrapper = el), class: "header-slot-wrapper" }, h("slot", { key: '47b372f49b184db9ecb4aa29a60545f6ec3e1f6b', ref: (el) => (this.headerSlot = el), name: "q2-section-header" }))), this.collapsible && !this.noCollapseIcon && (h("q2-btn", { key: '7b7f6e91877c354860d16ec95d39c1cd78ccf48b', label: loc(this.label || 'tecton.element.section.defaultToggleLabel'), ariaExpanded: `${!!this.expanded}`, ariaControls: this.contentId, "test-id": "toggleButton", "hide-label": true, onClick: this.onHeaderClick }, h("q2-icon", { key: '39c6913339322a55626fba6b72b2305654821b34', type: "chevron-up" })))), h("div", { key: '0212368798fdf64763de5f8507dc5cb1e7ca307f', class: wrapperClasses.join(' '), id: this.contentId, "aria-labelledby": this.titleId, role: "region", onTransitionEnd: this.onTransitionEnd, style: this.collapsible && {
190
190
  height: this.contentHeight,
191
- } }, h("div", { key: 'cd773f58a51c95785062f37c7542d0742acf9ab9', ref: el => (this.contentContainer = el), class: "content", tabindex: "-1" }, h("slot", { key: 'e614cef7ec9036998dc509454c79439e3369b660', ref: (el) => (this.contentSlot = el) })))));
191
+ } }, h("div", { key: '32e77e59068e9117454cc158998af16c18b7eda5', ref: el => (this.contentContainer = el), class: "content", tabindex: "-1" }, h("slot", { key: '770db19e692eaafb752ec9109de89d52f4375dca', ref: (el) => (this.contentSlot = el) })))));
192
192
  }
193
193
  static get is() { return "q2-section"; }
194
194
  static get encapsulation() { return "shadow"; }
@@ -797,7 +797,7 @@ export class Q2Select {
797
797
  ]), checked: showSelected, "test-id": "selectedOptionsButton", onClick: this.showSelectedOptions, onKeyDown: this.visibilityToggleKeyDown }), h("label", { htmlFor: "selected" }, loc('tecton.element.select.multiHeader.selected', [selectedOptionsCount]))))));
798
798
  }
799
799
  render() {
800
- return (h("click-elsewhere", { key: '3e4e224801ab3110490f94c49d6b1ff1e1f8f227', class: this.wrapperClasses, role: "presentation", onChange: this.clickedElsewhere }, this.renderSelectField()));
800
+ return (h("click-elsewhere", { key: '2611cdb97d80f88b083ddf5afe85146a5653e5f1', class: this.wrapperClasses, role: "presentation", onChange: this.clickedElsewhere }, this.renderSelectField()));
801
801
  }
802
802
  static get is() { return "q2-select"; }
803
803
  static get encapsulation() { return "shadow"; }
@@ -280,7 +280,7 @@ export class Q2Stepper {
280
280
  const containerClasses = ['step-container'];
281
281
  if (scrollEnabled)
282
282
  containerClasses.push('has-scroll');
283
- return (h(Fragment, { key: 'b9bbe49ba3b47a4bcf32a8dc15e8731288f4eebd' }, h("div", { key: '1573c647f547aadef0b6cf393acfe61e431cf0da', class: containerClasses.join(' ') }, scrollEnabled && (h(Fragment, { key: '9d3a985448dd7e4439485fb3b8408871d67df6fc' }, h("div", { key: 'b8ed037c41fa19dcfeb2d30e0690c9838bf9f61a', class: "gradient-left", hidden: !showScrollLeft }), h("div", { key: 'ef91d66fd50ce2377c96999aea029da78cef8438', class: "gradient-right", hidden: !showScrollRight }), h("q2-btn", { key: 'd041a6e7aedabbb47de657cc690d3488cd408d2f', class: "btn-left", hideLabel: true, hidden: !this.showScrollLeft, label: loc('tecton.element.stepper.scrollLeft'), onTctClick: () => this.onScrollBtnClick('left') }, h("q2-icon", { key: '0a4b6a0b982f270dca51fbd61829708daf03ea79', type: "chevron-left" })), h("q2-btn", { key: 'a690d70cc826f0236d2501680850453d3160b636', class: "btn-right", hideLabel: true, hidden: !this.showScrollRight, label: loc('tecton.element.stepper.scrollRight'), onTctClick: () => this.onScrollBtnClick('right') }, h("q2-icon", { key: '0678d7423d4f3fc7529649b23f074fc1b17f6379', type: "chevron-right" })))), h("ul", { key: '623c1491f459cf7e1313d486f3a547d9c31f0bf6', onScroll: this.checkScrollState, ref: el => (this.listElement = el), role: "tablist" }, stepCount > 0 && [...Array(stepCount).keys()].map(stepIndex => this.renderStepBtn(stepIndex)))), h("div", { key: 'cce9355d3553bbefef2eb5cf303463777693ff76', role: "list" }, h("slot", { key: '7de13d3600c9b8093d77b55101f27bb2d7bb19a8', onSlotchange: () => this.onSlotChange() }))));
283
+ return (h(Fragment, { key: '860f07cdd262a6b6710864c1e7fb977cd6c2aeda' }, h("div", { key: 'a77509faf317305acd39cf6ff8e4fac153b68208', class: containerClasses.join(' ') }, scrollEnabled && (h(Fragment, { key: 'e77c847ebb1f29b188d8bf0169edfeff45c80a00' }, h("div", { key: '7ccd141727448a90c00dc605add06333ef3d4a44', class: "gradient-left", hidden: !showScrollLeft }), h("div", { key: '4daefeb015ad3d7556cf0db26355c15c2d710c98', class: "gradient-right", hidden: !showScrollRight }), h("q2-btn", { key: '874809c160bef85f7cd4b8876d6d32bd17c2d2ae', class: "btn-left", hideLabel: true, hidden: !this.showScrollLeft, label: loc('tecton.element.stepper.scrollLeft'), onTctClick: () => this.onScrollBtnClick('left') }, h("q2-icon", { key: '2aecd51118a8523b6a78a1cd4816d68a235cbb03', type: "chevron-left" })), h("q2-btn", { key: '78ed0c8b483ef82a7ff09a129ad728722813e8fc', class: "btn-right", hideLabel: true, hidden: !this.showScrollRight, label: loc('tecton.element.stepper.scrollRight'), onTctClick: () => this.onScrollBtnClick('right') }, h("q2-icon", { key: 'a1641d530c74285bc7e36e3b43a8a37a4292ccba', type: "chevron-right" })))), h("ul", { key: '3f7359edc49e615acc1eb9296537f5eb27fea68b', onScroll: this.checkScrollState, ref: el => (this.listElement = el), role: "tablist" }, stepCount > 0 && [...Array(stepCount).keys()].map(stepIndex => this.renderStepBtn(stepIndex)))), h("div", { key: 'c54a3fa9a910a5bf16e8fa0622c8b81d1631c38b', role: "list" }, h("slot", { key: 'f58510d079329d251e6c92bdee54151cdee699bf', onSlotchange: () => this.onSlotChange() }))));
284
284
  }
285
285
  static get is() { return "q2-stepper"; }
286
286
  static get encapsulation() { return "shadow"; }
@@ -73,7 +73,7 @@ export class Q2StepperPane {
73
73
  // #region Render Methods
74
74
  render() {
75
75
  const { label, isActive } = this;
76
- return (h(Host, { key: '69b27313eda3276e7041c2813b2a56a53efc104b', role: "listitem" }, h(Fragment, { key: 'c7c5d0fd3ad3dc8650832d6e2f32ff59ee28b1a6' }, h("div", { key: 'a07608df6dc48453a00b72e501d23f28b72ab5cb', "aria-label": label && loc(label), tabindex: "0", hidden: !isActive && !(this.isChildActive && this.showWithChildren) }, h("slot", { key: '68cef0c9131cf432fa9d48500f62fc88ebba198b' })), h("div", { key: '0b9f7a3e34565490acd91747b047f9802bf9ac49', hidden: true }, h("slot", { key: 'ca7f10c02501ba44b75640d6f6a67d1f4d5dcf92', name: "label", onSlotchange: () => this.contentChange.emit() }), h("slot", { key: 'f1cd0547c27b3f869fc245d6eba144cf85c3e17f', name: "description", onSlotchange: () => this.contentChange.emit() })), h("slot", { key: 'bf21a7e7f578f58649edfa9ebf34849385b712a4', name: "children" }))));
76
+ return (h(Host, { key: '390b7605500bc2f04851fbae962543c92f8b9bb4', role: "listitem" }, h(Fragment, { key: 'a4835085304254d9b9c390c9bee29b67f6e9e1c4' }, h("div", { key: '0a8500ab3d69e3b43945451d9b3b310a05e2d67a', "aria-label": label && loc(label), tabindex: "0", hidden: !isActive && !(this.isChildActive && this.showWithChildren) }, h("slot", { key: '3b0622f4661ce6d3737580244dccb33c648238b3' })), h("div", { key: 'a1ffd3ac9ecedc149bf8da797bafd76dc4c8b3e7', hidden: true }, h("slot", { key: '437c72da16cd6e8f4c216f6a0e3255b45f3853b4', name: "label", onSlotchange: () => this.contentChange.emit() }), h("slot", { key: 'b8c9d86ffd8ede0a8203aea50eb175beee077f6a', name: "description", onSlotchange: () => this.contentChange.emit() })), h("slot", { key: 'aac91a3bc78567b297f930b5c61178d9d04381bf', name: "children" }))));
77
77
  }
78
78
  static get is() { return "q2-stepper-pane"; }
79
79
  static get encapsulation() { return "shadow"; }
@@ -296,7 +296,7 @@ export class Q2StepperVertical {
296
296
  return (h("li", { role: "presentation" }, h("button", { class: stepClasses.join(' '), type: "button", "aria-labelledby": labelId, "aria-describedBy": descriptionId, "aria-label": btnLabel, "aria-selected": `${isCurrentStep}`, "aria-expanded": !!pane.children.length ? `${isExpanded}` : null, id: id, "aria-disabled": isLocked ? 'true' : null, role: "tab", tabIndex: isCurrentStep ? 0 : -1, onKeyDown: ev => !isLocked && this.onStepKeyDown(ev, id), onClick: ev => !isPaneDisabled && !isLocked && this.onStepClick(ev, id) }, statusIcon ? (h("div", { class: "step-icon" }, h("q2-icon", { type: statusIcon }))) : (h("div", { class: "step-bubble" }, stepNumber)), label && (h("div", null, h("div", { class: "step-label", id: labelId }, stepLabel), description && (h("div", { class: "step-description", id: descriptionId }, loc(description)))))), this.renderSpacer(pane, stepLabel, isExpanded, isLastStep)));
297
297
  }
298
298
  render() {
299
- return (h(Fragment, { key: '568db2e33e972b3bedd39662343540d98a1f3788' }, h("ul", { key: 'cc21e51d8d8a4eecaf9717cedcd79244d26ab346', role: "tablist" }, this.structuredPanes.map((pane, index) => this.renderStepBtn(pane, index))), h("div", { key: 'f89dff25b18fd14526f1248ae196d218e0cd53d7', role: "list" }, h("slot", { key: 'cbb7259494fc49820eef8acedbf2f5b0e5817aac' }))));
299
+ return (h(Fragment, { key: 'a790b8dd9980fb56e96b103dbb52b89df222e349' }, h("ul", { key: '25b087f9746601005b9591139f2c13387c75f76a', role: "tablist" }, this.structuredPanes.map((pane, index) => this.renderStepBtn(pane, index))), h("div", { key: 'ee1b1f825884fde53c3975c66c60523b28fb87c7', role: "list" }, h("slot", { key: '27b316593c07cd178d0d46f6cc4531ab3a7e89ec' }))));
300
300
  }
301
301
  static get is() { return "q2-stepper-vertical"; }
302
302
  static get encapsulation() { return "shadow"; }
@@ -266,7 +266,7 @@ export class Q2TabContainer {
266
266
  return (h("div", { class: "tab-pane-badge", "aria-label": `${tab.label}, ${tab.badgeCount} ${description}` }, tab.label, h("q2-badge", { value: tab.badgeCount, theme: theme, status: tab.badgeStatus })));
267
267
  }
268
268
  render() {
269
- return (h(Fragment, { key: '1913175c15aecb5bf14cd1dbdc35e9c987fde9d4' }, h("div", { key: '635d91af2197e6ef1078cdc9bd6fcf8d4b135675', class: "tab-container" }, this.scrollEnabled && (h(Fragment, { key: '138d7b25a3644ccf9b14934a06ba515e04770bac' }, h("div", { key: 'a5e723731fb2c42a0c280cc15d7220a64f67b60b', class: "gradient-left", hidden: !this.showScrollLeft }), h("div", { key: 'bd13d0b8412a08277b112473aa4664e287bce7c4', class: "gradient-right", hidden: !this.showScrollRight }), h("q2-btn", { key: '7887ac9fcf831190abc8610cb6271839a662efd2', class: "btn-left", hidden: !this.showScrollLeft, onTctClick: () => this.onScrollBtnClick('left') }, h("q2-icon", { key: 'c7ef1331d91747e4c23f0ecdc48600ae2ca0d2ad', type: "chevron-left", label: "scroll left" })), h("q2-btn", { key: 'a8564bd1e158bef750300112d024933600f7f6ac', class: "btn-right", hidden: !this.showScrollRight, onTctClick: () => this.onScrollBtnClick('right') }, h("q2-icon", { key: '16dfc165369e2cc344d76e817b879d8c02d47b23', type: "chevron-right", label: "scroll right" })))), h("ul", { key: '660241dfc441a2f55328156e23c601061ff89c17', onScroll: this.checkScrollState, ref: el => (this.listElement = el), class: this.noPrint ? 'no-print' : null, role: "tablist" }, this.tabs.map((tab, index) => this.renderTab(tab, index)))), h("div", { key: '54fc457ab57a00bd13eac3ebdb019bd49bbd7a71', class: "tab-content" }, h("slot", { key: '479a982a16116bc5e82e28f171387c07a33bcb9c', onSlotchange: () => this.onSlotChange() }))));
269
+ return (h(Fragment, { key: 'c5efef8307eeed7d15fa97b5a9047f4fc3ceae35' }, h("div", { key: '55200a6028630d7e70f116ace930a09820c096ce', class: "tab-container" }, this.scrollEnabled && (h(Fragment, { key: 'c4b8b65a9a4309d5e64a7e25532d63a9d5f6c94a' }, h("div", { key: '8696d2ac259cf64e45f9b709a1ff803efb05c628', class: "gradient-left", hidden: !this.showScrollLeft }), h("div", { key: '9dec12e80440127cf874ff19c409fdd431acaad6', class: "gradient-right", hidden: !this.showScrollRight }), h("q2-btn", { key: '5e5da65b962028501f8d2f81d23982ff9bbcab93', class: "btn-left", hidden: !this.showScrollLeft, onTctClick: () => this.onScrollBtnClick('left') }, h("q2-icon", { key: '10647cdbf45e406fd74521657db1d54d896edbcf', type: "chevron-left", label: "scroll left" })), h("q2-btn", { key: 'be6a46650c0e1b465589a1aeacf57ca54d19ddcf', class: "btn-right", hidden: !this.showScrollRight, onTctClick: () => this.onScrollBtnClick('right') }, h("q2-icon", { key: 'fa5f6c394e07b52dd6ec84d161d395d9f09bac75', type: "chevron-right", label: "scroll right" })))), h("ul", { key: '187492abc7df25789f0caef9afa6c8c9532b3a06', onScroll: this.checkScrollState, ref: el => (this.listElement = el), class: this.noPrint ? 'no-print' : null, role: "tablist" }, this.tabs.map((tab, index) => this.renderTab(tab, index)))), h("div", { key: '5d703304c29dbbb30264f23b2596ea9f872a15f4', class: "tab-content" }, h("slot", { key: '8d3a5a5b7df932e558fbed17c87a6e8365b51516', onSlotchange: () => this.onSlotChange() }))));
270
270
  }
271
271
  static get is() { return "q2-tab-container"; }
272
272
  static get encapsulation() { return "shadow"; }