q2-tecton-elements 1.54.3 → 1.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/dist/bundle-report.json +2135 -776
  2. package/dist/cjs/{index-76f63767.js → index-905f4c87.js} +3 -2
  3. package/dist/cjs/index-905f4c87.js.map +1 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/q2-action-group.cjs.entry.js +45 -14
  6. package/dist/cjs/q2-action-group.cjs.entry.js.map +1 -1
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js +4 -1364
  8. package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
  9. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  10. package/dist/cjs/q2-badge_7.cjs.entry.js +59 -22
  11. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
  13. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  16. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  18. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  19. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  20. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  21. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-checkbox.cjs.entry.js +21 -21
  23. package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
  24. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  27. package/dist/cjs/q2-dropdown-item.cjs.entry.js +22 -3
  28. package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-file-picker.cjs.entry.js +2 -2
  32. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
  33. package/dist/cjs/q2-form.cjs.entry.js +23 -0
  34. package/dist/cjs/q2-form.cjs.entry.js.map +1 -0
  35. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-item_3.cjs.entry.js +3 -3
  37. package/dist/cjs/q2-legend.cjs.entry.js +2 -2
  38. package/dist/cjs/q2-legend.cjs.entry.js.map +1 -1
  39. package/dist/cjs/q2-loc.cjs.entry.js +20 -26
  40. package/dist/cjs/q2-loc.cjs.entry.js.map +1 -1
  41. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  42. package/dist/cjs/q2-modal.cjs.entry.js +172 -0
  43. package/dist/cjs/q2-modal.cjs.entry.js.map +1 -0
  44. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  45. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-option-list_2.cjs.entry.js +9 -7
  47. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -1
  48. package/dist/cjs/q2-option.cjs.entry.js +37 -25
  49. package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
  50. package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
  51. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  52. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  53. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  54. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  55. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  56. package/dist/cjs/q2-resize-observer.cjs.entry.js +2 -2
  57. package/dist/cjs/q2-resize-observer.cjs.entry.js.map +1 -1
  58. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  59. package/dist/cjs/q2-select.cjs.entry.js +10 -6
  60. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  61. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  62. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  63. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  64. package/dist/cjs/q2-tag.cjs.entry.js +51 -9
  65. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  66. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  67. package/dist/cjs/q2-textarea.cjs.entry.js +3 -3
  68. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  69. package/dist/cjs/q2-tooltip.cjs.entry.js +2 -2
  70. package/dist/cjs/q2-tooltip.cjs.entry.js.map +1 -1
  71. package/dist/cjs/sanitize-html-string-b8e3b24b.js +1366 -0
  72. package/dist/cjs/sanitize-html-string-b8e3b24b.js.map +1 -0
  73. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  74. package/dist/collection/collection-manifest.json +3 -1
  75. package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
  76. package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -1
  77. package/dist/collection/components/q2-action-group/q2-action-group.css +11 -4
  78. package/dist/collection/components/q2-action-group/q2-action-group.js +47 -13
  79. package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
  80. package/dist/collection/components/q2-action-group/test/q2-action-group-test.e2e.js +365 -0
  81. package/dist/collection/components/q2-action-group/test/q2-action-group-test.e2e.js.map +1 -0
  82. package/dist/collection/components/q2-action-group/test/{q2-action-group.spec.js → q2-action-group-test.spec.js} +67 -26
  83. package/dist/collection/components/q2-action-group/test/q2-action-group-test.spec.js.map +1 -0
  84. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  85. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
  86. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
  87. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  88. package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
  89. package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -1
  90. package/dist/collection/components/q2-badge/q2-badge.css +52 -41
  91. package/dist/collection/components/q2-badge/q2-badge.js +88 -22
  92. package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
  93. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js +35 -126
  94. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
  95. package/dist/collection/components/q2-badge/test/q2-badge-test.spec.js +415 -0
  96. package/dist/collection/components/q2-badge/test/q2-badge-test.spec.js.map +1 -0
  97. package/dist/collection/components/q2-btn/q2-btn.css +12 -10
  98. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  99. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
  100. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
  101. package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
  102. package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
  103. package/dist/collection/components/q2-calendar/q2-calendar.css +2 -0
  104. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  105. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  106. package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
  107. package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -1
  108. package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -1
  109. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
  110. package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -1
  111. package/dist/collection/components/q2-card/q2-card.js.map +1 -1
  112. package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -1
  113. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  114. package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -1
  115. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  116. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
  117. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -1
  118. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -1
  119. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  120. package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
  121. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
  122. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  123. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
  124. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -1
  125. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  126. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  127. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
  128. package/dist/collection/components/q2-checkbox/q2-checkbox.css +99 -62
  129. package/dist/collection/components/q2-checkbox/q2-checkbox.js +19 -19
  130. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  131. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js +227 -208
  132. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -1
  133. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +8 -1
  134. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
  135. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -1
  136. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  137. package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
  138. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
  139. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  140. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
  141. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  142. package/dist/collection/components/q2-detail/q2-detail.js.map +1 -1
  143. package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -1
  144. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  145. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +38 -2
  146. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  147. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +21 -2
  148. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  149. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js +43 -2
  150. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
  151. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  152. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -1
  153. package/dist/collection/components/q2-example/q2-example.js.map +1 -1
  154. package/dist/collection/components/q2-example/test/q2-example.e2e.js.map +1 -1
  155. package/dist/collection/components/q2-example/test/q2-example.spec.js.map +1 -1
  156. package/dist/collection/components/q2-file-picker/q2-file-picker.css +2 -0
  157. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  158. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -1
  159. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
  160. package/dist/collection/components/q2-form/q2-form.css +93 -0
  161. package/dist/collection/components/q2-form/q2-form.js +44 -0
  162. package/dist/collection/components/q2-form/q2-form.js.map +1 -0
  163. package/dist/collection/components/q2-form/test/q2-form-test.e2e.js +93 -0
  164. package/dist/collection/components/q2-form/test/q2-form-test.e2e.js.map +1 -0
  165. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  166. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js.map +1 -1
  167. package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js.map +1 -1
  168. package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
  169. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  170. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js +1 -352
  171. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
  172. package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js +464 -0
  173. package/dist/collection/components/q2-icon/test/q2-icon-test.spec.js.map +1 -0
  174. package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
  175. package/dist/collection/components/q2-input/formatting/alpha.spec.js.map +1 -1
  176. package/dist/collection/components/q2-input/formatting/alphanumeric.js.map +1 -1
  177. package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js.map +1 -1
  178. package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
  179. package/dist/collection/components/q2-input/formatting/credit-card.spec.js.map +1 -1
  180. package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
  181. package/dist/collection/components/q2-input/formatting/currency.spec.js.map +1 -1
  182. package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
  183. package/dist/collection/components/q2-input/formatting/date.spec.js.map +1 -1
  184. package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
  185. package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
  186. package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
  187. package/dist/collection/components/q2-input/formatting/numeric.spec.js.map +1 -1
  188. package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
  189. package/dist/collection/components/q2-input/formatting/phone.spec.js.map +1 -1
  190. package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
  191. package/dist/collection/components/q2-input/formatting/postal.spec.js.map +1 -1
  192. package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
  193. package/dist/collection/components/q2-input/formatting/ssn.spec.js.map +1 -1
  194. package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
  195. package/dist/collection/components/q2-input/formatting/tin.spec.js.map +1 -1
  196. package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
  197. package/dist/collection/components/q2-input/q2-input.css +3 -2
  198. package/dist/collection/components/q2-input/q2-input.js +4 -3
  199. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  200. package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -1
  201. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
  202. package/dist/collection/components/q2-input/test/q2-input-test.spec.js +10 -0
  203. package/dist/collection/components/q2-input/test/q2-input-test.spec.js.map +1 -1
  204. package/dist/collection/components/q2-item/q2-item.js +1 -1
  205. package/dist/collection/components/q2-item/q2-item.js.map +1 -1
  206. package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -1
  207. package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -1
  208. package/dist/collection/components/q2-legend/q2-legend.css +1 -1
  209. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  210. package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
  211. package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -1
  212. package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -1
  213. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  214. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
  215. package/dist/collection/components/q2-link/test/q2-link-test.spec.js.map +1 -1
  216. package/dist/collection/components/q2-list/q2-list.js +1 -1
  217. package/dist/collection/components/q2-list/q2-list.js.map +1 -1
  218. package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -1
  219. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  220. package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js.map +1 -1
  221. package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
  222. package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -1
  223. package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -1
  224. package/dist/collection/components/q2-loc/q2-loc.js +19 -37
  225. package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
  226. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js +1 -7
  227. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
  228. package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js +140 -82
  229. package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js.map +1 -1
  230. package/dist/collection/components/q2-message/q2-message.js +1 -1
  231. package/dist/collection/components/q2-message/q2-message.js.map +1 -1
  232. package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -1
  233. package/dist/collection/components/q2-modal/q2-modal.css +223 -0
  234. package/dist/collection/components/q2-modal/q2-modal.js +470 -0
  235. package/dist/collection/components/q2-modal/q2-modal.js.map +1 -0
  236. package/dist/collection/components/q2-modal/test/q2-modal-test.e2e.js +102 -0
  237. package/dist/collection/components/q2-modal/test/q2-modal-test.e2e.js.map +1 -0
  238. package/dist/collection/components/q2-modal/test/q2-modal-test.spec.js +127 -0
  239. package/dist/collection/components/q2-modal/test/q2-modal-test.spec.js.map +1 -0
  240. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  241. package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
  242. package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -1
  243. package/dist/collection/components/q2-option/q2-option.js +51 -25
  244. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  245. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js +40 -94
  246. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
  247. package/dist/collection/components/q2-option/test/q2-option-test.spec.js +137 -19
  248. package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
  249. package/dist/collection/components/q2-option-list/q2-option-list.js +7 -5
  250. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  251. package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -1
  252. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js.map +1 -1
  253. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  254. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  255. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
  256. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  257. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  258. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  259. package/dist/collection/components/q2-popover/q2-popover.js +1 -1
  260. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  261. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
  262. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
  263. package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
  264. package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -1
  265. package/dist/collection/components/q2-radio-group/q2-radio-group.css +4 -2
  266. package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
  267. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -1
  268. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  269. package/dist/collection/components/q2-relative-time/q2-relative-time.js.map +1 -1
  270. package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -1
  271. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +2 -2
  272. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js.map +1 -1
  273. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.e2e.js.map +1 -1
  274. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.spec.js.map +1 -1
  275. package/dist/collection/components/q2-section/q2-section.js +2 -2
  276. package/dist/collection/components/q2-section/q2-section.js.map +1 -1
  277. package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -1
  278. package/dist/collection/components/q2-select/q2-select.css +2 -2
  279. package/dist/collection/components/q2-select/q2-select.js +15 -4
  280. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  281. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +5 -1
  282. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  283. package/dist/collection/components/q2-select/test/q2-select-test.spec.js +85 -0
  284. package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -0
  285. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  286. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  287. package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -1
  288. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  289. package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -1
  290. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  291. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  292. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
  293. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  294. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  295. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -1
  296. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -1
  297. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  298. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js.map +1 -1
  299. package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -1
  300. package/dist/collection/components/q2-tag/q2-tag.css +9 -0
  301. package/dist/collection/components/q2-tag/q2-tag.js +65 -15
  302. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  303. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +131 -341
  304. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  305. package/dist/collection/components/q2-tag/test/q2-tag-test.spec.js +719 -0
  306. package/dist/collection/components/q2-tag/test/q2-tag-test.spec.js.map +1 -0
  307. package/dist/collection/components/q2-textarea/q2-textarea.css +2 -2
  308. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  309. package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
  310. package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -1
  311. package/dist/collection/components/q2-tooltip/q2-tooltip.css +0 -1
  312. package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
  313. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -1
  314. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane-types.js.map +1 -1
  315. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  316. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js.map +1 -1
  317. package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -1
  318. package/dist/collection/index.js.map +1 -1
  319. package/dist/collection/utils/action-sheet.js.map +1 -1
  320. package/dist/collection/utils/charting.js.map +1 -1
  321. package/dist/collection/utils/helpers.js +1 -25
  322. package/dist/collection/utils/helpers.js.map +1 -1
  323. package/dist/collection/utils/index.js +2 -1
  324. package/dist/collection/utils/index.js.map +1 -1
  325. package/dist/collection/utils/mirror-emit.js +19 -0
  326. package/dist/collection/utils/mirror-emit.js.map +1 -0
  327. package/dist/collection/utils/sanitize-html-string.js.map +1 -1
  328. package/dist/collection/utils/sanitize-regex-string.js.map +1 -1
  329. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
  330. package/dist/collection/utils/test/index.spec.js.map +1 -1
  331. package/dist/components/index.js +4 -0
  332. package/dist/components/index.js.map +1 -1
  333. package/dist/components/index2.js +2 -1
  334. package/dist/components/index2.js.map +1 -1
  335. package/dist/components/q2-action-group.js +1 -116
  336. package/dist/components/q2-action-group.js.map +1 -1
  337. package/dist/components/q2-action-group2.js +151 -0
  338. package/dist/components/q2-action-group2.js.map +1 -0
  339. package/dist/components/q2-action-sheet.js +2 -1362
  340. package/dist/components/q2-action-sheet.js.map +1 -1
  341. package/dist/components/q2-avatar2.js +1 -1
  342. package/dist/components/q2-badge2.js +54 -16
  343. package/dist/components/q2-badge2.js.map +1 -1
  344. package/dist/components/q2-btn2.js +1 -1
  345. package/dist/components/q2-btn2.js.map +1 -1
  346. package/dist/components/q2-calendar.js +1 -1
  347. package/dist/components/q2-calendar.js.map +1 -1
  348. package/dist/components/q2-carousel-pane.js +2 -2
  349. package/dist/components/q2-chart-area.js +1 -1
  350. package/dist/components/q2-chart-bar.js +1 -1
  351. package/dist/components/q2-chart-donut.js +1 -1
  352. package/dist/components/q2-checkbox-group.js +1 -1
  353. package/dist/components/q2-checkbox-group.js.map +1 -1
  354. package/dist/components/q2-checkbox2.js +20 -20
  355. package/dist/components/q2-checkbox2.js.map +1 -1
  356. package/dist/components/q2-currency.js +1 -1
  357. package/dist/components/q2-detail.js +1 -1
  358. package/dist/components/q2-dropdown-item2.js +21 -2
  359. package/dist/components/q2-dropdown-item2.js.map +1 -1
  360. package/dist/components/q2-file-picker.js +1 -1
  361. package/dist/components/q2-file-picker.js.map +1 -1
  362. package/dist/components/q2-form.d.ts +11 -0
  363. package/dist/components/q2-form.js +39 -0
  364. package/dist/components/q2-form.js.map +1 -0
  365. package/dist/components/q2-formatted-text.js +1 -1
  366. package/dist/components/q2-input2.js +5 -4
  367. package/dist/components/q2-input2.js.map +1 -1
  368. package/dist/components/q2-item2.js +1 -1
  369. package/dist/components/q2-legend2.js +2 -2
  370. package/dist/components/q2-legend2.js.map +1 -1
  371. package/dist/components/q2-list2.js +1 -1
  372. package/dist/components/q2-loc.js +22 -33
  373. package/dist/components/q2-loc.js.map +1 -1
  374. package/dist/components/q2-message2.js +1 -1
  375. package/dist/components/q2-modal.d.ts +11 -0
  376. package/dist/components/q2-modal.js +231 -0
  377. package/dist/components/q2-modal.js.map +1 -0
  378. package/dist/components/q2-month-picker.js +2 -2
  379. package/dist/components/q2-optgroup2.js +1 -1
  380. package/dist/components/q2-option-list2.js +7 -5
  381. package/dist/components/q2-option-list2.js.map +1 -1
  382. package/dist/components/q2-option2.js +38 -26
  383. package/dist/components/q2-option2.js.map +1 -1
  384. package/dist/components/q2-pagination.js +3 -3
  385. package/dist/components/q2-pill.js +1 -1
  386. package/dist/components/q2-popover2.js +1 -1
  387. package/dist/components/q2-radio-group.js +1 -1
  388. package/dist/components/q2-radio-group.js.map +1 -1
  389. package/dist/components/q2-relative-time.js +1 -1
  390. package/dist/components/q2-resize-observer2.js +2 -2
  391. package/dist/components/q2-resize-observer2.js.map +1 -1
  392. package/dist/components/q2-section.js +2 -2
  393. package/dist/components/q2-select2.js +9 -5
  394. package/dist/components/q2-select2.js.map +1 -1
  395. package/dist/components/q2-stepper-vertical.js +1 -1
  396. package/dist/components/q2-stepper.js +1 -1
  397. package/dist/components/q2-tab-container.js +1 -1
  398. package/dist/components/q2-tab-pane.js +1 -1
  399. package/dist/components/q2-tag.js +50 -8
  400. package/dist/components/q2-tag.js.map +1 -1
  401. package/dist/components/q2-textarea.js +2 -2
  402. package/dist/components/q2-textarea.js.map +1 -1
  403. package/dist/components/q2-tooltip.js +1 -1
  404. package/dist/components/q2-tooltip.js.map +1 -1
  405. package/dist/components/sanitize-html-string.js +1364 -0
  406. package/dist/components/sanitize-html-string.js.map +1 -0
  407. package/dist/components/tecton-tab-pane.js +2 -2
  408. package/dist/esm/{index-504f1a9e.js → index-f2a66217.js} +3 -2
  409. package/dist/esm/index-f2a66217.js.map +1 -0
  410. package/dist/esm/loader.js +1 -1
  411. package/dist/esm/q2-action-group.entry.js +45 -14
  412. package/dist/esm/q2-action-group.entry.js.map +1 -1
  413. package/dist/esm/q2-action-sheet.entry.js +3 -1363
  414. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  415. package/dist/esm/q2-avatar.entry.js +1 -1
  416. package/dist/esm/q2-badge_7.entry.js +59 -22
  417. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  418. package/dist/esm/q2-calendar.entry.js +2 -2
  419. package/dist/esm/q2-calendar.entry.js.map +1 -1
  420. package/dist/esm/q2-card.entry.js +1 -1
  421. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  422. package/dist/esm/q2-carousel.entry.js +1 -1
  423. package/dist/esm/q2-chart-area.entry.js +2 -2
  424. package/dist/esm/q2-chart-bar.entry.js +2 -2
  425. package/dist/esm/q2-chart-donut.entry.js +2 -2
  426. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  427. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  428. package/dist/esm/q2-checkbox.entry.js +21 -21
  429. package/dist/esm/q2-checkbox.entry.js.map +1 -1
  430. package/dist/esm/q2-currency.entry.js +1 -1
  431. package/dist/esm/q2-data-table.entry.js +1 -1
  432. package/dist/esm/q2-detail.entry.js +2 -2
  433. package/dist/esm/q2-dropdown-item.entry.js +22 -3
  434. package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
  435. package/dist/esm/q2-dropdown.entry.js +1 -1
  436. package/dist/esm/q2-editable-field.entry.js +1 -1
  437. package/dist/esm/q2-file-picker.entry.js +2 -2
  438. package/dist/esm/q2-file-picker.entry.js.map +1 -1
  439. package/dist/esm/q2-form.entry.js +19 -0
  440. package/dist/esm/q2-form.entry.js.map +1 -0
  441. package/dist/esm/q2-formatted-text.entry.js +1 -1
  442. package/dist/esm/q2-item_3.entry.js +3 -3
  443. package/dist/esm/q2-legend.entry.js +2 -2
  444. package/dist/esm/q2-legend.entry.js.map +1 -1
  445. package/dist/esm/q2-loc.entry.js +21 -27
  446. package/dist/esm/q2-loc.entry.js.map +1 -1
  447. package/dist/esm/q2-message.entry.js +2 -2
  448. package/dist/esm/q2-modal.entry.js +168 -0
  449. package/dist/esm/q2-modal.entry.js.map +1 -0
  450. package/dist/esm/q2-month-picker.entry.js +3 -3
  451. package/dist/esm/q2-optgroup.entry.js +2 -2
  452. package/dist/esm/q2-option-list_2.entry.js +9 -7
  453. package/dist/esm/q2-option-list_2.entry.js.map +1 -1
  454. package/dist/esm/q2-option.entry.js +37 -25
  455. package/dist/esm/q2-option.entry.js.map +1 -1
  456. package/dist/esm/q2-pagination.entry.js +4 -4
  457. package/dist/esm/q2-pill.entry.js +2 -2
  458. package/dist/esm/q2-radio-group.entry.js +2 -2
  459. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  460. package/dist/esm/q2-radio.entry.js +1 -1
  461. package/dist/esm/q2-relative-time.entry.js +2 -2
  462. package/dist/esm/q2-resize-observer.entry.js +2 -2
  463. package/dist/esm/q2-resize-observer.entry.js.map +1 -1
  464. package/dist/esm/q2-section.entry.js +3 -3
  465. package/dist/esm/q2-select.entry.js +10 -6
  466. package/dist/esm/q2-select.entry.js.map +1 -1
  467. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  468. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  469. package/dist/esm/q2-stepper.entry.js +2 -2
  470. package/dist/esm/q2-tag.entry.js +51 -9
  471. package/dist/esm/q2-tag.entry.js.map +1 -1
  472. package/dist/esm/q2-tecton-elements.js +1 -1
  473. package/dist/esm/q2-textarea.entry.js +3 -3
  474. package/dist/esm/q2-textarea.entry.js.map +1 -1
  475. package/dist/esm/q2-tooltip.entry.js +2 -2
  476. package/dist/esm/q2-tooltip.entry.js.map +1 -1
  477. package/dist/esm/sanitize-html-string-735c19f5.js +1364 -0
  478. package/dist/esm/sanitize-html-string-735c19f5.js.map +1 -0
  479. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  480. package/dist/jest.setup.js +22 -0
  481. package/dist/jest.setup.js.map +1 -0
  482. package/dist/q2-tecton-elements/{index-504f1a9e.js → index-f2a66217.js} +9 -8
  483. package/dist/q2-tecton-elements/index-f2a66217.js.map +1 -0
  484. package/dist/q2-tecton-elements/q2-action-group.entry.js +49 -17
  485. package/dist/q2-tecton-elements/q2-action-group.entry.js.map +1 -1
  486. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +121 -1331
  487. package/dist/q2-tecton-elements/q2-action-sheet.entry.js.map +1 -1
  488. package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
  489. package/dist/q2-tecton-elements/q2-badge_7.entry.js +199 -164
  490. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  491. package/dist/q2-tecton-elements/q2-calendar.entry.js +180 -180
  492. package/dist/q2-tecton-elements/q2-calendar.entry.js.map +1 -1
  493. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  494. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +21 -21
  495. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  496. package/dist/q2-tecton-elements/q2-chart-area.entry.js +3 -3
  497. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +3 -3
  498. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +7 -7
  499. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +5 -5
  500. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -1
  501. package/dist/q2-tecton-elements/q2-checkbox.entry.js +92 -88
  502. package/dist/q2-tecton-elements/q2-checkbox.entry.js.map +1 -1
  503. package/dist/q2-tecton-elements/q2-currency.entry.js +6 -6
  504. package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
  505. package/dist/q2-tecton-elements/q2-detail.entry.js +39 -39
  506. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +23 -6
  507. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -1
  508. package/dist/q2-tecton-elements/q2-dropdown.entry.js +1 -1
  509. package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
  510. package/dist/q2-tecton-elements/q2-file-picker.entry.js +2 -2
  511. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
  512. package/dist/q2-tecton-elements/q2-form.entry.js +25 -0
  513. package/dist/q2-tecton-elements/q2-form.entry.js.map +1 -0
  514. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  515. package/dist/q2-tecton-elements/q2-item_3.entry.js +22 -22
  516. package/dist/q2-tecton-elements/q2-legend.entry.js +6 -6
  517. package/dist/q2-tecton-elements/q2-legend.entry.js.map +1 -1
  518. package/dist/q2-tecton-elements/q2-loc.entry.js +23 -32
  519. package/dist/q2-tecton-elements/q2-loc.entry.js.map +1 -1
  520. package/dist/q2-tecton-elements/q2-message.entry.js +21 -21
  521. package/dist/q2-tecton-elements/q2-modal.entry.js +226 -0
  522. package/dist/q2-tecton-elements/q2-modal.entry.js.map +1 -0
  523. package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
  524. package/dist/q2-tecton-elements/q2-optgroup.entry.js +8 -8
  525. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +33 -27
  526. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -1
  527. package/dist/q2-tecton-elements/q2-option.entry.js +60 -40
  528. package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -1
  529. package/dist/q2-tecton-elements/q2-pagination.entry.js +38 -38
  530. package/dist/q2-tecton-elements/q2-pill.entry.js +14 -14
  531. package/dist/q2-tecton-elements/q2-radio-group.entry.js +28 -28
  532. package/dist/q2-tecton-elements/q2-radio-group.entry.js.map +1 -1
  533. package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
  534. package/dist/q2-tecton-elements/q2-relative-time.entry.js +5 -5
  535. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +5 -2
  536. package/dist/q2-tecton-elements/q2-resize-observer.entry.js.map +1 -1
  537. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  538. package/dist/q2-tecton-elements/q2-select.entry.js +13 -9
  539. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  540. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
  541. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +5 -5
  542. package/dist/q2-tecton-elements/q2-stepper.entry.js +22 -22
  543. package/dist/q2-tecton-elements/q2-tag.entry.js +84 -45
  544. package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -1
  545. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  546. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  547. package/dist/q2-tecton-elements/q2-textarea.entry.js +4 -4
  548. package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
  549. package/dist/q2-tecton-elements/q2-tooltip.entry.js +2 -2
  550. package/dist/q2-tecton-elements/q2-tooltip.entry.js.map +1 -1
  551. package/dist/q2-tecton-elements/sanitize-html-string-735c19f5.js +1214 -0
  552. package/dist/q2-tecton-elements/sanitize-html-string-735c19f5.js.map +1 -0
  553. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +9 -9
  554. package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
  555. package/dist/types/components/q2-action-group/q2-action-group.d.ts +5 -2
  556. package/dist/types/components/q2-badge/q2-badge.d.ts +17 -3
  557. package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +3 -3
  558. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +8 -0
  559. package/dist/types/components/q2-form/q2-form.d.ts +6 -0
  560. package/dist/types/components/q2-loc/q2-loc.d.ts +5 -5
  561. package/dist/types/components/q2-modal/q2-modal.d.ts +80 -0
  562. package/dist/types/components/q2-option/q2-option.d.ts +11 -4
  563. package/dist/types/components/q2-select/q2-select.d.ts +1 -0
  564. package/dist/types/components/q2-tag/q2-tag.d.ts +19 -0
  565. package/dist/types/components.d.ts +193 -6
  566. package/dist/types/util.d.ts +1 -8
  567. package/dist/types/utils/helpers.d.ts +1 -13
  568. package/dist/types/utils/index.d.ts +3 -2
  569. package/dist/types/utils/mirror-emit.d.ts +11 -0
  570. package/package.json +3 -3
  571. package/dist/cjs/index-76f63767.js.map +0 -1
  572. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js +0 -166
  573. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +0 -1
  574. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +0 -1
  575. package/dist/esm/index-504f1a9e.js.map +0 -1
  576. package/dist/q2-tecton-elements/index-504f1a9e.js.map +0 -1
@@ -70,6 +70,8 @@ button {
70
70
  display: block;
71
71
  position: relative;
72
72
  padding: var(--comp-checkbox-padding);
73
+ --comp-default-checkbox-margin: var(--tct-checkbox-margin-top, var(--t-checkbox-margin-top, var(--app-scale-5x, 25px))) 0 var(--tct-checkbox-margin-bottom, var(--t-checkbox-margin-bottom, var(--app-scale-5x, 25px)));
74
+ margin: var(--tct-checkbox-margin, var(--comp-default-checkbox-margin));
73
75
  }
74
76
 
75
77
  .container {
@@ -78,7 +80,9 @@ button {
78
80
  --comp-checkbox-default-row-gap: 0;
79
81
  --comp-checkbox-default-gap: var(--comp-checkbox-default-row-gap) var(--comp-checkbox-default-column-gap);
80
82
  --comp-checkbox-tween: var(--tct-tween-1, var(--app-tween-1, 0.2s ease));
81
- --comp-checkbox-toggle-width: var(--tct-checkbox-toggle-width, var(--t-checkbox-toggle-width, 46px));
83
+ --comp-checkbox-toggle-width: var(--tct-checkbox-toggle-width, var(--t-checkbox-toggle-width, 38px));
84
+ --comp-checkbox-toggle-error-color: var(--tct-checkbox-toggle-error-color, var(--comp-checkbox-error-color));
85
+ --comp-checkbox-toggle-color: var(--tct-checkbox-toggle-color, var(--t-gray-8, #808080));
82
86
  --comp-checkbox-gap: var(--tct-checkbox-gap, var(--t-checkbox-gap, var(--comp-checkbox-default-gap)));
83
87
  --comp-checkbox-outer-stroke-color: var(--tct-checkbox-outer-stroke-color, var(--t-checkbox-outer-stroke-color, var(--t-a11y-gray-color-AA, #949494)));
84
88
  --comp-checkbox-outer-fill-color: var(--tct-checkbox-outer-fill-color, var(--t-checkbox-outer-fill-color, var(--tct-white, var(--app-white, #ffffff))));
@@ -157,15 +161,6 @@ label {
157
161
  word-wrap: var(--tct-checkbox-label-word-wrap, break-word);
158
162
  }
159
163
 
160
- :host([disabled]:not([disabled=false])),
161
- :host([group-disabled]) {
162
- opacity: var(--tct-checkbox-disabled-opacity, var(--t-checkbox-disabled-opacity, var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4))));
163
- }
164
- :host([disabled]:not([disabled=false])) label,
165
- :host([group-disabled]) label {
166
- cursor: not-allowed;
167
- }
168
-
169
164
  .checkbox-icon {
170
165
  width: var(--comp-checkbox-size);
171
166
  height: var(--comp-checkbox-size);
@@ -241,93 +236,135 @@ label {
241
236
 
242
237
  .checkbox-fill {
243
238
  stroke: var(--tct-checkbox-checkmark-stroke-color, var(--comp-checkbox-checked-color));
244
- }
245
-
246
- .checked-fill {
247
239
  stroke-width: var(--tct-checkbox-check-stroke-width, var(--t-checkbox-check-stroke-width, 2.5));
248
240
  stroke-linecap: round;
249
241
  stroke-linejoin: round;
250
242
  }
251
- :host([type=toggle]) .checked-fill {
252
- stroke: var(--tct-checkbox-toggle-icon-stroke, var(--t-checkbox-toggle-icon-stroke, var(--tct-white, var(--app-white, #ffffff))));
253
- transition: opacity var(--comp-checkbox-tween);
254
- }
255
- :host([type=toggle][checked]:not([checked=false])) .checked-fill {
256
- stroke: var(--tct-checkbox-toggle-checked-icon-stroke, var(--t-checkbox-toggle-checked-icon-stroke, var(--t-checkbox-text, var(--tct-white, var(--app-white, #ffffff)))));
257
- }
258
243
 
259
244
  .indeterminate-fill {
260
245
  stroke-width: var(--tct-checkbox-indeterminate-stroke-width, var(--t-checkbox-indeterminate-stroke-width, 3.5));
261
246
  }
262
247
 
263
- .toggle-svg {
248
+ .toggle-svg-container {
264
249
  height: 30px;
265
250
  width: var(--comp-checkbox-toggle-width);
266
251
  position: relative;
267
252
  text-align: initial;
268
253
  }
269
254
 
270
- .toggle-track,
271
- .toggle-indicator {
255
+ .toggle-indicator,
256
+ .toggle-track {
272
257
  position: absolute;
273
258
  top: 50%;
274
259
  transform: translateY(-50%);
275
260
  }
276
261
 
262
+ .toggle-indicator {
263
+ transition: left var(--comp-checkbox-tween), height var(--comp-checkbox-tween), width var(--comp-checkbox-tween);
264
+ height: 16px;
265
+ width: 16px;
266
+ left: 4px;
267
+ border-radius: 50%;
268
+ }
269
+
277
270
  .toggle-track {
278
- fill: var(--tct-checkbox-toggle-track-color, var(--t-checkbox-toggle-track-color, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc))))));
279
- height: 14px;
280
- width: 46px;
271
+ height: 24px;
272
+ width: 38px;
273
+ fill: transparent;
274
+ border-radius: var(--app-border-radius-3, 12px);
275
+ box-shadow: inset 0 0 0 1px var(--comp-checkbox-toggle-color);
276
+ transition: fill var(--comp-checkbox-tween), box-shadow var(--comp-checkbox-tween);
281
277
  }
282
- :host([checked]:not([checked=false])) .toggle-track {
283
- fill: var(--tct-checkbox-toggle-checked-color, var(--t-checkbox-toggle-checked-color, var(--comp-checkbox-checked-color)));
284
- opacity: 0.5;
278
+
279
+ .toggle-circle {
280
+ mask: url(#xMask);
281
+ fill: var(--comp-checkbox-toggle-color);
282
+ transition: fill var(--comp-checkbox-tween);
285
283
  }
286
- :host([has-error]) .toggle-track {
287
- fill: var(--tct-checkbox-toggle-error-color, var(--tct-stoplight-error, var(--const-stoplight-alert, #d20a0a)));
288
- opacity: 0.5;
284
+
285
+ .toggle-icon {
286
+ stroke-linecap: round;
287
+ stroke-linejoin: round;
288
+ stroke-width: var(--tct-checkbox-toggle-icon-stroke-width, 2);
289
+ stroke: black;
289
290
  }
290
291
 
291
- .toggle-indicator {
292
- transition: left var(--comp-checkbox-tween);
293
- height: 30px;
294
- width: 30px;
295
- left: 0;
296
- border-radius: 50%;
292
+ :host(:is(:not([checked]), [checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :hover .toggle-track,
293
+ :host(:is(:not([checked]), [checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :focus-within .toggle-track {
294
+ box-shadow: inset 0 0 0 2px var(--comp-checkbox-toggle-color);
297
295
  }
298
- :host([checked]:not([checked=false])) .toggle-indicator {
299
- left: 21px;
296
+ :host(:is(:not([checked]), [checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :hover .toggle-indicator,
297
+ :host(:is(:not([checked]), [checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :focus-within .toggle-indicator {
298
+ height: 18px;
299
+ width: 18px;
300
300
  }
301
-
302
- .toggle-circle {
303
- fill: var(--tct-checkbox-toggle-circle-color, var(--t-checkbox-toggle-circle-color, var(--t-a11y-gray-color-AA, #949494)));
301
+ :host(:is(:not([checked]), [checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :hover .toggle-circle,
302
+ :host(:is(:not([checked]), [checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :focus-within .toggle-circle {
303
+ fill: var(--tct-checkbox-toggle-hover-circle-color, var(--t-primary-d1, var(--t-gray-6, #4d4d4d)));
304
304
  }
305
- :host([checked]:not([checked=false])) .toggle-circle {
306
- fill: var(--tct-checkbox-toggle-checked-color, var(--t-checkbox-toggle-checked-color, var(--comp-checkbox-checked-color)));
305
+ :host(:is(:not([checked]), [checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :active .toggle-circle {
306
+ fill: var(--tct-checkbox-toggle-active-color, var(--t-primary-l1, #7755af));
307
307
  }
308
- :host(:is(:not([checked]), [checked=false]):focus-within) .toggle-circle, :host(:is(:not([checked]), [checked=false]):hover) .toggle-circle {
309
- fill: var(--tct-checkbox-toggle-checked-color, var(--t-checkbox-toggle-checked-color, var(--comp-checkbox-checked-color)));
308
+ :host(:is(:not([checked]), [checked=false])):host([has-error]:not([has-error=false])) .toggle-track {
309
+ box-shadow: inset 0 0 0 1px var(--comp-checkbox-toggle-error-color);
310
310
  }
311
- :host([has-error]) .toggle-circle, :host([has-error]:focus-within) .toggle-circle, :host([has-error]:hover) .toggle-circle {
312
- fill: var(--tct-checkbox-toggle-error-color, var(--tct-stoplight-error, var(--const-stoplight-alert, #d20a0a)));
311
+ :host(:is(:not([checked]), [checked=false])):host([has-error]:not([has-error=false])) .toggle-circle {
312
+ fill: var(--comp-checkbox-toggle-error-color);
313
+ }
314
+ :host(:is(:not([checked]), [checked=false])):host([has-error]:not([has-error=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :hover .toggle-track,
315
+ :host(:is(:not([checked]), [checked=false])):host([has-error]:not([has-error=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :focus-within .toggle-track {
316
+ box-shadow: inset 0 0 0 2px var(--comp-checkbox-toggle-error-color);
317
+ }
318
+ :host(:is(:not([checked]), [checked=false])):host([has-error]:not([has-error=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :hover .toggle-circle,
319
+ :host(:is(:not([checked]), [checked=false])):host([has-error]:not([has-error=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :focus-within .toggle-circle {
320
+ fill: var(--tct-checkbox-toggle-error-hover-color, var(--comp-checkbox-toggle-error-color));
321
+ }
322
+ :host(:is(:not([checked]), [checked=false])):host([has-error]:not([has-error=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :active .toggle-circle {
323
+ fill: var(--tct-checkbox-toggle-error-active-color, var(--comp-checkbox-toggle-error-color));
313
324
  }
314
325
 
315
- .toggle-hover-circle {
316
- stroke-width: 0;
326
+ :host([checked]:not([checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) .toggle-track {
327
+ fill: var(--tct-checkbox-toggle-checked-track-color, var(--t-primary, #6a4a9e));
328
+ border: none;
329
+ }
330
+ :host([checked]:not([checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) .toggle-indicator {
331
+ left: 18px;
317
332
  }
318
- :host(:focus-within) .toggle-hover-circle, :host(:hover) .toggle-hover-circle {
319
- stroke: var(--tct-checkbox-toggle-checked-color, var(--t-checkbox-toggle-checked-color, var(--comp-checkbox-checked-color)));
320
- stroke-width: 10px;
321
- stroke-opacity: 0.5;
333
+ :host([checked]:not([checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) .toggle-circle {
334
+ mask: url(#checkMask);
335
+ fill: var(--tct-checkbox-toggle-checked-circle-color, var(--t-base, #ffffff));
322
336
  }
323
- :host(:is(:not([checked]), [checked=false]):focus-within) .toggle-hover-circle, :host(:is(:not([checked]), [checked=false]):hover) .toggle-hover-circle {
324
- stroke: var(--tct-checkbox-toggle-circle-color, var(--t-checkbox-toggle-circle-color, var(--t-a11y-gray-color-AA, #949494)));
337
+ :host([checked]:not([checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :hover .toggle-track,
338
+ :host([checked]:not([checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :focus-within .toggle-track {
339
+ fill: var(--tct-checkbox-toggle-checked-hover-track-color, var(--t-primary-d1, #5f438e));
325
340
  }
326
- :host([has-error]) .toggle-hover-circle, :host([has-error]:focus-within) .toggle-hover-circle, :host([has-error]:hover) .toggle-hover-circle {
327
- stroke: var(--tct-checkbox-toggle-error-color, var(--tct-stoplight-error, var(--const-stoplight-alert, #d20a0a)));
341
+ :host([checked]:not([checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :hover .toggle-indicator,
342
+ :host([checked]:not([checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :focus-within .toggle-indicator {
343
+ height: 18px;
344
+ width: 18px;
345
+ }
346
+ :host([checked]:not([checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :active .toggle-track {
347
+ fill: var(--tct-checkbox-toggle-checked-active-track-color, var(--t-primary-l1, #7755af));
348
+ }
349
+ :host([checked]:not([checked=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :active .toggle-indicator {
350
+ height: 18px;
351
+ width: 18px;
352
+ }
353
+ :host([checked]:not([checked=false])):host([has-error]:not([has-error=false])) .toggle-track {
354
+ fill: var(--tct-checkbox-toggle-checked-error-track-color, var(--comp-checkbox-toggle-error-color));
355
+ }
356
+ :host([checked]:not([checked=false])):host([has-error]:not([has-error=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :hover .toggle-track,
357
+ :host([checked]:not([checked=false])):host([has-error]:not([has-error=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :focus-within .toggle-track {
358
+ fill: var(--tct-checkbox-toggle-checked-error-hover-track-color, var(--comp-checkbox-toggle-error-color));
359
+ }
360
+ :host([checked]:not([checked=false])):host([has-error]:not([has-error=false])):host(:is(:not([disabled]), [disabled=false]):is(:not([group-disabled]), [group-disabled=false])) :active .toggle-track {
361
+ fill: var(--tct-checkbox-toggle-checked-error-active-track-color, var(--comp-checkbox-toggle-error-color));
328
362
  }
329
363
 
330
- :host([checked]:not([checked=false])) .off,
331
- :host(:is(:not([checked]), [checked=false])) .on {
332
- opacity: 0;
364
+ :host(:is([disabled]:not([disabled=false]), [group-disabled]:not([group-disabled=false]))) {
365
+ cursor: not-allowed;
366
+ opacity: var(--tct-checkbox-disabled-opacity, var(--t-checkbox-disabled-opacity, var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4))));
367
+ }
368
+ :host(:is([disabled]:not([disabled=false]), [group-disabled]:not([group-disabled=false]))) label {
369
+ cursor: not-allowed;
333
370
  }
@@ -62,24 +62,6 @@ export class Q2Checkbox {
62
62
  }
63
63
  // #endregion
64
64
  // #region Local Methods
65
- generateCheckboxSVG() {
66
- if (this.type === 'favorite') {
67
- return (h("q2-icon", { type: "star", class: "checkbox-icon" }));
68
- }
69
- if (this.type === 'toggle') {
70
- return this.generateToggleSVG();
71
- }
72
- return (h("svg", { "aria-hidden": "true", width: "20", height: "20", viewBox: "0 0 20 20", class: "checkbox-icon", focusable: "false" }, h("rect", { x: "1", y: "1", width: "18", height: "18", rx: "3" }), (this.checked || this.indeterminate) && this.generateCheckBoxSVGFill()));
73
- }
74
- generateCheckBoxSVGFill() {
75
- if (this.indeterminate) {
76
- return (h("line", { class: "checkbox-fill indeterminate-fill", x1: "4", y1: "10", x2: "16", y2: "10" }));
77
- }
78
- return (h("polyline", { class: "checkbox-fill checked-fill", points: "5 11 8.5 14.5 15 6" }));
79
- }
80
- generateToggleSVG() {
81
- return (h("div", { class: "toggle-svg" }, h("svg", { "aria-hidden": "true", focusable: "false", viewBox: "0 0 46 14", class: "toggle-track", "test-id": "toggleTrack" }, h("rect", { width: "36", height: "14", rx: "7", x: "5" })), h("svg", { "aria-hidden": "true", focusable: "false", viewBox: "0 0 30 30", class: "toggle-indicator", "test-id": "toggleIndicator" }, h("circle", { class: "toggle-hover-circle", width: "20", height: "20", cx: "15", cy: "15", r: "10" }), h("circle", { class: "toggle-circle", width: "20", height: "20", cx: "15", cy: "15", r: "10" }), h("line", { class: "off checked-fill", x1: "12", y1: "18", x2: "18", y2: "12" }), h("line", { class: "off checked-fill", x1: "12", y1: "12", x2: "18", y2: "18" }), h("polyline", { class: "on checked-fill", points: "11,16 14,19 18,12 14,19" }))));
82
- }
83
65
  handleChangeEvent(event) {
84
66
  if (this.readonly ||
85
67
  this.disabled ||
@@ -93,11 +75,29 @@ export class Q2Checkbox {
93
75
  }
94
76
  // #endregion
95
77
  // #region Render Methods
78
+ renderCheckboxSVG() {
79
+ if (this.type === 'favorite') {
80
+ return (h("q2-icon", { type: "star", class: "checkbox-icon" }));
81
+ }
82
+ if (this.type === 'toggle') {
83
+ return this.renderToggleSVG();
84
+ }
85
+ return (h("svg", { "aria-hidden": "true", width: "20", height: "20", viewBox: "0 0 20 20", class: "checkbox-icon", focusable: "false" }, h("rect", { x: "1", y: "1", width: "18", height: "18", rx: "3" }), (this.checked || this.indeterminate) && this.renderCheckBoxSVGFill()));
86
+ }
87
+ renderCheckBoxSVGFill() {
88
+ if (this.indeterminate) {
89
+ return (h("line", { class: "checkbox-fill indeterminate-fill", x1: "4", y1: "10", x2: "16", y2: "10" }));
90
+ }
91
+ return (h("polyline", { class: "checkbox-fill checked-fill", points: "5 11 8.5 14.5 15 6" }));
92
+ }
93
+ renderToggleSVG() {
94
+ return (h("div", { class: "toggle-svg-container" }, h("svg", { "aria-hidden": "true", focusable: "false", viewBox: "0 0 38 24", class: "toggle-track", "test-id": "toggleTrack" }, h("defs", null, h("mask", { id: "xMask" }, h("rect", { width: "18", height: "18", fill: "white" }), h("line", { class: "toggle-icon", x1: "6.5", y1: "6.5", x2: "11.5", y2: "11.5" }), h("line", { class: "toggle-icon", x1: "6.5", y1: "11.5", x2: "11.5", y2: "6.5" })), h("mask", { id: "checkMask" }, h("rect", { width: "18", height: "18", fill: "white" }), h("polyline", { class: "toggle-icon", points: "6,8.5 8.5,11 12.5,6.5", fill: "none" }))), h("rect", { width: "38", height: "24", rx: "12" })), h("svg", { "aria-hidden": "true", focusable: "false", viewBox: "0 0 18 18", class: "toggle-indicator", "test-id": "toggleIndicator" }, h("circle", { class: "toggle-circle", cx: "9", cy: "9", r: "9", mask: "url(#xMask)" }))));
95
+ }
96
96
  render() {
97
97
  const textLabelClasses = ['label-text'];
98
98
  if (this.hideLabel)
99
99
  textLabelClasses.push('sr');
100
- return (h("div", { key: '16039cdaee282c6e98b17326108e6d11c4736442', class: "container" }, h("input", { key: 'b1c9ca9f414a18daf0276f33e700379eafbb64c9', ref: el => (this.inputElement = el), "aria-describedby": this.description ? 'description' : undefined, "aria-invalid": this.hasError === undefined ? undefined : `${this.hasError}`, checked: this.indeterminate || this.checked || false, class: "sr", disabled: !!this.disabled || !!this.groupDisabled, id: this._id, name: this.name || this._id, onClick: this.onInputClick, "test-id": "q2CheckboxInnerCheckBox", type: "checkbox", value: this.value }), h("label", { key: '2314339375a79da9837133d3c4a66002a44c8c05', htmlFor: this._id, class: "label-control", "test-id": "checkboxButton" }, this.generateCheckboxSVG()), h("div", { key: 'e5eab3e512a66bf5cdaa65858cc591205cb0f803', class: textLabelClasses.join(' ') }, h("label", { key: 'ea8bbf8297c674ff9f812fb50e50487ee5bb703a', "test-id": "checkboxLabel", htmlFor: this._id }, loc(this.label), h("slot", { key: '4cf30a956ac7e27ce981632af0995f03c00e22c6' }))), this.description && (h("div", { key: '8fc153008b63e8a79217628e8e31e9721b85f870', class: "description-text", "test-id": "checkboxDescription", id: "description" }, loc(this.description)))));
100
+ return (h("div", { key: '8cb9c126a850022c4e4305cbc62eaf036b41fc85', class: "container" }, h("input", { key: '3c7bc46662dfc50ce3da872ac082930018c6c1f0', ref: el => (this.inputElement = el), "aria-describedby": this.description ? 'description' : undefined, "aria-invalid": this.hasError === undefined ? undefined : `${this.hasError}`, checked: this.indeterminate || this.checked || false, class: "sr", disabled: !!this.disabled || !!this.groupDisabled, id: this._id, name: this.name || this._id, onClick: this.onInputClick, "test-id": "q2CheckboxInnerCheckBox", type: "checkbox", value: this.value }), h("label", { key: '7e79d168122d18aa644bfae0f63b5556a5c1f4cf', htmlFor: this._id, class: "label-control", "test-id": "checkboxButton" }, this.renderCheckboxSVG()), h("div", { key: 'f0fb5ebd65dfd865a6a2874b223a1104b5dd38df', class: textLabelClasses.join(' ') }, h("label", { key: 'e9451e5975f6e6be66c395ec2bd45bc8aa3e3407', "test-id": "checkboxLabel", htmlFor: this._id }, loc(this.label), h("slot", { key: '4f7d5eeaba7c621d0863cf18a45499eb692b1f9d' }))), this.description && (h("div", { key: '644d733eaaed63f83147e102735b08f7e50d6457', class: "description-text", "test-id": "checkboxDescription", id: "description" }, loc(this.description)))));
101
101
  }
102
102
  static get is() { return "q2-checkbox"; }
103
103
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"q2-checkbox.js","sourceRoot":"","sources":["../../../src/components/q2-checkbox/q2-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, Element, Listen, Watch, Event, EventEmitter, h } from '@stencil/core';\nimport { createGuid, handleAriaLabel, isEventFromElement, loc, overrideFocus } from 'src/utils';\n\n@Component({ tag: 'q2-checkbox', shadow: true, styleUrl: 'q2-checkbox.scss' })\nexport class Q2Checkbox implements ComponentInterface {\n // #region Own Properties\n\n _id: string = `checkbox-${createGuid()}`;\n inputElement: HTMLInputElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Determine which side of the label the checkbox will render on. */\n @Prop({ reflect: true })\n alignment: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** The state of the checkbox. This modifies the visual appearance of the element. */\n @Prop({ reflect: true, mutable: true })\n checked: boolean = false;\n\n /**\n * Populates a description that is displayed beneath the label.\n * @localizable\n */\n @Prop({ reflect: true })\n description: string;\n\n /** Disables the checkbox and prevents interaction. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Used by q2-checkbox-group to disable all checkboxes in the group\n * @private\n */\n @Prop({ reflect: true })\n groupDisabled: boolean;\n\n /** Determines if the component should display in an errant state. */\n @Prop({ reflect: true })\n hasError: boolean = false;\n\n /**\n * Hide's the field's `<label>` element from view.\n *\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Used on a parent checkbox in a checkbox group (e.g. \"Select All\") to indicate that some, but not all, checkboxes in a group are checked.\n *\n * When `true`, the \"indeterminate\" selection style is applied.\n * To apply the standard \"checked\" selection style, `checked` must be true, and `indeterminate` must be `false`.\n */\n @Prop({ reflect: true })\n indeterminate: boolean;\n\n /**\n * The visible label text for the checkbox. Appears to the right of the box for 'default' and 'favorite' checkboxes, and to the left for 'toggle' checkboxes.\n * Yielded content will be adjacent to this text.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** A static string used to establish a symbolic relationship between checkboxes. */\n @Prop({ reflect: true })\n name: string;\n\n /** The field is not interactive, but remains focusable. */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /** The field is not interactive, but remains focusable. */\n @Prop({ reflect: true })\n slotReadonly: boolean;\n\n /** The visual style of the checkbox. This does not need to be defined for a standard checkbox. */\n @Prop({ reflect: true })\n type: 'favorite' | 'toggle';\n\n /** A static reference value for the checkbox. */\n @Prop({ reflect: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the checkbox is toggled.\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{ value: string; checked: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n handleAriaLabel(this);\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.hostElement.click = () => this.inputElement.click();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('change')\n defaultChangeHandler(event: CustomEvent) {\n // We use setTimeout to give an opportunity to call preventDefault\n setTimeout(() => this.handleChangeEvent(event), 0);\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.hostElement.shadowRoot.querySelector('input').focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n // #endregion\n // #region Local Methods\n\n generateCheckboxSVG() {\n if (this.type === 'favorite') {\n return (\n <q2-icon\n type=\"star\"\n class=\"checkbox-icon\"\n />\n );\n }\n\n if (this.type === 'toggle') {\n return this.generateToggleSVG();\n }\n\n return (\n <svg\n aria-hidden=\"true\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n class=\"checkbox-icon\"\n focusable=\"false\"\n >\n <rect\n x=\"1\"\n y=\"1\"\n width=\"18\"\n height=\"18\"\n rx=\"3\"\n />\n {(this.checked || this.indeterminate) && this.generateCheckBoxSVGFill()}\n </svg>\n );\n }\n\n generateCheckBoxSVGFill() {\n if (this.indeterminate) {\n return (\n <line\n class=\"checkbox-fill indeterminate-fill\"\n x1=\"4\"\n y1=\"10\"\n x2=\"16\"\n y2=\"10\"\n />\n );\n }\n return (\n <polyline\n class=\"checkbox-fill checked-fill\"\n points=\"5 11 8.5 14.5 15 6\"\n />\n );\n }\n\n generateToggleSVG() {\n return (\n <div class=\"toggle-svg\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 46 14\"\n class=\"toggle-track\"\n test-id=\"toggleTrack\"\n >\n <rect\n width=\"36\"\n height=\"14\"\n rx=\"7\"\n x=\"5\"\n />\n </svg>\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 30 30\"\n class=\"toggle-indicator\"\n test-id=\"toggleIndicator\"\n >\n <circle\n class=\"toggle-hover-circle\"\n width=\"20\"\n height=\"20\"\n cx=\"15\"\n cy=\"15\"\n r=\"10\"\n />\n <circle\n class=\"toggle-circle\"\n width=\"20\"\n height=\"20\"\n cx=\"15\"\n cy=\"15\"\n r=\"10\"\n />\n <line\n class=\"off checked-fill\"\n x1=\"12\"\n y1=\"18\"\n x2=\"18\"\n y2=\"12\"\n />\n <line\n class=\"off checked-fill\"\n x1=\"12\"\n y1=\"12\"\n x2=\"18\"\n y2=\"18\"\n />\n <polyline\n class=\"on checked-fill\"\n points=\"11,16 14,19 18,12 14,19\"\n />\n </svg>\n </div>\n );\n }\n\n handleChangeEvent(event: CustomEvent<{ checked: boolean; value: string }>) {\n if (\n this.readonly ||\n this.disabled ||\n this.hostElement.onchange ||\n event.defaultPrevented ||\n event.target !== this.hostElement ||\n !event.detail\n ) {\n return;\n }\n this.checked = event.detail.checked;\n }\n\n onInputClick = (event: Event) => {\n event.stopPropagation();\n event.preventDefault();\n\n const isNotInteractive = this.disabled || this.readonly || this.slotReadonly;\n if (isNotInteractive) return;\n if (!(event.target instanceof HTMLInputElement)) return;\n const { value, checked } = event.target;\n\n this.change.emit({\n value,\n checked,\n });\n this.inputElement.focus();\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const textLabelClasses = ['label-text'];\n if (this.hideLabel) textLabelClasses.push('sr');\n return (\n <div class=\"container\">\n <input\n ref={el => (this.inputElement = el)}\n aria-describedby={this.description ? 'description' : undefined}\n aria-invalid={this.hasError === undefined ? undefined : `${this.hasError}`}\n checked={this.indeterminate || this.checked || false}\n class=\"sr\"\n disabled={!!this.disabled || !!this.groupDisabled}\n id={this._id}\n name={this.name || this._id}\n onClick={this.onInputClick}\n test-id=\"q2CheckboxInnerCheckBox\"\n type=\"checkbox\"\n value={this.value}\n />\n <label\n htmlFor={this._id}\n class=\"label-control\"\n test-id=\"checkboxButton\"\n >\n {this.generateCheckboxSVG()}\n </label>\n <div class={textLabelClasses.join(' ')}>\n <label\n test-id=\"checkboxLabel\"\n htmlFor={this._id}\n >\n {loc(this.label)}\n <slot />\n </label>\n </div>\n {this.description && (\n <div\n class=\"description-text\"\n test-id=\"checkboxDescription\"\n id=\"description\"\n >\n {loc(this.description)}\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"]}
1
+ {"version":3,"file":"q2-checkbox.js","sourceRoot":"","sources":["../../../../src/components/q2-checkbox/q2-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Prop, Element, Listen, Watch, Event, EventEmitter, h } from '@stencil/core';\nimport { createGuid, handleAriaLabel, isEventFromElement, loc, overrideFocus } from 'src/utils';\n\n@Component({ tag: 'q2-checkbox', shadow: true, styleUrl: 'q2-checkbox.scss' })\nexport class Q2Checkbox implements ComponentInterface {\n // #region Own Properties\n\n _id: string = `checkbox-${createGuid()}`;\n inputElement: HTMLInputElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Determine which side of the label the checkbox will render on. */\n @Prop({ reflect: true })\n alignment: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** The state of the checkbox. This modifies the visual appearance of the element. */\n @Prop({ reflect: true, mutable: true })\n checked: boolean = false;\n\n /**\n * Populates a description that is displayed beneath the label.\n * @localizable\n */\n @Prop({ reflect: true })\n description: string;\n\n /** Disables the checkbox and prevents interaction. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Used by q2-checkbox-group to disable all checkboxes in the group\n * @private\n */\n @Prop({ reflect: true })\n groupDisabled: boolean;\n\n /** Determines if the component should display in an errant state. */\n @Prop({ reflect: true })\n hasError: boolean = false;\n\n /**\n * Hide's the field's `<label>` element from view.\n *\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Used on a parent checkbox in a checkbox group (e.g. \"Select All\") to indicate that some, but not all, checkboxes in a group are checked.\n *\n * When `true`, the \"indeterminate\" selection style is applied.\n * To apply the standard \"checked\" selection style, `checked` must be true, and `indeterminate` must be `false`.\n */\n @Prop({ reflect: true })\n indeterminate: boolean;\n\n /**\n * The visible label text for the checkbox. Appears to the right of the box for 'default' and 'favorite' checkboxes, and to the left for 'toggle' checkboxes.\n * Yielded content will be adjacent to this text.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** A static string used to establish a symbolic relationship between checkboxes. */\n @Prop({ reflect: true })\n name: string;\n\n /** The field is not interactive, but remains focusable. */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /** The field is not interactive, but remains focusable. */\n @Prop({ reflect: true })\n slotReadonly: boolean;\n\n /** The visual style of the checkbox. This does not need to be defined for a standard checkbox. */\n @Prop({ reflect: true })\n type: 'favorite' | 'toggle';\n\n /** A static reference value for the checkbox. */\n @Prop({ reflect: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the checkbox is toggled.\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{ value: string; checked: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n handleAriaLabel(this);\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.hostElement.click = () => this.inputElement.click();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('change')\n defaultChangeHandler(event: CustomEvent) {\n // We use setTimeout to give an opportunity to call preventDefault\n setTimeout(() => this.handleChangeEvent(event), 0);\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.hostElement.shadowRoot.querySelector('input').focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n // #endregion\n // #region Local Methods\n\n handleChangeEvent(event: CustomEvent<{ checked: boolean; value: string }>) {\n if (\n this.readonly ||\n this.disabled ||\n this.hostElement.onchange ||\n event.defaultPrevented ||\n event.target !== this.hostElement ||\n !event.detail\n ) {\n return;\n }\n this.checked = event.detail.checked;\n }\n\n onInputClick = (event: Event) => {\n event.stopPropagation();\n event.preventDefault();\n\n const isNotInteractive = this.disabled || this.readonly || this.slotReadonly;\n if (isNotInteractive) return;\n if (!(event.target instanceof HTMLInputElement)) return;\n const { value, checked } = event.target;\n\n this.change.emit({\n value,\n checked,\n });\n this.inputElement.focus();\n };\n\n // #endregion\n // #region Render Methods\n\n renderCheckboxSVG() {\n if (this.type === 'favorite') {\n return (\n <q2-icon\n type=\"star\"\n class=\"checkbox-icon\"\n />\n );\n }\n\n if (this.type === 'toggle') {\n return this.renderToggleSVG();\n }\n\n return (\n <svg\n aria-hidden=\"true\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n class=\"checkbox-icon\"\n focusable=\"false\"\n >\n <rect\n x=\"1\"\n y=\"1\"\n width=\"18\"\n height=\"18\"\n rx=\"3\"\n />\n {(this.checked || this.indeterminate) && this.renderCheckBoxSVGFill()}\n </svg>\n );\n }\n\n renderCheckBoxSVGFill() {\n if (this.indeterminate) {\n return (\n <line\n class=\"checkbox-fill indeterminate-fill\"\n x1=\"4\"\n y1=\"10\"\n x2=\"16\"\n y2=\"10\"\n />\n );\n }\n return (\n <polyline\n class=\"checkbox-fill checked-fill\"\n points=\"5 11 8.5 14.5 15 6\"\n />\n );\n }\n\n renderToggleSVG() {\n return (\n <div class=\"toggle-svg-container\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 38 24\"\n class=\"toggle-track\"\n test-id=\"toggleTrack\"\n >\n <defs>\n {/* Mask for the X icon */}\n <mask id=\"xMask\">\n <rect\n width=\"18\"\n height=\"18\"\n fill=\"white\"\n />\n <line\n class=\"toggle-icon\"\n x1=\"6.5\"\n y1=\"6.5\"\n x2=\"11.5\"\n y2=\"11.5\"\n />\n <line\n class=\"toggle-icon\"\n x1=\"6.5\"\n y1=\"11.5\"\n x2=\"11.5\"\n y2=\"6.5\"\n />\n </mask>\n\n {/* Mask for the checkmark icon */}\n <mask id=\"checkMask\">\n <rect\n width=\"18\"\n height=\"18\"\n fill=\"white\"\n />\n <polyline\n class=\"toggle-icon\"\n points=\"6,8.5 8.5,11 12.5,6.5\"\n fill=\"none\"\n />\n </mask>\n </defs>\n <rect\n width=\"38\"\n height=\"24\"\n rx=\"12\"\n />\n </svg>\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 18 18\"\n class=\"toggle-indicator\"\n test-id=\"toggleIndicator\"\n >\n <circle\n class=\"toggle-circle\"\n cx=\"9\"\n cy=\"9\"\n r=\"9\"\n mask=\"url(#xMask)\"\n />\n </svg>\n </div>\n );\n }\n\n render() {\n const textLabelClasses = ['label-text'];\n if (this.hideLabel) textLabelClasses.push('sr');\n return (\n <div class=\"container\">\n <input\n ref={el => (this.inputElement = el)}\n aria-describedby={this.description ? 'description' : undefined}\n aria-invalid={this.hasError === undefined ? undefined : `${this.hasError}`}\n checked={this.indeterminate || this.checked || false}\n class=\"sr\"\n disabled={!!this.disabled || !!this.groupDisabled}\n id={this._id}\n name={this.name || this._id}\n onClick={this.onInputClick}\n test-id=\"q2CheckboxInnerCheckBox\"\n type=\"checkbox\"\n value={this.value}\n />\n <label\n htmlFor={this._id}\n class=\"label-control\"\n test-id=\"checkboxButton\"\n >\n {this.renderCheckboxSVG()}\n </label>\n <div class={textLabelClasses.join(' ')}>\n <label\n test-id=\"checkboxLabel\"\n htmlFor={this._id}\n >\n {loc(this.label)}\n <slot />\n </label>\n </div>\n {this.description && (\n <div\n class=\"description-text\"\n test-id=\"checkboxDescription\"\n id=\"description\"\n >\n {loc(this.description)}\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n"]}