q2-tecton-elements 1.35.2 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/dist/cjs/charting-d02cba1f.js.map +1 -1
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js +1 -1
  3. package/dist/cjs/{index-f6545293.js → index-6f9f259c.js} +12 -9
  4. package/dist/cjs/index-6f9f259c.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
  8. package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
  9. package/dist/cjs/q2-calendar.cjs.entry.js +46 -3
  10. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  11. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  14. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  15. package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
  16. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  17. package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
  18. package/dist/cjs/q2-chart-donut.cjs.entry.js +12 -8
  19. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  20. package/dist/cjs/q2-checkbox-group.cjs.entry.js +25 -6
  21. package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
  24. package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
  25. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-dropdown.cjs.entry.js +3 -3
  27. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  28. package/dist/cjs/q2-editable-field.cjs.entry.js +34 -6
  29. package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
  30. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-input.cjs.entry.js +17 -10
  32. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  33. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-message.cjs.entry.js +14 -13
  35. package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
  36. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-optgroup_2.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-pagination.cjs.entry.js +37 -11
  40. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  41. package/dist/cjs/q2-pill.cjs.entry.js +3 -3
  42. package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
  43. package/dist/cjs/q2-radio-group.cjs.entry.js +9 -1
  44. package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
  45. package/dist/cjs/q2-radio.cjs.entry.js +12 -3
  46. package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-section.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-select.cjs.entry.js +54 -5
  49. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  50. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  51. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  52. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  53. package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
  54. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  55. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  56. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  57. package/dist/cjs/q2-textarea.cjs.entry.js +13 -1
  58. package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
  59. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  60. package/dist/collection/collection-manifest.json +1 -1
  61. package/dist/collection/components/q2-action-sheet/styles.css +0 -8
  62. package/dist/collection/components/q2-calendar/index.js +120 -2
  63. package/dist/collection/components/q2-calendar/index.js.map +1 -1
  64. package/dist/collection/components/q2-chart-area/index.js +2 -2
  65. package/dist/collection/components/q2-chart-area/index.js.map +1 -1
  66. package/dist/collection/components/q2-chart-bar/index.js +2 -2
  67. package/dist/collection/components/q2-chart-bar/index.js.map +1 -1
  68. package/dist/collection/components/q2-chart-donut/index.js +13 -9
  69. package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
  70. package/dist/collection/components/q2-checkbox-group/index.js +45 -5
  71. package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
  72. package/dist/collection/components/q2-data-table/index.js +6 -6
  73. package/dist/collection/components/q2-data-table/styles.css +37 -36
  74. package/dist/collection/components/q2-dropdown/index.js +1 -1
  75. package/dist/collection/components/q2-dropdown/index.js.map +1 -1
  76. package/dist/collection/components/q2-dropdown/styles.css +4 -0
  77. package/dist/collection/components/q2-editable-field/index.js +96 -6
  78. package/dist/collection/components/q2-editable-field/index.js.map +1 -1
  79. package/dist/collection/components/q2-input/index.js +49 -11
  80. package/dist/collection/components/q2-input/index.js.map +1 -1
  81. package/dist/collection/components/q2-message/index.js +14 -13
  82. package/dist/collection/components/q2-message/index.js.map +1 -1
  83. package/dist/collection/components/q2-option-list/index.js +2 -2
  84. package/dist/collection/components/q2-pagination/index.js +60 -9
  85. package/dist/collection/components/q2-pagination/index.js.map +1 -1
  86. package/dist/collection/components/q2-pagination/styles.css +1 -0
  87. package/dist/collection/components/q2-pill/index.js +2 -2
  88. package/dist/collection/components/q2-pill/index.js.map +1 -1
  89. package/dist/collection/components/q2-radio/index.js +29 -3
  90. package/dist/collection/components/q2-radio/index.js.map +1 -1
  91. package/dist/collection/components/q2-radio-group/index.js +27 -0
  92. package/dist/collection/components/q2-radio-group/index.js.map +1 -1
  93. package/dist/collection/components/q2-select/index.js +127 -5
  94. package/dist/collection/components/q2-select/index.js.map +1 -1
  95. package/dist/collection/components/q2-stepper-pane/index.js +2 -2
  96. package/dist/collection/components/q2-tab-container/index.js +1 -1
  97. package/dist/collection/components/q2-tab-container/index.js.map +1 -1
  98. package/dist/collection/components/q2-textarea/index.js +37 -0
  99. package/dist/collection/components/q2-textarea/index.js.map +1 -1
  100. package/dist/collection/utils/charting.js.map +1 -1
  101. package/dist/collection/utils/index.js +8 -6
  102. package/dist/collection/utils/index.js.map +1 -1
  103. package/dist/components/charting.js.map +1 -1
  104. package/dist/components/index11.js +14 -13
  105. package/dist/components/index11.js.map +1 -1
  106. package/dist/components/index16.js +11 -8
  107. package/dist/components/index16.js.map +1 -1
  108. package/dist/components/index9.js +19 -10
  109. package/dist/components/index9.js.map +1 -1
  110. package/dist/components/q2-action-sheet.js +1 -1
  111. package/dist/components/q2-action-sheet.js.map +1 -1
  112. package/dist/components/q2-calendar.js +51 -4
  113. package/dist/components/q2-calendar.js.map +1 -1
  114. package/dist/components/q2-chart-area.js +1 -1
  115. package/dist/components/q2-chart-area.js.map +1 -1
  116. package/dist/components/q2-chart-bar.js +1 -1
  117. package/dist/components/q2-chart-bar.js.map +1 -1
  118. package/dist/components/q2-chart-donut.js +11 -7
  119. package/dist/components/q2-chart-donut.js.map +1 -1
  120. package/dist/components/q2-checkbox-group.js +26 -6
  121. package/dist/components/q2-checkbox-group.js.map +1 -1
  122. package/dist/components/q2-data-table.js +1 -1
  123. package/dist/components/q2-data-table.js.map +1 -1
  124. package/dist/components/q2-dropdown.js +2 -2
  125. package/dist/components/q2-dropdown.js.map +1 -1
  126. package/dist/components/q2-editable-field.js +39 -7
  127. package/dist/components/q2-editable-field.js.map +1 -1
  128. package/dist/components/q2-pagination.js +37 -10
  129. package/dist/components/q2-pagination.js.map +1 -1
  130. package/dist/components/q2-pill.js +2 -2
  131. package/dist/components/q2-pill.js.map +1 -1
  132. package/dist/components/q2-radio-group.js +10 -1
  133. package/dist/components/q2-radio-group.js.map +1 -1
  134. package/dist/components/q2-radio.js +13 -3
  135. package/dist/components/q2-radio.js.map +1 -1
  136. package/dist/components/q2-select.js +59 -6
  137. package/dist/components/q2-select.js.map +1 -1
  138. package/dist/components/q2-tab-container.js +1 -1
  139. package/dist/components/q2-tab-container.js.map +1 -1
  140. package/dist/components/q2-textarea.js +15 -2
  141. package/dist/components/q2-textarea.js.map +1 -1
  142. package/dist/docs.json +241 -9
  143. package/dist/esm/charting-2a73ba8e.js.map +1 -1
  144. package/dist/esm/click-elsewhere_2.entry.js +1 -1
  145. package/dist/esm/{index-35ff2881.js → index-74a659a5.js} +12 -9
  146. package/dist/esm/index-74a659a5.js.map +1 -0
  147. package/dist/esm/loader.js +1 -1
  148. package/dist/esm/q2-action-sheet.entry.js +2 -2
  149. package/dist/esm/q2-action-sheet.entry.js.map +1 -1
  150. package/dist/esm/q2-btn_2.entry.js +1 -1
  151. package/dist/esm/q2-calendar.entry.js +46 -3
  152. package/dist/esm/q2-calendar.entry.js.map +1 -1
  153. package/dist/esm/q2-card.entry.js +1 -1
  154. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  155. package/dist/esm/q2-carousel.entry.js +1 -1
  156. package/dist/esm/q2-chart-area.entry.js +2 -2
  157. package/dist/esm/q2-chart-area.entry.js.map +1 -1
  158. package/dist/esm/q2-chart-bar.entry.js +2 -2
  159. package/dist/esm/q2-chart-bar.entry.js.map +1 -1
  160. package/dist/esm/q2-chart-donut.entry.js +12 -8
  161. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  162. package/dist/esm/q2-checkbox-group.entry.js +25 -6
  163. package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
  164. package/dist/esm/q2-checkbox.entry.js +1 -1
  165. package/dist/esm/q2-data-table.entry.js +2 -2
  166. package/dist/esm/q2-data-table.entry.js.map +1 -1
  167. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  168. package/dist/esm/q2-dropdown.entry.js +3 -3
  169. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  170. package/dist/esm/q2-editable-field.entry.js +34 -6
  171. package/dist/esm/q2-editable-field.entry.js.map +1 -1
  172. package/dist/esm/q2-icon.entry.js +1 -1
  173. package/dist/esm/q2-input.entry.js +17 -10
  174. package/dist/esm/q2-input.entry.js.map +1 -1
  175. package/dist/esm/q2-loc.entry.js +1 -1
  176. package/dist/esm/q2-message.entry.js +14 -13
  177. package/dist/esm/q2-message.entry.js.map +1 -1
  178. package/dist/esm/q2-month-picker.entry.js +1 -1
  179. package/dist/esm/q2-optgroup_2.entry.js +1 -1
  180. package/dist/esm/q2-option-list.entry.js +1 -1
  181. package/dist/esm/q2-pagination.entry.js +37 -11
  182. package/dist/esm/q2-pagination.entry.js.map +1 -1
  183. package/dist/esm/q2-pill.entry.js +3 -3
  184. package/dist/esm/q2-pill.entry.js.map +1 -1
  185. package/dist/esm/q2-radio-group.entry.js +9 -1
  186. package/dist/esm/q2-radio-group.entry.js.map +1 -1
  187. package/dist/esm/q2-radio.entry.js +12 -3
  188. package/dist/esm/q2-radio.entry.js.map +1 -1
  189. package/dist/esm/q2-section.entry.js +1 -1
  190. package/dist/esm/q2-select.entry.js +54 -5
  191. package/dist/esm/q2-select.entry.js.map +1 -1
  192. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  193. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  194. package/dist/esm/q2-stepper.entry.js +1 -1
  195. package/dist/esm/q2-tab-container.entry.js +2 -2
  196. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  197. package/dist/esm/q2-tag.entry.js +1 -1
  198. package/dist/esm/q2-tecton-elements.js +1 -1
  199. package/dist/esm/q2-textarea.entry.js +13 -1
  200. package/dist/esm/q2-textarea.entry.js.map +1 -1
  201. package/dist/esm/q2-tooltip.entry.js +1 -1
  202. package/dist/q2-tecton-elements/{p-2b91b34e.entry.js → p-077107c1.entry.js} +2 -2
  203. package/dist/q2-tecton-elements/p-09d4b3d3.entry.js +2 -0
  204. package/dist/q2-tecton-elements/p-09d4b3d3.entry.js.map +1 -0
  205. package/dist/q2-tecton-elements/{p-b73e7870.entry.js → p-0d4aec6e.entry.js} +2 -2
  206. package/dist/q2-tecton-elements/p-1c993698.entry.js +2 -0
  207. package/dist/q2-tecton-elements/p-1c993698.entry.js.map +1 -0
  208. package/dist/q2-tecton-elements/{p-0c1b74e9.entry.js → p-252889b7.entry.js} +2 -2
  209. package/dist/q2-tecton-elements/p-252889b7.entry.js.map +1 -0
  210. package/dist/q2-tecton-elements/{p-d4da72f0.entry.js → p-25bd1b18.entry.js} +2 -2
  211. package/dist/q2-tecton-elements/p-25bd1b18.entry.js.map +1 -0
  212. package/dist/q2-tecton-elements/p-2a975246.entry.js +2 -0
  213. package/dist/q2-tecton-elements/p-2a975246.entry.js.map +1 -0
  214. package/dist/q2-tecton-elements/{p-55deaceb.entry.js → p-30facf35.entry.js} +2 -2
  215. package/dist/q2-tecton-elements/p-3798ad96.entry.js +2 -0
  216. package/dist/q2-tecton-elements/p-3798ad96.entry.js.map +1 -0
  217. package/dist/q2-tecton-elements/p-458b1987.js.map +1 -1
  218. package/dist/q2-tecton-elements/{p-2325975a.entry.js → p-46287c02.entry.js} +2 -2
  219. package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js → p-47c60d4a.entry.js} +2 -2
  220. package/dist/q2-tecton-elements/{p-6cc730db.entry.js → p-4abbd0b1.entry.js} +2 -2
  221. package/dist/q2-tecton-elements/{p-dafdb018.entry.js → p-570c1d3d.entry.js} +2 -2
  222. package/dist/q2-tecton-elements/p-570c1d3d.entry.js.map +1 -0
  223. package/dist/q2-tecton-elements/{p-4fb81d03.entry.js → p-578e3f98.entry.js} +2 -2
  224. package/dist/q2-tecton-elements/p-58cdb9c7.entry.js +2 -0
  225. package/dist/q2-tecton-elements/p-58cdb9c7.entry.js.map +1 -0
  226. package/dist/q2-tecton-elements/p-597f8656.entry.js +2 -0
  227. package/dist/q2-tecton-elements/p-597f8656.entry.js.map +1 -0
  228. package/dist/q2-tecton-elements/{p-ce27270b.entry.js → p-59d34a17.entry.js} +2 -2
  229. package/dist/q2-tecton-elements/{p-3c0d391b.entry.js → p-5bc4d94c.entry.js} +2 -2
  230. package/dist/q2-tecton-elements/{p-70a59bf1.entry.js → p-67f33354.entry.js} +2 -2
  231. package/dist/q2-tecton-elements/p-67f33354.entry.js.map +1 -0
  232. package/dist/q2-tecton-elements/{p-c9f32e51.entry.js → p-6cacc879.entry.js} +2 -2
  233. package/dist/q2-tecton-elements/{p-f637136f.entry.js → p-7366d36d.entry.js} +2 -2
  234. package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js → p-75fd6df5.entry.js} +2 -2
  235. package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js.map → p-75fd6df5.entry.js.map} +1 -1
  236. package/dist/q2-tecton-elements/{p-68371e6d.entry.js → p-8e7b762a.entry.js} +2 -2
  237. package/dist/q2-tecton-elements/{p-ece07c0d.entry.js → p-9a28b93a.entry.js} +2 -2
  238. package/dist/q2-tecton-elements/{p-d3827468.entry.js → p-9c9a2550.entry.js} +2 -2
  239. package/dist/q2-tecton-elements/p-9d743327.entry.js +2 -0
  240. package/dist/q2-tecton-elements/p-9d743327.entry.js.map +1 -0
  241. package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js → p-9ef2829e.entry.js} +2 -2
  242. package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js.map → p-9ef2829e.entry.js.map} +1 -1
  243. package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js → p-a52371cf.entry.js} +2 -2
  244. package/dist/q2-tecton-elements/{p-f11326c2.entry.js → p-a53e9f1e.entry.js} +2 -2
  245. package/dist/q2-tecton-elements/{p-586c8654.entry.js → p-a60f82c0.entry.js} +2 -2
  246. package/dist/q2-tecton-elements/p-a60f82c0.entry.js.map +1 -0
  247. package/dist/q2-tecton-elements/{p-f6be73b7.entry.js → p-ac82ea35.entry.js} +2 -2
  248. package/dist/q2-tecton-elements/{p-f6be73b7.entry.js.map → p-ac82ea35.entry.js.map} +1 -1
  249. package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js → p-bfd69d42.entry.js} +2 -2
  250. package/dist/q2-tecton-elements/{p-82bda2ff.entry.js → p-db6921fb.entry.js} +2 -2
  251. package/dist/q2-tecton-elements/{p-cfbd2cb1.entry.js → p-e45856f7.entry.js} +2 -2
  252. package/dist/q2-tecton-elements/p-e45856f7.entry.js.map +1 -0
  253. package/dist/q2-tecton-elements/{p-654987bf.entry.js → p-e8858d0d.entry.js} +2 -2
  254. package/dist/q2-tecton-elements/p-e8858d0d.entry.js.map +1 -0
  255. package/dist/q2-tecton-elements/{p-99ab3236.js → p-ef856249.js} +2 -2
  256. package/dist/q2-tecton-elements/p-ef856249.js.map +1 -0
  257. package/dist/q2-tecton-elements/{p-073df9e2.entry.js → p-efbe6c17.entry.js} +2 -2
  258. package/dist/q2-tecton-elements/p-efbe6c17.entry.js.map +1 -0
  259. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  260. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  261. package/dist/test/elements/q2-calendar-test.e2e.js +177 -0
  262. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  263. package/dist/test/elements/q2-chart-area-test.e2e.js +30 -1
  264. package/dist/test/elements/q2-chart-area-test.e2e.js.map +1 -1
  265. package/dist/test/elements/q2-chart-bar-test.e2e.js +30 -1
  266. package/dist/test/elements/q2-chart-bar-test.e2e.js.map +1 -1
  267. package/dist/test/elements/q2-chart-donut-test.e2e.js +21 -18
  268. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
  269. package/dist/test/elements/q2-checkbox-group-test.e2e.js +138 -18
  270. package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
  271. package/dist/test/elements/q2-checkbox-test.e2e.js +143 -115
  272. package/dist/test/elements/q2-checkbox-test.e2e.js.map +1 -1
  273. package/dist/test/elements/q2-dropdown-test.e2e.js +28 -0
  274. package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
  275. package/dist/test/elements/q2-editable-field-test.e2e.js +149 -28
  276. package/dist/test/elements/q2-editable-field-test.e2e.js.map +1 -1
  277. package/dist/test/elements/q2-input-test.e2e.js +150 -9
  278. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  279. package/dist/test/elements/q2-message-test.e2e.js +38 -1
  280. package/dist/test/elements/q2-message-test.e2e.js.map +1 -1
  281. package/dist/test/elements/q2-pill-test.e2e.js +37 -1
  282. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  283. package/dist/test/elements/q2-radio-group-test.e2e.js +148 -186
  284. package/dist/test/elements/q2-radio-group-test.e2e.js.map +1 -1
  285. package/dist/test/elements/q2-radio-test.e2e.js +100 -15
  286. package/dist/test/elements/q2-radio-test.e2e.js.map +1 -1
  287. package/dist/test/elements/q2-select-test.e2e.js +203 -0
  288. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  289. package/dist/test/elements/q2-tag-test.e2e.js +5 -0
  290. package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
  291. package/dist/test/elements/q2-textarea-test.e2e.js +33 -1
  292. package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
  293. package/dist/types/components/q2-calendar/index.d.ts +8 -1
  294. package/dist/types/components/q2-chart-area/index.d.ts +1 -1
  295. package/dist/types/components/q2-chart-bar/index.d.ts +1 -1
  296. package/dist/types/components/q2-chart-donut/index.d.ts +2 -5
  297. package/dist/types/components/q2-checkbox-group/index.d.ts +3 -0
  298. package/dist/types/components/q2-editable-field/index.d.ts +10 -2
  299. package/dist/types/components/q2-input/index.d.ts +2 -0
  300. package/dist/types/components/q2-message/index.d.ts +1 -0
  301. package/dist/types/components/q2-pagination/index.d.ts +4 -0
  302. package/dist/types/components/q2-radio/index.d.ts +1 -0
  303. package/dist/types/components/q2-radio-group/index.d.ts +1 -0
  304. package/dist/types/components/q2-select/index.d.ts +9 -1
  305. package/dist/types/components/q2-textarea/index.d.ts +2 -0
  306. package/dist/types/components.d.ts +23 -4
  307. package/dist/types/utils/charting.d.ts +0 -6
  308. package/package.json +3 -3
  309. package/dist/cjs/index-f6545293.js.map +0 -1
  310. package/dist/esm/index-35ff2881.js.map +0 -1
  311. package/dist/q2-tecton-elements/p-073df9e2.entry.js.map +0 -1
  312. package/dist/q2-tecton-elements/p-0c1b74e9.entry.js.map +0 -1
  313. package/dist/q2-tecton-elements/p-215d5ab4.entry.js +0 -2
  314. package/dist/q2-tecton-elements/p-215d5ab4.entry.js.map +0 -1
  315. package/dist/q2-tecton-elements/p-2987498c.entry.js +0 -2
  316. package/dist/q2-tecton-elements/p-2987498c.entry.js.map +0 -1
  317. package/dist/q2-tecton-elements/p-57838409.entry.js +0 -2
  318. package/dist/q2-tecton-elements/p-57838409.entry.js.map +0 -1
  319. package/dist/q2-tecton-elements/p-586c8654.entry.js.map +0 -1
  320. package/dist/q2-tecton-elements/p-654987bf.entry.js.map +0 -1
  321. package/dist/q2-tecton-elements/p-70a59bf1.entry.js.map +0 -1
  322. package/dist/q2-tecton-elements/p-7a6e33d4.entry.js +0 -2
  323. package/dist/q2-tecton-elements/p-7a6e33d4.entry.js.map +0 -1
  324. package/dist/q2-tecton-elements/p-99ab3236.js.map +0 -1
  325. package/dist/q2-tecton-elements/p-ae2fa966.entry.js +0 -2
  326. package/dist/q2-tecton-elements/p-ae2fa966.entry.js.map +0 -1
  327. package/dist/q2-tecton-elements/p-b8d1c16f.entry.js +0 -2
  328. package/dist/q2-tecton-elements/p-b8d1c16f.entry.js.map +0 -1
  329. package/dist/q2-tecton-elements/p-cfbd2cb1.entry.js.map +0 -1
  330. package/dist/q2-tecton-elements/p-d4da72f0.entry.js.map +0 -1
  331. package/dist/q2-tecton-elements/p-dafdb018.entry.js.map +0 -1
  332. package/dist/q2-tecton-elements/p-deb1e1c8.entry.js +0 -2
  333. package/dist/q2-tecton-elements/p-deb1e1c8.entry.js.map +0 -1
  334. /package/dist/q2-tecton-elements/{p-2b91b34e.entry.js.map → p-077107c1.entry.js.map} +0 -0
  335. /package/dist/q2-tecton-elements/{p-b73e7870.entry.js.map → p-0d4aec6e.entry.js.map} +0 -0
  336. /package/dist/q2-tecton-elements/{p-55deaceb.entry.js.map → p-30facf35.entry.js.map} +0 -0
  337. /package/dist/q2-tecton-elements/{p-2325975a.entry.js.map → p-46287c02.entry.js.map} +0 -0
  338. /package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js.map → p-47c60d4a.entry.js.map} +0 -0
  339. /package/dist/q2-tecton-elements/{p-6cc730db.entry.js.map → p-4abbd0b1.entry.js.map} +0 -0
  340. /package/dist/q2-tecton-elements/{p-4fb81d03.entry.js.map → p-578e3f98.entry.js.map} +0 -0
  341. /package/dist/q2-tecton-elements/{p-ce27270b.entry.js.map → p-59d34a17.entry.js.map} +0 -0
  342. /package/dist/q2-tecton-elements/{p-3c0d391b.entry.js.map → p-5bc4d94c.entry.js.map} +0 -0
  343. /package/dist/q2-tecton-elements/{p-c9f32e51.entry.js.map → p-6cacc879.entry.js.map} +0 -0
  344. /package/dist/q2-tecton-elements/{p-f637136f.entry.js.map → p-7366d36d.entry.js.map} +0 -0
  345. /package/dist/q2-tecton-elements/{p-68371e6d.entry.js.map → p-8e7b762a.entry.js.map} +0 -0
  346. /package/dist/q2-tecton-elements/{p-ece07c0d.entry.js.map → p-9a28b93a.entry.js.map} +0 -0
  347. /package/dist/q2-tecton-elements/{p-d3827468.entry.js.map → p-9c9a2550.entry.js.map} +0 -0
  348. /package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js.map → p-a52371cf.entry.js.map} +0 -0
  349. /package/dist/q2-tecton-elements/{p-f11326c2.entry.js.map → p-a53e9f1e.entry.js.map} +0 -0
  350. /package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js.map → p-bfd69d42.entry.js.map} +0 -0
  351. /package/dist/q2-tecton-elements/{p-82bda2ff.entry.js.map → p-db6921fb.entry.js.map} +0 -0
  352. /package/dist/types/workspace/workspace/{tecton-production_release_1.35.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
@@ -1,2 +1,2 @@
1
- import{r as t,c as a,h as e,F as i,g as r}from"./p-277dc8cd.js";import{f as n,c as o,l as s,i as c,o as l}from"./p-99ab3236.js";const h="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}: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}button{cursor:pointer;margin:0}.tab-container{position:relative}ul{--comp-container-padding:var(--tct-scale-1, var(--app-scale-1x, 5px)) var(--tct-scale-1, var(--app-scale-1x, 5px)) 0;padding:var(--tct-tab-container-padding, var(--t-tab-container-padding, var(--comp-container-padding)));margin:var(--tct-tab-container-margin, var(--t-tab-container-margin));display:flex;gap:var(--tct-tab-gap, var(--t-tab-gap, var(--tct-scale-1, var(--app-scale-1x, 5px))));list-style:none;border-bottom:1px solid var(--tct-tab-container-border-color, var(--t-tab-container-border-color, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc))))));overflow-x:auto;align-items:center;scrollbar-width:none;scrollbar-color:transparent}ul::-webkit-scrollbar{width:0;height:0}ul::-webkit-scrollbar-thumb{background:transparent}ul::-webkit-scrollbar-track{background:transparent}@media print{ul.no-print{display:none}}li{flex:0 0 auto}li button{background:var(--tct-tab-inactive-background, var(--tct-tab-inactive-bg-color, var(--t-tab-inactive-bg-color, transparent)));border-width:var(--tct-tab-inactive-border-width, var(--t-tab-inactive-border-width, 0 0 3px 0));border-color:var(--tct-tab-inactive-border-color, var(--t-tab-inactive-border-color, transparent));border-style:var(--tct-tab-inactive-border-style, var(--t-tab-inactive-border-style, solid));border-radius:var(--tct-tab-border-radius, var(--t-tab-border-radius, 0));width:var(--tct-tab-width, var(--t-tab-width, 100%));text-align:var(--tct-tab-text-align, var(--t-tab-text-align, center));text-decoration:var(--tct-tab-text-decoration, var(--t-tab-text-decoration, none));padding:var(--tct-tab-padding, var(--t-tab-padding, var(--tct-scale-2, var(--app-scale-2x, 10px))));color:var(--tct-tab-inactive-color, var(--t-tab-inactive-color, inherit));font-size:var(--tct-tab-font-size, var(--t-tab-font-size, 17px));display:block;transition:color var(--tct-tween-2, var(--app-tween-2, 0.4s ease)), border-color var(--tct-tween-1, var(--app-tween-1, 0.2s ease))}:host([type=section]) li button{--comp-tab-section-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-1, var(--app-scale-1x, 5px));font-size:inherit;padding:var(--tct-tab-section-padding, var(--t-tab-section-padding, var(--comp-tab-section-padding)))}li button:hover{color:var(--tct-tab-hover-color, var(--t-tab-hover-color, var(--tct-tab-active-color, var(--t-tab-active-color, #2e2e2e))));background:var(--tct-tab-hover-background, var(--tct-tab-hover-bg-color, var(--t-tab-hover-bg-color, inherit)));width:var(--tct-tab-hover-width, var(--t-tab-hover-width, 100%))}li button[aria-selected=true]{color:var(--tct-tab-active-color, var(--t-tab-active-color, #2e2e2e));border-color:var(--tct-tab-active-border-color, var(--t-tab-active-border-color, currentColor));border-style:var(--tct-tab-active-border-style, var(--t-tab-active-border-style, solid));width:var(--tct-tab-active-width, var(--t-tab-active-width, 100%));background:var(--tct-tab-active-background, var(--tct-tab-active-bg-color, var(--t-tab-active-bg-color, inherit)))}:host([color=alt]) li button{color:var(--tct-tab-alt-inactive-color, var(--t-tab-alt-inactive-color, inherit))}:host([color=alt]) li button:hover,:host([color=alt]) li button[aria-selected=true]{color:var(--tct-tab-alt-active-color, var(--t-tab-alt-active-color, inherit))}@media screen and (max-width: 767px){li button{--comp-tab-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-1, var(--app-scale-1x, 5px));font-size:inherit;padding:var(--tct-tab-padding, var(--t-tab-padding, var(--comp-tab-padding)))}}.tab-content{--comp-tab-content-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) 0;padding:var(--tct-tab-content-padding, var(--t-tab-content-padding, var(--comp-tab-content-padding)))}.tab-content:focus{outline:none;box-shadow:none}.gradient-left,.gradient-right{z-index:1;position:absolute;top:0;height:100%;width:44px}.gradient-left{background-image:linear-gradient(to left, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);left:0}.gradient-right{background-image:linear-gradient(to right, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);right:0}.btn-left,.btn-right{--tct-icon-size:18px;--tct-btn-icon-hover-background:transparent;--tct-btn-icon-width:22px;--tct-icon-stroke-primary:var(--tct-stepper-scroll-arrow-color, var(--t-stepper-scroll-arrow-color, var(--t-text, #4d4d4d)));position:absolute;top:calc(50% - 22px);z-index:2}.btn-left q2-icon,.btn-right q2-icon{--tct-icon-stroke-width:3}.btn-left{left:0}.btn-right{right:0}.tab-pane-badge{display:flex;justify-content:space-between;align-items:center}.tab-pane-badge q2-badge{margin-left:5px;margin-right:5px}";n();const b=class{constructor(e){t(this,e);this.change=a(this,"change",7);this.settled=a(this,"settled",7);this.guid=o();this.scheduledAfterRender=[];this.lastScrolled=new Date(null).getTime();this.updateTabData=()=>{this.updateTabPaneProps();this.setTabs()};this.updateTabPaneProps=()=>{this.tabPanes.forEach(((t,a)=>{t.selected=t.value===this.selectedTabValue;t.guid=this.guid;t.index=a}))};this.setTabs=()=>{this.tabs=this.tabPanes.map((({label:t,value:a,badgeCount:e,badgeDescription:i,badgeTheme:r,badgeStatus:n})=>({label:t&&s(t)||"",value:a,badgeCount:e,badgeDescription:i,badgeTheme:r,badgeStatus:n})))};this.onTabClick=t=>{const a=t.target.closest('button[role="tab"]').dataset.value;const e=this.value===a;if(e)return;this.change.emit({value:a})};this.onTabKeyDown=t=>{const a=t.target.dataset.value;switch(t.key){case"ArrowRight":t.preventDefault();this.moveToAdjacentTab(a,"next");break;case"ArrowLeft":t.preventDefault();this.moveToAdjacentTab(a,"prev");break;case"Home":t.preventDefault();this.moveToAdjacentTab(a,"first");break;case"End":t.preventDefault();this.moveToAdjacentTab(a,"last");break;case"Space":case"Enter":t.preventDefault();this.change.emit({value:a});break}};this.moveToAdjacentTab=(t,a)=>{const e=this.tabs.map((({value:t})=>t)).indexOf(t);let i;switch(a){case"next":i=Math.min(e+1,this.tabs.length-1);break;case"prev":i=Math.max(e-1,0);break;case"first":i=0;break;case"last":i=this.tabs.length-1;break}if(e===i)return;this.moveFocus(i,false)};this.moveFocus=(t,a=true)=>{const e=this.tabs[t].value;const i=this.listElement.querySelector(`[data-value="${e}"]`);i.focus({preventScroll:a});const r=i.offsetLeft-this.listElement.clientWidth/2;this.listElement.scrollTo({left:r,behavior:"smooth"});return i};this.checkScrollState=()=>{if(!this.listElement)return;const{scrollLeft:t,scrollWidth:a,clientWidth:e}=this.listElement;this.scrollEnabled=a>e;this.showScrollLeft=!!t;this.showScrollRight=a!==t+e};this.onScrollBtnClick=t=>{const a=Math.floor(this.listElement.clientWidth/2);this.listElement.scrollBy({left:t==="left"?-a:a,behavior:"smooth"})};this.onSlotChange=()=>{this.checkScrollState()};this.value=undefined;this.type=undefined;this.name=undefined;this.color=undefined;this.noPrint=false;this.hasLeft=false;this.hasRight=false;this.scrollEnabled=false;this.showScrollLeft=false;this.showScrollRight=false;this.tabs=undefined}resizeIframe(){var t,a;return(a=(t=window.TectonElements)===null||t===void 0?void 0:t.resizeIframe)===null||a===void 0?void 0:a.call(t)}get tabPanes(){const t=this.hostElement.querySelectorAll("q2-tab-pane, tecton-tab-pane");if(t.length===0){return[]}return Array.from(t).filter((t=>t.name===this.name))}get selectedTabValue(){return this.value||this.tabPanes[0].value||""}get tabList(){return this.hostElement.shadowRoot.querySelector(".tab-list")}defaultChangeHandler(t){if(t.target===this.hostElement&&!this.hostElement.onchange){this.value=t.detail.value}}onResize(){this.checkScrollState()}onFocus(t){if(!c(t,this.hostElement))return;const a=this.tabs.findIndex((t=>t.value===this.selectedTabValue));this.moveFocus(a)}onBadge(){this.setTabs()}componentWillLoad(){const t=new MutationObserver(this.updateTabData);t.observe(this.hostElement,{childList:true,attributes:true});this.mutationObserver=t;this.resizeObserver=new ResizeObserver((()=>this.checkScrollState()));this.updateTabData()}componentDidRender(){this.scheduledAfterRender.forEach((t=>t()));this.scheduledAfterRender=[];this.settled.emit()}componentDidLoad(){this.resizeObserver.observe(this.listElement);this.checkScrollState();l(this.hostElement);const t=this.tabs.findIndex((t=>t.value===this.value));this.scheduledAfterRender.push((()=>{const a=this.tabs.length>0;if(!a)return;const e=this.moveFocus(Math.max(t,0));this.value=e.dataset.value;e.blur()}))}disconnectedCallback(){this.resizeObserver.disconnect();this.mutationObserver.disconnect();this.resizeObserver=null;this.mutationObserver=null}valueObserver(){this.updateTabData();this.scheduledAfterRender.push(this.resizeIframe);const t=this.tabs.findIndex((t=>t.value===this.value));if(t>-1){this.scheduledAfterRender.push((()=>this.moveFocus(t,false)))}}nameObserver(){this.updateTabData()}render(){return e(i,null,e("div",{class:"tab-container"},this.scrollEnabled&&e(i,null,e("div",{class:"gradient-left",hidden:!this.showScrollLeft}),e("div",{class:"gradient-right",hidden:!this.showScrollRight}),e("q2-btn",{class:"btn-left",hidden:!this.showScrollLeft,onClick:()=>this.onScrollBtnClick("left")},e("q2-icon",{type:"chevron-left"})),e("q2-btn",{class:"btn-right",hidden:!this.showScrollRight,onClick:()=>this.onScrollBtnClick("right")},e("q2-icon",{type:"chevron-right"}))),e("ul",{onScroll:this.checkScrollState,ref:t=>this.listElement=t,class:this.noPrint?"no-print":null,role:"tablist"},this.tabs.map(((t,a)=>this.generateTab(t,a))))),e("div",{class:"tab-content"},e("slot",{onSlotchange:()=>this.onSlotChange()})))}generateTab(t,a){const{label:i,value:r}=t;const n=this.selectedTabValue===r;return e("li",{role:"presentation"},e("button",{id:`tab-${this.guid}-${a}`,"data-value":r,"test-id":"tabLink",tabIndex:n?0:-1,role:"tab","aria-selected":n?"true":"false","aria-controls":`tab-pane-${this.guid}-${a}`,onClick:this.onTabClick,onKeyDown:this.onTabKeyDown},t.badgeCount===undefined?i:this.generateTabWithBadge(t,n)))}generateTabWithBadge(t,a){let i;if(!t.badgeStatus&&a)i=t.badgeTheme||"primary";let r;if(t.badgeDescription)r=s(t.badgeDescription);else if(t.badgeStatus)r=s(`tecton.element.tab.pane.${t.badgeStatus}`,[t.badgeCount]);else r=s("tecton.element.tab.pane.new");return e("div",{class:"tab-pane-badge","aria-label":`${t.label}, ${t.badgeCount} ${r}`},t.label,e("q2-badge",{value:t.badgeCount,theme:i,status:t.badgeStatus}))}get hostElement(){return r(this)}static get watchers(){return{value:["valueObserver"],name:["nameObserver"]}}};b.style=h;export{b as q2_tab_container};
2
- //# sourceMappingURL=p-f6be73b7.entry.js.map
1
+ import{r as t,c as a,h as e,F as i,g as r}from"./p-277dc8cd.js";import{f as n,c as o,l as s,i as c,o as l}from"./p-ef856249.js";const h="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}: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}button{cursor:pointer;margin:0}.tab-container{position:relative}ul{--comp-container-padding:var(--tct-scale-1, var(--app-scale-1x, 5px)) var(--tct-scale-1, var(--app-scale-1x, 5px)) 0;padding:var(--tct-tab-container-padding, var(--t-tab-container-padding, var(--comp-container-padding)));margin:var(--tct-tab-container-margin, var(--t-tab-container-margin));display:flex;gap:var(--tct-tab-gap, var(--t-tab-gap, var(--tct-scale-1, var(--app-scale-1x, 5px))));list-style:none;border-bottom:1px solid var(--tct-tab-container-border-color, var(--t-tab-container-border-color, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc))))));overflow-x:auto;align-items:center;scrollbar-width:none;scrollbar-color:transparent}ul::-webkit-scrollbar{width:0;height:0}ul::-webkit-scrollbar-thumb{background:transparent}ul::-webkit-scrollbar-track{background:transparent}@media print{ul.no-print{display:none}}li{flex:0 0 auto}li button{background:var(--tct-tab-inactive-background, var(--tct-tab-inactive-bg-color, var(--t-tab-inactive-bg-color, transparent)));border-width:var(--tct-tab-inactive-border-width, var(--t-tab-inactive-border-width, 0 0 3px 0));border-color:var(--tct-tab-inactive-border-color, var(--t-tab-inactive-border-color, transparent));border-style:var(--tct-tab-inactive-border-style, var(--t-tab-inactive-border-style, solid));border-radius:var(--tct-tab-border-radius, var(--t-tab-border-radius, 0));width:var(--tct-tab-width, var(--t-tab-width, 100%));text-align:var(--tct-tab-text-align, var(--t-tab-text-align, center));text-decoration:var(--tct-tab-text-decoration, var(--t-tab-text-decoration, none));padding:var(--tct-tab-padding, var(--t-tab-padding, var(--tct-scale-2, var(--app-scale-2x, 10px))));color:var(--tct-tab-inactive-color, var(--t-tab-inactive-color, inherit));font-size:var(--tct-tab-font-size, var(--t-tab-font-size, 17px));display:block;transition:color var(--tct-tween-2, var(--app-tween-2, 0.4s ease)), border-color var(--tct-tween-1, var(--app-tween-1, 0.2s ease))}:host([type=section]) li button{--comp-tab-section-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-1, var(--app-scale-1x, 5px));font-size:inherit;padding:var(--tct-tab-section-padding, var(--t-tab-section-padding, var(--comp-tab-section-padding)))}li button:hover{color:var(--tct-tab-hover-color, var(--t-tab-hover-color, var(--tct-tab-active-color, var(--t-tab-active-color, #2e2e2e))));background:var(--tct-tab-hover-background, var(--tct-tab-hover-bg-color, var(--t-tab-hover-bg-color, inherit)));width:var(--tct-tab-hover-width, var(--t-tab-hover-width, 100%))}li button[aria-selected=true]{color:var(--tct-tab-active-color, var(--t-tab-active-color, #2e2e2e));border-color:var(--tct-tab-active-border-color, var(--t-tab-active-border-color, currentColor));border-style:var(--tct-tab-active-border-style, var(--t-tab-active-border-style, solid));width:var(--tct-tab-active-width, var(--t-tab-active-width, 100%));background:var(--tct-tab-active-background, var(--tct-tab-active-bg-color, var(--t-tab-active-bg-color, inherit)))}:host([color=alt]) li button{color:var(--tct-tab-alt-inactive-color, var(--t-tab-alt-inactive-color, inherit))}:host([color=alt]) li button:hover,:host([color=alt]) li button[aria-selected=true]{color:var(--tct-tab-alt-active-color, var(--t-tab-alt-active-color, inherit))}@media screen and (max-width: 767px){li button{--comp-tab-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-1, var(--app-scale-1x, 5px));font-size:inherit;padding:var(--tct-tab-padding, var(--t-tab-padding, var(--comp-tab-padding)))}}.tab-content{--comp-tab-content-padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) 0;padding:var(--tct-tab-content-padding, var(--t-tab-content-padding, var(--comp-tab-content-padding)))}.tab-content:focus{outline:none;box-shadow:none}.gradient-left,.gradient-right{z-index:1;position:absolute;top:0;height:100%;width:44px}.gradient-left{background-image:linear-gradient(to left, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);left:0}.gradient-right{background-image:linear-gradient(to right, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);right:0}.btn-left,.btn-right{--tct-icon-size:18px;--tct-btn-icon-hover-background:transparent;--tct-btn-icon-width:22px;--tct-icon-stroke-primary:var(--tct-stepper-scroll-arrow-color, var(--t-stepper-scroll-arrow-color, var(--t-text, #4d4d4d)));position:absolute;top:calc(50% - 22px);z-index:2}.btn-left q2-icon,.btn-right q2-icon{--tct-icon-stroke-width:3}.btn-left{left:0}.btn-right{right:0}.tab-pane-badge{display:flex;justify-content:space-between;align-items:center}.tab-pane-badge q2-badge{margin-left:5px;margin-right:5px}";n();const b=class{constructor(e){t(this,e);this.change=a(this,"change",7);this.settled=a(this,"settled",7);this.guid=o();this.scheduledAfterRender=[];this.lastScrolled=new Date(null).getTime();this.updateTabData=()=>{this.updateTabPaneProps();this.setTabs()};this.updateTabPaneProps=()=>{this.tabPanes.forEach(((t,a)=>{t.selected=t.value===this.selectedTabValue;t.guid=this.guid;t.index=a}))};this.setTabs=()=>{this.tabs=this.tabPanes.map((({label:t,value:a,badgeCount:e,badgeDescription:i,badgeTheme:r,badgeStatus:n})=>({label:t&&s(t)||"",value:a,badgeCount:e,badgeDescription:i,badgeTheme:r,badgeStatus:n})))};this.onTabClick=t=>{const a=t.target.closest('button[role="tab"]').dataset.value;const e=this.value===a;if(e)return;this.change.emit({value:a})};this.onTabKeyDown=t=>{const a=t.target.dataset.value;switch(t.key){case"ArrowRight":t.preventDefault();this.moveToAdjacentTab(a,"next");break;case"ArrowLeft":t.preventDefault();this.moveToAdjacentTab(a,"prev");break;case"Home":t.preventDefault();this.moveToAdjacentTab(a,"first");break;case"End":t.preventDefault();this.moveToAdjacentTab(a,"last");break;case"Space":case"Enter":t.preventDefault();this.change.emit({value:a});break}};this.moveToAdjacentTab=(t,a)=>{const e=this.tabs.map((({value:t})=>t)).indexOf(t);let i;switch(a){case"next":i=Math.min(e+1,this.tabs.length-1);break;case"prev":i=Math.max(e-1,0);break;case"first":i=0;break;case"last":i=this.tabs.length-1;break}if(e===i)return;this.moveFocus(i,false)};this.moveFocus=(t,a=true)=>{const e=this.tabs[t].value;const i=this.listElement.querySelector(`[data-value="${e}"]`);i.focus({preventScroll:a});const r=i.offsetLeft-this.listElement.clientWidth/2;this.listElement.scrollTo({left:r,behavior:"smooth"});return i};this.checkScrollState=()=>{if(!this.listElement)return;const{scrollLeft:t,scrollWidth:a,clientWidth:e}=this.listElement;this.scrollEnabled=a>e;this.showScrollLeft=!!t;this.showScrollRight=a!==t+e};this.onScrollBtnClick=t=>{const a=Math.floor(this.listElement.clientWidth/2);this.listElement.scrollBy({left:t==="left"?-a:a,behavior:"smooth"})};this.onSlotChange=()=>{this.checkScrollState()};this.value=undefined;this.type=undefined;this.name=undefined;this.color=undefined;this.noPrint=false;this.hasLeft=false;this.hasRight=false;this.scrollEnabled=false;this.showScrollLeft=false;this.showScrollRight=false;this.tabs=undefined}resizeIframe(){var t,a;return(a=(t=window.TectonElements)===null||t===void 0?void 0:t.resizeIframe)===null||a===void 0?void 0:a.call(t)}get tabPanes(){const t=this.hostElement.querySelectorAll("q2-tab-pane, tecton-tab-pane");if(t.length===0){return[]}return Array.from(t).filter((t=>t.name===this.name))}get selectedTabValue(){return this.value||this.tabPanes[0].value||""}get tabList(){return this.hostElement.shadowRoot.querySelector(".tab-list")}defaultChangeHandler(t){if(t.target===this.hostElement&&!this.hostElement.onchange){this.value=t.detail.value}}onResize(){this.checkScrollState()}onFocus(t){if(!c(t,this.hostElement))return;const a=this.tabs.findIndex((t=>t.value===this.selectedTabValue));this.moveFocus(a)}onBadge(){this.setTabs()}componentWillLoad(){const t=new MutationObserver(this.updateTabData);t.observe(this.hostElement,{childList:true,attributes:true});this.mutationObserver=t;this.resizeObserver=new ResizeObserver((()=>this.checkScrollState()));this.updateTabData()}componentDidRender(){this.scheduledAfterRender.forEach((t=>t()));this.scheduledAfterRender=[];this.settled.emit()}componentDidLoad(){this.resizeObserver.observe(this.listElement);this.checkScrollState();l(this.hostElement);const t=this.tabs.findIndex((t=>t.value===this.value));this.scheduledAfterRender.push((()=>{const a=this.tabs.length>0;if(!a)return;const e=this.moveFocus(Math.max(t,0));this.value=e.dataset.value;e.blur()}))}disconnectedCallback(){this.resizeObserver.disconnect();this.mutationObserver.disconnect();this.resizeObserver=null;this.mutationObserver=null}valueObserver(){this.updateTabData();this.scheduledAfterRender.push(this.resizeIframe);const t=this.tabs.findIndex((t=>t.value===this.value));if(t>-1){this.scheduledAfterRender.push((()=>this.moveFocus(t,false)))}}nameObserver(){this.updateTabData()}render(){return e(i,null,e("div",{class:"tab-container"},this.scrollEnabled&&e(i,null,e("div",{class:"gradient-left",hidden:!this.showScrollLeft}),e("div",{class:"gradient-right",hidden:!this.showScrollRight}),e("q2-btn",{class:"btn-left",hidden:!this.showScrollLeft,onClick:()=>this.onScrollBtnClick("left")},e("q2-icon",{type:"chevron-left",label:"scroll left"})),e("q2-btn",{class:"btn-right",hidden:!this.showScrollRight,onClick:()=>this.onScrollBtnClick("right")},e("q2-icon",{type:"chevron-right",label:"scroll right"}))),e("ul",{onScroll:this.checkScrollState,ref:t=>this.listElement=t,class:this.noPrint?"no-print":null,role:"tablist"},this.tabs.map(((t,a)=>this.generateTab(t,a))))),e("div",{class:"tab-content"},e("slot",{onSlotchange:()=>this.onSlotChange()})))}generateTab(t,a){const{label:i,value:r}=t;const n=this.selectedTabValue===r;return e("li",{role:"presentation"},e("button",{id:`tab-${this.guid}-${a}`,"data-value":r,"test-id":"tabLink",tabIndex:n?0:-1,role:"tab","aria-selected":n?"true":"false","aria-controls":`tab-pane-${this.guid}-${a}`,onClick:this.onTabClick,onKeyDown:this.onTabKeyDown},t.badgeCount===undefined?i:this.generateTabWithBadge(t,n)))}generateTabWithBadge(t,a){let i;if(!t.badgeStatus&&a)i=t.badgeTheme||"primary";let r;if(t.badgeDescription)r=s(t.badgeDescription);else if(t.badgeStatus)r=s(`tecton.element.tab.pane.${t.badgeStatus}`,[t.badgeCount]);else r=s("tecton.element.tab.pane.new");return e("div",{class:"tab-pane-badge","aria-label":`${t.label}, ${t.badgeCount} ${r}`},t.label,e("q2-badge",{value:t.badgeCount,theme:i,status:t.badgeStatus}))}get hostElement(){return r(this)}static get watchers(){return{value:["valueObserver"],name:["nameObserver"]}}};b.style=h;export{b as q2_tab_container};
2
+ //# sourceMappingURL=p-ac82ea35.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["stylesCss","addSmoothScrollPolyfill","Q2TabContainer","this","guid","createGuid","scheduledAfterRender","lastScrolled","Date","getTime","updateTabData","updateTabPaneProps","setTabs","tabPanes","forEach","tab","index","selected","value","selectedTabValue","tabs","map","label","badgeCount","badgeDescription","badgeTheme","badgeStatus","loc","onTabClick","event","targetValue","target","closest","dataset","isAlreadySelected","change","emit","onTabKeyDown","key","preventDefault","moveToAdjacentTab","direction","indexOf","newIndex","Math","min","length","max","moveFocus","preventScroll","focusedValue","focusedTab","listElement","querySelector","focus","left","offsetLeft","clientWidth","scrollTo","behavior","checkScrollState","scrollLeft","scrollWidth","scrollEnabled","showScrollLeft","showScrollRight","onScrollBtnClick","scrollAmount","floor","scrollBy","onSlotChange","resizeIframe","_b","_a","window","TectonElements","call","hostElement","querySelectorAll","Array","from","filter","pane","name","tabList","shadowRoot","defaultChangeHandler","onchange","detail","onResize","onFocus","isEventFromElement","findIndex","el","onBadge","componentWillLoad","observer","MutationObserver","observe","childList","attributes","mutationObserver","resizeObserver","ResizeObserver","componentDidRender","fn","settled","componentDidLoad","overrideFocus","push","hasTabs","blur","disconnectedCallback","disconnect","valueObserver","nameObserver","render","h","Fragment","class","hidden","onClick","type","onScroll","ref","noPrint","role","generateTab","onSlotchange","isSelected","id","tabIndex","onKeyDown","undefined","generateTabWithBadge","theme","description","status"],"sources":["./src/components/q2-tab-container/styles.scss?tag=q2-tab-container&encapsulation=shadow","./src/components/q2-tab-container/index.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n position: relative;\n}\n\nbutton {\n cursor: pointer;\n margin: 0;\n}\n\n.tab-container {\n position: relative;\n}\n\nul {\n --comp-container-padding: #{var-list(--tct-scale-1, --app-scale-1x, 5px)\n var-list(--tct-scale-1, --app-scale-1x, 5px) 0};\n padding: var-list(var-prefixer(tab-container-padding), --comp-container-padding);\n margin: var-list(var-prefixer(tab-container-margin));\n display: flex;\n gap: var-list(var-prefixer(tab-gap), --tct-scale-1, --app-scale-1x, 5px);\n list-style: none;\n border-bottom: 1px solid\n var-list(\n var-prefixer(tab-container-border-color),\n --tct-gray-11,\n --t-gray-11,\n --tct-gray-l1,\n --app-gray-l1,\n #cccccc\n );\n overflow-x: auto;\n align-items: center;\n @include hidden-scrollbar();\n\n @media print {\n &.no-print {\n display: none;\n }\n }\n}\n\nli {\n flex: 0 0 auto;\n\n button {\n background: var-list(--tct-tab-inactive-background, var-prefixer(tab-inactive-bg-color), transparent);\n border-width: var-list(var-prefixer(tab-inactive-border-width), unquote('0 0 3px 0'));\n border-color: var-list(var-prefixer(tab-inactive-border-color), transparent);\n border-style: var-list(var-prefixer(tab-inactive-border-style), solid);\n border-radius: var-list(var-prefixer(tab-border-radius), 0);\n width: var-list(var-prefixer(tab-width), 100%);\n text-align: var-list(var-prefixer(tab-text-align), center);\n text-decoration: var-list(var-prefixer(tab-text-decoration), none);\n padding: var-list(var-prefixer(tab-padding), --tct-scale-2, --app-scale-2x, 10px);\n color: var-list(var-prefixer(tab-inactive-color), inherit);\n font-size: var-list(var-prefixer(tab-font-size), 17px);\n display: block;\n transition: color var-list(--tct-tween-2, --app-tween-2, unquote('0.4s ease')),\n border-color var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n\n :host([type='section']) & {\n --comp-tab-section-padding: #{var-list(--tct-scale-2, --app-scale-2x, 10px)\n var-list(--tct-scale-1, --app-scale-1x, 5px)};\n font-size: inherit;\n padding: var-list(var-prefixer(tab-section-padding), --comp-tab-section-padding);\n }\n\n &:hover {\n color: var-list(var-prefixer(tab-hover-color), var-prefixer(tab-active-color), #2e2e2e);\n background: var-list(--tct-tab-hover-background, var-prefixer(tab-hover-bg-color), inherit);\n width: var-list(var-prefixer(tab-hover-width), 100%);\n }\n\n &[aria-selected='true'] {\n color: var-list(var-prefixer(tab-active-color), #2e2e2e);\n border-color: var-list(var-prefixer(tab-active-border-color), currentColor);\n border-style: var-list(var-prefixer(tab-active-border-style), solid);\n width: var-list(var-prefixer(tab-active-width), 100%);\n background: var-list(--tct-tab-active-background, var-prefixer(tab-active-bg-color), inherit);\n }\n\n :host([color='alt']) & {\n color: var-list(var-prefixer(tab-alt-inactive-color), inherit);\n\n &:hover,\n &[aria-selected='true'] {\n color: var-list(var-prefixer(tab-alt-active-color), inherit);\n }\n }\n\n @media screen and (max-width: 767px) {\n --comp-tab-padding: #{var-list(--tct-scale-2, --app-scale-2x, 10px)\n var-list(--tct-scale-1, --app-scale-1x, 5px)};\n font-size: inherit;\n padding: var-list(var-prefixer(tab-padding), --comp-tab-padding);\n }\n }\n}\n\n.tab-content {\n --comp-tab-content-padding: #{var-list(--tct-scale-2, --app-scale-2x, 10px) 0};\n padding: var-list(var-prefixer(tab-content-padding), --comp-tab-content-padding);\n\n &:focus {\n outline: none;\n box-shadow: none;\n }\n}\n\n.gradient-left,\n.gradient-right {\n z-index: 1;\n position: absolute;\n top: 0;\n height: 100%;\n width: 44px;\n}\n\n.gradient-left {\n background-image: linear-gradient(to left, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);\n left: 0;\n}\n\n.gradient-right {\n background-image: linear-gradient(to right, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);\n right: 0;\n}\n\n.btn-left,\n.btn-right {\n --tct-icon-size: 18px;\n --tct-btn-icon-hover-background: transparent;\n --tct-btn-icon-width: 22px;\n --tct-icon-stroke-primary: #{var-list(var-prefixer(stepper-scroll-arrow-color), --t-text, #4d4d4d)};\n\n position: absolute;\n top: calc(50% - 22px);\n z-index: 2;\n q2-icon {\n --tct-icon-stroke-width: 3;\n }\n}\n\n.btn-left {\n left: 0;\n}\n\n.btn-right {\n right: 0;\n}\n\n.tab-pane-badge {\n display: flex;\n justify-content: space-between;\n align-items: center;\n q2-badge {\n margin-left: 5px;\n margin-right: 5px;\n }\n}\n","import {\n Component,\n ComponentInterface,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Listen,\n Watch,\n h,\n Fragment,\n} from '@stencil/core';\nimport { createGuid, loc, addSmoothScrollPolyfill, overrideFocus, isEventFromElement } from 'src/utils';\nimport { JSX } from '../../components';\nimport { Q2Badge } from '../q2-badge';\n\naddSmoothScrollPolyfill();\n\ntype TabPane = {\n label: string;\n value: string;\n badgeCount: number;\n badgeDescription: string;\n badgeTheme: Q2Badge['theme'];\n badgeStatus: Q2Badge['status'];\n};\n\n@Component({\n tag: 'q2-tab-container',\n styleUrl: 'styles.scss',\n shadow: true,\n})\nexport class Q2TabContainer implements ComponentInterface {\n @Prop({ reflect: true, mutable: true }) value: string;\n @Prop({ reflect: true }) type: 'main' | 'section';\n @Prop({ reflect: true }) name: string;\n @Prop({ reflect: true }) color: 'alt' | undefined;\n @Prop({ reflect: true }) noPrint: boolean = false;\n\n @Element() hostElement: HTMLElement;\n\n @Event() change: EventEmitter;\n @Event() settled: EventEmitter;\n\n guid: number = createGuid();\n scheduledAfterRender: (() => void)[] = [];\n listElement: HTMLUListElement;\n mutationObserver: MutationObserver;\n resizeObserver: ResizeObserver;\n lastScrolled: number = new Date(null).getTime();\n @State() hasLeft: boolean = false;\n @State() hasRight: boolean = false;\n @State() scrollEnabled: boolean = false;\n @State() showScrollLeft: boolean = false;\n @State() showScrollRight: boolean = false;\n @State() tabs: TabPane[];\n\n resizeIframe() {\n return window.TectonElements?.resizeIframe?.();\n }\n\n get tabPanes() {\n const tabPanes = this.hostElement.querySelectorAll<HTMLQ2TabPaneElement | HTMLTectonTabPaneElement>(\n 'q2-tab-pane, tecton-tab-pane'\n );\n\n if (tabPanes.length === 0) {\n return [];\n }\n\n return Array.from(tabPanes).filter(pane => pane.name === this.name);\n }\n\n get selectedTabValue() {\n return this.value || this.tabPanes[0].value || '';\n }\n\n get tabList() {\n return this.hostElement.shadowRoot.querySelector('.tab-list');\n }\n\n ///////// Default Handler /////////\n @Listen('change')\n defaultChangeHandler(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onchange) {\n this.value = event.detail.value;\n }\n }\n\n @Listen('resize', { target: 'window' })\n onResize() {\n this.checkScrollState();\n }\n\n @Listen('focus')\n onFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n const index = this.tabs.findIndex(el => el.value === this.selectedTabValue);\n this.moveFocus(index);\n }\n\n @Listen('badge')\n onBadge() {\n this.setTabs();\n }\n\n ///////// Lifecycle Hooks /////////\n componentWillLoad() {\n const observer = new MutationObserver(this.updateTabData);\n observer.observe(this.hostElement, { childList: true, attributes: true });\n this.mutationObserver = observer;\n this.resizeObserver = new ResizeObserver(() => this.checkScrollState());\n this.updateTabData();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n this.settled.emit();\n }\n\n componentDidLoad() {\n this.resizeObserver.observe(this.listElement);\n this.checkScrollState();\n overrideFocus(this.hostElement);\n const index = this.tabs.findIndex(el => el.value === this.value);\n this.scheduledAfterRender.push(() => {\n const hasTabs = this.tabs.length > 0;\n if (!hasTabs) return;\n const tab = this.moveFocus(Math.max(index, 0));\n this.value = tab.dataset.value;\n tab.blur();\n });\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n this.mutationObserver.disconnect();\n this.resizeObserver = null;\n this.mutationObserver = null;\n }\n\n ///////// Observers /////////\n @Watch('value')\n valueObserver() {\n this.updateTabData();\n this.scheduledAfterRender.push(this.resizeIframe);\n const index = this.tabs.findIndex(el => el.value === this.value);\n if (index > -1) {\n this.scheduledAfterRender.push(() => this.moveFocus(index, false));\n }\n }\n\n @Watch('name')\n nameObserver() {\n this.updateTabData();\n }\n\n ///////// Actions /////////\n updateTabData = () => {\n this.updateTabPaneProps();\n this.setTabs();\n };\n\n updateTabPaneProps = () => {\n this.tabPanes.forEach((tab, index) => {\n tab.selected = tab.value === this.selectedTabValue;\n tab.guid = this.guid;\n tab.index = index;\n });\n };\n\n setTabs = () => {\n this.tabs = this.tabPanes.map(({ label, value, badgeCount, badgeDescription, badgeTheme, badgeStatus }) => ({\n label: (label && loc(label)) || '',\n value,\n badgeCount,\n badgeDescription,\n badgeTheme,\n badgeStatus,\n }));\n };\n\n onTabClick = (event: MouseEvent) => {\n const targetValue = ((event.target as HTMLButtonElement).closest('button[role=\"tab\"]') as HTMLButtonElement)\n .dataset.value;\n const isAlreadySelected = this.value === targetValue;\n if (isAlreadySelected) return;\n\n this.change.emit({\n value: targetValue,\n });\n };\n\n onTabKeyDown = (event: KeyboardEvent) => {\n const value = (event.target as HTMLElement).dataset.value;\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n this.moveToAdjacentTab(value, 'next');\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n this.moveToAdjacentTab(value, 'prev');\n break;\n\n case 'Home':\n event.preventDefault();\n this.moveToAdjacentTab(value, 'first');\n break;\n\n case 'End':\n event.preventDefault();\n this.moveToAdjacentTab(value, 'last');\n break;\n\n case 'Space':\n case 'Enter':\n event.preventDefault();\n this.change.emit({ value });\n break;\n }\n };\n\n moveToAdjacentTab = (value: string, direction: 'next' | 'prev' | 'first' | 'last') => {\n const index = this.tabs.map(({ value }) => value).indexOf(value);\n\n let newIndex;\n switch (direction) {\n case 'next':\n newIndex = Math.min(index + 1, this.tabs.length - 1);\n break;\n\n case 'prev':\n newIndex = Math.max(index - 1, 0);\n break;\n\n case 'first':\n newIndex = 0;\n break;\n\n case 'last':\n newIndex = this.tabs.length - 1;\n break;\n }\n\n if (index === newIndex) return;\n\n this.moveFocus(newIndex, false);\n };\n\n moveFocus = (index: number, preventScroll: boolean = true) => {\n const focusedValue = this.tabs[index].value;\n const focusedTab = this.listElement.querySelector<HTMLButtonElement>(`[data-value=\"${focusedValue}\"]`);\n focusedTab.focus({ preventScroll });\n\n const left = focusedTab.offsetLeft - this.listElement.clientWidth / 2;\n this.listElement.scrollTo({\n left,\n behavior: 'smooth',\n });\n\n return focusedTab;\n };\n\n checkScrollState = () => {\n if (!this.listElement) return;\n const { scrollLeft, scrollWidth, clientWidth } = this.listElement;\n this.scrollEnabled = scrollWidth > clientWidth;\n this.showScrollLeft = !!scrollLeft;\n this.showScrollRight = scrollWidth !== scrollLeft + clientWidth;\n };\n\n onScrollBtnClick = (direction?: 'left' | 'right') => {\n const scrollAmount = Math.floor(this.listElement.clientWidth / 2);\n\n this.listElement.scrollBy({\n left: direction === 'left' ? -scrollAmount : scrollAmount,\n behavior: 'smooth',\n });\n };\n\n onSlotChange = () => {\n this.checkScrollState();\n };\n\n ///////// View Methods /////////\n render() {\n return (\n <Fragment>\n <div class=\"tab-container\">\n {this.scrollEnabled && (\n <Fragment>\n <div\n class=\"gradient-left\"\n hidden={!this.showScrollLeft}\n ></div>\n <div\n class=\"gradient-right\"\n hidden={!this.showScrollRight}\n ></div>\n\n <q2-btn\n class=\"btn-left\"\n hidden={!this.showScrollLeft}\n onClick={() => this.onScrollBtnClick('left')}\n >\n <q2-icon type=\"chevron-left\"></q2-icon>\n </q2-btn>\n\n <q2-btn\n class=\"btn-right\"\n hidden={!this.showScrollRight}\n onClick={() => this.onScrollBtnClick('right')}\n >\n <q2-icon type=\"chevron-right\"></q2-icon>\n </q2-btn>\n </Fragment>\n )}\n\n <ul\n onScroll={this.checkScrollState}\n ref={el => (this.listElement = el)}\n class={this.noPrint ? 'no-print' : null}\n role=\"tablist\"\n >\n {this.tabs.map((tab, index) => this.generateTab(tab, index))}\n </ul>\n </div>\n <div class=\"tab-content\">\n <slot onSlotchange={() => this.onSlotChange()} />\n </div>\n </Fragment>\n );\n }\n\n generateTab(tab: TabPane, index: number): JSX.IntrinsicElements {\n const { label, value } = tab;\n const isSelected = this.selectedTabValue === value;\n return (\n <li role=\"presentation\">\n <button\n id={`tab-${this.guid}-${index}`}\n data-value={value}\n test-id=\"tabLink\"\n tabIndex={isSelected ? 0 : -1}\n role=\"tab\"\n aria-selected={isSelected ? 'true' : 'false'}\n aria-controls={`tab-pane-${this.guid}-${index}`}\n onClick={this.onTabClick}\n onKeyDown={this.onTabKeyDown}\n >\n {tab.badgeCount === undefined ? label : this.generateTabWithBadge(tab, isSelected)}\n </button>\n </li>\n );\n }\n\n generateTabWithBadge(tab: TabPane, isSelected: boolean): JSX.IntrinsicElements {\n let theme;\n if (!tab.badgeStatus && isSelected) theme = tab.badgeTheme || 'primary';\n let description;\n if (tab.badgeDescription) description = loc(tab.badgeDescription);\n else if (tab.badgeStatus) description = loc(`tecton.element.tab.pane.${tab.badgeStatus}`, [tab.badgeCount]);\n else description = loc('tecton.element.tab.pane.new');\n\n return (\n <div\n class=\"tab-pane-badge\"\n aria-label={`${tab.label}, ${tab.badgeCount} ${description}`}\n >\n {tab.label}\n <q2-badge\n value={tab.badgeCount}\n theme={theme}\n status={tab.badgeStatus}\n />\n </div>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["stylesCss","addSmoothScrollPolyfill","Q2TabContainer","this","guid","createGuid","scheduledAfterRender","lastScrolled","Date","getTime","updateTabData","updateTabPaneProps","setTabs","tabPanes","forEach","tab","index","selected","value","selectedTabValue","tabs","map","label","badgeCount","badgeDescription","badgeTheme","badgeStatus","loc","onTabClick","event","targetValue","target","closest","dataset","isAlreadySelected","change","emit","onTabKeyDown","key","preventDefault","moveToAdjacentTab","direction","indexOf","newIndex","Math","min","length","max","moveFocus","preventScroll","focusedValue","focusedTab","listElement","querySelector","focus","left","offsetLeft","clientWidth","scrollTo","behavior","checkScrollState","scrollLeft","scrollWidth","scrollEnabled","showScrollLeft","showScrollRight","onScrollBtnClick","scrollAmount","floor","scrollBy","onSlotChange","resizeIframe","_b","_a","window","TectonElements","call","hostElement","querySelectorAll","Array","from","filter","pane","name","tabList","shadowRoot","defaultChangeHandler","onchange","detail","onResize","onFocus","isEventFromElement","findIndex","el","onBadge","componentWillLoad","observer","MutationObserver","observe","childList","attributes","mutationObserver","resizeObserver","ResizeObserver","componentDidRender","fn","settled","componentDidLoad","overrideFocus","push","hasTabs","blur","disconnectedCallback","disconnect","valueObserver","nameObserver","render","h","Fragment","class","hidden","onClick","type","onScroll","ref","noPrint","role","generateTab","onSlotchange","isSelected","id","tabIndex","onKeyDown","undefined","generateTabWithBadge","theme","description","status"],"sources":["./src/components/q2-tab-container/styles.scss?tag=q2-tab-container&encapsulation=shadow","./src/components/q2-tab-container/index.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: block;\n position: relative;\n}\n\nbutton {\n cursor: pointer;\n margin: 0;\n}\n\n.tab-container {\n position: relative;\n}\n\nul {\n --comp-container-padding: #{var-list(--tct-scale-1, --app-scale-1x, 5px)\n var-list(--tct-scale-1, --app-scale-1x, 5px) 0};\n padding: var-list(var-prefixer(tab-container-padding), --comp-container-padding);\n margin: var-list(var-prefixer(tab-container-margin));\n display: flex;\n gap: var-list(var-prefixer(tab-gap), --tct-scale-1, --app-scale-1x, 5px);\n list-style: none;\n border-bottom: 1px solid\n var-list(\n var-prefixer(tab-container-border-color),\n --tct-gray-11,\n --t-gray-11,\n --tct-gray-l1,\n --app-gray-l1,\n #cccccc\n );\n overflow-x: auto;\n align-items: center;\n @include hidden-scrollbar();\n\n @media print {\n &.no-print {\n display: none;\n }\n }\n}\n\nli {\n flex: 0 0 auto;\n\n button {\n background: var-list(--tct-tab-inactive-background, var-prefixer(tab-inactive-bg-color), transparent);\n border-width: var-list(var-prefixer(tab-inactive-border-width), unquote('0 0 3px 0'));\n border-color: var-list(var-prefixer(tab-inactive-border-color), transparent);\n border-style: var-list(var-prefixer(tab-inactive-border-style), solid);\n border-radius: var-list(var-prefixer(tab-border-radius), 0);\n width: var-list(var-prefixer(tab-width), 100%);\n text-align: var-list(var-prefixer(tab-text-align), center);\n text-decoration: var-list(var-prefixer(tab-text-decoration), none);\n padding: var-list(var-prefixer(tab-padding), --tct-scale-2, --app-scale-2x, 10px);\n color: var-list(var-prefixer(tab-inactive-color), inherit);\n font-size: var-list(var-prefixer(tab-font-size), 17px);\n display: block;\n transition: color var-list(--tct-tween-2, --app-tween-2, unquote('0.4s ease')),\n border-color var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n\n :host([type='section']) & {\n --comp-tab-section-padding: #{var-list(--tct-scale-2, --app-scale-2x, 10px)\n var-list(--tct-scale-1, --app-scale-1x, 5px)};\n font-size: inherit;\n padding: var-list(var-prefixer(tab-section-padding), --comp-tab-section-padding);\n }\n\n &:hover {\n color: var-list(var-prefixer(tab-hover-color), var-prefixer(tab-active-color), #2e2e2e);\n background: var-list(--tct-tab-hover-background, var-prefixer(tab-hover-bg-color), inherit);\n width: var-list(var-prefixer(tab-hover-width), 100%);\n }\n\n &[aria-selected='true'] {\n color: var-list(var-prefixer(tab-active-color), #2e2e2e);\n border-color: var-list(var-prefixer(tab-active-border-color), currentColor);\n border-style: var-list(var-prefixer(tab-active-border-style), solid);\n width: var-list(var-prefixer(tab-active-width), 100%);\n background: var-list(--tct-tab-active-background, var-prefixer(tab-active-bg-color), inherit);\n }\n\n :host([color='alt']) & {\n color: var-list(var-prefixer(tab-alt-inactive-color), inherit);\n\n &:hover,\n &[aria-selected='true'] {\n color: var-list(var-prefixer(tab-alt-active-color), inherit);\n }\n }\n\n @media screen and (max-width: 767px) {\n --comp-tab-padding: #{var-list(--tct-scale-2, --app-scale-2x, 10px)\n var-list(--tct-scale-1, --app-scale-1x, 5px)};\n font-size: inherit;\n padding: var-list(var-prefixer(tab-padding), --comp-tab-padding);\n }\n }\n}\n\n.tab-content {\n --comp-tab-content-padding: #{var-list(--tct-scale-2, --app-scale-2x, 10px) 0};\n padding: var-list(var-prefixer(tab-content-padding), --comp-tab-content-padding);\n\n &:focus {\n outline: none;\n box-shadow: none;\n }\n}\n\n.gradient-left,\n.gradient-right {\n z-index: 1;\n position: absolute;\n top: 0;\n height: 100%;\n width: 44px;\n}\n\n.gradient-left {\n background-image: linear-gradient(to left, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);\n left: 0;\n}\n\n.gradient-right {\n background-image: linear-gradient(to right, var(--t-base-a0), var(--t-base-a2) 10%, var(--t-base) 100%);\n right: 0;\n}\n\n.btn-left,\n.btn-right {\n --tct-icon-size: 18px;\n --tct-btn-icon-hover-background: transparent;\n --tct-btn-icon-width: 22px;\n --tct-icon-stroke-primary: #{var-list(var-prefixer(stepper-scroll-arrow-color), --t-text, #4d4d4d)};\n\n position: absolute;\n top: calc(50% - 22px);\n z-index: 2;\n q2-icon {\n --tct-icon-stroke-width: 3;\n }\n}\n\n.btn-left {\n left: 0;\n}\n\n.btn-right {\n right: 0;\n}\n\n.tab-pane-badge {\n display: flex;\n justify-content: space-between;\n align-items: center;\n q2-badge {\n margin-left: 5px;\n margin-right: 5px;\n }\n}\n","import {\n Component,\n ComponentInterface,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Listen,\n Watch,\n h,\n Fragment,\n} from '@stencil/core';\nimport { createGuid, loc, addSmoothScrollPolyfill, overrideFocus, isEventFromElement } from 'src/utils';\nimport { JSX } from '../../components';\nimport { Q2Badge } from '../q2-badge';\n\naddSmoothScrollPolyfill();\n\ntype TabPane = {\n label: string;\n value: string;\n badgeCount: number;\n badgeDescription: string;\n badgeTheme: Q2Badge['theme'];\n badgeStatus: Q2Badge['status'];\n};\n\n@Component({\n tag: 'q2-tab-container',\n styleUrl: 'styles.scss',\n shadow: true,\n})\nexport class Q2TabContainer implements ComponentInterface {\n @Prop({ reflect: true, mutable: true }) value: string;\n @Prop({ reflect: true }) type: 'main' | 'section';\n @Prop({ reflect: true }) name: string;\n @Prop({ reflect: true }) color: 'alt' | undefined;\n @Prop({ reflect: true }) noPrint: boolean = false;\n\n @Element() hostElement: HTMLElement;\n\n @Event() change: EventEmitter;\n @Event() settled: EventEmitter;\n\n guid: number = createGuid();\n scheduledAfterRender: (() => void)[] = [];\n listElement: HTMLUListElement;\n mutationObserver: MutationObserver;\n resizeObserver: ResizeObserver;\n lastScrolled: number = new Date(null).getTime();\n @State() hasLeft: boolean = false;\n @State() hasRight: boolean = false;\n @State() scrollEnabled: boolean = false;\n @State() showScrollLeft: boolean = false;\n @State() showScrollRight: boolean = false;\n @State() tabs: TabPane[];\n\n resizeIframe() {\n return window.TectonElements?.resizeIframe?.();\n }\n\n get tabPanes() {\n const tabPanes = this.hostElement.querySelectorAll<HTMLQ2TabPaneElement | HTMLTectonTabPaneElement>(\n 'q2-tab-pane, tecton-tab-pane'\n );\n\n if (tabPanes.length === 0) {\n return [];\n }\n\n return Array.from(tabPanes).filter(pane => pane.name === this.name);\n }\n\n get selectedTabValue() {\n return this.value || this.tabPanes[0].value || '';\n }\n\n get tabList() {\n return this.hostElement.shadowRoot.querySelector('.tab-list');\n }\n\n ///////// Default Handler /////////\n @Listen('change')\n defaultChangeHandler(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onchange) {\n this.value = event.detail.value;\n }\n }\n\n @Listen('resize', { target: 'window' })\n onResize() {\n this.checkScrollState();\n }\n\n @Listen('focus')\n onFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n const index = this.tabs.findIndex(el => el.value === this.selectedTabValue);\n this.moveFocus(index);\n }\n\n @Listen('badge')\n onBadge() {\n this.setTabs();\n }\n\n ///////// Lifecycle Hooks /////////\n componentWillLoad() {\n const observer = new MutationObserver(this.updateTabData);\n observer.observe(this.hostElement, { childList: true, attributes: true });\n this.mutationObserver = observer;\n this.resizeObserver = new ResizeObserver(() => this.checkScrollState());\n this.updateTabData();\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n this.settled.emit();\n }\n\n componentDidLoad() {\n this.resizeObserver.observe(this.listElement);\n this.checkScrollState();\n overrideFocus(this.hostElement);\n const index = this.tabs.findIndex(el => el.value === this.value);\n this.scheduledAfterRender.push(() => {\n const hasTabs = this.tabs.length > 0;\n if (!hasTabs) return;\n const tab = this.moveFocus(Math.max(index, 0));\n this.value = tab.dataset.value;\n tab.blur();\n });\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n this.mutationObserver.disconnect();\n this.resizeObserver = null;\n this.mutationObserver = null;\n }\n\n ///////// Observers /////////\n @Watch('value')\n valueObserver() {\n this.updateTabData();\n this.scheduledAfterRender.push(this.resizeIframe);\n const index = this.tabs.findIndex(el => el.value === this.value);\n if (index > -1) {\n this.scheduledAfterRender.push(() => this.moveFocus(index, false));\n }\n }\n\n @Watch('name')\n nameObserver() {\n this.updateTabData();\n }\n\n ///////// Actions /////////\n updateTabData = () => {\n this.updateTabPaneProps();\n this.setTabs();\n };\n\n updateTabPaneProps = () => {\n this.tabPanes.forEach((tab, index) => {\n tab.selected = tab.value === this.selectedTabValue;\n tab.guid = this.guid;\n tab.index = index;\n });\n };\n\n setTabs = () => {\n this.tabs = this.tabPanes.map(({ label, value, badgeCount, badgeDescription, badgeTheme, badgeStatus }) => ({\n label: (label && loc(label)) || '',\n value,\n badgeCount,\n badgeDescription,\n badgeTheme,\n badgeStatus,\n }));\n };\n\n onTabClick = (event: MouseEvent) => {\n const targetValue = ((event.target as HTMLButtonElement).closest('button[role=\"tab\"]') as HTMLButtonElement)\n .dataset.value;\n const isAlreadySelected = this.value === targetValue;\n if (isAlreadySelected) return;\n\n this.change.emit({\n value: targetValue,\n });\n };\n\n onTabKeyDown = (event: KeyboardEvent) => {\n const value = (event.target as HTMLElement).dataset.value;\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n this.moveToAdjacentTab(value, 'next');\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n this.moveToAdjacentTab(value, 'prev');\n break;\n\n case 'Home':\n event.preventDefault();\n this.moveToAdjacentTab(value, 'first');\n break;\n\n case 'End':\n event.preventDefault();\n this.moveToAdjacentTab(value, 'last');\n break;\n\n case 'Space':\n case 'Enter':\n event.preventDefault();\n this.change.emit({ value });\n break;\n }\n };\n\n moveToAdjacentTab = (value: string, direction: 'next' | 'prev' | 'first' | 'last') => {\n const index = this.tabs.map(({ value }) => value).indexOf(value);\n\n let newIndex;\n switch (direction) {\n case 'next':\n newIndex = Math.min(index + 1, this.tabs.length - 1);\n break;\n\n case 'prev':\n newIndex = Math.max(index - 1, 0);\n break;\n\n case 'first':\n newIndex = 0;\n break;\n\n case 'last':\n newIndex = this.tabs.length - 1;\n break;\n }\n\n if (index === newIndex) return;\n\n this.moveFocus(newIndex, false);\n };\n\n moveFocus = (index: number, preventScroll: boolean = true) => {\n const focusedValue = this.tabs[index].value;\n const focusedTab = this.listElement.querySelector<HTMLButtonElement>(`[data-value=\"${focusedValue}\"]`);\n focusedTab.focus({ preventScroll });\n\n const left = focusedTab.offsetLeft - this.listElement.clientWidth / 2;\n this.listElement.scrollTo({\n left,\n behavior: 'smooth',\n });\n\n return focusedTab;\n };\n\n checkScrollState = () => {\n if (!this.listElement) return;\n const { scrollLeft, scrollWidth, clientWidth } = this.listElement;\n this.scrollEnabled = scrollWidth > clientWidth;\n this.showScrollLeft = !!scrollLeft;\n this.showScrollRight = scrollWidth !== scrollLeft + clientWidth;\n };\n\n onScrollBtnClick = (direction?: 'left' | 'right') => {\n const scrollAmount = Math.floor(this.listElement.clientWidth / 2);\n\n this.listElement.scrollBy({\n left: direction === 'left' ? -scrollAmount : scrollAmount,\n behavior: 'smooth',\n });\n };\n\n onSlotChange = () => {\n this.checkScrollState();\n };\n\n ///////// View Methods /////////\n render() {\n return (\n <Fragment>\n <div class=\"tab-container\">\n {this.scrollEnabled && (\n <Fragment>\n <div\n class=\"gradient-left\"\n hidden={!this.showScrollLeft}\n ></div>\n <div\n class=\"gradient-right\"\n hidden={!this.showScrollRight}\n ></div>\n\n <q2-btn\n class=\"btn-left\"\n hidden={!this.showScrollLeft}\n onClick={() => this.onScrollBtnClick('left')}\n >\n <q2-icon\n type=\"chevron-left\"\n label=\"scroll left\"\n ></q2-icon>\n </q2-btn>\n\n <q2-btn\n class=\"btn-right\"\n hidden={!this.showScrollRight}\n onClick={() => this.onScrollBtnClick('right')}\n >\n <q2-icon\n type=\"chevron-right\"\n label=\"scroll right\"\n ></q2-icon>\n </q2-btn>\n </Fragment>\n )}\n\n <ul\n onScroll={this.checkScrollState}\n ref={el => (this.listElement = el)}\n class={this.noPrint ? 'no-print' : null}\n role=\"tablist\"\n >\n {this.tabs.map((tab, index) => this.generateTab(tab, index))}\n </ul>\n </div>\n <div class=\"tab-content\">\n <slot onSlotchange={() => this.onSlotChange()} />\n </div>\n </Fragment>\n );\n }\n\n generateTab(tab: TabPane, index: number): JSX.IntrinsicElements {\n const { label, value } = tab;\n const isSelected = this.selectedTabValue === value;\n return (\n <li role=\"presentation\">\n <button\n id={`tab-${this.guid}-${index}`}\n data-value={value}\n test-id=\"tabLink\"\n tabIndex={isSelected ? 0 : -1}\n role=\"tab\"\n aria-selected={isSelected ? 'true' : 'false'}\n aria-controls={`tab-pane-${this.guid}-${index}`}\n onClick={this.onTabClick}\n onKeyDown={this.onTabKeyDown}\n >\n {tab.badgeCount === undefined ? label : this.generateTabWithBadge(tab, isSelected)}\n </button>\n </li>\n );\n }\n\n generateTabWithBadge(tab: TabPane, isSelected: boolean): JSX.IntrinsicElements {\n let theme;\n if (!tab.badgeStatus && isSelected) theme = tab.badgeTheme || 'primary';\n let description;\n if (tab.badgeDescription) description = loc(tab.badgeDescription);\n else if (tab.badgeStatus) description = loc(`tecton.element.tab.pane.${tab.badgeStatus}`, [tab.badgeCount]);\n else description = loc('tecton.element.tab.pane.new');\n\n return (\n <div\n class=\"tab-pane-badge\"\n aria-label={`${tab.label}, ${tab.badgeCount} ${description}`}\n >\n {tab.label}\n <q2-badge\n value={tab.badgeCount}\n theme={theme}\n status={tab.badgeStatus}\n />\n </div>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{r as t,h as i,g as o}from"./p-277dc8cd.js";import{c as r}from"./p-99ab3236.js";import{i as e}from"./p-f0e323ad.js";const n="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:inline-block;height:var(--tct-icon-size, 24px);width:var(--tct-icon-size, 24px);position:relative;fill:none}:host([inline]){height:1em;width:1em}svg{display:block;position:absolute;top:0;left:0;stroke-width:var(--tct-icon-stroke-width, var(--t-icon-stroke-width, 1.5));stroke-linecap:var(--tct-icon-cap, var(--t-icon-cap, round));stroke-linejoin:var(--tct-icon-cap, var(--t-icon-cap, round))}.stroke-primary{stroke:var(--tct-icon-stroke-primary, var(--t-icon-stroke-primary, var(--t-text, currentColor)))}.stroke-secondary{stroke:var(--tct-icon-stroke-secondary, var(--t-icon-stroke-secondary, var(--t-text, currentColor)))}.fill-primary{fill:var(--tct-icon-stroke-primary, var(--t-icon-stroke-primary, var(--t-text, currentColor)))}.filled{fill:var(--tct-icon-fill, var(--comp-icon-fill, var(--t-icon-fill, none)))}.uniform{fill:var(--tct-icon-stroke-primary, var(--t-icon-stroke-primary, currentColor))}:host([type=info]),:host([type=info-filled]){--tct-icon-stroke-primary:transparent;--comp-icon-fill:var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))}:host([type=success]),:host([type=success-filled]){--tct-icon-stroke-primary:transparent;--comp-icon-fill:var(--tct-stoplight-success, var(--const-stoplight-success, #0e8a00))}:host([type=warning]),:host([type=warning-filled]){--tct-icon-stroke-primary:transparent;--comp-icon-fill:var(--tct-stoplight-warning, var(--const-stoplight-warning, #c35500))}:host([type=error]),:host([type=error-filled]){--tct-icon-stroke-primary:transparent;--comp-icon-fill:var(--tct-stoplight-alert, var(--const-stoplight-alert, #c30000))}";const s=class{constructor(i){t(this,i);this.type=undefined;this.label=undefined;this.inline=undefined}get iconMarkup(){return e[this.type]&&e[this.type].markup()||""}get isCustom(){return this.type==="custom"}componentDidLoad(){this.setCustomSVGAttrs()}customIconHandler(){this.setCustomSVGAttrs()}setCustomSVGAttrs(){if(!this.isCustom)return;const t=this.hostElement.querySelector("svg");if(!t)return;t.setAttribute("role","img");t.setAttribute("xmlns","http://www.w3.org/2000/svg");const{label:i}=this;if(i){const o=document.createElement("title");const e=`label-${r()}`;o.id=e;o.textContent=i;t.appendChild(o);t.setAttribute("aria-labelledby",e)}else{t.setAttribute("aria-hidden","true")}}render(){const{label:t}=this;return this.isCustom?i("slot",null):i("svg",{viewBox:"0 0 26 26",xmlns:"http://www.w3.org/2000/svg","aria-hidden":this.label?undefined:"true",role:"img","aria-labelledby":t?"label":undefined},t&&i("title",{id:"label"},t),this.iconMarkup)}get hostElement(){return o(this)}static get watchers(){return{type:["customIconHandler"]}}};s.style=n;export{s as q2_icon};
2
- //# sourceMappingURL=p-8e8a40ca.entry.js.map
1
+ import{r as t,h as i,g as o}from"./p-277dc8cd.js";import{c as r}from"./p-ef856249.js";import{i as e}from"./p-f0e323ad.js";const n="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:inline-block;height:var(--tct-icon-size, 24px);width:var(--tct-icon-size, 24px);position:relative;fill:none}:host([inline]){height:1em;width:1em}svg{display:block;position:absolute;top:0;left:0;stroke-width:var(--tct-icon-stroke-width, var(--t-icon-stroke-width, 1.5));stroke-linecap:var(--tct-icon-cap, var(--t-icon-cap, round));stroke-linejoin:var(--tct-icon-cap, var(--t-icon-cap, round))}.stroke-primary{stroke:var(--tct-icon-stroke-primary, var(--t-icon-stroke-primary, var(--t-text, currentColor)))}.stroke-secondary{stroke:var(--tct-icon-stroke-secondary, var(--t-icon-stroke-secondary, var(--t-text, currentColor)))}.fill-primary{fill:var(--tct-icon-stroke-primary, var(--t-icon-stroke-primary, var(--t-text, currentColor)))}.filled{fill:var(--tct-icon-fill, var(--comp-icon-fill, var(--t-icon-fill, none)))}.uniform{fill:var(--tct-icon-stroke-primary, var(--t-icon-stroke-primary, currentColor))}:host([type=info]),:host([type=info-filled]){--tct-icon-stroke-primary:transparent;--comp-icon-fill:var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))}:host([type=success]),:host([type=success-filled]){--tct-icon-stroke-primary:transparent;--comp-icon-fill:var(--tct-stoplight-success, var(--const-stoplight-success, #0e8a00))}:host([type=warning]),:host([type=warning-filled]){--tct-icon-stroke-primary:transparent;--comp-icon-fill:var(--tct-stoplight-warning, var(--const-stoplight-warning, #c35500))}:host([type=error]),:host([type=error-filled]){--tct-icon-stroke-primary:transparent;--comp-icon-fill:var(--tct-stoplight-alert, var(--const-stoplight-alert, #c30000))}";const s=class{constructor(i){t(this,i);this.type=undefined;this.label=undefined;this.inline=undefined}get iconMarkup(){return e[this.type]&&e[this.type].markup()||""}get isCustom(){return this.type==="custom"}componentDidLoad(){this.setCustomSVGAttrs()}customIconHandler(){this.setCustomSVGAttrs()}setCustomSVGAttrs(){if(!this.isCustom)return;const t=this.hostElement.querySelector("svg");if(!t)return;t.setAttribute("role","img");t.setAttribute("xmlns","http://www.w3.org/2000/svg");const{label:i}=this;if(i){const o=document.createElement("title");const e=`label-${r()}`;o.id=e;o.textContent=i;t.appendChild(o);t.setAttribute("aria-labelledby",e)}else{t.setAttribute("aria-hidden","true")}}render(){const{label:t}=this;return this.isCustom?i("slot",null):i("svg",{viewBox:"0 0 26 26",xmlns:"http://www.w3.org/2000/svg","aria-hidden":this.label?undefined:"true",role:"img","aria-labelledby":t?"label":undefined},t&&i("title",{id:"label"},t),this.iconMarkup)}get hostElement(){return o(this)}static get watchers(){return{type:["customIconHandler"]}}};s.style=n;export{s as q2_icon};
2
+ //# sourceMappingURL=p-bfd69d42.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as t,c as o,g as i,h as e}from"./p-277dc8cd.js";import{r,w as n}from"./p-99ab3236.js";const s=class{constructor(i){t(this,i);this.change=o(this,"change",7);this.mouseEventList=["mousedown","dragstart","touchstart"];this.isCurrentlyFocused=false;this.mouseHandler=t=>{const o=this.shadowContains(this.findActiveElement());const i=this.shadowContains(this.shadowEventTarget(t))||this.originatesInSlots(t.target);if(!i&&(this.isCurrentlyFocused||o)){this.isCurrentlyFocused=false;this.change.emit();return}this.isCurrentlyFocused=i||o};this.windowBlurHandler=()=>{const t=this.findActiveElement();if(t===document.body&&this.isCurrentlyFocused||t!==document.body&&(t===null||t===void 0?void 0:t.tagName)==="IFRAME"){this.isCurrentlyFocused=false;this.change.emit();return}}}componentWillLoad(){}connectedCallback(){this.mouseEventList.forEach((t=>{document.addEventListener(t,this.mouseHandler)}));window.addEventListener("blur",this.windowBlurHandler)}disconnectedCallback(){this.mouseEventList.forEach((t=>{document.removeEventListener(t,this.mouseHandler)}));window.removeEventListener("blur",this.windowBlurHandler)}findActiveElement(){let t=document.activeElement;while(true){if(!t||!t.shadowRoot){return t}t=t.shadowRoot.activeElement}}shadowEventTarget(t){return t.composedPath()[0]||t.target}shadowContains(t){while(true){if(t===this.hostElement){return true}if(!t){return false}t=t.parentNode||t.host}}originatesInSlots(t){const o=this.hostElement.querySelectorAll("slot");for(const i of Array.from(o)){const o=i&&i.assignedNodes&&i.assignedNodes()||this.hostElement.childNodes;for(const i of Array.from(o)){if(i.contains(t)){return true}}}return false}get hostElement(){return i(this)}};const a="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}: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;width:100%}:host([align=right]){display:block;position:absolute;right:0;text-align:end;left:unset}.container{display:none;overflow:hidden;opacity:0;height:0;position:absolute;top:var(--tct-popover-top, var(--t-popover-top, initial));visibility:hidden;background:var(--tct-popover-background, var(--tct-popover-background-color, var(--t-popover-background-color, var(--app-white, #ffffff))));color:var(--tct-popover-text-color, var(--t-popover-text-color, var(--t-text, #4d4d4d)));z-index:var(--tct-popover-z-index, var(--t-popover-z-index, 100));width:max-content;min-width:var(--tct-popover-min-width, var(--t-popover-min-width, 135px));box-shadow:var(--tct-popover-box-shadow, var(--t-popover-box-shadow, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3))));text-align:start;left:0;border-radius:var(--tct-popover-border-radius, var(--t-popover-border-radius, 0));max-height:var(--comp-pop-max-height);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.container::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.container::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.container::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}:host([block]) .container{left:unset;right:unset;width:100%;min-width:var(--tct-popover-min-width, var(--t-popover-min-width, unset))}:host([align=right]) .container{right:0;text-align:end;left:unset}:host([open]) .container{visibility:visible}:host([open]) .container.show{height:auto;overflow:auto;opacity:1}.container.up{bottom:var(--comp-pop-offset)}click-elsewhere{position:relative;display:block}.content{height:auto}";const d=class{constructor(i){t(this,i);this.popoverStateChanged=o(this,"popoverStateChanged",7);this.scheduledAfterRender=[];this.viewPortChanged=()=>{if(!this.open)return;this.determinePopDirection()};this.direction=undefined;this.align=undefined;this.open=undefined;this.block=undefined;this.minHeight=undefined;this.controlElement=undefined;this.currentDirection=undefined;this.show=false}componentDidLoad(){if(this.open)this.determinePopDirection()}componentDidRender(){setTimeout((()=>{this.scheduledAfterRender.forEach((t=>t()));this.scheduledAfterRender=[]}),25)}disconnectedCallback(){this.removeViewportListeners()}async toggle(){this.open=!this.open}async scrollContainerTo(t){this.containerElement.scrollTo(t)}openChanged(t){this.popoverStateChanged.emit({open:t});this.scheduledAfterRender.push(r);if(t){this.addViewportListeners();this.determinePopDirection()}else{this.removeViewportListeners();this.currentDirection=undefined;this.containerElement.style.removeProperty("display");this.containerElement.style.removeProperty("--comp-pop-max-height");this.show=false}}popoverStateHandler(t){const{detail:{open:o}}=t;if(o===this.open)return;this.open=o;t.stopPropagation()}addViewportListeners(){window.visualViewport.addEventListener("resize",this.viewPortChanged)}removeViewportListeners(){window.visualViewport.removeEventListener("resize",this.viewPortChanged)}async setDirectionAndShow(t){if(t==="up"){this.determinePopOffset()}this.currentDirection=t;this.show=true}async determinePopDirection(){var t,o,i,e,r,s,a,d,l;const{containerElement:c,contentElement:h,direction:p,controlElement:u,currentDirection:v}=this;if(c)c.style.maxHeight=null;const f=p!==null&&p!==void 0?p:v;c.style.setProperty("display","block");await n();const{top:b,height:w}=(t=u===null||u===void 0?void 0:u.getBoundingClientRect())!==null&&t!==void 0?t:{top:0,height:0};const m=h.clientHeight;const g=((i=(o=window.Tecton)===null||o===void 0?void 0:o.platformDimensions)===null||i===void 0?void 0:i.scrollY)||((e=window.visualViewport)===null||e===void 0?void 0:e.offsetTop)||0;const x=g+(((s=(r=window.Tecton)===null||r===void 0?void 0:r.platformDimensions)===null||s===void 0?void 0:s.outletOffset)||0);const y=((d=(a=window.Tecton)===null||a===void 0?void 0:a.platformDimensions)===null||d===void 0?void 0:d.innerHeight)||((l=window.visualViewport)===null||l===void 0?void 0:l.height)||window.innerHeight;const k=g+y-b-w-x;const z=k>m;const C=m<=b;let E;if(f==="down"&&z)return this.setDirectionAndShow("down");else if(f==="up"&&C)return this.setDirectionAndShow("up");else if(f===undefined&&z)E="down";else if(f===undefined&&C)E="up";if(E)return this.setDirectionAndShow(E);const{minHeight:A=150}=this;const D=5;const M=k>=A+D;let L;if(f==="down"){L=Math.max(k-D,A);E="down"}else if(f==="up"){L=Math.max(b-D,A);E="up"}else if(M){L=Math.max(k-D,A);E="down"}else{L=Math.max(b-g-D,A);E="up"}c.style.setProperty("--comp-pop-max-height",`${L}px`);return this.setDirectionAndShow(E)}determinePopOffset(){var t;const{controlElement:o,containerElement:i}=this;const e=(t=o===null||o===void 0?void 0:o.getBoundingClientRect().height)!==null&&t!==void 0?t:0;i.style.setProperty("--comp-pop-offset",`${e}px`)}render(){const t=["container",this.currentDirection];if(this.show)t.push("show");return e("div",{ref:t=>this.containerElement=t,class:t.join(" "),"test-id":"outerContainer"},e("div",{ref:t=>this.contentElement=t,class:"content"},e("slot",null)))}get hostElement(){return i(this)}static get watchers(){return{open:["openChanged"]}}};d.style=a;export{s as click_elsewhere,d as q2_popover};
2
- //# sourceMappingURL=p-82bda2ff.entry.js.map
1
+ import{r as t,c as o,g as i,h as e}from"./p-277dc8cd.js";import{r,w as n}from"./p-ef856249.js";const s=class{constructor(i){t(this,i);this.change=o(this,"change",7);this.mouseEventList=["mousedown","dragstart","touchstart"];this.isCurrentlyFocused=false;this.mouseHandler=t=>{const o=this.shadowContains(this.findActiveElement());const i=this.shadowContains(this.shadowEventTarget(t))||this.originatesInSlots(t.target);if(!i&&(this.isCurrentlyFocused||o)){this.isCurrentlyFocused=false;this.change.emit();return}this.isCurrentlyFocused=i||o};this.windowBlurHandler=()=>{const t=this.findActiveElement();if(t===document.body&&this.isCurrentlyFocused||t!==document.body&&(t===null||t===void 0?void 0:t.tagName)==="IFRAME"){this.isCurrentlyFocused=false;this.change.emit();return}}}componentWillLoad(){}connectedCallback(){this.mouseEventList.forEach((t=>{document.addEventListener(t,this.mouseHandler)}));window.addEventListener("blur",this.windowBlurHandler)}disconnectedCallback(){this.mouseEventList.forEach((t=>{document.removeEventListener(t,this.mouseHandler)}));window.removeEventListener("blur",this.windowBlurHandler)}findActiveElement(){let t=document.activeElement;while(true){if(!t||!t.shadowRoot){return t}t=t.shadowRoot.activeElement}}shadowEventTarget(t){return t.composedPath()[0]||t.target}shadowContains(t){while(true){if(t===this.hostElement){return true}if(!t){return false}t=t.parentNode||t.host}}originatesInSlots(t){const o=this.hostElement.querySelectorAll("slot");for(const i of Array.from(o)){const o=i&&i.assignedNodes&&i.assignedNodes()||this.hostElement.childNodes;for(const i of Array.from(o)){if(i.contains(t)){return true}}}return false}get hostElement(){return i(this)}};const a="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}: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;width:100%}:host([align=right]){display:block;position:absolute;right:0;text-align:end;left:unset}.container{display:none;overflow:hidden;opacity:0;height:0;position:absolute;top:var(--tct-popover-top, var(--t-popover-top, initial));visibility:hidden;background:var(--tct-popover-background, var(--tct-popover-background-color, var(--t-popover-background-color, var(--app-white, #ffffff))));color:var(--tct-popover-text-color, var(--t-popover-text-color, var(--t-text, #4d4d4d)));z-index:var(--tct-popover-z-index, var(--t-popover-z-index, 100));width:max-content;min-width:var(--tct-popover-min-width, var(--t-popover-min-width, 135px));box-shadow:var(--tct-popover-box-shadow, var(--t-popover-box-shadow, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3))));text-align:start;left:0;border-radius:var(--tct-popover-border-radius, var(--t-popover-border-radius, 0));max-height:var(--comp-pop-max-height);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.container::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.container::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.container::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}:host([block]) .container{left:unset;right:unset;width:100%;min-width:var(--tct-popover-min-width, var(--t-popover-min-width, unset))}:host([align=right]) .container{right:0;text-align:end;left:unset}:host([open]) .container{visibility:visible}:host([open]) .container.show{height:auto;overflow:auto;opacity:1}.container.up{bottom:var(--comp-pop-offset)}click-elsewhere{position:relative;display:block}.content{height:auto}";const d=class{constructor(i){t(this,i);this.popoverStateChanged=o(this,"popoverStateChanged",7);this.scheduledAfterRender=[];this.viewPortChanged=()=>{if(!this.open)return;this.determinePopDirection()};this.direction=undefined;this.align=undefined;this.open=undefined;this.block=undefined;this.minHeight=undefined;this.controlElement=undefined;this.currentDirection=undefined;this.show=false}componentDidLoad(){if(this.open)this.determinePopDirection()}componentDidRender(){setTimeout((()=>{this.scheduledAfterRender.forEach((t=>t()));this.scheduledAfterRender=[]}),25)}disconnectedCallback(){this.removeViewportListeners()}async toggle(){this.open=!this.open}async scrollContainerTo(t){this.containerElement.scrollTo(t)}openChanged(t){this.popoverStateChanged.emit({open:t});this.scheduledAfterRender.push(r);if(t){this.addViewportListeners();this.determinePopDirection()}else{this.removeViewportListeners();this.currentDirection=undefined;this.containerElement.style.removeProperty("display");this.containerElement.style.removeProperty("--comp-pop-max-height");this.show=false}}popoverStateHandler(t){const{detail:{open:o}}=t;if(o===this.open)return;this.open=o;t.stopPropagation()}addViewportListeners(){window.visualViewport.addEventListener("resize",this.viewPortChanged)}removeViewportListeners(){window.visualViewport.removeEventListener("resize",this.viewPortChanged)}async setDirectionAndShow(t){if(t==="up"){this.determinePopOffset()}this.currentDirection=t;this.show=true}async determinePopDirection(){var t,o,i,e,r,s,a,d,l;const{containerElement:c,contentElement:h,direction:p,controlElement:u,currentDirection:v}=this;if(c)c.style.maxHeight=null;const f=p!==null&&p!==void 0?p:v;c.style.setProperty("display","block");await n();const{top:b,height:w}=(t=u===null||u===void 0?void 0:u.getBoundingClientRect())!==null&&t!==void 0?t:{top:0,height:0};const m=h.clientHeight;const g=((i=(o=window.Tecton)===null||o===void 0?void 0:o.platformDimensions)===null||i===void 0?void 0:i.scrollY)||((e=window.visualViewport)===null||e===void 0?void 0:e.offsetTop)||0;const x=g+(((s=(r=window.Tecton)===null||r===void 0?void 0:r.platformDimensions)===null||s===void 0?void 0:s.outletOffset)||0);const y=((d=(a=window.Tecton)===null||a===void 0?void 0:a.platformDimensions)===null||d===void 0?void 0:d.innerHeight)||((l=window.visualViewport)===null||l===void 0?void 0:l.height)||window.innerHeight;const k=g+y-b-w-x;const z=k>m;const C=m<=b;let E;if(f==="down"&&z)return this.setDirectionAndShow("down");else if(f==="up"&&C)return this.setDirectionAndShow("up");else if(f===undefined&&z)E="down";else if(f===undefined&&C)E="up";if(E)return this.setDirectionAndShow(E);const{minHeight:A=150}=this;const D=5;const M=k>=A+D;let L;if(f==="down"){L=Math.max(k-D,A);E="down"}else if(f==="up"){L=Math.max(b-D,A);E="up"}else if(M){L=Math.max(k-D,A);E="down"}else{L=Math.max(b-g-D,A);E="up"}c.style.setProperty("--comp-pop-max-height",`${L}px`);return this.setDirectionAndShow(E)}determinePopOffset(){var t;const{controlElement:o,containerElement:i}=this;const e=(t=o===null||o===void 0?void 0:o.getBoundingClientRect().height)!==null&&t!==void 0?t:0;i.style.setProperty("--comp-pop-offset",`${e}px`)}render(){const t=["container",this.currentDirection];if(this.show)t.push("show");return e("div",{ref:t=>this.containerElement=t,class:t.join(" "),"test-id":"outerContainer"},e("div",{ref:t=>this.contentElement=t,class:"content"},e("slot",null)))}get hostElement(){return i(this)}static get watchers(){return{open:["openChanged"]}}};d.style=a;export{s as click_elsewhere,d as q2_popover};
2
+ //# sourceMappingURL=p-db6921fb.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as t,c as e,h as i,g as r}from"./p-277dc8cd.js";import{c as o,l as s}from"./p-99ab3236.js";const a="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}: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{margin-top:var(--tct-scale-2, var(--app-scale-2x, 10px))}fieldset{padding:var(--tct-input-error-padding, 0);margin:0;border:0}fieldset.has-error{border-color:var(--tct-input-error-border-color, var(--const-stoplight-alert, #c30000));border-width:1px;border-style:solid;border-radius:var(--tct-border-radius-1, var(--app-border-radius-1, 2px));position:relative}fieldset.has-error .error-icon-container{top:8px;right:8px;position:absolute;width:40%;text-align:right;background:linear-gradient(to right, var(--tct-checkbox-group-error-gradient-start, var(--t-base-a0, rgba(255, 255, 255, 0))), var(--tct-checkbox-group-error-gradient-end, var(--t-base, rgb(255, 255, 255))))}fieldset.has-error legend+div.error-icon-container.no-label{top:28px}.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-input-label-optional-margin-left, var(--tct-scale-1, var(--app-scale-1x, 5px)));color:var(--tct-input-label-optional-font-color, var(--tct-a11y-color, var(--t-a11y-gray-color, var(--tct-gray-7, var(--t-gray-7, var(--tct-gray-d1, var(--app-gray-d1, #666666)))))));font-size:var(--tct-input-label-optional-font-size, 12px);font-weight:var(--tct-input-label-optional-font-weight, 400)}.flexed{margin:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.flexed.left{justify-content:left}";const n=class{constructor(i){t(this,i);this.change=e(this,"change",7);this._id=`checkbox-group-${o()}`;this.onMutationObserved=()=>{this.valueUpdated();this.updateDisabled()};this.onInnerCheckboxChange=t=>{t.stopImmediatePropagation();const e={};this.checkboxElements.forEach((t=>{e[t.value]=!!t.checked}));this.change.emit(e)};this.label=undefined;this.value=undefined;this.disabled=false;this.readonly=false;this.optional=false;this.hasError=false}get checkboxElements(){return Array.from(this.hostElement.querySelectorAll("q2-checkbox"))}get protectedValue(){return this.value||{}}componentDidLoad(){const t=new MutationObserver(this.onMutationObserved);t.observe(this.hostElement,{childList:true});this.mutationObserver=t;this.onMutationObserved()}disconnectedCallback(){if(this.mutationObserver){this.mutationObserver.disconnect();this.mutationObserver=null}}valueUpdated(){if(this.readonly)return;this.checkboxElements.forEach((t=>{if(this.protectedValue.hasOwnProperty(t.value)){t.checked=this.value[t.value]}}))}updateDisabled(){const t=this.disabled;this.checkboxElements.forEach((e=>{e.groupDisabled=t}))}onHostElementChange(t){if(t.target===this.hostElement&&!this.hostElement.onchange){this.value=t.detail}}render(){return i("div",null,this.label||this.optional?i("div",{class:"group-legend"},this.label&&s(this.label),this.optional?i("span",{class:"optional-tag"},s("tecton.element.input.optional")):""):"",i("fieldset",{class:`q2-checkbox-fieldset ${this.hasError?"has-error":""}`,onChange:this.onInnerCheckboxChange,"aria-invalid":`${this.hasError}`},this.label||this.optional?i("legend",{class:"sr-only"},this.label&&s(this.label),this.optional?i("span",{class:"optional-tag"},s("tecton.element.input.optional")):""):"",this.hasError?i("div",{class:`error-icon-container ${this.label||this.optional?"":"no-label"}`},i("q2-icon",{class:"h(4) w(4) mrg-b(2)",type:"error"})):"",this.inputDom()))}inputDom(){return i("slot",null)}get hostElement(){return r(this)}static get watchers(){return{value:["valueUpdated"],disabled:["updateDisabled"]}}};n.style=a;export{n as q2_checkbox_group};
2
- //# sourceMappingURL=p-cfbd2cb1.entry.js.map
1
+ import{r as t,c as e,h as i,g as r}from"./p-277dc8cd.js";import{c as o,l as s}from"./p-ef856249.js";const a="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}: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{margin-top:var(--tct-scale-2, var(--app-scale-2x, 10px))}fieldset{padding:var(--tct-input-error-padding, 0);margin:0;border:0}fieldset.has-error{border-color:var(--tct-input-error-border-color, var(--const-stoplight-alert, #c30000));border-width:1px;border-style:solid;border-radius:var(--tct-border-radius-1, var(--app-border-radius-1, 2px));position:relative}fieldset.has-error .error-icon-container{top:8px;right:8px;position:absolute;width:40%;text-align:right;background:linear-gradient(to right, var(--tct-checkbox-group-error-gradient-start, var(--t-base-a0, rgba(255, 255, 255, 0))), var(--tct-checkbox-group-error-gradient-end, var(--t-base, rgb(255, 255, 255))))}fieldset.has-error legend+div.error-icon-container.no-label{top:28px}.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-input-label-optional-margin-left, var(--tct-scale-1, var(--app-scale-1x, 5px)));color:var(--tct-input-label-optional-font-color, var(--tct-a11y-color, var(--t-a11y-gray-color, var(--tct-gray-7, var(--t-gray-7, var(--tct-gray-d1, var(--app-gray-d1, #666666)))))));font-size:var(--tct-input-label-optional-font-size, 12px);font-weight:var(--tct-input-label-optional-font-weight, 400)}.flexed{margin:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.flexed.left{justify-content:left}";const n=class{constructor(i){t(this,i);this.change=e(this,"change",7);this._id=`checkbox-group-${o()}`;this.onMutationObserved=()=>{this.valueUpdated();this.updateDisabled()};this.onInnerCheckboxChange=t=>{t.stopImmediatePropagation();const e={};setTimeout((()=>{this.checkboxElements.forEach((t=>{e[t.value]=!!t.checked}));this.change.emit(e)}),0)};this.label=undefined;this.value=undefined;this.disabled=false;this.readonly=false;this.optional=false;this.hasError=false}get checkboxElements(){return Array.from(this.hostElement.querySelectorAll("q2-checkbox"))}get protectedValue(){return this.value||{}}componentWillLoad(){this.updateReadonly(this.readonly)}componentDidLoad(){const t=new MutationObserver(this.onMutationObserved);t.observe(this.hostElement,{childList:true});this.mutationObserver=t;this.onMutationObserved()}disconnectedCallback(){if(this.mutationObserver){this.mutationObserver.disconnect();this.mutationObserver=null}}valueUpdated(){if(this.readonly)return;this.checkboxElements.forEach((t=>{if(this.protectedValue.hasOwnProperty(t.value)){t.checked=this.value[t.value]}}))}updateDisabled(){const t=this.disabled;this.checkboxElements.forEach((e=>{e.groupDisabled=t}))}updateReadonly(t){this.checkboxElements.forEach((e=>{e.readonly=t}))}setValue(t){const e=new Set(Array.isArray(t)?t:[t]);this.checkboxElements.forEach((t=>{if(e.has(t.value))t.click()}))}onHostElementChange(t){if(t.target===this.hostElement&&!this.hostElement.onchange){this.value=t.detail}}render(){return i("div",null,this.label||this.optional?i("div",{class:"group-legend"},this.label&&s(this.label),this.optional?i("span",{class:"optional-tag"},s("tecton.element.input.optional")):""):"",i("fieldset",{class:`q2-checkbox-fieldset ${this.hasError?"has-error":""}`,onChange:this.onInnerCheckboxChange,"aria-invalid":`${this.hasError}`},this.label||this.optional?i("legend",{class:"sr-only"},this.label&&s(this.label),this.optional?i("span",{class:"optional-tag"},s("tecton.element.input.optional")):""):"",this.hasError?i("div",{class:`error-icon-container ${this.label||this.optional?"":"no-label"}`},i("q2-icon",{class:"h(4) w(4) mrg-b(2)",type:"error"})):"",this.inputDom()))}inputDom(){return i("slot",null)}get hostElement(){return r(this)}static get watchers(){return{value:["valueUpdated"],disabled:["updateDisabled"],readonly:["updateReadonly"]}}};n.style=a;export{n as q2_checkbox_group};
2
+ //# sourceMappingURL=p-e45856f7.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["stylesCss","Q2CheckboxGroup","this","_id","createGuid","onMutationObserved","valueUpdated","updateDisabled","onInnerCheckboxChange","event","stopImmediatePropagation","groupValue","setTimeout","checkboxElements","forEach","check","value","checked","change","emit","Array","from","hostElement","querySelectorAll","protectedValue","componentWillLoad","updateReadonly","readonly","componentDidLoad","observer","MutationObserver","observe","childList","mutationObserver","disconnectedCallback","disconnect","hasOwnProperty","groupDisabled","disabled","checkbox","newReadonly","setValue","values","valuesSet","Set","isArray","has","click","onHostElementChange","target","onchange","detail","render","h","label","optional","class","loc","hasError","onChange","type","inputDom"],"sources":["./src/components/q2-checkbox-group/styles.scss?tag=q2-checkbox-group&encapsulation=shadow","./src/components/q2-checkbox-group/index.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n\n:host {\n margin-top: var(--tct-scale-2, var(--app-scale-2x, 10px));\n}\n\nfieldset {\n padding: var(--tct-input-error-padding, 0);\n margin: 0;\n border: 0;\n}\n\nfieldset.has-error {\n border-color: var(--tct-input-error-border-color, var(--const-stoplight-alert, #c30000));\n border-width: 1px;\n border-style: solid;\n border-radius: var(--tct-border-radius-1, var(--app-border-radius-1, 2px));\n position: relative;\n}\n\nfieldset.has-error .error-icon-container {\n top: 8px;\n right: 8px;\n position: absolute;\n width: 40%;\n text-align: right;\n background: linear-gradient(\n to right,\n var(--tct-checkbox-group-error-gradient-start, var(--t-base-a0, rgba(255, 255, 255, 0))),\n var(--tct-checkbox-group-error-gradient-end, var(--t-base, rgba(255, 255, 255)))\n );\n}\n\nfieldset.has-error legend + div.error-icon-container.no-label {\n top: 28px;\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(--tct-input-label-optional-margin-left, var(--tct-scale-1, var(--app-scale-1x, 5px)));\n color: var(\n --tct-input-label-optional-font-color,\n var(\n --tct-a11y-color,\n var(\n --t-a11y-gray-color,\n var(--tct-gray-7, var(--t-gray-7, var(--tct-gray-d1, var(--app-gray-d1, #666666))))\n )\n )\n );\n font-size: var(--tct-input-label-optional-font-size, 12px);\n font-weight: var(--tct-input-label-optional-font-weight, 400);\n}\n\n.flexed {\n margin: 0;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n}\n.flexed.left {\n justify-content: left;\n}\n","import {\n Component,\n Prop,\n Element,\n h,\n Listen,\n EventEmitter,\n Event,\n ComponentInterface,\n Watch,\n Method,\n} from '@stencil/core';\nimport { createGuid, loc } from 'src/utils';\n\n@Component({\n tag: 'q2-checkbox-group',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2CheckboxGroup implements ComponentInterface {\n @Prop({ reflect: true }) label: string;\n @Prop({ mutable: true }) value: object;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) readonly: boolean = false;\n @Prop({ reflect: true }) optional: boolean = false;\n @Prop({ reflect: true }) hasError: boolean = false;\n\n @Element() hostElement: HTMLElement;\n _id: string = `checkbox-group-${createGuid()}`;\n mutationObserver: MutationObserver;\n\n get checkboxElements() {\n return Array.from(this.hostElement.querySelectorAll('q2-checkbox')) as HTMLQ2CheckboxElement[];\n }\n\n get protectedValue(): object {\n return this.value || {};\n }\n\n onMutationObserved = () => {\n this.valueUpdated();\n this.updateDisabled();\n };\n\n onInnerCheckboxChange = (event: CustomEvent) => {\n event.stopImmediatePropagation();\n const groupValue = {};\n setTimeout(() => {\n this.checkboxElements.forEach(check => {\n groupValue[check.value] = !!check.checked;\n });\n this.change.emit(groupValue);\n }, 0);\n };\n\n ///// LIFECYCLE HOOK ///////\n\n componentWillLoad() {\n this.updateReadonly(this.readonly);\n }\n\n componentDidLoad() {\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true });\n this.mutationObserver = observer;\n this.onMutationObserved();\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n }\n\n @Watch('value')\n valueUpdated() {\n if (this.readonly) return;\n this.checkboxElements.forEach(check => {\n if (this.protectedValue.hasOwnProperty(check.value)) {\n check.checked = this.value[check.value];\n }\n });\n }\n\n @Watch('disabled')\n updateDisabled() {\n const groupDisabled = this.disabled;\n this.checkboxElements.forEach(checkbox => {\n checkbox.groupDisabled = groupDisabled;\n });\n }\n\n @Watch('readonly')\n updateReadonly(newReadonly: boolean) {\n this.checkboxElements.forEach(checkbox => {\n checkbox.readonly = newReadonly;\n });\n }\n\n /// Methods ///\n @Method()\n setValue(values: string | string[]) {\n const valuesSet = new Set(Array.isArray(values) ? values : [values]);\n this.checkboxElements.forEach(check => {\n if (valuesSet.has(check.value)) check.click();\n });\n }\n\n ///// HOST ELEMENT EVENTS ///////\n\n @Event() change: EventEmitter;\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onchange) {\n this.value = event.detail;\n }\n }\n\n render() {\n return (\n <div>\n {this.label || this.optional ? (\n <div class=\"group-legend\">\n {this.label && loc(this.label)}\n {this.optional ? <span class=\"optional-tag\">{loc('tecton.element.input.optional')}</span> : ''}\n </div>\n ) : (\n ''\n )}\n <fieldset\n class={`q2-checkbox-fieldset ${this.hasError ? 'has-error' : ''}`}\n onChange={this.onInnerCheckboxChange}\n aria-invalid={`${this.hasError}`}\n >\n {this.label || this.optional ? (\n <legend class=\"sr-only\">\n {this.label && loc(this.label)}\n {this.optional ? (\n <span class=\"optional-tag\">{loc('tecton.element.input.optional')}</span>\n ) : (\n ''\n )}\n </legend>\n ) : (\n ''\n )}\n {this.hasError ? (\n <div class={`error-icon-container ${this.label || this.optional ? '' : 'no-label'}`}>\n <q2-icon\n class=\"h(4) w(4) mrg-b(2)\"\n type=\"error\"\n ></q2-icon>\n </div>\n ) : (\n ''\n )}\n {this.inputDom()}\n </fieldset>\n </div>\n );\n }\n\n inputDom() {\n return <slot />;\n }\n}\n"],"mappings":"oGAAA,MAAMA,EAAY,yiE,MCmBLC,EAAe,M,wDASxBC,KAAAC,IAAc,kBAAkBC,MAWhCF,KAAAG,mBAAqB,KACjBH,KAAKI,eACLJ,KAAKK,gBAAgB,EAGzBL,KAAAM,sBAAyBC,IACrBA,EAAMC,2BACN,MAAMC,EAAa,GACnBC,YAAW,KACPV,KAAKW,iBAAiBC,SAAQC,IAC1BJ,EAAWI,EAAMC,SAAWD,EAAME,OAAO,IAE7Cf,KAAKgB,OAAOC,KAAKR,EAAW,GAC7B,EAAE,E,wDA9BoC,M,cACA,M,cACA,M,cACA,K,CAMzCE,uBACA,OAAOO,MAAMC,KAAKnB,KAAKoB,YAAYC,iBAAiB,e,CAGpDC,qBACA,OAAOtB,KAAKc,OAAS,E,CAqBzBS,oBACIvB,KAAKwB,eAAexB,KAAKyB,S,CAG7BC,mBACI,MAAMC,EAAW,IAAIC,iBAAiB5B,KAAKG,oBAC3CwB,EAASE,QAAQ7B,KAAKoB,YAAa,CAAEU,UAAW,OAChD9B,KAAK+B,iBAAmBJ,EACxB3B,KAAKG,oB,CAGT6B,uBACI,GAAIhC,KAAK+B,iBAAkB,CACvB/B,KAAK+B,iBAAiBE,aACtBjC,KAAK+B,iBAAmB,I,EAKhC3B,eACI,GAAIJ,KAAKyB,SAAU,OACnBzB,KAAKW,iBAAiBC,SAAQC,IAC1B,GAAIb,KAAKsB,eAAeY,eAAerB,EAAMC,OAAQ,CACjDD,EAAME,QAAUf,KAAKc,MAAMD,EAAMC,M,KAM7CT,iBACI,MAAM8B,EAAgBnC,KAAKoC,SAC3BpC,KAAKW,iBAAiBC,SAAQyB,IAC1BA,EAASF,cAAgBA,CAAa,G,CAK9CX,eAAec,GACXtC,KAAKW,iBAAiBC,SAAQyB,IAC1BA,EAASZ,SAAWa,CAAW,G,CAMvCC,SAASC,GACL,MAAMC,EAAY,IAAIC,IAAIxB,MAAMyB,QAAQH,GAAUA,EAAS,CAACA,IAC5DxC,KAAKW,iBAAiBC,SAAQC,IAC1B,GAAI4B,EAAUG,IAAI/B,EAAMC,OAAQD,EAAMgC,OAAO,G,CASrDC,oBAAoBvC,GAChB,GAAIA,EAAMwC,SAAW/C,KAAKoB,cAAgBpB,KAAKoB,YAAY4B,SAAU,CACjEhD,KAAKc,MAAQP,EAAM0C,M,EAI3BC,SACI,OACIC,EAAA,WACKnD,KAAKoD,OAASpD,KAAKqD,SAChBF,EAAA,OAAKG,MAAM,gBACNtD,KAAKoD,OAASG,EAAIvD,KAAKoD,OACvBpD,KAAKqD,SAAWF,EAAA,QAAMG,MAAM,gBAAgBC,EAAI,kCAA2C,IAC1F,GAIVJ,EAAA,YACIG,MAAO,wBAAwBtD,KAAKwD,SAAW,YAAc,KAC7DC,SAAUzD,KAAKM,sBAAqB,eACtB,GAAGN,KAAKwD,YAErBxD,KAAKoD,OAASpD,KAAKqD,SAChBF,EAAA,UAAQG,MAAM,WACTtD,KAAKoD,OAASG,EAAIvD,KAAKoD,OACvBpD,KAAKqD,SACFF,EAAA,QAAMG,MAAM,gBAAgBC,EAAI,kCAAwC,IAIvE,GAIZvD,KAAKwD,SACFL,EAAA,OAAKG,MAAO,wBAAwBtD,KAAKoD,OAASpD,KAAKqD,SAAW,GAAK,cACnEF,EAAA,WACIG,MAAM,qBACNI,KAAK,WAEP,GAIT1D,KAAK2D,Y,CAMtBA,WACI,OAAOR,EAAA,Y"}