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
@@ -1,6 +1,7 @@
1
1
  import { h, Fragment, } from "@stencil/core";
2
2
  import { loc, overrideFocus, isEventFromElement, createGuid } from "../../utils/index";
3
3
  import mirrorEmit from "../../utils/mirror-emit";
4
+ import sanitizeHTMLString from "../../utils/sanitize-html-string";
4
5
  /**
5
6
  * @name Vertical Stepper
6
7
  * @category Display
@@ -38,6 +39,18 @@ export class Q2StepperVertical {
38
39
  this.buildPaneList();
39
40
  });
40
41
  };
42
+ this.extractDetails = (pane) => {
43
+ const { status, disabled } = pane;
44
+ if (!pane.id)
45
+ pane.id = `step-${createGuid()}`;
46
+ return {
47
+ id: pane.id,
48
+ label: this.getPaneSlotOrProperty(pane, 'label'),
49
+ description: this.getPaneSlotOrProperty(pane, 'description'),
50
+ status,
51
+ disabled,
52
+ };
53
+ };
41
54
  this.onStepClick = (event, stepId) => {
42
55
  event.stopPropagation();
43
56
  const { currentStepId } = this;
@@ -155,18 +168,6 @@ export class Q2StepperVertical {
155
168
  get allRootPanes() {
156
169
  return Array.from(this.hostElement.querySelectorAll(':scope > q2-stepper-pane'));
157
170
  }
158
- extractDetails(pane) {
159
- const { label, description, status, disabled } = pane;
160
- if (!pane.id)
161
- pane.id = `step-${createGuid()}`;
162
- return {
163
- id: pane.id,
164
- label,
165
- description,
166
- status,
167
- disabled,
168
- };
169
- }
170
171
  focusStepBtn(stepId, forceFocus) {
171
172
  const stepBtn = this.hostElement.shadowRoot.querySelector(`button[id="${stepId}"]`);
172
173
  const isComponentActive = document.activeElement === this.hostElement;
@@ -176,6 +177,11 @@ export class Q2StepperVertical {
176
177
  stepBtn.focus();
177
178
  }
178
179
  }
180
+ getPaneSlotOrProperty(pane, slotName) {
181
+ var _a;
182
+ const slot = Array.from(pane.children).find(child => child.getAttribute('slot') === slotName);
183
+ return (_a = slot === null || slot === void 0 ? void 0 : slot.outerHTML) !== null && _a !== void 0 ? _a : (pane[slotName] ? loc(pane[slotName]) : undefined);
184
+ }
179
185
  getStepId(currentStepId, goTo) {
180
186
  const allEnabledStepBtns = Array.from(this.hostElement.shadowRoot.querySelectorAll('ul:not([aria-hidden="true"]) > li > button:not([aria-disabled="true"])'));
181
187
  const currentStepIndex = allEnabledStepBtns.findIndex(btn => btn.getAttribute('id') === currentStepId);
@@ -261,7 +267,7 @@ export class Q2StepperVertical {
261
267
  stepClasses.push(`status-${status}`);
262
268
  if (isPaneDisabled)
263
269
  stepClasses.push('pane-disabled');
264
- return (h("li", { role: "presentation" }, h("button", { class: stepClasses.join(' '), type: "button", "aria-labelledby": labelId, "aria-label": btnLabel, "aria-selected": `${isCurrentStep}`, id: id, "aria-disabled": isLocked ? 'true' : null, role: "tab", tabIndex: isCurrentStep ? 0 : -1, onKeyDown: ev => !isLocked && this.onStepKeyDown(ev, id), onClick: ev => !isPaneDisabled && !isLocked && this.onStepClick(ev, id) }, statusIcon && (h("div", { class: "step-child-icon" }, h("q2-icon", { type: statusIcon }))), label && (h("div", { class: "step-child-label", id: labelId }, loc(label))))));
270
+ return (h("li", { role: "presentation" }, h("button", { class: stepClasses.join(' '), type: "button", "aria-labelledby": labelId, "aria-label": btnLabel, "aria-selected": `${isCurrentStep}`, id: id, "aria-disabled": isLocked ? 'true' : null, role: "tab", tabIndex: isCurrentStep ? 0 : -1, onKeyDown: ev => !isLocked && this.onStepKeyDown(ev, id), onClick: ev => !isPaneDisabled && !isLocked && this.onStepClick(ev, id) }, statusIcon && (h("div", { class: "step-child-icon" }, h("q2-icon", { type: statusIcon }))), label && (h("div", { class: "step-child-label", id: labelId, innerHTML: sanitizeHTMLString(label) })))));
265
271
  }
266
272
  renderSpacer(pane, stepLabel, isExpanded, isLastStep) {
267
273
  const shouldRender = (isLastStep && !!pane.children.length) || !isLastStep;
@@ -278,7 +284,7 @@ export class Q2StepperVertical {
278
284
  const isCurrentStep = id === currentStepId;
279
285
  const labelId = label && `label-${id}`;
280
286
  const isLocked = status === 'locked';
281
- const stepLabel = label && loc(label);
287
+ const stepLabel = label;
282
288
  const descriptionId = label && description && `description-${id}`;
283
289
  const btnLabel = !label && loc('tecton.element.advancedStepper.number', [`${stepNumber}`, `${structuredPanes.length}`]);
284
290
  let statusIcon;
@@ -293,10 +299,10 @@ export class Q2StepperVertical {
293
299
  stepClasses.push('pane-disabled');
294
300
  const childIds = pane.children.map(child => child.id);
295
301
  const isExpanded = isCurrentStep || childIds.includes(currentStepId);
296
- return (h("li", { role: "presentation" }, h("button", { class: stepClasses.join(' '), type: "button", "aria-labelledby": labelId, "aria-describedBy": descriptionId, "aria-label": btnLabel, "aria-selected": `${isCurrentStep}`, "aria-expanded": !!pane.children.length ? `${isExpanded}` : null, id: id, "aria-disabled": isLocked ? 'true' : null, role: "tab", tabIndex: isCurrentStep ? 0 : -1, onKeyDown: ev => !isLocked && this.onStepKeyDown(ev, id), onClick: ev => !isPaneDisabled && !isLocked && this.onStepClick(ev, id) }, statusIcon ? (h("div", { class: "step-icon" }, h("q2-icon", { type: statusIcon }))) : (h("div", { class: "step-bubble" }, stepNumber)), label && (h("div", null, h("div", { class: "step-label", id: labelId }, stepLabel), description && (h("div", { class: "step-description", id: descriptionId }, loc(description)))))), this.renderSpacer(pane, stepLabel, isExpanded, isLastStep)));
302
+ return (h("li", { role: "presentation" }, h("button", { class: stepClasses.join(' '), type: "button", "aria-labelledby": labelId, "aria-describedBy": descriptionId, "aria-label": btnLabel, "aria-selected": `${isCurrentStep}`, "aria-expanded": !!pane.children.length ? `${isExpanded}` : null, id: id, "aria-disabled": isLocked ? 'true' : null, role: "tab", tabIndex: isCurrentStep ? 0 : -1, onKeyDown: ev => !isLocked && this.onStepKeyDown(ev, id), onClick: ev => !isPaneDisabled && !isLocked && this.onStepClick(ev, id) }, statusIcon ? (h("div", { class: "step-icon" }, h("q2-icon", { type: statusIcon }))) : (h("div", { class: "step-bubble" }, stepNumber)), label && (h("div", null, h("div", { class: "step-label", id: labelId, innerHTML: sanitizeHTMLString(stepLabel) }), description && (h("div", { class: "step-description", id: descriptionId, innerHTML: sanitizeHTMLString(description) }))))), this.renderSpacer(pane, stepLabel, isExpanded, isLastStep)));
297
303
  }
298
304
  render() {
299
- return (h(Fragment, { key: 'f0e7532121d04664984f5a8c20c1dbd777e8df32' }, h("ul", { key: '3b30070fb196c16f3194199903799d4c1ee7e042', role: "tablist" }, this.structuredPanes.map((pane, index) => this.renderStepBtn(pane, index))), h("div", { key: '453722ec203014925b5bf3a879e72947e114b5fb', role: "list" }, h("slot", { key: '6f1ae5614bcddacf4ecb6819370ac8c417e99228' }))));
305
+ return (h(Fragment, { key: '2771f649f3e5e8a37657d43678d83c67204ec466' }, h("ul", { key: 'f0909b76f95f6c3684a2cffa069d530be3d951ce', role: "tablist" }, this.structuredPanes.map((pane, index) => this.renderStepBtn(pane, index))), h("div", { key: '747eedecf0c9774439eb6ccf60528a521eb78685', role: "list" }, h("slot", { key: 'db02fc51b4811f510761365667516ce985c212d8' }))));
300
306
  }
301
307
  static get is() { return "q2-stepper-vertical"; }
302
308
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,348 @@
1
+ /**
2
+ * @prop --tct-surface-background-default: (<color>) Background color when background="default". Defaults to --t-base.
3
+ * @prop --tct-surface-background-primary: (<color>) Background color when background="primary". Defaults to --t-primary.
4
+ * @prop --tct-surface-background-secondary: (<color>) Background color when background="secondary". Defaults to --t-secondary.
5
+ * @prop --tct-surface-background-tertiary: (<color>) Background color when background="tertiary". Defaults to --t-tertiary.
6
+ * @prop --tct-surface-hover-background: (<color>) Hover background when clickable and no background is set. Defaults to --t-base-hover.
7
+ * @prop --tct-surface-primary-hover-background: (<color>) Hover background when clickable and background="primary". Defaults to --t-primary-l2.
8
+ * @prop --tct-surface-secondary-hover-background: (<color>) Hover background when clickable and background="secondary". Defaults to --t-secondary-l2.
9
+ * @prop --tct-surface-tertiary-hover-background: (<color>) Hover background when clickable and background="tertiary". Defaults to --t-tertiary-l2.
10
+ * @prop --tct-surface-primary-font-color: (<color>) Text color when background="primary". Defaults to --t-primary-text.
11
+ * @prop --tct-surface-secondary-font-color: (<color>) Text color when background="secondary". Defaults to --t-secondary-text.
12
+ * @prop --tct-surface-tertiary-font-color: (<color>) Text color when background="tertiary". Defaults to --t-tertiary-text.
13
+ * @prop --tct-surface-border-color: (<color>) Border color when border="default". Defaults to --t-gray-12.
14
+ * @prop --tct-surface-primary-border-color: (<color>) Border color when border="primary". Defaults to --t-primary.
15
+ * @prop --tct-surface-secondary-border-color: (<color>) Border color when border="secondary" . Defaults to --t-secondary.
16
+ * @prop --tct-surface-tertiary-border-color: (<color>) Border color when border="tertiary". Defaults to --t-tertiary.
17
+ * @prop --tct-surface-border-radius-1: (<length>) Corner radius at radius=1. Defaults to --app-border-radius-1 (4px).
18
+ * @prop --tct-surface-border-radius-2: (<length>) Corner radius at radius=2. Defaults to --app-border-radius-2 (8px).
19
+ * @prop --tct-surface-border-radius-3: (<length>) Corner radius at radius=3. Defaults to --app-border-radius-3 (12px).
20
+ * @prop --tct-surface-border-radius-4: (<length>) Corner radius at radius=4. Defaults to --app-border-radius-4 (16px).
21
+ * @prop --tct-surface-border-radius-5: (<length>) Corner radius at radius=5. Defaults to --app-border-radius-5 (24px).
22
+ * @prop --tct-surface-elevation-1-box-shadow: (*) Box shadow at elevation=1.
23
+ * @prop --tct-surface-elevation-2-box-shadow: (*) Box shadow at elevation=2.
24
+ * @prop --tct-surface-elevation-3-box-shadow: (*) Box shadow at elevation=3.
25
+ * @prop --tct-surface-elevation-4-box-shadow: (*) Box shadow at elevation=4.
26
+ * @prop --tct-surface-elevation-5-box-shadow: (*) Box shadow at elevation=5.
27
+ * @prop --tct-surface-elevation-hover-0-box-shadow: (*) Hover box shadow when clickable and elevation=0 or unset.
28
+ * @prop --tct-surface-elevation-hover-1-box-shadow: (*) Hover box shadow when clickable and elevation=1.
29
+ * @prop --tct-surface-elevation-hover-2-box-shadow: (*) Hover box shadow when clickable and elevation=2.
30
+ * @prop --tct-surface-elevation-hover-3-box-shadow: (*) Hover box shadow when clickable and elevation=3.
31
+ * @prop --tct-surface-elevation-hover-4-box-shadow: (*) Hover box shadow when clickable and elevation=4.
32
+ * @prop --tct-surface-elevation-hover-5-box-shadow: (*) Hover box shadow when clickable and elevation=5.
33
+ * @prop --tct-surface-inset-compact: (<length>) Padding when inset="compact". Defaults to --app-scale-1x (5px).
34
+ * @prop --tct-surface-inset-normal: (<length>) Padding when inset="normal". Defaults to --app-scale-3x (15px).
35
+ * @prop --tct-surface-inset-comfortable: (<length>) Padding when inset="comfortable". Defaults to --app-scale-5x (25px).
36
+ * @prop --tct-surface-background-gradient-direction: (<angle> | <side-or-corner>) Gradient direction for background-gradient. Defaults to "to right bottom".
37
+ * @prop --tct-surface-border-gradient-direction: (<angle> | <side-or-corner>) Gradient direction for border-gradient, overrides --tct-surface-background-gradient-direction. Defaults to "to right bottom".
38
+ * @prop --tct-surface-focus-visible-box-shadow: (*) Focus ring box-shadow when clickable.
39
+ * @prop --tct-surface-tween: (<time> <easing>) Transition timing for all animated properties.
40
+ * @prop --tct-surface-animation-duration: (<time>) Duration of animate() animations. Defaults to 1s.
41
+ */
42
+ :host {
43
+ --comp-surface-bg: transparent;
44
+ --comp-surface-hover-background: var(--tct-surface-hover-background, var(--t-base-hover, #f2f2f2));
45
+ --comp-surface-border-color: var(--tct-surface-border-color, var(--t-gray-12, #d9d9d9));
46
+ --comp-surface-animation-duration: var(--tct-surface-animation-duration, 1s);
47
+ --comp-surface-gradient-direction: var(--tct-surface-background-gradient-direction, to right bottom);
48
+ --comp-surface-radius: 0px;
49
+ }
50
+
51
+ * {
52
+ box-sizing: border-box;
53
+ }
54
+ *:active {
55
+ outline: none;
56
+ }
57
+ *:focus-visible {
58
+ outline: none;
59
+ }
60
+
61
+ ::-moz-focus-inner {
62
+ border: none;
63
+ }
64
+
65
+ :host {
66
+ display: block;
67
+ transition: box-shadow var(--tct-surface-tween, var(--app-tween-1, 0.2s ease)), border-radius var(--tct-surface-tween, var(--app-tween-1, 0.2s ease)), background var(--tct-surface-tween, var(--app-tween-1, 0.2s ease)), padding var(--tct-surface-tween, var(--app-tween-1, 0.2s ease));
68
+ }
69
+
70
+ .container {
71
+ display: block;
72
+ background: transparent;
73
+ border-radius: var(--comp-surface-radius);
74
+ transition: background var(--tct-surface-tween, var(--app-tween-1, 0.2s ease)), border-radius var(--tct-surface-tween, var(--app-tween-1, 0.2s ease)), box-shadow var(--tct-surface-tween, var(--app-tween-1, 0.2s ease));
75
+ }
76
+
77
+ :host([elevation="1"]) {
78
+ box-shadow: var(--tct-surface-elevation-1-box-shadow, var(--app-shadow-1, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)));
79
+ }
80
+
81
+ :host([elevation="2"]) {
82
+ box-shadow: var(--tct-surface-elevation-2-box-shadow, var(--app-shadow-2, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 4px 8px rgba(0, 0, 0, 0.14)));
83
+ }
84
+
85
+ :host([elevation="3"]) {
86
+ box-shadow: var(--tct-surface-elevation-3-box-shadow, var(--app-shadow-3, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 8px 16px rgba(0, 0, 0, 0.14)));
87
+ }
88
+
89
+ :host([elevation="4"]) {
90
+ box-shadow: var(--tct-surface-elevation-4-box-shadow, var(--app-shadow-4, 0px 0px 8px rgba(0, 0, 0, 0.12), 0px 14px 28px rgba(0, 0, 0, 0.14)));
91
+ }
92
+
93
+ :host([elevation="5"]) {
94
+ box-shadow: var(--tct-surface-elevation-5-box-shadow, var(--app-shadow-5, 0px 0px 8px rgba(0, 0, 0, 0.12), 0px 32px 64px rgba(0, 0, 0, 0.14)));
95
+ }
96
+
97
+ :host([radius="1"]) {
98
+ --comp-surface-radius: var(--tct-surface-border-radius-1, var(--app-border-radius-1, 4px));
99
+ border-radius: var(--comp-surface-radius);
100
+ }
101
+
102
+ :host([radius="2"]) {
103
+ --comp-surface-radius: var(--tct-surface-border-radius-2, var(--app-border-radius-2, 8px));
104
+ border-radius: var(--comp-surface-radius);
105
+ }
106
+
107
+ :host([radius="3"]) {
108
+ --comp-surface-radius: var(--tct-surface-border-radius-3, var(--app-border-radius-3, 12px));
109
+ border-radius: var(--comp-surface-radius);
110
+ }
111
+
112
+ :host([radius="4"]) {
113
+ --comp-surface-radius: var(--tct-surface-border-radius-4, var(--app-border-radius-4, 16px));
114
+ border-radius: var(--comp-surface-radius);
115
+ }
116
+
117
+ :host([radius="5"]) {
118
+ --comp-surface-radius: var(--tct-surface-border-radius-5, var(--app-border-radius-5, 24px));
119
+ border-radius: var(--comp-surface-radius);
120
+ }
121
+
122
+ :host([background=default]) {
123
+ --comp-surface-bg: var(--tct-surface-background-default, var(--t-base, #ffffff));
124
+ --comp-surface-hover-background: var(--tct-surface-hover-background, var(--t-base-hover, #f2f2f2));
125
+ }
126
+
127
+ :host([background=primary]) {
128
+ --comp-surface-bg: var(--tct-surface-background-primary, var(--t-primary, #6a4a9e));
129
+ --comp-surface-hover-background: var(--tct-surface-primary-hover-background, var(--t-primary-l2, #7d5ab8));
130
+ color: var(--tct-surface-primary-font-color, var(--t-primary-text, #ffffff));
131
+ }
132
+
133
+ :host([background=secondary]) {
134
+ --comp-surface-bg: var(--tct-surface-background-secondary, var(--t-secondary, #b3c2cc));
135
+ --comp-surface-hover-background: var(--tct-surface-secondary-hover-background, var(--t-secondary-l2, #c2cfd8));
136
+ color: var(--tct-surface-secondary-font-color, var(--t-secondary-text, #1a1a1a));
137
+ }
138
+
139
+ :host([background=tertiary]) {
140
+ --comp-surface-bg: var(--tct-surface-background-tertiary, var(--t-tertiary, #e8f5fc));
141
+ --comp-surface-hover-background: var(--tct-surface-tertiary-hover-background, var(--t-tertiary-l2, #edf7fd));
142
+ color: var(--tct-surface-tertiary-font-color, var(--t-tertiary-text, #1a1a1a));
143
+ }
144
+
145
+ :host([background]) .container {
146
+ background: var(--comp-surface-bg);
147
+ }
148
+
149
+ :host([background-gradient]) .container {
150
+ background: linear-gradient(in oklch var(--comp-surface-gradient-direction), color-mix(in oklab, var(--comp-surface-bg), white 40%), var(--comp-surface-bg));
151
+ }
152
+
153
+ :host([border]) .container {
154
+ border: 1px solid var(--comp-surface-border-color);
155
+ }
156
+
157
+ :host([border=primary]) .container {
158
+ border-color: var(--tct-surface-primary-border-color, var(--t-primary, #6a4a9e));
159
+ }
160
+
161
+ :host([border=secondary]) .container {
162
+ border-color: var(--tct-surface-secondary-border-color, var(--t-secondary, #b3c2cc));
163
+ }
164
+
165
+ :host([border=tertiary]) .container {
166
+ border-color: var(--tct-surface-tertiary-border-color, var(--t-tertiary, #e8f5fc));
167
+ }
168
+
169
+ :host([border-gradient]) {
170
+ padding: 2px;
171
+ }
172
+ :host([border-gradient]) .container {
173
+ border-radius: calc(var(--comp-surface-radius) - 2px);
174
+ }
175
+ :host([border-gradient])[border] .container {
176
+ border: none;
177
+ }
178
+
179
+ :host([border-gradient]:not([background])) {
180
+ --comp-surface-bg: var(--tct-surface-background-default, var(--t-base, #ffffff));
181
+ }
182
+ :host([border-gradient]:not([background])) .container {
183
+ background: var(--comp-surface-bg);
184
+ }
185
+
186
+ :host([border-gradient]:not([border])),
187
+ :host([border-gradient][border=default]) {
188
+ background: linear-gradient(in oklch var(--tct-surface-border-gradient-direction, var(--tct-surface-background-gradient-direction, to right bottom)), color-mix(in oklab, var(--tct-surface-border-color, var(--t-gray-12, #d9d9d9)), white 40%), var(--tct-surface-border-color, var(--t-gray-12, #d9d9d9)));
189
+ }
190
+
191
+ :host([border-gradient][border=primary]) {
192
+ background: linear-gradient(in oklch var(--tct-surface-border-gradient-direction, var(--tct-surface-background-gradient-direction, to right bottom)), color-mix(in oklab, var(--tct-surface-primary-border-color, var(--t-primary, #6a4a9e)), white 40%), var(--tct-surface-primary-border-color, var(--t-primary, #6a4a9e)));
193
+ }
194
+
195
+ :host([border-gradient][border=secondary]) {
196
+ background: linear-gradient(in oklch var(--tct-surface-border-gradient-direction, var(--tct-surface-background-gradient-direction, to right bottom)), color-mix(in oklab, var(--tct-surface-secondary-border-color, var(--t-secondary, #b3c2cc)), white 40%), var(--tct-surface-secondary-border-color, var(--t-secondary, #b3c2cc)));
197
+ }
198
+
199
+ :host([border-gradient][border=tertiary]) {
200
+ background: linear-gradient(in oklch var(--tct-surface-border-gradient-direction, var(--tct-surface-background-gradient-direction, to right bottom)), color-mix(in oklab, var(--tct-surface-tertiary-border-color, var(--t-tertiary, #e8f5fc)), white 40%), var(--tct-surface-tertiary-border-color, var(--t-tertiary, #e8f5fc)));
201
+ }
202
+
203
+ :host([inset=compact]) .container {
204
+ padding: var(--tct-surface-inset-compact, var(--app-scale-1x, 5px));
205
+ }
206
+
207
+ :host([inset=normal]) .container {
208
+ padding: var(--tct-surface-inset-normal, var(--app-scale-3x, 15px));
209
+ }
210
+
211
+ :host([inset=comfortable]) .container {
212
+ padding: var(--tct-surface-inset-comfortable, var(--app-scale-5x, 25px));
213
+ }
214
+
215
+ :host([inset-x=none]) .container {
216
+ padding-inline: 0;
217
+ }
218
+
219
+ :host([inset-x=compact]) .container {
220
+ padding-inline: var(--tct-surface-inset-compact, var(--app-scale-1x, 5px));
221
+ }
222
+
223
+ :host([inset-x=normal]) .container {
224
+ padding-inline: var(--tct-surface-inset-normal, var(--app-scale-3x, 15px));
225
+ }
226
+
227
+ :host([inset-x=comfortable]) .container {
228
+ padding-inline: var(--tct-surface-inset-comfortable, var(--app-scale-5x, 25px));
229
+ }
230
+
231
+ :host([inset-y=none]) .container {
232
+ padding-block: 0;
233
+ }
234
+
235
+ :host([inset-y=compact]) .container {
236
+ padding-block: var(--tct-surface-inset-compact, var(--app-scale-1x, 5px));
237
+ }
238
+
239
+ :host([inset-y=normal]) .container {
240
+ padding-block: var(--tct-surface-inset-normal, var(--app-scale-3x, 15px));
241
+ }
242
+
243
+ :host([inset-y=comfortable]) .container {
244
+ padding-block: var(--tct-surface-inset-comfortable, var(--app-scale-5x, 25px));
245
+ }
246
+
247
+ :host([clickable]) {
248
+ cursor: pointer;
249
+ }
250
+ :host([clickable]):hover .container {
251
+ background: var(--comp-surface-hover-background);
252
+ }
253
+ :host([clickable])[elevation="0"]:hover .container, :host([clickable]):not([elevation]):hover .container {
254
+ box-shadow: var(--tct-surface-elevation-hover-0-box-shadow, var(--app-shadow-1, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)));
255
+ }
256
+ :host([clickable])[elevation="1"]:hover .container {
257
+ box-shadow: var(--tct-surface-elevation-hover-1-box-shadow, var(--app-shadow-2, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 4px 8px rgba(0, 0, 0, 0.14)));
258
+ }
259
+ :host([clickable])[elevation="2"]:hover .container {
260
+ box-shadow: var(--tct-surface-elevation-hover-2-box-shadow, var(--app-shadow-3, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 8px 16px rgba(0, 0, 0, 0.14)));
261
+ }
262
+ :host([clickable])[elevation="3"]:hover .container {
263
+ box-shadow: var(--tct-surface-elevation-hover-3-box-shadow, var(--app-shadow-4, 0px 0px 8px rgba(0, 0, 0, 0.12), 0px 14px 28px rgba(0, 0, 0, 0.14)));
264
+ }
265
+ :host([clickable])[elevation="4"]:hover .container {
266
+ box-shadow: var(--tct-surface-elevation-hover-4-box-shadow, var(--app-shadow-5, 0px 0px 8px rgba(0, 0, 0, 0.12), 0px 32px 64px rgba(0, 0, 0, 0.14)));
267
+ }
268
+ :host([clickable])[elevation="5"]:hover .container {
269
+ box-shadow: var(--tct-surface-elevation-hover-5-box-shadow, var(--app-shadow-5, 0px 0px 8px rgba(0, 0, 0, 0.12), 0px 32px 64px rgba(0, 0, 0, 0.14)));
270
+ }
271
+ :host([clickable]) .container:focus-visible {
272
+ outline: none;
273
+ box-shadow: var(--tct-surface-focus-visible-box-shadow, var(--const-double-focus-ring, 0 0 0 2px var(--t-base), 0 0 0 4px var(--const-focus-color), 0 0 0 6px var(--t-base)));
274
+ }
275
+
276
+ @keyframes q2-surface-bounce {
277
+ from, 20%, 53%, to {
278
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
279
+ transform: translate3d(0, 0, 0);
280
+ }
281
+ 40%, 43% {
282
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
283
+ transform: translate3d(0, -30px, 0) scaleY(1.1);
284
+ }
285
+ 70% {
286
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
287
+ transform: translate3d(0, -15px, 0) scaleY(1.05);
288
+ }
289
+ 80% {
290
+ transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
291
+ transform: translate3d(0, 0, 0) scaleY(0.95);
292
+ }
293
+ 90% {
294
+ transform: translate3d(0, -4px, 0) scaleY(1.02);
295
+ }
296
+ }
297
+ @keyframes q2-surface-flash {
298
+ from, 50%, to {
299
+ opacity: 1;
300
+ }
301
+ 25%, 75% {
302
+ opacity: 0;
303
+ }
304
+ }
305
+ @keyframes q2-surface-pulse {
306
+ from {
307
+ transform: scale3d(1, 1, 1);
308
+ }
309
+ 50% {
310
+ transform: scale3d(1.05, 1.05, 1.05);
311
+ }
312
+ to {
313
+ transform: scale3d(1, 1, 1);
314
+ }
315
+ }
316
+ @keyframes q2-surface-tada {
317
+ from {
318
+ transform: scale3d(1, 1, 1);
319
+ }
320
+ 10%, 20% {
321
+ transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -1deg);
322
+ }
323
+ 30%, 50%, 70%, 90% {
324
+ transform: scale3d(1.05, 1.05, 1.05) rotate3d(0, 0, 1, 1deg);
325
+ }
326
+ 40%, 60%, 80% {
327
+ transform: scale3d(1.05, 1.05, 1.05) rotate3d(0, 0, 1, -1deg);
328
+ }
329
+ to {
330
+ transform: scale3d(1, 1, 1);
331
+ }
332
+ }
333
+ :host(.q2-surface-animate-bounce) {
334
+ animation: q2-surface-bounce var(--comp-surface-animation-duration) both;
335
+ transform-origin: center bottom;
336
+ }
337
+
338
+ :host(.q2-surface-animate-flash) {
339
+ animation: q2-surface-flash var(--comp-surface-animation-duration) both;
340
+ }
341
+
342
+ :host(.q2-surface-animate-pulse) {
343
+ animation: q2-surface-pulse var(--comp-surface-animation-duration) both;
344
+ }
345
+
346
+ :host(.q2-surface-animate-tada) {
347
+ animation: q2-surface-tada var(--comp-surface-animation-duration) both;
348
+ }