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
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-e7e68b1e.js');
6
- const index$1 = require('./index-07285783.js');
6
+ const index$1 = require('./index-76f63767.js');
7
7
 
8
8
  function sanitizeRegexString(regexString) {
9
9
  return regexString.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
@@ -25,7 +25,7 @@ const Q2OptionList = class {
25
25
  this.scheduledAfterRender = [];
26
26
  this.clickHandler = (event) => {
27
27
  const target = event.target;
28
- const option = target.closest('q2-option');
28
+ const option = target.closest('q2-option:not([separator]):not([separator=true]), q2-dropdown-item:not([separator]):not([separator=true])');
29
29
  this.selectOption(option);
30
30
  if (this.multiple)
31
31
  return;
@@ -155,7 +155,8 @@ const Q2OptionList = class {
155
155
  break;
156
156
  case 'ArrowUp':
157
157
  event.preventDefault();
158
- const isFirstVisibleOptionActive = allVisibleOptions[0].active;
158
+ const firstVisibleOption = allVisibleOptions[0];
159
+ const isFirstVisibleOptionActive = firstVisibleOption.active;
159
160
  if (isFirstVisibleOptionActive)
160
161
  break;
161
162
  if (activeIndex === undefined) {
@@ -171,7 +172,8 @@ const Q2OptionList = class {
171
172
  }
172
173
  case 'ArrowDown':
173
174
  event.preventDefault();
174
- const isLastVisibleOptionActive = allVisibleOptions[allVisibleOptions.length - 1].active;
175
+ const lastVisibleOption = allVisibleOptions[allVisibleOptions.length - 1];
176
+ const isLastVisibleOptionActive = lastVisibleOption.active;
175
177
  if (isLastVisibleOptionActive)
176
178
  break;
177
179
  if (activeIndex === undefined) {
@@ -293,7 +295,7 @@ const Q2OptionList = class {
293
295
  // #endregion
294
296
  // #region Component Lifecycle Events
295
297
  componentWillLoad() {
296
- this.hasOptions = !!this.hostElement.querySelectorAll('q2-option').length;
298
+ this.hasOptions = !!this.hostElement.querySelectorAll('q2-option:not([separator]):not([separator=true]), q2-dropdown-item:not([separator]):not([separator=true])').length;
297
299
  }
298
300
  componentDidLoad() {
299
301
  index$1.overrideFocus(this.hostElement);
@@ -359,24 +361,28 @@ const Q2OptionList = class {
359
361
  this.showSelected = false;
360
362
  return;
361
363
  }
362
- this.allOptions.forEach(option => (option._multiSelectHidden = showSelected ? !option.selected : false));
364
+ this.allOptions.forEach(option => {
365
+ if (!('_multiSelectHidden' in option))
366
+ return;
367
+ option._multiSelectHidden = showSelected ? !option.selected : false;
368
+ });
363
369
  }
364
370
  // #endregion
365
371
  // #region Local Methods
366
372
  get allContents() {
367
373
  const rootSlot = this.getRootSlot(this.hostElement);
368
- const acceptedTags = ['Q2-OPTGROUP', 'Q2-OPTION'];
369
- return rootSlot.filter(element => acceptedTags.includes(element.tagName));
374
+ const acceptedTags = new Set(['Q2-OPTGROUP', 'Q2-OPTION', 'Q2-DROPDOWN-ITEM']);
375
+ return rootSlot.filter(element => acceptedTags.has(element.tagName));
370
376
  }
371
377
  get allOptions() {
372
378
  const contents = this.allContents;
373
379
  const extractOptions = (elements) => {
374
380
  return elements.reduce((acc, element) => {
375
- if (element.tagName === 'Q2-OPTGROUP') {
376
- return [...acc, ...extractOptions(Array.from(element.children))];
381
+ if (element.tagName === 'Q2-OPTION' || element.tagName === 'Q2-DROPDOWN-ITEM') {
382
+ return element.separator ? acc : [...acc, element];
377
383
  }
378
- else if (element.tagName === 'Q2-OPTION') {
379
- return [...acc, element];
384
+ else if (element.tagName === 'Q2-OPTGROUP') {
385
+ return [...acc, ...extractOptions(Array.from(element.children))];
380
386
  }
381
387
  else {
382
388
  return acc;
@@ -386,7 +392,10 @@ const Q2OptionList = class {
386
392
  return extractOptions(contents);
387
393
  }
388
394
  get allVisibleOptions() {
389
- return this.allOptions.filter(option => !option.hidden && !option._multiSelectHidden && !option.disabled && !option.disabledGroup);
395
+ return this.allOptions.filter(option => !option.hidden &&
396
+ (!('_multiSelectHidden' in option) || !option._multiSelectHidden) &&
397
+ !option.disabled &&
398
+ (!('disabledGroup' in option) || !option.disabledGroup));
390
399
  }
391
400
  adjustActiveOptionAndScroll(numToAdd) {
392
401
  this.activeIndex += numToAdd;
@@ -394,13 +403,12 @@ const Q2OptionList = class {
394
403
  this.setFocusedOption();
395
404
  this.scrollToActiveOption();
396
405
  }
397
- async checkOptions() {
406
+ checkOptions() {
398
407
  const { type } = this;
399
- const options = await this.getOptions();
400
408
  if (!type)
401
409
  return;
402
410
  const optionRole = type === 'menu' ? 'menuitem' : 'option';
403
- options.forEach(option => {
411
+ this.allOptions.forEach(option => {
404
412
  option.role = optionRole;
405
413
  });
406
414
  }
@@ -420,12 +428,16 @@ const Q2OptionList = class {
420
428
  this.activeIndex = nextSiblingIndex;
421
429
  this.setFocusedOption();
422
430
  this.scheduledAfterRender.push(() => {
431
+ if (!('_multiSelectHidden' in option))
432
+ return;
423
433
  option._multiSelectHidden = !option.selected;
424
434
  });
425
435
  }
426
436
  getDefaultActiveIndex() {
427
437
  const { allOptions } = this;
428
- const firstSelected = allOptions.findIndex(element => element.selected);
438
+ const firstSelected = allOptions.findIndex(element => {
439
+ return 'selected' in element && element.selected;
440
+ });
429
441
  if (firstSelected > -1)
430
442
  return firstSelected;
431
443
  const firstEnabled = allOptions.findIndex(element => !element.hidden);
@@ -487,12 +499,17 @@ const Q2OptionList = class {
487
499
  }
488
500
  selectOption(selectedOption) {
489
501
  const { multiple, noSelect, showSelected } = this;
490
- if (!selectedOption || selectedOption.disabled || selectedOption.disabledGroup)
502
+ if (!selectedOption ||
503
+ selectedOption.disabled ||
504
+ ('disabledGroup' in selectedOption && selectedOption.disabledGroup))
491
505
  return;
492
506
  const selectedValue = selectedOption.value;
507
+ const displayValue = 'display' in selectedOption && selectedOption.display
508
+ ? selectedOption.display
509
+ : selectedOption.innerText.trim();
493
510
  const valueObject = {
494
511
  value: selectedValue,
495
- display: selectedOption.display || selectedOption.innerText.trim(),
512
+ display: displayValue,
496
513
  };
497
514
  let values = [];
498
515
  if (multiple) {
@@ -535,7 +552,11 @@ const Q2OptionList = class {
535
552
  updateMultipleOptionAttrs() {
536
553
  const { allOptions, selectedOptions } = this;
537
554
  const selectedValues = selectedOptions.map(({ value }) => value);
555
+ if (this.noSelect)
556
+ return;
538
557
  allOptions.forEach(element => {
558
+ if (!('selected' in element))
559
+ return;
539
560
  element.selected = selectedValues.includes(element.value);
540
561
  });
541
562
  }
@@ -543,14 +564,18 @@ const Q2OptionList = class {
543
564
  var _a;
544
565
  const { allOptions, selectedOptions } = this;
545
566
  const selectedValue = ((_a = selectedOptions[0]) === null || _a === void 0 ? void 0 : _a.value) || undefined;
567
+ if (this.noSelect)
568
+ return;
546
569
  allOptions.forEach(element => {
570
+ if (!('selected' in element))
571
+ return;
547
572
  element.selected = element.value === selectedValue;
548
573
  });
549
574
  }
550
575
  // #endregion
551
576
  // #region Render Methods
552
577
  render() {
553
- return (index.h(index.Host, { key: '221e3d11f55902cd286a6f69cb1c30ce4cc3cb1c' }, index.h("div", { key: '5e08ad2fd5a1a773976285ad16f2e2ef6e2161be', class: "content", ref: el => (this.contentElement = el), onFocusout: this.focusoutHandler }, index.h("div", { key: '537330008c139176aaa19ba997579e61f841fffb', class: "options", "aria-label": index$1.loc('tecton.element.optionList.label', [this.label]), "aria-multiselectable": `${!!this.multiple}`, role: this.type || 'listbox', onKeyDown: this.internalKeydownHandler, onClick: this.clickHandler }, index.h("slot", { key: '9204233743b02ead43bbe4f9329973059af24414' })))));
578
+ return (index.h(index.Host, { key: '16e12e08dcd1d6514aa59ad8dd20dbf33d352bbe' }, index.h("div", { key: 'b0eb152206ccb8b93e98d11c32894cb136ffc9a9', class: "content", ref: el => (this.contentElement = el), onFocusout: this.focusoutHandler }, index.h("div", { key: 'bccbd0eb8bc8fc92db4629be02ab23e050e32fe9', class: "options", "aria-label": index$1.loc('tecton.element.optionList.label', [this.label]), "aria-multiselectable": `${!!this.multiple}`, role: this.type || 'listbox', onKeyDown: this.internalKeydownHandler, onClick: this.clickHandler }, index.h("slot", { key: '9b5a130d4d0a1a5f594b47669607febf39c0ea87' })))));
554
579
  }
555
580
  get hostElement() { return index.getElement(this); }
556
581
  static get watchers() { return {
@@ -560,6 +585,315 @@ const Q2OptionList = class {
560
585
  };
561
586
  Q2OptionList.style = Q2OptionListStyle0;
562
587
 
588
+ 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}";
589
+ const Q2PopoverStyle0 = q2PopoverCss;
590
+
591
+ const Q2Popover = class {
592
+ constructor(hostRef) {
593
+ index.registerInstance(this, hostRef);
594
+ this.popoverStateChanged = index.createEvent(this, "popoverStateChanged", 7);
595
+ /**
596
+ * The number of pixels to leave between the popover and the edge of the viewport
597
+ */
598
+ this.displayBuffer = 10;
599
+ /** remove when Popover API is supported in iOS */
600
+ this.orientationChanged = false;
601
+ this.handleMinHeight = () => {
602
+ if (this.minHeight) {
603
+ index$1.handleDeprecationWarning(this, 'minHeight', 'prop');
604
+ }
605
+ };
606
+ this.setAbsoluteCSSProperties = async () => {
607
+ const { controlElement, containerElement, currentDirection, align } = this;
608
+ if (align === 'right') {
609
+ containerElement.style.setProperty('--comp-pop-right', '0');
610
+ containerElement.style.setProperty('--comp-pop-left', 'unset');
611
+ }
612
+ else {
613
+ containerElement.style.setProperty('--comp-pop-left', '0');
614
+ containerElement.style.setProperty('--comp-pop-right', 'unset');
615
+ }
616
+ if (this.block) {
617
+ containerElement.style.setProperty('--comp-pop-width', '100%');
618
+ }
619
+ if (currentDirection === 'up') {
620
+ const controlStyle = getComputedStyle(controlElement);
621
+ const controlSize = parseInt(controlStyle.height || '0') +
622
+ parseInt(controlStyle.borderTopWidth || '0') +
623
+ parseInt(controlStyle.borderBottomWidth || '0');
624
+ containerElement.style.setProperty('--comp-pop-bottom', `${controlSize}px`);
625
+ }
626
+ // Wait for one paint to prevent layout thrashing
627
+ await index$1.waitForNextPaint();
628
+ containerElement.style.setProperty('--comp-pop-opacity', '1');
629
+ };
630
+ this.setFixedCSSProperties = async () => {
631
+ var _a, _b;
632
+ const { controlElement, containerElement, currentDirection, rootElementRect } = this;
633
+ 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 : {
634
+ top: 0,
635
+ bottom: 0,
636
+ left: 0,
637
+ right: 0,
638
+ };
639
+ const popoverLeft = controlLeft - rootElementRect.left;
640
+ if (this.block)
641
+ containerElement.style.setProperty('--comp-pop-width', `${(controlElement === null || controlElement === void 0 ? void 0 : controlElement.offsetWidth) || 0}px`);
642
+ containerElement.style.setProperty('--comp-pop-left', `${popoverLeft}px`);
643
+ containerElement.style.setProperty('--comp-pop-right', `${rootElementRect.width + rootElementRect.left - controlRight}px`);
644
+ if (currentDirection === 'up') {
645
+ containerElement.style.setProperty('--comp-pop-bottom', `${rootElementRect.height + rootElementRect.top - controlTop}px`);
646
+ }
647
+ if (currentDirection === 'down') {
648
+ containerElement.style.setProperty('--comp-pop-top', `${controlBottom - rootElementRect.top}px`);
649
+ }
650
+ // Wait for one paint to prevent layout thrashing
651
+ await index$1.waitForNextPaint();
652
+ containerElement.style.setProperty('--comp-pop-opacity', '1');
653
+ };
654
+ this.viewPortChanged = () => {
655
+ if (!this.open)
656
+ return;
657
+ this.determinePopDirection();
658
+ };
659
+ this.viewPortOrientationChanged = () => {
660
+ this.orientationChanged = true;
661
+ this.viewPortChanged();
662
+ };
663
+ this.currentDirection = undefined;
664
+ this.show = false;
665
+ this.align = undefined;
666
+ this.block = undefined;
667
+ this.controlElement = undefined;
668
+ this.direction = undefined;
669
+ this.maxHeight = undefined;
670
+ this.minHeight = undefined;
671
+ this.mode = null;
672
+ this.open = undefined;
673
+ }
674
+ // #endregion
675
+ // #region Component Lifecycle Events
676
+ disconnectedCallback() {
677
+ this.removeViewportListeners();
678
+ }
679
+ componentDidLoad() {
680
+ this.handleMinHeight();
681
+ if (this.open)
682
+ this.determinePopDirection();
683
+ }
684
+ // #endregion
685
+ // #region Listeners
686
+ popoverStateHandler(event) {
687
+ const { detail: { open }, } = event;
688
+ if (open === this.open)
689
+ return;
690
+ this.open = open;
691
+ event.stopPropagation();
692
+ }
693
+ // #endregion
694
+ // #region Public Methods API
695
+ async scrollContainerTo(options) {
696
+ this.containerElement.scrollTo(options);
697
+ }
698
+ async toggle() {
699
+ this.open = !this.open;
700
+ }
701
+ // #endregion
702
+ // #region Watchers
703
+ minHeightProvided() {
704
+ this.handleMinHeight();
705
+ }
706
+ async openChanged(open) {
707
+ this.setRootElement();
708
+ this.popoverStateChanged.emit({ open });
709
+ if (open) {
710
+ this.addViewportListeners();
711
+ this.determinePopDirection();
712
+ }
713
+ else {
714
+ this.removeViewportListeners();
715
+ this.currentDirection = undefined;
716
+ this.show = false;
717
+ await index$1.waitForNextPaint();
718
+ this.clearCSSProperties();
719
+ }
720
+ }
721
+ // #endregion
722
+ // #region Local Methods
723
+ get isModule() {
724
+ var _a, _b;
725
+ const isIframe = window !== window.top;
726
+ const hasPlatformDimensions = Object.keys((_b = (_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.platformDimensions) !== null && _b !== void 0 ? _b : {}).length > 0;
727
+ return isIframe && hasPlatformDimensions;
728
+ }
729
+ get providedDirection() {
730
+ const { direction } = this;
731
+ switch (direction) {
732
+ case 'up':
733
+ case 'down':
734
+ return direction;
735
+ default:
736
+ return undefined;
737
+ }
738
+ }
739
+ get validatedMaxHeight() {
740
+ const { maxHeight } = this;
741
+ return isNaN(maxHeight) ? undefined : maxHeight;
742
+ }
743
+ addViewportListeners() {
744
+ var _a;
745
+ window.addEventListener('resize', this.viewPortOrientationChanged);
746
+ // #region remove when Popover API is supported in iOS
747
+ window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });
748
+ (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.addEventListener('change', this.viewPortOrientationChanged);
749
+ window.addEventListener('orientationchange', this.viewPortOrientationChanged);
750
+ // #endregion
751
+ }
752
+ clearCSSProperties() {
753
+ this.containerElement.style.removeProperty('--comp-pop-max-height');
754
+ this.containerElement.style.removeProperty('--comp-pop-top');
755
+ this.containerElement.style.removeProperty('--comp-pop-bottom');
756
+ this.containerElement.style.removeProperty('--comp-pop-left');
757
+ this.containerElement.style.removeProperty('--comp-pop-right');
758
+ this.containerElement.style.removeProperty('--comp-pop-width');
759
+ this.containerElement.style.removeProperty('--comp-pop-opacity');
760
+ }
761
+ async determinePopDirection() {
762
+ var _a, _b, _c;
763
+ const { containerElement, controlElement, providedDirection, displayBuffer } = this;
764
+ if (containerElement)
765
+ containerElement.style.maxHeight = null;
766
+ await index$1.waitForNextPaint();
767
+ const { isModule } = this;
768
+ 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 : {
769
+ top: 0,
770
+ bottom: 0,
771
+ };
772
+ let windowHeight;
773
+ let maxSpaceAbove;
774
+ let maxSpaceBelow;
775
+ if (isModule) {
776
+ const { outletOffset = 0, innerHeight = window.innerHeight } = ((_c = window.Tecton) === null || _c === void 0 ? void 0 : _c.platformDimensions) || {};
777
+ const distanceToIframeBottom = window.visualViewport.height - controlBottom;
778
+ const viewableSpaceBelow = innerHeight - (outletOffset + controlBottom);
779
+ const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;
780
+ windowHeight = innerHeight;
781
+ // If the top of the module is below the top of the window we just use the controlTop
782
+ // Otherwise we need to add the outletOffset to the controlTop
783
+ maxSpaceAbove = (outletOffset > 0 ? controlTop : controlTop + outletOffset) - displayBuffer;
784
+ maxSpaceBelow = isIframeShorterThanWindow
785
+ ? distanceToIframeBottom - displayBuffer
786
+ : viewableSpaceBelow - displayBuffer;
787
+ }
788
+ else {
789
+ windowHeight = window.visualViewport.height;
790
+ maxSpaceAbove = controlTop - displayBuffer;
791
+ maxSpaceBelow = windowHeight - controlBottom - displayBuffer;
792
+ }
793
+ const directionWithMostSpace = maxSpaceAbove > maxSpaceBelow ? 'up' : 'down';
794
+ // We do not want to update the max height once the popover is open unless the page orientation shifts (resize or mobile use cases)
795
+ const shouldUpdateMaxHeight = !containerElement.style.getPropertyValue('--comp-pop-max-height') || this.orientationChanged;
796
+ // we do not want to constantly update the max-height after an orientation change, so we switch this back to false
797
+ this.orientationChanged = false;
798
+ const currentOrDetermineDirection = this.currentDirection || providedDirection || directionWithMostSpace;
799
+ switch (currentOrDetermineDirection) {
800
+ case 'up':
801
+ if (shouldUpdateMaxHeight) {
802
+ const priorityMaxHeight = this.validatedMaxHeight || maxSpaceAbove;
803
+ const maxHeight = Math.min(maxSpaceAbove, priorityMaxHeight);
804
+ containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);
805
+ }
806
+ this.setDirectionAndShow('up');
807
+ break;
808
+ case 'down':
809
+ if (shouldUpdateMaxHeight) {
810
+ const priorityMaxHeight = this.validatedMaxHeight || maxSpaceBelow;
811
+ const maxHeight = Math.min(maxSpaceBelow, priorityMaxHeight);
812
+ containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);
813
+ }
814
+ this.setDirectionAndShow('down');
815
+ break;
816
+ }
817
+ }
818
+ removeViewportListeners() {
819
+ var _a;
820
+ window.removeEventListener('resize', this.viewPortOrientationChanged);
821
+ // #region remove when Popover API is supported in iOS
822
+ window.removeEventListener('scroll', this.viewPortChanged);
823
+ (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.removeEventListener('orientationchange', this.viewPortOrientationChanged);
824
+ window.removeEventListener('orientationchange', this.viewPortOrientationChanged);
825
+ // #endregion
826
+ }
827
+ setDirectionAndShow(direction) {
828
+ this.setRootElement();
829
+ // Due to some runtime inconsistency across devices/browsers we need to add one more check here because the
830
+ // popover can be closed between the time the popover is opened and the time the direction is determined
831
+ const isOpen = this.open;
832
+ if (!isOpen)
833
+ return;
834
+ this.currentDirection = direction;
835
+ this.show = true;
836
+ if (this.mode === 'legacy') {
837
+ this.setAbsoluteCSSProperties();
838
+ }
839
+ else {
840
+ this.setFixedCSSProperties();
841
+ }
842
+ }
843
+ setRootElement() {
844
+ let currentElement = this.hostElement;
845
+ while (currentElement && currentElement !== document.documentElement) {
846
+ const computedStyle = window.getComputedStyle(currentElement);
847
+ // Check if the element has any styles applied that create a new containg block
848
+ if (computedStyle.transform !== 'none' ||
849
+ computedStyle.filter !== 'none' ||
850
+ computedStyle.perspective !== 'none' ||
851
+ computedStyle.containerType !== 'normal' ||
852
+ ['transform', 'perspective', 'filter'].includes(computedStyle.willChange) ||
853
+ ['layout', 'paint', 'strict', 'content'].includes(computedStyle.contain)) {
854
+ this.rootElementRect = currentElement.getBoundingClientRect();
855
+ return;
856
+ }
857
+ const rootNode = currentElement.getRootNode();
858
+ const isRootNodeWebComponent = typeof ShadowRoot !== 'undefined' &&
859
+ rootNode instanceof ShadowRoot &&
860
+ rootNode.host instanceof HTMLElement;
861
+ if (isRootNodeWebComponent) {
862
+ currentElement = rootNode.host;
863
+ }
864
+ else {
865
+ currentElement = currentElement.parentElement;
866
+ }
867
+ }
868
+ // Return the document's bounding rect if no element is found
869
+ this.rootElementRect = {
870
+ top: 0,
871
+ bottom: 0,
872
+ left: 0,
873
+ right: 0,
874
+ height: window.visualViewport.height,
875
+ width: window.visualViewport.width,
876
+ };
877
+ }
878
+ // #endregion
879
+ // #region Render Methods
880
+ render() {
881
+ const containerClasses = ['container', this.currentDirection];
882
+ if (this.show)
883
+ containerClasses.push('show');
884
+ if (this.mode === 'legacy')
885
+ containerClasses.push('legacy');
886
+ return (index.h("div", { key: 'ec69329181e23e7c8f46fc2d2f5b9453f0f866d1', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1 }, index.h("div", { key: '7814ab2ab64fe363d76d1ed34005b7512c877d17', ref: el => (this.contentElement = el), class: "content" }, index.h("slot", { key: '7a3fec41c603d97be3bcaa0d7fd48c0517b92f7c' }))));
887
+ }
888
+ get hostElement() { return index.getElement(this); }
889
+ static get watchers() { return {
890
+ "minHeight": ["minHeightProvided"],
891
+ "open": ["openChanged"]
892
+ }; }
893
+ };
894
+ Q2Popover.style = Q2PopoverStyle0;
895
+
563
896
  exports.q2_option_list = Q2OptionList;
897
+ exports.q2_popover = Q2Popover;
564
898
 
565
- //# sourceMappingURL=q2-option-list.cjs.entry.js.map
899
+ //# sourceMappingURL=q2-option-list_2.cjs.entry.js.map