q2-tecton-elements 1.53.0 → 1.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) 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 +3 -3
  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 +7 -5
  53. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  54. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  55. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  56. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  57. package/dist/cjs/q2-tag.cjs.entry.js +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 +74 -0
  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 +29 -0
  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 +1 -1
  87. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  88. package/dist/collection/components/q2-link/q2-link.js +26 -7
  89. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  90. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js +20 -118
  91. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
  92. package/dist/collection/components/q2-link/test/q2-link-test.spec.js +193 -0
  93. package/dist/collection/components/q2-link/test/q2-link-test.spec.js.map +1 -0
  94. package/dist/collection/components/q2-loading/q2-loading.js +1 -1
  95. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  96. package/dist/collection/components/q2-option/q2-option.css +9 -3
  97. package/dist/collection/components/q2-option/q2-option.js +37 -4
  98. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  99. package/dist/collection/components/q2-option/test/q2-option-test.spec.js +22 -0
  100. package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
  101. package/dist/collection/components/q2-option-list/q2-option-list.js +56 -29
  102. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  103. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js +489 -0
  104. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js.map +1 -0
  105. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  106. package/dist/collection/components/q2-pill/q2-pill.js +6 -5
  107. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  108. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +1 -1
  109. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  110. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  111. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  112. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  113. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  114. package/dist/collection/components/q2-section/q2-section.js +2 -2
  115. package/dist/collection/components/q2-select/q2-select.js +6 -4
  116. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  117. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +1 -14
  118. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  119. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  120. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  121. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  122. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  123. package/dist/collection/components/q2-tag/q2-tag.js +5 -2
  124. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  125. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +1 -1
  126. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  127. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  128. package/dist/collection/utils/action-sheet.js +5 -2
  129. package/dist/collection/utils/action-sheet.js.map +1 -1
  130. package/dist/collection/utils/helpers.js +29 -3
  131. package/dist/collection/utils/helpers.js.map +1 -1
  132. package/dist/collection/utils/test/action-sheet-test.e2e.js +34 -6
  133. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
  134. package/dist/components/action-sheet.js +6 -3
  135. package/dist/components/action-sheet.js.map +1 -1
  136. package/dist/components/index2.js +1 -20
  137. package/dist/components/index2.js.map +1 -1
  138. package/dist/components/q2-action-group.js +41 -19
  139. package/dist/components/q2-action-group.js.map +1 -1
  140. package/dist/components/q2-avatar2.js +1 -1
  141. package/dist/components/q2-avatar2.js.map +1 -1
  142. package/dist/components/q2-btn2.js +50 -16
  143. package/dist/components/q2-btn2.js.map +1 -1
  144. package/dist/components/q2-dropdown-item2.js +19 -17
  145. package/dist/components/q2-dropdown-item2.js.map +1 -1
  146. package/dist/components/q2-dropdown.js +67 -110
  147. package/dist/components/q2-dropdown.js.map +1 -1
  148. package/dist/components/q2-file-picker.js +2 -2
  149. package/dist/components/q2-file-picker.js.map +1 -1
  150. package/dist/components/q2-link2.js +3 -1
  151. package/dist/components/q2-link2.js.map +1 -1
  152. package/dist/components/q2-loading2.js.map +1 -1
  153. package/dist/components/q2-option-list2.js +44 -19
  154. package/dist/components/q2-option-list2.js.map +1 -1
  155. package/dist/components/q2-option2.js +20 -4
  156. package/dist/components/q2-option2.js.map +1 -1
  157. package/dist/components/q2-pagination.js +3 -3
  158. package/dist/components/q2-pill.js +7 -6
  159. package/dist/components/q2-pill.js.map +1 -1
  160. package/dist/components/q2-popover2.js +1 -1
  161. package/dist/components/q2-popover2.js.map +1 -1
  162. package/dist/components/q2-relative-time.js +1 -1
  163. package/dist/components/q2-resize-observer2.js +1 -1
  164. package/dist/components/q2-section.js +2 -2
  165. package/dist/components/q2-select2.js +7 -5
  166. package/dist/components/q2-select2.js.map +1 -1
  167. package/dist/components/q2-stepper-vertical.js +1 -1
  168. package/dist/components/q2-stepper.js +1 -1
  169. package/dist/components/q2-tab-container.js +1 -1
  170. package/dist/components/q2-tab-pane.js +1 -1
  171. package/dist/components/q2-tag.js +6 -3
  172. package/dist/components/q2-tag.js.map +1 -1
  173. package/dist/components/tecton-tab-pane.js +2 -2
  174. package/dist/esm/{action-sheet-e64cb6f7.js → action-sheet-1e24cb38.js} +7 -4
  175. package/dist/esm/action-sheet-1e24cb38.js.map +1 -0
  176. package/dist/esm/click-elsewhere.entry.js +92 -0
  177. package/dist/esm/click-elsewhere.entry.js.map +1 -0
  178. package/dist/esm/{index-d18e2a20.js → index-504f1a9e.js} +2 -21
  179. package/dist/esm/index-504f1a9e.js.map +1 -0
  180. package/dist/esm/loader.js +1 -1
  181. package/dist/esm/q2-action-group.entry.js +39 -18
  182. package/dist/esm/q2-action-group.entry.js.map +1 -1
  183. package/dist/esm/q2-action-sheet.entry.js +1 -1
  184. package/dist/esm/q2-avatar.entry.js +1 -1
  185. package/dist/esm/q2-avatar.entry.js.map +1 -1
  186. package/dist/esm/q2-badge_7.entry.js +52 -18
  187. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  188. package/dist/esm/q2-calendar.entry.js +1 -1
  189. package/dist/esm/q2-card.entry.js +1 -1
  190. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  191. package/dist/esm/q2-carousel.entry.js +1 -1
  192. package/dist/esm/q2-chart-area.entry.js +1 -1
  193. package/dist/esm/q2-chart-bar.entry.js +1 -1
  194. package/dist/esm/q2-chart-donut.entry.js +1 -1
  195. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  196. package/dist/esm/q2-checkbox.entry.js +1 -1
  197. package/dist/esm/q2-data-table.entry.js +1 -1
  198. package/dist/esm/q2-detail.entry.js +1 -1
  199. package/dist/esm/q2-dropdown-item.entry.js +18 -17
  200. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  201. package/dist/esm/q2-dropdown.entry.js +48 -99
  202. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  203. package/dist/esm/q2-editable-field.entry.js +1 -1
  204. package/dist/esm/q2-file-picker.entry.js +3 -3
  205. package/dist/esm/q2-file-picker.entry.js.map +1 -1
  206. package/dist/esm/q2-item_3.entry.js +3 -2
  207. package/dist/esm/q2-item_3.entry.js.map +1 -1
  208. package/dist/esm/q2-loc.entry.js +1 -1
  209. package/dist/esm/q2-message.entry.js +1 -1
  210. package/dist/esm/q2-month-picker.entry.js +1 -1
  211. package/dist/esm/q2-optgroup.entry.js +1 -1
  212. package/dist/esm/{q2-option-list.entry.js → q2-option-list_2.entry.js} +355 -22
  213. package/dist/esm/q2-option-list_2.entry.js.map +1 -0
  214. package/dist/esm/q2-option.entry.js +18 -4
  215. package/dist/esm/q2-option.entry.js.map +1 -1
  216. package/dist/esm/q2-pagination.entry.js +4 -4
  217. package/dist/esm/q2-pill.entry.js +8 -7
  218. package/dist/esm/q2-pill.entry.js.map +1 -1
  219. package/dist/esm/q2-radio-group.entry.js +1 -1
  220. package/dist/esm/q2-radio.entry.js +1 -1
  221. package/dist/esm/q2-relative-time.entry.js +2 -2
  222. package/dist/esm/q2-resize-observer.entry.js +1 -1
  223. package/dist/esm/q2-section.entry.js +3 -3
  224. package/dist/esm/q2-select.entry.js +7 -5
  225. package/dist/esm/q2-select.entry.js.map +1 -1
  226. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  227. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  228. package/dist/esm/q2-stepper.entry.js +2 -2
  229. package/dist/esm/q2-tag.entry.js +7 -4
  230. package/dist/esm/q2-tag.entry.js.map +1 -1
  231. package/dist/esm/q2-tecton-elements.js +1 -1
  232. package/dist/esm/q2-textarea.entry.js +1 -1
  233. package/dist/esm/q2-tooltip.entry.js +1 -1
  234. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  235. package/dist/q2-tecton-elements/action-sheet-1e24cb38.js +80 -0
  236. package/dist/q2-tecton-elements/action-sheet-1e24cb38.js.map +1 -0
  237. package/dist/q2-tecton-elements/click-elsewhere.entry.js +90 -0
  238. package/dist/q2-tecton-elements/click-elsewhere.entry.js.map +1 -0
  239. package/dist/q2-tecton-elements/{index-d18e2a20.js → index-504f1a9e.js} +51 -69
  240. package/dist/q2-tecton-elements/index-504f1a9e.js.map +1 -0
  241. package/dist/q2-tecton-elements/q2-action-group.entry.js +57 -33
  242. package/dist/q2-tecton-elements/q2-action-group.entry.js.map +1 -1
  243. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +1 -1
  244. package/dist/q2-tecton-elements/q2-avatar.entry.js +1 -1
  245. package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
  246. package/dist/q2-tecton-elements/q2-badge_7.entry.js +222 -181
  247. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  248. package/dist/q2-tecton-elements/q2-calendar.entry.js +1 -1
  249. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  250. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +1 -1
  251. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  252. package/dist/q2-tecton-elements/q2-chart-area.entry.js +1 -1
  253. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +1 -1
  254. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +1 -1
  255. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +1 -1
  256. package/dist/q2-tecton-elements/q2-checkbox.entry.js +1 -1
  257. package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
  258. package/dist/q2-tecton-elements/q2-detail.entry.js +1 -1
  259. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +34 -34
  260. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -1
  261. package/dist/q2-tecton-elements/q2-dropdown.entry.js +86 -137
  262. package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
  263. package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
  264. package/dist/q2-tecton-elements/q2-file-picker.entry.js +137 -136
  265. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
  266. package/dist/q2-tecton-elements/q2-item_3.entry.js +3 -2
  267. package/dist/q2-tecton-elements/q2-item_3.entry.js.map +1 -1
  268. package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
  269. package/dist/q2-tecton-elements/q2-message.entry.js +1 -1
  270. package/dist/q2-tecton-elements/q2-month-picker.entry.js +1 -1
  271. package/dist/q2-tecton-elements/q2-optgroup.entry.js +1 -1
  272. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +902 -0
  273. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -0
  274. package/dist/q2-tecton-elements/q2-option.entry.js +31 -21
  275. package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -1
  276. package/dist/q2-tecton-elements/q2-pagination.entry.js +34 -34
  277. package/dist/q2-tecton-elements/q2-pill.entry.js +15 -15
  278. package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -1
  279. package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
  280. package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
  281. package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
  282. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
  283. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  284. package/dist/q2-tecton-elements/q2-select.entry.js +20 -18
  285. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  286. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
  287. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +37 -37
  288. package/dist/q2-tecton-elements/q2-stepper.entry.js +29 -29
  289. package/dist/q2-tecton-elements/q2-tag.entry.js +36 -34
  290. package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -1
  291. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  292. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  293. package/dist/q2-tecton-elements/q2-textarea.entry.js +1 -1
  294. package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
  295. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  296. package/dist/types/components/q2-action-group/q2-action-group.d.ts +19 -11
  297. package/dist/types/components/q2-btn/q2-btn.d.ts +8 -3
  298. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +18 -9
  299. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +14 -1
  300. package/dist/types/components/q2-link/q2-link.d.ts +8 -6
  301. package/dist/types/components/q2-loading/q2-loading.d.ts +2 -2
  302. package/dist/types/components/q2-option/q2-option.d.ts +10 -1
  303. package/dist/types/components/q2-option-list/q2-option-list.d.ts +9 -8
  304. package/dist/types/components/q2-pill/q2-pill.d.ts +1 -1
  305. package/dist/types/components.d.ts +91 -28
  306. package/dist/types/util.d.ts +1 -0
  307. package/dist/types/utils/helpers.d.ts +1 -1
  308. package/package.json +4 -3
  309. package/dist/cjs/action-sheet-d32c41ae.js.map +0 -1
  310. package/dist/cjs/click-elsewhere_2.cjs.entry.js +0 -406
  311. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +0 -1
  312. package/dist/cjs/index-07285783.js.map +0 -1
  313. package/dist/cjs/q2-option-list.cjs.entry.js.map +0 -1
  314. package/dist/esm/action-sheet-e64cb6f7.js.map +0 -1
  315. package/dist/esm/click-elsewhere_2.entry.js +0 -401
  316. package/dist/esm/click-elsewhere_2.entry.js.map +0 -1
  317. package/dist/esm/index-d18e2a20.js.map +0 -1
  318. package/dist/esm/q2-option-list.entry.js.map +0 -1
  319. package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js +0 -77
  320. package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js.map +0 -1
  321. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +0 -398
  322. package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +0 -1
  323. package/dist/q2-tecton-elements/index-d18e2a20.js.map +0 -1
  324. package/dist/q2-tecton-elements/q2-option-list.entry.js +0 -585
  325. package/dist/q2-tecton-elements/q2-option-list.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"q2-action-sheet-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-action-sheet/test/q2-action-sheet-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { ActionSheetListOption } from 'q2-tecton-common/lib/utility/action-sheet';\nimport { setup, dispatchEvent, getListOfStyleCompilationIssues } from '@/utils/helpers';\n\ndescribe('q2-action-sheet', () => {\n let page: E2EPage;\n let actionSheet: E2EElement;\n let dialog: E2EElement;\n let interior: E2EElement;\n let btnDone: E2EElement;\n let options: E2EElement[];\n let optionList: E2EElement;\n let message: E2EElement;\n let title: E2EElement;\n let btnClose: E2EElement;\n\n const createOption = (option: Record<string, string | boolean>): ActionSheetListOption => ({\n disabled: false,\n display: 'Red',\n hidden: false,\n multiline: false,\n value: 'red',\n innerHTML: 'Red',\n ...option,\n });\n const demoOptions = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Purple'].map(color =>\n createOption({ value: color.toLowerCase(), display: color, innerHTML: color })\n );\n\n const showDialog = async (page: E2EPage): Promise<void> => {\n const dialog = await page.find('q2-action-sheet >>> dialog');\n const actionSheet = await page.find('q2-action-sheet');\n expect(await dialog.getProperty('open')).toBe(false);\n await actionSheet.callMethod('show');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(dialog).toHaveClass('is-open');\n expect(await dialog.getProperty('open')).toBe(true);\n };\n\n const hideDialog = async (page: E2EPage): Promise<void> => {\n const dialog = await page.find('q2-action-sheet >>> dialog');\n const actionSheet = await page.find('q2-action-sheet');\n expect(await dialog.getProperty('open')).toBe(true);\n expect(dialog).toHaveClass('is-open');\n await actionSheet.callMethod('hide');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-action-sheet></q2-action-sheet>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-action-sheet')).toHaveLength(0);\n });\n\n describe('Events', () => {\n describe('ready', () => {\n it('fires when the component is ready', async () => {\n page = await setup({ html: `` });\n await page.setContent(`<q2-action-sheet></q2-action-sheet>`);\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.waitForEvent('ready');\n const dialog = await page.find('q2-action-sheet >>> dialog');\n expect(dialog).toBeTruthy();\n });\n });\n });\n\n describe('Props', () => {\n describe('title', () => {\n it('renders the title block', async () => {\n page = await setup({\n html: `<q2-action-sheet title=\"Test\"></q2-action-sheet>`,\n });\n\n title = await page.find('q2-action-sheet >>> .title');\n expect(title).toBeTruthy();\n expect(title.textContent).toContain('Test');\n });\n\n it('renders the title block when hide-close is provided', async () => {\n page = await setup({\n html: `<q2-action-sheet title=\"Test\" hide-close></q2-action-sheet>`,\n });\n\n title = await page.find('q2-action-sheet >>> .title');\n expect(title).toBeTruthy();\n expect(title.textContent).toContain('Test');\n });\n });\n describe('hideClose', () => {\n describe('when false (default)', () => {\n it('shows the close button', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n expect(btnClose).toBeTruthy();\n });\n });\n describe('when true', () => {\n it('hides the close button', async () => {\n page = await setup({\n html: `<q2-action-sheet hide-close></q2-action-sheet>`,\n });\n\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n expect(btnClose).toBeNull();\n });\n });\n });\n\n describe('data', () => {\n describe('when null (default)', () => {\n it('renders the <slot> slot', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n await showDialog(page);\n const slot = await page.find('q2-action-sheet >>> .content > slot');\n expect(slot).toBeTruthy();\n interior = await page.find('q2-action-sheet >>> .interior');\n expect(interior).toHaveClass('is-slot');\n });\n });\n\n describe('when list content is provided', () => {\n it('strips out harmful HTML from options', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions.map(option => ({\n ...option,\n multiline: true,\n innerHTML: `\n <div>${option.display}</div>\n <script>alert('Hello')</script>\n <style>html{display:none;}</style>\n <foo-input></foo-input>\n <q2-input></q2-input>\n `.trim(),\n })),\n });\n await page.waitForChanges();\n\n await showDialog(page);\n\n options = await page.findAll('q2-option');\n\n const firstOption = options[0];\n expect(firstOption.innerHTML).toEqual(\n '<div>Red</div> <q2-input type=\"text\" stencil-hydrated=\"\"></q2-input>'\n );\n });\n\n describe('when multiline options are provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions.map(option => ({\n ...option,\n multiline: true,\n innerHTML: `<div>${option.display}</div><div>Secondary text</div>`,\n })),\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders single-select list', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(false);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeNull();\n expect(options).toHaveLength(6);\n\n const firstOption = options[0];\n expect(await firstOption.getProperty('disabled')).toBeUndefined();\n expect(await firstOption.getProperty('hidden')).toBe(false);\n expect(await firstOption.getProperty('multiline')).toBeTruthy();\n expect(await firstOption.getProperty('value')).toEqual('red');\n expect(await firstOption.getProperty('display')).toEqual('Red');\n expect(firstOption.innerHTML).toEqual('<div>Red</div><div>Secondary text</div>');\n\n await firstOption.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'red',\n values: [{ display: 'Red', value: 'red' }],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n\n describe('when multiselect is false', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions,\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders single-select list', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(false);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeNull();\n expect(options).toHaveLength(6);\n\n const firstOption = options[0];\n expect(await firstOption.getProperty('disabled')).toBeUndefined();\n expect(await firstOption.getProperty('hidden')).toBe(false);\n expect(await firstOption.getProperty('multiline')).toBeUndefined();\n expect(await firstOption.getProperty('value')).toEqual('red');\n expect(await firstOption.getProperty('display')).toEqual('Red');\n expect(firstOption.innerHTML).toEqual('Red');\n\n await firstOption.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'red',\n values: [{ display: 'Red', value: 'red' }],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n\n describe('when multiselect is true', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: true,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions,\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders a multiselect list that emits the selected items on close', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(true);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeTruthy();\n expect(options).toHaveLength(6);\n\n await options[0].click();\n await page.waitForChanges();\n\n expect(options[0]).toHaveAttribute('selected');\n\n await options[3].click();\n await page.waitForChanges();\n\n expect(options[3]).toHaveAttribute('selected');\n\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n await btnDone.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'green',\n values: [\n { display: 'Red', value: 'red' },\n { display: 'Green', value: 'green' },\n ],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n\n it('renders a multiselect list that does not emit selections on cancel', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(true);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeTruthy();\n expect(options).toHaveLength(6);\n\n await options[0].click();\n await page.waitForChanges();\n\n expect(options[0]).toHaveAttribute('selected');\n\n await options[3].click();\n await page.waitForChanges();\n\n expect(options[3]).toHaveAttribute('selected');\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n await btnClose.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'cancel',\n value: '',\n values: [],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n });\n\n describe('when message content is provided', () => {\n it('renders a message', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n await actionSheet.setProperty('data', {\n appearance: 'message',\n title: 'My title',\n description: 'My description',\n type: 'warning',\n });\n await page.waitForChanges();\n\n await showDialog(page);\n message = await page.find('q2-action-sheet >>> q2-message');\n expect(message).toBeTruthy();\n\n const title = await page.find('q2-action-sheet >>> q2-message h2');\n const description = await page.find('q2-action-sheet >>> q2-message p');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-message');\n expect(message).toEqualAttribute('type', 'warning');\n expect(title).toEqualText('My title');\n expect(description).toEqualText('My description');\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n await btnClose.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'cancel',\n value: '',\n values: [],\n });\n });\n });\n });\n });\n\n describe('Methods', () => {\n describe('show', () => {\n it('should show the dialog', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n dialog = await page.find('q2-action-sheet >>> dialog');\n\n expect(await dialog.getProperty('open')).toBe(false);\n await showDialog(page);\n expect(await dialog.getProperty('open')).toBe(true);\n const minHeight = await page.$eval('q2-action-sheet', el =>\n el.shadowRoot\n .querySelector<HTMLDialogElement>('dialog')\n .style.getPropertyValue('--comp-action-sheet-computed-min-height')\n );\n const maxHeight = await page.$eval('q2-action-sheet', el =>\n el.shadowRoot\n .querySelector<HTMLDialogElement>('dialog')\n .style.getPropertyValue('--comp-action-sheet-computed-max-height')\n );\n expect(minHeight).toBe('120px');\n expect(maxHeight).toBe('450px');\n });\n });\n describe('hide', () => {\n it('should hide the dialog', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n dialog = await page.find('q2-action-sheet >>> dialog');\n\n expect(await dialog.getProperty('open')).toBe(false);\n await showDialog(page);\n expect(await dialog.getProperty('open')).toBe(true);\n await hideDialog(page);\n expect(await dialog.getProperty('open')).toBe(false);\n });\n });\n });\n\n it('closes the dialog when the close button is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n dialog = await page.find('q2-action-sheet >>> dialog');\n await btnClose.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('closes the dialog when the escape key is pressed', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n dialog = await page.find('q2-action-sheet >>> dialog');\n await btnClose.press('Escape');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('closes the dialog when the backdrop is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('does not close the dialog when the dialog content is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n const title = await page.find('q2-action-sheet >>> .title');\n await title.click();\n await page.waitForChanges();\n expect(dialog).not.toHaveClass('is-closing');\n });\n});\n"]}
1
+ {"version":3,"file":"q2-action-sheet-test.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-action-sheet/test/q2-action-sheet-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { ActionSheetListOption } from 'q2-tecton-common/lib/utility/action-sheet';\nimport { setup, dispatchEvent, getListOfStyleCompilationIssues } from '@/utils/helpers';\n\ndescribe('q2-action-sheet', () => {\n let page: E2EPage;\n let actionSheet: E2EElement;\n let dialog: E2EElement;\n let interior: E2EElement;\n let btnDone: E2EElement;\n let options: E2EElement[];\n let optionList: E2EElement;\n let message: E2EElement;\n let title: E2EElement;\n let btnClose: E2EElement;\n\n const createOption = (option: Record<string, string | boolean>): ActionSheetListOption => ({\n disabled: false,\n display: 'Red',\n hidden: false,\n multiline: false,\n separator: false,\n value: 'red',\n innerHTML: 'Red',\n ...option,\n });\n const demoOptions = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Purple'].map(color =>\n createOption({ value: color.toLowerCase(), display: color, innerHTML: color })\n );\n\n const showDialog = async (page: E2EPage): Promise<void> => {\n const dialog = await page.find('q2-action-sheet >>> dialog');\n const actionSheet = await page.find('q2-action-sheet');\n expect(await dialog.getProperty('open')).toBe(false);\n await actionSheet.callMethod('show');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(dialog).toHaveClass('is-open');\n expect(await dialog.getProperty('open')).toBe(true);\n };\n\n const hideDialog = async (page: E2EPage): Promise<void> => {\n const dialog = await page.find('q2-action-sheet >>> dialog');\n const actionSheet = await page.find('q2-action-sheet');\n expect(await dialog.getProperty('open')).toBe(true);\n expect(dialog).toHaveClass('is-open');\n await actionSheet.callMethod('hide');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-action-sheet></q2-action-sheet>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-action-sheet')).toHaveLength(0);\n });\n\n describe('Events', () => {\n describe('ready', () => {\n it('fires when the component is ready', async () => {\n page = await setup({ html: `` });\n await page.setContent(`<q2-action-sheet></q2-action-sheet>`);\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.waitForEvent('ready');\n const dialog = await page.find('q2-action-sheet >>> dialog');\n expect(dialog).toBeTruthy();\n });\n });\n });\n\n describe('Props', () => {\n describe('title', () => {\n it('renders the title block', async () => {\n page = await setup({\n html: `<q2-action-sheet title=\"Test\"></q2-action-sheet>`,\n });\n\n title = await page.find('q2-action-sheet >>> .title');\n expect(title).toBeTruthy();\n expect(title.textContent).toContain('Test');\n });\n\n it('renders the title block when hide-close is provided', async () => {\n page = await setup({\n html: `<q2-action-sheet title=\"Test\" hide-close></q2-action-sheet>`,\n });\n\n title = await page.find('q2-action-sheet >>> .title');\n expect(title).toBeTruthy();\n expect(title.textContent).toContain('Test');\n });\n });\n describe('hideClose', () => {\n describe('when false (default)', () => {\n it('shows the close button', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n expect(btnClose).toBeTruthy();\n });\n });\n describe('when true', () => {\n it('hides the close button', async () => {\n page = await setup({\n html: `<q2-action-sheet hide-close></q2-action-sheet>`,\n });\n\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n expect(btnClose).toBeNull();\n });\n });\n });\n\n describe('data', () => {\n describe('when null (default)', () => {\n it('renders the <slot> slot', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n await showDialog(page);\n const slot = await page.find('q2-action-sheet >>> .content > slot');\n expect(slot).toBeTruthy();\n interior = await page.find('q2-action-sheet >>> .interior');\n expect(interior).toHaveClass('is-slot');\n });\n });\n\n describe('when list content is provided', () => {\n it('strips out harmful HTML from options', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions.map(option => ({\n ...option,\n multiline: true,\n innerHTML: `\n <div>${option.display}</div>\n <script>alert('Hello')</script>\n <style>html{display:none;}</style>\n <foo-input></foo-input>\n <q2-input></q2-input>\n `.trim(),\n })),\n });\n await page.waitForChanges();\n\n await showDialog(page);\n\n options = await page.findAll('q2-option');\n\n const firstOption = options[0];\n expect(firstOption.innerHTML).toEqual(\n '<div>Red</div> <q2-input type=\"text\" stencil-hydrated=\"\"></q2-input>'\n );\n });\n\n describe('when multiline options are provided', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions.map(option => ({\n ...option,\n multiline: true,\n innerHTML: `<div>${option.display}</div><div>Secondary text</div>`,\n })),\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders single-select list', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(false);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeNull();\n expect(options).toHaveLength(6);\n\n const firstOption = options[0];\n expect(await firstOption.getProperty('disabled')).toBeUndefined();\n expect(await firstOption.getProperty('hidden')).toBe(false);\n expect(await firstOption.getProperty('multiline')).toBeTruthy();\n expect(await firstOption.getProperty('value')).toEqual('red');\n expect(await firstOption.getProperty('display')).toEqual('Red');\n expect(firstOption.innerHTML).toEqual('<div>Red</div><div>Secondary text</div>');\n\n await firstOption.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'red',\n values: [{ display: 'Red', value: 'red' }],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n\n describe('when multiselect is false', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: false,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions,\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders single-select list', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(false);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeNull();\n expect(options).toHaveLength(6);\n\n const firstOption = options[0];\n expect(await firstOption.getProperty('disabled')).toBeUndefined();\n expect(await firstOption.getProperty('hidden')).toBe(false);\n expect(await firstOption.getProperty('multiline')).toBeUndefined();\n expect(await firstOption.getProperty('value')).toEqual('red');\n expect(await firstOption.getProperty('display')).toEqual('Red');\n expect(firstOption.innerHTML).toEqual('Red');\n\n await firstOption.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'red',\n values: [{ display: 'Red', value: 'red' }],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n\n describe('when multiselect is true', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n await actionSheet.setProperty('data', {\n appearance: 'list',\n title: 'Favorite color',\n description: 'Select your favorite color',\n listProps: {\n multiple: true,\n selectedOptions: [],\n noSelect: false,\n },\n options: demoOptions,\n });\n await page.waitForChanges();\n\n await showDialog(page);\n });\n\n it('renders a multiselect list that emits the selected items on close', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(true);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeTruthy();\n expect(options).toHaveLength(6);\n\n await options[0].click();\n await page.waitForChanges();\n\n expect(options[0]).toHaveAttribute('selected');\n\n await options[3].click();\n await page.waitForChanges();\n\n expect(options[3]).toHaveAttribute('selected');\n\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n await btnDone.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'confirm',\n value: 'green',\n values: [\n { display: 'Red', value: 'red' },\n { display: 'Green', value: 'green' },\n ],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n\n it('renders a multiselect list that does not emit selections on cancel', async () => {\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n optionList = await page.find('q2-action-sheet >>> q2-option-list');\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnDone = await page.find('q2-action-sheet >>> [test-id=btnDone]');\n options = await page.findAll('q2-option');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-list');\n expect(optionList).toBeTruthy();\n expect(await optionList.getProperty('multiple')).toBe(true);\n expect(await optionList.getProperty('noSelect')).toBe(false);\n expect(await optionList.getProperty('selectedOptions')).toEqual([]);\n expect(btnDone).toBeTruthy();\n expect(options).toHaveLength(6);\n\n await options[0].click();\n await page.waitForChanges();\n\n expect(options[0]).toHaveAttribute('selected');\n\n await options[3].click();\n await page.waitForChanges();\n\n expect(options[3]).toHaveAttribute('selected');\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n await btnClose.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'cancel',\n value: '',\n values: [],\n });\n expect(await actionSheet.getProperty('data')).toBeUndefined();\n });\n });\n });\n\n describe('when message content is provided', () => {\n it('renders a message', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n\n actionSheet = await page.find('q2-action-sheet');\n const closeSpy = await actionSheet.spyOnEvent('close');\n await actionSheet.setProperty('data', {\n appearance: 'message',\n title: 'My title',\n description: 'My description',\n type: 'warning',\n });\n await page.waitForChanges();\n\n await showDialog(page);\n message = await page.find('q2-action-sheet >>> q2-message');\n expect(message).toBeTruthy();\n\n const title = await page.find('q2-action-sheet >>> q2-message h2');\n const description = await page.find('q2-action-sheet >>> q2-message p');\n interior = await page.find('q2-action-sheet >>> .interior');\n\n expect(interior).toHaveClass('is-message');\n expect(message).toEqualAttribute('type', 'warning');\n expect(title).toEqualText('My title');\n expect(description).toEqualText('My description');\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n await btnClose.click();\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n expect(closeSpy).toHaveReceivedEventDetail({\n type: 'cancel',\n value: '',\n values: [],\n });\n });\n });\n });\n });\n\n describe('Methods', () => {\n describe('show', () => {\n it('should show the dialog', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n dialog = await page.find('q2-action-sheet >>> dialog');\n\n expect(await dialog.getProperty('open')).toBe(false);\n await showDialog(page);\n expect(await dialog.getProperty('open')).toBe(true);\n const minHeight = await page.$eval('q2-action-sheet', el =>\n el.shadowRoot\n .querySelector<HTMLDialogElement>('dialog')\n .style.getPropertyValue('--comp-action-sheet-computed-min-height')\n );\n const maxHeight = await page.$eval('q2-action-sheet', el =>\n el.shadowRoot\n .querySelector<HTMLDialogElement>('dialog')\n .style.getPropertyValue('--comp-action-sheet-computed-max-height')\n );\n expect(minHeight).toBe('120px');\n expect(maxHeight).toBe('450px');\n });\n });\n describe('hide', () => {\n it('should hide the dialog', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n dialog = await page.find('q2-action-sheet >>> dialog');\n\n expect(await dialog.getProperty('open')).toBe(false);\n await showDialog(page);\n expect(await dialog.getProperty('open')).toBe(true);\n await hideDialog(page);\n expect(await dialog.getProperty('open')).toBe(false);\n });\n });\n });\n\n it('closes the dialog when the close button is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n dialog = await page.find('q2-action-sheet >>> dialog');\n await btnClose.click();\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('closes the dialog when the escape key is pressed', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n btnClose = await page.find('q2-action-sheet >>> [test-id=btnClose]');\n dialog = await page.find('q2-action-sheet >>> dialog');\n await btnClose.press('Escape');\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('closes the dialog when the backdrop is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await dispatchEvent(page, ['q2-action-sheet', 'dialog'], 'transitionend');\n await page.waitForChanges();\n expect(await dialog.getProperty('open')).toBe(false);\n });\n\n it('does not close the dialog when the dialog content is clicked', async () => {\n page = await setup({\n html: `<q2-action-sheet></q2-action-sheet>`,\n });\n await showDialog(page);\n\n dialog = await page.find('q2-action-sheet >>> dialog');\n const title = await page.find('q2-action-sheet >>> .title');\n await title.click();\n await page.waitForChanges();\n expect(dialog).not.toHaveClass('is-closing');\n });\n});\n"]}
@@ -67,10 +67,12 @@ button {
67
67
 
68
68
  .avatar-img,
69
69
  .avatar-img-default {
70
+ display: var(--tct-avatar-display, inline);
70
71
  object-fit: cover;
71
72
  height: var(--tct-avatar-img-height, var(--tct-avatar-height, 44px));
72
73
  width: var(--tct-avatar-img-width, var(--tct-avatar-width, 44px));
73
74
  border-radius: var(--tct-avatar-img-border-radius, var(--tct-avatar-img-br, var(--tct-avatar-border-radius, 50%)));
75
+ border: var(--tct-avatar-border, none);
74
76
  }
75
77
 
76
78
  .avatar-img-default {
@@ -78,10 +80,12 @@ button {
78
80
  }
79
81
 
80
82
  .avatar-initials {
83
+ display: var(--tct-avatar-display, inline);
81
84
  height: var(--tct-avatar-height, 44px);
82
85
  width: var(--tct-avatar-width, 44px);
83
86
  background: var(--tct-avatar-background, var(--tct-avatar-bg, var(--t-gray-8, #9e9e9e)));
84
87
  border-radius: var(--tct-avatar-br, 50%);
88
+ border: var(--tct-avatar-border, none);
85
89
  }
86
90
 
87
91
  .size-1 {
@@ -110,6 +114,7 @@ text {
110
114
  height: var(--tct-avatar-fallback-height, var(--tct-avatar-height, 44px));
111
115
  width: var(--tct-avatar-fallback-width, var(--tct-avatar-width, 44px));
112
116
  border-radius: var(--tct-avatar-fallback-border-radius, var(--tct-avatar-fallback-br, var(--tct-avatar-img-border-radius, var(--tct-avatar-img-br, 50%))));
117
+ border: var(--tct-avatar-border, none);
113
118
  background: var(--tct-avatar-fallback-background, var(--tct-avatar-fallback-bg, var(--tct-avatar-background, var(--tct-avatar-bg, var(--t-gray-8, #9e9e9e)))));
114
119
  display: inline-flex;
115
120
  align-items: center;
@@ -731,12 +731,41 @@ button :host(:not([color]):not([intent])):hover, button :host(:not([color]):not(
731
731
  background-color: var(--tct-btn-badge-active-background, var(--tct-btn-badge-active-bg, var(--t-btn-badge-active-bg, var(--comp-btn-primary-background))));
732
732
  color: var(--tct-btn-badge-active-font-color, var(--t-btn-badge-active-font-color, var(--comp-btn-primary-font-color)));
733
733
  }
734
+ button.intent-coin {
735
+ --tct-avatar-background: var(--tct-btn-coin-background, var(--t-primary-l5, #B4A0D3));
736
+ --tct-avatar-height: var(--tct-btn-coin-height, 44px);
737
+ --tct-avatar-width: var(--tct-btn-coin-width, 44px);
738
+ --tct-avatar-fallback-background: var(--tct-btn-coin-background, var(--t-primary-l5, #B4A0D3));
739
+ --tct-icon-stroke-primary: var(--tct-btn-coin-icon-stroke-primary, var(--t-text, #4D4D4D));
740
+ --tct-avatar-text-color: var(--tct-btn-coin-avatar-text-color, var(--t-text, #4D4D4D));
741
+ --tct-icon-stroke-width: var(--tct-btn-coin-icon-stroke-width, 1px);
742
+ --tct-btn-padding: 0;
743
+ --tct-btn-border-radius: 50%;
744
+ --tct-avatar-border: var(--tct-btn-coin-border, 0);
745
+ width: auto;
746
+ }
747
+ button.intent-coin:focus {
748
+ --const-double-focus-ring: 0;
749
+ box-shadow: 0;
750
+ }
751
+ button.intent-coin:focus-visible {
752
+ --const-double-focus-ring: 0 0 0 2px #ffffff, 0 0 0 4px var(--tct-btn-coin-focus-ring, var(--t-primary, #6A4A9E));
753
+ }
754
+ button.intent-coin:hover:not([disabled]) {
755
+ --const-double-focus-ring: 0 0 0 2px #ffffff, 0 0 0 4px var(--tct-btn-coin-focus-ring, var(--t-primary, #6A4A9E));
756
+ --tct-avatar-background: var(--tct-btn-coin-background, var(--t-primary-l3, #957ac1));
757
+ --tct-avatar-fallback-background: var(--tct-btn-coin-background, var(--t-primary-l3, #957ac1));
758
+ --tct-icon-stroke-primary: var(--tct-btn-coin-icon-stroke-primary, var(--t-base, #FFFFFF));
759
+ --tct-avatar-text-color: var(--tct-btn-coin-avatar-text-color, var(--t-base, #FFFFFF));
760
+ box-shadow: var(--const-double-focus-ring);
761
+ }
734
762
 
735
763
  div {
736
764
  display: flex;
737
765
  align-items: center;
738
766
  justify-content: center;
739
767
  gap: var(--app-scale-1x, 5px);
768
+ pointer-events: none;
740
769
  }
741
770
  :host([loading]) .icon-right div {
742
771
  flex-direction: row-reverse;
@@ -760,4 +789,49 @@ q2-loading {
760
789
  :host([block]) button.icon-only {
761
790
  display: block;
762
791
  width: 100%;
792
+ }
793
+
794
+ .coin-label {
795
+ color: var(--tct-btn-coin-label-color, var(--t-text, #4D4D4D));
796
+ font-size: var(--tct-btn-coin-label-font-size, var(--app-font-size, 14px));
797
+ max-width: 100px;
798
+ text-align: center;
799
+ text-overflow: ellipsis;
800
+ overflow: hidden;
801
+ display: -webkit-box;
802
+ -webkit-line-clamp: 2;
803
+ -webkit-box-orient: vertical;
804
+ }
805
+
806
+ .coin-label.disabled {
807
+ color: var(--tct-btn-coin-label-disabled-color, var(--t-textA, #767676));
808
+ max-width: 100px;
809
+ }
810
+
811
+ .coin-wrapper {
812
+ --tct-avatar-display: block;
813
+ display: flex;
814
+ align-items: center;
815
+ flex-direction: column;
816
+ width: var(--tct-btn-coin-container-width, 95px);
817
+ }
818
+ .coin-wrapper ::slotted(:not(q2-avatar, [slot=coin-label])) {
819
+ display: none;
820
+ }
821
+ .coin-wrapper .coin-label {
822
+ color: var(--tct-btn-coin-label-color, var(--t-text, #4D4D4D));
823
+ font-size: var(--tct-btn-coin-label-font-size, var(--app-font-size, 14px));
824
+ margin-top: var(--tct-btn-coin-gap, var(--app-scale-2x, 10px));
825
+ max-width: 100px;
826
+ text-align: center;
827
+ display: -webkit-box;
828
+ -webkit-line-clamp: 2;
829
+ line-clamp: 2;
830
+ -webkit-box-orient: vertical;
831
+ overflow: hidden;
832
+ text-overflow: ellipsis;
833
+ }
834
+ .coin-wrapper .coin-label.disabled {
835
+ color: var(--tct-btn-coin-label-disabled-color, var(--t-textA, #767676));
836
+ max-width: 100px;
763
837
  }
@@ -34,20 +34,6 @@ export class Q2Btn {
34
34
  this.handleSlotChange = () => {
35
35
  this.handleIcons();
36
36
  };
37
- // #endregion
38
- // #region Render Methods
39
- this.renderButton = () => {
40
- const { ariaExpanded, ariaHasPopup, ariaSelected, ariaPressed, description, disabled, type, tabindex } = this.buttonAttributes;
41
- const { iconPosition, loading, badge, label, hideLabel } = this;
42
- const renderLoadingSpinner = iconPosition || loading;
43
- const isLoadingSpinnerInline = !iconPosition || badge;
44
- return (h(Fragment, null, h("button", { ref: el => (this.primaryBtn = el !== null && el !== void 0 ? el : this.primaryBtn), "aria-expanded": ariaExpanded, "aria-haspopup": ariaHasPopup, "aria-label": hideLabel && loc(label), "aria-selected": ariaSelected, "aria-pressed": ariaPressed, disabled: disabled, type: type, tabindex: tabindex, "test-id": "q2BtnInnerButton", class: iconPosition ? `icon-${iconPosition}` : '', "aria-describedby": !!description ? 'hidden-description' : undefined, role: this._role || undefined }, h("div", null, renderLoadingSpinner && (h("q2-loading", { hidden: !loading, modifiers: isLoadingSpinnerInline ? 'inline' : undefined })), !hideLabel && label ? loc(label) : h("slot", { onSlotchange: this.handleSlotChange }))), !!description && (h("div", { id: "hidden-description", "aria-hidden": "true", class: "sr" }, description))));
45
- };
46
- this.render = () => {
47
- return this.size === 'small' ? (
48
- // wrap only for small sized
49
- h("div", { class: "btn-height-wrapper", ref: el => (this.primaryBtnWrapper = el !== null && el !== void 0 ? el : this.primaryBtnWrapper), tabIndex: -1 }, this.renderButton())) : (this.renderButton());
50
- };
51
37
  this.iconPosition = undefined;
52
38
  this._role = undefined;
53
39
  this.active = undefined;
@@ -126,6 +112,54 @@ export class Q2Btn {
126
112
  tabindex: this.tabIndex || undefined,
127
113
  };
128
114
  }
115
+ get buttonClasses() {
116
+ const classes = [];
117
+ if (this.iconPosition) {
118
+ classes.push(`icon-${this.iconPosition}`);
119
+ }
120
+ if (this.intent === 'coin') {
121
+ classes.push('intent-coin');
122
+ }
123
+ return classes.join(' ');
124
+ }
125
+ get coinLabelClasses() {
126
+ const classes = ['coin-label'];
127
+ if (this.disabled) {
128
+ classes.push('disabled');
129
+ }
130
+ return classes.join(' ');
131
+ }
132
+ // #endregion
133
+ // #region Render Methods
134
+ renderButton() {
135
+ const { ariaExpanded, ariaHasPopup, ariaSelected, ariaPressed, description, disabled, type, tabindex } = this.buttonAttributes;
136
+ const { iconPosition, loading, badge, label, hideLabel } = this;
137
+ const renderLoadingSpinner = iconPosition || loading;
138
+ const isLoadingSpinnerInline = !iconPosition || badge;
139
+ return (h(Fragment, null, h("button", { ref: el => (this.primaryBtn = el !== null && el !== void 0 ? el : this.primaryBtn), "aria-expanded": ariaExpanded, "aria-haspopup": ariaHasPopup, "aria-label": hideLabel && loc(label), "aria-selected": ariaSelected, "aria-pressed": ariaPressed, disabled: disabled, type: type, tabindex: tabindex, "test-id": "q2BtnInnerButton", class: this.buttonClasses, "aria-describedby": !!description ? 'hidden-description' : undefined, "aria-labelledby": this.intent === 'coin' && !hideLabel ? 'coin-label' : undefined, role: this._role || undefined }, h("div", null, renderLoadingSpinner && (h("q2-loading", { hidden: !loading, modifiers: isLoadingSpinnerInline ? 'inline' : undefined })), this.renderDefaultLabel(), this.renderDefaultCoinSlot())), this.renderCoinLabel(), !!description && (h("div", { id: "hidden-description", "aria-hidden": "true", class: "sr" }, description))));
140
+ }
141
+ renderCoinLabel() {
142
+ if (this.intent !== 'coin' || this.hideLabel)
143
+ return;
144
+ return (h("div", { id: "coin-label", class: this.coinLabelClasses }, this.label ? (loc(this.label)) : (h("slot", { name: "coin-label", onSlotchange: this.handleSlotChange }))));
145
+ }
146
+ renderDefaultCoinSlot() {
147
+ if (this.intent !== 'coin')
148
+ return;
149
+ return h("slot", { onSlotchange: this.handleSlotChange });
150
+ }
151
+ renderDefaultLabel() {
152
+ if (this.intent === 'coin')
153
+ return;
154
+ if (!this.hideLabel && this.label)
155
+ return loc(this.label);
156
+ return h("slot", { onSlotchange: this.handleSlotChange });
157
+ }
158
+ render() {
159
+ return this.size === 'small' || this.intent === 'coin' ? (
160
+ // wrap only for small sized and coin intent
161
+ h("div", { class: this.size === 'small' ? 'btn-height-wrapper' : 'coin-wrapper', ref: el => (this.primaryBtnWrapper = el !== null && el !== void 0 ? el : this.primaryBtnWrapper), tabIndex: this.size === 'small' ? -1 : undefined }, this.renderButton())) : (this.renderButton());
162
+ }
129
163
  static get is() { return "q2-btn"; }
130
164
  static get encapsulation() { return "shadow"; }
131
165
  static get originalStyleUrls() {
@@ -420,8 +454,8 @@ export class Q2Btn {
420
454
  "type": "string",
421
455
  "mutable": true,
422
456
  "complexType": {
423
- "original": "| 'workflow-primary'\n | 'workflow-secondary'\n | 'workflow-destroy'\n | 'workflow-escape'\n | 'neutral'\n | 'neutral-text'",
424
- "resolved": "\"neutral\" | \"neutral-text\" | \"workflow-destroy\" | \"workflow-escape\" | \"workflow-primary\" | \"workflow-secondary\"",
457
+ "original": "| 'coin'\n | 'neutral-text'\n | 'neutral'\n | 'workflow-destroy'\n | 'workflow-escape'\n | 'workflow-primary'\n | 'workflow-secondary'",
458
+ "resolved": "\"coin\" | \"neutral\" | \"neutral-text\" | \"workflow-destroy\" | \"workflow-escape\" | \"workflow-primary\" | \"workflow-secondary\"",
425
459
  "references": {}
426
460
  },
427
461
  "required": false,
@@ -1 +1 @@
1
- {"version":3,"file":"q2-btn.js","sourceRoot":"","sources":["../../../src/components/q2-btn/q2-btn.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, Prop, h, ComponentInterface, Watch, Listen, Element, Fragment } from '@stencil/core';\nimport {\n getAriaValueFromProp,\n handleAriaLabel,\n handleColor,\n isEventFromElement,\n loc,\n overrideFocus,\n handleDeprecationWarning,\n} from 'src/utils';\n\n@Component({ tag: 'q2-btn', shadow: true, styleUrl: 'q2-btn.scss' })\nexport class Q2Btn implements ComponentInterface {\n // #region Own Properties\n\n primaryBtn: HTMLButtonElement;\n primaryBtnWrapper: HTMLElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n iconPosition: 'left' | 'right' | 'only';\n\n // #endregion\n // #region Public Property API\n\n /**\n * @private\n * Role attribute for better semantic accessibility support\n */\n @Prop({ reflect: true })\n _role: string;\n\n /**\n * Displays the component in an active state.\n *\n * @info\n * Only intended for use with the `badge` property.\n * @deprecated\n */\n @Prop({ reflect: true })\n active: boolean;\n\n @Prop()\n ariaControls: string;\n\n @Prop()\n ariaExpanded: string;\n\n @Prop()\n ariaHasPopup: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n @Prop()\n ariaPressed: string;\n\n @Prop()\n ariaSelected: string;\n\n /**\n * Displays the component in a smaller, badge style.\n * @deprecated\n */\n @Prop({ reflect: true })\n badge: boolean;\n\n /** The component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n color: string; // deprecated but need it to use utils/handleColor\n\n @Prop()\n description: string;\n\n /** Marks the component as disabled and displays a `not-allowed` cursor on hover. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n fab: boolean;\n\n /**\n * Hides the `label`, and assigns its value to the `aria-label` attribute on the `<button>` element.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Indicates the role of the component in the workflow, which will apply appropriate styling to the component.\n */\n @Prop({ reflect: true, mutable: true })\n intent:\n | 'workflow-primary'\n | 'workflow-secondary'\n | 'workflow-destroy'\n | 'workflow-escape'\n | 'neutral'\n | 'neutral-text';\n\n /**\n * Defines the text content of the button if it is not provided in the `<slot>` of the element.\n * Also used for the `aria-label` of the `<button>` element when only displaying an icon.\n *\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** Displays the button with a loading spinner to indicate something is happening in the background and the user should not click again. */\n @Prop({ reflect: true })\n loading: boolean;\n\n /**\n * Defines the size of q2-btn, it renders as default size if not provided.\n */\n @Prop({ reflect: true })\n size: 'small' | 'medium' | 'large';\n\n @Prop()\n tabIndex: number;\n\n /** The default behavior of the button. */\n @Prop({ reflect: true })\n type: string = 'button';\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.handleIcons();\n handleAriaLabel(this);\n handleColor(this);\n }\n\n componentDidLoad(): void {\n this.handleButtonSize();\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.loading || this.disabled) {\n event.stopImmediatePropagation();\n }\n this.primaryBtn.focus();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.primaryBtn.focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('size')\n sizeObserver() {\n this.handleButtonSize();\n }\n\n // #endregion\n // #region Local Methods\n\n get buttonAttributes() {\n return {\n ariaExpanded: getAriaValueFromProp(this.ariaExpanded, ['true', 'false']),\n ariaHasPopup: getAriaValueFromProp(this.ariaHasPopup, [\n 'true',\n 'false',\n 'menu',\n 'listbox',\n 'tree',\n 'grid',\n 'dialog',\n ]),\n ariaLabel: this.label && this.hideLabel ? loc(this.label) : undefined,\n ariaSelected: getAriaValueFromProp(this.ariaSelected, ['true', 'false']),\n ariaPressed: getAriaValueFromProp(this.ariaPressed, ['true', 'false']),\n description: this.description !== undefined ? this.description : undefined,\n disabled: this.disabled || false,\n type: this.type,\n tabindex: this.tabIndex || undefined,\n };\n }\n\n handleButtonSize = () => {\n if (Number(this.size) <= 4) {\n handleDeprecationWarning(this, 'size', 'prop');\n }\n };\n\n handleIcons = () => {\n // Only allow one icon in the button\n const icon = Array.from(this.hostElement.querySelectorAll(':scope > q2-icon')).reduce((acc, element) => {\n if (acc) element.remove();\n else acc = element;\n return acc;\n }, null);\n\n const hasIcon = !!icon;\n const hasLoc = !!this.hostElement.querySelector('q2-loc');\n const hasText = !!this.hostElement.textContent.trim();\n const hasIconLeft = (hasLoc || hasText) && hasIcon && this.hostElement.firstElementChild === icon;\n const hasIconRight = (hasLoc || hasText) && hasIcon && this.hostElement.lastElementChild === icon;\n const hasIconOnly = !hasIconLeft && !hasIconRight && hasIcon;\n\n let iconPosition;\n if (hasIconOnly) iconPosition = 'only';\n else if (hasIconLeft) iconPosition = 'left';\n else if (hasIconRight) iconPosition = 'right';\n this.iconPosition = iconPosition;\n };\n\n handleSlotChange = () => {\n this.handleIcons();\n };\n\n // #endregion\n // #region Render Methods\n\n renderButton = () => {\n const { ariaExpanded, ariaHasPopup, ariaSelected, ariaPressed, description, disabled, type, tabindex } =\n this.buttonAttributes;\n const { iconPosition, loading, badge, label, hideLabel } = this;\n const renderLoadingSpinner = iconPosition || loading;\n const isLoadingSpinnerInline = !iconPosition || badge;\n return (\n <Fragment>\n <button\n ref={el => (this.primaryBtn = el ?? this.primaryBtn)}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-label={hideLabel && loc(label)}\n aria-selected={ariaSelected}\n aria-pressed={ariaPressed}\n disabled={disabled}\n type={type}\n tabindex={tabindex}\n test-id=\"q2BtnInnerButton\"\n class={iconPosition ? `icon-${iconPosition}` : ''}\n aria-describedby={!!description ? 'hidden-description' : undefined}\n role={this._role || undefined}\n >\n <div>\n {renderLoadingSpinner && (\n <q2-loading\n hidden={!loading}\n modifiers={isLoadingSpinnerInline ? 'inline' : undefined}\n />\n )}\n {!hideLabel && label ? loc(label) : <slot onSlotchange={this.handleSlotChange} />}\n </div>\n </button>\n {!!description && (\n <div\n id=\"hidden-description\"\n aria-hidden=\"true\"\n class=\"sr\"\n >\n {description}\n </div>\n )}\n </Fragment>\n );\n };\n\n render = () => {\n return this.size === 'small' ? (\n // wrap only for small sized\n <div\n class=\"btn-height-wrapper\"\n ref={el => (this.primaryBtnWrapper = el ?? this.primaryBtnWrapper)}\n tabIndex={-1}\n >\n {this.renderButton()}\n </div>\n ) : (\n this.renderButton()\n );\n };\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-btn.js","sourceRoot":"","sources":["../../../src/components/q2-btn/q2-btn.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, Prop, h, ComponentInterface, Watch, Listen, Element, Fragment } from '@stencil/core';\nimport {\n getAriaValueFromProp,\n handleAriaLabel,\n handleColor,\n isEventFromElement,\n loc,\n overrideFocus,\n handleDeprecationWarning,\n} from 'src/utils';\n\n@Component({ tag: 'q2-btn', shadow: true, styleUrl: 'q2-btn.scss' })\nexport class Q2Btn implements ComponentInterface {\n // #region Own Properties\n\n primaryBtn: HTMLButtonElement;\n primaryBtnWrapper: HTMLElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n iconPosition: 'left' | 'right' | 'only';\n\n // #endregion\n // #region Public Property API\n\n /**\n * @private\n * Role attribute for better semantic accessibility support\n */\n @Prop({ reflect: true })\n _role: string;\n\n /**\n * Displays the component in an active state.\n *\n * @info\n * Only intended for use with the `badge` property.\n * @deprecated\n */\n @Prop({ reflect: true })\n active: boolean;\n\n @Prop()\n ariaControls: string;\n\n @Prop()\n ariaExpanded: string;\n\n @Prop()\n ariaHasPopup: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n @Prop()\n ariaPressed: string;\n\n @Prop()\n ariaSelected: string;\n\n /**\n * Displays the component in a smaller, badge style.\n * @deprecated\n */\n @Prop({ reflect: true })\n badge: boolean;\n\n /** The component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n color: string; // deprecated but need it to use utils/handleColor\n\n @Prop()\n description: string;\n\n /** Marks the component as disabled and displays a `not-allowed` cursor on hover. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n fab: boolean;\n\n /**\n * Hides the `label`, and assigns its value to the `aria-label` attribute on the `<button>` element.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Indicates the role of the component in the workflow, which will apply appropriate styling to the component.\n */\n @Prop({ reflect: true, mutable: true })\n intent:\n | 'coin'\n | 'neutral-text'\n | 'neutral'\n | 'workflow-destroy'\n | 'workflow-escape'\n | 'workflow-primary'\n | 'workflow-secondary';\n\n /**\n * Defines the text content of the button if it is not provided in the `<slot>` of the element.\n * Also used for the `aria-label` of the `<button>` element when only displaying an icon.\n *\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** Displays the button with a loading spinner to indicate something is happening in the background and the user should not click again. */\n @Prop({ reflect: true })\n loading: boolean;\n\n /**\n * Defines the size of q2-btn, it renders as default size if not provided.\n */\n @Prop({ reflect: true })\n size: 'small' | 'medium' | 'large';\n\n @Prop()\n tabIndex: number;\n\n /** The default behavior of the button. */\n @Prop({ reflect: true })\n type: string = 'button';\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.handleIcons();\n handleAriaLabel(this);\n handleColor(this);\n }\n\n componentDidLoad(): void {\n this.handleButtonSize();\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.loading || this.disabled) {\n event.stopImmediatePropagation();\n }\n this.primaryBtn.focus();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.primaryBtn.focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('size')\n sizeObserver() {\n this.handleButtonSize();\n }\n\n // #endregion\n // #region Local Methods\n\n get buttonAttributes() {\n return {\n ariaExpanded: getAriaValueFromProp(this.ariaExpanded, ['true', 'false']),\n ariaHasPopup: getAriaValueFromProp(this.ariaHasPopup, [\n 'true',\n 'false',\n 'menu',\n 'listbox',\n 'tree',\n 'grid',\n 'dialog',\n ]),\n ariaLabel: this.label && this.hideLabel ? loc(this.label) : undefined,\n ariaSelected: getAriaValueFromProp(this.ariaSelected, ['true', 'false']),\n ariaPressed: getAriaValueFromProp(this.ariaPressed, ['true', 'false']),\n description: this.description !== undefined ? this.description : undefined,\n disabled: this.disabled || false,\n type: this.type,\n tabindex: this.tabIndex || undefined,\n };\n }\n\n get buttonClasses() {\n const classes = [];\n if (this.iconPosition) {\n classes.push(`icon-${this.iconPosition}`);\n }\n if (this.intent === 'coin') {\n classes.push('intent-coin');\n }\n\n return classes.join(' ');\n }\n\n get coinLabelClasses() {\n const classes = ['coin-label'];\n if (this.disabled) {\n classes.push('disabled');\n }\n\n return classes.join(' ');\n }\n\n handleButtonSize = () => {\n if (Number(this.size) <= 4) {\n handleDeprecationWarning(this, 'size', 'prop');\n }\n };\n\n handleIcons = () => {\n // Only allow one icon in the button\n const icon = Array.from(this.hostElement.querySelectorAll(':scope > q2-icon')).reduce((acc, element) => {\n if (acc) element.remove();\n else acc = element;\n return acc;\n }, null);\n\n const hasIcon = !!icon;\n const hasLoc = !!this.hostElement.querySelector('q2-loc');\n const hasText = !!this.hostElement.textContent.trim();\n const hasIconLeft = (hasLoc || hasText) && hasIcon && this.hostElement.firstElementChild === icon;\n const hasIconRight = (hasLoc || hasText) && hasIcon && this.hostElement.lastElementChild === icon;\n const hasIconOnly = !hasIconLeft && !hasIconRight && hasIcon;\n\n let iconPosition;\n if (hasIconOnly) iconPosition = 'only';\n else if (hasIconLeft) iconPosition = 'left';\n else if (hasIconRight) iconPosition = 'right';\n this.iconPosition = iconPosition;\n };\n\n handleSlotChange = () => {\n this.handleIcons();\n };\n\n // #endregion\n // #region Render Methods\n\n renderButton() {\n const { ariaExpanded, ariaHasPopup, ariaSelected, ariaPressed, description, disabled, type, tabindex } =\n this.buttonAttributes;\n const { iconPosition, loading, badge, label, hideLabel } = this;\n const renderLoadingSpinner = iconPosition || loading;\n const isLoadingSpinnerInline = !iconPosition || badge;\n return (\n <Fragment>\n <button\n ref={el => (this.primaryBtn = el ?? this.primaryBtn)}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-label={hideLabel && loc(label)}\n aria-selected={ariaSelected}\n aria-pressed={ariaPressed}\n disabled={disabled}\n type={type}\n tabindex={tabindex}\n test-id=\"q2BtnInnerButton\"\n class={this.buttonClasses}\n aria-describedby={!!description ? 'hidden-description' : undefined}\n aria-labelledby={this.intent === 'coin' && !hideLabel ? 'coin-label' : undefined}\n role={this._role || undefined}\n >\n <div>\n {renderLoadingSpinner && (\n <q2-loading\n hidden={!loading}\n modifiers={isLoadingSpinnerInline ? 'inline' : undefined}\n />\n )}\n {this.renderDefaultLabel()}\n {this.renderDefaultCoinSlot()}\n </div>\n </button>\n {this.renderCoinLabel()}\n {!!description && (\n <div\n id=\"hidden-description\"\n aria-hidden=\"true\"\n class=\"sr\"\n >\n {description}\n </div>\n )}\n </Fragment>\n );\n }\n\n renderCoinLabel() {\n if (this.intent !== 'coin' || this.hideLabel) return;\n return (\n <div\n id=\"coin-label\"\n class={this.coinLabelClasses}\n >\n {this.label ? (\n loc(this.label)\n ) : (\n <slot\n name=\"coin-label\"\n onSlotchange={this.handleSlotChange}\n />\n )}\n </div>\n );\n }\n\n renderDefaultCoinSlot() {\n if (this.intent !== 'coin') return;\n return <slot onSlotchange={this.handleSlotChange} />;\n }\n\n renderDefaultLabel() {\n if (this.intent === 'coin') return;\n if (!this.hideLabel && this.label) return loc(this.label);\n return <slot onSlotchange={this.handleSlotChange} />;\n }\n\n render() {\n return this.size === 'small' || this.intent === 'coin' ? (\n // wrap only for small sized and coin intent\n <div\n class={this.size === 'small' ? 'btn-height-wrapper' : 'coin-wrapper'}\n ref={el => (this.primaryBtnWrapper = el ?? this.primaryBtnWrapper)}\n tabIndex={this.size === 'small' ? -1 : undefined}\n >\n {this.renderButton()}\n </div>\n ) : (\n this.renderButton()\n );\n }\n\n // #endregion\n}\n"]}
@@ -330,6 +330,35 @@ describe('q2-btn', () => {
330
330
  expect(innerButton).toEqualAttribute('aria-pressed', 'true');
331
331
  });
332
332
  });
333
+ describe('intent', () => {
334
+ beforeEach(async () => {
335
+ page = await setup({
336
+ html: `<q2-btn intent='coin' ></q2-btn>`,
337
+ });
338
+ button = await page.find('q2-btn');
339
+ });
340
+ describe('when set to "coin"', () => {
341
+ it('displays an external label', async () => {
342
+ const coinLabel = await page.find('q2-btn >>> .coin-label');
343
+ expect(coinLabel).not.toBeNull();
344
+ });
345
+ it('does not displays an external label when label hidden', async () => {
346
+ button.setProperty('hideLabel', true);
347
+ await page.waitForChanges();
348
+ const coinLabel = await page.find('q2-btn >>> .coin-label');
349
+ expect(coinLabel).toBeNull();
350
+ });
351
+ it('is wrapped in a coin wrapper', async () => {
352
+ const coinContainer = await page.find('q2-btn >>> .coin-wrapper');
353
+ expect(coinContainer).not.toBeNull();
354
+ });
355
+ it('supports a coin label slot', async function () {
356
+ page = await setup({ html: `<q2-btn intent="coin"><div slot="coin-label">Coin Label</q2-btn>` });
357
+ const coinLabelSlot = await page.find('q2-btn >>> .coin-label');
358
+ expect(coinLabelSlot).not.toBeNull();
359
+ });
360
+ });
361
+ });
333
362
  describe('size', () => {
334
363
  beforeEach(async () => {
335
364
  page = await setup({