q2-tecton-elements 1.53.0 → 1.54.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/dist/bundle-report.json +43422 -0
  2. package/dist/cjs/{action-sheet-d32c41ae.js → action-sheet-8254c0fd.js} +6 -3
  3. package/dist/cjs/action-sheet-8254c0fd.js.map +1 -0
  4. package/dist/cjs/click-elsewhere.cjs.entry.js +96 -0
  5. package/dist/cjs/click-elsewhere.cjs.entry.js.map +1 -0
  6. package/dist/cjs/{index-07285783.js → index-76f63767.js} +1 -21
  7. package/dist/cjs/index-76f63767.js.map +1 -0
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/q2-action-group.cjs.entry.js +38 -17
  10. package/dist/cjs/q2-action-group.cjs.entry.js.map +1 -1
  11. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-badge_7.cjs.entry.js +52 -18
  15. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-dropdown-item.cjs.entry.js +17 -16
  28. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-dropdown.cjs.entry.js +48 -99
  30. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  31. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-file-picker.cjs.entry.js +4 -4
  33. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
  34. package/dist/cjs/q2-item_3.cjs.entry.js +3 -2
  35. package/dist/cjs/q2-item_3.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  40. package/dist/cjs/{q2-option-list.cjs.entry.js → q2-option-list_2.cjs.entry.js} +355 -21
  41. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -0
  42. package/dist/cjs/q2-option.cjs.entry.js +18 -4
  43. package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
  44. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  45. package/dist/cjs/q2-pill.cjs.entry.js +8 -7
  46. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  49. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  50. package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  52. package/dist/cjs/q2-select.cjs.entry.js +10 -8
  53. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  54. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  55. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  56. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  57. package/dist/cjs/q2-tag.cjs.entry.js +7 -4
  58. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  59. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  60. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  61. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  62. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  63. package/dist/collection/components/q2-action-group/q2-action-group.css +25 -8
  64. package/dist/collection/components/q2-action-group/q2-action-group.js +55 -33
  65. package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
  66. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js +142 -6
  67. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -1
  68. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js +126 -62
  69. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -1
  70. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js +1 -1
  71. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
  72. package/dist/collection/components/q2-avatar/q2-avatar.css +5 -0
  73. package/dist/collection/components/q2-btn/q2-btn.css +103 -3
  74. package/dist/collection/components/q2-btn/q2-btn.js +50 -16
  75. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  76. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js +101 -4
  77. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
  78. package/dist/collection/components/q2-dropdown/q2-dropdown.js +83 -103
  79. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  80. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +188 -24
  81. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  82. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.css +1 -1
  83. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +54 -16
  84. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  85. package/dist/collection/components/q2-file-picker/q2-file-picker.css +29 -10
  86. package/dist/collection/components/q2-file-picker/q2-file-picker.js +3 -3
  87. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  88. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js +34 -0
  89. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
  90. package/dist/collection/components/q2-link/q2-link.js +26 -7
  91. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  92. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js +20 -118
  93. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
  94. package/dist/collection/components/q2-link/test/q2-link-test.spec.js +193 -0
  95. package/dist/collection/components/q2-link/test/q2-link-test.spec.js.map +1 -0
  96. package/dist/collection/components/q2-loading/q2-loading.js +1 -1
  97. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  98. package/dist/collection/components/q2-option/q2-option.css +9 -3
  99. package/dist/collection/components/q2-option/q2-option.js +37 -4
  100. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  101. package/dist/collection/components/q2-option/test/q2-option-test.spec.js +22 -0
  102. package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
  103. package/dist/collection/components/q2-option-list/q2-option-list.js +56 -29
  104. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  105. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js +489 -0
  106. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js.map +1 -0
  107. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  108. package/dist/collection/components/q2-pill/q2-pill.js +6 -5
  109. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  110. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +1 -1
  111. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  112. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  113. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  114. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  115. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  116. package/dist/collection/components/q2-section/q2-section.js +2 -2
  117. package/dist/collection/components/q2-select/q2-select.js +9 -7
  118. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  119. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +1 -14
  120. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  121. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  122. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  123. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  124. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  125. package/dist/collection/components/q2-tag/q2-tag.js +5 -2
  126. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  127. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +1 -1
  128. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  129. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  130. package/dist/collection/utils/action-sheet.js +5 -2
  131. package/dist/collection/utils/action-sheet.js.map +1 -1
  132. package/dist/collection/utils/helpers.js +29 -3
  133. package/dist/collection/utils/helpers.js.map +1 -1
  134. package/dist/collection/utils/test/action-sheet-test.e2e.js +34 -6
  135. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
  136. package/dist/components/action-sheet.js +6 -3
  137. package/dist/components/action-sheet.js.map +1 -1
  138. package/dist/components/index2.js +1 -20
  139. package/dist/components/index2.js.map +1 -1
  140. package/dist/components/q2-action-group.js +41 -19
  141. package/dist/components/q2-action-group.js.map +1 -1
  142. package/dist/components/q2-avatar2.js +1 -1
  143. package/dist/components/q2-avatar2.js.map +1 -1
  144. package/dist/components/q2-btn2.js +50 -16
  145. package/dist/components/q2-btn2.js.map +1 -1
  146. package/dist/components/q2-dropdown-item2.js +19 -17
  147. package/dist/components/q2-dropdown-item2.js.map +1 -1
  148. package/dist/components/q2-dropdown.js +67 -110
  149. package/dist/components/q2-dropdown.js.map +1 -1
  150. package/dist/components/q2-file-picker.js +3 -3
  151. package/dist/components/q2-file-picker.js.map +1 -1
  152. package/dist/components/q2-link2.js +3 -1
  153. package/dist/components/q2-link2.js.map +1 -1
  154. package/dist/components/q2-loading2.js.map +1 -1
  155. package/dist/components/q2-option-list2.js +44 -19
  156. package/dist/components/q2-option-list2.js.map +1 -1
  157. package/dist/components/q2-option2.js +20 -4
  158. package/dist/components/q2-option2.js.map +1 -1
  159. package/dist/components/q2-pagination.js +3 -3
  160. package/dist/components/q2-pill.js +7 -6
  161. package/dist/components/q2-pill.js.map +1 -1
  162. package/dist/components/q2-popover2.js +1 -1
  163. package/dist/components/q2-popover2.js.map +1 -1
  164. package/dist/components/q2-relative-time.js +1 -1
  165. package/dist/components/q2-resize-observer2.js +1 -1
  166. package/dist/components/q2-section.js +2 -2
  167. package/dist/components/q2-select2.js +10 -8
  168. package/dist/components/q2-select2.js.map +1 -1
  169. package/dist/components/q2-stepper-vertical.js +1 -1
  170. package/dist/components/q2-stepper.js +1 -1
  171. package/dist/components/q2-tab-container.js +1 -1
  172. package/dist/components/q2-tab-pane.js +1 -1
  173. package/dist/components/q2-tag.js +6 -3
  174. package/dist/components/q2-tag.js.map +1 -1
  175. package/dist/components/tecton-tab-pane.js +2 -2
  176. package/dist/esm/{action-sheet-e64cb6f7.js → action-sheet-1e24cb38.js} +7 -4
  177. package/dist/esm/action-sheet-1e24cb38.js.map +1 -0
  178. package/dist/esm/click-elsewhere.entry.js +92 -0
  179. package/dist/esm/click-elsewhere.entry.js.map +1 -0
  180. package/dist/esm/{index-d18e2a20.js → index-504f1a9e.js} +2 -21
  181. package/dist/esm/index-504f1a9e.js.map +1 -0
  182. package/dist/esm/loader.js +1 -1
  183. package/dist/esm/q2-action-group.entry.js +39 -18
  184. package/dist/esm/q2-action-group.entry.js.map +1 -1
  185. package/dist/esm/q2-action-sheet.entry.js +1 -1
  186. package/dist/esm/q2-avatar.entry.js +1 -1
  187. package/dist/esm/q2-avatar.entry.js.map +1 -1
  188. package/dist/esm/q2-badge_7.entry.js +52 -18
  189. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  190. package/dist/esm/q2-calendar.entry.js +1 -1
  191. package/dist/esm/q2-card.entry.js +1 -1
  192. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  193. package/dist/esm/q2-carousel.entry.js +1 -1
  194. package/dist/esm/q2-chart-area.entry.js +1 -1
  195. package/dist/esm/q2-chart-bar.entry.js +1 -1
  196. package/dist/esm/q2-chart-donut.entry.js +1 -1
  197. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  198. package/dist/esm/q2-checkbox.entry.js +1 -1
  199. package/dist/esm/q2-data-table.entry.js +1 -1
  200. package/dist/esm/q2-detail.entry.js +1 -1
  201. package/dist/esm/q2-dropdown-item.entry.js +18 -17
  202. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  203. package/dist/esm/q2-dropdown.entry.js +48 -99
  204. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  205. package/dist/esm/q2-editable-field.entry.js +1 -1
  206. package/dist/esm/q2-file-picker.entry.js +4 -4
  207. package/dist/esm/q2-file-picker.entry.js.map +1 -1
  208. package/dist/esm/q2-item_3.entry.js +3 -2
  209. package/dist/esm/q2-item_3.entry.js.map +1 -1
  210. package/dist/esm/q2-loc.entry.js +1 -1
  211. package/dist/esm/q2-message.entry.js +1 -1
  212. package/dist/esm/q2-month-picker.entry.js +1 -1
  213. package/dist/esm/q2-optgroup.entry.js +1 -1
  214. package/dist/esm/{q2-option-list.entry.js → q2-option-list_2.entry.js} +355 -22
  215. package/dist/esm/q2-option-list_2.entry.js.map +1 -0
  216. package/dist/esm/q2-option.entry.js +18 -4
  217. package/dist/esm/q2-option.entry.js.map +1 -1
  218. package/dist/esm/q2-pagination.entry.js +4 -4
  219. package/dist/esm/q2-pill.entry.js +8 -7
  220. package/dist/esm/q2-pill.entry.js.map +1 -1
  221. package/dist/esm/q2-radio-group.entry.js +1 -1
  222. package/dist/esm/q2-radio.entry.js +1 -1
  223. package/dist/esm/q2-relative-time.entry.js +2 -2
  224. package/dist/esm/q2-resize-observer.entry.js +1 -1
  225. package/dist/esm/q2-section.entry.js +3 -3
  226. package/dist/esm/q2-select.entry.js +10 -8
  227. package/dist/esm/q2-select.entry.js.map +1 -1
  228. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  229. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  230. package/dist/esm/q2-stepper.entry.js +2 -2
  231. package/dist/esm/q2-tag.entry.js +7 -4
  232. package/dist/esm/q2-tag.entry.js.map +1 -1
  233. package/dist/esm/q2-tecton-elements.js +1 -1
  234. package/dist/esm/q2-textarea.entry.js +1 -1
  235. package/dist/esm/q2-tooltip.entry.js +1 -1
  236. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  237. package/dist/q2-tecton-elements/action-sheet-1e24cb38.js +80 -0
  238. package/dist/q2-tecton-elements/action-sheet-1e24cb38.js.map +1 -0
  239. package/dist/q2-tecton-elements/click-elsewhere.entry.js +90 -0
  240. package/dist/q2-tecton-elements/click-elsewhere.entry.js.map +1 -0
  241. package/dist/q2-tecton-elements/{index-d18e2a20.js → index-504f1a9e.js} +51 -69
  242. package/dist/q2-tecton-elements/index-504f1a9e.js.map +1 -0
  243. package/dist/q2-tecton-elements/q2-action-group.entry.js +57 -33
  244. package/dist/q2-tecton-elements/q2-action-group.entry.js.map +1 -1
  245. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +1 -1
  246. package/dist/q2-tecton-elements/q2-avatar.entry.js +1 -1
  247. package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
  248. package/dist/q2-tecton-elements/q2-badge_7.entry.js +256 -213
  249. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  250. package/dist/q2-tecton-elements/q2-calendar.entry.js +1 -1
  251. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  252. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +1 -1
  253. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  254. package/dist/q2-tecton-elements/q2-chart-area.entry.js +1 -1
  255. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +1 -1
  256. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +1 -1
  257. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +1 -1
  258. package/dist/q2-tecton-elements/q2-checkbox.entry.js +1 -1
  259. package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
  260. package/dist/q2-tecton-elements/q2-detail.entry.js +1 -1
  261. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +34 -34
  262. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -1
  263. package/dist/q2-tecton-elements/q2-dropdown.entry.js +86 -137
  264. package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
  265. package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
  266. package/dist/q2-tecton-elements/q2-file-picker.entry.js +138 -137
  267. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
  268. package/dist/q2-tecton-elements/q2-item_3.entry.js +3 -2
  269. package/dist/q2-tecton-elements/q2-item_3.entry.js.map +1 -1
  270. package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
  271. package/dist/q2-tecton-elements/q2-message.entry.js +1 -1
  272. package/dist/q2-tecton-elements/q2-month-picker.entry.js +1 -1
  273. package/dist/q2-tecton-elements/q2-optgroup.entry.js +1 -1
  274. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +902 -0
  275. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -0
  276. package/dist/q2-tecton-elements/q2-option.entry.js +31 -21
  277. package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -1
  278. package/dist/q2-tecton-elements/q2-pagination.entry.js +34 -34
  279. package/dist/q2-tecton-elements/q2-pill.entry.js +15 -15
  280. package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -1
  281. package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
  282. package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
  283. package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
  284. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
  285. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  286. package/dist/q2-tecton-elements/q2-select.entry.js +23 -20
  287. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  288. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
  289. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
  290. package/dist/q2-tecton-elements/q2-stepper.entry.js +29 -29
  291. package/dist/q2-tecton-elements/q2-tag.entry.js +36 -34
  292. package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -1
  293. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  294. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  295. package/dist/q2-tecton-elements/q2-textarea.entry.js +1 -1
  296. package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
  297. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  298. package/dist/types/components/q2-action-group/q2-action-group.d.ts +19 -11
  299. package/dist/types/components/q2-btn/q2-btn.d.ts +8 -3
  300. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +18 -9
  301. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +14 -1
  302. package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +4 -2
  303. package/dist/types/components/q2-link/q2-link.d.ts +8 -6
  304. package/dist/types/components/q2-loading/q2-loading.d.ts +2 -2
  305. package/dist/types/components/q2-option/q2-option.d.ts +10 -1
  306. package/dist/types/components/q2-option-list/q2-option-list.d.ts +9 -8
  307. package/dist/types/components/q2-pill/q2-pill.d.ts +1 -1
  308. package/dist/types/components.d.ts +93 -30
  309. package/dist/types/util.d.ts +1 -0
  310. package/dist/types/utils/helpers.d.ts +1 -1
  311. package/package.json +4 -3
  312. package/dist/cjs/action-sheet-d32c41ae.js.map +0 -1
  313. package/dist/cjs/click-elsewhere_2.cjs.entry.js +0 -406
  314. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +0 -1
  315. package/dist/cjs/index-07285783.js.map +0 -1
  316. package/dist/cjs/q2-option-list.cjs.entry.js.map +0 -1
  317. package/dist/esm/action-sheet-e64cb6f7.js.map +0 -1
  318. package/dist/esm/click-elsewhere_2.entry.js +0 -401
  319. package/dist/esm/click-elsewhere_2.entry.js.map +0 -1
  320. package/dist/esm/index-d18e2a20.js.map +0 -1
  321. package/dist/esm/q2-option-list.entry.js.map +0 -1
  322. package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js +0 -77
  323. package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js.map +0 -1
  324. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +0 -398
  325. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +0 -1
  326. package/dist/q2-tecton-elements/index-d18e2a20.js.map +0 -1
  327. package/dist/q2-tecton-elements/q2-option-list.entry.js +0 -585
  328. package/dist/q2-tecton-elements/q2-option-list.entry.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { newSpecPage } from "@stencil/core/testing";
2
- import { setTestStrings, setup, dispatchEvent, testDeprecatedAriaLabel, getNestedElementProperty, getListOfStyleCompilationIssues, evaluateA11y, } from "../../../utils/helpers";
2
+ import { setTestStrings, setup, dispatchEvent, testDeprecatedAriaLabel, getNestedElementProperty, getListOfStyleCompilationIssues, evaluateA11y, getFocusedAttribute, } from "../../../utils/helpers";
3
3
  import { Q2Popover } from "../../q2-popover/q2-popover";
4
4
  import { Q2Dropdown } from "../q2-dropdown";
5
5
  import { Q2DropdownItem } from "../../q2-dropdown-item/q2-dropdown-item";
@@ -119,13 +119,14 @@ describe('q2-dropdown', () => {
119
119
  await page.keyboard.press('ArrowDown');
120
120
  expect(item2Spy).toHaveReceivedEventTimes(1);
121
121
  await page.keyboard.press('ArrowDown');
122
- expect(item1Spy).toHaveReceivedEventTimes(2);
123
- await page.keyboard.press('ArrowDown');
124
- expect(item2Spy).toHaveReceivedEventTimes(2);
122
+ expect(item1Spy).toHaveReceivedEventTimes(1);
123
+ expect(item2Spy).toHaveReceivedEventTimes(1);
125
124
  await page.keyboard.press('ArrowUp');
126
- expect(item1Spy).toHaveReceivedEventTimes(3);
125
+ expect(item1Spy).toHaveReceivedEventTimes(2);
126
+ expect(item2Spy).toHaveReceivedEventTimes(1);
127
127
  await page.keyboard.press('ArrowUp');
128
- expect(item2Spy).toHaveReceivedEventTimes(3);
128
+ expect(item1Spy).toHaveReceivedEventTimes(2);
129
+ expect(item2Spy).toHaveReceivedEventTimes(1);
129
130
  });
130
131
  it('localizes label and aria-label', async () => {
131
132
  page = await setup({
@@ -290,6 +291,145 @@ describe('q2-dropdown', () => {
290
291
  });
291
292
  });
292
293
  describe('Props', () => {
294
+ describe('hoist', () => {
295
+ let clickSpy;
296
+ const runHoistSetup = async (action, hoistEnabled = false, defineShowActionSheet = false, isCancelled = false) => {
297
+ page = await setup({
298
+ html: `
299
+ <q2-dropdown ${hoistEnabled ? 'hoist' : ''} label="My tag">
300
+ <q2-dropdown-item value="1">Option 1</q2-dropdown-item>
301
+ <q2-dropdown-item value="2">Option 2</q2-dropdown-item>
302
+ <q2-dropdown-item value="3">Option 3</q2-dropdown-item>
303
+ </q2-dropdown>
304
+ `,
305
+ });
306
+ if (defineShowActionSheet) {
307
+ await page.evaluate(isCancelled => {
308
+ const returnValue = isCancelled
309
+ ? {
310
+ type: 'cancel',
311
+ value: '',
312
+ values: [],
313
+ }
314
+ : {
315
+ value: '3',
316
+ values: [{ display: 'Option 3', value: '3' }],
317
+ type: 'confirm',
318
+ };
319
+ this.TectonElements.showActionSheet = async () => returnValue;
320
+ }, isCancelled);
321
+ }
322
+ popover = await page.find('q2-dropdown >>> q2-popover');
323
+ dropdown = await page.find('q2-dropdown');
324
+ dropdownButton = await page.find('q2-dropdown >>> button');
325
+ const dropdownItem = await page.find('q2-dropdown-item[value="3"]');
326
+ clickSpy = await dropdownItem.spyOnEvent('click');
327
+ expect(popover).not.toHaveAttribute('open');
328
+ if (action === 'click') {
329
+ await dropdownButton.click();
330
+ }
331
+ else {
332
+ await dropdownButton.press(action);
333
+ }
334
+ await page.waitForChanges();
335
+ };
336
+ describe('when window.Tecton.useActionSheets is true', () => {
337
+ it('defaults the hoist prop to true', async () => {
338
+ page = await setup({ html: `` });
339
+ await page.evaluate(() => {
340
+ this.Tecton = {
341
+ inMobileApp: false,
342
+ useActionSheets: true,
343
+ noStrings: false,
344
+ platformDimensions: null,
345
+ platformUrl: null,
346
+ };
347
+ });
348
+ await page.setContent(`
349
+ <q2-dropdown label="My tag">
350
+ <q2-dropdown-item value="1">Option 1</q2-dropdown-item>
351
+ <q2-dropdown-item value="2">Option 2</q2-dropdown-item>
352
+ <q2-dropdown-item value="3">Option 3</q2-dropdown-item>
353
+ </q2-dropdown>
354
+ `);
355
+ await page.waitForChanges();
356
+ dropdown = await page.find('q2-dropdown');
357
+ expect(await dropdown.getProperty('hoist')).toEqual(true);
358
+ });
359
+ it('sets hoist to false when manually set to false', async () => {
360
+ page = await setup({ html: `` });
361
+ await page.evaluate(() => {
362
+ this.Tecton = {
363
+ inMobileApp: false,
364
+ useActionSheets: true,
365
+ noStrings: false,
366
+ platformDimensions: null,
367
+ platformUrl: null,
368
+ };
369
+ });
370
+ await page.setContent(`
371
+ <q2-dropdown label="My tag" hoist="false">
372
+ <q2-dropdown-item value="1">Option 1</q2-dropdown-item>
373
+ <q2-dropdown-item value="2">Option 2</q2-dropdown-item>
374
+ <q2-dropdown-item value="3">Option 3</q2-dropdown-item>
375
+ </q2-dropdown>
376
+ `);
377
+ await page.waitForChanges();
378
+ dropdown = await page.find('q2-dropdown');
379
+ expect(await dropdown.getProperty('hoist')).toEqual(false);
380
+ });
381
+ });
382
+ describe('when false (default)', () => {
383
+ it('opens popover on click', async () => {
384
+ await runHoistSetup('click', false, true);
385
+ expect(popover).toHaveAttribute('open');
386
+ const option = await page.find('q2-dropdown-item[value="3"]');
387
+ await option.click();
388
+ await page.waitForChanges();
389
+ expect(popover).not.toHaveAttribute('open');
390
+ expect(clickSpy).toHaveReceivedEventDetail({
391
+ type: 'select',
392
+ value: '3',
393
+ });
394
+ });
395
+ });
396
+ describe('when true', () => {
397
+ describe('when window.TectonElements.showActionSheet is not defined', () => {
398
+ it('opens popover on click', async () => {
399
+ await runHoistSetup('click', true, false);
400
+ const option = await page.find('q2-dropdown-item[value="3"]');
401
+ await option.click();
402
+ await page.waitForChanges();
403
+ expect(popover).not.toHaveAttribute('open');
404
+ expect(clickSpy).toHaveReceivedEventDetail({
405
+ type: 'select',
406
+ value: '3',
407
+ });
408
+ });
409
+ });
410
+ describe('when window.TectonElements.showActionSheet is defined', () => {
411
+ ['click', 'ArrowDown', 'Space', 'Enter'].forEach(action => {
412
+ it(`calls showActionSheet on ${action}`, async () => {
413
+ await runHoistSetup(action, true, true);
414
+ expect(clickSpy).toHaveReceivedEventDetail({
415
+ type: 'select',
416
+ value: '3',
417
+ });
418
+ });
419
+ });
420
+ describe('when cancelled', () => {
421
+ it(`calls showActionSheet on click and returns no data`, async () => {
422
+ await runHoistSetup('click', true, true, true);
423
+ expect(clickSpy).not.toHaveReceivedEvent();
424
+ });
425
+ it(`calls showActionSheet on click and focuses control element`, async () => {
426
+ await runHoistSetup('click', true, true, true);
427
+ expect(await getFocusedAttribute(page, 'test-id')).toEqual('dropdownButton');
428
+ });
429
+ });
430
+ });
431
+ });
432
+ });
293
433
  describe('open', () => {
294
434
  it('passes the open property to the popover and dispatches popoverStateChanged event', async () => {
295
435
  page = await setup({
@@ -686,7 +826,7 @@ describe('q2-dropdown', () => {
686
826
  <q2-dropdown-item test-id="option-1">Item 1 Text</q2-dropdown-item>
687
827
  <q2-dropdown-item test-id="option-2">Item 2 Text</q2-dropdown-item>
688
828
  </q2-dropdown>
689
- <button>Outside Button</button>
829
+ <button test-id="outer-button">Outside Button</button>
690
830
  `,
691
831
  });
692
832
  dropdown = await page.find('q2-dropdown');
@@ -697,8 +837,10 @@ describe('q2-dropdown', () => {
697
837
  lastOption = await page.find('q2-dropdown-item:last-of-type');
698
838
  lastOptionFocusSpy = await lastOption.spyOnEvent('focus');
699
839
  dropdownContainer = await page.find('q2-dropdown >>> click-elsewhere');
840
+ popover = await page.find('q2-dropdown >>> q2-popover');
700
841
  expect(await dropdown.getProperty('open')).toBeUndefined();
701
842
  expect(buttonFocusSpy).toHaveReceivedEventTimes(0);
843
+ expect(popover).not.toHaveAttribute('open');
702
844
  expect(dropdownContainer).not.toHaveClass('dropdown-open');
703
845
  });
704
846
  describe('toggle button behavior', () => {
@@ -706,14 +848,14 @@ describe('q2-dropdown', () => {
706
848
  it('ArrowUp: opens the popover and focuses last item', async () => {
707
849
  await dropdownButton.press('ArrowUp');
708
850
  await page.waitForChanges();
709
- expect(dropdownContainer).toHaveClass('dropdown-open');
851
+ expect(popover).toHaveAttribute('open');
710
852
  expect(buttonFocusSpy).toHaveReceivedEventTimes(2);
711
853
  expect(lastOptionFocusSpy).toHaveReceivedEventTimes(1);
712
854
  });
713
855
  it('ArrowDown: opens the popover and focuses first item', async () => {
714
856
  await dropdownButton.press('ArrowDown');
715
857
  await page.waitForChanges();
716
- expect(dropdownContainer).toHaveClass('dropdown-open');
858
+ expect(popover).toHaveAttribute('open');
717
859
  expect(buttonFocusSpy).toHaveReceivedEventTimes(2);
718
860
  expect(firstOptionFocusSpy).toHaveReceivedEventTimes(1);
719
861
  });
@@ -722,21 +864,21 @@ describe('q2-dropdown', () => {
722
864
  beforeEach(async () => {
723
865
  dropdown.setProperty('open', true);
724
866
  await page.waitForChanges();
725
- expect(dropdownContainer).toHaveClass('dropdown-open');
867
+ expect(popover).toHaveAttribute('open');
726
868
  buttonFocusSpy.events = [];
727
869
  });
728
870
  it('Escape: closes the popover and focuses toggle button', async () => {
729
871
  await dropdownButton.press('Escape');
730
872
  await page.waitForChanges();
731
- expect(dropdownContainer).not.toHaveClass('dropdown-open');
732
- expect(buttonFocusSpy).toHaveReceivedEventTimes(2);
873
+ expect(popover).not.toHaveAttribute('open');
874
+ expect(buttonFocusSpy).toHaveReceivedEventTimes(3);
733
875
  });
734
876
  it('Tab: closes the popover and focuses next element in tab order', async () => {
735
877
  const outerButton = await page.find('button');
736
878
  const outerButtonSpy = await outerButton.spyOnEvent('focus');
737
879
  await dropdownButton.press('Tab');
738
880
  await page.waitForChanges();
739
- expect(dropdownContainer).not.toHaveClass('dropdown-open');
881
+ expect(popover).not.toHaveAttribute('open');
740
882
  expect(buttonFocusSpy).toHaveReceivedEventTimes(2);
741
883
  expect(outerButtonSpy).toHaveReceivedEventTimes(1);
742
884
  });
@@ -745,34 +887,54 @@ describe('q2-dropdown', () => {
745
887
  describe('dropdown item behavior', () => {
746
888
  describe('when inside popover', () => {
747
889
  beforeEach(async () => {
748
- dropdown.setProperty('open', true);
749
- await page.waitForChanges();
750
- expect(dropdownContainer).toHaveClass('dropdown-open');
751
890
  buttonFocusSpy.events = [];
752
891
  firstOptionFocusSpy.events = [];
753
892
  lastOptionFocusSpy.events = [];
754
893
  });
894
+ it('clears active elements when the popover is closed', async () => {
895
+ await dropdownButton.press('ArrowDown');
896
+ await page.waitForChanges();
897
+ expect(popover).toHaveAttribute('open');
898
+ let activeDropdownItem = await page.find('q2-dropdown-item[active]');
899
+ expect(activeDropdownItem).toEqualAttribute('test-id', 'option-1');
900
+ const externalButton = await page.find('button');
901
+ await externalButton.click();
902
+ await page.waitForChanges();
903
+ expect(popover).not.toHaveAttribute('open');
904
+ activeDropdownItem = await page.find('q2-dropdown-item[active]');
905
+ expect(activeDropdownItem).toBeNull();
906
+ });
755
907
  it('Escape: closes the popover and focuses the toggle button', async () => {
756
- await dispatchEvent(page, ['q2-dropdown-item'], 'focus');
908
+ await dropdownButton.press('ArrowDown');
909
+ await page.waitForChanges();
910
+ expect(popover).toHaveAttribute('open');
911
+ expect(buttonFocusSpy).toHaveReceivedEventTimes(2);
757
912
  expect(firstOptionFocusSpy).toHaveReceivedEventTimes(1);
758
913
  await page.keyboard.press('Escape');
759
914
  await page.waitForChanges();
760
- expect(dropdownContainer).not.toHaveClass('dropdown-open');
761
- expect(buttonFocusSpy).toHaveReceivedEventTimes(2);
915
+ expect(popover).not.toHaveAttribute('open');
916
+ expect(buttonFocusSpy).toHaveReceivedEventTimes(4);
917
+ expect(await getFocusedAttribute(page, 'test-id')).toEqual('dropdownButton');
762
918
  });
763
919
  it('Tab: closes the popover and focuses next element in tab order', async () => {
764
920
  const outerButton = await page.find('button');
765
921
  const outerButtonSpy = await outerButton.spyOnEvent('focus');
766
- await dispatchEvent(page, ['q2-dropdown-item'], 'focus');
922
+ await dropdownButton.press('ArrowDown');
923
+ await page.waitForChanges();
924
+ expect(popover).toHaveAttribute('open');
925
+ expect(buttonFocusSpy).toHaveReceivedEventTimes(2);
767
926
  expect(firstOptionFocusSpy).toHaveReceivedEventTimes(1);
768
927
  await page.keyboard.press('Tab');
769
928
  await page.waitForChanges();
770
- expect(dropdownContainer).not.toHaveClass('dropdown-open');
771
- expect(buttonFocusSpy).toHaveReceivedEventTimes(0);
929
+ expect(popover).not.toHaveAttribute('open');
930
+ expect(buttonFocusSpy).toHaveReceivedEventTimes(4);
772
931
  expect(outerButtonSpy).toHaveReceivedEventTimes(1);
932
+ expect(await getFocusedAttribute(page, 'test-id')).toEqual('outer-button');
773
933
  });
774
934
  it('ArrowUp: focuses the previous dropdown item', async () => {
775
- await dispatchEvent(page, ['q2-dropdown-item:last-of-type'], 'focus');
935
+ await dropdownButton.press('ArrowUp');
936
+ await page.waitForChanges();
937
+ expect(popover).toHaveAttribute('open');
776
938
  expect(firstOptionFocusSpy).toHaveReceivedEventTimes(0);
777
939
  expect(lastOptionFocusSpy).toHaveReceivedEventTimes(1);
778
940
  await page.keyboard.press('ArrowUp');
@@ -780,7 +942,9 @@ describe('q2-dropdown', () => {
780
942
  expect(firstOptionFocusSpy).toHaveReceivedEventTimes(1);
781
943
  });
782
944
  it('ArrowDown: focuses the next dropdown item', async () => {
783
- await dispatchEvent(page, ['q2-dropdown-item'], 'focus');
945
+ await dropdownButton.press('ArrowDown');
946
+ await page.waitForChanges();
947
+ expect(popover).toHaveAttribute('open');
784
948
  expect(firstOptionFocusSpy).toHaveReceivedEventTimes(1);
785
949
  await page.keyboard.press('ArrowDown');
786
950
  await page.waitForChanges();