@ionic/core 8.7.18 → 8.7.19-dev.11772655618.1af0949f

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 (587) hide show
  1. package/components/index.d.ts +2 -0
  2. package/components/index.js +1 -114
  3. package/components/ion-accordion-group.js +1 -268
  4. package/components/ion-accordion.js +1 -456
  5. package/components/ion-action-sheet.js +1 -6
  6. package/components/ion-alert.js +1 -6
  7. package/components/ion-app.js +1 -132
  8. package/components/ion-avatar.js +1 -41
  9. package/components/ion-back-button.js +1 -130
  10. package/components/ion-backdrop.js +1 -6
  11. package/components/ion-badge.js +1 -47
  12. package/components/ion-breadcrumb.js +1 -137
  13. package/components/ion-breadcrumbs.js +1 -164
  14. package/components/ion-button.js +1 -6
  15. package/components/ion-buttons.js +1 -6
  16. package/components/ion-card-content.js +1 -45
  17. package/components/ion-card-header.js +1 -56
  18. package/components/ion-card-subtitle.js +1 -48
  19. package/components/ion-card-title.js +1 -48
  20. package/components/ion-card.js +1 -107
  21. package/components/ion-checkbox.js +1 -6
  22. package/components/ion-chip.js +1 -66
  23. package/components/ion-col.js +1 -163
  24. package/components/ion-content.js +1 -6
  25. package/components/ion-datetime-button.js +1 -383
  26. package/components/ion-datetime.js +1 -2047
  27. package/components/ion-fab-button.js +1 -151
  28. package/components/ion-fab-list.js +1 -73
  29. package/components/ion-fab.js +1 -101
  30. package/components/ion-footer.js +1 -179
  31. package/components/ion-grid.js +1 -46
  32. package/components/ion-header.js +1 -6
  33. package/components/ion-icon.js +1 -6
  34. package/components/ion-img.js +1 -133
  35. package/components/ion-infinite-scroll-content.js +1 -69
  36. package/components/ion-infinite-scroll.js +1 -236
  37. package/components/ion-input-otp.js +1 -682
  38. package/components/ion-input-password-toggle.js +1 -128
  39. package/components/ion-input.js +1 -646
  40. package/components/ion-item-divider.js +1 -59
  41. package/components/ion-item-group.js +1 -46
  42. package/components/ion-item-option.js +1 -91
  43. package/components/ion-item-options.js +1 -73
  44. package/components/ion-item-sliding.js +1 -457
  45. package/components/ion-item.js +1 -6
  46. package/components/ion-label.js +1 -6
  47. package/components/ion-list-header.js +1 -6
  48. package/components/ion-list.js +1 -6
  49. package/components/ion-loading.js +1 -343
  50. package/components/ion-menu-button.js +1 -109
  51. package/components/ion-menu-toggle.js +1 -64
  52. package/components/ion-menu.js +1 -741
  53. package/components/ion-modal.js +1 -6
  54. package/components/ion-nav-link.js +1 -64
  55. package/components/ion-nav.js +1 -951
  56. package/components/ion-note.js +1 -47
  57. package/components/ion-picker-column-option.js +1 -6
  58. package/components/ion-picker-column.js +1 -6
  59. package/components/ion-picker-legacy-column.js +1 -6
  60. package/components/ion-picker-legacy.js +1 -342
  61. package/components/ion-picker.js +1 -6
  62. package/components/ion-popover.js +1 -6
  63. package/components/ion-progress-bar.js +1 -100
  64. package/components/ion-radio-group.js +1 -6
  65. package/components/ion-radio.js +1 -6
  66. package/components/ion-range.js +1 -844
  67. package/components/ion-refresher-content.js +1 -88
  68. package/components/ion-refresher.js +1 -750
  69. package/components/ion-reorder-group.js +1 -322
  70. package/components/ion-reorder.js +1 -60
  71. package/components/ion-ripple-effect.js +1 -6
  72. package/components/ion-route-redirect.js +1 -45
  73. package/components/ion-route.js +1 -74
  74. package/components/ion-router-link.js +1 -61
  75. package/components/ion-router-outlet.js +1 -226
  76. package/components/ion-router.js +1 -840
  77. package/components/ion-row.js +1 -36
  78. package/components/ion-searchbar.js +1 -540
  79. package/components/ion-segment-button.js +1 -173
  80. package/components/ion-segment-content.js +1 -35
  81. package/components/ion-segment-view.js +1 -142
  82. package/components/ion-segment.js +1 -602
  83. package/components/ion-select-modal.js +1 -6
  84. package/components/ion-select-option.js +1 -46
  85. package/components/ion-select-popover.js +1 -6
  86. package/components/ion-select.js +1 -1035
  87. package/components/ion-skeleton-text.js +1 -64
  88. package/components/ion-spinner.js +1 -6
  89. package/components/ion-split-pane.js +1 -190
  90. package/components/ion-tab-bar.js +1 -135
  91. package/components/ion-tab-button.js +1 -127
  92. package/components/ion-tab.js +1 -82
  93. package/components/ion-tabs.js +1 -204
  94. package/components/ion-text.js +1 -42
  95. package/components/ion-textarea.js +1 -554
  96. package/components/ion-thumbnail.js +1 -36
  97. package/components/ion-title.js +1 -6
  98. package/components/ion-toast.js +1 -938
  99. package/components/ion-toggle.js +1 -360
  100. package/components/ion-toolbar.js +1 -6
  101. package/components/p-1KVKSLu5.js +4 -0
  102. package/{dist/ionic/p-DUt5fQmA.js → components/p-9VcRUwdB.js} +1 -1
  103. package/components/p-ApmKVjaE.js +4 -0
  104. package/components/p-B-hirT0v.js +1 -35
  105. package/components/p-B6FQ0cKR.js +4 -0
  106. package/components/p-B6HaBl3o.js +4 -0
  107. package/components/p-B8b1Ukl9.js +4 -0
  108. package/components/p-BFxT89Wl.js +4 -0
  109. package/components/p-BJoMtgfR.js +4 -0
  110. package/components/p-BNAG-aVv.js +4 -0
  111. package/{dist/ionic/p-D-eFFUkA.js → components/p-BR3tZJmu.js} +1 -1
  112. package/{dist/ionic/p-D0dMcSkw.js → components/p-BS1TtEiJ.js} +1 -1
  113. package/components/p-BSB38Tek.js +4 -0
  114. package/components/p-BTEOs1at.js +1 -192
  115. package/components/p-BTeL5HCK.js +4 -0
  116. package/{dist/ionic/p-DbQ5QkTP.js → components/p-BUbsoBOV.js} +1 -1
  117. package/components/p-BVnB3eEn.js +4 -0
  118. package/components/p-BYDc3hSE.js +4 -0
  119. package/components/p-BagjAGC0.js +4 -0
  120. package/components/p-BegtE7nr.js +4 -0
  121. package/components/p-BgwEQWW6.js +4 -0
  122. package/components/p-Bk2zuNWT.js +4 -0
  123. package/components/p-BmVRXR1y.js +1 -72
  124. package/components/p-Bum_LjMh.js +4 -0
  125. package/components/p-BxwWvu-b.js +4 -0
  126. package/components/p-C4jPsTQa.js +4 -0
  127. package/components/p-C53feagD.js +1 -15
  128. package/{dist/ionic/p-CwgG81ZD.js → components/p-C59ryAuS.js} +1 -1
  129. package/components/p-C7AoMl7c.js +4 -0
  130. package/components/p-CBzELu-H.js +4 -0
  131. package/components/p-CDfQnFrd.js +4 -0
  132. package/components/p-CH0NYjKq.js +4 -0
  133. package/components/p-CIGNaXM1.js +1 -10
  134. package/components/p-CO7fmmxt.js +1 -29
  135. package/components/p-CU1SSH8_.js +4 -0
  136. package/components/p-CVF7ukTk.js +4 -0
  137. package/components/p-CgfaEEem.js +4 -0
  138. package/components/p-CgqKJg96.js +4 -0
  139. package/components/p-Cl0B-RWe.js +1 -452
  140. package/components/p-CneGxKsZ.js +4 -0
  141. package/components/p-CoA-aqGF.js +4 -0
  142. package/{dist/ionic/p-DdR6rpbR.js → components/p-Cq8cQ0NL.js} +1 -1
  143. package/components/p-Csw8xuz4.js +4 -0
  144. package/components/p-CtWGkNnJ.js +1 -162
  145. package/components/p-Cwv-vmkN.js +4 -0
  146. package/{dist/ionic/p-BYEqWnSg.js → components/p-Cy5XSfIk.js} +1 -1
  147. package/components/p-Cyxa_4PV.js +4 -0
  148. package/components/p-Cz5nLPGT.js +4 -0
  149. package/components/p-D13Eaw-8.js +1 -76
  150. package/components/p-D6NJwNJN.js +4 -0
  151. package/components/p-D6Ynv7Xh.js +1 -141
  152. package/components/p-DHsZWn1l.js +4 -0
  153. package/components/p-DJMZehmW.js +4 -0
  154. package/components/p-DJztqcrH.js +1 -14
  155. package/components/p-DYdpXONG.js +4 -0
  156. package/components/p-DgbT0exM.js +4 -0
  157. package/components/p-DiVJyqlX.js +1 -40
  158. package/components/p-Dtdm8lKC.js +1 -44
  159. package/components/p-YLXPWgVj.js +4 -0
  160. package/components/p-ZjP4CjeZ.js +1 -4
  161. package/{dist/ionic/p-DCv9sLH2.js → components/p-ak_d-z48.js} +1 -1
  162. package/components/p-cyNmxje6.js +1 -155
  163. package/components/p-fpbh6w3f.js +4 -0
  164. package/components/p-hHmYLOfE.js +1 -87
  165. package/components/p-kvaDs24J.js +4 -0
  166. package/components/p-vEbVo2hO.js +4 -0
  167. package/dist/cjs/{animation-Bt3H9L1C.js → animation-Dg4yiuR2.js} +1 -1
  168. package/dist/cjs/app-globals-CLI8xCmk.js +11 -0
  169. package/dist/cjs/{button-active-CMc8cD90.js → button-active-FscMI17-.js} +1 -1
  170. package/dist/cjs/{config-C5fsO43a.js → config-BukYi_pW.js} +1 -1
  171. package/dist/cjs/{data-JwZKaIQB.js → data-BYlBjkMU.js} +1 -1
  172. package/dist/cjs/{framework-delegate-DMJRBuDi.js → framework-delegate-CRgp8o_p.js} +1 -1
  173. package/dist/cjs/{hardware-back-button-VCK4V3mG.js → hardware-back-button-C4rMJ5uI.js} +1 -1
  174. package/dist/cjs/{helpers-DrTqNghc.js → helpers-CxTYJdbT.js} +1 -1
  175. package/dist/cjs/{index-094mMFB-.js → index-C845Ti6K.js} +4 -4
  176. package/dist/cjs/{index-DrMUZJj6.js → index-CFUwM5x_.js} +5 -5
  177. package/dist/cjs/{index-D6Wc6v08.js → index-CqT-2gKy.js} +503 -382
  178. package/dist/cjs/{index-CO6eryBo.js → index-MbaBbWXk.js} +2 -2
  179. package/dist/cjs/{index-C534ULug.js → index-YcSftOMz.js} +2 -2
  180. package/dist/cjs/index.cjs.js +12 -12
  181. package/dist/cjs/{input-shims-CuMghsQ-.js → input-shims-Dl5cnc_e.js} +3 -3
  182. package/dist/cjs/{input.utils-B_QROI2g.js → input.utils-DmeJ8dmo.js} +2 -2
  183. package/dist/cjs/ion-accordion_2.cjs.entry.js +23 -15
  184. package/dist/cjs/ion-action-sheet.cjs.entry.js +21 -15
  185. package/dist/cjs/ion-alert.cjs.entry.js +25 -17
  186. package/dist/cjs/ion-app_8.cjs.entry.js +48 -43
  187. package/dist/cjs/ion-avatar_3.cjs.entry.js +12 -12
  188. package/dist/cjs/ion-back-button.cjs.entry.js +7 -7
  189. package/dist/cjs/ion-backdrop.cjs.entry.js +6 -6
  190. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +20 -14
  191. package/dist/cjs/ion-button_2.cjs.entry.js +36 -18
  192. package/dist/cjs/ion-card_5.cjs.entry.js +23 -23
  193. package/dist/cjs/ion-checkbox.cjs.entry.js +7 -7
  194. package/dist/cjs/ion-chip.cjs.entry.js +6 -6
  195. package/dist/cjs/ion-col_3.cjs.entry.js +8 -8
  196. package/dist/cjs/ion-datetime-button.cjs.entry.js +8 -8
  197. package/dist/cjs/ion-datetime_3.cjs.entry.js +75 -46
  198. package/dist/cjs/ion-fab_3.cjs.entry.js +17 -13
  199. package/dist/cjs/ion-img.cjs.entry.js +8 -6
  200. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +17 -13
  201. package/dist/cjs/ion-input-otp.cjs.entry.js +16 -10
  202. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +9 -7
  203. package/dist/cjs/ion-input.cjs.entry.js +21 -13
  204. package/dist/cjs/ion-item-option_3.cjs.entry.js +19 -17
  205. package/dist/cjs/ion-item_8.cjs.entry.js +48 -42
  206. package/dist/cjs/ion-loading.cjs.entry.js +18 -14
  207. package/dist/cjs/ion-menu_3.cjs.entry.js +30 -22
  208. package/dist/cjs/ion-modal.cjs.entry.js +237 -59
  209. package/dist/cjs/ion-nav_2.cjs.entry.js +14 -10
  210. package/dist/cjs/ion-picker-column-option.cjs.entry.js +10 -8
  211. package/dist/cjs/ion-picker-column.cjs.entry.js +11 -7
  212. package/dist/cjs/ion-picker.cjs.entry.js +6 -6
  213. package/dist/cjs/ion-popover.cjs.entry.js +21 -15
  214. package/dist/cjs/ion-progress-bar.cjs.entry.js +7 -7
  215. package/dist/cjs/ion-radio_2.cjs.entry.js +17 -13
  216. package/dist/cjs/ion-range.cjs.entry.js +205 -57
  217. package/dist/cjs/ion-refresher_2.cjs.entry.js +45 -14
  218. package/dist/cjs/ion-reorder_2.cjs.entry.js +13 -11
  219. package/dist/cjs/ion-ripple-effect.cjs.entry.js +4 -4
  220. package/dist/cjs/ion-route_4.cjs.entry.js +20 -10
  221. package/dist/cjs/ion-searchbar.cjs.entry.js +22 -12
  222. package/dist/cjs/ion-segment-content.cjs.entry.js +3 -3
  223. package/dist/cjs/ion-segment-view.cjs.entry.js +13 -8
  224. package/dist/cjs/ion-segment_2.cjs.entry.js +26 -16
  225. package/dist/cjs/ion-select-modal.cjs.entry.js +17 -13
  226. package/dist/cjs/ion-select_3.cjs.entry.js +33 -24
  227. package/dist/cjs/ion-spinner.cjs.entry.js +4 -4
  228. package/dist/cjs/ion-split-pane.cjs.entry.js +15 -9
  229. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +14 -12
  230. package/dist/cjs/ion-tab_2.cjs.entry.js +10 -8
  231. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  232. package/dist/cjs/ion-textarea.cjs.entry.js +20 -14
  233. package/dist/cjs/ion-toast.cjs.entry.js +21 -15
  234. package/dist/cjs/ion-toggle.cjs.entry.js +10 -8
  235. package/dist/cjs/{ionic-global-HMVqOFGO.js → ionic-global-Bc3kJi1Z.js} +1 -1
  236. package/dist/cjs/ionic.cjs.js +5 -5
  237. package/dist/cjs/{ios.transition-BOt_uW73.js → ios.transition-trBiC95R.js} +4 -4
  238. package/dist/cjs/loader.cjs.js +4 -4
  239. package/dist/cjs/{md.transition-Dt968VXB.js → md.transition-CUQECuvD.js} +4 -4
  240. package/dist/cjs/{notch-controller-Bzqhjm4f.js → notch-controller-sD-lTpdc.js} +1 -1
  241. package/dist/cjs/{overlays-B2b-TTbl.js → overlays-C2jiBSNQ.js} +5 -5
  242. package/dist/cjs/{status-tap-g0sWWkXk.js → status-tap-CCJk5VgT.js} +3 -3
  243. package/dist/cjs/{swipe-back-BIayeNOD.js → swipe-back-BGhTQ1CU.js} +2 -2
  244. package/dist/collection/collection-manifest.json +2 -2
  245. package/dist/collection/components/accordion-group/accordion-group.js +4 -2
  246. package/dist/collection/components/action-sheet/action-sheet.js +20 -10
  247. package/dist/collection/components/alert/alert.js +24 -12
  248. package/dist/collection/components/back-button/back-button.js +4 -2
  249. package/dist/collection/components/badge/badge.js +2 -1
  250. package/dist/collection/components/breadcrumb/breadcrumb.js +8 -4
  251. package/dist/collection/components/breadcrumbs/breadcrumbs.js +4 -2
  252. package/dist/collection/components/button/button.js +6 -3
  253. package/dist/collection/components/card/card.js +6 -3
  254. package/dist/collection/components/card-header/card-header.js +2 -1
  255. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -1
  256. package/dist/collection/components/card-title/card-title.js +2 -1
  257. package/dist/collection/components/checkbox/checkbox.js +4 -2
  258. package/dist/collection/components/chip/chip.js +2 -1
  259. package/dist/collection/components/content/content.js +12 -7
  260. package/dist/collection/components/datetime/datetime.js +43 -22
  261. package/dist/collection/components/datetime-button/datetime-button.js +2 -1
  262. package/dist/collection/components/fab-button/fab-button.js +6 -3
  263. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +4 -2
  264. package/dist/collection/components/input/input.js +11 -6
  265. package/dist/collection/components/input-otp/input-otp.js +8 -4
  266. package/dist/collection/components/input-password-toggle/input-password-toggle.js +4 -2
  267. package/dist/collection/components/item/item.js +10 -5
  268. package/dist/collection/components/item-divider/item-divider.js +7 -3
  269. package/dist/collection/components/item-option/item-option.js +6 -3
  270. package/dist/collection/components/item-options/item-options.js +2 -1
  271. package/dist/collection/components/item-sliding/item-sliding.js +2 -1
  272. package/dist/collection/components/label/label.js +6 -3
  273. package/dist/collection/components/list-header/list-header.js +6 -3
  274. package/dist/collection/components/loading/loading.js +22 -11
  275. package/dist/collection/components/menu/menu.js +10 -5
  276. package/dist/collection/components/menu-button/menu-button.js +2 -1
  277. package/dist/collection/components/modal/gestures/sheet.js +120 -12
  278. package/dist/collection/components/modal/gestures/swipe-to-close.js +54 -1
  279. package/dist/collection/components/modal/modal.js +127 -45
  280. package/dist/collection/components/nav/nav.js +89 -45
  281. package/dist/collection/components/nav-link/nav-link.js +9 -5
  282. package/dist/collection/components/note/note.js +2 -1
  283. package/dist/collection/components/picker/picker.js +2 -1
  284. package/dist/collection/components/picker-column/picker-column.js +6 -3
  285. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -1
  286. package/dist/collection/components/picker-legacy/picker.js +24 -12
  287. package/dist/collection/components/picker-legacy-column/picker-column.js +4 -2
  288. package/dist/collection/components/popover/popover.js +33 -17
  289. package/dist/collection/components/progress-bar/progress-bar.js +2 -1
  290. package/dist/collection/components/radio/radio.js +2 -1
  291. package/dist/collection/components/radio-group/radio-group.js +6 -3
  292. package/dist/collection/components/range/range.js +214 -53
  293. package/dist/collection/components/refresher/refresher.js +73 -5
  294. package/dist/collection/components/refresher-content/refresher-content.js +8 -4
  295. package/dist/collection/components/reorder-group/reorder-group.js +6 -3
  296. package/dist/collection/components/route/route.js +4 -2
  297. package/dist/collection/components/router/router.js +10 -5
  298. package/dist/collection/components/router-link/router-link.js +6 -3
  299. package/dist/collection/components/router-outlet/router-outlet.js +18 -9
  300. package/dist/collection/components/searchbar/searchbar.js +11 -6
  301. package/dist/collection/components/segment/segment.js +10 -5
  302. package/dist/collection/components/segment-button/segment-button.js +4 -2
  303. package/dist/collection/components/segment-view/segment-view.ios.css +2 -1
  304. package/dist/collection/components/segment-view/segment-view.js +30 -4
  305. package/dist/collection/components/segment-view/segment-view.md.css +2 -1
  306. package/dist/collection/components/select/select.js +17 -8
  307. package/dist/collection/components/select-modal/select-modal.js +27 -2
  308. package/dist/collection/components/select-popover/select-popover.js +2 -1
  309. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -1
  310. package/dist/collection/components/spinner/spinner.js +4 -2
  311. package/dist/collection/components/tab/tab.js +4 -2
  312. package/dist/collection/components/tab-bar/tab-bar.js +4 -2
  313. package/dist/collection/components/tab-button/tab-button.js +4 -2
  314. package/dist/collection/components/tabs/tabs.js +4 -2
  315. package/dist/collection/components/text/text.js +2 -1
  316. package/dist/collection/components/textarea/textarea.js +10 -7
  317. package/dist/collection/components/title/title.js +4 -2
  318. package/dist/collection/components/toast/toast.js +34 -17
  319. package/dist/collection/components/toggle/toggle.js +4 -2
  320. package/dist/collection/components/toolbar/toolbar.js +2 -1
  321. package/dist/docs.d.ts +37 -0
  322. package/dist/docs.json +1186 -389
  323. package/dist/esm/{animation-Dt8bGnA-.js → animation-CnGMT4ji.js} +1 -1
  324. package/dist/esm/app-globals-DhZjtldk.js +9 -0
  325. package/dist/esm/{button-active-L570Swow.js → button-active-BBx21brx.js} +1 -1
  326. package/dist/esm/{config-mCdtaoPe.js → config-TO1rZH52.js} +1 -1
  327. package/dist/esm/{data-DCORV9FH.js → data-B9iGR5YO.js} +1 -1
  328. package/dist/esm/{framework-delegate-BYawdMXj.js → framework-delegate-CyxE1S_P.js} +1 -1
  329. package/dist/esm/{hardware-back-button-CPLxO-Ev.js → hardware-back-button-CTe4XmL7.js} +1 -1
  330. package/dist/esm/{helpers-DEn3pfjm.js → helpers-Tl8jw6S2.js} +1 -1
  331. package/dist/esm/{index-r2D9DEro.js → index-B-hkiOUh.js} +4 -4
  332. package/dist/esm/{index-CvDIirVx.js → index-B2KwgBLx.js} +5 -5
  333. package/dist/esm/{index-ceb5RaMT.js → index-BtUdxPjv.js} +2 -2
  334. package/dist/esm/{index-C8IsBmNU.js → index-IGIE5vDm.js} +503 -382
  335. package/dist/esm/{index-Bs3kT4bc.js → index-hW6eNZ3o.js} +2 -2
  336. package/dist/esm/index.js +12 -12
  337. package/dist/esm/{input-shims-D6H3ZaWt.js → input-shims-AaDhOpKN.js} +3 -3
  338. package/dist/esm/{input.utils-DrvTa8gz.js → input.utils-Bxa_DQ7-.js} +2 -2
  339. package/dist/esm/ion-accordion_2.entry.js +23 -15
  340. package/dist/esm/ion-action-sheet.entry.js +21 -15
  341. package/dist/esm/ion-alert.entry.js +25 -17
  342. package/dist/esm/ion-app_8.entry.js +48 -43
  343. package/dist/esm/ion-avatar_3.entry.js +12 -12
  344. package/dist/esm/ion-back-button.entry.js +7 -7
  345. package/dist/esm/ion-backdrop.entry.js +6 -6
  346. package/dist/esm/ion-breadcrumb_2.entry.js +20 -14
  347. package/dist/esm/ion-button_2.entry.js +36 -18
  348. package/dist/esm/ion-card_5.entry.js +23 -23
  349. package/dist/esm/ion-checkbox.entry.js +7 -7
  350. package/dist/esm/ion-chip.entry.js +6 -6
  351. package/dist/esm/ion-col_3.entry.js +8 -8
  352. package/dist/esm/ion-datetime-button.entry.js +8 -8
  353. package/dist/esm/ion-datetime_3.entry.js +75 -46
  354. package/dist/esm/ion-fab_3.entry.js +17 -13
  355. package/dist/esm/ion-img.entry.js +8 -6
  356. package/dist/esm/ion-infinite-scroll_2.entry.js +17 -13
  357. package/dist/esm/ion-input-otp.entry.js +16 -10
  358. package/dist/esm/ion-input-password-toggle.entry.js +9 -7
  359. package/dist/esm/ion-input.entry.js +21 -13
  360. package/dist/esm/ion-item-option_3.entry.js +19 -17
  361. package/dist/esm/ion-item_8.entry.js +48 -42
  362. package/dist/esm/ion-loading.entry.js +18 -14
  363. package/dist/esm/ion-menu_3.entry.js +30 -22
  364. package/dist/esm/ion-modal.entry.js +237 -59
  365. package/dist/esm/ion-nav_2.entry.js +14 -10
  366. package/dist/esm/ion-picker-column-option.entry.js +10 -8
  367. package/dist/esm/ion-picker-column.entry.js +11 -7
  368. package/dist/esm/ion-picker.entry.js +6 -6
  369. package/dist/esm/ion-popover.entry.js +21 -15
  370. package/dist/esm/ion-progress-bar.entry.js +7 -7
  371. package/dist/esm/ion-radio_2.entry.js +17 -13
  372. package/dist/esm/ion-range.entry.js +205 -57
  373. package/dist/esm/ion-refresher_2.entry.js +45 -14
  374. package/dist/esm/ion-reorder_2.entry.js +13 -11
  375. package/dist/esm/ion-ripple-effect.entry.js +4 -4
  376. package/dist/esm/ion-route_4.entry.js +20 -10
  377. package/dist/esm/ion-searchbar.entry.js +22 -12
  378. package/dist/esm/ion-segment-content.entry.js +3 -3
  379. package/dist/esm/ion-segment-view.entry.js +13 -8
  380. package/dist/esm/ion-segment_2.entry.js +26 -16
  381. package/dist/esm/ion-select-modal.entry.js +17 -13
  382. package/dist/esm/ion-select_3.entry.js +33 -24
  383. package/dist/esm/ion-spinner.entry.js +4 -4
  384. package/dist/esm/ion-split-pane.entry.js +15 -9
  385. package/dist/esm/ion-tab-bar_2.entry.js +14 -12
  386. package/dist/esm/ion-tab_2.entry.js +10 -8
  387. package/dist/esm/ion-text.entry.js +4 -4
  388. package/dist/esm/ion-textarea.entry.js +20 -14
  389. package/dist/esm/ion-toast.entry.js +21 -15
  390. package/dist/esm/ion-toggle.entry.js +10 -8
  391. package/dist/esm/{ionic-global-CDrldh-5.js → ionic-global-DfbeLwcV.js} +1 -1
  392. package/dist/esm/ionic.js +6 -6
  393. package/dist/esm/{ios.transition-BDzw0_Hm.js → ios.transition--aMF-pDH.js} +4 -4
  394. package/dist/esm/loader.js +5 -5
  395. package/dist/esm/{md.transition-BzDYi3qq.js → md.transition-BEVbfm8j.js} +4 -4
  396. package/dist/esm/{notch-controller-BwelN_JM.js → notch-controller-DAcvKU57.js} +1 -1
  397. package/dist/esm/{overlays-D5YkFThA.js → overlays-F8GHPo-e.js} +5 -5
  398. package/dist/esm/{status-tap-5DQ7Fc4V.js → status-tap-BfJqFSLF.js} +3 -3
  399. package/dist/esm/{swipe-back-BKw2CAHc.js → swipe-back-BZBFwTQV.js} +2 -2
  400. package/dist/html.html-data.json +117 -109
  401. package/dist/ionic/index.esm.js +1 -1
  402. package/dist/ionic/ionic.esm.js +1 -1
  403. package/dist/ionic/p-031b76f7.entry.js +4 -0
  404. package/dist/ionic/p-045a6a42.entry.js +4 -0
  405. package/dist/ionic/p-07506134.entry.js +4 -0
  406. package/dist/ionic/p-084c25b2.entry.js +4 -0
  407. package/dist/ionic/p-0d8b5c38.entry.js +4 -0
  408. package/dist/ionic/p-16813ce7.entry.js +4 -0
  409. package/dist/ionic/p-16b65553.entry.js +4 -0
  410. package/dist/ionic/p-1b02923f.entry.js +4 -0
  411. package/dist/ionic/{p-5c8f7253.entry.js → p-1b169fb6.entry.js} +1 -1
  412. package/dist/ionic/{p-915b3e3d.entry.js → p-23fac490.entry.js} +1 -1
  413. package/dist/ionic/{p-b8551510.entry.js → p-294f4bb5.entry.js} +1 -1
  414. package/dist/ionic/p-2a68388b.entry.js +4 -0
  415. package/dist/ionic/p-2f5a8140.entry.js +4 -0
  416. package/dist/ionic/{p-49d06882.entry.js → p-301c43f8.entry.js} +1 -1
  417. package/dist/ionic/{p-79bd78f9.entry.js → p-370a60ee.entry.js} +1 -1
  418. package/dist/ionic/p-3e143d1d.entry.js +4 -0
  419. package/dist/ionic/p-4819b469.entry.js +4 -0
  420. package/dist/ionic/p-4dd5e8e0.entry.js +4 -0
  421. package/dist/ionic/p-51c11c47.entry.js +4 -0
  422. package/dist/ionic/p-53f750a5.entry.js +4 -0
  423. package/dist/ionic/{p-7cad388a.entry.js → p-6af16209.entry.js} +1 -1
  424. package/dist/ionic/{p-7f98e710.entry.js → p-6b701daa.entry.js} +1 -1
  425. package/dist/ionic/p-6b97f2a3.entry.js +4 -0
  426. package/dist/ionic/p-71e322f7.entry.js +4 -0
  427. package/dist/ionic/p-7620be24.entry.js +4 -0
  428. package/dist/ionic/p-771b27a5.entry.js +4 -0
  429. package/dist/ionic/{p-906bb44d.entry.js → p-7ca71c83.entry.js} +1 -1
  430. package/dist/ionic/{p-11aa58d6.entry.js → p-80cac7a2.entry.js} +1 -1
  431. package/dist/ionic/p-96a2e768.entry.js +4 -0
  432. package/dist/ionic/{p-582824c5.entry.js → p-9833cf63.entry.js} +1 -1
  433. package/dist/ionic/p-9cbc6f1f.entry.js +4 -0
  434. package/dist/ionic/p-9cdbabbb.entry.js +4 -0
  435. package/dist/ionic/p-9eac4eb1.entry.js +4 -0
  436. package/dist/ionic/{p-675b1a31.entry.js → p-9fae83d8.entry.js} +1 -1
  437. package/dist/ionic/p-B8xlpH8p.js +4 -0
  438. package/dist/ionic/{p-C7hRNDhM.js → p-BAt5H1ac.js} +1 -1
  439. package/dist/ionic/p-BW_TRJm8.js +4 -0
  440. package/dist/ionic/{p-DDb5r57F.js → p-Bum7H1fw.js} +1 -1
  441. package/dist/ionic/p-BvFYtOdE.js +4 -0
  442. package/dist/ionic/{p-Dc45iWE4.js → p-BxIcPWoV.js} +1 -1
  443. package/dist/ionic/p-C0JvVFMv.js +4 -0
  444. package/dist/ionic/{p-CTfR9YZG.js → p-CGmVTdWh.js} +1 -1
  445. package/dist/ionic/{p-BOVrCkpJ.js → p-CYbRmDdy.js} +1 -1
  446. package/dist/ionic/{p-MUoJJJwd.js → p-CYvM5g3q.js} +1 -1
  447. package/dist/ionic/p-CmFz1Mjc.js +4 -0
  448. package/dist/ionic/p-CtA-yJYy.js +4 -0
  449. package/dist/ionic/p-D8HJQ1qq.js +4 -0
  450. package/dist/ionic/{p-B0q1YL7N.js → p-DB_iPQC-.js} +1 -1
  451. package/dist/ionic/{p-DNcfiJwE.js → p-DLbbmF9h.js} +1 -1
  452. package/dist/ionic/p-DTPR1Wpn.js +4 -0
  453. package/dist/ionic/p-DjriolRs.js +4 -0
  454. package/dist/ionic/p-DtVZDHlS.js +4 -0
  455. package/dist/ionic/p-IGIE5vDm.js +5 -0
  456. package/dist/ionic/{p-BFvmZNyx.js → p-NFFyoJ4Q.js} +1 -1
  457. package/dist/ionic/p-a805674e.entry.js +4 -0
  458. package/dist/ionic/{p-da7d04cc.entry.js → p-a84f2d21.entry.js} +1 -1
  459. package/dist/ionic/p-aa47f46e.entry.js +4 -0
  460. package/dist/ionic/{p-2668188b.entry.js → p-b325a113.entry.js} +1 -1
  461. package/dist/ionic/{p-d1f54e28.entry.js → p-b440381f.entry.js} +1 -1
  462. package/dist/ionic/p-b6e0ff03.entry.js +4 -0
  463. package/dist/ionic/{p-6f37536a.entry.js → p-bcaa827e.entry.js} +1 -1
  464. package/dist/ionic/{p-fb0271ae.entry.js → p-c3cce9d8.entry.js} +1 -1
  465. package/dist/ionic/{p-b0a7585c.entry.js → p-ca31010f.entry.js} +1 -1
  466. package/dist/ionic/p-d4e8b473.entry.js +4 -0
  467. package/dist/ionic/{p-9575b654.entry.js → p-e663bc5a.entry.js} +1 -1
  468. package/dist/ionic/p-e6c5f060.entry.js +4 -0
  469. package/dist/ionic/{p-652318c3.entry.js → p-e6cedcd7.entry.js} +1 -1
  470. package/dist/ionic/{p-fbb00634.entry.js → p-e863ffe8.entry.js} +1 -1
  471. package/dist/ionic/{p-0ca0fe9c.entry.js → p-f2deaceb.entry.js} +1 -1
  472. package/dist/ionic/{p-ac4eb91d.entry.js → p-f5dfb9a3.entry.js} +1 -1
  473. package/dist/ionic/{p-bce86e56.entry.js → p-f8186550.entry.js} +1 -1
  474. package/dist/ionic/p-fdbc90d4.entry.js +4 -0
  475. package/dist/ionic/p-gbVXD275.js +4 -0
  476. package/dist/ionic/p-hNN3VvaC.js +4 -0
  477. package/dist/types/components/datetime/datetime.d.ts +10 -0
  478. package/dist/types/components/header/header.utils.d.ts +2 -1
  479. package/dist/types/components/item/item.d.ts +2 -0
  480. package/dist/types/components/item-divider/item-divider.d.ts +3 -0
  481. package/dist/types/components/item-option/item-option.d.ts +2 -0
  482. package/dist/types/components/list-header/list-header.d.ts +2 -0
  483. package/dist/types/components/modal/gestures/sheet.d.ts +2 -2
  484. package/dist/types/components/modal/gestures/swipe-to-close.d.ts +2 -2
  485. package/dist/types/components/modal/modal-interface.d.ts +25 -0
  486. package/dist/types/components/modal/modal.d.ts +22 -1
  487. package/dist/types/components/range/range-interface.d.ts +1 -0
  488. package/dist/types/components/range/range.d.ts +44 -4
  489. package/dist/types/components/refresher/refresher-interface.d.ts +7 -0
  490. package/dist/types/components/refresher/refresher.d.ts +16 -3
  491. package/dist/types/components/segment-view/segment-view.d.ts +4 -0
  492. package/dist/types/components/select/select.d.ts +3 -0
  493. package/dist/types/components/select-modal/select-modal.d.ts +4 -0
  494. package/dist/types/components.d.ts +964 -191
  495. package/dist/types/interface.d.ts +2 -2
  496. package/dist/types/stencil-public-runtime.d.ts +126 -14
  497. package/dist/types/utils/gesture/listener.d.ts +2 -1
  498. package/hydrate/index.d.ts +12 -0
  499. package/hydrate/index.js +5632 -1421
  500. package/hydrate/index.mjs +5631 -1422
  501. package/package.json +2 -2
  502. package/components/p-B25GjpND.js +0 -71
  503. package/components/p-BANeLH_G.js +0 -290
  504. package/components/p-BBFQmhcD.js +0 -59
  505. package/components/p-BC-awmYt.js +0 -306
  506. package/components/p-BHbOsu99.js +0 -501
  507. package/components/p-BTlwXR9e.js +0 -73
  508. package/components/p-BcazQttQ.js +0 -612
  509. package/components/p-BdGshsIJ.js +0 -226
  510. package/components/p-BfS7vSpC.js +0 -147
  511. package/components/p-BhRFCLuX.js +0 -675
  512. package/components/p-Bhnhnzjz.js +0 -75
  513. package/components/p-BmcqD0EN.js +0 -153
  514. package/components/p-Boi6hecl.js +0 -115
  515. package/components/p-Bt_moUyl.js +0 -232
  516. package/components/p-Bxl5etF4.js +0 -146
  517. package/components/p-ByjmWt3s.js +0 -139
  518. package/components/p-C04oPyjT.js +0 -54
  519. package/components/p-C6dkQWq2.js +0 -1626
  520. package/components/p-CFZWrvIQ.js +0 -194
  521. package/components/p-CIJwkzL6.js +0 -195
  522. package/components/p-CL12ApCQ.js +0 -820
  523. package/components/p-CXJR56Oq.js +0 -564
  524. package/components/p-Cdm3dKWf.js +0 -108
  525. package/components/p-CslsoGzv.js +0 -192
  526. package/components/p-Cyd00tgZ.js +0 -167
  527. package/components/p-CzAJ3ArC.js +0 -380
  528. package/components/p-CzW34QBh.js +0 -12
  529. package/components/p-D0zXRwcr.js +0 -196
  530. package/components/p-D5hF6rwn.js +0 -339
  531. package/components/p-D8eD2iBA.js +0 -67
  532. package/components/p-DGOrLIyS.js +0 -481
  533. package/components/p-DK2Bn1Mc.js +0 -305
  534. package/components/p-DKRQWlK2.js +0 -598
  535. package/components/p-DNDUsygf.js +0 -128
  536. package/components/p-DTWZF6wg.js +0 -418
  537. package/components/p-DWoUQeZ3.js +0 -3012
  538. package/components/p-DX0w75a9.js +0 -420
  539. package/components/p-Dt8zaCLQ.js +0 -92
  540. package/components/p-DyFBFrV7.js +0 -264
  541. package/components/p-DyHPCMyn.js +0 -39
  542. package/components/p-LgLeKTkH.js +0 -112
  543. package/components/p-NhiRFRn9.js +0 -50
  544. package/components/p-OuiHmXO5.js +0 -646
  545. package/components/p-Wro9IPHE.js +0 -459
  546. package/components/p-aIWC4ZEV.js +0 -305
  547. package/components/p-c-XJ9XhZ.js +0 -915
  548. package/components/p-fVuFT3Wd.js +0 -78
  549. package/components/p-iyo0Toaz.js +0 -2822
  550. package/components/p-l_lso3Zl.js +0 -140
  551. package/components/p-mQp4lwQD.js +0 -1638
  552. package/dist/cjs/app-globals-Ciccnk9_.js +0 -10
  553. package/dist/esm/app-globals-BDSf8fOA.js +0 -8
  554. package/dist/ionic/p-11518b31.entry.js +0 -4
  555. package/dist/ionic/p-221a3d8c.entry.js +0 -4
  556. package/dist/ionic/p-2ac254dc.entry.js +0 -4
  557. package/dist/ionic/p-2bd1ea35.entry.js +0 -4
  558. package/dist/ionic/p-30333874.entry.js +0 -4
  559. package/dist/ionic/p-31db96da.entry.js +0 -4
  560. package/dist/ionic/p-34642fa1.entry.js +0 -4
  561. package/dist/ionic/p-35696017.entry.js +0 -4
  562. package/dist/ionic/p-363d1209.entry.js +0 -4
  563. package/dist/ionic/p-46a38cfd.entry.js +0 -4
  564. package/dist/ionic/p-4eec1a5e.entry.js +0 -4
  565. package/dist/ionic/p-530fcd71.entry.js +0 -4
  566. package/dist/ionic/p-5d6fb6e3.entry.js +0 -4
  567. package/dist/ionic/p-66fbe052.entry.js +0 -4
  568. package/dist/ionic/p-7babec72.entry.js +0 -4
  569. package/dist/ionic/p-82d5bb3d.entry.js +0 -4
  570. package/dist/ionic/p-97eb0812.entry.js +0 -4
  571. package/dist/ionic/p-9b6d46f2.entry.js +0 -4
  572. package/dist/ionic/p-BKc55Xev.js +0 -4
  573. package/dist/ionic/p-Bmgaetn_.js +0 -4
  574. package/dist/ionic/p-C8IsBmNU.js +0 -5
  575. package/dist/ionic/p-CJxh_yLS.js +0 -4
  576. package/dist/ionic/p-DZRJwG4S.js +0 -4
  577. package/dist/ionic/p-a4a9f5ae.entry.js +0 -4
  578. package/dist/ionic/p-b0ebf9f8.entry.js +0 -4
  579. package/dist/ionic/p-be263062.entry.js +0 -4
  580. package/dist/ionic/p-c175d792.entry.js +0 -4
  581. package/dist/ionic/p-cc2a9936.entry.js +0 -4
  582. package/dist/ionic/p-cc45bcbc.entry.js +0 -4
  583. package/dist/ionic/p-d0a2a1ab.entry.js +0 -4
  584. package/dist/ionic/p-e4c57008.entry.js +0 -4
  585. package/dist/ionic/p-e5d6d0f0.entry.js +0 -4
  586. package/dist/ionic/p-f1dfee25.entry.js +0 -4
  587. package/dist/ionic/p-f9f7b9db.entry.js +0 -4
@@ -1,753 +1,4 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { p as proxyCustomElement, H, e as createEvent, w as writeTask, k as readTask, j as printIonError, h, d as Host } from './p-DWoUQeZ3.js';
5
- import { g as getTimeGivenProgression } from './p-hHmYLOfE.js';
6
- import { I as ION_CONTENT_CLASS_SELECTOR, b as ION_CONTENT_ELEMENT_SELECTOR, p as printIonContentErrorMsg, g as getScrollElement } from './p-DNDUsygf.js';
7
- import { t as transitionEndAsync, f as clamp, g as getElementRoot, c as componentOnReady, r as raf } from './p-D5hF6rwn.js';
8
- import { c as hapticImpact, I as ImpactStyle } from './p-cyNmxje6.js';
9
- import { b as getIonMode } from './p-Bxl5etF4.js';
10
- import { s as shouldUseNativeRefresher, t as translateElement, a as setSpinnerOpacity, h as handleScrollWhileRefreshing, b as handleScrollWhilePulling, c as createSnapBackAnimation, d as createPullingAnimation, g as getRefresherAnimationType } from './p-D0zXRwcr.js';
11
-
12
- const refresherIosCss = "ion-refresher{top:0;display:none;position:absolute;width:100%;height:60px;pointer-events:none;z-index:-1}ion-refresher{inset-inline-start:0}ion-refresher.refresher-active{display:block}ion-refresher-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.refresher-pulling,.refresher-refreshing{display:none;width:100%}.refresher-pulling-icon,.refresher-refreshing-icon{-webkit-transform-origin:center;transform-origin:center;-webkit-transition:200ms;transition:200ms;font-size:30px;text-align:center}:host-context([dir=rtl]) .refresher-pulling-icon,:host-context([dir=rtl]) .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}[dir=rtl] .refresher-pulling-icon,[dir=rtl] .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}@supports selector(:dir(rtl)){.refresher-pulling-icon:dir(rtl),.refresher-refreshing-icon:dir(rtl){-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}}.refresher-pulling-text,.refresher-refreshing-text{font-size:16px;text-align:center}ion-refresher-content .arrow-container{display:none}.refresher-pulling ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.refresher-refreshing ion-refresher-content .refresher-refreshing{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-completing ion-refresher-content .refresher-refreshing{display:block}.refresher-completing ion-refresher-content .refresher-refreshing-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-native .refresher-pulling-text,.refresher-native .refresher-refreshing-text{display:none}.refresher-ios .refresher-pulling-icon,.refresher-ios .refresher-refreshing-icon{color:var(--ion-text-color, #000)}.refresher-ios .refresher-pulling-text,.refresher-ios .refresher-refreshing-text{color:var(--ion-text-color, #000)}.refresher-ios .refresher-refreshing .spinner-lines-ios line,.refresher-ios .refresher-refreshing .spinner-lines-small-ios line,.refresher-ios .refresher-refreshing .spinner-crescent circle{stroke:var(--ion-text-color, #000)}.refresher-ios .refresher-refreshing .spinner-bubbles circle,.refresher-ios .refresher-refreshing .spinner-circles circle,.refresher-ios .refresher-refreshing .spinner-dots circle{fill:var(--ion-text-color, #000)}ion-refresher.refresher-native{display:block;z-index:1}ion-refresher.refresher-native ion-spinner{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}.refresher-native .refresher-refreshing ion-spinner{--refreshing-rotation-duration:2s;display:none;-webkit-animation:var(--refreshing-rotation-duration) ease-out refresher-rotate forwards;animation:var(--refreshing-rotation-duration) ease-out refresher-rotate forwards}.refresher-native .refresher-refreshing{display:none;-webkit-animation:250ms linear refresher-pop forwards;animation:250ms linear refresher-pop forwards}.refresher-native ion-spinner{width:32px;height:32px;color:var(--ion-color-step-450, var(--ion-background-color-step-450, #747577))}.refresher-native.refresher-refreshing .refresher-pulling ion-spinner,.refresher-native.refresher-completing .refresher-pulling ion-spinner{display:none}.refresher-native.refresher-refreshing .refresher-refreshing ion-spinner,.refresher-native.refresher-completing .refresher-refreshing ion-spinner{display:block}.refresher-native.refresher-pulling .refresher-pulling ion-spinner{display:block}.refresher-native.refresher-pulling .refresher-refreshing ion-spinner{display:none}.refresher-native.refresher-completing ion-refresher-content .refresher-refreshing-icon{-webkit-transform:scale(0) rotate(180deg);transform:scale(0) rotate(180deg);-webkit-transition:300ms;transition:300ms}@-webkit-keyframes refresher-pop{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}50%{-webkit-transform:scale(1.2);transform:scale(1.2);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes refresher-pop{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}50%{-webkit-transform:scale(1.2);transform:scale(1.2);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes refresher-rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@keyframes refresher-rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}";
13
-
14
- const refresherMdCss = "ion-refresher{top:0;display:none;position:absolute;width:100%;height:60px;pointer-events:none;z-index:-1}ion-refresher{inset-inline-start:0}ion-refresher.refresher-active{display:block}ion-refresher-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.refresher-pulling,.refresher-refreshing{display:none;width:100%}.refresher-pulling-icon,.refresher-refreshing-icon{-webkit-transform-origin:center;transform-origin:center;-webkit-transition:200ms;transition:200ms;font-size:30px;text-align:center}:host-context([dir=rtl]) .refresher-pulling-icon,:host-context([dir=rtl]) .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}[dir=rtl] .refresher-pulling-icon,[dir=rtl] .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}@supports selector(:dir(rtl)){.refresher-pulling-icon:dir(rtl),.refresher-refreshing-icon:dir(rtl){-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}}.refresher-pulling-text,.refresher-refreshing-text{font-size:16px;text-align:center}ion-refresher-content .arrow-container{display:none}.refresher-pulling ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.refresher-refreshing ion-refresher-content .refresher-refreshing{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-completing ion-refresher-content .refresher-refreshing{display:block}.refresher-completing ion-refresher-content .refresher-refreshing-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-native .refresher-pulling-text,.refresher-native .refresher-refreshing-text{display:none}.refresher-md .refresher-pulling-icon,.refresher-md .refresher-refreshing-icon{color:var(--ion-text-color, #000)}.refresher-md .refresher-pulling-text,.refresher-md .refresher-refreshing-text{color:var(--ion-text-color, #000)}.refresher-md .refresher-refreshing .spinner-lines-md line,.refresher-md .refresher-refreshing .spinner-lines-small-md line,.refresher-md .refresher-refreshing .spinner-crescent circle{stroke:var(--ion-text-color, #000)}.refresher-md .refresher-refreshing .spinner-bubbles circle,.refresher-md .refresher-refreshing .spinner-circles circle,.refresher-md .refresher-refreshing .spinner-dots circle{fill:var(--ion-text-color, #000)}ion-refresher.refresher-native{display:block;z-index:1}ion-refresher.refresher-native ion-spinner{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;width:24px;height:24px;color:var(--ion-color-primary, #0054e9)}ion-refresher.refresher-native .spinner-arrow-container{display:inherit}ion-refresher.refresher-native .arrow-container{display:block;position:absolute;width:24px;height:24px}ion-refresher.refresher-native .arrow-container ion-icon{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;left:0;right:0;bottom:-4px;position:absolute;color:var(--ion-color-primary, #0054e9);font-size:12px}ion-refresher.refresher-native.refresher-pulling ion-refresher-content .refresher-pulling,ion-refresher.refresher-native.refresher-ready ion-refresher-content .refresher-pulling{display:-ms-flexbox;display:flex}ion-refresher.refresher-native.refresher-refreshing ion-refresher-content .refresher-refreshing,ion-refresher.refresher-native.refresher-completing ion-refresher-content .refresher-refreshing,ion-refresher.refresher-native.refresher-cancelling ion-refresher-content .refresher-refreshing{display:-ms-flexbox;display:flex}ion-refresher.refresher-native .refresher-pulling-icon{-webkit-transform:translateY(calc(-100% - 10px));transform:translateY(calc(-100% - 10px))}ion-refresher.refresher-native .refresher-pulling-icon,ion-refresher.refresher-native .refresher-refreshing-icon{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;border-radius:100%;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;display:-ms-flexbox;display:flex;border:1px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #ececec));background:var(--ion-color-step-250, var(--ion-background-color-step-250, #ffffff));-webkit-box-shadow:0px 1px 6px rgba(0, 0, 0, 0.1);box-shadow:0px 1px 6px rgba(0, 0, 0, 0.1)}";
15
-
16
- const Refresher = /*@__PURE__*/ proxyCustomElement(class Refresher extends H {
17
- constructor(registerHost) {
18
- super();
19
- if (registerHost !== false) {
20
- this.__registerHost();
21
- }
22
- this.ionRefresh = createEvent(this, "ionRefresh", 7);
23
- this.ionPull = createEvent(this, "ionPull", 7);
24
- this.ionStart = createEvent(this, "ionStart", 7);
25
- this.appliedStyles = false;
26
- this.didStart = false;
27
- this.progress = 0;
28
- this.pointerDown = false;
29
- this.needsCompletion = false;
30
- this.didRefresh = false;
31
- this.contentFullscreen = false;
32
- this.lastVelocityY = 0;
33
- this.animations = [];
34
- this.nativeRefresher = false;
35
- /**
36
- * The current state which the refresher is in. The refresher's states include:
37
- *
38
- * - `inactive` - The refresher is not being pulled down or refreshing and is currently hidden.
39
- * - `pulling` - The user is actively pulling down the refresher, but has not reached the point yet that if the user lets go, it'll refresh.
40
- * - `cancelling` - The user pulled down the refresher and let go, but did not pull down far enough to kick off the `refreshing` state. After letting go, the refresher is in the `cancelling` state while it is closing, and will go back to the `inactive` state once closed.
41
- * - `ready` - The user has pulled down the refresher far enough that if they let go, it'll begin the `refreshing` state.
42
- * - `refreshing` - The refresher is actively waiting on the async operation to end. Once the refresh handler calls `complete()` it will begin the `completing` state.
43
- * - `completing` - The `refreshing` state has finished and the refresher is in the way of closing itself. Once closed, the refresher will go back to the `inactive` state.
44
- */
45
- this.state = 1 /* RefresherState.Inactive */;
46
- /**
47
- * The minimum distance the user must pull down until the
48
- * refresher will go into the `refreshing` state.
49
- * Does not apply when the refresher content uses a spinner,
50
- * enabling the native refresher.
51
- */
52
- this.pullMin = 60;
53
- /**
54
- * The maximum distance of the pull until the refresher
55
- * will automatically go into the `refreshing` state.
56
- * Defaults to the result of `pullMin + 60`.
57
- * Does not apply when the refresher content uses a spinner,
58
- * enabling the native refresher.
59
- */
60
- this.pullMax = this.pullMin + 60;
61
- /**
62
- * Time it takes to close the refresher.
63
- * Does not apply when the refresher content uses a spinner,
64
- * enabling the native refresher.
65
- */
66
- this.closeDuration = '280ms';
67
- /**
68
- * Time it takes the refresher to snap back to the `refreshing` state.
69
- * Does not apply when the refresher content uses a spinner,
70
- * enabling the native refresher.
71
- */
72
- this.snapbackDuration = '280ms';
73
- /**
74
- * How much to multiply the pull speed by. To slow the pull animation down,
75
- * pass a number less than `1`. To speed up the pull, pass a number greater
76
- * than `1`. The default value is `1` which is equal to the speed of the cursor.
77
- * If a negative value is passed in, the factor will be `1` instead.
78
- *
79
- * For example: If the value passed is `1.2` and the content is dragged by
80
- * `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels
81
- * (an increase of 20 percent). If the value passed is `0.8`, the dragged amount
82
- * will be `8` pixels, less than the amount the cursor has moved.
83
- *
84
- * Does not apply when the refresher content uses a spinner,
85
- * enabling the native refresher.
86
- */
87
- this.pullFactor = 1;
88
- /**
89
- * If `true`, the refresher will be hidden.
90
- */
91
- this.disabled = false;
92
- }
93
- disabledChanged() {
94
- if (this.gesture) {
95
- this.gesture.enable(!this.disabled);
96
- }
97
- }
98
- async checkNativeRefresher() {
99
- const useNativeRefresher = await shouldUseNativeRefresher(this.el, getIonMode(this));
100
- if (useNativeRefresher && !this.nativeRefresher) {
101
- const contentEl = this.el.closest('ion-content');
102
- this.setupNativeRefresher(contentEl);
103
- }
104
- else if (!useNativeRefresher) {
105
- this.destroyNativeRefresher();
106
- }
107
- }
108
- destroyNativeRefresher() {
109
- if (this.scrollEl && this.scrollListenerCallback) {
110
- this.scrollEl.removeEventListener('scroll', this.scrollListenerCallback);
111
- this.scrollListenerCallback = undefined;
112
- }
113
- this.nativeRefresher = false;
114
- }
115
- async resetNativeRefresher(el, state) {
116
- this.state = state;
117
- if (getIonMode(this) === 'ios') {
118
- await translateElement(el, undefined, 300);
119
- }
120
- else {
121
- await transitionEndAsync(this.el.querySelector('.refresher-refreshing-icon'), 200);
122
- }
123
- this.didRefresh = false;
124
- this.needsCompletion = false;
125
- this.pointerDown = false;
126
- this.animations.forEach((ani) => ani.destroy());
127
- this.animations = [];
128
- this.progress = 0;
129
- this.state = 1 /* RefresherState.Inactive */;
130
- }
131
- async setupiOSNativeRefresher(pullingSpinner, refreshingSpinner) {
132
- this.elementToTransform = this.scrollEl;
133
- const ticks = pullingSpinner.shadowRoot.querySelectorAll('svg');
134
- let MAX_PULL = this.scrollEl.clientHeight * 0.16;
135
- const NUM_TICKS = ticks.length;
136
- writeTask(() => ticks.forEach((el) => el.style.setProperty('animation', 'none')));
137
- this.scrollListenerCallback = () => {
138
- // If pointer is not on screen or refresher is not active, ignore scroll
139
- if (!this.pointerDown && this.state === 1 /* RefresherState.Inactive */) {
140
- return;
141
- }
142
- readTask(() => {
143
- // PTR should only be active when overflow scrolling at the top
144
- const scrollTop = this.scrollEl.scrollTop;
145
- const refresherHeight = this.el.clientHeight;
146
- if (scrollTop > 0) {
147
- /**
148
- * If refresher is refreshing and user tries to scroll
149
- * progressively fade refresher out/in
150
- */
151
- if (this.state === 8 /* RefresherState.Refreshing */) {
152
- const ratio = clamp(0, scrollTop / (refresherHeight * 0.5), 1);
153
- writeTask(() => setSpinnerOpacity(refreshingSpinner, 1 - ratio));
154
- return;
155
- }
156
- return;
157
- }
158
- if (this.pointerDown) {
159
- if (!this.didStart) {
160
- this.didStart = true;
161
- this.ionStart.emit();
162
- }
163
- // emit "pulling" on every move
164
- if (this.pointerDown) {
165
- this.ionPull.emit();
166
- }
167
- }
168
- /**
169
- * We want to delay the start of this gesture by ~30px
170
- * when initially pulling down so the refresher does not
171
- * overlap with the content. But when letting go of the
172
- * gesture before the refresher completes, we want the
173
- * refresher tick marks to quickly fade out.
174
- */
175
- const offset = this.didStart ? 30 : 0;
176
- const pullAmount = (this.progress = clamp(0, (Math.abs(scrollTop) - offset) / MAX_PULL, 1));
177
- const shouldShowRefreshingSpinner = this.state === 8 /* RefresherState.Refreshing */ || pullAmount === 1;
178
- if (shouldShowRefreshingSpinner) {
179
- if (this.pointerDown) {
180
- handleScrollWhileRefreshing(refreshingSpinner, this.lastVelocityY);
181
- }
182
- if (!this.didRefresh) {
183
- this.beginRefresh();
184
- this.didRefresh = true;
185
- hapticImpact({ style: ImpactStyle.Light });
186
- /**
187
- * Clear focus from any active element to prevent scroll jumps
188
- * when the refresh completes
189
- */
190
- const activeElement = document.activeElement;
191
- if ((activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur) !== undefined) {
192
- activeElement.blur();
193
- }
194
- /**
195
- * Translate the content element otherwise when pointer is removed
196
- * from screen the scroll content will bounce back over the refresher
197
- */
198
- if (!this.pointerDown) {
199
- translateElement(this.elementToTransform, `${refresherHeight}px`);
200
- }
201
- }
202
- }
203
- else {
204
- this.state = 2 /* RefresherState.Pulling */;
205
- handleScrollWhilePulling(ticks, NUM_TICKS, pullAmount);
206
- }
207
- });
208
- };
209
- this.scrollEl.addEventListener('scroll', this.scrollListenerCallback);
210
- this.gesture = (await import('./p-Cl0B-RWe.js')).createGesture({
211
- el: this.scrollEl,
212
- gestureName: 'refresher',
213
- gesturePriority: 31,
214
- direction: 'y',
215
- threshold: 5,
216
- onStart: () => {
217
- this.pointerDown = true;
218
- if (!this.didRefresh) {
219
- translateElement(this.elementToTransform, '0px');
220
- }
221
- /**
222
- * If the content had `display: none` when
223
- * the refresher was initialized, its clientHeight
224
- * will be 0. When the gesture starts, the content
225
- * will be visible, so try to get the correct
226
- * client height again. This is most common when
227
- * using the refresher in an ion-menu.
228
- */
229
- if (MAX_PULL === 0) {
230
- MAX_PULL = this.scrollEl.clientHeight * 0.16;
231
- }
232
- },
233
- onMove: (ev) => {
234
- this.lastVelocityY = ev.velocityY;
235
- },
236
- onEnd: () => {
237
- this.pointerDown = false;
238
- this.didStart = false;
239
- if (this.needsCompletion) {
240
- this.resetNativeRefresher(this.elementToTransform, 32 /* RefresherState.Completing */);
241
- this.needsCompletion = false;
242
- }
243
- else if (this.didRefresh) {
244
- readTask(() => translateElement(this.elementToTransform, `${this.el.clientHeight}px`));
245
- }
246
- },
247
- });
248
- this.disabledChanged();
249
- }
250
- async setupMDNativeRefresher(contentEl, pullingSpinner, refreshingSpinner) {
251
- const circle = getElementRoot(pullingSpinner).querySelector('circle');
252
- const pullingRefresherIcon = this.el.querySelector('ion-refresher-content .refresher-pulling-icon');
253
- const refreshingCircle = getElementRoot(refreshingSpinner).querySelector('circle');
254
- if (circle !== null && refreshingCircle !== null) {
255
- writeTask(() => {
256
- circle.style.setProperty('animation', 'none');
257
- // This lines up the animation on the refreshing spinner with the pulling spinner
258
- refreshingSpinner.style.setProperty('animation-delay', '-655ms');
259
- refreshingCircle.style.setProperty('animation-delay', '-655ms');
260
- });
261
- }
262
- this.gesture = (await import('./p-Cl0B-RWe.js')).createGesture({
263
- el: this.scrollEl,
264
- gestureName: 'refresher',
265
- gesturePriority: 31,
266
- direction: 'y',
267
- threshold: 5,
268
- canStart: () => this.state !== 8 /* RefresherState.Refreshing */ &&
269
- this.state !== 32 /* RefresherState.Completing */ &&
270
- this.scrollEl.scrollTop === 0,
271
- onStart: (ev) => {
272
- this.progress = 0;
273
- ev.data = { animation: undefined, didStart: false, cancelled: false };
274
- },
275
- onMove: (ev) => {
276
- if ((ev.velocityY < 0 && this.progress === 0 && !ev.data.didStart) || ev.data.cancelled) {
277
- ev.data.cancelled = true;
278
- return;
279
- }
280
- if (!ev.data.didStart) {
281
- ev.data.didStart = true;
282
- this.state = 2 /* RefresherState.Pulling */;
283
- // When ion-refresher is being used with a custom scroll target, the overflow styles need to be applied directly instead of via a css variable
284
- const { scrollEl } = this;
285
- const overflowProperty = scrollEl.matches(ION_CONTENT_CLASS_SELECTOR) ? 'overflow' : '--overflow';
286
- writeTask(() => scrollEl.style.setProperty(overflowProperty, 'hidden'));
287
- const animationType = getRefresherAnimationType(contentEl);
288
- const animation = createPullingAnimation(animationType, pullingRefresherIcon, this.el);
289
- ev.data.animation = animation;
290
- animation.progressStart(false, 0);
291
- this.ionStart.emit();
292
- this.animations.push(animation);
293
- return;
294
- }
295
- // Since we are using an easing curve, slow the gesture tracking down a bit
296
- this.progress = clamp(0, (ev.deltaY / 180) * 0.5, 1);
297
- ev.data.animation.progressStep(this.progress);
298
- this.ionPull.emit();
299
- },
300
- onEnd: (ev) => {
301
- if (!ev.data.didStart) {
302
- return;
303
- }
304
- this.gesture.enable(false);
305
- const { scrollEl } = this;
306
- const overflowProperty = scrollEl.matches(ION_CONTENT_CLASS_SELECTOR) ? 'overflow' : '--overflow';
307
- writeTask(() => scrollEl.style.removeProperty(overflowProperty));
308
- if (this.progress <= 0.4) {
309
- ev.data.animation.progressEnd(0, this.progress, 500).onFinish(() => {
310
- this.animations.forEach((ani) => ani.destroy());
311
- this.animations = [];
312
- this.gesture.enable(true);
313
- this.state = 1 /* RefresherState.Inactive */;
314
- });
315
- return;
316
- }
317
- const progress = getTimeGivenProgression([0, 0], [0, 0], [1, 1], [1, 1], this.progress)[0];
318
- const snapBackAnimation = createSnapBackAnimation(pullingRefresherIcon);
319
- this.animations.push(snapBackAnimation);
320
- writeTask(async () => {
321
- pullingRefresherIcon.style.setProperty('--ion-pulling-refresher-translate', `${progress * 100}px`);
322
- ev.data.animation.progressEnd();
323
- await snapBackAnimation.play();
324
- this.beginRefresh();
325
- ev.data.animation.destroy();
326
- this.gesture.enable(true);
327
- });
328
- },
329
- });
330
- this.disabledChanged();
331
- }
332
- async setupNativeRefresher(contentEl) {
333
- if (this.scrollListenerCallback || !contentEl || this.nativeRefresher || !this.scrollEl) {
334
- return;
335
- }
336
- /**
337
- * If using non-native refresher before make sure
338
- * we clean up any old CSS. This can happen when
339
- * a user manually calls the refresh method in a
340
- * component create callback before the native
341
- * refresher is setup.
342
- */
343
- this.setCss(0, '', false, '');
344
- this.nativeRefresher = true;
345
- const pullingSpinner = this.el.querySelector('ion-refresher-content .refresher-pulling ion-spinner');
346
- const refreshingSpinner = this.el.querySelector('ion-refresher-content .refresher-refreshing ion-spinner');
347
- if (getIonMode(this) === 'ios') {
348
- this.setupiOSNativeRefresher(pullingSpinner, refreshingSpinner);
349
- }
350
- else {
351
- this.setupMDNativeRefresher(contentEl, pullingSpinner, refreshingSpinner);
352
- }
353
- }
354
- componentDidUpdate() {
355
- this.checkNativeRefresher();
356
- }
357
- async connectedCallback() {
358
- if (this.el.getAttribute('slot') !== 'fixed') {
359
- printIonError('[ion-refresher] - Make sure you use: <ion-refresher slot="fixed">');
360
- return;
361
- }
362
- const contentEl = this.el.closest(ION_CONTENT_ELEMENT_SELECTOR);
363
- if (!contentEl) {
364
- printIonContentErrorMsg(this.el);
365
- return;
366
- }
367
- /**
368
- * Waits for the content to be ready before querying the scroll
369
- * or the background content element.
370
- */
371
- componentOnReady(contentEl, async () => {
372
- const customScrollTarget = contentEl.querySelector(ION_CONTENT_CLASS_SELECTOR);
373
- /**
374
- * Query the custom scroll target (if available), first. In refresher implementations,
375
- * the ion-refresher element will always be a direct child of ion-content (slot="fixed"). By
376
- * querying the custom scroll target first and falling back to the ion-content element,
377
- * the correct scroll element will be returned by the implementation.
378
- */
379
- this.scrollEl = await getScrollElement(customScrollTarget !== null && customScrollTarget !== void 0 ? customScrollTarget : contentEl);
380
- /**
381
- * Query the background content element from the host ion-content element directly.
382
- */
383
- this.backgroundContentEl = await contentEl.getBackgroundElement();
384
- /**
385
- * Check if the content element is fullscreen to apply the correct styles
386
- * when the refresher is refreshing. Otherwise, the refresher will be
387
- * hidden because it is positioned behind the background content element.
388
- */
389
- this.contentFullscreen = contentEl.fullscreen;
390
- if (await shouldUseNativeRefresher(this.el, getIonMode(this))) {
391
- this.setupNativeRefresher(contentEl);
392
- }
393
- else {
394
- this.gesture = (await import('./p-Cl0B-RWe.js')).createGesture({
395
- el: contentEl,
396
- gestureName: 'refresher',
397
- gesturePriority: 31,
398
- direction: 'y',
399
- threshold: 20,
400
- passive: false,
401
- canStart: () => this.canStart(),
402
- onStart: () => this.onStart(),
403
- onMove: (ev) => this.onMove(ev),
404
- onEnd: () => this.onEnd(),
405
- });
406
- this.disabledChanged();
407
- }
408
- });
409
- }
410
- disconnectedCallback() {
411
- this.destroyNativeRefresher();
412
- this.scrollEl = undefined;
413
- if (this.gesture) {
414
- this.gesture.destroy();
415
- this.gesture = undefined;
416
- }
417
- }
418
- /**
419
- * Call `complete()` when your async operation has completed.
420
- * For example, the `refreshing` state is while the app is performing
421
- * an asynchronous operation, such as receiving more data from an
422
- * AJAX request. Once the data has been received, you then call this
423
- * method to signify that the refreshing has completed and to close
424
- * the refresher. This method also changes the refresher's state from
425
- * `refreshing` to `completing`.
426
- */
427
- async complete() {
428
- if (this.nativeRefresher) {
429
- this.needsCompletion = true;
430
- // Do not reset scroll el until user removes pointer from screen
431
- if (!this.pointerDown) {
432
- raf(() => raf(() => this.resetNativeRefresher(this.elementToTransform, 32 /* RefresherState.Completing */)));
433
- }
434
- }
435
- else {
436
- this.close(32 /* RefresherState.Completing */, '120ms');
437
- }
438
- }
439
- /**
440
- * Changes the refresher's state from `refreshing` to `cancelling`.
441
- */
442
- async cancel() {
443
- if (this.nativeRefresher) {
444
- // Do not reset scroll el until user removes pointer from screen
445
- if (!this.pointerDown) {
446
- raf(() => raf(() => this.resetNativeRefresher(this.elementToTransform, 16 /* RefresherState.Cancelling */)));
447
- }
448
- }
449
- else {
450
- this.close(16 /* RefresherState.Cancelling */, '');
451
- }
452
- }
453
- /**
454
- * A number representing how far down the user has pulled.
455
- * The number `0` represents the user hasn't pulled down at all. The
456
- * number `1`, and anything greater than `1`, represents that the user
457
- * has pulled far enough down that when they let go then the refresh will
458
- * happen. If they let go and the number is less than `1`, then the
459
- * refresh will not happen, and the content will return to it's original
460
- * position.
461
- */
462
- getProgress() {
463
- return Promise.resolve(this.progress);
464
- }
465
- canStart() {
466
- if (!this.scrollEl) {
467
- return false;
468
- }
469
- if (this.state !== 1 /* RefresherState.Inactive */) {
470
- return false;
471
- }
472
- // if the scrollTop is greater than zero then it's
473
- // not possible to pull the content down yet
474
- if (this.scrollEl.scrollTop > 0) {
475
- return false;
476
- }
477
- return true;
478
- }
479
- onStart() {
480
- this.progress = 0;
481
- this.state = 1 /* RefresherState.Inactive */;
482
- this.memoizeOverflowStyle();
483
- /**
484
- * If the content is fullscreen, then we need to
485
- * set the offset-top style on the background content
486
- * element to ensure that the refresher is shown.
487
- */
488
- if (this.contentFullscreen && this.backgroundContentEl) {
489
- this.backgroundContentEl.style.setProperty('--offset-top', '0px');
490
- }
491
- }
492
- onMove(detail) {
493
- if (!this.scrollEl) {
494
- return;
495
- }
496
- // this method can get called like a bazillion times per second,
497
- // so it's built to be as efficient as possible, and does its
498
- // best to do any DOM read/writes only when absolutely necessary
499
- // if multi-touch then get out immediately
500
- const ev = detail.event;
501
- if (ev.touches !== undefined && ev.touches.length > 1) {
502
- return;
503
- }
504
- // do nothing if it's actively refreshing
505
- // or it's in the way of closing
506
- // or this was never a startY
507
- if ((this.state & 56 /* RefresherState._BUSY_ */) !== 0) {
508
- return;
509
- }
510
- const pullFactor = Number.isNaN(this.pullFactor) || this.pullFactor < 0 ? 1 : this.pullFactor;
511
- const deltaY = detail.deltaY * pullFactor;
512
- // don't bother if they're scrolling up
513
- // and have not already started dragging
514
- if (deltaY <= 0) {
515
- // the current Y is higher than the starting Y
516
- // so they scrolled up enough to be ignored
517
- this.progress = 0;
518
- this.state = 1 /* RefresherState.Inactive */;
519
- if (this.appliedStyles) {
520
- // reset the styles only if they were applied
521
- this.setCss(0, '', false, '');
522
- return;
523
- }
524
- return;
525
- }
526
- if (this.state === 1 /* RefresherState.Inactive */) {
527
- // this refresh is not already actively pulling down
528
- // get the content's scrollTop
529
- const scrollHostScrollTop = this.scrollEl.scrollTop;
530
- // if the scrollTop is greater than zero then it's
531
- // not possible to pull the content down yet
532
- if (scrollHostScrollTop > 0) {
533
- this.progress = 0;
534
- return;
535
- }
536
- // content scrolled all the way to the top, and dragging down
537
- this.state = 2 /* RefresherState.Pulling */;
538
- }
539
- // prevent native scroll events
540
- if (ev.cancelable) {
541
- ev.preventDefault();
542
- }
543
- // the refresher is actively pulling at this point
544
- // move the scroll element within the content element
545
- this.setCss(deltaY, '0ms', true, '');
546
- if (deltaY === 0) {
547
- // don't continue if there's no delta yet
548
- this.progress = 0;
549
- return;
550
- }
551
- const pullMin = this.pullMin;
552
- // set pull progress
553
- this.progress = deltaY / pullMin;
554
- // emit "start" if it hasn't started yet
555
- if (!this.didStart) {
556
- this.didStart = true;
557
- this.ionStart.emit();
558
- }
559
- // emit "pulling" on every move
560
- this.ionPull.emit();
561
- // do nothing if the delta is less than the pull threshold
562
- if (deltaY < pullMin) {
563
- // ensure it stays in the pulling state, cuz its not ready yet
564
- this.state = 2 /* RefresherState.Pulling */;
565
- return;
566
- }
567
- if (deltaY > this.pullMax) {
568
- // they pulled farther than the max, so kick off the refresh
569
- this.beginRefresh();
570
- return;
571
- }
572
- // pulled farther than the pull min!!
573
- // it is now in the `ready` state!!
574
- // if they let go then it'll refresh, kerpow!!
575
- this.state = 4 /* RefresherState.Ready */;
576
- return;
577
- }
578
- onEnd() {
579
- // only run in a zone when absolutely necessary
580
- if (this.state === 4 /* RefresherState.Ready */) {
581
- // they pulled down far enough, so it's ready to refresh
582
- this.beginRefresh();
583
- }
584
- else if (this.state === 2 /* RefresherState.Pulling */) {
585
- // they were pulling down, but didn't pull down far enough
586
- // set the content back to it's original location
587
- // and close the refresher
588
- // set that the refresh is actively cancelling
589
- this.cancel();
590
- }
591
- else if (this.state === 1 /* RefresherState.Inactive */) {
592
- /**
593
- * The pull to refresh gesture was aborted
594
- * so we should immediately restore any overflow styles
595
- * that have been modified. Do not call this.cancel
596
- * because the styles will only be reset after a timeout.
597
- * If the gesture is aborted then scrolling should be
598
- * available right away.
599
- */
600
- this.restoreOverflowStyle();
601
- }
602
- }
603
- beginRefresh() {
604
- // assumes we're already back in a zone
605
- // they pulled down far enough, so it's ready to refresh
606
- this.state = 8 /* RefresherState.Refreshing */;
607
- // place the content in a hangout position while it thinks
608
- this.setCss(this.pullMin, this.snapbackDuration, true, '');
609
- /**
610
- * Clear focus from any active element to prevent the browser
611
- * from restoring focus and causing scroll jumps after refresh.
612
- * This ensures the view stays at the top after refresh completes.
613
- */
614
- const activeElement = document.activeElement;
615
- if ((activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur) !== undefined) {
616
- activeElement.blur();
617
- }
618
- // emit "refresh" because it was pulled down far enough
619
- // and they let go to begin refreshing
620
- this.ionRefresh.emit({
621
- complete: this.complete.bind(this),
622
- });
623
- }
624
- close(state, delay) {
625
- // create fallback timer incase something goes wrong with transitionEnd event
626
- setTimeout(() => {
627
- var _a;
628
- this.state = 1 /* RefresherState.Inactive */;
629
- this.progress = 0;
630
- this.didStart = false;
631
- /**
632
- * Reset any overflow styles so the
633
- * user can scroll again.
634
- */
635
- this.setCss(0, '0ms', false, '', true);
636
- /**
637
- * Reset the offset-top style on the background content
638
- * when the refresher is no longer refreshing and the
639
- * content is fullscreen.
640
- *
641
- * This ensures that the behavior of background content
642
- * does not change when refreshing is complete.
643
- */
644
- if (this.contentFullscreen && this.backgroundContentEl) {
645
- (_a = this.backgroundContentEl) === null || _a === void 0 ? void 0 : _a.style.removeProperty('--offset-top');
646
- }
647
- }, 600);
648
- // reset the styles on the scroll element
649
- // set that the refresh is actively cancelling/completing
650
- this.state = state;
651
- this.setCss(0, this.closeDuration, true, delay);
652
- }
653
- setCss(y, duration, overflowVisible, delay, shouldRestoreOverflowStyle = false) {
654
- if (this.nativeRefresher) {
655
- return;
656
- }
657
- this.appliedStyles = y > 0;
658
- writeTask(() => {
659
- if (this.scrollEl && this.backgroundContentEl) {
660
- const scrollStyle = this.scrollEl.style;
661
- const backgroundStyle = this.backgroundContentEl.style;
662
- scrollStyle.transform = backgroundStyle.transform = y > 0 ? `translateY(${y}px) translateZ(0px)` : '';
663
- scrollStyle.transitionDuration = backgroundStyle.transitionDuration = duration;
664
- scrollStyle.transitionDelay = backgroundStyle.transitionDelay = delay;
665
- scrollStyle.overflow = overflowVisible ? 'hidden' : '';
666
- }
667
- /**
668
- * Reset the overflow styles only once
669
- * the pull to refresh effect has been closed.
670
- * This ensures that the gesture is done
671
- * and the refresh operation has either
672
- * been aborted or has completed.
673
- */
674
- if (shouldRestoreOverflowStyle) {
675
- this.restoreOverflowStyle();
676
- }
677
- });
678
- }
679
- memoizeOverflowStyle() {
680
- if (this.scrollEl) {
681
- const { overflow, overflowX, overflowY } = this.scrollEl.style;
682
- this.overflowStyles = {
683
- overflow: overflow !== null && overflow !== void 0 ? overflow : '',
684
- overflowX: overflowX !== null && overflowX !== void 0 ? overflowX : '',
685
- overflowY: overflowY !== null && overflowY !== void 0 ? overflowY : '',
686
- };
687
- }
688
- }
689
- restoreOverflowStyle() {
690
- if (this.overflowStyles !== undefined && this.scrollEl !== undefined) {
691
- const { overflow, overflowX, overflowY } = this.overflowStyles;
692
- this.scrollEl.style.overflow = overflow;
693
- this.scrollEl.style.overflowX = overflowX;
694
- this.scrollEl.style.overflowY = overflowY;
695
- this.overflowStyles = undefined;
696
- }
697
- }
698
- render() {
699
- const mode = getIonMode(this);
700
- return (h(Host, { key: '06d61cc53260ce146dd6906cc96597e9baaa17cf', slot: "fixed", class: {
701
- [mode]: true,
702
- // Used internally for styling
703
- [`refresher-${mode}`]: true,
704
- 'refresher-native': this.nativeRefresher,
705
- 'refresher-active': this.state !== 1 /* RefresherState.Inactive */,
706
- 'refresher-pulling': this.state === 2 /* RefresherState.Pulling */,
707
- 'refresher-ready': this.state === 4 /* RefresherState.Ready */,
708
- 'refresher-refreshing': this.state === 8 /* RefresherState.Refreshing */,
709
- 'refresher-cancelling': this.state === 16 /* RefresherState.Cancelling */,
710
- 'refresher-completing': this.state === 32 /* RefresherState.Completing */,
711
- } }));
712
- }
713
- get el() { return this; }
714
- static get watchers() { return {
715
- "disabled": ["disabledChanged"]
716
- }; }
717
- static get style() { return {
718
- ios: refresherIosCss,
719
- md: refresherMdCss
720
- }; }
721
- }, [288, "ion-refresher", {
722
- "pullMin": [2, "pull-min"],
723
- "pullMax": [2, "pull-max"],
724
- "closeDuration": [1, "close-duration"],
725
- "snapbackDuration": [1, "snapback-duration"],
726
- "pullFactor": [2, "pull-factor"],
727
- "disabled": [4],
728
- "nativeRefresher": [32],
729
- "state": [32],
730
- "complete": [64],
731
- "cancel": [64],
732
- "getProgress": [64]
733
- }, undefined, {
734
- "disabled": ["disabledChanged"]
735
- }]);
736
- function defineCustomElement$1() {
737
- if (typeof customElements === "undefined") {
738
- return;
739
- }
740
- const components = ["ion-refresher"];
741
- components.forEach(tagName => { switch (tagName) {
742
- case "ion-refresher":
743
- if (!customElements.get(tagName)) {
744
- customElements.define(tagName, Refresher);
745
- }
746
- break;
747
- } });
748
- }
749
-
750
- const IonRefresher = Refresher;
751
- const defineCustomElement = defineCustomElement$1;
752
-
753
- export { IonRefresher, defineCustomElement };
4
+ import{p as e,H as r,e as i,w as s,k as t,j as n,h as o,t as h,d as a}from"./p-BJoMtgfR.js";import{g as f}from"./p-hHmYLOfE.js";import{I as l,b as c,p,g}from"./p-C59ryAuS.js";import{t as d,f as m,g as u,c as b,r as v}from"./p-DgbT0exM.js";import{c as x,I as w}from"./p-cyNmxje6.js";import{b as k}from"./p-CDfQnFrd.js";import{s as y,t as j,a as S,h as R,b as C,c as E,d as M,g as N}from"./p-CgqKJg96.js";const z=e(class extends r{constructor(e){super(),!1!==e&&this.__registerHost(),this.ionRefresh=i(this,"ionRefresh",7),this.ionPull=i(this,"ionPull",7),this.ionStart=i(this,"ionStart",7),this.ionPullStart=i(this,"ionPullStart",7),this.ionPullEnd=i(this,"ionPullEnd",7),this.appliedStyles=!1,this.didStart=!1,this.progress=0,this.pointerDown=!1,this.needsCompletion=!1,this.didRefresh=!1,this.contentFullscreen=!1,this.lastVelocityY=0,this.animations=[],this.nativeRefresher=!1,this.state=1,this.pullMin=60,this.pullMax=this.pullMin+60,this.closeDuration="280ms",this.snapbackDuration="280ms",this.pullFactor=1,this.disabled=!1}disabledChanged(){this.gesture&&this.gesture.enable(!this.disabled)}async checkNativeRefresher(){const e=await y(this.el,k(this));if(e&&!this.nativeRefresher){const e=this.el.closest("ion-content");this.setupNativeRefresher(e)}else e||this.destroyNativeRefresher()}destroyNativeRefresher(){this.scrollEl&&this.scrollListenerCallback&&(this.scrollEl.removeEventListener("scroll",this.scrollListenerCallback),this.scrollListenerCallback=void 0),this.nativeRefresher=!1}async resetNativeRefresher(e,r){this.state=r,"ios"===k(this)?await j(e,void 0,300):await d(this.el.querySelector(".refresher-refreshing-icon"),200),this.didRefresh=!1,this.needsCompletion=!1,this.pointerDown=!1,this.animations.forEach((e=>e.destroy())),this.animations=[],this.progress=0,this.state=1,this.ionPullEnd.emit({reason:32===r?"complete":"cancel"})}async setupiOSNativeRefresher(e,r){this.elementToTransform=this.scrollEl;const i=e.shadowRoot.querySelectorAll("svg");let n=.16*this.scrollEl.clientHeight;const o=i.length;s((()=>i.forEach((e=>e.style.setProperty("animation","none"))))),this.scrollListenerCallback=()=>{(this.pointerDown||1!==this.state)&&t((()=>{const e=this.scrollEl.scrollTop,t=this.el.clientHeight;if(e>0){if(8===this.state){const i=m(0,e/(.5*t),1);return void s((()=>S(r,1-i)))}return}this.pointerDown&&(this.didStart||(this.didStart=!0,this.ionStart.emit(),this.ionPullStart.emit()),this.pointerDown&&this.ionPull.emit());const h=this.didStart?30:0,a=this.progress=m(0,(Math.abs(e)-h)/n,1);if(8===this.state||1===a){if(this.pointerDown&&R(r,this.lastVelocityY),!this.didRefresh){this.beginRefresh(),this.didRefresh=!0,x({style:w.Light});const e=document.activeElement;void 0!==(null==e?void 0:e.blur)&&e.blur(),this.pointerDown||j(this.elementToTransform,t+"px")}}else this.state=2,C(i,o,a)}))},this.scrollEl.addEventListener("scroll",this.scrollListenerCallback),this.gesture=(await import("./p-Cl0B-RWe.js")).createGesture({el:this.scrollEl,gestureName:"refresher",gesturePriority:31,direction:"y",threshold:5,onStart:()=>{this.pointerDown=!0,this.didRefresh||j(this.elementToTransform,"0px"),0===n&&(n=.16*this.scrollEl.clientHeight)},onMove:e=>{this.lastVelocityY=e.velocityY},onEnd:()=>{const e=this.didStart;this.pointerDown=!1,this.didStart=!1,this.needsCompletion?(this.resetNativeRefresher(this.elementToTransform,32),this.needsCompletion=!1):this.didRefresh?t((()=>j(this.elementToTransform,this.el.clientHeight+"px"))):e&&this.ionPullEnd.emit({reason:"cancel"})}}),this.disabledChanged()}async setupMDNativeRefresher(e,r,i){const t=u(r).querySelector("circle"),n=this.el.querySelector("ion-refresher-content .refresher-pulling-icon"),o=u(i).querySelector("circle");null!==t&&null!==o&&s((()=>{t.style.setProperty("animation","none"),i.style.setProperty("animation-delay","-655ms"),o.style.setProperty("animation-delay","-655ms")})),this.gesture=(await import("./p-Cl0B-RWe.js")).createGesture({el:this.scrollEl,gestureName:"refresher",gesturePriority:31,direction:"y",threshold:5,canStart:()=>8!==this.state&&32!==this.state&&0===this.scrollEl.scrollTop,onStart:e=>{this.progress=0,e.data={animation:void 0,didStart:!1,cancelled:!1}},onMove:r=>{if(r.velocityY<0&&0===this.progress&&!r.data.didStart||r.data.cancelled)r.data.cancelled=!0;else{if(!r.data.didStart){r.data.didStart=!0,this.state=2;const{scrollEl:i}=this,t=i.matches(l)?"overflow":"--overflow";s((()=>i.style.setProperty(t,"hidden")));const o=N(e),h=M(o,n,this.el);return r.data.animation=h,h.progressStart(!1,0),this.ionStart.emit(),this.ionPullStart.emit(),void this.animations.push(h)}this.progress=m(0,r.deltaY/180*.5,1),r.data.animation.progressStep(this.progress),this.ionPull.emit()}},onEnd:e=>{if(!e.data.didStart)return;this.gesture.enable(!1);const{scrollEl:r}=this,i=r.matches(l)?"overflow":"--overflow";if(s((()=>r.style.removeProperty(i))),this.progress<=.4)return void e.data.animation.progressEnd(0,this.progress,500).onFinish((()=>{this.animations.forEach((e=>e.destroy())),this.animations=[],this.gesture.enable(!0),this.state=1,this.ionPullEnd.emit({reason:"cancel"})}));const t=f([0,0],[0,0],[1,1],[1,1],this.progress)[0],o=E(n);this.animations.push(o),s((async()=>{n.style.setProperty("--ion-pulling-refresher-translate",100*t+"px"),e.data.animation.progressEnd(),await o.play(),this.beginRefresh(),e.data.animation.destroy(),this.gesture.enable(!0)}))}}),this.disabledChanged()}async setupNativeRefresher(e){if(this.scrollListenerCallback||!e||this.nativeRefresher||!this.scrollEl)return;this.setCss(0,"",!1,""),this.nativeRefresher=!0;const r=this.el.querySelector("ion-refresher-content .refresher-pulling ion-spinner"),i=this.el.querySelector("ion-refresher-content .refresher-refreshing ion-spinner");"ios"===k(this)?this.setupiOSNativeRefresher(r,i):this.setupMDNativeRefresher(e,r,i)}componentDidUpdate(){this.checkNativeRefresher()}async connectedCallback(){if("fixed"!==this.el.getAttribute("slot"))return void n('[ion-refresher] - Make sure you use: <ion-refresher slot="fixed">');const e=this.el.closest(c);e?b(e,(async()=>{const r=e.querySelector(l);this.scrollEl=await g(null!=r?r:e),this.backgroundContentEl=await e.getBackgroundElement(),this.contentFullscreen=e.fullscreen,await y(this.el,k(this))?this.setupNativeRefresher(e):(this.gesture=(await import("./p-Cl0B-RWe.js")).createGesture({el:e,gestureName:"refresher",gesturePriority:31,direction:"y",threshold:20,passive:!1,canStart:()=>this.canStart(),onStart:()=>this.onStart(),onMove:e=>this.onMove(e),onEnd:()=>this.onEnd()}),this.disabledChanged())})):p(this.el)}disconnectedCallback(){this.destroyNativeRefresher(),this.scrollEl=void 0,this.gesture&&(this.gesture.destroy(),this.gesture=void 0)}async complete(){this.nativeRefresher?(this.needsCompletion=!0,this.pointerDown||v((()=>v((()=>this.resetNativeRefresher(this.elementToTransform,32)))))):this.close(32,"120ms")}async cancel(){this.nativeRefresher?this.pointerDown||v((()=>v((()=>this.resetNativeRefresher(this.elementToTransform,16))))):this.close(16,"")}getProgress(){return Promise.resolve(this.progress)}canStart(){return!(!this.scrollEl||1!==this.state||this.scrollEl.scrollTop>0)}onStart(){this.progress=0,this.state=1,this.memoizeOverflowStyle(),this.contentFullscreen&&this.backgroundContentEl&&this.backgroundContentEl.style.setProperty("--offset-top","0px")}onMove(e){if(!this.scrollEl)return;const r=e.event;if(void 0!==r.touches&&r.touches.length>1)return;if(56&this.state)return;const i=e.deltaY*(Number.isNaN(this.pullFactor)||this.pullFactor<0?1:this.pullFactor);if(i<=0)return this.progress=0,this.state=1,this.appliedStyles?void this.setCss(0,"",!1,""):void 0;if(1===this.state){if(this.scrollEl.scrollTop>0)return void(this.progress=0);this.state=2}if(r.cancelable&&r.preventDefault(),this.setCss(i,"0ms",!0,""),0===i)return void(this.progress=0);const s=this.pullMin;this.progress=i/s,this.didStart||(this.didStart=!0,this.ionStart.emit(),this.ionPullStart.emit()),this.ionPull.emit(),i<s?this.state=2:i>this.pullMax?this.beginRefresh():this.state=4}onEnd(){4===this.state?this.beginRefresh():2===this.state?this.cancel():1===this.state&&(this.restoreOverflowStyle(),this.didStart&&(this.didStart=!1,this.ionPullEnd.emit({reason:"cancel"})))}beginRefresh(){this.state=8,this.setCss(this.pullMin,this.snapbackDuration,!0,"");const e=document.activeElement;void 0!==(null==e?void 0:e.blur)&&e.blur(),this.ionRefresh.emit({complete:this.complete.bind(this)})}close(e,r){setTimeout((()=>{var r;this.state=1,this.progress=0,this.didStart=!1,this.setCss(0,"0ms",!1,"",!0),this.contentFullscreen&&this.backgroundContentEl&&(null===(r=this.backgroundContentEl)||void 0===r||r.style.removeProperty("--offset-top")),this.ionPullEnd.emit({reason:32===e?"complete":"cancel"})}),600),this.state=e,this.setCss(0,this.closeDuration,!0,r)}setCss(e,r,i,t,n=!1){this.nativeRefresher||(this.appliedStyles=e>0,s((()=>{if(this.scrollEl&&this.backgroundContentEl){const s=this.scrollEl.style,n=this.backgroundContentEl.style;s.transform=n.transform=e>0?`translateY(${e}px) translateZ(0px)`:"",s.transitionDuration=n.transitionDuration=r,s.transitionDelay=n.transitionDelay=t,s.overflow=i?"hidden":""}n&&this.restoreOverflowStyle()})))}memoizeOverflowStyle(){if(this.scrollEl){const{overflow:e,overflowX:r,overflowY:i}=this.scrollEl.style;this.overflowStyles={overflow:null!=e?e:"",overflowX:null!=r?r:"",overflowY:null!=i?i:""}}}restoreOverflowStyle(){if(void 0!==this.overflowStyles&&void 0!==this.scrollEl){const{overflow:e,overflowX:r,overflowY:i}=this.overflowStyles;this.scrollEl.style.overflow=e,this.scrollEl.style.overflowX=r,this.scrollEl.style.overflowY=i,this.overflowStyles=void 0}}render(){const e=k(this);return o(a,{key:"80fa313b0d77161680836bdd6aa334d02c549b41",slot:"fixed",class:{[e]:!0,["refresher-"+e]:!0,"refresher-native":this.nativeRefresher,"refresher-active":1!==this.state,"refresher-pulling":2===this.state,"refresher-ready":4===this.state,"refresher-refreshing":8===this.state,"refresher-cancelling":16===this.state,"refresher-completing":32===this.state}})}get el(){return this}static get watchers(){return{disabled:[{disabledChanged:0}]}}static get style(){return{ios:"ion-refresher{top:0;display:none;position:absolute;width:100%;height:60px;pointer-events:none;z-index:-1}ion-refresher{inset-inline-start:0}ion-refresher.refresher-active{display:block}ion-refresher-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.refresher-pulling,.refresher-refreshing{display:none;width:100%}.refresher-pulling-icon,.refresher-refreshing-icon{-webkit-transform-origin:center;transform-origin:center;-webkit-transition:200ms;transition:200ms;font-size:30px;text-align:center}:host-context([dir=rtl]) .refresher-pulling-icon,:host-context([dir=rtl]) .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}[dir=rtl] .refresher-pulling-icon,[dir=rtl] .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}@supports selector(:dir(rtl)){.refresher-pulling-icon:dir(rtl),.refresher-refreshing-icon:dir(rtl){-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}}.refresher-pulling-text,.refresher-refreshing-text{font-size:16px;text-align:center}ion-refresher-content .arrow-container{display:none}.refresher-pulling ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.refresher-refreshing ion-refresher-content .refresher-refreshing{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-completing ion-refresher-content .refresher-refreshing{display:block}.refresher-completing ion-refresher-content .refresher-refreshing-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-native .refresher-pulling-text,.refresher-native .refresher-refreshing-text{display:none}.refresher-ios .refresher-pulling-icon,.refresher-ios .refresher-refreshing-icon{color:var(--ion-text-color, #000)}.refresher-ios .refresher-pulling-text,.refresher-ios .refresher-refreshing-text{color:var(--ion-text-color, #000)}.refresher-ios .refresher-refreshing .spinner-lines-ios line,.refresher-ios .refresher-refreshing .spinner-lines-small-ios line,.refresher-ios .refresher-refreshing .spinner-crescent circle{stroke:var(--ion-text-color, #000)}.refresher-ios .refresher-refreshing .spinner-bubbles circle,.refresher-ios .refresher-refreshing .spinner-circles circle,.refresher-ios .refresher-refreshing .spinner-dots circle{fill:var(--ion-text-color, #000)}ion-refresher.refresher-native{display:block;z-index:1}ion-refresher.refresher-native ion-spinner{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}.refresher-native .refresher-refreshing ion-spinner{--refreshing-rotation-duration:2s;display:none;-webkit-animation:var(--refreshing-rotation-duration) ease-out refresher-rotate forwards;animation:var(--refreshing-rotation-duration) ease-out refresher-rotate forwards}.refresher-native .refresher-refreshing{display:none;-webkit-animation:250ms linear refresher-pop forwards;animation:250ms linear refresher-pop forwards}.refresher-native ion-spinner{width:32px;height:32px;color:var(--ion-color-step-450, var(--ion-background-color-step-450, #747577))}.refresher-native.refresher-refreshing .refresher-pulling ion-spinner,.refresher-native.refresher-completing .refresher-pulling ion-spinner{display:none}.refresher-native.refresher-refreshing .refresher-refreshing ion-spinner,.refresher-native.refresher-completing .refresher-refreshing ion-spinner{display:block}.refresher-native.refresher-pulling .refresher-pulling ion-spinner{display:block}.refresher-native.refresher-pulling .refresher-refreshing ion-spinner{display:none}.refresher-native.refresher-completing ion-refresher-content .refresher-refreshing-icon{-webkit-transform:scale(0) rotate(180deg);transform:scale(0) rotate(180deg);-webkit-transition:300ms;transition:300ms}@-webkit-keyframes refresher-pop{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}50%{-webkit-transform:scale(1.2);transform:scale(1.2);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes refresher-pop{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}50%{-webkit-transform:scale(1.2);transform:scale(1.2);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes refresher-rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@keyframes refresher-rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}",md:"ion-refresher{top:0;display:none;position:absolute;width:100%;height:60px;pointer-events:none;z-index:-1}ion-refresher{inset-inline-start:0}ion-refresher.refresher-active{display:block}ion-refresher-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.refresher-pulling,.refresher-refreshing{display:none;width:100%}.refresher-pulling-icon,.refresher-refreshing-icon{-webkit-transform-origin:center;transform-origin:center;-webkit-transition:200ms;transition:200ms;font-size:30px;text-align:center}:host-context([dir=rtl]) .refresher-pulling-icon,:host-context([dir=rtl]) .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}[dir=rtl] .refresher-pulling-icon,[dir=rtl] .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}@supports selector(:dir(rtl)){.refresher-pulling-icon:dir(rtl),.refresher-refreshing-icon:dir(rtl){-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}}.refresher-pulling-text,.refresher-refreshing-text{font-size:16px;text-align:center}ion-refresher-content .arrow-container{display:none}.refresher-pulling ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.refresher-refreshing ion-refresher-content .refresher-refreshing{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-completing ion-refresher-content .refresher-refreshing{display:block}.refresher-completing ion-refresher-content .refresher-refreshing-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-native .refresher-pulling-text,.refresher-native .refresher-refreshing-text{display:none}.refresher-md .refresher-pulling-icon,.refresher-md .refresher-refreshing-icon{color:var(--ion-text-color, #000)}.refresher-md .refresher-pulling-text,.refresher-md .refresher-refreshing-text{color:var(--ion-text-color, #000)}.refresher-md .refresher-refreshing .spinner-lines-md line,.refresher-md .refresher-refreshing .spinner-lines-small-md line,.refresher-md .refresher-refreshing .spinner-crescent circle{stroke:var(--ion-text-color, #000)}.refresher-md .refresher-refreshing .spinner-bubbles circle,.refresher-md .refresher-refreshing .spinner-circles circle,.refresher-md .refresher-refreshing .spinner-dots circle{fill:var(--ion-text-color, #000)}ion-refresher.refresher-native{display:block;z-index:1}ion-refresher.refresher-native ion-spinner{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;width:24px;height:24px;color:var(--ion-color-primary, #0054e9)}ion-refresher.refresher-native .spinner-arrow-container{display:inherit}ion-refresher.refresher-native .arrow-container{display:block;position:absolute;width:24px;height:24px}ion-refresher.refresher-native .arrow-container ion-icon{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;left:0;right:0;bottom:-4px;position:absolute;color:var(--ion-color-primary, #0054e9);font-size:12px}ion-refresher.refresher-native.refresher-pulling ion-refresher-content .refresher-pulling,ion-refresher.refresher-native.refresher-ready ion-refresher-content .refresher-pulling{display:-ms-flexbox;display:flex}ion-refresher.refresher-native.refresher-refreshing ion-refresher-content .refresher-refreshing,ion-refresher.refresher-native.refresher-completing ion-refresher-content .refresher-refreshing,ion-refresher.refresher-native.refresher-cancelling ion-refresher-content .refresher-refreshing{display:-ms-flexbox;display:flex}ion-refresher.refresher-native .refresher-pulling-icon{-webkit-transform:translateY(calc(-100% - 10px));transform:translateY(calc(-100% - 10px))}ion-refresher.refresher-native .refresher-pulling-icon,ion-refresher.refresher-native .refresher-refreshing-icon{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;border-radius:100%;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;display:-ms-flexbox;display:flex;border:1px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #ececec));background:var(--ion-color-step-250, var(--ion-background-color-step-250, #ffffff));-webkit-box-shadow:0px 1px 6px rgba(0, 0, 0, 0.1);box-shadow:0px 1px 6px rgba(0, 0, 0, 0.1)}"}}},[32,"ion-refresher",{pullMin:[2,"pull-min"],pullMax:[2,"pull-max"],closeDuration:[1,"close-duration"],snapbackDuration:[1,"snapback-duration"],pullFactor:[2,"pull-factor"],disabled:[4],nativeRefresher:[32],state:[32],complete:[64],cancel:[64],getProgress:[64]},void 0,{disabled:[{disabledChanged:0}]}]),P=z,Y=function(){"undefined"!=typeof customElements&&["ion-refresher"].forEach((e=>{"ion-refresher"===e&&(customElements.get(h(e))||customElements.define(h(e),z))}))};export{P as IonRefresher,Y as defineCustomElement}