q2-tecton-elements 1.50.1 → 1.50.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 (417) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +73 -70
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-64d8b839.js → index-799a5634.js} +1 -21
  4. package/dist/cjs/index-799a5634.js.map +1 -0
  5. package/dist/cjs/{index-43010ce4.js → index-f69742cf.js} +1 -1
  6. package/dist/cjs/{index-43010ce4.js.map → index-f69742cf.js.map} +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  9. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  10. package/dist/cjs/q2-badge_7.cjs.entry.js +4 -4
  11. package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
  12. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  14. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  16. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  17. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  18. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  23. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-item.cjs.entry.js +2 -2
  27. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-list.cjs.entry.js +2 -2
  29. package/dist/cjs/q2-loc.cjs.entry.js +2 -2
  30. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  31. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  32. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  33. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
  36. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  37. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
  40. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  41. package/dist/cjs/q2-select.cjs.entry.js +97 -19
  42. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  43. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  45. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-tag.cjs.entry.js +2 -2
  47. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  48. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  49. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  50. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  51. package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
  52. package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -1
  53. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  54. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
  55. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
  56. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  57. package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
  58. package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -1
  59. package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
  60. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
  61. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  62. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
  63. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
  64. package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
  65. package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
  66. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  67. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  68. package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
  69. package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -1
  70. package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -1
  71. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +2 -2
  72. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
  73. package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -1
  74. package/dist/collection/components/q2-card/q2-card.js.map +1 -1
  75. package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -1
  76. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  77. package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -1
  78. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  79. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
  80. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -1
  81. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -1
  82. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  83. package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
  84. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
  85. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  86. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
  87. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -1
  88. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  89. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  90. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
  91. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  92. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -1
  93. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
  94. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -1
  95. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  96. package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
  97. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
  98. package/dist/collection/components/q2-data-table/q2-data-table.js +7 -7
  99. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  100. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
  101. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  102. package/dist/collection/components/q2-detail/q2-detail.js.map +1 -1
  103. package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -1
  104. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  105. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +1 -13
  106. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  107. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  108. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
  109. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  110. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -1
  111. package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
  112. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  113. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
  114. package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
  115. package/dist/collection/components/q2-input/formatting/alphanumeric.js.map +1 -1
  116. package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
  117. package/dist/collection/components/q2-input/formatting/credit-card.spec.js.map +1 -1
  118. package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
  119. package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
  120. package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
  121. package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
  122. package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
  123. package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
  124. package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
  125. package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
  126. package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
  127. package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
  128. package/dist/collection/components/q2-input/q2-input.js +2 -2
  129. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  130. package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -1
  131. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
  132. package/dist/collection/components/q2-item/q2-item.js +1 -1
  133. package/dist/collection/components/q2-item/q2-item.js.map +1 -1
  134. package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -1
  135. package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -1
  136. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  137. package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
  138. package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -1
  139. package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -1
  140. package/dist/collection/components/q2-list/q2-list.js +1 -1
  141. package/dist/collection/components/q2-list/q2-list.js.map +1 -1
  142. package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -1
  143. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  144. package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js.map +1 -1
  145. package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
  146. package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -1
  147. package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -1
  148. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  149. package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
  150. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
  151. package/dist/collection/components/q2-message/q2-message.js +1 -1
  152. package/dist/collection/components/q2-message/q2-message.js.map +1 -1
  153. package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -1
  154. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  155. package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
  156. package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -1
  157. package/dist/collection/components/q2-option/q2-option.js +1 -1
  158. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  159. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
  160. package/dist/collection/components/q2-option-list/q2-option-list.js +2 -2
  161. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  162. package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -1
  163. package/dist/collection/components/q2-pagination/q2-pagination.js +2 -2
  164. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  165. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +1 -0
  166. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
  167. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  168. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  169. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +1 -1
  170. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  171. package/dist/collection/components/q2-popover/q2-popover.css +18 -10
  172. package/dist/collection/components/q2-popover/q2-popover.js +73 -69
  173. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  174. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js +1 -34
  175. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
  176. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +743 -435
  177. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
  178. package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
  179. package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -1
  180. package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
  181. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -1
  182. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  183. package/dist/collection/components/q2-relative-time/q2-relative-time.js.map +1 -1
  184. package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -1
  185. package/dist/collection/components/q2-section/q2-section.js +2 -2
  186. package/dist/collection/components/q2-section/q2-section.js.map +1 -1
  187. package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -1
  188. package/dist/collection/components/q2-select/q2-select.js +135 -21
  189. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  190. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +1 -1
  191. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  192. package/dist/collection/components/q2-select/test/q2-select-test.spec.js +412 -0
  193. package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -0
  194. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  195. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  196. package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -1
  197. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +2 -2
  198. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  199. package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -1
  200. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  201. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  202. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
  203. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  204. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  205. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -1
  206. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -1
  207. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  208. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js.map +1 -1
  209. package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -1
  210. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  211. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  212. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +6 -1
  213. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  214. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  215. package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
  216. package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -1
  217. package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
  218. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -1
  219. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane-types.js.map +1 -1
  220. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  221. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js.map +1 -1
  222. package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -1
  223. package/dist/collection/index.js.map +1 -1
  224. package/dist/collection/utils/action-sheet.js.map +1 -1
  225. package/dist/collection/utils/charting.js.map +1 -1
  226. package/dist/collection/utils/helpers.js.map +1 -1
  227. package/dist/collection/utils/index.js.map +1 -1
  228. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
  229. package/dist/collection/utils/test/index.spec.js.map +1 -1
  230. package/dist/components/index2.js +1 -20
  231. package/dist/components/index2.js.map +1 -1
  232. package/dist/components/q2-action-sheet.js +1 -1
  233. package/dist/components/q2-avatar2.js +1 -1
  234. package/dist/components/q2-carousel-pane.js +2 -2
  235. package/dist/components/q2-chart-area.js +1 -1
  236. package/dist/components/q2-chart-bar.js +1 -1
  237. package/dist/components/q2-chart-donut.js +1 -1
  238. package/dist/components/q2-currency.js +1 -1
  239. package/dist/components/q2-detail.js +1 -1
  240. package/dist/components/q2-input2.js +1 -1
  241. package/dist/components/q2-item.js +1 -1
  242. package/dist/components/q2-legend2.js +1 -1
  243. package/dist/components/q2-list.js +1 -1
  244. package/dist/components/q2-loc.js +1 -1
  245. package/dist/components/q2-message2.js +1 -1
  246. package/dist/components/q2-month-picker.js +2 -2
  247. package/dist/components/q2-optgroup2.js +1 -1
  248. package/dist/components/q2-option2.js +1 -1
  249. package/dist/components/q2-pagination.js +2 -2
  250. package/dist/components/q2-pill.js +1 -1
  251. package/dist/components/q2-popover2.js +72 -69
  252. package/dist/components/q2-popover2.js.map +1 -1
  253. package/dist/components/q2-relative-time.js +1 -1
  254. package/dist/components/q2-section.js +2 -2
  255. package/dist/components/q2-select2.js +101 -22
  256. package/dist/components/q2-select2.js.map +1 -1
  257. package/dist/components/q2-stepper-vertical.js +1 -1
  258. package/dist/components/q2-stepper.js +1 -1
  259. package/dist/components/q2-tab-container.js +1 -1
  260. package/dist/components/q2-tab-pane.js +1 -1
  261. package/dist/components/q2-tag.js +1 -1
  262. package/dist/components/q2-textarea.js +1 -1
  263. package/dist/components/tecton-tab-pane.js +2 -2
  264. package/dist/esm/click-elsewhere_2.entry.js +73 -70
  265. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  266. package/dist/esm/{index-c6d74f10.js → index-3184c760.js} +1 -1
  267. package/dist/esm/{index-c6d74f10.js.map → index-3184c760.js.map} +1 -1
  268. package/dist/esm/{index-4a80972c.js → index-c774e1e4.js} +2 -21
  269. package/dist/esm/index-c774e1e4.js.map +1 -0
  270. package/dist/esm/loader.js +1 -1
  271. package/dist/esm/q2-action-sheet.entry.js +2 -2
  272. package/dist/esm/q2-avatar.entry.js +1 -1
  273. package/dist/esm/q2-badge_7.entry.js +4 -4
  274. package/dist/esm/q2-calendar.entry.js +2 -2
  275. package/dist/esm/q2-card.entry.js +1 -1
  276. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  277. package/dist/esm/q2-carousel.entry.js +1 -1
  278. package/dist/esm/q2-chart-area.entry.js +2 -2
  279. package/dist/esm/q2-chart-bar.entry.js +2 -2
  280. package/dist/esm/q2-chart-donut.entry.js +2 -2
  281. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  282. package/dist/esm/q2-checkbox.entry.js +1 -1
  283. package/dist/esm/q2-currency.entry.js +1 -1
  284. package/dist/esm/q2-data-table.entry.js +1 -1
  285. package/dist/esm/q2-detail.entry.js +2 -2
  286. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  287. package/dist/esm/q2-dropdown.entry.js +1 -1
  288. package/dist/esm/q2-editable-field.entry.js +1 -1
  289. package/dist/esm/q2-item.entry.js +2 -2
  290. package/dist/esm/q2-legend.entry.js +1 -1
  291. package/dist/esm/q2-list.entry.js +2 -2
  292. package/dist/esm/q2-loc.entry.js +2 -2
  293. package/dist/esm/q2-message.entry.js +2 -2
  294. package/dist/esm/q2-month-picker.entry.js +3 -3
  295. package/dist/esm/q2-optgroup.entry.js +2 -2
  296. package/dist/esm/q2-option-list.entry.js +1 -1
  297. package/dist/esm/q2-option.entry.js +1 -1
  298. package/dist/esm/q2-pagination.entry.js +3 -3
  299. package/dist/esm/q2-pill.entry.js +2 -2
  300. package/dist/esm/q2-radio-group.entry.js +1 -1
  301. package/dist/esm/q2-radio.entry.js +1 -1
  302. package/dist/esm/q2-relative-time.entry.js +3 -3
  303. package/dist/esm/q2-section.entry.js +3 -3
  304. package/dist/esm/q2-select.entry.js +98 -20
  305. package/dist/esm/q2-select.entry.js.map +1 -1
  306. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  307. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  308. package/dist/esm/q2-stepper.entry.js +2 -2
  309. package/dist/esm/q2-tag.entry.js +2 -2
  310. package/dist/esm/q2-tecton-elements.js +1 -1
  311. package/dist/esm/q2-textarea.entry.js +2 -2
  312. package/dist/esm/q2-tooltip.entry.js +1 -1
  313. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  314. package/dist/jest.setup.js +22 -0
  315. package/dist/jest.setup.js.map +1 -0
  316. package/dist/q2-tecton-elements/{p-77272c4c.entry.js → p-0106e160.entry.js} +2 -2
  317. package/dist/q2-tecton-elements/{p-cb3f48de.entry.js → p-17a925c1.entry.js} +2 -2
  318. package/dist/q2-tecton-elements/{p-9a1a4bc0.js → p-19784a09.js} +2 -2
  319. package/dist/q2-tecton-elements/p-19784a09.js.map +1 -0
  320. package/dist/q2-tecton-elements/{p-34856c71.entry.js → p-1d38ba53.entry.js} +2 -2
  321. package/dist/q2-tecton-elements/{p-b72fd065.entry.js → p-2e26e06d.entry.js} +2 -2
  322. package/dist/q2-tecton-elements/{p-661ed976.entry.js → p-42e791cd.entry.js} +2 -2
  323. package/dist/q2-tecton-elements/{p-6e6d9793.entry.js → p-4498cd2f.entry.js} +2 -2
  324. package/dist/q2-tecton-elements/{p-376a0589.entry.js → p-531c96c8.entry.js} +2 -2
  325. package/dist/q2-tecton-elements/{p-395904b4.entry.js → p-68810402.entry.js} +2 -2
  326. package/dist/q2-tecton-elements/{p-6b7c53a8.entry.js → p-73cbf3bd.entry.js} +2 -2
  327. package/dist/q2-tecton-elements/{p-34696e3f.entry.js → p-7a5f1418.entry.js} +2 -2
  328. package/dist/q2-tecton-elements/{p-5d936af5.entry.js → p-80d6991d.entry.js} +2 -2
  329. package/dist/q2-tecton-elements/{p-2fcaf2d6.entry.js → p-810edec0.entry.js} +2 -2
  330. package/dist/q2-tecton-elements/{p-4116579f.entry.js → p-87b84009.entry.js} +2 -2
  331. package/dist/q2-tecton-elements/{p-8a4b106d.entry.js → p-8cb85069.entry.js} +2 -2
  332. package/dist/q2-tecton-elements/{p-2ca6d44f.entry.js → p-9ffc7859.entry.js} +2 -2
  333. package/dist/q2-tecton-elements/{p-074ae80c.entry.js → p-a41da37c.entry.js} +2 -2
  334. package/dist/q2-tecton-elements/{p-2c26295e.entry.js → p-ab35aa27.entry.js} +2 -2
  335. package/dist/q2-tecton-elements/{p-d2e1631a.entry.js → p-acba752c.entry.js} +2 -2
  336. package/dist/q2-tecton-elements/{p-0a3a804a.entry.js → p-b0ef6f43.entry.js} +2 -2
  337. package/dist/q2-tecton-elements/{p-403bf3d4.entry.js → p-b18c846d.entry.js} +2 -2
  338. package/dist/q2-tecton-elements/{p-c81d299a.entry.js → p-b22410f6.entry.js} +2 -2
  339. package/dist/q2-tecton-elements/{p-ce4e6b41.entry.js → p-b8aa76a0.entry.js} +2 -2
  340. package/dist/q2-tecton-elements/{p-ad998f71.entry.js → p-ba25f9a1.entry.js} +2 -2
  341. package/dist/q2-tecton-elements/{p-cf966a0f.entry.js → p-bed61b18.entry.js} +2 -2
  342. package/dist/q2-tecton-elements/{p-6237c775.entry.js → p-c0e76a27.entry.js} +2 -2
  343. package/dist/q2-tecton-elements/{p-58cafc0d.entry.js → p-c1790396.entry.js} +2 -2
  344. package/dist/q2-tecton-elements/{p-adec9275.entry.js → p-c59ad989.entry.js} +2 -2
  345. package/dist/q2-tecton-elements/{p-3c7be0bb.entry.js → p-cbb02f6f.entry.js} +2 -2
  346. package/dist/q2-tecton-elements/{p-c0c658d1.entry.js → p-cd460504.entry.js} +2 -2
  347. package/dist/q2-tecton-elements/p-d34fff19.entry.js +2 -0
  348. package/dist/q2-tecton-elements/p-d34fff19.entry.js.map +1 -0
  349. package/dist/q2-tecton-elements/{p-0a1dff75.entry.js → p-d3f700fe.entry.js} +2 -2
  350. package/dist/q2-tecton-elements/{p-3b0d3cd4.entry.js → p-d5a11ae4.entry.js} +2 -2
  351. package/dist/q2-tecton-elements/p-e0675a03.entry.js +2 -0
  352. package/dist/q2-tecton-elements/p-e0675a03.entry.js.map +1 -0
  353. package/dist/q2-tecton-elements/{p-072c5877.entry.js → p-e098781c.entry.js} +2 -2
  354. package/dist/q2-tecton-elements/{p-fffb54e9.entry.js → p-ec86e604.entry.js} +2 -2
  355. package/dist/q2-tecton-elements/{p-77a0cc0c.entry.js → p-f0aca80a.entry.js} +2 -2
  356. package/dist/q2-tecton-elements/{p-721365be.js → p-f1e887f5.js} +1 -1
  357. package/dist/q2-tecton-elements/{p-8111547c.entry.js → p-f321dc16.entry.js} +2 -2
  358. package/dist/q2-tecton-elements/{p-45407ecc.entry.js → p-f409b668.entry.js} +2 -2
  359. package/dist/q2-tecton-elements/{p-adf0a7c9.entry.js → p-fb65b8f3.entry.js} +2 -2
  360. package/dist/q2-tecton-elements/{p-a7a0b8aa.entry.js → p-fb72d692.entry.js} +2 -2
  361. package/dist/q2-tecton-elements/{p-259b728a.entry.js → p-fcb11cea.entry.js} +2 -2
  362. package/dist/q2-tecton-elements/{p-cf32b5db.entry.js → p-fe61cc4c.entry.js} +2 -2
  363. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  364. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  365. package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
  366. package/dist/types/components/q2-popover/q2-popover.d.ts +5 -5
  367. package/dist/types/components/q2-select/q2-select.d.ts +24 -0
  368. package/dist/types/components.d.ts +8 -0
  369. package/package.json +3 -3
  370. package/dist/cjs/index-64d8b839.js.map +0 -1
  371. package/dist/esm/index-4a80972c.js.map +0 -1
  372. package/dist/q2-tecton-elements/p-9a1a4bc0.js.map +0 -1
  373. package/dist/q2-tecton-elements/p-aa57b657.entry.js +0 -2
  374. package/dist/q2-tecton-elements/p-aa57b657.entry.js.map +0 -1
  375. package/dist/q2-tecton-elements/p-dc77bf66.entry.js +0 -2
  376. package/dist/q2-tecton-elements/p-dc77bf66.entry.js.map +0 -1
  377. /package/dist/q2-tecton-elements/{p-77272c4c.entry.js.map → p-0106e160.entry.js.map} +0 -0
  378. /package/dist/q2-tecton-elements/{p-cb3f48de.entry.js.map → p-17a925c1.entry.js.map} +0 -0
  379. /package/dist/q2-tecton-elements/{p-34856c71.entry.js.map → p-1d38ba53.entry.js.map} +0 -0
  380. /package/dist/q2-tecton-elements/{p-b72fd065.entry.js.map → p-2e26e06d.entry.js.map} +0 -0
  381. /package/dist/q2-tecton-elements/{p-661ed976.entry.js.map → p-42e791cd.entry.js.map} +0 -0
  382. /package/dist/q2-tecton-elements/{p-6e6d9793.entry.js.map → p-4498cd2f.entry.js.map} +0 -0
  383. /package/dist/q2-tecton-elements/{p-376a0589.entry.js.map → p-531c96c8.entry.js.map} +0 -0
  384. /package/dist/q2-tecton-elements/{p-395904b4.entry.js.map → p-68810402.entry.js.map} +0 -0
  385. /package/dist/q2-tecton-elements/{p-6b7c53a8.entry.js.map → p-73cbf3bd.entry.js.map} +0 -0
  386. /package/dist/q2-tecton-elements/{p-34696e3f.entry.js.map → p-7a5f1418.entry.js.map} +0 -0
  387. /package/dist/q2-tecton-elements/{p-5d936af5.entry.js.map → p-80d6991d.entry.js.map} +0 -0
  388. /package/dist/q2-tecton-elements/{p-2fcaf2d6.entry.js.map → p-810edec0.entry.js.map} +0 -0
  389. /package/dist/q2-tecton-elements/{p-4116579f.entry.js.map → p-87b84009.entry.js.map} +0 -0
  390. /package/dist/q2-tecton-elements/{p-8a4b106d.entry.js.map → p-8cb85069.entry.js.map} +0 -0
  391. /package/dist/q2-tecton-elements/{p-2ca6d44f.entry.js.map → p-9ffc7859.entry.js.map} +0 -0
  392. /package/dist/q2-tecton-elements/{p-074ae80c.entry.js.map → p-a41da37c.entry.js.map} +0 -0
  393. /package/dist/q2-tecton-elements/{p-2c26295e.entry.js.map → p-ab35aa27.entry.js.map} +0 -0
  394. /package/dist/q2-tecton-elements/{p-d2e1631a.entry.js.map → p-acba752c.entry.js.map} +0 -0
  395. /package/dist/q2-tecton-elements/{p-0a3a804a.entry.js.map → p-b0ef6f43.entry.js.map} +0 -0
  396. /package/dist/q2-tecton-elements/{p-403bf3d4.entry.js.map → p-b18c846d.entry.js.map} +0 -0
  397. /package/dist/q2-tecton-elements/{p-c81d299a.entry.js.map → p-b22410f6.entry.js.map} +0 -0
  398. /package/dist/q2-tecton-elements/{p-ce4e6b41.entry.js.map → p-b8aa76a0.entry.js.map} +0 -0
  399. /package/dist/q2-tecton-elements/{p-ad998f71.entry.js.map → p-ba25f9a1.entry.js.map} +0 -0
  400. /package/dist/q2-tecton-elements/{p-cf966a0f.entry.js.map → p-bed61b18.entry.js.map} +0 -0
  401. /package/dist/q2-tecton-elements/{p-6237c775.entry.js.map → p-c0e76a27.entry.js.map} +0 -0
  402. /package/dist/q2-tecton-elements/{p-58cafc0d.entry.js.map → p-c1790396.entry.js.map} +0 -0
  403. /package/dist/q2-tecton-elements/{p-adec9275.entry.js.map → p-c59ad989.entry.js.map} +0 -0
  404. /package/dist/q2-tecton-elements/{p-3c7be0bb.entry.js.map → p-cbb02f6f.entry.js.map} +0 -0
  405. /package/dist/q2-tecton-elements/{p-c0c658d1.entry.js.map → p-cd460504.entry.js.map} +0 -0
  406. /package/dist/q2-tecton-elements/{p-0a1dff75.entry.js.map → p-d3f700fe.entry.js.map} +0 -0
  407. /package/dist/q2-tecton-elements/{p-3b0d3cd4.entry.js.map → p-d5a11ae4.entry.js.map} +0 -0
  408. /package/dist/q2-tecton-elements/{p-072c5877.entry.js.map → p-e098781c.entry.js.map} +0 -0
  409. /package/dist/q2-tecton-elements/{p-fffb54e9.entry.js.map → p-ec86e604.entry.js.map} +0 -0
  410. /package/dist/q2-tecton-elements/{p-77a0cc0c.entry.js.map → p-f0aca80a.entry.js.map} +0 -0
  411. /package/dist/q2-tecton-elements/{p-721365be.js.map → p-f1e887f5.js.map} +0 -0
  412. /package/dist/q2-tecton-elements/{p-8111547c.entry.js.map → p-f321dc16.entry.js.map} +0 -0
  413. /package/dist/q2-tecton-elements/{p-45407ecc.entry.js.map → p-f409b668.entry.js.map} +0 -0
  414. /package/dist/q2-tecton-elements/{p-adf0a7c9.entry.js.map → p-fb65b8f3.entry.js.map} +0 -0
  415. /package/dist/q2-tecton-elements/{p-a7a0b8aa.entry.js.map → p-fb72d692.entry.js.map} +0 -0
  416. /package/dist/q2-tecton-elements/{p-259b728a.entry.js.map → p-fcb11cea.entry.js.map} +0 -0
  417. /package/dist/q2-tecton-elements/{p-cf32b5db.entry.js.map → p-fe61cc4c.entry.js.map} +0 -0
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-14c3693c.js');
6
- const index$1 = require('./index-64d8b839.js');
6
+ const index$1 = require('./index-799a5634.js');
7
7
 
8
8
  const ClickElsewhere = class {
9
9
  constructor(hostRef) {
@@ -92,7 +92,7 @@ const ClickElsewhere = class {
92
92
  get hostElement() { return index.getElement(this); }
93
93
  };
94
94
 
95
- const q2PopoverCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.container{display:none}.show{display:block;position:fixed;z-index:var(--tct-popover-z-index, 50);margin:0;padding:0;overflow:auto;background:var(--tct-popover-background, var(--app-white, #ffffff));color:var(--tct-popover-font-color, var(--t-text, #4d4d4d));min-width:var(--tct-popover-min-width, 135px);margin-block:var(--tct-popover-margin-block, 0);box-shadow:var(--tct-popover-box-shadow, var(--app-shadow-1, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)));border-width:var(--tct-popover-border-width, 0);border-style:solid;border-color:var(--tct-popover-border-color, transparent);border-radius:var(--tct-popover-border-radius, 0);max-height:var(--comp-pop-max-height);left:var(--comp-pop-left);opacity:var(--comp-pop-opacity, 0);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 4px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}:host([block]) .show{right:unset;width:var(--comp-pop-width);min-width:var(--tct-popover-min-width, unset)}:host([align=left]) .show{left:var(--comp-pop-left);right:unset}:host([align=right]) .show{right:var(--comp-pop-right);left:unset}.show.down{top:var(--tct-popover-top, var(--comp-pop-top));bottom:unset}.show.up{top:unset;bottom:var(--comp-pop-bottom)}.show.legacy{position:absolute}.show::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.show::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.show::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}click-elsewhere{position:relative;display:block}";
95
+ const q2PopoverCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.legacy.container{display:none}.legacy.show{display:block;z-index:var(--tct-popover-z-index, 50)}:popover-open,.show{position:absolute;margin:0;padding:0;overflow:auto;background:var(--tct-popover-background, var(--app-white, #ffffff));color:var(--tct-popover-font-color, var(--t-text, #4d4d4d));min-width:var(--tct-popover-min-width, 135px);margin-block:var(--tct-popover-margin-block, 0);box-shadow:var(--tct-popover-box-shadow, var(--app-shadow-1, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)));border-width:var(--tct-popover-border-width, 0);border-style:solid;border-color:var(--tct-popover-border-color, transparent);border-radius:var(--tct-popover-border-radius, 0);max-height:var(--comp-pop-max-height);left:var(--comp-pop-left);opacity:var(--comp-pop-opacity, 0);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 4px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}:popover-open.block,.show.block{right:unset;width:var(--comp-pop-width);min-width:var(--tct-popover-min-width, unset)}:popover-open.left,.show.left{left:var(--comp-pop-left);right:unset}:popover-open.right,.show.right{right:var(--comp-pop-right);left:unset}:popover-open.down,.show.down{top:var(--tct-popover-top, var(--comp-pop-top));bottom:unset}:popover-open.up,.show.up{top:unset;bottom:var(--comp-pop-bottom)}:popover-open::-webkit-scrollbar,.show::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}:popover-open::-webkit-scrollbar-thumb,.show::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}:popover-open::-webkit-scrollbar-track,.show::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}click-elsewhere{position:relative;display:block}";
96
96
  const Q2PopoverStyle0 = q2PopoverCss;
97
97
 
98
98
  const Q2Popover = class {
@@ -103,13 +103,15 @@ const Q2Popover = class {
103
103
  * The number of pixels to leave between the popover and the edge of the viewport
104
104
  */
105
105
  this.displayBuffer = 10;
106
- /** remove when Popover API is supported in iOS */
107
106
  this.orientationChanged = false;
108
107
  this.handleMinHeight = () => {
109
108
  if (this.minHeight) {
110
109
  index$1.handleDeprecationWarning(this, 'minHeight', 'prop');
111
110
  }
112
111
  };
112
+ this.handlePopoverToggleEvent = (event) => {
113
+ this.popoverStateChanged.emit({ open: event.newState === 'open' });
114
+ };
113
115
  this.setAbsoluteCSSProperties = async () => {
114
116
  const { controlElement, containerElement, currentDirection, align } = this;
115
117
  if (align === 'right') {
@@ -134,25 +136,42 @@ const Q2Popover = class {
134
136
  await index$1.waitForNextPaint();
135
137
  containerElement.style.setProperty('--comp-pop-opacity', '1');
136
138
  };
137
- this.setFixedCSSProperties = async () => {
138
- var _a, _b;
139
- const { controlElement, containerElement, currentDirection, rootElementRect } = this;
139
+ this.setPopoverAPICSSProperties = async () => {
140
+ var _a, _b, _c, _d, _e, _f;
141
+ const { controlElement, containerElement, currentDirection, isModule, align } = this;
140
142
  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 : {
141
143
  top: 0,
142
144
  bottom: 0,
143
145
  left: 0,
144
146
  right: 0,
145
147
  };
146
- const popoverLeft = controlLeft - rootElementRect.left;
148
+ const popoverLeft = controlLeft;
149
+ const popoverRight = ((_c = window === null || window === void 0 ? void 0 : window.visualViewport) === null || _c === void 0 ? void 0 : _c.width) - controlRight;
150
+ if (align === 'right') {
151
+ containerElement.style.setProperty('--comp-pop-right', `${popoverRight - window.scrollX}px`);
152
+ containerElement.style.setProperty('--comp-pop-left', 'unset');
153
+ }
154
+ else {
155
+ containerElement.style.setProperty('--comp-pop-left', `${popoverLeft + window.scrollX}px`);
156
+ containerElement.style.setProperty('--comp-pop-right', 'unset');
157
+ }
147
158
  if (this.block)
148
- containerElement.style.setProperty('--comp-pop-width', `${controlElement.offsetWidth || 0}px`);
149
- containerElement.style.setProperty('--comp-pop-left', `${popoverLeft}px`);
150
- containerElement.style.setProperty('--comp-pop-right', `${rootElementRect.width + rootElementRect.left - controlRight}px`);
159
+ containerElement.style.setProperty('--comp-pop-width', `${(controlElement === null || controlElement === void 0 ? void 0 : controlElement.offsetWidth) || 0}px`);
151
160
  if (currentDirection === 'up') {
152
- containerElement.style.setProperty('--comp-pop-bottom', `${rootElementRect.height + rootElementRect.top - controlTop}px`);
161
+ if (isModule) {
162
+ containerElement.style.setProperty('--comp-pop-bottom', `${window.innerHeight - controlTop}px`);
163
+ }
164
+ else {
165
+ containerElement.style.setProperty('--comp-pop-bottom', `${window.innerHeight - controlTop - ((_d = window === null || window === void 0 ? void 0 : window.visualViewport) === null || _d === void 0 ? void 0 : _d.offsetTop) - window.scrollY}px`);
166
+ }
153
167
  }
154
168
  if (currentDirection === 'down') {
155
- containerElement.style.setProperty('--comp-pop-top', `${controlBottom - rootElementRect.top}px`);
169
+ if (isModule) {
170
+ containerElement.style.setProperty('--comp-pop-top', `${controlBottom}px`);
171
+ }
172
+ else {
173
+ containerElement.style.setProperty('--comp-pop-top', `${controlBottom + ((_f = (_e = window === null || window === void 0 ? void 0 : window.visualViewport) === null || _e === void 0 ? void 0 : _e.offsetTop) !== null && _f !== void 0 ? _f : 0) + window.scrollY}px`);
174
+ }
156
175
  }
157
176
  // Wait for one paint to prevent layout thrashing
158
177
  await index$1.waitForNextPaint();
@@ -169,7 +188,7 @@ const Q2Popover = class {
169
188
  };
170
189
  this.currentDirection = undefined;
171
190
  this.show = false;
172
- this.align = undefined;
191
+ this.align = 'left';
173
192
  this.block = undefined;
174
193
  this.controlElement = undefined;
175
194
  this.direction = undefined;
@@ -181,9 +200,21 @@ const Q2Popover = class {
181
200
  // #region Component Lifecycle Events
182
201
  disconnectedCallback() {
183
202
  this.removeViewportListeners();
203
+ this.containerElement.removeEventListener('toggle', this.handlePopoverToggleEvent);
204
+ this.containerElement = null;
205
+ this.contentElement = null;
206
+ this.controlElement = null;
207
+ }
208
+ componentWillLoad() {
209
+ if (!this.supportsPopoverAPI) {
210
+ console.warn('The Popover API is not supported in this browser. Please update your browser to the latest version. The component will use legacy mode.');
211
+ this.mode = 'legacy';
212
+ }
184
213
  }
185
214
  componentDidLoad() {
186
215
  this.handleMinHeight();
216
+ if (this.supportsPopoverAPI)
217
+ this.containerElement.addEventListener('toggle', this.handlePopoverToggleEvent);
187
218
  if (this.open)
188
219
  this.determinePopDirection();
189
220
  }
@@ -210,7 +241,6 @@ const Q2Popover = class {
210
241
  this.handleMinHeight();
211
242
  }
212
243
  async openChanged(open) {
213
- this.setRootElement();
214
244
  this.popoverStateChanged.emit({ open });
215
245
  if (open) {
216
246
  this.addViewportListeners();
@@ -219,14 +249,25 @@ const Q2Popover = class {
219
249
  else {
220
250
  this.removeViewportListeners();
221
251
  this.currentDirection = undefined;
222
- this.show = false;
252
+ if (this.mode === 'legacy' || !this.supportsPopoverAPI) {
253
+ this.show = false;
254
+ }
255
+ else {
256
+ this.containerElement.hidePopover();
257
+ }
223
258
  await index$1.waitForNextPaint();
224
259
  this.clearCSSProperties();
225
260
  }
226
261
  }
227
262
  // #endregion
228
263
  // #region Local Methods
229
- get actualDirection() {
264
+ get isModule() {
265
+ var _a, _b;
266
+ const isIframe = window !== window.top;
267
+ const hasPlatformDimensions = Object.keys((_b = (_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.platformDimensions) !== null && _b !== void 0 ? _b : {}).length > 0;
268
+ return isIframe && hasPlatformDimensions;
269
+ }
270
+ get providedDirection() {
230
271
  const { direction } = this;
231
272
  switch (direction) {
232
273
  case 'up':
@@ -236,20 +277,16 @@ const Q2Popover = class {
236
277
  return undefined;
237
278
  }
238
279
  }
239
- get isModule() {
240
- var _a, _b;
241
- const isIframe = window !== window.top;
242
- const hasPlatformDimensions = Object.keys((_b = (_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.platformDimensions) !== null && _b !== void 0 ? _b : {}).length > 0;
243
- return isIframe && hasPlatformDimensions;
280
+ get supportsPopoverAPI() {
281
+ return Object.hasOwn(HTMLElement.prototype, 'popover');
244
282
  }
245
283
  addViewportListeners() {
246
284
  var _a;
247
285
  window.addEventListener('resize', this.viewPortOrientationChanged);
248
- // #region remove when Popover API is supported in iOS
286
+ visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.addEventListener('resize', this.viewPortChanged);
249
287
  window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });
250
- (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.addEventListener('change', this.viewPortOrientationChanged);
288
+ (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.addEventListener('orientationchange', this.viewPortOrientationChanged);
251
289
  window.addEventListener('orientationchange', this.viewPortOrientationChanged);
252
- // #endregion
253
290
  }
254
291
  clearCSSProperties() {
255
292
  this.containerElement.style.removeProperty('--comp-pop-max-height');
@@ -262,7 +299,7 @@ const Q2Popover = class {
262
299
  }
263
300
  async determinePopDirection() {
264
301
  var _a, _b, _c;
265
- const { containerElement, controlElement, actualDirection, displayBuffer } = this;
302
+ const { containerElement, controlElement, providedDirection, displayBuffer } = this;
266
303
  if (containerElement)
267
304
  containerElement.style.maxHeight = null;
268
305
  await index$1.waitForNextPaint();
@@ -297,7 +334,7 @@ const Q2Popover = class {
297
334
  const shouldUpdateMaxHeight = !containerElement.style.getPropertyValue('--comp-pop-max-height') || this.orientationChanged;
298
335
  // we do not want to constantly update the max-height after an orientation change, so we switch this back to false
299
336
  this.orientationChanged = false;
300
- const currentOrDetermineDirection = this.currentDirection || actualDirection || directionWithMostSpace;
337
+ const currentOrDetermineDirection = this.currentDirection || providedDirection || directionWithMostSpace;
301
338
  switch (currentOrDetermineDirection) {
302
339
  case 'up':
303
340
  if (shouldUpdateMaxHeight) {
@@ -316,72 +353,38 @@ const Q2Popover = class {
316
353
  removeViewportListeners() {
317
354
  var _a;
318
355
  window.removeEventListener('resize', this.viewPortOrientationChanged);
319
- // #region remove when Popover API is supported in iOS
320
- window.removeEventListener('scroll', this.viewPortChanged);
356
+ visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.removeEventListener('resize', this.viewPortChanged);
357
+ window.removeEventListener('scroll', this.viewPortChanged, { capture: true });
321
358
  (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.removeEventListener('orientationchange', this.viewPortOrientationChanged);
322
359
  window.removeEventListener('orientationchange', this.viewPortOrientationChanged);
323
- // #endregion
324
360
  }
325
361
  setDirectionAndShow(direction) {
326
- this.setRootElement();
327
362
  // Due to some runtime inconsistency across devices/browsers we need to add one more check here because the
328
363
  // popover can be closed between the time the popover is opened and the time the direction is determined
329
364
  const isOpen = this.open;
330
365
  if (!isOpen)
331
366
  return;
332
367
  this.currentDirection = direction;
333
- this.show = true;
334
- if (this.mode === 'legacy') {
368
+ if (this.mode === 'legacy' || !this.supportsPopoverAPI) {
369
+ this.show = true;
335
370
  this.setAbsoluteCSSProperties();
336
371
  }
337
372
  else {
338
- this.setFixedCSSProperties();
339
- }
340
- }
341
- setRootElement() {
342
- let currentElement = this.hostElement;
343
- while (currentElement && currentElement !== document.documentElement) {
344
- const computedStyle = window.getComputedStyle(currentElement);
345
- // Check if the element has any styles applied that create a new containg block
346
- if (computedStyle.transform !== 'none' ||
347
- computedStyle.filter !== 'none' ||
348
- computedStyle.perspective !== 'none' ||
349
- computedStyle.containerType !== 'normal' ||
350
- ['transform', 'perspective', 'filter'].includes(computedStyle.willChange) ||
351
- ['layout', 'paint', 'strict', 'content'].includes(computedStyle.contain)) {
352
- this.rootElementRect = currentElement.getBoundingClientRect();
353
- return;
354
- }
355
- const rootNode = currentElement.getRootNode();
356
- const isRootNodeWebComponent = typeof ShadowRoot !== 'undefined' &&
357
- rootNode instanceof ShadowRoot &&
358
- rootNode.host instanceof HTMLElement;
359
- if (isRootNodeWebComponent) {
360
- currentElement = rootNode.host;
361
- }
362
- else {
363
- currentElement = currentElement.parentElement;
364
- }
373
+ this.setPopoverAPICSSProperties();
374
+ this.containerElement.showPopover();
365
375
  }
366
- // Return the document's bounding rect if no element is found
367
- this.rootElementRect = {
368
- top: 0,
369
- bottom: 0,
370
- left: 0,
371
- right: 0,
372
- height: window.visualViewport.height,
373
- width: window.visualViewport.width,
374
- };
375
376
  }
376
377
  // #endregion
377
378
  // #region Render Methods
378
379
  render() {
379
- const containerClasses = ['container', this.currentDirection];
380
+ const containerClasses = ['container', this.currentDirection, this.align];
380
381
  if (this.show)
381
382
  containerClasses.push('show');
383
+ if (this.block)
384
+ containerClasses.push('block');
382
385
  if (this.mode === 'legacy')
383
386
  containerClasses.push('legacy');
384
- return (index.h("div", { key: '570cccbfa3c4830d4b9d52c9564c5355ed357e4f', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer" }, index.h("div", { key: '7729d8f39d61e866de0cf3fe6d65fa8205af8a18', ref: el => (this.contentElement = el), class: "content" }, index.h("slot", { key: '315ce34d31a84a0a0d6688982567d2267452161c' }))));
387
+ return (index.h("div", { key: 'eb76d88fa98c35c45bc0615e4fb476c8dae8e885', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1, popover: "auto" }, index.h("div", { key: '34595cdb921b071b0082f90606343d9477ab0564', ref: el => (this.contentElement = el), class: "content" }, index.h("slot", { key: '58fc86882022353bf7786cd002f4dc0dc1b4ffdf' }))));
385
388
  }
386
389
  get hostElement() { return index.getElement(this); }
387
390
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"click-elsewhere.q2-popover.entry.cjs.js","mappings":"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","names":["handleDeprecationWarning","waitForNextPaint","h"],"sources":["src/components/click-elsewhere/click-elsewhere.tsx","src/components/q2-popover/q2-popover.scss?tag=q2-popover&encapsulation=shadow","src/components/q2-popover/q2-popover.tsx"],"sourcesContent":["import { Component, ComponentInterface, Element, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'click-elsewhere',\n shadow: false,\n})\nexport class ClickElsewhere implements ComponentInterface {\n // #region Own Properties\n\n isCurrentlyFocused: boolean = false;\n /**\n * Listens for mouse and window events that happen outside this click-elsewhere element so we can close popovers when users click outside them\n */\n mouseEventList: string[] = ['mousedown', 'dragstart', 'touchstart'];\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the user clicks outside the element\n */\n @Event()\n change: EventEmitter;\n\n // #endregion\n // #region Component Lifecycle Events\n\n /* tslint:enable:no-empty */\n\n connectedCallback() {\n this.mouseEventList.forEach((eventName: string) => {\n document.addEventListener(eventName, this.mouseHandler);\n });\n window.addEventListener('blur', this.windowBlurHandler);\n }\n\n disconnectedCallback() {\n this.mouseEventList.forEach((eventName: string) => {\n document.removeEventListener(eventName, this.mouseHandler);\n });\n window.removeEventListener('blur', this.windowBlurHandler);\n }\n\n /* TODO: Stencil/Rollup is having issues compiling without this here. Will try to remove in future Stencil upgrade. */\n /* tslint:disable:no-empty */\n componentWillLoad() {}\n\n // #endregion\n // #region Local Methods\n\n findActiveElement(): Element | null {\n let workingElement = document.activeElement!;\n while (true) {\n if (!workingElement || !workingElement.shadowRoot) {\n return workingElement;\n }\n workingElement = workingElement.shadowRoot.activeElement;\n }\n }\n\n mouseHandler = (event: Event): void => {\n const isCurrentlyFocused = this.shadowContains(this.findActiveElement());\n const aboutToBeFocused =\n this.shadowContains(this.shadowEventTarget(event)) || this.originatesInSlots(event.target as Element);\n\n if (!aboutToBeFocused && (this.isCurrentlyFocused || isCurrentlyFocused)) {\n this.isCurrentlyFocused = false;\n this.change.emit();\n return;\n }\n this.isCurrentlyFocused = aboutToBeFocused || isCurrentlyFocused;\n };\n\n originatesInSlots(target: Element): boolean {\n const slots = this.hostElement.querySelectorAll('slot');\n for (const currentSlot of Array.from(slots)) {\n const lightNodes =\n (currentSlot && currentSlot.assignedNodes && currentSlot.assignedNodes()) ||\n this.hostElement.childNodes;\n\n for (const currentNode of Array.from(lightNodes)) {\n if (currentNode.contains(target)) {\n return true;\n }\n }\n }\n return false;\n }\n\n shadowContains(child: any): boolean {\n /**\n * shadow-dom enabled version of Node.contains()\n */\n\n while (true) {\n if (child === this.hostElement) {\n return true;\n }\n if (!child) {\n return false;\n }\n child = child.parentNode || child.host;\n }\n }\n\n shadowEventTarget(event: any): Element {\n return event.composedPath()[0] || event.target;\n }\n\n windowBlurHandler = (): void => {\n this.isCurrentlyFocused = false;\n this.change.emit();\n };\n}\n","@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n.container {\n display: none;\n}\n\n.show {\n display: block;\n position: fixed;\n z-index: var-list(--tct-popover-z-index, 50);\n margin: 0;\n padding: 0;\n overflow: auto;\n background: var-list(--tct-popover-background, --app-white, #ffffff);\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(--tct-popover-box-shadow, --app-shadow-1, unquote(\"0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)\"));\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 following --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 :host([block]) & {\n right: unset;\n width: var(--comp-pop-width);\n min-width: var-list(--tct-popover-min-width, unset);\n }\n\n :host([align='left']) & {\n left: var(--comp-pop-left);\n right: unset;\n }\n\n :host([align='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 &.legacy {\n position: absolute;\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 } from '../../utils';\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 /** remove when Popover API is supported in iOS */\n orientationChanged: boolean = false;\n rootElementRect: DOMRect;\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 currentDirection: 'down' | 'up' = undefined;\n\n // remove `show` when Popover API is supported in iOS\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';\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 /** @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 */\n @Event()\n popoverStateChanged: EventEmitter<{ open: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.removeViewportListeners();\n }\n\n componentDidLoad() {\n this.handleMinHeight();\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 this.setRootElement();\n this.popoverStateChanged.emit({ open });\n\n if (open) {\n this.addViewportListeners();\n this.determinePopDirection();\n } else {\n this.removeViewportListeners();\n this.currentDirection = undefined;\n this.show = false;\n await waitForNextPaint();\n this.clearCSSProperties();\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get actualDirection(): '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 isModule() {\n const isIframe = window !== window.top;\n const hasPlatformDimensions = Object.keys(window.Tecton?.platformDimensions ?? {}).length > 0;\n return isIframe && hasPlatformDimensions;\n }\n\n addViewportListeners() {\n window.addEventListener('resize', this.viewPortOrientationChanged);\n // #region remove when Popover API is supported in iOS\n window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });\n screen?.orientation?.addEventListener('change', this.viewPortOrientationChanged);\n window.addEventListener('orientationchange', this.viewPortOrientationChanged);\n\n // #endregion\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, actualDirection, displayBuffer } = this;\n if (containerElement) containerElement.style.maxHeight = null;\n\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\n if (isModule) {\n const { outletOffset = 0, innerHeight = window.innerHeight } = window.Tecton?.platformDimensions || {};\n const distanceToIframeBottom = window.visualViewport.height - controlBottom;\n const viewableSpaceBelow = innerHeight - (outletOffset + controlBottom);\n const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;\n windowHeight = innerHeight;\n // If the top of the module is below the top of the window we just use the controlTop\n // Otherwise we need to add the outletOffset to the controlTop\n maxSpaceAbove = (outletOffset > 0 ? controlTop : controlTop + outletOffset) - displayBuffer;\n maxSpaceBelow = isIframeShorterThanWindow\n ? distanceToIframeBottom - displayBuffer\n : viewableSpaceBelow - displayBuffer;\n } else {\n windowHeight = window.visualViewport.height;\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 || actualDirection || directionWithMostSpace;\n\n switch (currentOrDetermineDirection) {\n case 'up':\n if (shouldUpdateMaxHeight) {\n containerElement.style.setProperty('--comp-pop-max-height', `${maxSpaceAbove}px`);\n }\n this.setDirectionAndShow('up');\n break;\n case 'down':\n if (shouldUpdateMaxHeight) {\n containerElement.style.setProperty('--comp-pop-max-height', `${maxSpaceBelow}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 removeViewportListeners() {\n window.removeEventListener('resize', this.viewPortOrientationChanged);\n // #region remove when Popover API is supported in iOS\n window.removeEventListener('scroll', this.viewPortChanged);\n screen?.orientation?.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n window.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n\n // #endregion\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 this.setRootElement();\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 this.show = true;\n if (this.mode === 'legacy') {\n this.setAbsoluteCSSProperties();\n } else {\n this.setFixedCSSProperties();\n }\n }\n\n setFixedCSSProperties = async () => {\n const { controlElement, containerElement, currentDirection, rootElementRect } = 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 const popoverLeft: number = controlLeft - rootElementRect.left;\n\n if (this.block) containerElement.style.setProperty('--comp-pop-width', `${controlElement.offsetWidth || 0}px`);\n containerElement.style.setProperty('--comp-pop-left', `${popoverLeft}px`);\n containerElement.style.setProperty(\n '--comp-pop-right',\n `${rootElementRect.width + rootElementRect.left - controlRight}px`\n );\n\n if (currentDirection === 'up') {\n containerElement.style.setProperty(\n '--comp-pop-bottom',\n `${rootElementRect.height + rootElementRect.top - controlTop}px`\n );\n }\n if (currentDirection === 'down') {\n containerElement.style.setProperty('--comp-pop-top', `${controlBottom - rootElementRect.top}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 setRootElement() {\n let currentElement: HTMLElement = this.hostElement;\n\n while (currentElement && currentElement !== document.documentElement) {\n const computedStyle = window.getComputedStyle(currentElement);\n\n // Check if the element has any styles applied that create a new containg block\n if (\n computedStyle.transform !== 'none' ||\n computedStyle.filter !== 'none' ||\n computedStyle.perspective !== 'none' ||\n computedStyle.containerType !== 'normal' ||\n ['transform', 'perspective', 'filter'].includes(computedStyle.willChange) ||\n ['layout', 'paint', 'strict', 'content'].includes(computedStyle.contain)\n ) {\n this.rootElementRect = currentElement.getBoundingClientRect();\n return;\n }\n\n const rootNode = currentElement.getRootNode();\n const isRootNodeWebComponent =\n typeof ShadowRoot !== 'undefined' &&\n rootNode instanceof ShadowRoot &&\n rootNode.host instanceof HTMLElement;\n if (isRootNodeWebComponent) {\n currentElement = rootNode.host;\n } else {\n currentElement = currentElement.parentElement;\n }\n }\n\n // Return the document's bounding rect if no element is found\n this.rootElementRect = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n height: window.visualViewport.height,\n width: window.visualViewport.width,\n } as DOMRect;\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];\n if (this.show) containerClasses.push('show');\n if (this.mode === 'legacy') containerClasses.push('legacy');\n\n return (\n <div\n ref={el => (this.containerElement = el)}\n class={containerClasses.join(' ')}\n test-id=\"outerContainer\"\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":"click-elsewhere.q2-popover.entry.cjs.js","mappings":"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","names":["handleDeprecationWarning","waitForNextPaint","h"],"sources":["src/components/click-elsewhere/click-elsewhere.tsx","src/components/q2-popover/q2-popover.scss?tag=q2-popover&encapsulation=shadow","src/components/q2-popover/q2-popover.tsx"],"sourcesContent":["import { Component, ComponentInterface, Element, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'click-elsewhere',\n shadow: false,\n})\nexport class ClickElsewhere implements ComponentInterface {\n // #region Own Properties\n\n isCurrentlyFocused: boolean = false;\n /**\n * Listens for mouse and window events that happen outside this click-elsewhere element so we can close popovers when users click outside them\n */\n mouseEventList: string[] = ['mousedown', 'dragstart', 'touchstart'];\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the user clicks outside the element\n */\n @Event()\n change: EventEmitter;\n\n // #endregion\n // #region Component Lifecycle Events\n\n /* tslint:enable:no-empty */\n\n connectedCallback() {\n this.mouseEventList.forEach((eventName: string) => {\n document.addEventListener(eventName, this.mouseHandler);\n });\n window.addEventListener('blur', this.windowBlurHandler);\n }\n\n disconnectedCallback() {\n this.mouseEventList.forEach((eventName: string) => {\n document.removeEventListener(eventName, this.mouseHandler);\n });\n window.removeEventListener('blur', this.windowBlurHandler);\n }\n\n /* TODO: Stencil/Rollup is having issues compiling without this here. Will try to remove in future Stencil upgrade. */\n /* tslint:disable:no-empty */\n componentWillLoad() {}\n\n // #endregion\n // #region Local Methods\n\n findActiveElement(): Element | null {\n let workingElement = document.activeElement!;\n while (true) {\n if (!workingElement || !workingElement.shadowRoot) {\n return workingElement;\n }\n workingElement = workingElement.shadowRoot.activeElement;\n }\n }\n\n mouseHandler = (event: Event): void => {\n const isCurrentlyFocused = this.shadowContains(this.findActiveElement());\n const aboutToBeFocused =\n this.shadowContains(this.shadowEventTarget(event)) || this.originatesInSlots(event.target as Element);\n\n if (!aboutToBeFocused && (this.isCurrentlyFocused || isCurrentlyFocused)) {\n this.isCurrentlyFocused = false;\n this.change.emit();\n return;\n }\n this.isCurrentlyFocused = aboutToBeFocused || isCurrentlyFocused;\n };\n\n originatesInSlots(target: Element): boolean {\n const slots = this.hostElement.querySelectorAll('slot');\n for (const currentSlot of Array.from(slots)) {\n const lightNodes =\n (currentSlot && currentSlot.assignedNodes && currentSlot.assignedNodes()) ||\n this.hostElement.childNodes;\n\n for (const currentNode of Array.from(lightNodes)) {\n if (currentNode.contains(target)) {\n return true;\n }\n }\n }\n return false;\n }\n\n shadowContains(child: any): boolean {\n /**\n * shadow-dom enabled version of Node.contains()\n */\n\n while (true) {\n if (child === this.hostElement) {\n return true;\n }\n if (!child) {\n return false;\n }\n child = child.parentNode || child.host;\n }\n }\n\n shadowEventTarget(event: any): Element {\n return event.composedPath()[0] || event.target;\n }\n\n windowBlurHandler = (): void => {\n this.isCurrentlyFocused = false;\n this.change.emit();\n };\n}\n","@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:popover-open,\n.show {\n position: absolute;\n margin: 0;\n padding: 0;\n overflow: auto;\n background: var-list(--tct-popover-background, --app-white, #ffffff);\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-1,\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 &.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 @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 } from '../../utils';\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 currentDirection: 'down' | 'up' = undefined;\n\n // remove `show` when Popover API is supported in iOS\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 /** @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 */\n @Event()\n popoverStateChanged: 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 this.popoverStateChanged.emit({ open });\n\n if (open) {\n this.addViewportListeners();\n this.determinePopDirection();\n } else {\n this.removeViewportListeners();\n this.currentDirection = undefined;\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() {\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 addViewportListeners() {\n window.addEventListener('resize', this.viewPortOrientationChanged);\n visualViewport?.addEventListener('resize', this.viewPortChanged);\n window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });\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\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\n if (isModule) {\n const { outletOffset = 0, innerHeight = window.innerHeight } = window.Tecton?.platformDimensions || {};\n const distanceToIframeBottom = window.visualViewport.height - controlBottom;\n const viewableSpaceBelow = innerHeight - (outletOffset + controlBottom);\n const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;\n windowHeight = innerHeight;\n // If the top of the module is below the top of the window we just use the controlTop\n // Otherwise we need to add the outletOffset to the controlTop\n maxSpaceAbove = (outletOffset > 0 ? controlTop : controlTop + outletOffset) - displayBuffer;\n maxSpaceBelow = isIframeShorterThanWindow\n ? distanceToIframeBottom - displayBuffer\n : viewableSpaceBelow - displayBuffer;\n } else {\n windowHeight = window.visualViewport.height;\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 containerElement.style.setProperty('--comp-pop-max-height', `${maxSpaceAbove}px`);\n }\n this.setDirectionAndShow('up');\n break;\n case 'down':\n if (shouldUpdateMaxHeight) {\n containerElement.style.setProperty('--comp-pop-max-height', `${maxSpaceBelow}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 this.popoverStateChanged.emit({ 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 if (currentDirection === 'up') {\n if (isModule) {\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?.visualViewport?.offsetTop - window.scrollY}px`\n );\n }\n }\n\n if (currentDirection === 'down') {\n if (isModule) {\n containerElement.style.setProperty('--comp-pop-top', `${controlBottom}px`);\n } else {\n containerElement.style.setProperty(\n '--comp-pop-top',\n `${controlBottom + (window?.visualViewport?.offsetTop ?? 0) + window.scrollY}px`\n );\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 (this.show) containerClasses.push('show');\n if (this.block) containerClasses.push('block');\n if (this.mode === 'legacy') containerClasses.push('legacy');\n\n return (\n <div\n ref={el => (this.containerElement = el)}\n class={containerClasses.join(' ')}\n test-id=\"outerContainer\"\n tabIndex={-1}\n popover=\"auto\"\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}
@@ -1351,25 +1351,6 @@ const DOMPurify = purify.exports;
1351
1351
  function isMobile() {
1352
1352
  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile|IEMobile|Windows Phone|Opera Mini/i.test(navigator.userAgent);
1353
1353
  }
1354
- function isHostLosingFocus(event, hostElement) {
1355
- const type = event.type;
1356
- const focusInTypes = ['focusin', 'focus'];
1357
- const isFocusIn = focusInTypes.includes(type);
1358
- // on focusin: `target` is element losing focus, `relatedTarget` is element gaining focus
1359
- // on focusout: `target` is element gaining focus, `relatedTarget` is element losing focus
1360
- const elementGainingFocus = isFocusIn ? event.target : event.relatedTarget;
1361
- const isElementNestedInHostElement = (element) => {
1362
- if (element === hostElement)
1363
- return true;
1364
- if (element.parentElement) {
1365
- return isElementNestedInHostElement(element.parentElement);
1366
- }
1367
- return false;
1368
- };
1369
- if (!(elementGainingFocus instanceof HTMLElement))
1370
- return true;
1371
- return !isElementNestedInHostElement(elementGainingFocus);
1372
- }
1373
1354
  function isRelatedTargetWithinHost(event, element) {
1374
1355
  return event.relatedTarget !== element && !element.contains(event.relatedTarget);
1375
1356
  }
@@ -1562,7 +1543,6 @@ exports.handleRenamedProp = handleRenamedProp;
1562
1543
  exports.hasSlotContent = hasSlotContent;
1563
1544
  exports.isEventFromElement = isEventFromElement;
1564
1545
  exports.isFirefox = isFirefox;
1565
- exports.isHostLosingFocus = isHostLosingFocus;
1566
1546
  exports.isMobile = isMobile;
1567
1547
  exports.isRelatedTargetWithinHost = isRelatedTargetWithinHost;
1568
1548
  exports.isTouchDevice = isTouchDevice;
@@ -1577,4 +1557,4 @@ exports.sanitizeHTMLString = sanitizeHTMLString;
1577
1557
  exports.setMessageHeight = setMessageHeight;
1578
1558
  exports.waitForNextPaint = waitForNextPaint;
1579
1559
 
1580
- //# sourceMappingURL=index-64d8b839.js.map
1560
+ //# sourceMappingURL=index-799a5634.js.map