q2-tecton-elements 1.69.1 → 1.70.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 (273) hide show
  1. package/dist/bundle-report.json +2246 -355
  2. package/dist/cjs/click-elsewhere_3.cjs.entry.js +2 -2
  3. package/dist/cjs/{index-D2LFCsNP.js → index-SpDCZABA.js} +2 -2
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/q2-action-group_2.cjs.entry.js +1 -1
  6. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-badge_2.cjs.entry.js +11 -4
  8. package/dist/cjs/q2-btn_2.cjs.entry.js +6 -2
  9. package/dist/cjs/q2-calendar.cjs.entry.js +5 -3
  10. package/dist/cjs/q2-card-image.cjs.entry.js +8 -6
  11. package/dist/cjs/q2-card.cjs.entry.js +2 -2
  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 +1 -1
  15. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  17. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-checkbox_2.cjs.entry.js +4 -3
  19. package/dist/cjs/q2-context.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-data-table.cjs.entry.js +6 -3
  22. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  23. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-dropdown.cjs.entry.js +3 -3
  25. package/dist/cjs/q2-editable-field.cjs.entry.js +12 -4
  26. package/dist/cjs/q2-file-picker.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-item.cjs.entry.js +2 -2
  29. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-link_2.cjs.entry.js +2 -2
  31. package/dist/cjs/q2-loc.cjs.entry.js +20 -2
  32. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-meter.cjs.entry.js +2 -2
  34. package/dist/cjs/q2-modal.cjs.entry.js +3 -3
  35. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-otp.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
  40. package/dist/cjs/q2-pill.cjs.entry.js +1 -1
  41. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  42. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  43. package/dist/cjs/q2-relative-time.cjs.entry.js +1 -1
  44. package/dist/cjs/q2-search.cjs.entry.js +101 -12
  45. package/dist/cjs/q2-section.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-select.cjs.entry.js +36 -6
  47. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  48. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +24 -18
  49. package/dist/cjs/q2-stepper.cjs.entry.js +5 -4
  50. package/dist/cjs/q2-surface.cjs.entry.js +95 -0
  51. package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
  52. package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
  53. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  54. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  55. package/dist/cjs/q2-toast.cjs.entry.js +1 -1
  56. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  57. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  58. package/dist/collection/collection-manifest.json +1 -0
  59. package/dist/collection/components/q2-action-sheet/q2-action-sheet.css +1 -1
  60. package/dist/collection/components/q2-btn/q2-btn.css +32 -17
  61. package/dist/collection/components/q2-btn/q2-btn.js +6 -1
  62. package/dist/collection/components/q2-calendar/q2-calendar.js +24 -2
  63. package/dist/collection/components/q2-calendar/test/q2-calendar-test.vr.js +4 -0
  64. package/dist/collection/components/q2-card/q2-card.css +2 -2
  65. package/dist/collection/components/q2-card-image/q2-card-image.css +3 -0
  66. package/dist/collection/components/q2-card-image/q2-card-image.js +25 -23
  67. package/dist/collection/components/q2-chart-area/q2-chart-area.css +4 -0
  68. package/dist/collection/components/q2-chart-bar/q2-chart-bar.css +4 -0
  69. package/dist/collection/components/q2-chart-donut/q2-chart-donut.css +1 -1
  70. package/dist/collection/components/q2-checkbox/q2-checkbox.js +2 -1
  71. package/dist/collection/components/q2-currency/q2-currency.css +1 -1
  72. package/dist/collection/components/q2-data-table/q2-data-table.js +5 -2
  73. package/dist/collection/components/q2-detail/q2-detail.css +12 -12
  74. package/dist/collection/components/q2-dropdown/q2-dropdown.js +2 -2
  75. package/dist/collection/components/q2-editable-field/q2-editable-field.js +11 -3
  76. package/dist/collection/components/q2-input/q2-input.css +11 -1
  77. package/dist/collection/components/q2-input/q2-input.js +29 -2
  78. package/dist/collection/components/q2-input/test/q2-input-test.vr.js +8 -0
  79. package/dist/collection/components/q2-item/q2-item.css +10 -5
  80. package/dist/collection/components/q2-item/test/q2-item-test.vr.js +132 -0
  81. package/dist/collection/components/q2-legend/q2-legend.css +2 -2
  82. package/dist/collection/components/q2-list/q2-list.css +1 -1
  83. package/dist/collection/components/q2-loc/q2-loc.js +42 -1
  84. package/dist/collection/components/q2-message/q2-message.css +4 -0
  85. package/dist/collection/components/q2-meter/q2-meter.css +3 -3
  86. package/dist/collection/components/q2-modal/q2-modal.css +1 -1
  87. package/dist/collection/components/q2-modal/q2-modal.js +2 -2
  88. package/dist/collection/components/q2-otp/q2-otp.css +33 -0
  89. package/dist/collection/components/q2-otp/test/q2-otp-test.vr.js +83 -0
  90. package/dist/collection/components/q2-popover/q2-popover.css +2 -1
  91. package/dist/collection/components/q2-radio/q2-radio.css +2 -0
  92. package/dist/collection/components/q2-search/q2-search.css +30 -0
  93. package/dist/collection/components/q2-search/q2-search.js +99 -10
  94. package/dist/collection/components/q2-search/test/q2-search-test.vr.js +145 -0
  95. package/dist/collection/components/q2-section/q2-section.css +1 -1
  96. package/dist/collection/components/q2-select/q2-select.css +4 -2
  97. package/dist/collection/components/q2-select/q2-select.js +54 -4
  98. package/dist/collection/components/q2-select/test/q2-select-test.vr.js +5 -0
  99. package/dist/collection/components/q2-stepper/q2-stepper.css +2 -2
  100. package/dist/collection/components/q2-stepper/q2-stepper.js +3 -2
  101. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +2 -2
  102. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +22 -16
  103. package/dist/collection/components/q2-surface/q2-surface.css +348 -0
  104. package/dist/collection/components/q2-surface/q2-surface.js +381 -0
  105. package/dist/collection/components/q2-surface/test/q2-surface-test.vr.js +108 -0
  106. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  107. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  108. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  109. package/dist/collection/components/q2-toast/q2-toast.js +3 -1
  110. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  111. package/dist/collection/utils/index.js +2 -2
  112. package/dist/components/index.js +12 -10
  113. package/dist/components/index2.js +3 -3
  114. package/dist/components/q2-action-sheet.js +1 -1
  115. package/dist/components/q2-btn2.js +5 -1
  116. package/dist/components/q2-calendar.js +294 -290
  117. package/dist/components/q2-card-image.js +9 -6
  118. package/dist/components/q2-card.js +14 -14
  119. package/dist/components/q2-chart-donut.js +1 -1
  120. package/dist/components/q2-checkbox2.js +12 -12
  121. package/dist/components/q2-currency.js +1 -1
  122. package/dist/components/q2-data-table.js +4 -4
  123. package/dist/components/q2-detail.js +1 -1
  124. package/dist/components/q2-dropdown.js +8 -8
  125. package/dist/components/q2-editable-field.js +15 -5
  126. package/dist/components/q2-input2.js +46 -26
  127. package/dist/components/q2-item2.js +1 -1
  128. package/dist/components/q2-legend2.js +51 -51
  129. package/dist/components/q2-list2.js +1 -1
  130. package/dist/components/q2-loc.js +23 -8
  131. package/dist/components/q2-meter.js +10 -10
  132. package/dist/components/q2-modal.js +54 -54
  133. package/dist/components/q2-popover2.js +1 -1
  134. package/dist/components/q2-search.js +106 -51
  135. package/dist/components/q2-section.js +1 -1
  136. package/dist/components/q2-select2.js +25 -9
  137. package/dist/components/q2-stepper-vertical.js +72 -63
  138. package/dist/components/q2-stepper.js +73 -71
  139. package/dist/components/q2-surface.d.ts +11 -0
  140. package/dist/components/q2-surface.js +109 -0
  141. package/dist/components/q2-tab-container.js +12 -12
  142. package/dist/components/q2-tab-pane.js +6 -6
  143. package/dist/components/q2-tag2.js +5 -5
  144. package/dist/components/tecton-tab-pane.js +10 -10
  145. package/dist/esm/click-elsewhere_3.entry.js +2 -2
  146. package/dist/esm/{index-Bx4m6N0g.js → index-Cps4jSQM.js} +2 -2
  147. package/dist/esm/loader.js +1 -1
  148. package/dist/esm/q2-action-group_2.entry.js +1 -1
  149. package/dist/esm/q2-action-sheet.entry.js +2 -2
  150. package/dist/esm/q2-badge_2.entry.js +11 -4
  151. package/dist/esm/q2-btn_2.entry.js +6 -2
  152. package/dist/esm/q2-calendar.entry.js +5 -3
  153. package/dist/esm/q2-card-image.entry.js +8 -6
  154. package/dist/esm/q2-card.entry.js +2 -2
  155. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  156. package/dist/esm/q2-carousel.entry.js +1 -1
  157. package/dist/esm/q2-chart-area.entry.js +1 -1
  158. package/dist/esm/q2-chart-bar.entry.js +1 -1
  159. package/dist/esm/q2-chart-donut.entry.js +2 -2
  160. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  161. package/dist/esm/q2-checkbox_2.entry.js +4 -3
  162. package/dist/esm/q2-context.entry.js +1 -1
  163. package/dist/esm/q2-currency.entry.js +1 -1
  164. package/dist/esm/q2-data-table.entry.js +6 -3
  165. package/dist/esm/q2-detail.entry.js +2 -2
  166. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  167. package/dist/esm/q2-dropdown.entry.js +3 -3
  168. package/dist/esm/q2-editable-field.entry.js +12 -4
  169. package/dist/esm/q2-file-picker.entry.js +1 -1
  170. package/dist/esm/q2-icon.entry.js +1 -1
  171. package/dist/esm/q2-item.entry.js +2 -2
  172. package/dist/esm/q2-legend.entry.js +1 -1
  173. package/dist/esm/q2-link_2.entry.js +2 -2
  174. package/dist/esm/q2-loc.entry.js +20 -2
  175. package/dist/esm/q2-message.entry.js +1 -1
  176. package/dist/esm/q2-meter.entry.js +2 -2
  177. package/dist/esm/q2-modal.entry.js +3 -3
  178. package/dist/esm/q2-month-picker.entry.js +1 -1
  179. package/dist/esm/q2-optgroup.entry.js +1 -1
  180. package/dist/esm/q2-option.entry.js +1 -1
  181. package/dist/esm/q2-otp.entry.js +1 -1
  182. package/dist/esm/q2-pagination.entry.js +1 -1
  183. package/dist/esm/q2-pill.entry.js +1 -1
  184. package/dist/esm/q2-radio-group.entry.js +1 -1
  185. package/dist/esm/q2-radio.entry.js +1 -1
  186. package/dist/esm/q2-relative-time.entry.js +1 -1
  187. package/dist/esm/q2-search.entry.js +101 -12
  188. package/dist/esm/q2-section.entry.js +2 -2
  189. package/dist/esm/q2-select.entry.js +36 -6
  190. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  191. package/dist/esm/q2-stepper-vertical.entry.js +24 -18
  192. package/dist/esm/q2-stepper.entry.js +5 -4
  193. package/dist/esm/q2-surface.entry.js +93 -0
  194. package/dist/esm/q2-tab-container.entry.js +2 -2
  195. package/dist/esm/q2-tab-pane.entry.js +1 -1
  196. package/dist/esm/q2-tecton-elements.js +1 -1
  197. package/dist/esm/q2-textarea.entry.js +1 -1
  198. package/dist/esm/q2-toast.entry.js +1 -1
  199. package/dist/esm/q2-tooltip.entry.js +1 -1
  200. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  201. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js +2 -2
  202. package/dist/q2-tecton-elements/{index-Bx4m6N0g.js → index-Cps4jSQM.js} +3 -3
  203. package/dist/q2-tecton-elements/q2-action-group_2.entry.js +1 -1
  204. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +2 -2
  205. package/dist/q2-tecton-elements/q2-badge_2.entry.js +51 -32
  206. package/dist/q2-tecton-elements/q2-btn_2.entry.js +6 -2
  207. package/dist/q2-tecton-elements/q2-calendar.entry.js +7 -4
  208. package/dist/q2-tecton-elements/q2-card-image.entry.js +65 -62
  209. package/dist/q2-tecton-elements/q2-card.entry.js +2 -2
  210. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +1 -1
  211. package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
  212. package/dist/q2-tecton-elements/q2-chart-area.entry.js +54 -54
  213. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +3 -3
  214. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +7 -7
  215. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +1 -1
  216. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +18 -18
  217. package/dist/q2-tecton-elements/q2-context.entry.js +1 -1
  218. package/dist/q2-tecton-elements/q2-currency.entry.js +1 -1
  219. package/dist/q2-tecton-elements/q2-data-table.entry.js +50 -50
  220. package/dist/q2-tecton-elements/q2-detail.entry.js +2 -2
  221. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
  222. package/dist/q2-tecton-elements/q2-dropdown.entry.js +16 -16
  223. package/dist/q2-tecton-elements/q2-editable-field.entry.js +15 -8
  224. package/dist/q2-tecton-elements/q2-file-picker.entry.js +1 -1
  225. package/dist/q2-tecton-elements/q2-icon.entry.js +1 -1
  226. package/dist/q2-tecton-elements/q2-item.entry.js +2 -2
  227. package/dist/q2-tecton-elements/q2-legend.entry.js +1 -1
  228. package/dist/q2-tecton-elements/q2-link_2.entry.js +2 -2
  229. package/dist/q2-tecton-elements/q2-loc.entry.js +20 -6
  230. package/dist/q2-tecton-elements/q2-message.entry.js +1 -1
  231. package/dist/q2-tecton-elements/q2-meter.entry.js +2 -2
  232. package/dist/q2-tecton-elements/q2-modal.entry.js +55 -55
  233. package/dist/q2-tecton-elements/q2-month-picker.entry.js +1 -1
  234. package/dist/q2-tecton-elements/q2-optgroup.entry.js +1 -1
  235. package/dist/q2-tecton-elements/q2-option.entry.js +7 -7
  236. package/dist/q2-tecton-elements/q2-otp.entry.js +1 -1
  237. package/dist/q2-tecton-elements/q2-pagination.entry.js +1 -1
  238. package/dist/q2-tecton-elements/q2-pill.entry.js +1 -1
  239. package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
  240. package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
  241. package/dist/q2-tecton-elements/q2-relative-time.entry.js +1 -1
  242. package/dist/q2-tecton-elements/q2-search.entry.js +108 -53
  243. package/dist/q2-tecton-elements/q2-section.entry.js +2 -2
  244. package/dist/q2-tecton-elements/q2-select.entry.js +25 -10
  245. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
  246. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +75 -66
  247. package/dist/q2-tecton-elements/q2-stepper.entry.js +47 -45
  248. package/dist/q2-tecton-elements/q2-surface.entry.js +89 -0
  249. package/dist/q2-tecton-elements/q2-tab-container.entry.js +13 -13
  250. package/dist/q2-tecton-elements/q2-tab-pane.entry.js +2 -2
  251. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  252. package/dist/q2-tecton-elements/q2-textarea.entry.js +1 -1
  253. package/dist/q2-tecton-elements/q2-toast.entry.js +5 -5
  254. package/dist/q2-tecton-elements/q2-tooltip.entry.js +8 -8
  255. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  256. package/dist/types/components/q2-calendar/q2-calendar.d.ts +2 -0
  257. package/dist/types/components/q2-card-image/q2-card-image.d.ts +5 -5
  258. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +1 -0
  259. package/dist/types/components/q2-input/q2-input.d.ts +3 -0
  260. package/dist/types/components/q2-item/test/q2-item-test.vr.d.ts +1 -0
  261. package/dist/types/components/q2-loc/q2-loc.d.ts +6 -0
  262. package/dist/types/components/q2-modal/q2-modal.d.ts +1 -1
  263. package/dist/types/components/q2-otp/test/q2-otp-test.vr.d.ts +1 -0
  264. package/dist/types/components/q2-search/q2-search.d.ts +7 -0
  265. package/dist/types/components/q2-search/test/q2-search-test.vr.d.ts +1 -0
  266. package/dist/types/components/q2-select/q2-select.d.ts +4 -0
  267. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +2 -1
  268. package/dist/types/components/q2-surface/q2-surface.d.ts +54 -0
  269. package/dist/types/components/q2-surface/test/q2-surface-test.vr.d.ts +1 -0
  270. package/dist/types/components/q2-toast/q2-toast.d.ts +3 -1
  271. package/dist/types/components.d.ts +259 -13
  272. package/dist/types/utils/index.d.ts +3 -1
  273. package/package.json +4 -3
@@ -0,0 +1,381 @@
1
+ import { Host, h, } from "@stencil/core";
2
+ /**
3
+ * @name Surface
4
+ * @category Display
5
+ * @summary An unopinionated visual primitive. A plain block by default that gains visual treatment via attributes.
6
+ */
7
+ export class Q2Surface {
8
+ constructor() {
9
+ // #region Own Properties
10
+ this._cancelAnimation = null;
11
+ /** Applies a gradient fade across the background.
12
+ *
13
+ * @info Direction and colors are customizable via CSS custom properties. */
14
+ this.backgroundGradient = false;
15
+ /**
16
+ * Renders the border as a gradient using the color set by the `border` prop. Takes precedence over a solid `border` when both are set.
17
+ *
18
+ * @info Requires `border` to be set to produce a colored gradient. Without `border`, falls back to the default border color.
19
+ */
20
+ this.borderGradient = false;
21
+ /** Makes the surface interactive, responding to clicks.
22
+ *
23
+ * @info Emits `tctClick` when clicked. */
24
+ this.clickable = false;
25
+ /** Gives the component a drop shadow.
26
+ *
27
+ * @info 0 means no shadow; higher values appear more elevated. */
28
+ this.elevation = 0;
29
+ /** Adds internal padding applied uniformly on all sides.
30
+ *
31
+ * @info Individual axes can be overridden with `inset-x` and `inset-y`. */
32
+ this.inset = 'none';
33
+ /** Adds corner rounding on a scale from 0 (sharp) to 5 (most rounded). */
34
+ this.radius = 0;
35
+ }
36
+ // #endregion
37
+ // #region Component Lifecycle Events
38
+ disconnectedCallback() {
39
+ var _a;
40
+ (_a = this._cancelAnimation) === null || _a === void 0 ? void 0 : _a.call(this);
41
+ }
42
+ // #endregion
43
+ // #region Listeners
44
+ onClick() {
45
+ if (!this.clickable)
46
+ return;
47
+ this.tctClick.emit();
48
+ }
49
+ onKeydown(event) {
50
+ if (!this.clickable)
51
+ return;
52
+ if (event.key === 'Enter' || event.key === ' ') {
53
+ event.preventDefault();
54
+ this.tctClick.emit();
55
+ }
56
+ }
57
+ // #endregion
58
+ // #region Public Methods API
59
+ /**
60
+ * Triggers a named animation on the surface. If an animation is already running, cancels it before starting the new one.
61
+ * @param animation The animation to play. Defaults to `'pulse'`.
62
+ * @returns A Promise that resolves when the animation finishes or is cancelled.
63
+ */
64
+ async animate(animation = 'pulse') {
65
+ var _a;
66
+ (_a = this._cancelAnimation) === null || _a === void 0 ? void 0 : _a.call(this);
67
+ return new Promise(resolve => {
68
+ const className = `q2-surface-animate-${animation}`;
69
+ const onEnd = () => {
70
+ this.hostElement.classList.remove(className);
71
+ this._cancelAnimation = null;
72
+ resolve();
73
+ };
74
+ this._cancelAnimation = () => {
75
+ this.hostElement.classList.remove(className);
76
+ this.hostElement.removeEventListener('animationend', onEnd);
77
+ this._cancelAnimation = null;
78
+ resolve();
79
+ };
80
+ this.hostElement.classList.add(className);
81
+ this.hostElement.addEventListener('animationend', onEnd, { once: true });
82
+ });
83
+ }
84
+ // #endregion
85
+ // #region Render Methods
86
+ render() {
87
+ return (h(Host, { key: '235f94ccfb0eb7167079e8e25ee78d652999f8e8' }, h("div", { key: 'b01d6e71bb4b8f1f583c63910d4b1eca757572dd', class: "container", role: this.clickable ? 'button' : undefined, tabIndex: this.clickable ? 0 : undefined }, h("slot", { key: '591dc9fcb51d6f238a6186f047661020be9ea800' }))));
88
+ }
89
+ static get is() { return "q2-surface"; }
90
+ static get encapsulation() { return "shadow"; }
91
+ static get originalStyleUrls() {
92
+ return {
93
+ "$": ["q2-surface.scss"]
94
+ };
95
+ }
96
+ static get styleUrls() {
97
+ return {
98
+ "$": ["q2-surface.css"]
99
+ };
100
+ }
101
+ static get properties() {
102
+ return {
103
+ "background": {
104
+ "type": "string",
105
+ "mutable": false,
106
+ "complexType": {
107
+ "original": "'default' | 'primary' | 'secondary' | 'tertiary'",
108
+ "resolved": "\"default\" | \"primary\" | \"secondary\" | \"tertiary\"",
109
+ "references": {}
110
+ },
111
+ "required": false,
112
+ "optional": true,
113
+ "docs": {
114
+ "tags": [],
115
+ "text": "Applies a background color from the design-system token palette. When unset, the surface is transparent."
116
+ },
117
+ "getter": false,
118
+ "setter": false,
119
+ "reflect": true,
120
+ "attribute": "background"
121
+ },
122
+ "backgroundGradient": {
123
+ "type": "boolean",
124
+ "mutable": false,
125
+ "complexType": {
126
+ "original": "boolean",
127
+ "resolved": "boolean",
128
+ "references": {}
129
+ },
130
+ "required": false,
131
+ "optional": false,
132
+ "docs": {
133
+ "tags": [{
134
+ "name": "info",
135
+ "text": "Direction and colors are customizable via CSS custom properties."
136
+ }],
137
+ "text": "Applies a gradient fade across the background."
138
+ },
139
+ "getter": false,
140
+ "setter": false,
141
+ "reflect": true,
142
+ "attribute": "background-gradient",
143
+ "defaultValue": "false"
144
+ },
145
+ "border": {
146
+ "type": "string",
147
+ "mutable": false,
148
+ "complexType": {
149
+ "original": "'default' | 'primary' | 'secondary' | 'tertiary'",
150
+ "resolved": "\"default\" | \"primary\" | \"secondary\" | \"tertiary\"",
151
+ "references": {}
152
+ },
153
+ "required": false,
154
+ "optional": true,
155
+ "docs": {
156
+ "tags": [],
157
+ "text": "Renders a visible border around the surface, optionally in a themed color."
158
+ },
159
+ "getter": false,
160
+ "setter": false,
161
+ "reflect": true,
162
+ "attribute": "border"
163
+ },
164
+ "borderGradient": {
165
+ "type": "boolean",
166
+ "mutable": false,
167
+ "complexType": {
168
+ "original": "boolean",
169
+ "resolved": "boolean",
170
+ "references": {}
171
+ },
172
+ "required": false,
173
+ "optional": false,
174
+ "docs": {
175
+ "tags": [{
176
+ "name": "info",
177
+ "text": "Requires `border` to be set to produce a colored gradient. Without `border`, falls back to the default border color."
178
+ }],
179
+ "text": "Renders the border as a gradient using the color set by the `border` prop. Takes precedence over a solid `border` when both are set."
180
+ },
181
+ "getter": false,
182
+ "setter": false,
183
+ "reflect": true,
184
+ "attribute": "border-gradient",
185
+ "defaultValue": "false"
186
+ },
187
+ "clickable": {
188
+ "type": "boolean",
189
+ "mutable": false,
190
+ "complexType": {
191
+ "original": "boolean",
192
+ "resolved": "boolean",
193
+ "references": {}
194
+ },
195
+ "required": false,
196
+ "optional": false,
197
+ "docs": {
198
+ "tags": [{
199
+ "name": "info",
200
+ "text": "Emits `tctClick` when clicked."
201
+ }],
202
+ "text": "Makes the surface interactive, responding to clicks."
203
+ },
204
+ "getter": false,
205
+ "setter": false,
206
+ "reflect": true,
207
+ "attribute": "clickable",
208
+ "defaultValue": "false"
209
+ },
210
+ "elevation": {
211
+ "type": "number",
212
+ "mutable": false,
213
+ "complexType": {
214
+ "original": "0 | 1 | 2 | 3 | 4 | 5",
215
+ "resolved": "0 | 1 | 2 | 3 | 4 | 5",
216
+ "references": {}
217
+ },
218
+ "required": false,
219
+ "optional": false,
220
+ "docs": {
221
+ "tags": [{
222
+ "name": "info",
223
+ "text": "0 means no shadow; higher values appear more elevated."
224
+ }],
225
+ "text": "Gives the component a drop shadow."
226
+ },
227
+ "getter": false,
228
+ "setter": false,
229
+ "reflect": true,
230
+ "attribute": "elevation",
231
+ "defaultValue": "0"
232
+ },
233
+ "inset": {
234
+ "type": "string",
235
+ "mutable": false,
236
+ "complexType": {
237
+ "original": "'none' | 'compact' | 'normal' | 'comfortable'",
238
+ "resolved": "\"comfortable\" | \"compact\" | \"none\" | \"normal\"",
239
+ "references": {}
240
+ },
241
+ "required": false,
242
+ "optional": false,
243
+ "docs": {
244
+ "tags": [{
245
+ "name": "info",
246
+ "text": "Individual axes can be overridden with `inset-x` and `inset-y`."
247
+ }],
248
+ "text": "Adds internal padding applied uniformly on all sides."
249
+ },
250
+ "getter": false,
251
+ "setter": false,
252
+ "reflect": true,
253
+ "attribute": "inset",
254
+ "defaultValue": "'none'"
255
+ },
256
+ "insetX": {
257
+ "type": "string",
258
+ "mutable": false,
259
+ "complexType": {
260
+ "original": "'none' | 'compact' | 'normal' | 'comfortable'",
261
+ "resolved": "\"comfortable\" | \"compact\" | \"none\" | \"normal\"",
262
+ "references": {}
263
+ },
264
+ "required": false,
265
+ "optional": true,
266
+ "docs": {
267
+ "tags": [],
268
+ "text": "Adds horizontal padding, overriding the horizontal component of `inset`."
269
+ },
270
+ "getter": false,
271
+ "setter": false,
272
+ "reflect": true,
273
+ "attribute": "inset-x"
274
+ },
275
+ "insetY": {
276
+ "type": "string",
277
+ "mutable": false,
278
+ "complexType": {
279
+ "original": "'none' | 'compact' | 'normal' | 'comfortable'",
280
+ "resolved": "\"comfortable\" | \"compact\" | \"none\" | \"normal\"",
281
+ "references": {}
282
+ },
283
+ "required": false,
284
+ "optional": true,
285
+ "docs": {
286
+ "tags": [],
287
+ "text": "Adds vertical padding, overriding the vertical component of `inset`."
288
+ },
289
+ "getter": false,
290
+ "setter": false,
291
+ "reflect": true,
292
+ "attribute": "inset-y"
293
+ },
294
+ "radius": {
295
+ "type": "number",
296
+ "mutable": false,
297
+ "complexType": {
298
+ "original": "0 | 1 | 2 | 3 | 4 | 5",
299
+ "resolved": "0 | 1 | 2 | 3 | 4 | 5",
300
+ "references": {}
301
+ },
302
+ "required": false,
303
+ "optional": false,
304
+ "docs": {
305
+ "tags": [],
306
+ "text": "Adds corner rounding on a scale from 0 (sharp) to 5 (most rounded)."
307
+ },
308
+ "getter": false,
309
+ "setter": false,
310
+ "reflect": true,
311
+ "attribute": "radius",
312
+ "defaultValue": "0"
313
+ }
314
+ };
315
+ }
316
+ static get events() {
317
+ return [{
318
+ "method": "tctClick",
319
+ "name": "tctClick",
320
+ "bubbles": true,
321
+ "cancelable": true,
322
+ "composed": true,
323
+ "docs": {
324
+ "tags": [],
325
+ "text": "Emitted when the surface is clicked and `clickable` is true."
326
+ },
327
+ "complexType": {
328
+ "original": "void",
329
+ "resolved": "void",
330
+ "references": {}
331
+ }
332
+ }];
333
+ }
334
+ static get methods() {
335
+ return {
336
+ "animate": {
337
+ "complexType": {
338
+ "signature": "(animation?: \"bounce\" | \"flash\" | \"pulse\" | \"tada\") => Promise<void>",
339
+ "parameters": [{
340
+ "name": "animation",
341
+ "type": "\"bounce\" | \"flash\" | \"pulse\" | \"tada\"",
342
+ "docs": "The animation to play. Defaults to `'pulse'`."
343
+ }],
344
+ "references": {
345
+ "Promise": {
346
+ "location": "global",
347
+ "id": "global::Promise"
348
+ }
349
+ },
350
+ "return": "Promise<void>"
351
+ },
352
+ "docs": {
353
+ "text": "Triggers a named animation on the surface. If an animation is already running, cancels it before starting the new one.",
354
+ "tags": [{
355
+ "name": "param",
356
+ "text": "animation The animation to play. Defaults to `'pulse'`."
357
+ }, {
358
+ "name": "returns",
359
+ "text": "A Promise that resolves when the animation finishes or is cancelled."
360
+ }]
361
+ }
362
+ }
363
+ };
364
+ }
365
+ static get elementRef() { return "hostElement"; }
366
+ static get listeners() {
367
+ return [{
368
+ "name": "click",
369
+ "method": "onClick",
370
+ "target": undefined,
371
+ "capture": false,
372
+ "passive": false
373
+ }, {
374
+ "name": "keydown",
375
+ "method": "onKeydown",
376
+ "target": undefined,
377
+ "capture": false,
378
+ "passive": false
379
+ }];
380
+ }
381
+ }
@@ -0,0 +1,108 @@
1
+ import { expect } from "@playwright/test";
2
+ import { test } from "@stencil/playwright";
3
+ import { setupPage, THEMES } from "../../../utils/test/vr-helpers";
4
+ const VARIANTS = [
5
+ {
6
+ name: 'background-default',
7
+ html: `<q2-surface background="default" inset="normal"></q2-surface>`,
8
+ states: ['resting'],
9
+ },
10
+ {
11
+ name: 'background-primary',
12
+ html: `<q2-surface background="primary" inset="normal"></q2-surface>`,
13
+ states: ['resting'],
14
+ },
15
+ {
16
+ name: 'background-secondary',
17
+ html: `<q2-surface background="secondary" inset="normal"></q2-surface>`,
18
+ states: ['resting'],
19
+ },
20
+ {
21
+ name: 'background-tertiary',
22
+ html: `<q2-surface background="tertiary" inset="normal"></q2-surface>`,
23
+ states: ['resting'],
24
+ },
25
+ {
26
+ name: 'background-gradient-primary',
27
+ html: `<q2-surface background="primary" background-gradient inset="normal" radius="2"></q2-surface>`,
28
+ states: ['resting'],
29
+ },
30
+ {
31
+ name: 'border-default',
32
+ html: `<q2-surface border="default" inset="normal"></q2-surface>`,
33
+ states: ['resting'],
34
+ },
35
+ {
36
+ name: 'border-primary',
37
+ html: `<q2-surface border="primary" inset="normal"></q2-surface>`,
38
+ states: ['resting'],
39
+ },
40
+ {
41
+ name: 'border-secondary',
42
+ html: `<q2-surface border="secondary" inset="normal"></q2-surface>`,
43
+ states: ['resting'],
44
+ },
45
+ {
46
+ name: 'border-tertiary',
47
+ html: `<q2-surface border="tertiary" inset="normal"></q2-surface>`,
48
+ states: ['resting'],
49
+ },
50
+ {
51
+ name: 'border-gradient-primary',
52
+ html: `<q2-surface border="primary" border-gradient inset="normal" radius="2"></q2-surface>`,
53
+ states: ['resting'],
54
+ },
55
+ {
56
+ name: 'clickable',
57
+ html: `<q2-surface clickable border="default" radius="2" inset="normal"></q2-surface>`,
58
+ states: ['resting', 'hover', 'focus', 'active'],
59
+ },
60
+ ];
61
+ const restingCase = (variant, theme) => {
62
+ test(`q2-surface--${variant.name}--resting — ${theme}`, async ({ page }) => {
63
+ await setupPage(page, variant.html, { theme });
64
+ await expect(page).toHaveScreenshot(`q2-surface--${variant.name}--resting--${theme}.png`);
65
+ });
66
+ };
67
+ const hoverCase = (variant, theme) => {
68
+ test(`q2-surface--${variant.name}--hover — ${theme}`, async ({ page }) => {
69
+ await setupPage(page, variant.html, { theme });
70
+ await page.locator('q2-surface').hover();
71
+ await expect(page).toHaveScreenshot(`q2-surface--${variant.name}--hover--${theme}.png`);
72
+ });
73
+ };
74
+ const focusCase = (variant, theme) => {
75
+ test(`q2-surface--${variant.name}--focus — ${theme}`, async ({ page }) => {
76
+ await setupPage(page, variant.html, { theme });
77
+ await page.keyboard.press('Tab');
78
+ await expect(page).toHaveScreenshot(`q2-surface--${variant.name}--focus--${theme}.png`);
79
+ });
80
+ };
81
+ const activeCase = (variant, theme) => {
82
+ test(`q2-surface--${variant.name}--active — ${theme}`, async ({ page }) => {
83
+ await setupPage(page, variant.html, { theme });
84
+ const surface = page.locator('q2-surface');
85
+ const box = await surface.boundingBox();
86
+ if (!box)
87
+ throw new Error('q2-surface bounding box unavailable');
88
+ await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2);
89
+ await page.mouse.down();
90
+ await page.waitForTimeout(50);
91
+ await expect(page).toHaveScreenshot(`q2-surface--${variant.name}--active--${theme}.png`);
92
+ await page.mouse.up();
93
+ });
94
+ };
95
+ test.describe('q2-surface — variants × themes', () => {
96
+ for (const variant of VARIANTS) {
97
+ for (const theme of THEMES) {
98
+ if (variant.states.includes('resting'))
99
+ restingCase(variant, theme);
100
+ if (variant.states.includes('hover'))
101
+ hoverCase(variant, theme);
102
+ if (variant.states.includes('focus'))
103
+ focusCase(variant, theme);
104
+ if (variant.states.includes('active'))
105
+ activeCase(variant, theme);
106
+ }
107
+ }
108
+ });
@@ -266,7 +266,7 @@ export class Q2TabContainer {
266
266
  return (h("div", { class: "tab-pane-badge", "aria-label": `${tab.label}, ${tab.badgeCount} ${description}` }, tab.label, h("q2-badge", { value: tab.badgeCount, theme: theme, status: tab.badgeStatus })));
267
267
  }
268
268
  render() {
269
- return (h(Fragment, { key: '0a0a2058f1c949d0dd724439274115e64d2c7dd4' }, h("div", { key: '1f9fb82b2777198077a11470eb36fc8440377e24', class: "tab-container" }, this.scrollEnabled && (h(Fragment, { key: '570d2fc54ee847f0b59f237ea299aacd71ce6c30' }, h("div", { key: '660b94c04439955c8a074155dc58219be6078e8c', class: "gradient-left", hidden: !this.showScrollLeft }), h("div", { key: 'cf7234df25acc428a7484dfc7bb0332a67378c31', class: "gradient-right", hidden: !this.showScrollRight }), h("q2-btn", { key: '606062d6fd19dfcc4be88221c41958fbf03e11d1', class: "btn-left", hidden: !this.showScrollLeft, onTctClick: () => this.onScrollBtnClick('left') }, h("q2-icon", { key: '83ea86a0ceb25a38006399c577b8e450d8b15154', type: "chevron-left", label: "scroll left" })), h("q2-btn", { key: '5c8e4cd5777ddafc2b3dafcf288d636df29a5bfb', class: "btn-right", hidden: !this.showScrollRight, onTctClick: () => this.onScrollBtnClick('right') }, h("q2-icon", { key: 'a452c64a7293ee46d0a9ef8239082f965f50d42e', type: "chevron-right", label: "scroll right" })))), h("ul", { key: '885b13b8f0d2c87ae27bb4802fbb5209dbb1663a', onScroll: this.checkScrollState, ref: el => (this.listElement = el), class: this.noPrint ? 'no-print' : null, role: "tablist" }, this.tabs.map((tab, index) => this.renderTab(tab, index)))), h("div", { key: 'eedebff87dc19e82bf8e192906642265ca27e030', class: "tab-content" }, h("slot", { key: 'e8eff4ef323a8330bad4f14f2843d094d9ead6e2', onSlotchange: () => this.onSlotChange() }))));
269
+ return (h(Fragment, { key: 'cfaf872008ad8687316955a725e7475d326b5ec2' }, h("div", { key: '8a61a84ecd4d1869fe53829ca908e99ec80b11be', class: "tab-container" }, this.scrollEnabled && (h(Fragment, { key: 'a77950455f6f6f9138d1174fa4db38bcde498cb5' }, h("div", { key: 'b195f6a34a9ed2ecbdf1bacd2d51a76f0861574e', class: "gradient-left", hidden: !this.showScrollLeft }), h("div", { key: 'f625095c68ad1bedd07d34149d28c27f12b2954d', class: "gradient-right", hidden: !this.showScrollRight }), h("q2-btn", { key: '96c26c6447708d2fcf102e53e984f9a71bc2d9b1', class: "btn-left", hidden: !this.showScrollLeft, onTctClick: () => this.onScrollBtnClick('left') }, h("q2-icon", { key: 'feec85bd6bbbfeb99c520b6118c90190130d8dca', type: "chevron-left", label: "scroll left" })), h("q2-btn", { key: '8dc406d9e144e0d025e14d8a2e30f6010febafd6', class: "btn-right", hidden: !this.showScrollRight, onTctClick: () => this.onScrollBtnClick('right') }, h("q2-icon", { key: '3a35b2d74d9f62f3934b667b2ceacf0e31ffb6f4', type: "chevron-right", label: "scroll right" })))), h("ul", { key: '8ba591207287d3aa2d20e70ec72c03a755879ab0', onScroll: this.checkScrollState, ref: el => (this.listElement = el), class: this.noPrint ? 'no-print' : null, role: "tablist" }, this.tabs.map((tab, index) => this.renderTab(tab, index)))), h("div", { key: '83ab595967887ca3d2a584f85519f23e101d02ff', class: "tab-content" }, h("slot", { key: '6458a9e54b310f85129497478757111501fcb06f', onSlotchange: () => this.onSlotChange() }))));
270
270
  }
271
271
  static get is() { return "q2-tab-container"; }
272
272
  static get encapsulation() { return "shadow"; }
@@ -19,7 +19,7 @@ export class Q2TabPane {
19
19
  // #endregion
20
20
  // #region Render Methods
21
21
  render() {
22
- return (h("div", { key: 'f8b0c0d0b8dba3f96c30b96e215a7224b577604a', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, h("slot", { key: '2472e51b0a1e78652fc8a1fd99d001802297aa14' })));
22
+ return (h("div", { key: '19abb08e46c23ce0be03d7d07a1bbe4c22e99786', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, h("slot", { key: '42a7a3ac8fe64661ba2027c0c967fcfe3b4d20e7' })));
23
23
  }
24
24
  static get is() { return "q2-tab-pane"; }
25
25
  static get encapsulation() { return "shadow"; }
@@ -194,7 +194,7 @@ export class Q2Tag {
194
194
  if (this.optionCount)
195
195
  wrapperClassNames.push('has-options');
196
196
  const shouldShowOptions = this.optionCount > 0;
197
- return (h(Host, { key: 'b00f91a2d3932e444521adfa7444d12449805ce2' }, h("click-elsewhere", { key: 'a08d98db59a6985936e4a2221e8b131f2372b1ac', onChange: this.onClickElsewhere }, shouldShowOptions ? (h(Fragment, null, h("button", { class: "tag-wrapper", ref: el => (this.dropdownBtn = el), "test-id": "btn-control", type: "button", role: "combobox", onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleButtonFocusout, "aria-controls": "option-list", "aria-expanded": open ? 'true' : 'false', "aria-describedby": "option-description", "aria-label": loc(this.label) }, h("div", { class: wrapperClassNames.join(' ') }, loc(this.label)), h("q2-icon", { type: "options" })), this.renderHiddenElement())) : (h("div", { class: "tag-wrapper", onClick: e => e.stopPropagation() }, h("div", { class: wrapperClassNames.join(' ') }, h("slot", { name: "decorator" }), loc(this.label)))), shouldShowOptions && (h("q2-popover", { key: '99faf2982c1387840d14ddd014a1a3476e4d8062', ref: el => (this.popoverElement = el), controlElement: this.dropdownBtn, open: this.open, maxHeight: this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment }, h("q2-option-list", { key: 'c1fcbef6fc557561b2962609031acc4cb672f2ad', id: "option-list", ref: el => (this.optionList = el), onChange: this.handleChange, type: "menu", align: "right", label: loc('tecton.element.optionList.label', [this.optionListLabel]), "no-select": true }, h("slot", { key: '233b7959dffa0e50760f631b1a26853cc3c3f78d' })))))));
197
+ return (h(Host, { key: '8bf6d92e2f691ae8efeb0b1f24b460d193c069f1' }, h("click-elsewhere", { key: '9c6d2c96a64528a7831f5f1f019e81f5092b1347', onChange: this.onClickElsewhere }, shouldShowOptions ? (h(Fragment, null, h("button", { class: "tag-wrapper", ref: el => (this.dropdownBtn = el), "test-id": "btn-control", type: "button", role: "combobox", onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleButtonFocusout, "aria-controls": "option-list", "aria-expanded": open ? 'true' : 'false', "aria-describedby": "option-description", "aria-label": loc(this.label) }, h("div", { class: wrapperClassNames.join(' ') }, loc(this.label)), h("q2-icon", { type: "options" })), this.renderHiddenElement())) : (h("div", { class: "tag-wrapper", onClick: e => e.stopPropagation() }, h("div", { class: wrapperClassNames.join(' ') }, h("slot", { name: "decorator" }), loc(this.label)))), shouldShowOptions && (h("q2-popover", { key: '2df0c2c782ec0908fe95f4c824fa4230beeb2e6d', ref: el => (this.popoverElement = el), controlElement: this.dropdownBtn, open: this.open, maxHeight: this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment }, h("q2-option-list", { key: '8423b3877e1750ee12f5162b7fd2eb43a9552002', id: "option-list", ref: el => (this.optionList = el), onChange: this.handleChange, type: "menu", align: "right", label: loc('tecton.element.optionList.label', [this.optionListLabel]), "no-select": true }, h("slot", { key: '66ba933485bb28a9d140018c7ce6ce02e31ea668' })))))));
198
198
  }
199
199
  static get is() { return "q2-tag"; }
200
200
  static get encapsulation() { return "shadow"; }
@@ -1,9 +1,11 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { hasSlotContent, loc } from "../../utils/index";
3
3
  /**
4
+ * @name Toast
5
+ * @category Platform
6
+ * @summary Use for brief, non-intrusive notifications that appear temporarily and do not require user interaction.
4
7
  * @slot icon - Optional slot for a custom icon.
5
8
  * @slot title - Optional slot for the title content.
6
- * @slot - Optional slot for the message content.
7
9
  * @slot time - Optional slot for the time marker.
8
10
  * @slot actions - Optional slot for action links in the footer.
9
11
  */
@@ -49,9 +49,9 @@ export class TectonTabPane {
49
49
  // #endregion
50
50
  // #region Render Methods
51
51
  render() {
52
- return (h("div", { key: '32e632700f2b0f8d9eb7695befdda6109eab1698', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, this.selected && this.provided !== undefined && !this.provided && (h("div", { key: 'b3316dc9858fb1a80607c23f6e4a0fedf8832a4c' }, h("slot", { key: '043cd3f3e844b8e5d75236272a3dc96157114fc7', name: "loading-wrapper" }), h("iframe", { key: '8982ee311c758e568ef3e8e7c1ea8531c3597663', hidden: true, name: this.moduleId, scrolling: "no", src: this.showForm && this.authPayload.length ? '' : this.url || '', "data-module-id": this.moduleId, style: this.minHeight ? { minHeight: this.minHeight } : null, onLoad: this.onIFrameLoad, title: this.iframeTitle, allow: "geolocation; camera" }), this._showForm && this.authPayload ? (h("form", { hidden: true, method: "post", action: this.url, target: this.moduleId, encType: "multipart/form-data" }, this.authPayload.map(element => {
52
+ return (h("div", { key: '6fd41d78c9d8a6e1abf28713f52d92ac214ad8ab', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, this.selected && this.provided !== undefined && !this.provided && (h("div", { key: 'b5302bdd5ae8e749e84e4e12505d843c0ba0950a' }, h("slot", { key: '4b935505187b21260398c28ea876ecd64d9ed172', name: "loading-wrapper" }), h("iframe", { key: 'c18b96c8849a6a69abec9ced6d27a6860113b8c7', hidden: true, name: this.moduleId, scrolling: "no", src: this.showForm && this.authPayload.length ? '' : this.url || '', "data-module-id": this.moduleId, style: this.minHeight ? { minHeight: this.minHeight } : null, onLoad: this.onIFrameLoad, title: this.iframeTitle, allow: "geolocation; camera" }), this._showForm && this.authPayload ? (h("form", { hidden: true, method: "post", action: this.url, target: this.moduleId, encType: "multipart/form-data" }, this.authPayload.map(element => {
53
53
  return (h("input", { type: "hidden", value: element.value, name: element.key }));
54
- }))) : (''))), h("div", { key: '66b671d6c2af2d3bb33b4ad305022977d5a05024', class: "slot-wrapper", hidden: this.selected && this.provided !== undefined && !this.provided }, h("slot", { key: 'ba8567cf02ff9bb3f01c2406fd718df3ed770926' }))));
54
+ }))) : (''))), h("div", { key: '1016d617dc6cf49aa8e4bf52010e3cf246191875', class: "slot-wrapper", hidden: this.selected && this.provided !== undefined && !this.provided }, h("slot", { key: '466d820db179e1b6e350722eff9ec9190be6c869' }))));
55
55
  }
56
56
  static get is() { return "tecton-tab-pane"; }
57
57
  static get encapsulation() { return "shadow"; }
@@ -143,14 +143,14 @@ export function pick(props) {
143
143
  }, {});
144
144
  };
145
145
  }
146
- export function loc(key, subs) {
146
+ export function loc(key, subs, options) {
147
147
  var _a, _b, _c;
148
148
  if (!key)
149
149
  return '';
150
150
  if (((_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.noStrings) === true) {
151
151
  return key;
152
152
  }
153
- return (_c = (_b = window === null || window === void 0 ? void 0 : window.TectonElements) === null || _b === void 0 ? void 0 : _b.loc(key, subs)) !== null && _c !== void 0 ? _c : key;
153
+ return (_c = (_b = window === null || window === void 0 ? void 0 : window.TectonElements) === null || _b === void 0 ? void 0 : _b.loc(key, subs, options)) !== null && _c !== void 0 ? _c : key;
154
154
  }
155
155
  /**
156
156
  * Returns browser name, version, platform, and context (browser vs app WebView).
@@ -124,23 +124,25 @@ import { Q2StepperPane as po } from "./q2-stepper-pane.js";
124
124
 
125
125
  import { Q2StepperVertical as eo } from "./q2-stepper-vertical.js";
126
126
 
127
- import { Q2TabContainer as fo } from "./q2-tab-container.js";
127
+ import { Q2Surface as fo } from "./q2-surface.js";
128
128
 
129
- import { Q2TabPane as jo } from "./q2-tab-pane.js";
129
+ import { Q2TabContainer as jo } from "./q2-tab-container.js";
130
130
 
131
- import { Q2Tag as qo } from "./q2-tag.js";
131
+ import { Q2TabPane as qo } from "./q2-tab-pane.js";
132
132
 
133
- import { Q2Textarea as ao } from "./q2-textarea.js";
133
+ import { Q2Tag as ao } from "./q2-tag.js";
134
134
 
135
- import { Q2Toast as no } from "./q2-toast.js";
135
+ import { Q2Textarea as no } from "./q2-textarea.js";
136
136
 
137
- import { Q2Tooltip as co } from "./q2-tooltip.js";
137
+ import { Q2Toast as co } from "./q2-toast.js";
138
138
 
139
- import { TectonTabPane as lo } from "./tecton-tab-pane.js";
139
+ import { Q2Tooltip as lo } from "./q2-tooltip.js";
140
140
 
141
- const defineCustomElements = go => {
142
- "undefined" != typeof customElements && [ r, m, t, i, s, p, e, f, j, q, a, n, c, l, d, g, u, b, h, x, k, v, w, E, P, y, A, z, N, O, B, C, D, F, G, H, I, J, K, L, M, Q, R, S, T, U, V, W, X, Y, Z, $, _, oo, ro, mo, to, io, so, po, eo, fo, jo, qo, ao, no, co, lo ].forEach((r => {
143
- customElements.get(o(r.is)) || customElements.define(o(r.is), r, go);
141
+ import { TectonTabPane as go } from "./tecton-tab-pane.js";
142
+
143
+ const defineCustomElements = uo => {
144
+ "undefined" != typeof customElements && [ r, m, t, i, s, p, e, f, j, q, a, n, c, l, d, g, u, b, h, x, k, v, w, E, P, y, A, z, N, O, B, C, D, F, G, H, I, J, K, L, M, Q, R, S, T, U, V, W, X, Y, Z, $, _, oo, ro, mo, to, io, so, po, eo, fo, jo, qo, ao, no, co, lo, go ].forEach((r => {
145
+ customElements.get(o(r.is)) || customElements.define(o(r.is), r, uo);
144
146
  }));
145
147
  };
146
148
 
@@ -94,9 +94,9 @@ function waitForNextPaint() {
94
94
  return new Promise((e => nextPaint(e)));
95
95
  }
96
96
 
97
- function loc(e, n) {
98
- var o, i, t;
99
- return e ? !0 === (null === (o = window.Tecton) || void 0 === o ? void 0 : o.noStrings) ? e : null !== (t = null === (i = null === window || void 0 === window ? void 0 : window.TectonElements) || void 0 === i ? void 0 : i.loc(e, n)) && void 0 !== t ? t : e : "";
97
+ function loc(e, n, o) {
98
+ var i, t, a;
99
+ return e ? !0 === (null === (i = window.Tecton) || void 0 === i ? void 0 : i.noStrings) ? e : null !== (a = null === (t = null === window || void 0 === window ? void 0 : window.TectonElements) || void 0 === t ? void 0 : t.loc(e, n, o)) && void 0 !== a ? a : e : "";
100
100
  }
101
101
 
102
102
  /**