q2-tecton-elements 1.52.2 → 1.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/dist/bundle-report.json +43422 -0
  2. package/dist/cjs/{action-sheet-d32c41ae.js → action-sheet-8254c0fd.js} +6 -3
  3. package/dist/cjs/action-sheet-8254c0fd.js.map +1 -0
  4. package/dist/cjs/click-elsewhere.cjs.entry.js +96 -0
  5. package/dist/cjs/click-elsewhere.cjs.entry.js.map +1 -0
  6. package/dist/cjs/{index-07285783.js → index-76f63767.js} +1 -21
  7. package/dist/cjs/index-76f63767.js.map +1 -0
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/q2-action-group.cjs.entry.js +38 -17
  10. package/dist/cjs/q2-action-group.cjs.entry.js.map +1 -1
  11. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-badge_7.cjs.entry.js +52 -18
  15. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-dropdown-item.cjs.entry.js +17 -16
  28. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-dropdown.cjs.entry.js +48 -99
  30. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  31. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-file-picker.cjs.entry.js +236 -0
  33. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -0
  34. package/dist/cjs/q2-item_3.cjs.entry.js +251 -0
  35. package/dist/cjs/q2-item_3.cjs.entry.js.map +1 -0
  36. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  40. package/dist/cjs/{q2-option-list.cjs.entry.js → q2-option-list_2.cjs.entry.js} +355 -21
  41. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -0
  42. package/dist/cjs/q2-option.cjs.entry.js +18 -4
  43. package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
  44. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  45. package/dist/cjs/q2-pill.cjs.entry.js +14 -9
  46. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  49. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  50. package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  52. package/dist/cjs/q2-select.cjs.entry.js +8 -5
  53. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  54. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  55. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  56. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  57. package/dist/cjs/q2-tag.cjs.entry.js +9 -4
  58. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  59. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  60. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  61. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  62. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  63. package/dist/collection/collection-manifest.json +1 -0
  64. package/dist/collection/components/q2-action-group/q2-action-group.css +25 -8
  65. package/dist/collection/components/q2-action-group/q2-action-group.js +55 -33
  66. package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
  67. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js +142 -6
  68. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -1
  69. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js +126 -62
  70. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -1
  71. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js +1 -1
  72. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
  73. package/dist/collection/components/q2-avatar/q2-avatar.css +5 -0
  74. package/dist/collection/components/q2-btn/q2-btn.css +74 -0
  75. package/dist/collection/components/q2-btn/q2-btn.js +50 -16
  76. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  77. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js +29 -0
  78. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
  79. package/dist/collection/components/q2-dropdown/q2-dropdown.js +83 -103
  80. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  81. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +188 -24
  82. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  83. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.css +1 -1
  84. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +54 -16
  85. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  86. package/dist/collection/components/q2-file-picker/q2-file-picker.css +307 -0
  87. package/dist/collection/components/q2-file-picker/q2-file-picker.js +426 -0
  88. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -0
  89. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js +11 -0
  90. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -0
  91. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js +435 -0
  92. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -0
  93. package/dist/collection/components/q2-item/q2-item.css +3 -0
  94. package/dist/collection/components/q2-link/q2-link.js +26 -7
  95. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  96. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js +20 -118
  97. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
  98. package/dist/collection/components/q2-link/test/q2-link-test.spec.js +193 -0
  99. package/dist/collection/components/q2-link/test/q2-link-test.spec.js.map +1 -0
  100. package/dist/collection/components/q2-list/q2-list.css +6 -0
  101. package/dist/collection/components/q2-loading/q2-loading.js +1 -1
  102. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  103. package/dist/collection/components/q2-option/q2-option.css +9 -3
  104. package/dist/collection/components/q2-option/q2-option.js +37 -4
  105. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  106. package/dist/collection/components/q2-option/test/q2-option-test.spec.js +22 -0
  107. package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
  108. package/dist/collection/components/q2-option-list/q2-option-list.js +56 -29
  109. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  110. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js +489 -0
  111. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js.map +1 -0
  112. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  113. package/dist/collection/components/q2-pill/q2-pill.js +12 -7
  114. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  115. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +109 -1
  116. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  117. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  118. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  119. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  120. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  121. package/dist/collection/components/q2-section/q2-section.js +2 -2
  122. package/dist/collection/components/q2-select/q2-select.js +7 -4
  123. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  124. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +1 -14
  125. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  126. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  127. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  128. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  129. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  130. package/dist/collection/components/q2-tag/q2-tag.js +7 -2
  131. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  132. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +1 -1
  133. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  134. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  135. package/dist/collection/utils/action-sheet.js +5 -2
  136. package/dist/collection/utils/action-sheet.js.map +1 -1
  137. package/dist/collection/utils/helpers.js +29 -3
  138. package/dist/collection/utils/helpers.js.map +1 -1
  139. package/dist/collection/utils/test/action-sheet-test.e2e.js +34 -6
  140. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
  141. package/dist/components/action-sheet.js +6 -3
  142. package/dist/components/action-sheet.js.map +1 -1
  143. package/dist/components/index.js +2 -0
  144. package/dist/components/index.js.map +1 -1
  145. package/dist/components/index2.js +1 -20
  146. package/dist/components/index2.js.map +1 -1
  147. package/dist/components/q2-action-group.js +41 -19
  148. package/dist/components/q2-action-group.js.map +1 -1
  149. package/dist/components/q2-avatar2.js +1 -1
  150. package/dist/components/q2-avatar2.js.map +1 -1
  151. package/dist/components/q2-btn2.js +50 -16
  152. package/dist/components/q2-btn2.js.map +1 -1
  153. package/dist/components/q2-dropdown-item2.js +19 -17
  154. package/dist/components/q2-dropdown-item2.js.map +1 -1
  155. package/dist/components/q2-dropdown.js +67 -110
  156. package/dist/components/q2-dropdown.js.map +1 -1
  157. package/dist/components/q2-file-picker.d.ts +11 -0
  158. package/dist/components/q2-file-picker.js +301 -0
  159. package/dist/components/q2-file-picker.js.map +1 -0
  160. package/dist/components/q2-item.js +1 -130
  161. package/dist/components/q2-item.js.map +1 -1
  162. package/dist/{esm/q2-item.entry.js → components/q2-item2.js} +29 -11
  163. package/dist/components/q2-item2.js.map +1 -0
  164. package/dist/components/q2-link.js +1 -86
  165. package/dist/components/q2-link.js.map +1 -1
  166. package/dist/{esm/q2-link.entry.js → components/q2-link2.js} +42 -10
  167. package/dist/components/q2-link2.js.map +1 -0
  168. package/dist/components/q2-list.js +1 -94
  169. package/dist/components/q2-list.js.map +1 -1
  170. package/dist/{esm/q2-list.entry.js → components/q2-list2.js} +30 -11
  171. package/dist/components/q2-list2.js.map +1 -0
  172. package/dist/components/q2-loading2.js.map +1 -1
  173. package/dist/components/q2-option-list2.js +44 -19
  174. package/dist/components/q2-option-list2.js.map +1 -1
  175. package/dist/components/q2-option2.js +20 -4
  176. package/dist/components/q2-option2.js.map +1 -1
  177. package/dist/components/q2-pagination.js +3 -3
  178. package/dist/components/q2-pill.js +13 -8
  179. package/dist/components/q2-pill.js.map +1 -1
  180. package/dist/components/q2-popover2.js +1 -1
  181. package/dist/components/q2-popover2.js.map +1 -1
  182. package/dist/components/q2-relative-time.js +1 -1
  183. package/dist/components/q2-resize-observer2.js +1 -1
  184. package/dist/components/q2-section.js +2 -2
  185. package/dist/components/q2-select2.js +8 -5
  186. package/dist/components/q2-select2.js.map +1 -1
  187. package/dist/components/q2-stepper-vertical.js +1 -1
  188. package/dist/components/q2-stepper.js +1 -1
  189. package/dist/components/q2-tab-container.js +1 -1
  190. package/dist/components/q2-tab-pane.js +1 -1
  191. package/dist/components/q2-tag.js +8 -3
  192. package/dist/components/q2-tag.js.map +1 -1
  193. package/dist/components/tecton-tab-pane.js +2 -2
  194. package/dist/esm/{action-sheet-e64cb6f7.js → action-sheet-1e24cb38.js} +7 -4
  195. package/dist/esm/action-sheet-1e24cb38.js.map +1 -0
  196. package/dist/esm/click-elsewhere.entry.js +92 -0
  197. package/dist/esm/click-elsewhere.entry.js.map +1 -0
  198. package/dist/esm/{index-d18e2a20.js → index-504f1a9e.js} +2 -21
  199. package/dist/esm/index-504f1a9e.js.map +1 -0
  200. package/dist/esm/loader.js +1 -1
  201. package/dist/esm/q2-action-group.entry.js +39 -18
  202. package/dist/esm/q2-action-group.entry.js.map +1 -1
  203. package/dist/esm/q2-action-sheet.entry.js +1 -1
  204. package/dist/esm/q2-avatar.entry.js +1 -1
  205. package/dist/esm/q2-avatar.entry.js.map +1 -1
  206. package/dist/esm/q2-badge_7.entry.js +52 -18
  207. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  208. package/dist/esm/q2-calendar.entry.js +1 -1
  209. package/dist/esm/q2-card.entry.js +1 -1
  210. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  211. package/dist/esm/q2-carousel.entry.js +1 -1
  212. package/dist/esm/q2-chart-area.entry.js +1 -1
  213. package/dist/esm/q2-chart-bar.entry.js +1 -1
  214. package/dist/esm/q2-chart-donut.entry.js +1 -1
  215. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  216. package/dist/esm/q2-checkbox.entry.js +1 -1
  217. package/dist/esm/q2-data-table.entry.js +1 -1
  218. package/dist/esm/q2-detail.entry.js +1 -1
  219. package/dist/esm/q2-dropdown-item.entry.js +18 -17
  220. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  221. package/dist/esm/q2-dropdown.entry.js +48 -99
  222. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  223. package/dist/esm/q2-editable-field.entry.js +1 -1
  224. package/dist/esm/q2-file-picker.entry.js +232 -0
  225. package/dist/esm/q2-file-picker.entry.js.map +1 -0
  226. package/dist/esm/q2-item_3.entry.js +245 -0
  227. package/dist/esm/q2-item_3.entry.js.map +1 -0
  228. package/dist/esm/q2-loc.entry.js +1 -1
  229. package/dist/esm/q2-message.entry.js +1 -1
  230. package/dist/esm/q2-month-picker.entry.js +1 -1
  231. package/dist/esm/q2-optgroup.entry.js +1 -1
  232. package/dist/esm/{q2-option-list.entry.js → q2-option-list_2.entry.js} +355 -22
  233. package/dist/esm/q2-option-list_2.entry.js.map +1 -0
  234. package/dist/esm/q2-option.entry.js +18 -4
  235. package/dist/esm/q2-option.entry.js.map +1 -1
  236. package/dist/esm/q2-pagination.entry.js +4 -4
  237. package/dist/esm/q2-pill.entry.js +14 -9
  238. package/dist/esm/q2-pill.entry.js.map +1 -1
  239. package/dist/esm/q2-radio-group.entry.js +1 -1
  240. package/dist/esm/q2-radio.entry.js +1 -1
  241. package/dist/esm/q2-relative-time.entry.js +2 -2
  242. package/dist/esm/q2-resize-observer.entry.js +1 -1
  243. package/dist/esm/q2-section.entry.js +3 -3
  244. package/dist/esm/q2-select.entry.js +8 -5
  245. package/dist/esm/q2-select.entry.js.map +1 -1
  246. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  247. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  248. package/dist/esm/q2-stepper.entry.js +2 -2
  249. package/dist/esm/q2-tag.entry.js +9 -4
  250. package/dist/esm/q2-tag.entry.js.map +1 -1
  251. package/dist/esm/q2-tecton-elements.js +1 -1
  252. package/dist/esm/q2-textarea.entry.js +1 -1
  253. package/dist/esm/q2-tooltip.entry.js +1 -1
  254. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  255. package/dist/q2-tecton-elements/action-sheet-1e24cb38.js +80 -0
  256. package/dist/q2-tecton-elements/action-sheet-1e24cb38.js.map +1 -0
  257. package/dist/q2-tecton-elements/click-elsewhere.entry.js +90 -0
  258. package/dist/q2-tecton-elements/click-elsewhere.entry.js.map +1 -0
  259. package/dist/q2-tecton-elements/{index-d18e2a20.js → index-504f1a9e.js} +51 -69
  260. package/dist/q2-tecton-elements/index-504f1a9e.js.map +1 -0
  261. package/dist/q2-tecton-elements/q2-action-group.entry.js +57 -33
  262. package/dist/q2-tecton-elements/q2-action-group.entry.js.map +1 -1
  263. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +1 -1
  264. package/dist/q2-tecton-elements/q2-avatar.entry.js +1 -1
  265. package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
  266. package/dist/q2-tecton-elements/q2-badge_7.entry.js +222 -181
  267. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  268. package/dist/q2-tecton-elements/q2-calendar.entry.js +1 -1
  269. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  270. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +1 -1
  271. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  272. package/dist/q2-tecton-elements/q2-chart-area.entry.js +1 -1
  273. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +1 -1
  274. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +1 -1
  275. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +1 -1
  276. package/dist/q2-tecton-elements/q2-checkbox.entry.js +1 -1
  277. package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
  278. package/dist/q2-tecton-elements/q2-detail.entry.js +1 -1
  279. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +34 -34
  280. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -1
  281. package/dist/q2-tecton-elements/q2-dropdown.entry.js +86 -137
  282. package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
  283. package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
  284. package/dist/q2-tecton-elements/q2-file-picker.entry.js +339 -0
  285. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -0
  286. package/dist/q2-tecton-elements/q2-item_3.entry.js +332 -0
  287. package/dist/q2-tecton-elements/q2-item_3.entry.js.map +1 -0
  288. package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
  289. package/dist/q2-tecton-elements/q2-message.entry.js +1 -1
  290. package/dist/q2-tecton-elements/q2-month-picker.entry.js +1 -1
  291. package/dist/q2-tecton-elements/q2-optgroup.entry.js +1 -1
  292. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +902 -0
  293. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -0
  294. package/dist/q2-tecton-elements/q2-option.entry.js +31 -21
  295. package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -1
  296. package/dist/q2-tecton-elements/q2-pagination.entry.js +34 -34
  297. package/dist/q2-tecton-elements/q2-pill.entry.js +24 -20
  298. package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -1
  299. package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
  300. package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
  301. package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
  302. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
  303. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  304. package/dist/q2-tecton-elements/q2-select.entry.js +21 -18
  305. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  306. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
  307. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
  308. package/dist/q2-tecton-elements/q2-stepper.entry.js +29 -29
  309. package/dist/q2-tecton-elements/q2-tag.entry.js +15 -11
  310. package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -1
  311. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  312. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  313. package/dist/q2-tecton-elements/q2-textarea.entry.js +1 -1
  314. package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
  315. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  316. package/dist/types/components/q2-action-group/q2-action-group.d.ts +19 -11
  317. package/dist/types/components/q2-btn/q2-btn.d.ts +8 -3
  318. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +18 -9
  319. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +14 -1
  320. package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +98 -0
  321. package/dist/types/components/q2-link/q2-link.d.ts +8 -6
  322. package/dist/types/components/q2-loading/q2-loading.d.ts +2 -2
  323. package/dist/types/components/q2-option/q2-option.d.ts +10 -1
  324. package/dist/types/components/q2-option-list/q2-option-list.d.ts +9 -8
  325. package/dist/types/components/q2-pill/q2-pill.d.ts +2 -2
  326. package/dist/types/components.d.ts +192 -28
  327. package/dist/types/util.d.ts +1 -0
  328. package/dist/types/utils/helpers.d.ts +1 -1
  329. package/package.json +4 -3
  330. package/dist/cjs/action-sheet-d32c41ae.js.map +0 -1
  331. package/dist/cjs/click-elsewhere_2.cjs.entry.js +0 -406
  332. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +0 -1
  333. package/dist/cjs/index-07285783.js.map +0 -1
  334. package/dist/cjs/q2-item.cjs.entry.js +0 -120
  335. package/dist/cjs/q2-item.cjs.entry.js.map +0 -1
  336. package/dist/cjs/q2-link.cjs.entry.js +0 -64
  337. package/dist/cjs/q2-link.cjs.entry.js.map +0 -1
  338. package/dist/cjs/q2-list.cjs.entry.js +0 -83
  339. package/dist/cjs/q2-list.cjs.entry.js.map +0 -1
  340. package/dist/cjs/q2-option-list.cjs.entry.js.map +0 -1
  341. package/dist/esm/action-sheet-e64cb6f7.js.map +0 -1
  342. package/dist/esm/click-elsewhere_2.entry.js +0 -401
  343. package/dist/esm/click-elsewhere_2.entry.js.map +0 -1
  344. package/dist/esm/index-d18e2a20.js.map +0 -1
  345. package/dist/esm/q2-item.entry.js.map +0 -1
  346. package/dist/esm/q2-link.entry.js.map +0 -1
  347. package/dist/esm/q2-list.entry.js.map +0 -1
  348. package/dist/esm/q2-option-list.entry.js.map +0 -1
  349. package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js +0 -77
  350. package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js.map +0 -1
  351. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +0 -398
  352. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +0 -1
  353. package/dist/q2-tecton-elements/index-d18e2a20.js.map +0 -1
  354. package/dist/q2-tecton-elements/q2-item.entry.js +0 -158
  355. package/dist/q2-tecton-elements/q2-item.entry.js.map +0 -1
  356. package/dist/q2-tecton-elements/q2-link.entry.js +0 -83
  357. package/dist/q2-tecton-elements/q2-link.entry.js.map +0 -1
  358. package/dist/q2-tecton-elements/q2-list.entry.js +0 -100
  359. package/dist/q2-tecton-elements/q2-list.entry.js.map +0 -1
  360. package/dist/q2-tecton-elements/q2-option-list.entry.js +0 -585
  361. package/dist/q2-tecton-elements/q2-option-list.entry.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-7a5365e2.js';
2
- import { n as nextPaint, l as loc, o as overrideFocus, i as isEventFromElement, w as waitForNextPaint, x as isVisible } from './index-d18e2a20.js';
2
+ import { n as nextPaint, l as loc, o as overrideFocus, i as isEventFromElement, w as waitForNextPaint, v as isVisible, h as handleDeprecationWarning } from './index-504f1a9e.js';
3
3
 
4
4
  function sanitizeRegexString(regexString) {
5
5
  return regexString.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
@@ -21,7 +21,7 @@ const Q2OptionList = class {
21
21
  this.scheduledAfterRender = [];
22
22
  this.clickHandler = (event) => {
23
23
  const target = event.target;
24
- const option = target.closest('q2-option');
24
+ const option = target.closest('q2-option:not([separator]):not([separator=true]), q2-dropdown-item:not([separator]):not([separator=true])');
25
25
  this.selectOption(option);
26
26
  if (this.multiple)
27
27
  return;
@@ -151,7 +151,8 @@ const Q2OptionList = class {
151
151
  break;
152
152
  case 'ArrowUp':
153
153
  event.preventDefault();
154
- const isFirstVisibleOptionActive = allVisibleOptions[0].active;
154
+ const firstVisibleOption = allVisibleOptions[0];
155
+ const isFirstVisibleOptionActive = firstVisibleOption.active;
155
156
  if (isFirstVisibleOptionActive)
156
157
  break;
157
158
  if (activeIndex === undefined) {
@@ -167,7 +168,8 @@ const Q2OptionList = class {
167
168
  }
168
169
  case 'ArrowDown':
169
170
  event.preventDefault();
170
- const isLastVisibleOptionActive = allVisibleOptions[allVisibleOptions.length - 1].active;
171
+ const lastVisibleOption = allVisibleOptions[allVisibleOptions.length - 1];
172
+ const isLastVisibleOptionActive = lastVisibleOption.active;
171
173
  if (isLastVisibleOptionActive)
172
174
  break;
173
175
  if (activeIndex === undefined) {
@@ -289,7 +291,7 @@ const Q2OptionList = class {
289
291
  // #endregion
290
292
  // #region Component Lifecycle Events
291
293
  componentWillLoad() {
292
- this.hasOptions = !!this.hostElement.querySelectorAll('q2-option').length;
294
+ this.hasOptions = !!this.hostElement.querySelectorAll('q2-option:not([separator]):not([separator=true]), q2-dropdown-item:not([separator]):not([separator=true])').length;
293
295
  }
294
296
  componentDidLoad() {
295
297
  overrideFocus(this.hostElement);
@@ -355,24 +357,28 @@ const Q2OptionList = class {
355
357
  this.showSelected = false;
356
358
  return;
357
359
  }
358
- this.allOptions.forEach(option => (option._multiSelectHidden = showSelected ? !option.selected : false));
360
+ this.allOptions.forEach(option => {
361
+ if (!('_multiSelectHidden' in option))
362
+ return;
363
+ option._multiSelectHidden = showSelected ? !option.selected : false;
364
+ });
359
365
  }
360
366
  // #endregion
361
367
  // #region Local Methods
362
368
  get allContents() {
363
369
  const rootSlot = this.getRootSlot(this.hostElement);
364
- const acceptedTags = ['Q2-OPTGROUP', 'Q2-OPTION'];
365
- return rootSlot.filter(element => acceptedTags.includes(element.tagName));
370
+ const acceptedTags = new Set(['Q2-OPTGROUP', 'Q2-OPTION', 'Q2-DROPDOWN-ITEM']);
371
+ return rootSlot.filter(element => acceptedTags.has(element.tagName));
366
372
  }
367
373
  get allOptions() {
368
374
  const contents = this.allContents;
369
375
  const extractOptions = (elements) => {
370
376
  return elements.reduce((acc, element) => {
371
- if (element.tagName === 'Q2-OPTGROUP') {
372
- return [...acc, ...extractOptions(Array.from(element.children))];
377
+ if (element.tagName === 'Q2-OPTION' || element.tagName === 'Q2-DROPDOWN-ITEM') {
378
+ return element.separator ? acc : [...acc, element];
373
379
  }
374
- else if (element.tagName === 'Q2-OPTION') {
375
- return [...acc, element];
380
+ else if (element.tagName === 'Q2-OPTGROUP') {
381
+ return [...acc, ...extractOptions(Array.from(element.children))];
376
382
  }
377
383
  else {
378
384
  return acc;
@@ -382,7 +388,10 @@ const Q2OptionList = class {
382
388
  return extractOptions(contents);
383
389
  }
384
390
  get allVisibleOptions() {
385
- return this.allOptions.filter(option => !option.hidden && !option._multiSelectHidden && !option.disabled && !option.disabledGroup);
391
+ return this.allOptions.filter(option => !option.hidden &&
392
+ (!('_multiSelectHidden' in option) || !option._multiSelectHidden) &&
393
+ !option.disabled &&
394
+ (!('disabledGroup' in option) || !option.disabledGroup));
386
395
  }
387
396
  adjustActiveOptionAndScroll(numToAdd) {
388
397
  this.activeIndex += numToAdd;
@@ -390,13 +399,12 @@ const Q2OptionList = class {
390
399
  this.setFocusedOption();
391
400
  this.scrollToActiveOption();
392
401
  }
393
- async checkOptions() {
402
+ checkOptions() {
394
403
  const { type } = this;
395
- const options = await this.getOptions();
396
404
  if (!type)
397
405
  return;
398
406
  const optionRole = type === 'menu' ? 'menuitem' : 'option';
399
- options.forEach(option => {
407
+ this.allOptions.forEach(option => {
400
408
  option.role = optionRole;
401
409
  });
402
410
  }
@@ -416,12 +424,16 @@ const Q2OptionList = class {
416
424
  this.activeIndex = nextSiblingIndex;
417
425
  this.setFocusedOption();
418
426
  this.scheduledAfterRender.push(() => {
427
+ if (!('_multiSelectHidden' in option))
428
+ return;
419
429
  option._multiSelectHidden = !option.selected;
420
430
  });
421
431
  }
422
432
  getDefaultActiveIndex() {
423
433
  const { allOptions } = this;
424
- const firstSelected = allOptions.findIndex(element => element.selected);
434
+ const firstSelected = allOptions.findIndex(element => {
435
+ return 'selected' in element && element.selected;
436
+ });
425
437
  if (firstSelected > -1)
426
438
  return firstSelected;
427
439
  const firstEnabled = allOptions.findIndex(element => !element.hidden);
@@ -483,12 +495,17 @@ const Q2OptionList = class {
483
495
  }
484
496
  selectOption(selectedOption) {
485
497
  const { multiple, noSelect, showSelected } = this;
486
- if (!selectedOption || selectedOption.disabled || selectedOption.disabledGroup)
498
+ if (!selectedOption ||
499
+ selectedOption.disabled ||
500
+ ('disabledGroup' in selectedOption && selectedOption.disabledGroup))
487
501
  return;
488
502
  const selectedValue = selectedOption.value;
503
+ const displayValue = 'display' in selectedOption && selectedOption.display
504
+ ? selectedOption.display
505
+ : selectedOption.innerText.trim();
489
506
  const valueObject = {
490
507
  value: selectedValue,
491
- display: selectedOption.display || selectedOption.innerText.trim(),
508
+ display: displayValue,
492
509
  };
493
510
  let values = [];
494
511
  if (multiple) {
@@ -531,7 +548,11 @@ const Q2OptionList = class {
531
548
  updateMultipleOptionAttrs() {
532
549
  const { allOptions, selectedOptions } = this;
533
550
  const selectedValues = selectedOptions.map(({ value }) => value);
551
+ if (this.noSelect)
552
+ return;
534
553
  allOptions.forEach(element => {
554
+ if (!('selected' in element))
555
+ return;
535
556
  element.selected = selectedValues.includes(element.value);
536
557
  });
537
558
  }
@@ -539,14 +560,18 @@ const Q2OptionList = class {
539
560
  var _a;
540
561
  const { allOptions, selectedOptions } = this;
541
562
  const selectedValue = ((_a = selectedOptions[0]) === null || _a === void 0 ? void 0 : _a.value) || undefined;
563
+ if (this.noSelect)
564
+ return;
542
565
  allOptions.forEach(element => {
566
+ if (!('selected' in element))
567
+ return;
543
568
  element.selected = element.value === selectedValue;
544
569
  });
545
570
  }
546
571
  // #endregion
547
572
  // #region Render Methods
548
573
  render() {
549
- return (h(Host, { key: '221e3d11f55902cd286a6f69cb1c30ce4cc3cb1c' }, h("div", { key: '5e08ad2fd5a1a773976285ad16f2e2ef6e2161be', class: "content", ref: el => (this.contentElement = el), onFocusout: this.focusoutHandler }, h("div", { key: '537330008c139176aaa19ba997579e61f841fffb', class: "options", "aria-label": loc('tecton.element.optionList.label', [this.label]), "aria-multiselectable": `${!!this.multiple}`, role: this.type || 'listbox', onKeyDown: this.internalKeydownHandler, onClick: this.clickHandler }, h("slot", { key: '9204233743b02ead43bbe4f9329973059af24414' })))));
574
+ return (h(Host, { key: '16e12e08dcd1d6514aa59ad8dd20dbf33d352bbe' }, h("div", { key: 'b0eb152206ccb8b93e98d11c32894cb136ffc9a9', class: "content", ref: el => (this.contentElement = el), onFocusout: this.focusoutHandler }, h("div", { key: 'bccbd0eb8bc8fc92db4629be02ab23e050e32fe9', class: "options", "aria-label": loc('tecton.element.optionList.label', [this.label]), "aria-multiselectable": `${!!this.multiple}`, role: this.type || 'listbox', onKeyDown: this.internalKeydownHandler, onClick: this.clickHandler }, h("slot", { key: '9b5a130d4d0a1a5f594b47669607febf39c0ea87' })))));
550
575
  }
551
576
  get hostElement() { return getElement(this); }
552
577
  static get watchers() { return {
@@ -556,6 +581,314 @@ const Q2OptionList = class {
556
581
  };
557
582
  Q2OptionList.style = Q2OptionListStyle0;
558
583
 
559
- export { Q2OptionList as q2_option_list };
584
+ 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}";
585
+ const Q2PopoverStyle0 = q2PopoverCss;
586
+
587
+ const Q2Popover = class {
588
+ constructor(hostRef) {
589
+ registerInstance(this, hostRef);
590
+ this.popoverStateChanged = createEvent(this, "popoverStateChanged", 7);
591
+ /**
592
+ * The number of pixels to leave between the popover and the edge of the viewport
593
+ */
594
+ this.displayBuffer = 10;
595
+ /** remove when Popover API is supported in iOS */
596
+ this.orientationChanged = false;
597
+ this.handleMinHeight = () => {
598
+ if (this.minHeight) {
599
+ handleDeprecationWarning(this, 'minHeight', 'prop');
600
+ }
601
+ };
602
+ this.setAbsoluteCSSProperties = async () => {
603
+ const { controlElement, containerElement, currentDirection, align } = this;
604
+ if (align === 'right') {
605
+ containerElement.style.setProperty('--comp-pop-right', '0');
606
+ containerElement.style.setProperty('--comp-pop-left', 'unset');
607
+ }
608
+ else {
609
+ containerElement.style.setProperty('--comp-pop-left', '0');
610
+ containerElement.style.setProperty('--comp-pop-right', 'unset');
611
+ }
612
+ if (this.block) {
613
+ containerElement.style.setProperty('--comp-pop-width', '100%');
614
+ }
615
+ if (currentDirection === 'up') {
616
+ const controlStyle = getComputedStyle(controlElement);
617
+ const controlSize = parseInt(controlStyle.height || '0') +
618
+ parseInt(controlStyle.borderTopWidth || '0') +
619
+ parseInt(controlStyle.borderBottomWidth || '0');
620
+ containerElement.style.setProperty('--comp-pop-bottom', `${controlSize}px`);
621
+ }
622
+ // Wait for one paint to prevent layout thrashing
623
+ await waitForNextPaint();
624
+ containerElement.style.setProperty('--comp-pop-opacity', '1');
625
+ };
626
+ this.setFixedCSSProperties = async () => {
627
+ var _a, _b;
628
+ const { controlElement, containerElement, currentDirection, rootElementRect } = this;
629
+ 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 : {
630
+ top: 0,
631
+ bottom: 0,
632
+ left: 0,
633
+ right: 0,
634
+ };
635
+ const popoverLeft = controlLeft - rootElementRect.left;
636
+ if (this.block)
637
+ containerElement.style.setProperty('--comp-pop-width', `${(controlElement === null || controlElement === void 0 ? void 0 : controlElement.offsetWidth) || 0}px`);
638
+ containerElement.style.setProperty('--comp-pop-left', `${popoverLeft}px`);
639
+ containerElement.style.setProperty('--comp-pop-right', `${rootElementRect.width + rootElementRect.left - controlRight}px`);
640
+ if (currentDirection === 'up') {
641
+ containerElement.style.setProperty('--comp-pop-bottom', `${rootElementRect.height + rootElementRect.top - controlTop}px`);
642
+ }
643
+ if (currentDirection === 'down') {
644
+ containerElement.style.setProperty('--comp-pop-top', `${controlBottom - rootElementRect.top}px`);
645
+ }
646
+ // Wait for one paint to prevent layout thrashing
647
+ await waitForNextPaint();
648
+ containerElement.style.setProperty('--comp-pop-opacity', '1');
649
+ };
650
+ this.viewPortChanged = () => {
651
+ if (!this.open)
652
+ return;
653
+ this.determinePopDirection();
654
+ };
655
+ this.viewPortOrientationChanged = () => {
656
+ this.orientationChanged = true;
657
+ this.viewPortChanged();
658
+ };
659
+ this.currentDirection = undefined;
660
+ this.show = false;
661
+ this.align = undefined;
662
+ this.block = undefined;
663
+ this.controlElement = undefined;
664
+ this.direction = undefined;
665
+ this.maxHeight = undefined;
666
+ this.minHeight = undefined;
667
+ this.mode = null;
668
+ this.open = undefined;
669
+ }
670
+ // #endregion
671
+ // #region Component Lifecycle Events
672
+ disconnectedCallback() {
673
+ this.removeViewportListeners();
674
+ }
675
+ componentDidLoad() {
676
+ this.handleMinHeight();
677
+ if (this.open)
678
+ this.determinePopDirection();
679
+ }
680
+ // #endregion
681
+ // #region Listeners
682
+ popoverStateHandler(event) {
683
+ const { detail: { open }, } = event;
684
+ if (open === this.open)
685
+ return;
686
+ this.open = open;
687
+ event.stopPropagation();
688
+ }
689
+ // #endregion
690
+ // #region Public Methods API
691
+ async scrollContainerTo(options) {
692
+ this.containerElement.scrollTo(options);
693
+ }
694
+ async toggle() {
695
+ this.open = !this.open;
696
+ }
697
+ // #endregion
698
+ // #region Watchers
699
+ minHeightProvided() {
700
+ this.handleMinHeight();
701
+ }
702
+ async openChanged(open) {
703
+ this.setRootElement();
704
+ this.popoverStateChanged.emit({ open });
705
+ if (open) {
706
+ this.addViewportListeners();
707
+ this.determinePopDirection();
708
+ }
709
+ else {
710
+ this.removeViewportListeners();
711
+ this.currentDirection = undefined;
712
+ this.show = false;
713
+ await waitForNextPaint();
714
+ this.clearCSSProperties();
715
+ }
716
+ }
717
+ // #endregion
718
+ // #region Local Methods
719
+ get isModule() {
720
+ var _a, _b;
721
+ const isIframe = window !== window.top;
722
+ const hasPlatformDimensions = Object.keys((_b = (_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.platformDimensions) !== null && _b !== void 0 ? _b : {}).length > 0;
723
+ return isIframe && hasPlatformDimensions;
724
+ }
725
+ get providedDirection() {
726
+ const { direction } = this;
727
+ switch (direction) {
728
+ case 'up':
729
+ case 'down':
730
+ return direction;
731
+ default:
732
+ return undefined;
733
+ }
734
+ }
735
+ get validatedMaxHeight() {
736
+ const { maxHeight } = this;
737
+ return isNaN(maxHeight) ? undefined : maxHeight;
738
+ }
739
+ addViewportListeners() {
740
+ var _a;
741
+ window.addEventListener('resize', this.viewPortOrientationChanged);
742
+ // #region remove when Popover API is supported in iOS
743
+ window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });
744
+ (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.addEventListener('change', this.viewPortOrientationChanged);
745
+ window.addEventListener('orientationchange', this.viewPortOrientationChanged);
746
+ // #endregion
747
+ }
748
+ clearCSSProperties() {
749
+ this.containerElement.style.removeProperty('--comp-pop-max-height');
750
+ this.containerElement.style.removeProperty('--comp-pop-top');
751
+ this.containerElement.style.removeProperty('--comp-pop-bottom');
752
+ this.containerElement.style.removeProperty('--comp-pop-left');
753
+ this.containerElement.style.removeProperty('--comp-pop-right');
754
+ this.containerElement.style.removeProperty('--comp-pop-width');
755
+ this.containerElement.style.removeProperty('--comp-pop-opacity');
756
+ }
757
+ async determinePopDirection() {
758
+ var _a, _b, _c;
759
+ const { containerElement, controlElement, providedDirection, displayBuffer } = this;
760
+ if (containerElement)
761
+ containerElement.style.maxHeight = null;
762
+ await waitForNextPaint();
763
+ const { isModule } = this;
764
+ const { top: controlTop, bottom: controlBottom } = (_b = (_a = controlElement === null || controlElement === void 0 ? void 0 : controlElement.getBoundingClientRect) === null || _a === void 0 ? void 0 : _a.call(controlElement)) !== null && _b !== void 0 ? _b : {
765
+ top: 0,
766
+ bottom: 0,
767
+ };
768
+ let windowHeight;
769
+ let maxSpaceAbove;
770
+ let maxSpaceBelow;
771
+ if (isModule) {
772
+ const { outletOffset = 0, innerHeight = window.innerHeight } = ((_c = window.Tecton) === null || _c === void 0 ? void 0 : _c.platformDimensions) || {};
773
+ const distanceToIframeBottom = window.visualViewport.height - controlBottom;
774
+ const viewableSpaceBelow = innerHeight - (outletOffset + controlBottom);
775
+ const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;
776
+ windowHeight = innerHeight;
777
+ // If the top of the module is below the top of the window we just use the controlTop
778
+ // Otherwise we need to add the outletOffset to the controlTop
779
+ maxSpaceAbove = (outletOffset > 0 ? controlTop : controlTop + outletOffset) - displayBuffer;
780
+ maxSpaceBelow = isIframeShorterThanWindow
781
+ ? distanceToIframeBottom - displayBuffer
782
+ : viewableSpaceBelow - displayBuffer;
783
+ }
784
+ else {
785
+ windowHeight = window.visualViewport.height;
786
+ maxSpaceAbove = controlTop - displayBuffer;
787
+ maxSpaceBelow = windowHeight - controlBottom - displayBuffer;
788
+ }
789
+ const directionWithMostSpace = maxSpaceAbove > maxSpaceBelow ? 'up' : 'down';
790
+ // We do not want to update the max height once the popover is open unless the page orientation shifts (resize or mobile use cases)
791
+ const shouldUpdateMaxHeight = !containerElement.style.getPropertyValue('--comp-pop-max-height') || this.orientationChanged;
792
+ // we do not want to constantly update the max-height after an orientation change, so we switch this back to false
793
+ this.orientationChanged = false;
794
+ const currentOrDetermineDirection = this.currentDirection || providedDirection || directionWithMostSpace;
795
+ switch (currentOrDetermineDirection) {
796
+ case 'up':
797
+ if (shouldUpdateMaxHeight) {
798
+ const priorityMaxHeight = this.validatedMaxHeight || maxSpaceAbove;
799
+ const maxHeight = Math.min(maxSpaceAbove, priorityMaxHeight);
800
+ containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);
801
+ }
802
+ this.setDirectionAndShow('up');
803
+ break;
804
+ case 'down':
805
+ if (shouldUpdateMaxHeight) {
806
+ const priorityMaxHeight = this.validatedMaxHeight || maxSpaceBelow;
807
+ const maxHeight = Math.min(maxSpaceBelow, priorityMaxHeight);
808
+ containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);
809
+ }
810
+ this.setDirectionAndShow('down');
811
+ break;
812
+ }
813
+ }
814
+ removeViewportListeners() {
815
+ var _a;
816
+ window.removeEventListener('resize', this.viewPortOrientationChanged);
817
+ // #region remove when Popover API is supported in iOS
818
+ window.removeEventListener('scroll', this.viewPortChanged);
819
+ (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.removeEventListener('orientationchange', this.viewPortOrientationChanged);
820
+ window.removeEventListener('orientationchange', this.viewPortOrientationChanged);
821
+ // #endregion
822
+ }
823
+ setDirectionAndShow(direction) {
824
+ this.setRootElement();
825
+ // Due to some runtime inconsistency across devices/browsers we need to add one more check here because the
826
+ // popover can be closed between the time the popover is opened and the time the direction is determined
827
+ const isOpen = this.open;
828
+ if (!isOpen)
829
+ return;
830
+ this.currentDirection = direction;
831
+ this.show = true;
832
+ if (this.mode === 'legacy') {
833
+ this.setAbsoluteCSSProperties();
834
+ }
835
+ else {
836
+ this.setFixedCSSProperties();
837
+ }
838
+ }
839
+ setRootElement() {
840
+ let currentElement = this.hostElement;
841
+ while (currentElement && currentElement !== document.documentElement) {
842
+ const computedStyle = window.getComputedStyle(currentElement);
843
+ // Check if the element has any styles applied that create a new containg block
844
+ if (computedStyle.transform !== 'none' ||
845
+ computedStyle.filter !== 'none' ||
846
+ computedStyle.perspective !== 'none' ||
847
+ computedStyle.containerType !== 'normal' ||
848
+ ['transform', 'perspective', 'filter'].includes(computedStyle.willChange) ||
849
+ ['layout', 'paint', 'strict', 'content'].includes(computedStyle.contain)) {
850
+ this.rootElementRect = currentElement.getBoundingClientRect();
851
+ return;
852
+ }
853
+ const rootNode = currentElement.getRootNode();
854
+ const isRootNodeWebComponent = typeof ShadowRoot !== 'undefined' &&
855
+ rootNode instanceof ShadowRoot &&
856
+ rootNode.host instanceof HTMLElement;
857
+ if (isRootNodeWebComponent) {
858
+ currentElement = rootNode.host;
859
+ }
860
+ else {
861
+ currentElement = currentElement.parentElement;
862
+ }
863
+ }
864
+ // Return the document's bounding rect if no element is found
865
+ this.rootElementRect = {
866
+ top: 0,
867
+ bottom: 0,
868
+ left: 0,
869
+ right: 0,
870
+ height: window.visualViewport.height,
871
+ width: window.visualViewport.width,
872
+ };
873
+ }
874
+ // #endregion
875
+ // #region Render Methods
876
+ render() {
877
+ const containerClasses = ['container', this.currentDirection];
878
+ if (this.show)
879
+ containerClasses.push('show');
880
+ if (this.mode === 'legacy')
881
+ containerClasses.push('legacy');
882
+ return (h("div", { key: 'ec69329181e23e7c8f46fc2d2f5b9453f0f866d1', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1 }, h("div", { key: '7814ab2ab64fe363d76d1ed34005b7512c877d17', ref: el => (this.contentElement = el), class: "content" }, h("slot", { key: '7a3fec41c603d97be3bcaa0d7fd48c0517b92f7c' }))));
883
+ }
884
+ get hostElement() { return getElement(this); }
885
+ static get watchers() { return {
886
+ "minHeight": ["minHeightProvided"],
887
+ "open": ["openChanged"]
888
+ }; }
889
+ };
890
+ Q2Popover.style = Q2PopoverStyle0;
891
+
892
+ export { Q2OptionList as q2_option_list, Q2Popover as q2_popover };
560
893
 
561
- //# sourceMappingURL=q2-option-list.entry.js.map
894
+ //# sourceMappingURL=q2-option-list_2.entry.js.map