q2-tecton-elements 1.67.1 → 1.67.2

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 (251) hide show
  1. package/dist/bundle-report.json +23 -68
  2. package/dist/cjs/click-elsewhere.q2-option-list.q2-popover.entry.cjs.js.map +1 -1
  3. package/dist/cjs/click-elsewhere_3.cjs.entry.js +17 -28
  4. package/dist/cjs/click-elsewhere_3.cjs.entry.js.map +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-action-group_2.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  9. package/dist/cjs/q2-card-image.cjs.entry.js +2 -2
  10. package/dist/cjs/q2-carousel-pane.cjs.entry.js +2 -2
  11. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  14. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-checkbox.q2-tag.entry.cjs.js.map +1 -1
  16. package/dist/cjs/q2-checkbox_2.cjs.entry.js +41 -11
  17. package/dist/cjs/q2-checkbox_2.cjs.entry.js.map +1 -1
  18. package/dist/cjs/q2-context.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-form.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-input.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-item.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-link_2.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-meter.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-modal.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-month-picker.cjs.entry.js +2 -2
  35. package/dist/cjs/q2-mutation-observer.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
  38. package/dist/cjs/q2-pill.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  40. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  41. package/dist/cjs/q2-relative-time.cjs.entry.js +1 -1
  42. package/dist/cjs/q2-section.cjs.entry.js +2 -2
  43. package/dist/cjs/q2-select.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  45. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  46. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  47. package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
  49. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  50. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  51. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  52. package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
  53. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  54. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  55. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  56. package/dist/collection/components/q2-card-image/q2-card-image.js +2 -2
  57. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  58. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  59. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  60. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  61. package/dist/collection/components/q2-checkbox/q2-checkbox.css +5 -1
  62. package/dist/collection/components/q2-checkbox/q2-checkbox.js +45 -10
  63. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  64. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
  65. package/dist/collection/components/q2-context/q2-context.js +1 -1
  66. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  67. package/dist/collection/components/q2-data-table/q2-data-table.js +1 -1
  68. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  69. package/dist/collection/components/q2-dropdown/q2-dropdown.js +1 -1
  70. package/dist/collection/components/q2-editable-field/q2-editable-field.js +1 -1
  71. package/dist/collection/components/q2-example/q2-example.js +1 -1
  72. package/dist/collection/components/q2-form/q2-form.js +1 -1
  73. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  74. package/dist/collection/components/q2-input/q2-input.js +1 -1
  75. package/dist/collection/components/q2-item/q2-item.js +1 -1
  76. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  77. package/dist/collection/components/q2-list/q2-list.js +1 -1
  78. package/dist/collection/components/q2-message/q2-message.js +1 -1
  79. package/dist/collection/components/q2-meter/q2-meter.js +1 -1
  80. package/dist/collection/components/q2-modal/q2-modal.js +1 -1
  81. package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js +1 -1
  82. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  83. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  84. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  85. package/dist/collection/components/q2-popover/q2-popover.js +17 -48
  86. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  87. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  88. package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
  89. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  90. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  91. package/dist/collection/components/q2-section/q2-section.js +2 -2
  92. package/dist/collection/components/q2-select/q2-select.js +1 -1
  93. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  94. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
  95. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  96. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  97. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  98. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  99. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  100. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  101. package/dist/components/q2-action-group2.js +1 -1
  102. package/dist/components/q2-action-sheet.js +1 -1
  103. package/dist/components/q2-avatar2.js +1 -1
  104. package/dist/components/q2-card-image.js +2 -2
  105. package/dist/components/q2-carousel-pane.js +2 -2
  106. package/dist/components/q2-chart-area.js +1 -1
  107. package/dist/components/q2-chart-bar.js +1 -1
  108. package/dist/components/q2-chart-donut.js +1 -1
  109. package/dist/components/q2-checkbox-group.js +1 -1
  110. package/dist/components/q2-checkbox2.js +42 -11
  111. package/dist/components/q2-checkbox2.js.map +1 -1
  112. package/dist/components/q2-context.js +1 -1
  113. package/dist/components/q2-currency.js +1 -1
  114. package/dist/components/q2-data-table.js +1 -1
  115. package/dist/components/q2-detail.js +1 -1
  116. package/dist/components/q2-dropdown.js +1 -1
  117. package/dist/components/q2-editable-field.js +1 -1
  118. package/dist/components/q2-example.js +1 -1
  119. package/dist/components/q2-form.js +1 -1
  120. package/dist/components/q2-formatted-text.js +1 -1
  121. package/dist/components/q2-input2.js +1 -1
  122. package/dist/components/q2-item2.js +1 -1
  123. package/dist/components/q2-legend2.js +1 -1
  124. package/dist/components/q2-list2.js +1 -1
  125. package/dist/components/q2-message2.js +1 -1
  126. package/dist/components/q2-meter.js +1 -1
  127. package/dist/components/q2-modal.js +1 -1
  128. package/dist/components/q2-month-picker.js +2 -2
  129. package/dist/components/q2-mutation-observer.js +1 -1
  130. package/dist/components/q2-optgroup2.js +1 -1
  131. package/dist/components/q2-pagination.js +3 -3
  132. package/dist/components/q2-pill.js +1 -1
  133. package/dist/components/q2-popover2.js +17 -29
  134. package/dist/components/q2-popover2.js.map +1 -1
  135. package/dist/components/q2-radio-group.js +1 -1
  136. package/dist/components/q2-radio.js +1 -1
  137. package/dist/components/q2-relative-time.js +1 -1
  138. package/dist/components/q2-resize-observer2.js +1 -1
  139. package/dist/components/q2-section.js +2 -2
  140. package/dist/components/q2-select2.js +1 -1
  141. package/dist/components/q2-stepper-pane.js +1 -1
  142. package/dist/components/q2-stepper-vertical.js +1 -1
  143. package/dist/components/q2-stepper.js +1 -1
  144. package/dist/components/q2-tab-container.js +1 -1
  145. package/dist/components/q2-tab-pane.js +1 -1
  146. package/dist/components/q2-tag2.js +1 -1
  147. package/dist/components/q2-textarea.js +1 -1
  148. package/dist/components/tecton-tab-pane.js +2 -2
  149. package/dist/esm/click-elsewhere.q2-option-list.q2-popover.entry.js.map +1 -1
  150. package/dist/esm/click-elsewhere_3.entry.js +17 -28
  151. package/dist/esm/click-elsewhere_3.entry.js.map +1 -1
  152. package/dist/esm/loader.js +1 -1
  153. package/dist/esm/q2-action-group_2.entry.js +2 -2
  154. package/dist/esm/q2-action-sheet.entry.js +1 -1
  155. package/dist/esm/q2-avatar.entry.js +1 -1
  156. package/dist/esm/q2-card-image.entry.js +2 -2
  157. package/dist/esm/q2-carousel-pane.entry.js +2 -2
  158. package/dist/esm/q2-chart-area.entry.js +1 -1
  159. package/dist/esm/q2-chart-bar.entry.js +1 -1
  160. package/dist/esm/q2-chart-donut.entry.js +1 -1
  161. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  162. package/dist/esm/q2-checkbox.q2-tag.entry.js.map +1 -1
  163. package/dist/esm/q2-checkbox_2.entry.js +41 -11
  164. package/dist/esm/q2-checkbox_2.entry.js.map +1 -1
  165. package/dist/esm/q2-context.entry.js +1 -1
  166. package/dist/esm/q2-currency.entry.js +1 -1
  167. package/dist/esm/q2-data-table.entry.js +1 -1
  168. package/dist/esm/q2-detail.entry.js +1 -1
  169. package/dist/esm/q2-dropdown.entry.js +1 -1
  170. package/dist/esm/q2-editable-field.entry.js +1 -1
  171. package/dist/esm/q2-example.entry.js +1 -1
  172. package/dist/esm/q2-form.entry.js +1 -1
  173. package/dist/esm/q2-formatted-text.entry.js +1 -1
  174. package/dist/esm/q2-input.entry.js +1 -1
  175. package/dist/esm/q2-item.entry.js +1 -1
  176. package/dist/esm/q2-legend.entry.js +1 -1
  177. package/dist/esm/q2-link_2.entry.js +1 -1
  178. package/dist/esm/q2-message.entry.js +1 -1
  179. package/dist/esm/q2-meter.entry.js +1 -1
  180. package/dist/esm/q2-modal.entry.js +1 -1
  181. package/dist/esm/q2-month-picker.entry.js +2 -2
  182. package/dist/esm/q2-mutation-observer.entry.js +1 -1
  183. package/dist/esm/q2-optgroup.entry.js +1 -1
  184. package/dist/esm/q2-pagination.entry.js +3 -3
  185. package/dist/esm/q2-pill.entry.js +1 -1
  186. package/dist/esm/q2-radio-group.entry.js +1 -1
  187. package/dist/esm/q2-radio.entry.js +1 -1
  188. package/dist/esm/q2-relative-time.entry.js +1 -1
  189. package/dist/esm/q2-section.entry.js +2 -2
  190. package/dist/esm/q2-select.entry.js +1 -1
  191. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  192. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  193. package/dist/esm/q2-stepper.entry.js +1 -1
  194. package/dist/esm/q2-tab-container.entry.js +1 -1
  195. package/dist/esm/q2-tab-pane.entry.js +1 -1
  196. package/dist/esm/q2-tecton-elements.js +1 -1
  197. package/dist/esm/q2-textarea.entry.js +1 -1
  198. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  199. package/dist/q2-tecton-elements/click-elsewhere.q2-option-list.q2-popover.entry.esm.js.map +1 -1
  200. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js +32 -39
  201. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js.map +1 -1
  202. package/dist/q2-tecton-elements/q2-action-group_2.entry.js +4 -4
  203. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +40 -40
  204. package/dist/q2-tecton-elements/q2-avatar.entry.js +8 -8
  205. package/dist/q2-tecton-elements/q2-card-image.entry.js +2 -2
  206. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +3 -3
  207. package/dist/q2-tecton-elements/q2-chart-area.entry.js +6 -6
  208. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +2 -2
  209. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +6 -6
  210. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +6 -6
  211. package/dist/q2-tecton-elements/q2-checkbox.q2-tag.entry.esm.js.map +1 -1
  212. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +70 -28
  213. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js.map +1 -1
  214. package/dist/q2-tecton-elements/q2-context.entry.js +15 -15
  215. package/dist/q2-tecton-elements/q2-currency.entry.js +8 -8
  216. package/dist/q2-tecton-elements/q2-data-table.entry.js +3 -3
  217. package/dist/q2-tecton-elements/q2-detail.entry.js +3 -3
  218. package/dist/q2-tecton-elements/q2-dropdown.entry.js +17 -17
  219. package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
  220. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  221. package/dist/q2-tecton-elements/q2-form.entry.js +7 -7
  222. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  223. package/dist/q2-tecton-elements/q2-input.entry.js +3 -3
  224. package/dist/q2-tecton-elements/q2-item.entry.js +13 -13
  225. package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
  226. package/dist/q2-tecton-elements/q2-link_2.entry.js +6 -6
  227. package/dist/q2-tecton-elements/q2-message.entry.js +6 -6
  228. package/dist/q2-tecton-elements/q2-meter.entry.js +13 -13
  229. package/dist/q2-tecton-elements/q2-modal.entry.js +46 -46
  230. package/dist/q2-tecton-elements/q2-month-picker.entry.js +30 -30
  231. package/dist/q2-tecton-elements/q2-mutation-observer.entry.js +1 -1
  232. package/dist/q2-tecton-elements/q2-optgroup.entry.js +4 -4
  233. package/dist/q2-tecton-elements/q2-pagination.entry.js +26 -26
  234. package/dist/q2-tecton-elements/q2-pill.entry.js +12 -12
  235. package/dist/q2-tecton-elements/q2-radio-group.entry.js +21 -21
  236. package/dist/q2-tecton-elements/q2-radio.entry.js +8 -8
  237. package/dist/q2-tecton-elements/q2-relative-time.entry.js +1 -1
  238. package/dist/q2-tecton-elements/q2-section.entry.js +21 -21
  239. package/dist/q2-tecton-elements/q2-select.entry.js +1 -1
  240. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +11 -11
  241. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +4 -4
  242. package/dist/q2-tecton-elements/q2-stepper.entry.js +12 -12
  243. package/dist/q2-tecton-elements/q2-tab-container.entry.js +17 -17
  244. package/dist/q2-tecton-elements/q2-tab-pane.entry.js +2 -2
  245. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  246. package/dist/q2-tecton-elements/q2-textarea.entry.js +2 -2
  247. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  248. package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +8 -1
  249. package/dist/types/components/q2-popover/q2-popover.d.ts +0 -6
  250. package/dist/types/components.d.ts +0 -10
  251. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"names":["q2CheckboxCss","Q2Checkbox","constructor","hostRef","this","_id","createGuid","checked","hasError","onInputClick","event","stopPropagation","preventDefault","isNotInteractive","disabled","readonly","slotReadonly","target","HTMLInputElement","value","mirrorEmit","inputElement","focus","componentWillLoad","handleAriaLabel","componentDidLoad","overrideFocus","hostElement","click","defaultChangeHandler","setTimeout","handleChangeEvent","delegateFocus","isEventFromElement","shadowRoot","querySelector","ariaLabelObserver","composedAriaLabel","baseText","loc","label","undefined","_tooltip","onchange","defaultPrevented","detail","renderCheckboxSVG","type","h","class","renderToggleSVG","width","height","viewBox","focusable","x","y","rx","indeterminate","renderCheckBoxSVGFill","x1","y1","x2","y2","points","key","id","maskUnits","fill","stroke","cx","cy","r","mask","render","textLabelClasses","hideLabel","push","ref","el","description","groupDisabled","name","onClick","htmlFor","join","q2TagCss","Q2Tag","hoist","_a","window","Tecton","useActionSheets","optionListLabel","popoverAlignment","determineOptionCount","numberOfOptions","querySelectorAll","length","optionCount","filterSlottedElements","slot","assignedElements","Array","from","approvedElements","forEach","element","index","includes","tagName","remove","handleButtonFocusout","async","relatedTarget","popoverElement","contains","open","handleChange","handleClick","controlElement","dropdownBtn","shouldShowActionSheet","showActionSheetList","toggle","handleKeydown","isTabMetaOrCtrl","metaKey","ctrlKey","optionList","handleExternalKeydown","handleWrapperClick","initMutationObserver","observer","MutationObserver","onMutationObserved","observe","childList","attributes","mutationObserver","onClickElsewhere","localName","disconnectedCallback","disconnect","popoverStateHandler","setActiveElement","closePopover","_togglePopover","openPopover","selectOption","waitForNextPaint","allOptions","getOptions","desiredOption","find","option","dispatchEvent","FocusEvent","renderHiddenElement","wrapperClassNames","shouldShowOptions","Host","onChange","Fragment","role","onKeyDown","onFocusout","e","maxHeight","popoverMaxHeight","minHeight","popoverMinHeight","direction","popoverDirection","align"],"sources":["src/components/q2-checkbox/q2-checkbox.scss?tag=q2-checkbox&encapsulation=shadow","src/components/q2-checkbox/q2-checkbox.tsx","src/components/q2-tag/q2-tag.scss?tag=q2-tag&encapsulation=shadow","src/components/q2-tag/q2-tag.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n --comp-checkbox-padding: #{var-list(\n --tct-checkbox-padding,\n unquote('#{var-list(var-prefixer(checkbox-vertical-padding), 8px)} 0')\n )};\n\n display: block;\n position: relative;\n padding: var(--comp-checkbox-padding);\n --comp-default-checkbox-margin: #{var-list(var-prefixer(checkbox-margin-top), 0px) 0\n var-list(var-prefixer(checkbox-margin-bottom), 0px)};\n margin: var-list(--tct-checkbox-margin, --comp-default-checkbox-margin);\n}\n\n.container {\n --comp-checkbox-size: #{var-list(var-prefixer(checkbox-size), 24px)};\n --comp-checkbox-default-column-gap: var(--app-scale-2x, 10px);\n --comp-checkbox-default-row-gap: 0;\n --comp-checkbox-default-gap: #{var(--comp-checkbox-default-row-gap) var(--comp-checkbox-default-column-gap)};\n --comp-checkbox-tween: #{var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'))};\n --comp-checkbox-toggle-width: #{var-list(var-prefixer(checkbox-toggle-width), 38px)};\n\n --comp-checkbox-toggle-track-fill: #{var-list(\n --tct-checkbox-toggle-track-fill,\n --tct-checkbox-toggle-track-color,\n transparent\n )};\n --comp-checkbox-toggle-track-fill-active: #{var-list(\n --tct-checkbox-toggle-active-track-fill,\n --tct-checkbox-toggle-active-track-color,\n --tct-checkbox-toggle-active-color,\n --t-primary-l1,\n #7755af\n )};\n --comp-checkbox-toggle-track-fill-hover: #{var-list(\n --tct-checkbox-toggle-hover-track-fill,\n --tct-checkbox-toggle-hover-track-color,\n --comp-checkbox-toggle-track-fill\n )};\n --comp-checkbox-toggle-track-fill-error: #{var-list(\n --tct-checkbox-toggle-error-track-fill,\n --tct-checkbox-toggle-error-track-color,\n --comp-checkbox-toggle-track-fill\n )};\n --comp-checkbox-toggle-track-fill-error-hover: #{var-list(\n --tct-checkbox-toggle-error-hover-track-fill,\n --tct-checkbox-toggle-error-hover-track-color,\n --comp-checkbox-toggle-track-fill-error\n )};\n --comp-checkbox-toggle-track-fill-error-active: #{var-list(\n --tct-checkbox-toggle-error-active-track-fill,\n --tct-checkbox-toggle-error-active-track-color,\n --comp-checkbox-toggle-track-fill-error\n )};\n\n --comp-checkbox-toggle-error-color: #{var-list(--tct-checkbox-toggle-error-color, --comp-checkbox-error-color)};\n --comp-checkbox-toggle-color: #{var-list(--tct-checkbox-toggle-color, --t-gray-8, #808080)};\n --comp-checkbox-gap: #{var-list(var-prefixer(checkbox-gap), --comp-checkbox-default-gap)};\n --comp-checkbox-outer-stroke-color: #{var-list(\n var-prefixer(checkbox-outer-stroke-color),\n --t-a11y-gray-color-AA,\n #949494\n )};\n --comp-checkbox-outer-fill-color: #{var-list(\n var-prefixer(checkbox-outer-fill-color),\n --tct-white,\n --app-white,\n #ffffff\n )};\n --comp-checkbox-checked-fill-color: #{var-list(\n --tct-checkbox-checked-fill-color,\n --t-primary,\n #040404\n )};\n --comp-checkbox-checked-color: #{var-list(\n --tct-checkbox-checked-stroke-color,\n --tct-white,\n --app-white,\n #FFFFFF\n )};\n --comp-control-width: var(--comp-checkbox-size);\n --comp-checkbox-error-color: #{var-list(--tct-stoplight-error, --const-stoplight-alert, #d20a0a)};\n\n --comp-checkbox-bold-fallback-stroke-width: #{var-list(--tct-checkbox-bold-fallback-stroke-width, 0.7px)};\n --comp-checkbox-stroke-width: #{var-list(--tct-checkbox-stroke-width, unset)};\n --comp-checkbox-checked-stroke-width: #{var-list(\n --tct-checkbox-checked-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-hover-stroke-width: #{var-list(--tct-checkbox-hover-stroke-width, unset)};\n --comp-checkbox-focused-stroke-width: #{var-list(--tct-checkbox-focused-stroke-width, unset)};\n --comp-checkbox-checked-hover-stroke-width: #{var-list(\n --tct-checkbox-checked-hover-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-checked-focused-stroke-width: #{var-list(\n --tct-checkbox-checked-focused-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-description-stroke-width: #{var-list(\n --tct-checkbox-description-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-description-focused-stroke-width: #{var-list(\n --tct-checkbox-description-focused-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-description-hover-stroke-width: #{var-list(\n --tct-checkbox-description-hover-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n\n :host([type='favorite']) & {\n --comp-checkbox-favorite-stroke-color: #{var-list(\n var-prefixer(checkbox-favorite-stroke-color),\n --t-a11y-gray-color-AA,\n #949494\n )};\n --comp-checkbox-favorite-fill-color: #{var-list(var-prefixer(checkbox-favorite-fill-color), #db7d24)};\n }\n\n display: grid;\n grid-template-areas:\n 'svg label'\n 'svg description';\n align-items: center;\n gap: var(--comp-checkbox-gap);\n grid-template-columns: var(--comp-control-width) calc(\n 100% - var(--comp-control-width) - var(--comp-checkbox-default-column-gap)\n );\n\n :host([hide-label]:not([hide-label='false'])) & {\n grid-template-areas: 'svg';\n grid-template-columns: var(--comp-control-width);\n }\n\n :host([type='toggle']) & {\n --comp-control-width: var(--comp-checkbox-toggle-width);\n }\n\n :host([alignment='right']) &,\n :host([type='toggle']:not([alignment])) & {\n grid-template-areas:\n 'label svg'\n 'description svg';\n grid-template-columns: calc(100% - var(--comp-control-width) - var(--comp-checkbox-default-column-gap)) var(\n --comp-control-width\n );\n }\n}\n\n.label-control {\n align-items: center;\n display: flex;\n}\n\n.label-text {\n grid-area: label;\n\n :host([description]) & {\n -webkit-text-stroke-width: var(--comp-checkbox-description-stroke-width);\n text-stroke-width: var(--comp-checkbox-description-stroke-width);\n }\n :host([checked]:not([checked='false'])) & {\n -webkit-text-stroke-width: var(--comp-checkbox-checked-stroke-width);\n text-stroke-width: var(--comp-checkbox-checked-stroke-width);\n }\n :host(:hover) & {\n -webkit-text-stroke-width: var(--comp-checkbox-hover-stroke-width);\n text-stroke-width: var(--comp-checkbox-hover-stroke-width);\n }\n :host(:focus-within) & {\n -webkit-text-stroke-width: var(--comp-checkbox-focused-stroke-width);\n text-stroke-width: var(--comp-checkbox-focused-stroke-width);\n }\n :host([description]:hover) & {\n -webkit-text-stroke-width: var(--comp-checkbox-description-hover-stroke-width);\n text-stroke-width: var(--comp-checkbox-description-hover-stroke-width);\n }\n :host([checked]:not([checked='false']):hover) & {\n -webkit-text-stroke-width: var(--comp-checkbox-checked-hover-stroke-width);\n text-stroke-width: var(--comp-checkbox-checked-hover-stroke-width);\n }\n :host([description]:focus-within) & {\n -webkit-text-stroke-width: var(--comp-checkbox-description-focused-stroke-width);\n text-stroke-width: var(--comp-checkbox-description-focused-stroke-width);\n }\n :host([checked]:not([checked='false']):focus-within) & {\n -webkit-text-stroke-width: var(--comp-checkbox-checked-focused-stroke-width);\n text-stroke-width: var(--comp-checkbox-checked-focused-stroke-width);\n }\n :host(:active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-active-stroke-width, unset);\n }\n :host([checked]:not([checked='false']):active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-active-stroke-width, unset);\n }\n :host([has-error]:not([has-error='false']):hover) & {\n -webkit-text-stroke-width: var(--tct-checkbox-error-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-hover-stroke-width, unset);\n }\n :host([has-error]:not([has-error='false']):focus-within) & {\n -webkit-text-stroke-width: var(--tct-checkbox-error-focused-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-focused-stroke-width, unset);\n }\n :host([has-error]:not([has-error='false']):active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-error-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-active-stroke-width, unset);\n }\n :host([checked]:not([checked='false'])[has-error]:not([has-error='false']):hover) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-hover-stroke-width, unset);\n }\n :host([checked]:not([checked='false'])[has-error]:not([has-error='false']):focus-within) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-focused-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-focused-stroke-width, unset);\n }\n :host([checked]:not([checked='false'])[has-error]:not([has-error='false']):active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-active-stroke-width, unset);\n }\n\n label {\n line-height: var-list(--tct-checkbox-label-line-height, 24px);\n .label-content {\n display: inline;\n font-size: var(--tct-checkbox-label-font-size, inherit);\n }\n }\n}\n\n.description-text {\n grid-area: description;\n font-weight: var-list(var-prefixer(checkbox-description-font-weight), 400);\n\n :host(:hover) & {\n font-weight: var-list(\n --tct-checkbox-hover-description-font-weight,\n var-prefixer(checkbox-description-font-weight),\n 400\n );\n }\n}\n\nlabel {\n color: var-list(--tct-checkbox-label-color);\n cursor: pointer;\n hyphens: var-list(--tct-checkbox-label-hyphens, auto);\n word-break: var-list(--tct-checkbox-label-word-break, break-word);\n word-wrap: var-list(--tct-checkbox-label-word-wrap, break-word);\n}\n\n.checkbox-icon {\n width: var(--comp-checkbox-size);\n height: var(--comp-checkbox-size);\n border-radius: var-list(\n var-prefixer(checkbox-outer-border-radius),\n --tct-border-radius-1,\n --app-border-radius-1,\n 4px\n );\n stroke: var(--comp-checkbox-outer-stroke-color);\n fill: var(--comp-checkbox-outer-fill-color);\n stroke-width: var-list(var-prefixer(checkbox-outer-stroke-width), 2);\n flex-shrink: 0;\n box-shadow: var(--tct-checkbox-box-shadow);\n\n rect {\n transition: fill var-list(--tct-checkbox-tween, --app-tween-2, unquote('0.4s ease'));\n }\n\n :host([checked]:not([checked='false']):not([type='favorite'])) & {\n stroke: var-list(\n --comp-checkbox-checked-fill-color,\n var-prefixer(checkbox-checked-outer-stroke-color),\n --comp-checkbox-outer-stroke-color\n );\n\n rect {\n fill: var(--comp-checkbox-checked-fill-color);\n }\n }\n\n :host([has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var-list(--tct-checkbox-error-outer-stroke-color, --comp-checkbox-error-color);\n box-shadow: var-list(--tct-checkbox-error-box-shadow, --tct-checkbox-box-shadow);\n\n rect {\n fill: var-list(--tct-checkbox-error-outer-fill-color, --comp-checkbox-outer-fill-color);\n }\n }\n\n :host([has-error]:not([has-error='false']):not([type='favorite'])[checked]:not([checked='false'])) & {\n rect {\n fill: var-list(--tct-checkbox-error-checked-outer-fill-color);\n }\n }\n\n :host([indeterminate]:not([indeterminate='false']):not([type='favorite'])) & {\n stroke: var-list(\n --comp-checkbox-checked-fill-color,\n var-prefixer(checkbox-checked-outer-stroke-color),\n --comp-checkbox-outer-stroke-color\n );\n\n rect {\n fill: var(--comp-checkbox-checked-fill-color);\n }\n }\n\n :host(:hover:not([type='favorite'])) & {\n stroke: var-list(--tct-checkbox-hover-outer-stroke-color, --comp-checkbox-outer-stroke-color);\n box-shadow: var-list(--tct-checkbox-hover-box-shadow, --tct-checkbox-box-shadow);\n rect {\n fill: var-list(--tct-checkbox-hover-outer-fill-color, --comp-checkbox-outer-fill-color);\n }\n }\n :host(:hover[has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var-list(\n --tct-checkbox-error-hover-outer-stroke-color,\n --tct-checkbox-error-outer-stroke-color,\n --comp-checkbox-error-color\n );\n box-shadow: var-list(\n --tct-checkbox-error-hover-box-shadow,\n --tct-checkbox-error-box-shadow,\n --tct-checkbox-hover-box-shadow,\n --tct-checkbox-box-shadow\n );\n rect {\n fill: var-list(\n --tct-checkbox-error-hover-outer-fill-color,\n --tct-checkbox-error-outer-fill-color,\n --comp-checkbox-outer-fill-color\n );\n }\n }\n\n :host(:focus-within:not([type='favorite'])) & {\n --comp-checkbox-focused-box-shadow: #{var(--const-double-focus-ring),\n var-list(--tct-global-focus, unquote('0 0 0 2px #33b4ff'))};\n\n stroke: var-list(var-prefixer(checkbox-focused-outer-stroke-color), --comp-checkbox-outer-stroke-color);\n fill: var-list(--tct-checkbox-focused-outer-fill-color, --comp-checkbox-outer-fill-color);\n box-shadow: var-list(\n --tct-checkbox-focused-box-shadow,\n --tct-checkbox-box-shadow,\n --comp-checkbox-focused-box-shadow\n );\n }\n :host(:focus-within[has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var-list(\n --tct-checkbox-error-focused-outer-stroke-color,\n --tct-checkbox-error-outer-stroke-color,\n --comp-checkbox-error-color\n );\n fill: var-list(\n --tct-checkbox-error-focused-outer-fill-color,\n --tct-checkbox-error-outer-fill-color,\n --comp-checkbox-outer-fill-color\n );\n box-shadow: var-list(\n --tct-checkbox-error-focused-box-shadow,\n --tct-checkbox-error-box-shadow,\n --tct-checkbox-box-shadow,\n --comp-checkbox-focused-box-shadow\n );\n }\n\n // Favorite\n :host([type='favorite']) & {\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-stroke-width), 1)};\n --tct-icon-stroke-primary: var(--comp-checkbox-favorite-stroke-color);\n transition:\n fill var(--comp-checkbox-tween),\n color var(--comp-checkbox-tween),\n stroke var(--comp-checkbox-tween);\n }\n\n :host(:hover[type='favorite']) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-hover-stroke-color,\n --comp-checkbox-favorite-fill-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n :host([type='favorite']:focus-within) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-focused-stroke-color,\n --comp-checkbox-favorite-fill-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n // Checked favorite\n :host([checked]:not([checked='false'])[type='favorite']) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-checked-stroke-color,\n --tct-checkbox-favorite-stroke-color,\n --comp-checkbox-favorite-fill-color\n )};\n fill: var-list(--tct-checkbox-favorite-checked-fill-color, --comp-checkbox-favorite-fill-color);\n transition:\n fill var(--comp-checkbox-tween),\n color var(--comp-checkbox-tween),\n stroke var(--comp-checkbox-tween);\n }\n\n :host([checked]:not([checked='false'])[type='favorite']:hover) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-checked-hover-stroke-color,\n --tct-checkbox-favorite-hover-stroke-color,\n --comp-checkbox-favorite-stroke-color\n )};\n --tct-icon-fill-primary: #{var-list(\n --tct-checkbox-favorite-checked-fill-color,\n --comp-checkbox-favorite-fill-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n :host([checked]:not([checked='false'])[type='favorite']:focus-within) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-checked-focused-stroke-color,\n --tct-checkbox-favorite-focused-stroke-color,\n --comp-checkbox-favorite-stroke-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n :host([has-error]:not([has-error='false'])[type='favorite']) & {\n --tct-icon-stroke-primary: #{var-list(--tct-checkbox-favorite-error-stroke-color, --comp-checkbox-error-color)};\n }\n :host([has-error]:not([has-error='false'])[type='favorite'][checked]:not([checked='false'])) & {\n --tct-icon-stroke-primary: #{var-list(--tct-checkbox-favorite-error-stroke-color, --comp-checkbox-error-color)};\n }\n}\n\n.checkbox-fill {\n fill: none;\n stroke: var-list(--comp-checkbox-checked-color);\n stroke-width: var-list(var-prefixer(checkbox-check-stroke-width), 2.5);\n stroke-linecap: round;\n stroke-linejoin: round;\n\n :host([has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var(--tct-checkbox-error-checkmark-stroke-color, #d20a0a);\n stroke-width: var(--tct-checkbox-error-checkmark-stroke-width, 2.5);\n }\n}\n\n.checked-fill {\n stroke-dasharray: 16;\n stroke-dashoffset: 16;\n animation-name: draw-checkmark;\n animation-duration: var-list(--tct-checkbox-animation-duration, --t-tween-time-in-4, 300ms);\n animation-timing-function: var-list(--tct-checkbox-animation-timing-function, ease-out);\n animation-fill-mode: var-list(--tct-checkbox-animation-fill-mode, forwards);\n}\n\n@keyframes draw-checkmark {\n to {\n stroke-dashoffset: 0;\n }\n}\n\n.indeterminate-fill {\n stroke-width: var-list(var-prefixer(checkbox-indeterminate-stroke-width), 3.5);\n}\n\n.toggle-svg-container {\n height: 30px;\n width: var(--comp-checkbox-toggle-width);\n position: relative;\n text-align: initial;\n}\n\n.toggle-indicator,\n.toggle-track {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n.toggle-indicator {\n transition:\n left var(--comp-checkbox-tween),\n height var(--comp-checkbox-tween),\n width var(--comp-checkbox-tween);\n height: 16px;\n width: 16px;\n left: 4px;\n border-radius: 50%;\n}\n\n.toggle-track {\n --comp-default-track-box-shadow: inset 0 0 0 1px var(--comp-checkbox-toggle-color);\n height: 24px;\n width: 38px;\n fill: var(--comp-checkbox-toggle-track-fill);\n border-radius: var(--app-border-radius-3, 12px);\n box-shadow: var-list(--tct-checkbox-toggle-track-box-shadow, --comp-default-track-box-shadow);\n transition:\n fill var(--comp-checkbox-tween),\n box-shadow var(--comp-checkbox-tween);\n}\n\n.toggle-circle {\n mask: url(#xMask);\n fill: var(--comp-checkbox-toggle-color);\n transition: fill var(--comp-checkbox-tween);\n}\n\n.toggle-icon {\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-width: var(--tct-checkbox-toggle-icon-stroke-width, 2);\n stroke: black;\n}\n\n:host(:is(:not([checked]), [checked='false'])) {\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n --comp-default-hover-track-box-shadow: inset 0 0 0 2px var(--comp-checkbox-toggle-color);\n box-shadow: var-list(\n --tct-checkbox-toggle-hover-track-box-shadow,\n --comp-default-hover-track-box-shadow\n );\n fill: var(--comp-checkbox-toggle-track-fill-hover);\n }\n .toggle-indicator {\n height: 18px;\n width: 18px;\n }\n .toggle-circle {\n fill: var-list(--tct-checkbox-toggle-hover-circle-color, --t-primary-d1, --t-gray-6, #4d4d4d);\n }\n .label-text {\n color: var(--tct-checkbox-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n }\n }\n :active {\n .toggle-circle {\n fill: var(--comp-checkbox-toggle-track-fill-active);\n }\n .label-text {\n color: var(--tct-checkbox-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-description-active-stroke-width, unset);\n }\n }\n }\n\n &:host([has-error]:not([has-error='false'])) {\n .toggle-track {\n box-shadow: inset 0 0 0 1px var(--comp-checkbox-toggle-error-color);\n fill: var(--comp-checkbox-toggle-track-fill-error);\n }\n .toggle-circle {\n fill: var(--comp-checkbox-toggle-error-color);\n }\n\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n box-shadow: inset 0 0 0 2px var(--comp-checkbox-toggle-error-color);\n fill: var(--comp-checkbox-toggle-track-fill-error-hover);\n }\n .toggle-circle {\n fill: var-list(--tct-checkbox-toggle-error-hover-color, --comp-checkbox-toggle-error-color);\n }\n .label-text {\n color: var(--tct-checkbox-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n }\n }\n :active {\n .toggle-track {\n fill: var(--comp-checkbox-toggle-track-fill-error-active);\n }\n .toggle-circle {\n fill: var-list(--tct-checkbox-toggle-error-active-color, --comp-checkbox-toggle-error-color);\n }\n .label-text {\n color: var(--tct-checkbox-error-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-error-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-error-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-description-active-stroke-width, unset);\n }\n }\n }\n }\n}\n\n:host([checked]:not([checked='false'])) {\n .toggle-indicator {\n left: 18px;\n }\n\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-track-color, --t-primary, #6a4a9e);\n border: none;\n }\n .toggle-circle {\n mask: url(#checkMask);\n fill: var-list(--tct-checkbox-toggle-checked-circle-color, --t-base, #ffffff);\n }\n\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-hover-track-color, --t-primary-d1, #5f438e);\n }\n .toggle-indicator {\n height: 18px;\n width: 18px;\n }\n .label-text {\n color: var(--tct-checkbox-checked-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-description-hover-stroke-width, unset);\n }\n }\n\n :active {\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-active-track-color, --t-primary-l1, #7755af);\n }\n .toggle-indicator {\n height: 18px;\n width: 18px;\n }\n .label-text {\n color: var(--tct-checkbox-checked-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-description-active-stroke-width, unset);\n }\n }\n }\n\n &:host([has-error]:not([has-error='false'])) {\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-error-track-color, --comp-checkbox-toggle-error-color);\n }\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n fill: var-list(\n --tct-checkbox-toggle-checked-error-hover-track-color,\n --comp-checkbox-toggle-error-color\n );\n }\n .label-text {\n color: var(--tct-checkbox-checked-error-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-error-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-description-hover-stroke-width, unset);\n }\n }\n\n :active {\n .toggle-track {\n fill: var-list(\n --tct-checkbox-toggle-checked-error-active-track-color,\n --comp-checkbox-toggle-error-color\n );\n }\n .label-text {\n color: var(--tct-checkbox-checked-error-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-error-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-description-active-stroke-width, unset);\n }\n }\n }\n }\n}\n\n:host(:is([disabled]:not([disabled='false']), [group-disabled]:not([group-disabled='false']))) {\n cursor: not-allowed;\n opacity: var-list(var-prefixer(checkbox-disabled-opacity), --tct-disabled-opacity, --app-disabled-opacity, 0.4);\n label {\n cursor: not-allowed;\n }\n}\n","import { Component, ComponentInterface, Prop, Element, Listen, Watch, Event, EventEmitter, h } from '@stencil/core';\nimport { createGuid, handleAriaLabel, isEventFromElement, loc, overrideFocus } from 'src/utils';\nimport mirrorEmit from '@/utils/mirror-emit';\n\n/**\n * @name Checkbox\n * @category Forms\n * @summary Use as a single binary choice; nest within a Checkbox Group for grouped selection.\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 /**\n * @private\n * Tooltip text set by a parent q2-tooltip component for accessibility.\n */\n @Prop()\n _tooltip: string;\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 * @deprecated Use 'tctChange' instead\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{ value: string; checked: boolean }>;\n\n /**\n * Emitted when the checkbox is toggled.\n * @legacyEvent\n */\n @Event()\n tctChange: 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 get composedAriaLabel(): string | undefined {\n const baseText = loc(this.label) || undefined;\n if (!this._tooltip && !baseText) return undefined;\n if (!this._tooltip) return baseText;\n if (!baseText) return this._tooltip;\n return `${baseText} - ${this._tooltip}`;\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 mirrorEmit(this, ['change', 'tctChange'], {\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 key={`checkmark-${this.checked}`}\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 <rect\n width=\"38\"\n height=\"24\"\n rx=\"12\"\n ></rect>\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 <defs>\n {/* Mask for the X icon */}\n <mask\n id=\"xMask\"\n maskUnits=\"userSpaceOnUse\"\n >\n <rect\n width=\"18\"\n height=\"18\"\n fill=\"white\"\n ></rect>\n <line\n class=\"toggle-icon\"\n x1=\"6.5\"\n y1=\"6.5\"\n x2=\"11.5\"\n y2=\"11.5\"\n stroke=\"black\"\n stroke-width=\"2\"\n ></line>\n <line\n class=\"toggle-icon\"\n x1=\"6.5\"\n y1=\"11.5\"\n x2=\"11.5\"\n y2=\"6.5\"\n stroke=\"black\"\n stroke-width=\"2\"\n ></line>\n </mask>\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 <circle\n class=\"toggle-circle\"\n cx=\"9\"\n cy=\"9\"\n r=\"9\"\n mask=\"url(#xMask)\"\n ></circle>\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 aria-label={this.composedAriaLabel}\n >\n {this.renderCheckboxSVG()}\n </label>\n <div class={textLabelClasses.join(' ')}>\n <label\n test-id=\"checkboxLabel\"\n htmlFor={this._id}\n aria-hidden=\"true\"\n >\n <div class=\"label-content\">\n {loc(this.label)}\n <slot />\n </div>\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","@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-block;\n position: relative;\n line-height: 0;\n}\n\n:host(:not(:last-child)) {\n margin-inline-end: var-list(var-prefixer(tag-margin), --app-scale-2x, 10px);\n}\n\n.tag-wrapper {\n --comp-tag-btn-size: #{var-list(var-prefixer(tag-btn-size), --app-scale-6x, 30px)};\n --comp-tag-background: #{var-list(var-prefixer(tag-background), --t-gray-13, #e6e6e6)};\n --comp-tag-color: #{var-list(var-prefixer(tag-color), --t-gray-3, #262626)};\n --comp-tag-border-color: #{var-list(--tct-tag-border-color, transparent)};\n background: var(--comp-tag-background);\n color: var(--comp-tag-color);\n border-radius: var-list(var-prefixer(tag-border-radius), --app-border-radius-1, 4px);\n border-width: var-list(--tct-tag-border-width, 0);\n border-style: var-list(--tct-tag-border-style, 0);\n border-color: var(--comp-tag-border-color);\n font-size: var(--tct-tag-font-size, inherit);\n font-weight: var(--tct-tag-font-weight, inherit);\n position: relative;\n\n :host([theme='primary']) & {\n --comp-tag-background: #{var-list(--tct-tag-primary-background, --t-primary, #0079c1)};\n --comp-tag-color: #{var-list(--tct-tag-primary-font-color, --t-primary-text, #ffffff)};\n --comp-tag-border-color: #{var-list(--tct-tag-primary-border-color, --t-primary, #0079c1)};\n }\n\n :host([theme='secondary']) & {\n --comp-tag-background: #{var-list(--tct-tag-secondary-background, --t-secondary, #b3c2cc)};\n --comp-tag-color: #{var-list(--tct-tag-secondary-font-color, --t-secondary-text, #141414)};\n --comp-tag-border-color: #{var-list(--tct-tag-secondary-border-color, --t-secondary, #b3c2cc)};\n }\n\n :host([theme='tertiary']) & {\n --comp-tag-background: #{var-list(--tct-tag-tertiary-background, --t-tertiary, #e8f5fc)};\n --comp-tag-color: #{var-list(--tct-tag-tertiary-font-color, --t-tertiary-text, #141414)};\n --comp-tag-border-color: #{var-list(--tct-tag-tertiary-border-color, --t-tertiary, #e8f5fc)};\n }\n\n &:focus-visible {\n box-shadow: var-list(--tct-tag-focus-visible-box-shadow, --const-double-focus-ring);\n }\n}\n\n.tag {\n display: flex;\n align-items: center;\n width: max-content;\n gap: 6px;\n height: var-list(var-prefixer(tag-height), --app-scale-6x, 30px);\n line-height: var-list(var-prefixer(tag-height), --app-scale-6x, 30px);\n padding-inline: var-list(var-prefixer(tag-padding-inline), --app-scale-3x, 15px);\n\n ::slotted(q2-icon[slot='decorator']) {\n --tct-icon-size: 1em;\n --tct-icon-stroke-primary: var(--tct-tag-decorator-icon-primary-stroke);\n --tct-icon-stroke-secondary: var(--tct-tag-decorator-icon-secondary-stroke);\n }\n\n :host([theme=\"primary\"]) & ::slotted(q2-icon[slot='decorator']) {\n --tct-icon-stroke-primary: var(--tct-tag-primary-decorator-icon-primary-stroke);\n --tct-icon-stroke-secondary: var(--tct-tag-primary-decorator-icon-secondary-stroke);\n }\n\n ::slotted(q2-badge[slot='decorator']) {\n --tct-badge-height: 1em;\n --tct-badge-line-height: 30px;\n }\n}\n\n.tag.has-options {\n padding-right: 6px;\n}\n\n.btn-wrapper {\n --comp-tag-clickable-size: #{var-list(var-prefixer(tag-clickable-size), 44px)};\n --comp-tag-btn-offset: calc(calc(calc(var(--comp-tag-clickable-size) - var(--comp-tag-btn-size)) / 2) * -1);\n --comp-tag-background: #{var-list(var-prefixer(tag-background), --t-gray-13, #e6e6e6)};\n height: var(--comp-tag-clickable-size);\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n right: var(--comp-tag-btn-offset);\n top: var(--comp-tag-btn-offset);\n cursor: pointer;\n}\n\nbutton {\n height: var(--comp-tag-btn-size);\n stroke: var(--comp-tag-color);\n --tct-icon-stroke-primary: var(--comp-tag-color);\n cursor: pointer;\n border: 0;\n background: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n padding-right: 6px;\n --tct-icon-size: 18px;\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Host,\n Listen,\n Method,\n Element,\n EventEmitter,\n Event,\n Fragment,\n} from '@stencil/core';\nimport { isEventFromElement, loc, overrideFocus, waitForNextPaint } from 'src/utils';\nimport mirrorEmit from '@/utils/mirror-emit';\nimport { shouldShowActionSheet, showActionSheetList } from 'src/utils/action-sheet';\n\n/**\n * @name Tag\n * @category Display\n * @summary Use for displaying metadata labels or categories on content.\n * @slot decorator - An optional slot that supports either an [Icon](https://tecton.q2developer.com/design-system/q2-icon) or [Badge](https://tecton.q2developer.com/design-system/q2-badge) to be displayed with the tag content.\n * This is **not** available when using [Multiple Options](https://tecton.q2developer.com/design-system/q2-tag#multiple-options).\n */\n@Component({ tag: 'q2-tag', shadow: true, styleUrl: 'q2-tag.scss' })\nexport class Q2Tag implements ComponentInterface {\n // #region Own Properties\n\n dropdownBtn: HTMLButtonElement;\n mutationObserver: MutationObserver;\n optionList: HTMLQ2OptionListElement;\n popoverElement: HTMLQ2PopoverElement;\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 optionCount: number;\n\n // #endregion\n // #region Public Property API\n\n /**\n * Instructs the component to use the action sheet workflow for displaying its options.\n *\n * For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).\n */\n @Prop()\n hoist: boolean = !!window.Tecton?.useActionSheets;\n\n /**\n * The text that populates the label.\n * @localizable\n */\n @Prop({ reflect: true })\n label: string;\n\n /**\n * Determine whether the popover is open or closed.\n *\n * @readonly\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** Determines the label that is applied to the option list for accessibility purposes. */\n @Prop()\n optionListLabel: string = 'options';\n\n /** Aligns the popover dropdown to the left or right side of the input field. */\n @Prop({ mutable: true })\n popoverAlignment: 'left' | 'right' = 'right';\n\n /**\n * Force the direction of the popover dropdown when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop()\n popoverDirection: 'up' | 'down';\n\n /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n popoverMaxHeight: number;\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number;\n\n /** The color of the element. */\n @Prop({ reflect: true })\n theme: 'primary' | 'secondary' | 'tertiary';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when a provided option is clicked.\n *\n * Requires at least one option to be provided.\n * @deprecated Use 'tctClick' instead\n */\n @Event()\n click: EventEmitter<{ value: string }>;\n\n /**\n * Emitted when a provided option is clicked.\n *\n * Requires at least one option to be provided.\n */\n @Event()\n tctClick: EventEmitter<{ value: string }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n componentWillLoad() {\n this.initMutationObserver();\n this.determineOptionCount();\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.filterSlottedElements();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n if (!this.optionCount) return;\n this.dropdownBtn.focus();\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n if (open) return;\n this.optionList.setActiveElement(null);\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the tag to close the popover when options are provided and the popover is open.\n * @testonly\n */\n @Method()\n async closePopover() {\n if (!this.optionCount || !this.open) return;\n this._togglePopover();\n }\n\n /**\n * Emulates clicking the tag to open the popover when options are provided and the popover is closed.\n * @testonly\n */\n @Method()\n async openPopover() {\n if (!this.optionCount || this.open) return;\n this._togglePopover();\n }\n\n /**\n * Emulates selecting an option matching the passed value.\n *\n * If the popover is closed, this will open it before selecting the option.\n *\n * If there are not options, or the passed value does not match any option's value, this method does nothing.\n * @testonly\n */\n @Method()\n async selectOption(value) {\n if (!this.optionCount) return;\n await this.openPopover();\n await waitForNextPaint();\n const allOptions = await this.optionList.getOptions();\n const desiredOption = allOptions.find(option => option.value === value);\n desiredOption?.click();\n }\n\n // #endregion\n // #region Local Methods\n\n _togglePopover() {\n const { dropdownBtn } = this;\n dropdownBtn?.click();\n dropdownBtn?.focus();\n dropdownBtn.dispatchEvent(new FocusEvent('focus'));\n }\n\n determineOptionCount = () => {\n const numberOfOptions = this.hostElement.querySelectorAll('q2-option').length;\n this.optionCount = numberOfOptions;\n };\n\n filterSlottedElements = () => {\n if (!('HTMLSlotElement' in window)) return;\n const slot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"decorator\"]');\n const assignedElements = Array.from(slot?.assignedElements() || []);\n if (!assignedElements.length) return;\n\n const approvedElements = ['Q2-ICON', 'Q2-BADGE'];\n assignedElements.forEach((element, index) => {\n if (!approvedElements.includes(element.tagName) || index > 0) {\n element.remove();\n }\n });\n };\n\n handleButtonFocusout = async (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as HTMLElement;\n if (this.popoverElement?.contains(relatedTarget)) return;\n if (this.hostElement.contains(relatedTarget)) return;\n this.open = false;\n };\n\n handleChange = event => {\n event.stopPropagation();\n if (!this.optionCount) return;\n const { value } = event.detail;\n\n mirrorEmit(this, ['click', 'tctClick'], { value });\n };\n\n handleClick = async (event: MouseEvent) => {\n event.stopPropagation();\n this.popoverElement.controlElement = this.dropdownBtn;\n if (shouldShowActionSheet(this)) {\n const { value } = await showActionSheetList(this, event);\n this.dropdownBtn.focus();\n mirrorEmit(this, ['click', 'tctClick'], { value });\n } else {\n await this.popoverElement.toggle();\n }\n };\n\n handleKeydown = async (event: KeyboardEvent) => {\n const isTabMetaOrCtrl = event.metaKey || event.ctrlKey || event.key === 'Tab';\n if (isTabMetaOrCtrl) return;\n\n event.preventDefault();\n this.popoverElement.controlElement = this.dropdownBtn;\n if (shouldShowActionSheet(this, event)) {\n const { value } = await showActionSheetList(this, event);\n this.dropdownBtn.focus();\n mirrorEmit(this, ['click', 'tctClick'], { value });\n } else {\n this.optionList.handleExternalKeydown(event);\n }\n };\n\n handleWrapperClick = () => {\n this.dropdownBtn.focus();\n this.dropdownBtn.click();\n };\n\n initMutationObserver = () => {\n if (!('MutationObserver' in window)) return;\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, attributes: true });\n this.mutationObserver = observer;\n };\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n const { popoverElement } = this;\n if (!popoverElement) return;\n popoverElement.open = false;\n }\n };\n\n onMutationObserved = () => {\n this.determineOptionCount();\n this.filterSlottedElements();\n };\n\n // #endregion\n // #region Render Methods\n\n renderHiddenElement() {\n return (\n <div\n id=\"option-description\"\n class=\"sr\"\n aria-hidden=\"true\"\n >\n {loc('tecton.element.optionList.optionCount', [this.optionCount])}\n </div>\n );\n }\n\n render() {\n const { open } = this;\n const wrapperClassNames = ['tag'];\n if (this.optionCount) wrapperClassNames.push('has-options');\n const shouldShowOptions = this.optionCount > 0;\n\n return (\n <Host>\n <click-elsewhere onChange={this.onClickElsewhere}>\n {shouldShowOptions ? (\n <Fragment>\n <div\n class=\"btn-wrapper\"\n onClick={this.handleWrapperClick}\n >\n <button\n class=\"tag-wrapper\"\n ref={el => (this.dropdownBtn = el)}\n test-id=\"btn-control\"\n type=\"button\"\n role=\"combobox\"\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n onFocusout={this.handleButtonFocusout}\n aria-controls=\"option-list\"\n aria-expanded={open ? 'true' : 'false'}\n aria-describedby=\"option-description\"\n aria-label={loc(this.label)}\n >\n <div class={wrapperClassNames.join(' ')}>{loc(this.label)}</div>\n <q2-icon type=\"options\"></q2-icon>\n </button>\n </div>\n {this.renderHiddenElement()}\n </Fragment>\n ) : (\n <div\n class=\"tag-wrapper\"\n onClick={e => e.stopPropagation()}\n >\n <div class={wrapperClassNames.join(' ')}>\n <slot name=\"decorator\" />\n {loc(this.label)}\n </div>\n </div>\n )}\n\n {shouldShowOptions && (\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.dropdownBtn}\n open={this.open}\n maxHeight={this.popoverMaxHeight}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n >\n <q2-option-list\n id=\"option-list\"\n ref={el => (this.optionList = el)}\n onChange={this.handleChange}\n type=\"menu\"\n align=\"right\"\n label={loc('tecton.element.optionList.label', [this.optionListLabel])}\n no-select\n >\n <slot />\n </q2-option-list>\n </q2-popover>\n )}\n </click-elsewhere>\n </Host>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["q2CheckboxCss","Q2Checkbox","constructor","hostRef","this","_id","createGuid","hasDescription","checked","hasError","onInputClick","event","stopPropagation","preventDefault","isNotInteractive","disabled","readonly","slotReadonly","target","HTMLInputElement","value","mirrorEmit","inputElement","focus","disconnectedCallback","_a","descriptionObserver","disconnect","componentWillLoad","handleAriaLabel","checkForDescription","componentDidLoad","overrideFocus","hostElement","click","setupDescriptionObserver","defaultChangeHandler","setTimeout","handleChangeEvent","delegateFocus","isEventFromElement","shadowRoot","querySelector","ariaLabelObserver","ariaLabelledBy","hasLabel","loc","label","Array","from","childNodes","some","node","HTMLElement","getAttribute","textContent","trim","_tooltip","undefined","ids","push","labelId","tooltipId","join","description","onchange","defaultPrevented","detail","MutationObserver","observe","childList","subtree","renderCheckboxSVG","type","h","class","renderToggleSVG","width","height","viewBox","focusable","x","y","rx","indeterminate","renderCheckBoxSVGFill","x1","y1","x2","y2","points","key","id","maskUnits","fill","stroke","cx","cy","r","mask","render","textLabelClasses","hideLabel","ref","el","groupDisabled","name","onClick","htmlFor","q2TagCss","Q2Tag","hoist","window","Tecton","useActionSheets","optionListLabel","popoverAlignment","determineOptionCount","numberOfOptions","querySelectorAll","length","optionCount","filterSlottedElements","slot","assignedElements","approvedElements","forEach","element","index","includes","tagName","remove","handleButtonFocusout","async","relatedTarget","popoverElement","contains","open","handleChange","handleClick","controlElement","dropdownBtn","shouldShowActionSheet","showActionSheetList","toggle","handleKeydown","isTabMetaOrCtrl","metaKey","ctrlKey","optionList","handleExternalKeydown","handleWrapperClick","initMutationObserver","observer","onMutationObserved","attributes","mutationObserver","onClickElsewhere","localName","popoverStateHandler","setActiveElement","closePopover","_togglePopover","openPopover","selectOption","waitForNextPaint","allOptions","getOptions","desiredOption","find","option","dispatchEvent","FocusEvent","renderHiddenElement","wrapperClassNames","shouldShowOptions","Host","onChange","Fragment","role","onKeyDown","onFocusout","e","maxHeight","popoverMaxHeight","minHeight","popoverMinHeight","direction","popoverDirection","align"],"sources":["src/components/q2-checkbox/q2-checkbox.scss?tag=q2-checkbox&encapsulation=shadow","src/components/q2-checkbox/q2-checkbox.tsx","src/components/q2-tag/q2-tag.scss?tag=q2-tag&encapsulation=shadow","src/components/q2-tag/q2-tag.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n --comp-checkbox-padding: #{var-list(\n --tct-checkbox-padding,\n unquote('#{var-list(var-prefixer(checkbox-vertical-padding), 8px)} 0')\n )};\n\n display: block;\n position: relative;\n padding: var(--comp-checkbox-padding);\n --comp-default-checkbox-margin: #{var-list(var-prefixer(checkbox-margin-top), 0px) 0\n var-list(var-prefixer(checkbox-margin-bottom), 0px)};\n margin: var-list(--tct-checkbox-margin, --comp-default-checkbox-margin);\n}\n\n.container {\n --comp-checkbox-size: #{var-list(var-prefixer(checkbox-size), 24px)};\n --comp-checkbox-default-column-gap: var(--app-scale-2x, 10px);\n --comp-checkbox-default-row-gap: 0;\n --comp-checkbox-default-gap: #{var(--comp-checkbox-default-row-gap) var(--comp-checkbox-default-column-gap)};\n --comp-checkbox-tween: #{var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'))};\n --comp-checkbox-toggle-width: #{var-list(var-prefixer(checkbox-toggle-width), 38px)};\n\n --comp-checkbox-toggle-track-fill: #{var-list(\n --tct-checkbox-toggle-track-fill,\n --tct-checkbox-toggle-track-color,\n transparent\n )};\n --comp-checkbox-toggle-track-fill-active: #{var-list(\n --tct-checkbox-toggle-active-track-fill,\n --tct-checkbox-toggle-active-track-color,\n --tct-checkbox-toggle-active-color,\n --t-primary-l1,\n #7755af\n )};\n --comp-checkbox-toggle-track-fill-hover: #{var-list(\n --tct-checkbox-toggle-hover-track-fill,\n --tct-checkbox-toggle-hover-track-color,\n --comp-checkbox-toggle-track-fill\n )};\n --comp-checkbox-toggle-track-fill-error: #{var-list(\n --tct-checkbox-toggle-error-track-fill,\n --tct-checkbox-toggle-error-track-color,\n --comp-checkbox-toggle-track-fill\n )};\n --comp-checkbox-toggle-track-fill-error-hover: #{var-list(\n --tct-checkbox-toggle-error-hover-track-fill,\n --tct-checkbox-toggle-error-hover-track-color,\n --comp-checkbox-toggle-track-fill-error\n )};\n --comp-checkbox-toggle-track-fill-error-active: #{var-list(\n --tct-checkbox-toggle-error-active-track-fill,\n --tct-checkbox-toggle-error-active-track-color,\n --comp-checkbox-toggle-track-fill-error\n )};\n\n --comp-checkbox-toggle-error-color: #{var-list(--tct-checkbox-toggle-error-color, --comp-checkbox-error-color)};\n --comp-checkbox-toggle-color: #{var-list(--tct-checkbox-toggle-color, --t-gray-8, #808080)};\n --comp-checkbox-gap: #{var-list(var-prefixer(checkbox-gap), --comp-checkbox-default-gap)};\n --comp-checkbox-outer-stroke-color: #{var-list(\n var-prefixer(checkbox-outer-stroke-color),\n --t-a11y-gray-color-AA,\n #949494\n )};\n --comp-checkbox-outer-fill-color: #{var-list(\n var-prefixer(checkbox-outer-fill-color),\n --tct-white,\n --app-white,\n #ffffff\n )};\n --comp-checkbox-checked-fill-color: #{var-list(\n --tct-checkbox-checked-fill-color,\n --t-primary,\n #040404\n )};\n --comp-checkbox-checked-color: #{var-list(\n --tct-checkbox-checked-stroke-color,\n --tct-white,\n --app-white,\n #FFFFFF\n )};\n --comp-control-width: var(--comp-checkbox-size);\n --comp-checkbox-error-color: #{var-list(--tct-stoplight-error, --const-stoplight-alert, #d20a0a)};\n\n --comp-checkbox-bold-fallback-stroke-width: #{var-list(--tct-checkbox-bold-fallback-stroke-width, 0.7px)};\n --comp-checkbox-stroke-width: #{var-list(--tct-checkbox-stroke-width, unset)};\n --comp-checkbox-checked-stroke-width: #{var-list(\n --tct-checkbox-checked-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-hover-stroke-width: #{var-list(--tct-checkbox-hover-stroke-width, unset)};\n --comp-checkbox-focused-stroke-width: #{var-list(--tct-checkbox-focused-stroke-width, unset)};\n --comp-checkbox-checked-hover-stroke-width: #{var-list(\n --tct-checkbox-checked-hover-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-checked-focused-stroke-width: #{var-list(\n --tct-checkbox-checked-focused-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-description-stroke-width: #{var-list(\n --tct-checkbox-description-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-description-focused-stroke-width: #{var-list(\n --tct-checkbox-description-focused-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-description-hover-stroke-width: #{var-list(\n --tct-checkbox-description-hover-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n\n --comp-checkbox-toggle-circle-fill-active: #{var-list(\n --tct-checkbox-toggle-active-fill,\n --tct-checkbox-toggle-active-color,\n --comp-checkbox-toggle-color\n )};\n\n :host([type='favorite']) & {\n --comp-checkbox-favorite-stroke-color: #{var-list(\n var-prefixer(checkbox-favorite-stroke-color),\n --t-a11y-gray-color-AA,\n #949494\n )};\n --comp-checkbox-favorite-fill-color: #{var-list(var-prefixer(checkbox-favorite-fill-color), #db7d24)};\n }\n\n display: grid;\n grid-template-areas:\n 'svg label'\n 'svg description';\n align-items: start;\n gap: var(--comp-checkbox-gap);\n grid-template-columns: var(--comp-control-width) calc(\n 100% - var(--comp-control-width) - var(--comp-checkbox-default-column-gap)\n );\n\n :host([hide-label]:not([hide-label='false'])) & {\n grid-template-areas: 'svg';\n grid-template-columns: var(--comp-control-width);\n }\n\n :host([type='toggle']) & {\n --comp-control-width: var(--comp-checkbox-toggle-width);\n }\n\n :host([alignment='right']) &,\n :host([type='toggle']:not([alignment])) & {\n grid-template-areas:\n 'label svg'\n 'description svg';\n grid-template-columns: calc(100% - var(--comp-control-width) - var(--comp-checkbox-default-column-gap)) var(\n --comp-control-width\n );\n }\n}\n\n.label-control {\n align-items: center;\n display: flex;\n}\n\n.label-text {\n grid-area: label;\n\n :host([description]) & {\n -webkit-text-stroke-width: var(--comp-checkbox-description-stroke-width);\n text-stroke-width: var(--comp-checkbox-description-stroke-width);\n }\n :host([checked]:not([checked='false'])) & {\n -webkit-text-stroke-width: var(--comp-checkbox-checked-stroke-width);\n text-stroke-width: var(--comp-checkbox-checked-stroke-width);\n }\n :host(:hover) & {\n -webkit-text-stroke-width: var(--comp-checkbox-hover-stroke-width);\n text-stroke-width: var(--comp-checkbox-hover-stroke-width);\n }\n :host(:focus-within) & {\n -webkit-text-stroke-width: var(--comp-checkbox-focused-stroke-width);\n text-stroke-width: var(--comp-checkbox-focused-stroke-width);\n }\n :host([description]:hover) & {\n -webkit-text-stroke-width: var(--comp-checkbox-description-hover-stroke-width);\n text-stroke-width: var(--comp-checkbox-description-hover-stroke-width);\n }\n :host([checked]:not([checked='false']):hover) & {\n -webkit-text-stroke-width: var(--comp-checkbox-checked-hover-stroke-width);\n text-stroke-width: var(--comp-checkbox-checked-hover-stroke-width);\n }\n :host([description]:focus-within) & {\n -webkit-text-stroke-width: var(--comp-checkbox-description-focused-stroke-width);\n text-stroke-width: var(--comp-checkbox-description-focused-stroke-width);\n }\n :host([checked]:not([checked='false']):focus-within) & {\n -webkit-text-stroke-width: var(--comp-checkbox-checked-focused-stroke-width);\n text-stroke-width: var(--comp-checkbox-checked-focused-stroke-width);\n }\n :host(:active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-active-stroke-width, unset);\n }\n :host([checked]:not([checked='false']):active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-active-stroke-width, unset);\n }\n :host([has-error]:not([has-error='false']):hover) & {\n -webkit-text-stroke-width: var(--tct-checkbox-error-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-hover-stroke-width, unset);\n }\n :host([has-error]:not([has-error='false']):focus-within) & {\n -webkit-text-stroke-width: var(--tct-checkbox-error-focused-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-focused-stroke-width, unset);\n }\n :host([has-error]:not([has-error='false']):active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-error-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-active-stroke-width, unset);\n }\n :host([checked]:not([checked='false'])[has-error]:not([has-error='false']):hover) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-hover-stroke-width, unset);\n }\n :host([checked]:not([checked='false'])[has-error]:not([has-error='false']):focus-within) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-focused-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-focused-stroke-width, unset);\n }\n :host([checked]:not([checked='false'])[has-error]:not([has-error='false']):active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-active-stroke-width, unset);\n }\n\n label {\n line-height: var-list(--tct-checkbox-label-line-height, 24px);\n .label-content {\n display: inline;\n font-size: var(--tct-checkbox-label-font-size, inherit);\n }\n }\n}\n\n.description-text {\n grid-area: description;\n font-weight: var-list(var-prefixer(checkbox-description-font-weight), 400);\n\n :host(:hover) & {\n font-weight: var-list(\n --tct-checkbox-hover-description-font-weight,\n var-prefixer(checkbox-description-font-weight),\n 400\n );\n }\n}\n\nlabel {\n color: var-list(--tct-checkbox-label-color);\n cursor: pointer;\n hyphens: var-list(--tct-checkbox-label-hyphens, auto);\n word-break: var-list(--tct-checkbox-label-word-break, break-word);\n word-wrap: var-list(--tct-checkbox-label-word-wrap, break-word);\n}\n\n.checkbox-icon {\n width: var(--comp-checkbox-size);\n height: var(--comp-checkbox-size);\n border-radius: var-list(\n var-prefixer(checkbox-outer-border-radius),\n --tct-border-radius-1,\n --app-border-radius-1,\n 4px\n );\n stroke: var(--comp-checkbox-outer-stroke-color);\n fill: var(--comp-checkbox-outer-fill-color);\n stroke-width: var-list(var-prefixer(checkbox-outer-stroke-width), 2);\n flex-shrink: 0;\n box-shadow: var(--tct-checkbox-box-shadow);\n\n rect {\n transition: fill var-list(--tct-checkbox-tween, --app-tween-2, unquote('0.4s ease'));\n }\n\n :host([checked]:not([checked='false']):not([type='favorite'])) & {\n stroke: var-list(\n --comp-checkbox-checked-fill-color,\n var-prefixer(checkbox-checked-outer-stroke-color),\n --comp-checkbox-outer-stroke-color\n );\n\n rect {\n fill: var(--comp-checkbox-checked-fill-color);\n }\n }\n\n :host([has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var-list(--tct-checkbox-error-outer-stroke-color, --comp-checkbox-error-color);\n box-shadow: var-list(--tct-checkbox-error-box-shadow, --tct-checkbox-box-shadow);\n\n rect {\n fill: var-list(--tct-checkbox-error-outer-fill-color, --comp-checkbox-outer-fill-color);\n }\n }\n\n :host([has-error]:not([has-error='false']):not([type='favorite'])[checked]:not([checked='false'])) & {\n rect {\n fill: var-list(--tct-checkbox-error-checked-outer-fill-color);\n }\n }\n\n :host([indeterminate]:not([indeterminate='false']):not([type='favorite'])) & {\n stroke: var-list(\n --comp-checkbox-checked-fill-color,\n var-prefixer(checkbox-checked-outer-stroke-color),\n --comp-checkbox-outer-stroke-color\n );\n\n rect {\n fill: var(--comp-checkbox-checked-fill-color);\n }\n }\n\n :host(:hover:not([type='favorite'])) & {\n stroke: var-list(--tct-checkbox-hover-outer-stroke-color, --comp-checkbox-outer-stroke-color);\n box-shadow: var-list(--tct-checkbox-hover-box-shadow, --tct-checkbox-box-shadow);\n rect {\n fill: var-list(--tct-checkbox-hover-outer-fill-color, --comp-checkbox-outer-fill-color);\n }\n }\n :host(:hover[has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var-list(\n --tct-checkbox-error-hover-outer-stroke-color,\n --tct-checkbox-error-outer-stroke-color,\n --comp-checkbox-error-color\n );\n box-shadow: var-list(\n --tct-checkbox-error-hover-box-shadow,\n --tct-checkbox-error-box-shadow,\n --tct-checkbox-hover-box-shadow,\n --tct-checkbox-box-shadow\n );\n rect {\n fill: var-list(\n --tct-checkbox-error-hover-outer-fill-color,\n --tct-checkbox-error-outer-fill-color,\n --comp-checkbox-outer-fill-color\n );\n }\n }\n\n :host(:focus-within:not([type='favorite'])) & {\n --comp-checkbox-focused-box-shadow: #{var(--const-double-focus-ring),\n var-list(--tct-global-focus, unquote('0 0 0 2px #33b4ff'))};\n\n stroke: var-list(var-prefixer(checkbox-focused-outer-stroke-color), --comp-checkbox-outer-stroke-color);\n fill: var-list(--tct-checkbox-focused-outer-fill-color, --comp-checkbox-outer-fill-color);\n box-shadow: var-list(\n --tct-checkbox-focused-box-shadow,\n --tct-checkbox-box-shadow,\n --comp-checkbox-focused-box-shadow\n );\n }\n :host(:focus-within[has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var-list(\n --tct-checkbox-error-focused-outer-stroke-color,\n --tct-checkbox-error-outer-stroke-color,\n --comp-checkbox-error-color\n );\n fill: var-list(\n --tct-checkbox-error-focused-outer-fill-color,\n --tct-checkbox-error-outer-fill-color,\n --comp-checkbox-outer-fill-color\n );\n box-shadow: var-list(\n --tct-checkbox-error-focused-box-shadow,\n --tct-checkbox-error-box-shadow,\n --tct-checkbox-box-shadow,\n --comp-checkbox-focused-box-shadow\n );\n }\n\n // Favorite\n :host([type='favorite']) & {\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-stroke-width), 1)};\n --tct-icon-stroke-primary: var(--comp-checkbox-favorite-stroke-color);\n transition:\n fill var(--comp-checkbox-tween),\n color var(--comp-checkbox-tween),\n stroke var(--comp-checkbox-tween);\n }\n\n :host(:hover[type='favorite']) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-hover-stroke-color,\n --comp-checkbox-favorite-fill-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n :host([type='favorite']:focus-within) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-focused-stroke-color,\n --comp-checkbox-favorite-fill-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n // Checked favorite\n :host([checked]:not([checked='false'])[type='favorite']) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-checked-stroke-color,\n --tct-checkbox-favorite-stroke-color,\n --comp-checkbox-favorite-fill-color\n )};\n fill: var-list(--tct-checkbox-favorite-checked-fill-color, --comp-checkbox-favorite-fill-color);\n transition:\n fill var(--comp-checkbox-tween),\n color var(--comp-checkbox-tween),\n stroke var(--comp-checkbox-tween);\n }\n\n :host([checked]:not([checked='false'])[type='favorite']:hover) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-checked-hover-stroke-color,\n --tct-checkbox-favorite-hover-stroke-color,\n --comp-checkbox-favorite-stroke-color\n )};\n --tct-icon-fill-primary: #{var-list(\n --tct-checkbox-favorite-checked-fill-color,\n --comp-checkbox-favorite-fill-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n :host([checked]:not([checked='false'])[type='favorite']:focus-within) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-checked-focused-stroke-color,\n --tct-checkbox-favorite-focused-stroke-color,\n --comp-checkbox-favorite-stroke-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n :host([has-error]:not([has-error='false'])[type='favorite']) & {\n --tct-icon-stroke-primary: #{var-list(--tct-checkbox-favorite-error-stroke-color, --comp-checkbox-error-color)};\n }\n :host([has-error]:not([has-error='false'])[type='favorite'][checked]:not([checked='false'])) & {\n --tct-icon-stroke-primary: #{var-list(--tct-checkbox-favorite-error-stroke-color, --comp-checkbox-error-color)};\n }\n}\n\n.checkbox-fill {\n fill: none;\n stroke: var-list(--comp-checkbox-checked-color);\n stroke-width: var-list(var-prefixer(checkbox-check-stroke-width), 2.5);\n stroke-linecap: round;\n stroke-linejoin: round;\n\n :host([has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var(--tct-checkbox-error-checkmark-stroke-color, #d20a0a);\n stroke-width: var(--tct-checkbox-error-checkmark-stroke-width, 2.5);\n }\n}\n\n.checked-fill {\n stroke-dasharray: 16;\n stroke-dashoffset: 16;\n animation-name: draw-checkmark;\n animation-duration: var-list(--tct-checkbox-animation-duration, --t-tween-time-in-4, 300ms);\n animation-timing-function: var-list(--tct-checkbox-animation-timing-function, ease-out);\n animation-fill-mode: var-list(--tct-checkbox-animation-fill-mode, forwards);\n}\n\n@keyframes draw-checkmark {\n to {\n stroke-dashoffset: 0;\n }\n}\n\n.indeterminate-fill {\n stroke-width: var-list(var-prefixer(checkbox-indeterminate-stroke-width), 3.5);\n}\n\n.toggle-svg-container {\n height: 30px;\n width: var(--comp-checkbox-toggle-width);\n position: relative;\n text-align: initial;\n}\n\n.toggle-indicator,\n.toggle-track {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n.toggle-indicator {\n transition:\n left var(--comp-checkbox-tween),\n height var(--comp-checkbox-tween),\n width var(--comp-checkbox-tween);\n height: 16px;\n width: 16px;\n left: 4px;\n border-radius: 50%;\n}\n\n.toggle-track {\n --comp-default-track-box-shadow: inset 0 0 0 1px var(--comp-checkbox-toggle-color);\n height: 24px;\n width: 38px;\n fill: var(--comp-checkbox-toggle-track-fill);\n border-radius: var(--app-border-radius-3, 12px);\n box-shadow: var-list(--tct-checkbox-toggle-track-box-shadow, --comp-default-track-box-shadow);\n transition:\n fill var(--comp-checkbox-tween),\n box-shadow var(--comp-checkbox-tween);\n}\n\n.toggle-circle {\n mask: url(#xMask);\n fill: var(--comp-checkbox-toggle-color);\n transition: fill var(--comp-checkbox-tween);\n}\n\n.toggle-icon {\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-width: var(--tct-checkbox-toggle-icon-stroke-width, 2);\n stroke: black;\n}\n\n:host(:is(:not([checked]), [checked='false'])) {\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n --comp-default-hover-track-box-shadow: inset 0 0 0 2px var(--comp-checkbox-toggle-color);\n box-shadow: var-list(\n --tct-checkbox-toggle-hover-track-box-shadow,\n --comp-default-hover-track-box-shadow\n );\n fill: var(--comp-checkbox-toggle-track-fill-hover);\n }\n .toggle-indicator {\n height: 18px;\n width: 18px;\n }\n .toggle-circle {\n fill: var-list(--tct-checkbox-toggle-hover-circle-color, --t-primary-d1, --t-gray-6, #4d4d4d);\n }\n .label-text {\n color: var(--tct-checkbox-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n }\n }\n :active {\n .toggle-circle {\n fill: var(--comp-checkbox-toggle-track-fill-active);\n }\n .label-text {\n color: var(--tct-checkbox-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-description-active-stroke-width, unset);\n }\n .toggle-circle {\n fill: var(--comp-checkbox-toggle-circle-fill-active);\n }\n }\n }\n\n &:host([has-error]:not([has-error='false'])) {\n .toggle-track {\n box-shadow: inset 0 0 0 1px var(--comp-checkbox-toggle-error-color);\n fill: var(--comp-checkbox-toggle-track-fill-error);\n }\n .toggle-circle {\n fill: var(--comp-checkbox-toggle-error-color);\n }\n\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n box-shadow: inset 0 0 0 2px var(--comp-checkbox-toggle-error-color);\n fill: var(--comp-checkbox-toggle-track-fill-error-hover);\n }\n .toggle-circle {\n fill: var-list(--tct-checkbox-toggle-error-hover-color, --comp-checkbox-toggle-error-color);\n }\n .label-text {\n color: var(--tct-checkbox-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n }\n }\n :active {\n .toggle-track {\n fill: var(--comp-checkbox-toggle-track-fill-error-active);\n }\n .toggle-circle {\n fill: var-list(--tct-checkbox-toggle-error-active-color, --comp-checkbox-toggle-error-color);\n }\n .label-text {\n color: var(--tct-checkbox-error-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-error-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-error-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-description-active-stroke-width, unset);\n }\n }\n }\n }\n}\n\n:host([checked]:not([checked='false'])) {\n .toggle-indicator {\n left: 18px;\n }\n\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-track-color, --t-primary, #6a4a9e);\n border: none;\n }\n .toggle-circle {\n mask: url(#checkMask);\n fill: var-list(--tct-checkbox-toggle-checked-circle-color, --t-base, #ffffff);\n }\n\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-hover-track-color, --t-primary-d1, #5f438e);\n }\n .toggle-indicator {\n height: 18px;\n width: 18px;\n }\n .label-text {\n color: var(--tct-checkbox-checked-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-description-hover-stroke-width, unset);\n }\n }\n\n :active {\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-active-track-color, --t-primary-l1, #7755af);\n }\n .toggle-indicator {\n height: 18px;\n width: 18px;\n }\n .label-text {\n color: var(--tct-checkbox-checked-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-description-active-stroke-width, unset);\n }\n }\n }\n\n &:host([has-error]:not([has-error='false'])) {\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-error-track-color, --comp-checkbox-toggle-error-color);\n }\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n fill: var-list(\n --tct-checkbox-toggle-checked-error-hover-track-color,\n --comp-checkbox-toggle-error-color\n );\n }\n .label-text {\n color: var(--tct-checkbox-checked-error-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-error-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-description-hover-stroke-width, unset);\n }\n }\n\n :active {\n .toggle-track {\n fill: var-list(\n --tct-checkbox-toggle-checked-error-active-track-color,\n --comp-checkbox-toggle-error-color\n );\n }\n .label-text {\n color: var(--tct-checkbox-checked-error-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-error-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-description-active-stroke-width, unset);\n }\n }\n }\n }\n}\n\n:host(:is([disabled]:not([disabled='false']), [group-disabled]:not([group-disabled='false']))) {\n cursor: not-allowed;\n opacity: var-list(var-prefixer(checkbox-disabled-opacity), --tct-disabled-opacity, --app-disabled-opacity, 0.4);\n label {\n cursor: not-allowed;\n }\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { createGuid, handleAriaLabel, isEventFromElement, loc, overrideFocus } from 'src/utils';\nimport mirrorEmit from '@/utils/mirror-emit';\n\n/**\n * @name Checkbox\n * @category Forms\n * @summary Use as a single binary choice; nest within a Checkbox Group for grouped selection.\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 descriptionObserver: MutationObserver;\n inputElement: HTMLInputElement;\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 hasDescription: boolean = false;\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 /** 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 * @deprecated Use 'tctChange' instead\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{ value: string; checked: boolean }>;\n\n /**\n * Emitted when the checkbox is toggled.\n * @legacyEvent\n */\n @Event()\n tctChange: EventEmitter<{ value: string; checked: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback(): void {\n this.descriptionObserver?.disconnect();\n }\n\n componentWillLoad() {\n handleAriaLabel(this);\n this.checkForDescription();\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.hostElement.click = () => this.inputElement.click();\n this.setupDescriptionObserver();\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 get ariaLabelledBy(): string | undefined {\n const hasLabel =\n !!loc(this.label) ||\n !!this.hostElement.querySelector('[slot=\"label\"]') ||\n Array.from(this.hostElement.childNodes).some(\n node => !(node instanceof HTMLElement && node.getAttribute('slot')) && !!node.textContent?.trim()\n );\n if (!hasLabel && !this._tooltip) return undefined;\n const ids = [];\n if (hasLabel) ids.push(this.labelId);\n if (this._tooltip) ids.push(this.tooltipId);\n return ids.join(' ');\n }\n\n get labelId(): string {\n return `label-${this._id}`;\n }\n\n get tooltipId(): string {\n return `tooltip-${this._id}`;\n }\n\n checkForDescription() {\n this.hasDescription = !!this.description || !!this.hostElement.querySelector('[slot=\"description\"]');\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 mirrorEmit(this, ['change', 'tctChange'], {\n value,\n checked,\n });\n this.inputElement.focus();\n };\n\n setupDescriptionObserver() {\n this.descriptionObserver = new MutationObserver(() => {\n this.checkForDescription();\n });\n\n this.descriptionObserver.observe(this.hostElement, {\n childList: true,\n subtree: true,\n });\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 key={`checkmark-${this.checked}`}\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 <rect\n width=\"38\"\n height=\"24\"\n rx=\"12\"\n ></rect>\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 <defs>\n {/* Mask for the X icon */}\n <mask\n id=\"xMask\"\n maskUnits=\"userSpaceOnUse\"\n >\n <rect\n width=\"18\"\n height=\"18\"\n fill=\"white\"\n ></rect>\n <line\n class=\"toggle-icon\"\n x1=\"6.5\"\n y1=\"6.5\"\n x2=\"11.5\"\n y2=\"11.5\"\n stroke=\"black\"\n stroke-width=\"2\"\n ></line>\n <line\n class=\"toggle-icon\"\n x1=\"6.5\"\n y1=\"11.5\"\n x2=\"11.5\"\n y2=\"6.5\"\n stroke=\"black\"\n stroke-width=\"2\"\n ></line>\n </mask>\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 <circle\n class=\"toggle-circle\"\n cx=\"9\"\n cy=\"9\"\n r=\"9\"\n mask=\"url(#xMask)\"\n ></circle>\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.hasDescription ? 'description' : undefined}\n aria-invalid={this.hasError === undefined ? undefined : `${this.hasError}`}\n aria-labelledby={this.ariaLabelledBy}\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 aria-hidden=\"true\"\n >\n {this.renderCheckboxSVG()}\n </label>\n <div class={textLabelClasses.join(' ')}>\n <label\n test-id=\"checkboxLabel\"\n htmlFor={this._id}\n id={this.labelId}\n >\n <div class=\"label-content\">\n {loc(this.label)}\n <slot />\n <slot name=\"label\" />\n </div>\n </label>\n </div>\n {this._tooltip && (\n <span\n id={this.tooltipId}\n class=\"sr\"\n test-id=\"checkboxTooltipText\"\n >\n {this._tooltip}\n </span>\n )}\n {this.hasDescription && (\n <div\n class=\"description-text\"\n test-id=\"checkboxDescription\"\n id=\"description\"\n >\n {loc(this.description)}\n <slot name=\"description\" />\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n","@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-block;\n position: relative;\n line-height: 0;\n}\n\n:host(:not(:last-child)) {\n margin-inline-end: var-list(var-prefixer(tag-margin), --app-scale-2x, 10px);\n}\n\n.tag-wrapper {\n --comp-tag-btn-size: #{var-list(var-prefixer(tag-btn-size), --app-scale-6x, 30px)};\n --comp-tag-background: #{var-list(var-prefixer(tag-background), --t-gray-13, #e6e6e6)};\n --comp-tag-color: #{var-list(var-prefixer(tag-color), --t-gray-3, #262626)};\n --comp-tag-border-color: #{var-list(--tct-tag-border-color, transparent)};\n background: var(--comp-tag-background);\n color: var(--comp-tag-color);\n border-radius: var-list(var-prefixer(tag-border-radius), --app-border-radius-1, 4px);\n border-width: var-list(--tct-tag-border-width, 0);\n border-style: var-list(--tct-tag-border-style, 0);\n border-color: var(--comp-tag-border-color);\n font-size: var(--tct-tag-font-size, inherit);\n font-weight: var(--tct-tag-font-weight, inherit);\n position: relative;\n\n :host([theme='primary']) & {\n --comp-tag-background: #{var-list(--tct-tag-primary-background, --t-primary, #0079c1)};\n --comp-tag-color: #{var-list(--tct-tag-primary-font-color, --t-primary-text, #ffffff)};\n --comp-tag-border-color: #{var-list(--tct-tag-primary-border-color, --t-primary, #0079c1)};\n }\n\n :host([theme='secondary']) & {\n --comp-tag-background: #{var-list(--tct-tag-secondary-background, --t-secondary, #b3c2cc)};\n --comp-tag-color: #{var-list(--tct-tag-secondary-font-color, --t-secondary-text, #141414)};\n --comp-tag-border-color: #{var-list(--tct-tag-secondary-border-color, --t-secondary, #b3c2cc)};\n }\n\n :host([theme='tertiary']) & {\n --comp-tag-background: #{var-list(--tct-tag-tertiary-background, --t-tertiary, #e8f5fc)};\n --comp-tag-color: #{var-list(--tct-tag-tertiary-font-color, --t-tertiary-text, #141414)};\n --comp-tag-border-color: #{var-list(--tct-tag-tertiary-border-color, --t-tertiary, #e8f5fc)};\n }\n\n &:focus-visible {\n box-shadow: var-list(--tct-tag-focus-visible-box-shadow, --const-double-focus-ring);\n }\n}\n\n.tag {\n display: flex;\n align-items: center;\n width: max-content;\n gap: 6px;\n height: var-list(var-prefixer(tag-height), --app-scale-6x, 30px);\n line-height: var-list(var-prefixer(tag-height), --app-scale-6x, 30px);\n padding-inline: var-list(var-prefixer(tag-padding-inline), --app-scale-3x, 15px);\n\n ::slotted(q2-icon[slot='decorator']) {\n --tct-icon-size: 1em;\n --tct-icon-stroke-primary: var(--tct-tag-decorator-icon-primary-stroke);\n --tct-icon-stroke-secondary: var(--tct-tag-decorator-icon-secondary-stroke);\n }\n\n :host([theme=\"primary\"]) & ::slotted(q2-icon[slot='decorator']) {\n --tct-icon-stroke-primary: var(--tct-tag-primary-decorator-icon-primary-stroke);\n --tct-icon-stroke-secondary: var(--tct-tag-primary-decorator-icon-secondary-stroke);\n }\n\n ::slotted(q2-badge[slot='decorator']) {\n --tct-badge-height: 1em;\n --tct-badge-line-height: 30px;\n }\n}\n\n.tag.has-options {\n padding-right: 6px;\n}\n\n.btn-wrapper {\n --comp-tag-clickable-size: #{var-list(var-prefixer(tag-clickable-size), 44px)};\n --comp-tag-btn-offset: calc(calc(calc(var(--comp-tag-clickable-size) - var(--comp-tag-btn-size)) / 2) * -1);\n --comp-tag-background: #{var-list(var-prefixer(tag-background), --t-gray-13, #e6e6e6)};\n height: var(--comp-tag-clickable-size);\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n right: var(--comp-tag-btn-offset);\n top: var(--comp-tag-btn-offset);\n cursor: pointer;\n}\n\nbutton {\n height: var(--comp-tag-btn-size);\n stroke: var(--comp-tag-color);\n --tct-icon-stroke-primary: var(--comp-tag-color);\n cursor: pointer;\n border: 0;\n background: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n padding-right: 6px;\n --tct-icon-size: 18px;\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Host,\n Listen,\n Method,\n Element,\n EventEmitter,\n Event,\n Fragment,\n} from '@stencil/core';\nimport { isEventFromElement, loc, overrideFocus, waitForNextPaint } from 'src/utils';\nimport mirrorEmit from '@/utils/mirror-emit';\nimport { shouldShowActionSheet, showActionSheetList } from 'src/utils/action-sheet';\n\n/**\n * @name Tag\n * @category Display\n * @summary Use for displaying metadata labels or categories on content.\n * @slot decorator - An optional slot that supports either an [Icon](https://tecton.q2developer.com/design-system/q2-icon) or [Badge](https://tecton.q2developer.com/design-system/q2-badge) to be displayed with the tag content.\n * This is **not** available when using [Multiple Options](https://tecton.q2developer.com/design-system/q2-tag#multiple-options).\n */\n@Component({ tag: 'q2-tag', shadow: true, styleUrl: 'q2-tag.scss' })\nexport class Q2Tag implements ComponentInterface {\n // #region Own Properties\n\n dropdownBtn: HTMLButtonElement;\n mutationObserver: MutationObserver;\n optionList: HTMLQ2OptionListElement;\n popoverElement: HTMLQ2PopoverElement;\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 optionCount: number;\n\n // #endregion\n // #region Public Property API\n\n /**\n * Instructs the component to use the action sheet workflow for displaying its options.\n *\n * For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).\n */\n @Prop()\n hoist: boolean = !!window.Tecton?.useActionSheets;\n\n /**\n * The text that populates the label.\n * @localizable\n */\n @Prop({ reflect: true })\n label: string;\n\n /**\n * Determine whether the popover is open or closed.\n *\n * @readonly\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** Determines the label that is applied to the option list for accessibility purposes. */\n @Prop()\n optionListLabel: string = 'options';\n\n /** Aligns the popover dropdown to the left or right side of the input field. */\n @Prop({ mutable: true })\n popoverAlignment: 'left' | 'right' = 'right';\n\n /**\n * Force the direction of the popover dropdown when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop()\n popoverDirection: 'up' | 'down';\n\n /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n popoverMaxHeight: number;\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number;\n\n /** The color of the element. */\n @Prop({ reflect: true })\n theme: 'primary' | 'secondary' | 'tertiary';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when a provided option is clicked.\n *\n * Requires at least one option to be provided.\n * @deprecated Use 'tctClick' instead\n */\n @Event()\n click: EventEmitter<{ value: string }>;\n\n /**\n * Emitted when a provided option is clicked.\n *\n * Requires at least one option to be provided.\n */\n @Event()\n tctClick: EventEmitter<{ value: string }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n componentWillLoad() {\n this.initMutationObserver();\n this.determineOptionCount();\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.filterSlottedElements();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n if (!this.optionCount) return;\n this.dropdownBtn.focus();\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n if (open) return;\n this.optionList.setActiveElement(null);\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the tag to close the popover when options are provided and the popover is open.\n * @testonly\n */\n @Method()\n async closePopover() {\n if (!this.optionCount || !this.open) return;\n this._togglePopover();\n }\n\n /**\n * Emulates clicking the tag to open the popover when options are provided and the popover is closed.\n * @testonly\n */\n @Method()\n async openPopover() {\n if (!this.optionCount || this.open) return;\n this._togglePopover();\n }\n\n /**\n * Emulates selecting an option matching the passed value.\n *\n * If the popover is closed, this will open it before selecting the option.\n *\n * If there are not options, or the passed value does not match any option's value, this method does nothing.\n * @testonly\n */\n @Method()\n async selectOption(value) {\n if (!this.optionCount) return;\n await this.openPopover();\n await waitForNextPaint();\n const allOptions = await this.optionList.getOptions();\n const desiredOption = allOptions.find(option => option.value === value);\n desiredOption?.click();\n }\n\n // #endregion\n // #region Local Methods\n\n _togglePopover() {\n const { dropdownBtn } = this;\n dropdownBtn?.click();\n dropdownBtn?.focus();\n dropdownBtn.dispatchEvent(new FocusEvent('focus'));\n }\n\n determineOptionCount = () => {\n const numberOfOptions = this.hostElement.querySelectorAll('q2-option').length;\n this.optionCount = numberOfOptions;\n };\n\n filterSlottedElements = () => {\n if (!('HTMLSlotElement' in window)) return;\n const slot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"decorator\"]');\n const assignedElements = Array.from(slot?.assignedElements() || []);\n if (!assignedElements.length) return;\n\n const approvedElements = ['Q2-ICON', 'Q2-BADGE'];\n assignedElements.forEach((element, index) => {\n if (!approvedElements.includes(element.tagName) || index > 0) {\n element.remove();\n }\n });\n };\n\n handleButtonFocusout = async (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as HTMLElement;\n if (this.popoverElement?.contains(relatedTarget)) return;\n if (this.hostElement.contains(relatedTarget)) return;\n this.open = false;\n };\n\n handleChange = event => {\n event.stopPropagation();\n if (!this.optionCount) return;\n const { value } = event.detail;\n\n mirrorEmit(this, ['click', 'tctClick'], { value });\n };\n\n handleClick = async (event: MouseEvent) => {\n event.stopPropagation();\n this.popoverElement.controlElement = this.dropdownBtn;\n if (shouldShowActionSheet(this)) {\n const { value } = await showActionSheetList(this, event);\n this.dropdownBtn.focus();\n mirrorEmit(this, ['click', 'tctClick'], { value });\n } else {\n await this.popoverElement.toggle();\n }\n };\n\n handleKeydown = async (event: KeyboardEvent) => {\n const isTabMetaOrCtrl = event.metaKey || event.ctrlKey || event.key === 'Tab';\n if (isTabMetaOrCtrl) return;\n\n event.preventDefault();\n this.popoverElement.controlElement = this.dropdownBtn;\n if (shouldShowActionSheet(this, event)) {\n const { value } = await showActionSheetList(this, event);\n this.dropdownBtn.focus();\n mirrorEmit(this, ['click', 'tctClick'], { value });\n } else {\n this.optionList.handleExternalKeydown(event);\n }\n };\n\n handleWrapperClick = () => {\n this.dropdownBtn.focus();\n this.dropdownBtn.click();\n };\n\n initMutationObserver = () => {\n if (!('MutationObserver' in window)) return;\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, attributes: true });\n this.mutationObserver = observer;\n };\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n const { popoverElement } = this;\n if (!popoverElement) return;\n popoverElement.open = false;\n }\n };\n\n onMutationObserved = () => {\n this.determineOptionCount();\n this.filterSlottedElements();\n };\n\n // #endregion\n // #region Render Methods\n\n renderHiddenElement() {\n return (\n <div\n id=\"option-description\"\n class=\"sr\"\n aria-hidden=\"true\"\n >\n {loc('tecton.element.optionList.optionCount', [this.optionCount])}\n </div>\n );\n }\n\n render() {\n const { open } = this;\n const wrapperClassNames = ['tag'];\n if (this.optionCount) wrapperClassNames.push('has-options');\n const shouldShowOptions = this.optionCount > 0;\n\n return (\n <Host>\n <click-elsewhere onChange={this.onClickElsewhere}>\n {shouldShowOptions ? (\n <Fragment>\n <div\n class=\"btn-wrapper\"\n onClick={this.handleWrapperClick}\n >\n <button\n class=\"tag-wrapper\"\n ref={el => (this.dropdownBtn = el)}\n test-id=\"btn-control\"\n type=\"button\"\n role=\"combobox\"\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n onFocusout={this.handleButtonFocusout}\n aria-controls=\"option-list\"\n aria-expanded={open ? 'true' : 'false'}\n aria-describedby=\"option-description\"\n aria-label={loc(this.label)}\n >\n <div class={wrapperClassNames.join(' ')}>{loc(this.label)}</div>\n <q2-icon type=\"options\"></q2-icon>\n </button>\n </div>\n {this.renderHiddenElement()}\n </Fragment>\n ) : (\n <div\n class=\"tag-wrapper\"\n onClick={e => e.stopPropagation()}\n >\n <div class={wrapperClassNames.join(' ')}>\n <slot name=\"decorator\" />\n {loc(this.label)}\n </div>\n </div>\n )}\n\n {shouldShowOptions && (\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.dropdownBtn}\n open={this.open}\n maxHeight={this.popoverMaxHeight}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n >\n <q2-option-list\n id=\"option-list\"\n ref={el => (this.optionList = el)}\n onChange={this.handleChange}\n type=\"menu\"\n align=\"right\"\n label={loc('tecton.element.optionList.label', [this.optionListLabel])}\n no-select\n >\n <slot />\n </q2-option-list>\n </q2-popover>\n )}\n </click-elsewhere>\n </Host>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,9 +2,9 @@ import { r as t, h as e, g as o } from "./index-CGkHOjh1.js";
2
2
 
3
3
  import { h as n } from "./index-C4PILj1_.js";
4
4
 
5
- const a = '*{box-sizing:border-box}:host([hidden]){display:none}:host{display:block;background:var(--tct-context-background, var(--t-tertiary, #e8f5fc));box-shadow:var(--tct-context-box-shadow, none);backdrop-filter:var(--tct-context-backdrop-filter, none);border-radius:var(--tct-context-border-radius, var(--app-border-radius-2, 8px));padding:var(--tct-context-padding, 10px);width:var(--tct-context-width);border-width:var(--tct-context-border-width, 0px);border-style:var(--tct-context-border-style, solid);border-color:var(--tct-context-border-color, transparent)}.context-wrapper{display:flex;flex-direction:column;gap:var(--tct-context-gap, 10px)}.context-item{--tct-item-bullet-padding-top:0;--tct-item-action-align-items:start;--tct-item-action-icon-height:24px;--tct-item-action-icon-width:24px;--tct-item-action-icon-size:24px;--tct-item-avatar-height:44px;--tct-item-avatar-width:44px}.context-body slot:not(:first-child)::before{content:" "}.context-body ::slotted(*){display:inline}.separator{margin:var(--tct-context-separator-margin, 0);border-bottom:1px solid var(--tct-context-separator-color, var(--t-gray-12, #d9d9d9))}.action-group{--tct-action-group-margin:0}::slotted(q2-dropdown){--tct-btn-icon-border-radius:var(--app-border-radius-1, 4px)}::slotted(q2-link){--tct-link-border-radius:var(--app-border-radius-1, 4px);--tct-icon-stroke-primary:var(--t-primary, #6a4a9e);--tct-icon-stroke-secondary:var(--t-primary, #6a4a9e)}';
5
+ const r = '*{box-sizing:border-box}:host([hidden]){display:none}:host{display:block;background:var(--tct-context-background, var(--t-tertiary, #e8f5fc));box-shadow:var(--tct-context-box-shadow, none);backdrop-filter:var(--tct-context-backdrop-filter, none);border-radius:var(--tct-context-border-radius, var(--app-border-radius-2, 8px));padding:var(--tct-context-padding, 10px);width:var(--tct-context-width);border-width:var(--tct-context-border-width, 0px);border-style:var(--tct-context-border-style, solid);border-color:var(--tct-context-border-color, transparent)}.context-wrapper{display:flex;flex-direction:column;gap:var(--tct-context-gap, 10px)}.context-item{--tct-item-bullet-padding-top:0;--tct-item-action-align-items:start;--tct-item-action-icon-height:24px;--tct-item-action-icon-width:24px;--tct-item-action-icon-size:24px;--tct-item-avatar-height:44px;--tct-item-avatar-width:44px}.context-body slot:not(:first-child)::before{content:" "}.context-body ::slotted(*){display:inline}.separator{margin:var(--tct-context-separator-margin, 0);border-bottom:1px solid var(--tct-context-separator-color, var(--t-gray-12, #d9d9d9))}.action-group{--tct-action-group-margin:0}::slotted(q2-dropdown){--tct-btn-icon-border-radius:var(--app-border-radius-1, 4px)}::slotted(q2-link){--tct-link-border-radius:var(--app-border-radius-1, 4px);--tct-icon-stroke-primary:var(--t-primary, #6a4a9e);--tct-icon-stroke-secondary:var(--t-primary, #6a4a9e)}';
6
6
 
7
- const r = class {
7
+ const a = class {
8
8
  constructor(e) {
9
9
  t(this, e);
10
10
  }
@@ -117,42 +117,42 @@ const r = class {
117
117
  // #region Render Methods
118
118
  render() {
119
119
  return e("div", {
120
- key: "e5721a07d072dc6fa3db22edfd50c5787946ff9a",
120
+ key: "8bd2bf977388c552b749af93f1682eb5b491b241",
121
121
  class: "context-wrapper"
122
122
  }, e("q2-item", {
123
- key: "f7591f8009e1f28d3e0fffb57dc280bd53a5cafe",
123
+ key: "38c657ce812b32b18acd97cfac8aa50c8c904587",
124
124
  class: "context-item"
125
125
  }, this.hasDecoratorSlotContent && e("slot", {
126
- key: "74215ffc70d4a19a00c921869391843539f28a6a",
126
+ key: "7816474bd52a207930abfd8cf6d37a7eab5348a3",
127
127
  name: "decorator",
128
128
  slot: "decorator"
129
129
  }), e("div", {
130
- key: "c1f51789a6cdbe7a12a055da39e2a3747639aff3",
130
+ key: "e19e91cf7181beb57e1790313e46010208573017",
131
131
  class: "context-body",
132
132
  slot: "body"
133
133
  }, e("slot", {
134
- key: "a3d4fc206925aa9f23bba1d785b2df9b74cef2a5",
134
+ key: "9f7eee48cfe8993cea5f001e6096330fdff91f42",
135
135
  name: "header"
136
136
  }), e("slot", {
137
- key: "5e4bd0a3f595c52b1a8d60ff2a06b4333919719f",
137
+ key: "a50f7afcaca2907254eac06b30edba31a96b248b",
138
138
  name: "description"
139
139
  })), this.hasAffordanceSlotContent && e("slot", {
140
- key: "26891e4fd22716ff431df7c98814d3086fa7a48e",
140
+ key: "00b35f4f191919c971a25f20c7771d787d52603a",
141
141
  name: "affordance",
142
142
  slot: "action"
143
143
  })), this.separator && e("div", {
144
- key: "6f5102f66edfa4bdc043e4907d09e22d70218b7d",
144
+ key: "db2ba58244c8040cd73e30c69abd0068f8573e42",
145
145
  class: "separator",
146
146
  role: "separator"
147
147
  }), this.hasActionGroupSlotContent && e("q2-action-group", {
148
- key: "a01f3f19278f94ec67fa21a34a5f8d26823a1000",
148
+ key: "c530b882cda2655633efaaf3088c878b96fa3ccb",
149
149
  class: "action-group",
150
150
  orientation: "horizontal"
151
151
  }, e("slot", {
152
- key: "86051221e06ac1c4b68bf31228f68724e67474e0",
152
+ key: "3aff5167bf8d7707181af5874fffbf7f94485405",
153
153
  name: "action-group"
154
154
  })), this.hasFooterSlotContent && e("slot", {
155
- key: "f12d517e123e1cc7ef3c85fb53e5d227a82f3132",
155
+ key: "b47f8995b3f027dc726772c82edb6981ff4ae757",
156
156
  name: "footer"
157
157
  }));
158
158
  }
@@ -161,8 +161,8 @@ const r = class {
161
161
  }
162
162
  };
163
163
 
164
- r.style = a;
164
+ a.style = r;
165
165
 
166
- export { r as q2_context };
166
+ export { a as q2_context };
167
167
  //# sourceMappingURL=q2-context.entry.esm.js.map
168
168
  //# sourceMappingURL=q2-context.entry.js.map
@@ -127,27 +127,27 @@ const n = class {
127
127
  render() {
128
128
  const {hasPlusMinusSign: r, plusMinusSign: e, currencyIsFront: c, currencySymbol: n, shouldSuperscriptSymbol: i, amountCore: s, fraction: o, shouldSuperscriptFraction: a, readableCurrency: u, currencyClasses: l, signDisplay: p, isNegativeAmount: d} = this;
129
129
  return t("div", {
130
- key: "53d88008437b187887c49fcfd41d7f9d8c6bb587",
130
+ key: "a600525cc214be0a670d8faa90c22583bb142a5a",
131
131
  "test-id": "q2CurrencyInner",
132
132
  class: l,
133
133
  "aria-label": u
134
134
  }, p === "accounting" && d && t("span", {
135
- key: "efce7009afdc9aa7d368f545a118806502801b28"
135
+ key: "40a2b4736c8afc5b7939391fe90600d79d584c66"
136
136
  }, "("), r && t("span", {
137
- key: "452052007a26cfd879e4ded8540c9f825ebafb14"
137
+ key: "6f5755d3e4681168e523c9549a0fa2ce60ad49fc"
138
138
  }, e), c && t("span", {
139
- key: "236e79e2e5612ee67d22f44947996d634056abcf",
139
+ key: "006b2ab6a62e7f1f5bf413ce767763d1c8b6fa57",
140
140
  class: i ? "superscript" : ""
141
141
  }, n), t("span", {
142
- key: "c69146375af1d37aac010be7fcd41da050c8802e"
142
+ key: "96b0d7262fa2bcf8b9039fba828d937e88c0fc00"
143
143
  }, s), t("span", {
144
- key: "d9fe34e10fe29a0ccaee6a6d1fcea0f52aebd0b3",
144
+ key: "fa848c80fe88cff6de78a1386c4473413f0cda18",
145
145
  class: a ? "superscript" : ""
146
146
  }, o), !c && t("span", {
147
- key: "741effd6b2ef88b22e38638c100f6d29195ffcb3",
147
+ key: "0a39e489c17f33846af1587603a2e9ae21bd5f78",
148
148
  class: i ? "superscript" : ""
149
149
  }, n), p === "accounting" && d && t("span", {
150
- key: "ee2fd9317e37ac484e6bbc9d458e988d360abe2e"
150
+ key: "9e088b3f70a82bb7bb0ab1d8a59e1eadd837178a"
151
151
  }, ")"));
152
152
  }
153
153
  get hostElement() {
@@ -407,12 +407,12 @@ const i = class {
407
407
  render() {
408
408
  const {caption: t} = this;
409
409
  return a("div", {
410
- key: "c60810b5cc26058b94829ee4f7942df9804403e9",
410
+ key: "ee7b81a0e49d8be037696fb1e275f90fe5547f8b",
411
411
  class: "container"
412
412
  }, a("table", {
413
- key: "5fab9778577ef7b24955e3219a1bc054db6703f9"
413
+ key: "a5ee5ad79d6ed0b5e911611f9e15fb2130c69894"
414
414
  }, t && a("caption", {
415
- key: "daa8d4647859d4eeace2b9f4103bd73e5494b633",
415
+ key: "ba4ea123b1b9fe1bda5734dcd789889db8d992b9",
416
416
  class: this.hideCaption ? "sr" : undefined
417
417
  }, t), this.renderTableColGroup(), this.renderTableHeader(), this.renderEmptyState(), this.renderTableRows()));
418
418
  }
@@ -100,16 +100,16 @@ const s = class {
100
100
  // #region Render Methods
101
101
  render() {
102
102
  return e("div", {
103
- key: "d92d66fcec6add5b649aa45fd11c5c778d5be0b3",
103
+ key: "e9fe9f1d23de26052a90b499865c30908942d90e",
104
104
  class: this.detailClasses
105
105
  }, this.hasLabel && e("div", {
106
- key: "c4538e909b1c4ac9e298a9ec25240e56eba42cfd",
106
+ key: "74575c0c28fd5493cec9b04e4693f66812863946",
107
107
  class: this.labelClasses,
108
108
  "aria-describedby": !!this.description ? "label-description" : undefined
109
109
  }, !!this.label ? a(this.label) : this.hasLabelSlotContent ? e("slot", {
110
110
  name: "label"
111
111
  }) : ""), this.hasDescripiton && e("div", {
112
- key: "f6ce65ea2ad6b1d6c64d0ff69a66bd1fa5aa868d",
112
+ key: "d9bef4e29bfc54e6149d57322833f6184572b863",
113
113
  id: "label-description",
114
114
  class: this.descriptionClasses
115
115
  }, !!this.description ? a(this.description) : this.hasDefaultSlotContent ? e("slot", null) : ""));