q2-tecton-elements 1.49.2 → 1.50.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (703) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +2 -2
  2. package/dist/cjs/{index-42fcd170.js → index-43010ce4.js} +1 -1
  3. package/dist/cjs/{index-42fcd170.js.map → index-43010ce4.js.map} +1 -1
  4. package/dist/cjs/index-64d8b839.js +1580 -0
  5. package/dist/cjs/index-64d8b839.js.map +1 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js +5 -5
  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-input.cjs.entry.js → q2-badge_7.cjs.entry.js} +1284 -3
  11. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -0
  12. package/dist/cjs/q2-calendar.cjs.entry.js +3 -3
  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-pane.cjs.entry.js.map +1 -1
  17. package/dist/cjs/q2-carousel.cjs.entry.js +131 -149
  18. package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
  19. package/dist/cjs/q2-chart-area.cjs.entry.js +3 -3
  20. package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
  21. package/dist/cjs/q2-chart-bar.cjs.entry.js +3 -3
  22. package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
  23. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  24. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  25. package/dist/cjs/q2-checkbox.cjs.entry.js +2 -2
  26. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-data-table.cjs.entry.js +62 -2
  28. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  30. package/dist/cjs/q2-dropdown-item.cjs.entry.js +11 -13
  31. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  32. package/dist/cjs/q2-dropdown.cjs.entry.js +62 -58
  33. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  34. package/dist/cjs/q2-editable-field.cjs.entry.js +4 -4
  35. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-item.cjs.entry.js +3 -3
  37. package/dist/cjs/q2-item.cjs.entry.js.map +1 -1
  38. package/dist/cjs/q2-legend.cjs.entry.js +2 -2
  39. package/dist/cjs/q2-legend.cjs.entry.js.map +1 -1
  40. package/dist/cjs/q2-list.cjs.entry.js +2 -2
  41. package/dist/cjs/q2-loc.cjs.entry.js +2 -2
  42. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  43. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  44. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  45. package/dist/cjs/q2-option-list.cjs.entry.js +13 -11
  46. package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
  49. package/dist/cjs/q2-pill.cjs.entry.js +95 -36
  50. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  51. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  52. package/dist/cjs/q2-radio.cjs.entry.js +2 -2
  53. package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
  54. package/dist/cjs/q2-section.cjs.entry.js +4 -4
  55. package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
  56. package/dist/cjs/q2-select.cjs.entry.js +19 -18
  57. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  58. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  59. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  60. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  61. package/dist/cjs/q2-tag.cjs.entry.js +33 -6
  62. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  63. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  64. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  65. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  66. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  67. package/dist/collection/collection-manifest.json +7 -8
  68. package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
  69. package/dist/{test/elements → collection/components/click-elsewhere/test}/click-elsewhere-test.e2e.js +1 -1
  70. package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -0
  71. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +5 -5
  72. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
  73. package/dist/{test/elements → collection/components/q2-action-sheet/test}/q2-action-sheet-test.e2e.js +29 -1
  74. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -0
  75. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  76. package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
  77. package/dist/{test/elements → collection/components/q2-avatar/test}/q2-avatar-test.e2e.js +1 -1
  78. package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -0
  79. package/dist/collection/components/q2-badge/q2-badge.js +0 -1
  80. package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
  81. package/dist/{test/elements → collection/components/q2-badge/test}/q2-badge-test.e2e.js +1 -1
  82. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -0
  83. package/dist/collection/components/q2-btn/q2-btn.css +1 -0
  84. package/dist/collection/components/q2-btn/q2-btn.js +3 -15
  85. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  86. package/dist/{test/elements → collection/components/q2-btn/test}/q2-btn-test.e2e.js +36 -1
  87. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -0
  88. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
  89. package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
  90. package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
  91. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  92. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  93. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  94. package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
  95. package/dist/{test/elements/q2-calendar → collection/components/q2-calendar/test}/helpers-test.e2e.js +2 -2
  96. package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -0
  97. package/dist/{test/elements → collection/components/q2-calendar/test}/q2-calendar-month-picker-test.e2e.js +1 -1
  98. package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -0
  99. package/dist/{test/elements → collection/components/q2-calendar/test}/q2-calendar-test.e2e.js +3 -3
  100. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -0
  101. package/dist/{test/elements/q2-calendar → collection/components/q2-calendar/test}/validation-test.e2e.js +2 -2
  102. package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -0
  103. package/dist/collection/components/q2-card/q2-card.js.map +1 -1
  104. package/dist/{test/elements → collection/components/q2-card/test}/q2-card-test.e2e.js +1 -1
  105. package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -0
  106. package/dist/collection/components/q2-carousel/q2-carousel.js +190 -164
  107. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  108. package/dist/{test/elements → collection/components/q2-carousel/test}/q2-carousel-test.e2e.js +175 -188
  109. package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -0
  110. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +5 -5
  111. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
  112. package/dist/{test/elements → collection/components/q2-carousel-pane/test}/q2-carousel-pane-test.e2e.js +1 -1
  113. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -0
  114. package/dist/{test/elements → collection/components/q2-carousel-pane/test}/q2-carousel-pane-test.spec.js +1 -1
  115. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -0
  116. package/dist/collection/components/q2-chart-area/q2-chart-area.js +20 -20
  117. package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
  118. package/dist/{test/elements → collection/components/q2-chart-area/test}/q2-chart-area-test.e2e.js +1 -1
  119. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -0
  120. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +20 -20
  121. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
  122. package/dist/{test/elements → collection/components/q2-chart-bar/test}/q2-chart-bar-test.e2e.js +1 -1
  123. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -0
  124. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  125. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  126. package/dist/{test/elements → collection/components/q2-chart-donut/test}/q2-chart-donut-test.e2e.js +1 -1
  127. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -0
  128. package/dist/collection/components/q2-checkbox/q2-checkbox.js +1 -1
  129. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  130. package/dist/{test/elements → collection/components/q2-checkbox/test}/q2-checkbox-test.e2e.js +1 -1
  131. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -0
  132. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
  133. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
  134. package/dist/{test/elements → collection/components/q2-checkbox-group/test}/q2-checkbox-group-test.e2e.js +1 -1
  135. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -0
  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/{test/elements → collection/components/q2-currency/test}/q2-currency-test.e2e.js +2 -2
  139. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -0
  140. package/dist/collection/components/q2-data-table/q2-data-table.js +240 -7
  141. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  142. package/dist/{test/elements → collection/components/q2-data-table/test}/q2-data-table-test.e2e.js +64 -2
  143. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -0
  144. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  145. package/dist/collection/components/q2-detail/q2-detail.js.map +1 -1
  146. package/dist/{test/elements/q2-detail → collection/components/q2-detail/test}/q2-detail-test.e2e.js +3 -3
  147. package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -0
  148. package/dist/collection/components/q2-dropdown/q2-dropdown.js +65 -57
  149. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  150. package/dist/{test/elements → collection/components/q2-dropdown/test}/q2-dropdown-test.e2e.js +165 -120
  151. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -0
  152. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +10 -12
  153. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  154. package/dist/{test/elements → collection/components/q2-dropdown-item/test}/q2-dropdown-item-test.e2e.js +5 -13
  155. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -0
  156. package/dist/collection/components/q2-editable-field/q2-editable-field.js +3 -3
  157. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  158. package/dist/{test/elements → collection/components/q2-editable-field/test}/q2-editable-field-test.e2e.js +1 -4
  159. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -0
  160. package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
  161. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  162. package/dist/{test/elements → collection/components/q2-icon/test}/q2-icon-test.e2e.js +2 -2
  163. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -0
  164. package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
  165. package/dist/collection/components/q2-input/formatting/alphanumeric.js.map +1 -1
  166. package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
  167. package/dist/collection/components/q2-input/formatting/credit-card.spec.js.map +1 -1
  168. package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
  169. package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
  170. package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
  171. package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
  172. package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
  173. package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
  174. package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
  175. package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
  176. package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
  177. package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
  178. package/dist/collection/components/q2-input/q2-input.js +2 -2
  179. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  180. package/dist/{test/elements → collection/components/q2-input/test}/q2-input-credit-card-test.e2e.js +1 -1
  181. package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -0
  182. package/dist/{test/elements → collection/components/q2-input/test}/q2-input-test.e2e.js +1 -1
  183. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -0
  184. package/dist/collection/components/q2-item/q2-item.css +3 -3
  185. package/dist/collection/components/q2-item/q2-item.js +1 -1
  186. package/dist/collection/components/q2-item/q2-item.js.map +1 -1
  187. package/dist/{test/elements → collection/components/q2-item/test}/q2-item-test.e2e.js +1 -1
  188. package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -0
  189. package/dist/{test/elements → collection/components/q2-item/test}/q2-item-test.spec.js +1 -1
  190. package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -0
  191. package/dist/collection/components/q2-legend/q2-legend.css +6 -6
  192. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  193. package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
  194. package/dist/{test/elements → collection/components/q2-legend/test}/q2-legend-test.e2e.js +1 -1
  195. package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -0
  196. package/dist/{test/elements → collection/components/q2-legend/test}/q2-legend-test.spec.js +1 -1
  197. package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -0
  198. package/dist/collection/components/q2-list/q2-list.js +1 -1
  199. package/dist/collection/components/q2-list/q2-list.js.map +1 -1
  200. package/dist/{test/elements/q2-detail → collection/components/q2-list/test}/q2-list-test.e2e.js +1 -1
  201. package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -0
  202. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  203. package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js.map +1 -1
  204. package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
  205. package/dist/{test/elements → collection/components/q2-loading/test}/q2-loading-element-test.e2e.js +1 -1
  206. package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -0
  207. package/dist/{test/elements → collection/components/q2-loading/test}/q2-loading-test.e2e.js +1 -1
  208. package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -0
  209. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  210. package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
  211. package/dist/{test/elements → collection/components/q2-loc/test}/q2-loc-test.e2e.js +1 -1
  212. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -0
  213. package/dist/collection/components/q2-message/q2-message.js +1 -1
  214. package/dist/collection/components/q2-message/q2-message.js.map +1 -1
  215. package/dist/{test/elements → collection/components/q2-message/test}/q2-message-test.e2e.js +1 -1
  216. package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -0
  217. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  218. package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
  219. package/dist/{test/elements → collection/components/q2-optgroup/test}/q2-optgroup-test.e2e.js +1 -1
  220. package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -0
  221. package/dist/collection/components/q2-option/q2-option.js +1 -1
  222. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  223. package/dist/{test/elements → collection/components/q2-option/test}/q2-option-test.e2e.js +1 -1
  224. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -0
  225. package/dist/collection/components/q2-option-list/q2-option-list.js +15 -13
  226. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  227. package/dist/{test/elements → collection/components/q2-option-list/test}/q2-option-list-test.e2e.js +1 -1
  228. package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -0
  229. package/dist/collection/components/q2-pagination/q2-pagination.js +2 -2
  230. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  231. package/dist/{test/elements → collection/components/q2-pagination/test}/q2-pagination-test.e2e.js +1 -1
  232. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -0
  233. package/dist/collection/components/q2-pill/q2-pill.js +172 -37
  234. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  235. package/dist/{test/elements → collection/components/q2-pill/test}/q2-pill-test.e2e.js +484 -392
  236. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -0
  237. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  238. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  239. package/dist/{test/elements → collection/components/q2-popover/test}/q2-popover-test.e2e.js +2 -2
  240. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -0
  241. package/dist/{test/elements → collection/components/q2-popover/test}/q2-popover-test.spec.js +1 -1
  242. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -0
  243. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  244. package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
  245. package/dist/{test/elements → collection/components/q2-radio/test}/q2-radio-test.e2e.js +1 -1
  246. package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -0
  247. package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
  248. package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
  249. package/dist/{test/elements → collection/components/q2-radio-group/test}/q2-radio-group-test.e2e.js +1 -1
  250. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -0
  251. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  252. package/dist/collection/components/q2-relative-time/q2-relative-time.js.map +1 -1
  253. package/dist/{test/elements → collection/components/q2-relative-time/test}/q2-relative-time-test.e2e.js +2 -2
  254. package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -0
  255. package/dist/collection/components/q2-section/q2-section.css +1 -1
  256. package/dist/collection/components/q2-section/q2-section.js +2 -2
  257. package/dist/collection/components/q2-section/q2-section.js.map +1 -1
  258. package/dist/{test/elements → collection/components/q2-section/test}/q2-section-test.e2e.js +12 -7
  259. package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -0
  260. package/dist/collection/components/q2-select/q2-select.js +18 -17
  261. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  262. package/dist/{test/elements → collection/components/q2-select/test}/q2-select-test.e2e.js +20 -2
  263. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -0
  264. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  265. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  266. package/dist/{test/elements → collection/components/q2-stepper/test}/q2-stepper-test.e2e.js +1 -1
  267. package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -0
  268. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
  269. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  270. package/dist/{test/elements → collection/components/q2-stepper-pane/test}/q2-stepper-pane-test.e2e.js +1 -1
  271. package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -0
  272. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  273. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  274. package/dist/{test/elements → collection/components/q2-stepper-vertical/test}/q2-stepper-vertical-test.e2e.js +1 -1
  275. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -0
  276. package/dist/collection/components/q2-tab-container/q2-tab-container.js +21 -20
  277. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  278. package/dist/{test/elements → collection/components/q2-tab-container/test}/q2-tab-container-test.e2e.js +1 -1
  279. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -0
  280. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js +54 -0
  281. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -0
  282. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  283. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js.map +1 -1
  284. package/dist/{test/elements → collection/components/q2-tab-pane/test}/q2-tab-pane-test.e2e.js +1 -1
  285. package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -0
  286. package/dist/collection/components/q2-tag/q2-tag.js +92 -6
  287. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  288. package/dist/{test/elements → collection/components/q2-tag/test}/q2-tag-test.e2e.js +40 -8
  289. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -0
  290. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  291. package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
  292. package/dist/{test/elements → collection/components/q2-textarea/test}/q2-textarea-test.e2e.js +1 -1
  293. package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -0
  294. package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
  295. package/dist/{test/elements → collection/components/q2-tooltip/test}/q2-tooltip-test.e2e.js +1 -1
  296. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -0
  297. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane-types.js.map +1 -1
  298. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  299. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js.map +1 -1
  300. package/dist/{test/elements → collection/components/tecton-tab-pane/test}/tecton-tab-pane-test.e2e.js +1 -1
  301. package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -0
  302. package/dist/collection/index.js.map +1 -1
  303. package/dist/collection/utils/action-sheet.js.map +1 -1
  304. package/dist/collection/utils/charting.js.map +1 -1
  305. package/dist/{test → collection/utils}/helpers.js +1 -1
  306. package/dist/collection/utils/helpers.js.map +1 -0
  307. package/dist/collection/utils/index.js +9 -0
  308. package/dist/collection/utils/index.js.map +1 -1
  309. package/dist/{test/utils → collection/utils/test}/action-sheet-test.e2e.js +1 -1
  310. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -0
  311. package/dist/{test/utils → collection/utils/test}/index.spec.js +1 -1
  312. package/dist/collection/utils/test/index.spec.js.map +1 -0
  313. package/dist/components/action-sheet.js +1 -1
  314. package/dist/components/index.js +0 -2
  315. package/dist/components/index.js.map +1 -1
  316. package/dist/components/index2.js +1355 -1
  317. package/dist/components/index2.js.map +1 -1
  318. package/dist/components/q2-action-sheet.js +5 -5
  319. package/dist/components/q2-action-sheet.js.map +1 -1
  320. package/dist/components/q2-avatar2.js +1 -1
  321. package/dist/components/q2-badge2.js.map +1 -1
  322. package/dist/components/q2-btn2.js +6 -12
  323. package/dist/components/q2-btn2.js.map +1 -1
  324. package/dist/components/q2-calendar.js +1 -1
  325. package/dist/components/q2-calendar.js.map +1 -1
  326. package/dist/components/q2-carousel-pane.js +2 -2
  327. package/dist/components/q2-carousel-pane.js.map +1 -1
  328. package/dist/components/q2-carousel.js +133 -154
  329. package/dist/components/q2-carousel.js.map +1 -1
  330. package/dist/components/q2-chart-area.js +3 -3
  331. package/dist/components/q2-chart-area.js.map +1 -1
  332. package/dist/components/q2-chart-bar.js +4 -4
  333. package/dist/components/q2-chart-bar.js.map +1 -1
  334. package/dist/components/q2-chart-donut.js +1 -1
  335. package/dist/components/q2-checkbox-group.js +1 -1
  336. package/dist/components/q2-checkbox2.js +1 -1
  337. package/dist/components/q2-currency.js +1 -1
  338. package/dist/components/q2-data-table.js +68 -2
  339. package/dist/components/q2-data-table.js.map +1 -1
  340. package/dist/components/q2-detail.js +1 -1
  341. package/dist/components/q2-dropdown-item2.js +10 -12
  342. package/dist/components/q2-dropdown-item2.js.map +1 -1
  343. package/dist/components/q2-dropdown.js +61 -57
  344. package/dist/components/q2-dropdown.js.map +1 -1
  345. package/dist/components/q2-editable-field.js +3 -3
  346. package/dist/components/q2-editable-field.js.map +1 -1
  347. package/dist/components/q2-input2.js +2 -2
  348. package/dist/components/q2-item.js +2 -2
  349. package/dist/components/q2-item.js.map +1 -1
  350. package/dist/components/q2-legend2.js +2 -2
  351. package/dist/components/q2-legend2.js.map +1 -1
  352. package/dist/components/q2-list.js +1 -1
  353. package/dist/components/q2-loc.js +1 -1
  354. package/dist/components/q2-message2.js +2 -2
  355. package/dist/components/q2-month-picker.js +2 -2
  356. package/dist/components/q2-optgroup2.js +1 -1
  357. package/dist/components/q2-option-list2.js +13 -11
  358. package/dist/components/q2-option-list2.js.map +1 -1
  359. package/dist/components/q2-option2.js +1 -1
  360. package/dist/components/q2-pagination.js +2 -2
  361. package/dist/components/q2-pill.js +100 -38
  362. package/dist/components/q2-pill.js.map +1 -1
  363. package/dist/components/q2-popover2.js +2 -2
  364. package/dist/components/q2-radio-group.js +1 -1
  365. package/dist/components/q2-radio.js +1 -1
  366. package/dist/components/q2-relative-time.js +1 -1
  367. package/dist/components/q2-section.js +3 -3
  368. package/dist/components/q2-section.js.map +1 -1
  369. package/dist/components/q2-select2.js +20 -19
  370. package/dist/components/q2-select2.js.map +1 -1
  371. package/dist/components/q2-stepper-pane.js +1 -1
  372. package/dist/components/q2-stepper-vertical.js +1 -1
  373. package/dist/components/q2-stepper.js +1 -1
  374. package/dist/components/q2-tab-container.js +21 -20
  375. package/dist/components/q2-tab-container.js.map +1 -1
  376. package/dist/components/q2-tab-pane.js +1 -1
  377. package/dist/components/q2-tag.js +38 -8
  378. package/dist/components/q2-tag.js.map +1 -1
  379. package/dist/components/q2-textarea.js +2 -2
  380. package/dist/components/tecton-tab-pane.js +2 -2
  381. package/dist/esm/{action-sheet-dd527168.js → action-sheet-e64cb6f7.js} +2 -2
  382. package/dist/esm/{action-sheet-dd527168.js.map → action-sheet-e64cb6f7.js.map} +1 -1
  383. package/dist/esm/click-elsewhere_2.entry.js +2 -2
  384. package/dist/esm/index-4a80972c.js +1556 -0
  385. package/dist/esm/index-4a80972c.js.map +1 -0
  386. package/dist/esm/{index-1c019b24.js → index-c6d74f10.js} +1 -1
  387. package/dist/esm/{index-1c019b24.js.map → index-c6d74f10.js.map} +1 -1
  388. package/dist/esm/loader.js +1 -1
  389. package/dist/esm/q2-action-sheet.entry.js +5 -5
  390. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  391. package/dist/esm/q2-avatar.entry.js +1 -1
  392. package/dist/esm/{q2-input.entry.js → q2-badge_7.entry.js} +1280 -5
  393. package/dist/esm/q2-badge_7.entry.js.map +1 -0
  394. package/dist/esm/q2-calendar.entry.js +3 -3
  395. package/dist/esm/q2-calendar.entry.js.map +1 -1
  396. package/dist/esm/q2-card.entry.js +1 -1
  397. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  398. package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
  399. package/dist/esm/q2-carousel.entry.js +131 -149
  400. package/dist/esm/q2-carousel.entry.js.map +1 -1
  401. package/dist/esm/q2-chart-area.entry.js +3 -3
  402. package/dist/esm/q2-chart-area.entry.js.map +1 -1
  403. package/dist/esm/q2-chart-bar.entry.js +3 -3
  404. package/dist/esm/q2-chart-bar.entry.js.map +1 -1
  405. package/dist/esm/q2-chart-donut.entry.js +2 -2
  406. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  407. package/dist/esm/q2-checkbox.entry.js +2 -2
  408. package/dist/esm/q2-currency.entry.js +1 -1
  409. package/dist/esm/q2-data-table.entry.js +62 -2
  410. package/dist/esm/q2-data-table.entry.js.map +1 -1
  411. package/dist/esm/q2-detail.entry.js +2 -2
  412. package/dist/esm/q2-dropdown-item.entry.js +11 -13
  413. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  414. package/dist/esm/q2-dropdown.entry.js +62 -58
  415. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  416. package/dist/esm/q2-editable-field.entry.js +4 -4
  417. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  418. package/dist/esm/q2-item.entry.js +3 -3
  419. package/dist/esm/q2-item.entry.js.map +1 -1
  420. package/dist/esm/q2-legend.entry.js +2 -2
  421. package/dist/esm/q2-legend.entry.js.map +1 -1
  422. package/dist/esm/q2-list.entry.js +2 -2
  423. package/dist/esm/q2-loc.entry.js +2 -2
  424. package/dist/esm/q2-message.entry.js +2 -2
  425. package/dist/esm/q2-month-picker.entry.js +3 -3
  426. package/dist/esm/q2-optgroup.entry.js +2 -2
  427. package/dist/esm/q2-option-list.entry.js +13 -11
  428. package/dist/esm/q2-option-list.entry.js.map +1 -1
  429. package/dist/esm/q2-option.entry.js +1 -1
  430. package/dist/esm/q2-pagination.entry.js +3 -3
  431. package/dist/esm/q2-pill.entry.js +96 -37
  432. package/dist/esm/q2-pill.entry.js.map +1 -1
  433. package/dist/esm/q2-radio-group.entry.js +2 -2
  434. package/dist/esm/q2-radio.entry.js +2 -2
  435. package/dist/esm/q2-relative-time.entry.js +3 -3
  436. package/dist/esm/q2-section.entry.js +4 -4
  437. package/dist/esm/q2-section.entry.js.map +1 -1
  438. package/dist/esm/q2-select.entry.js +20 -19
  439. package/dist/esm/q2-select.entry.js.map +1 -1
  440. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  441. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  442. package/dist/esm/q2-stepper.entry.js +2 -2
  443. package/dist/esm/q2-tag.entry.js +34 -7
  444. package/dist/esm/q2-tag.entry.js.map +1 -1
  445. package/dist/esm/q2-tecton-elements.js +1 -1
  446. package/dist/esm/q2-textarea.entry.js +2 -2
  447. package/dist/esm/q2-tooltip.entry.js +1 -1
  448. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  449. package/dist/q2-tecton-elements/{p-da711c59.entry.js → p-072c5877.entry.js} +2 -2
  450. package/dist/q2-tecton-elements/{p-f6358905.entry.js → p-074ae80c.entry.js} +2 -2
  451. package/dist/q2-tecton-elements/p-0a1dff75.entry.js +2 -0
  452. package/dist/q2-tecton-elements/p-0a1dff75.entry.js.map +1 -0
  453. package/dist/q2-tecton-elements/{p-93680d12.entry.js → p-0a3a804a.entry.js} +2 -2
  454. package/dist/q2-tecton-elements/{p-93680d12.entry.js.map → p-0a3a804a.entry.js.map} +1 -1
  455. package/dist/q2-tecton-elements/p-259b728a.entry.js +2 -0
  456. package/dist/q2-tecton-elements/{p-77a763eb.entry.js.map → p-259b728a.entry.js.map} +1 -1
  457. package/dist/q2-tecton-elements/{p-7b9a6bb7.entry.js → p-2c26295e.entry.js} +2 -2
  458. package/dist/q2-tecton-elements/{p-bbf9d36d.entry.js → p-2ca6d44f.entry.js} +2 -2
  459. package/dist/q2-tecton-elements/{p-2bcb7e89.entry.js → p-2fcaf2d6.entry.js} +2 -2
  460. package/dist/q2-tecton-elements/p-2fcaf2d6.entry.js.map +1 -0
  461. package/dist/q2-tecton-elements/{p-0852e6fe.entry.js → p-34696e3f.entry.js} +2 -2
  462. package/dist/q2-tecton-elements/{p-1e7fa870.entry.js → p-34856c71.entry.js} +2 -2
  463. package/dist/q2-tecton-elements/p-34856c71.entry.js.map +1 -0
  464. package/dist/q2-tecton-elements/p-376a0589.entry.js +2 -0
  465. package/dist/q2-tecton-elements/p-376a0589.entry.js.map +1 -0
  466. package/dist/q2-tecton-elements/{p-630613c7.entry.js → p-395904b4.entry.js} +2 -2
  467. package/dist/q2-tecton-elements/p-3b0d3cd4.entry.js +2 -0
  468. package/dist/q2-tecton-elements/p-3b0d3cd4.entry.js.map +1 -0
  469. package/dist/q2-tecton-elements/{p-d8d9ba1f.entry.js → p-3c7be0bb.entry.js} +2 -2
  470. package/dist/q2-tecton-elements/p-3c7be0bb.entry.js.map +1 -0
  471. package/dist/q2-tecton-elements/p-403bf3d4.entry.js +2 -0
  472. package/dist/q2-tecton-elements/{p-5037fa67.entry.js.map → p-403bf3d4.entry.js.map} +1 -1
  473. package/dist/q2-tecton-elements/{p-db79c056.entry.js → p-4116579f.entry.js} +2 -2
  474. package/dist/q2-tecton-elements/{p-e0a6baea.entry.js → p-45407ecc.entry.js} +2 -2
  475. package/dist/q2-tecton-elements/{p-ec8a0b64.entry.js → p-58cafc0d.entry.js} +2 -2
  476. package/dist/q2-tecton-elements/{p-4388e521.entry.js → p-5d936af5.entry.js} +2 -2
  477. package/dist/q2-tecton-elements/p-6237c775.entry.js +2 -0
  478. package/dist/q2-tecton-elements/p-6237c775.entry.js.map +1 -0
  479. package/dist/q2-tecton-elements/{p-a177d812.entry.js → p-661ed976.entry.js} +2 -2
  480. package/dist/q2-tecton-elements/{p-da0cacef.entry.js → p-6b7c53a8.entry.js} +2 -2
  481. package/dist/q2-tecton-elements/{p-6c933b14.entry.js → p-6e6d9793.entry.js} +2 -2
  482. package/dist/q2-tecton-elements/{p-be518818.js → p-721365be.js} +1 -1
  483. package/dist/q2-tecton-elements/{p-a8e7e591.entry.js → p-77272c4c.entry.js} +2 -2
  484. package/dist/q2-tecton-elements/{p-793a453e.entry.js → p-77a0cc0c.entry.js} +2 -2
  485. package/dist/q2-tecton-elements/{p-9c589ab3.entry.js → p-8111547c.entry.js} +2 -2
  486. package/dist/q2-tecton-elements/{p-05b30f98.entry.js → p-8a4b106d.entry.js} +2 -2
  487. package/dist/q2-tecton-elements/p-8a4b106d.entry.js.map +1 -0
  488. package/dist/q2-tecton-elements/p-9a1a4bc0.js +3 -0
  489. package/dist/q2-tecton-elements/p-9a1a4bc0.js.map +1 -0
  490. package/dist/q2-tecton-elements/p-a7a0b8aa.entry.js +2 -0
  491. package/dist/q2-tecton-elements/p-a7a0b8aa.entry.js.map +1 -0
  492. package/dist/q2-tecton-elements/p-aa57b657.entry.js +2 -0
  493. package/dist/q2-tecton-elements/p-aa57b657.entry.js.map +1 -0
  494. package/dist/q2-tecton-elements/p-ad998f71.entry.js +2 -0
  495. package/dist/q2-tecton-elements/p-ad998f71.entry.js.map +1 -0
  496. package/dist/q2-tecton-elements/{p-e3ad770b.entry.js → p-adec9275.entry.js} +2 -2
  497. package/dist/q2-tecton-elements/p-adf0a7c9.entry.js +2 -0
  498. package/dist/q2-tecton-elements/p-adf0a7c9.entry.js.map +1 -0
  499. package/dist/q2-tecton-elements/p-b72fd065.entry.js +2 -0
  500. package/dist/q2-tecton-elements/p-b72fd065.entry.js.map +1 -0
  501. package/dist/q2-tecton-elements/{p-780a1d0e.js → p-b7554a79.js} +2 -2
  502. package/dist/q2-tecton-elements/{p-40df4468.entry.js → p-c0c658d1.entry.js} +2 -2
  503. package/dist/q2-tecton-elements/{p-baa2eaa9.entry.js → p-c81d299a.entry.js} +2 -2
  504. package/dist/q2-tecton-elements/p-c81d299a.entry.js.map +1 -0
  505. package/dist/q2-tecton-elements/{p-08176bd0.entry.js → p-cb3f48de.entry.js} +2 -2
  506. package/dist/q2-tecton-elements/{p-2810ba28.entry.js → p-ce4e6b41.entry.js} +2 -2
  507. package/dist/q2-tecton-elements/{p-76b98623.entry.js → p-cf32b5db.entry.js} +2 -2
  508. package/dist/q2-tecton-elements/p-cf966a0f.entry.js +2 -0
  509. package/dist/q2-tecton-elements/p-cf966a0f.entry.js.map +1 -0
  510. package/dist/q2-tecton-elements/{p-c5aac064.entry.js → p-d2e1631a.entry.js} +2 -2
  511. package/dist/q2-tecton-elements/{p-c5aac064.entry.js.map → p-d2e1631a.entry.js.map} +1 -1
  512. package/dist/q2-tecton-elements/{p-2e6669a7.entry.js → p-dc77bf66.entry.js} +2 -2
  513. package/dist/q2-tecton-elements/{p-e4b8f4b3.entry.js → p-fffb54e9.entry.js} +2 -2
  514. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  515. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  516. package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +60 -0
  517. package/dist/types/components/q2-btn/q2-btn.d.ts +1 -2
  518. package/dist/types/components/q2-calendar/q2-calendar.d.ts +323 -0
  519. package/dist/types/components/q2-carousel/q2-carousel.d.ts +36 -25
  520. package/dist/types/components/q2-carousel-pane/q2-carousel-pane.d.ts +3 -3
  521. package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +6 -6
  522. package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +14 -14
  523. package/dist/types/components/q2-data-table/q2-data-table.d.ts +259 -0
  524. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +129 -0
  525. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +50 -0
  526. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +140 -0
  527. package/dist/types/components/q2-loading/skeleton/shapes.d.ts +1 -0
  528. package/dist/types/components/q2-optgroup/q2-optgroup.d.ts +1 -1
  529. package/dist/types/components/q2-option-list/q2-option-list.d.ts +99 -0
  530. package/dist/types/components/q2-pagination/q2-pagination.d.ts +60 -0
  531. package/dist/types/components/q2-pill/q2-pill.d.ts +128 -0
  532. package/dist/types/components/q2-select/q2-select.d.ts +232 -0
  533. package/dist/types/components/q2-stepper/q2-stepper.d.ts +52 -0
  534. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +62 -0
  535. package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +5 -5
  536. package/dist/types/components/q2-tag/q2-tag.d.ts +63 -0
  537. package/dist/types/components.d.ts +77 -33
  538. package/dist/types/utils/action-sheet.d.ts +12 -0
  539. package/dist/types/{workspace/workspace/tecton-production_release_1.49.x/packages/q2-tecton-elements/.stencil/test → utils}/helpers.d.ts +1 -1
  540. package/dist/types/utils/index.d.ts +1 -0
  541. package/package.json +8 -6
  542. package/dist/cjs/index-a93362ed.js +0 -225
  543. package/dist/cjs/index-a93362ed.js.map +0 -1
  544. package/dist/cjs/q2-badge.cjs.entry.js +0 -52
  545. package/dist/cjs/q2-badge.cjs.entry.js.map +0 -1
  546. package/dist/cjs/q2-btn_2.cjs.entry.js +0 -237
  547. package/dist/cjs/q2-btn_2.cjs.entry.js.map +0 -1
  548. package/dist/cjs/q2-icon.cjs.entry.js +0 -731
  549. package/dist/cjs/q2-icon.cjs.entry.js.map +0 -1
  550. package/dist/cjs/q2-input.cjs.entry.js.map +0 -1
  551. package/dist/cjs/q2-tab-container.cjs.entry.js +0 -263
  552. package/dist/cjs/q2-tab-container.cjs.entry.js.map +0 -1
  553. package/dist/cjs/q2-tab-pane.cjs.entry.js +0 -46
  554. package/dist/cjs/q2-tab-pane.cjs.entry.js.map +0 -1
  555. package/dist/cjs/slot-component.cjs.entry.js +0 -19
  556. package/dist/cjs/slot-component.cjs.entry.js.map +0 -1
  557. package/dist/components/slot-component.d.ts +0 -11
  558. package/dist/components/slot-component.js +0 -34
  559. package/dist/components/slot-component.js.map +0 -1
  560. package/dist/esm/index-3c5cd75e.js +0 -202
  561. package/dist/esm/index-3c5cd75e.js.map +0 -1
  562. package/dist/esm/q2-badge.entry.js +0 -48
  563. package/dist/esm/q2-badge.entry.js.map +0 -1
  564. package/dist/esm/q2-btn_2.entry.js +0 -232
  565. package/dist/esm/q2-btn_2.entry.js.map +0 -1
  566. package/dist/esm/q2-icon.entry.js +0 -727
  567. package/dist/esm/q2-icon.entry.js.map +0 -1
  568. package/dist/esm/q2-input.entry.js.map +0 -1
  569. package/dist/esm/q2-tab-container.entry.js +0 -259
  570. package/dist/esm/q2-tab-container.entry.js.map +0 -1
  571. package/dist/esm/q2-tab-pane.entry.js +0 -42
  572. package/dist/esm/q2-tab-pane.entry.js.map +0 -1
  573. package/dist/esm/slot-component.entry.js +0 -15
  574. package/dist/esm/slot-component.entry.js.map +0 -1
  575. package/dist/q2-tecton-elements/p-05b30f98.entry.js.map +0 -1
  576. package/dist/q2-tecton-elements/p-089a7a1e.entry.js +0 -2
  577. package/dist/q2-tecton-elements/p-089a7a1e.entry.js.map +0 -1
  578. package/dist/q2-tecton-elements/p-1e7fa870.entry.js.map +0 -1
  579. package/dist/q2-tecton-elements/p-25bfe0b2.entry.js +0 -2
  580. package/dist/q2-tecton-elements/p-25bfe0b2.entry.js.map +0 -1
  581. package/dist/q2-tecton-elements/p-2bcb7e89.entry.js.map +0 -1
  582. package/dist/q2-tecton-elements/p-333a41ca.entry.js +0 -2
  583. package/dist/q2-tecton-elements/p-333a41ca.entry.js.map +0 -1
  584. package/dist/q2-tecton-elements/p-4da4cb5d.entry.js +0 -2
  585. package/dist/q2-tecton-elements/p-4da4cb5d.entry.js.map +0 -1
  586. package/dist/q2-tecton-elements/p-5037fa67.entry.js +0 -2
  587. package/dist/q2-tecton-elements/p-550881db.entry.js +0 -2
  588. package/dist/q2-tecton-elements/p-550881db.entry.js.map +0 -1
  589. package/dist/q2-tecton-elements/p-5775b02b.entry.js +0 -2
  590. package/dist/q2-tecton-elements/p-5775b02b.entry.js.map +0 -1
  591. package/dist/q2-tecton-elements/p-77a763eb.entry.js +0 -2
  592. package/dist/q2-tecton-elements/p-84190698.js +0 -2
  593. package/dist/q2-tecton-elements/p-84190698.js.map +0 -1
  594. package/dist/q2-tecton-elements/p-9e90a38a.entry.js +0 -2
  595. package/dist/q2-tecton-elements/p-9e90a38a.entry.js.map +0 -1
  596. package/dist/q2-tecton-elements/p-9ecabc7a.entry.js +0 -2
  597. package/dist/q2-tecton-elements/p-9ecabc7a.entry.js.map +0 -1
  598. package/dist/q2-tecton-elements/p-a657277b.entry.js +0 -2
  599. package/dist/q2-tecton-elements/p-a657277b.entry.js.map +0 -1
  600. package/dist/q2-tecton-elements/p-b3322f94.entry.js +0 -2
  601. package/dist/q2-tecton-elements/p-b3322f94.entry.js.map +0 -1
  602. package/dist/q2-tecton-elements/p-baa2eaa9.entry.js.map +0 -1
  603. package/dist/q2-tecton-elements/p-c8b4f5f7.entry.js +0 -2
  604. package/dist/q2-tecton-elements/p-c8b4f5f7.entry.js.map +0 -1
  605. package/dist/q2-tecton-elements/p-d2d3d95b.entry.js +0 -2
  606. package/dist/q2-tecton-elements/p-d2d3d95b.entry.js.map +0 -1
  607. package/dist/q2-tecton-elements/p-d78669df.entry.js +0 -2
  608. package/dist/q2-tecton-elements/p-d78669df.entry.js.map +0 -1
  609. package/dist/q2-tecton-elements/p-d8d9ba1f.entry.js.map +0 -1
  610. package/dist/q2-tecton-elements/p-dbfab45b.entry.js +0 -2
  611. package/dist/q2-tecton-elements/p-dbfab45b.entry.js.map +0 -1
  612. package/dist/q2-tecton-elements/p-e44560d9.entry.js +0 -2
  613. package/dist/q2-tecton-elements/p-e44560d9.entry.js.map +0 -1
  614. package/dist/q2-tecton-elements/p-ea7876eb.entry.js +0 -2
  615. package/dist/q2-tecton-elements/p-ea7876eb.entry.js.map +0 -1
  616. package/dist/test/elements/click-elsewhere-test.e2e.js.map +0 -1
  617. package/dist/test/elements/q2-action-sheet-test.e2e.js.map +0 -1
  618. package/dist/test/elements/q2-avatar-test.e2e.js.map +0 -1
  619. package/dist/test/elements/q2-badge-test.e2e.js.map +0 -1
  620. package/dist/test/elements/q2-btn-test.e2e.js.map +0 -1
  621. package/dist/test/elements/q2-calendar/helpers-test.e2e.js.map +0 -1
  622. package/dist/test/elements/q2-calendar/validation-test.e2e.js.map +0 -1
  623. package/dist/test/elements/q2-calendar-month-picker-test.e2e.js.map +0 -1
  624. package/dist/test/elements/q2-calendar-test.e2e.js.map +0 -1
  625. package/dist/test/elements/q2-card-test.e2e.js.map +0 -1
  626. package/dist/test/elements/q2-carousel-pane-test.e2e.js.map +0 -1
  627. package/dist/test/elements/q2-carousel-pane-test.spec.js.map +0 -1
  628. package/dist/test/elements/q2-carousel-test.e2e.js.map +0 -1
  629. package/dist/test/elements/q2-chart-area-test.e2e.js.map +0 -1
  630. package/dist/test/elements/q2-chart-bar-test.e2e.js.map +0 -1
  631. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +0 -1
  632. package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +0 -1
  633. package/dist/test/elements/q2-checkbox-test.e2e.js.map +0 -1
  634. package/dist/test/elements/q2-currency-test.e2e.js.map +0 -1
  635. package/dist/test/elements/q2-data-table-test.e2e.js.map +0 -1
  636. package/dist/test/elements/q2-detail/q2-detail-test.e2e.js.map +0 -1
  637. package/dist/test/elements/q2-detail/q2-list-test.e2e.js.map +0 -1
  638. package/dist/test/elements/q2-detail/slot-component.js +0 -32
  639. package/dist/test/elements/q2-detail/slot-component.js.map +0 -1
  640. package/dist/test/elements/q2-dropdown-item-test.e2e.js.map +0 -1
  641. package/dist/test/elements/q2-dropdown-test.e2e.js.map +0 -1
  642. package/dist/test/elements/q2-editable-field-test.e2e.js.map +0 -1
  643. package/dist/test/elements/q2-icon-test.e2e.js.map +0 -1
  644. package/dist/test/elements/q2-input-credit-card-test.e2e.js.map +0 -1
  645. package/dist/test/elements/q2-input-test.e2e.js.map +0 -1
  646. package/dist/test/elements/q2-item-test.e2e.js.map +0 -1
  647. package/dist/test/elements/q2-item-test.spec.js.map +0 -1
  648. package/dist/test/elements/q2-legend-test.e2e.js.map +0 -1
  649. package/dist/test/elements/q2-legend-test.spec.js.map +0 -1
  650. package/dist/test/elements/q2-loading-element-test.e2e.js.map +0 -1
  651. package/dist/test/elements/q2-loading-test.e2e.js.map +0 -1
  652. package/dist/test/elements/q2-loc-test.e2e.js.map +0 -1
  653. package/dist/test/elements/q2-message-test.e2e.js.map +0 -1
  654. package/dist/test/elements/q2-optgroup-test.e2e.js.map +0 -1
  655. package/dist/test/elements/q2-option-list-test.e2e.js.map +0 -1
  656. package/dist/test/elements/q2-option-test.e2e.js.map +0 -1
  657. package/dist/test/elements/q2-pagination-test.e2e.js.map +0 -1
  658. package/dist/test/elements/q2-pill-test.e2e.js.map +0 -1
  659. package/dist/test/elements/q2-popover-test.e2e.js.map +0 -1
  660. package/dist/test/elements/q2-popover-test.spec.js.map +0 -1
  661. package/dist/test/elements/q2-radio-group-test.e2e.js.map +0 -1
  662. package/dist/test/elements/q2-radio-test.e2e.js.map +0 -1
  663. package/dist/test/elements/q2-relative-time-test.e2e.js.map +0 -1
  664. package/dist/test/elements/q2-section-test.e2e.js.map +0 -1
  665. package/dist/test/elements/q2-select-test.e2e.js.map +0 -1
  666. package/dist/test/elements/q2-stepper-pane-test.e2e.js.map +0 -1
  667. package/dist/test/elements/q2-stepper-test.e2e.js.map +0 -1
  668. package/dist/test/elements/q2-stepper-vertical-test.e2e.js.map +0 -1
  669. package/dist/test/elements/q2-tab-container-test.e2e.js.map +0 -1
  670. package/dist/test/elements/q2-tab-pane-test.e2e.js.map +0 -1
  671. package/dist/test/elements/q2-tag-test.e2e.js.map +0 -1
  672. package/dist/test/elements/q2-textarea-test.e2e.js.map +0 -1
  673. package/dist/test/elements/q2-tooltip-test.e2e.js.map +0 -1
  674. package/dist/test/elements/tecton-tab-pane-test.e2e.js.map +0 -1
  675. package/dist/test/helpers.js.map +0 -1
  676. package/dist/test/utils/action-sheet-test.e2e.js.map +0 -1
  677. package/dist/test/utils/index.spec.js.map +0 -1
  678. package/dist/types/workspace/workspace/tecton-production_release_1.49.x/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -4
  679. /package/dist/q2-tecton-elements/{p-da711c59.entry.js.map → p-072c5877.entry.js.map} +0 -0
  680. /package/dist/q2-tecton-elements/{p-f6358905.entry.js.map → p-074ae80c.entry.js.map} +0 -0
  681. /package/dist/q2-tecton-elements/{p-7b9a6bb7.entry.js.map → p-2c26295e.entry.js.map} +0 -0
  682. /package/dist/q2-tecton-elements/{p-bbf9d36d.entry.js.map → p-2ca6d44f.entry.js.map} +0 -0
  683. /package/dist/q2-tecton-elements/{p-0852e6fe.entry.js.map → p-34696e3f.entry.js.map} +0 -0
  684. /package/dist/q2-tecton-elements/{p-630613c7.entry.js.map → p-395904b4.entry.js.map} +0 -0
  685. /package/dist/q2-tecton-elements/{p-db79c056.entry.js.map → p-4116579f.entry.js.map} +0 -0
  686. /package/dist/q2-tecton-elements/{p-e0a6baea.entry.js.map → p-45407ecc.entry.js.map} +0 -0
  687. /package/dist/q2-tecton-elements/{p-ec8a0b64.entry.js.map → p-58cafc0d.entry.js.map} +0 -0
  688. /package/dist/q2-tecton-elements/{p-4388e521.entry.js.map → p-5d936af5.entry.js.map} +0 -0
  689. /package/dist/q2-tecton-elements/{p-a177d812.entry.js.map → p-661ed976.entry.js.map} +0 -0
  690. /package/dist/q2-tecton-elements/{p-da0cacef.entry.js.map → p-6b7c53a8.entry.js.map} +0 -0
  691. /package/dist/q2-tecton-elements/{p-6c933b14.entry.js.map → p-6e6d9793.entry.js.map} +0 -0
  692. /package/dist/q2-tecton-elements/{p-be518818.js.map → p-721365be.js.map} +0 -0
  693. /package/dist/q2-tecton-elements/{p-a8e7e591.entry.js.map → p-77272c4c.entry.js.map} +0 -0
  694. /package/dist/q2-tecton-elements/{p-793a453e.entry.js.map → p-77a0cc0c.entry.js.map} +0 -0
  695. /package/dist/q2-tecton-elements/{p-9c589ab3.entry.js.map → p-8111547c.entry.js.map} +0 -0
  696. /package/dist/q2-tecton-elements/{p-e3ad770b.entry.js.map → p-adec9275.entry.js.map} +0 -0
  697. /package/dist/q2-tecton-elements/{p-780a1d0e.js.map → p-b7554a79.js.map} +0 -0
  698. /package/dist/q2-tecton-elements/{p-40df4468.entry.js.map → p-c0c658d1.entry.js.map} +0 -0
  699. /package/dist/q2-tecton-elements/{p-08176bd0.entry.js.map → p-cb3f48de.entry.js.map} +0 -0
  700. /package/dist/q2-tecton-elements/{p-2810ba28.entry.js.map → p-ce4e6b41.entry.js.map} +0 -0
  701. /package/dist/q2-tecton-elements/{p-76b98623.entry.js.map → p-cf32b5db.entry.js.map} +0 -0
  702. /package/dist/q2-tecton-elements/{p-2e6669a7.entry.js.map → p-dc77bf66.entry.js.map} +0 -0
  703. /package/dist/q2-tecton-elements/{p-e4b8f4b3.entry.js.map → p-fffb54e9.entry.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
2
  import { d as defineCustomElement$1 } from './click-elsewhere2.js';
3
3
 
4
- const q2LegendCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{position:relative;width:100%;display:block}ul{list-style:none;padding:0;margin:0}.item-button{align-items:center;background-color:transparent;border:none;column-gap:var(--tct-legend-item-gap, var(--app-scale-2x, 10px));display:flex;height:var(--tct-legend-item-height, var(--app-scale-9x, 45px));opacity:1;padding-block:0;padding-inline:var(--tct-legend-item-padding-inline, var(--app-scale-2x, 10px));transition:opacity var(--app-tween-1, 0.2s ease);width:100%}.item-button:hover{cursor:pointer}.item-button-faded>*{opacity:var(--tct-legend-item-opacity-faded, 0.5)}.item-color-indicator{border-radius:50%;display:inline-block;flex-shrink:0;height:var(--tct-legend-item-color-indicator-size, var(--app-scale-3x, 15px));width:var(--tct-legend-item-color-indicator-size, var(--app-scale-3x, 15px))}.item-name{color:var(--tct-legend-item-name-font-color, --t-text, #4d4d4d);display:inline-block;flex-grow:1;font-size:var(--tct-legend-item-name-font-size, --app-font-size, 14px);font-weight:var(--tct-legend-item-name-font-weight, 600);line-height:var(--tct-legend-item-name-line-height, --app-line-height, 1.428571429em);text-align:left}.item-value{color:var(--tct-legend-item-value-font-color, #6f6f82);display:inline-block;flex-grow:1;font-size:var(--tct-legend-item-value-font-size, 14px);font-weight:var(--tct-legend-item-value-font-weight, 400);line-height:var(--tct-legend-item-value-line-height, 1.4);text-align:right}";
4
+ const q2LegendCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{position:relative;width:100%;display:block}ul{list-style:none;padding:0;margin:0}.item-button{align-items:center;background-color:transparent;border:none;column-gap:var(--tct-legend-item-gap, var(--app-scale-2x, 10px));display:flex;height:var(--tct-legend-item-height, var(--app-scale-9x, 45px));opacity:1;padding-block:0;padding-inline:var(--tct-legend-item-padding-inline, var(--app-scale-2x, 10px));transition:opacity var(--app-tween-1, 0.2s ease);width:100%}.item-button:hover{cursor:pointer}.item-button-faded>*{opacity:var(--tct-legend-item-opacity-faded, var(--app-disabled-opacity, 0.4))}.item-color-indicator{border-radius:50%;display:inline-block;flex-shrink:0;height:var(--tct-legend-item-color-indicator-size, var(--app-scale-3x, 15px));width:var(--tct-legend-item-color-indicator-size, var(--app-scale-3x, 15px))}.item-name{color:var(--tct-legend-item-name-font-color, --t-text, #4d4d4d);display:inline-block;flex-grow:1;font-size:var(--tct-legend-item-name-font-size, var(--app-font-size, 14px));font-weight:var(--tct-legend-item-name-font-weight, 600);line-height:var(--tct-legend-item-name-line-height, var(--app-line-height, 1.428571429em));text-align:left}.item-value{color:var(--tct-legend-item-value-font-color, var(--t-text, #4d4d4d));display:inline-block;flex-grow:1;font-size:var(--tct-legend-item-value-font-size, var(--app-font-size, 14px));font-weight:var(--tct-legend-item-value-font-weight, 400);line-height:var(--tct-legend-item-value-line-height, var(--app-line-height, 1.428571429em));text-align:right}";
5
5
  const Q2LegendStyle0 = q2LegendCss;
6
6
 
7
7
  const Q2Legend = /*@__PURE__*/ proxyCustomElement(class Q2Legend extends HTMLElement {
@@ -105,7 +105,7 @@ const Q2Legend = /*@__PURE__*/ proxyCustomElement(class Q2Legend extends HTMLEle
105
105
  // #endregion
106
106
  // #region Render Methods
107
107
  render() {
108
- return (h("click-elsewhere", { key: 'a3628c5f9dbaa2d7ac27e7a227b877d705350b0a', onChange: () => this.onClickElsewhere(this) }, h("ul", { key: '5c4361cd025cd2f4234afbbce09fb377e90e44c1' }, this.dataWithClasses.map(item => (h("li", { class: "item" }, h("button", { "test-id": "item", "aria-label": `${item.name} ${this.formatValue(item.value)}`, class: item.classes, onClick: event => this.onClick(event, item), onMouseEnter: event => this.onMouseEnter(event, item), onMouseLeave: event => this.onMouseLeave(event, item) }, h("span", { "test-id": "itemColor", class: "item-color-indicator", style: { backgroundColor: item.color }, "aria-hidden": "true" }), h("span", { "test-id": "itemName", class: "item-name" }, item.name), h("span", { id: `item-${item.id}`, "test-id": "itemValue", class: "item-value" }, this.formatValue(item.value)))))))));
108
+ return (h("click-elsewhere", { key: '6ef0467e7caa8b09d79a19a661ddc5b9e5bb4fe9', onChange: () => this.onClickElsewhere(this) }, h("ul", { key: '00820cd965766010dd29f00f2cc662e7c581f728' }, this.dataWithClasses.map(item => (h("li", { class: "item" }, h("button", { "test-id": "item", "aria-label": `${item.name} ${this.formatValue(item.value)}`, class: item.classes, onClick: event => this.onClick(event, item), onMouseEnter: event => this.onMouseEnter(event, item), onMouseLeave: event => this.onMouseLeave(event, item) }, h("span", { "test-id": "itemColor", class: "item-color-indicator", style: { backgroundColor: item.color }, "aria-hidden": "true" }), h("span", { "test-id": "itemName", class: "item-name" }, item.name), h("span", { id: `item-${item.id}`, "test-id": "itemValue", class: "item-value" }, this.formatValue(item.value)))))))));
109
109
  }
110
110
  static get watchers() { return {
111
111
  "hoveredItemId": ["watchHoveredItemId"],
@@ -1 +1 @@
1
- {"file":"q2-legend2.js","mappings":"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","names":[],"sources":["src/components/q2-legend/q2-legend.scss?tag=q2-legend&encapsulation=shadow","src/components/q2-legend/q2-legend.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n position: relative;\n width: 100%;\n display: block;\n}\n\nul {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n.item-button {\n align-items: center;\n background-color: transparent;\n border: none;\n column-gap: #{var-list(--tct-legend-item-gap, --app-scale-2x, 10px)};\n display: flex;\n height: #{var-list(--tct-legend-item-height, --app-scale-9x, 45px)};\n opacity: 1;\n padding-block: 0;\n padding-inline: #{var-list(--tct-legend-item-padding-inline, --app-scale-2x, 10px)};\n transition: opacity var(--app-tween-1, 0.2s ease);\n width: 100%;\n\n &:hover {\n cursor: pointer;\n }\n\n &-faded > * {\n opacity: var(--tct-legend-item-opacity-faded, 0.5);\n }\n}\n\n.item-color-indicator {\n border-radius: 50%;\n display: inline-block;\n flex-shrink: 0;\n height: #{var-list(--tct-legend-item-color-indicator-size, --app-scale-3x, 15px)};\n width: #{var-list(--tct-legend-item-color-indicator-size, --app-scale-3x, 15px)};\n}\n\n.item-name {\n color: var(--tct-legend-item-name-font-color, --t-text, #4d4d4d);\n display: inline-block;\n flex-grow: 1;\n font-size: var(--tct-legend-item-name-font-size, --app-font-size, 14px);\n font-weight: var(--tct-legend-item-name-font-weight, 600);\n line-height: var(--tct-legend-item-name-line-height, --app-line-height, 1.428571429em);\n text-align: left;\n}\n\n.item-value {\n color: var(--tct-legend-item-value-font-color, #6f6f82);\n display: inline-block;\n flex-grow: 1;\n font-size: var(--tct-legend-item-value-font-size, 14px);\n font-weight: var(--tct-legend-item-value-font-weight, 400);\n line-height: var(--tct-legend-item-value-line-height, 1.4);\n text-align: right;\n}\n","import { Component, ComponentInterface, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\nimport { IDonutChartData } from 'q2-tecton-common/lib/types/element-types';\n\n@Component({\n tag: 'q2-legend',\n shadow: true,\n styleUrl: 'q2-legend.scss',\n})\nexport class Q2Legend implements ComponentInterface {\n // #region State Properties\n\n @State()\n hoveredItemIndex: number = -1;\n\n @State()\n selectedItemIndex: number = -1;\n\n // #endregion\n // #region Public Property API\n\n /** An array of objects that contain the data to be displayed. */\n @Prop()\n data: IDonutChartData[] = [];\n\n /** The format of the value displayed in the legend. */\n @Prop({ reflect: true })\n format: 'default' | 'currency' = 'default';\n\n /** The id of the item to set as hovered. */\n @Prop({ reflect: true })\n hoveredItemId: string = null;\n\n /** The id of the item to set as selected. */\n @Prop({ reflect: true })\n selectedItemId: string = null;\n\n // #endregion\n // #region Events\n\n @Event()\n click: EventEmitter<IDonutChartData>;\n\n @Event()\n mouseenter: EventEmitter<IDonutChartData>;\n\n @Event()\n mouseleave: EventEmitter<IDonutChartData>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.watchHoveredItemId(this.hoveredItemId);\n this.watchSelectedItemId(this.selectedItemId);\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('hoveredItemId')\n watchHoveredItemId(newItemId: string) {\n const newItemIndex = this.getDataIndexForId(newItemId);\n this.hoveredItemIndex = newItemIndex;\n }\n\n @Watch('selectedItemId')\n watchSelectedItemId(newItemId: string) {\n const newItemIndex = this.getDataIndexForId(newItemId);\n this.selectedItemIndex = newItemIndex;\n }\n\n // #endregion\n // #region Local Methods\n\n get dataWithClasses() {\n return this.data.map((item, index) => ({\n ...item,\n classes: {\n 'item-button': true,\n 'item-button-faded': this.isItemButtonFaded(index),\n 'item-button-selected': this.isItemButtonSelected(index),\n },\n }));\n }\n\n formatValue(value: string | number) {\n const valueAsFloat = parseFloat(value.toString());\n if (this.format === 'currency') {\n return Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n }).format(valueAsFloat);\n }\n\n return Intl.NumberFormat('en-US').format(valueAsFloat);\n }\n\n getDataIndexForId(id: string) {\n const index = this.data.findIndex(item => item.id === id);\n return index >= 0 ? index : -1;\n }\n\n isItemButtonFaded(index: number) {\n if (this.isItemButtonSelected(index) || index == this.hoveredItemIndex) return false;\n\n if (this.selectedItemIndex >= 0 && this.hoveredItemIndex === -1) return true;\n\n return this.hoveredItemIndex >= 0 && index !== this.hoveredItemIndex;\n }\n\n isItemButtonSelected(index: number) {\n return index === this.selectedItemIndex;\n }\n\n onClick(event: MouseEvent, itemData: IDonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n if (this.selectedItemIndex === itemIndex) {\n this.selectedItemIndex = -1;\n if (event.detail === 0) {\n // Keyboard click\n this.hoveredItemIndex = -1;\n } else {\n // Mouse click\n this.hoveredItemIndex = itemIndex;\n }\n this.click.emit(null);\n return;\n }\n\n this.selectedItemIndex = itemIndex;\n this.click.emit(this.data[itemIndex]);\n }\n\n onClickElsewhere(obj) {\n obj.selectedItemIndex = -1;\n }\n\n onMouseEnter(event: Event, itemData: IDonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n this.hoveredItemIndex = itemIndex;\n this.mouseenter.emit(this.data[itemIndex]);\n }\n\n onMouseLeave(event: Event, itemData: IDonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n this.hoveredItemIndex = -1;\n this.mouseleave.emit(this.data[itemIndex]);\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <click-elsewhere onChange={() => this.onClickElsewhere(this)}>\n <ul>\n {this.dataWithClasses.map(item => (\n <li class=\"item\">\n <button\n test-id=\"item\"\n aria-label={`${item.name} ${this.formatValue(item.value)}`}\n class={item.classes}\n onClick={event => this.onClick(event, item)}\n onMouseEnter={event => this.onMouseEnter(event, item)}\n onMouseLeave={event => this.onMouseLeave(event, item)}\n >\n <span\n test-id=\"itemColor\"\n class=\"item-color-indicator\"\n style={{ backgroundColor: item.color }}\n aria-hidden=\"true\"\n />\n <span\n test-id=\"itemName\"\n class=\"item-name\"\n >\n {item.name}\n </span>\n <span\n id={`item-${item.id}`}\n test-id=\"itemValue\"\n class=\"item-value\"\n >\n {this.formatValue(item.value)}\n </span>\n </button>\n </li>\n ))}\n </ul>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"version":3}
1
+ {"file":"q2-legend2.js","mappings":";;;AAAA,MAAM,WAAW,GAAG,4pEAA4pE,CAAC;AACjrE,uBAAe,WAAW;;MCOb,QAAQ;;;;;;;;gCAIU,CAAC,CAAC;iCAGD,CAAC,CAAC;oBAOJ,EAAE;sBAIK,SAAS;6BAIlB,IAAI;8BAIH,IAAI;;;;IAiB7B,iBAAiB;QACb,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KACjD;;;IAMD,kBAAkB,CAAC,SAAiB;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;KACxC;IAGD,mBAAmB,CAAC,SAAiB;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC;KACzC;;;IAKD,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,sCAC1B,IAAI,KACP,OAAO,EAAE;gBACL,aAAa,EAAE,IAAI;gBACnB,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;gBAClD,sBAAsB,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;aAC3D,IACH,CAAC,CAAC;KACP;IAED,WAAW,CAAC,KAAsB;QAC9B,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;YAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;gBAC9B,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,KAAK;aAClB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC3B;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;KAC1D;IAED,iBAAiB,CAAC,EAAU;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,OAAO,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;KAClC;IAED,iBAAiB,CAAC,KAAa;QAC3B,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QAErF,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7E,OAAO,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC;KACxE;IAED,oBAAoB,CAAC,KAAa;QAC9B,OAAO,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC;KAC3C;IAED,OAAO,CAAC,KAAiB,EAAE,QAAyB;QAChD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;YACtC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;;gBAEpB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;aAC9B;iBAAM;;gBAEH,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;aACrC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO;SACV;QAED,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KACzC;IAED,gBAAgB,CAAC,GAAG;QAChB,GAAG,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;KAC9B;IAED,YAAY,CAAC,KAAY,EAAE,QAAyB;QAChD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KAC9C;IAED,YAAY,CAAC,KAAY,EAAE,QAAyB;QAChD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KAC9C;;;IAKD,MAAM;QACF,QACI,wEAAiB,QAAQ,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IACxD,6DACK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,KAC1B,UAAI,KAAK,EAAC,MAAM,IACZ,yBACY,MAAM,gBACF,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAC1D,KAAK,EAAE,IAAI,CAAC,OAAO,EACnB,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAC3C,YAAY,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EACrD,YAAY,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,IAErD,uBACY,WAAW,EACnB,KAAK,EAAC,sBAAsB,EAC5B,KAAK,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,iBAC1B,MAAM,GACpB,EACF,uBACY,UAAU,EAClB,KAAK,EAAC,WAAW,IAEhB,IAAI,CAAC,IAAI,CACP,EACP,YACI,EAAE,EAAE,QAAQ,IAAI,CAAC,EAAE,EAAE,aACb,WAAW,EACnB,KAAK,EAAC,YAAY,IAEjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAC1B,CACF,CACR,CACR,CAAC,CACD,CACS,EACpB;KACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/q2-legend/q2-legend.scss?tag=q2-legend&encapsulation=shadow","src/components/q2-legend/q2-legend.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n position: relative;\n width: 100%;\n display: block;\n}\n\nul {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n.item-button {\n align-items: center;\n background-color: transparent;\n border: none;\n column-gap: #{var-list(--tct-legend-item-gap, --app-scale-2x, 10px)};\n display: flex;\n height: #{var-list(--tct-legend-item-height, --app-scale-9x, 45px)};\n opacity: 1;\n padding-block: 0;\n padding-inline: #{var-list(--tct-legend-item-padding-inline, --app-scale-2x, 10px)};\n transition: opacity var(--app-tween-1, 0.2s ease);\n width: 100%;\n\n &:hover {\n cursor: pointer;\n }\n\n &-faded > * {\n opacity: #{var-list(--tct-legend-item-opacity-faded, --app-disabled-opacity, 0.4)};\n }\n}\n\n.item-color-indicator {\n border-radius: 50%;\n display: inline-block;\n flex-shrink: 0;\n height: #{var-list(--tct-legend-item-color-indicator-size, --app-scale-3x, 15px)};\n width: #{var-list(--tct-legend-item-color-indicator-size, --app-scale-3x, 15px)};\n}\n\n.item-name {\n color: var(--tct-legend-item-name-font-color, --t-text, #4d4d4d);\n display: inline-block;\n flex-grow: 1;\n font-size: #{var-list(--tct-legend-item-name-font-size, --app-font-size, 14px)};\n font-weight: var(--tct-legend-item-name-font-weight, 600);\n line-height: #{var-list(--tct-legend-item-name-line-height, --app-line-height, 1.428571429em)};\n text-align: left;\n}\n\n.item-value {\n color: #{var-list(--tct-legend-item-value-font-color, --t-text, #4d4d4d)};\n display: inline-block;\n flex-grow: 1;\n font-size: #{var-list(--tct-legend-item-value-font-size, --app-font-size, 14px)};\n font-weight: var(--tct-legend-item-value-font-weight, 400);\n line-height: #{var-list(--tct-legend-item-value-line-height, --app-line-height, 1.428571429em)};\n text-align: right;\n}\n","import { Component, ComponentInterface, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\nimport { IDonutChartData } from 'q2-tecton-common/lib/types/element-types';\n\n@Component({\n tag: 'q2-legend',\n shadow: true,\n styleUrl: 'q2-legend.scss',\n})\nexport class Q2Legend implements ComponentInterface {\n // #region State Properties\n\n @State()\n hoveredItemIndex: number = -1;\n\n @State()\n selectedItemIndex: number = -1;\n\n // #endregion\n // #region Public Property API\n\n /** An array of objects that contain the data to be displayed. */\n @Prop()\n data: IDonutChartData[] = [];\n\n /** The format of the value displayed in the legend. */\n @Prop({ reflect: true })\n format: 'default' | 'currency' = 'default';\n\n /** The id of the item to set as hovered. */\n @Prop({ reflect: true })\n hoveredItemId: string = null;\n\n /** The id of the item to set as selected. */\n @Prop({ reflect: true })\n selectedItemId: string = null;\n\n // #endregion\n // #region Events\n\n @Event()\n click: EventEmitter<IDonutChartData>;\n\n @Event()\n mouseenter: EventEmitter<IDonutChartData>;\n\n @Event()\n mouseleave: EventEmitter<IDonutChartData>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.watchHoveredItemId(this.hoveredItemId);\n this.watchSelectedItemId(this.selectedItemId);\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('hoveredItemId')\n watchHoveredItemId(newItemId: string) {\n const newItemIndex = this.getDataIndexForId(newItemId);\n this.hoveredItemIndex = newItemIndex;\n }\n\n @Watch('selectedItemId')\n watchSelectedItemId(newItemId: string) {\n const newItemIndex = this.getDataIndexForId(newItemId);\n this.selectedItemIndex = newItemIndex;\n }\n\n // #endregion\n // #region Local Methods\n\n get dataWithClasses() {\n return this.data.map((item, index) => ({\n ...item,\n classes: {\n 'item-button': true,\n 'item-button-faded': this.isItemButtonFaded(index),\n 'item-button-selected': this.isItemButtonSelected(index),\n },\n }));\n }\n\n formatValue(value: string | number) {\n const valueAsFloat = parseFloat(value.toString());\n if (this.format === 'currency') {\n return Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n }).format(valueAsFloat);\n }\n\n return Intl.NumberFormat('en-US').format(valueAsFloat);\n }\n\n getDataIndexForId(id: string) {\n const index = this.data.findIndex(item => item.id === id);\n return index >= 0 ? index : -1;\n }\n\n isItemButtonFaded(index: number) {\n if (this.isItemButtonSelected(index) || index == this.hoveredItemIndex) return false;\n\n if (this.selectedItemIndex >= 0 && this.hoveredItemIndex === -1) return true;\n\n return this.hoveredItemIndex >= 0 && index !== this.hoveredItemIndex;\n }\n\n isItemButtonSelected(index: number) {\n return index === this.selectedItemIndex;\n }\n\n onClick(event: MouseEvent, itemData: IDonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n if (this.selectedItemIndex === itemIndex) {\n this.selectedItemIndex = -1;\n if (event.detail === 0) {\n // Keyboard click\n this.hoveredItemIndex = -1;\n } else {\n // Mouse click\n this.hoveredItemIndex = itemIndex;\n }\n this.click.emit(null);\n return;\n }\n\n this.selectedItemIndex = itemIndex;\n this.click.emit(this.data[itemIndex]);\n }\n\n onClickElsewhere(obj) {\n obj.selectedItemIndex = -1;\n }\n\n onMouseEnter(event: Event, itemData: IDonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n this.hoveredItemIndex = itemIndex;\n this.mouseenter.emit(this.data[itemIndex]);\n }\n\n onMouseLeave(event: Event, itemData: IDonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n this.hoveredItemIndex = -1;\n this.mouseleave.emit(this.data[itemIndex]);\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <click-elsewhere onChange={() => this.onClickElsewhere(this)}>\n <ul>\n {this.dataWithClasses.map(item => (\n <li class=\"item\">\n <button\n test-id=\"item\"\n aria-label={`${item.name} ${this.formatValue(item.value)}`}\n class={item.classes}\n onClick={event => this.onClick(event, item)}\n onMouseEnter={event => this.onMouseEnter(event, item)}\n onMouseLeave={event => this.onMouseLeave(event, item)}\n >\n <span\n test-id=\"itemColor\"\n class=\"item-color-indicator\"\n style={{ backgroundColor: item.color }}\n aria-hidden=\"true\"\n />\n <span\n test-id=\"itemName\"\n class=\"item-name\"\n >\n {item.name}\n </span>\n <span\n id={`item-${item.id}`}\n test-id=\"itemValue\"\n class=\"item-value\"\n >\n {this.formatValue(item.value)}\n </span>\n </button>\n </li>\n ))}\n </ul>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"version":3}
@@ -71,7 +71,7 @@ const Q2List$1 = /*@__PURE__*/ proxyCustomElement(class Q2List extends HTMLEleme
71
71
  // #endregion
72
72
  // #region Render Methods
73
73
  render() {
74
- return (h("div", { key: '79c56178fe7a20615fa2a3b25a49eb2ee9271010', class: this.listClasses, ref: el => (this.listElement = el) }, (this.hasFilterSlot || this.hasLabelContent) && (h("div", { key: '429aca072e6464748b491d85f4409cb2012632f6', class: this.headerClasses }, h("div", { key: 'be1e773f4cbb3680bf9837c81ddff63594df3912', class: "label" }, this.label), this.hasFilterSlot && h("slot", { key: '52d8bc3b3cb7df3b81be7c41f82565fe7ac41aca', name: "filter" }))), h("div", { key: '988c0b2dfa3ea5615541c264689bc4fc21271a80', role: "list" }, h("slot", { key: 'c4923b739722c3aecef60c2b5cf8a3b9976749bc' }))));
74
+ return (h("div", { key: '84641cf41b60e166bf90242102dc931b85ba039c', class: this.listClasses, ref: el => (this.listElement = el) }, (this.hasFilterSlot || this.hasLabelContent) && (h("div", { key: 'de36fee422a5b68e57eea21d7e4a79b8c25e4e40', class: this.headerClasses }, h("div", { key: '77ccdd3a53951b8553afd4b5743e13d863120505', class: "label" }, this.label), this.hasFilterSlot && h("slot", { key: '1fc458fc36e6398cb69f00bd9423e04bd10a9407', name: "filter" }))), h("div", { key: '83b7fa5f2ed61ccb4a9f2e9f0b67592cc0ca1dd4', role: "list" }, h("slot", { key: '7217c6e48937d23cc5d37cfcbae4fbaf553a48ca' }))));
75
75
  }
76
76
  get hostElement() { return this; }
77
77
  static get style() { return Q2ListStyle0; }
@@ -15,7 +15,7 @@ const Q2Loc$1 = /*@__PURE__*/ proxyCustomElement(class Q2Loc extends HTMLElement
15
15
  // #endregion
16
16
  // #region Render Methods
17
17
  render() {
18
- return h("span", { key: '9c804f2ae2b01b8afb6ec80888270955214023d4' }, loc(this.value, this.substitutions));
18
+ return h("span", { key: 'b27e49dd804dd357eeea627ae4cb0fdb4596495b' }, loc(this.value, this.substitutions));
19
19
  }
20
20
  static get style() { return Q2LocStyle0; }
21
21
  }, [1, "q2-loc", {
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
- import { o as overrideFocus, i as isEventFromElement, n as nextPaint, p as isFirefox, l as loc } from './index2.js';
2
+ import { o as overrideFocus, i as isEventFromElement, n as nextPaint, q as isFirefox, l as loc } from './index2.js';
3
3
  import { d as defineCustomElement$1 } from './q2-icon2.js';
4
4
 
5
5
  const q2MessageCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}:host([hidden]){display:none}.message{border-left-width:var(--tct-message-bar-width, var(--t-message-bar-width, var(--app-scale-1x, 5px)));border-left-style:solid;--comp-line-height:var(--tct-message-line-height, var(--t-message-line-height, var(--app-line-height, 1.428571429em)));display:grid;gap:var(--tct-scale-1, var(--app-scale-1x, 5px));align-items:flex-start;background:var(--tct-message-background, var(--tct-message-bg, var(--t-message-bg, var(--tct-gray-14, var(--t-gray-14, var(--tct-gray-l3, var(--app-gray-l3, #f2f2f2)))))));color:var(--tct-message-font-color, var(--t-message-font-color, inherit));box-shadow:var(--tct-message-box-shadow, var(--t-message-box-shadow, inherit));border-radius:var(--tct-message-border-radius, var(--t-message-border-radius, inherit))}.message:focus{box-shadow:var(--const-global-focus)}.message-icon{--comp-top-offset:calc(calc(var(--comp-line-height) - var(--comp-icon-size)) / 2);--tct-icon-size:var(--comp-icon-size);top:var(--comp-top-offset);margin-bottom:calc(var(--comp-top-offset) * -1)}.message-content{flex:1;line-height:var(--comp-line-height)}::slotted(ul){--comp-list-default-padding:0 0 0 var(--app-scale-3x, 15px);padding:var(--tct-message-list-padding, var(--comp-list-default-padding))}:host(:not([appearance])),:host([appearance=standard]){--comp-default-margin:var(--app-scale-3x, 5px) 0;margin:var(--tct-message-margin, var(--comp-default-margin))}:host(:not([appearance])) .message,:host([appearance=standard]) .message{--comp-icon-size:var(--tct-message-icon-size, var(--t-message-icon-size, 24px));--comp-padding:var(--tct-message-padding, var(--t-message-padding, var(--app-scale-3x, 15px)));grid-template-columns:var(--comp-icon-size) 1fr;padding:var(--comp-padding);padding-left:calc(var(--comp-padding) - var(--tct-scale-2, var(--app-scale-2x, 10px)));padding-bottom:calc(var(--comp-padding) - var(--tct-scale-1, var(--app-scale-1x, 5px)))}:host(:not([appearance])) ::slotted(ul),:host([appearance=standard]) ::slotted(ul){--comp-list-default-margin:var(--app-scale-3x, 15px) 0;margin:var(--tct-message-list-margin, var(--comp-list-default-margin))}:host([appearance=minimal]){margin:0}:host([appearance=minimal]) .message{padding:var(--tct-message-minimal-padding, var(--t-message-minimal-padding, var(--app-scale-2x, 10px)));grid-template-columns:1fr}:host([appearance=minimal]) ::slotted(ul){margin:var(--tct-scale-1, var(--app-scale-1x, 5px)) 0}:host(:not([type])) .message,:host([type=info]) .message{border-left-color:var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))}:host(:not([type])) .message-icon,:host([type=info]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1));--tct-icon-stroke-secondary:var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))}:host([type=success]) .message{border-left-color:var(--tct-stoplight-success, var(--const-stoplight-success, #0e8a00))}:host([type=success]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-success, var(--const-stoplight-success, #0e8a00));--tct-icon-stroke-secondary:var(--tct-stoplight-success, var(--const-stoplight-success, #0e8a00))}:host([type=warning]) .message{border-left-color:var(--tct-stoplight-warning, var(--const-stoplight-warning, #c35500))}:host([type=warning]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-warning, var(--const-stoplight-warning, #c35500));--tct-icon-stroke-secondary:var(--tct-stoplight-warning, var(--const-stoplight-warning, #c35500))}:host([type=error]) .message,:host([type=danger]) .message{border-left-color:var(--tct-stoplight-error, var(--const-stoplight-alert, #d20a0a))}:host([type=error]) .message-icon,:host([type=danger]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-error, var(--const-stoplight-alert, #d20a0a));--tct-icon-stroke-secondary:var(--tct-stoplight-error, var(--const-stoplight-alert, #d20a0a))}";
@@ -65,7 +65,7 @@ const Q2Message = /*@__PURE__*/ proxyCustomElement(class Q2Message extends HTMLE
65
65
  const addDivForAriaLive = !isFirefox && this.presentToggle;
66
66
  const { description } = this;
67
67
  const messageLabel = loc(`tecton.element.message.type.${this.type ? this.type : 'info'}`);
68
- return (h("div", { key: 'e1d18f9049c2db5155c5c0bbc3910b054fe0750b', tabindex: "-1", class: "message", role: description ? undefined : 'alert', "aria-live": description ? undefined : 'assertive', "aria-atomic": description ? undefined : 'true', "aria-relevant": description && addAriaHiddenForAriaLive ? undefined : 'all', "test-id": "messageContainer" }, this.appearance === 'standard' ? this.messageIcon(this.type) : '', addDivForAriaLive && h("div", { key: 'e366d744172d8acf7147ffc281c10fc45631d667', class: "sr" }), h("div", { key: '0b28d2c734f29768c0e9101e237a0770357eee6d', class: "sr message-label" }, messageLabel), h("div", { key: 'bb77d8b0cee0e9ee237be61ec19c6d0d203b8a28', class: "message-content", "aria-hidden": addAriaHiddenForAriaLive ? 'true' : undefined }, h("slot", { key: '7b614a6fc1404bff19231b50059b4313c8c0989f' }))));
68
+ return (h("div", { key: 'a1f3db0aeec9502c1db92acc0fcd8138c09d5581', tabindex: "-1", class: "message", role: description ? undefined : 'alert', "aria-live": description ? undefined : 'assertive', "aria-atomic": description ? undefined : 'true', "aria-relevant": description && addAriaHiddenForAriaLive ? undefined : 'all', "test-id": "messageContainer" }, this.appearance === 'standard' ? this.messageIcon(this.type) : '', addDivForAriaLive && h("div", { key: 'd12074a170737cc538030798fe98e09051ff9438', class: "sr" }), h("div", { key: 'd05b18b097c7e799c3a858ba2bba1712b8ffe7e4', class: "sr message-label" }, messageLabel), h("div", { key: 'eeaed400418f0bbc2598aefd8773912387d4ca5c', class: "message-content", "aria-hidden": addAriaHiddenForAriaLive ? 'true' : undefined }, h("slot", { key: '2392ce36a05043bc88e87003ecbc54a7d9239b61' }))));
69
69
  }
70
70
  get hostElement() { return this; }
71
71
  static get style() { return Q2MessageStyle0; }
@@ -146,10 +146,10 @@ const Q2MonthPicker$1 = /*@__PURE__*/ proxyCustomElement(class Q2MonthPicker ext
146
146
  // #endregion
147
147
  // #region Render Methods
148
148
  render() {
149
- return (h("div", { key: '9a3d5b9d43098c70309afeca4c363d50e868f991', class: "month-container", onKeyDown: this.onMonthKeydown }, h("div", { key: '5ac2d482a9ad89e91159fa434c9936ce15334424', class: "navigation" }, h("q2-btn", { key: '2f8b0f30e9d0fa8afe77460693fd6e079a45b38f', class: "year-btn", onClick: () => this.viewChange.emit({
149
+ return (h("div", { key: '81330bd8327818f2afc2071bf88c3d4a9a25f1dd', class: "month-container", onKeyDown: this.onMonthKeydown }, h("div", { key: '3f46eb248acc1c8d4b80826d1d72a5d8795d6707', class: "navigation" }, h("q2-btn", { key: '07862558c87003e0cf53abd922976063c98297e9', class: "year-btn", onClick: () => this.viewChange.emit({
150
150
  view: 'year',
151
151
  selectedYear: this.year,
152
- }) }, h("span", { key: 'f072969beb15c5789afc9042e2826ea74b3a6296', class: "year" }, this.year), h("q2-icon", { key: '5b5cb096290de9963532a6524c127e6bdfd8cbdf', class: "year-icon off", type: "chevron-down" })), h("div", { key: 'af5660c0768fa85b40091b75039c3fdc48ab7577', class: "month-controller" }, h("div", { key: 'd76a935b9e17b79a9a9a3bbd06d090d4dfdb2409', class: "cal-year-prev-next" }, h("q2-btn", { key: '37a15ade5e768d735d76901d9376932efbe237f1', label: loc('tecton.element.calendar.previousYear'), "hide-label": true, class: "cal-nav-btn prev-year", "test-id": "previousYearButton", onClick: () => this.selectYear(this.year - 1) }, h("q2-icon", { key: '42e9ee837d8ac8162f384e2f67e2ccc11bfae2d2', type: "arrow-left" })), h("q2-btn", { key: '474bf6cc02daa2c4b0663276b2b65d1951abda36', label: loc('tecton.element.calendar.nextYear'), "hide-label": true, class: "cal-nav-btn next-year", "test-id": "nextYearButton", onClick: () => this.selectYear(this.year + 1) }, h("q2-icon", { key: '80ec6db5a6b9f150fc4dd96c01eae42ce31bc969', type: "arrow-right" }))))), h("div", { key: 'f5e78be0913701d00c81e4674d82e24f28d675e0', class: "month-list", onClick: this.onMonthSelection }, this.months.map((month, index) => (h("div", { class: "month" }, h("span", { role: "button", class: "month-button", "data-index": index, "aria-label": month.label, tabindex: index === this.focusedIndex ? 0 : -1 }, month.abbr))))), this.today && (h("div", { key: '66c9301a80b27c8dcaa47022991178053d618d89', class: "today-label" }, loc('tecton.element.calendar.today'), ": ", this.today))));
152
+ }) }, h("span", { key: '87f7e1bfc22b297eed50c050b3449c0a7cfa7cbb', class: "year" }, this.year), h("q2-icon", { key: 'f0e95030a63a1016391177c52770b8bc7723654f', class: "year-icon off", type: "chevron-down" })), h("div", { key: '2dae852a2934e0701827607062091745b9157a93', class: "month-controller" }, h("div", { key: 'da9f25a7ba14e79c092f01c43834a5dd8eac3a9d', class: "cal-year-prev-next" }, h("q2-btn", { key: '3e556a869dc73e8b8b124827cde3ea38dd05ac8d', label: loc('tecton.element.calendar.previousYear'), "hide-label": true, class: "cal-nav-btn prev-year", "test-id": "previousYearButton", onClick: () => this.selectYear(this.year - 1) }, h("q2-icon", { key: '818784c3c4b9139f206b1512d39f6b159edc28f0', type: "arrow-left" })), h("q2-btn", { key: 'b59ea5592d98d9d351cba75b1ea083faeb4fe758', label: loc('tecton.element.calendar.nextYear'), "hide-label": true, class: "cal-nav-btn next-year", "test-id": "nextYearButton", onClick: () => this.selectYear(this.year + 1) }, h("q2-icon", { key: '6e823542f44f2a1d26d3528d0c2f7aa49412c1a1', type: "arrow-right" }))))), h("div", { key: 'af3443ca09423f246bad3e00a261d047e8c9369b', class: "month-list", onClick: this.onMonthSelection }, this.months.map((month, index) => (h("div", { class: "month" }, h("span", { role: "button", class: "month-button", "data-index": index, "aria-label": month.label, tabindex: index === this.focusedIndex ? 0 : -1 }, month.abbr))))), this.today && (h("div", { key: 'ec7306ce48afb546b9f82a68c2ec7c2a592fd13c', class: "today-label" }, loc('tecton.element.calendar.today'), ": ", this.today))));
153
153
  }
154
154
  get hostElement() { return this; }
155
155
  static get style() { return Q2MonthPickerStyle0; }
@@ -50,7 +50,7 @@ const Q2Optgroup = /*@__PURE__*/ proxyCustomElement(class Q2Optgroup extends HTM
50
50
  // #endregion
51
51
  // #region Render Methods
52
52
  render() {
53
- return (h("div", { key: 'a6e920d9a1e04c3d1ddb3aa94da8199010d58a94', class: "q2-optgroup-container", hidden: this.hidden, "aria-labelledby": this.headerId, role: "group" }, h("div", { key: '7548493124d197bd4deab8585b519d110bed079d', class: "q2-optgroup-header", id: this.headerId }, (this.label && loc(this.label)) || ''), h("div", { key: '9dd48c12fb533b2dade166f3d2b71ac9032981fa', class: "q2-optgroup-options" }, h("slot", { key: '429c914a50a62bc0f6140a99e6ddd42dd3a36455' }))));
53
+ return (h("div", { key: 'a814883de8b62bc48a1345fb94d6936e43ca3827', class: "q2-optgroup-container", hidden: this.hidden, "aria-labelledby": this.headerId, role: "group" }, h("div", { key: '0186214c5c7c2a578591c257b905514e84173a3e', class: "q2-optgroup-header", id: this.headerId }, (this.label && loc(this.label)) || ''), h("div", { key: 'dbab9d660f63f6c370b127646467ae7f2e27a077', class: "q2-optgroup-options" }, h("slot", { key: 'a8c9a881869bf9da26223f75283b026d0ea7d277' }))));
54
54
  }
55
55
  get hostElement() { return this; }
56
56
  static get watchers() { return {
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { n as nextPaint, l as loc, o as overrideFocus, i as isEventFromElement, w as waitForNextPaint, q as isVisible } from './index2.js';
2
+ import { n as nextPaint, l as loc, o as overrideFocus, i as isEventFromElement, w as waitForNextPaint, t as isVisible } from './index2.js';
3
3
 
4
4
  const q2OptionListCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{position:relative;width:100%;display:block;line-height:var(--tct-option-list-line-height, var(--t-option-list-line-height, var(--app-line-height, 1.428571429em)))}.content{text-align:start}:host([is-sizeable]) .content{display:block;height:auto}";
5
5
  const Q2OptionListStyle0 = q2OptionListCss;
@@ -60,7 +60,6 @@ const Q2OptionList = /*@__PURE__*/ proxyCustomElement(class Q2OptionList extends
60
60
  break;
61
61
  case 'ArrowUp':
62
62
  event.preventDefault();
63
- this.activeIndex = 0;
64
63
  nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(-1);
65
64
  if (nextIndex === -1)
66
65
  break;
@@ -68,8 +67,7 @@ const Q2OptionList = /*@__PURE__*/ proxyCustomElement(class Q2OptionList extends
68
67
  break;
69
68
  case 'ArrowDown':
70
69
  event.preventDefault();
71
- this.activeIndex = 0;
72
- nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(0);
70
+ nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(1);
73
71
  if (nextIndex === -1)
74
72
  break;
75
73
  this.openDropdownWithActiveElement(nextIndex);
@@ -119,7 +117,7 @@ const Q2OptionList = /*@__PURE__*/ proxyCustomElement(class Q2OptionList extends
119
117
  };
120
118
  this.internalKeydownHandler = (event) => {
121
119
  event.stopPropagation();
122
- const { activeIndex, customSearch, allOptions, multiple } = this;
120
+ const { activeIndex, customSearch, allOptions, allVisibleOptions, multiple } = this;
123
121
  const { key, shiftKey } = event;
124
122
  let newOption;
125
123
  switch (key) {
@@ -151,8 +149,8 @@ const Q2OptionList = /*@__PURE__*/ proxyCustomElement(class Q2OptionList extends
151
149
  break;
152
150
  case 'ArrowUp':
153
151
  event.preventDefault();
154
- const isFirstOptionActive = activeIndex === 0;
155
- if (isFirstOptionActive)
152
+ const isFirstVisibleOptionActive = allVisibleOptions[0].active;
153
+ if (isFirstVisibleOptionActive)
156
154
  break;
157
155
  if (activeIndex === undefined) {
158
156
  this.setDefaultActiveElement();
@@ -167,8 +165,8 @@ const Q2OptionList = /*@__PURE__*/ proxyCustomElement(class Q2OptionList extends
167
165
  }
168
166
  case 'ArrowDown':
169
167
  event.preventDefault();
170
- const isLastOptionActive = activeIndex === allOptions.length - 1;
171
- if (isLastOptionActive)
168
+ const isLastVisibleOptionActive = allVisibleOptions[allVisibleOptions.length - 1].active;
169
+ if (isLastVisibleOptionActive)
172
170
  break;
173
171
  if (activeIndex === undefined) {
174
172
  this.setDefaultActiveElement();
@@ -202,6 +200,10 @@ const Q2OptionList = /*@__PURE__*/ proxyCustomElement(class Q2OptionList extends
202
200
  break;
203
201
  if (this.multiple && this.type === 'listbox')
204
202
  break;
203
+ if (this.type === 'menu') {
204
+ this.popoverState.emit({ open: false, action: 'close' });
205
+ break;
206
+ }
205
207
  newOption = allOptions.find(element => element.active);
206
208
  if (!newOption || newOption.disabled)
207
209
  return;
@@ -470,7 +472,7 @@ const Q2OptionList = /*@__PURE__*/ proxyCustomElement(class Q2OptionList extends
470
472
  }
471
473
  scrollToActiveOption() {
472
474
  const activeOption = this.allOptions[this.activeIndex];
473
- activeOption === null || activeOption === void 0 ? void 0 : activeOption.scrollIntoView({ block: 'nearest' });
475
+ activeOption === null || activeOption === void 0 ? void 0 : activeOption.scrollIntoView({ block: 'center' });
474
476
  }
475
477
  searchOptions(key, shouldSelect) {
476
478
  this.searchString = key;
@@ -541,7 +543,7 @@ const Q2OptionList = /*@__PURE__*/ proxyCustomElement(class Q2OptionList extends
541
543
  // #endregion
542
544
  // #region Render Methods
543
545
  render() {
544
- return (h(Host, { key: 'c96ee2b7016ed9bcb536cca496d16b7f1d82dffc' }, h("div", { key: 'f70955097de59ed340e319a1e2835837bae0deaa', class: "content", ref: el => (this.contentElement = el), onFocusout: this.focusoutHandler }, h("div", { key: 'd6bffcdc788da1b0f3871a216cff862e157eaa1a', class: "options", "aria-label": loc('tecton.element.optionList.label', [this.label]), "aria-multiselectable": `${!!this.multiple}`, role: this.type || 'listbox', onKeyDown: this.internalKeydownHandler, onClick: this.clickHandler }, h("slot", { key: 'bb5f8b8597574fd83b1c2a45438e43072b85d7e1' })))));
546
+ return (h(Host, { key: 'd0a9a9f08038a8856edbde465e82e5a48dd64925' }, h("div", { key: 'd6caf01cb66a3b2bbc063bfbf7b4f8968f7f5fd6', class: "content", ref: el => (this.contentElement = el), onFocusout: this.focusoutHandler }, h("div", { key: '6c5c6d4ed0446dd8b92df50d568eadf5ba13100a', class: "options", "aria-label": loc('tecton.element.optionList.label', [this.label]), "aria-multiselectable": `${!!this.multiple}`, role: this.type || 'listbox', onKeyDown: this.internalKeydownHandler, onClick: this.clickHandler }, h("slot", { key: '1ed18df8ed8e395511d1cb9078fcf6eefc886b67' })))));
545
547
  }
546
548
  get hostElement() { return this; }
547
549
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"q2-option-list2.js","mappings":"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","names":[],"sources":["src/components/q2-option-list/q2-option-list.scss?tag=q2-option-list&encapsulation=shadow","src/components/q2-option-list/q2-option-list.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n position: relative;\n width: 100%;\n display: block;\n line-height: var-list(var-prefixer(option-list-line-height),--app-line-height, 1.428571429em);\n}\n\n.content {\n text-align: start;\n\n :host([is-sizeable]) & {\n display: block;\n height: auto;\n }\n}\n","import {\n Component,\n Prop,\n h,\n Event,\n State,\n Element,\n ComponentInterface,\n Host,\n EventEmitter,\n Method,\n Watch,\n Listen,\n} from '@stencil/core';\nimport { isEventFromElement, isVisible, loc, nextPaint, overrideFocus, waitForNextPaint } from 'src/utils';\n\nexport interface IOptionValue {\n value: string;\n display?: string;\n}\n\n@Component({ tag: 'q2-option-list', shadow: true, styleUrl: 'q2-option-list.scss' })\nexport class Q2OptionList implements ComponentInterface {\n // #region Own Properties\n\n activeIndex: number;\n contentElement: HTMLElement;\n keyStore: {\n queue: string[];\n lastPressedAt: Date;\n } = {\n queue: [],\n lastPressedAt: new Date(),\n };\n pivotIndex: number;\n scheduledAfterRender: (() => void)[] = [];\n searchString: string;\n searchStringTimer: number;\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 hasOptions: boolean;\n\n // #endregion\n // #region Public Property API\n\n @Prop({ reflect: true })\n align: 'left' | 'right';\n\n /** Indicates a custom search is being implemented for the option list. */\n @Prop({ reflect: true })\n customSearch: boolean;\n\n /** Disables the option list. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** Determines the label that is applied to the option list for accessibility purposes. */\n @Prop()\n label: string = loc('tecton.element.optionList.label');\n\n /**\n * Enables the multi-select ability for the option list.\n * @info\n * Only applicable when options are provided.\n */\n @Prop({ reflect: true })\n multiple: boolean;\n\n /** Disables the logic that handles selecting and focusing an option in the option list. */\n @Prop({ reflect: true })\n noSelect: boolean;\n\n /** A list of the selected options on the element. */\n @Prop({ mutable: true })\n selectedOptions: IOptionValue[] = [];\n\n /** Applies focus to the selected option. */\n @Prop({ reflect: true, mutable: true })\n showSelected: boolean;\n\n /** Translates to the role of the option list */\n @Prop()\n type: 'menu' | 'listbox' = 'listbox';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when an option is selected or deselected.\n *\n * When the multi-select is enabled, the `value` property will be `undefined` and the `selectedOptions` property\n * will contain the selected option values.\n */\n @Event()\n change: EventEmitter<{ value: string; values: IOptionValue[] }>;\n\n /**\n * Emitted to indicate the intended state of the popover.\n * @private\n */\n @Event()\n popoverState: EventEmitter<{ open: boolean; action: 'close' | 'select' | 'open' }>;\n\n /**\n * Emitted when the component has finished rendering.\n * @private\n */\n @Event({ bubbles: false })\n ready: EventEmitter<undefined>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.hasOptions = !!this.hostElement.querySelectorAll('q2-option').length;\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.checkOptions();\n this.selectedOptionsUpdated();\n this.ready.emit();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click')\n handleClick(event: MouseEvent) {\n event.stopPropagation();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.popoverState.emit({ open: true, action: 'open' });\n const { activeIndex } = this;\n if (typeof activeIndex === 'number' && activeIndex > -1) {\n this.setActiveOption();\n this.setFocusedOption();\n } else {\n this.setDefaultActiveElement();\n }\n }\n\n // #endregion\n // #region Public Methods API\n\n @Method()\n async getContents(): Promise<(HTMLQ2OptgroupElement | HTMLQ2OptionElement)[]> {\n return this.allContents;\n }\n\n @Method()\n async getOptions(): Promise<HTMLQ2OptionElement[]> {\n return this.allOptions;\n }\n\n @Method()\n async handleExternalKeydown(event: KeyboardEvent) {\n this.externalKeydownHandler(event);\n }\n\n @Method()\n async setActiveElement(index: number) {\n this.activeIndex = index;\n this.setActiveOption();\n this.setFocusedOption();\n }\n\n @Method()\n async setDefaultActiveElement() {\n this.activeIndex = this.getDefaultActiveIndex();\n this.setActiveOption();\n this.setFocusedOption();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('selectedOptions')\n selectedOptionsUpdated() {\n if (this.multiple) {\n this.updateMultipleOptionAttrs();\n } else {\n this.updateSingleOptionAttrs();\n }\n }\n\n @Watch('showSelected')\n showSelectedUpdated(showSelected: boolean) {\n if (showSelected && this.selectedOptions.length === 0) {\n this.showSelected = false;\n return;\n }\n this.allOptions.forEach(option => (option._multiSelectHidden = showSelected ? !option.selected : false));\n }\n\n // #endregion\n // #region Local Methods\n\n get allContents(): (HTMLQ2OptgroupElement | HTMLQ2OptionElement)[] {\n const rootSlot = this.getRootSlot(this.hostElement);\n const acceptedTags = ['Q2-OPTGROUP', 'Q2-OPTION'];\n return rootSlot.filter(element => acceptedTags.includes(element.tagName)) as (\n | HTMLQ2OptgroupElement\n | HTMLQ2OptionElement\n )[];\n }\n\n get allOptions(): HTMLQ2OptionElement[] {\n const contents = this.allContents;\n\n const extractOptions = (\n elements: (HTMLQ2OptgroupElement | HTMLQ2OptionElement | Element)[]\n ): HTMLQ2OptionElement[] => {\n return elements.reduce((acc, element) => {\n if (element.tagName === 'Q2-OPTGROUP') {\n return [...acc, ...extractOptions(Array.from(element.children))];\n } else if (element.tagName === 'Q2-OPTION') {\n return [...acc, element];\n } else {\n return acc;\n }\n }, []);\n };\n\n return extractOptions(contents);\n }\n\n get allVisibleOptions(): HTMLQ2OptionElement[] {\n return this.allOptions.filter(\n option => !option.hidden && !option._multiSelectHidden && !option.disabled && !option.disabledGroup\n );\n }\n\n adjustActiveOptionAndScroll(numToAdd: number) {\n this.activeIndex += numToAdd;\n this.setActiveOption();\n this.setFocusedOption();\n this.scrollToActiveOption();\n }\n\n async checkOptions() {\n const { type } = this;\n const options = await this.getOptions();\n if (!type) return;\n const optionRole = type === 'menu' ? 'menuitem' : 'option';\n options.forEach(option => {\n option.role = optionRole;\n });\n }\n\n clickHandler = (event: Event) => {\n const target = event.target as HTMLQ2OptionElement;\n const option = target.closest('q2-option');\n this.selectOption(option);\n if (this.multiple) return;\n this.popoverState.emit({ open: false, action: 'select' });\n };\n\n /* tslint:disable:cyclomatic-complexity */\n externalKeydownHandler = (event: KeyboardEvent) => {\n event.stopPropagation();\n const { activeIndex, customSearch, allOptions } = this;\n const { key } = event;\n\n let nextIndex;\n switch (key) {\n case ' ':\n if (this.searchString) {\n if (customSearch) break;\n\n this.searchOptions(key, true);\n break;\n } else if (this.type === 'menu') {\n this.activeIndex = 0;\n this.openDropdownWithActiveElement(0);\n } else {\n this.setDefaultActiveElement();\n nextPaint(() => this.popoverState.emit({ open: true, action: 'open' }));\n }\n break;\n\n case 'Enter':\n if (this.type === 'menu') {\n this.activeIndex = 0;\n this.openDropdownWithActiveElement(0);\n } else {\n this.setDefaultActiveElement();\n nextPaint(() => this.popoverState.emit({ open: true, action: 'open' }));\n }\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.activeIndex = 0;\n nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(-1);\n if (nextIndex === -1) break;\n this.openDropdownWithActiveElement(nextIndex);\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.activeIndex = 0;\n nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(0);\n if (nextIndex === -1) break;\n this.openDropdownWithActiveElement(nextIndex);\n break;\n\n case 'Home':\n event.preventDefault();\n this.openDropdownWithActiveElement(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.openDropdownWithActiveElement(allOptions.length - 1);\n break;\n\n case 'PageUp':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.max((activeIndex || 0) - 10, 0));\n break;\n\n case 'PageDown':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.min((activeIndex || 0) + 10, allOptions.length - 1));\n break;\n\n case 'Tab':\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n case 'Esc':\n case 'Escape':\n if (this.noSelect) this.setActiveElement(null);\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n default:\n if (customSearch) break;\n if (!key.match(/^[\\w]$/)) break;\n\n this.searchOptions(key, true);\n break;\n }\n };\n\n /* tslint:enable:cyclomatic-complexity */\n\n focusoutHandler = (event: FocusEvent) => {\n const { relatedTarget } = event as unknown as { relatedTarget: HTMLQ2OptionElement };\n const isInQ2OptionList = this.allOptions.includes(relatedTarget);\n const isInLightDom = !isInQ2OptionList && this.hostElement.contains(relatedTarget);\n if (isInQ2OptionList || isInLightDom) {\n event.stopPropagation();\n }\n };\n\n focusSelectedSibling(option: HTMLQ2OptionElement) {\n const { allVisibleOptions, allOptions } = this;\n const hasNoSiblings = allVisibleOptions.length < 2;\n if (hasNoSiblings) {\n this.showSelected = false;\n return;\n }\n\n const selectedOptionVisibleIndex = allVisibleOptions.indexOf(option);\n const nextVisibleSiblingIndex = selectedOptionVisibleIndex\n ? selectedOptionVisibleIndex - 1\n : selectedOptionVisibleIndex + 1;\n const nextVisibleSibling = allVisibleOptions[nextVisibleSiblingIndex];\n const nextSiblingIndex = allOptions.indexOf(nextVisibleSibling);\n\n this.activeIndex = nextSiblingIndex;\n this.setFocusedOption();\n this.scheduledAfterRender.push(() => {\n option._multiSelectHidden = !option.selected;\n });\n }\n\n getDefaultActiveIndex() {\n const { allOptions } = this;\n const firstSelected = allOptions.findIndex(element => element.selected);\n if (firstSelected > -1) return firstSelected;\n\n const firstEnabled = allOptions.findIndex(element => !element.hidden);\n if (firstEnabled > -1) return firstEnabled;\n\n return 0;\n }\n\n getNextVisibleIndex(direction) {\n const { allVisibleOptions, allOptions, activeIndex } = this;\n const activeOption = allOptions[activeIndex];\n const visibleActiveOptionIndex = allVisibleOptions.indexOf(activeOption);\n let nextVisibleOptionIndex = visibleActiveOptionIndex + direction;\n\n if (nextVisibleOptionIndex < 0) {\n nextVisibleOptionIndex = allVisibleOptions.length - 1;\n } else if (nextVisibleOptionIndex > allVisibleOptions.length - 1) {\n nextVisibleOptionIndex = 0;\n }\n\n const nextVisibleOption = allVisibleOptions[nextVisibleOptionIndex];\n return allOptions.indexOf(nextVisibleOption);\n }\n\n getRootSlot(element: Element): Element[] {\n const slot = element.querySelector('slot');\n const assignedElements = slot?.assignedElements() ?? Array.from(element.children);\n const hasAnotherSlot = !!assignedElements.length && assignedElements[0].tagName === 'SLOT';\n if (hasAnotherSlot) {\n return this.getRootSlot(assignedElements[0]);\n } else {\n return assignedElements;\n }\n }\n\n internalKeydownHandler = (event: KeyboardEvent) => {\n event.stopPropagation();\n const { activeIndex, customSearch, allOptions, multiple } = this;\n const { key, shiftKey } = event;\n\n let newOption;\n switch (key) {\n case ' ':\n if (this.searchString && !this.multiple) {\n if (customSearch) break;\n\n this.searchOptions(key, false);\n break;\n }\n\n event.preventDefault();\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) break;\n this.selectOption(newOption);\n if (multiple) break;\n this.popoverState.emit({ open: false, action: 'select' });\n break;\n\n case 'Enter':\n event.preventDefault();\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) break;\n this.selectOption(newOption);\n if (multiple) break;\n this.popoverState.emit({ open: false, action: 'select' });\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n const isFirstOptionActive = activeIndex === 0;\n if (isFirstOptionActive) break;\n if (activeIndex === undefined) {\n this.setDefaultActiveElement();\n break;\n } else {\n const nextIndex = this.getNextVisibleIndex(-1);\n if (nextIndex === -1) break;\n this.adjustActiveOptionAndScroll(nextIndex - activeIndex);\n break;\n }\n\n case 'ArrowDown':\n event.preventDefault();\n const isLastOptionActive = activeIndex === allOptions.length - 1;\n if (isLastOptionActive) break;\n if (activeIndex === undefined) {\n this.setDefaultActiveElement();\n break;\n } else {\n const nextIndex = this.getNextVisibleIndex(1);\n if (nextIndex === -1) break;\n this.adjustActiveOptionAndScroll(nextIndex - activeIndex);\n break;\n }\n\n case 'Home':\n event.preventDefault();\n this.openDropdownWithActiveElement(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.openDropdownWithActiveElement(allOptions.length - 1);\n break;\n\n case 'PageUp':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.max(activeIndex - 10, 0));\n break;\n\n case 'PageDown':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.min(activeIndex + 10, allOptions.length - 1));\n break;\n\n case 'Tab':\n if (shiftKey) break;\n if (this.multiple && this.type === 'listbox') break;\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) return;\n this.selectOption(newOption);\n break;\n\n case 'Esc':\n case 'Escape':\n if (this.noSelect) this.setActiveElement(null);\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n default:\n if (customSearch) break;\n if (!key.match(/^[\\w]$/)) break;\n\n this.searchOptions(key, false);\n break;\n }\n };\n\n async openDropdownWithActiveElement(activeIndex: number) {\n if (this.disabled) return;\n this.popoverState.emit({ open: true, action: 'open' });\n await waitForNextPaint();\n this.activeIndex = activeIndex;\n this.setActiveOption();\n this.setFocusedOption();\n this.scrollToActiveOption();\n }\n\n resetTimer() {\n if (this.searchStringTimer) {\n clearTimeout(this.searchStringTimer);\n }\n\n this.searchStringTimer = window.setTimeout(() => {\n this.searchString = null;\n }, 2000);\n }\n\n scrollToActiveOption() {\n const activeOption = this.allOptions[this.activeIndex];\n activeOption?.scrollIntoView({ block: 'nearest' });\n }\n\n searchAndFocus = (keyValue: string, shouldSelect: boolean) => {\n // pseudo search in non-searchable select\n const reorder = () => {\n this.pivotIndex = this.pivotIndex === undefined ? 0 : (this.activeIndex || 0) + 1;\n const list = this.allOptions.map((element, index) => ({ element, index }));\n return [...list.slice(this.pivotIndex), ...list.slice(0, this.pivotIndex)];\n };\n\n const buildQueue = () => {\n const now = new Date();\n if (now.getTime() - this.keyStore.lastPressedAt.getTime() > 1000) {\n // empty stored keys if delay > 1s\n this.keyStore.queue.length = 0;\n }\n if (this.keyStore.queue.length !== 1 || this.keyStore.queue[0] !== keyValue) {\n this.keyStore.queue.push(keyValue);\n }\n this.keyStore.lastPressedAt = now;\n };\n\n const searchIndex = (list: any[]) => {\n const keyStr = this.keyStore.queue.join('');\n return list.find(v => {\n return (\n !v.element.disabled &&\n v.element.display &&\n (v.element.display.match(new RegExp(`^${keyStr}`, 'i')) ||\n v.element.display.replace(/\\s/g, '').match(new RegExp(`^${keyStr}`, 'i')))\n );\n });\n };\n\n const setFocus = ({ index }) => {\n if (this.multiple) {\n // multiple: should open to make sure that which options are selected\n this.openDropdownWithActiveElement(index);\n } else {\n this.activeIndex = index;\n if (shouldSelect) {\n this.selectOption(this.allOptions[index]);\n this.popoverState.emit({ open: false, action: 'select' });\n } else this.setActiveElement(index);\n }\n };\n\n buildQueue();\n const matched = searchIndex(reorder());\n if (matched) {\n setFocus(matched);\n }\n };\n\n searchOptions(key: string, shouldSelect?: boolean) {\n this.searchString = key;\n this.searchAndFocus(key, shouldSelect);\n }\n\n selectOption(selectedOption: HTMLQ2OptionElement) {\n const { multiple, noSelect, showSelected } = this;\n if (!selectedOption || selectedOption.disabled || selectedOption.disabledGroup) return;\n const selectedValue = selectedOption.value;\n const valueObject = {\n value: selectedValue,\n display: selectedOption.display || selectedOption.innerText.trim(),\n };\n\n let values: IOptionValue[] = [];\n if (multiple) {\n const { selectedOptions } = this;\n const isAlreadySelected = selectedOptions.find(option => option.value === selectedValue);\n\n if (isAlreadySelected) {\n values = selectedOptions.filter(({ value }) => value !== selectedValue);\n } else {\n values = [...selectedOptions, valueObject];\n }\n\n if (showSelected) this.focusSelectedSibling(selectedOption);\n } else {\n values = [valueObject];\n }\n\n if (noSelect) this.setActiveElement(null);\n else this.selectedOptions = values;\n\n this.change.emit({ value: selectedValue, values });\n }\n\n setActiveOption() {\n const activeIndex = this.activeIndex;\n\n this.allOptions.forEach((element, elementIndex) => {\n element.active = activeIndex === elementIndex;\n });\n }\n\n setFocusedOption() {\n const option = this.allOptions[this.activeIndex];\n if (!option) return;\n\n const isOptionVisible = isVisible(option);\n if (isOptionVisible) option.focus();\n else nextPaint(() => option.focus());\n }\n\n updateMultipleOptionAttrs() {\n const { allOptions, selectedOptions } = this;\n const selectedValues = selectedOptions.map(({ value }) => value);\n allOptions.forEach(element => {\n element.selected = selectedValues.includes(element.value);\n });\n }\n\n updateSingleOptionAttrs() {\n const { allOptions, selectedOptions } = this;\n const selectedValue = selectedOptions[0]?.value || undefined;\n allOptions.forEach(element => {\n element.selected = element.value === selectedValue;\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <Host>\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n onFocusout={this.focusoutHandler}\n >\n <div\n class=\"options\"\n aria-label={loc('tecton.element.optionList.label', [this.label])}\n aria-multiselectable={`${!!this.multiple}`}\n role={this.type || 'listbox'}\n onKeyDown={this.internalKeydownHandler}\n onClick={this.clickHandler}\n >\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n\n // #endregion\n}\n"],"version":3}
1
+ {"file":"q2-option-list2.js","mappings":"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","names":[],"sources":["src/components/q2-option-list/q2-option-list.scss?tag=q2-option-list&encapsulation=shadow","src/components/q2-option-list/q2-option-list.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n position: relative;\n width: 100%;\n display: block;\n line-height: var-list(var-prefixer(option-list-line-height),--app-line-height, 1.428571429em);\n}\n\n.content {\n text-align: start;\n\n :host([is-sizeable]) & {\n display: block;\n height: auto;\n }\n}\n","import {\n Component,\n Prop,\n h,\n Event,\n State,\n Element,\n ComponentInterface,\n Host,\n EventEmitter,\n Method,\n Watch,\n Listen,\n} from '@stencil/core';\nimport { isEventFromElement, isVisible, loc, nextPaint, overrideFocus, waitForNextPaint } from 'src/utils';\n\nexport interface IOptionValue {\n value: string;\n display?: string;\n}\n\n@Component({ tag: 'q2-option-list', shadow: true, styleUrl: 'q2-option-list.scss' })\nexport class Q2OptionList implements ComponentInterface {\n // #region Own Properties\n\n activeIndex: number;\n contentElement: HTMLElement;\n keyStore: {\n queue: string[];\n lastPressedAt: Date;\n } = {\n queue: [],\n lastPressedAt: new Date(),\n };\n pivotIndex: number;\n scheduledAfterRender: (() => void)[] = [];\n searchString: string;\n searchStringTimer: number;\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 hasOptions: boolean;\n\n // #endregion\n // #region Public Property API\n\n @Prop({ reflect: true })\n align: 'left' | 'right';\n\n /** Indicates a custom search is being implemented for the option list. */\n @Prop({ reflect: true })\n customSearch: boolean;\n\n /** Disables the option list. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /** Determines the label that is applied to the option list for accessibility purposes. */\n @Prop()\n label: string = loc('tecton.element.optionList.label');\n\n /**\n * Enables the multi-select ability for the option list.\n * @info\n * Only applicable when options are provided.\n */\n @Prop({ reflect: true })\n multiple: boolean;\n\n /** Disables the logic that handles selecting and focusing an option in the option list. */\n @Prop({ reflect: true })\n noSelect: boolean;\n\n /** A list of the selected options on the element. */\n @Prop({ mutable: true })\n selectedOptions: IOptionValue[] = [];\n\n /** Applies focus to the selected option. */\n @Prop({ reflect: true, mutable: true })\n showSelected: boolean;\n\n /** Translates to the role of the option list */\n @Prop()\n type: 'menu' | 'listbox' = 'listbox';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when an option is selected or deselected.\n *\n * When the multi-select is enabled, the `value` property will be `undefined` and the `selectedOptions` property\n * will contain the selected option values.\n */\n @Event()\n change: EventEmitter<{ value: string; values: IOptionValue[] }>;\n\n /**\n * Emitted to indicate the intended state of the popover.\n * @private\n */\n @Event()\n popoverState: EventEmitter<{ open: boolean; action: 'close' | 'select' | 'open' }>;\n\n /**\n * Emitted when the component has finished rendering.\n * @private\n */\n @Event({ bubbles: false })\n ready: EventEmitter<undefined>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.hasOptions = !!this.hostElement.querySelectorAll('q2-option').length;\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.checkOptions();\n this.selectedOptionsUpdated();\n this.ready.emit();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click')\n handleClick(event: MouseEvent) {\n event.stopPropagation();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.popoverState.emit({ open: true, action: 'open' });\n const { activeIndex } = this;\n if (typeof activeIndex === 'number' && activeIndex > -1) {\n this.setActiveOption();\n this.setFocusedOption();\n } else {\n this.setDefaultActiveElement();\n }\n }\n\n // #endregion\n // #region Public Methods API\n\n @Method()\n async getContents(): Promise<(HTMLQ2OptgroupElement | HTMLQ2OptionElement)[]> {\n return this.allContents;\n }\n\n @Method()\n async getOptions(): Promise<HTMLQ2OptionElement[]> {\n return this.allOptions;\n }\n\n @Method()\n async handleExternalKeydown(event: KeyboardEvent) {\n this.externalKeydownHandler(event);\n }\n\n @Method()\n async setActiveElement(index: number) {\n this.activeIndex = index;\n this.setActiveOption();\n this.setFocusedOption();\n }\n\n @Method()\n async setDefaultActiveElement() {\n this.activeIndex = this.getDefaultActiveIndex();\n this.setActiveOption();\n this.setFocusedOption();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('selectedOptions')\n selectedOptionsUpdated() {\n if (this.multiple) {\n this.updateMultipleOptionAttrs();\n } else {\n this.updateSingleOptionAttrs();\n }\n }\n\n @Watch('showSelected')\n showSelectedUpdated(showSelected: boolean) {\n if (showSelected && this.selectedOptions.length === 0) {\n this.showSelected = false;\n return;\n }\n this.allOptions.forEach(option => (option._multiSelectHidden = showSelected ? !option.selected : false));\n }\n\n // #endregion\n // #region Local Methods\n\n get allContents(): (HTMLQ2OptgroupElement | HTMLQ2OptionElement)[] {\n const rootSlot = this.getRootSlot(this.hostElement);\n const acceptedTags = ['Q2-OPTGROUP', 'Q2-OPTION'];\n return rootSlot.filter(element => acceptedTags.includes(element.tagName)) as (\n | HTMLQ2OptgroupElement\n | HTMLQ2OptionElement\n )[];\n }\n\n get allOptions(): HTMLQ2OptionElement[] {\n const contents = this.allContents;\n\n const extractOptions = (\n elements: (HTMLQ2OptgroupElement | HTMLQ2OptionElement | Element)[]\n ): HTMLQ2OptionElement[] => {\n return elements.reduce((acc, element) => {\n if (element.tagName === 'Q2-OPTGROUP') {\n return [...acc, ...extractOptions(Array.from(element.children))];\n } else if (element.tagName === 'Q2-OPTION') {\n return [...acc, element];\n } else {\n return acc;\n }\n }, []);\n };\n\n return extractOptions(contents);\n }\n\n get allVisibleOptions(): HTMLQ2OptionElement[] {\n return this.allOptions.filter(\n option => !option.hidden && !option._multiSelectHidden && !option.disabled && !option.disabledGroup\n );\n }\n\n adjustActiveOptionAndScroll(numToAdd: number) {\n this.activeIndex += numToAdd;\n this.setActiveOption();\n this.setFocusedOption();\n this.scrollToActiveOption();\n }\n\n async checkOptions() {\n const { type } = this;\n const options = await this.getOptions();\n if (!type) return;\n const optionRole = type === 'menu' ? 'menuitem' : 'option';\n options.forEach(option => {\n option.role = optionRole;\n });\n }\n\n clickHandler = (event: Event) => {\n const target = event.target as HTMLQ2OptionElement;\n const option = target.closest('q2-option');\n this.selectOption(option);\n if (this.multiple) return;\n this.popoverState.emit({ open: false, action: 'select' });\n };\n\n /* tslint:disable:cyclomatic-complexity */\n externalKeydownHandler = (event: KeyboardEvent) => {\n event.stopPropagation();\n const { activeIndex, customSearch, allOptions } = this;\n const { key } = event;\n\n let nextIndex;\n switch (key) {\n case ' ':\n if (this.searchString) {\n if (customSearch) break;\n\n this.searchOptions(key, true);\n break;\n } else if (this.type === 'menu') {\n this.activeIndex = 0;\n this.openDropdownWithActiveElement(0);\n } else {\n this.setDefaultActiveElement();\n nextPaint(() => this.popoverState.emit({ open: true, action: 'open' }));\n }\n break;\n\n case 'Enter':\n if (this.type === 'menu') {\n this.activeIndex = 0;\n this.openDropdownWithActiveElement(0);\n } else {\n this.setDefaultActiveElement();\n nextPaint(() => this.popoverState.emit({ open: true, action: 'open' }));\n }\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(-1);\n if (nextIndex === -1) break;\n this.openDropdownWithActiveElement(nextIndex);\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n nextIndex = !!this.selectedOptions.length ? this.getDefaultActiveIndex() : this.getNextVisibleIndex(1);\n if (nextIndex === -1) break;\n this.openDropdownWithActiveElement(nextIndex);\n break;\n\n case 'Home':\n event.preventDefault();\n this.openDropdownWithActiveElement(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.openDropdownWithActiveElement(allOptions.length - 1);\n break;\n\n case 'PageUp':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.max((activeIndex || 0) - 10, 0));\n break;\n\n case 'PageDown':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.min((activeIndex || 0) + 10, allOptions.length - 1));\n break;\n\n case 'Tab':\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n case 'Esc':\n case 'Escape':\n if (this.noSelect) this.setActiveElement(null);\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n default:\n if (customSearch) break;\n if (!key.match(/^[\\w]$/)) break;\n\n this.searchOptions(key, true);\n break;\n }\n };\n\n /* tslint:enable:cyclomatic-complexity */\n\n focusoutHandler = (event: FocusEvent) => {\n const { relatedTarget } = event as unknown as { relatedTarget: HTMLQ2OptionElement };\n const isInQ2OptionList = this.allOptions.includes(relatedTarget);\n const isInLightDom = !isInQ2OptionList && this.hostElement.contains(relatedTarget);\n if (isInQ2OptionList || isInLightDom) {\n event.stopPropagation();\n }\n };\n\n focusSelectedSibling(option: HTMLQ2OptionElement) {\n const { allVisibleOptions, allOptions } = this;\n const hasNoSiblings = allVisibleOptions.length < 2;\n if (hasNoSiblings) {\n this.showSelected = false;\n return;\n }\n\n const selectedOptionVisibleIndex = allVisibleOptions.indexOf(option);\n const nextVisibleSiblingIndex = selectedOptionVisibleIndex\n ? selectedOptionVisibleIndex - 1\n : selectedOptionVisibleIndex + 1;\n const nextVisibleSibling = allVisibleOptions[nextVisibleSiblingIndex];\n const nextSiblingIndex = allOptions.indexOf(nextVisibleSibling);\n\n this.activeIndex = nextSiblingIndex;\n this.setFocusedOption();\n this.scheduledAfterRender.push(() => {\n option._multiSelectHidden = !option.selected;\n });\n }\n\n getDefaultActiveIndex() {\n const { allOptions } = this;\n const firstSelected = allOptions.findIndex(element => element.selected);\n if (firstSelected > -1) return firstSelected;\n\n const firstEnabled = allOptions.findIndex(element => !element.hidden);\n if (firstEnabled > -1) return firstEnabled;\n\n return 0;\n }\n\n getNextVisibleIndex(direction) {\n const { allVisibleOptions, allOptions, activeIndex } = this;\n const activeOption = allOptions[activeIndex];\n const visibleActiveOptionIndex = allVisibleOptions.indexOf(activeOption);\n let nextVisibleOptionIndex = visibleActiveOptionIndex + direction;\n\n if (nextVisibleOptionIndex < 0) {\n nextVisibleOptionIndex = allVisibleOptions.length - 1;\n } else if (nextVisibleOptionIndex > allVisibleOptions.length - 1) {\n nextVisibleOptionIndex = 0;\n }\n\n const nextVisibleOption = allVisibleOptions[nextVisibleOptionIndex];\n return allOptions.indexOf(nextVisibleOption);\n }\n\n getRootSlot(element: Element): Element[] {\n const slot = element.querySelector('slot');\n const assignedElements = slot?.assignedElements() ?? Array.from(element.children);\n const hasAnotherSlot = !!assignedElements.length && assignedElements[0].tagName === 'SLOT';\n if (hasAnotherSlot) {\n return this.getRootSlot(assignedElements[0]);\n } else {\n return assignedElements;\n }\n }\n\n internalKeydownHandler = (event: KeyboardEvent) => {\n event.stopPropagation();\n const { activeIndex, customSearch, allOptions, allVisibleOptions, multiple } = this;\n const { key, shiftKey } = event;\n\n let newOption: HTMLQ2OptionElement;\n switch (key) {\n case ' ':\n if (this.searchString && !this.multiple) {\n if (customSearch) break;\n\n this.searchOptions(key, false);\n break;\n }\n\n event.preventDefault();\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) break;\n this.selectOption(newOption);\n if (multiple) break;\n this.popoverState.emit({ open: false, action: 'select' });\n break;\n\n case 'Enter':\n event.preventDefault();\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) break;\n this.selectOption(newOption);\n if (multiple) break;\n this.popoverState.emit({ open: false, action: 'select' });\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n const isFirstVisibleOptionActive = allVisibleOptions[0].active;\n if (isFirstVisibleOptionActive) break;\n if (activeIndex === undefined) {\n this.setDefaultActiveElement();\n break;\n } else {\n const nextIndex = this.getNextVisibleIndex(-1);\n if (nextIndex === -1) break;\n this.adjustActiveOptionAndScroll(nextIndex - activeIndex);\n break;\n }\n\n case 'ArrowDown':\n event.preventDefault();\n const isLastVisibleOptionActive = allVisibleOptions[allVisibleOptions.length - 1].active;\n if (isLastVisibleOptionActive) break;\n if (activeIndex === undefined) {\n this.setDefaultActiveElement();\n break;\n } else {\n const nextIndex = this.getNextVisibleIndex(1);\n if (nextIndex === -1) break;\n this.adjustActiveOptionAndScroll(nextIndex - activeIndex);\n break;\n }\n\n case 'Home':\n event.preventDefault();\n this.openDropdownWithActiveElement(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.openDropdownWithActiveElement(allOptions.length - 1);\n break;\n\n case 'PageUp':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.max(activeIndex - 10, 0));\n break;\n\n case 'PageDown':\n event.preventDefault();\n this.openDropdownWithActiveElement(Math.min(activeIndex + 10, allOptions.length - 1));\n break;\n\n case 'Tab':\n if (shiftKey) break;\n if (this.multiple && this.type === 'listbox') break;\n if (this.type === 'menu') {\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n }\n\n newOption = allOptions.find(element => element.active);\n if (!newOption || newOption.disabled) return;\n this.selectOption(newOption);\n break;\n\n case 'Esc':\n case 'Escape':\n if (this.noSelect) this.setActiveElement(null);\n this.popoverState.emit({ open: false, action: 'close' });\n break;\n\n default:\n if (customSearch) break;\n if (!key.match(/^[\\w]$/)) break;\n\n this.searchOptions(key, false);\n break;\n }\n };\n\n async openDropdownWithActiveElement(activeIndex: number) {\n if (this.disabled) return;\n this.popoverState.emit({ open: true, action: 'open' });\n await waitForNextPaint();\n this.activeIndex = activeIndex;\n this.setActiveOption();\n this.setFocusedOption();\n this.scrollToActiveOption();\n }\n\n resetTimer() {\n if (this.searchStringTimer) {\n clearTimeout(this.searchStringTimer);\n }\n\n this.searchStringTimer = window.setTimeout(() => {\n this.searchString = null;\n }, 2000);\n }\n\n scrollToActiveOption() {\n const activeOption = this.allOptions[this.activeIndex];\n activeOption?.scrollIntoView({ block: 'center' });\n }\n\n searchAndFocus = (keyValue: string, shouldSelect: boolean) => {\n // pseudo search in non-searchable select\n const reorder = () => {\n this.pivotIndex = this.pivotIndex === undefined ? 0 : (this.activeIndex || 0) + 1;\n const list = this.allOptions.map((element, index) => ({ element, index }));\n return [...list.slice(this.pivotIndex), ...list.slice(0, this.pivotIndex)];\n };\n\n const buildQueue = () => {\n const now = new Date();\n if (now.getTime() - this.keyStore.lastPressedAt.getTime() > 1000) {\n // empty stored keys if delay > 1s\n this.keyStore.queue.length = 0;\n }\n if (this.keyStore.queue.length !== 1 || this.keyStore.queue[0] !== keyValue) {\n this.keyStore.queue.push(keyValue);\n }\n this.keyStore.lastPressedAt = now;\n };\n\n const searchIndex = (list: any[]) => {\n const keyStr = this.keyStore.queue.join('');\n return list.find(v => {\n return (\n !v.element.disabled &&\n v.element.display &&\n (v.element.display.match(new RegExp(`^${keyStr}`, 'i')) ||\n v.element.display.replace(/\\s/g, '').match(new RegExp(`^${keyStr}`, 'i')))\n );\n });\n };\n\n const setFocus = ({ index }) => {\n if (this.multiple) {\n // multiple: should open to make sure that which options are selected\n this.openDropdownWithActiveElement(index);\n } else {\n this.activeIndex = index;\n if (shouldSelect) {\n this.selectOption(this.allOptions[index]);\n this.popoverState.emit({ open: false, action: 'select' });\n } else this.setActiveElement(index);\n }\n };\n\n buildQueue();\n const matched = searchIndex(reorder());\n if (matched) {\n setFocus(matched);\n }\n };\n\n searchOptions(key: string, shouldSelect?: boolean) {\n this.searchString = key;\n this.searchAndFocus(key, shouldSelect);\n }\n\n selectOption(selectedOption: HTMLQ2OptionElement) {\n const { multiple, noSelect, showSelected } = this;\n if (!selectedOption || selectedOption.disabled || selectedOption.disabledGroup) return;\n const selectedValue = selectedOption.value;\n const valueObject = {\n value: selectedValue,\n display: selectedOption.display || selectedOption.innerText.trim(),\n };\n\n let values: IOptionValue[] = [];\n if (multiple) {\n const { selectedOptions } = this;\n const isAlreadySelected = selectedOptions.find(option => option.value === selectedValue);\n\n if (isAlreadySelected) {\n values = selectedOptions.filter(({ value }) => value !== selectedValue);\n } else {\n values = [...selectedOptions, valueObject];\n }\n\n if (showSelected) this.focusSelectedSibling(selectedOption);\n } else {\n values = [valueObject];\n }\n\n if (noSelect) this.setActiveElement(null);\n else this.selectedOptions = values;\n\n this.change.emit({ value: selectedValue, values });\n }\n\n setActiveOption() {\n const activeIndex = this.activeIndex;\n\n this.allOptions.forEach((element, elementIndex) => {\n element.active = activeIndex === elementIndex;\n });\n }\n\n setFocusedOption() {\n const option = this.allOptions[this.activeIndex];\n if (!option) return;\n\n const isOptionVisible = isVisible(option);\n if (isOptionVisible) option.focus();\n else nextPaint(() => option.focus());\n }\n\n updateMultipleOptionAttrs() {\n const { allOptions, selectedOptions } = this;\n const selectedValues = selectedOptions.map(({ value }) => value);\n allOptions.forEach(element => {\n element.selected = selectedValues.includes(element.value);\n });\n }\n\n updateSingleOptionAttrs() {\n const { allOptions, selectedOptions } = this;\n const selectedValue = selectedOptions[0]?.value || undefined;\n allOptions.forEach(element => {\n element.selected = element.value === selectedValue;\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <Host>\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n onFocusout={this.focusoutHandler}\n >\n <div\n class=\"options\"\n aria-label={loc('tecton.element.optionList.label', [this.label])}\n aria-multiselectable={`${!!this.multiple}`}\n role={this.type || 'listbox'}\n onKeyDown={this.internalKeydownHandler}\n onClick={this.clickHandler}\n >\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n\n // #endregion\n}\n"],"version":3}
@@ -65,7 +65,7 @@ const Q2Option = /*@__PURE__*/ proxyCustomElement(class Q2Option extends HTMLEle
65
65
  render() {
66
66
  const { disabled, disabledGroup, selected, _multiSelectHidden } = this;
67
67
  const isDisabled = disabled || disabledGroup;
68
- return (h(Host, { key: 'd37180b8d431ca02e23546058cb3b7da767fa2e3', tabindex: "-1", "aria-disabled": isDisabled ? 'true' : undefined, "aria-selected": `${!!selected}`, "aria-hidden": _multiSelectHidden ? 'true' : undefined, display: this.display }, this.selected && h("q2-icon", { key: '17f7b263cecc7cc67d01bb4b70cf9e52d4a085b6', type: "checkmark" }), h("div", { key: '74b7b92e105beabc72d91673f38e7b5147f74083', class: "content" }, h("slot", { key: 'dcd02124790418d9bdf9a96487dfec2eb19bee7f' }))));
68
+ return (h(Host, { key: '7b4a32ea1eec13bfbeca88e038d052ba88b109a0', tabindex: "-1", "aria-disabled": isDisabled ? 'true' : undefined, "aria-selected": `${!!selected}`, "aria-hidden": _multiSelectHidden ? 'true' : undefined, display: this.display }, this.selected && h("q2-icon", { key: '9fb687709d27e1ce24ced445d4f9d9e9c19a69e7', type: "checkmark" }), h("div", { key: '1fd40d00eaa09f012bba8afbe915cd53b1194cb6', class: "content" }, h("slot", { key: 'fa4756793e55a1152fdace4c80531d54a7e41bdc' }))));
69
69
  }
70
70
  get hostElement() { return this; }
71
71
  static get style() { return Q2OptionStyle0; }
@@ -192,7 +192,7 @@ const Q2Pagination$1 = /*@__PURE__*/ proxyCustomElement(class Q2Pagination exten
192
192
  total,
193
193
  });
194
194
  }
195
- return (h("nav", { key: '80c28585b216b718d76ebe953c345353dba47145', class: "container", ref: el => (this.containerElement = el), "aria-label": loc('tecton.element.pagination.title') }, h("div", { key: '5a60fe2eced2552eda387e84ee40741194ac1ff7', class: "description", "test-id": "description" }, pagesOnly
195
+ return (h("nav", { key: 'e501aad97cfb7e43c4126bdd18902f0c1b1f77c6', class: "container", ref: el => (this.containerElement = el), "aria-label": loc('tecton.element.pagination.title') }, h("div", { key: '268b28bc350d718b66ece79418564dd2235fea93', class: "description", "test-id": "description" }, pagesOnly
196
196
  ? loc('tecton.element.pagination.pages', {
197
197
  current: page,
198
198
  total: totalPages,
@@ -201,7 +201,7 @@ const Q2Pagination$1 = /*@__PURE__*/ proxyCustomElement(class Q2Pagination exten
201
201
  range: currentRange,
202
202
  recordType: recordType.toLowerCase(),
203
203
  total: total.toLocaleString(),
204
- })), h("div", { key: '324465f63c65857347f424c4db391c38617e770c', class: "btn-group" }, h("q2-btn", { key: '7d5c1afce0b79d50543f41816ea1bcec951edfdb', label: loc('tecton.element.pagination.goToFirstPage'), disabled: onFirstPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(1), "test-id": "firstPageBtn", "hide-label": true }, h("q2-icon", { key: 'f8737b26e80432063fcffffe6dda5b94472143e3', type: "chevron-double-left" })), h("q2-btn", { key: '3e21753cad802b0b60256790b2888314fdd38eae', label: prevButtonLabel, disabled: onFirstPage, onClick: () => this.handlePageChange(page - 1), "test-id": "prevPageBtn", "hide-label": true }, h("q2-icon", { key: '782ca8fc58fe83c99a8822939140e3a95bb8df73', type: "chevron-left" }))), h("div", { key: 'ff3a8c25e0f35ae2ec087780a39d4fd6ea1f669b', class: "controls", hidden: isFullViewHidden, "test-id": "controls" }, h("span", { key: 'a995c88c1ecfa259996a79ea06a058ed122678f7', "aria-hidden": "true" }, loc('tecton.element.pagination.page')), h("div", { key: '2d765f7c890265a649e4c6f49e1e8603a1a34c49', class: "input-wrapper", onClick: () => this.inputField.dispatchEvent(new FocusEvent('focus')) }, h("q2-input", { key: 'c59233ca617b432d9a1ca81ee01f0f502cf3725b', type: "number", value: `${page}`, min: 1, max: this.totalPages, hideLabel: true, optional: true, label: `${loc('tecton.element.pagination.page')} (${loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])})`, onChange: event => this.handlePageChange(event.detail.value), "test-id": "pageInput", current: "page", ref: el => (this.inputField = el) })), h("span", { key: 'c5d150c0d155cc60e5cae649c9a9b4f73172b07c', "aria-hidden": "true" }, loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()]))), h("div", { key: 'df804389b531a6cd5fc336a287c95f77ec9d60fd', class: "btn-group" }, h("q2-btn", { key: '9e551066999ccc3cb925c2b50a97db8bcff3f896', label: nextButtonLabel, disabled: onLastPage, onClick: () => this.handlePageChange(page + 1), "test-id": "nextPageBtn", "hide-label": true }, h("q2-icon", { key: '4fe21a26665796662b0dd29340716bea37a75a5d', type: "chevron-right" })), h("q2-btn", { key: '38391935f254a36a40e7d9e4084714b0a394d3e8', label: "tecton.element.pagination.goToLastPage", disabled: onLastPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(totalPages), "test-id": "lastPageBtn", "hide-label": true }, h("q2-icon", { key: 'e72c56a4b342ee826920c13ba5519e3203f0659e', type: "chevron-double-right" }))), h("div", { key: '9f72d396afe41ac7b31662791a87de335931d5d0', class: "per-page", hidden: isFullViewHidden || !((_a = this.perPageIncrements) === null || _a === void 0 ? void 0 : _a.length) }, this.renderPerPage())));
204
+ })), h("div", { key: '8e27861cab2a435ede48ab2650033616b9d09d53', class: "btn-group" }, h("q2-btn", { key: '9cdd1187767349a5645d9463aedc56685ffe02bf', label: loc('tecton.element.pagination.goToFirstPage'), disabled: onFirstPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(1), "test-id": "firstPageBtn", "hide-label": true }, h("q2-icon", { key: 'bb60151a25cf029fb4dec2aa5ae3596cf10d9fcf', type: "chevron-double-left" })), h("q2-btn", { key: '36d57ac9a5e65e7e19ce55dbac6d05d4975d733b', label: prevButtonLabel, disabled: onFirstPage, onClick: () => this.handlePageChange(page - 1), "test-id": "prevPageBtn", "hide-label": true }, h("q2-icon", { key: 'f2f7e0cadd9d9c5a8dee3f4d8b07b4a556457cbf', type: "chevron-left" }))), h("div", { key: 'bf92ddcd317f0422135b197216349f85463fa25f', class: "controls", hidden: isFullViewHidden, "test-id": "controls" }, h("span", { key: '22ebbb53459423fa8adb8730c0a4113161a905e8', "aria-hidden": "true" }, loc('tecton.element.pagination.page')), h("div", { key: '15c79963fb6dc7d5065e914131b258a348689292', class: "input-wrapper", onClick: () => this.inputField.dispatchEvent(new FocusEvent('focus')) }, h("q2-input", { key: '47050a9a458b5ef7bd21637f6e3cad0d395afe64', type: "number", value: `${page}`, min: 1, max: this.totalPages, hideLabel: true, optional: true, label: `${loc('tecton.element.pagination.page')} (${loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()])})`, onChange: event => this.handlePageChange(event.detail.value), "test-id": "pageInput", current: "page", ref: el => (this.inputField = el) })), h("span", { key: '0ff4acfb55fba8dee282afb378d2dc72b472cf4e', "aria-hidden": "true" }, loc('tecton.element.pagination.ofPages', [totalPages.toLocaleString()]))), h("div", { key: 'd9b8b4b6631df6d4520b68dcb516af262b2b9136', class: "btn-group" }, h("q2-btn", { key: 'b53b81c0613122be511d943624d6242fed3576a8', label: nextButtonLabel, disabled: onLastPage, onClick: () => this.handlePageChange(page + 1), "test-id": "nextPageBtn", "hide-label": true }, h("q2-icon", { key: 'a09c849be760fb2f1ff91375ea13c94a2b593c88', type: "chevron-right" })), h("q2-btn", { key: '6d2f35af70859cd5c3b383d3b99a7462d5c15c17', label: "tecton.element.pagination.goToLastPage", disabled: onLastPage, hidden: isFullViewHidden, onClick: () => this.handlePageChange(totalPages), "test-id": "lastPageBtn", "hide-label": true }, h("q2-icon", { key: 'a46d892e6acf87af73121feb0a132e9f4b379a0c', type: "chevron-double-right" }))), h("div", { key: '583cde036e73427c99b1187917b81b66ca3e2e7f', class: "per-page", hidden: isFullViewHidden || !((_a = this.perPageIncrements) === null || _a === void 0 ? void 0 : _a.length) }, this.renderPerPage())));
205
205
  }
206
206
  get hostElement() { return this; }
207
207
  static get watchers() { return {