@ionic/core 8.8.6-dev.11777490150.1970e4f2 → 8.8.6-dev.11777559143.1d1ad1ad

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 (308) hide show
  1. package/components/ion-action-sheet.js +1 -1
  2. package/components/ion-alert.js +1 -1
  3. package/components/ion-back-button.js +1 -1
  4. package/components/ion-button.js +1 -1
  5. package/components/ion-card.js +1 -1
  6. package/components/ion-chip.js +1 -1
  7. package/components/ion-col.js +1 -1
  8. package/components/ion-datetime-button.js +1 -1
  9. package/components/ion-datetime.js +1 -1
  10. package/components/ion-fab-button.js +1 -1
  11. package/components/ion-grid.js +1 -1
  12. package/components/ion-header.js +1 -1
  13. package/components/ion-img.js +1 -1
  14. package/components/ion-infinite-scroll-content.js +1 -1
  15. package/components/ion-infinite-scroll.js +1 -1
  16. package/components/ion-input-otp.js +1 -1
  17. package/components/ion-input-password-toggle.js +1 -1
  18. package/components/ion-input.js +1 -1
  19. package/components/ion-item-divider.js +1 -1
  20. package/components/ion-item-group.js +1 -1
  21. package/components/ion-item-option.js +1 -1
  22. package/components/ion-item-options.js +1 -1
  23. package/components/ion-item-sliding.js +1 -1
  24. package/components/ion-item.js +1 -1
  25. package/components/ion-label.js +1 -1
  26. package/components/ion-list-header.js +1 -1
  27. package/components/ion-list.js +1 -1
  28. package/components/ion-loading.js +1 -1
  29. package/components/ion-menu-button.js +1 -1
  30. package/components/ion-menu-toggle.js +1 -1
  31. package/components/ion-menu.js +1 -1
  32. package/components/ion-modal.js +1 -1
  33. package/components/ion-nav-link.js +1 -1
  34. package/components/ion-nav.js +1 -1
  35. package/components/ion-note.js +1 -1
  36. package/components/ion-picker-column-option.js +1 -1
  37. package/components/ion-picker-legacy-column.js +1 -1
  38. package/components/ion-picker-legacy.js +1 -1
  39. package/components/ion-popover.js +1 -1
  40. package/components/ion-progress-bar.js +1 -1
  41. package/components/ion-radio-group.js +1 -1
  42. package/components/ion-radio.js +1 -1
  43. package/components/ion-range.js +1 -1
  44. package/components/ion-refresher-content.js +1 -1
  45. package/components/ion-refresher.js +1 -1
  46. package/components/ion-reorder-group.js +1 -1
  47. package/components/ion-reorder.js +1 -1
  48. package/components/ion-ripple-effect.js +1 -1
  49. package/components/ion-router-link.js +1 -1
  50. package/components/ion-router-outlet.js +1 -1
  51. package/components/ion-row.js +1 -1
  52. package/components/ion-searchbar.js +1 -1
  53. package/components/ion-segment-button.js +1 -1
  54. package/components/ion-segment-content.js +1 -1
  55. package/components/ion-segment-view.js +1 -1
  56. package/components/ion-segment.js +1 -1
  57. package/components/ion-select-modal.js +1 -1
  58. package/components/ion-select-option.js +1 -1
  59. package/components/ion-select-popover.js +1 -1
  60. package/components/ion-select.js +1 -1
  61. package/components/ion-skeleton-text.js +1 -1
  62. package/components/ion-spinner.js +1 -1
  63. package/components/ion-split-pane.js +1 -1
  64. package/components/ion-tab-bar.js +1 -1
  65. package/components/ion-tab-button.js +1 -1
  66. package/components/ion-tab.js +1 -1
  67. package/components/ion-tabs.js +1 -1
  68. package/components/ion-text.js +1 -1
  69. package/components/ion-textarea.js +1 -1
  70. package/components/ion-thumbnail.js +1 -1
  71. package/components/ion-title.js +1 -1
  72. package/components/ion-toast.js +1 -1
  73. package/components/ion-toggle.js +1 -1
  74. package/components/ion-toolbar.js +1 -1
  75. package/components/{p-Di5rHO3q.js → p-BTYqyHph.js} +1 -1
  76. package/components/{p-BqImG3uk.js → p-BU8N7ZrK.js} +1 -1
  77. package/components/{p-BXcCGjEc.js → p-BfHB6wX_.js} +1 -1
  78. package/components/{p-CIoAIKEr.js → p-BhfW3d9j.js} +1 -1
  79. package/components/{p-B71c6yUH.js → p-Brxa0j7O.js} +1 -1
  80. package/components/{p-IMXp2Inn.js → p-BtAlyZ0b.js} +1 -1
  81. package/components/{p-BCFZKMI6.js → p-ByuCfbYy.js} +1 -1
  82. package/components/{p-DXUyXgVL.js → p-C-_EGKki.js} +1 -1
  83. package/components/{p-BFbsici0.js → p-C2cZvGcF.js} +1 -1
  84. package/components/{p-DTtRWhIZ.js → p-CdYTq34D.js} +1 -1
  85. package/components/{p-DH_9VCbD.js → p-CeYwuysM.js} +1 -1
  86. package/components/p-CnOTQxHB.js +4 -0
  87. package/components/{p-CoFqDNc5.js → p-CnwZE7CW.js} +1 -1
  88. package/components/{p-BLCuPAtN.js → p-CoarhFWH.js} +1 -1
  89. package/components/{p-C8ktKu9j.js → p-D5lMX0xt.js} +1 -1
  90. package/components/{p-TR4ubkPu.js → p-DAeMHNER.js} +1 -1
  91. package/components/{p-BRWWcnBq.js → p-GnGGIfCd.js} +1 -1
  92. package/components/{p-DAv9P_LE.js → p-TpZHKDyk.js} +1 -1
  93. package/components/p-XFUFdPrc.js +4 -0
  94. package/components/p-tYh73xQe.js +4 -0
  95. package/dist/cjs/ion-app_8.cjs.entry.js +7 -7
  96. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  97. package/dist/cjs/ion-col_3.cjs.entry.js +6 -8
  98. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
  99. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  100. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  101. package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
  102. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  103. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  104. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  105. package/dist/cjs/ion-item_8.cjs.entry.js +12 -12
  106. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  107. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  108. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  109. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  110. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  111. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  112. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  113. package/dist/cjs/ion-radio_2.cjs.entry.js +5 -5
  114. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  115. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  116. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  117. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  118. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  119. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  120. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  121. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  122. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  123. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  124. package/dist/cjs/ion-select_3.cjs.entry.js +6 -6
  125. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  126. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -3
  127. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  128. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  129. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  130. package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
  131. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  132. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  133. package/dist/cjs/ionic.cjs.js +1 -1
  134. package/dist/cjs/loader.cjs.js +1 -1
  135. package/dist/collection/collection-manifest.json +0 -6
  136. package/dist/collection/components/col/col.js +2 -3
  137. package/dist/collection/components/grid/grid.js +2 -2
  138. package/dist/collection/components/header/header.js +2 -2
  139. package/dist/collection/components/img/img.js +2 -2
  140. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  141. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  142. package/dist/collection/components/input/input.js +4 -4
  143. package/dist/collection/components/input-otp/input-otp.js +3 -3
  144. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  145. package/dist/collection/components/item-divider/item-divider.js +2 -2
  146. package/dist/collection/components/item-group/item-group.js +1 -1
  147. package/dist/collection/components/item-option/item-option.js +2 -2
  148. package/dist/collection/components/item-options/item-options.js +1 -1
  149. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  150. package/dist/collection/components/item-sliding/test/test.utils.js +13 -0
  151. package/dist/collection/components/label/label.js +2 -2
  152. package/dist/collection/components/list/list.js +1 -1
  153. package/dist/collection/components/list-header/list-header.js +2 -2
  154. package/dist/collection/components/loading/loading.js +2 -2
  155. package/dist/collection/components/menu/menu.js +2 -2
  156. package/dist/collection/components/menu-button/menu-button.js +2 -2
  157. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  158. package/dist/collection/components/modal/modal.js +4 -4
  159. package/dist/collection/components/nav/nav.js +1 -1
  160. package/dist/collection/components/nav-link/nav-link.js +1 -1
  161. package/dist/collection/components/note/note.js +2 -2
  162. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  163. package/dist/collection/components/picker-legacy/picker.js +2 -2
  164. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  165. package/dist/collection/components/popover/popover.js +2 -2
  166. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  167. package/dist/collection/components/radio/radio.js +3 -3
  168. package/dist/collection/components/radio-group/radio-group.js +2 -2
  169. package/dist/collection/components/range/range.js +3 -3
  170. package/dist/collection/components/refresher/refresher.js +1 -1
  171. package/dist/collection/components/refresher-content/refresher-content.js +2 -2
  172. package/dist/collection/components/reorder/reorder.js +2 -2
  173. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  174. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  175. package/dist/collection/components/router-link/router-link.js +2 -2
  176. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  177. package/dist/collection/components/row/row.js +2 -2
  178. package/dist/collection/components/searchbar/searchbar.js +4 -4
  179. package/dist/collection/components/segment/segment.js +2 -2
  180. package/dist/collection/components/segment-button/segment-button.js +2 -2
  181. package/dist/collection/components/segment-content/segment-content.js +1 -1
  182. package/dist/collection/components/segment-view/segment-view.js +2 -2
  183. package/dist/collection/components/select/select.js +3 -3
  184. package/dist/collection/components/select-modal/select-modal.js +1 -1
  185. package/dist/collection/components/select-option/select-option.js +1 -1
  186. package/dist/collection/components/select-popover/select-popover.js +2 -2
  187. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  188. package/dist/collection/components/spinner/spinner.js +1 -1
  189. package/dist/collection/components/split-pane/split-pane.js +2 -3
  190. package/dist/collection/components/tab/tab.js +2 -2
  191. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  192. package/dist/collection/components/tab-button/tab-button.js +2 -2
  193. package/dist/collection/components/tabs/tabs.js +1 -1
  194. package/dist/collection/components/text/text.js +2 -2
  195. package/dist/collection/components/textarea/textarea.js +3 -3
  196. package/dist/collection/components/thumbnail/thumbnail.js +2 -2
  197. package/dist/collection/components/title/title.js +2 -2
  198. package/dist/collection/components/toast/toast.js +2 -2
  199. package/dist/collection/components/toggle/toggle.js +3 -3
  200. package/dist/collection/components/toolbar/toolbar.js +2 -2
  201. package/dist/collection/utils/media.js +0 -1
  202. package/dist/collection/utils/test/playwright/drag-element.js +29 -5
  203. package/dist/docs.json +1 -212
  204. package/dist/esm/ion-app_8.entry.js +7 -7
  205. package/dist/esm/ion-avatar_3.entry.js +2 -2
  206. package/dist/esm/ion-col_3.entry.js +6 -8
  207. package/dist/esm/ion-datetime_3.entry.js +4 -4
  208. package/dist/esm/ion-img.entry.js +2 -2
  209. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  210. package/dist/esm/ion-input-otp.entry.js +3 -3
  211. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  212. package/dist/esm/ion-input.entry.js +4 -4
  213. package/dist/esm/ion-item-option_3.entry.js +4 -4
  214. package/dist/esm/ion-item_8.entry.js +12 -12
  215. package/dist/esm/ion-loading.entry.js +2 -2
  216. package/dist/esm/ion-menu_3.entry.js +6 -6
  217. package/dist/esm/ion-modal.entry.js +4 -4
  218. package/dist/esm/ion-nav_2.entry.js +2 -2
  219. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  220. package/dist/esm/ion-popover.entry.js +2 -2
  221. package/dist/esm/ion-progress-bar.entry.js +1 -1
  222. package/dist/esm/ion-radio_2.entry.js +5 -5
  223. package/dist/esm/ion-range.entry.js +3 -3
  224. package/dist/esm/ion-refresher_2.entry.js +3 -3
  225. package/dist/esm/ion-reorder_2.entry.js +3 -3
  226. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  227. package/dist/esm/ion-route_4.entry.js +2 -2
  228. package/dist/esm/ion-searchbar.entry.js +4 -4
  229. package/dist/esm/ion-segment-content.entry.js +1 -1
  230. package/dist/esm/ion-segment-view.entry.js +2 -2
  231. package/dist/esm/ion-segment_2.entry.js +4 -4
  232. package/dist/esm/ion-select-modal.entry.js +1 -1
  233. package/dist/esm/ion-select_3.entry.js +6 -6
  234. package/dist/esm/ion-spinner.entry.js +1 -1
  235. package/dist/esm/ion-split-pane.entry.js +2 -3
  236. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  237. package/dist/esm/ion-tab_2.entry.js +3 -3
  238. package/dist/esm/ion-text.entry.js +2 -2
  239. package/dist/esm/ion-textarea.entry.js +3 -3
  240. package/dist/esm/ion-toast.entry.js +2 -2
  241. package/dist/esm/ion-toggle.entry.js +3 -3
  242. package/dist/esm/ionic.js +1 -1
  243. package/dist/esm/loader.js +1 -1
  244. package/dist/html.html-data.json +0 -70
  245. package/dist/ionic/ionic.esm.js +1 -1
  246. package/dist/ionic/{p-83c693c4.entry.js → p-091a95ea.entry.js} +1 -1
  247. package/dist/ionic/{p-e3abffbe.entry.js → p-1855fcb6.entry.js} +1 -1
  248. package/dist/ionic/{p-15e3e8f5.entry.js → p-192e7509.entry.js} +1 -1
  249. package/dist/ionic/{p-a9fb086b.entry.js → p-1faf270d.entry.js} +1 -1
  250. package/dist/ionic/{p-d6299c37.entry.js → p-228b6a9c.entry.js} +1 -1
  251. package/dist/ionic/{p-8537b2fb.entry.js → p-2aa44c65.entry.js} +1 -1
  252. package/dist/ionic/{p-1c2c1869.entry.js → p-2bf931ae.entry.js} +1 -1
  253. package/dist/ionic/{p-b3c9f19c.entry.js → p-2effd05d.entry.js} +1 -1
  254. package/dist/ionic/p-308beb71.entry.js +4 -0
  255. package/dist/ionic/{p-586d4270.entry.js → p-3093958a.entry.js} +1 -1
  256. package/dist/ionic/{p-1c4de46b.entry.js → p-3bf01c2c.entry.js} +1 -1
  257. package/dist/ionic/{p-50b61fab.entry.js → p-4091ad21.entry.js} +1 -1
  258. package/dist/ionic/{p-e18d3fdb.entry.js → p-4610e447.entry.js} +1 -1
  259. package/dist/ionic/{p-fad05840.entry.js → p-4c864eb2.entry.js} +1 -1
  260. package/dist/ionic/{p-bd71a4a7.entry.js → p-4e46439d.entry.js} +1 -1
  261. package/dist/ionic/{p-5274f999.entry.js → p-50d90690.entry.js} +1 -1
  262. package/dist/ionic/{p-3f79f594.entry.js → p-59b4f8d0.entry.js} +1 -1
  263. package/dist/ionic/{p-2f0073af.entry.js → p-5a3fc28e.entry.js} +1 -1
  264. package/dist/ionic/{p-1709b0aa.entry.js → p-5ac21be2.entry.js} +1 -1
  265. package/dist/ionic/p-64341e32.entry.js +4 -0
  266. package/dist/ionic/{p-b653f4c2.entry.js → p-6c8c37c2.entry.js} +1 -1
  267. package/dist/ionic/p-76d0e7ef.entry.js +4 -0
  268. package/dist/ionic/{p-05a30032.entry.js → p-79ae0425.entry.js} +1 -1
  269. package/dist/ionic/{p-c10fa162.entry.js → p-8180abe5.entry.js} +1 -1
  270. package/dist/ionic/{p-50cd2d57.entry.js → p-8516eb69.entry.js} +1 -1
  271. package/dist/ionic/{p-00c0bd38.entry.js → p-96549175.entry.js} +1 -1
  272. package/dist/ionic/{p-9d789053.entry.js → p-98c34fd7.entry.js} +1 -1
  273. package/dist/ionic/{p-72491468.entry.js → p-9b9b1450.entry.js} +1 -1
  274. package/dist/ionic/{p-8f127a9c.entry.js → p-a53a3ecc.entry.js} +1 -1
  275. package/dist/ionic/p-ae4ea663.entry.js +4 -0
  276. package/dist/ionic/{p-d976e777.entry.js → p-b0c54b4c.entry.js} +1 -1
  277. package/dist/ionic/{p-71b6014c.entry.js → p-b8b20b7e.entry.js} +1 -1
  278. package/dist/ionic/{p-2ad79c23.entry.js → p-bc5713f7.entry.js} +1 -1
  279. package/dist/ionic/{p-d4ed5710.entry.js → p-d954cd19.entry.js} +1 -1
  280. package/dist/ionic/{p-ae667493.entry.js → p-e7f216ae.entry.js} +1 -1
  281. package/dist/ionic/{p-b2fe6c1c.entry.js → p-edb0b0c8.entry.js} +1 -1
  282. package/dist/ionic/{p-48026d15.entry.js → p-f061fcb7.entry.js} +1 -1
  283. package/dist/ionic/{p-7d5057c4.entry.js → p-f740c359.entry.js} +1 -1
  284. package/dist/types/components/item-sliding/test/test.utils.d.ts +13 -0
  285. package/dist/types/components.d.ts +0 -66
  286. package/dist/types/utils/test/playwright/drag-element.d.ts +15 -2
  287. package/hydrate/index.js +126 -469
  288. package/hydrate/index.mjs +126 -469
  289. package/package.json +1 -1
  290. package/components/ion-gallery.d.ts +0 -11
  291. package/components/ion-gallery.js +0 -4
  292. package/components/p-B2rpt1JV.js +0 -4
  293. package/components/p-B6zr9RZN.js +0 -4
  294. package/components/p-CN-WzkJE.js +0 -4
  295. package/dist/cjs/ion-gallery.cjs.entry.js +0 -330
  296. package/dist/collection/components/gallery/gallery-interface.js +0 -1
  297. package/dist/collection/components/gallery/gallery.css +0 -38
  298. package/dist/collection/components/gallery/gallery.js +0 -421
  299. package/dist/collection/components/gallery/test/utils.js +0 -100
  300. package/dist/esm/ion-gallery.entry.js +0 -328
  301. package/dist/ionic/p-1e1c8d61.entry.js +0 -4
  302. package/dist/ionic/p-2aa7567e.entry.js +0 -4
  303. package/dist/ionic/p-4079cee3.entry.js +0 -4
  304. package/dist/ionic/p-bdfd1761.entry.js +0 -4
  305. package/dist/ionic/p-bf972309.entry.js +0 -4
  306. package/dist/types/components/gallery/gallery-interface.d.ts +0 -9
  307. package/dist/types/components/gallery/gallery.d.ts +0 -125
  308. package/dist/types/components/gallery/test/utils.d.ts +0 -2
@@ -542,8 +542,8 @@ export class Searchbar {
542
542
  const shouldShowCancelButton = this.shouldShowCancelButton();
543
543
  const shape = this.getShape();
544
544
  const size = this.getSize();
545
- const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '9b71660f86c93ab8e1c4bca45a778584b1473a48', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: theme === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '27c4121c6b49906b2a9c225bd7ba9ab2a41e4292', "aria-hidden": "true" }, theme === 'md' || theme === 'ionic' ? (h("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
546
- return (h(Host, { key: 'd5fc37533478d088fd40697b21cffc8f9c673add', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
545
+ const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: 'e9d60e9e313218ae012da0eb63dc3c08f37f6915', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: theme === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '4566b2968b5ba79369e424f1829decf7779e9be1', "aria-hidden": "true" }, theme === 'md' || theme === 'ionic' ? (h("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
546
+ return (h(Host, { key: 'e6af154631381ee0549c5d1d39577a86b8ae7b3f', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
547
547
  [theme]: true,
548
548
  'searchbar-animated': animated,
549
549
  'searchbar-disabled': this.disabled,
@@ -557,14 +557,14 @@ export class Searchbar {
557
557
  [`searchbar-shape-${shape}`]: shape !== undefined,
558
558
  [`searchbar-size-${size}`]: size !== undefined,
559
559
  'in-toolbar': hostContext('ion-toolbar', this.el),
560
- }) }, h("div", { key: 'b7e0dbfa02f9ea4db7eb01cb293d81d4a54e23d2', class: "searchbar-input-container" }, h("input", Object.assign({ key: '3b790197d1f8bad980086ebd898cb2487d56ea24', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), (theme === 'md' || theme === 'ionic') && cancelButton, this.shouldShowSearchIcon() && (h("ion-icon", { key: 'fce3e3510516d768d8b51a6334cf9d9ac934345e', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" })), this.shouldShowClearButton() && (h("button", { key: 'b47cb7c79fd07e44f2273e55782a784f6d567155', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
560
+ }) }, h("div", { key: 'cdd7674dd31f53a96517c69fc83916ceea590d6a', class: "searchbar-input-container" }, h("input", Object.assign({ key: 'b7682f425c2645b9fe33ee03d0d0adb88c5b7c7b', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), (theme === 'md' || theme === 'ionic') && cancelButton, this.shouldShowSearchIcon() && (h("ion-icon", { key: 'd8ad4196fa5921a3f444756410386b8189f4136a', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" })), this.shouldShowClearButton() && (h("button", { key: '7bad8accea54850d7cb6dbe8d5d5a404c97bab8b', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
561
561
  /**
562
562
  * This prevents mobile browsers from
563
563
  * blurring the input when the clear
564
564
  * button is activated.
565
565
  */
566
566
  ev.preventDefault();
567
- }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '6d4f026bd1fde68d43c4e49531ca7b1689590e80', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
567
+ }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: 'f60f21ce6f8c3e37d768ff0bd5c69e5797dd77fd', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
568
568
  }
569
569
  static get is() { return "ion-searchbar"; }
570
570
  static get encapsulation() { return "scoped"; }
@@ -544,14 +544,14 @@ export class Segment {
544
544
  }
545
545
  render() {
546
546
  const theme = getIonTheme(this);
547
- return (h(Host, { key: '96e641a05388cbf4477c598f9d36d0028fff8dfb', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
547
+ return (h(Host, { key: '578d4eb20a89742c8c3cb3109fe62a5fdf87b089', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
548
548
  [theme]: true,
549
549
  'in-toolbar': hostContext('ion-toolbar', this.el),
550
550
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
551
551
  'segment-activated': this.activated,
552
552
  'segment-disabled': this.disabled,
553
553
  'segment-scrollable': this.scrollable,
554
- }) }, h("slot", { key: 'c705c995b339a81e5a52da0a38d2ff429ed333a4', onSlotchange: this.onSlottedItemsChange })));
554
+ }) }, h("slot", { key: '4b9999c95622773aea0c1bf3d1ab9dc650efb5eb', onSlotchange: this.onSlottedItemsChange })));
555
555
  }
556
556
  static get is() { return "ion-segment"; }
557
557
  static get encapsulation() { return "shadow"; }
@@ -112,7 +112,7 @@ export class SegmentButton {
112
112
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
113
113
  const theme = getIonTheme(this);
114
114
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
115
- return (h(Host, { key: 'bbb2ae95aa27852c31dcc0ba3ee5acce24349752', class: {
115
+ return (h(Host, { key: '75eeffd15e3581c15f48a0b12cbf5a4229b087d6', class: {
116
116
  [theme]: true,
117
117
  'in-toolbar': hostContext('ion-toolbar', this.el),
118
118
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -128,7 +128,7 @@ export class SegmentButton {
128
128
  'ion-activatable': true,
129
129
  'ion-activatable-instant': true,
130
130
  'ion-focusable': true,
131
- } }, h("button", Object.assign({ key: '0335787c4606314d2715062b536b544cf0fb1f27', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '47d06436538ed9fc97789af76b6681674a2bd0a7', class: "button-inner" }, h("slot", { key: 'de1164da25cb74e6fa3066e43744483fc5b821fa' })), theme === 'md' && h("ion-ripple-effect", { key: '82d3f9d812f851a6bbbf3603e5845e6e6e925442' })), h("div", { key: '77bbfb251707d274635f21e4cd7153791d9fdb49', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: '2d7b64dbdb084bd3a851e215b9d049a9aff6f03f', part: "indicator-background", class: "segment-button-indicator-background" }))));
131
+ } }, h("button", Object.assign({ key: '701fd86647377f744d91eb92427c73583d229253', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '63634d3e500312c847194551996a2897610e0cc7', class: "button-inner" }, h("slot", { key: '89963e233c9a7ea84b7262ab84db6edbe76ee95e' })), theme === 'md' && h("ion-ripple-effect", { key: '9d766c3d48c0b2ba50ab03f2279ccf710973bbba' })), h("div", { key: 'a70f2d1a57cca4e04b00b36a6b47eb93ef4cb26e', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: 'aff9931755a1f643147bf0e7d2be29b35d8f9d41', part: "indicator-background", class: "segment-button-indicator-background" }))));
132
132
  }
133
133
  static get is() { return "ion-segment-button"; }
134
134
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@
4
4
  import { Host, h } from "@stencil/core";
5
5
  export class SegmentContent {
6
6
  render() {
7
- return (h(Host, { key: '66e6783365c0842eb785d50191206d82321b35e7' }, h("slot", { key: '21528369e7efdb93599179720b26c3f3c3e574ed' })));
7
+ return (h(Host, { key: '81cc29460a17c32592fbf9fca6242f4bb1738aa6' }, h("slot", { key: '4f718420caf11c6672642fcf1a1bdb7f48d6cdfc' })));
8
8
  }
9
9
  static get is() { return "ion-segment-content"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -103,11 +103,11 @@ export class SegmentView {
103
103
  }
104
104
  render() {
105
105
  const { disabled, isManualScroll, swipeGesture } = this;
106
- return (h(Host, { key: 'f6190a42acd23c2039732b209943a5f747a51377', class: {
106
+ return (h(Host, { key: '47db42d48ffc6a957e1823ba1ac1a2edff15cfca', class: {
107
107
  'segment-view-disabled': disabled,
108
108
  'segment-view-scroll-disabled': isManualScroll === false,
109
109
  'segment-view-swipe-disabled': swipeGesture === false,
110
- } }, h("slot", { key: '4665ec76305f47c010eb114d2280b6a695cbb4ee' })));
110
+ } }, h("slot", { key: '3796e9c733e8659fda172eb2734e50d28b864fa7' })));
111
111
  }
112
112
  static get is() { return "ion-segment-view"; }
113
113
  static get encapsulation() { return "shadow"; }
@@ -1002,7 +1002,7 @@ export class Select {
1002
1002
  * TODO(FW-5592): Remove hasStartEndSlots condition
1003
1003
  */
1004
1004
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
1005
- return (h(Host, { key: '03fa41ce215865ceeaeddec12d9ac66b5ab18e3f', onClick: this.onClick, class: createColorClasses(this.color, {
1005
+ return (h(Host, { key: 'b75ee27abca24a0ee5ec2bcecec98aeab85d11b2', onClick: this.onClick, class: createColorClasses(this.color, {
1006
1006
  [theme]: true,
1007
1007
  'in-item': inItem,
1008
1008
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -1021,7 +1021,7 @@ export class Select {
1021
1021
  [`select-shape-${shape}`]: shape !== undefined,
1022
1022
  [`select-label-placement-${labelPlacement}`]: true,
1023
1023
  [`select-size-${size}`]: size !== undefined,
1024
- }) }, h("label", { key: '66808fb8c26f7a5db356b22d43751463cbb4bcaa', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '3e80160009e0e5b47952d666ca621166067adbea', class: "select-wrapper-inner", part: "inner" },
1024
+ }) }, h("label", { key: '09f84e92cec1f79d4563d5f27edd7f71266446b8', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '448be6befb0d4a2c0be0b31d9fb970c4bf86e004', class: "select-wrapper-inner", part: "inner" },
1025
1025
  /**
1026
1026
  * For the ionic theme, we render the outline container here
1027
1027
  * instead of higher up, so it can be positioned relative to
@@ -1031,7 +1031,7 @@ export class Select {
1031
1031
  * <label> element, ensuring that clicking the label text
1032
1032
  * focuses the select.
1033
1033
  */
1034
- theme === 'ionic' && fill === 'outline' && h("div", { key: '8ea2530c4dc535661bf97d16724bdca3b9e23560', class: "select-outline" }), h("slot", { key: '2526c811e6f0f250421f6de9834d96d21df528b7', name: "start" }), h("div", { key: '95d0b2432c9e656166bf35ddd457a74052c91a27', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '0864febe104e3ac77aa10ce397e7c7569855636e', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'c83f3992d7a0ee55ca635b391421626a9131c8eb', class: "select-highlight" })), this.renderBottomContent()));
1034
+ theme === 'ionic' && fill === 'outline' && h("div", { key: '5304fa8c9eb2f8a048cd242696aad6bcd66ffa71', class: "select-outline" }), h("slot", { key: '6103312fc0549a71b395e550472c489cd63e50cf', name: "start" }), h("div", { key: 'c37d9c7f6087b522b424b28aaa711f7682468429', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '4e7228f7911e5b85b60bdba483506845b2df9f58', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '9c4a369969d2653a553e667e544928e9341dbb51', class: "select-highlight" })), this.renderBottomContent()));
1035
1035
  }
1036
1036
  static get is() { return "ion-select"; }
1037
1037
  static get encapsulation() { return "shadow"; }
@@ -147,7 +147,7 @@ export class SelectModal {
147
147
  });
148
148
  }
149
149
  render() {
150
- return (h(Host, { key: '43db0bab8915e4e422acbd73d27a880935c13a38', class: Object.assign({ [getIonMode(this)]: true }, this.getModalContextClasses()) }, h("ion-header", { key: '58f462db240eb759d7be9f090ab9fba48abdea0c' }, h("ion-toolbar", { key: 'dbd4722ad8c2fc21a066b89451fdc5c0a3776808' }, this.header !== undefined && h("ion-title", { key: 'cefe16f3dff1a90d10875506a94fe1d737c67b44' }, this.header), h("ion-buttons", { key: '750ba8ac17447906cbe020d654b943a88adf8185', slot: "end" }, h("ion-button", { key: '8c075ec9d7becf25dd1307bf083bec229a0889ae', "aria-label": this.cancelIcon ? this.cancelText : undefined, onClick: () => this.closeModal() }, this.cancelIcon ? (h("ion-icon", { "aria-hidden": "true", slot: "icon-only", icon: this.cancelButtonIcon })) : (this.cancelText))))), h("ion-content", { key: '65dff8eab0158cdff103ade997246cea2b3c4b9e' }, h("ion-list", { key: 'e3556e81c97146ffda80260265294a4f8d6ebdf2' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
150
+ return (h(Host, { key: '3d19cbc5c4b35089ce424924174f6b87fb1bdcab', class: Object.assign({ [getIonMode(this)]: true }, this.getModalContextClasses()) }, h("ion-header", { key: '3cb79b05db6fec2f72ebdb87edcc24bad9c375ac' }, h("ion-toolbar", { key: '99cf6652daad67727efc354d2064f96658e110be' }, this.header !== undefined && h("ion-title", { key: '372fc52cfb477875cb6f0af8aee0e33f3059ecb1' }, this.header), h("ion-buttons", { key: '748ff6504898f1516ce1904e77a5bcea8ad8cdd3', slot: "end" }, h("ion-button", { key: '129b09e56081dd7f4407d00dce0df0d89836d32b', "aria-label": this.cancelIcon ? this.cancelText : undefined, onClick: () => this.closeModal() }, this.cancelIcon ? (h("ion-icon", { "aria-hidden": "true", slot: "icon-only", icon: this.cancelButtonIcon })) : (this.cancelText))))), h("ion-content", { key: 'd3e095c2d3b01481877ffadffcef17792422c242' }, h("ion-list", { key: '7514600d43482f866e508ee88ea65ee2eae63887' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
151
151
  }
152
152
  static get is() { return "ion-select-modal"; }
153
153
  static get encapsulation() { return "scoped"; }
@@ -21,7 +21,7 @@ export class SelectOption {
21
21
  }
22
22
  render() {
23
23
  const theme = getIonTheme(this);
24
- return (h(Host, { key: 'f4d425097bd16997f0ea48c8896dc92408e55bb9', class: {
24
+ return (h(Host, { key: 'fd2c00d514768451e7d51631e4ce4cdb2a7a92ad', class: {
25
25
  [theme]: true,
26
26
  }, role: "option", id: this.inputId }));
27
27
  }
@@ -149,9 +149,9 @@ export class SelectPopover {
149
149
  const { header, message, options, subHeader } = this;
150
150
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
151
151
  const theme = getIonTheme(this);
152
- return (h(Host, { key: 'de63245b6690ffb6201a8faac850b7e73eed8022', class: {
152
+ return (h(Host, { key: '75388b15e655f05df0849bbcd79064e4f9f72294', class: {
153
153
  [theme]: true,
154
- } }, h("ion-list", { key: 'a96857c064aaf9a645b9e1ee22932116b1c25d62' }, header !== undefined && h("ion-list-header", { key: '86b8c398f12cdd3e7d2a7d4c4af69029e4decdbc' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: '3bcd9c0a544e1e98243163600413d82a304081db' }, h("ion-label", { key: 'd20b933ba82913b623486c982ab094819f850565', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: 'c869868d89d024b5b02e6a3b626ca91e6f312036' }, subHeader), message !== undefined && h("p", { key: 'd8a26d162ba8d3b092abef38ef3c1795787e7f75' }, message)))), this.renderOptions(options))));
154
+ } }, h("ion-list", { key: '14a2f8e328145d7563e9f1924637e08ba3f64f07' }, header !== undefined && h("ion-list-header", { key: '22f0b835c1ea3c13e54dc3be563dcb2dc8d7f53e' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: 'd0464a9be0c4c3f5df33597929b89d20bc57ca7b' }, h("ion-label", { key: '362f77d17c4613a27ced112cc056369ac6915fc7', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: '7166ad9c5a5f39ee3006e59ab069bbee6fbf8c2f' }, subHeader), message !== undefined && h("p", { key: 'a195ed5683525cf6d63b6b8c36c49965dcab7315' }, message)))), this.renderOptions(options))));
155
155
  }
156
156
  static get is() { return "ion-select-popover"; }
157
157
  static get encapsulation() { return "scoped"; }
@@ -32,11 +32,11 @@ export class SkeletonText {
32
32
  const animated = this.animated && config.getBoolean('animated', true);
33
33
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
34
34
  const theme = getIonTheme(this);
35
- return (h(Host, { key: 'aa94213767105077047a369d4e4861027af96060', class: {
35
+ return (h(Host, { key: '5014563646b6c5213750d503babce3013b66ec96', class: {
36
36
  [theme]: true,
37
37
  'skeleton-text-animated': animated,
38
38
  'in-media': inMedia,
39
- } }, h("span", { key: 'c5dab0fb89d524827936aef5345cc0c7eda9e274' }, "\u00A0")));
39
+ } }, h("span", { key: '4b816883b1c71bb1db66d8b2b084559f7cb489bd' }, "\u00A0")));
40
40
  }
41
41
  static get is() { return "ion-skeleton-text"; }
42
42
  static get encapsulation() { return "shadow"; }
@@ -56,7 +56,7 @@ export class Spinner {
56
56
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
57
57
  }
58
58
  }
59
- return (h(Host, { key: 'fb9e66e61191ada25b8cb1f82038e8d6eaeaebe0', class: createColorClasses(self.color, {
59
+ return (h(Host, { key: '0b3ce4b99c2c828d05b507c4f073811ebbe17d0f', class: createColorClasses(self.color, {
60
60
  [theme]: true,
61
61
  [`spinner-${spinnerName}`]: true,
62
62
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -7,7 +7,6 @@ import { getIonTheme } from "../../global/ionic-global";
7
7
  // TODO(FW-2832): types
8
8
  const SPLIT_PANE_MAIN = 'split-pane-main';
9
9
  const SPLIT_PANE_SIDE = 'split-pane-side';
10
- // TODO(FW-7285): Replace with global breakpoints
11
10
  const QUERY = {
12
11
  xs: '(min-width: 0px)',
13
12
  sm: '(min-width: 576px)',
@@ -131,12 +130,12 @@ export class SplitPane {
131
130
  }
132
131
  render() {
133
132
  const theme = getIonTheme(this);
134
- return (h(Host, { key: 'f9f96d71771ced17604357d27ae7b4b7ed29ec9c', class: {
133
+ return (h(Host, { key: '9d0c67f1f81b09bb9a6f14a66053e5cc7431a286', class: {
135
134
  [theme]: true,
136
135
  // Used internally for styling
137
136
  [`split-pane-${theme}`]: true,
138
137
  'split-pane-visible': this.visible,
139
- } }, h("slot", { key: '4c95f5197bde73de689c3e4425c14c55412539c6' })));
138
+ } }, h("slot", { key: 'ab7b3050d3c5484bd00949cf57efa4396b4d5bc3' })));
140
139
  }
141
140
  static get is() { return "ion-split-pane"; }
142
141
  static get encapsulation() { return "shadow"; }
@@ -51,10 +51,10 @@ export class Tab {
51
51
  }
52
52
  render() {
53
53
  const { tab, active, component } = this;
54
- return (h(Host, { key: '5761999a97a78dda973bd39bf44f10d9637fc00c', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
54
+ return (h(Host, { key: 'b249545a5adfcef4616afe79aa0f215bab464d0a', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
55
55
  'ion-page': component === undefined,
56
56
  'tab-hidden': !active,
57
- } }, h("slot", { key: 'd2cc63bbd20ba5f58ef8d6b23eb50ffa7d80478a' })));
57
+ } }, h("slot", { key: '19e2a406d96d20d8d4af8c3ff900e975d06021f6' })));
58
58
  }
59
59
  static get is() { return "ion-tab"; }
60
60
  static get encapsulation() { return "shadow"; }
@@ -179,7 +179,7 @@ export class TabBar {
179
179
  const theme = getIonTheme(this);
180
180
  const shape = this.getShape();
181
181
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
182
- return (h(Host, { key: 'dd255e7c4d99f239f43c03eaef94c26ae6db4fc6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
182
+ return (h(Host, { key: '7a91bb00ad289d94d34271bdecefb7221c093fd6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
183
183
  [theme]: true,
184
184
  'tab-bar-translucent': translucent,
185
185
  'tab-bar-hidden': shouldHide,
@@ -187,7 +187,7 @@ export class TabBar {
187
187
  'tab-bar-scroll-hidden': scrollHidden,
188
188
  [`tab-bar-${expand}`]: true,
189
189
  [`tab-bar-${shape}`]: shape !== undefined,
190
- }) }, h("slot", { key: 'f112cf52bce37b8a93f9ca6f9632e85889d2791e' })));
190
+ }) }, h("slot", { key: '96ad10c451a6ae1e2b7c48d94d0f158fb8cde1dc' })));
191
191
  }
192
192
  static get is() { return "ion-tab-bar"; }
193
193
  static get encapsulation() { return "shadow"; }
@@ -93,7 +93,7 @@ export class TabButton {
93
93
  rel,
94
94
  target,
95
95
  };
96
- return (h(Host, { key: '124248b961d34d24a3cbeeb669c672caa10f6d07', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
96
+ return (h(Host, { key: '5a32785eaf0570cdc3444d52ce8bba8174c3e0b9', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
97
97
  [theme]: true,
98
98
  'tab-selected': selected,
99
99
  'tab-disabled': disabled,
@@ -106,7 +106,7 @@ export class TabButton {
106
106
  'ion-selectable': true,
107
107
  [`tab-button-shape-${shape}`]: shape !== undefined,
108
108
  'ion-focusable': true,
109
- } }, h("a", Object.assign({ key: 'fde7dc112f62c5e1a08017f1e8665bf68658eadf' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: '0912736f1e69a8da9a49c94bca1c613061bcaad1', class: "button-inner" }, h("slot", { key: '9b919361a07b62304dddc751658fca0540a3747a' })), theme === 'md' && h("ion-ripple-effect", { key: '472967f7b2b8f63d669fae542bb2eb1900955975', type: "unbounded" }))));
109
+ } }, h("a", Object.assign({ key: '1441f409b4a60823a57f27b90f6840b557b7d65a' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: '1566ca0af66b6e51068aca221a89133d2af061ed', class: "button-inner" }, h("slot", { key: '757878091cfe3768107eb0a53b8d1c895ce43399' })), theme === 'md' && h("ion-ripple-effect", { key: '28dde3e7127bdc9d5e1477b47458a5a4ab71328e', type: "unbounded" }))));
110
110
  }
111
111
  static get is() { return "ion-tab-button"; }
112
112
  static get encapsulation() { return "shadow"; }
@@ -165,7 +165,7 @@ export class Tabs {
165
165
  return Array.from(this.el.querySelectorAll('ion-tab'));
166
166
  }
167
167
  render() {
168
- return (h(Host, { key: 'd94b2760650125d00a9bd620f367022119aba911', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: 'dfa95a272dce19af4575e4d6488962cf6c521754', name: "top" }), h("div", { key: 'd537e5212745833107c751cc6f79d12f48f5472a', class: "tabs-inner" }, h("slot", { key: '6db89721daa7ffd390586345137f1fdfcefa7910' })), h("slot", { key: '7b24f140b89e8e316f24170b29390e00c31d9a0c', name: "bottom" })));
168
+ return (h(Host, { key: '9c05f69a72ab24897f1febab0928783d08224734', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: '56407c9562bfd095e0259e430879151b824287fd', name: "top" }), h("div", { key: '6a86ceff372b8a60342040d9361ad31bf05e80ec', class: "tabs-inner" }, h("slot", { key: 'a554d3e835236a87686a0a53bd16d3124e77c0c5' })), h("slot", { key: 'd241d4cfba26a7ce3a3f93703dae18b8857bd9ee', name: "bottom" })));
169
169
  }
170
170
  static get is() { return "ion-tabs"; }
171
171
  static get encapsulation() { return "shadow"; }
@@ -11,9 +11,9 @@ import { getIonTheme } from "../../global/ionic-global";
11
11
  export class Text {
12
12
  render() {
13
13
  const theme = getIonTheme(this);
14
- return (h(Host, { key: '4a8be0173621ab64b2849bd02b569e479890c5c4', class: createColorClasses(this.color, {
14
+ return (h(Host, { key: '7a3f31d6e219207a1ff98ac441357caa512012e5', class: createColorClasses(this.color, {
15
15
  [theme]: true,
16
- }) }, h("slot", { key: 'af7771d2fd855b5de843f32d58cd33a89051fa8b' })));
16
+ }) }, h("slot", { key: '392d48d6a5e0e5d1b44e762ec96fb8b53b3ebd49' })));
17
17
  }
18
18
  static get is() { return "ion-text"; }
19
19
  static get encapsulation() { return "shadow"; }
@@ -565,7 +565,7 @@ export class Textarea {
565
565
  * TODO(FW-5592): Remove hasStartEndSlots condition
566
566
  */
567
567
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
568
- return (h(Host, { key: 'd4a95fcd3fe11311d779c10777421c36da20b7a6', class: createColorClasses(this.color, {
568
+ return (h(Host, { key: 'b31341357553adac08f518e48d83127415f36500', class: createColorClasses(this.color, {
569
569
  [theme]: true,
570
570
  'has-value': hasValue,
571
571
  'has-focus': hasFocus,
@@ -577,7 +577,7 @@ export class Textarea {
577
577
  'in-item': inItem,
578
578
  'textarea-disabled': disabled,
579
579
  'textarea-readonly': readonly,
580
- }) }, h("label", { key: '3d21eab560550527de015d36b1c71761792aa516', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '5fe9ec91ac5560d2ebbb93751dd770fe17e5f839', class: "textarea-wrapper-inner" },
580
+ }) }, h("label", { key: '406cb6739da3382da1f723c42f4ea5aee86e09d4', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '69056191d5f1036bcb88a31d44bc61e3a98f9ebc', class: "textarea-wrapper-inner" },
581
581
  /**
582
582
  * For the ionic theme, we render the outline container here
583
583
  * instead of higher up, so it can be positioned relative to
@@ -587,7 +587,7 @@ export class Textarea {
587
587
  * <label> element, ensuring that clicking the label text
588
588
  * focuses the textarea.
589
589
  */
590
- theme === 'ionic' && fill === 'outline' && h("div", { key: 'aac1db3f8a9a9d541bd0d76f17c7936daca419d7', class: "textarea-outline" }), h("div", { key: '49779a6b346b5bf2e8f98787c9159f41fd767d26', class: "start-slot-wrapper" }, h("slot", { key: '2a86311a2ee002e286d8cb1e27480364cb3eb5b1', name: "start" })), h("div", { key: '922069ecd0aa72e4294d78e02a4f216706af0d99', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el), part: "container" }, h("textarea", Object.assign({ key: 'c1cae5f0695b4d978fbbd6d0af8d3da681d2c671', class: "native-textarea", part: "native", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), h("div", { key: '6e76190d9644dd880200f28bbfdb6291362ce639', class: "end-slot-wrapper" }, h("slot", { key: 'fe9466237a1d88bf8cd534e83cca148ce6178abe', name: "end" }))), shouldRenderHighlight && h("div", { key: 'e8a158231e0dcacb4df5b94575fe54d7aff5c23f', class: "textarea-highlight" })), this.renderBottomContent()));
590
+ theme === 'ionic' && fill === 'outline' && h("div", { key: 'eff37b99e2f47f1973cc61611647c28ae7271a4d', class: "textarea-outline" }), h("div", { key: '9c70d10b3d2cce601f670cd86bfc19fff10233da', class: "start-slot-wrapper" }, h("slot", { key: 'b0c92cc7941a0810faabfb1acf177c019e200a5d', name: "start" })), h("div", { key: 'a6f9a2c06a009c322d29aa3a6e2b5a79f3532c5b', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el), part: "container" }, h("textarea", Object.assign({ key: 'eb6bf7370fa3047ed475680111d3e232f0c0644c', class: "native-textarea", part: "native", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), h("div", { key: 'e869ef964514267c0d419d474c16303c01d26cec', class: "end-slot-wrapper" }, h("slot", { key: '8e9905fe7caaf4be904f9cfbc3d9d7f9c48deb50', name: "end" }))), shouldRenderHighlight && h("div", { key: '4287784c6b896b13a4205f5f959aebbbcdd49db3', class: "textarea-highlight" })), this.renderBottomContent()));
591
591
  }
592
592
  static get is() { return "ion-textarea"; }
593
593
  static get encapsulation() { return "shadow"; }
@@ -10,9 +10,9 @@ import { getIonTheme } from "../../global/ionic-global";
10
10
  export class Thumbnail {
11
11
  render() {
12
12
  const theme = getIonTheme(this);
13
- return (h(Host, { key: '2fb4e6f9f650badf2bc492fc4b1c43cad64141c0', class: {
13
+ return (h(Host, { key: '6053cf163155d4268dad4fc81ffc6bbc70d75659', class: {
14
14
  [theme]: true,
15
- } }, h("slot", { key: 'ea18f4572b2b019af3470c6bdb7915d4a5dd84bb' })));
15
+ } }, h("slot", { key: 'b7afb5835bce7c7ed9e5cf44758bbe2d802e1271' })));
16
16
  }
17
17
  static get is() { return "ion-thumbnail"; }
18
18
  static get encapsulation() { return "shadow"; }
@@ -27,11 +27,11 @@ export class ToolbarTitle {
27
27
  render() {
28
28
  const theme = getIonTheme(this);
29
29
  const size = this.getSize();
30
- return (h(Host, { key: '87bb5264f4c13d0d6eeef874ed114539d0b59062', class: createColorClasses(this.color, {
30
+ return (h(Host, { key: '8db3e5f9dbd8b1762a9919eaeef29c98649dfb25', class: createColorClasses(this.color, {
31
31
  [theme]: true,
32
32
  [`title-${size}`]: true,
33
33
  'title-rtl': document.dir === 'rtl',
34
- }) }, h("div", { key: '75f2ddfaf693ffdec13d909eefdb09b441d76e80', class: "toolbar-title" }, h("slot", { key: '00539af5e250bee78fdd1c55f2ecdc8e53bc18b0' }))));
34
+ }) }, h("div", { key: 'a31ebae2c494a51d2145eec69d0b1bc635108a01', class: "toolbar-title" }, h("slot", { key: 'f5975b44b3e3afbf98dcbdb53fc78447b49407b3' }))));
35
35
  }
36
36
  static get is() { return "ion-title"; }
37
37
  static get encapsulation() { return "shadow"; }
@@ -439,9 +439,9 @@ export class Toast {
439
439
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
440
440
  printIonWarning('[ion-toast] - This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
441
441
  }
442
- return (h(Host, Object.assign({ key: 'f8a4c4537d421e924a58f9addbb38a4a043b9f53', tabindex: "-1" }, this.htmlAttributes, { style: {
442
+ return (h(Host, Object.assign({ key: '6fd286b024a05e6960f7b4b7947a3c26cc129e14', tabindex: "-1" }, this.htmlAttributes, { style: {
443
443
  zIndex: `${60000 + this.overlayIndex}`,
444
- }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true, [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent, [`toast-shape-${shape}`]: shape !== undefined, [`toast-hue-${hue}`]: hue !== undefined })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '4f0b39c8e0d7aecfe81da23c3ca1591374a8afa5', class: wrapperClass, part: "wrapper" }, h("div", { key: 'a2cf3ea830d27b51ffe1158fb3f3bf87486401b5', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: 'bee5f21ee8df2278e20bf0565495da30c2e61963', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '40a95848e952dd587d1972487affd4b8e088209f', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
444
+ }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true, [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent, [`toast-shape-${shape}`]: shape !== undefined, [`toast-hue-${hue}`]: hue !== undefined })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '42aa178a6c7f25841bb6e257810c37b6a5703b1f', class: wrapperClass, part: "wrapper" }, h("div", { key: '5cb2f2566ce8ab76de6a79ecac02a354eb242c58', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: 'f5a60e1b8c95bbbb829e3b9b01db64ab5229265a', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: 'a903491644c03391f66432253cc8365c782b056d', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
445
445
  }
446
446
  static get is() { return "ion-toast"; }
447
447
  static get encapsulation() { return "shadow"; }
@@ -338,7 +338,7 @@ export class Toggle {
338
338
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
339
339
  const isIonicTheme = theme === 'ionic';
340
340
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
341
- return (h(Host, { key: '48744f35038be7be61fea432996440628d4f2ce9', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses(color, {
341
+ return (h(Host, { key: 'b12951146a79d3839e6263e91e747398a0fa901d', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses(color, {
342
342
  [theme]: true,
343
343
  'in-item': hostContext('ion-item', el),
344
344
  'toggle-activated': activated,
@@ -350,10 +350,10 @@ export class Toggle {
350
350
  [`toggle-${rtl}`]: true,
351
351
  'ion-activatable': isIonicTheme,
352
352
  'ion-focusable': isIonicTheme,
353
- }) }, h("label", { key: '43d05b9140a9ccabc3981a28b01bf2cb844050f6', class: "toggle-wrapper", htmlFor: inputId }, h("input", Object.assign({ key: '716f13f4202712d4ce22fe738879a8259102c329', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), h("div", { key: '0466a7f662ec5804ecc2e22971248a86f20141c7', class: {
353
+ }) }, h("label", { key: 'cf1d27243bf9bdd5bafaf6d86b76beb311b5e01c', class: "toggle-wrapper", htmlFor: inputId }, h("input", Object.assign({ key: 'b3eb0f146836f5994c15bf1fd67a79f72b9414f7', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), h("div", { key: '56ddcfd6452f30fd6b38d0fd85be3ec966aa120b', class: {
354
354
  'label-text-wrapper': true,
355
355
  'label-text-wrapper-hidden': !hasLabel,
356
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, h("slot", { key: '86b8fbbd03ee3179e84cf906ea4e6881137d798a' }), this.renderHintText()), h("div", { key: '6ccf0131e4ff14c3b1f59d218081b8da5f6b1864', class: "native-wrapper" }, this.renderToggleControl()))));
356
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, h("slot", { key: '706e5b667ee242fb1afb3e4afa613f9798fbe25b' }), this.renderHintText()), h("div", { key: '255ccd7d60f7d78b4eba8d380b303a72093e9d16', class: "native-wrapper" }, this.renderToggleControl()))));
357
357
  }
358
358
  static get is() { return "ion-toggle"; }
359
359
  static get encapsulation() { return "shadow"; }
@@ -242,11 +242,11 @@ export class Toolbar {
242
242
  Object.assign(childStyles, style);
243
243
  });
244
244
  const titlePlacement = this.getTitlePlacement();
245
- return (h(Host, { key: '069913e9241b8e9a2dee8e7d088d181b6faeab5e', class: Object.assign(Object.assign({}, createColorClasses(this.color, {
245
+ return (h(Host, { key: 'a2103857ffb26f517b4190bb01a8fa170a042e45', class: Object.assign(Object.assign({}, createColorClasses(this.color, {
246
246
  [theme]: true,
247
247
  'in-toolbar': hostContext('ion-toolbar', this.el),
248
248
  [`toolbar-title-placement-${titlePlacement}`]: true,
249
- })), childStyles) }, h("div", { key: '3255531be492b9afa7b47476a805f923beea09db', class: "toolbar-background", part: "background" }), h("div", { key: '8758189374c0a12f293c30ca7f8f049b732d2cab', class: "toolbar-container", part: "container" }, h("slot", { key: '74c3705f717968893bf94ea95c99cae313ce68f3', name: "start", onSlotchange: () => this.updateSlotClasses }), h("slot", { key: '298c78f93291442f140f8c52983871215f20ea87', name: "secondary", onSlotchange: () => this.updateSlotClasses }), h("div", { key: 'f7376320b704b8ce375fe2223ae30d51bfc05acb', class: "toolbar-content", part: "content" }, h("slot", { key: 'ddaec08b1fbd13384d834ba4c3b4441c4d749faf' })), h("slot", { key: '6d5bce85159859bb548e4d3fb6b22208dcb48987', name: "primary", onSlotchange: () => this.updateSlotClasses }), h("slot", { key: 'd1d21752ed3bcc7bf15c20de1c0a6fd956373450', name: "end", onSlotchange: () => this.updateSlotClasses }))));
249
+ })), childStyles) }, h("div", { key: '288b74048d260c9279d6e60c8733e26105ee0098', class: "toolbar-background", part: "background" }), h("div", { key: 'fa4b8cfb32f3bfb84f451cf3a2420b37fc75533c', class: "toolbar-container", part: "container" }, h("slot", { key: 'fe9414ab3fa2ca84d424a400ba91ec8239d700ff', name: "start", onSlotchange: () => this.updateSlotClasses }), h("slot", { key: 'c633cd1b6eef87adbfccfa61857518dcf62ac550', name: "secondary", onSlotchange: () => this.updateSlotClasses }), h("div", { key: 'aff3a3d8acbc480e9daec864aeb85d168ab2c447', class: "toolbar-content", part: "content" }, h("slot", { key: '52b45c5abbfe695e862c857163e7aa00c1c2af9a' })), h("slot", { key: '3157c16fcfe428230998f218c6233d114b550a6f', name: "primary", onSlotchange: () => this.updateSlotClasses }), h("slot", { key: '4b74dff5b832ea0f3030efa319c63c876c3e90e2', name: "end", onSlotchange: () => this.updateSlotClasses }))));
250
250
  }
251
251
  static get is() { return "ion-toolbar"; }
252
252
  static get encapsulation() { return "shadow"; }
@@ -1,7 +1,6 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- // TODO(FW-7285): Replace with global breakpoints
5
4
  export const SIZE_TO_MEDIA = {
6
5
  xs: '(min-width: 0px)',
7
6
  sm: '(min-width: 576px)',
@@ -8,6 +8,18 @@
8
8
  *
9
9
  * See https://playwright.dev/docs/api/class-mouse#mouse-move for more information.
10
10
  */
11
+ /**
12
+ * Drags an element by the given number of pixels on the X and Y axes.
13
+ *
14
+ * @param el The element to drag.
15
+ * @param page The E2E Page object.
16
+ * @param dragByX The number of pixels to drag on the X axis. Negative values drag left, positive values drag right.
17
+ * @param dragByY The number of pixels to drag on the Y axis. Negative values drag up, positive values drag down.
18
+ * @param startXCoord The X coordinate to start the drag from. Defaults to the center of the element.
19
+ * @param startYCoord The Y coordinate to start the drag from. Defaults to the center of the element.
20
+ * @param releaseDrag Whether to release the drag at the end of the gesture. Defaults to `true`.
21
+ * @param steps The number of steps to divide the drag into. More steps reduce velocity; fewer steps increase it. Use this to control whether velocity-based thresholds (e.g. full-swipe) are triggered, particularly in Safari where gesture velocity is calculated relative to animation frames. Defaults to `10`.
22
+ */
11
23
  export const dragElementBy = async (el, page, dragByX = 0, dragByY = 0, startXCoord, startYCoord, releaseDrag = true, steps) => {
12
24
  const boundingBox = await el.boundingBox();
13
25
  if (!boundingBox) {
@@ -26,10 +38,11 @@ export const dragElementBy = async (el, page, dragByX = 0, dragByY = 0, startXCo
26
38
  };
27
39
  /**
28
40
  * Drags an element by the given amount of pixels on the Y axis.
41
+ *
29
42
  * @param el The element to drag.
30
43
  * @param page The E2E Page object.
31
- * @param dragByY The amount of pixels to drag the element by.
32
- * @param startYCoord The Y coordinate to start the drag gesture at. Defaults to the center of the element.
44
+ * @param dragByY The number of pixels to drag on the Y axis.
45
+ * @param startYCoord The Y coordinate to start the drag from. Defaults to the center of the element.
33
46
  */
34
47
  export const dragElementByYAxis = async (el, page, dragByY, startYCoord) => {
35
48
  const boundingBox = await el.boundingBox();
@@ -86,10 +99,21 @@ const moveElement = async (page, startX, startY, dragByX = 0, dragByY = 0, steps
86
99
  const middleX = startX + (endX - startX) * (i / steps);
87
100
  const middleY = startY + (endY - startY) * (i / steps);
88
101
  await page.mouse.move(middleX, middleY);
89
- // Safari needs to wait for a repaint to occur before moving the mouse again.
102
+ /**
103
+ * In Safari, gesture velocity is calculated relative to animation
104
+ * frames, causing velocity to accumulate faster than in other
105
+ * browsers. Without waiting for a repaint, consecutive `mouse.move`
106
+ * events arrive with ~0ms time delta and velocity never accumulates,
107
+ * causing gesture
108
+ * detection to fail.
109
+ */
90
110
  if (browser === 'webkit' && i % 2 === 0) {
91
- // Repainting every 2 steps is enough to keep the drag gesture smooth.
92
- // Anything past 4 steps will cause the drag gesture to be flaky.
111
+ /**
112
+ * Repainting every 2 steps is enough to keep the drag gesture
113
+ * smooth. Repainting on every step makes the test slow, and
114
+ * repainting every 4+ steps means Safari does not see enough
115
+ * frames to track the gesture reliably.
116
+ */
93
117
  await page.evaluate(() => new Promise(requestAnimationFrame));
94
118
  }
95
119
  }