q2-tecton-elements 1.66.1 → 1.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (681) hide show
  1. package/dist/bundle-report.json +3496 -3360
  2. package/dist/cjs/action-sheet-D71RSc-w.js.map +1 -1
  3. package/dist/cjs/click-elsewhere.q2-option-list.q2-popover.entry.cjs.js.map +1 -0
  4. package/dist/cjs/{q2-option-list_2.cjs.entry.js → click-elsewhere_3.cjs.entry.js} +131 -10
  5. package/dist/cjs/click-elsewhere_3.cjs.entry.js.map +1 -0
  6. package/dist/cjs/{index-DyAq0y0v.js → index-YvKoRT-t.js} +61 -21
  7. package/dist/cjs/index-YvKoRT-t.js.map +1 -0
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/q2-action-group_2.cjs.entry.js +2 -2
  10. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  11. package/dist/cjs/q2-avatar.cjs.entry.js +33 -2
  12. package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
  13. package/dist/cjs/q2-avatar.entry.cjs.js.map +1 -1
  14. package/dist/cjs/q2-badge.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-btn.q2-loading.entry.cjs.js.map +1 -1
  16. package/dist/cjs/q2-btn_2.cjs.entry.js +18 -6
  17. package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
  18. package/dist/cjs/q2-calendar.cjs.entry.js +3 -3
  19. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-calendar.entry.cjs.js.map +1 -1
  21. package/dist/cjs/q2-card-image.cjs.entry.js +3 -3
  22. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-carousel-pane.cjs.entry.js +4 -4
  24. package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
  25. package/dist/cjs/q2-carousel-pane.entry.cjs.js.map +1 -1
  26. package/dist/cjs/q2-carousel.cjs.entry.js +67 -42
  27. package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
  28. package/dist/cjs/q2-carousel.entry.cjs.js.map +1 -1
  29. package/dist/cjs/q2-chart-area.cjs.entry.js +4 -2
  30. package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
  31. package/dist/cjs/q2-chart-area.entry.cjs.js.map +1 -1
  32. package/dist/cjs/q2-chart-bar.cjs.entry.js +4 -2
  33. package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
  34. package/dist/cjs/q2-chart-bar.entry.cjs.js.map +1 -1
  35. package/dist/cjs/q2-chart-donut.cjs.entry.js +7 -3
  36. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  37. package/dist/cjs/q2-chart-donut.entry.cjs.js.map +1 -1
  38. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  39. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  40. package/dist/cjs/q2-checkbox-group.entry.cjs.js.map +1 -1
  41. package/dist/cjs/q2-checkbox.q2-tag.entry.cjs.js.map +1 -0
  42. package/dist/cjs/q2-checkbox_2.cjs.entry.js +322 -0
  43. package/dist/cjs/q2-checkbox_2.cjs.entry.js.map +1 -0
  44. package/dist/cjs/q2-context.cjs.entry.js +2 -2
  45. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  46. package/dist/cjs/q2-data-table.cjs.entry.js +13 -16
  47. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  48. package/dist/cjs/q2-data-table.entry.cjs.js.map +1 -1
  49. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  50. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  52. package/dist/cjs/q2-editable-field.cjs.entry.js +2 -2
  53. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  54. package/dist/cjs/q2-editable-field.entry.cjs.js.map +1 -1
  55. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  56. package/dist/cjs/q2-file-picker.cjs.entry.js +1 -1
  57. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
  58. package/dist/cjs/q2-file-picker.entry.cjs.js.map +1 -1
  59. package/dist/cjs/q2-form.cjs.entry.js +1 -1
  60. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  61. package/dist/cjs/q2-icon.cjs.entry.js +11 -1
  62. package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
  63. package/dist/cjs/q2-icon.entry.cjs.js.map +1 -1
  64. package/dist/cjs/q2-input.cjs.entry.js +2 -2
  65. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  66. package/dist/cjs/q2-input.entry.cjs.js.map +1 -1
  67. package/dist/cjs/q2-item.cjs.entry.js +3 -3
  68. package/dist/cjs/q2-item.cjs.entry.js.map +1 -1
  69. package/dist/cjs/q2-item.entry.cjs.js.map +1 -1
  70. package/dist/cjs/q2-legend.cjs.entry.js +2 -2
  71. package/dist/cjs/q2-legend.cjs.entry.js.map +1 -1
  72. package/dist/cjs/q2-legend.entry.cjs.js.map +1 -1
  73. package/dist/cjs/q2-link.q2-list.entry.cjs.js.map +1 -1
  74. package/dist/cjs/q2-link_2.cjs.entry.js +14 -6
  75. package/dist/cjs/q2-link_2.cjs.entry.js.map +1 -1
  76. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  77. package/dist/cjs/q2-message.cjs.entry.js +3 -3
  78. package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
  79. package/dist/cjs/q2-message.entry.cjs.js.map +1 -1
  80. package/dist/cjs/q2-meter.cjs.entry.js +2 -2
  81. package/dist/cjs/q2-modal.cjs.entry.js +4 -21
  82. package/dist/cjs/q2-modal.cjs.entry.js.map +1 -1
  83. package/dist/cjs/q2-modal.entry.cjs.js.map +1 -1
  84. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  85. package/dist/cjs/q2-mutation-observer.cjs.entry.js +1 -1
  86. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  87. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  88. package/dist/cjs/q2-pagination.cjs.entry.js +12 -7
  89. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  90. package/dist/cjs/q2-pagination.entry.cjs.js.map +1 -1
  91. package/dist/cjs/q2-pill.cjs.entry.js +3 -3
  92. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  93. package/dist/cjs/q2-pill.entry.cjs.js.map +1 -1
  94. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  95. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  96. package/dist/cjs/q2-radio-group.entry.cjs.js.map +1 -1
  97. package/dist/cjs/q2-radio.cjs.entry.js +2 -2
  98. package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
  99. package/dist/cjs/q2-radio.entry.cjs.js.map +1 -1
  100. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  101. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  102. package/dist/cjs/q2-select.cjs.entry.js +22 -8
  103. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  104. package/dist/cjs/q2-select.entry.cjs.js.map +1 -1
  105. package/dist/cjs/q2-stepper-pane.cjs.entry.js +7 -6
  106. package/dist/cjs/q2-stepper-pane.cjs.entry.js.map +1 -1
  107. package/dist/cjs/q2-stepper-pane.entry.cjs.js.map +1 -1
  108. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +16 -8
  109. package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
  110. package/dist/cjs/q2-stepper-vertical.entry.cjs.js.map +1 -1
  111. package/dist/cjs/q2-stepper.cjs.entry.js +7 -4
  112. package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
  113. package/dist/cjs/q2-stepper.entry.cjs.js.map +1 -1
  114. package/dist/cjs/q2-tab-container.cjs.entry.js +3 -3
  115. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  116. package/dist/cjs/q2-tab-container.entry.cjs.js.map +1 -1
  117. package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
  118. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  119. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  120. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  121. package/dist/cjs/q2-textarea.entry.cjs.js.map +1 -1
  122. package/dist/cjs/q2-toast.cjs.entry.js +1 -1
  123. package/dist/cjs/q2-tooltip.cjs.entry.js +33 -3
  124. package/dist/cjs/q2-tooltip.cjs.entry.js.map +1 -1
  125. package/dist/cjs/q2-tooltip.entry.cjs.js.map +1 -1
  126. package/dist/cjs/{sanitize-html-string-C2iwHNz5.js → sanitize-html-string-CW6y5624.js} +27 -17
  127. package/dist/cjs/sanitize-html-string-CW6y5624.js.map +1 -0
  128. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  129. package/dist/collection/__mocks__/echarts.js +12 -0
  130. package/dist/collection/__mocks__/echarts.js.map +1 -0
  131. package/dist/collection/components/q2-avatar/q2-avatar.css +84 -89
  132. package/dist/collection/components/q2-avatar/q2-avatar.js +35 -1
  133. package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
  134. package/dist/collection/components/q2-btn/q2-btn.css +10 -3
  135. package/dist/collection/components/q2-btn/q2-btn.js +38 -4
  136. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  137. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
  138. package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
  139. package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
  140. package/dist/collection/components/q2-calendar/q2-calendar.css +4 -1
  141. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  142. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  143. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  144. package/dist/collection/components/q2-card-image/q2-card-image.js +2 -2
  145. package/dist/collection/components/q2-carousel/q2-carousel.css +143 -13
  146. package/dist/collection/components/q2-carousel/q2-carousel.js +90 -42
  147. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  148. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.css +2 -11
  149. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  150. package/dist/collection/components/q2-chart-area/q2-chart-area.js +18 -16
  151. package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
  152. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +8 -6
  153. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
  154. package/dist/collection/components/q2-chart-donut/q2-chart-donut.css +4 -1
  155. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +30 -26
  156. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  157. package/dist/collection/components/q2-checkbox/q2-checkbox.css +4 -1
  158. package/dist/collection/components/q2-checkbox/q2-checkbox.js +38 -1
  159. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  160. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +1 -1
  161. package/dist/collection/components/q2-context/q2-context.js +1 -1
  162. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  163. package/dist/collection/components/q2-data-table/q2-data-table.css +14 -0
  164. package/dist/collection/components/q2-data-table/q2-data-table.js +47 -50
  165. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  166. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  167. package/dist/collection/components/q2-editable-field/q2-editable-field.js +1 -1
  168. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  169. package/dist/collection/components/q2-example/q2-example.js +1 -1
  170. package/dist/collection/components/q2-file-picker/q2-file-picker.js +9 -9
  171. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  172. package/dist/collection/components/q2-form/q2-form.js +1 -1
  173. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  174. package/dist/collection/components/q2-grid/q2-grid.js +30 -30
  175. package/dist/collection/components/q2-grid-area/q2-grid-area.js +42 -42
  176. package/dist/collection/components/q2-icon/assets/brand.symbol.svg +1 -1
  177. package/dist/collection/components/q2-icon/assets/browsersos.symbol.svg +1 -1
  178. package/dist/collection/components/q2-icon/assets/cards.symbol.svg +1 -1
  179. package/dist/collection/components/q2-icon/assets/communication.symbol.svg +1 -1
  180. package/dist/collection/components/q2-icon/assets/currencies.symbol.svg +1 -1
  181. package/dist/collection/components/q2-icon/assets/devices.symbol.svg +1 -1
  182. package/dist/collection/components/q2-icon/assets/filetypes.symbol.svg +1 -1
  183. package/dist/collection/components/q2-icon/assets/gestures.symbol.svg +1 -1
  184. package/dist/collection/components/q2-icon/assets/icon-list.json +1 -1
  185. package/dist/collection/components/q2-icon/assets/icon-map.json +1 -1
  186. package/dist/collection/components/q2-icon/assets/legacy.symbol.svg +1 -1
  187. package/dist/collection/components/q2-icon/assets/mobile.symbol.svg +1 -1
  188. package/dist/collection/components/q2-icon/assets/standard.symbol.svg +1 -1
  189. package/dist/collection/components/q2-icon/assets/status.symbol.svg +1 -1
  190. package/dist/collection/components/q2-icon/q2-icon.js +8 -0
  191. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  192. package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
  193. package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
  194. package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
  195. package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
  196. package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
  197. package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
  198. package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
  199. package/dist/collection/components/q2-input/q2-input.js +42 -42
  200. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  201. package/dist/collection/components/q2-item/q2-item.css +4 -0
  202. package/dist/collection/components/q2-item/q2-item.js +1 -1
  203. package/dist/collection/components/q2-legend/q2-legend.css +3 -0
  204. package/dist/collection/components/q2-legend/q2-legend.js +36 -36
  205. package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
  206. package/dist/collection/components/q2-link/q2-link.css +5 -2
  207. package/dist/collection/components/q2-link/q2-link.js +33 -3
  208. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  209. package/dist/collection/components/q2-list/q2-list.js +1 -1
  210. package/dist/collection/components/q2-message/q2-message.css +19 -16
  211. package/dist/collection/components/q2-message/q2-message.js +1 -1
  212. package/dist/collection/components/q2-message/q2-message.js.map +1 -1
  213. package/dist/collection/components/q2-meter/q2-meter.js +1 -1
  214. package/dist/collection/components/q2-modal/q2-modal.css +3 -3
  215. package/dist/collection/components/q2-modal/q2-modal.js +1 -94
  216. package/dist/collection/components/q2-modal/q2-modal.js.map +1 -1
  217. package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js +1 -1
  218. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  219. package/dist/collection/components/q2-option-list/q2-option-list.js +18 -18
  220. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  221. package/dist/collection/components/q2-pagination/q2-pagination.js +15 -10
  222. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  223. package/dist/collection/components/q2-pill/q2-pill.css +9 -0
  224. package/dist/collection/components/q2-pill/q2-pill.js +13 -13
  225. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  226. package/dist/collection/components/q2-popover/q2-popover.css +66 -1
  227. package/dist/collection/components/q2-popover/q2-popover.js +57 -4
  228. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  229. package/dist/collection/components/q2-radio/q2-radio.css +4 -3
  230. package/dist/collection/components/q2-radio-group/q2-radio-group.css +1 -1
  231. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  232. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  233. package/dist/collection/components/q2-section/q2-section.js +2 -2
  234. package/dist/collection/components/q2-select/q2-select.js +23 -7
  235. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  236. package/dist/collection/components/q2-stepper/q2-stepper.css +9 -2
  237. package/dist/collection/components/q2-stepper/q2-stepper.js +5 -2
  238. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  239. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +52 -30
  240. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  241. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +11 -2
  242. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +20 -6
  243. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  244. package/dist/collection/components/q2-tab-container/q2-tab-container.css +7 -1
  245. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  246. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  247. package/dist/collection/components/q2-tag/q2-tag.css +3 -0
  248. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  249. package/dist/collection/components/q2-textarea/q2-textarea.css +1 -0
  250. package/dist/collection/components/q2-tooltip/q2-tooltip.css +1 -1
  251. package/dist/collection/components/q2-tooltip/q2-tooltip.js +34 -1
  252. package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
  253. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  254. package/dist/collection/index.js +1 -0
  255. package/dist/collection/index.js.map +1 -1
  256. package/dist/collection/utils/action-sheet.js.map +1 -1
  257. package/dist/collection/utils/index.js +59 -19
  258. package/dist/collection/utils/index.js.map +1 -1
  259. package/dist/components/action-sheet.js.map +1 -1
  260. package/dist/components/index2.js +59 -19
  261. package/dist/components/index2.js.map +1 -1
  262. package/dist/components/q2-avatar2.js +34 -2
  263. package/dist/components/q2-avatar2.js.map +1 -1
  264. package/dist/components/q2-btn2.js +18 -5
  265. package/dist/components/q2-btn2.js.map +1 -1
  266. package/dist/components/q2-calendar.js +2 -2
  267. package/dist/components/q2-calendar.js.map +1 -1
  268. package/dist/components/q2-card-image.js +2 -2
  269. package/dist/components/q2-carousel-pane.js +3 -3
  270. package/dist/components/q2-carousel-pane.js.map +1 -1
  271. package/dist/components/q2-carousel.js +69 -55
  272. package/dist/components/q2-carousel.js.map +1 -1
  273. package/dist/components/q2-chart-area.js +3 -1
  274. package/dist/components/q2-chart-area.js.map +1 -1
  275. package/dist/components/q2-chart-bar.js +3 -1
  276. package/dist/components/q2-chart-bar.js.map +1 -1
  277. package/dist/components/q2-chart-donut.js +6 -2
  278. package/dist/components/q2-chart-donut.js.map +1 -1
  279. package/dist/components/q2-checkbox-group.js +1 -1
  280. package/dist/components/q2-checkbox-group.js.map +1 -1
  281. package/dist/components/q2-checkbox2.js +13 -2
  282. package/dist/components/q2-checkbox2.js.map +1 -1
  283. package/dist/components/q2-context.js +1 -1
  284. package/dist/components/q2-currency.js +1 -1
  285. package/dist/components/q2-data-table.js +46 -25
  286. package/dist/components/q2-data-table.js.map +1 -1
  287. package/dist/components/q2-detail.js +1 -1
  288. package/dist/components/q2-editable-field.js +1 -1
  289. package/dist/components/q2-editable-field.js.map +1 -1
  290. package/dist/components/q2-example.js +1 -1
  291. package/dist/components/q2-file-picker.js.map +1 -1
  292. package/dist/components/q2-form.js +1 -1
  293. package/dist/components/q2-formatted-text.js +1 -1
  294. package/dist/components/q2-icon2.js +10 -0
  295. package/dist/components/q2-icon2.js.map +1 -1
  296. package/dist/components/q2-input2.js +1 -1
  297. package/dist/components/q2-input2.js.map +1 -1
  298. package/dist/components/q2-item2.js +2 -2
  299. package/dist/components/q2-item2.js.map +1 -1
  300. package/dist/components/q2-legend2.js +2 -2
  301. package/dist/components/q2-legend2.js.map +1 -1
  302. package/dist/components/q2-link2.js +13 -4
  303. package/dist/components/q2-link2.js.map +1 -1
  304. package/dist/components/q2-list2.js +1 -1
  305. package/dist/components/q2-message2.js +2 -2
  306. package/dist/components/q2-message2.js.map +1 -1
  307. package/dist/components/q2-meter.js +1 -1
  308. package/dist/components/q2-modal.js +2 -23
  309. package/dist/components/q2-modal.js.map +1 -1
  310. package/dist/components/q2-month-picker.js +2 -2
  311. package/dist/components/q2-mutation-observer.js +1 -1
  312. package/dist/components/q2-optgroup2.js +1 -1
  313. package/dist/components/q2-option-list2.js +1 -1
  314. package/dist/components/q2-option-list2.js.map +1 -1
  315. package/dist/components/q2-pagination.js +11 -6
  316. package/dist/components/q2-pagination.js.map +1 -1
  317. package/dist/components/q2-pill.js +2 -2
  318. package/dist/components/q2-pill.js.map +1 -1
  319. package/dist/components/q2-popover2.js +39 -5
  320. package/dist/components/q2-popover2.js.map +1 -1
  321. package/dist/components/q2-radio-group.js +1 -1
  322. package/dist/components/q2-radio-group.js.map +1 -1
  323. package/dist/components/q2-radio.js +1 -1
  324. package/dist/components/q2-radio.js.map +1 -1
  325. package/dist/components/q2-relative-time.js +1 -1
  326. package/dist/components/q2-resize-observer2.js +1 -1
  327. package/dist/components/q2-section.js +2 -2
  328. package/dist/components/q2-select2.js +23 -8
  329. package/dist/components/q2-select2.js.map +1 -1
  330. package/dist/components/q2-stepper-pane.js +9 -6
  331. package/dist/components/q2-stepper-pane.js.map +1 -1
  332. package/dist/components/q2-stepper-vertical.js +16 -8
  333. package/dist/components/q2-stepper-vertical.js.map +1 -1
  334. package/dist/components/q2-stepper.js +6 -3
  335. package/dist/components/q2-stepper.js.map +1 -1
  336. package/dist/components/q2-tab-container.js +2 -2
  337. package/dist/components/q2-tab-container.js.map +1 -1
  338. package/dist/components/q2-tab-pane.js +1 -1
  339. package/dist/components/q2-tag.js +1 -257
  340. package/dist/components/q2-tag.js.map +1 -1
  341. package/dist/{esm/q2-tag.entry.js → components/q2-tag2.js} +68 -15
  342. package/dist/components/q2-tag2.js.map +1 -0
  343. package/dist/components/q2-textarea.js +1 -1
  344. package/dist/components/q2-textarea.js.map +1 -1
  345. package/dist/components/q2-tooltip2.js +35 -3
  346. package/dist/components/q2-tooltip2.js.map +1 -1
  347. package/dist/components/sanitize-html-string.js +25 -15
  348. package/dist/components/sanitize-html-string.js.map +1 -1
  349. package/dist/components/tecton-tab-pane.js +2 -2
  350. package/dist/esm/action-sheet-B7adb3xs.js.map +1 -1
  351. package/dist/esm/click-elsewhere.q2-option-list.q2-popover.entry.js.map +1 -0
  352. package/dist/esm/{q2-option-list_2.entry.js → click-elsewhere_3.entry.js} +132 -12
  353. package/dist/esm/click-elsewhere_3.entry.js.map +1 -0
  354. package/dist/esm/{index-B4WYBDS9.js → index-C4PILj1_.js} +61 -21
  355. package/dist/esm/index-C4PILj1_.js.map +1 -0
  356. package/dist/esm/loader.js +1 -1
  357. package/dist/esm/q2-action-group_2.entry.js +2 -2
  358. package/dist/esm/q2-action-sheet.entry.js +2 -2
  359. package/dist/esm/q2-avatar.entry.js +33 -2
  360. package/dist/esm/q2-avatar.entry.js.map +1 -1
  361. package/dist/esm/q2-badge.entry.js +1 -1
  362. package/dist/esm/q2-btn.q2-loading.entry.js.map +1 -1
  363. package/dist/esm/q2-btn_2.entry.js +18 -6
  364. package/dist/esm/q2-btn_2.entry.js.map +1 -1
  365. package/dist/esm/q2-calendar.entry.js +3 -3
  366. package/dist/esm/q2-calendar.entry.js.map +1 -1
  367. package/dist/esm/q2-card-image.entry.js +3 -3
  368. package/dist/esm/q2-card.entry.js +1 -1
  369. package/dist/esm/q2-carousel-pane.entry.js +4 -4
  370. package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
  371. package/dist/esm/q2-carousel.entry.js +67 -42
  372. package/dist/esm/q2-carousel.entry.js.map +1 -1
  373. package/dist/esm/q2-chart-area.entry.js +4 -2
  374. package/dist/esm/q2-chart-area.entry.js.map +1 -1
  375. package/dist/esm/q2-chart-bar.entry.js +4 -2
  376. package/dist/esm/q2-chart-bar.entry.js.map +1 -1
  377. package/dist/esm/q2-chart-donut.entry.js +7 -3
  378. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  379. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  380. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  381. package/dist/esm/q2-checkbox.q2-tag.entry.js.map +1 -0
  382. package/dist/esm/q2-checkbox_2.entry.js +319 -0
  383. package/dist/esm/q2-checkbox_2.entry.js.map +1 -0
  384. package/dist/esm/q2-context.entry.js +2 -2
  385. package/dist/esm/q2-currency.entry.js +1 -1
  386. package/dist/esm/q2-data-table.entry.js +13 -16
  387. package/dist/esm/q2-data-table.entry.js.map +1 -1
  388. package/dist/esm/q2-detail.entry.js +2 -2
  389. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  390. package/dist/esm/q2-dropdown.entry.js +1 -1
  391. package/dist/esm/q2-editable-field.entry.js +2 -2
  392. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  393. package/dist/esm/q2-example.entry.js +1 -1
  394. package/dist/esm/q2-file-picker.entry.js +1 -1
  395. package/dist/esm/q2-file-picker.entry.js.map +1 -1
  396. package/dist/esm/q2-form.entry.js +1 -1
  397. package/dist/esm/q2-formatted-text.entry.js +1 -1
  398. package/dist/esm/q2-icon.entry.js +11 -1
  399. package/dist/esm/q2-icon.entry.js.map +1 -1
  400. package/dist/esm/q2-input.entry.js +2 -2
  401. package/dist/esm/q2-input.entry.js.map +1 -1
  402. package/dist/esm/q2-item.entry.js +3 -3
  403. package/dist/esm/q2-item.entry.js.map +1 -1
  404. package/dist/esm/q2-legend.entry.js +2 -2
  405. package/dist/esm/q2-legend.entry.js.map +1 -1
  406. package/dist/esm/q2-link.q2-list.entry.js.map +1 -1
  407. package/dist/esm/q2-link_2.entry.js +14 -6
  408. package/dist/esm/q2-link_2.entry.js.map +1 -1
  409. package/dist/esm/q2-loc.entry.js +1 -1
  410. package/dist/esm/q2-message.entry.js +3 -3
  411. package/dist/esm/q2-message.entry.js.map +1 -1
  412. package/dist/esm/q2-meter.entry.js +2 -2
  413. package/dist/esm/q2-modal.entry.js +4 -21
  414. package/dist/esm/q2-modal.entry.js.map +1 -1
  415. package/dist/esm/q2-month-picker.entry.js +3 -3
  416. package/dist/esm/q2-mutation-observer.entry.js +1 -1
  417. package/dist/esm/q2-optgroup.entry.js +2 -2
  418. package/dist/esm/q2-option.entry.js +1 -1
  419. package/dist/esm/q2-pagination.entry.js +12 -7
  420. package/dist/esm/q2-pagination.entry.js.map +1 -1
  421. package/dist/esm/q2-pill.entry.js +3 -3
  422. package/dist/esm/q2-pill.entry.js.map +1 -1
  423. package/dist/esm/q2-radio-group.entry.js +2 -2
  424. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  425. package/dist/esm/q2-radio.entry.js +2 -2
  426. package/dist/esm/q2-radio.entry.js.map +1 -1
  427. package/dist/esm/q2-relative-time.entry.js +2 -2
  428. package/dist/esm/q2-section.entry.js +3 -3
  429. package/dist/esm/q2-select.entry.js +22 -8
  430. package/dist/esm/q2-select.entry.js.map +1 -1
  431. package/dist/esm/q2-stepper-pane.entry.js +7 -6
  432. package/dist/esm/q2-stepper-pane.entry.js.map +1 -1
  433. package/dist/esm/q2-stepper-vertical.entry.js +16 -8
  434. package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
  435. package/dist/esm/q2-stepper.entry.js +7 -4
  436. package/dist/esm/q2-stepper.entry.js.map +1 -1
  437. package/dist/esm/q2-tab-container.entry.js +3 -3
  438. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  439. package/dist/esm/q2-tab-pane.entry.js +1 -1
  440. package/dist/esm/q2-tecton-elements.js +1 -1
  441. package/dist/esm/q2-textarea.entry.js +2 -2
  442. package/dist/esm/q2-textarea.entry.js.map +1 -1
  443. package/dist/esm/q2-toast.entry.js +1 -1
  444. package/dist/esm/q2-tooltip.entry.js +33 -3
  445. package/dist/esm/q2-tooltip.entry.js.map +1 -1
  446. package/dist/esm/{sanitize-html-string-BPwFpYg-.js → sanitize-html-string-B35VmRc9.js} +27 -17
  447. package/dist/esm/sanitize-html-string-B35VmRc9.js.map +1 -0
  448. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  449. package/dist/q2-tecton-elements/action-sheet-B7adb3xs.js.map +1 -1
  450. package/dist/q2-tecton-elements/assets/brand.symbol.svg +1 -1
  451. package/dist/q2-tecton-elements/assets/browsersos.symbol.svg +1 -1
  452. package/dist/q2-tecton-elements/assets/cards.symbol.svg +1 -1
  453. package/dist/q2-tecton-elements/assets/communication.symbol.svg +1 -1
  454. package/dist/q2-tecton-elements/assets/currencies.symbol.svg +1 -1
  455. package/dist/q2-tecton-elements/assets/devices.symbol.svg +1 -1
  456. package/dist/q2-tecton-elements/assets/filetypes.symbol.svg +1 -1
  457. package/dist/q2-tecton-elements/assets/gestures.symbol.svg +1 -1
  458. package/dist/q2-tecton-elements/assets/icon-list.json +1 -1
  459. package/dist/q2-tecton-elements/assets/icon-map.json +1 -1
  460. package/dist/q2-tecton-elements/assets/legacy.symbol.svg +1 -1
  461. package/dist/q2-tecton-elements/assets/mobile.symbol.svg +1 -1
  462. package/dist/q2-tecton-elements/assets/standard.symbol.svg +1 -1
  463. package/dist/q2-tecton-elements/assets/status.symbol.svg +1 -1
  464. package/dist/q2-tecton-elements/click-elsewhere.q2-option-list.q2-popover.entry.esm.js.map +1 -0
  465. package/dist/q2-tecton-elements/{q2-option-list_2.entry.js → click-elsewhere_3.entry.js} +205 -91
  466. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js.map +1 -0
  467. package/dist/q2-tecton-elements/{index-B4WYBDS9.js → index-C4PILj1_.js} +53 -14
  468. package/dist/q2-tecton-elements/index-C4PILj1_.js.map +1 -0
  469. package/dist/q2-tecton-elements/q2-action-group_2.entry.js +2 -2
  470. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +2 -2
  471. package/dist/q2-tecton-elements/q2-avatar.entry.esm.js.map +1 -1
  472. package/dist/q2-tecton-elements/q2-avatar.entry.js +68 -30
  473. package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
  474. package/dist/q2-tecton-elements/q2-badge.entry.js +1 -1
  475. package/dist/q2-tecton-elements/q2-btn.q2-loading.entry.esm.js.map +1 -1
  476. package/dist/q2-tecton-elements/q2-btn_2.entry.js +26 -19
  477. package/dist/q2-tecton-elements/q2-btn_2.entry.js.map +1 -1
  478. package/dist/q2-tecton-elements/q2-calendar.entry.esm.js.map +1 -1
  479. package/dist/q2-tecton-elements/q2-calendar.entry.js +4 -4
  480. package/dist/q2-tecton-elements/q2-calendar.entry.js.map +1 -1
  481. package/dist/q2-tecton-elements/q2-card-image.entry.js +3 -3
  482. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  483. package/dist/q2-tecton-elements/q2-carousel-pane.entry.esm.js.map +1 -1
  484. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +17 -17
  485. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js.map +1 -1
  486. package/dist/q2-tecton-elements/q2-carousel.entry.esm.js.map +1 -1
  487. package/dist/q2-tecton-elements/q2-carousel.entry.js +269 -242
  488. package/dist/q2-tecton-elements/q2-carousel.entry.js.map +1 -1
  489. package/dist/q2-tecton-elements/q2-chart-area.entry.esm.js.map +1 -1
  490. package/dist/q2-tecton-elements/q2-chart-area.entry.js +6 -5
  491. package/dist/q2-tecton-elements/q2-chart-area.entry.js.map +1 -1
  492. package/dist/q2-tecton-elements/q2-chart-bar.entry.esm.js.map +1 -1
  493. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +4 -3
  494. package/dist/q2-tecton-elements/q2-chart-bar.entry.js.map +1 -1
  495. package/dist/q2-tecton-elements/q2-chart-donut.entry.esm.js.map +1 -1
  496. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +21 -19
  497. package/dist/q2-tecton-elements/q2-chart-donut.entry.js.map +1 -1
  498. package/dist/q2-tecton-elements/q2-checkbox-group.entry.esm.js.map +1 -1
  499. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +2 -2
  500. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -1
  501. package/dist/q2-tecton-elements/q2-checkbox.q2-tag.entry.esm.js.map +1 -0
  502. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +482 -0
  503. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js.map +1 -0
  504. package/dist/q2-tecton-elements/q2-context.entry.js +12 -12
  505. package/dist/q2-tecton-elements/q2-currency.entry.js +11 -11
  506. package/dist/q2-tecton-elements/q2-data-table.entry.esm.js.map +1 -1
  507. package/dist/q2-tecton-elements/q2-data-table.entry.js +26 -28
  508. package/dist/q2-tecton-elements/q2-data-table.entry.js.map +1 -1
  509. package/dist/q2-tecton-elements/q2-detail.entry.js +4 -4
  510. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
  511. package/dist/q2-tecton-elements/q2-dropdown.entry.js +1 -1
  512. package/dist/q2-tecton-elements/q2-editable-field.entry.esm.js.map +1 -1
  513. package/dist/q2-tecton-elements/q2-editable-field.entry.js +2 -2
  514. package/dist/q2-tecton-elements/q2-editable-field.entry.js.map +1 -1
  515. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  516. package/dist/q2-tecton-elements/q2-file-picker.entry.esm.js.map +1 -1
  517. package/dist/q2-tecton-elements/q2-file-picker.entry.js +1 -1
  518. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
  519. package/dist/q2-tecton-elements/q2-form.entry.js +2 -2
  520. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  521. package/dist/q2-tecton-elements/q2-icon.entry.esm.js.map +1 -1
  522. package/dist/q2-tecton-elements/q2-icon.entry.js +122 -111
  523. package/dist/q2-tecton-elements/q2-icon.entry.js.map +1 -1
  524. package/dist/q2-tecton-elements/q2-input.entry.esm.js.map +1 -1
  525. package/dist/q2-tecton-elements/q2-input.entry.js +7 -7
  526. package/dist/q2-tecton-elements/q2-input.entry.js.map +1 -1
  527. package/dist/q2-tecton-elements/q2-item.entry.esm.js.map +1 -1
  528. package/dist/q2-tecton-elements/q2-item.entry.js +34 -34
  529. package/dist/q2-tecton-elements/q2-item.entry.js.map +1 -1
  530. package/dist/q2-tecton-elements/q2-legend.entry.esm.js.map +1 -1
  531. package/dist/q2-tecton-elements/q2-legend.entry.js +3 -3
  532. package/dist/q2-tecton-elements/q2-legend.entry.js.map +1 -1
  533. package/dist/q2-tecton-elements/q2-link.q2-list.entry.esm.js.map +1 -1
  534. package/dist/q2-tecton-elements/q2-link_2.entry.js +24 -18
  535. package/dist/q2-tecton-elements/q2-link_2.entry.js.map +1 -1
  536. package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
  537. package/dist/q2-tecton-elements/q2-message.entry.esm.js.map +1 -1
  538. package/dist/q2-tecton-elements/q2-message.entry.js +29 -25
  539. package/dist/q2-tecton-elements/q2-message.entry.js.map +1 -1
  540. package/dist/q2-tecton-elements/q2-meter.entry.js +14 -14
  541. package/dist/q2-tecton-elements/q2-modal.entry.esm.js.map +1 -1
  542. package/dist/q2-tecton-elements/q2-modal.entry.js +65 -79
  543. package/dist/q2-tecton-elements/q2-modal.entry.js.map +1 -1
  544. package/dist/q2-tecton-elements/q2-month-picker.entry.js +81 -81
  545. package/dist/q2-tecton-elements/q2-mutation-observer.entry.js +1 -1
  546. package/dist/q2-tecton-elements/q2-optgroup.entry.js +5 -5
  547. package/dist/q2-tecton-elements/q2-option.entry.js +1 -1
  548. package/dist/q2-tecton-elements/q2-pagination.entry.esm.js.map +1 -1
  549. package/dist/q2-tecton-elements/q2-pagination.entry.js +43 -32
  550. package/dist/q2-tecton-elements/q2-pagination.entry.js.map +1 -1
  551. package/dist/q2-tecton-elements/q2-pill.entry.esm.js.map +1 -1
  552. package/dist/q2-tecton-elements/q2-pill.entry.js +17 -17
  553. package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -1
  554. package/dist/q2-tecton-elements/q2-radio-group.entry.esm.js.map +1 -1
  555. package/dist/q2-tecton-elements/q2-radio-group.entry.js +2 -2
  556. package/dist/q2-tecton-elements/q2-radio-group.entry.js.map +1 -1
  557. package/dist/q2-tecton-elements/q2-radio.entry.esm.js.map +1 -1
  558. package/dist/q2-tecton-elements/q2-radio.entry.js +15 -15
  559. package/dist/q2-tecton-elements/q2-radio.entry.js.map +1 -1
  560. package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
  561. package/dist/q2-tecton-elements/q2-section.entry.js +22 -22
  562. package/dist/q2-tecton-elements/q2-select.entry.esm.js.map +1 -1
  563. package/dist/q2-tecton-elements/q2-select.entry.js +21 -8
  564. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  565. package/dist/q2-tecton-elements/q2-stepper-pane.entry.esm.js.map +1 -1
  566. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +14 -13
  567. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js.map +1 -1
  568. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.esm.js.map +1 -1
  569. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +73 -67
  570. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js.map +1 -1
  571. package/dist/q2-tecton-elements/q2-stepper.entry.esm.js.map +1 -1
  572. package/dist/q2-tecton-elements/q2-stepper.entry.js +46 -44
  573. package/dist/q2-tecton-elements/q2-stepper.entry.js.map +1 -1
  574. package/dist/q2-tecton-elements/q2-tab-container.entry.esm.js.map +1 -1
  575. package/dist/q2-tecton-elements/q2-tab-container.entry.js +19 -19
  576. package/dist/q2-tecton-elements/q2-tab-container.entry.js.map +1 -1
  577. package/dist/q2-tecton-elements/q2-tab-pane.entry.js +2 -2
  578. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  579. package/dist/q2-tecton-elements/q2-textarea.entry.esm.js.map +1 -1
  580. package/dist/q2-tecton-elements/q2-textarea.entry.js +2 -2
  581. package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
  582. package/dist/q2-tecton-elements/q2-toast.entry.js +1 -1
  583. package/dist/q2-tecton-elements/q2-tooltip.entry.esm.js.map +1 -1
  584. package/dist/q2-tecton-elements/q2-tooltip.entry.js +41 -5
  585. package/dist/q2-tecton-elements/q2-tooltip.entry.js.map +1 -1
  586. package/dist/q2-tecton-elements/{sanitize-html-string-BPwFpYg-.js → sanitize-html-string-B35VmRc9.js} +118 -109
  587. package/dist/q2-tecton-elements/sanitize-html-string-B35VmRc9.js.map +1 -0
  588. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  589. package/dist/scripts/docs-generator/index.js +1 -1
  590. package/dist/scripts/docs-generator/index.js.map +1 -1
  591. package/dist/types/__mocks__/echarts.d.ts +16 -0
  592. package/dist/types/components/q2-avatar/q2-avatar.d.ts +9 -0
  593. package/dist/types/components/q2-btn/q2-btn.d.ts +6 -0
  594. package/dist/types/components/q2-calendar/q2-calendar-helpers.d.ts +3 -3
  595. package/dist/types/components/q2-calendar/q2-calendar-types.d.ts +2 -2
  596. package/dist/types/components/q2-calendar/q2-calendar-validation.d.ts +5 -5
  597. package/dist/types/components/q2-calendar/q2-calendar.d.ts +8 -8
  598. package/dist/types/components/q2-carousel/q2-carousel.d.ts +6 -0
  599. package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +4 -4
  600. package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +3 -3
  601. package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +9 -9
  602. package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +11 -0
  603. package/dist/types/components/q2-data-table/q2-data-table.d.ts +8 -41
  604. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +4 -4
  605. package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +1 -13
  606. package/dist/types/components/q2-input/formatting/alpha.d.ts +1 -1
  607. package/dist/types/components/q2-input/formatting/alphanumeric.d.ts +1 -1
  608. package/dist/types/components/q2-input/formatting/cif.d.ts +1 -1
  609. package/dist/types/components/q2-input/formatting/clabe.d.ts +1 -1
  610. package/dist/types/components/q2-input/formatting/credit-card.d.ts +2 -2
  611. package/dist/types/components/q2-input/formatting/currency.d.ts +2 -2
  612. package/dist/types/components/q2-input/formatting/generic.d.ts +2 -2
  613. package/dist/types/components/q2-input/formatting/iban.d.ts +1 -1
  614. package/dist/types/components/q2-input/formatting/number.d.ts +3 -2
  615. package/dist/types/components/q2-input/formatting/numeric.d.ts +2 -2
  616. package/dist/types/components/q2-input/formatting/phone.d.ts +2 -2
  617. package/dist/types/components/q2-input/formatting/postal.d.ts +1 -1
  618. package/dist/types/components/q2-input/formatting/routingnumber.d.ts +1 -1
  619. package/dist/types/components/q2-input/formatting/ssn.d.ts +1 -1
  620. package/dist/types/components/q2-input/formatting/swift.d.ts +1 -1
  621. package/dist/types/components/q2-input/formatting/tin.d.ts +1 -1
  622. package/dist/types/components/q2-input/q2-input-types.d.ts +2 -22
  623. package/dist/types/components/q2-input/q2-input.d.ts +16 -15
  624. package/dist/types/components/q2-legend/q2-legend.d.ts +11 -11
  625. package/dist/types/components/q2-link/q2-link.d.ts +6 -0
  626. package/dist/types/components/q2-modal/q2-modal.d.ts +0 -17
  627. package/dist/types/components/q2-option-list/q2-option-list.d.ts +4 -4
  628. package/dist/types/components/q2-pagination/q2-pagination.d.ts +2 -0
  629. package/dist/types/components/q2-pill/q2-pill.d.ts +5 -5
  630. package/dist/types/components/q2-popover/q2-popover.d.ts +7 -0
  631. package/dist/types/components/q2-select/q2-select.d.ts +9 -6
  632. package/dist/types/components/q2-stepper-pane/q2-stepper-pane.d.ts +8 -11
  633. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +10 -7
  634. package/dist/types/components/q2-tooltip/q2-tooltip.d.ts +4 -0
  635. package/dist/types/components.d.ts +148 -118
  636. package/dist/types/global.d.ts +2 -2
  637. package/dist/types/index.d.ts +1 -0
  638. package/dist/types/utils/action-sheet.d.ts +5 -5
  639. package/dist/types/utils/index.d.ts +13 -0
  640. package/package.json +69 -72
  641. package/dist/cjs/click-elsewhere.cjs.entry.js +0 -97
  642. package/dist/cjs/click-elsewhere.cjs.entry.js.map +0 -1
  643. package/dist/cjs/click-elsewhere.entry.cjs.js.map +0 -1
  644. package/dist/cjs/index-DyAq0y0v.js.map +0 -1
  645. package/dist/cjs/q2-checkbox.cjs.entry.js +0 -110
  646. package/dist/cjs/q2-checkbox.cjs.entry.js.map +0 -1
  647. package/dist/cjs/q2-checkbox.entry.cjs.js.map +0 -1
  648. package/dist/cjs/q2-option-list.q2-popover.entry.cjs.js.map +0 -1
  649. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +0 -1
  650. package/dist/cjs/q2-tag.cjs.entry.js +0 -211
  651. package/dist/cjs/q2-tag.cjs.entry.js.map +0 -1
  652. package/dist/cjs/q2-tag.entry.cjs.js.map +0 -1
  653. package/dist/cjs/sanitize-html-string-C2iwHNz5.js.map +0 -1
  654. package/dist/esm/click-elsewhere.entry.js +0 -95
  655. package/dist/esm/click-elsewhere.entry.js.map +0 -1
  656. package/dist/esm/index-B4WYBDS9.js.map +0 -1
  657. package/dist/esm/q2-checkbox.entry.js +0 -108
  658. package/dist/esm/q2-checkbox.entry.js.map +0 -1
  659. package/dist/esm/q2-option-list.q2-popover.entry.js.map +0 -1
  660. package/dist/esm/q2-option-list_2.entry.js.map +0 -1
  661. package/dist/esm/q2-tag.entry.js.map +0 -1
  662. package/dist/esm/sanitize-html-string-BPwFpYg-.js.map +0 -1
  663. package/dist/q2-tecton-elements/click-elsewhere.entry.esm.js.map +0 -1
  664. package/dist/q2-tecton-elements/click-elsewhere.entry.js +0 -94
  665. package/dist/q2-tecton-elements/click-elsewhere.entry.js.map +0 -1
  666. package/dist/q2-tecton-elements/index-B4WYBDS9.js.map +0 -1
  667. package/dist/q2-tecton-elements/q2-checkbox.entry.esm.js.map +0 -1
  668. package/dist/q2-tecton-elements/q2-checkbox.entry.js +0 -228
  669. package/dist/q2-tecton-elements/q2-checkbox.entry.js.map +0 -1
  670. package/dist/q2-tecton-elements/q2-option-list.q2-popover.entry.esm.js.map +0 -1
  671. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +0 -1
  672. package/dist/q2-tecton-elements/q2-tag.entry.esm.js.map +0 -1
  673. package/dist/q2-tecton-elements/q2-tag.entry.js +0 -256
  674. package/dist/q2-tecton-elements/q2-tag.entry.js.map +0 -1
  675. package/dist/q2-tecton-elements/sanitize-html-string-BPwFpYg-.js.map +0 -1
  676. /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/jest.e2e-coverage.d.ts +0 -0
  677. /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +0 -0
  678. /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/scripts/docs-generator/index.d.ts +0 -0
  679. /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/scripts/docs-generator/markdown-generator.d.ts +0 -0
  680. /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/scripts/docs-generator/tag-handlers.d.ts +0 -0
  681. /package/dist/types/{builds/q2e/development/tecton/tecton → Users/kvanhouten/Documents/Work/tecton_extra}/packages/q2-tecton-elements/.stencil/scripts/docs-generator/types.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, h, g as getElement } from './index-CGkHOjh1.js';
2
- import { o as overrideFocus, h as hasSlotContent } from './index-B4WYBDS9.js';
2
+ import { o as overrideFocus, h as hasSlotContent } from './index-C4PILj1_.js';
3
3
 
4
- const q2ItemCss = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{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}*{box-sizing:border-box}*:active{outline:none}*:focus-visible{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 .item{--comp-border-radius:var(--tct-item-border-radius, var(--app-border-radius-0, 0))}:host([clickable]){cursor:pointer;--comp-background:var(--tct-btn-primary-background, var(--tct-btn-primary-bg, var(--t-a11y-active-gray-color-AA, #404040)))}:host([clickable]) .item{--comp-border-radius:var(--tct-item-border-radius, var(--app-border-radius-1, 4px));--comp-btn-tween:var(--tct-btn-tween, var(--t-btn-tween, var(--tct-tween-1, var(--app-tween-1, 0.2s ease))));--comp-btn-fallback-box-shadow:0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);--comp-hover-box-shadow:var(--tct-btn-primary-box-shadow, var(--comp-btn-fallback-box-shadow));--comp-active-box-shadow:var(--tct-btn-primary-active-background, #0063a0);--comp-font-color:var(--tct-btn-primary-font-color, var(--app-white, #ffffff));--comp-hover-outer-ring-color:var(--tct-btn-primary-hover-outer-ring-color, var(--comp-background));--comp-hover-inner-ring-color:var(--tct-btn-primary-hover-inner-ring-color, var(--comp-font-color));--comp-hover-box-shadow:var(\n --tct-btn-primary-hover-box-shadow,\n 0 0 0 2px var(--comp-hover-inner-ring-color),\n 0 0 0 4px var(--comp-hover-outer-ring-color)\n )}:host([clickable]) .item:hover{box-shadow:var(--comp-hover-box-shadow)}:host([clickable]) .item:active{box-shadow:var(--comp-active-box-shadow)}:host([clickable]) .item:focus-visible{box-shadow:var(--const-double-focus-ring)}.action{--tct-btn-icon-height:var(--tct-item-action-icon-height, var(--app-scale-6x, 30px));--tct-btn-icon-width:var(--tct-item-action-icon-width, var(--app-scale-6x, 30px));--tct-icon-size:var(--tct-item-action-icon-size, var(--app-scale-6x, 30px));--tct-radio-label-hidden-columns:18px;--tct-radio-label-margin-right:0;--tct-radio-margin:0;align-items:var(--tct-item-action-align-items, center);display:flex;grid-row:1;justify-content:center}.action-no-bullet{grid-column:2}.body{color:var(--tct-item-body-color, var(--t-textA, #747474));font-size:var(--tct-item-body-font-size, var(--app-font-size, 14px));font-weight:var(--tct-item-body-font-weight, 400)}.bullet{--tct-avatar-fallback-height:var(--tct-item-avatar-height, var(--app-scale-7x, 35px));--tct-avatar-fallback-width:var(--tct-item-avatar-width, var(--app-scale-7x, 35px));--tct-avatar-height:var(--tct-item-avatar-height, var(--app-scale-7x, 35px));--tct-avatar-width:var(--tct-item-avatar-width, var(--app-scale-7x, 35px));grid-column:1;grid-row-start:1;grid-row-end:3;padding-top:var(--tct-item-bullet-padding-top, var(--app-scale-1x, 5px));text-align:center}.bullet-no-footer{grid-row-end:2}.footer{color:var(--tct-item-footer-color, inherit);font-size:var(--tct-item-footer-font-size, inherit);font-weight:var(--tct-item-footer-font-weight, inherit);grid-column-start:2;grid-column-end:4;grid-row:2}.footer-no-action-nor-bullet{grid-column-start:1;grid-column-end:2}.footer-no-action{grid-column-start:2;grid-column-end:3}.footer-no-bullet{grid-column-start:1;grid-column-end:3}.header{color:var(--tct-item-header-color, var(--t-text, #4d4d4d));font-size:var(--tct-item-header-font-size, 16px);font-weight:var(--tct-item-header-font-weight, 600);line-height:var(--tct-item-header-line-height, 1.5)}.item{border:var(--tct-item-border);border-radius:var(--comp-border-radius);transition:var(--comp-btn-tween);transition-property:box-shadow;column-gap:var(--tct-item-horizontal-spacing, var(--app-scale-3x, 15px));display:grid;grid-template-columns:minmax(var(--app-scale-7x, 35px), auto) minmax(0, 1fr) minmax(var(--app-scale-5x, 25px), auto);grid-template-rows:auto auto;padding:var(--tct-item-padding, 0);row-gap:var(--tct-item-vertical-spacing, var(--app-scale-2x, 10px))}.item-no-action-nor-bullet{grid-template-columns:auto}.item-no-action{grid-template-columns:minmax(var(--app-scale-7x, 35px), auto) minmax(0, 1fr)}.item-no-footer{grid-template-rows:auto}.item-no-bullet{grid-template-columns:minmax(0, 1fr) minmax(var(--app-scale-5x, 25px), auto)}.main{grid-column:2;grid-row:1}.main-no-action-nor-bullet{grid-column:1}.main-no-bullet{grid-column:1}";
4
+ const q2ItemCss = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{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}*{box-sizing:border-box}*:active{outline:none}*:focus-visible{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 .item{--comp-border-radius:var(--tct-item-border-radius, var(--app-border-radius-0, 0))}:host([clickable]){cursor:pointer;--comp-background:var(--tct-btn-primary-background, var(--tct-btn-primary-bg, var(--t-a11y-active-gray-color-AA, #404040)))}:host([clickable]) .item{--comp-border-radius:var(--tct-item-border-radius, var(--app-border-radius-1, 4px));--comp-btn-tween:var(--tct-btn-tween, var(--t-btn-tween, var(--tct-tween-1, var(--app-tween-1, 0.2s ease))));--comp-btn-fallback-box-shadow:0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);--comp-hover-box-shadow:var(--tct-btn-primary-box-shadow, var(--comp-btn-fallback-box-shadow));--comp-active-box-shadow:var(--tct-btn-primary-active-background, #0063a0);--comp-font-color:var(--tct-btn-primary-font-color, var(--app-white, #ffffff));--comp-hover-outer-ring-color:var(--tct-btn-primary-hover-outer-ring-color, var(--comp-background));--comp-hover-inner-ring-color:var(--tct-btn-primary-hover-inner-ring-color, var(--comp-font-color));--comp-hover-box-shadow:var(\n --tct-btn-primary-hover-box-shadow,\n 0 0 0 2px var(--comp-hover-inner-ring-color),\n 0 0 0 4px var(--comp-hover-outer-ring-color)\n )}:host([clickable]) .item:hover{box-shadow:var(--comp-hover-box-shadow)}:host([clickable]) .item:active{box-shadow:var(--comp-active-box-shadow)}:host([clickable]) .item:focus-visible{box-shadow:var(--const-double-focus-ring)}.action{--tct-btn-icon-height:var(--tct-item-action-icon-height, var(--app-scale-6x, 30px));--tct-btn-icon-width:var(--tct-item-action-icon-width, var(--app-scale-6x, 30px));--tct-icon-size:var(--tct-item-action-icon-size, var(--app-scale-6x, 30px));--tct-radio-label-hidden-columns:18px;--tct-radio-label-margin-right:0;--tct-radio-margin:0;align-items:var(--tct-item-action-align-items, center);display:flex;grid-row:1;justify-content:center}.action-no-bullet{grid-column:2}.body{color:var(--tct-item-body-color, var(--t-textA, #747474));font-size:var(--tct-item-body-font-size, var(--app-font-size, 14px));font-weight:var(--tct-item-body-font-weight, 400);font-style:var(--tct-item-body-font-style, inherit)}.bullet{--tct-avatar-fallback-height:var(--tct-item-avatar-height, var(--app-scale-7x, 35px));--tct-avatar-fallback-width:var(--tct-item-avatar-width, var(--app-scale-7x, 35px));--tct-avatar-height:var(--tct-item-avatar-height, var(--app-scale-7x, 35px));--tct-avatar-width:var(--tct-item-avatar-width, var(--app-scale-7x, 35px));grid-column:1;grid-row-start:1;grid-row-end:3;padding-top:var(--tct-item-bullet-padding-top, var(--app-scale-1x, 5px));text-align:center}.bullet-no-footer{grid-row-end:2}.footer{color:var(--tct-item-footer-color, inherit);font-size:var(--tct-item-footer-font-size, inherit);font-weight:var(--tct-item-footer-font-weight, inherit);font-style:var(--tct-item-footer-font-style, inherit);grid-column-start:2;grid-column-end:4;grid-row:2}.footer-no-action-nor-bullet{grid-column-start:1;grid-column-end:2}.footer-no-action{grid-column-start:2;grid-column-end:3}.footer-no-bullet{grid-column-start:1;grid-column-end:3}.header{color:var(--tct-item-header-color, var(--t-text, #4d4d4d));font-size:var(--tct-item-header-font-size, 16px);font-style:var(--tct-item-header-font-style, inherit);font-weight:var(--tct-item-header-font-weight, 600);line-height:var(--tct-item-header-line-height, 1.5)}.item{font-style:var(--tct-item-font-style, inherit);border:var(--tct-item-border);border-radius:var(--comp-border-radius);transition:var(--comp-btn-tween);transition-property:box-shadow;column-gap:var(--tct-item-horizontal-spacing, var(--app-scale-3x, 15px));display:grid;grid-template-columns:minmax(var(--app-scale-7x, 35px), auto) minmax(0, 1fr) minmax(var(--app-scale-5x, 25px), auto);grid-template-rows:auto auto;padding:var(--tct-item-padding, 0);row-gap:var(--tct-item-vertical-spacing, var(--app-scale-2x, 10px))}.item-no-action-nor-bullet{grid-template-columns:auto}.item-no-action{grid-template-columns:minmax(var(--app-scale-7x, 35px), auto) minmax(0, 1fr)}.item-no-footer{grid-template-rows:auto}.item-no-bullet{grid-template-columns:minmax(0, 1fr) minmax(var(--app-scale-5x, 25px), auto)}.main{grid-column:2;grid-row:1}.main-no-action-nor-bullet{grid-column:1}.main-no-bullet{grid-column:1}";
5
5
 
6
6
  const Q2Item = class {
7
7
  constructor(hostRef) {
@@ -105,7 +105,7 @@ const Q2Item = class {
105
105
  // #region Render Methods
106
106
  render() {
107
107
  const { clickable } = this;
108
- return (h("div", { key: '031b5234d0a672203b5611b485e123c61281a728', "test-id": "itemContainer", class: this.itemClasses, ref: el => (this.itemElement = el), role: clickable ? 'button' : undefined, tabIndex: clickable ? 0 : undefined }, this.hasDecoratorSlotContent && (h("div", { key: 'dd55fd88f122b0aa1830680e3d104ad1a51e969c', class: this.decoratorClasses }, h("slot", { key: '384102a2d0764bff0a542759d62382146e524872', name: "decorator" }, h("slot", { key: 'c46aa05fbb824df0454d517637593dd8a0dc4095', name: "bullet" })))), h("div", { key: '1c6dbbd0f2a9c1c40c82cbc940c2ec8367e07057', class: this.mainClasses }, this.hasHeaderSlotContent && (h("div", { key: '5d2d1c2a4333d14bf185f57e20a4b064ed6a269b', class: "header" }, h("slot", { key: '2da3db423b914bcd7cdd52ace4e898c1b7957b8f', name: "header" }))), this.hasBodySlotContent && (h("div", { key: '82fc01d1ab048104b14b269c41af995a53bac2c3', class: "body" }, h("slot", { key: '3d254e0f4a297671d64014bc92b8ebe33d90200b', name: "body" })))), this.hasActionSlotContent && (h("div", { key: '8186ab3896ca69110dbfbcb90fe9cec73a6ed695', class: this.actionClasses }, h("slot", { key: 'e05c19d86e8cbbd696b2a50cc081dc51ed2ba006', name: "action" }))), this.hasFooterSlotContent && (h("div", { key: '671f2bb2bc7e0f2af9082771cf9d70ea489d5cda', class: this.footerClasses }, h("slot", { key: 'e078cc80aba9b91ac5000ceb3ba39d4f756a4fb1', name: "footer" })))));
108
+ return (h("div", { key: 'ca6b1f858b9857c47204acc08f686727ee8beeeb', "test-id": "itemContainer", class: this.itemClasses, ref: el => (this.itemElement = el), role: clickable ? 'button' : undefined, tabIndex: clickable ? 0 : undefined }, this.hasDecoratorSlotContent && (h("div", { key: '230306123ce534b5d581d5d3c8ac43abc51e5b4e', class: this.decoratorClasses }, h("slot", { key: 'a4cf798e99caa5f158bcffcf88a7fa8655c26a83', name: "decorator" }, h("slot", { key: 'e2e97954c5d6b4eacbbd9a39c78296cb273daa06', name: "bullet" })))), h("div", { key: '482f65fea497fbca187cc77849584fd4f3a07aff', class: this.mainClasses }, this.hasHeaderSlotContent && (h("div", { key: '8863cc54ea1f757f0eafd879e15d9647b5a426e6', class: "header" }, h("slot", { key: '2977d0908edde16d5b3f2c0cddd3254cce20b68a', name: "header" }))), this.hasBodySlotContent && (h("div", { key: 'ba3e78a5001eb2fe8103b4320781dbc093d5e965', class: "body" }, h("slot", { key: '8c0d7c06c88ba2c3e338db99d99095552c40e787', name: "body" })))), this.hasActionSlotContent && (h("div", { key: '89ba277d280eb8b847252c9cecd556b6308d240d', class: this.actionClasses }, h("slot", { key: 'd690fc381d89367183832c70c48d0de1f263b5bc', name: "action" }))), this.hasFooterSlotContent && (h("div", { key: '5cda2ab77b732eb6449b6afe5944a4a68fb5ffb4', class: this.footerClasses }, h("slot", { key: 'ac4fbf27d7af6aa9b383096a415770c972efbade', name: "footer" })))));
109
109
  }
110
110
  get hostElement() { return getElement(this); }
111
111
  };
@@ -1 +1 @@
1
- {"version":3,"file":"q2-item.entry.js","sources":["src/components/q2-item/q2-item.scss?tag=q2-item&encapsulation=shadow","src/components/q2-item/q2-item.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import '../q2-btn/q2-btn-mixins';\n\n:host {\n display: block;\n\n .item {\n --comp-border-radius: #{var-list(--tct-item-border-radius, --app-border-radius-0, 0)};\n }\n}\n\n:host([clickable]) {\n cursor: pointer;\n --comp-background: #{var-list(\n --tct-btn-primary-background,\n --tct-btn-primary-bg,\n --t-a11y-active-gray-color-AA,\n #404040\n )};\n .item {\n --comp-border-radius: #{var-list(--tct-item-border-radius, --app-border-radius-1, 4px)};\n --comp-btn-tween: #{var-list(var-prefixer(btn-tween), --tct-tween-1, --app-tween-1, unquote('0.2s ease'))};\n --comp-btn-fallback-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n --comp-hover-box-shadow: #{var-list(--tct-btn-primary-box-shadow, --comp-btn-fallback-box-shadow)};\n --comp-active-box-shadow: var(--tct-btn-primary-active-background, #0063a0);\n --comp-font-color: #{var-list(--tct-btn-primary-font-color, --app-white, #ffffff)};\n @include btn-ring(primary, hover, --comp-background, --comp-font-color, null);\n &:hover {\n box-shadow: var(--comp-hover-box-shadow);\n }\n &:active {\n box-shadow: var(--comp-active-box-shadow);\n }\n &:focus-visible {\n box-shadow: var(--const-double-focus-ring);\n }\n }\n}\n\n.action {\n --tct-btn-icon-height: #{var-list(--tct-item-action-icon-height, --app-scale-6x, 30px)};\n --tct-btn-icon-width: #{var-list(--tct-item-action-icon-width, --app-scale-6x, 30px)};\n --tct-icon-size: #{var-list(--tct-item-action-icon-size, --app-scale-6x, 30px)};\n --tct-radio-label-hidden-columns: 18px;\n --tct-radio-label-margin-right: 0;\n --tct-radio-margin: 0;\n\n align-items: var(--tct-item-action-align-items, center);\n display: flex;\n grid-row: 1;\n justify-content: center;\n\n &-no-bullet {\n grid-column: 2;\n }\n}\n\n.body {\n color: var-list(--tct-item-body-color, --t-textA, #747474);\n font-size: var-list(--tct-item-body-font-size, --app-font-size, 14px);\n font-weight: var-list(--tct-item-body-font-weight, 400);\n}\n\n.bullet {\n --tct-avatar-fallback-height: #{var-list(--tct-item-avatar-height, --app-scale-7x, 35px)};\n --tct-avatar-fallback-width: #{var-list(--tct-item-avatar-width, --app-scale-7x, 35px)};\n --tct-avatar-height: #{var-list(--tct-item-avatar-height, --app-scale-7x, 35px)};\n --tct-avatar-width: #{var-list(--tct-item-avatar-width, --app-scale-7x, 35px)};\n\n grid-column: 1;\n grid-row-start: 1;\n grid-row-end: 3;\n padding-top: var-list(--tct-item-bullet-padding-top, --app-scale-1x, 5px);\n text-align: center;\n\n &-no-footer {\n grid-row-end: 2;\n }\n}\n\n.footer {\n color: var-list(--tct-item-footer-color, inherit);\n font-size: var(--tct-item-footer-font-size, inherit);\n font-weight: var(--tct-item-footer-font-weight, inherit);\n grid-column-start: 2;\n grid-column-end: 4;\n grid-row: 2;\n\n &-no-action-nor-bullet {\n grid-column-start: 1;\n grid-column-end: 2;\n }\n\n &-no-action {\n grid-column-start: 2;\n grid-column-end: 3;\n }\n\n &-no-bullet {\n grid-column-start: 1;\n grid-column-end: 3;\n }\n}\n\n.header {\n color: var-list(--tct-item-header-color, --t-text, #4d4d4d);\n font-size: var-list(--tct-item-header-font-size, 16px);\n font-weight: var-list(--tct-item-header-font-weight, 600);\n line-height: var-list(--tct-item-header-line-height, 1.5);\n}\n\n.item {\n border: var(--tct-item-border);\n border-radius: var(--comp-border-radius);\n transition: var(--comp-btn-tween);\n transition-property: box-shadow;\n column-gap: var-list(--tct-item-horizontal-spacing, --app-scale-3x, 15px);\n display: grid;\n grid-template-columns: minmax(var(--app-scale-7x, 35px), auto) minmax(0, 1fr) minmax(\n var(--app-scale-5x, 25px),\n auto\n );\n grid-template-rows: auto auto;\n padding: var(--tct-item-padding, 0);\n row-gap: var(--tct-item-vertical-spacing, var(--app-scale-2x, 10px));\n\n &-no-action-nor-bullet {\n grid-template-columns: auto;\n }\n\n &-no-action {\n grid-template-columns: minmax(var(--app-scale-7x, 35px), auto) minmax(0, 1fr);\n }\n\n &-no-footer {\n grid-template-rows: auto;\n }\n\n &-no-bullet {\n grid-template-columns: minmax(0, 1fr) minmax(var(--app-scale-5x, 25px), auto);\n }\n}\n\n.main {\n grid-column: 2;\n grid-row: 1;\n\n &-no-action-nor-bullet {\n grid-column: 1;\n }\n\n &-no-bullet {\n grid-column: 1;\n }\n}\n","import { Component, Element, Listen, h, State, Prop } from '@stencil/core';\nimport { hasSlotContent, overrideFocus } from 'src/utils';\n\n/**\n * @name Item\n * @category Display\n * @summary Use for laying out structured content with header, body, and footer text, icons, and actions.\n * @slot decorator - An optional slot to display custom content in the decorator area.\n * Supports either [Icon](https://tecton.q2developer.com/design-system/q2-icon/) or [Avatar](https://tecton.q2developer.com/design-system/q2-avatar/).\n * Use this to provide a visual indicator or icon for your item.\n *\n * @slot header - An optional slot to display custom content in the header area.\n * Use this to provide a title or label for your item.\n *\n * @slot body - An optional slot to display custom content in the body area.\n * Use this to provide the main content of your item.\n *\n * @slot action - An optional slot to display custom content in the action area.\n * Supports buttons, checkboxes, dropdowns, or other interactive elements related to the item.\n *\n * @slot footer - An optional slot to display custom content in the footer area.\n * Use this to provide additional information or actions related to the item.\n */\n@Component({\n tag: 'q2-item',\n styleUrl: 'q2-item.scss',\n shadow: true,\n})\nexport class Q2Item {\n // #region Own Properties\n\n itemElement: HTMLDivElement;\n mutationObserver: MutationObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n renderTrigger: number = 0;\n\n // #endregion\n // #region Public Property API\n\n /** Makes the item clickable. */\n @Prop({ reflect: true })\n clickable: boolean;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentDidLoad() {\n if (typeof MutationObserver !== 'undefined') {\n const observer = new MutationObserver(() => (this.renderTrigger += 1));\n observer.observe(this.hostElement, { childList: true, subtree: true, attributes: true });\n this.mutationObserver = observer;\n }\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (this.clickable) {\n this.itemElement?.focus();\n } else {\n event.preventDefault();\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get actionClasses() {\n const classes = ['action'];\n if (!this.hasDecoratorSlotContent) {\n classes.push(`action-no-bullet`);\n }\n\n return classes.join(' ');\n }\n\n get decoratorClasses() {\n const classes = ['bullet', 'decorator'];\n if (!this.hasFooterSlotContent) {\n classes.push(`bullet-no-footer`, `decorator-no-footer`);\n }\n\n return classes.join(' ');\n }\n\n get footerClasses() {\n const classes = ['footer'];\n if (!this.hasActionSlotContent && !this.hasDecoratorSlotContent) {\n classes.push(`footer-no-action-nor-bullet`);\n } else if (!this.hasActionSlotContent) {\n classes.push(`footer-no-action`);\n } else if (!this.hasDecoratorSlotContent) {\n classes.push(`footer-no-bullet`, `footer-no-decorator`);\n }\n\n return classes.join(' ');\n }\n\n get hasActionSlotContent() {\n return hasSlotContent(this.hostElement, 'action');\n }\n\n get hasBodySlotContent() {\n return hasSlotContent(this.hostElement, 'body');\n }\n\n get hasDecoratorSlotContent() {\n return hasSlotContent(this.hostElement, 'decorator') || hasSlotContent(this.hostElement, 'bullet');\n }\n\n get hasFooterSlotContent() {\n return hasSlotContent(this.hostElement, 'footer');\n }\n\n get hasHeaderSlotContent() {\n return hasSlotContent(this.hostElement, 'header');\n }\n\n get itemClasses() {\n const classes = ['item'];\n if (!this.hasActionSlotContent && !this.hasDecoratorSlotContent) {\n classes.push(`item-no-action-nor-bullet`);\n } else if (!this.hasActionSlotContent) {\n classes.push(`item-no-action`);\n } else if (!this.hasDecoratorSlotContent) {\n classes.push(`item-no-bullet`, `item-no-decorator`);\n }\n if (!this.hasFooterSlotContent) {\n classes.push(`item-no-footer`);\n }\n\n return classes.join(' ');\n }\n\n get mainClasses() {\n const classes = ['main'];\n if (!this.hasActionSlotContent && !this.hasDecoratorSlotContent) {\n classes.push(`main-no-action-nor-bullet`);\n } else if (!this.hasDecoratorSlotContent) {\n classes.push(`main-no-bullet`, `main-no-decorator`);\n }\n\n return classes.join(' ');\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { clickable } = this;\n return (\n <div\n test-id=\"itemContainer\"\n class={this.itemClasses}\n ref={el => (this.itemElement = el)}\n role={clickable ? 'button' : undefined}\n tabIndex={clickable ? 0 : undefined}\n >\n {this.hasDecoratorSlotContent && (\n <div class={this.decoratorClasses}>\n <slot name=\"decorator\">\n <slot name=\"bullet\" />\n </slot>\n </div>\n )}\n <div class={this.mainClasses}>\n {this.hasHeaderSlotContent && (\n <div class=\"header\">\n <slot name=\"header\" />\n </div>\n )}\n {this.hasBodySlotContent && (\n <div class=\"body\">\n <slot name=\"body\" />\n </div>\n )}\n </div>\n {this.hasActionSlotContent && (\n <div class={this.actionClasses}>\n <slot name=\"action\" />\n </div>\n )}\n {this.hasFooterSlotContent && (\n <div class={this.footerClasses}>\n <slot name=\"footer\" />\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"q2-item.entry.js","sources":["src/components/q2-item/q2-item.scss?tag=q2-item&encapsulation=shadow","src/components/q2-item/q2-item.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import '../q2-btn/q2-btn-mixins';\n\n:host {\n display: block;\n\n .item {\n --comp-border-radius: #{var-list(--tct-item-border-radius, --app-border-radius-0, 0)};\n }\n}\n\n:host([clickable]) {\n cursor: pointer;\n --comp-background: #{var-list(\n --tct-btn-primary-background,\n --tct-btn-primary-bg,\n --t-a11y-active-gray-color-AA,\n #404040\n )};\n .item {\n --comp-border-radius: #{var-list(--tct-item-border-radius, --app-border-radius-1, 4px)};\n --comp-btn-tween: #{var-list(var-prefixer(btn-tween), --tct-tween-1, --app-tween-1, unquote('0.2s ease'))};\n --comp-btn-fallback-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n --comp-hover-box-shadow: #{var-list(--tct-btn-primary-box-shadow, --comp-btn-fallback-box-shadow)};\n --comp-active-box-shadow: var(--tct-btn-primary-active-background, #0063a0);\n --comp-font-color: #{var-list(--tct-btn-primary-font-color, --app-white, #ffffff)};\n @include btn-ring(primary, hover, --comp-background, --comp-font-color, null);\n &:hover {\n box-shadow: var(--comp-hover-box-shadow);\n }\n &:active {\n box-shadow: var(--comp-active-box-shadow);\n }\n &:focus-visible {\n box-shadow: var(--const-double-focus-ring);\n }\n }\n}\n\n.action {\n --tct-btn-icon-height: #{var-list(--tct-item-action-icon-height, --app-scale-6x, 30px)};\n --tct-btn-icon-width: #{var-list(--tct-item-action-icon-width, --app-scale-6x, 30px)};\n --tct-icon-size: #{var-list(--tct-item-action-icon-size, --app-scale-6x, 30px)};\n --tct-radio-label-hidden-columns: 18px;\n --tct-radio-label-margin-right: 0;\n --tct-radio-margin: 0;\n\n align-items: var(--tct-item-action-align-items, center);\n display: flex;\n grid-row: 1;\n justify-content: center;\n\n &-no-bullet {\n grid-column: 2;\n }\n}\n\n.body {\n color: var-list(--tct-item-body-color, --t-textA, #747474);\n font-size: var-list(--tct-item-body-font-size, --app-font-size, 14px);\n font-weight: var-list(--tct-item-body-font-weight, 400);\n font-style: var-list(--tct-item-body-font-style, inherit);\n}\n\n.bullet {\n --tct-avatar-fallback-height: #{var-list(--tct-item-avatar-height, --app-scale-7x, 35px)};\n --tct-avatar-fallback-width: #{var-list(--tct-item-avatar-width, --app-scale-7x, 35px)};\n --tct-avatar-height: #{var-list(--tct-item-avatar-height, --app-scale-7x, 35px)};\n --tct-avatar-width: #{var-list(--tct-item-avatar-width, --app-scale-7x, 35px)};\n\n grid-column: 1;\n grid-row-start: 1;\n grid-row-end: 3;\n padding-top: var-list(--tct-item-bullet-padding-top, --app-scale-1x, 5px);\n text-align: center;\n\n &-no-footer {\n grid-row-end: 2;\n }\n}\n\n.footer {\n color: var-list(--tct-item-footer-color, inherit);\n font-size: var(--tct-item-footer-font-size, inherit);\n font-weight: var(--tct-item-footer-font-weight, inherit);\n font-style: var-list(--tct-item-footer-font-style, inherit);\n grid-column-start: 2;\n grid-column-end: 4;\n grid-row: 2;\n\n &-no-action-nor-bullet {\n grid-column-start: 1;\n grid-column-end: 2;\n }\n\n &-no-action {\n grid-column-start: 2;\n grid-column-end: 3;\n }\n\n &-no-bullet {\n grid-column-start: 1;\n grid-column-end: 3;\n }\n}\n\n.header {\n color: var-list(--tct-item-header-color, --t-text, #4d4d4d);\n font-size: var-list(--tct-item-header-font-size, 16px);\n font-style: var-list(--tct-item-header-font-style, inherit);\n font-weight: var-list(--tct-item-header-font-weight, 600);\n line-height: var-list(--tct-item-header-line-height, 1.5);\n}\n\n.item {\n font-style: var-list(--tct-item-font-style, inherit);\n border: var(--tct-item-border);\n border-radius: var(--comp-border-radius);\n transition: var(--comp-btn-tween);\n transition-property: box-shadow;\n column-gap: var-list(--tct-item-horizontal-spacing, --app-scale-3x, 15px);\n display: grid;\n grid-template-columns: minmax(var(--app-scale-7x, 35px), auto) minmax(0, 1fr) minmax(\n var(--app-scale-5x, 25px),\n auto\n );\n grid-template-rows: auto auto;\n padding: var(--tct-item-padding, 0);\n row-gap: var(--tct-item-vertical-spacing, var(--app-scale-2x, 10px));\n\n &-no-action-nor-bullet {\n grid-template-columns: auto;\n }\n\n &-no-action {\n grid-template-columns: minmax(var(--app-scale-7x, 35px), auto) minmax(0, 1fr);\n }\n\n &-no-footer {\n grid-template-rows: auto;\n }\n\n &-no-bullet {\n grid-template-columns: minmax(0, 1fr) minmax(var(--app-scale-5x, 25px), auto);\n }\n}\n\n.main {\n grid-column: 2;\n grid-row: 1;\n\n &-no-action-nor-bullet {\n grid-column: 1;\n }\n\n &-no-bullet {\n grid-column: 1;\n }\n}\n","import { Component, Element, Listen, h, State, Prop } from '@stencil/core';\nimport { hasSlotContent, overrideFocus } from 'src/utils';\n\n/**\n * @name Item\n * @category Display\n * @summary Use for laying out structured content with header, body, and footer text, icons, and actions.\n * @slot decorator - An optional slot to display custom content in the decorator area.\n * Supports either [Icon](https://tecton.q2developer.com/design-system/q2-icon/) or [Avatar](https://tecton.q2developer.com/design-system/q2-avatar/).\n * Use this to provide a visual indicator or icon for your item.\n *\n * @slot header - An optional slot to display custom content in the header area.\n * Use this to provide a title or label for your item.\n *\n * @slot body - An optional slot to display custom content in the body area.\n * Use this to provide the main content of your item.\n *\n * @slot action - An optional slot to display custom content in the action area.\n * Supports buttons, checkboxes, dropdowns, or other interactive elements related to the item.\n *\n * @slot footer - An optional slot to display custom content in the footer area.\n * Use this to provide additional information or actions related to the item.\n */\n@Component({\n tag: 'q2-item',\n styleUrl: 'q2-item.scss',\n shadow: true,\n})\nexport class Q2Item {\n // #region Own Properties\n\n itemElement: HTMLDivElement;\n mutationObserver: MutationObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n renderTrigger: number = 0;\n\n // #endregion\n // #region Public Property API\n\n /** Makes the item clickable. */\n @Prop({ reflect: true })\n clickable: boolean;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentDidLoad() {\n if (typeof MutationObserver !== 'undefined') {\n const observer = new MutationObserver(() => (this.renderTrigger += 1));\n observer.observe(this.hostElement, { childList: true, subtree: true, attributes: true });\n this.mutationObserver = observer;\n }\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (this.clickable) {\n this.itemElement?.focus();\n } else {\n event.preventDefault();\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get actionClasses() {\n const classes = ['action'];\n if (!this.hasDecoratorSlotContent) {\n classes.push(`action-no-bullet`);\n }\n\n return classes.join(' ');\n }\n\n get decoratorClasses() {\n const classes = ['bullet', 'decorator'];\n if (!this.hasFooterSlotContent) {\n classes.push(`bullet-no-footer`, `decorator-no-footer`);\n }\n\n return classes.join(' ');\n }\n\n get footerClasses() {\n const classes = ['footer'];\n if (!this.hasActionSlotContent && !this.hasDecoratorSlotContent) {\n classes.push(`footer-no-action-nor-bullet`);\n } else if (!this.hasActionSlotContent) {\n classes.push(`footer-no-action`);\n } else if (!this.hasDecoratorSlotContent) {\n classes.push(`footer-no-bullet`, `footer-no-decorator`);\n }\n\n return classes.join(' ');\n }\n\n get hasActionSlotContent() {\n return hasSlotContent(this.hostElement, 'action');\n }\n\n get hasBodySlotContent() {\n return hasSlotContent(this.hostElement, 'body');\n }\n\n get hasDecoratorSlotContent() {\n return hasSlotContent(this.hostElement, 'decorator') || hasSlotContent(this.hostElement, 'bullet');\n }\n\n get hasFooterSlotContent() {\n return hasSlotContent(this.hostElement, 'footer');\n }\n\n get hasHeaderSlotContent() {\n return hasSlotContent(this.hostElement, 'header');\n }\n\n get itemClasses() {\n const classes = ['item'];\n if (!this.hasActionSlotContent && !this.hasDecoratorSlotContent) {\n classes.push(`item-no-action-nor-bullet`);\n } else if (!this.hasActionSlotContent) {\n classes.push(`item-no-action`);\n } else if (!this.hasDecoratorSlotContent) {\n classes.push(`item-no-bullet`, `item-no-decorator`);\n }\n if (!this.hasFooterSlotContent) {\n classes.push(`item-no-footer`);\n }\n\n return classes.join(' ');\n }\n\n get mainClasses() {\n const classes = ['main'];\n if (!this.hasActionSlotContent && !this.hasDecoratorSlotContent) {\n classes.push(`main-no-action-nor-bullet`);\n } else if (!this.hasDecoratorSlotContent) {\n classes.push(`main-no-bullet`, `main-no-decorator`);\n }\n\n return classes.join(' ');\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { clickable } = this;\n return (\n <div\n test-id=\"itemContainer\"\n class={this.itemClasses}\n ref={el => (this.itemElement = el)}\n role={clickable ? 'button' : undefined}\n tabIndex={clickable ? 0 : undefined}\n >\n {this.hasDecoratorSlotContent && (\n <div class={this.decoratorClasses}>\n <slot name=\"decorator\">\n <slot name=\"bullet\" />\n </slot>\n </div>\n )}\n <div class={this.mainClasses}>\n {this.hasHeaderSlotContent && (\n <div class=\"header\">\n <slot name=\"header\" />\n </div>\n )}\n {this.hasBodySlotContent && (\n <div class=\"body\">\n <slot name=\"body\" />\n </div>\n )}\n </div>\n {this.hasActionSlotContent && (\n <div class={this.actionClasses}>\n <slot name=\"action\" />\n </div>\n )}\n {this.hasFooterSlotContent && (\n <div class={this.footerClasses}>\n <slot name=\"footer\" />\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"],"names":[],"mappings":";;;AAAA,MAAM,SAAS,GAAG,6+KAA6+K;;MC4Bl/K,MAAM,GAAA,MAAA;AALnB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;AAqBI,QAAA,IAAa,CAAA,aAAA,GAAW,CAAC;AAiK5B;;;IArJG,gBAAgB,GAAA;AACZ,QAAA,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE;AACzC,YAAA,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;YACtE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACxF,YAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ;;AAEpC,QAAA,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;;;;AAOnC,IAAA,aAAa,CAAC,KAAiB,EAAA;;AAC3B,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;;aACtB;YACH,KAAK,CAAC,cAAc,EAAE;;;;;AAO9B,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;AAC/B,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,gBAAA,CAAkB,CAAC;;AAGpC,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;;AAG5B,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5B,YAAA,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAA,mBAAA,CAAqB,CAAC;;AAG3D,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;;AAG5B,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;AAC7D,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,2BAAA,CAA6B,CAAC;;AACxC,aAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,gBAAA,CAAkB,CAAC;;AAC7B,aAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACtC,YAAA,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAA,mBAAA,CAAqB,CAAC;;AAG3D,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;;AAG5B,IAAA,IAAI,oBAAoB,GAAA;QACpB,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;;AAGrD,IAAA,IAAI,kBAAkB,GAAA;QAClB,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;;AAGnD,IAAA,IAAI,uBAAuB,GAAA;AACvB,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;;AAGtG,IAAA,IAAI,oBAAoB,GAAA;QACpB,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;;AAGrD,IAAA,IAAI,oBAAoB,GAAA;QACpB,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;;AAGrD,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;AAC7D,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,yBAAA,CAA2B,CAAC;;AACtC,aAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,cAAA,CAAgB,CAAC;;AAC3B,aAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACtC,YAAA,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAA,iBAAA,CAAmB,CAAC;;AAEvD,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5B,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,cAAA,CAAgB,CAAC;;AAGlC,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;;AAG5B,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;AAC7D,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,yBAAA,CAA2B,CAAC;;AACtC,aAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACtC,YAAA,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAA,iBAAA,CAAmB,CAAC;;AAGvD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;;;;IAM5B,MAAM,GAAA;AACF,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI;AAC1B,QAAA,QACI,uEACY,eAAe,EACvB,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAClC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,EACtC,QAAQ,EAAE,SAAS,GAAG,CAAC,GAAG,SAAS,EAAA,EAElC,IAAI,CAAC,uBAAuB,KACzB,4DAAK,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAA,EAC7B,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,WAAW,EAAA,EAClB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,QAAQ,EAAG,CAAA,CACnB,CACL,CACT,EACD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,IAAI,CAAC,WAAW,EAAA,EACvB,IAAI,CAAC,oBAAoB,KACtB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,QAAQ,EAAA,EACf,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,QAAQ,EAAA,CAAG,CACpB,CACT,EACA,IAAI,CAAC,kBAAkB,KACpB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,EAAA,EACb,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,MAAM,EAAG,CAAA,CAClB,CACT,CACC,EACL,IAAI,CAAC,oBAAoB,KACtB,4DAAK,KAAK,EAAE,IAAI,CAAC,aAAa,EAAA,EAC1B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,QAAQ,EAAA,CAAG,CACpB,CACT,EACA,IAAI,CAAC,oBAAoB,KACtB,4DAAK,KAAK,EAAE,IAAI,CAAC,aAAa,EAAA,EAC1B,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAA,CAAG,CACpB,CACT,CACC;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-CGkHOjh1.js';
2
2
  import { m as mirrorEmit } from './mirror-emit-DUjY_ucm.js';
3
3
 
4
- const q2LegendCss = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{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:flex-start;background-color:transparent;border:none;column-gap:var(--tct-legend-item-gap, var(--app-scale-2x, 10px));display:flex;min-height:var(--tct-legend-item-min-height, 15px);opacity:1;padding:var(--tct-legend-item-padding, 0 0 9px 0);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, var(--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, 1);text-align:left}.item-value{color:var(--tct-legend-item-value-font-color, var(--t-text, #4d4d4d));display:inline-block;margin-left:auto;flex-grow:0;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, 1);text-align:right}";
4
+ const q2LegendCss = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{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:flex-start;background-color:transparent;border:none;column-gap:var(--tct-legend-item-gap, var(--app-scale-2x, 10px));display:flex;min-height:var(--tct-legend-item-min-height, 15px);opacity:1;padding:var(--tct-legend-item-padding, 0 0 9px 0);transition:opacity var(--app-tween-1, 0.2s ease);width:100%}.item-button:focus-visible{box-shadow:var(--tct-legend-item-focus-visible-box-shadow, var(--aesthetic-focus-ring-shadow))}.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, var(--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, 1);text-align:left}.item-value{color:var(--tct-legend-item-value-font-color, var(--t-text, #4d4d4d));display:inline-block;margin-left:auto;flex-grow:0;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, 1);text-align:right}";
5
5
 
6
6
  const Q2Legend = class {
7
7
  constructor(hostRef) {
@@ -115,7 +115,7 @@ const Q2Legend = class {
115
115
  // #endregion
116
116
  // #region Render Methods
117
117
  render() {
118
- return (h("click-elsewhere", { key: 'c3b1288ebd1e0c3371a208b2a0a1658d0f36d3a9', onChange: () => this.onClickElsewhere(this) }, h("ul", { key: '5c0cbb9dcfbd3ef8bab0921b8f38a136d3d12f92' }, 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)))))))));
118
+ return (h("click-elsewhere", { key: '2edad285ad14be5cdee30e071d1e5e11337076f0', onChange: () => this.onClickElsewhere(this) }, h("ul", { key: '11104022e84eddd37155299b0833c71bc9a0582d' }, 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)))))))));
119
119
  }
120
120
  static get watchers() { return {
121
121
  "hoveredItemId": ["watchHoveredItemId"],
@@ -1 +1 @@
1
- {"version":3,"file":"q2-legend.entry.js","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: flex-start;\n background-color: transparent;\n border: none;\n column-gap: var-list(--tct-legend-item-gap, --app-scale-2x, 10px);\n display: flex;\n min-height: var-list(--tct-legend-item-min-height, 15px);\n opacity: 1;\n padding: var(--tct-legend-item-padding, unquote('0 0 9px 0'));\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-list(--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(--tct-legend-item-name-line-height, 1);\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 margin-left: auto;\n flex-grow: 0;\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(--tct-legend-item-value-line-height, 1);\n text-align: right;\n}\n","import { Component, ComponentInterface, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\nimport type { IDonutChartData } from 'q2-tecton-common/lib/types/element-types';\nimport mirrorEmit from '@/utils/mirror-emit';\n\n/**\n * @name Legend\n * @category Data Visualization\n * @summary Use for displaying chart legends with interactive item selection.\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 /**\n * Emitted when a legend item is clicked.\n * @deprecated Use 'tctClick' instead\n */\n @Event()\n click: EventEmitter<IDonutChartData>;\n\n /**\n * Emitted when the mouse enters a legend item.\n * @deprecated Use 'tctMouseenter' instead\n */\n @Event()\n mouseenter: EventEmitter<IDonutChartData>;\n\n /**\n * Emitted when the mouse leaves a legend item.\n * @deprecated Use 'tctMouseleave' instead\n */\n @Event()\n mouseleave: EventEmitter<IDonutChartData>;\n\n /**\n * Emitted when a legend item is clicked.\n */\n @Event()\n tctClick: EventEmitter<IDonutChartData>;\n\n /**\n * Emitted when the mouse enters a legend item.\n */\n @Event()\n tctMouseEnter: EventEmitter<IDonutChartData>;\n\n /**\n * Emitted when the mouse leaves a legend item.\n */\n @Event()\n tctMouseLeave: 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 mirrorEmit(this, ['click', 'tctClick'], null);\n return;\n }\n\n this.selectedItemIndex = itemIndex;\n mirrorEmit(this, ['click', 'tctClick'], 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 mirrorEmit(this, ['mouseenter', 'tctMouseEnter'], 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 mirrorEmit(this, ['mouseleave', 'tctMouseLeave'], 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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"q2-legend.entry.js","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: flex-start;\n background-color: transparent;\n border: none;\n column-gap: var-list(--tct-legend-item-gap, --app-scale-2x, 10px);\n display: flex;\n min-height: var-list(--tct-legend-item-min-height, 15px);\n opacity: 1;\n padding: var(--tct-legend-item-padding, unquote('0 0 9px 0'));\n transition: opacity var(--app-tween-1, 0.2s ease);\n width: 100%;\n\n &:focus-visible {\n box-shadow: var-list(--tct-legend-item-focus-visible-box-shadow, --aesthetic-focus-ring-shadow);\n }\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-list(--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(--tct-legend-item-name-line-height, 1);\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 margin-left: auto;\n flex-grow: 0;\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(--tct-legend-item-value-line-height, 1);\n text-align: right;\n}\n","import { Component, ComponentInterface, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\nimport type { DonutChartData } from 'q2-tecton-common/lib/types/elements';\nimport mirrorEmit from '@/utils/mirror-emit';\n\n/**\n * @name Legend\n * @category Data Visualization\n * @summary Use for displaying chart legends with interactive item selection.\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: DonutChartData[] = [];\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 /**\n * Emitted when a legend item is clicked.\n * @deprecated Use 'tctClick' instead\n */\n @Event()\n click: EventEmitter<DonutChartData>;\n\n /**\n * Emitted when the mouse enters a legend item.\n * @deprecated Use 'tctMouseenter' instead\n */\n @Event()\n mouseenter: EventEmitter<DonutChartData>;\n\n /**\n * Emitted when the mouse leaves a legend item.\n * @deprecated Use 'tctMouseleave' instead\n */\n @Event()\n mouseleave: EventEmitter<DonutChartData>;\n\n /**\n * Emitted when a legend item is clicked.\n */\n @Event()\n tctClick: EventEmitter<DonutChartData>;\n\n /**\n * Emitted when the mouse enters a legend item.\n */\n @Event()\n tctMouseEnter: EventEmitter<DonutChartData>;\n\n /**\n * Emitted when the mouse leaves a legend item.\n */\n @Event()\n tctMouseLeave: EventEmitter<DonutChartData>;\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: DonutChartData) {\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 mirrorEmit(this, ['click', 'tctClick'], null);\n return;\n }\n\n this.selectedItemIndex = itemIndex;\n mirrorEmit(this, ['click', 'tctClick'], this.data[itemIndex]);\n }\n\n onClickElsewhere(obj) {\n obj.selectedItemIndex = -1;\n }\n\n onMouseEnter(event: Event, itemData: DonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n this.hoveredItemIndex = itemIndex;\n mirrorEmit(this, ['mouseenter', 'tctMouseEnter'], this.data[itemIndex]);\n }\n\n onMouseLeave(event: Event, itemData: DonutChartData) {\n event.stopPropagation();\n const itemIndex = this.getDataIndexForId(itemData.id);\n this.hoveredItemIndex = -1;\n mirrorEmit(this, ['mouseleave', 'tctMouseLeave'], 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"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"q2-link.q2-list.entry.js","sources":["src/components/q2-link/q2-link.scss?tag=q2-link&encapsulation=shadow","src/components/q2-link/q2-link.tsx","src/components/q2-list/q2-list.scss?tag=q2-list&encapsulation=shadow","src/components/q2-list/q2-list.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-block;\n}\n\n:host {\n &:active {\n box-shadow: none;\n }\n}\n\n:host([ellipsis]:not([ellipsis=\"false\"])) {\n display: block;\n flex: 0 1 auto;\n max-width: var-list(--tct-link-ellipsis-max-width, 45%);\n min-width: 0;\n overflow: hidden;\n}\n\n:host([ellipsis]:not([ellipsis=\"false\"])[full-width]:not([full-width=\"false\"])) {\n flex: 1 1 0px;\n max-width: 100%;\n}\n\n:host([full-width]:not([full-width=\"false\"])) {\n display: inline-flex;\n justify-content: center;\n width: 100%;\n}\n\n.ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.label {\n &.ellipsis {\n display: block;\n min-width: 0;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.link-container {\n --comp-link-font-bold-stroke-width: 0.5px;\n background: transparent;\n border: none;\n border-radius: var(--tct-link-border-radius, 0);\n font-size: var-list(--tct-link-font-size, inherit);\n font-weight: var-list(--tct-link-font-weight, inherit);\n max-width: 100%;\n overflow: hidden;\n\n &.standalone {\n --comp-icon-stroke: var(--tct-link-icon-stroke-width, 1.5);\n display: block;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n .link {\n color: var-list(--tct-link-color-standalone, --t-primary);\n min-height: var(--tct-link-min-height, 24px);\n display: flex;\n align-items: center;\n border-radius: var(--tct-link-border-radius, 0);\n --tct-icon-size: 16px;\n text-decoration: none;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n overflow: hidden;\n q2-icon {\n margin-left: var(--tct-link-label-icon-gap, 6px);\n color: var(--tct-link-icon-color, inherit);\n flex-shrink: 0;\n }\n }\n &:hover {\n text-decoration: underline;\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n --tct-icon-stroke-width: calc(var(--comp-icon-stroke) + 0.5);\n }\n &:active:hover {\n text-decoration: underline;\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n --tct-icon-stroke-width: calc(var(--comp-icon-stroke) + 0.5);\n .link {\n color: var-list(--tct-link-color-standalone-active, --t-primary-d2);\n box-shadow: none;\n }\n }\n &.disabled {\n .link {\n cursor: not-allowed;\n color: var-list(--tct-link-color-standalone-disabled-color, --t-primary);\n opacity: var-list(\n --tct-link-color-standalone-disabled-opacity,\n --tct-link-disabled-opacity,\n --app-disabled-opacity,\n 0.4\n );\n text-decoration: none;\n }\n &:hover {\n text-decoration: none;\n }\n }\n }\n\n &.inline {\n margin: 0 var(--tct-link-side-margin, 6px);\n text-decoration: underline;\n color: var-list(--tct-link-color-inline, --t-primary);\n &.ellipsis {\n display: block;\n max-width: 100%;\n }\n &:hover {\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n }\n &:active:hover {\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n color: var-list(--tct-link-color-inline-active, --t-primary-d2);\n box-shadow: none;\n }\n &.disabled {\n cursor: not-allowed;\n opacity: var-list(--tct-link-disabled-opacity, --app-disabled-opacity, 0.4);\n }\n &:focus-visible & {\n box-shadow: var(--const-double-focus-ring);\n }\n }\n}\n","import { Component, Prop, h, ComponentInterface, Element, Event, EventEmitter, Method } from '@stencil/core';\n/**\n * @name Link\n * @category Display\n * @summary Use for navigation to other pages or sections. Prefer over q2-btn for non-action navigation.\n */\n@Component({ tag: 'q2-link', shadow: true, styleUrl: 'q2-link.scss' })\nexport class Q2Link implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Determines whether the component and `tctClick` event are disabled. */\n @Prop({ reflect: true })\n disabled: boolean = false;\n\n /** If `true`, the label will be truncated with an ellipsis when it's too long. */\n @Prop({ reflect: true })\n ellipsis: boolean = false;\n\n /** If `true`, it takes up 100% width. */\n @Prop({ reflect: true })\n fullWidth: boolean;\n\n /** The link when clicked. */\n @Prop({ reflect: true })\n href: string = 'javascript:void(0)';\n\n /** The [q2-icon](https://tecton.q2developer.com/design-system/q2-icon/) to display when `variant` is set to \"standalone\". */\n @Prop({ reflect: true })\n iconType: string;\n\n /** The displayed label to represent your link. */\n @Prop({ reflect: true })\n label: string;\n\n /** How much of the referrer to send when following the link. [See MDN for more information on referrerpolicy](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#referrerpolicy). */\n @Prop({ reflect: true })\n referrerpolicy: ReferrerPolicy;\n\n /** Where to display the linked URL. [See MDN for more information on target](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target). */\n @Prop({ reflect: true })\n target: string; // _self | _blank\n\n /** Applies a `title` attribute to the anchor tag in the shadowRoot of the component. */\n @Prop({ reflect: true })\n tctTitle: string;\n\n /** Determines the visual display style of the link. */\n @Prop({ reflect: true })\n variant: string = 'inline';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the link is clicked.\n * @legacyEvent\n */\n @Event({ cancelable: true })\n tctClick: EventEmitter<{ target: string; referrerpolicy: string; href: string }>;\n\n // #endregion\n // #region Public Methods API\n\n /**\n * A method for click.\n *\n * @testOnly\n */\n @Method()\n async clickLink() {\n const anchor = this.hostElement.shadowRoot.querySelector(`[test-id=\"linkAnchor\"]`);\n (anchor as HTMLAnchorElement)?.click();\n }\n\n // #endregion\n // #region Local Methods\n\n get classes(): string {\n const list = ['link-container'];\n if (this.variant) list.push(this.variant);\n if (!!this.disabled) list.push('disabled');\n return list.join(' ');\n }\n\n handleClick(event: MouseEvent) {\n event.stopPropagation();\n if (this.disabled) return;\n const customEvent = this.tctClick.emit({\n target: this.target,\n referrerpolicy: this.referrerpolicy,\n href: this.href,\n });\n if (customEvent.defaultPrevented) {\n event.preventDefault();\n }\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const labelClasses = this.ellipsis ? 'label ellipsis' : 'label';\n return this.variant === 'standalone' ? (\n <div\n class={this.classes}\n aria-label={this.label}\n >\n <a\n class=\"link\"\n href={!!this.disabled ? undefined : this.href}\n onClick={e => this.handleClick(e)}\n target={this.target || '_self'}\n rel={this.target === '_blank' ? 'noopener' : undefined}\n referrerPolicy={this.referrerpolicy || undefined}\n title={this.tctTitle || undefined}\n test-id=\"linkAnchor\"\n >\n <span class={labelClasses}>{this.label}</span>\n {this.iconType && <q2-icon type={this.iconType}></q2-icon>}\n </a>\n </div>\n ) : (\n <a\n class={`${this.classes}${this.ellipsis ? ' ellipsis' : ''}`}\n onClick={e => this.handleClick(e)}\n href={!!this.disabled ? undefined : this.href}\n target={this.target || '_self'}\n referrerPolicy={this.referrerpolicy || undefined}\n title={this.tctTitle || undefined}\n test-id=\"linkAnchor\"\n >\n {this.label}\n </a>\n );\n }\n\n // #endregion\n}\n","@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import '../q2-btn/q2-btn-mixins';\n\n:host([bordered]:not([bordered='false'])) {\n ::slotted(q2-item:not(:last-child)),\n .header {\n border-style: var-list(--tct-list-item-border-style, solid);\n border-width: var-list(--tct-list-item-border-width, unquote('0 0 1px 0'));\n border-color: var-list(--tct-list-item-border-color, --t-gray-12, #d9d9d9);\n }\n}\n\n::slotted(q2-item) {\n --comp-item-padding: #{var-list(\n --tct-list-item-padding,\n unquote('#{var-list(--app-scale-2x, 10px) var-list(--app-scale-4x, 20px)}')\n )};\n --tct-item-padding: var(--comp-item-padding);\n}\n\n.header {\n --comp-default-header-padding: 0 var(--app-scale-4x, 20px);\n display: flex;\n gap: var(--app-scale-3x, 12px);\n padding: var-list(--tct-list-header-padding, --comp-default-header-padding);\n min-height: var-list(var-prefixer(list-header-min-height), 44px);\n &-spacebetween {\n justify-content: space-between;\n }\n &-start {\n justify-content: flex-start;\n }\n &-end {\n justify-content: flex-end;\n }\n .label {\n width: 100%;\n height: var(--tct-list-label-height, 44px);\n line-height: var(--tct-list-label-line-height, 44px);\n font-size: var-list(--tct-list-label-font-size, --app-font-size, 14px);\n font-weight: var(--tct-list-label-font-weight, 600);\n color: var-list(--tct-list-label-font-color, --t-text, #4d4d4d);\n }\n}\n\nslot:not([name]) {\n display: flex;\n flex-direction: column;\n gap: var(--tct-list-item-gap, 0)\n}\n","import { Component, Element, h, State, Prop } from '@stencil/core';\nimport { hasSlotContent } from 'src/utils';\n\n/**\n * @name List\n * @category Display\n * @summary Use for grouping Item components into a vertical list.\n * @slot filter - An optional slot to display custom content for filtering the list items.\n */\n@Component({\n tag: 'q2-list',\n styleUrl: 'q2-list.scss',\n shadow: true,\n})\nexport class Q2List {\n // #region Own Properties\n\n listElement: HTMLDivElement;\n mutationObserver: MutationObserver;\n scheduledAfterRender: (() => void)[] = [];\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 renderTrigger: number = 0;\n\n // #endregion\n // #region Public Property API\n\n /** Adds a border between each items */\n @Prop({ mutable: true, reflect: true })\n bordered: boolean;\n\n /** label text on header area */\n @Prop({ reflect: true })\n label: string;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n componentDidLoad() {\n if (typeof MutationObserver === 'undefined') return;\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true });\n this.mutationObserver = observer;\n this.onMutationObserved();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n // #endregion\n // #region Local Methods\n\n get hasFilterSlot() {\n return !!this.hostElement.querySelector('q2-pill') || hasSlotContent(this.hostElement, 'pill');\n }\n\n get hasLabelContent() {\n return !!this.label;\n }\n\n get headerClasses() {\n const classes = ['header'];\n if (this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-spacebetween');\n } else if (this.hasLabelContent && !this.hasFilterSlot) {\n classes.push('header-start');\n } else if (!this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-end');\n }\n return classes.join(' ');\n }\n\n get listClasses() {\n const classes = ['list'];\n return classes.join(' ');\n }\n\n onMutationObserved = () => {\n this.renderTrigger += 1;\n this.scheduledAfterRender.push(() => {\n Array.from(this.hostElement.children).forEach(child => {\n if (child.tagName === 'Q2-ITEM') child.role = 'listitem';\n });\n });\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div\n class={this.listClasses}\n ref={el => (this.listElement = el)}\n >\n {(this.hasFilterSlot || this.hasLabelContent) && (\n <div class={this.headerClasses}>\n <div class=\"label\">{this.label}</div>\n {this.hasFilterSlot && <slot name=\"filter\" />}\n </div>\n )}\n <div role=\"list\">\n <slot />\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"q2-link.q2-list.entry.js","sources":["src/components/q2-link/q2-link.scss?tag=q2-link&encapsulation=shadow","src/components/q2-link/q2-link.tsx","src/components/q2-list/q2-list.scss?tag=q2-list&encapsulation=shadow","src/components/q2-list/q2-list.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-block;\n}\n\n:host {\n &:active {\n box-shadow: none;\n }\n}\n\n:host([ellipsis]:not([ellipsis=\"false\"])) {\n display: block;\n flex: 0 1 auto;\n max-width: var-list(--tct-link-ellipsis-max-width, 45%);\n min-width: 0;\n overflow: hidden;\n}\n\n:host([ellipsis]:not([ellipsis=\"false\"])[full-width]:not([full-width=\"false\"])) {\n flex: 1 1 0px;\n max-width: 100%;\n}\n\n:host([full-width]:not([full-width=\"false\"])) {\n display: inline-flex;\n justify-content: center;\n width: 100%;\n}\n\n.ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.label {\n &.ellipsis {\n display: block;\n min-width: 0;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.link-container {\n --comp-link-font-bold-stroke-width: 0.5px;\n background: transparent;\n border: none;\n border-radius: var(--tct-link-border-radius, 0);\n font-size: var-list(--tct-link-font-size, inherit);\n font-weight: var-list(--tct-link-font-weight, inherit);\n max-width: 100%;\n overflow: hidden;\n\n &.standalone {\n --comp-icon-stroke: var(--tct-link-icon-stroke-width, 1.5);\n display: block;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n .link {\n color: var-list(--tct-link-color-standalone, --t-primary);\n min-height: var(--tct-link-min-height, 24px);\n display: flex;\n align-items: center;\n border-radius: var(--tct-link-border-radius, 0);\n --tct-icon-size: 16px;\n text-decoration: none;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n overflow: hidden;\n q2-icon {\n margin-left: var(--tct-link-label-icon-gap, 6px);\n color: var(--tct-link-icon-color, inherit);\n flex-shrink: 0;\n }\n }\n &:hover {\n text-decoration: underline;\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n --tct-icon-stroke-width: calc(var(--comp-icon-stroke) + 0.5);\n }\n &:active:hover {\n text-decoration: underline;\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n --tct-icon-stroke-width: calc(var(--comp-icon-stroke) + 0.5);\n .link {\n color: var-list(--tct-link-color-standalone-active, --t-primary-d2);\n box-shadow: none;\n }\n }\n &.disabled {\n .link {\n cursor: not-allowed;\n color: var-list(--tct-link-color-standalone-disabled-color, --t-primary);\n opacity: var-list(\n --tct-link-color-standalone-disabled-opacity,\n --tct-link-disabled-opacity,\n --app-disabled-opacity,\n 0.4\n );\n text-decoration: none;\n }\n &:hover {\n text-decoration: none;\n }\n }\n &:has(:focus-visible) {\n box-shadow: var(--tct-link-focus-visible-box-shadow, --const-double-focus-ring);\n }\n }\n\n &.inline {\n margin: 0 var(--tct-link-side-margin, 6px);\n text-decoration: underline;\n color: var-list(--tct-link-color-inline, --t-primary);\n &.ellipsis {\n display: block;\n max-width: 100%;\n }\n &:hover {\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n }\n &:active:hover {\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n color: var-list(--tct-link-color-inline-active, --t-primary-d2);\n box-shadow: none;\n }\n &.disabled {\n cursor: not-allowed;\n opacity: var-list(--tct-link-disabled-opacity, --app-disabled-opacity, 0.4);\n }\n &:focus-visible {\n box-shadow: var(--tct-link-focus-visible-box-shadow, --const-double-focus-ring);\n }\n }\n}\n","import { Component, Prop, h, ComponentInterface, Element, Event, EventEmitter, Method } from '@stencil/core';\n/**\n * @name Link\n * @category Display\n * @summary Use for navigation to other pages or sections. Prefer over q2-btn for non-action navigation.\n */\n@Component({ tag: 'q2-link', shadow: true, styleUrl: 'q2-link.scss' })\nexport class Q2Link implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /**\n * @private\n * Tooltip text set by a parent q2-tooltip component for accessibility.\n */\n @Prop()\n _tooltip: string;\n\n /** Determines whether the component and `tctClick` event are disabled. */\n @Prop({ reflect: true })\n disabled: boolean = false;\n\n /** If `true`, the label will be truncated with an ellipsis when it's too long. */\n @Prop({ reflect: true })\n ellipsis: boolean = false;\n\n /** If `true`, it takes up 100% width. */\n @Prop({ reflect: true })\n fullWidth: boolean;\n\n /** The link when clicked. */\n @Prop({ reflect: true })\n href: string = 'javascript:void(0)';\n\n /** The [q2-icon](https://tecton.q2developer.com/design-system/q2-icon/) to display when `variant` is set to \"standalone\". */\n @Prop({ reflect: true })\n iconType: string;\n\n /** The displayed label to represent your link. */\n @Prop({ reflect: true })\n label: string;\n\n /** How much of the referrer to send when following the link. [See MDN for more information on referrerpolicy](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#referrerpolicy). */\n @Prop({ reflect: true })\n referrerpolicy: ReferrerPolicy;\n\n /** Where to display the linked URL. [See MDN for more information on target](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target). */\n @Prop({ reflect: true })\n target: string; // _self | _blank\n\n /** Applies a `title` attribute to the anchor tag in the shadowRoot of the component. */\n @Prop({ reflect: true })\n tctTitle: string;\n\n /** Determines the visual display style of the link. */\n @Prop({ reflect: true })\n variant: string = 'inline';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the link is clicked.\n * @legacyEvent\n */\n @Event({ cancelable: true })\n tctClick: EventEmitter<{ target: string; referrerpolicy: string; href: string }>;\n\n // #endregion\n // #region Public Methods API\n\n /**\n * A method for click.\n *\n * @testOnly\n */\n @Method()\n async clickLink() {\n const anchor = this.hostElement.shadowRoot.querySelector(`[test-id=\"linkAnchor\"]`);\n (anchor as HTMLAnchorElement)?.click();\n }\n\n // #endregion\n // #region Local Methods\n\n get classes(): string {\n const list = ['link-container'];\n if (this.variant) list.push(this.variant);\n if (!!this.disabled) list.push('disabled');\n return list.join(' ');\n }\n\n get composedAriaLabel(): string | undefined {\n const baseText = this.label || this.hostElement.textContent.trim() || undefined;\n if (!this._tooltip && !baseText) return undefined;\n if (!this._tooltip) return this.variant === 'standalone' ? baseText : undefined;\n if (!baseText) return this._tooltip;\n return `${baseText} - ${this._tooltip}`;\n }\n\n handleClick(event: MouseEvent) {\n event.stopPropagation();\n if (this.disabled) return;\n const customEvent = this.tctClick.emit({\n target: this.target,\n referrerpolicy: this.referrerpolicy,\n href: this.href,\n });\n if (customEvent.defaultPrevented) {\n event.preventDefault();\n }\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const labelClasses = this.ellipsis ? 'label ellipsis' : 'label';\n return this.variant === 'standalone' ? (\n <div class={this.classes}>\n <a\n class=\"link\"\n href={!!this.disabled ? undefined : this.href}\n onClick={e => this.handleClick(e)}\n target={this.target || '_self'}\n rel={this.target === '_blank' ? 'noopener' : undefined}\n referrerPolicy={this.referrerpolicy || undefined}\n title={this.tctTitle || undefined}\n aria-label={this.composedAriaLabel}\n test-id=\"linkAnchor\"\n >\n <span class={labelClasses}>{this.label}</span>\n {this.iconType && <q2-icon type={this.iconType}></q2-icon>}\n </a>\n </div>\n ) : (\n <a\n class={`${this.classes}${this.ellipsis ? ' ellipsis' : ''}`}\n onClick={e => this.handleClick(e)}\n href={!!this.disabled ? undefined : this.href}\n target={this.target || '_self'}\n referrerPolicy={this.referrerpolicy || undefined}\n title={this.tctTitle || undefined}\n aria-label={this.composedAriaLabel}\n test-id=\"linkAnchor\"\n >\n {this.label}\n </a>\n );\n }\n\n // #endregion\n}\n","@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import '../q2-btn/q2-btn-mixins';\n\n:host([bordered]:not([bordered='false'])) {\n ::slotted(q2-item:not(:last-child)),\n .header {\n border-style: var-list(--tct-list-item-border-style, solid);\n border-width: var-list(--tct-list-item-border-width, unquote('0 0 1px 0'));\n border-color: var-list(--tct-list-item-border-color, --t-gray-12, #d9d9d9);\n }\n}\n\n::slotted(q2-item) {\n --comp-item-padding: #{var-list(\n --tct-list-item-padding,\n unquote('#{var-list(--app-scale-2x, 10px) var-list(--app-scale-4x, 20px)}')\n )};\n --tct-item-padding: var(--comp-item-padding);\n}\n\n.header {\n --comp-default-header-padding: 0 var(--app-scale-4x, 20px);\n display: flex;\n gap: var(--app-scale-3x, 12px);\n padding: var-list(--tct-list-header-padding, --comp-default-header-padding);\n min-height: var-list(var-prefixer(list-header-min-height), 44px);\n &-spacebetween {\n justify-content: space-between;\n }\n &-start {\n justify-content: flex-start;\n }\n &-end {\n justify-content: flex-end;\n }\n .label {\n width: 100%;\n height: var(--tct-list-label-height, 44px);\n line-height: var(--tct-list-label-line-height, 44px);\n font-size: var-list(--tct-list-label-font-size, --app-font-size, 14px);\n font-weight: var(--tct-list-label-font-weight, 600);\n color: var-list(--tct-list-label-font-color, --t-text, #4d4d4d);\n }\n}\n\nslot:not([name]) {\n display: flex;\n flex-direction: column;\n gap: var(--tct-list-item-gap, 0)\n}\n","import { Component, Element, h, State, Prop } from '@stencil/core';\nimport { hasSlotContent } from 'src/utils';\n\n/**\n * @name List\n * @category Display\n * @summary Use for grouping Item components into a vertical list.\n * @slot filter - An optional slot to display custom content for filtering the list items.\n */\n@Component({\n tag: 'q2-list',\n styleUrl: 'q2-list.scss',\n shadow: true,\n})\nexport class Q2List {\n // #region Own Properties\n\n listElement: HTMLDivElement;\n mutationObserver: MutationObserver;\n scheduledAfterRender: (() => void)[] = [];\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 renderTrigger: number = 0;\n\n // #endregion\n // #region Public Property API\n\n /** Adds a border between each items */\n @Prop({ mutable: true, reflect: true })\n bordered: boolean;\n\n /** label text on header area */\n @Prop({ reflect: true })\n label: string;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n componentDidLoad() {\n if (typeof MutationObserver === 'undefined') return;\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true });\n this.mutationObserver = observer;\n this.onMutationObserved();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n // #endregion\n // #region Local Methods\n\n get hasFilterSlot() {\n return !!this.hostElement.querySelector('q2-pill') || hasSlotContent(this.hostElement, 'pill');\n }\n\n get hasLabelContent() {\n return !!this.label;\n }\n\n get headerClasses() {\n const classes = ['header'];\n if (this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-spacebetween');\n } else if (this.hasLabelContent && !this.hasFilterSlot) {\n classes.push('header-start');\n } else if (!this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-end');\n }\n return classes.join(' ');\n }\n\n get listClasses() {\n const classes = ['list'];\n return classes.join(' ');\n }\n\n onMutationObserved = () => {\n this.renderTrigger += 1;\n this.scheduledAfterRender.push(() => {\n Array.from(this.hostElement.children).forEach(child => {\n if (child.tagName === 'Q2-ITEM') child.role = 'listitem';\n });\n });\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div\n class={this.listClasses}\n ref={el => (this.listElement = el)}\n >\n {(this.hasFilterSlot || this.hasLabelContent) && (\n <div class={this.headerClasses}>\n <div class=\"label\">{this.label}</div>\n {this.hasFilterSlot && <slot name=\"filter\" />}\n </div>\n )}\n <div role=\"list\">\n <slot />\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"],"names":[],"mappings":"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"}
@@ -1,14 +1,12 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-CGkHOjh1.js';
2
- import { h as hasSlotContent } from './index-B4WYBDS9.js';
2
+ import { h as hasSlotContent } from './index-C4PILj1_.js';
3
3
 
4
- const q2LinkCss = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{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:inline-block}:host:active{box-shadow:none}:host([ellipsis]:not([ellipsis=false])){display:block;flex:0 1 auto;max-width:var(--tct-link-ellipsis-max-width, 45%);min-width:0;overflow:hidden}:host([ellipsis]:not([ellipsis=false])[full-width]:not([full-width=false])){flex:1 1 0px;max-width:100%}:host([full-width]:not([full-width=false])){display:inline-flex;justify-content:center;width:100%}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.label.ellipsis{display:block;min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link-container{--comp-link-font-bold-stroke-width:0.5px;background:transparent;border:none;border-radius:var(--tct-link-border-radius, 0);font-size:var(--tct-link-font-size, inherit);font-weight:var(--tct-link-font-weight, inherit);max-width:100%;overflow:hidden}.link-container.standalone{--comp-icon-stroke:var(--tct-link-icon-stroke-width, 1.5);display:block;width:100%;max-width:100%;min-width:0}.link-container.standalone .link{color:var(--tct-link-color-standalone, var(--t-primary));min-height:var(--tct-link-min-height, 24px);display:flex;align-items:center;border-radius:var(--tct-link-border-radius, 0);--tct-icon-size:16px;text-decoration:none;width:100%;max-width:100%;min-width:0;overflow:hidden}.link-container.standalone .link q2-icon{margin-left:var(--tct-link-label-icon-gap, 6px);color:var(--tct-link-icon-color, inherit);flex-shrink:0}.link-container.standalone:hover{text-decoration:underline;-webkit-text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));--tct-icon-stroke-width:calc(var(--comp-icon-stroke) + 0.5)}.link-container.standalone:active:hover{text-decoration:underline;-webkit-text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));--tct-icon-stroke-width:calc(var(--comp-icon-stroke) + 0.5)}.link-container.standalone:active:hover .link{color:var(--tct-link-color-standalone-active, var(--t-primary-d2));box-shadow:none}.link-container.standalone.disabled .link{cursor:not-allowed;color:var(--tct-link-color-standalone-disabled-color, var(--t-primary));opacity:var(--tct-link-color-standalone-disabled-opacity, var(--tct-link-disabled-opacity, var(--app-disabled-opacity, 0.4)));text-decoration:none}.link-container.standalone.disabled:hover{text-decoration:none}.link-container.inline{margin:0 var(--tct-link-side-margin, 6px);text-decoration:underline;color:var(--tct-link-color-inline, var(--t-primary))}.link-container.inline.ellipsis{display:block;max-width:100%}.link-container.inline:hover{-webkit-text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width))}.link-container.inline:active:hover{-webkit-text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));color:var(--tct-link-color-inline-active, var(--t-primary-d2));box-shadow:none}.link-container.inline.disabled{cursor:not-allowed;opacity:var(--tct-link-disabled-opacity, var(--app-disabled-opacity, 0.4))}.link-container.inline:focus-visible .link-container.inline{box-shadow:var(--const-double-focus-ring)}";
4
+ const q2LinkCss = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{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:inline-block}:host:active{box-shadow:none}:host([ellipsis]:not([ellipsis=false])){display:block;flex:0 1 auto;max-width:var(--tct-link-ellipsis-max-width, 45%);min-width:0;overflow:hidden}:host([ellipsis]:not([ellipsis=false])[full-width]:not([full-width=false])){flex:1 1 0px;max-width:100%}:host([full-width]:not([full-width=false])){display:inline-flex;justify-content:center;width:100%}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.label.ellipsis{display:block;min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link-container{--comp-link-font-bold-stroke-width:0.5px;background:transparent;border:none;border-radius:var(--tct-link-border-radius, 0);font-size:var(--tct-link-font-size, inherit);font-weight:var(--tct-link-font-weight, inherit);max-width:100%;overflow:hidden}.link-container.standalone{--comp-icon-stroke:var(--tct-link-icon-stroke-width, 1.5);display:block;width:100%;max-width:100%;min-width:0}.link-container.standalone .link{color:var(--tct-link-color-standalone, var(--t-primary));min-height:var(--tct-link-min-height, 24px);display:flex;align-items:center;border-radius:var(--tct-link-border-radius, 0);--tct-icon-size:16px;text-decoration:none;width:100%;max-width:100%;min-width:0;overflow:hidden}.link-container.standalone .link q2-icon{margin-left:var(--tct-link-label-icon-gap, 6px);color:var(--tct-link-icon-color, inherit);flex-shrink:0}.link-container.standalone:hover{text-decoration:underline;-webkit-text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));--tct-icon-stroke-width:calc(var(--comp-icon-stroke) + 0.5)}.link-container.standalone:active:hover{text-decoration:underline;-webkit-text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));--tct-icon-stroke-width:calc(var(--comp-icon-stroke) + 0.5)}.link-container.standalone:active:hover .link{color:var(--tct-link-color-standalone-active, var(--t-primary-d2));box-shadow:none}.link-container.standalone.disabled .link{cursor:not-allowed;color:var(--tct-link-color-standalone-disabled-color, var(--t-primary));opacity:var(--tct-link-color-standalone-disabled-opacity, var(--tct-link-disabled-opacity, var(--app-disabled-opacity, 0.4)));text-decoration:none}.link-container.standalone.disabled:hover{text-decoration:none}.link-container.standalone:has(:focus-visible){box-shadow:var(--tct-link-focus-visible-box-shadow, --const-double-focus-ring)}.link-container.inline{margin:0 var(--tct-link-side-margin, 6px);text-decoration:underline;color:var(--tct-link-color-inline, var(--t-primary))}.link-container.inline.ellipsis{display:block;max-width:100%}.link-container.inline:hover{-webkit-text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width))}.link-container.inline:active:hover{-webkit-text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));text-stroke-width:var(--tct-link-font-bold-stroke-width, var(--comp-link-font-bold-stroke-width));color:var(--tct-link-color-inline-active, var(--t-primary-d2));box-shadow:none}.link-container.inline.disabled{cursor:not-allowed;opacity:var(--tct-link-disabled-opacity, var(--app-disabled-opacity, 0.4))}.link-container.inline:focus-visible{box-shadow:var(--tct-link-focus-visible-box-shadow, --const-double-focus-ring)}";
5
5
 
6
6
  const Q2Link = class {
7
7
  constructor(hostRef) {
8
8
  registerInstance(this, hostRef);
9
9
  this.tctClick = createEvent(this, "tctClick", 7);
10
- // #endregion
11
- // #region Public Property API
12
10
  /** Determines whether the component and `tctClick` event are disabled. */
13
11
  this.disabled = false;
14
12
  /** If `true`, the label will be truncated with an ellipsis when it's too long. */
@@ -39,6 +37,16 @@ const Q2Link = class {
39
37
  list.push('disabled');
40
38
  return list.join(' ');
41
39
  }
40
+ get composedAriaLabel() {
41
+ const baseText = this.label || this.hostElement.textContent.trim() || undefined;
42
+ if (!this._tooltip && !baseText)
43
+ return undefined;
44
+ if (!this._tooltip)
45
+ return this.variant === 'standalone' ? baseText : undefined;
46
+ if (!baseText)
47
+ return this._tooltip;
48
+ return `${baseText} - ${this._tooltip}`;
49
+ }
42
50
  handleClick(event) {
43
51
  event.stopPropagation();
44
52
  if (this.disabled)
@@ -56,7 +64,7 @@ const Q2Link = class {
56
64
  // #region Render Methods
57
65
  render() {
58
66
  const labelClasses = this.ellipsis ? 'label ellipsis' : 'label';
59
- return this.variant === 'standalone' ? (h("div", { class: this.classes, "aria-label": this.label }, h("a", { class: "link", href: !!this.disabled ? undefined : this.href, onClick: e => this.handleClick(e), target: this.target || '_self', rel: this.target === '_blank' ? 'noopener' : undefined, referrerPolicy: this.referrerpolicy || undefined, title: this.tctTitle || undefined, "test-id": "linkAnchor" }, h("span", { class: labelClasses }, this.label), this.iconType && h("q2-icon", { type: this.iconType })))) : (h("a", { class: `${this.classes}${this.ellipsis ? ' ellipsis' : ''}`, onClick: e => this.handleClick(e), href: !!this.disabled ? undefined : this.href, target: this.target || '_self', referrerPolicy: this.referrerpolicy || undefined, title: this.tctTitle || undefined, "test-id": "linkAnchor" }, this.label));
67
+ return this.variant === 'standalone' ? (h("div", { class: this.classes }, h("a", { class: "link", href: !!this.disabled ? undefined : this.href, onClick: e => this.handleClick(e), target: this.target || '_self', rel: this.target === '_blank' ? 'noopener' : undefined, referrerPolicy: this.referrerpolicy || undefined, title: this.tctTitle || undefined, "aria-label": this.composedAriaLabel, "test-id": "linkAnchor" }, h("span", { class: labelClasses }, this.label), this.iconType && h("q2-icon", { type: this.iconType })))) : (h("a", { class: `${this.classes}${this.ellipsis ? ' ellipsis' : ''}`, onClick: e => this.handleClick(e), href: !!this.disabled ? undefined : this.href, target: this.target || '_self', referrerPolicy: this.referrerpolicy || undefined, title: this.tctTitle || undefined, "aria-label": this.composedAriaLabel, "test-id": "linkAnchor" }, this.label));
60
68
  }
61
69
  get hostElement() { return getElement(this); }
62
70
  };
@@ -128,7 +136,7 @@ const Q2List = class {
128
136
  // #endregion
129
137
  // #region Render Methods
130
138
  render() {
131
- return (h("div", { key: 'e8e7fae7c0cff255a864a13a7ddf97081b056d51', class: this.listClasses, ref: el => (this.listElement = el) }, (this.hasFilterSlot || this.hasLabelContent) && (h("div", { key: 'a0dcecee335fc3253d4d68a294b238f7c4b0fa48', class: this.headerClasses }, h("div", { key: '682c70b0fcfabe5a0d5bc083986d313cbada9367', class: "label" }, this.label), this.hasFilterSlot && h("slot", { key: '7ed718c00e7ba11e59fa2f2280fe0e5706093df0', name: "filter" }))), h("div", { key: 'ddbd92f6b7ee3979d0fedd097dcc4c7fdde901a3', role: "list" }, h("slot", { key: '9cb1b4a7d4e755b87016920ced5b8cdc17576edb' }))));
139
+ return (h("div", { key: '627d68ebcba5f0d9dea1ab60481c380916c76ae5', class: this.listClasses, ref: el => (this.listElement = el) }, (this.hasFilterSlot || this.hasLabelContent) && (h("div", { key: 'f5567987b84f12874e4a8c42b846f5785b99e2bb', class: this.headerClasses }, h("div", { key: '0664369f4d92be4486f8d672f62c0d3478c13c2a', class: "label" }, this.label), this.hasFilterSlot && h("slot", { key: 'faa8de8696790abc591632e5bc182228da532562', name: "filter" }))), h("div", { key: '60a4c2980ea5462df148e31251a59142e001b5f3', role: "list" }, h("slot", { key: '935730bc5de751dcd25111cdd4f9cb6b9d00f10b' }))));
132
140
  }
133
141
  get hostElement() { return getElement(this); }
134
142
  };
@@ -1 +1 @@
1
- {"file":"q2-link.q2-list.entry.js","mappings":"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","names":[],"sources":["src/components/q2-link/q2-link.scss?tag=q2-link&encapsulation=shadow","src/components/q2-link/q2-link.tsx","src/components/q2-list/q2-list.scss?tag=q2-list&encapsulation=shadow","src/components/q2-list/q2-list.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-block;\n}\n\n:host {\n &:active {\n box-shadow: none;\n }\n}\n\n:host([ellipsis]:not([ellipsis=\"false\"])) {\n display: block;\n flex: 0 1 auto;\n max-width: var-list(--tct-link-ellipsis-max-width, 45%);\n min-width: 0;\n overflow: hidden;\n}\n\n:host([ellipsis]:not([ellipsis=\"false\"])[full-width]:not([full-width=\"false\"])) {\n flex: 1 1 0px;\n max-width: 100%;\n}\n\n:host([full-width]:not([full-width=\"false\"])) {\n display: inline-flex;\n justify-content: center;\n width: 100%;\n}\n\n.ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.label {\n &.ellipsis {\n display: block;\n min-width: 0;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.link-container {\n --comp-link-font-bold-stroke-width: 0.5px;\n background: transparent;\n border: none;\n border-radius: var(--tct-link-border-radius, 0);\n font-size: var-list(--tct-link-font-size, inherit);\n font-weight: var-list(--tct-link-font-weight, inherit);\n max-width: 100%;\n overflow: hidden;\n\n &.standalone {\n --comp-icon-stroke: var(--tct-link-icon-stroke-width, 1.5);\n display: block;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n .link {\n color: var-list(--tct-link-color-standalone, --t-primary);\n min-height: var(--tct-link-min-height, 24px);\n display: flex;\n align-items: center;\n border-radius: var(--tct-link-border-radius, 0);\n --tct-icon-size: 16px;\n text-decoration: none;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n overflow: hidden;\n q2-icon {\n margin-left: var(--tct-link-label-icon-gap, 6px);\n color: var(--tct-link-icon-color, inherit);\n flex-shrink: 0;\n }\n }\n &:hover {\n text-decoration: underline;\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n --tct-icon-stroke-width: calc(var(--comp-icon-stroke) + 0.5);\n }\n &:active:hover {\n text-decoration: underline;\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n --tct-icon-stroke-width: calc(var(--comp-icon-stroke) + 0.5);\n .link {\n color: var-list(--tct-link-color-standalone-active, --t-primary-d2);\n box-shadow: none;\n }\n }\n &.disabled {\n .link {\n cursor: not-allowed;\n color: var-list(--tct-link-color-standalone-disabled-color, --t-primary);\n opacity: var-list(\n --tct-link-color-standalone-disabled-opacity,\n --tct-link-disabled-opacity,\n --app-disabled-opacity,\n 0.4\n );\n text-decoration: none;\n }\n &:hover {\n text-decoration: none;\n }\n }\n }\n\n &.inline {\n margin: 0 var(--tct-link-side-margin, 6px);\n text-decoration: underline;\n color: var-list(--tct-link-color-inline, --t-primary);\n &.ellipsis {\n display: block;\n max-width: 100%;\n }\n &:hover {\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n }\n &:active:hover {\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n color: var-list(--tct-link-color-inline-active, --t-primary-d2);\n box-shadow: none;\n }\n &.disabled {\n cursor: not-allowed;\n opacity: var-list(--tct-link-disabled-opacity, --app-disabled-opacity, 0.4);\n }\n &:focus-visible & {\n box-shadow: var(--const-double-focus-ring);\n }\n }\n}\n","import { Component, Prop, h, ComponentInterface, Element, Event, EventEmitter, Method } from '@stencil/core';\n/**\n * @name Link\n * @category Display\n * @summary Use for navigation to other pages or sections. Prefer over q2-btn for non-action navigation.\n */\n@Component({ tag: 'q2-link', shadow: true, styleUrl: 'q2-link.scss' })\nexport class Q2Link implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Determines whether the component and `tctClick` event are disabled. */\n @Prop({ reflect: true })\n disabled: boolean = false;\n\n /** If `true`, the label will be truncated with an ellipsis when it's too long. */\n @Prop({ reflect: true })\n ellipsis: boolean = false;\n\n /** If `true`, it takes up 100% width. */\n @Prop({ reflect: true })\n fullWidth: boolean;\n\n /** The link when clicked. */\n @Prop({ reflect: true })\n href: string = 'javascript:void(0)';\n\n /** The [q2-icon](https://tecton.q2developer.com/design-system/q2-icon/) to display when `variant` is set to \"standalone\". */\n @Prop({ reflect: true })\n iconType: string;\n\n /** The displayed label to represent your link. */\n @Prop({ reflect: true })\n label: string;\n\n /** How much of the referrer to send when following the link. [See MDN for more information on referrerpolicy](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#referrerpolicy). */\n @Prop({ reflect: true })\n referrerpolicy: ReferrerPolicy;\n\n /** Where to display the linked URL. [See MDN for more information on target](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target). */\n @Prop({ reflect: true })\n target: string; // _self | _blank\n\n /** Applies a `title` attribute to the anchor tag in the shadowRoot of the component. */\n @Prop({ reflect: true })\n tctTitle: string;\n\n /** Determines the visual display style of the link. */\n @Prop({ reflect: true })\n variant: string = 'inline';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the link is clicked.\n * @legacyEvent\n */\n @Event({ cancelable: true })\n tctClick: EventEmitter<{ target: string; referrerpolicy: string; href: string }>;\n\n // #endregion\n // #region Public Methods API\n\n /**\n * A method for click.\n *\n * @testOnly\n */\n @Method()\n async clickLink() {\n const anchor = this.hostElement.shadowRoot.querySelector(`[test-id=\"linkAnchor\"]`);\n (anchor as HTMLAnchorElement)?.click();\n }\n\n // #endregion\n // #region Local Methods\n\n get classes(): string {\n const list = ['link-container'];\n if (this.variant) list.push(this.variant);\n if (!!this.disabled) list.push('disabled');\n return list.join(' ');\n }\n\n handleClick(event: MouseEvent) {\n event.stopPropagation();\n if (this.disabled) return;\n const customEvent = this.tctClick.emit({\n target: this.target,\n referrerpolicy: this.referrerpolicy,\n href: this.href,\n });\n if (customEvent.defaultPrevented) {\n event.preventDefault();\n }\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const labelClasses = this.ellipsis ? 'label ellipsis' : 'label';\n return this.variant === 'standalone' ? (\n <div\n class={this.classes}\n aria-label={this.label}\n >\n <a\n class=\"link\"\n href={!!this.disabled ? undefined : this.href}\n onClick={e => this.handleClick(e)}\n target={this.target || '_self'}\n rel={this.target === '_blank' ? 'noopener' : undefined}\n referrerPolicy={this.referrerpolicy || undefined}\n title={this.tctTitle || undefined}\n test-id=\"linkAnchor\"\n >\n <span class={labelClasses}>{this.label}</span>\n {this.iconType && <q2-icon type={this.iconType}></q2-icon>}\n </a>\n </div>\n ) : (\n <a\n class={`${this.classes}${this.ellipsis ? ' ellipsis' : ''}`}\n onClick={e => this.handleClick(e)}\n href={!!this.disabled ? undefined : this.href}\n target={this.target || '_self'}\n referrerPolicy={this.referrerpolicy || undefined}\n title={this.tctTitle || undefined}\n test-id=\"linkAnchor\"\n >\n {this.label}\n </a>\n );\n }\n\n // #endregion\n}\n","@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import '../q2-btn/q2-btn-mixins';\n\n:host([bordered]:not([bordered='false'])) {\n ::slotted(q2-item:not(:last-child)),\n .header {\n border-style: var-list(--tct-list-item-border-style, solid);\n border-width: var-list(--tct-list-item-border-width, unquote('0 0 1px 0'));\n border-color: var-list(--tct-list-item-border-color, --t-gray-12, #d9d9d9);\n }\n}\n\n::slotted(q2-item) {\n --comp-item-padding: #{var-list(\n --tct-list-item-padding,\n unquote('#{var-list(--app-scale-2x, 10px) var-list(--app-scale-4x, 20px)}')\n )};\n --tct-item-padding: var(--comp-item-padding);\n}\n\n.header {\n --comp-default-header-padding: 0 var(--app-scale-4x, 20px);\n display: flex;\n gap: var(--app-scale-3x, 12px);\n padding: var-list(--tct-list-header-padding, --comp-default-header-padding);\n min-height: var-list(var-prefixer(list-header-min-height), 44px);\n &-spacebetween {\n justify-content: space-between;\n }\n &-start {\n justify-content: flex-start;\n }\n &-end {\n justify-content: flex-end;\n }\n .label {\n width: 100%;\n height: var(--tct-list-label-height, 44px);\n line-height: var(--tct-list-label-line-height, 44px);\n font-size: var-list(--tct-list-label-font-size, --app-font-size, 14px);\n font-weight: var(--tct-list-label-font-weight, 600);\n color: var-list(--tct-list-label-font-color, --t-text, #4d4d4d);\n }\n}\n\nslot:not([name]) {\n display: flex;\n flex-direction: column;\n gap: var(--tct-list-item-gap, 0)\n}\n","import { Component, Element, h, State, Prop } from '@stencil/core';\nimport { hasSlotContent } from 'src/utils';\n\n/**\n * @name List\n * @category Display\n * @summary Use for grouping Item components into a vertical list.\n * @slot filter - An optional slot to display custom content for filtering the list items.\n */\n@Component({\n tag: 'q2-list',\n styleUrl: 'q2-list.scss',\n shadow: true,\n})\nexport class Q2List {\n // #region Own Properties\n\n listElement: HTMLDivElement;\n mutationObserver: MutationObserver;\n scheduledAfterRender: (() => void)[] = [];\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 renderTrigger: number = 0;\n\n // #endregion\n // #region Public Property API\n\n /** Adds a border between each items */\n @Prop({ mutable: true, reflect: true })\n bordered: boolean;\n\n /** label text on header area */\n @Prop({ reflect: true })\n label: string;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n componentDidLoad() {\n if (typeof MutationObserver === 'undefined') return;\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true });\n this.mutationObserver = observer;\n this.onMutationObserved();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n // #endregion\n // #region Local Methods\n\n get hasFilterSlot() {\n return !!this.hostElement.querySelector('q2-pill') || hasSlotContent(this.hostElement, 'pill');\n }\n\n get hasLabelContent() {\n return !!this.label;\n }\n\n get headerClasses() {\n const classes = ['header'];\n if (this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-spacebetween');\n } else if (this.hasLabelContent && !this.hasFilterSlot) {\n classes.push('header-start');\n } else if (!this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-end');\n }\n return classes.join(' ');\n }\n\n get listClasses() {\n const classes = ['list'];\n return classes.join(' ');\n }\n\n onMutationObserved = () => {\n this.renderTrigger += 1;\n this.scheduledAfterRender.push(() => {\n Array.from(this.hostElement.children).forEach(child => {\n if (child.tagName === 'Q2-ITEM') child.role = 'listitem';\n });\n });\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div\n class={this.listClasses}\n ref={el => (this.listElement = el)}\n >\n {(this.hasFilterSlot || this.hasLabelContent) && (\n <div class={this.headerClasses}>\n <div class=\"label\">{this.label}</div>\n {this.hasFilterSlot && <slot name=\"filter\" />}\n </div>\n )}\n <div role=\"list\">\n <slot />\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"],"version":3}
1
+ {"file":"q2-link.q2-list.entry.js","mappings":"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","names":[],"sources":["src/components/q2-link/q2-link.scss?tag=q2-link&encapsulation=shadow","src/components/q2-link/q2-link.tsx","src/components/q2-list/q2-list.scss?tag=q2-list&encapsulation=shadow","src/components/q2-list/q2-list.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-block;\n}\n\n:host {\n &:active {\n box-shadow: none;\n }\n}\n\n:host([ellipsis]:not([ellipsis=\"false\"])) {\n display: block;\n flex: 0 1 auto;\n max-width: var-list(--tct-link-ellipsis-max-width, 45%);\n min-width: 0;\n overflow: hidden;\n}\n\n:host([ellipsis]:not([ellipsis=\"false\"])[full-width]:not([full-width=\"false\"])) {\n flex: 1 1 0px;\n max-width: 100%;\n}\n\n:host([full-width]:not([full-width=\"false\"])) {\n display: inline-flex;\n justify-content: center;\n width: 100%;\n}\n\n.ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.label {\n &.ellipsis {\n display: block;\n min-width: 0;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.link-container {\n --comp-link-font-bold-stroke-width: 0.5px;\n background: transparent;\n border: none;\n border-radius: var(--tct-link-border-radius, 0);\n font-size: var-list(--tct-link-font-size, inherit);\n font-weight: var-list(--tct-link-font-weight, inherit);\n max-width: 100%;\n overflow: hidden;\n\n &.standalone {\n --comp-icon-stroke: var(--tct-link-icon-stroke-width, 1.5);\n display: block;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n .link {\n color: var-list(--tct-link-color-standalone, --t-primary);\n min-height: var(--tct-link-min-height, 24px);\n display: flex;\n align-items: center;\n border-radius: var(--tct-link-border-radius, 0);\n --tct-icon-size: 16px;\n text-decoration: none;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n overflow: hidden;\n q2-icon {\n margin-left: var(--tct-link-label-icon-gap, 6px);\n color: var(--tct-link-icon-color, inherit);\n flex-shrink: 0;\n }\n }\n &:hover {\n text-decoration: underline;\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n --tct-icon-stroke-width: calc(var(--comp-icon-stroke) + 0.5);\n }\n &:active:hover {\n text-decoration: underline;\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n --tct-icon-stroke-width: calc(var(--comp-icon-stroke) + 0.5);\n .link {\n color: var-list(--tct-link-color-standalone-active, --t-primary-d2);\n box-shadow: none;\n }\n }\n &.disabled {\n .link {\n cursor: not-allowed;\n color: var-list(--tct-link-color-standalone-disabled-color, --t-primary);\n opacity: var-list(\n --tct-link-color-standalone-disabled-opacity,\n --tct-link-disabled-opacity,\n --app-disabled-opacity,\n 0.4\n );\n text-decoration: none;\n }\n &:hover {\n text-decoration: none;\n }\n }\n &:has(:focus-visible) {\n box-shadow: var(--tct-link-focus-visible-box-shadow, --const-double-focus-ring);\n }\n }\n\n &.inline {\n margin: 0 var(--tct-link-side-margin, 6px);\n text-decoration: underline;\n color: var-list(--tct-link-color-inline, --t-primary);\n &.ellipsis {\n display: block;\n max-width: 100%;\n }\n &:hover {\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n }\n &:active:hover {\n -webkit-text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n text-stroke-width: var-list(--tct-link-font-bold-stroke-width, --comp-link-font-bold-stroke-width);\n color: var-list(--tct-link-color-inline-active, --t-primary-d2);\n box-shadow: none;\n }\n &.disabled {\n cursor: not-allowed;\n opacity: var-list(--tct-link-disabled-opacity, --app-disabled-opacity, 0.4);\n }\n &:focus-visible {\n box-shadow: var(--tct-link-focus-visible-box-shadow, --const-double-focus-ring);\n }\n }\n}\n","import { Component, Prop, h, ComponentInterface, Element, Event, EventEmitter, Method } from '@stencil/core';\n/**\n * @name Link\n * @category Display\n * @summary Use for navigation to other pages or sections. Prefer over q2-btn for non-action navigation.\n */\n@Component({ tag: 'q2-link', shadow: true, styleUrl: 'q2-link.scss' })\nexport class Q2Link implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /**\n * @private\n * Tooltip text set by a parent q2-tooltip component for accessibility.\n */\n @Prop()\n _tooltip: string;\n\n /** Determines whether the component and `tctClick` event are disabled. */\n @Prop({ reflect: true })\n disabled: boolean = false;\n\n /** If `true`, the label will be truncated with an ellipsis when it's too long. */\n @Prop({ reflect: true })\n ellipsis: boolean = false;\n\n /** If `true`, it takes up 100% width. */\n @Prop({ reflect: true })\n fullWidth: boolean;\n\n /** The link when clicked. */\n @Prop({ reflect: true })\n href: string = 'javascript:void(0)';\n\n /** The [q2-icon](https://tecton.q2developer.com/design-system/q2-icon/) to display when `variant` is set to \"standalone\". */\n @Prop({ reflect: true })\n iconType: string;\n\n /** The displayed label to represent your link. */\n @Prop({ reflect: true })\n label: string;\n\n /** How much of the referrer to send when following the link. [See MDN for more information on referrerpolicy](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#referrerpolicy). */\n @Prop({ reflect: true })\n referrerpolicy: ReferrerPolicy;\n\n /** Where to display the linked URL. [See MDN for more information on target](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target). */\n @Prop({ reflect: true })\n target: string; // _self | _blank\n\n /** Applies a `title` attribute to the anchor tag in the shadowRoot of the component. */\n @Prop({ reflect: true })\n tctTitle: string;\n\n /** Determines the visual display style of the link. */\n @Prop({ reflect: true })\n variant: string = 'inline';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the link is clicked.\n * @legacyEvent\n */\n @Event({ cancelable: true })\n tctClick: EventEmitter<{ target: string; referrerpolicy: string; href: string }>;\n\n // #endregion\n // #region Public Methods API\n\n /**\n * A method for click.\n *\n * @testOnly\n */\n @Method()\n async clickLink() {\n const anchor = this.hostElement.shadowRoot.querySelector(`[test-id=\"linkAnchor\"]`);\n (anchor as HTMLAnchorElement)?.click();\n }\n\n // #endregion\n // #region Local Methods\n\n get classes(): string {\n const list = ['link-container'];\n if (this.variant) list.push(this.variant);\n if (!!this.disabled) list.push('disabled');\n return list.join(' ');\n }\n\n get composedAriaLabel(): string | undefined {\n const baseText = this.label || this.hostElement.textContent.trim() || undefined;\n if (!this._tooltip && !baseText) return undefined;\n if (!this._tooltip) return this.variant === 'standalone' ? baseText : undefined;\n if (!baseText) return this._tooltip;\n return `${baseText} - ${this._tooltip}`;\n }\n\n handleClick(event: MouseEvent) {\n event.stopPropagation();\n if (this.disabled) return;\n const customEvent = this.tctClick.emit({\n target: this.target,\n referrerpolicy: this.referrerpolicy,\n href: this.href,\n });\n if (customEvent.defaultPrevented) {\n event.preventDefault();\n }\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const labelClasses = this.ellipsis ? 'label ellipsis' : 'label';\n return this.variant === 'standalone' ? (\n <div class={this.classes}>\n <a\n class=\"link\"\n href={!!this.disabled ? undefined : this.href}\n onClick={e => this.handleClick(e)}\n target={this.target || '_self'}\n rel={this.target === '_blank' ? 'noopener' : undefined}\n referrerPolicy={this.referrerpolicy || undefined}\n title={this.tctTitle || undefined}\n aria-label={this.composedAriaLabel}\n test-id=\"linkAnchor\"\n >\n <span class={labelClasses}>{this.label}</span>\n {this.iconType && <q2-icon type={this.iconType}></q2-icon>}\n </a>\n </div>\n ) : (\n <a\n class={`${this.classes}${this.ellipsis ? ' ellipsis' : ''}`}\n onClick={e => this.handleClick(e)}\n href={!!this.disabled ? undefined : this.href}\n target={this.target || '_self'}\n referrerPolicy={this.referrerpolicy || undefined}\n title={this.tctTitle || undefined}\n aria-label={this.composedAriaLabel}\n test-id=\"linkAnchor\"\n >\n {this.label}\n </a>\n );\n }\n\n // #endregion\n}\n","@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import '../q2-btn/q2-btn-mixins';\n\n:host([bordered]:not([bordered='false'])) {\n ::slotted(q2-item:not(:last-child)),\n .header {\n border-style: var-list(--tct-list-item-border-style, solid);\n border-width: var-list(--tct-list-item-border-width, unquote('0 0 1px 0'));\n border-color: var-list(--tct-list-item-border-color, --t-gray-12, #d9d9d9);\n }\n}\n\n::slotted(q2-item) {\n --comp-item-padding: #{var-list(\n --tct-list-item-padding,\n unquote('#{var-list(--app-scale-2x, 10px) var-list(--app-scale-4x, 20px)}')\n )};\n --tct-item-padding: var(--comp-item-padding);\n}\n\n.header {\n --comp-default-header-padding: 0 var(--app-scale-4x, 20px);\n display: flex;\n gap: var(--app-scale-3x, 12px);\n padding: var-list(--tct-list-header-padding, --comp-default-header-padding);\n min-height: var-list(var-prefixer(list-header-min-height), 44px);\n &-spacebetween {\n justify-content: space-between;\n }\n &-start {\n justify-content: flex-start;\n }\n &-end {\n justify-content: flex-end;\n }\n .label {\n width: 100%;\n height: var(--tct-list-label-height, 44px);\n line-height: var(--tct-list-label-line-height, 44px);\n font-size: var-list(--tct-list-label-font-size, --app-font-size, 14px);\n font-weight: var(--tct-list-label-font-weight, 600);\n color: var-list(--tct-list-label-font-color, --t-text, #4d4d4d);\n }\n}\n\nslot:not([name]) {\n display: flex;\n flex-direction: column;\n gap: var(--tct-list-item-gap, 0)\n}\n","import { Component, Element, h, State, Prop } from '@stencil/core';\nimport { hasSlotContent } from 'src/utils';\n\n/**\n * @name List\n * @category Display\n * @summary Use for grouping Item components into a vertical list.\n * @slot filter - An optional slot to display custom content for filtering the list items.\n */\n@Component({\n tag: 'q2-list',\n styleUrl: 'q2-list.scss',\n shadow: true,\n})\nexport class Q2List {\n // #region Own Properties\n\n listElement: HTMLDivElement;\n mutationObserver: MutationObserver;\n scheduledAfterRender: (() => void)[] = [];\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 renderTrigger: number = 0;\n\n // #endregion\n // #region Public Property API\n\n /** Adds a border between each items */\n @Prop({ mutable: true, reflect: true })\n bordered: boolean;\n\n /** label text on header area */\n @Prop({ reflect: true })\n label: string;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n componentDidLoad() {\n if (typeof MutationObserver === 'undefined') return;\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, subtree: true });\n this.mutationObserver = observer;\n this.onMutationObserved();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n // #endregion\n // #region Local Methods\n\n get hasFilterSlot() {\n return !!this.hostElement.querySelector('q2-pill') || hasSlotContent(this.hostElement, 'pill');\n }\n\n get hasLabelContent() {\n return !!this.label;\n }\n\n get headerClasses() {\n const classes = ['header'];\n if (this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-spacebetween');\n } else if (this.hasLabelContent && !this.hasFilterSlot) {\n classes.push('header-start');\n } else if (!this.hasLabelContent && this.hasFilterSlot) {\n classes.push('header-end');\n }\n return classes.join(' ');\n }\n\n get listClasses() {\n const classes = ['list'];\n return classes.join(' ');\n }\n\n onMutationObserved = () => {\n this.renderTrigger += 1;\n this.scheduledAfterRender.push(() => {\n Array.from(this.hostElement.children).forEach(child => {\n if (child.tagName === 'Q2-ITEM') child.role = 'listitem';\n });\n });\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div\n class={this.listClasses}\n ref={el => (this.listElement = el)}\n >\n {(this.hasFilterSlot || this.hasLabelContent) && (\n <div class={this.headerClasses}>\n <div class=\"label\">{this.label}</div>\n {this.hasFilterSlot && <slot name=\"filter\" />}\n </div>\n )}\n <div role=\"list\">\n <slot />\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"],"version":3}
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, g as getElement } from './index-CGkHOjh1.js';
2
- import { l as loc } from './index-B4WYBDS9.js';
2
+ import { l as loc } from './index-C4PILj1_.js';
3
3
 
4
4
  const Q2Loc = class {
5
5
  constructor(hostRef) {
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, h, g as getElement } from './index-CGkHOjh1.js';
2
- import { o as overrideFocus, i as isEventFromElement, n as nextPaint, m as isFirefox, l as loc } from './index-B4WYBDS9.js';
2
+ import { o as overrideFocus, i as isEventFromElement, n as nextPaint, m as isFirefox, l as loc } from './index-C4PILj1_.js';
3
3
 
4
- const q2MessageCss = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{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, 4px));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-message-gap, 8px);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, var(--app-shadow-1, inherit)));border-radius:var(--tct-message-border-radius, var(--t-message-border-radius, var(--app-border-radius-1, 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);font-size:var(--tct-message-font-size, inherit)}::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-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])),:host([type=info]){--comp-info-color:#0079c1}:host(:not([type])) .message,:host([type=info]) .message{border-left-color:var(--tct-stoplight-info, var(--const-stoplight-info, var(--comp-info-color)))}:host(:not([type])) .message-icon,:host([type=info]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-info, var(--const-stoplight-info, var(--comp-info-color)));--tct-icon-stroke-secondary:var(--tct-stoplight-info, var(--const-stoplight-info, var(--comp-info-color)))}:host([type=success]){--comp-success-color:#0e8a00}:host([type=success]) .message{border-left-color:var(--tct-stoplight-success, var(--const-stoplight-success, var(--comp-success-color)))}:host([type=success]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-success, var(--const-stoplight-success, var(--comp-success-color)));--tct-icon-stroke-secondary:var(--tct-stoplight-success, var(--const-stoplight-success, var(--comp-success-color)))}:host([type=warning]){--comp-warning-color:#c35500}:host([type=warning]) .message{border-left-color:var(--tct-stoplight-warning, var(--const-stoplight-warning, var(--comp-warning-color)))}:host([type=warning]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-warning, var(--const-stoplight-warning, var(--comp-warning-color)));--tct-icon-stroke-secondary:var(--tct-stoplight-warning, var(--const-stoplight-warning, var(--comp-warning-color)))}:host([type=error]),:host([type=danger]){--comp-error-color:#d20a0a}:host([type=error]) .message,:host([type=danger]) .message{border-left-color:var(--tct-stoplight-error, var(--const-stoplight-alert, var(--comp-error-color)))}:host([type=error]) .message-icon,:host([type=danger]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-error, var(--const-stoplight-alert, var(--comp-error-color)));--tct-icon-stroke-secondary:var(--tct-stoplight-error, var(--const-stoplight-alert, var(--comp-error-color)))}";
4
+ const q2MessageCss = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{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{--comp-line-height:var(--tct-message-line-height, var(--t-message-line-height, var(--app-line-height, 1.428571429em)));border-width:var(--tct-message-border-width, 0);border-style:var(--tct-message-border-style, solid);border-color:var(--tct-message-border-color, transparent);position:relative;display:grid;gap:var(--tct-message-gap, 8px);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, var(--app-shadow-1, inherit)));border-radius:var(--tct-message-border-radius, var(--t-message-border-radius, var(--app-border-radius-1, inherit)))}.message:focus{box-shadow:var(--const-global-focus)}.bar{position:absolute;left:0;top:0;bottom:0;height:100%;background:var(--comp-bar-color);width:var(--tct-message-bar-width, var(--t-message-bar-width, 4px));border-radius:var(--tct-message-bar-border-radius, var(--app-border-radius-1) 0 0 var(--app-border-radius-1))}.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);font-size:var(--tct-message-font-size, inherit)}::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-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])),:host([type=info]){--comp-info-color:#0079c1;--comp-bar-color:var(--tct-message-info-bar-color, var(--const-stoplight-info, var(--comp-info-color)))}:host(:not([type])) .message-icon,:host([type=info]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-info, var(--const-stoplight-info, var(--comp-info-color)));--tct-icon-stroke-secondary:var(--tct-stoplight-info, var(--const-stoplight-info, var(--comp-info-color)))}:host([type=success]){--comp-success-color:#0e8a00;--comp-bar-color:var(--tct-message-success-bar-color, var(--const-stoplight-success, var(--comp-success-color)))}:host([type=success]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-success, var(--const-stoplight-success, var(--comp-success-color)));--tct-icon-stroke-secondary:var(--tct-stoplight-success, var(--const-stoplight-success, var(--comp-success-color)))}:host([type=warning]){--comp-warning-color:#c35500;--comp-bar-color:var(--tct-message-warning-bar-color, var(--const-stoplight-warning, var(--comp-warning-color)))}:host([type=warning]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-warning, var(--const-stoplight-warning, var(--comp-warning-color)));--tct-icon-stroke-secondary:var(--tct-stoplight-warning, var(--const-stoplight-warning, var(--comp-warning-color)))}:host([type=error]),:host([type=danger]){--comp-error-color:#d20a0a;--comp-bar-color:var(--tct-message-error-bar-color, var(--const-stoplight-alert, var(--comp-error-color)))}:host([type=error]) .message-icon,:host([type=danger]) .message-icon{--tct-icon-stroke-primary:var(--tct-stoplight-error, var(--const-stoplight-alert, var(--comp-error-color)));--tct-icon-stroke-secondary:var(--tct-stoplight-error, var(--const-stoplight-alert, var(--comp-error-color)))}";
5
5
 
6
6
  const Q2Message = class {
7
7
  constructor(hostRef) {
@@ -65,7 +65,7 @@ const Q2Message = class {
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: '339a45e7161f1aff66134e4e391c02f6afaac71d', 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: '403e03cc8b6b34736e9e30a1eee91ba88f2e50f8', class: "sr" }), h("div", { key: '96b9469f4a0f7428c87231323bfe99583266e282', class: "sr message-label" }, messageLabel), h("div", { key: '2ec851508b85d7806060ba5cbccae4069a931c79', class: "message-content", "aria-hidden": addAriaHiddenForAriaLive ? 'true' : undefined }, h("slot", { key: 'b4270cdb03394834a4cac6487e6a8310aeaba915' }))));
68
+ return (h("div", { key: 'aff2483085e25648ba989847f10c91250df281a9', 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" }, h("div", { key: '6f416c44047bfce1f0f788edf7545a1d0da4b55c', class: "bar", "test-id": "bar" }), this.appearance === 'standard' ? this.messageIcon(this.type) : '', addDivForAriaLive && h("div", { key: 'f144ac7da5821a8c7f5df44d2ed7b16ee35d025c', class: "sr" }), h("div", { key: 'ebff5b28951e94eaf1cb83d67b4376c3636f3143', class: "sr message-label" }, messageLabel), h("div", { key: '40f3902af3e4b79ee61c3f2dc0f63cd209694c83', class: "message-content", "aria-hidden": addAriaHiddenForAriaLive ? 'true' : undefined }, h("slot", { key: '6843ae94d50f20f2599a92d5e31122498cee53a5' }))));
69
69
  }
70
70
  get hostElement() { return getElement(this); }
71
71
  };