q2-tecton-elements 1.59.1 → 1.60.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/dist/bundle-report.json +613 -514
  2. package/dist/cjs/click-elsewhere.cjs.entry.js +1 -1
  3. package/dist/cjs/{index-JnAD7tEB.js → index-BYXz4owL.js} +5 -2
  4. package/dist/cjs/index-BYXz4owL.js.map +1 -0
  5. package/dist/cjs/{index-B6mUspT0.js → index-BuXzB2ML.js} +3 -3
  6. package/dist/cjs/{index-B6mUspT0.js.map → index-BuXzB2ML.js.map} +1 -1
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/cjs/q2-action-group_2.cjs.entry.js +2 -2
  9. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  10. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-badge.q2-btn.q2-icon.q2-input.q2-loading.q2-tab-container.q2-tab-pane.entry.cjs.js.map +1 -1
  12. package/dist/cjs/q2-badge_7.cjs.entry.js +281 -79
  13. package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-calendar.cjs.entry.js +13 -5
  15. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-calendar.entry.cjs.js.map +1 -1
  17. package/dist/cjs/q2-card.cjs.entry.js +3 -3
  18. package/dist/cjs/q2-card.cjs.entry.js.map +1 -1
  19. package/dist/cjs/q2-card.entry.cjs.js.map +1 -1
  20. package/dist/cjs/q2-carousel-pane.cjs.entry.js +2 -2
  21. package/dist/cjs/q2-carousel.cjs.entry.js +2 -2
  22. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  23. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  24. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  25. package/dist/cjs/q2-checkbox-group.cjs.entry.js +3 -3
  26. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  27. package/dist/cjs/q2-checkbox-group.entry.cjs.js.map +1 -1
  28. package/dist/cjs/q2-checkbox.cjs.entry.js +5 -5
  29. package/dist/cjs/q2-checkbox.cjs.entry.js.map +1 -1
  30. package/dist/cjs/q2-checkbox.entry.cjs.js.map +1 -1
  31. package/dist/cjs/q2-context.cjs.entry.js +3 -3
  32. package/dist/cjs/q2-context.cjs.entry.js.map +1 -1
  33. package/dist/cjs/q2-context.entry.cjs.js.map +1 -1
  34. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-data-table.cjs.entry.js +5 -5
  36. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  37. package/dist/cjs/q2-data-table.entry.cjs.js.map +1 -1
  38. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  39. package/dist/cjs/q2-dropdown-item.cjs.entry.js +2 -2
  40. package/dist/cjs/q2-dropdown.cjs.entry.js +7 -5
  41. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  42. package/dist/cjs/q2-dropdown.entry.cjs.js.map +1 -1
  43. package/dist/cjs/q2-editable-field.cjs.entry.js +2 -2
  44. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  45. package/dist/cjs/q2-file-picker.cjs.entry.js +3 -3
  46. package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-file-picker.entry.cjs.js.map +1 -1
  48. package/dist/cjs/q2-form.cjs.entry.js +5 -5
  49. package/dist/cjs/q2-form.cjs.entry.js.map +1 -1
  50. package/dist/cjs/q2-form.entry.cjs.js.map +1 -1
  51. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  52. package/dist/cjs/q2-grid-area.cjs.entry.js +1 -1
  53. package/dist/cjs/q2-grid.cjs.entry.js +1 -1
  54. package/dist/cjs/q2-item.cjs.entry.js +3 -3
  55. package/dist/cjs/q2-item.cjs.entry.js.map +1 -1
  56. package/dist/cjs/q2-item.entry.cjs.js.map +1 -1
  57. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  58. package/dist/cjs/q2-link_2.cjs.entry.js +2 -2
  59. package/dist/cjs/q2-loading-element.cjs.entry.js +2 -2
  60. package/dist/cjs/q2-loc.cjs.entry.js +2 -2
  61. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  62. package/dist/cjs/q2-modal.cjs.entry.js +2 -2
  63. package/dist/cjs/q2-month-picker.cjs.entry.js +2 -2
  64. package/dist/cjs/q2-optgroup.cjs.entry.js +3 -3
  65. package/dist/cjs/q2-optgroup.cjs.entry.js.map +1 -1
  66. package/dist/cjs/q2-optgroup.entry.cjs.js.map +1 -1
  67. package/dist/cjs/q2-option-list.q2-popover.entry.cjs.js.map +1 -1
  68. package/dist/cjs/q2-option-list_2.cjs.entry.js +3 -3
  69. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -1
  70. package/dist/cjs/q2-option.cjs.entry.js +2 -2
  71. package/dist/cjs/q2-pagination.cjs.entry.js +2 -2
  72. package/dist/cjs/q2-pill.cjs.entry.js +13 -11
  73. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  74. package/dist/cjs/q2-pill.entry.cjs.js.map +1 -1
  75. package/dist/cjs/q2-radio-group.cjs.entry.js +3 -3
  76. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  77. package/dist/cjs/q2-radio-group.entry.cjs.js.map +1 -1
  78. package/dist/cjs/q2-radio.cjs.entry.js +3 -3
  79. package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
  80. package/dist/cjs/q2-radio.entry.cjs.js.map +1 -1
  81. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  82. package/dist/cjs/q2-section.cjs.entry.js +2 -2
  83. package/dist/cjs/q2-select.cjs.entry.js +2 -2
  84. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  85. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +3 -3
  86. package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
  87. package/dist/cjs/q2-stepper-vertical.entry.cjs.js.map +1 -1
  88. package/dist/cjs/q2-stepper.cjs.entry.js +3 -3
  89. package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
  90. package/dist/cjs/q2-stepper.entry.cjs.js.map +1 -1
  91. package/dist/cjs/q2-tag.cjs.entry.js +3 -3
  92. package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
  93. package/dist/cjs/q2-tag.entry.cjs.js.map +1 -1
  94. package/dist/cjs/q2-tecton-elements.cjs.js +2 -2
  95. package/dist/cjs/q2-textarea.cjs.entry.js +3 -3
  96. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  97. package/dist/cjs/q2-textarea.entry.cjs.js.map +1 -1
  98. package/dist/cjs/q2-tooltip.cjs.entry.js +2 -2
  99. package/dist/cjs/{shapes-CUFxQAvI.js → shapes-AGx9jMFH.js} +11 -5
  100. package/dist/cjs/shapes-AGx9jMFH.js.map +1 -0
  101. package/dist/cjs/tecton-tab-pane.cjs.entry.js +1 -1
  102. package/dist/collection/components/q2-btn/q2-btn.css +71 -33
  103. package/dist/collection/components/q2-calendar/q2-calendar.js +11 -3
  104. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  105. package/dist/collection/components/q2-card/q2-card.css +8 -6
  106. package/dist/collection/components/q2-checkbox/q2-checkbox.css +25 -10
  107. package/dist/collection/components/q2-checkbox/q2-checkbox.js +2 -2
  108. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  109. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +8 -2
  110. package/dist/collection/components/q2-context/q2-context.css +7 -71
  111. package/dist/collection/components/q2-data-table/q2-data-table.css +3 -2
  112. package/dist/collection/components/q2-data-table/q2-data-table.js +2 -2
  113. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  114. package/dist/collection/components/q2-dropdown/q2-dropdown.js +5 -3
  115. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  116. package/dist/collection/components/q2-file-picker/q2-file-picker.css +1 -1
  117. package/dist/collection/components/q2-form/q2-form.js +2 -2
  118. package/dist/collection/components/q2-form/q2-form.js.map +1 -1
  119. package/dist/collection/components/q2-icon/q2-icon.css +5 -0
  120. package/dist/collection/components/q2-icon/q2-icon.js +5 -20
  121. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  122. package/dist/collection/components/q2-input/q2-input.css +13 -4
  123. package/dist/collection/components/q2-input/q2-input.js +17 -7
  124. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  125. package/dist/collection/components/q2-item/q2-item.css +5 -2
  126. package/dist/collection/components/q2-loading/q2-loading.js +249 -29
  127. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  128. package/dist/collection/components/q2-loading/skeleton/shapes.js +8 -2
  129. package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
  130. package/dist/collection/components/q2-optgroup/q2-optgroup.js +3 -3
  131. package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
  132. package/dist/collection/components/q2-pill/q2-pill.css +23 -7
  133. package/dist/collection/components/q2-pill/q2-pill.js +11 -7
  134. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  135. package/dist/collection/components/q2-popover/q2-popover.css +1 -0
  136. package/dist/collection/components/q2-radio/q2-radio.css +5 -3
  137. package/dist/collection/components/q2-radio-group/q2-radio-group.css +5 -0
  138. package/dist/collection/components/q2-stepper/q2-stepper.css +16 -4
  139. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +2 -0
  140. package/dist/collection/components/q2-tab-container/q2-tab-container.css +4 -2
  141. package/dist/collection/components/q2-tab-container/q2-tab-container.js +27 -19
  142. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  143. package/dist/collection/components/q2-tag/q2-tag.css +7 -0
  144. package/dist/collection/components/q2-textarea/q2-textarea.css +13 -3
  145. package/dist/collection/utils/sprites.js +16 -0
  146. package/dist/collection/utils/sprites.js.map +1 -0
  147. package/dist/components/q2-btn2.js +1 -1
  148. package/dist/components/q2-btn2.js.map +1 -1
  149. package/dist/components/q2-calendar.js +11 -3
  150. package/dist/components/q2-calendar.js.map +1 -1
  151. package/dist/components/q2-card.js +1 -1
  152. package/dist/components/q2-card.js.map +1 -1
  153. package/dist/components/q2-checkbox-group.js +1 -1
  154. package/dist/components/q2-checkbox-group.js.map +1 -1
  155. package/dist/components/q2-checkbox2.js +3 -3
  156. package/dist/components/q2-checkbox2.js.map +1 -1
  157. package/dist/components/q2-context.js +1 -1
  158. package/dist/components/q2-context.js.map +1 -1
  159. package/dist/components/q2-data-table.js +3 -3
  160. package/dist/components/q2-data-table.js.map +1 -1
  161. package/dist/components/q2-dropdown.js +5 -3
  162. package/dist/components/q2-dropdown.js.map +1 -1
  163. package/dist/components/q2-file-picker.js +1 -1
  164. package/dist/components/q2-file-picker.js.map +1 -1
  165. package/dist/components/q2-form.js +4 -4
  166. package/dist/components/q2-form.js.map +1 -1
  167. package/dist/components/q2-icon2.js +6 -21
  168. package/dist/components/q2-icon2.js.map +1 -1
  169. package/dist/components/q2-input2.js +18 -8
  170. package/dist/components/q2-input2.js.map +1 -1
  171. package/dist/components/q2-item2.js +1 -1
  172. package/dist/components/q2-item2.js.map +1 -1
  173. package/dist/components/q2-loading2.js +217 -29
  174. package/dist/components/q2-loading2.js.map +1 -1
  175. package/dist/components/q2-optgroup2.js +1 -1
  176. package/dist/components/q2-optgroup2.js.map +1 -1
  177. package/dist/components/q2-pill.js +13 -10
  178. package/dist/components/q2-pill.js.map +1 -1
  179. package/dist/components/q2-popover2.js +1 -1
  180. package/dist/components/q2-popover2.js.map +1 -1
  181. package/dist/components/q2-radio-group.js +1 -1
  182. package/dist/components/q2-radio-group.js.map +1 -1
  183. package/dist/components/q2-radio.js +1 -1
  184. package/dist/components/q2-radio.js.map +1 -1
  185. package/dist/components/q2-stepper-vertical.js +1 -1
  186. package/dist/components/q2-stepper-vertical.js.map +1 -1
  187. package/dist/components/q2-stepper.js +1 -1
  188. package/dist/components/q2-stepper.js.map +1 -1
  189. package/dist/components/q2-tab-container.js +28 -20
  190. package/dist/components/q2-tab-container.js.map +1 -1
  191. package/dist/components/q2-tag.js +1 -1
  192. package/dist/components/q2-tag.js.map +1 -1
  193. package/dist/components/q2-textarea.js +1 -1
  194. package/dist/components/q2-textarea.js.map +1 -1
  195. package/dist/components/shapes.js +8 -2
  196. package/dist/components/shapes.js.map +1 -1
  197. package/dist/components/sprites.js +20 -0
  198. package/dist/components/sprites.js.map +1 -0
  199. package/dist/esm/click-elsewhere.entry.js +1 -1
  200. package/dist/esm/{index-COzomxjJ.js → index-CGkHOjh1.js} +5 -2
  201. package/dist/esm/index-CGkHOjh1.js.map +1 -0
  202. package/dist/esm/{index-CkXFIBxL.js → index-xCuy-dFb.js} +3 -3
  203. package/dist/{q2-tecton-elements/index-CkXFIBxL.js.map → esm/index-xCuy-dFb.js.map} +1 -1
  204. package/dist/esm/loader.js +3 -3
  205. package/dist/esm/q2-action-group_2.entry.js +2 -2
  206. package/dist/esm/q2-action-sheet.entry.js +2 -2
  207. package/dist/esm/q2-avatar.entry.js +1 -1
  208. package/dist/esm/q2-badge.q2-btn.q2-icon.q2-input.q2-loading.q2-tab-container.q2-tab-pane.entry.js.map +1 -1
  209. package/dist/esm/q2-badge_7.entry.js +281 -79
  210. package/dist/esm/q2-badge_7.entry.js.map +1 -1
  211. package/dist/esm/q2-calendar.entry.js +13 -5
  212. package/dist/esm/q2-calendar.entry.js.map +1 -1
  213. package/dist/esm/q2-card.entry.js +3 -3
  214. package/dist/esm/q2-card.entry.js.map +1 -1
  215. package/dist/esm/q2-carousel-pane.entry.js +2 -2
  216. package/dist/esm/q2-carousel.entry.js +2 -2
  217. package/dist/esm/q2-chart-area.entry.js +2 -2
  218. package/dist/esm/q2-chart-bar.entry.js +2 -2
  219. package/dist/esm/q2-chart-donut.entry.js +2 -2
  220. package/dist/esm/q2-checkbox-group.entry.js +3 -3
  221. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  222. package/dist/esm/q2-checkbox.entry.js +5 -5
  223. package/dist/esm/q2-checkbox.entry.js.map +1 -1
  224. package/dist/esm/q2-context.entry.js +3 -3
  225. package/dist/esm/q2-context.entry.js.map +1 -1
  226. package/dist/esm/q2-currency.entry.js +1 -1
  227. package/dist/esm/q2-data-table.entry.js +5 -5
  228. package/dist/esm/q2-data-table.entry.js.map +1 -1
  229. package/dist/esm/q2-detail.entry.js +2 -2
  230. package/dist/esm/q2-dropdown-item.entry.js +2 -2
  231. package/dist/esm/q2-dropdown.entry.js +7 -5
  232. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  233. package/dist/esm/q2-editable-field.entry.js +2 -2
  234. package/dist/esm/q2-example.entry.js +1 -1
  235. package/dist/esm/q2-file-picker.entry.js +3 -3
  236. package/dist/esm/q2-file-picker.entry.js.map +1 -1
  237. package/dist/esm/q2-form.entry.js +5 -5
  238. package/dist/esm/q2-form.entry.js.map +1 -1
  239. package/dist/esm/q2-formatted-text.entry.js +1 -1
  240. package/dist/esm/q2-grid-area.entry.js +1 -1
  241. package/dist/esm/q2-grid.entry.js +1 -1
  242. package/dist/esm/q2-item.entry.js +3 -3
  243. package/dist/esm/q2-item.entry.js.map +1 -1
  244. package/dist/esm/q2-legend.entry.js +1 -1
  245. package/dist/esm/q2-link_2.entry.js +2 -2
  246. package/dist/esm/q2-loading-element.entry.js +2 -2
  247. package/dist/esm/q2-loc.entry.js +2 -2
  248. package/dist/esm/q2-message.entry.js +2 -2
  249. package/dist/esm/q2-modal.entry.js +2 -2
  250. package/dist/esm/q2-month-picker.entry.js +2 -2
  251. package/dist/esm/q2-optgroup.entry.js +3 -3
  252. package/dist/esm/q2-optgroup.entry.js.map +1 -1
  253. package/dist/esm/q2-option-list.q2-popover.entry.js.map +1 -1
  254. package/dist/esm/q2-option-list_2.entry.js +3 -3
  255. package/dist/esm/q2-option-list_2.entry.js.map +1 -1
  256. package/dist/esm/q2-option.entry.js +2 -2
  257. package/dist/esm/q2-pagination.entry.js +2 -2
  258. package/dist/esm/q2-pill.entry.js +13 -11
  259. package/dist/esm/q2-pill.entry.js.map +1 -1
  260. package/dist/esm/q2-radio-group.entry.js +3 -3
  261. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  262. package/dist/esm/q2-radio.entry.js +3 -3
  263. package/dist/esm/q2-radio.entry.js.map +1 -1
  264. package/dist/esm/q2-relative-time.entry.js +2 -2
  265. package/dist/esm/q2-section.entry.js +2 -2
  266. package/dist/esm/q2-select.entry.js +2 -2
  267. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  268. package/dist/esm/q2-stepper-vertical.entry.js +3 -3
  269. package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
  270. package/dist/esm/q2-stepper.entry.js +3 -3
  271. package/dist/esm/q2-stepper.entry.js.map +1 -1
  272. package/dist/esm/q2-tag.entry.js +3 -3
  273. package/dist/esm/q2-tag.entry.js.map +1 -1
  274. package/dist/esm/q2-tecton-elements.js +3 -3
  275. package/dist/esm/q2-textarea.entry.js +3 -3
  276. package/dist/esm/q2-textarea.entry.js.map +1 -1
  277. package/dist/esm/q2-tooltip.entry.js +2 -2
  278. package/dist/esm/{shapes-BrIjALih.js → shapes-B6iI6sMH.js} +11 -5
  279. package/dist/esm/shapes-B6iI6sMH.js.map +1 -0
  280. package/dist/esm/tecton-tab-pane.entry.js +1 -1
  281. package/dist/jest.setup.js +33 -0
  282. package/dist/jest.setup.js.map +1 -1
  283. package/dist/q2-tecton-elements/click-elsewhere.entry.js +1 -1
  284. package/dist/q2-tecton-elements/{index-COzomxjJ.js → index-CGkHOjh1.js} +5 -2
  285. package/dist/q2-tecton-elements/index-CGkHOjh1.js.map +1 -0
  286. package/dist/q2-tecton-elements/{index-CkXFIBxL.js → index-xCuy-dFb.js} +3 -3
  287. package/dist/{esm/index-CkXFIBxL.js.map → q2-tecton-elements/index-xCuy-dFb.js.map} +1 -1
  288. package/dist/q2-tecton-elements/q2-action-group_2.entry.js +2 -2
  289. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +2 -2
  290. package/dist/q2-tecton-elements/q2-avatar.entry.js +1 -1
  291. package/dist/q2-tecton-elements/q2-badge.q2-btn.q2-icon.q2-input.q2-loading.q2-tab-container.q2-tab-pane.entry.esm.js.map +1 -1
  292. package/dist/q2-tecton-elements/q2-badge_7.entry.js +426 -229
  293. package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -1
  294. package/dist/q2-tecton-elements/q2-calendar.entry.esm.js.map +1 -1
  295. package/dist/q2-tecton-elements/q2-calendar.entry.js +105 -98
  296. package/dist/q2-tecton-elements/q2-calendar.entry.js.map +1 -1
  297. package/dist/q2-tecton-elements/q2-card.entry.esm.js.map +1 -1
  298. package/dist/q2-tecton-elements/q2-card.entry.js +45 -45
  299. package/dist/q2-tecton-elements/q2-card.entry.js.map +1 -1
  300. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +2 -2
  301. package/dist/q2-tecton-elements/q2-carousel.entry.js +2 -2
  302. package/dist/q2-tecton-elements/q2-chart-area.entry.js +2 -2
  303. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +2 -2
  304. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +2 -2
  305. package/dist/q2-tecton-elements/q2-checkbox-group.entry.esm.js.map +1 -1
  306. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +6 -6
  307. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -1
  308. package/dist/q2-tecton-elements/q2-checkbox.entry.esm.js.map +1 -1
  309. package/dist/q2-tecton-elements/q2-checkbox.entry.js +30 -25
  310. package/dist/q2-tecton-elements/q2-checkbox.entry.js.map +1 -1
  311. package/dist/q2-tecton-elements/q2-context.entry.esm.js.map +1 -1
  312. package/dist/q2-tecton-elements/q2-context.entry.js +3 -3
  313. package/dist/q2-tecton-elements/q2-context.entry.js.map +1 -1
  314. package/dist/q2-tecton-elements/q2-currency.entry.js +1 -1
  315. package/dist/q2-tecton-elements/q2-data-table.entry.esm.js.map +1 -1
  316. package/dist/q2-tecton-elements/q2-data-table.entry.js +29 -29
  317. package/dist/q2-tecton-elements/q2-data-table.entry.js.map +1 -1
  318. package/dist/q2-tecton-elements/q2-detail.entry.js +2 -2
  319. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +2 -2
  320. package/dist/q2-tecton-elements/q2-dropdown.entry.esm.js.map +1 -1
  321. package/dist/q2-tecton-elements/q2-dropdown.entry.js +12 -11
  322. package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
  323. package/dist/q2-tecton-elements/q2-editable-field.entry.js +2 -2
  324. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  325. package/dist/q2-tecton-elements/q2-file-picker.entry.esm.js.map +1 -1
  326. package/dist/q2-tecton-elements/q2-file-picker.entry.js +3 -3
  327. package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
  328. package/dist/q2-tecton-elements/q2-form.entry.esm.js.map +1 -1
  329. package/dist/q2-tecton-elements/q2-form.entry.js +7 -7
  330. package/dist/q2-tecton-elements/q2-form.entry.js.map +1 -1
  331. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +1 -1
  332. package/dist/q2-tecton-elements/q2-grid-area.entry.js +1 -1
  333. package/dist/q2-tecton-elements/q2-grid.entry.js +1 -1
  334. package/dist/q2-tecton-elements/q2-item.entry.esm.js.map +1 -1
  335. package/dist/q2-tecton-elements/q2-item.entry.js +9 -9
  336. package/dist/q2-tecton-elements/q2-legend.entry.js +1 -1
  337. package/dist/q2-tecton-elements/q2-link_2.entry.js +2 -2
  338. package/dist/q2-tecton-elements/q2-loading-element.entry.js +2 -2
  339. package/dist/q2-tecton-elements/q2-loc.entry.js +2 -2
  340. package/dist/q2-tecton-elements/q2-message.entry.js +2 -2
  341. package/dist/q2-tecton-elements/q2-modal.entry.js +2 -2
  342. package/dist/q2-tecton-elements/q2-month-picker.entry.js +2 -2
  343. package/dist/q2-tecton-elements/q2-optgroup.entry.esm.js.map +1 -1
  344. package/dist/q2-tecton-elements/q2-optgroup.entry.js +3 -3
  345. package/dist/q2-tecton-elements/q2-optgroup.entry.js.map +1 -1
  346. package/dist/q2-tecton-elements/q2-option-list.q2-popover.entry.esm.js.map +1 -1
  347. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +17 -17
  348. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -1
  349. package/dist/q2-tecton-elements/q2-option.entry.js +2 -2
  350. package/dist/q2-tecton-elements/q2-pagination.entry.js +2 -2
  351. package/dist/q2-tecton-elements/q2-pill.entry.esm.js.map +1 -1
  352. package/dist/q2-tecton-elements/q2-pill.entry.js +40 -38
  353. package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -1
  354. package/dist/q2-tecton-elements/q2-radio-group.entry.esm.js.map +1 -1
  355. package/dist/q2-tecton-elements/q2-radio-group.entry.js +44 -44
  356. package/dist/q2-tecton-elements/q2-radio-group.entry.js.map +1 -1
  357. package/dist/q2-tecton-elements/q2-radio.entry.esm.js.map +1 -1
  358. package/dist/q2-tecton-elements/q2-radio.entry.js +20 -20
  359. package/dist/q2-tecton-elements/q2-radio.entry.js.map +1 -1
  360. package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
  361. package/dist/q2-tecton-elements/q2-section.entry.js +2 -2
  362. package/dist/q2-tecton-elements/q2-select.entry.js +2 -2
  363. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +2 -2
  364. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.esm.js.map +1 -1
  365. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +3 -3
  366. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js.map +1 -1
  367. package/dist/q2-tecton-elements/q2-stepper.entry.esm.js.map +1 -1
  368. package/dist/q2-tecton-elements/q2-stepper.entry.js +33 -33
  369. package/dist/q2-tecton-elements/q2-stepper.entry.js.map +1 -1
  370. package/dist/q2-tecton-elements/q2-tag.entry.esm.js.map +1 -1
  371. package/dist/q2-tecton-elements/q2-tag.entry.js +38 -38
  372. package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -1
  373. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +3 -3
  374. package/dist/q2-tecton-elements/q2-textarea.entry.esm.js.map +1 -1
  375. package/dist/q2-tecton-elements/q2-textarea.entry.js +18 -18
  376. package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
  377. package/dist/q2-tecton-elements/q2-tooltip.entry.js +2 -2
  378. package/dist/q2-tecton-elements/{shapes-BrIjALih.js → shapes-B6iI6sMH.js} +41 -40
  379. package/dist/q2-tecton-elements/shapes-B6iI6sMH.js.map +1 -0
  380. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +4 -4
  381. package/dist/types/components/q2-form/q2-form.d.ts +1 -1
  382. package/dist/types/components/q2-icon/q2-icon.d.ts +0 -5
  383. package/dist/types/components/q2-input/q2-input.d.ts +2 -0
  384. package/dist/types/components/q2-loading/q2-loading.d.ts +32 -7
  385. package/dist/types/components/q2-optgroup/q2-optgroup.d.ts +2 -2
  386. package/dist/types/components/q2-pill/q2-pill.d.ts +1 -1
  387. package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +4 -2
  388. package/dist/types/components.d.ts +16 -6
  389. package/dist/types/utils/sprites.d.ts +5 -0
  390. package/package.json +4 -3
  391. package/dist/cjs/index-JnAD7tEB.js.map +0 -1
  392. package/dist/cjs/shapes-CUFxQAvI.js.map +0 -1
  393. package/dist/esm/index-COzomxjJ.js.map +0 -1
  394. package/dist/esm/shapes-BrIjALih.js.map +0 -1
  395. package/dist/q2-tecton-elements/index-COzomxjJ.js.map +0 -1
  396. package/dist/q2-tecton-elements/shapes-BrIjALih.js.map +0 -1
@@ -1,13 +1,13 @@
1
- import { r as t, c as i, h as r, F as a, g as o } from "./index-COzomxjJ.js";
1
+ import { r as t, c as r, h as i, F as a, g as o } from "./index-CGkHOjh1.js";
2
2
 
3
- import { c as e, o as n, a as s, r as d } from "./index-CkXFIBxL.js";
3
+ import { c as e, o as n, a as s, r as d } from "./index-xCuy-dFb.js";
4
4
 
5
- const l = '*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{--comp-default-radio-group-margin:var(--tct-radio-group-margin-top, var(--t-radio-group-margin-top, var(--app-scale-5x, 25px))) 0 var(--tct-radio-group-margin-bottom, var(--t-radio-group-margin-bottom, var(--app-scale-5x, 25px)));display:block;margin:var(--tct-radio-group-margin, var(--comp-default-radio-group-margin))}fieldset{padding:var(--tct-radio-group-fieldset-padding, 0);margin:0;border:0;position:relative}.label-row{display:grid;grid-template-columns:1fr 24px;grid-template-areas:"label icon";column-gap:var(--tct-radio-group-label-column-gap, var(--app-scale-2x, 10px))}.label-row q2-icon{grid-area:icon;margin-top:-2px;margin-bottom:-2px}.group-legend{font-weight:600}legend.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0}.optional-tag{margin-left:var(--tct-radio-group-label-optional-margin-left, var(--app-scale-1x, 5px));color:var(--tct-radio-group-label-optional-color, var(--t-radio-group-label-optional-color, var(--tct-a11y-color, var(--t-a11y-color, var(--tct-a11y-gray-color, var(--t-a11y-gray-color, var(--tct-gray-7, var(--t-gray-7, var(--tct-gray-d1, var(--t-gray-d1, var(--app-gray-d1, rgba(77, 77, 77, 0.77))))))))))));font-size:var(--tct-radio-group-label-optional-font-size, var(--t-radio-group-label-optional-font-size, 12px));font-weight:var(--tct-radio-group-label-optional-font-weight, var(--t-radio-group-label-optional-font-weight, 400))}.tile-container,.tile-container .options-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;flex-grow:1}.options-container{--comp-default-margin:var(--app-scale-1x, 5px) 0;--comp-options-margin:var(--tct-radio-group-options-margin, var(--t-radio-group-options-margin, var(--comp-default-margin, 5px 0)));margin:var(--comp-options-margin);padding:var(--tct-radio-group-options-padding, var(--t-radio-group-options-padding, var(--app-scale-0x, 0px)));border-width:1px;border-color:transparent;border-style:solid;border-radius:var(--tct-radio-group-border-radius, var(--app-border-radius-1, 4px))}:host([has-error]) .options-container{border-color:var(--tct-radio-group-error-border-color, var(--const-stoplight-alert, #d20a0a))}:host([has-error=false]) .options-container{border-color:transparent}.tile-container.left{justify-content:start}.tile-container.right{justify-content:end}.tile-container .options-container{gap:var(--tct-radio-group-tile-gap, var(--t-radio-group-tile-gap, var(--app-scale-2x, 10px)));justify-content:inherit}';
5
+ const l = '*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{--comp-default-radio-group-margin:var(--tct-radio-group-margin-top, var(--t-radio-group-margin-top, var(--app-scale-5x, 25px))) 0 var(--tct-radio-group-margin-bottom, var(--t-radio-group-margin-bottom, var(--app-scale-5x, 25px)));display:block;margin:var(--tct-radio-group-margin, var(--comp-default-radio-group-margin))}fieldset{padding:var(--tct-radio-group-fieldset-padding, 0);margin:0;border:0;position:relative}.label-row{display:grid;grid-template-columns:1fr 24px;grid-template-areas:"label icon";column-gap:var(--tct-radio-group-label-column-gap, var(--app-scale-2x, 10px));color:var(--tct-radio-group-label-font-color, inherit);font-size:var(--tct-radio-group-label-font-size, inherit);font-weight:var(--tct-radio-group-label-font-weight, 600);text-transform:var(--tct-radio-group-label-text-transform, none);letter-spacing:var(--tct-radio-group-label-letter-spacing, inherit)}.label-row q2-icon{grid-area:icon;margin-top:-2px;margin-bottom:-2px}.group-legend{font-weight:600}legend.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0}.optional-tag{margin-left:var(--tct-radio-group-label-optional-margin-left, var(--app-scale-1x, 5px));color:var(--tct-radio-group-label-optional-color, var(--t-radio-group-label-optional-color, var(--tct-a11y-color, var(--t-a11y-color, var(--tct-a11y-gray-color, var(--t-a11y-gray-color, var(--tct-gray-7, var(--t-gray-7, var(--tct-gray-d1, var(--t-gray-d1, var(--app-gray-d1, rgba(77, 77, 77, 0.77))))))))))));font-size:var(--tct-radio-group-label-optional-font-size, var(--t-radio-group-label-optional-font-size, 12px));font-weight:var(--tct-radio-group-label-optional-font-weight, var(--t-radio-group-label-optional-font-weight, 400))}.tile-container,.tile-container .options-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;flex-grow:1}.options-container{--comp-default-margin:var(--app-scale-1x, 5px) 0;--comp-options-margin:var(--tct-radio-group-options-margin, var(--t-radio-group-options-margin, var(--comp-default-margin, 5px 0)));margin:var(--comp-options-margin);padding:var(--tct-radio-group-options-padding, var(--t-radio-group-options-padding, var(--app-scale-0x, 0px)));border-width:1px;border-color:transparent;border-style:solid;border-radius:var(--tct-radio-group-border-radius, var(--app-border-radius-1, 4px))}:host([has-error]) .options-container{border-color:var(--tct-radio-group-error-border-color, var(--const-stoplight-alert, #d20a0a))}:host([has-error=false]) .options-container{border-color:transparent}.tile-container.left{justify-content:start}.tile-container.right{justify-content:end}.tile-container .options-container{gap:var(--tct-radio-group-tile-gap, var(--t-radio-group-tile-gap, var(--app-scale-2x, 10px)));justify-content:inherit}';
6
6
 
7
7
  const p = class {
8
- constructor(r) {
9
- t(this, r);
10
- this.change = i(this, "change", 7);
8
+ constructor(i) {
9
+ t(this, i);
10
+ this.change = r(this, "change", 7);
11
11
  // #region Own Properties
12
12
  this._id = `radio-group-${e()}`;
13
13
  // #endregion
@@ -68,12 +68,12 @@ const p = class {
68
68
  }
69
69
  delegateFocus(t) {
70
70
  if (!s(t, this.hostElement)) return;
71
- const i = this.hostElement.querySelector("q2-radio[checked]") || this.hostElement.querySelector("q2-radio");
72
- i === null || i === void 0 ? void 0 : i.dispatchEvent(new FocusEvent("focus"));
71
+ const r = this.hostElement.querySelector("q2-radio[checked]") || this.hostElement.querySelector("q2-radio");
72
+ r === null || r === void 0 ? void 0 : r.dispatchEvent(new FocusEvent("focus"));
73
73
  }
74
74
  keydownHandler(t) {
75
- const i = t.target.getAttribute("value") || this.value;
76
- let r = this.radioElements.findIndex((r => r === t.target || r.getAttribute("value") === i));
75
+ const r = t.target.getAttribute("value") || this.value;
76
+ let i = this.radioElements.findIndex((i => i === t.target || i.getAttribute("value") === r));
77
77
  let a = 0;
78
78
  switch (t.key) {
79
79
  case "ArrowLeft":
@@ -86,16 +86,16 @@ const p = class {
86
86
  a = 1;
87
87
  break;
88
88
  }
89
- if (r === -1 || a === 0) {
89
+ if (i === -1 || a === 0) {
90
90
  return;
91
91
  }
92
- r += a;
93
- r = a < 0 ? Math.max(0, r) : Math.min(this.radioElements.length - 1, r);
92
+ i += a;
93
+ i = a < 0 ? Math.max(0, i) : Math.min(this.radioElements.length - 1, i);
94
94
  t.preventDefault();
95
95
  if (!this.readonly) {
96
- this.value = this.radioElements[r].value;
96
+ this.value = this.radioElements[i].value;
97
97
  }
98
- this.radioElements[r].dispatchEvent(new FocusEvent("focus"));
98
+ this.radioElements[i].dispatchEvent(new FocusEvent("focus"));
99
99
  }
100
100
  // #endregion
101
101
  // #region Public Methods API
@@ -105,9 +105,9 @@ const p = class {
105
105
  * @testOnly
106
106
  */
107
107
  setValue(t) {
108
- this.radioElements.forEach((i => {
109
- if (t !== i.value) return;
110
- i.click();
108
+ this.radioElements.forEach((r => {
109
+ if (t !== r.value) return;
110
+ r.click();
111
111
  }));
112
112
  }
113
113
  // #endregion
@@ -124,7 +124,7 @@ const p = class {
124
124
  }
125
125
  readonlyUpdated() {
126
126
  const t = this.readonly;
127
- this.radioElements.forEach((i => i.groupReadonly = t));
127
+ this.radioElements.forEach((r => r.groupReadonly = t));
128
128
  }
129
129
  handleDeprecatedTilelayout(t) {
130
130
  if (typeof t !== "boolean") return;
@@ -132,19 +132,19 @@ const p = class {
132
132
  this.tilelayout = undefined;
133
133
  }
134
134
  tileLayoutUpdated(t) {
135
- this.radioElements.forEach((i => {
136
- i.groupTileLayout = t;
135
+ this.radioElements.forEach((r => {
136
+ r.groupTileLayout = t;
137
137
  }));
138
138
  }
139
139
  valueUpdated(t) {
140
- this.radioElements.forEach((i => {
141
- i.checked = t === i.value;
140
+ this.radioElements.forEach((r => {
141
+ r.checked = t === r.value;
142
142
  // Removes checked attribute from trailing radios, if multiple individual radio's are intially checked (checked={true}) at componentDidLoad
143
- if (!i.checked) {
144
- i.removeAttribute("checked");
145
- i.tabIndex = -1;
146
- } else if (i.checked) {
147
- i.tabIndex = 0;
143
+ if (!r.checked) {
144
+ r.removeAttribute("checked");
145
+ r.tabIndex = -1;
146
+ } else if (r.checked) {
147
+ r.tabIndex = 0;
148
148
  }
149
149
  }));
150
150
  }
@@ -159,41 +159,41 @@ const p = class {
159
159
  inputDom() {
160
160
  if (this.tileLayout) {
161
161
  const {tileAlignment: t} = this;
162
- const i = [ "left", "center", "right" ].includes(t) ? t : "center";
163
- return r("div", {
164
- class: `tile-container ${i}`
165
- }, r("div", {
162
+ const r = [ "left", "center", "right" ].includes(t) ? t : "center";
163
+ return i("div", {
164
+ class: `tile-container ${r}`
165
+ }, i("div", {
166
166
  class: "options-container"
167
- }, r("slot", null)));
167
+ }, i("slot", null)));
168
168
  } else {
169
- return r("div", {
169
+ return i("div", {
170
170
  class: "options-container"
171
- }, r("slot", null));
171
+ }, i("slot", null));
172
172
  }
173
173
  }
174
174
  // #endregion
175
175
  // #region Render Methods
176
176
  render() {
177
177
  const t = this.label || this.optional || this.readonly;
178
- const {hasError: i} = this;
179
- const o = t && !this.hideLabel || i;
180
- return r(a, {
178
+ const {hasError: r} = this;
179
+ const o = t && !this.hideLabel || r;
180
+ return i(a, {
181
181
  key: "d96af26ee95e438ad99e1ca79b8badee70aa903c"
182
- }, o && r("div", {
182
+ }, o && i("div", {
183
183
  key: "642204bf8eb9650aea78e1d7fd763473d6e35b8f",
184
184
  class: "label-row"
185
- }, t && !this.hideLabel && r("div", {
185
+ }, t && !this.hideLabel && i("div", {
186
186
  key: "af8059074c6abc628d4185cd8ad77099db64fa2c",
187
187
  class: "group-legend"
188
- }, d(this)), i && r("q2-icon", {
188
+ }, d(this)), r && i("q2-icon", {
189
189
  key: "e444f535c38920906289b3030dd14a360c197d04",
190
190
  type: "error",
191
191
  "test-id": "iconError"
192
- })), r("fieldset", {
192
+ })), i("fieldset", {
193
193
  key: "8ebc82bd13fd41c14ddea75c5cb6025f6dff1c2f",
194
194
  onChange: this.onInnerRadioChange,
195
- "aria-invalid": i ? `${i}` : undefined
196
- }, t && r("legend", {
195
+ "aria-invalid": r ? `${r}` : undefined
196
+ }, t && i("legend", {
197
197
  key: "3b7fd0a58f9332b4bae1a1b79250e980c668569d",
198
198
  class: "sr-only"
199
199
  }, d(this)), this.inputDom()));
@@ -1 +1 @@
1
- {"version":3,"names":["q2RadioGroupCss","Q2RadioGroup","constructor","hostRef","this","_id","createGuid","disabled","hasError","tileAlignment","checkedRadioExists","firstCheckedRadio","radioElements","find","radio","checked","undefined","value","length","tabIndex","onInnerRadioChange","event","stopImmediatePropagation","readonly","change","emit","detail","onMutationObserved","valueUpdated","nameUpdated","disabledUpdated","readonlyUpdated","tileLayoutUpdated","tileLayout","componentWillLoad","handleDeprecatedTilelayout","tilelayout","componentDidLoad","observer","MutationObserver","observe","hostElement","childList","mutationObserver","overrideFocus","onHostElementChange","target","onchange","delegateFocus","isEventFromElement","querySelector","dispatchEvent","FocusEvent","keydownHandler","currentValue","getAttribute","index","findIndex","el","sign","key","Math","max","min","preventDefault","setValue","forEach","click","groupDisabled","name","groupReadonly","groupTileLayout","newVal","removeAttribute","inputId","Array","from","querySelectorAll","inputDom","alignment","includes","h","class","render","showLabel","label","optional","showLabelRow","hideLabel","Fragment","renderLabel","type","onChange"],"sources":["src/components/q2-radio-group/q2-radio-group.scss?tag=q2-radio-group&encapsulation=shadow","src/components/q2-radio-group/q2-radio-group.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n --comp-default-radio-group-margin: #{var-list(var-prefixer(radio-group-margin-top), --app-scale-5x, 25px) 0\n var-list(var-prefixer(radio-group-margin-bottom), --app-scale-5x, 25px)};\n display: block;\n margin: var-list(--tct-radio-group-margin, --comp-default-radio-group-margin);\n}\n\nfieldset {\n padding: var(--tct-radio-group-fieldset-padding, 0);\n margin: 0;\n border: 0;\n position: relative;\n}\n\n.label-row {\n display: grid;\n grid-template-columns: 1fr 24px;\n grid-template-areas: 'label icon';\n column-gap: var(--tct-radio-group-label-column-gap, var(--app-scale-2x, 10px));\n\n q2-icon {\n grid-area: icon;\n margin-top: -2px;\n margin-bottom: -2px;\n }\n}\n\n.group-legend {\n font-weight: 600;\n}\n\nlegend.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n border: 0;\n}\n\n.optional-tag {\n margin-left: var-list(--tct-radio-group-label-optional-margin-left, --app-scale-1x, 5px);\n color: var-list(\n var-prefixer(radio-group-label-optional-color),\n var-prefixer(a11y-color),\n var-prefixer(a11y-gray-color),\n var-prefixer(gray-7),\n var-prefixer(gray-d1),\n --app-gray-d1,\n rgba(77, 77, 77, 0.77)\n );\n font-size: var-list(var-prefixer(radio-group-label-optional-font-size), 12px);\n font-weight: var-list(var-prefixer(radio-group-label-optional-font-weight), 400);\n}\n\n.tile-container {\n &,\n .options-container {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n flex-grow: 1;\n }\n}\n\n.options-container {\n --comp-default-margin: #{var-list(--app-scale-1x, 5px)} 0;\n --comp-options-margin: #{var-list(var-prefixer(radio-group-options-margin), --comp-default-margin, unquote('5px 0'))};\n margin: var(--comp-options-margin);\n padding: var-list(var-prefixer(radio-group-options-padding), --app-scale-0x, 0px);\n border-width: 1px;\n border-color: transparent;\n border-style: solid;\n border-radius: var-list(--tct-radio-group-border-radius, --app-border-radius-1, 4px);\n\n :host([has-error]) & {\n border-color: var-list(--tct-radio-group-error-border-color, --const-stoplight-alert, #d20a0a);\n }\n :host([has-error='false']) & {\n border-color: transparent;\n }\n}\n\n.tile-container {\n &.left {\n justify-content: start;\n }\n &.right {\n justify-content: end;\n }\n\n .options-container {\n gap: var-list(var-prefixer(radio-group-tile-gap), --app-scale-2x, 10px);\n justify-content: inherit;\n }\n}\n","import {\n Component,\n Prop,\n Element,\n h,\n Listen,\n EventEmitter,\n Event,\n ComponentInterface,\n Watch,\n Fragment,\n Method,\n} from '@stencil/core';\nimport { createGuid, isEventFromElement, overrideFocus, renderLabel } from 'src/utils';\n\n/** @slot label - An optional slot to display a custom label. */\n@Component({ tag: 'q2-radio-group', shadow: true, styleUrl: 'q2-radio-group.scss' })\nexport class Q2RadioGroup implements ComponentInterface {\n // #region Own Properties\n\n _id: string = `radio-group-${createGuid()}`;\n mutationObserver: MutationObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Determines if all radios in the group are put into a `disabled` state. */\n @Prop({ reflect: true })\n disabled: boolean = false;\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 group's `<label>` element from view.\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Text for the fieldset legend describing the radio group.\n * @localizable\n */\n @Prop({ reflect: true })\n label: string;\n\n /** Identifier which ties all radios together for accessibility and DOM selection. */\n @Prop({ reflect: true })\n name: string;\n\n /** Appends \"(optional)\" to the group label, and sets `aria-required` on the nested input tag to `false`. */\n @Prop({ reflect: true })\n optional: boolean;\n\n /** Determines if all radios in the group can be focused, but not interacted with. */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /** Provides alignment direction for tile-style radio group. */\n @Prop({ reflect: true })\n tileAlignment: 'left' | 'center' | 'right' = 'center';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n tilelayout: boolean;\n\n /** Show the radio group as a horizontal set of tiles. */\n @Prop({ reflect: true, mutable: true })\n tileLayout: boolean;\n\n /** The `value` of the currently selected `q2-radio` within the `q2-radio-group`. */\n @Prop({ mutable: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the value of the radio group changes.\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{ value: string }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.checkedRadioExists();\n this.onMutationObserved();\n this.handleDeprecatedTilelayout(this.tilelayout);\n }\n\n componentDidLoad() {\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true });\n this.mutationObserver = observer;\n overrideFocus(this.hostElement);\n this.checkedRadioExists();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n if (event.target === this.hostElement) {\n if (!this.hostElement.onchange) {\n this.value = event.detail.value;\n }\n }\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n const radio = this.hostElement.querySelector('q2-radio[checked]') || this.hostElement.querySelector('q2-radio');\n radio?.dispatchEvent(new FocusEvent('focus'));\n }\n\n @Listen('keydown')\n keydownHandler(event: KeyboardEvent) {\n const currentValue = (event.target as HTMLElement).getAttribute('value') || this.value;\n let index = this.radioElements.findIndex(\n el => el === event.target || (el as HTMLElement).getAttribute('value') === currentValue\n );\n let sign = 0;\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n sign = -1;\n break;\n\n case 'ArrowRight':\n case 'ArrowDown':\n sign = 1;\n break;\n }\n\n if (index === -1 || sign === 0) {\n return;\n }\n index += sign;\n index = sign < 0 ? Math.max(0, index) : Math.min(this.radioElements.length - 1, index);\n event.preventDefault();\n if (!this.readonly) {\n this.value = this.radioElements[index].value;\n }\n this.radioElements[index].dispatchEvent(new FocusEvent('focus'));\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the `<q2-radio>` option with the provided value.\n *\n * @testOnly\n */\n @Method()\n setValue(value: string) {\n this.radioElements.forEach(radio => {\n if (value !== radio.value) return;\n radio.click();\n });\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('disabled')\n disabledUpdated() {\n this.radioElements.forEach(radio => {\n radio.groupDisabled = this.disabled;\n });\n }\n\n @Watch('name')\n nameUpdated() {\n this.radioElements.forEach(radio => {\n radio.name = this.name || this._id;\n });\n }\n\n @Watch('readonly')\n readonlyUpdated() {\n const readonly = this.readonly;\n this.radioElements.forEach(radio => (radio.groupReadonly = readonly));\n }\n\n @Watch('tilelayout')\n handleDeprecatedTilelayout(tilelayout: boolean) {\n if (typeof tilelayout !== 'boolean') return;\n this.tileLayout = tilelayout;\n this.tilelayout = undefined;\n }\n\n @Watch('tileLayout')\n tileLayoutUpdated(tileLayout: boolean) {\n this.radioElements.forEach(radio => {\n radio.groupTileLayout = tileLayout;\n });\n }\n\n @Watch('value')\n valueUpdated(newVal: string) {\n this.radioElements.forEach(radio => {\n radio.checked = newVal === radio.value;\n // Removes checked attribute from trailing radios, if multiple individual radio's are intially checked (checked={true}) at componentDidLoad\n if (!radio.checked) {\n radio.removeAttribute('checked');\n radio.tabIndex = -1;\n } else if (radio.checked) {\n radio.tabIndex = 0;\n }\n });\n }\n\n // #endregion\n // #region Local Methods\n\n get inputId() {\n return this._id;\n }\n\n get radioElements() {\n return Array.from(this.hostElement.querySelectorAll('q2-radio')) as HTMLQ2RadioElement[];\n }\n\n checkedRadioExists = () => {\n // Returns first checked individual q2-radio or undefined if none are set to checked={true}\n const firstCheckedRadio = this.radioElements.find(radio => radio.checked === true) || undefined;\n\n // Changes radio-group[\"value\"] if inital value is not set and if a any individual q2-radio is checked\n if (!this.value && !!firstCheckedRadio) {\n this.value = firstCheckedRadio.value;\n } else if (!this.value && !firstCheckedRadio) {\n // if no radios are meant to be checked, then assign first radio tabIndex of 0\n if (this.radioElements.length) this.radioElements[0].tabIndex = 0;\n }\n };\n\n inputDom() {\n if (this.tileLayout) {\n const { tileAlignment } = this;\n const alignment = ['left', 'center', 'right'].includes(tileAlignment) ? tileAlignment : 'center';\n return (\n <div class={`tile-container ${alignment}`}>\n <div class=\"options-container\">\n <slot />\n </div>\n </div>\n );\n } else {\n return (\n <div class=\"options-container\">\n <slot />\n </div>\n );\n }\n }\n\n onInnerRadioChange = (event: CustomEvent) => {\n event.stopImmediatePropagation();\n if (this.readonly) return;\n\n this.change.emit({ value: event.detail.value });\n };\n\n onMutationObserved = () => {\n this.valueUpdated(this.value);\n this.nameUpdated();\n this.disabledUpdated();\n this.readonlyUpdated();\n this.tileLayoutUpdated(this.tileLayout);\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const showLabel = this.label || this.optional || this.readonly;\n const { hasError } = this;\n const showLabelRow = (showLabel && !this.hideLabel) || hasError;\n return (\n <Fragment>\n {showLabelRow && (\n <div class=\"label-row\">\n {showLabel && !this.hideLabel && <div class=\"group-legend\">{renderLabel(this)}</div>}\n {hasError && (\n <q2-icon\n type=\"error\"\n test-id=\"iconError\"\n ></q2-icon>\n )}\n </div>\n )}\n <fieldset\n onChange={this.onInnerRadioChange}\n aria-invalid={hasError ? `${hasError}` : undefined}\n >\n {showLabel && <legend class=\"sr-only\">{renderLabel(this)}</legend>}\n {this.inputDom()}\n </fieldset>\n </Fragment>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["q2RadioGroupCss","Q2RadioGroup","constructor","hostRef","this","_id","createGuid","disabled","hasError","tileAlignment","checkedRadioExists","firstCheckedRadio","radioElements","find","radio","checked","undefined","value","length","tabIndex","onInnerRadioChange","event","stopImmediatePropagation","readonly","change","emit","detail","onMutationObserved","valueUpdated","nameUpdated","disabledUpdated","readonlyUpdated","tileLayoutUpdated","tileLayout","componentWillLoad","handleDeprecatedTilelayout","tilelayout","componentDidLoad","observer","MutationObserver","observe","hostElement","childList","mutationObserver","overrideFocus","onHostElementChange","target","onchange","delegateFocus","isEventFromElement","querySelector","dispatchEvent","FocusEvent","keydownHandler","currentValue","getAttribute","index","findIndex","el","sign","key","Math","max","min","preventDefault","setValue","forEach","click","groupDisabled","name","groupReadonly","groupTileLayout","newVal","removeAttribute","inputId","Array","from","querySelectorAll","inputDom","alignment","includes","h","class","render","showLabel","label","optional","showLabelRow","hideLabel","Fragment","renderLabel","type","onChange"],"sources":["src/components/q2-radio-group/q2-radio-group.scss?tag=q2-radio-group&encapsulation=shadow","src/components/q2-radio-group/q2-radio-group.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n --comp-default-radio-group-margin: #{var-list(var-prefixer(radio-group-margin-top), --app-scale-5x, 25px) 0\n var-list(var-prefixer(radio-group-margin-bottom), --app-scale-5x, 25px)};\n display: block;\n margin: var-list(--tct-radio-group-margin, --comp-default-radio-group-margin);\n}\n\nfieldset {\n padding: var(--tct-radio-group-fieldset-padding, 0);\n margin: 0;\n border: 0;\n position: relative;\n}\n\n.label-row {\n display: grid;\n grid-template-columns: 1fr 24px;\n grid-template-areas: 'label icon';\n column-gap: var(--tct-radio-group-label-column-gap, var(--app-scale-2x, 10px));\n\n color: var-list(--tct-radio-group-label-font-color, inherit);\n font-size: var-list(--tct-radio-group-label-font-size, inherit);\n font-weight: var-list(--tct-radio-group-label-font-weight, 600);\n text-transform: var-list(--tct-radio-group-label-text-transform, none);\n letter-spacing: var-list(--tct-radio-group-label-letter-spacing, inherit);\n\n q2-icon {\n grid-area: icon;\n margin-top: -2px;\n margin-bottom: -2px;\n }\n}\n\n.group-legend {\n font-weight: 600;\n}\n\nlegend.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n border: 0;\n}\n\n.optional-tag {\n margin-left: var-list(--tct-radio-group-label-optional-margin-left, --app-scale-1x, 5px);\n color: var-list(\n var-prefixer(radio-group-label-optional-color),\n var-prefixer(a11y-color),\n var-prefixer(a11y-gray-color),\n var-prefixer(gray-7),\n var-prefixer(gray-d1),\n --app-gray-d1,\n rgba(77, 77, 77, 0.77)\n );\n font-size: var-list(var-prefixer(radio-group-label-optional-font-size), 12px);\n font-weight: var-list(var-prefixer(radio-group-label-optional-font-weight), 400);\n}\n\n.tile-container {\n &,\n .options-container {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n flex-grow: 1;\n }\n}\n\n.options-container {\n --comp-default-margin: #{var-list(--app-scale-1x, 5px)} 0;\n --comp-options-margin: #{var-list(var-prefixer(radio-group-options-margin), --comp-default-margin, unquote('5px 0'))};\n margin: var(--comp-options-margin);\n padding: var-list(var-prefixer(radio-group-options-padding), --app-scale-0x, 0px);\n border-width: 1px;\n border-color: transparent;\n border-style: solid;\n border-radius: var-list(--tct-radio-group-border-radius, --app-border-radius-1, 4px);\n\n :host([has-error]) & {\n border-color: var-list(--tct-radio-group-error-border-color, --const-stoplight-alert, #d20a0a);\n }\n :host([has-error='false']) & {\n border-color: transparent;\n }\n}\n\n.tile-container {\n &.left {\n justify-content: start;\n }\n &.right {\n justify-content: end;\n }\n\n .options-container {\n gap: var-list(var-prefixer(radio-group-tile-gap), --app-scale-2x, 10px);\n justify-content: inherit;\n }\n}\n","import {\n Component,\n Prop,\n Element,\n h,\n Listen,\n EventEmitter,\n Event,\n ComponentInterface,\n Watch,\n Fragment,\n Method,\n} from '@stencil/core';\nimport { createGuid, isEventFromElement, overrideFocus, renderLabel } from 'src/utils';\n\n/** @slot label - An optional slot to display a custom label. */\n@Component({ tag: 'q2-radio-group', shadow: true, styleUrl: 'q2-radio-group.scss' })\nexport class Q2RadioGroup implements ComponentInterface {\n // #region Own Properties\n\n _id: string = `radio-group-${createGuid()}`;\n mutationObserver: MutationObserver;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Determines if all radios in the group are put into a `disabled` state. */\n @Prop({ reflect: true })\n disabled: boolean = false;\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 group's `<label>` element from view.\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Text for the fieldset legend describing the radio group.\n * @localizable\n */\n @Prop({ reflect: true })\n label: string;\n\n /** Identifier which ties all radios together for accessibility and DOM selection. */\n @Prop({ reflect: true })\n name: string;\n\n /** Appends \"(optional)\" to the group label, and sets `aria-required` on the nested input tag to `false`. */\n @Prop({ reflect: true })\n optional: boolean;\n\n /** Determines if all radios in the group can be focused, but not interacted with. */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /** Provides alignment direction for tile-style radio group. */\n @Prop({ reflect: true })\n tileAlignment: 'left' | 'center' | 'right' = 'center';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n tilelayout: boolean;\n\n /** Show the radio group as a horizontal set of tiles. */\n @Prop({ reflect: true, mutable: true })\n tileLayout: boolean;\n\n /** The `value` of the currently selected `q2-radio` within the `q2-radio-group`. */\n @Prop({ mutable: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the value of the radio group changes.\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{ value: string }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.checkedRadioExists();\n this.onMutationObserved();\n this.handleDeprecatedTilelayout(this.tilelayout);\n }\n\n componentDidLoad() {\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true });\n this.mutationObserver = observer;\n overrideFocus(this.hostElement);\n this.checkedRadioExists();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n if (event.target === this.hostElement) {\n if (!this.hostElement.onchange) {\n this.value = event.detail.value;\n }\n }\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n const radio = this.hostElement.querySelector('q2-radio[checked]') || this.hostElement.querySelector('q2-radio');\n radio?.dispatchEvent(new FocusEvent('focus'));\n }\n\n @Listen('keydown')\n keydownHandler(event: KeyboardEvent) {\n const currentValue = (event.target as HTMLElement).getAttribute('value') || this.value;\n let index = this.radioElements.findIndex(\n el => el === event.target || (el as HTMLElement).getAttribute('value') === currentValue\n );\n let sign = 0;\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n sign = -1;\n break;\n\n case 'ArrowRight':\n case 'ArrowDown':\n sign = 1;\n break;\n }\n\n if (index === -1 || sign === 0) {\n return;\n }\n index += sign;\n index = sign < 0 ? Math.max(0, index) : Math.min(this.radioElements.length - 1, index);\n event.preventDefault();\n if (!this.readonly) {\n this.value = this.radioElements[index].value;\n }\n this.radioElements[index].dispatchEvent(new FocusEvent('focus'));\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the `<q2-radio>` option with the provided value.\n *\n * @testOnly\n */\n @Method()\n setValue(value: string) {\n this.radioElements.forEach(radio => {\n if (value !== radio.value) return;\n radio.click();\n });\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('disabled')\n disabledUpdated() {\n this.radioElements.forEach(radio => {\n radio.groupDisabled = this.disabled;\n });\n }\n\n @Watch('name')\n nameUpdated() {\n this.radioElements.forEach(radio => {\n radio.name = this.name || this._id;\n });\n }\n\n @Watch('readonly')\n readonlyUpdated() {\n const readonly = this.readonly;\n this.radioElements.forEach(radio => (radio.groupReadonly = readonly));\n }\n\n @Watch('tilelayout')\n handleDeprecatedTilelayout(tilelayout: boolean) {\n if (typeof tilelayout !== 'boolean') return;\n this.tileLayout = tilelayout;\n this.tilelayout = undefined;\n }\n\n @Watch('tileLayout')\n tileLayoutUpdated(tileLayout: boolean) {\n this.radioElements.forEach(radio => {\n radio.groupTileLayout = tileLayout;\n });\n }\n\n @Watch('value')\n valueUpdated(newVal: string) {\n this.radioElements.forEach(radio => {\n radio.checked = newVal === radio.value;\n // Removes checked attribute from trailing radios, if multiple individual radio's are intially checked (checked={true}) at componentDidLoad\n if (!radio.checked) {\n radio.removeAttribute('checked');\n radio.tabIndex = -1;\n } else if (radio.checked) {\n radio.tabIndex = 0;\n }\n });\n }\n\n // #endregion\n // #region Local Methods\n\n get inputId() {\n return this._id;\n }\n\n get radioElements() {\n return Array.from(this.hostElement.querySelectorAll('q2-radio')) as HTMLQ2RadioElement[];\n }\n\n checkedRadioExists = () => {\n // Returns first checked individual q2-radio or undefined if none are set to checked={true}\n const firstCheckedRadio = this.radioElements.find(radio => radio.checked === true) || undefined;\n\n // Changes radio-group[\"value\"] if inital value is not set and if a any individual q2-radio is checked\n if (!this.value && !!firstCheckedRadio) {\n this.value = firstCheckedRadio.value;\n } else if (!this.value && !firstCheckedRadio) {\n // if no radios are meant to be checked, then assign first radio tabIndex of 0\n if (this.radioElements.length) this.radioElements[0].tabIndex = 0;\n }\n };\n\n inputDom() {\n if (this.tileLayout) {\n const { tileAlignment } = this;\n const alignment = ['left', 'center', 'right'].includes(tileAlignment) ? tileAlignment : 'center';\n return (\n <div class={`tile-container ${alignment}`}>\n <div class=\"options-container\">\n <slot />\n </div>\n </div>\n );\n } else {\n return (\n <div class=\"options-container\">\n <slot />\n </div>\n );\n }\n }\n\n onInnerRadioChange = (event: CustomEvent) => {\n event.stopImmediatePropagation();\n if (this.readonly) return;\n\n this.change.emit({ value: event.detail.value });\n };\n\n onMutationObserved = () => {\n this.valueUpdated(this.value);\n this.nameUpdated();\n this.disabledUpdated();\n this.readonlyUpdated();\n this.tileLayoutUpdated(this.tileLayout);\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const showLabel = this.label || this.optional || this.readonly;\n const { hasError } = this;\n const showLabelRow = (showLabel && !this.hideLabel) || hasError;\n return (\n <Fragment>\n {showLabelRow && (\n <div class=\"label-row\">\n {showLabel && !this.hideLabel && <div class=\"group-legend\">{renderLabel(this)}</div>}\n {hasError && (\n <q2-icon\n type=\"error\"\n test-id=\"iconError\"\n ></q2-icon>\n )}\n </div>\n )}\n <fieldset\n onChange={this.onInnerRadioChange}\n aria-invalid={hasError ? `${hasError}` : undefined}\n >\n {showLabel && <legend class=\"sr-only\">{renderLabel(this)}</legend>}\n {this.inputDom()}\n </fieldset>\n </Fragment>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"q2-radio.entry.esm.js","sources":["src/components/q2-radio/q2-radio.scss?tag=q2-radio&encapsulation=shadow","src/components/q2-radio/q2-radio.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n}\n\n.radio-container {\n --comp-radio-margin: #{var-list(\n --tct-radio-margin,\n unquote(\n '#{var-list(--tct-radio-margin-vertical, --tct-scale-2, 10px)} #{var-list(--tct-radio-margin-horizontal, --tct-scale-3, 15px)}'\n )\n )};\n margin: var(--comp-radio-margin);\n\n label[for] {\n color: var-list(--tct-radio-label-color, inherit);\n font-weight: var-list(--tct-radio-font-weight, --tct-checkbox-font-weight, 400);\n align-items: center;\n cursor: pointer;\n margin-right: var-list(--tct-radio-label-margin-right, 1rem);\n display: grid;\n grid-template-columns: 18px 1fr;\n gap: var-list(--tct-scale-1, --app-scale-1x, 5px);\n\n &.label-hidden {\n grid-template-columns: var(--tct-radio-label-hidden-columns, 18px 1fr);\n }\n }\n\n svg {\n border-radius: 50%;\n transition: box-shadow var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n outline: 0;\n width: 100%;\n }\n\n circle:nth-child(1) {\n stroke-width: 2;\n stroke: var-list(--tct-radio-stroke-color, --t-a11y-gray-color-AA, #949494);\n fill: var-list(--tct-radio-background-fill, transparent);\n }\n\n input {\n &:checked {\n & + label circle:nth-child(1) {\n fill: var-list(--tct-radio-checked-background-fill, --tct-radio-checked-bg, transparent);\n stroke: var-list(\n --tct-radio-checked-stroke-color,\n --tct-radio-stroke-color,\n --t-a11y-gray-color-AA,\n #949494\n );\n }\n & + label .label-content {\n font-weight: var-list(--tct-radio-checked-label-font-weight, --tct-checkbox-selected-font-weight, 600);\n letter-spacing: var-list(\n --tct-radio-checked-label-letter-spacing,\n --tct-checkbox-selected-letter-spacing,\n 0.25\n );\n color: var-list(--tct-radio-checked-label-font-color, --tct-radio-checked-label-color, inherit);\n }\n & + label circle:nth-child(2) {\n fill: var-list(--tct-radio-checked-fill, --tct-checkbox-check-stroke-color, --t-checkbox-fill, #2e2e2e);\n }\n }\n\n &:hover {\n & + label circle:nth-child(1) {\n fill: var-list(--tct-radio-hover-background-fill, transparent);\n stroke: var-list(\n --tct-radio-hover-stroke-color,\n --tct-radio-stroke-color,\n --t-a11y-gray-color-AA,\n #949494\n );\n }\n & + label .label-content {\n color: var-list(--tct-radio-hover-label-color, inherit);\n }\n }\n\n &:focus {\n & + label circle:nth-child(1) {\n fill: var-list(--tct-radio-focus-background-fill, transparent);\n stroke: var-list(\n --tct-radio-focus-stroke-color,\n --tct-checkbox-check-stroke-color,\n --t-checkbox-fill,\n #2e2e2e\n );\n }\n & + label .label-content {\n color: var-list(--tct-radio-focus-label-color, --tct-radio-checked-label-color, inherit);\n }\n }\n\n &:focus-visible {\n & + label svg {\n box-shadow: var(--const-double-focus-ring);\n }\n }\n }\n}\n\n.radio-tile {\n flex-basis: 100px;\n flex-grow: 0;\n flex-wrap: wrap;\n\n label[for] {\n color: var-list(--tct-radio-label-font-color, --tct-radio-label-color, inherit);\n align-items: center;\n border-radius: 3px;\n border: 2px solid var-list(--tct-radio-stroke-color, --t-a11y-gray-color-AA, #949494);\n background: var-list(--tct-radio-background-fill, transparent);\n cursor: pointer;\n display: block;\n padding: 10px;\n position: relative;\n text-align: center;\n transition: border-color var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n white-space: nowrap;\n }\n\n input {\n &:checked + label {\n border-color: var-list(\n --tct-radio-checked-stroke-color,\n var-prefixer(checkbox-check-stroke-color),\n --t-checkbox-fill,\n #2e2e2e\n );\n box-shadow: inset 0 0 0 2px #ffffff;\n background: var-list(--tct-radio-checked-background-fill, transparent);\n color: var-list(--tct-radio-checked-label-color, inherit);\n\n &:after {\n border-bottom-width: 3px;\n border-bottom: 5px solid\n var-list(\n --tct-radio-checked-stroke-color,\n var-prefixer(checkbox-check-stroke-color),\n --t-checkbox-fill,\n #2e2e2e\n );\n border-left-width: 5px;\n border-left: 8px solid transparent;\n border-right-width: 5px;\n border-right: 8px solid transparent;\n bottom: 0;\n content: '';\n height: 0;\n left: 50%;\n margin-left: -5px;\n position: absolute;\n width: 0;\n }\n }\n\n &:hover + label {\n border-color: var-list(\n --tct-radio-hover-stroke-color,\n --tct-radio-stroke-color,\n --t-a11y-gray-color-AA,\n #949494\n );\n background: var-list(--tct-radio-hover-background-fill, transparent);\n color: var-list(--tct-radio-hover-label-color, --tct-radio-label-color, inherit);\n }\n\n &:focus + label,\n &:focus:checked + label {\n border-color: var-list(\n --tct-radio-focus-stroke-color,\n var-prefixer(checkbox-check-stroke-color),\n --t-checkbox-fill,\n #2e2e2e\n );\n background: var-list(--tct-radio-focus-background-fill, transparent);\n box-shadow: var(--const-double-focus-ring), var-list(--tct-global-focus, unquote('0 0 0 2px #33b4ff'));\n color: var-list(--tct-radio-focus-label-color, --tct-radio-checked-label-color, inherit);\n }\n }\n}\n\ninput:disabled + label[for] {\n cursor: not-allowed;\n opacity: var-list(--tct-disabled-opacity, --app-disabled-opacity, 0.4);\n}\n","import { Component, Prop, h, Element, ComponentInterface, Listen, Watch, Event, EventEmitter } from '@stencil/core';\nimport { createGuid, handleAriaLabel, loc, overrideFocus } from 'src/utils';\n\n@Component({ tag: 'q2-radio', shadow: true, styleUrl: 'q2-radio.scss' })\nexport class Q2Radio implements ComponentInterface {\n // #region Own Properties\n\n _id: string = `radio-${createGuid()}`;\n inputField: HTMLInputElement;\n isLoaded: boolean = false;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** The state of the radio. This modifies the visual appearance of the element. */\n @Prop({ reflect: true, mutable: true })\n checked: boolean = false;\n\n /** Disables the radio and prevents interaction. */\n @Prop({ reflect: true })\n disabled: boolean = false;\n\n /**\n * Used by q2-radio-group to disable all options in the group\n * @private\n */\n @Prop({ reflect: false })\n groupDisabled: boolean = false;\n\n /**\n * Used by q2-radio-group to make all options in the group readonly\n * @private\n */\n @Prop({ reflect: false })\n groupReadonly: boolean = false;\n\n /**\n * Used by q2-radio-group to make the options display as tiles\n * @private\n */\n @Prop({ reflect: false })\n groupTileLayout: 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 * The text that describes the individual radio option.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /**\n * Used by q2-radio-group to apply a name to all options in the group\n * @private\n */\n @Prop({ reflect: true })\n name: string;\n\n /** The radio is non-interactive, but remains focusable. */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /** @private */\n @Prop()\n tabIndex: number = 0;\n\n /** The value that is returned in the `change` event that is emitted from the `q2-radio-group`. */\n @Prop({ reflect: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the radio is checked.\n */\n @Event()\n change: EventEmitter<{ value: string }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n handleAriaLabel(this);\n }\n\n componentDidLoad(): void {\n this.isLoaded = true;\n overrideFocus(this.hostElement);\n this.hostElement.click = () => {\n this.inputField.focus();\n this.inputField.click();\n };\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click')\n onHostClick(event: Event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n } else if (this.groupReadonly) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.inputField.focus();\n }\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (event.target === this.hostElement) {\n this.inputField.focus();\n }\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('checked')\n checkedObserver() {\n if (!this.isLoaded) return;\n if (!this.checked) return;\n this.change.emit({ value: this.value });\n }\n\n // #endregion\n // #region Local Methods\n\n inputChange = (event: Event) => {\n event.stopPropagation();\n if (this.disabled || this.readonly || this.groupReadonly || this.groupDisabled) {\n event.preventDefault();\n return false;\n }\n\n if (event.target instanceof HTMLInputElement) {\n this.checked = event.target.checked;\n }\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div class={this.groupTileLayout ? 'radio-tile' : 'radio-container'}>\n <input\n ref={el => (this.inputField = el)}\n class=\"sr\"\n id={this._id}\n type=\"radio\"\n name={this.name}\n value={this.value}\n disabled={this.disabled || this.groupDisabled}\n checked={this.checked}\n aria-label={this.label && this.hideLabel ? loc(this.label) : undefined}\n onChange={this.inputChange}\n test-id=\"q2RadioInnerRadioBox\"\n ></input>\n\n <label\n htmlFor={this._id}\n class={this.hideLabel ? 'label-hidden' : undefined}\n test-id=\"radioButton\"\n >\n {!this.groupTileLayout && (\n <svg viewBox=\"0 0 18 18\">\n <circle\n stroke=\"none\"\n fill=\"none\"\n cx=\"9\"\n cy=\"9\"\n r=\"8\"\n />\n <circle\n stroke=\"none\"\n fill=\"none\"\n cx=\"9\"\n cy=\"9\"\n r=\"4\"\n />\n </svg>\n )}\n {!this.hideLabel && (\n <div class=\"label-content\">\n {(this.label && loc(this.label)) || ''}\n <slot></slot>\n </div>\n )}\n </label>\n </div>\n );\n }\n\n // #endregion\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"q2-radio.entry.esm.js","sources":["src/components/q2-radio/q2-radio.scss?tag=q2-radio&encapsulation=shadow","src/components/q2-radio/q2-radio.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n}\n\n.radio-container {\n --comp-radio-margin: #{var-list(\n --tct-radio-margin,\n unquote(\n '#{var-list(--tct-radio-margin-vertical, --tct-scale-2, 10px)} #{var-list(--tct-radio-margin-horizontal, --tct-scale-3, 15px)}'\n )\n )};\n margin: var(--comp-radio-margin);\n\n label[for] {\n color: var-list(--tct-radio-label-font-color, --tct-radio-label-color, inherit);\n font-weight: var-list(--tct-radio-font-weight, --tct-checkbox-font-weight, 400);\n align-items: center;\n cursor: pointer;\n margin-right: var-list(--tct-radio-label-margin-right, 1rem);\n display: grid;\n grid-template-columns: 18px 1fr;\n gap: var-list(--tct-scale-1, --app-scale-1x, 5px);\n\n &.label-hidden {\n grid-template-columns: var(--tct-radio-label-hidden-columns, 18px 1fr);\n }\n }\n\n svg {\n border-radius: 50%;\n transition: box-shadow var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n outline: 0;\n width: 100%;\n box-shadow: var-list(--tct-radio-box-shadow, none);\n }\n\n circle:nth-child(1) {\n stroke-width: var-list(--tct-radio-stroke-width, 2);\n stroke: var-list(--tct-radio-stroke-color, --t-a11y-gray-color-AA, #949494);\n fill: var-list(--tct-radio-background-fill, transparent);\n transition: fill var-list(--tct-checkbox-tween, --app-tween-2, unquote('0.4s ease'));\n }\n\n input {\n &:checked {\n & + label circle:nth-child(1) {\n fill: var-list(--tct-radio-checked-background-fill, --tct-radio-checked-bg, transparent);\n stroke: var-list(\n --tct-radio-checked-stroke-color,\n --tct-radio-stroke-color,\n --t-a11y-gray-color-AA,\n #949494\n );\n }\n & + label .label-content {\n font-weight: var-list(--tct-radio-checked-label-font-weight, --tct-checkbox-selected-font-weight, 600);\n letter-spacing: var-list(\n --tct-radio-checked-label-letter-spacing,\n --tct-checkbox-selected-letter-spacing,\n 0.25\n );\n color: var-list(--tct-radio-checked-label-font-color, --tct-radio-checked-label-color, inherit);\n }\n & + label circle:nth-child(2) {\n fill: var-list(--tct-radio-checked-fill, --tct-checkbox-check-stroke-color, --t-checkbox-fill, #2e2e2e);\n }\n }\n\n &:hover {\n & + label circle:nth-child(1) {\n fill: var-list(--tct-radio-hover-background-fill, transparent);\n stroke: var-list(\n --tct-radio-hover-stroke-color,\n --tct-radio-stroke-color,\n --t-a11y-gray-color-AA,\n #949494\n );\n }\n & + label .label-content {\n color: var-list(--tct-radio-hover-label-color, inherit);\n }\n }\n\n &:focus {\n & + label circle:nth-child(1) {\n fill: var-list(--tct-radio-focus-background-fill, transparent);\n stroke: var-list(\n --tct-radio-focus-stroke-color,\n --tct-checkbox-check-stroke-color,\n --t-checkbox-fill,\n #2e2e2e\n );\n }\n & + label .label-content {\n color: var-list(--tct-radio-focus-label-color, --tct-radio-checked-label-color, inherit);\n }\n }\n\n &:focus-visible {\n & + label svg {\n box-shadow: var(--tct-radio-focus-box-shadow, --const-double-focus-ring);\n }\n }\n }\n}\n\n.radio-tile {\n flex-basis: 100px;\n flex-grow: 0;\n flex-wrap: wrap;\n\n label[for] {\n color: var-list(--tct-radio-label-font-color, --tct-radio-label-color, inherit);\n align-items: center;\n border-radius: 3px;\n border: 2px solid var-list(--tct-radio-stroke-color, --t-a11y-gray-color-AA, #949494);\n background: var-list(--tct-radio-background-fill, transparent);\n cursor: pointer;\n display: block;\n padding: 10px;\n position: relative;\n text-align: center;\n transition: border-color var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n white-space: nowrap;\n }\n\n input {\n &:checked + label {\n border-color: var-list(\n --tct-radio-checked-stroke-color,\n var-prefixer(checkbox-check-stroke-color),\n --t-checkbox-fill,\n #2e2e2e\n );\n box-shadow: inset 0 0 0 2px #ffffff;\n background: var-list(--tct-radio-checked-background-fill, transparent);\n color: var-list(--tct-radio-checked-label-color, inherit);\n\n &:after {\n border-bottom-width: 3px;\n border-bottom: 5px solid\n var-list(\n --tct-radio-checked-stroke-color,\n var-prefixer(checkbox-check-stroke-color),\n --t-checkbox-fill,\n #2e2e2e\n );\n border-left-width: 5px;\n border-left: 8px solid transparent;\n border-right-width: 5px;\n border-right: 8px solid transparent;\n bottom: 0;\n content: '';\n height: 0;\n left: 50%;\n margin-left: -5px;\n position: absolute;\n width: 0;\n }\n }\n\n &:hover + label {\n border-color: var-list(\n --tct-radio-hover-stroke-color,\n --tct-radio-stroke-color,\n --t-a11y-gray-color-AA,\n #949494\n );\n background: var-list(--tct-radio-hover-background-fill, transparent);\n color: var-list(--tct-radio-hover-label-color, --tct-radio-label-color, inherit);\n }\n\n &:focus + label,\n &:focus:checked + label {\n border-color: var-list(\n --tct-radio-focus-stroke-color,\n var-prefixer(checkbox-check-stroke-color),\n --t-checkbox-fill,\n #2e2e2e\n );\n background: var-list(--tct-radio-focus-background-fill, transparent);\n box-shadow: var(--const-double-focus-ring), var-list(--tct-global-focus, unquote('0 0 0 2px #33b4ff'));\n color: var-list(--tct-radio-focus-label-color, --tct-radio-checked-label-color, inherit);\n }\n }\n}\n\ninput:disabled + label[for] {\n cursor: not-allowed;\n opacity: var-list(--tct-disabled-opacity, --app-disabled-opacity, 0.4);\n}\n","import { Component, Prop, h, Element, ComponentInterface, Listen, Watch, Event, EventEmitter } from '@stencil/core';\nimport { createGuid, handleAriaLabel, loc, overrideFocus } from 'src/utils';\n\n@Component({ tag: 'q2-radio', shadow: true, styleUrl: 'q2-radio.scss' })\nexport class Q2Radio implements ComponentInterface {\n // #region Own Properties\n\n _id: string = `radio-${createGuid()}`;\n inputField: HTMLInputElement;\n isLoaded: boolean = false;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** The state of the radio. This modifies the visual appearance of the element. */\n @Prop({ reflect: true, mutable: true })\n checked: boolean = false;\n\n /** Disables the radio and prevents interaction. */\n @Prop({ reflect: true })\n disabled: boolean = false;\n\n /**\n * Used by q2-radio-group to disable all options in the group\n * @private\n */\n @Prop({ reflect: false })\n groupDisabled: boolean = false;\n\n /**\n * Used by q2-radio-group to make all options in the group readonly\n * @private\n */\n @Prop({ reflect: false })\n groupReadonly: boolean = false;\n\n /**\n * Used by q2-radio-group to make the options display as tiles\n * @private\n */\n @Prop({ reflect: false })\n groupTileLayout: 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 * The text that describes the individual radio option.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /**\n * Used by q2-radio-group to apply a name to all options in the group\n * @private\n */\n @Prop({ reflect: true })\n name: string;\n\n /** The radio is non-interactive, but remains focusable. */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /** @private */\n @Prop()\n tabIndex: number = 0;\n\n /** The value that is returned in the `change` event that is emitted from the `q2-radio-group`. */\n @Prop({ reflect: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the radio is checked.\n */\n @Event()\n change: EventEmitter<{ value: string }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n handleAriaLabel(this);\n }\n\n componentDidLoad(): void {\n this.isLoaded = true;\n overrideFocus(this.hostElement);\n this.hostElement.click = () => {\n this.inputField.focus();\n this.inputField.click();\n };\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click')\n onHostClick(event: Event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n } else if (this.groupReadonly) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.inputField.focus();\n }\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (event.target === this.hostElement) {\n this.inputField.focus();\n }\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('checked')\n checkedObserver() {\n if (!this.isLoaded) return;\n if (!this.checked) return;\n this.change.emit({ value: this.value });\n }\n\n // #endregion\n // #region Local Methods\n\n inputChange = (event: Event) => {\n event.stopPropagation();\n if (this.disabled || this.readonly || this.groupReadonly || this.groupDisabled) {\n event.preventDefault();\n return false;\n }\n\n if (event.target instanceof HTMLInputElement) {\n this.checked = event.target.checked;\n }\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div class={this.groupTileLayout ? 'radio-tile' : 'radio-container'}>\n <input\n ref={el => (this.inputField = el)}\n class=\"sr\"\n id={this._id}\n type=\"radio\"\n name={this.name}\n value={this.value}\n disabled={this.disabled || this.groupDisabled}\n checked={this.checked}\n aria-label={this.label && this.hideLabel ? loc(this.label) : undefined}\n onChange={this.inputChange}\n test-id=\"q2RadioInnerRadioBox\"\n ></input>\n\n <label\n htmlFor={this._id}\n class={this.hideLabel ? 'label-hidden' : undefined}\n test-id=\"radioButton\"\n >\n {!this.groupTileLayout && (\n <svg viewBox=\"0 0 18 18\">\n <circle\n stroke=\"none\"\n fill=\"none\"\n cx=\"9\"\n cy=\"9\"\n r=\"8\"\n />\n <circle\n stroke=\"none\"\n fill=\"none\"\n cx=\"9\"\n cy=\"9\"\n r=\"4\"\n />\n </svg>\n )}\n {!this.hideLabel && (\n <div class=\"label-content\">\n {(this.label && loc(this.label)) || ''}\n <slot></slot>\n </div>\n )}\n </label>\n </div>\n );\n }\n\n // #endregion\n}\n"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { r, c as t, h as e, g as o } from "./index-COzomxjJ.js";
1
+ import { r as t, c as r, h as e, g as o } from "./index-CGkHOjh1.js";
2
2
 
3
- import { c as a, e as i, o as c, l } from "./index-CkXFIBxL.js";
3
+ import { c as a, e as i, o as c, l } from "./index-xCuy-dFb.js";
4
4
 
5
- const n = '*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}.radio-container{--comp-radio-margin:var(--tct-radio-margin, var(--tct-radio-margin-vertical, var(--tct-scale-2, 10px)) var(--tct-radio-margin-horizontal, var(--tct-scale-3, 15px)));margin:var(--comp-radio-margin)}.radio-container label[for]{color:var(--tct-radio-label-color, inherit);font-weight:var(--tct-radio-font-weight, var(--tct-checkbox-font-weight, 400));align-items:center;cursor:pointer;margin-right:var(--tct-radio-label-margin-right, 1rem);display:grid;grid-template-columns:18px 1fr;gap:var(--tct-scale-1, var(--app-scale-1x, 5px))}.radio-container label[for].label-hidden{grid-template-columns:var(--tct-radio-label-hidden-columns, 18px 1fr)}.radio-container svg{border-radius:50%;transition:box-shadow var(--tct-tween-1, var(--app-tween-1, 0.2s ease));outline:0;width:100%}.radio-container circle:nth-child(1){stroke-width:2;stroke:var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494));fill:var(--tct-radio-background-fill, transparent)}.radio-container input:checked+label circle:nth-child(1){fill:var(--tct-radio-checked-background-fill, var(--tct-radio-checked-bg, transparent));stroke:var(--tct-radio-checked-stroke-color, var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494)))}.radio-container input:checked+label .label-content{font-weight:var(--tct-radio-checked-label-font-weight, var(--tct-checkbox-selected-font-weight, 600));letter-spacing:var(--tct-radio-checked-label-letter-spacing, var(--tct-checkbox-selected-letter-spacing, 0.25));color:var(--tct-radio-checked-label-font-color, var(--tct-radio-checked-label-color, inherit))}.radio-container input:checked+label circle:nth-child(2){fill:var(--tct-radio-checked-fill, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)))}.radio-container input:hover+label circle:nth-child(1){fill:var(--tct-radio-hover-background-fill, transparent);stroke:var(--tct-radio-hover-stroke-color, var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494)))}.radio-container input:hover+label .label-content{color:var(--tct-radio-hover-label-color, inherit)}.radio-container input:focus+label circle:nth-child(1){fill:var(--tct-radio-focus-background-fill, transparent);stroke:var(--tct-radio-focus-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)))}.radio-container input:focus+label .label-content{color:var(--tct-radio-focus-label-color, var(--tct-radio-checked-label-color, inherit))}.radio-container input:focus-visible+label svg{box-shadow:var(--const-double-focus-ring)}.radio-tile{flex-basis:100px;flex-grow:0;flex-wrap:wrap}.radio-tile label[for]{color:var(--tct-radio-label-font-color, var(--tct-radio-label-color, inherit));align-items:center;border-radius:3px;border:2px solid var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494));background:var(--tct-radio-background-fill, transparent);cursor:pointer;display:block;padding:10px;position:relative;text-align:center;transition:border-color var(--tct-tween-1, var(--app-tween-1, 0.2s ease));white-space:nowrap}.radio-tile input:checked+label{border-color:var(--tct-radio-checked-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e))));box-shadow:inset 0 0 0 2px #ffffff;background:var(--tct-radio-checked-background-fill, transparent);color:var(--tct-radio-checked-label-color, inherit)}.radio-tile input:checked+label:after{border-bottom-width:3px;border-bottom:5px solid var(--tct-radio-checked-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e))));border-left-width:5px;border-left:8px solid transparent;border-right-width:5px;border-right:8px solid transparent;bottom:0;content:"";height:0;left:50%;margin-left:-5px;position:absolute;width:0}.radio-tile input:hover+label{border-color:var(--tct-radio-hover-stroke-color, var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494)));background:var(--tct-radio-hover-background-fill, transparent);color:var(--tct-radio-hover-label-color, var(--tct-radio-label-color, inherit))}.radio-tile input:focus+label,.radio-tile input:focus:checked+label{border-color:var(--tct-radio-focus-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e))));background:var(--tct-radio-focus-background-fill, transparent);box-shadow:var(--const-double-focus-ring), var(--tct-global-focus, 0 0 0 2px #33b4ff);color:var(--tct-radio-focus-label-color, var(--tct-radio-checked-label-color, inherit))}input:disabled+label[for]{cursor:not-allowed;opacity:var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4))}';
5
+ const n = '*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}.radio-container{--comp-radio-margin:var(--tct-radio-margin, var(--tct-radio-margin-vertical, var(--tct-scale-2, 10px)) var(--tct-radio-margin-horizontal, var(--tct-scale-3, 15px)));margin:var(--comp-radio-margin)}.radio-container label[for]{color:var(--tct-radio-label-font-color, var(--tct-radio-label-color, inherit));font-weight:var(--tct-radio-font-weight, var(--tct-checkbox-font-weight, 400));align-items:center;cursor:pointer;margin-right:var(--tct-radio-label-margin-right, 1rem);display:grid;grid-template-columns:18px 1fr;gap:var(--tct-scale-1, var(--app-scale-1x, 5px))}.radio-container label[for].label-hidden{grid-template-columns:var(--tct-radio-label-hidden-columns, 18px 1fr)}.radio-container svg{border-radius:50%;transition:box-shadow var(--tct-tween-1, var(--app-tween-1, 0.2s ease));outline:0;width:100%;box-shadow:var(--tct-radio-box-shadow, none)}.radio-container circle:nth-child(1){stroke-width:var(--tct-radio-stroke-width, 2);stroke:var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494));fill:var(--tct-radio-background-fill, transparent);transition:fill var(--tct-checkbox-tween, var(--app-tween-2, 0.4s ease))}.radio-container input:checked+label circle:nth-child(1){fill:var(--tct-radio-checked-background-fill, var(--tct-radio-checked-bg, transparent));stroke:var(--tct-radio-checked-stroke-color, var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494)))}.radio-container input:checked+label .label-content{font-weight:var(--tct-radio-checked-label-font-weight, var(--tct-checkbox-selected-font-weight, 600));letter-spacing:var(--tct-radio-checked-label-letter-spacing, var(--tct-checkbox-selected-letter-spacing, 0.25));color:var(--tct-radio-checked-label-font-color, var(--tct-radio-checked-label-color, inherit))}.radio-container input:checked+label circle:nth-child(2){fill:var(--tct-radio-checked-fill, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)))}.radio-container input:hover+label circle:nth-child(1){fill:var(--tct-radio-hover-background-fill, transparent);stroke:var(--tct-radio-hover-stroke-color, var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494)))}.radio-container input:hover+label .label-content{color:var(--tct-radio-hover-label-color, inherit)}.radio-container input:focus+label circle:nth-child(1){fill:var(--tct-radio-focus-background-fill, transparent);stroke:var(--tct-radio-focus-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)))}.radio-container input:focus+label .label-content{color:var(--tct-radio-focus-label-color, var(--tct-radio-checked-label-color, inherit))}.radio-container input:focus-visible+label svg{box-shadow:var(--tct-radio-focus-box-shadow, --const-double-focus-ring)}.radio-tile{flex-basis:100px;flex-grow:0;flex-wrap:wrap}.radio-tile label[for]{color:var(--tct-radio-label-font-color, var(--tct-radio-label-color, inherit));align-items:center;border-radius:3px;border:2px solid var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494));background:var(--tct-radio-background-fill, transparent);cursor:pointer;display:block;padding:10px;position:relative;text-align:center;transition:border-color var(--tct-tween-1, var(--app-tween-1, 0.2s ease));white-space:nowrap}.radio-tile input:checked+label{border-color:var(--tct-radio-checked-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e))));box-shadow:inset 0 0 0 2px #ffffff;background:var(--tct-radio-checked-background-fill, transparent);color:var(--tct-radio-checked-label-color, inherit)}.radio-tile input:checked+label:after{border-bottom-width:3px;border-bottom:5px solid var(--tct-radio-checked-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e))));border-left-width:5px;border-left:8px solid transparent;border-right-width:5px;border-right:8px solid transparent;bottom:0;content:"";height:0;left:50%;margin-left:-5px;position:absolute;width:0}.radio-tile input:hover+label{border-color:var(--tct-radio-hover-stroke-color, var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494)));background:var(--tct-radio-hover-background-fill, transparent);color:var(--tct-radio-hover-label-color, var(--tct-radio-label-color, inherit))}.radio-tile input:focus+label,.radio-tile input:focus:checked+label{border-color:var(--tct-radio-focus-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e))));background:var(--tct-radio-focus-background-fill, transparent);box-shadow:var(--const-double-focus-ring), var(--tct-global-focus, 0 0 0 2px #33b4ff);color:var(--tct-radio-focus-label-color, var(--tct-radio-checked-label-color, inherit))}input:disabled+label[for]{cursor:not-allowed;opacity:var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4))}';
6
6
 
7
- const s = class {
7
+ const d = class {
8
8
  constructor(e) {
9
- r(this, e);
10
- this.change = t(this, "change", 7);
9
+ t(this, e);
10
+ this.change = r(this, "change", 7);
11
11
  // #region Own Properties
12
12
  this._id = `radio-${a()}`;
13
13
  this.isLoaded = false;
@@ -28,14 +28,14 @@ const s = class {
28
28
  /** @private */ this.tabIndex = 0;
29
29
  // #endregion
30
30
  // #region Local Methods
31
- this.inputChange = r => {
32
- r.stopPropagation();
31
+ this.inputChange = t => {
32
+ t.stopPropagation();
33
33
  if (this.disabled || this.readonly || this.groupReadonly || this.groupDisabled) {
34
- r.preventDefault();
34
+ t.preventDefault();
35
35
  return false;
36
36
  }
37
- if (r.target instanceof HTMLInputElement) {
38
- this.checked = r.target.checked;
37
+ if (t.target instanceof HTMLInputElement) {
38
+ this.checked = t.target.checked;
39
39
  }
40
40
  };
41
41
  }
@@ -54,17 +54,17 @@ const s = class {
54
54
  }
55
55
  // #endregion
56
56
  // #region Listeners
57
- onHostClick(r) {
57
+ onHostClick(t) {
58
58
  if (this.disabled) {
59
- r.stopImmediatePropagation();
59
+ t.stopImmediatePropagation();
60
60
  } else if (this.groupReadonly) {
61
- r.preventDefault();
62
- r.stopImmediatePropagation();
61
+ t.preventDefault();
62
+ t.stopImmediatePropagation();
63
63
  this.inputField.focus();
64
64
  }
65
65
  }
66
- delegateFocus(r) {
67
- if (r.target === this.hostElement) {
66
+ delegateFocus(t) {
67
+ if (t.target === this.hostElement) {
68
68
  this.inputField.focus();
69
69
  }
70
70
  }
@@ -88,7 +88,7 @@ const s = class {
88
88
  class: this.groupTileLayout ? "radio-tile" : "radio-container"
89
89
  }, e("input", {
90
90
  key: "7dfa6f992921ef80346f3d4f7ba61da65c3fac6a",
91
- ref: r => this.inputField = r,
91
+ ref: t => this.inputField = t,
92
92
  class: "sr",
93
93
  id: this._id,
94
94
  type: "radio",
@@ -139,8 +139,8 @@ const s = class {
139
139
  }
140
140
  };
141
141
 
142
- s.style = n;
142
+ d.style = n;
143
143
 
144
- export { s as q2_radio };
144
+ export { d as q2_radio };
145
145
  //# sourceMappingURL=q2-radio.entry.esm.js.map
146
146
  //# sourceMappingURL=q2-radio.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["q2RadioCss","Q2Radio","constructor","hostRef","this","_id","createGuid","isLoaded","checked","disabled","groupDisabled","groupReadonly","groupTileLayout","tabIndex","inputChange","event","stopPropagation","readonly","preventDefault","target","HTMLInputElement","componentWillLoad","handleAriaLabel","componentDidLoad","overrideFocus","hostElement","click","inputField","focus","onHostClick","stopImmediatePropagation","delegateFocus","ariaLabelObserver","checkedObserver","change","emit","value","render","h","key","class","ref","el","id","type","name","label","hideLabel","loc","undefined","onChange","htmlFor","viewBox","stroke","fill","cx","cy","r"],"sources":["src/components/q2-radio/q2-radio.scss?tag=q2-radio&encapsulation=shadow","src/components/q2-radio/q2-radio.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n}\n\n.radio-container {\n --comp-radio-margin: #{var-list(\n --tct-radio-margin,\n unquote(\n '#{var-list(--tct-radio-margin-vertical, --tct-scale-2, 10px)} #{var-list(--tct-radio-margin-horizontal, --tct-scale-3, 15px)}'\n )\n )};\n margin: var(--comp-radio-margin);\n\n label[for] {\n color: var-list(--tct-radio-label-color, inherit);\n font-weight: var-list(--tct-radio-font-weight, --tct-checkbox-font-weight, 400);\n align-items: center;\n cursor: pointer;\n margin-right: var-list(--tct-radio-label-margin-right, 1rem);\n display: grid;\n grid-template-columns: 18px 1fr;\n gap: var-list(--tct-scale-1, --app-scale-1x, 5px);\n\n &.label-hidden {\n grid-template-columns: var(--tct-radio-label-hidden-columns, 18px 1fr);\n }\n }\n\n svg {\n border-radius: 50%;\n transition: box-shadow var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n outline: 0;\n width: 100%;\n }\n\n circle:nth-child(1) {\n stroke-width: 2;\n stroke: var-list(--tct-radio-stroke-color, --t-a11y-gray-color-AA, #949494);\n fill: var-list(--tct-radio-background-fill, transparent);\n }\n\n input {\n &:checked {\n & + label circle:nth-child(1) {\n fill: var-list(--tct-radio-checked-background-fill, --tct-radio-checked-bg, transparent);\n stroke: var-list(\n --tct-radio-checked-stroke-color,\n --tct-radio-stroke-color,\n --t-a11y-gray-color-AA,\n #949494\n );\n }\n & + label .label-content {\n font-weight: var-list(--tct-radio-checked-label-font-weight, --tct-checkbox-selected-font-weight, 600);\n letter-spacing: var-list(\n --tct-radio-checked-label-letter-spacing,\n --tct-checkbox-selected-letter-spacing,\n 0.25\n );\n color: var-list(--tct-radio-checked-label-font-color, --tct-radio-checked-label-color, inherit);\n }\n & + label circle:nth-child(2) {\n fill: var-list(--tct-radio-checked-fill, --tct-checkbox-check-stroke-color, --t-checkbox-fill, #2e2e2e);\n }\n }\n\n &:hover {\n & + label circle:nth-child(1) {\n fill: var-list(--tct-radio-hover-background-fill, transparent);\n stroke: var-list(\n --tct-radio-hover-stroke-color,\n --tct-radio-stroke-color,\n --t-a11y-gray-color-AA,\n #949494\n );\n }\n & + label .label-content {\n color: var-list(--tct-radio-hover-label-color, inherit);\n }\n }\n\n &:focus {\n & + label circle:nth-child(1) {\n fill: var-list(--tct-radio-focus-background-fill, transparent);\n stroke: var-list(\n --tct-radio-focus-stroke-color,\n --tct-checkbox-check-stroke-color,\n --t-checkbox-fill,\n #2e2e2e\n );\n }\n & + label .label-content {\n color: var-list(--tct-radio-focus-label-color, --tct-radio-checked-label-color, inherit);\n }\n }\n\n &:focus-visible {\n & + label svg {\n box-shadow: var(--const-double-focus-ring);\n }\n }\n }\n}\n\n.radio-tile {\n flex-basis: 100px;\n flex-grow: 0;\n flex-wrap: wrap;\n\n label[for] {\n color: var-list(--tct-radio-label-font-color, --tct-radio-label-color, inherit);\n align-items: center;\n border-radius: 3px;\n border: 2px solid var-list(--tct-radio-stroke-color, --t-a11y-gray-color-AA, #949494);\n background: var-list(--tct-radio-background-fill, transparent);\n cursor: pointer;\n display: block;\n padding: 10px;\n position: relative;\n text-align: center;\n transition: border-color var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n white-space: nowrap;\n }\n\n input {\n &:checked + label {\n border-color: var-list(\n --tct-radio-checked-stroke-color,\n var-prefixer(checkbox-check-stroke-color),\n --t-checkbox-fill,\n #2e2e2e\n );\n box-shadow: inset 0 0 0 2px #ffffff;\n background: var-list(--tct-radio-checked-background-fill, transparent);\n color: var-list(--tct-radio-checked-label-color, inherit);\n\n &:after {\n border-bottom-width: 3px;\n border-bottom: 5px solid\n var-list(\n --tct-radio-checked-stroke-color,\n var-prefixer(checkbox-check-stroke-color),\n --t-checkbox-fill,\n #2e2e2e\n );\n border-left-width: 5px;\n border-left: 8px solid transparent;\n border-right-width: 5px;\n border-right: 8px solid transparent;\n bottom: 0;\n content: '';\n height: 0;\n left: 50%;\n margin-left: -5px;\n position: absolute;\n width: 0;\n }\n }\n\n &:hover + label {\n border-color: var-list(\n --tct-radio-hover-stroke-color,\n --tct-radio-stroke-color,\n --t-a11y-gray-color-AA,\n #949494\n );\n background: var-list(--tct-radio-hover-background-fill, transparent);\n color: var-list(--tct-radio-hover-label-color, --tct-radio-label-color, inherit);\n }\n\n &:focus + label,\n &:focus:checked + label {\n border-color: var-list(\n --tct-radio-focus-stroke-color,\n var-prefixer(checkbox-check-stroke-color),\n --t-checkbox-fill,\n #2e2e2e\n );\n background: var-list(--tct-radio-focus-background-fill, transparent);\n box-shadow: var(--const-double-focus-ring), var-list(--tct-global-focus, unquote('0 0 0 2px #33b4ff'));\n color: var-list(--tct-radio-focus-label-color, --tct-radio-checked-label-color, inherit);\n }\n }\n}\n\ninput:disabled + label[for] {\n cursor: not-allowed;\n opacity: var-list(--tct-disabled-opacity, --app-disabled-opacity, 0.4);\n}\n","import { Component, Prop, h, Element, ComponentInterface, Listen, Watch, Event, EventEmitter } from '@stencil/core';\nimport { createGuid, handleAriaLabel, loc, overrideFocus } from 'src/utils';\n\n@Component({ tag: 'q2-radio', shadow: true, styleUrl: 'q2-radio.scss' })\nexport class Q2Radio implements ComponentInterface {\n // #region Own Properties\n\n _id: string = `radio-${createGuid()}`;\n inputField: HTMLInputElement;\n isLoaded: boolean = false;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** The state of the radio. This modifies the visual appearance of the element. */\n @Prop({ reflect: true, mutable: true })\n checked: boolean = false;\n\n /** Disables the radio and prevents interaction. */\n @Prop({ reflect: true })\n disabled: boolean = false;\n\n /**\n * Used by q2-radio-group to disable all options in the group\n * @private\n */\n @Prop({ reflect: false })\n groupDisabled: boolean = false;\n\n /**\n * Used by q2-radio-group to make all options in the group readonly\n * @private\n */\n @Prop({ reflect: false })\n groupReadonly: boolean = false;\n\n /**\n * Used by q2-radio-group to make the options display as tiles\n * @private\n */\n @Prop({ reflect: false })\n groupTileLayout: 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 * The text that describes the individual radio option.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /**\n * Used by q2-radio-group to apply a name to all options in the group\n * @private\n */\n @Prop({ reflect: true })\n name: string;\n\n /** The radio is non-interactive, but remains focusable. */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /** @private */\n @Prop()\n tabIndex: number = 0;\n\n /** The value that is returned in the `change` event that is emitted from the `q2-radio-group`. */\n @Prop({ reflect: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the radio is checked.\n */\n @Event()\n change: EventEmitter<{ value: string }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n handleAriaLabel(this);\n }\n\n componentDidLoad(): void {\n this.isLoaded = true;\n overrideFocus(this.hostElement);\n this.hostElement.click = () => {\n this.inputField.focus();\n this.inputField.click();\n };\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click')\n onHostClick(event: Event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n } else if (this.groupReadonly) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.inputField.focus();\n }\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (event.target === this.hostElement) {\n this.inputField.focus();\n }\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('checked')\n checkedObserver() {\n if (!this.isLoaded) return;\n if (!this.checked) return;\n this.change.emit({ value: this.value });\n }\n\n // #endregion\n // #region Local Methods\n\n inputChange = (event: Event) => {\n event.stopPropagation();\n if (this.disabled || this.readonly || this.groupReadonly || this.groupDisabled) {\n event.preventDefault();\n return false;\n }\n\n if (event.target instanceof HTMLInputElement) {\n this.checked = event.target.checked;\n }\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div class={this.groupTileLayout ? 'radio-tile' : 'radio-container'}>\n <input\n ref={el => (this.inputField = el)}\n class=\"sr\"\n id={this._id}\n type=\"radio\"\n name={this.name}\n value={this.value}\n disabled={this.disabled || this.groupDisabled}\n checked={this.checked}\n aria-label={this.label && this.hideLabel ? loc(this.label) : undefined}\n onChange={this.inputChange}\n test-id=\"q2RadioInnerRadioBox\"\n ></input>\n\n <label\n htmlFor={this._id}\n class={this.hideLabel ? 'label-hidden' : undefined}\n test-id=\"radioButton\"\n >\n {!this.groupTileLayout && (\n <svg viewBox=\"0 0 18 18\">\n <circle\n stroke=\"none\"\n fill=\"none\"\n cx=\"9\"\n cy=\"9\"\n r=\"8\"\n />\n <circle\n stroke=\"none\"\n fill=\"none\"\n cx=\"9\"\n cy=\"9\"\n r=\"4\"\n />\n </svg>\n )}\n {!this.hideLabel && (\n <div class=\"label-content\">\n {(this.label && loc(this.label)) || ''}\n <slot></slot>\n </div>\n )}\n </label>\n </div>\n );\n }\n\n // #endregion\n}\n"],"mappings":";;;;AAAA,MAAMA,IAAa;;MCINC,IAAO;EADpB,WAAAC,CAAAC;;;;QAIIC,KAAAC,MAAc,SAASC;IAEvBF,KAAQG,WAAY;0FAiBpBH,KAAOI,UAAY;2DAInBJ,KAAQK,WAAY;;;;eAOpBL,KAAaM,gBAAY;;;;eAOzBN,KAAaO,gBAAY;;;;eAOzBP,KAAeQ,kBAAY;uBA+B3BR,KAAQS,WAAW;;;QAsEnBT,KAAAU,cAAeC;MACXA,EAAMC;MACN,IAAIZ,KAAKK,YAAYL,KAAKa,YAAYb,KAAKO,iBAAiBP,KAAKM,eAAe;QAC5EK,EAAMG;QACN,OAAO;;MAGX,IAAIH,EAAMI,kBAAkBC,kBAAkB;QAC1ChB,KAAKI,UAAUO,EAAMI,OAAOX;;;AA2DvC;;;EAvHG,iBAAAa;IACIC,EAAgBlB;;EAGpB,gBAAAmB;IACInB,KAAKG,WAAW;IAChBiB,EAAcpB,KAAKqB;IACnBrB,KAAKqB,YAAYC,QAAQ;MACrBtB,KAAKuB,WAAWC;MAChBxB,KAAKuB,WAAWD;AAAO;;;;EAQ/B,WAAAG,CAAYd;IACR,IAAIX,KAAKK,UAAU;MACfM,EAAMe;WACH,IAAI1B,KAAKO,eAAe;MAC3BI,EAAMG;MACNH,EAAMe;MACN1B,KAAKuB,WAAWC;;;EAKxB,aAAAG,CAAchB;IACV,IAAIA,EAAMI,WAAWf,KAAKqB,aAAa;MACnCrB,KAAKuB,WAAWC;;;;;EAQxB,iBAAAI;IACIV,EAAgBlB;;EAIpB,eAAA6B;IACI,KAAK7B,KAAKG,UAAU;IACpB,KAAKH,KAAKI,SAAS;IACnBJ,KAAK8B,OAAOC,KAAK;MAAEC,OAAOhC,KAAKgC;;;;;EAqBnC,MAAAC;IACI,OACIC,EAAA;MAAAC,KAAA;MAAKC,OAAOpC,KAAKQ,kBAAkB,eAAe;OAC9C0B,EAAA;MAAAC,KAAA;MACIE,KAAKC,KAAOtC,KAAKuB,aAAae;MAC9BF,OAAM;MACNG,IAAIvC,KAAKC;MACTuC,MAAK;MACLC,MAAMzC,KAAKyC;MACXT,OAAOhC,KAAKgC;MACZ3B,UAAUL,KAAKK,YAAYL,KAAKM;MAChCF,SAASJ,KAAKI;MAAO,cACTJ,KAAK0C,SAAS1C,KAAK2C,YAAYC,EAAI5C,KAAK0C,SAASG;MAC7DC,UAAU9C,KAAKU;MAAW,WAClB;QAGZwB,EACI;MAAAC,KAAA;MAAAY,SAAS/C,KAAKC;MACdmC,OAAOpC,KAAK2C,YAAY,iBAAiBE;MAAS,WAC1C;QAEN7C,KAAKQ,mBACH0B,EAAK;MAAAC,KAAA;MAAAa,SAAQ;OACTd,EAAA;MAAAC,KAAA;MACIc,QAAO;MACPC,MAAK;MACLC,IAAG;MACHC,IAAG;MACHC,GAAE;QAENnB,EACI;MAAAC,KAAA;MAAAc,QAAO;MACPC,MAAK;MACLC,IAAG;MACHC,IAAG;MACHC,GAAE;UAIZrD,KAAK2C,aACHT,EAAK;MAAAC,KAAA;MAAAC,OAAM;OACLpC,KAAK0C,SAASE,EAAI5C,KAAK0C,UAAW,IACpCR,EAAA;MAAAC,KAAA","ignoreList":[]}
1
+ {"version":3,"names":["q2RadioCss","Q2Radio","constructor","hostRef","this","_id","createGuid","isLoaded","checked","disabled","groupDisabled","groupReadonly","groupTileLayout","tabIndex","inputChange","event","stopPropagation","readonly","preventDefault","target","HTMLInputElement","componentWillLoad","handleAriaLabel","componentDidLoad","overrideFocus","hostElement","click","inputField","focus","onHostClick","stopImmediatePropagation","delegateFocus","ariaLabelObserver","checkedObserver","change","emit","value","render","h","key","class","ref","el","id","type","name","label","hideLabel","loc","undefined","onChange","htmlFor","viewBox","stroke","fill","cx","cy","r"],"sources":["src/components/q2-radio/q2-radio.scss?tag=q2-radio&encapsulation=shadow","src/components/q2-radio/q2-radio.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n}\n\n.radio-container {\n --comp-radio-margin: #{var-list(\n --tct-radio-margin,\n unquote(\n '#{var-list(--tct-radio-margin-vertical, --tct-scale-2, 10px)} #{var-list(--tct-radio-margin-horizontal, --tct-scale-3, 15px)}'\n )\n )};\n margin: var(--comp-radio-margin);\n\n label[for] {\n color: var-list(--tct-radio-label-font-color, --tct-radio-label-color, inherit);\n font-weight: var-list(--tct-radio-font-weight, --tct-checkbox-font-weight, 400);\n align-items: center;\n cursor: pointer;\n margin-right: var-list(--tct-radio-label-margin-right, 1rem);\n display: grid;\n grid-template-columns: 18px 1fr;\n gap: var-list(--tct-scale-1, --app-scale-1x, 5px);\n\n &.label-hidden {\n grid-template-columns: var(--tct-radio-label-hidden-columns, 18px 1fr);\n }\n }\n\n svg {\n border-radius: 50%;\n transition: box-shadow var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n outline: 0;\n width: 100%;\n box-shadow: var-list(--tct-radio-box-shadow, none);\n }\n\n circle:nth-child(1) {\n stroke-width: var-list(--tct-radio-stroke-width, 2);\n stroke: var-list(--tct-radio-stroke-color, --t-a11y-gray-color-AA, #949494);\n fill: var-list(--tct-radio-background-fill, transparent);\n transition: fill var-list(--tct-checkbox-tween, --app-tween-2, unquote('0.4s ease'));\n }\n\n input {\n &:checked {\n & + label circle:nth-child(1) {\n fill: var-list(--tct-radio-checked-background-fill, --tct-radio-checked-bg, transparent);\n stroke: var-list(\n --tct-radio-checked-stroke-color,\n --tct-radio-stroke-color,\n --t-a11y-gray-color-AA,\n #949494\n );\n }\n & + label .label-content {\n font-weight: var-list(--tct-radio-checked-label-font-weight, --tct-checkbox-selected-font-weight, 600);\n letter-spacing: var-list(\n --tct-radio-checked-label-letter-spacing,\n --tct-checkbox-selected-letter-spacing,\n 0.25\n );\n color: var-list(--tct-radio-checked-label-font-color, --tct-radio-checked-label-color, inherit);\n }\n & + label circle:nth-child(2) {\n fill: var-list(--tct-radio-checked-fill, --tct-checkbox-check-stroke-color, --t-checkbox-fill, #2e2e2e);\n }\n }\n\n &:hover {\n & + label circle:nth-child(1) {\n fill: var-list(--tct-radio-hover-background-fill, transparent);\n stroke: var-list(\n --tct-radio-hover-stroke-color,\n --tct-radio-stroke-color,\n --t-a11y-gray-color-AA,\n #949494\n );\n }\n & + label .label-content {\n color: var-list(--tct-radio-hover-label-color, inherit);\n }\n }\n\n &:focus {\n & + label circle:nth-child(1) {\n fill: var-list(--tct-radio-focus-background-fill, transparent);\n stroke: var-list(\n --tct-radio-focus-stroke-color,\n --tct-checkbox-check-stroke-color,\n --t-checkbox-fill,\n #2e2e2e\n );\n }\n & + label .label-content {\n color: var-list(--tct-radio-focus-label-color, --tct-radio-checked-label-color, inherit);\n }\n }\n\n &:focus-visible {\n & + label svg {\n box-shadow: var(--tct-radio-focus-box-shadow, --const-double-focus-ring);\n }\n }\n }\n}\n\n.radio-tile {\n flex-basis: 100px;\n flex-grow: 0;\n flex-wrap: wrap;\n\n label[for] {\n color: var-list(--tct-radio-label-font-color, --tct-radio-label-color, inherit);\n align-items: center;\n border-radius: 3px;\n border: 2px solid var-list(--tct-radio-stroke-color, --t-a11y-gray-color-AA, #949494);\n background: var-list(--tct-radio-background-fill, transparent);\n cursor: pointer;\n display: block;\n padding: 10px;\n position: relative;\n text-align: center;\n transition: border-color var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n white-space: nowrap;\n }\n\n input {\n &:checked + label {\n border-color: var-list(\n --tct-radio-checked-stroke-color,\n var-prefixer(checkbox-check-stroke-color),\n --t-checkbox-fill,\n #2e2e2e\n );\n box-shadow: inset 0 0 0 2px #ffffff;\n background: var-list(--tct-radio-checked-background-fill, transparent);\n color: var-list(--tct-radio-checked-label-color, inherit);\n\n &:after {\n border-bottom-width: 3px;\n border-bottom: 5px solid\n var-list(\n --tct-radio-checked-stroke-color,\n var-prefixer(checkbox-check-stroke-color),\n --t-checkbox-fill,\n #2e2e2e\n );\n border-left-width: 5px;\n border-left: 8px solid transparent;\n border-right-width: 5px;\n border-right: 8px solid transparent;\n bottom: 0;\n content: '';\n height: 0;\n left: 50%;\n margin-left: -5px;\n position: absolute;\n width: 0;\n }\n }\n\n &:hover + label {\n border-color: var-list(\n --tct-radio-hover-stroke-color,\n --tct-radio-stroke-color,\n --t-a11y-gray-color-AA,\n #949494\n );\n background: var-list(--tct-radio-hover-background-fill, transparent);\n color: var-list(--tct-radio-hover-label-color, --tct-radio-label-color, inherit);\n }\n\n &:focus + label,\n &:focus:checked + label {\n border-color: var-list(\n --tct-radio-focus-stroke-color,\n var-prefixer(checkbox-check-stroke-color),\n --t-checkbox-fill,\n #2e2e2e\n );\n background: var-list(--tct-radio-focus-background-fill, transparent);\n box-shadow: var(--const-double-focus-ring), var-list(--tct-global-focus, unquote('0 0 0 2px #33b4ff'));\n color: var-list(--tct-radio-focus-label-color, --tct-radio-checked-label-color, inherit);\n }\n }\n}\n\ninput:disabled + label[for] {\n cursor: not-allowed;\n opacity: var-list(--tct-disabled-opacity, --app-disabled-opacity, 0.4);\n}\n","import { Component, Prop, h, Element, ComponentInterface, Listen, Watch, Event, EventEmitter } from '@stencil/core';\nimport { createGuid, handleAriaLabel, loc, overrideFocus } from 'src/utils';\n\n@Component({ tag: 'q2-radio', shadow: true, styleUrl: 'q2-radio.scss' })\nexport class Q2Radio implements ComponentInterface {\n // #region Own Properties\n\n _id: string = `radio-${createGuid()}`;\n inputField: HTMLInputElement;\n isLoaded: boolean = false;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** The state of the radio. This modifies the visual appearance of the element. */\n @Prop({ reflect: true, mutable: true })\n checked: boolean = false;\n\n /** Disables the radio and prevents interaction. */\n @Prop({ reflect: true })\n disabled: boolean = false;\n\n /**\n * Used by q2-radio-group to disable all options in the group\n * @private\n */\n @Prop({ reflect: false })\n groupDisabled: boolean = false;\n\n /**\n * Used by q2-radio-group to make all options in the group readonly\n * @private\n */\n @Prop({ reflect: false })\n groupReadonly: boolean = false;\n\n /**\n * Used by q2-radio-group to make the options display as tiles\n * @private\n */\n @Prop({ reflect: false })\n groupTileLayout: 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 * The text that describes the individual radio option.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /**\n * Used by q2-radio-group to apply a name to all options in the group\n * @private\n */\n @Prop({ reflect: true })\n name: string;\n\n /** The radio is non-interactive, but remains focusable. */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /** @private */\n @Prop()\n tabIndex: number = 0;\n\n /** The value that is returned in the `change` event that is emitted from the `q2-radio-group`. */\n @Prop({ reflect: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the radio is checked.\n */\n @Event()\n change: EventEmitter<{ value: string }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n handleAriaLabel(this);\n }\n\n componentDidLoad(): void {\n this.isLoaded = true;\n overrideFocus(this.hostElement);\n this.hostElement.click = () => {\n this.inputField.focus();\n this.inputField.click();\n };\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('click')\n onHostClick(event: Event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n } else if (this.groupReadonly) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.inputField.focus();\n }\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (event.target === this.hostElement) {\n this.inputField.focus();\n }\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('checked')\n checkedObserver() {\n if (!this.isLoaded) return;\n if (!this.checked) return;\n this.change.emit({ value: this.value });\n }\n\n // #endregion\n // #region Local Methods\n\n inputChange = (event: Event) => {\n event.stopPropagation();\n if (this.disabled || this.readonly || this.groupReadonly || this.groupDisabled) {\n event.preventDefault();\n return false;\n }\n\n if (event.target instanceof HTMLInputElement) {\n this.checked = event.target.checked;\n }\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div class={this.groupTileLayout ? 'radio-tile' : 'radio-container'}>\n <input\n ref={el => (this.inputField = el)}\n class=\"sr\"\n id={this._id}\n type=\"radio\"\n name={this.name}\n value={this.value}\n disabled={this.disabled || this.groupDisabled}\n checked={this.checked}\n aria-label={this.label && this.hideLabel ? loc(this.label) : undefined}\n onChange={this.inputChange}\n test-id=\"q2RadioInnerRadioBox\"\n ></input>\n\n <label\n htmlFor={this._id}\n class={this.hideLabel ? 'label-hidden' : undefined}\n test-id=\"radioButton\"\n >\n {!this.groupTileLayout && (\n <svg viewBox=\"0 0 18 18\">\n <circle\n stroke=\"none\"\n fill=\"none\"\n cx=\"9\"\n cy=\"9\"\n r=\"8\"\n />\n <circle\n stroke=\"none\"\n fill=\"none\"\n cx=\"9\"\n cy=\"9\"\n r=\"4\"\n />\n </svg>\n )}\n {!this.hideLabel && (\n <div class=\"label-content\">\n {(this.label && loc(this.label)) || ''}\n <slot></slot>\n </div>\n )}\n </label>\n </div>\n );\n }\n\n // #endregion\n}\n"],"mappings":";;;;AAAA,MAAMA,IAAa;;MCINC,IAAO;EADpB,WAAAC,CAAAC;;;;QAIIC,KAAAC,MAAc,SAASC;IAEvBF,KAAQG,WAAY;0FAiBpBH,KAAOI,UAAY;2DAInBJ,KAAQK,WAAY;;;;eAOpBL,KAAaM,gBAAY;;;;eAOzBN,KAAaO,gBAAY;;;;eAOzBP,KAAeQ,kBAAY;uBA+B3BR,KAAQS,WAAW;;;QAsEnBT,KAAAU,cAAeC;MACXA,EAAMC;MACN,IAAIZ,KAAKK,YAAYL,KAAKa,YAAYb,KAAKO,iBAAiBP,KAAKM,eAAe;QAC5EK,EAAMG;QACN,OAAO;;MAGX,IAAIH,EAAMI,kBAAkBC,kBAAkB;QAC1ChB,KAAKI,UAAUO,EAAMI,OAAOX;;;AA2DvC;;;EAvHG,iBAAAa;IACIC,EAAgBlB;;EAGpB,gBAAAmB;IACInB,KAAKG,WAAW;IAChBiB,EAAcpB,KAAKqB;IACnBrB,KAAKqB,YAAYC,QAAQ;MACrBtB,KAAKuB,WAAWC;MAChBxB,KAAKuB,WAAWD;AAAO;;;;EAQ/B,WAAAG,CAAYd;IACR,IAAIX,KAAKK,UAAU;MACfM,EAAMe;WACH,IAAI1B,KAAKO,eAAe;MAC3BI,EAAMG;MACNH,EAAMe;MACN1B,KAAKuB,WAAWC;;;EAKxB,aAAAG,CAAchB;IACV,IAAIA,EAAMI,WAAWf,KAAKqB,aAAa;MACnCrB,KAAKuB,WAAWC;;;;;EAQxB,iBAAAI;IACIV,EAAgBlB;;EAIpB,eAAA6B;IACI,KAAK7B,KAAKG,UAAU;IACpB,KAAKH,KAAKI,SAAS;IACnBJ,KAAK8B,OAAOC,KAAK;MAAEC,OAAOhC,KAAKgC;;;;;EAqBnC,MAAAC;IACI,OACIC,EAAA;MAAAC,KAAA;MAAKC,OAAOpC,KAAKQ,kBAAkB,eAAe;OAC9C0B,EAAA;MAAAC,KAAA;MACIE,KAAKC,KAAOtC,KAAKuB,aAAae;MAC9BF,OAAM;MACNG,IAAIvC,KAAKC;MACTuC,MAAK;MACLC,MAAMzC,KAAKyC;MACXT,OAAOhC,KAAKgC;MACZ3B,UAAUL,KAAKK,YAAYL,KAAKM;MAChCF,SAASJ,KAAKI;MAAO,cACTJ,KAAK0C,SAAS1C,KAAK2C,YAAYC,EAAI5C,KAAK0C,SAASG;MAC7DC,UAAU9C,KAAKU;MAAW,WAClB;QAGZwB,EACI;MAAAC,KAAA;MAAAY,SAAS/C,KAAKC;MACdmC,OAAOpC,KAAK2C,YAAY,iBAAiBE;MAAS,WAC1C;QAEN7C,KAAKQ,mBACH0B,EAAK;MAAAC,KAAA;MAAAa,SAAQ;OACTd,EAAA;MAAAC,KAAA;MACIc,QAAO;MACPC,MAAK;MACLC,IAAG;MACHC,IAAG;MACHC,GAAE;QAENnB,EACI;MAAAC,KAAA;MAAAc,QAAO;MACPC,MAAK;MACLC,IAAG;MACHC,IAAG;MACHC,GAAE;UAIZrD,KAAK2C,aACHT,EAAK;MAAAC,KAAA;MAAAC,OAAM;OACLpC,KAAK0C,SAASE,EAAI5C,KAAK0C,UAAW,IACpCR,EAAA;MAAAC,KAAA","ignoreList":[]}
@@ -1,8 +1,8 @@
1
- import { r as e, h as t, F as i, g as s } from "./index-COzomxjJ.js";
1
+ import { r as e, h as t, F as i, g as s } from "./index-CGkHOjh1.js";
2
2
 
3
3
  import { d as a } from "./index-O1A-ZSZs.js";
4
4
 
5
- import { l as n } from "./index-CkXFIBxL.js";
5
+ import { l as n } from "./index-xCuy-dFb.js";
6
6
 
7
7
  const r = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:inline}";
8
8
 
@@ -1,6 +1,6 @@
1
- import { r as t, c as e, h as i, g as a } from "./index-COzomxjJ.js";
1
+ import { r as t, c as e, h as i, g as a } from "./index-CGkHOjh1.js";
2
2
 
3
- import { b as n, o as s, a as r, n as o, l as c } from "./index-CkXFIBxL.js";
3
+ import { b as n, o as s, a as r, n as o, l as c } from "./index-xCuy-dFb.js";
4
4
 
5
5
  const d = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block;background:var(--tct-section-background, var(--tct-section-background-color, var(--t-section-background-color, var(--tct-section-bg, var(--t-section-bg, var(--app-white, #ffffff))))));color:var(--tct-section-font-color, var(--t-section-font-color, var(--t-text, #4d4d4d)));border-radius:var(--tct-section-border-radius, var(--t-section-border-radius, var(--app-border-radius-1, 4px)));margin:var(--tct-section-margin, var(--t-section-margin, var(--app-scale-3x, 15px)));border-width:var(--tct-section-border-width, 0);border-style:var(--tct-section-border-style, solid);border-color:var(--tct-section-border-color, none)}@media screen and (max-width: 767px){:host{--comp-default-margin:var(--app-scale-3x, 15px) 0;margin:var(--tct-section-margin, var(--t-section-margin, var(--comp-default-margin)))}}@media print{:host{--comp-default-print-margin:var(--app-scale-3x, 15px) 0;margin:var(--tct-section-print-margin, var(--comp-default-print-margin))}}.wrapper{--comp-tween:var(--tct-section-tween, var(--t-section-tween, var(--app-tween-1, 0.2s ease)));--comp-default-wrapper-padding:var(--app-scale-1x, 5px) 0;display:block;padding:var(--tct-section-wrapper-padding, var(--t-section-wrapper-padding, var(--comp-default-wrapper-padding)))}.wrapper:hover{box-shadow:var(--tct-section-wrapper-hover-box-shadow, var(--t-section-wrapper-hover-box-shadow, inherit))}:host([collapsible]) .wrapper{--comp-tween:var(--tct-section-tween, var(--t-section-tween, var(--app-tween-2, 0.4s ease)))}header{--comp-default-header-padding:0 var(--app-scale-3x, 15px);padding:var(--tct-section-header-padding, var(--t-section-header-padding, var(--comp-default-header-padding)));display:flex}@media print{header{padding:var(--tct-section-header-print-padding, 0)}}header.has-header{min-height:var(--tct-section-header-min-height, var(--t-section-header-min-height, 44px))}.header-content{flex:1 1 100%;min-width:0;align-self:center}:host([collapsible]) .header-content{cursor:pointer}.title{margin:var(--tct-section-title-margin, 0);font-size:var(--tct-section-title-font-size, 20px);font-weight:var(--tct-section-title-font-weight, 600);text-transform:var(--tct-section-title-text-transform, none);letter-spacing:var(--tct-section-title-letter-spacing, inherit)}q2-icon{transition:transform var(--comp-tween)}:host(:not([expanded])) q2-icon,:host([expanded=false]) q2-icon{transform:rotate(180deg)}.content-wrapper{height:auto}.content-wrapper.is-closed{display:none;overflow:hidden}.content-wrapper.is-transitioning{overflow:hidden}:host([collapsible]) .content-wrapper{transition:height var(--comp-tween)}.content{--comp-default-content-padding:var(--app-scale-2x, 10px) var(--app-scale-3x, 15px);padding:var(--tct-section-content-padding, var(--t-section-content-padding, var(--comp-default-content-padding)))}@media print{.content{padding:var(--tct-section-content-print-padding, 0)}}.content:focus{box-shadow:none}:host([collapsible]) :host(:not([expanded])) .content{visibility:hidden}";
6
6
 
@@ -1,6 +1,6 @@
1
- import { r as t, c as e, h as i, F as s, g as o } from "./index-COzomxjJ.js";
1
+ import { r as t, c as e, h as i, F as s, g as o } from "./index-CGkHOjh1.js";
2
2
 
3
- import { c as l, l as r, j as n, e as a, o as c, k as h, a as d, m as p, w as u } from "./index-CkXFIBxL.js";
3
+ import { c as l, l as r, j as n, e as a, o as c, k as h, a as d, m as p, w as u } from "./index-xCuy-dFb.js";
4
4
 
5
5
  import { s as v, a as b } from "./action-sheet-D3xPdhm8.js";
6
6
 
@@ -1,6 +1,6 @@
1
- import { r as e, c as t, h as i, F as s, H as n, g as a } from "./index-COzomxjJ.js";
1
+ import { r as e, c as t, h as i, F as s, H as n, g as a } from "./index-CGkHOjh1.js";
2
2
 
3
- import { c as o, n as h, l as c } from "./index-CkXFIBxL.js";
3
+ import { c as o, n as h, l as c } from "./index-xCuy-dFb.js";
4
4
 
5
5
  const d = "*{box-sizing:border-box}*:active{outline:none}*:focus-visible{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block;position:relative}";
6
6