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
@@ -1 +1 @@
1
- {"file":"q2-popover2.js","mappings":"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","names":["__stencil_proxyCustomElement"],"sources":["src/components/q2-popover/q2-popover.scss?tag=q2-popover&encapsulation=shadow","src/components/q2-popover/q2-popover.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n.legacy {\n &.container {\n display: none;\n }\n\n &.show {\n display: block;\n z-index: var-list(--tct-popover-z-index, 50);\n }\n}\n\n@keyframes popoverOpen {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes popoverClose {\n from {\n opacity: 1;\n transform: scale(1);\n }\n to {\n opacity: 0;\n transform: scale(0.95);\n }\n}\n\n:popover-open,\n.show {\n position: absolute;\n margin: 0;\n padding: var-list(--tct-popover-padding, 0);\n overflow: auto;\n background: var-list(--tct-popover-background, --app-white, #ffffff);\n backdrop-filter: var-list(--tct-popover-backdrop-filter, none);\n color: var-list(--tct-popover-font-color, --t-text, #4d4d4d);\n min-width: var-list(--tct-popover-min-width, 135px);\n margin-block: var-list(--tct-popover-margin-block, 0);\n box-shadow: var-list(\n --tct-popover-box-shadow,\n --app-shadow-3,\n unquote('0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)')\n );\n border-width: var-list(--tct-popover-border-width, 0);\n border-style: solid;\n border-color: var-list(--tct-popover-border-color, transparent);\n border-radius: var-list(--tct-popover-border-radius, 0);\n // the --comp variables are set via JS\n max-height: var(--comp-pop-max-height);\n left: var(--comp-pop-left);\n opacity: var(--comp-pop-opacity, 0);\n\n &.animating-open {\n animation-name: popoverOpen;\n animation-duration: var-list(--tct-popover-open-animation-duration, --t-tween-time-in-1, 150ms);\n animation-timing-function: var-list(--tct-popover-open-animation-timing-function, ease-out);\n animation-fill-mode: var-list(--tct-popover-open-animation-fill-mode, forwards);\n }\n\n &.animating-close {\n animation-name: popoverClose;\n animation-duration: var-list(--tct-popover-close-animation-duration, --t-tween-time-out-1, 100ms);\n animation-timing-function: var-list(--tct-popover-close-animation-timing-function, ease-in);\n animation-fill-mode: var-list(--tct-popover-close-animation-fill-mode, forwards);\n }\n\n // Respect user's motion preferences\n @media (prefers-reduced-motion: reduce) {\n &.animating-open,\n &.animating-close {\n animation: none;\n }\n }\n\n &.block {\n right: unset;\n width: var(--comp-pop-width);\n min-width: var-list(--tct-popover-min-width, unset);\n }\n\n &.left {\n left: var(--comp-pop-left);\n right: unset;\n }\n\n &.right {\n right: var(--comp-pop-right);\n left: unset;\n }\n\n &.down {\n top: var-list(--tct-popover-top, --comp-pop-top);\n bottom: unset;\n }\n\n &.up {\n top: unset;\n bottom: var(--comp-pop-bottom);\n }\n\n // Desktop: corner-based transform origin\n &.down.left:not(.mobile) {\n transform-origin: top left;\n }\n\n &.down.right:not(.mobile) {\n transform-origin: top right;\n }\n\n &.up.left:not(.mobile) {\n transform-origin: bottom left;\n }\n\n &.up.right:not(.mobile) {\n transform-origin: bottom right;\n }\n\n // Mobile: center-based transform origin\n &.mobile.down {\n transform-origin: center top;\n }\n\n &.mobile.up {\n transform-origin: center bottom;\n }\n\n @include tiny-scrollbar();\n}\n\nclick-elsewhere {\n position: relative;\n display: block;\n}\n","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"],"version":3}
1
+ {"file":"q2-popover2.js","mappings":"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","names":["__stencil_proxyCustomElement"],"sources":["src/components/q2-popover/q2-popover.scss?tag=q2-popover&encapsulation=shadow","src/components/q2-popover/q2-popover.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n.legacy {\n &.container {\n display: none;\n }\n\n &.show {\n display: block;\n z-index: var-list(--tct-popover-z-index, 50);\n }\n}\n\n@keyframes popoverOpen {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes popoverClose {\n from {\n opacity: 1;\n transform: scale(1);\n }\n to {\n opacity: 0;\n transform: scale(0.95);\n }\n}\n\n:popover-open,\n.show {\n position: absolute;\n margin: 0;\n padding: var-list(--tct-popover-padding, 0);\n overflow: auto;\n background: var-list(--tct-popover-background, --app-white, #ffffff);\n backdrop-filter: var-list(--tct-popover-backdrop-filter, none);\n color: var-list(--tct-popover-font-color, --t-text, #4d4d4d);\n min-width: var-list(--tct-popover-min-width, 135px);\n margin-block: var-list(--tct-popover-margin-block, 0);\n box-shadow: var-list(\n --tct-popover-box-shadow,\n --app-shadow-3,\n unquote('0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)')\n );\n border-width: var-list(--tct-popover-border-width, 0);\n border-style: solid;\n border-color: var-list(--tct-popover-border-color, transparent);\n border-radius: var-list(--tct-popover-border-radius, 0);\n // the --comp variables are set via JS\n max-height: var(--comp-pop-max-height);\n left: var(--comp-pop-left);\n opacity: var(--comp-pop-opacity, 0);\n\n &.animating-open {\n animation-name: popoverOpen;\n animation-duration: var-list(--tct-popover-open-animation-duration, --t-tween-time-in-1, 150ms);\n animation-timing-function: var-list(--tct-popover-open-animation-timing-function, ease-out);\n animation-fill-mode: var-list(--tct-popover-open-animation-fill-mode, forwards);\n }\n\n &.animating-close {\n animation-name: popoverClose;\n animation-duration: var-list(--tct-popover-close-animation-duration, --t-tween-time-out-1, 100ms);\n animation-timing-function: var-list(--tct-popover-close-animation-timing-function, ease-in);\n animation-fill-mode: var-list(--tct-popover-close-animation-fill-mode, forwards);\n }\n\n // Respect user's motion preferences\n @media (prefers-reduced-motion: reduce) {\n &.animating-open,\n &.animating-close {\n animation: none;\n }\n }\n\n &.block {\n right: unset;\n width: var(--comp-pop-width);\n min-width: var-list(--tct-popover-min-width, unset);\n }\n\n &.left {\n left: var(--comp-pop-left);\n right: unset;\n }\n\n &.right {\n right: var(--comp-pop-right);\n left: unset;\n }\n\n &.down {\n top: var-list(--tct-popover-top, --comp-pop-top);\n bottom: unset;\n }\n\n &.up {\n top: unset;\n bottom: var(--comp-pop-bottom);\n }\n\n // Desktop: corner-based transform origin\n &.down.left:not(.mobile) {\n transform-origin: top left;\n }\n\n &.down.right:not(.mobile) {\n transform-origin: top right;\n }\n\n &.up.left:not(.mobile) {\n transform-origin: bottom left;\n }\n\n &.up.right:not(.mobile) {\n transform-origin: bottom right;\n }\n\n // Mobile: center-based transform origin\n &.mobile.down {\n transform-origin: center top;\n }\n\n &.mobile.up {\n transform-origin: center bottom;\n }\n\n @include tiny-scrollbar();\n}\n\nclick-elsewhere {\n position: relative;\n display: block;\n}\n","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"],"version":3}
@@ -181,7 +181,7 @@ const Q2RadioGroup$1 = /*@__PURE__*/ proxyCustomElement(class Q2RadioGroup exten
181
181
  const showLabel = this.label || this.optional || this.readonly;
182
182
  const { hasError } = this;
183
183
  const showLabelRow = (showLabel && !this.hideLabel) || hasError;
184
- 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())));
184
+ 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())));
185
185
  }
186
186
  get hostElement() { return this; }
187
187
  static get watchers() { return {
@@ -93,7 +93,7 @@ const Q2Radio$1 = /*@__PURE__*/ proxyCustomElement(class Q2Radio extends HTMLEle
93
93
  // #endregion
94
94
  // #region Render Methods
95
95
  render() {
96
- 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' }))))));
96
+ 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' }))))));
97
97
  }
98
98
  get hostElement() { return this; }
99
99
  static get watchers() { return {
@@ -154,7 +154,7 @@ const Q2RelativeTime$1 = /*@__PURE__*/ proxyCustomElement(class Q2RelativeTime e
154
154
  // #region Render Methods
155
155
  render() {
156
156
  const { shouldShow, displayedMessage } = this;
157
- return h(Fragment, { key: 'e2c0439b5b2ef14d719309202959a650e1a8e7d5' }, shouldShow ? h("time", { dateTime: displayedMessage }, displayedMessage) : null);
157
+ return h(Fragment, { key: '368b5847fd62820031d367eaee690212fa655223' }, shouldShow ? h("time", { dateTime: displayedMessage }, displayedMessage) : null);
158
158
  }
159
159
  get hostElement() { return this; }
160
160
  static get watchers() { return {
@@ -78,7 +78,7 @@ const Q2ResizeObserver = /*@__PURE__*/ proxyCustomElement(class Q2ResizeObserver
78
78
  // #endregion
79
79
  // #region Render Methods
80
80
  render() {
81
- return h("slot", { key: '2cf512a7e20957cca3fa7339875f2015effe829e', onSlotchange: this.handleSlotChange });
81
+ return h("slot", { key: '185b0be700ed56c383a329811fcde95d4ed2bd34', onSlotchange: this.handleSlotChange });
82
82
  }
83
83
  get hostElement() { return this; }
84
84
  static get watchers() { return {
@@ -191,9 +191,9 @@ const Q2Section$1 = /*@__PURE__*/ proxyCustomElement(class Q2Section extends HTM
191
191
  wrapperClasses.push('is-transitioning');
192
192
  }
193
193
  const showDefaultHeader = !this.hasYieldedHeader && !!this.label;
194
- 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 && {
194
+ 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 && {
195
195
  height: this.contentHeight,
196
- } }, h("div", { key: 'cd773f58a51c95785062f37c7542d0742acf9ab9', ref: el => (this.contentContainer = el), class: "content", tabindex: "-1" }, h("slot", { key: 'e614cef7ec9036998dc509454c79439e3369b660', ref: (el) => (this.contentSlot = el) })))));
196
+ } }, h("div", { key: '32e77e59068e9117454cc158998af16c18b7eda5', ref: el => (this.contentContainer = el), class: "content", tabindex: "-1" }, h("slot", { key: '770db19e692eaafb752ec9109de89d52f4375dca', ref: (el) => (this.contentSlot = el) })))));
197
197
  }
198
198
  get hostElement() { return this; }
199
199
  static get watchers() { return {
@@ -800,7 +800,7 @@ const Q2Select = /*@__PURE__*/ proxyCustomElement(class Q2Select extends HTMLEle
800
800
  ]), checked: showSelected, "test-id": "selectedOptionsButton", onClick: this.showSelectedOptions, onKeyDown: this.visibilityToggleKeyDown }), h("label", { htmlFor: "selected" }, loc('tecton.element.select.multiHeader.selected', [selectedOptionsCount]))))));
801
801
  }
802
802
  render() {
803
- return (h("click-elsewhere", { key: '3e4e224801ab3110490f94c49d6b1ff1e1f8f227', class: this.wrapperClasses, role: "presentation", onChange: this.clickedElsewhere }, this.renderSelectField()));
803
+ return (h("click-elsewhere", { key: '2611cdb97d80f88b083ddf5afe85146a5653e5f1', class: this.wrapperClasses, role: "presentation", onChange: this.clickedElsewhere }, this.renderSelectField()));
804
804
  }
805
805
  get hostElement() { return this; }
806
806
  static get watchers() { return {
@@ -75,7 +75,7 @@ const Q2StepperPane$1 = /*@__PURE__*/ proxyCustomElement(class Q2StepperPane ext
75
75
  // #region Render Methods
76
76
  render() {
77
77
  const { label, isActive } = this;
78
- 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" }))));
78
+ 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" }))));
79
79
  }
80
80
  get hostElement() { return this; }
81
81
  static get watchers() { return {
@@ -300,7 +300,7 @@ const Q2StepperVertical$1 = /*@__PURE__*/ proxyCustomElement(class Q2StepperVert
300
300
  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)));
301
301
  }
302
302
  render() {
303
- 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' }))));
303
+ 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' }))));
304
304
  }
305
305
  get hostElement() { return this; }
306
306
  static get watchers() { return {
@@ -284,7 +284,7 @@ const Q2Stepper$1 = /*@__PURE__*/ proxyCustomElement(class Q2Stepper extends HTM
284
284
  const containerClasses = ['step-container'];
285
285
  if (scrollEnabled)
286
286
  containerClasses.push('has-scroll');
287
- 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() }))));
287
+ 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() }))));
288
288
  }
289
289
  get hostElement() { return this; }
290
290
  static get watchers() { return {
@@ -274,7 +274,7 @@ const Q2TabContainer$1 = /*@__PURE__*/ proxyCustomElement(class Q2TabContainer e
274
274
  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 })));
275
275
  }
276
276
  render() {
277
- 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() }))));
277
+ 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() }))));
278
278
  }
279
279
  get hostElement() { return this; }
280
280
  static get watchers() { return {
@@ -23,7 +23,7 @@ const Q2TabPane$1 = /*@__PURE__*/ proxyCustomElement(class Q2TabPane extends HTM
23
23
  // #endregion
24
24
  // #region Render Methods
25
25
  render() {
26
- return (h("div", { key: '6550750c490f276b314f5e10cba438aa5f458657', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, h("slot", { key: 'bc8b8e38e3d2635f61ccc06830c095cc743c235a' })));
26
+ return (h("div", { key: '9e30ea978de56faef92a68fe53d20bb3c691472e', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, h("slot", { key: '0e89751c2212dfb0a7668c7cb720460022960618' })));
27
27
  }
28
28
  get hostElement() { return this; }
29
29
  static get watchers() { return {
@@ -203,7 +203,7 @@ const Q2Tag = /*@__PURE__*/ proxyCustomElement(class Q2Tag extends HTMLElement {
203
203
  if (this.optionCount)
204
204
  wrapperClassNames.push('has-options');
205
205
  const shouldShowOptions = this.optionCount > 0;
206
- return (h(Host, { key: '664af4451fdb556b1746ec0f1a0a66de86642a7a' }, h("click-elsewhere", { key: '8da25535a510070733d25fa1d63dedfa0865b7ab', onChange: this.onClickElsewhere }, shouldShowOptions ? (h(Fragment, null, h("div", { class: "btn-wrapper", onClick: this.handleWrapperClick }, h("button", { class: "tag-wrapper", ref: el => (this.dropdownBtn = el), "test-id": "btn-control", type: "button", role: "combobox", onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleButtonFocusout, "aria-controls": "option-list", "aria-expanded": open ? 'true' : 'false', "aria-describedby": "option-description", "aria-label": loc(this.label) }, h("div", { class: wrapperClassNames.join(' ') }, loc(this.label)), h("q2-icon", { type: "options" }))), this.renderHiddenElement())) : (h("div", { class: "tag-wrapper", onClick: e => e.stopPropagation() }, h("div", { class: wrapperClassNames.join(' ') }, h("slot", { name: "decorator" }), loc(this.label)))), shouldShowOptions && (h("q2-popover", { key: '28397ef79ce03d335959ad993a4de4278073a9ba', ref: el => (this.popoverElement = el), controlElement: this.dropdownBtn, open: this.open, maxHeight: this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment }, h("q2-option-list", { key: '3379d0003bde9036485c06ff696a2f08fc599451', id: "option-list", ref: el => (this.optionList = el), onChange: this.handleChange, type: "menu", align: "right", label: loc('tecton.element.optionList.label', [this.optionListLabel]), "no-select": true }, h("slot", { key: '1cf6372351972e02563e74ba1e9cc79e261a9a2a' })))))));
206
+ return (h(Host, { key: '4c8e6f24bb68ab17d54896ad3ba6fb1f963f09e3' }, h("click-elsewhere", { key: '390cc4ed1ea29105303051d334752e8825a92d1b', onChange: this.onClickElsewhere }, shouldShowOptions ? (h(Fragment, null, h("div", { class: "btn-wrapper", onClick: this.handleWrapperClick }, h("button", { class: "tag-wrapper", ref: el => (this.dropdownBtn = el), "test-id": "btn-control", type: "button", role: "combobox", onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleButtonFocusout, "aria-controls": "option-list", "aria-expanded": open ? 'true' : 'false', "aria-describedby": "option-description", "aria-label": loc(this.label) }, h("div", { class: wrapperClassNames.join(' ') }, loc(this.label)), h("q2-icon", { type: "options" }))), this.renderHiddenElement())) : (h("div", { class: "tag-wrapper", onClick: e => e.stopPropagation() }, h("div", { class: wrapperClassNames.join(' ') }, h("slot", { name: "decorator" }), loc(this.label)))), shouldShowOptions && (h("q2-popover", { key: '47a36ed4d61e060057dfdd9ab5ea209210bae7b1', ref: el => (this.popoverElement = el), controlElement: this.dropdownBtn, open: this.open, maxHeight: this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment }, h("q2-option-list", { key: 'fdb74513951317be67174d656f7b89e2e6ee5561', id: "option-list", ref: el => (this.optionList = el), onChange: this.handleChange, type: "menu", align: "right", label: loc('tecton.element.optionList.label', [this.optionListLabel]), "no-select": true }, h("slot", { key: '3848cc9302b88fac6abb996c9f0d91d6e71f9ae2' })))))));
207
207
  }
208
208
  get hostElement() { return this; }
209
209
  static get style() { return q2TagCss; }
@@ -282,7 +282,7 @@ const Q2Textarea$1 = /*@__PURE__*/ proxyCustomElement(class Q2Textarea extends H
282
282
  ]))));
283
283
  }
284
284
  render() {
285
- return (h("div", { key: 'a9b5fe04a27d30b849855d25b4ab470a6670827a', class: this.wrapperClasses }, renderLabel(this), h("div", { key: '73bb18321f257624ca7563572cee97d4d77a2879', class: "content-container", ref: el => (this.contentContainer = el) }, this.renderInput(), this.maxlength ? this.renderMaxLength() : '', renderMessages(this))));
285
+ return (h("div", { key: 'cf78eaf71ab6e2491c844b2dfc724ea7d9b89846', class: this.wrapperClasses }, renderLabel(this), h("div", { key: 'b8a6225e3aef3beeb8b8540e8421fc998610b818', class: "content-container", ref: el => (this.contentContainer = el) }, this.renderInput(), this.maxlength ? this.renderMaxLength() : '', renderMessages(this))));
286
286
  }
287
287
  get hostElement() { return this; }
288
288
  static get watchers() { return {
@@ -55,9 +55,9 @@ const TectonTabPane$1 = /*@__PURE__*/ proxyCustomElement(class TectonTabPane ext
55
55
  // #endregion
56
56
  // #region Render Methods
57
57
  render() {
58
- return (h("div", { key: '7001a993b32e67644b26c0af1bd594c6e0bb9fd3', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, this.selected && this.provided !== undefined && !this.provided && (h("div", { key: '1e2cac90e08e633e5dd23ca2b1e7378ab77c1c03' }, h("slot", { key: '99ab7a254419bc59b7ee19afde9ad1d332d437be', name: "loading-wrapper" }), h("iframe", { key: '996630a2030f32a1d43cb574461b5c105934cec6', hidden: true, name: this.moduleId, scrolling: "no", src: this.showForm && this.authPayload.length ? '' : this.url || '', "data-module-id": this.moduleId, style: this.minHeight ? { minHeight: this.minHeight } : null, onLoad: this.onIFrameLoad, title: this.iframeTitle, allow: "geolocation; camera" }), this._showForm && this.authPayload ? (h("form", { hidden: true, method: "post", action: this.url, target: this.moduleId, encType: "multipart/form-data" }, this.authPayload.map(element => {
58
+ return (h("div", { key: '58a67b201accff4cdb0cf19172f3a91a6c8effd5', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, this.selected && this.provided !== undefined && !this.provided && (h("div", { key: '14ea6040e9a7c5c019d982e3f9e84227f0144d19' }, h("slot", { key: '2f23163c833f14e5b787f35d7af3fe162a6d3fb7', name: "loading-wrapper" }), h("iframe", { key: '9bdaf2ad2df5d0a0763aae906c7227d7e05052b7', hidden: true, name: this.moduleId, scrolling: "no", src: this.showForm && this.authPayload.length ? '' : this.url || '', "data-module-id": this.moduleId, style: this.minHeight ? { minHeight: this.minHeight } : null, onLoad: this.onIFrameLoad, title: this.iframeTitle, allow: "geolocation; camera" }), this._showForm && this.authPayload ? (h("form", { hidden: true, method: "post", action: this.url, target: this.moduleId, encType: "multipart/form-data" }, this.authPayload.map(element => {
59
59
  return (h("input", { type: "hidden", value: element.value, name: element.key }));
60
- }))) : (''))), h("div", { key: '4f8b8a32f0d6f1b5102745845ae83f04d913964d', class: "slot-wrapper", hidden: this.selected && this.provided !== undefined && !this.provided }, h("slot", { key: '2bbda438ddd7355fedc37e04ec7707736ddb1f03' }))));
60
+ }))) : (''))), h("div", { key: '8aeea96ffde0dfb337dd84e0346951d075b4d233', class: "slot-wrapper", hidden: this.selected && this.provided !== undefined && !this.provided }, h("slot", { key: 'c81c5ad3f2c93436284fe928be54b58836ff0fff' }))));
61
61
  }
62
62
  get hostElement() { return this; }
63
63
  static get watchers() { return {