q2-tecton-elements 1.55.3 → 1.56.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 (377) hide show
  1. package/dist/bundle-report.json +15910 -11843
  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/loader.cjs.js +1 -1
  5. package/dist/cjs/q2-action-group.cjs.entry.js +2 -2
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-avatar.cjs.entry.js +2 -2
  8. package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
  9. package/dist/cjs/q2-badge_7.cjs.entry.js +56 -55
  10. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  11. package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
  12. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  14. package/dist/cjs/q2-carousel.cjs.entry.js +2 -2
  15. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  16. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  17. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  18. package/dist/cjs/q2-checkbox-group.cjs.entry.js +3 -3
  19. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-checkbox.cjs.entry.js +3 -3
  21. package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-currency.cjs.entry.js +2 -2
  23. package/dist/cjs/q2-currency.cjs.entry.js.map +1 -1
  24. package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
  25. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  26. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  27. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-dropdown.cjs.entry.js +2 -2
  29. package/dist/cjs/q2-editable-field.cjs.entry.js +2 -2
  30. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-file-picker.cjs.entry.js +20 -7
  32. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
  33. package/dist/cjs/q2-form.cjs.entry.js +2 -2
  34. package/dist/cjs/q2-form.cjs.entry.js.map +1 -1
  35. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-grid-area.cjs.entry.js +133 -0
  37. package/dist/cjs/q2-grid-area.cjs.entry.js.map +1 -0
  38. package/dist/cjs/q2-grid.cjs.entry.js +109 -0
  39. package/dist/cjs/q2-grid.cjs.entry.js.map +1 -0
  40. package/dist/cjs/q2-item_3.cjs.entry.js +4 -4
  41. package/dist/cjs/q2-item_3.cjs.entry.js.map +1 -1
  42. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  43. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  45. package/dist/cjs/q2-modal.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  47. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  48. package/dist/cjs/q2-option-list_2.cjs.entry.js +18 -6
  49. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -1
  50. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  52. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  53. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  54. package/dist/cjs/q2-radio.cjs.entry.js +2 -2
  55. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  56. package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
  57. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  58. package/dist/cjs/q2-select.cjs.entry.js +3 -3
  59. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  60. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  61. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  62. package/dist/cjs/q2-tag.cjs.entry.js +2 -2
  63. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  64. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  65. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  66. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  67. package/dist/collection/collection-manifest.json +2 -0
  68. package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
  69. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  70. package/dist/collection/components/q2-avatar/q2-avatar.css +8 -8
  71. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  72. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  73. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  74. package/dist/collection/components/q2-carousel/q2-carousel.js +1 -1
  75. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  76. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  77. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  78. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  79. package/dist/collection/components/q2-checkbox/q2-checkbox.css +7 -3
  80. package/dist/collection/components/q2-checkbox/q2-checkbox.js +1 -1
  81. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +0 -5
  82. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
  83. package/dist/collection/components/q2-currency/q2-currency.css +2 -2
  84. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  85. package/dist/collection/components/q2-data-table/q2-data-table.css +1 -2
  86. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  87. package/dist/collection/components/q2-dropdown/q2-dropdown.js +1 -1
  88. package/dist/collection/components/q2-editable-field/q2-editable-field.js +1 -1
  89. package/dist/collection/components/q2-example/q2-example.js +1 -1
  90. package/dist/collection/components/q2-file-picker/q2-file-picker.css +11 -2
  91. package/dist/collection/components/q2-file-picker/q2-file-picker.js +52 -12
  92. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  93. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js +25 -0
  94. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -1
  95. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js +107 -18
  96. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
  97. package/dist/collection/components/q2-form/q2-form.css +0 -1
  98. package/dist/collection/components/q2-form/q2-form.js +1 -1
  99. package/dist/collection/components/q2-form/test/q2-form-test.e2e.js +24 -4
  100. package/dist/collection/components/q2-form/test/q2-form-test.e2e.js.map +1 -1
  101. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  102. package/dist/collection/components/q2-grid/q2-grid.css +98 -0
  103. package/dist/collection/components/q2-grid/q2-grid.js +807 -0
  104. package/dist/collection/components/q2-grid/q2-grid.js.map +1 -0
  105. package/dist/collection/components/q2-grid/test/q2-grid.e2e.js +218 -0
  106. package/dist/collection/components/q2-grid/test/q2-grid.e2e.js.map +1 -0
  107. package/dist/collection/components/q2-grid-area/q2-grid-area.css +110 -0
  108. package/dist/collection/components/q2-grid-area/q2-grid-area.js +1109 -0
  109. package/dist/collection/components/q2-grid-area/q2-grid-area.js.map +1 -0
  110. package/dist/collection/components/q2-grid-area/test/q2-grid-area.e2e.js +196 -0
  111. package/dist/collection/components/q2-grid-area/test/q2-grid-area.e2e.js.map +1 -0
  112. package/dist/collection/components/q2-icon/assets/brand.symbol.svg +1 -1
  113. package/dist/collection/components/q2-icon/assets/browsersos.symbol.svg +1 -0
  114. package/dist/collection/components/q2-icon/assets/cards.symbol.svg +1 -1
  115. package/dist/{q2-tecton-elements/assets/system.symbol.svg → collection/components/q2-icon/assets/devices.symbol.svg} +1 -1
  116. package/dist/collection/components/q2-icon/assets/icon-file-list.json +1 -1
  117. package/dist/collection/components/q2-icon/assets/icon-map.json +1 -1
  118. package/dist/collection/components/q2-icon/assets/legacy.symbol.svg +1 -1
  119. package/dist/collection/components/q2-icon/assets/mobile.symbol.svg +1 -1
  120. package/dist/collection/components/q2-icon/q2-icon.css +7 -1
  121. package/dist/collection/components/q2-icon/q2-icon.js +3 -2
  122. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  123. package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js +3 -3
  124. package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js.map +1 -1
  125. package/dist/collection/components/q2-input/q2-input.js +1 -1
  126. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js +5 -3
  127. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
  128. package/dist/collection/components/q2-item/q2-item.css +3 -3
  129. package/dist/collection/components/q2-item/q2-item.js +1 -1
  130. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  131. package/dist/collection/components/q2-list/q2-list.js +1 -1
  132. package/dist/collection/components/q2-message/q2-message.js +1 -1
  133. package/dist/collection/components/q2-modal/q2-modal.js +1 -1
  134. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  135. package/dist/collection/components/q2-option-list/q2-option-list.js +1 -1
  136. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  137. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  138. package/dist/collection/components/q2-popover/q2-popover.js +40 -5
  139. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  140. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +2 -2
  141. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
  142. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  143. package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
  144. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  145. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  146. package/dist/collection/components/q2-section/q2-section.js +2 -2
  147. package/dist/collection/components/q2-select/q2-select.js +2 -2
  148. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  149. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
  150. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  151. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  152. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  153. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  154. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  155. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  156. package/dist/collection/utils/helpers.js +15 -0
  157. package/dist/collection/utils/helpers.js.map +1 -1
  158. package/dist/collection/utils/index.js +3 -0
  159. package/dist/collection/utils/index.js.map +1 -1
  160. package/dist/components/index.js +4 -0
  161. package/dist/components/index.js.map +1 -1
  162. package/dist/components/index2.js +4 -1
  163. package/dist/components/index2.js.map +1 -1
  164. package/dist/components/q2-action-group2.js +1 -1
  165. package/dist/components/q2-action-sheet.js +1 -1
  166. package/dist/components/q2-avatar2.js +2 -2
  167. package/dist/components/q2-avatar2.js.map +1 -1
  168. package/dist/components/q2-calendar.js +1 -1
  169. package/dist/components/q2-carousel-pane.js +2 -2
  170. package/dist/components/q2-carousel.js +1 -1
  171. package/dist/components/q2-chart-area.js +1 -1
  172. package/dist/components/q2-chart-bar.js +1 -1
  173. package/dist/components/q2-chart-donut.js +1 -1
  174. package/dist/components/q2-checkbox-group.js +2 -2
  175. package/dist/components/q2-checkbox-group.js.map +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 +1 -1
  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 +2 -2
  189. package/dist/components/q2-form.js.map +1 -1
  190. package/dist/components/q2-formatted-text.js +1 -1
  191. package/dist/components/q2-grid-area.d.ts +11 -0
  192. package/dist/components/q2-grid-area.js +190 -0
  193. package/dist/components/q2-grid-area.js.map +1 -0
  194. package/dist/components/q2-grid.d.ts +11 -0
  195. package/dist/components/q2-grid.js +154 -0
  196. package/dist/components/q2-grid.js.map +1 -0
  197. package/dist/components/q2-icon2.js +52 -51
  198. package/dist/components/q2-icon2.js.map +1 -1
  199. package/dist/components/q2-input2.js +1 -1
  200. package/dist/components/q2-item2.js +2 -2
  201. package/dist/components/q2-item2.js.map +1 -1
  202. package/dist/components/q2-legend2.js +1 -1
  203. package/dist/components/q2-list2.js +1 -1
  204. package/dist/components/q2-message2.js +1 -1
  205. package/dist/components/q2-modal.js +1 -1
  206. package/dist/components/q2-month-picker.js +2 -2
  207. package/dist/components/q2-optgroup2.js +1 -1
  208. package/dist/components/q2-option-list2.js +1 -1
  209. package/dist/components/q2-pagination.js +3 -3
  210. package/dist/components/q2-pill.js +1 -1
  211. package/dist/components/q2-popover2.js +17 -5
  212. package/dist/components/q2-popover2.js.map +1 -1
  213. package/dist/components/q2-radio-group.js +1 -1
  214. package/dist/components/q2-radio.js +1 -1
  215. package/dist/components/q2-relative-time.js +1 -1
  216. package/dist/components/q2-resize-observer2.js +1 -1
  217. package/dist/components/q2-section.js +2 -2
  218. package/dist/components/q2-select2.js +3 -3
  219. package/dist/components/q2-stepper-pane.js +1 -1
  220. package/dist/components/q2-stepper-vertical.js +1 -1
  221. package/dist/components/q2-stepper.js +1 -1
  222. package/dist/components/q2-tab-container.js +1 -1
  223. package/dist/components/q2-tab-pane.js +1 -1
  224. package/dist/components/q2-tag.js +1 -1
  225. package/dist/components/q2-textarea.js +1 -1
  226. package/dist/components/tecton-tab-pane.js +2 -2
  227. package/dist/esm/{index-f2a66217.js → index-c215e8ef.js} +5 -2
  228. package/dist/esm/index-c215e8ef.js.map +1 -0
  229. package/dist/esm/loader.js +1 -1
  230. package/dist/esm/q2-action-group.entry.js +2 -2
  231. package/dist/esm/q2-action-sheet.entry.js +2 -2
  232. package/dist/esm/q2-avatar.entry.js +2 -2
  233. package/dist/esm/q2-avatar.entry.js.map +1 -1
  234. package/dist/esm/q2-badge_7.entry.js +56 -55
  235. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  236. package/dist/esm/q2-calendar.entry.js +2 -2
  237. package/dist/esm/q2-card.entry.js +1 -1
  238. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  239. package/dist/esm/q2-carousel.entry.js +2 -2
  240. package/dist/esm/q2-chart-area.entry.js +2 -2
  241. package/dist/esm/q2-chart-bar.entry.js +2 -2
  242. package/dist/esm/q2-chart-donut.entry.js +2 -2
  243. package/dist/esm/q2-checkbox-group.entry.js +3 -3
  244. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  245. package/dist/esm/q2-checkbox.entry.js +3 -3
  246. package/dist/esm/q2-checkbox.entry.js.map +1 -1
  247. package/dist/esm/q2-currency.entry.js +2 -2
  248. package/dist/esm/q2-currency.entry.js.map +1 -1
  249. package/dist/esm/q2-data-table.entry.js +2 -2
  250. package/dist/esm/q2-data-table.entry.js.map +1 -1
  251. package/dist/esm/q2-detail.entry.js +2 -2
  252. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  253. package/dist/esm/q2-dropdown.entry.js +2 -2
  254. package/dist/esm/q2-editable-field.entry.js +2 -2
  255. package/dist/esm/q2-example.entry.js +1 -1
  256. package/dist/esm/q2-file-picker.entry.js +20 -7
  257. package/dist/esm/q2-file-picker.entry.js.map +1 -1
  258. package/dist/esm/q2-form.entry.js +2 -2
  259. package/dist/esm/q2-form.entry.js.map +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 +2 -2
  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/{collection/components/q2-icon/assets/system.symbol.svg → q2-tecton-elements/assets/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-f2a66217.js → index-c215e8ef.js} +6 -2
  301. package/dist/q2-tecton-elements/index-c215e8ef.js.map +1 -0
  302. package/dist/q2-tecton-elements/q2-action-group.entry.js +4 -4
  303. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +9 -9
  304. package/dist/q2-tecton-elements/q2-avatar.entry.js +7 -7
  305. package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
  306. package/dist/q2-tecton-elements/q2-badge_7.entry.js +70 -68
  307. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  308. package/dist/q2-tecton-elements/q2-calendar.entry.js +3 -3
  309. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  310. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +4 -4
  311. package/dist/q2-tecton-elements/q2-carousel.entry.js +2 -2
  312. package/dist/q2-tecton-elements/q2-chart-area.entry.js +3 -3
  313. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +80 -80
  314. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +101 -101
  315. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +11 -11
  316. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -1
  317. package/dist/q2-tecton-elements/q2-checkbox.entry.js +12 -12
  318. package/dist/q2-tecton-elements/q2-checkbox.entry.js.map +1 -1
  319. package/dist/q2-tecton-elements/q2-currency.entry.js +7 -7
  320. package/dist/q2-tecton-elements/q2-currency.entry.js.map +1 -1
  321. package/dist/q2-tecton-elements/q2-data-table.entry.js +2 -2
  322. package/dist/q2-tecton-elements/q2-data-table.entry.js.map +1 -1
  323. package/dist/q2-tecton-elements/q2-detail.entry.js +4 -4
  324. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
  325. package/dist/q2-tecton-elements/q2-dropdown.entry.js +6 -6
  326. package/dist/q2-tecton-elements/q2-editable-field.entry.js +2 -2
  327. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  328. package/dist/q2-tecton-elements/q2-file-picker.entry.js +31 -20
  329. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
  330. package/dist/q2-tecton-elements/q2-form.entry.js +10 -10
  331. package/dist/q2-tecton-elements/q2-form.entry.js.map +1 -1
  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 +20 -20
  338. package/dist/q2-tecton-elements/q2-item_3.entry.js.map +1 -1
  339. package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
  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 +30 -30
  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 +25 -25
  349. package/dist/q2-tecton-elements/q2-pill.entry.js +14 -14
  350. package/dist/q2-tecton-elements/q2-radio-group.entry.js +32 -32
  351. package/dist/q2-tecton-elements/q2-radio.entry.js +9 -9
  352. package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
  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 +12 -12
  357. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
  358. package/dist/q2-tecton-elements/q2-stepper.entry.js +22 -22
  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-file-picker/q2-file-picker.d.ts +31 -17
  366. package/dist/types/components/q2-grid/q2-grid.d.ts +157 -0
  367. package/dist/types/components/q2-grid-area/q2-grid-area.d.ts +168 -0
  368. package/dist/types/components/q2-icon/q2-icon.d.ts +1 -0
  369. package/dist/types/components/q2-popover/q2-popover.d.ts +23 -0
  370. package/dist/types/components.d.ts +698 -6
  371. package/dist/types/util.d.ts +2 -2
  372. package/dist/types/utils/helpers.d.ts +1 -0
  373. package/dist/types/utils/index.d.ts +1 -0
  374. package/package.json +3 -3
  375. package/dist/cjs/index-905f4c87.js.map +0 -1
  376. package/dist/esm/index-f2a66217.js.map +0 -1
  377. package/dist/q2-tecton-elements/index-f2a66217.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"q2-popover-test.spec.js","sourceRoot":"","sources":["../../../../../src/components/q2-popover/test/q2-popover-test.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from '@stencil/core/testing';\nimport { Q2Popover } from '../q2-popover';\n\ndescribe('popover', () => {\n let specPopover: Q2Popover;\n\n const samplePlatformDimensions = {\n scrollY: 0,\n innerHeight: 800,\n innerWidth: 600,\n outletOffset: 20,\n };\n\n const sampleTectonWindow = {\n inMobileApp: false,\n noStrings: false,\n platformUrl: '',\n platformDimensions: samplePlatformDimensions,\n };\n\n describe('Props', () => {\n describe('mode', () => {\n it('does not add the legacy class on the container (default)', async () => {\n const page = await newSpecPage({\n components: [Q2Popover],\n html: `<q2-popover></q2-popover>`,\n });\n expect(page.root.shadowRoot.firstElementChild.classList.contains('legacy')).toBeFalsy();\n });\n\n it('adds the legacy class on the container when mode is \"legacy\"', async () => {\n const page = await newSpecPage({\n components: [Q2Popover],\n html: `<q2-popover mode=\"legacy\"></q2-popover>`,\n });\n expect(page.root.shadowRoot.firstElementChild.classList.contains('legacy')).toBeTruthy();\n });\n });\n });\n\n describe('Methods', () => {\n beforeEach(() => {\n specPopover = new Q2Popover();\n });\n\n describe('toggle', () => {\n it('sets open to true when open is false', async () => {\n specPopover.open = false;\n await specPopover.toggle();\n expect(specPopover.open).toBe(true);\n });\n\n it('sets open to false when open is true', async () => {\n specPopover.open = true;\n await specPopover.toggle();\n expect(specPopover.open).toBe(false);\n });\n });\n\n describe('scrollContainerTo', () => {\n it('scrolls the container to the given position', async () => {\n const containerElement = document.createElement('div');\n containerElement.scrollTo = jest.fn();\n specPopover.containerElement = containerElement;\n await specPopover.scrollContainerTo({ top: 100, left: 50 });\n expect(containerElement.scrollTo).toHaveBeenCalledWith({ top: 100, left: 50 });\n });\n });\n });\n\n describe('Getters', () => {\n beforeEach(() => {\n specPopover = new Q2Popover();\n });\n\n describe('actualDirection', () => {\n it('returns direction when \"up\"', async () => {\n specPopover.direction = 'up';\n expect(specPopover.providedDirection).toBe('up');\n });\n\n it('returns direction when \"down\"', async () => {\n specPopover.direction = 'down';\n expect(specPopover.providedDirection).toBe('down');\n });\n\n it('returns undefined when not \"up\" or \"down\"', async () => {\n (specPopover.direction as any) = 'bottom';\n expect(specPopover.providedDirection).toBeUndefined();\n });\n });\n\n describe('isModule', () => {\n it('returns false when window top matches window and platformDimensions is not defined', async () => {\n expect(window.top).toBe(window);\n expect(window.Tecton).toBeUndefined();\n expect(specPopover.isModule).toBe(false);\n });\n\n it('returns false when window top does not match window and platformDimensions is not defined', async () => {\n const windowSpy = jest.spyOn(window, 'top', 'get').mockReturnValue({} as any);\n expect(window.top).not.toEqual(window);\n expect(window.Tecton).toBeUndefined();\n expect(specPopover.isModule).toBe(false);\n windowSpy.mockRestore();\n });\n\n it('returns false when window top matches window and platformDimensions is defined', async () => {\n window.Tecton = sampleTectonWindow;\n expect(window.top).toBe(window);\n expect(window.Tecton.platformDimensions).toBeTruthy();\n expect(specPopover.isModule).toBe(false);\n });\n\n it('returns true when window top does not match window and platformDimensions is defined', async () => {\n const windowSpy = jest.spyOn(window, 'top', 'get').mockReturnValue({} as any);\n window.Tecton = sampleTectonWindow;\n expect(specPopover.isModule).toBe(true);\n windowSpy.mockRestore();\n });\n });\n });\n\n describe('when in a module', () => {\n let specPopover: Q2Popover;\n let windowSpy: jest.SpyInstance;\n let controlElement: HTMLDivElement;\n let containerElement: HTMLDivElement;\n\n beforeEach(async () => {\n specPopover = new Q2Popover();\n windowSpy = jest.spyOn(window, 'top', 'get').mockReturnValue({} as any);\n window.Tecton = sampleTectonWindow;\n expect(specPopover.isModule).toBe(true);\n\n controlElement = document.createElement('div');\n specPopover.controlElement = controlElement;\n\n containerElement = document.createElement('div');\n specPopover.containerElement = containerElement;\n });\n\n afterEach(() => {\n windowSpy.mockRestore();\n });\n\n describe(\"when the module is taller than the window's viewport\", () => {\n beforeEach(() => {\n specPopover.open = true;\n window.visualViewport = { height: 1200 } as any;\n });\n\n it('sets the direction to down when control element has more space below it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 20,\n bottom: 70,\n } as any);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('700px');\n expect(specPopover.currentDirection).toBe('down');\n\n controlSpy.mockRestore();\n });\n\n it('sets the direction to up when control element has more space above it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 600,\n bottom: 650,\n } as any);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('590px');\n expect(specPopover.currentDirection).toBe('up');\n\n controlSpy.mockRestore();\n });\n\n describe('when the outletOffset is less than 0', () => {\n beforeEach(() => {\n window.Tecton = {\n ...sampleTectonWindow,\n platformDimensions: { ...samplePlatformDimensions, outletOffset: -50 },\n };\n });\n\n it('sets the direction to down when control element has more space below it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 20,\n bottom: 70,\n } as any);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('770px');\n expect(specPopover.currentDirection).toBe('down');\n\n controlSpy.mockRestore();\n });\n\n it('sets the direction to up when control element has more space above it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 600,\n bottom: 650,\n } as any);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('540px');\n expect(specPopover.currentDirection).toBe('up');\n\n controlSpy.mockRestore();\n });\n });\n });\n\n describe(\"when the module is shorter than the window's viewport\", () => {\n beforeEach(() => {\n specPopover.open = true;\n window.visualViewport = { height: 600 } as any;\n });\n\n it('sets the direction to down when control element has more space below it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 20,\n bottom: 70,\n } as any);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('520px');\n expect(specPopover.currentDirection).toBe('down');\n\n controlSpy.mockRestore();\n });\n\n it('sets the direction to up when control element has more space above it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 500,\n bottom: 550,\n } as any);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('490px');\n expect(specPopover.currentDirection).toBe('up');\n\n controlSpy.mockRestore();\n });\n });\n });\n\n describe('viewPortChanged', () => {\n let specPopover: Q2Popover;\n let windowSpy: jest.SpyInstance;\n\n beforeEach(() => {\n specPopover = new Q2Popover();\n windowSpy = jest.spyOn(window, 'top', 'get').mockReturnValue({} as any);\n window.Tecton = sampleTectonWindow;\n expect(specPopover.isModule).toBe(true);\n specPopover.determinePopDirection = jest.fn();\n });\n\n afterEach(() => {\n windowSpy.mockRestore();\n });\n\n it('calls determinePopDirection when open is true', async () => {\n specPopover.open = true;\n await specPopover.viewPortChanged();\n expect(specPopover.determinePopDirection).toHaveBeenCalled();\n });\n\n it('does nothing when open is false', async () => {\n specPopover.open = false;\n await specPopover.viewPortChanged();\n expect(specPopover.determinePopDirection).not.toHaveBeenCalled();\n });\n });\n\n describe('viewPortOrientationChanged', () => {\n let specPopover: Q2Popover;\n\n beforeEach(() => {\n specPopover = new Q2Popover();\n specPopover.viewPortChanged = jest.fn();\n });\n\n it('sets orientationChanged to true and calls viewportChanged', async () => {\n await specPopover.viewPortOrientationChanged();\n expect(specPopover.orientationChanged).toBe(true);\n expect(specPopover.viewPortChanged).toHaveBeenCalled();\n });\n });\n\n describe('setFixedCSSProperties', () => {\n let specPopover: Q2Popover;\n let containerElement: HTMLDivElement;\n\n beforeEach(() => {\n window.visualViewport = { width: 800, height: 600 } as VisualViewport;\n specPopover = new Q2Popover();\n containerElement = document.createElement('div');\n specPopover.containerElement = containerElement;\n specPopover.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 const controlElement = document.createElement('div');\n controlElement.getBoundingClientRect = jest.fn().mockReturnValue({\n top: 20,\n bottom: 70,\n left: 30,\n right: 80,\n } as DOMRect);\n specPopover.controlElement = controlElement;\n });\n\n it('sets the necessary CSS properties', async () => {\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-left')).toBe('30px');\n expect(containerElement.style.getPropertyValue('--comp-pop-right')).toBe('720px');\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-opacity')).toBe('1');\n });\n\n it('sets --comp-pop-bottom when direction is up', async () => {\n specPopover.currentDirection = 'up';\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBe('580px');\n });\n\n it('sets --comp-pop-top when direction is down', async () => {\n specPopover.currentDirection = 'down';\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBe('70px');\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBeFalsy();\n });\n\n it('sets --comp-pop-width when block is true', async () => {\n specPopover.block = true;\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBe('0px');\n });\n\n describe('when rootElementRect is bonkers', () => {\n beforeEach(() => {\n specPopover.rootElementRect = {\n top: 50,\n bottom: 650,\n left: 50,\n right: 750,\n height: 600,\n width: 700,\n } as DOMRect;\n const controlElement = document.createElement('div');\n controlElement.getBoundingClientRect = jest.fn().mockReturnValue({\n top: 70,\n bottom: 120,\n left: 80,\n right: 130,\n } as DOMRect);\n specPopover.controlElement = controlElement;\n });\n\n it('sets the necessary CSS properties', async () => {\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-left')).toBe('30px');\n expect(containerElement.style.getPropertyValue('--comp-pop-right')).toBe('620px');\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-opacity')).toBe('1');\n });\n\n it('sets --comp-pop-bottom when direction is up', async () => {\n specPopover.currentDirection = 'up';\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBe('580px');\n });\n\n it('sets --comp-pop-top when direction is down', async () => {\n specPopover.currentDirection = 'down';\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBe('70px');\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBeFalsy();\n });\n\n it('sets --comp-pop-width when block is true', async () => {\n specPopover.block = true;\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBe('0px');\n });\n });\n });\n\n describe('setAbsoluteCSSProperties', () => {\n let specPopover: Q2Popover;\n let containerElement: HTMLDivElement;\n\n beforeEach(() => {\n specPopover = new Q2Popover();\n containerElement = document.createElement('div');\n specPopover.mode = 'legacy';\n specPopover.containerElement = containerElement;\n\n const controlElement = document.createElement('div');\n controlElement.getBoundingClientRect = jest.fn().mockReturnValue({\n top: 20,\n bottom: 70,\n left: 30,\n right: 80,\n } as DOMRect);\n specPopover.controlElement = controlElement;\n window.visualViewport = { width: 800, height: 600 } as VisualViewport;\n });\n\n it('sets the necessary CSS properties', async () => {\n await specPopover.setAbsoluteCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-left')).toBe('0');\n expect(containerElement.style.getPropertyValue('--comp-pop-right')).toBe('unset');\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBe('');\n expect(containerElement.style.getPropertyValue('--comp-pop-opacity')).toBe('1');\n });\n\n it('sets the necessary CSS properties when align is right', async () => {\n specPopover.align = 'right';\n await specPopover.setAbsoluteCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-left')).toBe('unset');\n expect(containerElement.style.getPropertyValue('--comp-pop-right')).toBe('0');\n });\n\n it('sets --comp-pop-bottom when direction is up', async () => {\n specPopover.currentDirection = 'up';\n await specPopover.setAbsoluteCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBe('0px');\n });\n\n it('does not set --comp-pop-top when direction is down', async () => {\n specPopover.currentDirection = 'down';\n await specPopover.setAbsoluteCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBe('');\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBe('');\n });\n\n it('sets --comp-pop-width when block is true', async () => {\n specPopover.block = true;\n await specPopover.setAbsoluteCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBe('100%');\n });\n });\n\n describe('clearCSSProperties', () => {\n let specPopover: Q2Popover;\n let containerElement: HTMLDivElement;\n\n beforeEach(() => {\n specPopover = new Q2Popover();\n containerElement = document.createElement('div');\n containerElement.style.setProperty('--comp-pop-max-height', '100px');\n containerElement.style.setProperty('--comp-pop-top', '20px');\n containerElement.style.setProperty('--comp-pop-bottom', '25px');\n containerElement.style.setProperty('--comp-pop-left', '30px');\n containerElement.style.setProperty('--comp-pop-right', '35px');\n containerElement.style.setProperty('--comp-pop-width', '200px');\n containerElement.style.setProperty('--comp-pop-opacity', '1');\n specPopover.containerElement = containerElement;\n });\n\n it('clears the necessary CSS properties', async () => {\n await specPopover.clearCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-left')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-right')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-opacity')).toBeFalsy();\n });\n });\n\n describe('setDirectionAndShow', () => {\n let specPopover: Q2Popover;\n let containerElement: HTMLDivElement;\n\n beforeEach(() => {\n specPopover = new Q2Popover();\n containerElement = document.createElement('div');\n specPopover.containerElement = containerElement;\n specPopover.setRootElement = jest.fn();\n specPopover.setFixedCSSProperties = jest.fn();\n specPopover.setAbsoluteCSSProperties = jest.fn();\n specPopover.scrollContainerTo = jest.fn();\n });\n\n it('does nothing when open is false', async () => {\n specPopover.open = false;\n await specPopover.setDirectionAndShow('up');\n expect(specPopover.currentDirection).toBeUndefined();\n expect(specPopover.show).toBe(false);\n expect(specPopover.setRootElement).toHaveBeenCalled();\n expect(specPopover.setFixedCSSProperties).not.toHaveBeenCalled();\n expect(specPopover.setAbsoluteCSSProperties).not.toHaveBeenCalled();\n });\n\n describe('when open is true', () => {\n beforeEach(() => {\n specPopover.open = true;\n });\n\n it('sets the direction, shows the popover, and sets fixed position properties', async () => {\n await specPopover.setDirectionAndShow('up');\n expect(specPopover.currentDirection).toBe('up');\n expect(specPopover.show).toBe(true);\n expect(specPopover.setRootElement).toHaveBeenCalled();\n expect(specPopover.setFixedCSSProperties).toHaveBeenCalled();\n expect(specPopover.setAbsoluteCSSProperties).not.toHaveBeenCalled();\n });\n\n it('sets the direction, shows the popover, and sets absolute position properties when mode is \"legacy\"', async () => {\n specPopover.mode = 'legacy';\n await specPopover.setDirectionAndShow('up');\n expect(specPopover.currentDirection).toBe('up');\n expect(specPopover.show).toBe(true);\n expect(specPopover.setRootElement).toHaveBeenCalled();\n expect(specPopover.setFixedCSSProperties).not.toHaveBeenCalled();\n expect(specPopover.setAbsoluteCSSProperties).toHaveBeenCalled();\n });\n });\n });\n\n describe('determinePopDirection', () => {\n let specPopover: Q2Popover;\n let controlElement: HTMLDivElement;\n let containerElement: HTMLDivElement;\n\n beforeEach(() => {\n specPopover = new Q2Popover();\n controlElement = document.createElement('div');\n containerElement = document.createElement('div');\n specPopover.controlElement = controlElement;\n specPopover.containerElement = containerElement;\n window.visualViewport = { width: 800, height: 600 } as VisualViewport;\n specPopover.setDirectionAndShow = jest.fn();\n });\n\n it('sets the direction to up when control element has more space above it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 500,\n bottom: 550,\n } as DOMRect);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('490px');\n expect(specPopover.setDirectionAndShow).toHaveBeenCalledWith('up');\n\n controlSpy.mockRestore();\n });\n\n it('sets the direction to down when control element has more space below it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 100,\n bottom: 150,\n } as DOMRect);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('440px');\n expect(specPopover.setDirectionAndShow).toHaveBeenCalledWith('down');\n\n controlSpy.mockRestore();\n });\n });\n\n describe('openChanged', () => {\n beforeEach(() => {\n specPopover = new Q2Popover();\n specPopover.setRootElement = jest.fn();\n specPopover.addViewportListeners = jest.fn();\n specPopover.determinePopDirection = jest.fn();\n specPopover.removeViewportListeners = jest.fn();\n specPopover.clearCSSProperties = jest.fn();\n });\n\n it('sets open to true when open is false', async () => {\n specPopover.currentDirection = 'down';\n specPopover.show = true;\n await specPopover.openChanged(true);\n expect(specPopover.currentDirection).toBe('down');\n expect(specPopover.show).toBeTruthy();\n expect(specPopover.setRootElement).toHaveBeenCalled();\n expect(specPopover.addViewportListeners).toHaveBeenCalled();\n expect(specPopover.determinePopDirection).toHaveBeenCalled();\n expect(specPopover.removeViewportListeners).not.toHaveBeenCalled();\n expect(specPopover.clearCSSProperties).not.toHaveBeenCalled();\n });\n\n it('sets open to false when open is true', async () => {\n specPopover.currentDirection = 'down';\n specPopover.show = true;\n await specPopover.openChanged(false);\n expect(specPopover.currentDirection).toBeUndefined();\n expect(specPopover.show).toBeFalsy();\n expect(specPopover.setRootElement).toHaveBeenCalled();\n expect(specPopover.addViewportListeners).not.toHaveBeenCalled();\n expect(specPopover.determinePopDirection).not.toHaveBeenCalled();\n expect(specPopover.clearCSSProperties).toHaveBeenCalled();\n expect(specPopover.clearCSSProperties).toHaveBeenCalled();\n });\n });\n\n describe('setRootElement', () => {\n let computedStyleStub: any = {};\n const popoverDOMRect = {\n top: 50,\n bottom: 125,\n left: 50,\n right: 50,\n height: 75,\n width: 700,\n } as DOMRect;\n\n beforeEach(() => {\n computedStyleStub = {\n transform: 'none',\n filter: 'none',\n perspective: 'none',\n contain: 'none',\n containerType: 'normal',\n willChange: 'auto',\n };\n window.visualViewport = { width: 800, height: 600 } as VisualViewport;\n specPopover = new Q2Popover();\n window.getComputedStyle = jest.fn().mockReturnValue(computedStyleStub);\n specPopover.hostElement.getBoundingClientRect = jest.fn().mockReturnValue(popoverDOMRect);\n });\n\n it('sets the rootElementRect by default', async () => {\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual({\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n height: 600,\n width: 800,\n });\n });\n\n describe('when a containing block is created by applying CSS properties', () => {\n it('returns the currentElementRect when transform is applied', async () => {\n computedStyleStub.transform = 'translate(10px, 20px)';\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual(popoverDOMRect);\n });\n\n it('returns the currentElementRect when filter is applied', async () => {\n computedStyleStub.filter = 'blur(5px)';\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual(popoverDOMRect);\n });\n\n it('returns the currentElementRect when perspective is applied', async () => {\n computedStyleStub.perspective = '100px';\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual(popoverDOMRect);\n });\n\n it('returns the currentElementRect when contain is applied', async () => {\n computedStyleStub.contain = 'layout';\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual(popoverDOMRect);\n });\n\n it('returns the currentElementRect when containerType is applied', async () => {\n computedStyleStub.containerType = 'none';\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual(popoverDOMRect);\n });\n\n it('returns the currentElementRect when willChange is applied', async () => {\n computedStyleStub.willChange = 'transform';\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual(popoverDOMRect);\n });\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-popover-test.spec.js","sourceRoot":"","sources":["../../../../../src/components/q2-popover/test/q2-popover-test.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from '@stencil/core/testing';\nimport { Q2Popover } from '../q2-popover';\n\ndescribe('popover', () => {\n let specPopover: Q2Popover;\n\n const samplePlatformDimensions = {\n scrollY: 0,\n innerHeight: 800,\n innerWidth: 600,\n outletOffset: 20,\n };\n\n const sampleTectonWindow = {\n inMobileApp: false,\n noStrings: false,\n platformUrl: '',\n platformDimensions: samplePlatformDimensions,\n };\n\n describe('Props', () => {\n describe('mode', () => {\n it('does not add the legacy class on the container (default)', async () => {\n const page = await newSpecPage({\n components: [Q2Popover],\n html: `<q2-popover></q2-popover>`,\n });\n expect(page.root.shadowRoot.firstElementChild.classList.contains('legacy')).toBeFalsy();\n });\n\n it('adds the legacy class on the container when mode is \"legacy\"', async () => {\n const page = await newSpecPage({\n components: [Q2Popover],\n html: `<q2-popover mode=\"legacy\"></q2-popover>`,\n });\n expect(page.root.shadowRoot.firstElementChild.classList.contains('legacy')).toBeTruthy();\n });\n });\n });\n\n describe('Methods', () => {\n beforeEach(() => {\n specPopover = new Q2Popover();\n });\n\n describe('toggle', () => {\n it('sets open to true when open is false', async () => {\n specPopover.open = false;\n await specPopover.toggle();\n expect(specPopover.open).toBe(true);\n });\n\n it('sets open to false when open is true', async () => {\n specPopover.open = true;\n await specPopover.toggle();\n expect(specPopover.open).toBe(false);\n });\n });\n\n describe('scrollContainerTo', () => {\n it('scrolls the container to the given position', async () => {\n const containerElement = document.createElement('div');\n containerElement.scrollTo = jest.fn();\n specPopover.containerElement = containerElement;\n await specPopover.scrollContainerTo({ top: 100, left: 50 });\n expect(containerElement.scrollTo).toHaveBeenCalledWith({ top: 100, left: 50 });\n });\n });\n });\n\n describe('Getters', () => {\n beforeEach(() => {\n specPopover = new Q2Popover();\n });\n\n describe('actualDirection', () => {\n it('returns direction when \"up\"', async () => {\n specPopover.direction = 'up';\n expect(specPopover.providedDirection).toBe('up');\n });\n\n it('returns direction when \"down\"', async () => {\n specPopover.direction = 'down';\n expect(specPopover.providedDirection).toBe('down');\n });\n\n it('returns undefined when not \"up\" or \"down\"', async () => {\n (specPopover.direction as any) = 'bottom';\n expect(specPopover.providedDirection).toBeUndefined();\n });\n });\n\n describe('isModule', () => {\n it('returns false when window top matches window and platformDimensions is not defined', async () => {\n expect(window.top).toBe(window);\n expect(window.Tecton).toBeUndefined();\n expect(specPopover.isModule).toBe(false);\n });\n\n it('returns false when window top does not match window and platformDimensions is not defined', async () => {\n const windowSpy = jest.spyOn(window, 'top', 'get').mockReturnValue({} as any);\n expect(window.top).not.toEqual(window);\n expect(window.Tecton).toBeUndefined();\n expect(specPopover.isModule).toBe(false);\n windowSpy.mockRestore();\n });\n\n it('returns false when window top matches window and platformDimensions is defined', async () => {\n window.Tecton = sampleTectonWindow;\n expect(window.top).toBe(window);\n expect(window.Tecton.platformDimensions).toBeTruthy();\n expect(specPopover.isModule).toBe(false);\n });\n\n it('returns true when window top does not match window and platformDimensions is defined', async () => {\n const windowSpy = jest.spyOn(window, 'top', 'get').mockReturnValue({} as any);\n window.Tecton = sampleTectonWindow;\n expect(specPopover.isModule).toBe(true);\n windowSpy.mockRestore();\n });\n });\n });\n\n describe('when in a module', () => {\n let specPopover: Q2Popover;\n let windowSpy: jest.SpyInstance;\n let controlElement: HTMLDivElement;\n let containerElement: HTMLDivElement;\n\n beforeEach(async () => {\n specPopover = new Q2Popover();\n windowSpy = jest.spyOn(window, 'top', 'get').mockReturnValue({} as any);\n window.Tecton = sampleTectonWindow;\n expect(specPopover.isModule).toBe(true);\n\n controlElement = document.createElement('div');\n specPopover.controlElement = controlElement;\n\n containerElement = document.createElement('div');\n specPopover.containerElement = containerElement;\n });\n\n afterEach(() => {\n windowSpy.mockRestore();\n });\n\n describe(\"when the module is taller than the window's viewport\", () => {\n beforeEach(() => {\n specPopover.open = true;\n window.visualViewport = { height: 1200 } as any;\n });\n\n it('sets the direction to down when control element has more space below it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 20,\n bottom: 70,\n } as any);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('700px');\n expect(specPopover.currentDirection).toBe('down');\n\n controlSpy.mockRestore();\n });\n\n it('sets the direction to up when control element has more space above it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 600,\n bottom: 650,\n } as any);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('590px');\n expect(specPopover.currentDirection).toBe('up');\n\n controlSpy.mockRestore();\n });\n\n describe('when the outletOffset is less than 0', () => {\n beforeEach(() => {\n window.Tecton = {\n ...sampleTectonWindow,\n platformDimensions: { ...samplePlatformDimensions, outletOffset: -50 },\n };\n });\n\n it('sets the direction to down when control element has more space below it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 20,\n bottom: 70,\n } as any);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('770px');\n expect(specPopover.currentDirection).toBe('down');\n\n controlSpy.mockRestore();\n });\n\n it('sets the direction to up when control element has more space above it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 600,\n bottom: 650,\n } as any);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('540px');\n expect(specPopover.currentDirection).toBe('up');\n\n controlSpy.mockRestore();\n });\n });\n });\n\n describe(\"when the module is shorter than the window's viewport\", () => {\n beforeEach(() => {\n specPopover.open = true;\n window.visualViewport = { height: 600 } as any;\n });\n\n it('sets the direction to down when control element has more space below it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 20,\n bottom: 70,\n } as any);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('520px');\n expect(specPopover.currentDirection).toBe('down');\n\n controlSpy.mockRestore();\n });\n\n it('sets the direction to up when control element has more space above it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 500,\n bottom: 550,\n } as any);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('490px');\n expect(specPopover.currentDirection).toBe('up');\n\n controlSpy.mockRestore();\n });\n });\n });\n\n describe('viewPortChanged', () => {\n let specPopover: Q2Popover;\n let windowSpy: jest.SpyInstance;\n\n beforeEach(() => {\n specPopover = new Q2Popover();\n windowSpy = jest.spyOn(window, 'top', 'get').mockReturnValue({} as any);\n window.Tecton = sampleTectonWindow;\n expect(specPopover.isModule).toBe(true);\n specPopover.determinePopDirection = jest.fn();\n });\n\n afterEach(() => {\n windowSpy.mockRestore();\n });\n\n it('calls determinePopDirection when open is true', async () => {\n specPopover.open = true;\n await specPopover.viewPortChanged();\n expect(specPopover.determinePopDirection).toHaveBeenCalled();\n });\n\n it('does nothing when open is false', async () => {\n specPopover.open = false;\n await specPopover.viewPortChanged();\n expect(specPopover.determinePopDirection).not.toHaveBeenCalled();\n });\n });\n\n describe('viewPortOrientationChanged', () => {\n let specPopover: Q2Popover;\n\n beforeEach(() => {\n specPopover = new Q2Popover();\n specPopover.viewPortChanged = jest.fn();\n });\n\n it('sets orientationChanged to true and calls viewportChanged', async () => {\n await specPopover.viewPortOrientationChanged();\n expect(specPopover.orientationChanged).toBe(true);\n expect(specPopover.viewPortChanged).toHaveBeenCalled();\n });\n });\n\n describe('setFixedCSSProperties', () => {\n let specPopover: Q2Popover;\n let containerElement: HTMLDivElement;\n\n beforeEach(() => {\n window.visualViewport = { width: 800, height: 600 } as VisualViewport;\n specPopover = new Q2Popover();\n containerElement = document.createElement('div');\n specPopover.containerElement = containerElement;\n specPopover.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 const controlElement = document.createElement('div');\n controlElement.getBoundingClientRect = jest.fn().mockReturnValue({\n top: 20,\n bottom: 70,\n left: 30,\n right: 80,\n } as DOMRect);\n specPopover.controlElement = controlElement;\n });\n\n it('sets the necessary CSS properties', async () => {\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-left')).toBe('30px');\n expect(containerElement.style.getPropertyValue('--comp-pop-right')).toBe('720px');\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-opacity')).toBe('1');\n });\n\n it('sets --comp-pop-bottom when direction is up', async () => {\n specPopover.currentDirection = 'up';\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBe('748px');\n });\n\n it('sets --comp-pop-top when direction is down', async () => {\n specPopover.currentDirection = 'down';\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBe('70px');\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBeFalsy();\n });\n\n it('sets --comp-pop-width when block is true', async () => {\n specPopover.block = true;\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBe('0px');\n });\n\n describe('when rootElementRect is bonkers', () => {\n beforeEach(() => {\n specPopover.rootElementRect = {\n top: 50,\n bottom: 650,\n left: 50,\n right: 750,\n height: 600,\n width: 700,\n } as DOMRect;\n const controlElement = document.createElement('div');\n controlElement.getBoundingClientRect = jest.fn().mockReturnValue({\n top: 70,\n bottom: 120,\n left: 80,\n right: 130,\n } as DOMRect);\n specPopover.controlElement = controlElement;\n });\n\n it('sets the necessary CSS properties', async () => {\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-left')).toBe('30px');\n expect(containerElement.style.getPropertyValue('--comp-pop-right')).toBe('620px');\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-opacity')).toBe('1');\n });\n\n it('sets --comp-pop-bottom when direction is up', async () => {\n specPopover.currentDirection = 'up';\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBe('698px');\n });\n\n it('sets --comp-pop-top when direction is down', async () => {\n specPopover.currentDirection = 'down';\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBe('70px');\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBeFalsy();\n });\n\n it('sets --comp-pop-width when block is true', async () => {\n specPopover.block = true;\n await specPopover.setFixedCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBe('0px');\n });\n });\n });\n\n describe('setAbsoluteCSSProperties', () => {\n let specPopover: Q2Popover;\n let containerElement: HTMLDivElement;\n\n beforeEach(() => {\n specPopover = new Q2Popover();\n containerElement = document.createElement('div');\n specPopover.mode = 'legacy';\n specPopover.containerElement = containerElement;\n\n const controlElement = document.createElement('div');\n controlElement.getBoundingClientRect = jest.fn().mockReturnValue({\n top: 20,\n bottom: 70,\n left: 30,\n right: 80,\n } as DOMRect);\n specPopover.controlElement = controlElement;\n window.visualViewport = { width: 800, height: 600 } as VisualViewport;\n });\n\n it('sets the necessary CSS properties', async () => {\n await specPopover.setAbsoluteCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-left')).toBe('0');\n expect(containerElement.style.getPropertyValue('--comp-pop-right')).toBe('unset');\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBe('');\n expect(containerElement.style.getPropertyValue('--comp-pop-opacity')).toBe('1');\n });\n\n it('sets the necessary CSS properties when align is right', async () => {\n specPopover.align = 'right';\n await specPopover.setAbsoluteCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-left')).toBe('unset');\n expect(containerElement.style.getPropertyValue('--comp-pop-right')).toBe('0');\n });\n\n it('sets --comp-pop-bottom when direction is up', async () => {\n specPopover.currentDirection = 'up';\n await specPopover.setAbsoluteCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBe('0px');\n });\n\n it('does not set --comp-pop-top when direction is down', async () => {\n specPopover.currentDirection = 'down';\n await specPopover.setAbsoluteCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBe('');\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBe('');\n });\n\n it('sets --comp-pop-width when block is true', async () => {\n specPopover.block = true;\n await specPopover.setAbsoluteCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBe('100%');\n });\n });\n\n describe('clearCSSProperties', () => {\n let specPopover: Q2Popover;\n let containerElement: HTMLDivElement;\n\n beforeEach(() => {\n specPopover = new Q2Popover();\n containerElement = document.createElement('div');\n containerElement.style.setProperty('--comp-pop-max-height', '100px');\n containerElement.style.setProperty('--comp-pop-top', '20px');\n containerElement.style.setProperty('--comp-pop-bottom', '25px');\n containerElement.style.setProperty('--comp-pop-left', '30px');\n containerElement.style.setProperty('--comp-pop-right', '35px');\n containerElement.style.setProperty('--comp-pop-width', '200px');\n containerElement.style.setProperty('--comp-pop-opacity', '1');\n specPopover.containerElement = containerElement;\n });\n\n it('clears the necessary CSS properties', async () => {\n await specPopover.clearCSSProperties();\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-top')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-bottom')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-left')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-right')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-width')).toBeFalsy();\n expect(containerElement.style.getPropertyValue('--comp-pop-opacity')).toBeFalsy();\n });\n });\n\n describe('setDirectionAndShow', () => {\n let specPopover: Q2Popover;\n let containerElement: HTMLDivElement;\n\n beforeEach(() => {\n specPopover = new Q2Popover();\n containerElement = document.createElement('div');\n specPopover.containerElement = containerElement;\n specPopover.setRootElement = jest.fn();\n specPopover.setFixedCSSProperties = jest.fn();\n specPopover.setAbsoluteCSSProperties = jest.fn();\n specPopover.scrollContainerTo = jest.fn();\n });\n\n it('does nothing when open is false', async () => {\n specPopover.open = false;\n await specPopover.setDirectionAndShow('up');\n expect(specPopover.currentDirection).toBeUndefined();\n expect(specPopover.show).toBe(false);\n expect(specPopover.setRootElement).toHaveBeenCalled();\n expect(specPopover.setFixedCSSProperties).not.toHaveBeenCalled();\n expect(specPopover.setAbsoluteCSSProperties).not.toHaveBeenCalled();\n });\n\n describe('when open is true', () => {\n beforeEach(() => {\n specPopover.open = true;\n });\n\n it('sets the direction, shows the popover, and sets fixed position properties', async () => {\n await specPopover.setDirectionAndShow('up');\n expect(specPopover.currentDirection).toBe('up');\n expect(specPopover.show).toBe(true);\n expect(specPopover.setRootElement).toHaveBeenCalled();\n expect(specPopover.setFixedCSSProperties).toHaveBeenCalled();\n expect(specPopover.setAbsoluteCSSProperties).not.toHaveBeenCalled();\n });\n\n it('sets the direction, shows the popover, and sets absolute position properties when mode is \"legacy\"', async () => {\n specPopover.mode = 'legacy';\n await specPopover.setDirectionAndShow('up');\n expect(specPopover.currentDirection).toBe('up');\n expect(specPopover.show).toBe(true);\n expect(specPopover.setRootElement).toHaveBeenCalled();\n expect(specPopover.setFixedCSSProperties).not.toHaveBeenCalled();\n expect(specPopover.setAbsoluteCSSProperties).toHaveBeenCalled();\n });\n });\n });\n\n describe('determinePopDirection', () => {\n let specPopover: Q2Popover;\n let controlElement: HTMLDivElement;\n let containerElement: HTMLDivElement;\n\n beforeEach(() => {\n specPopover = new Q2Popover();\n controlElement = document.createElement('div');\n containerElement = document.createElement('div');\n specPopover.controlElement = controlElement;\n specPopover.containerElement = containerElement;\n window.visualViewport = { width: 800, height: 600 } as VisualViewport;\n specPopover.setDirectionAndShow = jest.fn();\n });\n\n it('sets the direction to up when control element has more space above it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 500,\n bottom: 550,\n } as DOMRect);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('490px');\n expect(specPopover.setDirectionAndShow).toHaveBeenCalledWith('up');\n\n controlSpy.mockRestore();\n });\n\n it('sets the direction to down when control element has more space below it', async () => {\n const controlSpy = jest.spyOn(controlElement, 'getBoundingClientRect').mockReturnValue({\n top: 100,\n bottom: 150,\n } as DOMRect);\n await specPopover.determinePopDirection();\n\n expect(containerElement.style.getPropertyValue('--comp-pop-max-height')).toBe('440px');\n expect(specPopover.setDirectionAndShow).toHaveBeenCalledWith('down');\n\n controlSpy.mockRestore();\n });\n });\n\n describe('openChanged', () => {\n beforeEach(() => {\n specPopover = new Q2Popover();\n specPopover.setRootElement = jest.fn();\n specPopover.addViewportListeners = jest.fn();\n specPopover.determinePopDirection = jest.fn();\n specPopover.removeViewportListeners = jest.fn();\n specPopover.clearCSSProperties = jest.fn();\n });\n\n it('sets open to true when open is false', async () => {\n specPopover.currentDirection = 'down';\n specPopover.show = true;\n await specPopover.openChanged(true);\n expect(specPopover.currentDirection).toBe('down');\n expect(specPopover.show).toBeTruthy();\n expect(specPopover.setRootElement).toHaveBeenCalled();\n expect(specPopover.addViewportListeners).toHaveBeenCalled();\n expect(specPopover.determinePopDirection).toHaveBeenCalled();\n expect(specPopover.removeViewportListeners).not.toHaveBeenCalled();\n expect(specPopover.clearCSSProperties).not.toHaveBeenCalled();\n });\n\n it('sets open to false when open is true', async () => {\n specPopover.currentDirection = 'down';\n specPopover.show = true;\n await specPopover.openChanged(false);\n expect(specPopover.currentDirection).toBeUndefined();\n expect(specPopover.show).toBeFalsy();\n expect(specPopover.setRootElement).toHaveBeenCalled();\n expect(specPopover.addViewportListeners).not.toHaveBeenCalled();\n expect(specPopover.determinePopDirection).not.toHaveBeenCalled();\n expect(specPopover.clearCSSProperties).toHaveBeenCalled();\n expect(specPopover.clearCSSProperties).toHaveBeenCalled();\n });\n });\n\n describe('setRootElement', () => {\n let computedStyleStub: any = {};\n const popoverDOMRect = {\n top: 50,\n bottom: 125,\n left: 50,\n right: 50,\n height: 75,\n width: 700,\n } as DOMRect;\n\n beforeEach(() => {\n computedStyleStub = {\n transform: 'none',\n filter: 'none',\n perspective: 'none',\n contain: 'none',\n containerType: 'normal',\n willChange: 'auto',\n };\n window.visualViewport = { width: 800, height: 600 } as VisualViewport;\n specPopover = new Q2Popover();\n window.getComputedStyle = jest.fn().mockReturnValue(computedStyleStub);\n specPopover.hostElement.getBoundingClientRect = jest.fn().mockReturnValue(popoverDOMRect);\n });\n\n it('sets the rootElementRect by default', async () => {\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual({\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n height: 600,\n width: 800,\n });\n });\n\n describe('when a containing block is created by applying CSS properties', () => {\n it('returns the currentElementRect when transform is applied', async () => {\n computedStyleStub.transform = 'translate(10px, 20px)';\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual(popoverDOMRect);\n });\n\n it('returns the currentElementRect when filter is applied', async () => {\n computedStyleStub.filter = 'blur(5px)';\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual(popoverDOMRect);\n });\n\n it('returns the currentElementRect when perspective is applied', async () => {\n computedStyleStub.perspective = '100px';\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual(popoverDOMRect);\n });\n\n it('returns the currentElementRect when contain is applied', async () => {\n computedStyleStub.contain = 'layout';\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual(popoverDOMRect);\n });\n\n it('returns the currentElementRect when containerType is applied', async () => {\n computedStyleStub.containerType = 'none';\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual(popoverDOMRect);\n });\n\n it('returns the currentElementRect when willChange is applied', async () => {\n computedStyleStub.willChange = 'transform';\n await specPopover.setRootElement();\n expect(specPopover.rootElementRect).toEqual(popoverDOMRect);\n });\n });\n });\n});\n"]}
@@ -75,7 +75,7 @@ export class Q2Radio {
75
75
  // #endregion
76
76
  // #region Render Methods
77
77
  render() {
78
- return (h("div", { key: 'ed4340f095788108ea8112d28a3c45dbc1f2e4c4', class: this.groupTileLayout ? 'radio-tile' : 'radio-container' }, h("input", { key: '30011c8b29f8bdf48e978904052e02b920e602b9', ref: el => (this.inputField = el), class: "sr", id: this._id, type: "radio", name: this.name, value: this.value, disabled: this.disabled || this.groupDisabled, checked: this.checked, "aria-label": this.label && this.hideLabel ? loc(this.label) : undefined, onChange: this.inputChange, "test-id": "q2RadioInnerRadioBox" }), h("label", { key: '657078aca6278f6bbd8997a1992109aecd2ad8a6', htmlFor: this._id, class: this.hideLabel ? 'label-hidden' : undefined, "test-id": "radioButton" }, !this.groupTileLayout && (h("svg", { key: '9b4cf7c9e1968f862509c760a0dfee5cb90c3ce1', viewBox: "0 0 18 18" }, h("circle", { key: '269619ffb0671e2f67dfa3da58b5da8264508586', stroke: "none", fill: "none", cx: "9", cy: "9", r: "8" }), h("circle", { key: '9325caea79a38fe661db33ca62da9f075a06597f', stroke: "none", fill: "none", cx: "9", cy: "9", r: "4" }))), !this.hideLabel && (h("div", { key: 'fb674a98b4d028e35397da9ead2ab5083e8617fd', class: "label-content" }, (this.label && loc(this.label)) || '', h("slot", { key: '39a40ee6024f16b059ebad2675ee922a5c95324d' }))))));
78
+ return (h("div", { key: '498863af10bdabf6618fea53358b7eac245c4884', class: this.groupTileLayout ? 'radio-tile' : 'radio-container' }, h("input", { key: '888947133225af4aeeb160b80382d1a06b825c7e', ref: el => (this.inputField = el), class: "sr", id: this._id, type: "radio", name: this.name, value: this.value, disabled: this.disabled || this.groupDisabled, checked: this.checked, "aria-label": this.label && this.hideLabel ? loc(this.label) : undefined, onChange: this.inputChange, "test-id": "q2RadioInnerRadioBox" }), h("label", { key: 'cd92489d7e2843b5146174b3d10901c054f940a9', htmlFor: this._id, class: this.hideLabel ? 'label-hidden' : undefined, "test-id": "radioButton" }, !this.groupTileLayout && (h("svg", { key: 'c229e148c2f940a450abeb7b150c53f627065804', viewBox: "0 0 18 18" }, h("circle", { key: '10177e20de9451fefde4314c3e4ea5b792b31538', stroke: "none", fill: "none", cx: "9", cy: "9", r: "8" }), h("circle", { key: '12a0cce341f03a149ed11ab8e3c7abcbe4e5fe7e', stroke: "none", fill: "none", cx: "9", cy: "9", r: "4" }))), !this.hideLabel && (h("div", { key: '5f0d6d5687737b88dfe428aabb5ee1879c3859c4', class: "label-content" }, (this.label && loc(this.label)) || '', h("slot", { key: 'ceba93a71e8213af71823d12305345a0c42402c7' }))))));
79
79
  }
80
80
  static get is() { return "q2-radio"; }
81
81
  static get encapsulation() { return "shadow"; }
@@ -174,7 +174,7 @@ export class Q2RadioGroup {
174
174
  const showLabel = this.label || this.optional || this.readonly;
175
175
  const { hasError } = this;
176
176
  const showLabelRow = (showLabel && !this.hideLabel) || hasError;
177
- return (h(Fragment, { key: 'd1d5bc5ec6dd3fc33332fa49e64ccb1dac4b542e' }, showLabelRow && (h("div", { key: 'f2de38984a59682953612d73981a2de1afa1bc58', class: "label-row" }, showLabel && !this.hideLabel && h("div", { key: '24d1a40c5ad7546e5901dd96e46a15e71d8ca4c3', class: "group-legend" }, renderLabel(this)), hasError && (h("q2-icon", { key: '24be48ddc9c8cc60fa356056da6c59224a358a59', type: "error", "test-id": "iconError" })))), h("fieldset", { key: '48da393294f67ac8349606b563a122e0b6e70917', onChange: this.onInnerRadioChange, "aria-invalid": hasError ? `${hasError}` : undefined }, showLabel && h("legend", { key: '544ba2b62bebcb501806527fec2354aaa70c3dd9', class: "sr-only" }, renderLabel(this)), this.inputDom())));
177
+ return (h(Fragment, { key: 'e963d703071843dfccf5725bbf423484dfb3208f' }, showLabelRow && (h("div", { key: '738d3611b71f90ad6f25cd2338e64fbc1d612a55', class: "label-row" }, showLabel && !this.hideLabel && h("div", { key: '934b72a350cb891b589daf27c5e18a9c3f40cc6f', class: "group-legend" }, renderLabel(this)), hasError && (h("q2-icon", { key: 'c8f52fdf84e64687b1352025521ddd2821591983', type: "error", "test-id": "iconError" })))), h("fieldset", { key: '68ddba2faa7a99614a2c3b0481ee1f02da1eed7d', onChange: this.onInnerRadioChange, "aria-invalid": hasError ? `${hasError}` : undefined }, showLabel && h("legend", { key: 'b29836d095c5667295119a241a97af08cc68a702', class: "sr-only" }, renderLabel(this)), this.inputDom())));
178
178
  }
179
179
  static get is() { return "q2-radio-group"; }
180
180
  static get encapsulation() { return "shadow"; }
@@ -136,7 +136,7 @@ export class Q2RelativeTime {
136
136
  // #region Render Methods
137
137
  render() {
138
138
  const { shouldShow, displayedMessage } = this;
139
- return h(Fragment, { key: '9026e0194b08d067c04188fc4c7c9ffa05727fb6' }, shouldShow ? h("time", { dateTime: displayedMessage }, displayedMessage) : null);
139
+ return h(Fragment, { key: '5e7ff5d71e03ff6feafa6b237eed0d781c6cfd33' }, shouldShow ? h("time", { dateTime: displayedMessage }, displayedMessage) : null);
140
140
  }
141
141
  static get is() { return "q2-relative-time"; }
142
142
  static get encapsulation() { return "shadow"; }
@@ -72,7 +72,7 @@ export class Q2ResizeObserver {
72
72
  // #endregion
73
73
  // #region Render Methods
74
74
  render() {
75
- return h("slot", { key: 'fa058a508d2397d7844acd6b67d4d2414c0822f1', onSlotchange: this.handleSlotChange });
75
+ return h("slot", { key: '798bc24a617c7ed438cbfdd6634a68b633563463', onSlotchange: this.handleSlotChange });
76
76
  }
77
77
  static get is() { return "q2-resize-observer"; }
78
78
  static get encapsulation() { return "shadow"; }
@@ -184,9 +184,9 @@ export class Q2Section {
184
184
  wrapperClasses.push('is-transitioning');
185
185
  }
186
186
  const showDefaultHeader = !this.hasYieldedHeader && !!this.label;
187
- return (h("section", { key: '59a073f2fbbc37bb7e7f1c6823610e150fd1e256', class: "wrapper" }, h("header", { key: 'c02e2e531cb0ad833752f9254b95f6eb76d8b317', class: hasHeader ? 'has-header' : '' }, h("div", { key: '7d3b12f0640b7dd8b49bbca7ce710f6bb75325a2', class: "header-content", id: this.titleId, onClick: this.collapsible && this.onHeaderClick }, showDefaultHeader && h("h2", { key: '7552c47106c63ce813145a13bf29e6fa4db74c58', class: "title" }, loc(this.label)), h("div", { key: '4823d86d58f2a214a31987b8892802d861388a5d', ref: el => (this.headerSlotWrapper = el), class: "header-slot-wrapper" }, h("slot", { key: 'f70123a46f2077c23cb0a25c56e83d59e3432485', ref: (el) => (this.headerSlot = el), name: "q2-section-header" }))), this.collapsible && !this.noCollapseIcon && (h("q2-btn", { key: '7330e6657cd6eeb8e448a04b2b3530e3843d1763', label: loc(this.label || 'tecton.element.section.defaultToggleLabel'), ariaExpanded: `${!!this.expanded}`, ariaControls: this.contentId, "test-id": "toggleButton", "hide-label": true, onClick: this.onHeaderClick }, h("q2-icon", { key: '8a953908c20c980198ad77e66b41d5da3337ea28', type: "chevron-up" })))), h("div", { key: 'caa5b37b95099c0959b048f6d7f030c1e0bdf16f', class: wrapperClasses.join(' '), id: this.contentId, "aria-labelledby": this.titleId, role: "region", onTransitionEnd: this.onTransitionEnd, style: this.collapsible && {
187
+ return (h("section", { key: 'bbfe06712b56690ae7f8def68c98b5c1cca8e2fa', class: "wrapper" }, h("header", { key: '24af4112e033ecfa814d5c7f5e4e9063048331da', class: hasHeader ? 'has-header' : '' }, h("div", { key: 'b1b85036733e1a0eedffa0630dea497291c1c5fe', class: "header-content", id: this.titleId, onClick: this.collapsible && this.onHeaderClick }, showDefaultHeader && h("h2", { key: 'd30ea976fe3615ce2f860b67f65da5dbaeebb1b3', class: "title" }, loc(this.label)), h("div", { key: '1d418f693467f72543a8cca92a3c1dc07fd22005', ref: el => (this.headerSlotWrapper = el), class: "header-slot-wrapper" }, h("slot", { key: 'c55270e6a2d09107d8c16fc82479599febff0d42', ref: (el) => (this.headerSlot = el), name: "q2-section-header" }))), this.collapsible && !this.noCollapseIcon && (h("q2-btn", { key: '148ebf77f5312d83d97396d2ce15ac8d6fa7d9d6', label: loc(this.label || 'tecton.element.section.defaultToggleLabel'), ariaExpanded: `${!!this.expanded}`, ariaControls: this.contentId, "test-id": "toggleButton", "hide-label": true, onClick: this.onHeaderClick }, h("q2-icon", { key: '2af71c83004a4135eac2fd4609ea033afac96a14', type: "chevron-up" })))), h("div", { key: 'b9834dfa6155ae98dcb3f8dc843705cafc7c56c9', class: wrapperClasses.join(' '), id: this.contentId, "aria-labelledby": this.titleId, role: "region", onTransitionEnd: this.onTransitionEnd, style: this.collapsible && {
188
188
  height: this.contentHeight,
189
- } }, h("div", { key: 'c4e83982d85944756eb7f9f379a3671ce7faee6b', ref: el => (this.contentContainer = el), class: "content", tabindex: "-1" }, h("slot", { key: '336a133e83f81a21da1e3008b0b4f35ffe25a4a6', ref: (el) => (this.contentSlot = el) })))));
189
+ } }, h("div", { key: 'be9083ee75ea9c3b9acb1219f23b185cea0e1052', ref: el => (this.contentContainer = el), class: "content", tabindex: "-1" }, h("slot", { key: '1613a87c08efa9506e5333cd542c890d4e9ca7f9', ref: (el) => (this.contentSlot = el) })))));
190
190
  }
191
191
  static get is() { return "q2-section"; }
192
192
  static get encapsulation() { return "shadow"; }
@@ -609,11 +609,11 @@ export class Q2Select {
609
609
  }
610
610
  render() {
611
611
  var _a;
612
- return (h("click-elsewhere", { key: '74b318aa5e949451bb9e594ca15bbb899d5af833', class: this.wrapperClasses, onChange: this.clickedElsewhere }, h("div", { key: '841ca38b6c5d5a2bce3da89119f2206157fa9dfc', "aria-live": "polite", "aria-atomic": "true", role: "status", class: "sr" }, this.statusMessage), h("q2-input", { key: 'd141c2482a503fff0977dd9e268927fceda5519b', ref: el => (this.inputField = el), class: "q2-select-input", label: (this.label && loc(this.label)) || '', value: this.selectedDisplay, clearable: (this.clearable && (!!this.value || !!((_a = this.selectedOptions) === null || _a === void 0 ? void 0 : _a.length))) || undefined, errors: (Array.isArray(this.errors) &&
612
+ return (h("click-elsewhere", { key: '4d85ead825464b2752a2682d8dfe95e881eac392', class: this.wrapperClasses, onChange: this.clickedElsewhere }, h("div", { key: 'f640a1fc2d40d5bf754bcc73c0692e29b5e92526', "aria-live": "polite", "aria-atomic": "true", role: "status", class: "sr" }, this.statusMessage), h("q2-input", { key: '632afaa85efe389b9ed0b31e2d450800f294829b', ref: el => (this.inputField = el), class: "q2-select-input", label: (this.label && loc(this.label)) || '', value: this.selectedDisplay, clearable: (this.clearable && (!!this.value || !!((_a = this.selectedOptions) === null || _a === void 0 ? void 0 : _a.length))) || undefined, errors: (Array.isArray(this.errors) &&
613
613
  this.errors.length > 0 &&
614
614
  this.errors.map(error => loc(error))) ||
615
615
  (this.invalid && ['tecton.element.select.invalid']) ||
616
- [], disabled: this.disabled, optional: this.optional, readonly: !!this.readonly, placeholder: this.placeholder || undefined, hideLabel: this.hideLabel, ariaExpanded: `${this.open}`, ariaControls: "option-list", ariaHaspopup: "listbox", "test-id": "toggleDropdown", "hide-messages": true, iconRight: "chevron-down", onClick: this.inputClickHandler, onInput: this.inputInputHandler, onKeyDown: this.inputKeydownHandler, onFocus: this.inputFocusHandler, onBlur: this.inputBlurHandler, onChange: this.inputChangeHandler, badgeValue: this.badgeValue, badgeTheme: this.inputFocused ? 'primary' : undefined, _role: "combobox", _preventEntry: !this.searchable }, this.renderCustomDisplay()), h("div", { key: 'e2bc0e2346e8854a092aa6e6298079335f736f37', class: "custom-display-content", hidden: !this.hasCustomDisplay || !!this.searchText, onClick: this.onCustomDisplayClick }, h("slot", { key: 'd7d6ce24fab1745448a8fbf9285fb1c67b2b7e6a', name: "q2-select-display" })), this.renderOptionsDropdown()));
616
+ [], disabled: this.disabled, optional: this.optional, readonly: !!this.readonly, placeholder: this.placeholder || undefined, hideLabel: this.hideLabel, ariaExpanded: `${this.open}`, ariaControls: "option-list", ariaHaspopup: "listbox", "test-id": "toggleDropdown", "hide-messages": true, iconRight: "chevron-down", onClick: this.inputClickHandler, onInput: this.inputInputHandler, onKeyDown: this.inputKeydownHandler, onFocus: this.inputFocusHandler, onBlur: this.inputBlurHandler, onChange: this.inputChangeHandler, badgeValue: this.badgeValue, badgeTheme: this.inputFocused ? 'primary' : undefined, _role: "combobox", _preventEntry: !this.searchable }, this.renderCustomDisplay()), h("div", { key: 'ea0003b654b98bb4848071c263ae9a7c9ec40e68', class: "custom-display-content", hidden: !this.hasCustomDisplay || !!this.searchText, onClick: this.onCustomDisplayClick }, h("slot", { key: '3fa0e1f7eb933e67151a3f7668cd5a17d5116b09', name: "q2-select-display" })), this.renderOptionsDropdown()));
617
617
  }
618
618
  static get is() { return "q2-select"; }
619
619
  static get encapsulation() { return "shadow"; }
@@ -245,7 +245,7 @@ export class Q2Stepper {
245
245
  const containerClasses = ['step-container'];
246
246
  if (scrollEnabled)
247
247
  containerClasses.push('has-scroll');
248
- return (h(Fragment, { key: '21459e973c382d566ad74cfa1079bcede3bc4bb4' }, h("div", { key: 'fb74e21ddf7346d79668b47f926ed3cf3473d6ce', class: containerClasses.join(' ') }, scrollEnabled && (h(Fragment, { key: '6b4ba9451964d04c22e162d3b06b4dd493e6acdc' }, h("div", { key: '317d4dd68f295878cf2b27508f882dbbf41c660d', class: "gradient-left", hidden: !showScrollLeft }), h("div", { key: 'ddb5edf2ba557d5a7d2b19d48f5c11fba7c9fecc', class: "gradient-right", hidden: !showScrollRight }), h("q2-btn", { key: '2c2d7a851f2e089b64d1884cc5109b6bed07138b', class: "btn-left", hideLabel: true, hidden: !this.showScrollLeft, label: loc('tecton.element.stepper.scrollLeft'), onClick: () => this.onScrollBtnClick('left') }, h("q2-icon", { key: '8752b1fa6b71189a513088998bad57e9cd372c02', type: "chevron-left" })), h("q2-btn", { key: '6299ffdbaee72154f91f75bad7fdecac49f1f491', class: "btn-right", hideLabel: true, hidden: !this.showScrollRight, label: loc('tecton.element.stepper.scrollRight'), onClick: () => this.onScrollBtnClick('right') }, h("q2-icon", { key: '9ddface0e855a5c6af58e6415ddc13a327a50e06', type: "chevron-right" })))), h("ul", { key: '18d55fe631add203b41784d7e10b60c6d587702a', onScroll: this.checkScrollState, ref: el => (this.listElement = el), role: "tablist" }, stepCount > 0 && [...Array(stepCount).keys()].map(stepIndex => this.renderStepBtn(stepIndex)))), h("div", { key: '29141e95496abf8d409ce8ccdc71010f8cb6efdd', role: "list" }, h("slot", { key: 'f4cace12ffe8239c98ea12daee44fa3ff1369354', onSlotchange: () => this.onSlotChange() }))));
248
+ return (h(Fragment, { key: '1d29489bf2a677e1648c03d427e395665230b3c9' }, h("div", { key: '2f74f38498e21eb848f31b7a803131024a409a37', class: containerClasses.join(' ') }, scrollEnabled && (h(Fragment, { key: '2480b34e1adc1b5a8a588bdc91876c3919fbd372' }, h("div", { key: 'b9c1877f4363c504faba40bdc62fbd4b78beb5fb', class: "gradient-left", hidden: !showScrollLeft }), h("div", { key: 'f285b633c2f4728500edff5d4d7ea30d58c39484', class: "gradient-right", hidden: !showScrollRight }), h("q2-btn", { key: '2fae1e564785d0fbf42761cd0f827fd5014b0563', class: "btn-left", hideLabel: true, hidden: !this.showScrollLeft, label: loc('tecton.element.stepper.scrollLeft'), onClick: () => this.onScrollBtnClick('left') }, h("q2-icon", { key: 'e8958ee4eef3b4e9d9581b6f2e68eaf293c9c120', type: "chevron-left" })), h("q2-btn", { key: 'bb28aeef0f53c52fa244473faf889493c8c1a42c', class: "btn-right", hideLabel: true, hidden: !this.showScrollRight, label: loc('tecton.element.stepper.scrollRight'), onClick: () => this.onScrollBtnClick('right') }, h("q2-icon", { key: '0f4c404d0fc71518ad513eba0f4ee034d1f789fb', type: "chevron-right" })))), h("ul", { key: '1636837558560ebae2288b5c3b1d9b40dc36e099', onScroll: this.checkScrollState, ref: el => (this.listElement = el), role: "tablist" }, stepCount > 0 && [...Array(stepCount).keys()].map(stepIndex => this.renderStepBtn(stepIndex)))), h("div", { key: '3788a2a28affd09275d5a7a6fafbf61834a44304', role: "list" }, h("slot", { key: '8b9e8fb4dab9482e3756716b8326fe741eb7a633', onSlotchange: () => this.onSlotChange() }))));
249
249
  }
250
250
  static get is() { return "q2-stepper"; }
251
251
  static get encapsulation() { return "shadow"; }
@@ -64,7 +64,7 @@ export class Q2StepperPane {
64
64
  // #region Render Methods
65
65
  render() {
66
66
  const { label, isActive } = this;
67
- return (h(Host, { key: '5577f8962c2f65e0c80a626268d78b321aaeebad', role: "listitem" }, h(Fragment, { key: 'b555f074841b2dfd439f0428944d00ca4905844d' }, h("div", { key: '6f2cbfee6f87526b90a8f9db71d81c3f9411a307', "aria-label": label && loc(label), tabindex: "0", hidden: !isActive && !(this.isChildActive && this.showWithChildren) }, h("slot", { key: '633709be729c63190bbcf621d0e9078f750db2c0' })), h("div", { key: 'aaa34c1ca944fb104630f60afbd8405a841e552b', hidden: true }, h("slot", { key: '432bc5035bc265bb19bb3c493d1c3cdbcb939ac5', name: "label", onSlotchange: () => this.contentChange.emit() }), h("slot", { key: '24f3d22fd72773ae6edcbf12e6d14b34831385ee', name: "description", onSlotchange: () => this.contentChange.emit() })), h("slot", { key: 'd0024a07468337896f9c4f45059dce8de988f6ad', name: "children" }))));
67
+ return (h(Host, { key: '785837bffa2910007e0a34ff6d801a206e60641d', role: "listitem" }, h(Fragment, { key: '1b1d2246959fb6a48b18980d83a3bf3d150881e9' }, h("div", { key: 'dc0c2a997c23b2740cd99cd879ac11713b489818', "aria-label": label && loc(label), tabindex: "0", hidden: !isActive && !(this.isChildActive && this.showWithChildren) }, h("slot", { key: '8ab055d8125fb0b2577e241c56d28689ff175491' })), h("div", { key: '162030f9016ffd25bb67aed4c8d352d3096844fe', hidden: true }, h("slot", { key: 'ed508b80b9ca27b002ac90995331b6da5034986e', name: "label", onSlotchange: () => this.contentChange.emit() }), h("slot", { key: 'a505a3471c5ebdaa0d51f0f3ee29a601dfda8f3d', name: "description", onSlotchange: () => this.contentChange.emit() })), h("slot", { key: 'a590e856838fb97db8652319451e5bd341f4db01', name: "children" }))));
68
68
  }
69
69
  static get is() { return "q2-stepper-pane"; }
70
70
  static get encapsulation() { return "shadow"; }
@@ -281,7 +281,7 @@ export class Q2StepperVertical {
281
281
  return (h("li", { role: "presentation" }, h("button", { class: stepClasses.join(' '), type: "button", "aria-labelledby": labelId, "aria-describedBy": descriptionId, "aria-label": btnLabel, "aria-selected": `${isCurrentStep}`, "aria-expanded": !!pane.children.length ? `${isExpanded}` : null, id: id, "aria-disabled": isLocked ? 'true' : null, role: "tab", tabIndex: isCurrentStep ? 0 : -1, onKeyDown: ev => !isLocked && this.onStepKeyDown(ev, id), onClick: ev => !isLocked && this.onStepClick(ev, id) }, statusIcon ? (h("div", { class: "step-icon" }, h("q2-icon", { type: statusIcon }))) : (h("div", { class: "step-bubble" }, stepNumber)), label && (h("div", null, h("div", { class: "step-label", id: labelId }, stepLabel), description && (h("div", { class: "step-description", id: descriptionId }, loc(description)))))), this.renderSpacer(pane, stepLabel, isExpanded, isLastStep)));
282
282
  }
283
283
  render() {
284
- return (h(Fragment, { key: '7a334a54447a302cd17f4f334649269f13f0d251' }, h("ul", { key: '702386cfdc56201e55a878c16338e0d711f45487', role: "tablist" }, this.structuredPanes.map((pane, index) => this.renderStepBtn(pane, index))), h("div", { key: '9ecaef0497b3647532d0ebf6e3944af766458037', role: "list" }, h("slot", { key: 'ddf8fdfb3ed775c26afd0ace060d54c3b302b290' }))));
284
+ return (h(Fragment, { key: 'aa4aac984752016ea5bca46d89995733a27846d2' }, h("ul", { key: '73b6573640315387ffe9e592e23550b6a65bbe49', role: "tablist" }, this.structuredPanes.map((pane, index) => this.renderStepBtn(pane, index))), h("div", { key: '52f6b7c9bff3687b4965713964abbc9b6d3196c0', role: "list" }, h("slot", { key: '3d300a46597fbde346ce2949cc9062830a5d88fd' }))));
285
285
  }
286
286
  static get is() { return "q2-stepper-vertical"; }
287
287
  static get encapsulation() { return "shadow"; }
@@ -250,7 +250,7 @@ export class Q2TabContainer {
250
250
  return (h("div", { class: "tab-pane-badge", "aria-label": `${tab.label}, ${tab.badgeCount} ${description}` }, tab.label, h("q2-badge", { value: tab.badgeCount, theme: theme, status: tab.badgeStatus })));
251
251
  }
252
252
  render() {
253
- return (h(Fragment, { key: '97f2da0c2b5b73725ba7df8df2a0eb549f9cfd88' }, h("div", { key: 'ff697afe9618dfc6e262701febdca55b279de4d5', class: "tab-container" }, this.scrollEnabled && (h(Fragment, { key: '11151d37351e2770f29f5f0b31df5afb68855dc2' }, h("div", { key: 'd2bf7ed9da0348421a767ba7d38faf942ad44634', class: "gradient-left", hidden: !this.showScrollLeft }), h("div", { key: 'f53cc922938e075b524cae7289a4b5645b867078', class: "gradient-right", hidden: !this.showScrollRight }), h("q2-btn", { key: '0c17c23b928f2aab34632073d3b3ba380e153865', class: "btn-left", hidden: !this.showScrollLeft, onClick: () => this.onScrollBtnClick('left') }, h("q2-icon", { key: 'ea146cfc55d86e1531bbe94a9a217b93463f9fea', type: "chevron-left", label: "scroll left" })), h("q2-btn", { key: 'fce01f8a17e78df73cc834a203b55b9427c4facc', class: "btn-right", hidden: !this.showScrollRight, onClick: () => this.onScrollBtnClick('right') }, h("q2-icon", { key: 'd379b82bd9465278b1e40f82137fc08bd8b0c750', type: "chevron-right", label: "scroll right" })))), h("ul", { key: '97d39c2ff74ac064da28ca763fbd3d6e98a952dd', onScroll: this.checkScrollState, ref: el => (this.listElement = el), class: this.noPrint ? 'no-print' : null, role: "tablist" }, this.tabs.map((tab, index) => this.renderTab(tab, index)))), h("div", { key: '5a9a728931e3dfafe2b20b5a1d1e72b5ef67913c', class: "tab-content" }, h("slot", { key: 'e10400800c9ff9e3b7d9947a32abeeb146981f8b', onSlotchange: () => this.onSlotChange() }))));
253
+ return (h(Fragment, { key: '00671ce4926d564d32501ec38abd48deac07cfbb' }, h("div", { key: '5c1f13533e55cfd63c7e8e80e42cfbd1f9a219dd', class: "tab-container" }, this.scrollEnabled && (h(Fragment, { key: 'f3c7f03440d17924f526b315efedef8f90285a78' }, h("div", { key: 'd7be2db2322c112984c7096a884e7a3f7b48d2d0', class: "gradient-left", hidden: !this.showScrollLeft }), h("div", { key: '02c6d98870223b4b081839db9af754d491e6fe2f', class: "gradient-right", hidden: !this.showScrollRight }), h("q2-btn", { key: 'f694ea3ce2beb6c25d09f9a26ddddd7123bb76f6', class: "btn-left", hidden: !this.showScrollLeft, onClick: () => this.onScrollBtnClick('left') }, h("q2-icon", { key: '79c62503753d185782b922ec2fd15e7042f8e459', type: "chevron-left", label: "scroll left" })), h("q2-btn", { key: '8b0b9b0e6c21d08c3dc5f1c9003e4024ec3bd6db', class: "btn-right", hidden: !this.showScrollRight, onClick: () => this.onScrollBtnClick('right') }, h("q2-icon", { key: 'b4fdd4caa182e430255a8787300113c472ddf9f5', type: "chevron-right", label: "scroll right" })))), h("ul", { key: '16036b801d37dcef0249aff290d19d9e484a0ce4', onScroll: this.checkScrollState, ref: el => (this.listElement = el), class: this.noPrint ? 'no-print' : null, role: "tablist" }, this.tabs.map((tab, index) => this.renderTab(tab, index)))), h("div", { key: '7879b477deded91f2ec856c33a4b5170857c83ae', class: "tab-content" }, h("slot", { key: 'c1d3857b108dd9f6faea22cfb28495d6fd91f83c', onSlotchange: () => this.onSlotChange() }))));
254
254
  }
255
255
  static get is() { return "q2-tab-container"; }
256
256
  static get encapsulation() { return "shadow"; }
@@ -20,7 +20,7 @@ export class Q2TabPane {
20
20
  // #endregion
21
21
  // #region Render Methods
22
22
  render() {
23
- return (h("div", { key: '8f27e390528c79ae1589e1a7614c72455ebbdd32', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, h("slot", { key: '2d00ea2e03bbac11a63193debd2bb9904050ba37' })));
23
+ return (h("div", { key: '86b748104c438b4d92f2343d30fac0b5e7150835', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, h("slot", { key: 'db229a7eeeaaa208635413f57ff5021b9230ecb0' })));
24
24
  }
25
25
  static get is() { return "q2-tab-pane"; }
26
26
  static get encapsulation() { return "shadow"; }
@@ -188,7 +188,7 @@ export class Q2Tag {
188
188
  if (this.optionCount)
189
189
  wrapperClassNames.push('has-options');
190
190
  const shouldShowOptions = this.optionCount > 0;
191
- return (h(Host, { key: '6ccc1d85936667bad9622cbec28a27d54bc48e76', role: shouldShowOptions ? 'list' : undefined }, h("click-elsewhere", { key: '6c6fac08128198e6b0a0f5733b67cc26ec4bed02', onChange: this.onClickElsewhere }, shouldShowOptions ? (h(Fragment, null, h("div", { class: "btn-wrapper", onClick: this.handleWrapperClick }, h("button", { class: "tag-wrapper", ref: el => (this.dropdownBtn = el), "test-id": "btn-control", type: "button", role: "combobox", onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleButtonFocusout, "aria-controls": "option-list", "aria-expanded": open ? 'true' : 'false', "aria-describedby": "option-description" }, h("div", { class: wrapperClassNames.join(' ') }, loc(this.label)), h("q2-icon", { type: "options" }))), this.renderHiddenElement())) : (h("div", { class: "tag-wrapper", onClick: e => e.stopPropagation() }, h("div", { class: wrapperClassNames.join(' ') }, h("slot", { name: "decorator" }), loc(this.label)))), shouldShowOptions && (h("q2-popover", { key: '134f0deaa4ea93ceb451329f2cdd7c27d0ecda71', ref: el => (this.popoverElement = el), controlElement: this.dropdownBtn, open: this.open, maxHeight: this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment }, h("q2-option-list", { key: '43ccf161a1eea92b5f8c591d5ed7aec8fb8fb9a7', id: "option-list", ref: el => (this.optionList = el), onChange: this.handleChange, type: "menu", align: "right", label: loc('tecton.element.optionList.label', [this.optionListLabel]), "no-select": true }, h("slot", { key: '2fedc4307ddbe7024c0c8e9884c3fc7ae42efada' })))))));
191
+ return (h(Host, { key: 'e0870e81a31cd935a6115583c4ddb6763e1b351d', role: shouldShowOptions ? 'list' : undefined }, h("click-elsewhere", { key: '33bdfccc942b521605ad1cda715ecbc66471a406', onChange: this.onClickElsewhere }, shouldShowOptions ? (h(Fragment, null, h("div", { class: "btn-wrapper", onClick: this.handleWrapperClick }, h("button", { class: "tag-wrapper", ref: el => (this.dropdownBtn = el), "test-id": "btn-control", type: "button", role: "combobox", onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleButtonFocusout, "aria-controls": "option-list", "aria-expanded": open ? 'true' : 'false', "aria-describedby": "option-description" }, h("div", { class: wrapperClassNames.join(' ') }, loc(this.label)), h("q2-icon", { type: "options" }))), this.renderHiddenElement())) : (h("div", { class: "tag-wrapper", onClick: e => e.stopPropagation() }, h("div", { class: wrapperClassNames.join(' ') }, h("slot", { name: "decorator" }), loc(this.label)))), shouldShowOptions && (h("q2-popover", { key: 'f99b80bc7695dd12ff47415a0044f840d110000e', ref: el => (this.popoverElement = el), controlElement: this.dropdownBtn, open: this.open, maxHeight: this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment }, h("q2-option-list", { key: 'e375e3e3ed579ce803115cd8866e090fe15a7a35', id: "option-list", ref: el => (this.optionList = el), onChange: this.handleChange, type: "menu", align: "right", label: loc('tecton.element.optionList.label', [this.optionListLabel]), "no-select": true }, h("slot", { key: 'a1f78ce9a0c3b18d2ae2e124fccdefc0faae2bf2' })))))));
192
192
  }
193
193
  static get is() { return "q2-tag"; }
194
194
  static get encapsulation() { return "shadow"; }
@@ -285,7 +285,7 @@ export class Q2Textarea {
285
285
  ]))));
286
286
  }
287
287
  render() {
288
- return (h("div", { key: '9e15d586cc11ac73ce92f35a0d1a05dc6101e064', class: this.wrapperClasses }, renderLabel(this), h("div", { key: 'f0836c51dbeba1895d11a5bd20bfbaf3b5d22ad8', class: "content-container", ref: el => (this.contentContainer = el) }, this.renderInput(), this.maxlength ? this.renderMaxLength() : '', renderMessages(this))));
288
+ return (h("div", { key: '24944e7a64be5e41535529dc71f77fe8d8f54afa', class: this.wrapperClasses }, renderLabel(this), h("div", { key: '38f636261e7e5da472f3137a78202c1c6a3469c0', class: "content-container", ref: el => (this.contentContainer = el) }, this.renderInput(), this.maxlength ? this.renderMaxLength() : '', renderMessages(this))));
289
289
  }
290
290
  static get is() { return "q2-textarea"; }
291
291
  static get encapsulation() { return "shadow"; }
@@ -63,9 +63,9 @@ export class TectonTabPane {
63
63
  // #endregion
64
64
  // #region Render Methods
65
65
  render() {
66
- return (h("div", { key: '3922f0d87f79f76fb09a678254465fa23de753cc', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, this.selected && this.provided !== undefined && !this.provided && (h("div", { key: 'ff1ea2bab4efe8d9c5d5aa6ca8abb63eab0ef53c' }, h("slot", { key: '15643803e95acb5c1d68d3257acacd80e07bfa06', name: "loading-wrapper" }), h("iframe", { key: '90203cf205d92440cda111873bf86c66d0776188', hidden: true, name: this.moduleId, scrolling: "no", src: this.showForm && this.authPayload.length ? '' : this.url || '', "data-module-id": this.moduleId, style: this.minHeight ? { minHeight: this.minHeight } : null, onLoad: this.onIFrameLoad, title: this.iframeTitle, allow: "geolocation; camera" }), this._showForm && this.authPayload ? (h("form", { hidden: true, method: "post", action: this.url, target: this.moduleId, encType: "multipart/form-data" }, this.authPayload.map(element => {
66
+ return (h("div", { key: '673192fa43d531b8698ff2577a2c1066ec5fa32d', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, this.selected && this.provided !== undefined && !this.provided && (h("div", { key: 'e4216d579bbab551e7f515d1d0e7dd7d50b277cd' }, h("slot", { key: '89168d2910623c64f446792c1a0431f0d06795f4', name: "loading-wrapper" }), h("iframe", { key: 'a456afcd3c68e2be0fb9d5704b66ffdeefbfa603', hidden: true, name: this.moduleId, scrolling: "no", src: this.showForm && this.authPayload.length ? '' : this.url || '', "data-module-id": this.moduleId, style: this.minHeight ? { minHeight: this.minHeight } : null, onLoad: this.onIFrameLoad, title: this.iframeTitle, allow: "geolocation; camera" }), this._showForm && this.authPayload ? (h("form", { hidden: true, method: "post", action: this.url, target: this.moduleId, encType: "multipart/form-data" }, this.authPayload.map(element => {
67
67
  return (h("input", { type: "hidden", value: element.value, name: element.key }));
68
- }))) : (''))), h("div", { key: 'f8ac689f47d2db0acf5f09024ad7014ab8894670', class: "slot-wrapper", hidden: this.selected && this.provided !== undefined && !this.provided }, h("slot", { key: 'd10d91dd7b72f1aa95eb2cba06b06129d479efaa' }))));
68
+ }))) : (''))), h("div", { key: 'bc14a67d449c6ad119f2233452610da4a6e664e1', class: "slot-wrapper", hidden: this.selected && this.provided !== undefined && !this.provided }, h("slot", { key: '8c0be1b729fff29cbc865f3ce81cdd07ac99d57c' }))));
69
69
  }
70
70
  static get is() { return "tecton-tab-pane"; }
71
71
  static get encapsulation() { return "shadow"; }
@@ -58,6 +58,21 @@ export async function promiseMap(arr, fn) {
58
58
  const promises = arr.map(fn);
59
59
  return Promise.all(promises);
60
60
  }
61
+ export async function waitForCursorStability(inputElement) {
62
+ let lastPosition;
63
+ let stableCount = 0;
64
+ while (stableCount < 3) {
65
+ const currentPosition = await inputElement.getProperty('selectionStart');
66
+ if (currentPosition === lastPosition) {
67
+ stableCount++;
68
+ }
69
+ else {
70
+ stableCount = 0;
71
+ lastPosition = currentPosition;
72
+ }
73
+ await waitForTimeout(20);
74
+ }
75
+ }
61
76
  /**
62
77
  * Waits for a specified amount of time.
63
78
  *