q2-tecton-elements 1.55.4 → 1.56.1

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 (397) hide show
  1. package/dist/bundle-report.json +15976 -11909
  2. package/dist/cjs/{index-905f4c87.js → index-99667782.js} +5 -1
  3. package/dist/cjs/index-99667782.js.map +1 -0
  4. package/dist/cjs/{index-e0aba375.js → index-f69742cf.js} +1 -1
  5. package/dist/cjs/{index-e0aba375.js.map → index-f69742cf.js.map} +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/q2-action-group.cjs.entry.js +2 -2
  8. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  9. package/dist/cjs/q2-avatar.cjs.entry.js +2 -2
  10. package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
  11. package/dist/cjs/q2-badge_7.cjs.entry.js +56 -55
  12. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  13. package/dist/cjs/q2-calendar.cjs.entry.js +3 -3
  14. package/dist/cjs/q2-card.cjs.entry.js +2 -2
  15. package/dist/cjs/q2-card.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  17. package/dist/cjs/q2-carousel.cjs.entry.js +2 -2
  18. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  19. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  20. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  21. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  22. package/dist/cjs/q2-checkbox.cjs.entry.js +3 -3
  23. package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
  24. package/dist/cjs/q2-currency.cjs.entry.js +2 -2
  25. package/dist/cjs/q2-currency.cjs.entry.js.map +1 -1
  26. package/dist/cjs/q2-data-table.cjs.entry.js +3 -3
  27. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  28. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  29. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-dropdown.cjs.entry.js +2 -2
  31. package/dist/cjs/q2-editable-field.cjs.entry.js +2 -2
  32. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-file-picker.cjs.entry.js +20 -7
  34. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
  35. package/dist/cjs/q2-form.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-grid-area.cjs.entry.js +133 -0
  38. package/dist/cjs/q2-grid-area.cjs.entry.js.map +1 -0
  39. package/dist/cjs/q2-grid.cjs.entry.js +109 -0
  40. package/dist/cjs/q2-grid.cjs.entry.js.map +1 -0
  41. package/dist/cjs/q2-item_3.cjs.entry.js +4 -4
  42. package/dist/cjs/q2-item_3.cjs.entry.js.map +1 -1
  43. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  45. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-modal.cjs.entry.js +2 -2
  47. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  48. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  49. package/dist/cjs/q2-option-list_2.cjs.entry.js +18 -6
  50. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -1
  51. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  52. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  53. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  54. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  55. package/dist/cjs/q2-radio.cjs.entry.js +2 -2
  56. package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
  57. package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
  58. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  59. package/dist/cjs/q2-select.cjs.entry.js +3 -3
  60. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  61. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  62. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  63. package/dist/cjs/q2-tag.cjs.entry.js +2 -2
  64. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  65. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  66. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  67. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  68. package/dist/collection/collection-manifest.json +8 -6
  69. package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
  70. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  71. package/dist/collection/components/q2-avatar/q2-avatar.css +8 -8
  72. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  73. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  74. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  75. package/dist/collection/components/q2-card/q2-card.css +6 -3
  76. package/dist/collection/components/q2-carousel/q2-carousel.js +1 -1
  77. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  78. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  79. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  80. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  81. package/dist/collection/components/q2-checkbox/q2-checkbox.css +6 -2
  82. package/dist/collection/components/q2-checkbox/q2-checkbox.js +1 -1
  83. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
  84. package/dist/collection/components/q2-currency/q2-currency.css +2 -2
  85. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  86. package/dist/collection/components/q2-data-table/q2-data-table.css +1 -2
  87. package/dist/collection/components/q2-data-table/q2-data-table.js +8 -8
  88. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  89. package/dist/collection/components/q2-dropdown/q2-dropdown.js +1 -1
  90. package/dist/collection/components/q2-editable-field/q2-editable-field.js +1 -1
  91. package/dist/collection/components/q2-example/q2-example.js +1 -1
  92. package/dist/collection/components/q2-file-picker/q2-file-picker.css +11 -2
  93. package/dist/collection/components/q2-file-picker/q2-file-picker.js +54 -14
  94. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  95. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js +25 -0
  96. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -1
  97. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js +107 -18
  98. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
  99. package/dist/collection/components/q2-form/q2-form.js +1 -1
  100. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  101. package/dist/collection/components/q2-grid/q2-grid.css +98 -0
  102. package/dist/collection/components/q2-grid/q2-grid.js +807 -0
  103. package/dist/collection/components/q2-grid/q2-grid.js.map +1 -0
  104. package/dist/collection/components/q2-grid/test/q2-grid.e2e.js +218 -0
  105. package/dist/collection/components/q2-grid/test/q2-grid.e2e.js.map +1 -0
  106. package/dist/collection/components/q2-grid-area/q2-grid-area.css +110 -0
  107. package/dist/collection/components/q2-grid-area/q2-grid-area.js +1109 -0
  108. package/dist/collection/components/q2-grid-area/q2-grid-area.js.map +1 -0
  109. package/dist/collection/components/q2-grid-area/test/q2-grid-area.e2e.js +196 -0
  110. package/dist/collection/components/q2-grid-area/test/q2-grid-area.e2e.js.map +1 -0
  111. package/dist/collection/components/q2-icon/assets/brand.symbol.svg +1 -1
  112. package/dist/collection/components/q2-icon/assets/browsersos.symbol.svg +1 -0
  113. package/dist/collection/components/q2-icon/assets/cards.symbol.svg +1 -1
  114. package/dist/collection/components/q2-icon/assets/{system.symbol.svg → devices.symbol.svg} +1 -1
  115. package/dist/collection/components/q2-icon/assets/icon-file-list.json +1 -1
  116. package/dist/collection/components/q2-icon/assets/icon-map.json +1 -1
  117. package/dist/collection/components/q2-icon/assets/legacy.symbol.svg +1 -1
  118. package/dist/collection/components/q2-icon/assets/mobile.symbol.svg +1 -1
  119. package/dist/collection/components/q2-icon/q2-icon.css +7 -1
  120. package/dist/collection/components/q2-icon/q2-icon.js +3 -2
  121. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  122. package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js +3 -3
  123. package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js.map +1 -1
  124. package/dist/collection/components/q2-input/q2-input.js +2 -2
  125. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js +5 -3
  126. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
  127. package/dist/collection/components/q2-item/q2-item.css +3 -3
  128. package/dist/collection/components/q2-item/q2-item.js +1 -1
  129. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  130. package/dist/collection/components/q2-list/q2-list.js +1 -1
  131. package/dist/collection/components/q2-message/q2-message.js +1 -1
  132. package/dist/collection/components/q2-modal/q2-modal.js +1 -1
  133. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  134. package/dist/collection/components/q2-option-list/q2-option-list.js +7 -7
  135. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  136. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  137. package/dist/collection/components/q2-popover/q2-popover.js +40 -5
  138. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  139. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +2 -2
  140. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
  141. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  142. package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
  143. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  144. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  145. package/dist/collection/components/q2-section/q2-section.js +2 -2
  146. package/dist/collection/components/q2-select/q2-select.js +2 -2
  147. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  148. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
  149. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  150. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  151. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  152. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  153. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  154. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  155. package/dist/collection/utils/helpers.js +15 -0
  156. package/dist/collection/utils/helpers.js.map +1 -1
  157. package/dist/collection/utils/index.js +3 -0
  158. package/dist/collection/utils/index.js.map +1 -1
  159. package/dist/components/index.js +4 -0
  160. package/dist/components/index.js.map +1 -1
  161. package/dist/components/index2.js +4 -1
  162. package/dist/components/index2.js.map +1 -1
  163. package/dist/components/q2-action-group2.js +1 -1
  164. package/dist/components/q2-action-sheet.js +1 -1
  165. package/dist/components/q2-avatar2.js +2 -2
  166. package/dist/components/q2-avatar2.js.map +1 -1
  167. package/dist/components/q2-calendar.js +1 -1
  168. package/dist/components/q2-card.js +1 -1
  169. package/dist/components/q2-card.js.map +1 -1
  170. package/dist/components/q2-carousel-pane.js +2 -2
  171. package/dist/components/q2-carousel.js +1 -1
  172. package/dist/components/q2-chart-area.js +1 -1
  173. package/dist/components/q2-chart-bar.js +1 -1
  174. package/dist/components/q2-chart-donut.js +1 -1
  175. package/dist/components/q2-checkbox-group.js +1 -1
  176. package/dist/components/q2-checkbox2.js +2 -2
  177. package/dist/components/q2-checkbox2.js.map +1 -1
  178. package/dist/components/q2-currency.js +2 -2
  179. package/dist/components/q2-currency.js.map +1 -1
  180. package/dist/components/q2-data-table.js +2 -2
  181. package/dist/components/q2-data-table.js.map +1 -1
  182. package/dist/components/q2-detail.js +1 -1
  183. package/dist/components/q2-dropdown.js +1 -1
  184. package/dist/components/q2-editable-field.js +1 -1
  185. package/dist/components/q2-example.js +1 -1
  186. package/dist/components/q2-file-picker.js +20 -6
  187. package/dist/components/q2-file-picker.js.map +1 -1
  188. package/dist/components/q2-form.js +1 -1
  189. package/dist/components/q2-formatted-text.js +1 -1
  190. package/dist/components/q2-grid-area.d.ts +11 -0
  191. package/dist/components/q2-grid-area.js +190 -0
  192. package/dist/components/q2-grid-area.js.map +1 -0
  193. package/dist/components/q2-grid.d.ts +11 -0
  194. package/dist/components/q2-grid.js +154 -0
  195. package/dist/components/q2-grid.js.map +1 -0
  196. package/dist/components/q2-icon2.js +52 -51
  197. package/dist/components/q2-icon2.js.map +1 -1
  198. package/dist/components/q2-input2.js +1 -1
  199. package/dist/components/q2-item2.js +2 -2
  200. package/dist/components/q2-item2.js.map +1 -1
  201. package/dist/components/q2-legend2.js +1 -1
  202. package/dist/components/q2-list2.js +1 -1
  203. package/dist/components/q2-message2.js +1 -1
  204. package/dist/components/q2-modal.js +1 -1
  205. package/dist/components/q2-month-picker.js +2 -2
  206. package/dist/components/q2-optgroup2.js +1 -1
  207. package/dist/components/q2-option-list2.js +1 -1
  208. package/dist/components/q2-pagination.js +3 -3
  209. package/dist/components/q2-pill.js +1 -1
  210. package/dist/components/q2-popover2.js +17 -5
  211. package/dist/components/q2-popover2.js.map +1 -1
  212. package/dist/components/q2-radio-group.js +1 -1
  213. package/dist/components/q2-radio.js +1 -1
  214. package/dist/components/q2-relative-time.js +1 -1
  215. package/dist/components/q2-resize-observer2.js +1 -1
  216. package/dist/components/q2-section.js +2 -2
  217. package/dist/components/q2-select2.js +3 -3
  218. package/dist/components/q2-stepper-pane.js +1 -1
  219. package/dist/components/q2-stepper-vertical.js +1 -1
  220. package/dist/components/q2-stepper.js +1 -1
  221. package/dist/components/q2-tab-container.js +1 -1
  222. package/dist/components/q2-tab-pane.js +1 -1
  223. package/dist/components/q2-tag.js +1 -1
  224. package/dist/components/q2-textarea.js +1 -1
  225. package/dist/components/tecton-tab-pane.js +2 -2
  226. package/dist/esm/{index-3bb7a785.js → index-3184c760.js} +1 -1
  227. package/dist/esm/{index-3bb7a785.js.map → index-3184c760.js.map} +1 -1
  228. package/dist/esm/{index-f2a66217.js → index-c215e8ef.js} +5 -2
  229. package/dist/esm/index-c215e8ef.js.map +1 -0
  230. package/dist/esm/loader.js +1 -1
  231. package/dist/esm/q2-action-group.entry.js +2 -2
  232. package/dist/esm/q2-action-sheet.entry.js +2 -2
  233. package/dist/esm/q2-avatar.entry.js +2 -2
  234. package/dist/esm/q2-avatar.entry.js.map +1 -1
  235. package/dist/esm/q2-badge_7.entry.js +56 -55
  236. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  237. package/dist/esm/q2-calendar.entry.js +3 -3
  238. package/dist/esm/q2-card.entry.js +2 -2
  239. package/dist/esm/q2-card.entry.js.map +1 -1
  240. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  241. package/dist/esm/q2-carousel.entry.js +2 -2
  242. package/dist/esm/q2-chart-area.entry.js +2 -2
  243. package/dist/esm/q2-chart-bar.entry.js +2 -2
  244. package/dist/esm/q2-chart-donut.entry.js +2 -2
  245. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  246. package/dist/esm/q2-checkbox.entry.js +3 -3
  247. package/dist/esm/q2-checkbox.entry.js.map +1 -1
  248. package/dist/esm/q2-currency.entry.js +2 -2
  249. package/dist/esm/q2-currency.entry.js.map +1 -1
  250. package/dist/esm/q2-data-table.entry.js +3 -3
  251. package/dist/esm/q2-data-table.entry.js.map +1 -1
  252. package/dist/esm/q2-detail.entry.js +2 -2
  253. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  254. package/dist/esm/q2-dropdown.entry.js +2 -2
  255. package/dist/esm/q2-editable-field.entry.js +2 -2
  256. package/dist/esm/q2-example.entry.js +1 -1
  257. package/dist/esm/q2-file-picker.entry.js +20 -7
  258. package/dist/esm/q2-file-picker.entry.js.map +1 -1
  259. package/dist/esm/q2-form.entry.js +1 -1
  260. package/dist/esm/q2-formatted-text.entry.js +1 -1
  261. package/dist/esm/q2-grid-area.entry.js +129 -0
  262. package/dist/esm/q2-grid-area.entry.js.map +1 -0
  263. package/dist/esm/q2-grid.entry.js +105 -0
  264. package/dist/esm/q2-grid.entry.js.map +1 -0
  265. package/dist/esm/q2-item_3.entry.js +4 -4
  266. package/dist/esm/q2-item_3.entry.js.map +1 -1
  267. package/dist/esm/q2-legend.entry.js +1 -1
  268. package/dist/esm/q2-loc.entry.js +1 -1
  269. package/dist/esm/q2-message.entry.js +2 -2
  270. package/dist/esm/q2-modal.entry.js +2 -2
  271. package/dist/esm/q2-month-picker.entry.js +3 -3
  272. package/dist/esm/q2-optgroup.entry.js +2 -2
  273. package/dist/esm/q2-option-list_2.entry.js +18 -6
  274. package/dist/esm/q2-option-list_2.entry.js.map +1 -1
  275. package/dist/esm/q2-option.entry.js +1 -1
  276. package/dist/esm/q2-pagination.entry.js +4 -4
  277. package/dist/esm/q2-pill.entry.js +2 -2
  278. package/dist/esm/q2-radio-group.entry.js +2 -2
  279. package/dist/esm/q2-radio.entry.js +2 -2
  280. package/dist/esm/q2-relative-time.entry.js +3 -3
  281. package/dist/esm/q2-resize-observer.entry.js +1 -1
  282. package/dist/esm/q2-section.entry.js +3 -3
  283. package/dist/esm/q2-select.entry.js +3 -3
  284. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  285. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  286. package/dist/esm/q2-stepper.entry.js +2 -2
  287. package/dist/esm/q2-tag.entry.js +2 -2
  288. package/dist/esm/q2-tecton-elements.js +1 -1
  289. package/dist/esm/q2-textarea.entry.js +2 -2
  290. package/dist/esm/q2-tooltip.entry.js +1 -1
  291. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  292. package/dist/q2-tecton-elements/assets/brand.symbol.svg +1 -1
  293. package/dist/q2-tecton-elements/assets/browsersos.symbol.svg +1 -0
  294. package/dist/q2-tecton-elements/assets/cards.symbol.svg +1 -1
  295. package/dist/q2-tecton-elements/assets/{system.symbol.svg → devices.symbol.svg} +1 -1
  296. package/dist/q2-tecton-elements/assets/icon-file-list.json +1 -1
  297. package/dist/q2-tecton-elements/assets/icon-map.json +1 -1
  298. package/dist/q2-tecton-elements/assets/legacy.symbol.svg +1 -1
  299. package/dist/q2-tecton-elements/assets/mobile.symbol.svg +1 -1
  300. package/dist/q2-tecton-elements/{index-3bb7a785.js → index-3184c760.js} +1 -1
  301. package/dist/q2-tecton-elements/{index-f2a66217.js → index-c215e8ef.js} +6 -2
  302. package/dist/q2-tecton-elements/index-c215e8ef.js.map +1 -0
  303. package/dist/q2-tecton-elements/q2-action-group.entry.js +4 -4
  304. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +63 -63
  305. package/dist/q2-tecton-elements/q2-avatar.entry.js +7 -7
  306. package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
  307. package/dist/q2-tecton-elements/q2-badge_7.entry.js +70 -68
  308. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  309. package/dist/q2-tecton-elements/q2-calendar.entry.js +4 -4
  310. package/dist/q2-tecton-elements/q2-card.entry.js +10 -10
  311. package/dist/q2-tecton-elements/q2-card.entry.js.map +1 -1
  312. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +4 -4
  313. package/dist/q2-tecton-elements/q2-carousel.entry.js +2 -2
  314. package/dist/q2-tecton-elements/q2-chart-area.entry.js +3 -3
  315. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +3 -3
  316. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +7 -7
  317. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +7 -7
  318. package/dist/q2-tecton-elements/q2-checkbox.entry.js +12 -12
  319. package/dist/q2-tecton-elements/q2-checkbox.entry.js.map +1 -1
  320. package/dist/q2-tecton-elements/q2-currency.entry.js +7 -7
  321. package/dist/q2-tecton-elements/q2-currency.entry.js.map +1 -1
  322. package/dist/q2-tecton-elements/q2-data-table.entry.js +5 -5
  323. package/dist/q2-tecton-elements/q2-data-table.entry.js.map +1 -1
  324. package/dist/q2-tecton-elements/q2-detail.entry.js +4 -4
  325. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
  326. package/dist/q2-tecton-elements/q2-dropdown.entry.js +6 -6
  327. package/dist/q2-tecton-elements/q2-editable-field.entry.js +2 -2
  328. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  329. package/dist/q2-tecton-elements/q2-file-picker.entry.js +31 -20
  330. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
  331. package/dist/q2-tecton-elements/q2-form.entry.js +2 -2
  332. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  333. package/dist/q2-tecton-elements/q2-grid-area.entry.js +135 -0
  334. package/dist/q2-tecton-elements/q2-grid-area.entry.js.map +1 -0
  335. package/dist/q2-tecton-elements/q2-grid.entry.js +114 -0
  336. package/dist/q2-tecton-elements/q2-grid.entry.js.map +1 -0
  337. package/dist/q2-tecton-elements/q2-item_3.entry.js +23 -23
  338. package/dist/q2-tecton-elements/q2-item_3.entry.js.map +1 -1
  339. package/dist/q2-tecton-elements/q2-legend.entry.js +5 -5
  340. package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
  341. package/dist/q2-tecton-elements/q2-message.entry.js +6 -6
  342. package/dist/q2-tecton-elements/q2-modal.entry.js +18 -18
  343. package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
  344. package/dist/q2-tecton-elements/q2-optgroup.entry.js +5 -5
  345. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +41 -31
  346. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -1
  347. package/dist/q2-tecton-elements/q2-option.entry.js +1 -1
  348. package/dist/q2-tecton-elements/q2-pagination.entry.js +38 -38
  349. package/dist/q2-tecton-elements/q2-pill.entry.js +14 -14
  350. package/dist/q2-tecton-elements/q2-radio-group.entry.js +12 -12
  351. package/dist/q2-tecton-elements/q2-radio.entry.js +9 -9
  352. package/dist/q2-tecton-elements/q2-relative-time.entry.js +3 -3
  353. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
  354. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  355. package/dist/q2-tecton-elements/q2-select.entry.js +6 -6
  356. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +14 -14
  357. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
  358. package/dist/q2-tecton-elements/q2-stepper.entry.js +29 -29
  359. package/dist/q2-tecton-elements/q2-tag.entry.js +6 -6
  360. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  361. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  362. package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -3
  363. package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
  364. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  365. package/dist/types/components/q2-action-group/q2-action-group.d.ts +1 -0
  366. package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +60 -0
  367. package/dist/types/components/q2-calendar/q2-calendar.d.ts +327 -0
  368. package/dist/types/components/q2-carousel/q2-carousel.d.ts +95 -0
  369. package/dist/types/components/q2-data-table/q2-data-table.d.ts +261 -0
  370. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +181 -0
  371. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +140 -0
  372. package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +31 -17
  373. package/dist/types/components/q2-grid/q2-grid.d.ts +157 -0
  374. package/dist/types/components/q2-grid-area/q2-grid-area.d.ts +168 -0
  375. package/dist/types/components/q2-icon/q2-icon.d.ts +1 -0
  376. package/dist/types/components/q2-loading/skeleton/shapes.d.ts +1 -0
  377. package/dist/types/components/q2-optgroup/q2-optgroup.d.ts +1 -1
  378. package/dist/types/components/q2-option-list/q2-option-list.d.ts +100 -0
  379. package/dist/types/components/q2-pagination/q2-pagination.d.ts +117 -0
  380. package/dist/types/components/q2-pill/q2-pill.d.ts +143 -0
  381. package/dist/types/components/q2-popover/q2-popover.d.ts +23 -0
  382. package/dist/types/components/q2-select/q2-select.d.ts +238 -0
  383. package/dist/types/components/q2-stepper/q2-stepper.d.ts +61 -0
  384. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +68 -0
  385. package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +2 -2
  386. package/dist/types/components/q2-tag/q2-tag.d.ts +91 -0
  387. package/dist/types/components.d.ts +698 -6
  388. package/dist/types/util.d.ts +2 -2
  389. package/dist/types/utils/action-sheet.d.ts +12 -0
  390. package/dist/types/utils/helpers.d.ts +1 -0
  391. package/dist/types/utils/index.d.ts +1 -0
  392. package/package.json +4 -3
  393. package/dist/cjs/index-905f4c87.js.map +0 -1
  394. package/dist/esm/index-f2a66217.js.map +0 -1
  395. package/dist/q2-tecton-elements/index-f2a66217.js.map +0 -1
  396. /package/dist/q2-tecton-elements/{index-3bb7a785.js.map → index-3184c760.js.map} +0 -0
  397. /package/dist/types/{Users/kvanhouten/Documents/Work/tecton_extra → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +0 -0
@@ -94,7 +94,7 @@ export class Q2Legend {
94
94
  // #endregion
95
95
  // #region Render Methods
96
96
  render() {
97
- return (h("click-elsewhere", { key: '1253e1dba3334134aa16432ef4dd7e71a87d1420', onChange: () => this.onClickElsewhere(this) }, h("ul", { key: 'd9252af5543da55989ec69b18b4438624c39a90e' }, this.dataWithClasses.map(item => (h("li", { class: "item" }, h("button", { "test-id": "item", "aria-label": `${item.name} ${this.formatValue(item.value)}`, class: item.classes, onClick: event => this.onClick(event, item), onMouseEnter: event => this.onMouseEnter(event, item), onMouseLeave: event => this.onMouseLeave(event, item) }, h("span", { "test-id": "itemColor", class: "item-color-indicator", style: { backgroundColor: item.color }, "aria-hidden": "true" }), h("span", { "test-id": "itemName", class: "item-name" }, item.name), h("span", { id: `item-${item.id}`, "test-id": "itemValue", class: "item-value" }, this.formatValue(item.value)))))))));
97
+ return (h("click-elsewhere", { key: '9e3655b908d343e9184630069adf04b3917902bb', onChange: () => this.onClickElsewhere(this) }, h("ul", { key: '7dbda73b13652bc876bab45b53a4864161b64f8b' }, this.dataWithClasses.map(item => (h("li", { class: "item" }, h("button", { "test-id": "item", "aria-label": `${item.name} ${this.formatValue(item.value)}`, class: item.classes, onClick: event => this.onClick(event, item), onMouseEnter: event => this.onMouseEnter(event, item), onMouseLeave: event => this.onMouseLeave(event, item) }, h("span", { "test-id": "itemColor", class: "item-color-indicator", style: { backgroundColor: item.color }, "aria-hidden": "true" }), h("span", { "test-id": "itemName", class: "item-name" }, item.name), h("span", { id: `item-${item.id}`, "test-id": "itemValue", class: "item-value" }, this.formatValue(item.value)))))))));
98
98
  }
99
99
  static get is() { return "q2-legend"; }
100
100
  static get encapsulation() { return "shadow"; }
@@ -63,7 +63,7 @@ export class Q2List {
63
63
  // #endregion
64
64
  // #region Render Methods
65
65
  render() {
66
- return (h("div", { key: '815b7bb01cdd74d76d2390a9e969484189682c6b', class: this.listClasses, ref: el => (this.listElement = el) }, (this.hasFilterSlot || this.hasLabelContent) && (h("div", { key: '3495d4aa9461d655f0c5bf5c67ce26b320324675', class: this.headerClasses }, h("div", { key: '9b5f21524fc50f41a38b7ff234cca04142e4783b', class: "label" }, this.label), this.hasFilterSlot && h("slot", { key: '4765b21b09161cad072e90f351e55d210c07a33c', name: "filter" }))), h("div", { key: '9157531d4ee7d3362fd23ae665dcc8f4ca28fd8d', role: "list" }, h("slot", { key: '6cfa2724ee61b1b2271d673b6b71113e7bfd06e7' }))));
66
+ return (h("div", { key: 'a62513330a8eb2a86fd42c4769631118d6ed73bb', class: this.listClasses, ref: el => (this.listElement = el) }, (this.hasFilterSlot || this.hasLabelContent) && (h("div", { key: '59a5e757c4a2e905ab6e3ea556772f025b0f3e9d', class: this.headerClasses }, h("div", { key: 'b0e25c5d70ea57d5a003e41df0d2bef18e8546ac', class: "label" }, this.label), this.hasFilterSlot && h("slot", { key: '13a72e5ff372225b81baa82c30dc048cffdcf3bb', name: "filter" }))), h("div", { key: 'c1046e879e12b2582862afe0dda3f6209ff901dc', role: "list" }, h("slot", { key: 'c4bd23906fbed01d15b54e473cd36e289d9c7b31' }))));
67
67
  }
68
68
  static get is() { return "q2-list"; }
69
69
  static get encapsulation() { return "shadow"; }
@@ -57,7 +57,7 @@ export class Q2Message {
57
57
  const addDivForAriaLive = !isFirefox && this.presentToggle;
58
58
  const { description } = this;
59
59
  const messageLabel = loc(`tecton.element.message.type.${this.type ? this.type : 'info'}`);
60
- return (h("div", { key: 'e74bbda0808b5430f9f3533d5cfe32463c246fb7', tabindex: "-1", class: "message", role: description ? undefined : 'alert', "aria-live": description ? undefined : 'assertive', "aria-atomic": description ? undefined : 'true', "aria-relevant": description && addAriaHiddenForAriaLive ? undefined : 'all', "test-id": "messageContainer" }, this.appearance === 'standard' ? this.messageIcon(this.type) : '', addDivForAriaLive && h("div", { key: '11f8a2db8016024dc4cd51567a6e95a1eaea8e75', class: "sr" }), h("div", { key: 'e6c4f2f7aff57d19e0da9f5d6240f14ae881ddb8', class: "sr message-label" }, messageLabel), h("div", { key: 'e473b74d78048bc8c370f724356066e963b8667e', class: "message-content", "aria-hidden": addAriaHiddenForAriaLive ? 'true' : undefined }, h("slot", { key: 'adcaf51ebf8a023b8b1d5a6556c79b3c2b64d8cc' }))));
60
+ return (h("div", { key: '5f3c103f660a2417f5c7843ee4d8a65170945ac4', tabindex: "-1", class: "message", role: description ? undefined : 'alert', "aria-live": description ? undefined : 'assertive', "aria-atomic": description ? undefined : 'true', "aria-relevant": description && addAriaHiddenForAriaLive ? undefined : 'all', "test-id": "messageContainer" }, this.appearance === 'standard' ? this.messageIcon(this.type) : '', addDivForAriaLive && h("div", { key: '9646ad49631660393be05303568ac2f120eb4c3a', class: "sr" }), h("div", { key: 'f1b9a59acc27ccec3f988c69dcda0a41aba71f45', class: "sr message-label" }, messageLabel), h("div", { key: '5397f4a9e266630aa0ef97f37e0b28262c7a1995', class: "message-content", "aria-hidden": addAriaHiddenForAriaLive ? 'true' : undefined }, h("slot", { key: 'a856f4f132ed0e40061499a889bb9429e5e7a088' }))));
61
61
  }
62
62
  static get is() { return "q2-message"; }
63
63
  static get encapsulation() { return "shadow"; }
@@ -148,7 +148,7 @@ export class Q2Modal {
148
148
  render() {
149
149
  const interiorClasses = `interior`;
150
150
  const renderStatus = `${this.renderStatus || ''}`;
151
- return (h("dialog", { key: '23605420f182cf36687c22f5d9a25512fe12aa1f', ref: el => (this.dialogElement = el), class: renderStatus, onClick: this.onClick }, h("div", { key: 'e0bd45778d125c39028e9a7e999b36cdd920d471', class: interiorClasses }, this.title && (h("header", { key: '4658009b1bd010941c7d3128306ab44a1da80194' }, this.title && h("h2", { key: 'ec33e00aa837cd0033f3a5f84f292ee7fb59fb45', class: "title" }, this.title), !!this.closable && (h("q2-btn", { key: '19a02dda7a62729b20d79d7b380ac5225427a25b', class: "btn-close", "test-id": "btnClose", onClick: this.onCancel, label: "tecton.element.modal.close", "hide-label": true }, h("q2-icon", { key: '513d17ba802c6681ec399e44fc07180568695cfb', type: "close" }))))), h("div", { key: 'd291afd421f5a4f4bcccb1e7762cf633f84ffce2', class: "content", ref: el => (this.contentElement = el) }, this.icon && (h("div", { key: '3e4256c22f6b1a0c4da33c6e950ad682115c0be8', class: "icon" }, h("q2-icon", { key: '9440c8af3d66157a1f66dbdbc15490e61d086ca8', type: this.icon, style: this.iconStyle() }))), this.imageSrc && (h("div", { key: 'a6a8451fea0accc0ebf1236bce6581db59af53e8', class: "image" }, h("img", { key: 'a512e1803682e81187647ecddc8ac77d0d07240c', src: this.imageSrc }))), hasSlotContent(this.hostElement, 'content') && h("slot", { key: '128d28110b50319c978b96598f73b204a8b36c68', name: "content" }), this.description && h("p", { key: '498bc624e6187e76365d03e50ad7aeaed23c9a18', class: "description" }, this.description), this.customMarkup && (h("p", { key: '68c58bc1abbf26ed2729fd420b56db3e8b8cce10', class: "customMarkup", innerHTML: sanitizeHTMLString(this.customMarkup) }))), h("footer", { key: '090a95b0eae17b929781cea8292cc531f67f0cb7' }, h("q2-action-group", { key: 'f2b72a7b97df9771be3eeb7d09d8baca6522a2f6', "full-width": true }, h("slot", { key: 'b6eca7b862e41fecd08516ade207a6d444c08ed3', name: "action" }))))));
151
+ return (h("dialog", { key: '2165ebfae56e7003aded62c0af837542bb9149a0', ref: el => (this.dialogElement = el), class: renderStatus, onClick: this.onClick }, h("div", { key: '66d0c4eba12b73dfda0a96bb43ba5a070ecd61f2', class: interiorClasses }, this.title && (h("header", { key: '8bbd73d303cef868bef465c7251687cfc7599e1f' }, this.title && h("h2", { key: '8dd1586d26b59f726854ea4172500a53c757a64d', class: "title" }, this.title), !!this.closable && (h("q2-btn", { key: 'c664e338916490370fe8361f722c3e0e96f07717', class: "btn-close", "test-id": "btnClose", onClick: this.onCancel, label: "tecton.element.modal.close", "hide-label": true }, h("q2-icon", { key: '6d3caa17da95a3c89f949b090702451ad9ea78ee', type: "close" }))))), h("div", { key: 'cfa8aac15fc865cb50e8bc78d82aa5f385946b5c', class: "content", ref: el => (this.contentElement = el) }, this.icon && (h("div", { key: '407d8c7571b8da638aa6954bd754c6c90ffa66b8', class: "icon" }, h("q2-icon", { key: '10f29256dba2f51f71ad883ffa02ddd1d753e5f5', type: this.icon, style: this.iconStyle() }))), this.imageSrc && (h("div", { key: '3eb1c59e1f68b3db89dc41baa690a563a2b0396c', class: "image" }, h("img", { key: 'a5a7d3ffd29bbc87463b07c637c29d380e394177', src: this.imageSrc }))), hasSlotContent(this.hostElement, 'content') && h("slot", { key: 'c9173d235dcf128da853a52ce87fc76bc79500e9', name: "content" }), this.description && h("p", { key: '42370a7e92de9fd376b981587ac6e6714057e566', class: "description" }, this.description), this.customMarkup && (h("p", { key: '34fbdc1421c2b70158858b63dbeff72b78e6a832', class: "customMarkup", innerHTML: sanitizeHTMLString(this.customMarkup) }))), h("footer", { key: 'c42b4b7f460a2c67c83f7ad6dd13903220c601e0' }, h("q2-action-group", { key: 'd3a8d1fcca9af7dbf9800e446be70b43c2ab8570', "full-width": true }, h("slot", { key: '8f499bf2dabd0766de6240dd586f23d9b97bccdb', name: "action" }))))));
152
152
  }
153
153
  static get is() { return "q2-modal"; }
154
154
  static get encapsulation() { return "shadow"; }
@@ -44,7 +44,7 @@ export class Q2Optgroup {
44
44
  // #endregion
45
45
  // #region Render Methods
46
46
  render() {
47
- return (h("div", { key: 'ac0997f3f9bd1b65dced4ac274c3f51a72b41858', class: "q2-optgroup-container", hidden: this.hidden, "aria-labelledby": this.headerId, role: "group" }, h("div", { key: 'a5b2c9d4c9e506f925fad95b272994516e8a6e39', class: "q2-optgroup-header", id: this.headerId }, (this.label && loc(this.label)) || ''), h("div", { key: 'bbbb697d598f71a7cf2ced1a59fbba713c9a7986', class: "q2-optgroup-options" }, h("slot", { key: '8e7fef13eb234ce7104fa4ce8227cf7792f4f9b6' }))));
47
+ return (h("div", { key: 'a4aa78ea138abae562f4171acd8b0b86747f7fa2', class: "q2-optgroup-container", hidden: this.hidden, "aria-labelledby": this.headerId, role: "group" }, h("div", { key: '80eccf2178714afe5aa742176e5c982e86941789', class: "q2-optgroup-header", id: this.headerId }, (this.label && loc(this.label)) || ''), h("div", { key: '934682de3e212ef449cad6be24ff2c6d6a8e3bcf', class: "q2-optgroup-options" }, h("slot", { key: 'e0f90a3bac305ef163e508ce4dddd92a3dfecadf' }))));
48
48
  }
49
49
  static get is() { return "q2-optgroup"; }
50
50
  static get encapsulation() { return "shadow"; }
@@ -562,7 +562,7 @@ export class Q2OptionList {
562
562
  // #endregion
563
563
  // #region Render Methods
564
564
  render() {
565
- return (h(Host, { key: '608fc11b974c992855405ddd47cb340bde6be3dc' }, h("div", { key: 'a1cc689919b7099c559aa372adade9973aaad1d3', class: "content", ref: el => (this.contentElement = el), onFocusout: this.focusoutHandler }, h("div", { key: 'b68880e08145e4f055736b1e08d9e2da22cb10ef', 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: '3b0cf3b91296b54c060d0ab23b99dbe0630b6336' })))));
565
+ return (h(Host, { key: '48bc63463e38e58f7f18e5b5b105e14689be640c' }, h("div", { key: '26d143ad186b387274837d2141f9e5cd7cee6fb0', class: "content", ref: el => (this.contentElement = el), onFocusout: this.focusoutHandler }, h("div", { key: 'afecab7ca714392b609ccc57f4d920a4cc7f2c7e', 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: '7ca042464b34eeb59ddd8c62bf44b29b39f3ccfb' })))));
566
566
  }
567
567
  static get is() { return "q2-option-list"; }
568
568
  static get encapsulation() { return "shadow"; }
@@ -693,7 +693,7 @@ export class Q2OptionList {
693
693
  "references": {
694
694
  "IOptionValue": {
695
695
  "location": "local",
696
- "path": "/Users/kvanhouten/Documents/Work/tecton_extra/packages/q2-tecton-elements/src/components/q2-option-list/q2-option-list.tsx",
696
+ "path": "/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/src/components/q2-option-list/q2-option-list.tsx",
697
697
  "id": "src/components/q2-option-list/q2-option-list.tsx::IOptionValue"
698
698
  }
699
699
  }
@@ -765,7 +765,7 @@ export class Q2OptionList {
765
765
  "references": {
766
766
  "IOptionValue": {
767
767
  "location": "local",
768
- "path": "/Users/kvanhouten/Documents/Work/tecton_extra/packages/q2-tecton-elements/src/components/q2-option-list/q2-option-list.tsx",
768
+ "path": "/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/src/components/q2-option-list/q2-option-list.tsx",
769
769
  "id": "src/components/q2-option-list/q2-option-list.tsx::IOptionValue"
770
770
  }
771
771
  }
@@ -825,11 +825,11 @@ export class Q2OptionList {
825
825
  },
826
826
  "ValidOptionElements": {
827
827
  "location": "local",
828
- "path": "/Users/kvanhouten/Documents/Work/tecton_extra/packages/q2-tecton-elements/src/components/q2-option-list/q2-option-list.tsx",
828
+ "path": "/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/src/components/q2-option-list/q2-option-list.tsx",
829
829
  "id": "src/components/q2-option-list/q2-option-list.tsx::ValidOptionElements"
830
830
  }
831
831
  },
832
- "return": "Promise<any[]>"
832
+ "return": "Promise<(HTMLQ2OptgroupElement | ValidOptionElements)[]>"
833
833
  },
834
834
  "docs": {
835
835
  "text": "",
@@ -847,11 +847,11 @@ export class Q2OptionList {
847
847
  },
848
848
  "ValidOptionElements": {
849
849
  "location": "local",
850
- "path": "/Users/kvanhouten/Documents/Work/tecton_extra/packages/q2-tecton-elements/src/components/q2-option-list/q2-option-list.tsx",
850
+ "path": "/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/src/components/q2-option-list/q2-option-list.tsx",
851
851
  "id": "src/components/q2-option-list/q2-option-list.tsx::ValidOptionElements"
852
852
  }
853
853
  },
854
- "return": "Promise<any[]>"
854
+ "return": "Promise<ValidOptionElements[]>"
855
855
  },
856
856
  "docs": {
857
857
  "text": "",
@@ -256,7 +256,7 @@ export class Q2Pagination {
256
256
  total,
257
257
  });
258
258
  }
259
- return (h("nav", { key: 'e18f02a628ca1451833e97815e058fdc1517b7c5', class: "container", ref: el => (this.containerElement = el), "aria-label": loc('tecton.element.pagination.title') }, h("div", { key: '8801238ba154a24bcd118cf509091db356b0a1d1', class: "description", "test-id": "description" }, pagesOnly
259
+ return (h("nav", { key: '78a244ec7420c496442642811af5f86ef11d449e', class: "container", ref: el => (this.containerElement = el), "aria-label": loc('tecton.element.pagination.title') }, h("div", { key: '9ee94b99fee68986ffcf9e9d9d1f0266d564016d', class: "description", "test-id": "description" }, pagesOnly
260
260
  ? loc('tecton.element.pagination.pages', {
261
261
  current: page,
262
262
  total: totalPages,
@@ -265,10 +265,10 @@ export class Q2Pagination {
265
265
  range: currentRange,
266
266
  recordType: recordType.toLowerCase(),
267
267
  total: total.toLocaleString(),
268
- })), h("div", { key: '8a0cf0a8b262edaf0077a355c71879744f76430b', class: "btn-group" }, h("q2-btn", { key: 'f6f72d75981cbc97fe6fd7fd716f5d92bd16ca9d', ref: el => (this.firstPageBtn = el), label: loc('tecton.element.pagination.goToFirstPage'), disabled: onFirstPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(1), "test-id": "firstPageBtn", "hide-label": true }, h("q2-icon", { key: '0ff61de6fd143ea8ea28ff08f2c22b2c4514cd2f', type: "chevron-double-left" })), h("q2-btn", { key: '6c31fb1cfc557a89a3471bae25d09be52897cfb7', ref: el => (this.prevPageBtn = el), label: prevButtonLabel, disabled: onFirstPage, onClick: () => this.handlePageChange(page - 1), "test-id": "prevPageBtn", "hide-label": true }, h("q2-icon", { key: '6d0a5e92eff20620045439a95f13683d45b21ee9', type: "chevron-left" }))), h("div", { key: '4e7ece9248a798b9cb885f2b2811dbe43c53cc04', class: "controls", hidden: isFullViewHidden, "test-id": "controls" }, h("span", { key: '00925990c7d99ec9052d50eae011df20c55c0b95', "aria-hidden": "true" }, loc('tecton.element.pagination.page')), h("div", { key: '5f4100b75ac2b1145b9de2d61c4b20eb5f490108', class: "input-wrapper", onClick: () => this.inputField.dispatchEvent(new FocusEvent('focus')) }, h("q2-input", { key: 'fcccaf8f66e18aade799cdb031d4109f9844d71f', ref: el => (this.inputField = el), type: "number", value: `${page}`, min: 1, max: this.totalPages, hideLabel: true, optional: true, label: `${loc('tecton.element.pagination.page')} (${loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])})`, onChange: event => {
268
+ })), h("div", { key: '121ce540c5527be83df8745747d4a0d444070cee', class: "btn-group" }, h("q2-btn", { key: '736b8465e368dd2533ec0c609757ed48745cd215', ref: el => (this.firstPageBtn = el), label: loc('tecton.element.pagination.goToFirstPage'), disabled: onFirstPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(1), "test-id": "firstPageBtn", "hide-label": true }, h("q2-icon", { key: '936f2fbcec71bad2a93be60584669ad9cd0d76f0', type: "chevron-double-left" })), h("q2-btn", { key: '071bcd67621e92243674329b60d8e490876a2929', ref: el => (this.prevPageBtn = el), label: prevButtonLabel, disabled: onFirstPage, onClick: () => this.handlePageChange(page - 1), "test-id": "prevPageBtn", "hide-label": true }, h("q2-icon", { key: '89f94e899a163b3f25bc0da873b0971cfebf0c15', type: "chevron-left" }))), h("div", { key: '5520cf97ebab8ec6413d39bb96ae4642f8bee785', class: "controls", hidden: isFullViewHidden, "test-id": "controls" }, h("span", { key: '8272434fe3c8c8bed0843333c27afb448f292696', "aria-hidden": "true" }, loc('tecton.element.pagination.page')), h("div", { key: '701199ca5f01f1b6de36141eedd10118ef29d16e', class: "input-wrapper", onClick: () => this.inputField.dispatchEvent(new FocusEvent('focus')) }, h("q2-input", { key: '459137ba0063fe49eb12e1c0a3253bb250e1b3c3', ref: el => (this.inputField = el), type: "number", value: `${page}`, min: 1, max: this.totalPages, hideLabel: true, optional: true, label: `${loc('tecton.element.pagination.page')} (${loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])})`, onChange: event => {
269
269
  event.stopPropagation();
270
270
  this.handlePageChange(event.detail.value);
271
- }, "test-id": "pageInput", current: "page" })), h("span", { key: 'e0fdad1c715b9769b9c553f94200309f51a86607', "aria-hidden": "true" }, loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()]))), h("div", { key: 'dbe11e2baf541ce460b6337af343a7dc3d118556', class: "btn-group" }, h("q2-btn", { key: '4ac8658d56c414ffa1ba221450aa14e3dfc8e0e7', ref: el => (this.nextPageBtn = el), label: nextButtonLabel, disabled: onLastPage, onClick: () => this.handlePageChange(page + 1), "test-id": "nextPageBtn", "hide-label": true }, h("q2-icon", { key: 'e6cbc43459c891d1bc8f54b85c3574d45a5c998b', type: "chevron-right" })), h("q2-btn", { key: 'ddafd0e4f3b12898ca349bb2ba94c148cc830214', ref: el => (this.lastPageBtn = el), label: "tecton.element.pagination.goToLastPage", disabled: onLastPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(totalPages), "test-id": "lastPageBtn", "hide-label": true }, h("q2-icon", { key: '7c1f82c1535d8cdbe0de180e7c426de2759bf282', type: "chevron-double-right" }))), h("div", { key: 'f27168fdb16b48520a9a3134e6a3db4acd1fa551', class: "per-page", hidden: isFullViewHidden || !((_a = this.perPageIncrements) === null || _a === void 0 ? void 0 : _a.length) }, showPerPageSelect && this.renderPerPage())));
271
+ }, "test-id": "pageInput", current: "page" })), h("span", { key: '43743a39464a5383cbf354ef7d3bff85d6641f0a', "aria-hidden": "true" }, loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()]))), h("div", { key: 'b0d355f91655845c127361ac275174acbf4b8407', class: "btn-group" }, h("q2-btn", { key: '12025dc44776a6c93f9a88f37ba3d1f63dd06778', ref: el => (this.nextPageBtn = el), label: nextButtonLabel, disabled: onLastPage, onClick: () => this.handlePageChange(page + 1), "test-id": "nextPageBtn", "hide-label": true }, h("q2-icon", { key: '38dcf5c2a60af9fefec14e55380eb49154f8ef4d', type: "chevron-right" })), h("q2-btn", { key: '3623fd4cac8987ad529df4ea7c7091029933972f', ref: el => (this.lastPageBtn = el), label: "tecton.element.pagination.goToLastPage", disabled: onLastPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(totalPages), "test-id": "lastPageBtn", "hide-label": true }, h("q2-icon", { key: 'fce182f3e6b7701e7e6031c20b18aa21d8ae62af', type: "chevron-double-right" }))), h("div", { key: '3ca827ec5c09338c1889d62adc7a4430a3632b99', class: "per-page", hidden: isFullViewHidden || !((_a = this.perPageIncrements) === null || _a === void 0 ? void 0 : _a.length) }, showPerPageSelect && this.renderPerPage())));
272
272
  }
273
273
  static get is() { return "q2-pagination"; }
274
274
  static get encapsulation() { return "shadow"; }
@@ -342,7 +342,7 @@ export class Q2Pill {
342
342
  wrapperClassNames.push('has-icon');
343
343
  if (optionCount)
344
344
  wrapperClassNames.push('has-options');
345
- return (h("click-elsewhere", { key: '5fe692c7573238a78296f886bd692b0844f895bd', onChange: this.onClickElsewhere }, h("div", { key: '8cddac8df3418aca8d04be122b9e6aa48bc74902', class: wrapperClassNames.join(' ') }, h("div", { key: 'e745b7a2898c15da468cb0b00046099def363414', class: "btn-height-wrapper", ref: el => (this.primaryBtnWrapper = el), onClick: this.handleWrapperClick, tabIndex: -1 }, h("button", { key: '522395fae2eee423a40ad74610472d8ce67c3e84', class: "btn-primary", "test-id": "btn-control", type: "button", role: (optionCount && 'combobox') || undefined, ref: el => (this.primaryBtn = el), onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleFocusOut, disabled: this.disabled, "aria-roledescription": !optionCount && 'filter', "aria-controls": (optionCount && 'option-list') || undefined, "aria-expanded": (optionCount && `${!!open}`) || undefined, "aria-label": this.buttonContent, "aria-describedby": (optionCount && 'option-description') || undefined }, this.truncatedButtonContent, !optionCount && active && h("span", { key: '6e91c9098217a94765f2f2cc9420257c4d8ad3f5', class: "sr" }, "(", loc('tecton.element.pill.active'), ")"))), this.renderIcon(), !!optionCount && this.renderHiddenElement()), this.optionCount > 0 && (h("q2-popover", { key: '3607af8a2bcf760f2b2a235302a4fd0e28a4561b', ref: el => (this.popoverElement = el), controlElement: this.primaryBtn, open: this.open, "max-height": this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment, onFocusout: this.handleFocusOut }, h("div", { key: '999b8fbfcd6b11ba0aeffc3a5875b6f0a21e955a', class: "popover-content" }, h("div", { key: '10bcc35df0240b11da8e5df19db854576fe8dcbd', ref: el => (this.popoverTopContainer = el), class: "popover-top-container", tabindex: "-1", hidden: !this.hasPopoverTop, onKeyDown: this.handleKeydown }, h("slot", { key: 'f2ada769ff4352ed962ca937172a8697e3a5b96b', name: "popover-top" })), h("q2-option-list", { key: '9b62b035a72927fea994a792630596d84401d8bb', type: "listbox", ref: el => (this.optionList = el), id: "option-list", onChange: this.handleChange, multiple: this.multiple, selectedOptions: this.selectedOptions, onReady: () => this.updateSelectedOptionElements(), label: loc('tecton.element.optionList.label', [this.optionListLabel]) }, h("slot", { key: '1867828a0d847460d0ee6cb55a31114de91e188a' })), h("div", { key: 'd25e55fcbc1322bb79a5f61d9f0a957df90c3173', ref: el => (this.popoverBottomContainer = el), class: "popover-bottom-container", tabindex: "-1", hidden: !this.hasPopoverBottom, onKeyDown: this.handleKeydown }, h("slot", { key: 'cd358ea147bf56405752ec90fa54d21576ba64bc', name: "popover-bottom" })))))));
345
+ return (h("click-elsewhere", { key: '2a33dbb32f71a3ddbdd1f6536e73477ffd8131f3', onChange: this.onClickElsewhere }, h("div", { key: '879bac34f9d39d74f4bbb4805c997ce301aeaf7a', class: wrapperClassNames.join(' ') }, h("div", { key: '87e3225592cb9a4a2d042435c158eb7ecaf156f4', class: "btn-height-wrapper", ref: el => (this.primaryBtnWrapper = el), onClick: this.handleWrapperClick, tabIndex: -1 }, h("button", { key: '8a3ae267ce02a1d001c64a2bf6ff7404448d10ef', class: "btn-primary", "test-id": "btn-control", type: "button", role: (optionCount && 'combobox') || undefined, ref: el => (this.primaryBtn = el), onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleFocusOut, disabled: this.disabled, "aria-roledescription": !optionCount && 'filter', "aria-controls": (optionCount && 'option-list') || undefined, "aria-expanded": (optionCount && `${!!open}`) || undefined, "aria-label": this.buttonContent, "aria-describedby": (optionCount && 'option-description') || undefined }, this.truncatedButtonContent, !optionCount && active && h("span", { key: 'ced833366149bb16d5cae81d34757bd7b07967bc', class: "sr" }, "(", loc('tecton.element.pill.active'), ")"))), this.renderIcon(), !!optionCount && this.renderHiddenElement()), this.optionCount > 0 && (h("q2-popover", { key: '8c4987e32809ffcc41a2692cb7c6fff94ac2dcc1', ref: el => (this.popoverElement = el), controlElement: this.primaryBtn, open: this.open, "max-height": this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment, onFocusout: this.handleFocusOut }, h("div", { key: '5f2be27452a99b788abc5930e14438df551e4d2b', class: "popover-content" }, h("div", { key: 'cc1673298e8be74bca92cded4af58dde1c5a1b96', ref: el => (this.popoverTopContainer = el), class: "popover-top-container", tabindex: "-1", hidden: !this.hasPopoverTop, onKeyDown: this.handleKeydown }, h("slot", { key: 'db2ef23869c4315916caa403ce488c8b454f7c6b', name: "popover-top" })), h("q2-option-list", { key: '6c59ef86d341902e1bcaaea041417d5a4b4f2cc6', type: "listbox", ref: el => (this.optionList = el), id: "option-list", onChange: this.handleChange, multiple: this.multiple, selectedOptions: this.selectedOptions, onReady: () => this.updateSelectedOptionElements(), label: loc('tecton.element.optionList.label', [this.optionListLabel]) }, h("slot", { key: '0dc5f8db2cb0b159bf45cb35e5dd8e7574ee469a' })), h("div", { key: 'b3b7f927623964996531b4677b1cc502b340f00a', ref: el => (this.popoverBottomContainer = el), class: "popover-bottom-container", tabindex: "-1", hidden: !this.hasPopoverBottom, onKeyDown: this.handleKeydown }, h("slot", { key: '006ddd76b5c69903b61a0260205ffb7a4e389bf5', name: "popover-bottom" })))))));
346
346
  }
347
347
  static get is() { return "q2-pill"; }
348
348
  static get encapsulation() { return "shadow"; }
@@ -1,5 +1,28 @@
1
1
  import { h, } from "@stencil/core";
2
- import { handleDeprecationWarning, waitForNextPaint } from "../../utils";
2
+ import { handleDeprecationWarning, waitForNextPaint, isAndroid } from "../../utils";
3
+ /**
4
+ * ***********
5
+ * * WARNING *
6
+ * ***********
7
+ * Touching this file obligates you to manually test thoroughly, because Puppeteer can't capture every edgecase.
8
+ *
9
+ * Each of the following Scenarios must be tested on each Device, in each Environment.
10
+ *
11
+ * Scenarios:
12
+ * - Q2 Select non-typeable
13
+ * - Q2 Select typeable
14
+ *
15
+ * Devices:
16
+ * - iOS Safari
17
+ * - Android Chrome
18
+ * - MacOS Safari
19
+ * - Chrome
20
+ * - Firefox
21
+ *
22
+ * Environments:
23
+ * - Standard (Outside of Iframe)
24
+ * - SDK Extension (Inside of Iframe)
25
+ */
3
26
  export class Q2Popover {
4
27
  constructor() {
5
28
  /**
@@ -38,7 +61,7 @@ export class Q2Popover {
38
61
  containerElement.style.setProperty('--comp-pop-opacity', '1');
39
62
  };
40
63
  this.setFixedCSSProperties = async () => {
41
- var _a, _b;
64
+ var _a, _b, _c, _d;
42
65
  const { controlElement, containerElement, currentDirection, rootElementRect } = this;
43
66
  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 : {
44
67
  top: 0,
@@ -52,10 +75,20 @@ export class Q2Popover {
52
75
  containerElement.style.setProperty('--comp-pop-left', `${popoverLeft}px`);
53
76
  containerElement.style.setProperty('--comp-pop-right', `${rootElementRect.width + rootElementRect.left - controlRight}px`);
54
77
  if (currentDirection === 'up') {
55
- containerElement.style.setProperty('--comp-pop-bottom', `${rootElementRect.height + rootElementRect.top - controlTop}px`);
78
+ if (isAndroid()) {
79
+ containerElement.style.setProperty('--comp-pop-bottom', `${window.innerHeight - controlTop}px`);
80
+ }
81
+ else {
82
+ containerElement.style.setProperty('--comp-pop-bottom', `${window.innerHeight - controlTop - ((_c = window === null || window === void 0 ? void 0 : window.visualViewport.offsetTop) !== null && _c !== void 0 ? _c : 0)}px`);
83
+ }
56
84
  }
57
85
  if (currentDirection === 'down') {
58
- containerElement.style.setProperty('--comp-pop-top', `${controlBottom - rootElementRect.top}px`);
86
+ if (isAndroid()) {
87
+ containerElement.style.setProperty('--comp-pop-top', `${controlBottom}px`);
88
+ }
89
+ else {
90
+ containerElement.style.setProperty('--comp-pop-top', `${controlBottom - rootElementRect.top + ((_d = window === null || window === void 0 ? void 0 : window.visualViewport.offsetTop) !== null && _d !== void 0 ? _d : 0)}px`);
91
+ }
59
92
  }
60
93
  // Wait for one paint to prevent layout thrashing
61
94
  await waitForNextPaint();
@@ -153,6 +186,7 @@ export class Q2Popover {
153
186
  addViewportListeners() {
154
187
  var _a;
155
188
  window.addEventListener('resize', this.viewPortOrientationChanged);
189
+ visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.addEventListener('resize', this.viewPortChanged);
156
190
  // #region remove when Popover API is supported in iOS
157
191
  window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });
158
192
  (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.addEventListener('change', this.viewPortOrientationChanged);
@@ -230,6 +264,7 @@ export class Q2Popover {
230
264
  removeViewportListeners() {
231
265
  var _a;
232
266
  window.removeEventListener('resize', this.viewPortOrientationChanged);
267
+ visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.removeEventListener('resize', this.viewPortChanged);
233
268
  // #region remove when Popover API is supported in iOS
234
269
  window.removeEventListener('scroll', this.viewPortChanged);
235
270
  (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.removeEventListener('orientationchange', this.viewPortOrientationChanged);
@@ -295,7 +330,7 @@ export class Q2Popover {
295
330
  containerClasses.push('show');
296
331
  if (this.mode === 'legacy')
297
332
  containerClasses.push('legacy');
298
- return (h("div", { key: '7f8b390b6a1e7fd2b17603fb803591fd1cb62ba4', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1 }, h("div", { key: '878b6b01de37233ce5cd9f36b694fad89d599b3e', ref: el => (this.contentElement = el), class: "content" }, h("slot", { key: '83b9de3b4fe050d82d9473cc098bd599fe5c645b' }))));
333
+ return (h("div", { key: '0d638a8870e04fed2741e2654dfcf0dfd8abec9f', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1 }, h("div", { key: '69a38b7a374a979675dc039b247d8abf88662fae', ref: el => (this.contentElement = el), class: "content" }, h("slot", { key: 'da9b5c29369f776443e258b0727492a46541dffa' }))));
299
334
  }
300
335
  static get is() { return "q2-popover"; }
301
336
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"q2-popover.js","sourceRoot":"","sources":["../../../../src/components/q2-popover/q2-popover.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n h,\n ComponentInterface,\n Element,\n Watch,\n Method,\n Listen,\n EventEmitter,\n Event,\n State,\n} from '@stencil/core';\nimport { handleDeprecationWarning, waitForNextPaint } from '../../utils';\n\n@Component({ tag: 'q2-popover', shadow: true, styleUrl: 'q2-popover.scss' })\nexport class Q2Popover implements ComponentInterface {\n // #region Own Properties\n\n containerElement: HTMLDivElement;\n contentElement: HTMLDivElement;\n /**\n * The number of pixels to leave between the popover and the edge of the viewport\n */\n displayBuffer = 10;\n /** remove when Popover API is supported in iOS */\n orientationChanged: boolean = false;\n rootElementRect: DOMRect;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n currentDirection: 'down' | 'up' = undefined;\n\n // remove `show` when Popover API is supported in iOS\n @State()\n show: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** Aligns the popover to the left or right side of the control element. */\n @Prop({ reflect: true })\n align: 'left' | 'right';\n\n /** Indicates the popover will match the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** The element that controls the popover's behavior. */\n @Prop()\n controlElement: HTMLElement;\n\n /**\n * Force the direction of the popover when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ reflect: true })\n direction: 'up' | 'down';\n\n /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n maxHeight: number;\n\n /** @deprecated */\n @Prop()\n minHeight: number;\n\n @Prop()\n mode: 'legacy' = null;\n\n /** Controls whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the popover is opened or closed.\n */\n @Event()\n popoverStateChanged: EventEmitter<{ open: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.removeViewportListeners();\n }\n\n componentDidLoad() {\n this.handleMinHeight();\n if (this.open) this.determinePopDirection();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('popoverState')\n popoverStateHandler(event: CustomEvent<{ open: boolean }>) {\n const {\n detail: { open },\n } = event;\n if (open === this.open) return;\n\n this.open = open;\n event.stopPropagation();\n }\n\n // #endregion\n // #region Public Methods API\n\n @Method()\n async scrollContainerTo(options: ScrollToOptions) {\n this.containerElement.scrollTo(options);\n }\n\n @Method()\n async toggle() {\n this.open = !this.open;\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('minHeight')\n minHeightProvided() {\n this.handleMinHeight();\n }\n\n @Watch('open')\n async openChanged(open: boolean) {\n this.setRootElement();\n this.popoverStateChanged.emit({ open });\n\n if (open) {\n this.addViewportListeners();\n this.determinePopDirection();\n } else {\n this.removeViewportListeners();\n this.currentDirection = undefined;\n this.show = false;\n await waitForNextPaint();\n this.clearCSSProperties();\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get isModule() {\n const isIframe = window !== window.top;\n const hasPlatformDimensions = Object.keys(window.Tecton?.platformDimensions ?? {}).length > 0;\n return isIframe && hasPlatformDimensions;\n }\n\n get providedDirection(): 'up' | 'down' | undefined {\n const { direction } = this;\n switch (direction) {\n case 'up':\n case 'down':\n return direction;\n default:\n return undefined;\n }\n }\n\n get validatedMaxHeight(): number | undefined {\n const { maxHeight } = this;\n return isNaN(maxHeight) ? undefined : maxHeight;\n }\n\n addViewportListeners() {\n window.addEventListener('resize', this.viewPortOrientationChanged);\n // #region remove when Popover API is supported in iOS\n window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });\n screen?.orientation?.addEventListener('change', this.viewPortOrientationChanged);\n window.addEventListener('orientationchange', this.viewPortOrientationChanged);\n\n // #endregion\n }\n\n clearCSSProperties() {\n this.containerElement.style.removeProperty('--comp-pop-max-height');\n this.containerElement.style.removeProperty('--comp-pop-top');\n this.containerElement.style.removeProperty('--comp-pop-bottom');\n this.containerElement.style.removeProperty('--comp-pop-left');\n this.containerElement.style.removeProperty('--comp-pop-right');\n this.containerElement.style.removeProperty('--comp-pop-width');\n this.containerElement.style.removeProperty('--comp-pop-opacity');\n }\n\n async determinePopDirection() {\n const { containerElement, controlElement, providedDirection, displayBuffer } = this;\n if (containerElement) containerElement.style.maxHeight = null;\n\n await waitForNextPaint();\n\n const { isModule } = this;\n const { top: controlTop, bottom: controlBottom } = controlElement?.getBoundingClientRect?.() ?? {\n top: 0,\n bottom: 0,\n };\n\n let windowHeight: number;\n let maxSpaceAbove: number;\n let maxSpaceBelow: number;\n\n if (isModule) {\n const { outletOffset = 0, innerHeight = window.innerHeight } = window.Tecton?.platformDimensions || {};\n const distanceToIframeBottom = window.visualViewport.height - controlBottom;\n const viewableSpaceBelow = innerHeight - (outletOffset + controlBottom);\n const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;\n windowHeight = innerHeight;\n // If the top of the module is below the top of the window we just use the controlTop\n // Otherwise we need to add the outletOffset to the controlTop\n maxSpaceAbove = (outletOffset > 0 ? controlTop : controlTop + outletOffset) - displayBuffer;\n maxSpaceBelow = isIframeShorterThanWindow\n ? distanceToIframeBottom - displayBuffer\n : viewableSpaceBelow - displayBuffer;\n } else {\n windowHeight = window.visualViewport.height;\n maxSpaceAbove = controlTop - displayBuffer;\n maxSpaceBelow = windowHeight - controlBottom - displayBuffer;\n }\n\n const directionWithMostSpace: 'up' | 'down' = maxSpaceAbove > maxSpaceBelow ? 'up' : 'down';\n\n // We do not want to update the max height once the popover is open unless the page orientation shifts (resize or mobile use cases)\n const shouldUpdateMaxHeight =\n !containerElement.style.getPropertyValue('--comp-pop-max-height') || this.orientationChanged;\n // we do not want to constantly update the max-height after an orientation change, so we switch this back to false\n this.orientationChanged = false;\n const currentOrDetermineDirection = this.currentDirection || providedDirection || directionWithMostSpace;\n\n switch (currentOrDetermineDirection) {\n case 'up':\n if (shouldUpdateMaxHeight) {\n const priorityMaxHeight = this.validatedMaxHeight || maxSpaceAbove;\n const maxHeight = Math.min(maxSpaceAbove, priorityMaxHeight);\n containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);\n }\n this.setDirectionAndShow('up');\n break;\n case 'down':\n if (shouldUpdateMaxHeight) {\n const priorityMaxHeight = this.validatedMaxHeight || maxSpaceBelow;\n const maxHeight = Math.min(maxSpaceBelow, priorityMaxHeight);\n containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);\n }\n this.setDirectionAndShow('down');\n break;\n default:\n break;\n }\n }\n\n handleMinHeight = () => {\n if (this.minHeight) {\n handleDeprecationWarning(this, 'minHeight', 'prop');\n }\n };\n\n removeViewportListeners() {\n window.removeEventListener('resize', this.viewPortOrientationChanged);\n // #region remove when Popover API is supported in iOS\n window.removeEventListener('scroll', this.viewPortChanged);\n screen?.orientation?.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n window.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n\n // #endregion\n }\n\n setAbsoluteCSSProperties = async () => {\n const { controlElement, containerElement, currentDirection, align } = this;\n\n if (align === 'right') {\n containerElement.style.setProperty('--comp-pop-right', '0');\n containerElement.style.setProperty('--comp-pop-left', 'unset');\n } else {\n containerElement.style.setProperty('--comp-pop-left', '0');\n containerElement.style.setProperty('--comp-pop-right', 'unset');\n }\n\n if (this.block) {\n containerElement.style.setProperty('--comp-pop-width', '100%');\n }\n\n if (currentDirection === 'up') {\n const controlStyle = getComputedStyle(controlElement);\n const controlSize =\n parseInt(controlStyle.height || '0') +\n parseInt(controlStyle.borderTopWidth || '0') +\n parseInt(controlStyle.borderBottomWidth || '0');\n\n containerElement.style.setProperty('--comp-pop-bottom', `${controlSize}px`);\n }\n\n // Wait for one paint to prevent layout thrashing\n await waitForNextPaint();\n containerElement.style.setProperty('--comp-pop-opacity', '1');\n };\n\n setDirectionAndShow(direction: 'up' | 'down') {\n this.setRootElement();\n // Due to some runtime inconsistency across devices/browsers we need to add one more check here because the\n // popover can be closed between the time the popover is opened and the time the direction is determined\n const isOpen = this.open;\n if (!isOpen) return;\n\n this.currentDirection = direction;\n this.show = true;\n if (this.mode === 'legacy') {\n this.setAbsoluteCSSProperties();\n } else {\n this.setFixedCSSProperties();\n }\n }\n\n setFixedCSSProperties = async () => {\n const { controlElement, containerElement, currentDirection, rootElementRect } = this;\n const {\n top: controlTop,\n bottom: controlBottom,\n left: controlLeft,\n right: controlRight,\n } = controlElement?.getBoundingClientRect?.() ?? {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n const popoverLeft: number = controlLeft - rootElementRect.left;\n\n if (this.block) containerElement.style.setProperty('--comp-pop-width', `${controlElement?.offsetWidth || 0}px`);\n containerElement.style.setProperty('--comp-pop-left', `${popoverLeft}px`);\n containerElement.style.setProperty(\n '--comp-pop-right',\n `${rootElementRect.width + rootElementRect.left - controlRight}px`\n );\n\n if (currentDirection === 'up') {\n containerElement.style.setProperty(\n '--comp-pop-bottom',\n `${rootElementRect.height + rootElementRect.top - controlTop}px`\n );\n }\n if (currentDirection === 'down') {\n containerElement.style.setProperty('--comp-pop-top', `${controlBottom - rootElementRect.top}px`);\n }\n\n // Wait for one paint to prevent layout thrashing\n await waitForNextPaint();\n containerElement.style.setProperty('--comp-pop-opacity', '1');\n };\n\n setRootElement() {\n let currentElement: HTMLElement = this.hostElement;\n\n while (currentElement && currentElement !== document.documentElement) {\n const computedStyle = window.getComputedStyle(currentElement);\n\n // Check if the element has any styles applied that create a new containg block\n if (\n computedStyle.transform !== 'none' ||\n computedStyle.filter !== 'none' ||\n computedStyle.perspective !== 'none' ||\n computedStyle.containerType !== 'normal' ||\n ['transform', 'perspective', 'filter'].includes(computedStyle.willChange) ||\n ['layout', 'paint', 'strict', 'content'].includes(computedStyle.contain)\n ) {\n this.rootElementRect = currentElement.getBoundingClientRect();\n return;\n }\n\n const rootNode = currentElement.getRootNode();\n const isRootNodeWebComponent =\n typeof ShadowRoot !== 'undefined' &&\n rootNode instanceof ShadowRoot &&\n rootNode.host instanceof HTMLElement;\n if (isRootNodeWebComponent) {\n currentElement = rootNode.host;\n } else {\n currentElement = currentElement.parentElement;\n }\n }\n\n // Return the document's bounding rect if no element is found\n this.rootElementRect = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n height: window.visualViewport.height,\n width: window.visualViewport.width,\n } as DOMRect;\n }\n\n viewPortChanged = () => {\n if (!this.open) return;\n this.determinePopDirection();\n };\n\n viewPortOrientationChanged = () => {\n this.orientationChanged = true;\n this.viewPortChanged();\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const containerClasses = ['container', this.currentDirection];\n if (this.show) containerClasses.push('show');\n if (this.mode === 'legacy') containerClasses.push('legacy');\n\n return (\n <div\n ref={el => (this.containerElement = el)}\n class={containerClasses.join(' ')}\n test-id=\"outerContainer\"\n tabIndex={-1}\n >\n <div\n ref={el => (this.contentElement = el)}\n class=\"content\"\n >\n <slot />\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-popover.js","sourceRoot":"","sources":["../../../../src/components/q2-popover/q2-popover.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n h,\n ComponentInterface,\n Element,\n Watch,\n Method,\n Listen,\n EventEmitter,\n Event,\n State,\n} from '@stencil/core';\nimport { handleDeprecationWarning, waitForNextPaint, isAndroid } from '../../utils';\n\n/**\n * ***********\n * * WARNING *\n * ***********\n * Touching this file obligates you to manually test thoroughly, because Puppeteer can't capture every edgecase.\n *\n * Each of the following Scenarios must be tested on each Device, in each Environment.\n *\n * Scenarios:\n * - Q2 Select non-typeable\n * - Q2 Select typeable\n *\n * Devices:\n * - iOS Safari\n * - Android Chrome\n * - MacOS Safari\n * - Chrome\n * - Firefox\n *\n * Environments:\n * - Standard (Outside of Iframe)\n * - SDK Extension (Inside of Iframe)\n */\n\n@Component({ tag: 'q2-popover', shadow: true, styleUrl: 'q2-popover.scss' })\nexport class Q2Popover implements ComponentInterface {\n // #region Own Properties\n\n containerElement: HTMLDivElement;\n contentElement: HTMLDivElement;\n /**\n * The number of pixels to leave between the popover and the edge of the viewport\n */\n displayBuffer = 10;\n /** remove when Popover API is supported in iOS */\n orientationChanged: boolean = false;\n rootElementRect: DOMRect;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n currentDirection: 'down' | 'up' = undefined;\n\n // remove `show` when Popover API is supported in iOS\n @State()\n show: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** Aligns the popover to the left or right side of the control element. */\n @Prop({ reflect: true })\n align: 'left' | 'right';\n\n /** Indicates the popover will match the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** The element that controls the popover's behavior. */\n @Prop()\n controlElement: HTMLElement;\n\n /**\n * Force the direction of the popover when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ reflect: true })\n direction: 'up' | 'down';\n\n /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n maxHeight: number;\n\n /** @deprecated */\n @Prop()\n minHeight: number;\n\n @Prop()\n mode: 'legacy' = null;\n\n /** Controls whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the popover is opened or closed.\n */\n @Event()\n popoverStateChanged: EventEmitter<{ open: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.removeViewportListeners();\n }\n\n componentDidLoad() {\n this.handleMinHeight();\n if (this.open) this.determinePopDirection();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('popoverState')\n popoverStateHandler(event: CustomEvent<{ open: boolean }>) {\n const {\n detail: { open },\n } = event;\n if (open === this.open) return;\n\n this.open = open;\n event.stopPropagation();\n }\n\n // #endregion\n // #region Public Methods API\n\n @Method()\n async scrollContainerTo(options: ScrollToOptions) {\n this.containerElement.scrollTo(options);\n }\n\n @Method()\n async toggle() {\n this.open = !this.open;\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('minHeight')\n minHeightProvided() {\n this.handleMinHeight();\n }\n\n @Watch('open')\n async openChanged(open: boolean) {\n this.setRootElement();\n this.popoverStateChanged.emit({ open });\n\n if (open) {\n this.addViewportListeners();\n this.determinePopDirection();\n } else {\n this.removeViewportListeners();\n this.currentDirection = undefined;\n this.show = false;\n await waitForNextPaint();\n this.clearCSSProperties();\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get isModule() {\n const isIframe = window !== window.top;\n const hasPlatformDimensions = Object.keys(window.Tecton?.platformDimensions ?? {}).length > 0;\n return isIframe && hasPlatformDimensions;\n }\n\n get providedDirection(): 'up' | 'down' | undefined {\n const { direction } = this;\n switch (direction) {\n case 'up':\n case 'down':\n return direction;\n default:\n return undefined;\n }\n }\n\n get validatedMaxHeight(): number | undefined {\n const { maxHeight } = this;\n return isNaN(maxHeight) ? undefined : maxHeight;\n }\n\n addViewportListeners() {\n window.addEventListener('resize', this.viewPortOrientationChanged);\n visualViewport?.addEventListener('resize', this.viewPortChanged);\n // #region remove when Popover API is supported in iOS\n window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });\n screen?.orientation?.addEventListener('change', this.viewPortOrientationChanged);\n window.addEventListener('orientationchange', this.viewPortOrientationChanged);\n\n // #endregion\n }\n\n clearCSSProperties() {\n this.containerElement.style.removeProperty('--comp-pop-max-height');\n this.containerElement.style.removeProperty('--comp-pop-top');\n this.containerElement.style.removeProperty('--comp-pop-bottom');\n this.containerElement.style.removeProperty('--comp-pop-left');\n this.containerElement.style.removeProperty('--comp-pop-right');\n this.containerElement.style.removeProperty('--comp-pop-width');\n this.containerElement.style.removeProperty('--comp-pop-opacity');\n }\n\n async determinePopDirection() {\n const { containerElement, controlElement, providedDirection, displayBuffer } = this;\n if (containerElement) containerElement.style.maxHeight = null;\n\n await waitForNextPaint();\n\n const { isModule } = this;\n const { top: controlTop, bottom: controlBottom } = controlElement?.getBoundingClientRect?.() ?? {\n top: 0,\n bottom: 0,\n };\n\n let windowHeight: number;\n let maxSpaceAbove: number;\n let maxSpaceBelow: number;\n\n if (isModule) {\n const { outletOffset = 0, innerHeight = window.innerHeight } = window.Tecton?.platformDimensions || {};\n const distanceToIframeBottom = window.visualViewport.height - controlBottom;\n const viewableSpaceBelow = innerHeight - (outletOffset + controlBottom);\n const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;\n windowHeight = innerHeight;\n // If the top of the module is below the top of the window we just use the controlTop\n // Otherwise we need to add the outletOffset to the controlTop\n maxSpaceAbove = (outletOffset > 0 ? controlTop : controlTop + outletOffset) - displayBuffer;\n maxSpaceBelow = isIframeShorterThanWindow\n ? distanceToIframeBottom - displayBuffer\n : viewableSpaceBelow - displayBuffer;\n } else {\n windowHeight = window.visualViewport.height;\n maxSpaceAbove = controlTop - displayBuffer;\n maxSpaceBelow = windowHeight - controlBottom - displayBuffer;\n }\n\n const directionWithMostSpace: 'up' | 'down' = maxSpaceAbove > maxSpaceBelow ? 'up' : 'down';\n\n // We do not want to update the max height once the popover is open unless the page orientation shifts (resize or mobile use cases)\n const shouldUpdateMaxHeight =\n !containerElement.style.getPropertyValue('--comp-pop-max-height') || this.orientationChanged;\n // we do not want to constantly update the max-height after an orientation change, so we switch this back to false\n this.orientationChanged = false;\n const currentOrDetermineDirection = this.currentDirection || providedDirection || directionWithMostSpace;\n\n switch (currentOrDetermineDirection) {\n case 'up':\n if (shouldUpdateMaxHeight) {\n const priorityMaxHeight = this.validatedMaxHeight || maxSpaceAbove;\n const maxHeight = Math.min(maxSpaceAbove, priorityMaxHeight);\n containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);\n }\n this.setDirectionAndShow('up');\n break;\n case 'down':\n if (shouldUpdateMaxHeight) {\n const priorityMaxHeight = this.validatedMaxHeight || maxSpaceBelow;\n const maxHeight = Math.min(maxSpaceBelow, priorityMaxHeight);\n containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);\n }\n this.setDirectionAndShow('down');\n break;\n default:\n break;\n }\n }\n\n handleMinHeight = () => {\n if (this.minHeight) {\n handleDeprecationWarning(this, 'minHeight', 'prop');\n }\n };\n\n removeViewportListeners() {\n window.removeEventListener('resize', this.viewPortOrientationChanged);\n visualViewport?.removeEventListener('resize', this.viewPortChanged);\n // #region remove when Popover API is supported in iOS\n window.removeEventListener('scroll', this.viewPortChanged);\n screen?.orientation?.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n window.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n\n // #endregion\n }\n\n setAbsoluteCSSProperties = async () => {\n const { controlElement, containerElement, currentDirection, align } = this;\n\n if (align === 'right') {\n containerElement.style.setProperty('--comp-pop-right', '0');\n containerElement.style.setProperty('--comp-pop-left', 'unset');\n } else {\n containerElement.style.setProperty('--comp-pop-left', '0');\n containerElement.style.setProperty('--comp-pop-right', 'unset');\n }\n\n if (this.block) {\n containerElement.style.setProperty('--comp-pop-width', '100%');\n }\n\n if (currentDirection === 'up') {\n const controlStyle = getComputedStyle(controlElement);\n const controlSize =\n parseInt(controlStyle.height || '0') +\n parseInt(controlStyle.borderTopWidth || '0') +\n parseInt(controlStyle.borderBottomWidth || '0');\n\n containerElement.style.setProperty('--comp-pop-bottom', `${controlSize}px`);\n }\n\n // Wait for one paint to prevent layout thrashing\n await waitForNextPaint();\n containerElement.style.setProperty('--comp-pop-opacity', '1');\n };\n\n setDirectionAndShow(direction: 'up' | 'down') {\n this.setRootElement();\n // Due to some runtime inconsistency across devices/browsers we need to add one more check here because the\n // popover can be closed between the time the popover is opened and the time the direction is determined\n const isOpen = this.open;\n if (!isOpen) return;\n\n this.currentDirection = direction;\n this.show = true;\n if (this.mode === 'legacy') {\n this.setAbsoluteCSSProperties();\n } else {\n this.setFixedCSSProperties();\n }\n }\n\n setFixedCSSProperties = async () => {\n const { controlElement, containerElement, currentDirection, rootElementRect } = this;\n const {\n top: controlTop,\n bottom: controlBottom,\n left: controlLeft,\n right: controlRight,\n } = controlElement?.getBoundingClientRect?.() ?? {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n const popoverLeft: number = controlLeft - rootElementRect.left;\n\n if (this.block) containerElement.style.setProperty('--comp-pop-width', `${controlElement?.offsetWidth || 0}px`);\n containerElement.style.setProperty('--comp-pop-left', `${popoverLeft}px`);\n containerElement.style.setProperty(\n '--comp-pop-right',\n `${rootElementRect.width + rootElementRect.left - controlRight}px`\n );\n\n if (currentDirection === 'up') {\n if (isAndroid()) {\n containerElement.style.setProperty('--comp-pop-bottom', `${window.innerHeight - controlTop}px`);\n } else {\n containerElement.style.setProperty(\n '--comp-pop-bottom',\n `${window.innerHeight - controlTop - (window?.visualViewport.offsetTop ?? 0)}px`\n );\n }\n }\n if (currentDirection === 'down') {\n if (isAndroid()) {\n containerElement.style.setProperty('--comp-pop-top', `${controlBottom}px`);\n } else {\n containerElement.style.setProperty(\n '--comp-pop-top',\n `${controlBottom - rootElementRect.top + (window?.visualViewport.offsetTop ?? 0)}px`\n );\n }\n }\n\n // Wait for one paint to prevent layout thrashing\n await waitForNextPaint();\n containerElement.style.setProperty('--comp-pop-opacity', '1');\n };\n\n setRootElement() {\n let currentElement: HTMLElement = this.hostElement;\n\n while (currentElement && currentElement !== document.documentElement) {\n const computedStyle = window.getComputedStyle(currentElement);\n\n // Check if the element has any styles applied that create a new containg block\n if (\n computedStyle.transform !== 'none' ||\n computedStyle.filter !== 'none' ||\n computedStyle.perspective !== 'none' ||\n computedStyle.containerType !== 'normal' ||\n ['transform', 'perspective', 'filter'].includes(computedStyle.willChange) ||\n ['layout', 'paint', 'strict', 'content'].includes(computedStyle.contain)\n ) {\n this.rootElementRect = currentElement.getBoundingClientRect();\n return;\n }\n\n const rootNode = currentElement.getRootNode();\n const isRootNodeWebComponent =\n typeof ShadowRoot !== 'undefined' &&\n rootNode instanceof ShadowRoot &&\n rootNode.host instanceof HTMLElement;\n if (isRootNodeWebComponent) {\n currentElement = rootNode.host;\n } else {\n currentElement = currentElement.parentElement;\n }\n }\n\n // Return the document's bounding rect if no element is found\n this.rootElementRect = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n height: window.visualViewport.height,\n width: window.visualViewport.width,\n } as DOMRect;\n }\n\n viewPortChanged = () => {\n if (!this.open) return;\n this.determinePopDirection();\n };\n\n viewPortOrientationChanged = () => {\n this.orientationChanged = true;\n this.viewPortChanged();\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const containerClasses = ['container', this.currentDirection];\n if (this.show) containerClasses.push('show');\n if (this.mode === 'legacy') containerClasses.push('legacy');\n\n return (\n <div\n ref={el => (this.containerElement = el)}\n class={containerClasses.join(' ')}\n test-id=\"outerContainer\"\n tabIndex={-1}\n >\n <div\n ref={el => (this.contentElement = el)}\n class=\"content\"\n >\n <slot />\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"]}
@@ -274,7 +274,7 @@ describe('popover', () => {
274
274
  specPopover.currentDirection = 'up';
275
275
  await specPopover.setFixedCSSProperties();
276
276
  expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();
277
- expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBe('580px');
277
+ expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBe('748px');
278
278
  });
279
279
  it('sets --comp-pop-top when direction is down', async () => {
280
280
  specPopover.currentDirection = 'down';
@@ -320,7 +320,7 @@ describe('popover', () => {
320
320
  specPopover.currentDirection = 'up';
321
321
  await specPopover.setFixedCSSProperties();
322
322
  expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();
323
- expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBe('580px');
323
+ expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBe('698px');
324
324
  });
325
325
  it('sets --comp-pop-top when direction is down', async () => {
326
326
  specPopover.currentDirection = 'down';