q2-tecton-elements 1.45.3 → 1.45.4

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 (278) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +69 -32
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-0430339e.js → index-f69742cf.js} +1 -1
  4. package/dist/cjs/{index-0430339e.js.map → index-f69742cf.js.map} +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  7. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
  9. package/dist/cjs/q2-carousel-pane.cjs.entry.js +2 -2
  10. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  14. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-input.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-item.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-list.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-month-picker.cjs.entry.js +2 -2
  28. package/dist/cjs/q2-optgroup_2.cjs.entry.js +2 -2
  29. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-pagination.cjs.entry.js +2 -2
  31. package/dist/cjs/q2-pill.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  35. package/dist/cjs/q2-section.cjs.entry.js +2 -2
  36. package/dist/cjs/q2-select.cjs.entry.js +55 -7
  37. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  38. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  40. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  41. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  42. package/dist/collection/collection-manifest.json +5 -5
  43. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  44. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  45. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  46. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  47. package/dist/collection/components/q2-carousel/q2-carousel.js +1 -1
  48. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  49. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  50. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  51. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  52. package/dist/collection/components/q2-checkbox/q2-checkbox.js +1 -1
  53. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
  54. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  55. package/dist/collection/components/q2-data-table/q2-data-table.js +7 -7
  56. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  57. package/dist/collection/components/q2-dropdown/q2-dropdown.js +1 -1
  58. package/dist/collection/components/q2-editable-field/q2-editable-field.js +2 -2
  59. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  60. package/dist/collection/components/q2-input/q2-input.js +2 -2
  61. package/dist/collection/components/q2-item/q2-item.js +1 -1
  62. package/dist/collection/components/q2-list/q2-list.js +1 -1
  63. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  64. package/dist/collection/components/q2-message/q2-message.js +1 -1
  65. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  66. package/dist/collection/components/q2-option/q2-option.js +1 -1
  67. package/dist/collection/components/q2-option-list/q2-option-list.js +4 -4
  68. package/dist/collection/components/q2-pagination/q2-pagination.js +2 -2
  69. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  70. package/dist/collection/components/q2-popover/q2-popover.css +19 -11
  71. package/dist/collection/components/q2-popover/q2-popover.js +70 -32
  72. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  73. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  74. package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
  75. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  76. package/dist/collection/components/q2-section/q2-section.js +2 -2
  77. package/dist/collection/components/q2-select/q2-select.js +64 -9
  78. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  79. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  80. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
  81. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  82. package/dist/components/q2-action-sheet.js +1 -1
  83. package/dist/components/q2-avatar2.js +1 -1
  84. package/dist/components/q2-calendar.js +1 -1
  85. package/dist/components/q2-carousel-pane.js +2 -2
  86. package/dist/components/q2-carousel.js +1 -1
  87. package/dist/components/q2-chart-area.js +1 -1
  88. package/dist/components/q2-chart-bar.js +1 -1
  89. package/dist/components/q2-chart-donut.js +1 -1
  90. package/dist/components/q2-checkbox-group.js +1 -1
  91. package/dist/components/q2-checkbox2.js +1 -1
  92. package/dist/components/q2-currency.js +1 -1
  93. package/dist/components/q2-data-table.js +1 -1
  94. package/dist/components/q2-detail.js +1 -1
  95. package/dist/components/q2-dropdown.js +1 -1
  96. package/dist/components/q2-editable-field.js +1 -1
  97. package/dist/components/q2-icon2.js.map +1 -1
  98. package/dist/components/q2-input2.js +1 -1
  99. package/dist/components/q2-item.js +1 -1
  100. package/dist/components/q2-list.js +1 -1
  101. package/dist/components/q2-loc.js +1 -1
  102. package/dist/components/q2-message2.js +1 -1
  103. package/dist/components/q2-month-picker.js +2 -2
  104. package/dist/components/q2-optgroup2.js +1 -1
  105. package/dist/components/q2-option-list2.js +1 -1
  106. package/dist/components/q2-option2.js +1 -1
  107. package/dist/components/q2-pagination.js +2 -2
  108. package/dist/components/q2-pill.js +1 -1
  109. package/dist/components/q2-popover2.js +69 -32
  110. package/dist/components/q2-popover2.js.map +1 -1
  111. package/dist/components/q2-radio-group.js +1 -1
  112. package/dist/components/q2-radio.js +1 -1
  113. package/dist/components/q2-relative-time.js +1 -1
  114. package/dist/components/q2-section.js +2 -2
  115. package/dist/components/q2-select.js +57 -9
  116. package/dist/components/q2-select.js.map +1 -1
  117. package/dist/components/q2-stepper-pane.js +1 -1
  118. package/dist/components/q2-stepper.js +1 -1
  119. package/dist/components/q2-textarea.js +1 -1
  120. package/dist/esm/click-elsewhere_2.entry.js +69 -32
  121. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  122. package/dist/esm/{index-e940b40e.js → index-3184c760.js} +1 -1
  123. package/dist/esm/{index-e940b40e.js.map → index-3184c760.js.map} +1 -1
  124. package/dist/esm/loader.js +1 -1
  125. package/dist/esm/q2-action-sheet.entry.js +1 -1
  126. package/dist/esm/q2-avatar.entry.js +1 -1
  127. package/dist/esm/q2-calendar.entry.js +2 -2
  128. package/dist/esm/q2-carousel-pane.entry.js +2 -2
  129. package/dist/esm/q2-carousel.entry.js +1 -1
  130. package/dist/esm/q2-chart-area.entry.js +1 -1
  131. package/dist/esm/q2-chart-bar.entry.js +1 -1
  132. package/dist/esm/q2-chart-donut.entry.js +1 -1
  133. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  134. package/dist/esm/q2-checkbox.entry.js +1 -1
  135. package/dist/esm/q2-currency.entry.js +1 -1
  136. package/dist/esm/q2-data-table.entry.js +1 -1
  137. package/dist/esm/q2-detail.entry.js +1 -1
  138. package/dist/esm/q2-dropdown.entry.js +1 -1
  139. package/dist/esm/q2-editable-field.entry.js +1 -1
  140. package/dist/esm/q2-icon.entry.js.map +1 -1
  141. package/dist/esm/q2-input.entry.js +1 -1
  142. package/dist/esm/q2-item.entry.js +1 -1
  143. package/dist/esm/q2-list.entry.js +1 -1
  144. package/dist/esm/q2-loc.entry.js +1 -1
  145. package/dist/esm/q2-message.entry.js +1 -1
  146. package/dist/esm/q2-month-picker.entry.js +2 -2
  147. package/dist/esm/q2-optgroup_2.entry.js +2 -2
  148. package/dist/esm/q2-option-list.entry.js +1 -1
  149. package/dist/esm/q2-pagination.entry.js +2 -2
  150. package/dist/esm/q2-pill.entry.js +1 -1
  151. package/dist/esm/q2-radio-group.entry.js +1 -1
  152. package/dist/esm/q2-radio.entry.js +1 -1
  153. package/dist/esm/q2-relative-time.entry.js +2 -2
  154. package/dist/esm/q2-section.entry.js +2 -2
  155. package/dist/esm/q2-select.entry.js +56 -8
  156. package/dist/esm/q2-select.entry.js.map +1 -1
  157. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  158. package/dist/esm/q2-stepper.entry.js +1 -1
  159. package/dist/esm/q2-tecton-elements.js +1 -1
  160. package/dist/esm/q2-textarea.entry.js +1 -1
  161. package/dist/jest.setup.js +22 -0
  162. package/dist/jest.setup.js.map +1 -0
  163. package/dist/q2-tecton-elements/{p-47868d6d.entry.js → p-115634cd.entry.js} +2 -2
  164. package/dist/q2-tecton-elements/{p-4b81a121.entry.js → p-163e6dd2.entry.js} +2 -2
  165. package/dist/q2-tecton-elements/{p-7c12ba02.entry.js → p-19d06f9f.entry.js} +2 -2
  166. package/dist/q2-tecton-elements/{p-2436c843.entry.js → p-1dd2fd85.entry.js} +2 -2
  167. package/dist/q2-tecton-elements/{p-3b1ea100.entry.js → p-204ae112.entry.js} +2 -2
  168. package/dist/q2-tecton-elements/{p-c016bd18.entry.js → p-25da2750.entry.js} +2 -2
  169. package/dist/q2-tecton-elements/{p-d9e19f70.entry.js → p-2e146575.entry.js} +2 -2
  170. package/dist/q2-tecton-elements/{p-bffda54d.entry.js → p-30c0a241.entry.js} +2 -2
  171. package/dist/q2-tecton-elements/{p-5dc5c4e2.entry.js → p-5219c018.entry.js} +2 -2
  172. package/dist/q2-tecton-elements/{p-b376c111.entry.js → p-5af4926e.entry.js} +2 -2
  173. package/dist/q2-tecton-elements/p-5e66bf17.entry.js +2 -0
  174. package/dist/q2-tecton-elements/p-5e66bf17.entry.js.map +1 -0
  175. package/dist/q2-tecton-elements/{p-aec64fcb.entry.js → p-62b7dbcc.entry.js} +2 -2
  176. package/dist/q2-tecton-elements/{p-63192fac.entry.js → p-63063fe4.entry.js} +2 -2
  177. package/dist/q2-tecton-elements/{p-f1265647.entry.js → p-66835c7b.entry.js} +2 -2
  178. package/dist/q2-tecton-elements/{p-05b015a8.entry.js → p-73e26b41.entry.js} +2 -2
  179. package/dist/q2-tecton-elements/{p-df297a77.entry.js → p-74e456ab.entry.js} +2 -2
  180. package/dist/q2-tecton-elements/{p-dc057a9c.entry.js → p-7b7128c2.entry.js} +2 -2
  181. package/dist/q2-tecton-elements/p-82f21785.entry.js +2 -0
  182. package/dist/q2-tecton-elements/p-82f21785.entry.js.map +1 -0
  183. package/dist/q2-tecton-elements/{p-50bd4437.entry.js → p-868a3856.entry.js} +2 -2
  184. package/dist/q2-tecton-elements/{p-4bbe563f.entry.js → p-8690aadf.entry.js} +2 -2
  185. package/dist/q2-tecton-elements/{p-1c17d118.entry.js → p-9659f63b.entry.js} +2 -2
  186. package/dist/q2-tecton-elements/{p-445990a8.entry.js → p-9b373584.entry.js} +2 -2
  187. package/dist/q2-tecton-elements/{p-bfe9d688.entry.js → p-a7055670.entry.js} +2 -2
  188. package/dist/q2-tecton-elements/{p-71180fcd.entry.js → p-b0f91944.entry.js} +2 -2
  189. package/dist/q2-tecton-elements/{p-515d424b.entry.js → p-b79bd45f.entry.js} +2 -2
  190. package/dist/q2-tecton-elements/{p-b7d5fd12.entry.js → p-bb3ae49a.entry.js} +2 -2
  191. package/dist/q2-tecton-elements/{p-d1a9ed3d.entry.js → p-c60679f5.entry.js} +2 -2
  192. package/dist/q2-tecton-elements/{p-57bf9342.entry.js → p-dca6104e.entry.js} +2 -2
  193. package/dist/q2-tecton-elements/{p-aed969d4.entry.js → p-e77d1a92.entry.js} +2 -2
  194. package/dist/q2-tecton-elements/{p-7523305d.entry.js → p-e7c3d6db.entry.js} +2 -2
  195. package/dist/q2-tecton-elements/{p-e762526f.entry.js → p-ed974a59.entry.js} +2 -2
  196. package/dist/q2-tecton-elements/p-f0813fb4.entry.js.map +1 -1
  197. package/dist/q2-tecton-elements/{p-4570ff06.entry.js → p-f0e5a9ab.entry.js} +2 -2
  198. package/dist/q2-tecton-elements/{p-7ce6e587.js → p-f1e887f5.js} +1 -1
  199. package/dist/q2-tecton-elements/{p-b3d10d52.entry.js → p-f1fe0e73.entry.js} +2 -2
  200. package/dist/q2-tecton-elements/{p-22661533.entry.js → p-f44d51ef.entry.js} +2 -2
  201. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  202. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  203. package/dist/test/elements/q2-calendar-test.e2e.js +3 -3
  204. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  205. package/dist/test/elements/q2-dropdown-test.e2e.js +2 -14
  206. package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
  207. package/dist/test/elements/q2-pill-test.e2e.js +1 -1
  208. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  209. package/dist/test/elements/q2-popover-test.e2e.js +1 -34
  210. package/dist/test/elements/q2-popover-test.e2e.js.map +1 -1
  211. package/dist/test/elements/q2-popover-test.spec.js +739 -296
  212. package/dist/test/elements/q2-popover-test.spec.js.map +1 -1
  213. package/dist/test/elements/q2-select-test.e2e.js +1 -1
  214. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  215. package/dist/test/elements/q2-select-test.spec.js +412 -0
  216. package/dist/test/elements/q2-select-test.spec.js.map +1 -0
  217. package/dist/test/elements/q2-tag-test.e2e.js +1 -1
  218. package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
  219. package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
  220. package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +60 -0
  221. package/dist/types/components/q2-calendar/q2-calendar.d.ts +324 -0
  222. package/dist/types/components/q2-carousel/q2-carousel.d.ts +2 -2
  223. package/dist/types/components/q2-data-table/q2-data-table.d.ts +221 -0
  224. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +130 -0
  225. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +45 -0
  226. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +136 -0
  227. package/dist/types/components/q2-loading/skeleton/shapes.d.ts +1 -0
  228. package/dist/types/components/q2-optgroup/q2-optgroup.d.ts +1 -1
  229. package/dist/types/components/q2-option-list/q2-option-list.d.ts +99 -0
  230. package/dist/types/components/q2-pagination/q2-pagination.d.ts +54 -0
  231. package/dist/types/components/q2-pill/q2-pill.d.ts +102 -0
  232. package/dist/types/components/q2-popover/q2-popover.d.ts +5 -3
  233. package/dist/types/components/q2-select/q2-select.d.ts +236 -0
  234. package/dist/types/components/q2-stepper/q2-stepper.d.ts +52 -0
  235. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +62 -0
  236. package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +2 -2
  237. package/dist/types/components/q2-tag/q2-tag.d.ts +59 -0
  238. package/dist/types/utils/action-sheet.d.ts +12 -0
  239. package/package.json +3 -3
  240. package/dist/q2-tecton-elements/p-68556733.entry.js +0 -2
  241. package/dist/q2-tecton-elements/p-68556733.entry.js.map +0 -1
  242. package/dist/q2-tecton-elements/p-cadceb00.entry.js +0 -2
  243. package/dist/q2-tecton-elements/p-cadceb00.entry.js.map +0 -1
  244. /package/dist/q2-tecton-elements/{p-47868d6d.entry.js.map → p-115634cd.entry.js.map} +0 -0
  245. /package/dist/q2-tecton-elements/{p-4b81a121.entry.js.map → p-163e6dd2.entry.js.map} +0 -0
  246. /package/dist/q2-tecton-elements/{p-7c12ba02.entry.js.map → p-19d06f9f.entry.js.map} +0 -0
  247. /package/dist/q2-tecton-elements/{p-2436c843.entry.js.map → p-1dd2fd85.entry.js.map} +0 -0
  248. /package/dist/q2-tecton-elements/{p-3b1ea100.entry.js.map → p-204ae112.entry.js.map} +0 -0
  249. /package/dist/q2-tecton-elements/{p-c016bd18.entry.js.map → p-25da2750.entry.js.map} +0 -0
  250. /package/dist/q2-tecton-elements/{p-d9e19f70.entry.js.map → p-2e146575.entry.js.map} +0 -0
  251. /package/dist/q2-tecton-elements/{p-bffda54d.entry.js.map → p-30c0a241.entry.js.map} +0 -0
  252. /package/dist/q2-tecton-elements/{p-5dc5c4e2.entry.js.map → p-5219c018.entry.js.map} +0 -0
  253. /package/dist/q2-tecton-elements/{p-b376c111.entry.js.map → p-5af4926e.entry.js.map} +0 -0
  254. /package/dist/q2-tecton-elements/{p-aec64fcb.entry.js.map → p-62b7dbcc.entry.js.map} +0 -0
  255. /package/dist/q2-tecton-elements/{p-63192fac.entry.js.map → p-63063fe4.entry.js.map} +0 -0
  256. /package/dist/q2-tecton-elements/{p-f1265647.entry.js.map → p-66835c7b.entry.js.map} +0 -0
  257. /package/dist/q2-tecton-elements/{p-05b015a8.entry.js.map → p-73e26b41.entry.js.map} +0 -0
  258. /package/dist/q2-tecton-elements/{p-df297a77.entry.js.map → p-74e456ab.entry.js.map} +0 -0
  259. /package/dist/q2-tecton-elements/{p-dc057a9c.entry.js.map → p-7b7128c2.entry.js.map} +0 -0
  260. /package/dist/q2-tecton-elements/{p-50bd4437.entry.js.map → p-868a3856.entry.js.map} +0 -0
  261. /package/dist/q2-tecton-elements/{p-4bbe563f.entry.js.map → p-8690aadf.entry.js.map} +0 -0
  262. /package/dist/q2-tecton-elements/{p-1c17d118.entry.js.map → p-9659f63b.entry.js.map} +0 -0
  263. /package/dist/q2-tecton-elements/{p-445990a8.entry.js.map → p-9b373584.entry.js.map} +0 -0
  264. /package/dist/q2-tecton-elements/{p-bfe9d688.entry.js.map → p-a7055670.entry.js.map} +0 -0
  265. /package/dist/q2-tecton-elements/{p-71180fcd.entry.js.map → p-b0f91944.entry.js.map} +0 -0
  266. /package/dist/q2-tecton-elements/{p-515d424b.entry.js.map → p-b79bd45f.entry.js.map} +0 -0
  267. /package/dist/q2-tecton-elements/{p-b7d5fd12.entry.js.map → p-bb3ae49a.entry.js.map} +0 -0
  268. /package/dist/q2-tecton-elements/{p-d1a9ed3d.entry.js.map → p-c60679f5.entry.js.map} +0 -0
  269. /package/dist/q2-tecton-elements/{p-57bf9342.entry.js.map → p-dca6104e.entry.js.map} +0 -0
  270. /package/dist/q2-tecton-elements/{p-aed969d4.entry.js.map → p-e77d1a92.entry.js.map} +0 -0
  271. /package/dist/q2-tecton-elements/{p-7523305d.entry.js.map → p-e7c3d6db.entry.js.map} +0 -0
  272. /package/dist/q2-tecton-elements/{p-e762526f.entry.js.map → p-ed974a59.entry.js.map} +0 -0
  273. /package/dist/q2-tecton-elements/{p-4570ff06.entry.js.map → p-f0e5a9ab.entry.js.map} +0 -0
  274. /package/dist/q2-tecton-elements/{p-7ce6e587.js.map → p-f1e887f5.js.map} +0 -0
  275. /package/dist/q2-tecton-elements/{p-b3d10d52.entry.js.map → p-f1fe0e73.entry.js.map} +0 -0
  276. /package/dist/q2-tecton-elements/{p-22661533.entry.js.map → p-f44d51ef.entry.js.map} +0 -0
  277. /package/dist/types/{workspace/workspace/tecton-production_release_1.45.x → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
  278. /package/dist/types/{workspace/workspace/tecton-production_release_1.45.x → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
@@ -93,7 +93,7 @@ const ClickElsewhere = class {
93
93
  get hostElement() { return index.getElement(this); }
94
94
  };
95
95
 
96
- 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, 0 2px 4px rgba(0, 0, 0, 0.3)));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, 3px)));--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}";
96
+ 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, 3px)));--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}";
97
97
  const Q2PopoverStyle0 = q2PopoverCss;
98
98
 
99
99
  const Q2Popover = class {
@@ -104,7 +104,6 @@ const Q2Popover = class {
104
104
  * The number of pixels to leave between the popover and the edge of the viewport
105
105
  */
106
106
  this.displayBuffer = 10;
107
- /** remove when Popover API is supported in iOS */
108
107
  this.orientationChanged = false;
109
108
  /// Helpers ///
110
109
  this.handleMinHeight = () => {
@@ -112,6 +111,9 @@ const Q2Popover = class {
112
111
  index$1.handleDeprecationWarning(this, 'minHeight', 'prop');
113
112
  }
114
113
  };
114
+ this.handlePopoverToggleEvent = (event) => {
115
+ this.popoverStateChanged.emit({ open: event.newState === 'open' });
116
+ };
115
117
  this.viewPortChanged = () => {
116
118
  if (!this.open)
117
119
  return;
@@ -121,9 +123,9 @@ const Q2Popover = class {
121
123
  this.orientationChanged = true;
122
124
  this.viewPortChanged();
123
125
  };
124
- this.setFixedCSSProperties = async () => {
125
- var _a, _b;
126
- const { controlElement, containerElement, currentDirection } = this;
126
+ this.setPopoverAPICSSProperties = async () => {
127
+ var _a, _b, _c, _d, _e, _f;
128
+ const { controlElement, containerElement, currentDirection, isModule, align } = this;
127
129
  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 : {
128
130
  top: 0,
129
131
  bottom: 0,
@@ -131,16 +133,32 @@ const Q2Popover = class {
131
133
  right: 0,
132
134
  };
133
135
  const popoverLeft = controlLeft;
134
- const popoverRight = window.visualViewport.width - controlRight;
136
+ const popoverRight = ((_c = window === null || window === void 0 ? void 0 : window.visualViewport) === null || _c === void 0 ? void 0 : _c.width) - controlRight;
137
+ if (align === 'right') {
138
+ containerElement.style.setProperty('--comp-pop-right', `${popoverRight - window.scrollX}px`);
139
+ containerElement.style.setProperty('--comp-pop-left', 'unset');
140
+ }
141
+ else {
142
+ containerElement.style.setProperty('--comp-pop-left', `${popoverLeft + window.scrollX}px`);
143
+ containerElement.style.setProperty('--comp-pop-right', 'unset');
144
+ }
135
145
  if (this.block)
136
- containerElement.style.setProperty('--comp-pop-width', `${controlElement.offsetWidth || 0}px`);
137
- containerElement.style.setProperty('--comp-pop-left', `${popoverLeft}px`);
138
- containerElement.style.setProperty('--comp-pop-right', `${popoverRight}px`);
146
+ containerElement.style.setProperty('--comp-pop-width', `${(controlElement === null || controlElement === void 0 ? void 0 : controlElement.offsetWidth) || 0}px`);
139
147
  if (currentDirection === 'up') {
140
- containerElement.style.setProperty('--comp-pop-bottom', `${window.visualViewport.height - controlTop}px`);
148
+ if (isModule) {
149
+ containerElement.style.setProperty('--comp-pop-bottom', `${window.innerHeight - controlTop}px`);
150
+ }
151
+ else {
152
+ 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`);
153
+ }
141
154
  }
142
155
  if (currentDirection === 'down') {
143
- containerElement.style.setProperty('--comp-pop-top', `${controlBottom}px`);
156
+ if (isModule) {
157
+ containerElement.style.setProperty('--comp-pop-top', `${controlBottom}px`);
158
+ }
159
+ else {
160
+ 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`);
161
+ }
144
162
  }
145
163
  // Wait for one paint to prevent layout thrashing
146
164
  await index$1.waitForNextPaint();
@@ -171,7 +189,7 @@ const Q2Popover = class {
171
189
  containerElement.style.setProperty('--comp-pop-opacity', '1');
172
190
  };
173
191
  this.direction = undefined;
174
- this.align = undefined;
192
+ this.align = 'left';
175
193
  this.open = undefined;
176
194
  this.block = undefined;
177
195
  this.controlElement = undefined;
@@ -181,13 +199,25 @@ const Q2Popover = class {
181
199
  this.show = false;
182
200
  }
183
201
  /// Lifecycle hooks ///
202
+ componentWillLoad() {
203
+ if (!this.supportsPopoverAPI) {
204
+ 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.');
205
+ this.mode = 'legacy';
206
+ }
207
+ }
184
208
  componentDidLoad() {
185
209
  this.handleMinHeight();
210
+ if (this.supportsPopoverAPI)
211
+ this.containerElement.addEventListener('toggle', this.handlePopoverToggleEvent);
186
212
  if (this.open)
187
213
  this.determinePopDirection();
188
214
  }
189
215
  disconnectedCallback() {
190
216
  this.removeViewportListeners();
217
+ this.containerElement.removeEventListener('toggle', this.handlePopoverToggleEvent);
218
+ this.containerElement = null;
219
+ this.contentElement = null;
220
+ this.controlElement = null;
191
221
  }
192
222
  /// Methods ///
193
223
  async toggle() {
@@ -206,7 +236,12 @@ const Q2Popover = class {
206
236
  else {
207
237
  this.removeViewportListeners();
208
238
  this.currentDirection = undefined;
209
- this.show = false;
239
+ if (this.mode === 'legacy' || !this.supportsPopoverAPI) {
240
+ this.show = false;
241
+ }
242
+ else {
243
+ this.containerElement.hidePopover();
244
+ }
210
245
  await index$1.waitForNextPaint();
211
246
  this.clearCSSProperties();
212
247
  }
@@ -223,7 +258,7 @@ const Q2Popover = class {
223
258
  event.stopPropagation();
224
259
  }
225
260
  /// Getters ///
226
- get actualDirection() {
261
+ get providedDirection() {
227
262
  const { direction } = this;
228
263
  switch (direction) {
229
264
  case 'up':
@@ -239,23 +274,24 @@ const Q2Popover = class {
239
274
  const hasPlatformDimensions = Object.keys((_b = (_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.platformDimensions) !== null && _b !== void 0 ? _b : {}).length > 0;
240
275
  return isIframe && hasPlatformDimensions;
241
276
  }
277
+ get supportsPopoverAPI() {
278
+ return Object.hasOwn(HTMLElement.prototype, 'popover');
279
+ }
242
280
  addViewportListeners() {
243
281
  var _a;
244
282
  window.addEventListener('resize', this.viewPortOrientationChanged);
245
- // #region remove when Popover API is supported in iOS
283
+ visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.addEventListener('resize', this.viewPortChanged);
246
284
  window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });
247
- (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.addEventListener('change', this.viewPortOrientationChanged);
285
+ (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.addEventListener('orientationchange', this.viewPortOrientationChanged);
248
286
  window.addEventListener('orientationchange', this.viewPortOrientationChanged);
249
- // #endregion
250
287
  }
251
288
  removeViewportListeners() {
252
289
  var _a;
253
290
  window.removeEventListener('resize', this.viewPortOrientationChanged);
254
- // #region remove when Popover API is supported in iOS
291
+ visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.removeEventListener('resize', this.viewPortChanged);
255
292
  window.removeEventListener('scroll', this.viewPortChanged);
256
293
  (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.removeEventListener('orientationchange', this.viewPortOrientationChanged);
257
294
  window.removeEventListener('orientationchange', this.viewPortOrientationChanged);
258
- // #endregion
259
295
  }
260
296
  clearCSSProperties() {
261
297
  this.containerElement.style.removeProperty('--comp-pop-max-height');
@@ -273,17 +309,18 @@ const Q2Popover = class {
273
309
  if (!isOpen)
274
310
  return;
275
311
  this.currentDirection = direction;
276
- this.show = true;
277
- if (this.mode === 'legacy') {
312
+ if (this.mode === 'legacy' || !this.supportsPopoverAPI) {
313
+ this.show = true;
278
314
  this.setAbsoluteCSSProperties();
279
315
  }
280
316
  else {
281
- this.setFixedCSSProperties();
317
+ this.setPopoverAPICSSProperties();
318
+ this.containerElement.showPopover();
282
319
  }
283
320
  }
284
321
  async determinePopDirection() {
285
322
  var _a, _b, _c;
286
- const { containerElement, controlElement, actualDirection, displayBuffer } = this;
323
+ const { containerElement, controlElement, providedDirection, displayBuffer } = this;
287
324
  if (containerElement)
288
325
  containerElement.style.maxHeight = null;
289
326
  await index$1.waitForNextPaint();
@@ -296,16 +333,14 @@ const Q2Popover = class {
296
333
  let maxSpaceAbove;
297
334
  let maxSpaceBelow;
298
335
  if (isModule) {
299
- const platformDimensions = (_c = window.Tecton) === null || _c === void 0 ? void 0 : _c.platformDimensions;
336
+ const { outletOffset = 0, innerHeight = window.innerHeight } = ((_c = window.Tecton) === null || _c === void 0 ? void 0 : _c.platformDimensions) || {};
300
337
  const distanceToIframeBottom = window.visualViewport.height - controlBottom;
301
- const viewableSpaceBelow = platformDimensions.innerHeight - (platformDimensions.outletOffset + controlBottom);
338
+ const viewableSpaceBelow = innerHeight - (outletOffset + controlBottom);
302
339
  const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;
303
- windowHeight = platformDimensions.innerHeight;
340
+ windowHeight = innerHeight;
304
341
  // If the top of the module is below the top of the window we just use the controlTop
305
342
  // Otherwise we need to add the outletOffset to the controlTop
306
- maxSpaceAbove =
307
- (platformDimensions.outletOffset > 0 ? controlTop : controlTop + platformDimensions.outletOffset) -
308
- displayBuffer;
343
+ maxSpaceAbove = (outletOffset > 0 ? controlTop : controlTop + outletOffset) - displayBuffer;
309
344
  maxSpaceBelow = isIframeShorterThanWindow
310
345
  ? distanceToIframeBottom - displayBuffer
311
346
  : viewableSpaceBelow - displayBuffer;
@@ -320,7 +355,7 @@ const Q2Popover = class {
320
355
  const shouldUpdateMaxHeight = !containerElement.style.getPropertyValue('--comp-pop-max-height') || this.orientationChanged;
321
356
  // we do not want to constantly update the max-height after an orientation change, so we switch this back to false
322
357
  this.orientationChanged = false;
323
- const currentOrDetermineDirection = this.currentDirection || actualDirection || directionWithMostSpace;
358
+ const currentOrDetermineDirection = this.currentDirection || providedDirection || directionWithMostSpace;
324
359
  switch (currentOrDetermineDirection) {
325
360
  case 'up':
326
361
  if (shouldUpdateMaxHeight) {
@@ -338,12 +373,14 @@ const Q2Popover = class {
338
373
  }
339
374
  /// DOM ///
340
375
  render() {
341
- const containerClasses = ['container', this.currentDirection];
376
+ const containerClasses = ['container', this.currentDirection, this.align];
342
377
  if (this.show)
343
378
  containerClasses.push('show');
379
+ if (this.block)
380
+ containerClasses.push('block');
344
381
  if (this.mode === 'legacy')
345
382
  containerClasses.push('legacy');
346
- return (index.h("div", { key: 'a96d0c6516ae6d7c279aa7b550cb5c41260ea618', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer" }, index.h("div", { key: '8700a956386ec2c0580be9751673fec1cb2f6b20', ref: el => (this.contentElement = el), class: "content" }, index.h("slot", { key: 'aeb04e94b887bd1af446ce443fb492a29bb9e0d6' }))));
383
+ return (index.h("div", { key: '614ba5a1899298de8704a4496d6f35b033ee273c', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1, popover: "auto" }, index.h("div", { key: '0f56f5850fad033e7ce7d93f8562d7e1355354a9', ref: el => (this.contentElement = el), class: "content" }, index.h("slot", { key: '68aceadd8c4be1f9eff1384ad21f611b51bcdfdb' }))));
347
384
  }
348
385
  get hostElement() { return index.getElement(this); }
349
386
  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 /**\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 isCurrentlyFocused: boolean = false;\n\n @Element() hostElement: HTMLElement;\n\n /**\n * Emitted when the user clicks outside the element\n */\n @Event() change: EventEmitter;\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 /* 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 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 shadowEventTarget(event: any): Element {\n return event.composedPath()[0] || event.target;\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\n child = child.parentNode || child.host;\n }\n }\n\n originatesInSlots(target: Element): boolean {\n const slots = this.hostElement.querySelectorAll('slot');\n\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\n return false;\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 windowBlurHandler = (): void => {\n const activeElement = this.findActiveElement();\n if (\n (activeElement === document.body && this.isCurrentlyFocused) || // clicked parent frame\n (activeElement !== document.body && activeElement?.tagName === 'IFRAME') // clicked child frame\n ) {\n this.isCurrentlyFocused = false;\n this.change.emit();\n return;\n }\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('0 2px 4px rgba(0, 0, 0, 0.3)'));\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 /**\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 }) direction: 'up' | 'down';\n\n /** Aligns the popover to the left or right side of the control element. */\n @Prop({ reflect: true }) align: 'left' | 'right';\n\n /** Controls whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true }) open: boolean;\n\n /** Indicates the popover will match the width of its parent element. */\n @Prop({ reflect: true }) block: boolean;\n\n /** The element that controls the popover's behavior. */\n @Prop() controlElement: HTMLElement;\n\n @Prop() mode: 'legacy' = null;\n\n /** @deprecated */\n @Prop() minHeight: number;\n\n @Element() hostElement: HTMLElement;\n\n /**\n * Emitted when the popover is opened or closed.\n */\n @Event() popoverStateChanged: EventEmitter<{ open: boolean }>;\n\n @State() currentDirection: 'down' | 'up' = undefined;\n // remove `show` when Popover API is supported in iOS\n @State() show: boolean = false;\n\n containerElement: HTMLDivElement;\n contentElement: HTMLDivElement;\n\n /**\n * The number of pixels to leave between the popover and the edge of the viewport\n */\n displayBuffer = 10;\n\n /** remove when Popover API is supported in iOS */\n orientationChanged: boolean = false;\n\n /// Lifecycle hooks ///\n componentDidLoad() {\n this.handleMinHeight();\n if (this.open) this.determinePopDirection();\n }\n\n disconnectedCallback() {\n this.removeViewportListeners();\n }\n\n /// Methods ///\n @Method()\n async toggle() {\n this.open = !this.open;\n }\n\n @Method()\n async scrollContainerTo(options: ScrollToOptions) {\n this.containerElement.scrollTo(options);\n }\n\n /// Watchers ///\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 this.show = false;\n await waitForNextPaint();\n this.clearCSSProperties();\n }\n }\n\n @Watch('minHeight')\n minHeightProvided() {\n this.handleMinHeight();\n }\n\n /// Listeners ///\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 /// Getters ///\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 /// Helpers ///\n handleMinHeight = () => {\n if (this.minHeight) {\n handleDeprecationWarning(this, 'minHeight', 'prop');\n }\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 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 // #endregion\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 // #endregion\n }\n\n setFixedCSSProperties = async () => {\n const { controlElement, containerElement, currentDirection } = 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;\n const popoverRight: number = window.visualViewport.width - controlRight;\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('--comp-pop-right', `${popoverRight}px`);\n\n if (currentDirection === 'up') {\n containerElement.style.setProperty('--comp-pop-bottom', `${window.visualViewport.height - controlTop}px`);\n }\n if (currentDirection === 'down') {\n containerElement.style.setProperty('--comp-pop-top', `${controlBottom}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 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 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 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 this.show = true;\n if (this.mode === 'legacy') {\n this.setAbsoluteCSSProperties();\n } else {\n this.setFixedCSSProperties();\n }\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 platformDimensions = window.Tecton?.platformDimensions;\n const distanceToIframeBottom = window.visualViewport.height - controlBottom;\n const viewableSpaceBelow =\n platformDimensions.innerHeight - (platformDimensions.outletOffset + controlBottom);\n const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;\n windowHeight = platformDimensions.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 =\n (platformDimensions.outletOffset > 0 ? controlTop : controlTop + platformDimensions.outletOffset) -\n 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 /// DOM ///\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"],"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 /**\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 isCurrentlyFocused: boolean = false;\n\n @Element() hostElement: HTMLElement;\n\n /**\n * Emitted when the user clicks outside the element\n */\n @Event() change: EventEmitter;\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 /* 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 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 shadowEventTarget(event: any): Element {\n return event.composedPath()[0] || event.target;\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\n child = child.parentNode || child.host;\n }\n }\n\n originatesInSlots(target: Element): boolean {\n const slots = this.hostElement.querySelectorAll('slot');\n\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\n return false;\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 windowBlurHandler = (): void => {\n const activeElement = this.findActiveElement();\n if (\n (activeElement === document.body && this.isCurrentlyFocused) || // clicked parent frame\n (activeElement !== document.body && activeElement?.tagName === 'IFRAME') // clicked child frame\n ) {\n this.isCurrentlyFocused = false;\n this.change.emit();\n return;\n }\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 /**\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 }) direction: 'up' | 'down';\n\n /** Aligns the popover to the left or right side of the control element. */\n @Prop({ reflect: true }) align: 'left' | 'right' = 'left';\n\n /** Controls whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true }) open: boolean;\n\n /** Indicates the popover will match the width of its parent element. */\n @Prop({ reflect: true }) block: boolean;\n\n /** The element that controls the popover's behavior. */\n @Prop() controlElement: HTMLElement;\n\n @Prop() mode: 'legacy' = null;\n\n /** @deprecated */\n @Prop() minHeight: number;\n\n @Element() hostElement: HTMLElement;\n\n /**\n * Emitted when the popover is opened or closed.\n */\n @Event() popoverStateChanged: EventEmitter<{ open: boolean }>;\n\n @State() currentDirection: 'down' | 'up' = undefined;\n // remove `show` when Popover API is supported in iOS\n @State() show: boolean = false;\n\n containerElement: HTMLDivElement;\n contentElement: HTMLDivElement;\n\n /**\n * The number of pixels to leave between the popover and the edge of the viewport\n */\n displayBuffer = 10;\n\n orientationChanged: boolean = false;\n\n /// Lifecycle hooks ///\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 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 /// Methods ///\n @Method()\n async toggle() {\n this.open = !this.open;\n }\n\n @Method()\n async scrollContainerTo(options: ScrollToOptions) {\n this.containerElement.scrollTo(options);\n }\n\n /// Watchers ///\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 @Watch('minHeight')\n minHeightProvided() {\n this.handleMinHeight();\n }\n\n /// Listeners ///\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 /// Getters ///\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 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 supportsPopoverAPI(): boolean {\n return Object.hasOwn(HTMLElement.prototype, 'popover');\n }\n\n /// Helpers ///\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 viewPortChanged = () => {\n if (!this.open) return;\n this.determinePopDirection();\n };\n\n viewPortOrientationChanged = () => {\n this.orientationChanged = true;\n this.viewPortChanged();\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 removeViewportListeners() {\n window.removeEventListener('resize', this.viewPortOrientationChanged);\n visualViewport?.removeEventListener('resize', this.viewPortChanged);\n window.removeEventListener('scroll', this.viewPortChanged);\n screen?.orientation?.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n window.removeEventListener('orientationchange', this.viewPortOrientationChanged);\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 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 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 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 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 /// DOM ///\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"],"version":3}
@@ -19269,4 +19269,4 @@ Object.keys(_index245).forEach(function (key) {
19269
19269
 
19270
19270
  exports.dateFns = dateFns;
19271
19271
 
19272
- //# sourceMappingURL=index-0430339e.js.map
19272
+ //# sourceMappingURL=index-f69742cf.js.map