q2-tecton-elements 1.54.3 → 1.55.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 (576) hide show
  1. package/dist/bundle-report.json +2135 -776
  2. package/dist/cjs/{index-76f63767.js → index-905f4c87.js} +3 -2
  3. package/dist/cjs/index-905f4c87.js.map +1 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/q2-action-group.cjs.entry.js +45 -14
  6. package/dist/cjs/q2-action-group.cjs.entry.js.map +1 -1
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js +4 -1364
  8. package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
  9. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  10. package/dist/cjs/q2-badge_7.cjs.entry.js +59 -22
  11. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
  13. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  16. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  18. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  19. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  20. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  21. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-checkbox.cjs.entry.js +21 -21
  23. package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
  24. package/dist/cjs/q2-currency.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 +2 -2
  27. package/dist/cjs/q2-dropdown-item.cjs.entry.js +22 -3
  28. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-file-picker.cjs.entry.js +2 -2
  32. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
  33. package/dist/cjs/q2-form.cjs.entry.js +23 -0
  34. package/dist/cjs/q2-form.cjs.entry.js.map +1 -0
  35. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-item_3.cjs.entry.js +3 -3
  37. package/dist/cjs/q2-legend.cjs.entry.js +2 -2
  38. package/dist/cjs/q2-legend.cjs.entry.js.map +1 -1
  39. package/dist/cjs/q2-loc.cjs.entry.js +20 -26
  40. package/dist/cjs/q2-loc.cjs.entry.js.map +1 -1
  41. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  42. package/dist/cjs/q2-modal.cjs.entry.js +172 -0
  43. package/dist/cjs/q2-modal.cjs.entry.js.map +1 -0
  44. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  45. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-option-list_2.cjs.entry.js +9 -7
  47. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -1
  48. package/dist/cjs/q2-option.cjs.entry.js +37 -25
  49. package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
  50. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  51. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  52. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  53. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  54. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  55. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  56. package/dist/cjs/q2-resize-observer.cjs.entry.js +2 -2
  57. package/dist/cjs/q2-resize-observer.cjs.entry.js.map +1 -1
  58. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  59. package/dist/cjs/q2-select.cjs.entry.js +10 -6
  60. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  61. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  62. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  63. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  64. package/dist/cjs/q2-tag.cjs.entry.js +51 -9
  65. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  66. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  67. package/dist/cjs/q2-textarea.cjs.entry.js +3 -3
  68. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  69. package/dist/cjs/q2-tooltip.cjs.entry.js +2 -2
  70. package/dist/cjs/q2-tooltip.cjs.entry.js.map +1 -1
  71. package/dist/cjs/sanitize-html-string-b8e3b24b.js +1366 -0
  72. package/dist/cjs/sanitize-html-string-b8e3b24b.js.map +1 -0
  73. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  74. package/dist/collection/collection-manifest.json +3 -1
  75. package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
  76. package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -1
  77. package/dist/collection/components/q2-action-group/q2-action-group.css +11 -4
  78. package/dist/collection/components/q2-action-group/q2-action-group.js +47 -13
  79. package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
  80. package/dist/collection/components/q2-action-group/test/q2-action-group-test.e2e.js +365 -0
  81. package/dist/collection/components/q2-action-group/test/q2-action-group-test.e2e.js.map +1 -0
  82. package/dist/collection/components/q2-action-group/test/{q2-action-group.spec.js → q2-action-group-test.spec.js} +67 -26
  83. package/dist/collection/components/q2-action-group/test/q2-action-group-test.spec.js.map +1 -0
  84. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  85. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
  86. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
  87. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  88. package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
  89. package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -1
  90. package/dist/collection/components/q2-badge/q2-badge.css +52 -41
  91. package/dist/collection/components/q2-badge/q2-badge.js +88 -22
  92. package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
  93. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js +35 -126
  94. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
  95. package/dist/collection/components/q2-badge/test/q2-badge-test.spec.js +415 -0
  96. package/dist/collection/components/q2-badge/test/q2-badge-test.spec.js.map +1 -0
  97. package/dist/collection/components/q2-btn/q2-btn.css +12 -10
  98. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  99. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
  100. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
  101. package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
  102. package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
  103. package/dist/collection/components/q2-calendar/q2-calendar.css +2 -0
  104. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  105. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  106. package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
  107. package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -1
  108. package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -1
  109. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
  110. package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -1
  111. package/dist/collection/components/q2-card/q2-card.js.map +1 -1
  112. package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -1
  113. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  114. package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -1
  115. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  116. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
  117. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -1
  118. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -1
  119. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  120. package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
  121. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
  122. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  123. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
  124. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -1
  125. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  126. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  127. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
  128. package/dist/collection/components/q2-checkbox/q2-checkbox.css +99 -62
  129. package/dist/collection/components/q2-checkbox/q2-checkbox.js +19 -19
  130. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  131. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js +227 -208
  132. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -1
  133. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +8 -1
  134. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
  135. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -1
  136. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  137. package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
  138. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
  139. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  140. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
  141. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  142. package/dist/collection/components/q2-detail/q2-detail.js.map +1 -1
  143. package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -1
  144. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  145. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +38 -2
  146. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  147. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +21 -2
  148. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  149. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js +43 -2
  150. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
  151. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  152. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -1
  153. package/dist/collection/components/q2-example/q2-example.js.map +1 -1
  154. package/dist/collection/components/q2-example/test/q2-example.e2e.js.map +1 -1
  155. package/dist/collection/components/q2-example/test/q2-example.spec.js.map +1 -1
  156. package/dist/collection/components/q2-file-picker/q2-file-picker.css +2 -0
  157. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  158. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -1
  159. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
  160. package/dist/collection/components/q2-form/q2-form.css +93 -0
  161. package/dist/collection/components/q2-form/q2-form.js +44 -0
  162. package/dist/collection/components/q2-form/q2-form.js.map +1 -0
  163. package/dist/collection/components/q2-form/test/q2-form-test.e2e.js +93 -0
  164. package/dist/collection/components/q2-form/test/q2-form-test.e2e.js.map +1 -0
  165. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  166. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js.map +1 -1
  167. package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js.map +1 -1
  168. package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
  169. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  170. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js +1 -352
  171. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
  172. package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js +464 -0
  173. package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js.map +1 -0
  174. package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
  175. package/dist/collection/components/q2-input/formatting/alpha.spec.js.map +1 -1
  176. package/dist/collection/components/q2-input/formatting/alphanumeric.js.map +1 -1
  177. package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js.map +1 -1
  178. package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
  179. package/dist/collection/components/q2-input/formatting/credit-card.spec.js.map +1 -1
  180. package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
  181. package/dist/collection/components/q2-input/formatting/currency.spec.js.map +1 -1
  182. package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
  183. package/dist/collection/components/q2-input/formatting/date.spec.js.map +1 -1
  184. package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
  185. package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
  186. package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
  187. package/dist/collection/components/q2-input/formatting/numeric.spec.js.map +1 -1
  188. package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
  189. package/dist/collection/components/q2-input/formatting/phone.spec.js.map +1 -1
  190. package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
  191. package/dist/collection/components/q2-input/formatting/postal.spec.js.map +1 -1
  192. package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
  193. package/dist/collection/components/q2-input/formatting/ssn.spec.js.map +1 -1
  194. package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
  195. package/dist/collection/components/q2-input/formatting/tin.spec.js.map +1 -1
  196. package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
  197. package/dist/collection/components/q2-input/q2-input.css +3 -2
  198. package/dist/collection/components/q2-input/q2-input.js +4 -3
  199. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  200. package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -1
  201. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
  202. package/dist/collection/components/q2-input/test/q2-input-test.spec.js +10 -0
  203. package/dist/collection/components/q2-input/test/q2-input-test.spec.js.map +1 -1
  204. package/dist/collection/components/q2-item/q2-item.js +1 -1
  205. package/dist/collection/components/q2-item/q2-item.js.map +1 -1
  206. package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -1
  207. package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -1
  208. package/dist/collection/components/q2-legend/q2-legend.css +1 -1
  209. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  210. package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
  211. package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -1
  212. package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -1
  213. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  214. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
  215. package/dist/collection/components/q2-link/test/q2-link-test.spec.js.map +1 -1
  216. package/dist/collection/components/q2-list/q2-list.js +1 -1
  217. package/dist/collection/components/q2-list/q2-list.js.map +1 -1
  218. package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -1
  219. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  220. package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js.map +1 -1
  221. package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
  222. package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -1
  223. package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -1
  224. package/dist/collection/components/q2-loc/q2-loc.js +19 -37
  225. package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
  226. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js +1 -7
  227. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
  228. package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js +140 -82
  229. package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js.map +1 -1
  230. package/dist/collection/components/q2-message/q2-message.js +1 -1
  231. package/dist/collection/components/q2-message/q2-message.js.map +1 -1
  232. package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -1
  233. package/dist/collection/components/q2-modal/q2-modal.css +223 -0
  234. package/dist/collection/components/q2-modal/q2-modal.js +470 -0
  235. package/dist/collection/components/q2-modal/q2-modal.js.map +1 -0
  236. package/dist/collection/components/q2-modal/test/q2-modal-test.e2e.js +102 -0
  237. package/dist/collection/components/q2-modal/test/q2-modal-test.e2e.js.map +1 -0
  238. package/dist/collection/components/q2-modal/test/q2-modal-test.spec.js +127 -0
  239. package/dist/collection/components/q2-modal/test/q2-modal-test.spec.js.map +1 -0
  240. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  241. package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
  242. package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -1
  243. package/dist/collection/components/q2-option/q2-option.js +51 -25
  244. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  245. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js +40 -94
  246. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
  247. package/dist/collection/components/q2-option/test/q2-option-test.spec.js +137 -19
  248. package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
  249. package/dist/collection/components/q2-option-list/q2-option-list.js +7 -5
  250. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  251. package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -1
  252. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js.map +1 -1
  253. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  254. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  255. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
  256. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  257. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  258. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  259. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  260. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  261. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
  262. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
  263. package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
  264. package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -1
  265. package/dist/collection/components/q2-radio-group/q2-radio-group.css +4 -2
  266. package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
  267. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -1
  268. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  269. package/dist/collection/components/q2-relative-time/q2-relative-time.js.map +1 -1
  270. package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -1
  271. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +2 -2
  272. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js.map +1 -1
  273. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.e2e.js.map +1 -1
  274. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.spec.js.map +1 -1
  275. package/dist/collection/components/q2-section/q2-section.js +2 -2
  276. package/dist/collection/components/q2-section/q2-section.js.map +1 -1
  277. package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -1
  278. package/dist/collection/components/q2-select/q2-select.css +2 -2
  279. package/dist/collection/components/q2-select/q2-select.js +15 -4
  280. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  281. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +5 -1
  282. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  283. package/dist/collection/components/q2-select/test/q2-select-test.spec.js +85 -0
  284. package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -0
  285. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  286. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  287. package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -1
  288. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  289. package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -1
  290. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  291. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  292. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
  293. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  294. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  295. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -1
  296. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -1
  297. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  298. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js.map +1 -1
  299. package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -1
  300. package/dist/collection/components/q2-tag/q2-tag.css +9 -0
  301. package/dist/collection/components/q2-tag/q2-tag.js +65 -15
  302. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  303. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +131 -341
  304. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  305. package/dist/collection/components/q2-tag/test/q2-tag-test.spec.js +719 -0
  306. package/dist/collection/components/q2-tag/test/q2-tag-test.spec.js.map +1 -0
  307. package/dist/collection/components/q2-textarea/q2-textarea.css +2 -2
  308. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  309. package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
  310. package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -1
  311. package/dist/collection/components/q2-tooltip/q2-tooltip.css +0 -1
  312. package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
  313. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -1
  314. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane-types.js.map +1 -1
  315. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  316. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js.map +1 -1
  317. package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -1
  318. package/dist/collection/index.js.map +1 -1
  319. package/dist/collection/utils/action-sheet.js.map +1 -1
  320. package/dist/collection/utils/charting.js.map +1 -1
  321. package/dist/collection/utils/helpers.js +1 -25
  322. package/dist/collection/utils/helpers.js.map +1 -1
  323. package/dist/collection/utils/index.js +2 -1
  324. package/dist/collection/utils/index.js.map +1 -1
  325. package/dist/collection/utils/mirror-emit.js +19 -0
  326. package/dist/collection/utils/mirror-emit.js.map +1 -0
  327. package/dist/collection/utils/sanitize-html-string.js.map +1 -1
  328. package/dist/collection/utils/sanitize-regex-string.js.map +1 -1
  329. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
  330. package/dist/collection/utils/test/index.spec.js.map +1 -1
  331. package/dist/components/index.js +4 -0
  332. package/dist/components/index.js.map +1 -1
  333. package/dist/components/index2.js +2 -1
  334. package/dist/components/index2.js.map +1 -1
  335. package/dist/components/q2-action-group.js +1 -116
  336. package/dist/components/q2-action-group.js.map +1 -1
  337. package/dist/components/q2-action-group2.js +151 -0
  338. package/dist/components/q2-action-group2.js.map +1 -0
  339. package/dist/components/q2-action-sheet.js +2 -1362
  340. package/dist/components/q2-action-sheet.js.map +1 -1
  341. package/dist/components/q2-avatar2.js +1 -1
  342. package/dist/components/q2-badge2.js +54 -16
  343. package/dist/components/q2-badge2.js.map +1 -1
  344. package/dist/components/q2-btn2.js +1 -1
  345. package/dist/components/q2-btn2.js.map +1 -1
  346. package/dist/components/q2-calendar.js +1 -1
  347. package/dist/components/q2-calendar.js.map +1 -1
  348. package/dist/components/q2-carousel-pane.js +2 -2
  349. package/dist/components/q2-chart-area.js +1 -1
  350. package/dist/components/q2-chart-bar.js +1 -1
  351. package/dist/components/q2-chart-donut.js +1 -1
  352. package/dist/components/q2-checkbox-group.js +1 -1
  353. package/dist/components/q2-checkbox-group.js.map +1 -1
  354. package/dist/components/q2-checkbox2.js +20 -20
  355. package/dist/components/q2-checkbox2.js.map +1 -1
  356. package/dist/components/q2-currency.js +1 -1
  357. package/dist/components/q2-detail.js +1 -1
  358. package/dist/components/q2-dropdown-item2.js +21 -2
  359. package/dist/components/q2-dropdown-item2.js.map +1 -1
  360. package/dist/components/q2-file-picker.js +1 -1
  361. package/dist/components/q2-file-picker.js.map +1 -1
  362. package/dist/components/q2-form.d.ts +11 -0
  363. package/dist/components/q2-form.js +39 -0
  364. package/dist/components/q2-form.js.map +1 -0
  365. package/dist/components/q2-formatted-text.js +1 -1
  366. package/dist/components/q2-input2.js +5 -4
  367. package/dist/components/q2-input2.js.map +1 -1
  368. package/dist/components/q2-item2.js +1 -1
  369. package/dist/components/q2-legend2.js +2 -2
  370. package/dist/components/q2-legend2.js.map +1 -1
  371. package/dist/components/q2-list2.js +1 -1
  372. package/dist/components/q2-loc.js +22 -33
  373. package/dist/components/q2-loc.js.map +1 -1
  374. package/dist/components/q2-message2.js +1 -1
  375. package/dist/components/q2-modal.d.ts +11 -0
  376. package/dist/components/q2-modal.js +231 -0
  377. package/dist/components/q2-modal.js.map +1 -0
  378. package/dist/components/q2-month-picker.js +2 -2
  379. package/dist/components/q2-optgroup2.js +1 -1
  380. package/dist/components/q2-option-list2.js +7 -5
  381. package/dist/components/q2-option-list2.js.map +1 -1
  382. package/dist/components/q2-option2.js +38 -26
  383. package/dist/components/q2-option2.js.map +1 -1
  384. package/dist/components/q2-pagination.js +3 -3
  385. package/dist/components/q2-pill.js +1 -1
  386. package/dist/components/q2-popover2.js +1 -1
  387. package/dist/components/q2-radio-group.js +1 -1
  388. package/dist/components/q2-radio-group.js.map +1 -1
  389. package/dist/components/q2-relative-time.js +1 -1
  390. package/dist/components/q2-resize-observer2.js +2 -2
  391. package/dist/components/q2-resize-observer2.js.map +1 -1
  392. package/dist/components/q2-section.js +2 -2
  393. package/dist/components/q2-select2.js +9 -5
  394. package/dist/components/q2-select2.js.map +1 -1
  395. package/dist/components/q2-stepper-vertical.js +1 -1
  396. package/dist/components/q2-stepper.js +1 -1
  397. package/dist/components/q2-tab-container.js +1 -1
  398. package/dist/components/q2-tab-pane.js +1 -1
  399. package/dist/components/q2-tag.js +50 -8
  400. package/dist/components/q2-tag.js.map +1 -1
  401. package/dist/components/q2-textarea.js +2 -2
  402. package/dist/components/q2-textarea.js.map +1 -1
  403. package/dist/components/q2-tooltip.js +1 -1
  404. package/dist/components/q2-tooltip.js.map +1 -1
  405. package/dist/components/sanitize-html-string.js +1364 -0
  406. package/dist/components/sanitize-html-string.js.map +1 -0
  407. package/dist/components/tecton-tab-pane.js +2 -2
  408. package/dist/esm/{index-504f1a9e.js → index-f2a66217.js} +3 -2
  409. package/dist/esm/index-f2a66217.js.map +1 -0
  410. package/dist/esm/loader.js +1 -1
  411. package/dist/esm/q2-action-group.entry.js +45 -14
  412. package/dist/esm/q2-action-group.entry.js.map +1 -1
  413. package/dist/esm/q2-action-sheet.entry.js +3 -1363
  414. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  415. package/dist/esm/q2-avatar.entry.js +1 -1
  416. package/dist/esm/q2-badge_7.entry.js +59 -22
  417. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  418. package/dist/esm/q2-calendar.entry.js +2 -2
  419. package/dist/esm/q2-calendar.entry.js.map +1 -1
  420. package/dist/esm/q2-card.entry.js +1 -1
  421. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  422. package/dist/esm/q2-carousel.entry.js +1 -1
  423. package/dist/esm/q2-chart-area.entry.js +2 -2
  424. package/dist/esm/q2-chart-bar.entry.js +2 -2
  425. package/dist/esm/q2-chart-donut.entry.js +2 -2
  426. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  427. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  428. package/dist/esm/q2-checkbox.entry.js +21 -21
  429. package/dist/esm/q2-checkbox.entry.js.map +1 -1
  430. package/dist/esm/q2-currency.entry.js +1 -1
  431. package/dist/esm/q2-data-table.entry.js +1 -1
  432. package/dist/esm/q2-detail.entry.js +2 -2
  433. package/dist/esm/q2-dropdown-item.entry.js +22 -3
  434. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  435. package/dist/esm/q2-dropdown.entry.js +1 -1
  436. package/dist/esm/q2-editable-field.entry.js +1 -1
  437. package/dist/esm/q2-file-picker.entry.js +2 -2
  438. package/dist/esm/q2-file-picker.entry.js.map +1 -1
  439. package/dist/esm/q2-form.entry.js +19 -0
  440. package/dist/esm/q2-form.entry.js.map +1 -0
  441. package/dist/esm/q2-formatted-text.entry.js +1 -1
  442. package/dist/esm/q2-item_3.entry.js +3 -3
  443. package/dist/esm/q2-legend.entry.js +2 -2
  444. package/dist/esm/q2-legend.entry.js.map +1 -1
  445. package/dist/esm/q2-loc.entry.js +21 -27
  446. package/dist/esm/q2-loc.entry.js.map +1 -1
  447. package/dist/esm/q2-message.entry.js +2 -2
  448. package/dist/esm/q2-modal.entry.js +168 -0
  449. package/dist/esm/q2-modal.entry.js.map +1 -0
  450. package/dist/esm/q2-month-picker.entry.js +3 -3
  451. package/dist/esm/q2-optgroup.entry.js +2 -2
  452. package/dist/esm/q2-option-list_2.entry.js +9 -7
  453. package/dist/esm/q2-option-list_2.entry.js.map +1 -1
  454. package/dist/esm/q2-option.entry.js +37 -25
  455. package/dist/esm/q2-option.entry.js.map +1 -1
  456. package/dist/esm/q2-pagination.entry.js +4 -4
  457. package/dist/esm/q2-pill.entry.js +2 -2
  458. package/dist/esm/q2-radio-group.entry.js +2 -2
  459. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  460. package/dist/esm/q2-radio.entry.js +1 -1
  461. package/dist/esm/q2-relative-time.entry.js +2 -2
  462. package/dist/esm/q2-resize-observer.entry.js +2 -2
  463. package/dist/esm/q2-resize-observer.entry.js.map +1 -1
  464. package/dist/esm/q2-section.entry.js +3 -3
  465. package/dist/esm/q2-select.entry.js +10 -6
  466. package/dist/esm/q2-select.entry.js.map +1 -1
  467. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  468. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  469. package/dist/esm/q2-stepper.entry.js +2 -2
  470. package/dist/esm/q2-tag.entry.js +51 -9
  471. package/dist/esm/q2-tag.entry.js.map +1 -1
  472. package/dist/esm/q2-tecton-elements.js +1 -1
  473. package/dist/esm/q2-textarea.entry.js +3 -3
  474. package/dist/esm/q2-textarea.entry.js.map +1 -1
  475. package/dist/esm/q2-tooltip.entry.js +2 -2
  476. package/dist/esm/q2-tooltip.entry.js.map +1 -1
  477. package/dist/esm/sanitize-html-string-735c19f5.js +1364 -0
  478. package/dist/esm/sanitize-html-string-735c19f5.js.map +1 -0
  479. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  480. package/dist/jest.setup.js +22 -0
  481. package/dist/jest.setup.js.map +1 -0
  482. package/dist/q2-tecton-elements/{index-504f1a9e.js → index-f2a66217.js} +9 -8
  483. package/dist/q2-tecton-elements/index-f2a66217.js.map +1 -0
  484. package/dist/q2-tecton-elements/q2-action-group.entry.js +49 -17
  485. package/dist/q2-tecton-elements/q2-action-group.entry.js.map +1 -1
  486. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +121 -1331
  487. package/dist/q2-tecton-elements/q2-action-sheet.entry.js.map +1 -1
  488. package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
  489. package/dist/q2-tecton-elements/q2-badge_7.entry.js +199 -164
  490. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  491. package/dist/q2-tecton-elements/q2-calendar.entry.js +180 -180
  492. package/dist/q2-tecton-elements/q2-calendar.entry.js.map +1 -1
  493. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  494. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +21 -21
  495. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  496. package/dist/q2-tecton-elements/q2-chart-area.entry.js +3 -3
  497. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +3 -3
  498. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +7 -7
  499. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +5 -5
  500. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -1
  501. package/dist/q2-tecton-elements/q2-checkbox.entry.js +92 -88
  502. package/dist/q2-tecton-elements/q2-checkbox.entry.js.map +1 -1
  503. package/dist/q2-tecton-elements/q2-currency.entry.js +6 -6
  504. package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
  505. package/dist/q2-tecton-elements/q2-detail.entry.js +39 -39
  506. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +23 -6
  507. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -1
  508. package/dist/q2-tecton-elements/q2-dropdown.entry.js +1 -1
  509. package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
  510. package/dist/q2-tecton-elements/q2-file-picker.entry.js +2 -2
  511. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
  512. package/dist/q2-tecton-elements/q2-form.entry.js +25 -0
  513. package/dist/q2-tecton-elements/q2-form.entry.js.map +1 -0
  514. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  515. package/dist/q2-tecton-elements/q2-item_3.entry.js +22 -22
  516. package/dist/q2-tecton-elements/q2-legend.entry.js +6 -6
  517. package/dist/q2-tecton-elements/q2-legend.entry.js.map +1 -1
  518. package/dist/q2-tecton-elements/q2-loc.entry.js +23 -32
  519. package/dist/q2-tecton-elements/q2-loc.entry.js.map +1 -1
  520. package/dist/q2-tecton-elements/q2-message.entry.js +21 -21
  521. package/dist/q2-tecton-elements/q2-modal.entry.js +226 -0
  522. package/dist/q2-tecton-elements/q2-modal.entry.js.map +1 -0
  523. package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
  524. package/dist/q2-tecton-elements/q2-optgroup.entry.js +8 -8
  525. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +33 -27
  526. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -1
  527. package/dist/q2-tecton-elements/q2-option.entry.js +60 -40
  528. package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -1
  529. package/dist/q2-tecton-elements/q2-pagination.entry.js +38 -38
  530. package/dist/q2-tecton-elements/q2-pill.entry.js +14 -14
  531. package/dist/q2-tecton-elements/q2-radio-group.entry.js +28 -28
  532. package/dist/q2-tecton-elements/q2-radio-group.entry.js.map +1 -1
  533. package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
  534. package/dist/q2-tecton-elements/q2-relative-time.entry.js +5 -5
  535. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +5 -2
  536. package/dist/q2-tecton-elements/q2-resize-observer.entry.js.map +1 -1
  537. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  538. package/dist/q2-tecton-elements/q2-select.entry.js +13 -9
  539. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  540. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
  541. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +5 -5
  542. package/dist/q2-tecton-elements/q2-stepper.entry.js +22 -22
  543. package/dist/q2-tecton-elements/q2-tag.entry.js +84 -45
  544. package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -1
  545. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  546. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  547. package/dist/q2-tecton-elements/q2-textarea.entry.js +4 -4
  548. package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
  549. package/dist/q2-tecton-elements/q2-tooltip.entry.js +2 -2
  550. package/dist/q2-tecton-elements/q2-tooltip.entry.js.map +1 -1
  551. package/dist/q2-tecton-elements/sanitize-html-string-735c19f5.js +1214 -0
  552. package/dist/q2-tecton-elements/sanitize-html-string-735c19f5.js.map +1 -0
  553. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +9 -9
  554. package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
  555. package/dist/types/components/q2-action-group/q2-action-group.d.ts +5 -2
  556. package/dist/types/components/q2-badge/q2-badge.d.ts +17 -3
  557. package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +3 -3
  558. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +8 -0
  559. package/dist/types/components/q2-form/q2-form.d.ts +6 -0
  560. package/dist/types/components/q2-loc/q2-loc.d.ts +5 -5
  561. package/dist/types/components/q2-modal/q2-modal.d.ts +80 -0
  562. package/dist/types/components/q2-option/q2-option.d.ts +11 -4
  563. package/dist/types/components/q2-select/q2-select.d.ts +1 -0
  564. package/dist/types/components/q2-tag/q2-tag.d.ts +19 -0
  565. package/dist/types/components.d.ts +193 -6
  566. package/dist/types/util.d.ts +1 -8
  567. package/dist/types/utils/helpers.d.ts +1 -13
  568. package/dist/types/utils/index.d.ts +3 -2
  569. package/dist/types/utils/mirror-emit.d.ts +11 -0
  570. package/package.json +3 -3
  571. package/dist/cjs/index-76f63767.js.map +0 -1
  572. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js +0 -166
  573. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +0 -1
  574. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +0 -1
  575. package/dist/esm/index-504f1a9e.js.map +0 -1
  576. package/dist/q2-tecton-elements/index-504f1a9e.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"q2-action-group.js","sourceRoot":"","sources":["../../../src/components/q2-action-group/q2-action-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Q2ResizeObserverCustomEvent } from '@/components';\nimport { nextPaint } from '@/utils';\nimport { Component, ComponentInterface, h, Element, Prop, State, Watch } from '@stencil/core';\n\n@Component({\n tag: 'q2-action-group',\n styleUrl: 'q2-action-group.scss',\n shadow: true,\n})\nexport class Q2ActionGroup implements ComponentInterface {\n // #region Own Properties\n\n container: HTMLDivElement;\n mutationObserver: MutationObserver;\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 autoOrientation: 'vertical' | 'horizontal' = 'vertical';\n\n @State()\n hasQ2Link: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /**\n * Whether the buttons should take up the full width of the container when in horizontal orientation.\n *\n * @warning\n * This will prevent the buttons from wrapping when the container is too small to fit all buttons.\n */\n @Prop({ reflect: true })\n fullWidth: boolean;\n\n /**\n * The orientation of the buttons, which will override the auto orientation.\n *\n * @info\n * This will override and disable the auto determination of the orientation.\n */\n @Prop({ reflect: true })\n orientation: 'auto' | 'vertical' | 'horizontal' = 'auto';\n\n /**\n * The width, in pixels, that determines whether to display the buttons in vertical or horizontal orientation\n *\n * @info\n * The component determines this based on the width of the element itself, not the browser window.\n */\n @Prop({ reflect: false })\n orientationThreshold: number = 440;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback(): void {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n }\n\n componentDidLoad() {\n this.checkForQ2Link();\n if ('MutationObserver' in window) this.initMutationObserver();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('orientation')\n toggleHiddenForOneFrame() {\n const { container } = this;\n container.style.display = 'none';\n // Fixes Safari not making the buttons fill the container when going from horizontal and full-width to vertical\n nextPaint(() =>\n nextPaint(() => {\n container.style.display = null;\n })\n );\n }\n\n // #endregion\n // #region Local Methods\n\n get computedOrientation(): 'vertical' | 'horizontal' {\n let orientation = this.orientation;\n if (!orientation) orientation = 'auto';\n return orientation === 'auto' ? this.autoOrientation : orientation;\n }\n\n get shouldDisableResizeObserver(): boolean {\n let orientation = this.orientation;\n if (!orientation) orientation = 'auto';\n return orientation !== 'auto';\n }\n\n checkForQ2Link = () => {\n const links = this.hostElement.querySelectorAll('q2-link');\n this.hasQ2Link = links.length > 0;\n };\n\n handleResize = (\n event: Q2ResizeObserverCustomEvent<{\n entries: ResizeObserverEntry[];\n }>\n ) => {\n const width = event.detail.entries[0].contentRect.width;\n const shouldBeVertical = this.orientationThreshold > width;\n this.autoOrientation = shouldBeVertical ? 'vertical' : 'horizontal';\n };\n\n initMutationObserver = () => {\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true });\n this.mutationObserver = observer;\n };\n\n onMutationObserved = () => {\n this.checkForQ2Link();\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { shouldDisableResizeObserver, computedOrientation, fullWidth, hasQ2Link } = this;\n const containerClassNames = ['container'];\n if (fullWidth && computedOrientation === 'horizontal') containerClassNames.push('full-width');\n if (hasQ2Link) containerClassNames.push('has-q2-link');\n containerClassNames.push(computedOrientation);\n\n return (\n <q2-resize-observer\n onTctResize={this.handleResize}\n disabled={shouldDisableResizeObserver}\n >\n <div\n ref={el => (this.container = el)}\n class={containerClassNames.join(' ')}\n role=\"group\"\n >\n <slot />\n </div>\n </q2-resize-observer>\n );\n }\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-action-group.js","sourceRoot":"","sources":["../../../../src/components/q2-action-group/q2-action-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Q2ResizeObserverCustomEvent } from '@/components';\nimport { nextPaint } from '@/utils';\nimport { Component, ComponentInterface, h, Element, Prop, State, Watch } from '@stencil/core';\n\n@Component({\n tag: 'q2-action-group',\n styleUrl: 'q2-action-group.scss',\n shadow: true,\n})\nexport class Q2ActionGroup implements ComponentInterface {\n // #region Own Properties\n\n container: HTMLDivElement;\n mutationObserver: MutationObserver;\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 autoOrientation: 'vertical' | 'horizontal' = 'vertical';\n\n @State()\n slottedTagName: string;\n\n // #endregion\n // #region Public Property API\n\n /**\n * Whether the buttons should take up the full width of the container when in horizontal orientation.\n *\n * @warning\n * This will prevent the buttons from wrapping when the container is too small to fit all buttons.\n */\n @Prop({ reflect: true })\n fullWidth: boolean;\n\n /**\n * The orientation of the buttons, which will override the auto orientation.\n *\n * @info\n * This will override and disable the auto determination of the orientation.\n * @warning\n * Vertical orientation is not supported for [Links](https://tecton.q2developer.com/design-system/q2-link/)\n * or `\"coin\"` [Buttons](https://tecton.q2developer.com/design-system/q2-btn/), and will be set to \"horizontal\".\n */\n @Prop({ reflect: true })\n orientation: 'auto' | 'vertical' | 'horizontal' = 'auto';\n\n /**\n * The width, in pixels, that determines whether to display the buttons in vertical or horizontal orientation\n *\n * @info\n * The component determines this based on the width of the element itself, not the browser window.\n */\n @Prop({ reflect: false })\n orientationThreshold: number = 440;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback(): void {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n }\n\n componentDidLoad() {\n this.filterSlottedElements();\n this.initMutationObserver();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('orientation')\n toggleHiddenForOneFrame() {\n const { container } = this;\n container.style.display = 'none';\n // Fixes Safari not making the buttons fill the container when going from horizontal and full-width to vertical\n nextPaint(() =>\n nextPaint(() => {\n container.style.display = null;\n this.filterSlottedElements();\n })\n );\n }\n\n // #endregion\n // #region Local Methods\n\n get computedOrientation(): 'vertical' | 'horizontal' {\n let orientation = this.orientation;\n if (!orientation) orientation = 'auto';\n return orientation === 'auto' ? this.autoOrientation : orientation;\n }\n\n get shouldDisableResizeObserver(): boolean {\n let orientation = this.orientation;\n if (!orientation) orientation = 'auto';\n // these are not supported in a 'vertical' orientation, so we will disable resizing\n if (['q2-btn-coin', 'q2-link'].includes(this.slottedTagName)) return true;\n return orientation !== 'auto';\n }\n\n filterSlottedElements = () => {\n if (!('HTMLSlotElement' in window)) return;\n const { computedOrientation } = this;\n const slot = this.hostElement.shadowRoot.querySelector('slot');\n const assignedElements = Array.from(slot?.assignedElements({ flatten: true }));\n if (!assignedElements.length) return;\n\n // Remove all elements that are not Q2-BTN or Q2-LINK\n const approvedElements = ['Q2-BTN', 'Q2-LINK'];\n const { tagName, isCoinIntent } = assignedElements.reduce(\n (acc, el) => {\n if (!acc.tagName && approvedElements.includes(el.tagName)) {\n acc.tagName = el.tagName;\n acc.isCoinIntent = el.getAttribute('intent') === 'coin';\n }\n const intent = el.getAttribute('intent');\n const tagNameMismatch = acc.tagName !== el.tagName;\n const coinIntentMismatch = acc.isCoinIntent && intent !== 'coin';\n\n if (tagNameMismatch || coinIntentMismatch) el.remove();\n\n return acc;\n },\n { tagName: null, isCoinIntent: false }\n );\n\n const incompatibleOrientation = computedOrientation === 'vertical' && (tagName === 'Q2-LINK' || isCoinIntent);\n if (incompatibleOrientation) {\n console.warn(\n 'Q2-ACTION-GROUP: \"Vertical\" orientation is not supported for Q2-LINK or Q2-BTN with intent=\"coin\". Orientation will be set to \"horizontal\".'\n );\n this.orientation = 'horizontal';\n }\n const combinedTagName = isCoinIntent ? `${tagName}-coin` : tagName;\n this.slottedTagName = combinedTagName.toLowerCase();\n };\n\n handleResize = (\n event: Q2ResizeObserverCustomEvent<{\n entries: ResizeObserverEntry[];\n }>\n ) => {\n const width = event.detail.entries[0].contentRect.width;\n const shouldBeVertical = this.orientationThreshold > width;\n this.autoOrientation = shouldBeVertical ? 'vertical' : 'horizontal';\n };\n\n initMutationObserver = () => {\n if (!('MutationObserver' in window)) return;\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true });\n this.mutationObserver = observer;\n };\n\n onMutationObserved = () => {\n this.filterSlottedElements();\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { shouldDisableResizeObserver, computedOrientation, fullWidth, slottedTagName } = this;\n const containerClassNames = ['container'];\n if (fullWidth && computedOrientation === 'horizontal') containerClassNames.push('full-width');\n if (slottedTagName) containerClassNames.push(`has-${slottedTagName}`);\n containerClassNames.push(computedOrientation);\n\n return (\n <q2-resize-observer\n onTctResize={this.handleResize}\n disabled={shouldDisableResizeObserver}\n >\n <div\n ref={el => (this.container = el)}\n class={containerClassNames.join(' ')}\n role=\"group\"\n >\n <slot />\n </div>\n </q2-resize-observer>\n );\n }\n\n // #endregion\n}\n"]}
@@ -0,0 +1,365 @@
1
+ import { setup } from "../../../utils/helpers";
2
+ describe('q2-action-group', () => {
3
+ let page;
4
+ let container;
5
+ const pseudoElementExists = async () => {
6
+ return page.evaluate(() => {
7
+ const element = document.querySelector('q2-link:not(:last-child)');
8
+ if (!element)
9
+ return false;
10
+ const beforeStyle = window.getComputedStyle(element, ':before');
11
+ return beforeStyle.height === '28px' && beforeStyle.width === '0px' && beforeStyle.position === 'absolute';
12
+ });
13
+ };
14
+ const pseudoElementStyles = async () => {
15
+ return page.evaluate(() => {
16
+ const element = document.querySelector('q2-link:not(:last-child)');
17
+ if (!element)
18
+ return null;
19
+ const styles = window.getComputedStyle(element, ':before');
20
+ return Array.from(styles).reduce((acc, key) => {
21
+ acc[key] = styles.getPropertyValue(key);
22
+ return acc;
23
+ }, {});
24
+ });
25
+ };
26
+ const getAssignedElements = async () => {
27
+ return page.evaluate(() => {
28
+ var _a, _b;
29
+ const actionGroup = document.querySelector('q2-action-group');
30
+ if (!actionGroup)
31
+ return [];
32
+ const assignedElements = (_b = (_a = actionGroup.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot')) === null || _b === void 0 ? void 0 : _b.assignedElements();
33
+ return Array.from(assignedElements) || [];
34
+ });
35
+ };
36
+ describe('Methods', () => {
37
+ describe('filterSlottedElements', () => {
38
+ describe('className updates', () => {
39
+ it('does not add has-"tagName" classes if nothing is slotted', async () => {
40
+ page = await setup({
41
+ html: `<q2-action-group></q2-action-group>`,
42
+ });
43
+ container = await page.find('q2-action-group >>> .container');
44
+ expect(container).not.toHaveClass('has-q2-btn');
45
+ expect(container).not.toHaveClass('has-q2-btn-coin');
46
+ expect(container).not.toHaveClass('has-q2-link');
47
+ });
48
+ it('adds the has-q2-btn class if q2-btn is first element', async () => {
49
+ page = await setup({
50
+ html: `
51
+ <q2-action-group>
52
+ <q2-btn label="My Button"></q2-btn>
53
+ </q2-action-group>
54
+ `,
55
+ });
56
+ container = await page.find('q2-action-group >>> .container');
57
+ expect(container).toHaveClass('has-q2-btn');
58
+ });
59
+ it('adds the has-q2-btn-coin class if "coin" q2-btn is first element', async () => {
60
+ page = await setup({
61
+ html: `
62
+ <q2-action-group>
63
+ <q2-btn label="My Button" intent="coin"></q2-btn>
64
+ </q2-action-group>
65
+ `,
66
+ });
67
+ container = await page.find('q2-action-group >>> .container');
68
+ expect(container).toHaveClass('has-q2-btn-coin');
69
+ });
70
+ it('adds the has-q2-link class if q2-link is first element', async () => {
71
+ page = await setup({
72
+ html: `
73
+ <q2-action-group>
74
+ <q2-link label="My Link"></q2-link>
75
+ </q2-action-group>
76
+ `,
77
+ });
78
+ container = await page.find('q2-action-group >>> .container');
79
+ expect(container).toHaveClass('has-q2-link');
80
+ });
81
+ });
82
+ describe('DOM Manipulation', () => {
83
+ it('does not render non-Tecton components', async () => {
84
+ page = await setup({
85
+ html: `
86
+ <q2-action-group>
87
+ <div>My Button</div>
88
+ </q2-action-group>
89
+ `,
90
+ });
91
+ container = await page.find('q2-action-group >>> .container');
92
+ expect(container).not.toHaveClass('has-q2-btn');
93
+ expect(container).not.toHaveClass('has-q2-btn-coin');
94
+ expect(container).not.toHaveClass('has-q2-link');
95
+ const assignedElements = await getAssignedElements();
96
+ expect(assignedElements.length).toBe(0);
97
+ });
98
+ it('removes any element that does not match the first element tagName', async () => {
99
+ page = await setup({
100
+ html: `
101
+ <q2-action-group>
102
+ <q2-btn label="My Button"></q2-btn>
103
+ <q2-link label="My Link"></q2-link>
104
+ </q2-action-group>
105
+ `,
106
+ });
107
+ container = await page.find('q2-action-group >>> .container');
108
+ expect(container).toHaveClass('has-q2-btn');
109
+ const assignedElements = await getAssignedElements();
110
+ expect(assignedElements.length).toBe(1);
111
+ });
112
+ it('when first element is a "coin" q2-btn, removes any non-"coin" q2-btn elements', async () => {
113
+ page = await setup({
114
+ html: `
115
+ <q2-action-group>
116
+ <q2-btn label="My Button" intent="coin"></q2-btn>
117
+ <q2-btn label="My Button"></q2-btn>
118
+ <q2-link label="My Link"></q2-link>
119
+ </q2-action-group>
120
+ `,
121
+ });
122
+ container = await page.find('q2-action-group >>> .container');
123
+ expect(container).toHaveClass('has-q2-btn-coin');
124
+ const assignedElements = await getAssignedElements();
125
+ expect(assignedElements.length).toBe(1);
126
+ });
127
+ it('removes non-Tecton elements', async () => {
128
+ page = await setup({
129
+ html: `
130
+ <q2-action-group>
131
+ <div>My Button</div>
132
+ <q2-btn label="My Button"></q2-btn>
133
+ </q2-action-group>
134
+ `,
135
+ });
136
+ container = await page.find('q2-action-group >>> .container');
137
+ const assignedElements = await getAssignedElements();
138
+ expect(container).toHaveClass('has-q2-btn');
139
+ expect(assignedElements.length).toBe(1);
140
+ });
141
+ });
142
+ describe('"orientation" prop updates', () => {
143
+ it('sets "orientation" to horizontal when used with "coin" q2-btn', async () => {
144
+ page = await setup({
145
+ html: `
146
+ <q2-action-group>
147
+ <q2-btn label="My Button" intent="coin"></q2-btn>
148
+ <q2-btn label="My Button" intent="coin"></q2-btn>
149
+ </q2-action-group>
150
+ `,
151
+ });
152
+ container = await page.find('q2-action-group >>> .container');
153
+ const actionGroup = await page.find('q2-action-group');
154
+ const orientation = await actionGroup.getProperty('orientation');
155
+ expect(orientation).toBe('horizontal');
156
+ });
157
+ it('sets "orientation" to horizontal when used with q2-link', async () => {
158
+ page = await setup({
159
+ html: `
160
+ <q2-action-group>
161
+ <q2-link label="My Link"></q2-link>
162
+ <q2-link label="My Link"></q2-link>
163
+ </q2-action-group>
164
+ `,
165
+ });
166
+ container = await page.find('q2-action-group >>> .container');
167
+ const actionGroup = await page.find('q2-action-group');
168
+ const orientation = await actionGroup.getProperty('orientation');
169
+ expect(orientation).toBe('horizontal');
170
+ });
171
+ describe('when "orientation" evaluates to "vertical"', () => {
172
+ describe('when used with "coin" q2-btn', () => {
173
+ it('changes "orientation" to horizontal', async () => {
174
+ page = await setup({
175
+ html: `
176
+ <q2-action-group orientation="vertical">
177
+ <q2-btn label="My Button" intent="coin"></q2-btn>
178
+ <q2-btn label="My Button" intent="coin"></q2-btn>
179
+ </q2-action-group>
180
+ `,
181
+ });
182
+ container = await page.find('q2-action-group >>> .container');
183
+ const actionGroup = await page.find('q2-action-group');
184
+ const orientation = await actionGroup.getProperty('orientation');
185
+ expect(container).toHaveClass('horizontal');
186
+ expect(orientation).toBe('horizontal');
187
+ });
188
+ it('emits a console warning', async () => {
189
+ const consoleSpy = jest.spyOn(console, 'warn').mockImplementation();
190
+ page = await setup({
191
+ html: `
192
+ <q2-action-group orientation="vertical">
193
+ <q2-btn label="My Button" intent="coin"></q2-btn>
194
+ <q2-btn label="My Button" intent="coin"></q2-btn>
195
+ </q2-action-group>
196
+ `,
197
+ });
198
+ expect(consoleSpy).toHaveBeenCalled();
199
+ consoleSpy.mockRestore();
200
+ });
201
+ });
202
+ describe('when used with q2-link', () => {
203
+ it('changes "orientation" to "horizontal"', async () => {
204
+ page = await setup({
205
+ html: `
206
+ <q2-action-group orientation="vertical">
207
+ <q2-link label="My Link"></q2-link>
208
+ <q2-link label="My Link"></q2-link>
209
+ </q2-action-group>
210
+ `,
211
+ });
212
+ container = await page.find('q2-action-group >>> .container');
213
+ const actionGroup = await page.find('q2-action-group');
214
+ const orientation = await actionGroup.getProperty('orientation');
215
+ expect(container).toHaveClass('horizontal');
216
+ expect(orientation).toBe('horizontal');
217
+ });
218
+ it('emits a console warning', async () => {
219
+ const consoleSpy = jest.spyOn(console, 'warn').mockImplementation();
220
+ page = await setup({
221
+ html: `
222
+ <q2-action-group orientation="vertical">
223
+ <q2-link label="My Button"></q2-link>
224
+ <q2-link label="My Button"></q2-link>
225
+ </q2-action-group>
226
+ `,
227
+ });
228
+ expect(consoleSpy).toHaveBeenCalled();
229
+ consoleSpy.mockRestore();
230
+ });
231
+ });
232
+ });
233
+ });
234
+ });
235
+ });
236
+ describe('q2-link interactions', () => {
237
+ let hasPseudoElement;
238
+ describe('when q2-link elements are not present', () => {
239
+ it('does not add :before pseudo-elements', async () => {
240
+ page = await setup({
241
+ html: `
242
+ <q2-action-group>
243
+ <q2-btn label="My Button"></q2-btn>
244
+ <q2-btn label="My Button"></q2-btn>
245
+ </q2-action-group>
246
+ `,
247
+ });
248
+ hasPseudoElement = await pseudoElementExists();
249
+ expect(hasPseudoElement).toBe(false);
250
+ });
251
+ it('keeps the container gap value at default 10px', async () => {
252
+ page = await setup({ html: `<q2-action-group></q2-action-group>` });
253
+ const container = await page.find('q2-action-group >>> .container');
254
+ const computedStyle = await container.getComputedStyle();
255
+ expect(computedStyle.gap).toBe('10px');
256
+ });
257
+ });
258
+ describe('when q2-link elements are present', () => {
259
+ it('updates the container gap value to 20px', async () => {
260
+ page = await setup({
261
+ html: `
262
+ <q2-action-group>
263
+ <q2-link label="My Link"></q2-link>
264
+ <q2-link label="My Link"></q2-link>
265
+ </q2-action-group>
266
+ `,
267
+ });
268
+ const container = await page.find('q2-action-group >>> .container');
269
+ const computedStyle = await container.getComputedStyle();
270
+ expect(computedStyle.gap).toBe('20px');
271
+ });
272
+ });
273
+ describe(':before pseudo-element', () => {
274
+ it('does not exist if only 1 q2-link is provided', async () => {
275
+ page = await setup({
276
+ html: `
277
+ <q2-action-group>
278
+ <q2-link label="My Link"></q2-link>
279
+ </q2-action-group>
280
+ `,
281
+ });
282
+ hasPseudoElement = await pseudoElementExists();
283
+ expect(hasPseudoElement).toBe(false);
284
+ });
285
+ it('does exist if orientation is "horizontal"', async () => {
286
+ page = await setup({
287
+ html: `
288
+ <q2-action-group orientation="horizontal">
289
+ <q2-link label="My Link"></q2-link>
290
+ <q2-link label="My Link"></q2-link>
291
+ </q2-action-group>
292
+ `,
293
+ });
294
+ hasPseudoElement = await pseudoElementExists();
295
+ expect(hasPseudoElement).toBe(true);
296
+ });
297
+ it('sets the pseudo-element styles correctly', async () => {
298
+ page = await setup({
299
+ html: `
300
+ <q2-action-group>
301
+ <q2-link label="My Link"></q2-link>
302
+ <q2-link label="My Link"></q2-link>
303
+ </q2-action-group>
304
+ `,
305
+ });
306
+ const expectedPseudoStyles = {
307
+ content: '""',
308
+ width: '0px',
309
+ height: '28px',
310
+ 'border-left-width': '1px',
311
+ 'border-left-style': 'solid',
312
+ 'border-left-color': 'rgb(217, 217, 217)',
313
+ position: 'absolute',
314
+ left: '-10px',
315
+ };
316
+ const pseudoStyles = await pseudoElementStyles();
317
+ Object.entries(expectedPseudoStyles).forEach(([cssProp, value]) => {
318
+ expect(pseudoStyles[cssProp]).toBe(value);
319
+ });
320
+ });
321
+ });
322
+ });
323
+ describe('q2-btn coin intent styles', () => {
324
+ it('sets column-gap to 5px', async () => {
325
+ page = await setup({
326
+ html: `
327
+ <q2-action-group>
328
+ <q2-btn label="My Button" intent="coin"></q2-btn>
329
+ <q2-btn label="My Button" intent="coin"></q2-btn>
330
+ </q2-action-group>
331
+ `,
332
+ });
333
+ const container = await page.find('q2-action-group >>> .container');
334
+ const computedStyle = await container.getComputedStyle();
335
+ expect(computedStyle.columnGap).toBe('5px');
336
+ });
337
+ it('sets row-gap to 25px', async () => {
338
+ page = await setup({
339
+ html: `
340
+ <q2-action-group orientation="vertical">
341
+ <q2-btn label="My Button" intent="coin"></q2-btn>
342
+ <q2-btn label="My Button" intent="coin"></q2-btn>
343
+ </q2-action-group>
344
+ `,
345
+ });
346
+ const container = await page.find('q2-action-group >>> .container');
347
+ const computedStyle = await container.getComputedStyle();
348
+ expect(computedStyle.rowGap).toBe('25px');
349
+ });
350
+ it('sets justify-content to center', async () => {
351
+ page = await setup({
352
+ html: `
353
+ <q2-action-group>
354
+ <q2-btn label="My Button" intent="coin"></q2-btn>
355
+ <q2-btn label="My Button" intent="coin"></q2-btn>
356
+ </q2-action-group>
357
+ `,
358
+ });
359
+ const container = await page.find('q2-action-group >>> .container');
360
+ const computedStyle = await container.getComputedStyle();
361
+ expect(computedStyle.justifyContent).toBe('center');
362
+ });
363
+ });
364
+ });
365
+ //# sourceMappingURL=q2-action-group-test.e2e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"q2-action-group-test.e2e.js","sourceRoot":"","sources":["../../../../../src/components/q2-action-group/test/q2-action-group-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage } from '@stencil/core/testing';\nimport { setup } from '@/utils/helpers';\n\ndescribe('q2-action-group', () => {\n let page: E2EPage;\n let container;\n\n const pseudoElementExists = async (): Promise<boolean> => {\n return page.evaluate(() => {\n const element = document.querySelector('q2-link:not(:last-child)');\n if (!element) return false;\n const beforeStyle = window.getComputedStyle(element, ':before');\n return beforeStyle.height === '28px' && beforeStyle.width === '0px' && beforeStyle.position === 'absolute';\n });\n };\n\n const pseudoElementStyles = async (): Promise<Record<string, string> | null> => {\n return page.evaluate(() => {\n const element = document.querySelector('q2-link:not(:last-child)');\n if (!element) return null;\n const styles = window.getComputedStyle(element, ':before');\n return Array.from(styles).reduce(\n (acc, key) => {\n acc[key] = styles.getPropertyValue(key);\n return acc;\n },\n {} as Record<string, string>\n );\n });\n };\n\n const getAssignedElements = async (): Promise<Element[]> => {\n return page.evaluate(() => {\n const actionGroup = document.querySelector('q2-action-group');\n if (!actionGroup) return [];\n const assignedElements = actionGroup.shadowRoot?.querySelector('slot')?.assignedElements();\n return Array.from(assignedElements) || [];\n });\n };\n\n describe('Methods', () => {\n describe('filterSlottedElements', () => {\n describe('className updates', () => {\n it('does not add has-\"tagName\" classes if nothing is slotted', async () => {\n page = await setup({\n html: `<q2-action-group></q2-action-group>`,\n });\n container = await page.find('q2-action-group >>> .container');\n expect(container).not.toHaveClass('has-q2-btn');\n expect(container).not.toHaveClass('has-q2-btn-coin');\n expect(container).not.toHaveClass('has-q2-link');\n });\n\n it('adds the has-q2-btn class if q2-btn is first element', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-btn label=\"My Button\"></q2-btn>\n </q2-action-group>\n `,\n });\n container = await page.find('q2-action-group >>> .container');\n expect(container).toHaveClass('has-q2-btn');\n });\n\n it('adds the has-q2-btn-coin class if \"coin\" q2-btn is first element', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n </q2-action-group>\n `,\n });\n container = await page.find('q2-action-group >>> .container');\n expect(container).toHaveClass('has-q2-btn-coin');\n });\n\n it('adds the has-q2-link class if q2-link is first element', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-link label=\"My Link\"></q2-link>\n </q2-action-group>\n `,\n });\n container = await page.find('q2-action-group >>> .container');\n expect(container).toHaveClass('has-q2-link');\n });\n });\n describe('DOM Manipulation', () => {\n it('does not render non-Tecton components', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <div>My Button</div>\n </q2-action-group>\n `,\n });\n container = await page.find('q2-action-group >>> .container');\n expect(container).not.toHaveClass('has-q2-btn');\n expect(container).not.toHaveClass('has-q2-btn-coin');\n expect(container).not.toHaveClass('has-q2-link');\n const assignedElements = await getAssignedElements();\n expect(assignedElements.length).toBe(0);\n });\n\n it('removes any element that does not match the first element tagName', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-btn label=\"My Button\"></q2-btn>\n <q2-link label=\"My Link\"></q2-link>\n </q2-action-group>\n `,\n });\n container = await page.find('q2-action-group >>> .container');\n expect(container).toHaveClass('has-q2-btn');\n const assignedElements = await getAssignedElements();\n expect(assignedElements.length).toBe(1);\n });\n\n it('when first element is a \"coin\" q2-btn, removes any non-\"coin\" q2-btn elements', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n <q2-btn label=\"My Button\"></q2-btn>\n <q2-link label=\"My Link\"></q2-link>\n </q2-action-group>\n `,\n });\n container = await page.find('q2-action-group >>> .container');\n expect(container).toHaveClass('has-q2-btn-coin');\n const assignedElements = await getAssignedElements();\n expect(assignedElements.length).toBe(1);\n });\n\n it('removes non-Tecton elements', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <div>My Button</div>\n <q2-btn label=\"My Button\"></q2-btn>\n </q2-action-group>\n `,\n });\n container = await page.find('q2-action-group >>> .container');\n const assignedElements = await getAssignedElements();\n expect(container).toHaveClass('has-q2-btn');\n expect(assignedElements.length).toBe(1);\n });\n });\n\n describe('\"orientation\" prop updates', () => {\n it('sets \"orientation\" to horizontal when used with \"coin\" q2-btn', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n </q2-action-group>\n `,\n });\n container = await page.find('q2-action-group >>> .container');\n const actionGroup = await page.find('q2-action-group');\n const orientation = await actionGroup.getProperty('orientation');\n expect(orientation).toBe('horizontal');\n });\n\n it('sets \"orientation\" to horizontal when used with q2-link', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-link label=\"My Link\"></q2-link>\n <q2-link label=\"My Link\"></q2-link>\n </q2-action-group>\n `,\n });\n container = await page.find('q2-action-group >>> .container');\n const actionGroup = await page.find('q2-action-group');\n const orientation = await actionGroup.getProperty('orientation');\n expect(orientation).toBe('horizontal');\n });\n\n describe('when \"orientation\" evaluates to \"vertical\"', () => {\n describe('when used with \"coin\" q2-btn', () => {\n it('changes \"orientation\" to horizontal', async () => {\n page = await setup({\n html: `\n <q2-action-group orientation=\"vertical\">\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n </q2-action-group>\n `,\n });\n container = await page.find('q2-action-group >>> .container');\n const actionGroup = await page.find('q2-action-group');\n const orientation = await actionGroup.getProperty('orientation');\n expect(container).toHaveClass('horizontal');\n expect(orientation).toBe('horizontal');\n });\n\n it('emits a console warning', async () => {\n const consoleSpy = jest.spyOn(console, 'warn').mockImplementation();\n page = await setup({\n html: `\n <q2-action-group orientation=\"vertical\">\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n </q2-action-group>\n `,\n });\n expect(consoleSpy).toHaveBeenCalled();\n consoleSpy.mockRestore();\n });\n });\n\n describe('when used with q2-link', () => {\n it('changes \"orientation\" to \"horizontal\"', async () => {\n page = await setup({\n html: `\n <q2-action-group orientation=\"vertical\">\n <q2-link label=\"My Link\"></q2-link>\n <q2-link label=\"My Link\"></q2-link>\n </q2-action-group>\n `,\n });\n container = await page.find('q2-action-group >>> .container');\n const actionGroup = await page.find('q2-action-group');\n const orientation = await actionGroup.getProperty('orientation');\n expect(container).toHaveClass('horizontal');\n expect(orientation).toBe('horizontal');\n });\n\n it('emits a console warning', async () => {\n const consoleSpy = jest.spyOn(console, 'warn').mockImplementation();\n page = await setup({\n html: `\n <q2-action-group orientation=\"vertical\">\n <q2-link label=\"My Button\"></q2-link>\n <q2-link label=\"My Button\"></q2-link>\n </q2-action-group>\n `,\n });\n expect(consoleSpy).toHaveBeenCalled();\n consoleSpy.mockRestore();\n });\n });\n });\n });\n });\n });\n\n describe('q2-link interactions', () => {\n let hasPseudoElement: boolean;\n describe('when q2-link elements are not present', () => {\n it('does not add :before pseudo-elements', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-btn label=\"My Button\"></q2-btn>\n <q2-btn label=\"My Button\"></q2-btn>\n </q2-action-group>\n `,\n });\n hasPseudoElement = await pseudoElementExists();\n expect(hasPseudoElement).toBe(false);\n });\n\n it('keeps the container gap value at default 10px', async () => {\n page = await setup({ html: `<q2-action-group></q2-action-group>` });\n const container = await page.find('q2-action-group >>> .container');\n const computedStyle = await container.getComputedStyle();\n expect(computedStyle.gap).toBe('10px');\n });\n });\n\n describe('when q2-link elements are present', () => {\n it('updates the container gap value to 20px', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-link label=\"My Link\"></q2-link>\n <q2-link label=\"My Link\"></q2-link>\n </q2-action-group>\n `,\n });\n const container = await page.find('q2-action-group >>> .container');\n const computedStyle = await container.getComputedStyle();\n expect(computedStyle.gap).toBe('20px');\n });\n });\n\n describe(':before pseudo-element', () => {\n it('does not exist if only 1 q2-link is provided', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-link label=\"My Link\"></q2-link>\n </q2-action-group>\n `,\n });\n hasPseudoElement = await pseudoElementExists();\n expect(hasPseudoElement).toBe(false);\n });\n\n it('does exist if orientation is \"horizontal\"', async () => {\n page = await setup({\n html: `\n <q2-action-group orientation=\"horizontal\">\n <q2-link label=\"My Link\"></q2-link>\n <q2-link label=\"My Link\"></q2-link>\n </q2-action-group>\n `,\n });\n hasPseudoElement = await pseudoElementExists();\n expect(hasPseudoElement).toBe(true);\n });\n\n it('sets the pseudo-element styles correctly', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-link label=\"My Link\"></q2-link>\n <q2-link label=\"My Link\"></q2-link>\n </q2-action-group>\n `,\n });\n const expectedPseudoStyles = {\n content: '\"\"',\n width: '0px',\n height: '28px',\n 'border-left-width': '1px',\n 'border-left-style': 'solid',\n 'border-left-color': 'rgb(217, 217, 217)',\n position: 'absolute',\n left: '-10px',\n };\n const pseudoStyles = await pseudoElementStyles();\n Object.entries(expectedPseudoStyles).forEach(([cssProp, value]) => {\n expect(pseudoStyles[cssProp]).toBe(value);\n });\n });\n });\n });\n\n describe('q2-btn coin intent styles', () => {\n it('sets column-gap to 5px', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n </q2-action-group>\n `,\n });\n const container = await page.find('q2-action-group >>> .container');\n const computedStyle = await container.getComputedStyle();\n expect(computedStyle.columnGap).toBe('5px');\n });\n\n it('sets row-gap to 25px', async () => {\n page = await setup({\n html: `\n <q2-action-group orientation=\"vertical\">\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n </q2-action-group>\n `,\n });\n const container = await page.find('q2-action-group >>> .container');\n const computedStyle = await container.getComputedStyle();\n expect(computedStyle.rowGap).toBe('25px');\n });\n\n it('sets justify-content to center', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n <q2-btn label=\"My Button\" intent=\"coin\"></q2-btn>\n </q2-action-group>\n `,\n });\n const container = await page.find('q2-action-group >>> .container');\n const computedStyle = await container.getComputedStyle();\n expect(computedStyle.justifyContent).toBe('center');\n });\n });\n});\n"]}
@@ -10,6 +10,26 @@ describe('q2-action-group', () => {
10
10
  },
11
11
  });
12
12
  };
13
+ describe('State', () => {
14
+ describe('autoOrientation', () => {
15
+ it('defaults to "vertical"', async () => {
16
+ specPage = await newSpecPage({
17
+ components: [Q2ActionGroup],
18
+ html: `<q2-action-group></q2-action-group>`,
19
+ });
20
+ expect(specPage.rootInstance.autoOrientation).toEqual('vertical');
21
+ });
22
+ });
23
+ describe('slottedTagName', () => {
24
+ it('defaults to "null"', async () => {
25
+ specPage = await newSpecPage({
26
+ components: [Q2ActionGroup],
27
+ html: `<q2-action-group></q2-action-group>`,
28
+ });
29
+ expect(specPage.rootInstance.slottedTagName).toBeUndefined();
30
+ });
31
+ });
32
+ });
13
33
  describe('Props', () => {
14
34
  describe('orientationThreshold', () => {
15
35
  beforeEach(async () => {
@@ -112,14 +132,27 @@ describe('q2-action-group', () => {
112
132
  });
113
133
  });
114
134
  });
115
- describe('State', () => {
116
- describe('autoOrientation', () => {
117
- it('defaults to "vertical"', async () => {
135
+ describe('Lifecycle Methods', () => {
136
+ describe('componentDidLoad', () => {
137
+ it('calls filterSlottedElements', async () => {
118
138
  specPage = await newSpecPage({
119
139
  components: [Q2ActionGroup],
120
140
  html: `<q2-action-group></q2-action-group>`,
121
141
  });
122
- expect(specPage.rootInstance.autoOrientation).toEqual('vertical');
142
+ groupClass = specPage.rootInstance;
143
+ const filterSlottedElementsSpy = jest.spyOn(groupClass, 'filterSlottedElements');
144
+ groupClass.componentDidLoad();
145
+ expect(filterSlottedElementsSpy).toHaveBeenCalled();
146
+ });
147
+ it('calls initMutationObserver', async () => {
148
+ specPage = await newSpecPage({
149
+ components: [Q2ActionGroup],
150
+ html: `<q2-action-group></q2-action-group>`,
151
+ });
152
+ groupClass = specPage.rootInstance;
153
+ const initMutationObserverSpy = jest.spyOn(groupClass, 'initMutationObserver');
154
+ groupClass.componentDidLoad();
155
+ expect(initMutationObserverSpy).toHaveBeenCalled();
123
156
  });
124
157
  });
125
158
  });
@@ -209,44 +242,52 @@ describe('q2-action-group', () => {
209
242
  expect(specPage.rootInstance.orientation).toEqual('vertical');
210
243
  expect(specPage.rootInstance.shouldDisableResizeObserver).toEqual(true);
211
244
  });
212
- });
213
- });
214
- describe('Methods', () => {
215
- describe('checkForQ2Link()', () => {
216
- it('sets hasLinkElement to true when q2-link elements are present', async () => {
217
- specPage = await newSpecPage({
218
- components: [Q2ActionGroup],
219
- html: `<q2-action-group><q2-link></q2-link></q2-action-group>`,
220
- });
221
- expect(specPage.rootInstance.hasQ2Link).toBe(true);
222
- });
223
- it('sets hasQ2Link to false when no q2-link elements are present', async () => {
245
+ it('returns true when the slottedTagName is "q2-btn-coin"', async () => {
224
246
  specPage = await newSpecPage({
225
247
  components: [Q2ActionGroup],
226
248
  html: `<q2-action-group></q2-action-group>`,
227
249
  });
228
- expect(specPage.rootInstance.hasQ2Link).toBe(false);
250
+ specPage.rootInstance.slottedTagName = 'q2-btn-coin';
251
+ expect(specPage.rootInstance.shouldDisableResizeObserver).toEqual(true);
229
252
  });
230
- it('is called in componentDidLoad()', async () => {
253
+ it('returns true when the slottedTagName is "q2-link"', async () => {
231
254
  specPage = await newSpecPage({
232
255
  components: [Q2ActionGroup],
233
256
  html: `<q2-action-group></q2-action-group>`,
234
257
  });
235
- const checkForQ2LinkSpy = jest.spyOn(specPage.rootInstance, 'checkForQ2Link');
236
- specPage.rootInstance.componentDidLoad();
237
- expect(checkForQ2LinkSpy).toHaveBeenCalled();
258
+ specPage.rootInstance.slottedTagName = 'q2-link';
259
+ expect(specPage.rootInstance.shouldDisableResizeObserver).toEqual(true);
238
260
  });
239
- it('is called in onMutationObserved()', async () => {
261
+ });
262
+ });
263
+ describe('Methods', () => {
264
+ describe('handleResize', () => {
265
+ beforeEach(async () => {
240
266
  specPage = await newSpecPage({
241
267
  components: [Q2ActionGroup],
242
268
  html: `<q2-action-group></q2-action-group>`,
243
269
  });
244
- const checkForQ2LinkSpy = jest.spyOn(specPage.rootInstance, 'checkForQ2Link');
245
- specPage.rootInstance.onMutationObserved();
246
- expect(checkForQ2LinkSpy).toHaveBeenCalled();
270
+ groupClass = specPage.rootInstance;
271
+ });
272
+ it('sets autoOrientation to "horizontal" when a resize event reports a width greater than 440', async () => {
273
+ groupClass.handleResize(generateResizeEvent(441));
274
+ await specPage.waitForChanges();
275
+ expect(groupClass.autoOrientation).toEqual('horizontal');
276
+ });
277
+ it('sets autoOrientation to "vertical" when a resize event reports a width less than 440', async () => {
278
+ groupClass.handleResize(generateResizeEvent(439));
279
+ await specPage.waitForChanges();
280
+ expect(groupClass.autoOrientation).toEqual('vertical');
281
+ });
282
+ });
283
+ describe('onMutationObserved', () => {
284
+ it('calls filterSlottedElements', async () => {
285
+ const filterSlottedElementsMock = jest.spyOn(groupClass, 'filterSlottedElements');
286
+ groupClass.onMutationObserved();
287
+ expect(filterSlottedElementsMock).toHaveBeenCalled();
247
288
  });
248
289
  });
249
290
  });
250
291
  });
251
292
  });
252
- //# sourceMappingURL=q2-action-group.spec.js.map
293
+ //# sourceMappingURL=q2-action-group-test.spec.js.map