@ionic/core 8.7.17-dev.11771959013.18adabe2 → 8.7.17-dev.11772055571.14fddd38

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 (525) hide show
  1. package/components/action-sheet.js +561 -1
  2. package/components/alert.js +610 -1
  3. package/components/animation.js +817 -1
  4. package/components/backdrop.js +72 -1
  5. package/components/button-active.js +64 -1
  6. package/components/button.js +303 -1
  7. package/components/buttons.js +56 -1
  8. package/components/capacitor.js +10 -1
  9. package/components/checkbox.js +261 -1
  10. package/components/config.js +192 -1
  11. package/components/content.js +475 -1
  12. package/components/cubic-bezier.js +87 -1
  13. package/components/data.js +1635 -1
  14. package/components/dir.js +15 -1
  15. package/components/focus-visible.js +72 -1
  16. package/components/framework-delegate.js +137 -1
  17. package/components/gesture-controller.js +192 -1
  18. package/components/haptic.js +155 -1
  19. package/components/hardware-back-button.js +112 -1
  20. package/components/header.js +417 -1
  21. package/components/helpers.js +336 -1
  22. package/components/icon.js +456 -1
  23. package/components/index.d.ts +0 -2
  24. package/components/index.js +115 -1
  25. package/components/index2.js +416 -1
  26. package/components/index3.js +452 -1
  27. package/components/index4.js +118 -1
  28. package/components/index5.js +303 -1
  29. package/components/index6.js +29 -1
  30. package/components/index7.js +164 -1
  31. package/components/index8.js +125 -1
  32. package/components/index9.js +4 -1
  33. package/components/input-shims.js +624 -1
  34. package/components/input.utils.js +144 -1
  35. package/components/ion-accordion-group.js +269 -1
  36. package/components/ion-accordion.js +457 -1
  37. package/components/ion-action-sheet.js +6 -1
  38. package/components/ion-alert.js +6 -1
  39. package/components/ion-app.js +128 -1
  40. package/components/ion-avatar.js +41 -1
  41. package/components/ion-back-button.js +131 -1
  42. package/components/ion-backdrop.js +6 -1
  43. package/components/ion-badge.js +47 -1
  44. package/components/ion-breadcrumb.js +137 -1
  45. package/components/ion-breadcrumbs.js +164 -1
  46. package/components/ion-button.js +6 -1
  47. package/components/ion-buttons.js +6 -1
  48. package/components/ion-card-content.js +45 -1
  49. package/components/ion-card-header.js +56 -1
  50. package/components/ion-card-subtitle.js +48 -1
  51. package/components/ion-card-title.js +48 -1
  52. package/components/ion-card.js +107 -1
  53. package/components/ion-checkbox.js +6 -1
  54. package/components/ion-chip.js +66 -1
  55. package/components/ion-col.js +163 -1
  56. package/components/ion-content.js +6 -1
  57. package/components/ion-datetime-button.js +384 -1
  58. package/components/ion-datetime.js +2046 -1
  59. package/components/ion-fab-button.js +151 -1
  60. package/components/ion-fab-list.js +66 -1
  61. package/components/ion-fab.js +101 -1
  62. package/components/ion-footer.js +159 -1
  63. package/components/ion-grid.js +46 -1
  64. package/components/ion-header.js +6 -1
  65. package/components/ion-icon.js +6 -1
  66. package/components/ion-img.js +124 -1
  67. package/components/ion-infinite-scroll-content.js +70 -1
  68. package/components/ion-infinite-scroll.js +236 -1
  69. package/components/ion-input-otp.js +683 -1
  70. package/components/ion-input-password-toggle.js +129 -1
  71. package/components/ion-input.js +617 -1
  72. package/components/ion-item-divider.js +59 -1
  73. package/components/ion-item-group.js +46 -1
  74. package/components/ion-item-option.js +91 -1
  75. package/components/ion-item-options.js +73 -1
  76. package/components/ion-item-sliding.js +458 -1
  77. package/components/ion-item.js +6 -1
  78. package/components/ion-label.js +6 -1
  79. package/components/ion-list-header.js +6 -1
  80. package/components/ion-list.js +6 -1
  81. package/components/ion-loading.js +344 -1
  82. package/components/ion-menu-button.js +110 -1
  83. package/components/ion-menu-toggle.js +64 -1
  84. package/components/ion-menu.js +745 -1
  85. package/components/ion-modal.js +6 -1
  86. package/components/ion-nav-link.js +64 -1
  87. package/components/ion-nav.js +956 -1
  88. package/components/ion-note.js +47 -1
  89. package/components/ion-picker-column-option.js +6 -1
  90. package/components/ion-picker-column.js +6 -1
  91. package/components/ion-picker-legacy-column.js +6 -1
  92. package/components/ion-picker-legacy.js +343 -1
  93. package/components/ion-picker.js +6 -1
  94. package/components/ion-popover.js +6 -1
  95. package/components/ion-progress-bar.js +101 -1
  96. package/components/ion-radio-group.js +6 -1
  97. package/components/ion-radio.js +6 -1
  98. package/components/ion-range.js +853 -1
  99. package/components/ion-refresher-content.js +89 -1
  100. package/components/ion-refresher.js +751 -1
  101. package/components/ion-reorder-group.js +322 -1
  102. package/components/ion-reorder.js +60 -1
  103. package/components/ion-ripple-effect.js +6 -1
  104. package/components/ion-route-redirect.js +45 -1
  105. package/components/ion-route.js +74 -1
  106. package/components/ion-router-link.js +61 -1
  107. package/components/ion-router-outlet.js +227 -1
  108. package/components/ion-router.js +841 -1
  109. package/components/ion-row.js +36 -1
  110. package/components/ion-searchbar.js +530 -1
  111. package/components/ion-segment-button.js +174 -1
  112. package/components/ion-segment-content.js +35 -1
  113. package/components/ion-segment-view.js +148 -1
  114. package/components/ion-segment.js +602 -1
  115. package/components/ion-select-modal.js +6 -1
  116. package/components/ion-select-option.js +46 -1
  117. package/components/ion-select-popover.js +6 -1
  118. package/components/ion-select.js +1037 -1
  119. package/components/ion-skeleton-text.js +65 -1
  120. package/components/ion-spinner.js +6 -1
  121. package/components/ion-split-pane.js +197 -1
  122. package/components/ion-tab-bar.js +115 -1
  123. package/components/ion-tab-button.js +128 -1
  124. package/components/ion-tab.js +91 -1
  125. package/components/ion-tabs.js +205 -1
  126. package/components/ion-text.js +42 -1
  127. package/components/ion-textarea.js +554 -1
  128. package/components/ion-thumbnail.js +36 -1
  129. package/components/ion-title.js +6 -1
  130. package/components/ion-toast.js +941 -1
  131. package/components/ion-toggle.js +361 -1
  132. package/components/ion-toolbar.js +6 -1
  133. package/components/ionic-global.js +144 -1
  134. package/components/ios.transition.js +672 -1
  135. package/components/item.js +302 -1
  136. package/components/keyboard-controller.js +162 -1
  137. package/components/keyboard.js +141 -1
  138. package/components/keyboard2.js +76 -1
  139. package/components/label.js +100 -1
  140. package/components/list-header.js +47 -1
  141. package/components/list.js +68 -1
  142. package/components/lock-controller.js +35 -1
  143. package/components/md.transition.js +51 -1
  144. package/components/menu-toggle-util.js +9 -1
  145. package/components/modal.js +2674 -1
  146. package/components/notch-controller.js +150 -1
  147. package/components/overlays.js +912 -1
  148. package/components/picker-column-option.js +136 -1
  149. package/components/picker-column.js +595 -1
  150. package/components/picker-column2.js +377 -1
  151. package/components/picker.js +498 -1
  152. package/components/popover.js +1502 -1
  153. package/components/radio-group.js +287 -1
  154. package/components/radio.js +229 -1
  155. package/components/refresher.utils.js +193 -1
  156. package/components/ripple-effect.js +109 -1
  157. package/components/select-modal.js +196 -1
  158. package/components/select-popover.js +189 -1
  159. package/components/spinner.js +224 -1
  160. package/components/status-tap.js +36 -1
  161. package/components/swipe-back.js +75 -1
  162. package/components/theme.js +40 -1
  163. package/components/title.js +70 -1
  164. package/components/toolbar.js +89 -1
  165. package/components/validity.js +14 -1
  166. package/components/watch-options.js +44 -1
  167. package/dist/cjs/{animation-Dg4yiuR2.js → animation-Bt3H9L1C.js} +1 -1
  168. package/dist/cjs/app-globals-Ciccnk9_.js +10 -0
  169. package/dist/cjs/{button-active-FscMI17-.js → button-active-CMc8cD90.js} +1 -1
  170. package/dist/cjs/{config-BukYi_pW.js → config-C5fsO43a.js} +1 -1
  171. package/dist/cjs/{data-BYlBjkMU.js → data-JwZKaIQB.js} +1 -1
  172. package/dist/cjs/{framework-delegate-CRgp8o_p.js → framework-delegate-DMJRBuDi.js} +1 -1
  173. package/dist/cjs/{hardware-back-button-C4rMJ5uI.js → hardware-back-button-VCK4V3mG.js} +1 -1
  174. package/dist/cjs/{helpers-CxTYJdbT.js → helpers-DrTqNghc.js} +1 -1
  175. package/dist/cjs/{index-C845Ti6K.js → index-094mMFB-.js} +4 -4
  176. package/dist/cjs/{index-YcSftOMz.js → index-C534ULug.js} +2 -2
  177. package/dist/cjs/{index-MbaBbWXk.js → index-CO6eryBo.js} +2 -2
  178. package/dist/cjs/{index-CqT-2gKy.js → index-D6Wc6v08.js} +382 -503
  179. package/dist/cjs/{index-CFUwM5x_.js → index-DrMUZJj6.js} +5 -5
  180. package/dist/cjs/index.cjs.js +12 -12
  181. package/dist/cjs/{input-shims-DlFhYYTs.js → input-shims-CW0KUFTQ.js} +3 -3
  182. package/dist/cjs/{input.utils-DmeJ8dmo.js → input.utils-B_QROI2g.js} +2 -2
  183. package/dist/cjs/ion-accordion_2.cjs.entry.js +15 -23
  184. package/dist/cjs/ion-action-sheet.cjs.entry.js +15 -21
  185. package/dist/cjs/ion-alert.cjs.entry.js +17 -25
  186. package/dist/cjs/ion-app_8.cjs.entry.js +40 -44
  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 +14 -20
  191. package/dist/cjs/ion-button_2.cjs.entry.js +18 -36
  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 +39 -67
  198. package/dist/cjs/ion-fab_3.cjs.entry.js +13 -17
  199. package/dist/cjs/ion-img.cjs.entry.js +6 -8
  200. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +13 -17
  201. package/dist/cjs/ion-input-otp.cjs.entry.js +10 -16
  202. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +7 -9
  203. package/dist/cjs/ion-input.cjs.entry.js +13 -21
  204. package/dist/cjs/ion-item-option_3.cjs.entry.js +15 -17
  205. package/dist/cjs/ion-item_8.cjs.entry.js +36 -42
  206. package/dist/cjs/ion-loading.cjs.entry.js +14 -18
  207. package/dist/cjs/ion-menu_3.cjs.entry.js +22 -30
  208. package/dist/cjs/ion-modal.cjs.entry.js +221 -62
  209. package/dist/cjs/ion-nav_2.cjs.entry.js +10 -14
  210. package/dist/cjs/ion-picker-column-option.cjs.entry.js +8 -10
  211. package/dist/cjs/ion-picker-column.cjs.entry.js +7 -11
  212. package/dist/cjs/ion-picker.cjs.entry.js +6 -6
  213. package/dist/cjs/ion-popover.cjs.entry.js +15 -21
  214. package/dist/cjs/ion-progress-bar.cjs.entry.js +7 -7
  215. package/dist/cjs/ion-radio_2.cjs.entry.js +13 -17
  216. package/dist/cjs/ion-range.cjs.entry.js +54 -180
  217. package/dist/cjs/ion-refresher_2.cjs.entry.js +14 -45
  218. package/dist/cjs/ion-reorder_2.cjs.entry.js +11 -13
  219. package/dist/cjs/ion-ripple-effect.cjs.entry.js +4 -4
  220. package/dist/cjs/ion-route_4.cjs.entry.js +10 -20
  221. package/dist/cjs/ion-searchbar.cjs.entry.js +12 -22
  222. package/dist/cjs/ion-segment-content.cjs.entry.js +3 -3
  223. package/dist/cjs/ion-segment-view.cjs.entry.js +5 -5
  224. package/dist/cjs/ion-segment_2.cjs.entry.js +16 -26
  225. package/dist/cjs/ion-select-modal.cjs.entry.js +12 -12
  226. package/dist/cjs/ion-select_3.cjs.entry.js +21 -29
  227. package/dist/cjs/ion-spinner.cjs.entry.js +4 -4
  228. package/dist/cjs/ion-split-pane.cjs.entry.js +9 -15
  229. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +12 -14
  230. package/dist/cjs/ion-tab_2.cjs.entry.js +8 -10
  231. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  232. package/dist/cjs/ion-textarea.cjs.entry.js +12 -18
  233. package/dist/cjs/ion-toast.cjs.entry.js +15 -21
  234. package/dist/cjs/ion-toggle.cjs.entry.js +8 -10
  235. package/dist/cjs/{ionic-global-Bc3kJi1Z.js → ionic-global-HMVqOFGO.js} +1 -1
  236. package/dist/cjs/ionic.cjs.js +5 -5
  237. package/dist/cjs/{ios.transition-trBiC95R.js → ios.transition-BOt_uW73.js} +4 -4
  238. package/dist/cjs/loader.cjs.js +4 -4
  239. package/dist/cjs/{md.transition-CUQECuvD.js → md.transition-Dt968VXB.js} +4 -4
  240. package/dist/cjs/{notch-controller-sD-lTpdc.js → notch-controller-Bzqhjm4f.js} +1 -1
  241. package/dist/cjs/{overlays-C2jiBSNQ.js → overlays-B2b-TTbl.js} +5 -5
  242. package/dist/cjs/{status-tap-CCJk5VgT.js → status-tap-g0sWWkXk.js} +3 -3
  243. package/dist/cjs/{swipe-back-BGhTQ1CU.js → swipe-back-BIayeNOD.js} +2 -2
  244. package/dist/collection/collection-manifest.json +2 -2
  245. package/dist/collection/components/accordion-group/accordion-group.js +2 -4
  246. package/dist/collection/components/action-sheet/action-sheet.js +10 -20
  247. package/dist/collection/components/alert/alert.js +12 -24
  248. package/dist/collection/components/back-button/back-button.js +2 -4
  249. package/dist/collection/components/badge/badge.js +1 -2
  250. package/dist/collection/components/breadcrumb/breadcrumb.js +4 -8
  251. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -4
  252. package/dist/collection/components/button/button.js +3 -6
  253. package/dist/collection/components/card/card.js +3 -6
  254. package/dist/collection/components/card-header/card-header.js +1 -2
  255. package/dist/collection/components/card-subtitle/card-subtitle.js +1 -2
  256. package/dist/collection/components/card-title/card-title.js +1 -2
  257. package/dist/collection/components/checkbox/checkbox.js +2 -4
  258. package/dist/collection/components/chip/chip.js +1 -2
  259. package/dist/collection/components/content/content.js +4 -8
  260. package/dist/collection/components/datetime/datetime.js +15 -34
  261. package/dist/collection/components/datetime-button/datetime-button.js +1 -2
  262. package/dist/collection/components/fab-button/fab-button.js +3 -6
  263. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -4
  264. package/dist/collection/components/input/input.js +6 -11
  265. package/dist/collection/components/input-otp/input-otp.js +4 -8
  266. package/dist/collection/components/input-password-toggle/input-password-toggle.js +2 -4
  267. package/dist/collection/components/item/item.js +3 -6
  268. package/dist/collection/components/item-divider/item-divider.js +1 -2
  269. package/dist/collection/components/item-option/item-option.js +1 -2
  270. package/dist/collection/components/item-options/item-options.js +1 -2
  271. package/dist/collection/components/item-sliding/item-sliding.js +1 -2
  272. package/dist/collection/components/label/label.js +3 -6
  273. package/dist/collection/components/list-header/list-header.js +1 -2
  274. package/dist/collection/components/loading/loading.js +11 -22
  275. package/dist/collection/components/menu/menu.js +5 -10
  276. package/dist/collection/components/menu-button/menu-button.js +1 -2
  277. package/dist/collection/components/modal/gestures/sheet.js +108 -11
  278. package/dist/collection/components/modal/gestures/swipe-to-close.js +54 -1
  279. package/dist/collection/components/modal/modal.js +112 -58
  280. package/dist/collection/components/nav/nav.js +45 -89
  281. package/dist/collection/components/nav-link/nav-link.js +5 -9
  282. package/dist/collection/components/note/note.js +1 -2
  283. package/dist/collection/components/picker/picker.js +1 -2
  284. package/dist/collection/components/picker-column/picker-column.js +3 -6
  285. package/dist/collection/components/picker-column-option/picker-column-option.js +1 -2
  286. package/dist/collection/components/picker-legacy/picker.js +12 -24
  287. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -4
  288. package/dist/collection/components/popover/popover.js +17 -33
  289. package/dist/collection/components/progress-bar/progress-bar.js +1 -2
  290. package/dist/collection/components/radio/radio.js +1 -2
  291. package/dist/collection/components/radio-group/radio-group.js +3 -6
  292. package/dist/collection/components/range/range.js +50 -189
  293. package/dist/collection/components/refresher/refresher.js +5 -73
  294. package/dist/collection/components/refresher-content/refresher-content.js +4 -8
  295. package/dist/collection/components/reorder-group/reorder-group.js +3 -6
  296. package/dist/collection/components/route/route.js +2 -4
  297. package/dist/collection/components/router/router.js +5 -10
  298. package/dist/collection/components/router-link/router-link.js +3 -6
  299. package/dist/collection/components/router-outlet/router-outlet.js +9 -18
  300. package/dist/collection/components/searchbar/searchbar.js +6 -11
  301. package/dist/collection/components/segment/segment.js +5 -10
  302. package/dist/collection/components/segment-button/segment-button.js +2 -4
  303. package/dist/collection/components/segment-view/segment-view.js +1 -2
  304. package/dist/collection/components/select/select.js +5 -10
  305. package/dist/collection/components/select-modal/select-modal.js +1 -2
  306. package/dist/collection/components/select-popover/select-popover.js +1 -2
  307. package/dist/collection/components/skeleton-text/skeleton-text.js +1 -2
  308. package/dist/collection/components/spinner/spinner.js +2 -4
  309. package/dist/collection/components/tab/tab.js +2 -4
  310. package/dist/collection/components/tab-bar/tab-bar.js +2 -4
  311. package/dist/collection/components/tab-button/tab-button.js +2 -4
  312. package/dist/collection/components/tabs/tabs.js +2 -4
  313. package/dist/collection/components/text/text.js +1 -2
  314. package/dist/collection/components/textarea/textarea.js +3 -6
  315. package/dist/collection/components/title/title.js +2 -4
  316. package/dist/collection/components/toast/toast.js +17 -34
  317. package/dist/collection/components/toggle/toggle.js +2 -4
  318. package/dist/collection/components/toolbar/toolbar.js +1 -2
  319. package/dist/docs.d.ts +0 -37
  320. package/dist/docs.json +442 -971
  321. package/dist/esm/{animation-CnGMT4ji.js → animation-Dt8bGnA-.js} +1 -1
  322. package/dist/esm/app-globals-BDSf8fOA.js +8 -0
  323. package/dist/esm/{button-active-BBx21brx.js → button-active-L570Swow.js} +1 -1
  324. package/dist/esm/{config-TO1rZH52.js → config-mCdtaoPe.js} +1 -1
  325. package/dist/esm/{data-B9iGR5YO.js → data-DCORV9FH.js} +1 -1
  326. package/dist/esm/{framework-delegate-CyxE1S_P.js → framework-delegate-BYawdMXj.js} +1 -1
  327. package/dist/esm/{hardware-back-button-CTe4XmL7.js → hardware-back-button-CPLxO-Ev.js} +1 -1
  328. package/dist/esm/{helpers-Tl8jw6S2.js → helpers-DEn3pfjm.js} +1 -1
  329. package/dist/esm/{index-hW6eNZ3o.js → index-Bs3kT4bc.js} +2 -2
  330. package/dist/esm/{index-IGIE5vDm.js → index-C8IsBmNU.js} +382 -503
  331. package/dist/esm/{index-B2KwgBLx.js → index-CvDIirVx.js} +5 -5
  332. package/dist/esm/{index-BtUdxPjv.js → index-ceb5RaMT.js} +2 -2
  333. package/dist/esm/{index-B-hkiOUh.js → index-r2D9DEro.js} +4 -4
  334. package/dist/esm/index.js +12 -12
  335. package/dist/esm/{input-shims-C1hAaHcP.js → input-shims-DyOpfTg6.js} +3 -3
  336. package/dist/esm/{input.utils-Bxa_DQ7-.js → input.utils-DrvTa8gz.js} +2 -2
  337. package/dist/esm/ion-accordion_2.entry.js +15 -23
  338. package/dist/esm/ion-action-sheet.entry.js +15 -21
  339. package/dist/esm/ion-alert.entry.js +17 -25
  340. package/dist/esm/ion-app_8.entry.js +40 -44
  341. package/dist/esm/ion-avatar_3.entry.js +12 -12
  342. package/dist/esm/ion-back-button.entry.js +7 -7
  343. package/dist/esm/ion-backdrop.entry.js +6 -6
  344. package/dist/esm/ion-breadcrumb_2.entry.js +14 -20
  345. package/dist/esm/ion-button_2.entry.js +18 -36
  346. package/dist/esm/ion-card_5.entry.js +23 -23
  347. package/dist/esm/ion-checkbox.entry.js +7 -7
  348. package/dist/esm/ion-chip.entry.js +6 -6
  349. package/dist/esm/ion-col_3.entry.js +8 -8
  350. package/dist/esm/ion-datetime-button.entry.js +8 -8
  351. package/dist/esm/ion-datetime_3.entry.js +39 -67
  352. package/dist/esm/ion-fab_3.entry.js +13 -17
  353. package/dist/esm/ion-img.entry.js +6 -8
  354. package/dist/esm/ion-infinite-scroll_2.entry.js +13 -17
  355. package/dist/esm/ion-input-otp.entry.js +10 -16
  356. package/dist/esm/ion-input-password-toggle.entry.js +7 -9
  357. package/dist/esm/ion-input.entry.js +13 -21
  358. package/dist/esm/ion-item-option_3.entry.js +15 -17
  359. package/dist/esm/ion-item_8.entry.js +36 -42
  360. package/dist/esm/ion-loading.entry.js +14 -18
  361. package/dist/esm/ion-menu_3.entry.js +22 -30
  362. package/dist/esm/ion-modal.entry.js +221 -62
  363. package/dist/esm/ion-nav_2.entry.js +10 -14
  364. package/dist/esm/ion-picker-column-option.entry.js +8 -10
  365. package/dist/esm/ion-picker-column.entry.js +7 -11
  366. package/dist/esm/ion-picker.entry.js +6 -6
  367. package/dist/esm/ion-popover.entry.js +15 -21
  368. package/dist/esm/ion-progress-bar.entry.js +7 -7
  369. package/dist/esm/ion-radio_2.entry.js +13 -17
  370. package/dist/esm/ion-range.entry.js +54 -180
  371. package/dist/esm/ion-refresher_2.entry.js +14 -45
  372. package/dist/esm/ion-reorder_2.entry.js +11 -13
  373. package/dist/esm/ion-ripple-effect.entry.js +4 -4
  374. package/dist/esm/ion-route_4.entry.js +10 -20
  375. package/dist/esm/ion-searchbar.entry.js +12 -22
  376. package/dist/esm/ion-segment-content.entry.js +3 -3
  377. package/dist/esm/ion-segment-view.entry.js +5 -5
  378. package/dist/esm/ion-segment_2.entry.js +16 -26
  379. package/dist/esm/ion-select-modal.entry.js +12 -12
  380. package/dist/esm/ion-select_3.entry.js +21 -29
  381. package/dist/esm/ion-spinner.entry.js +4 -4
  382. package/dist/esm/ion-split-pane.entry.js +9 -15
  383. package/dist/esm/ion-tab-bar_2.entry.js +12 -14
  384. package/dist/esm/ion-tab_2.entry.js +8 -10
  385. package/dist/esm/ion-text.entry.js +4 -4
  386. package/dist/esm/ion-textarea.entry.js +12 -18
  387. package/dist/esm/ion-toast.entry.js +15 -21
  388. package/dist/esm/ion-toggle.entry.js +8 -10
  389. package/dist/esm/{ionic-global-DfbeLwcV.js → ionic-global-CDrldh-5.js} +1 -1
  390. package/dist/esm/ionic.js +6 -6
  391. package/dist/esm/{ios.transition--aMF-pDH.js → ios.transition-BDzw0_Hm.js} +4 -4
  392. package/dist/esm/loader.js +5 -5
  393. package/dist/esm/{md.transition-BEVbfm8j.js → md.transition-BzDYi3qq.js} +4 -4
  394. package/dist/esm/{notch-controller-DAcvKU57.js → notch-controller-BwelN_JM.js} +1 -1
  395. package/dist/esm/{overlays-F8GHPo-e.js → overlays-D5YkFThA.js} +5 -5
  396. package/dist/esm/{status-tap-BfJqFSLF.js → status-tap-5DQ7Fc4V.js} +3 -3
  397. package/dist/esm/{swipe-back-BZBFwTQV.js → swipe-back-BKw2CAHc.js} +2 -2
  398. package/dist/html.html-data.json +109 -109
  399. package/dist/ionic/index.esm.js +1 -1
  400. package/dist/ionic/ionic.esm.js +1 -1
  401. package/dist/ionic/p-012212e4.entry.js +4 -0
  402. package/dist/ionic/p-074839fc.entry.js +4 -0
  403. package/dist/ionic/p-0dfa5a37.entry.js +4 -0
  404. package/dist/ionic/p-0f418a37.entry.js +4 -0
  405. package/dist/ionic/p-11518b31.entry.js +4 -0
  406. package/dist/ionic/{p-80cac7a2.entry.js → p-11aa58d6.entry.js} +1 -1
  407. package/dist/ionic/p-1838bed5.entry.js +4 -0
  408. package/dist/ionic/p-29721c43.entry.js +4 -0
  409. package/dist/ionic/{p-b67a2114.entry.js → p-2a939845.entry.js} +1 -1
  410. package/dist/ionic/{p-025d2d32.entry.js → p-316c0420.entry.js} +1 -1
  411. package/dist/ionic/p-31f7095f.entry.js +4 -0
  412. package/dist/ionic/p-34642fa1.entry.js +4 -0
  413. package/dist/ionic/p-35696017.entry.js +4 -0
  414. package/dist/ionic/{p-074344b8.entry.js → p-370e4237.entry.js} +1 -1
  415. package/dist/ionic/{p-964090ef.entry.js → p-3a6caca9.entry.js} +1 -1
  416. package/dist/ionic/p-40c261a3.entry.js +4 -0
  417. package/dist/ionic/{p-1fd588a7.entry.js → p-46d74291.entry.js} +1 -1
  418. package/dist/ionic/{p-301c43f8.entry.js → p-49d06882.entry.js} +1 -1
  419. package/dist/ionic/p-4e41ea20.entry.js +4 -0
  420. package/dist/ionic/{p-7c72d482.entry.js → p-51a60e0f.entry.js} +1 -1
  421. package/dist/ionic/{p-9833cf63.entry.js → p-582824c5.entry.js} +1 -1
  422. package/dist/ionic/p-6241ce47.entry.js +4 -0
  423. package/dist/ionic/p-639dd543.entry.js +4 -0
  424. package/dist/ionic/p-6444c606.entry.js +4 -0
  425. package/dist/ionic/{p-9fae83d8.entry.js → p-675b1a31.entry.js} +1 -1
  426. package/dist/ionic/p-6d070558.entry.js +4 -0
  427. package/dist/ionic/p-7268efa5.entry.js +4 -0
  428. package/dist/ionic/{p-b4d52b58.entry.js → p-72c38b88.entry.js} +1 -1
  429. package/dist/ionic/{p-370a60ee.entry.js → p-79bd78f9.entry.js} +1 -1
  430. package/dist/ionic/p-7babec72.entry.js +4 -0
  431. package/dist/ionic/{p-a287e18e.entry.js → p-86f53961.entry.js} +1 -1
  432. package/dist/ionic/{p-277abec1.entry.js → p-94de5cfa.entry.js} +1 -1
  433. package/dist/ionic/{p-e663bc5a.entry.js → p-9575b654.entry.js} +1 -1
  434. package/dist/ionic/{p-c1c9b2bb.entry.js → p-9a2d390d.entry.js} +1 -1
  435. package/dist/ionic/{p-DB_iPQC-.js → p-B0q1YL7N.js} +1 -1
  436. package/dist/ionic/{p-NFFyoJ4Q.js → p-BFvmZNyx.js} +1 -1
  437. package/dist/ionic/p-BKc55Xev.js +4 -0
  438. package/dist/ionic/{p-CYbRmDdy.js → p-BOVrCkpJ.js} +1 -1
  439. package/dist/ionic/{p-C0JvVFMv.js → p-BYEqWnSg.js} +1 -1
  440. package/dist/ionic/p-Bmgaetn_.js +4 -0
  441. package/dist/ionic/{p-BAt5H1ac.js → p-C7hRNDhM.js} +1 -1
  442. package/dist/ionic/p-C8IsBmNU.js +5 -0
  443. package/dist/ionic/p-CJxh_yLS.js +4 -0
  444. package/dist/ionic/{p-CGmVTdWh.js → p-CTfR9YZG.js} +1 -1
  445. package/dist/ionic/{p-B8xlpH8p.js → p-CwgG81ZD.js} +1 -1
  446. package/dist/ionic/{p-CmFz1Mjc.js → p-D-eFFUkA.js} +1 -1
  447. package/dist/ionic/{p-BvFYtOdE.js → p-D0dMcSkw.js} +1 -1
  448. package/dist/ionic/{p-DjriolRs.js → p-DCv9sLH2.js} +1 -1
  449. package/dist/ionic/{p-Bum7H1fw.js → p-DDb5r57F.js} +1 -1
  450. package/dist/ionic/{p-DLbbmF9h.js → p-DNcfiJwE.js} +1 -1
  451. package/dist/ionic/p-DUt5fQmA.js +4 -0
  452. package/dist/ionic/p-DZRJwG4S.js +4 -0
  453. package/dist/ionic/{p-gbVXD275.js → p-DbQ5QkTP.js} +1 -1
  454. package/dist/ionic/{p-BxIcPWoV.js → p-Dc45iWE4.js} +1 -1
  455. package/dist/ionic/{p-DTPR1Wpn.js → p-DdR6rpbR.js} +1 -1
  456. package/dist/ionic/{p-GWUGgWx6.js → p-QHYY4sjU.js} +1 -1
  457. package/dist/ionic/p-a127bee2.entry.js +4 -0
  458. package/dist/ionic/{p-f5dfb9a3.entry.js → p-ac4eb91d.entry.js} +1 -1
  459. package/dist/ionic/{p-ca31010f.entry.js → p-b0a7585c.entry.js} +1 -1
  460. package/dist/ionic/p-b3d44509.entry.js +4 -0
  461. package/dist/ionic/{p-bced1f3e.entry.js → p-c73627c8.entry.js} +1 -1
  462. package/dist/ionic/p-cc45bcbc.entry.js +4 -0
  463. package/dist/ionic/p-d0a2a1ab.entry.js +4 -0
  464. package/dist/ionic/{p-9745651b.entry.js → p-d126e8d3.entry.js} +1 -1
  465. package/dist/ionic/{p-b440381f.entry.js → p-d1f54e28.entry.js} +1 -1
  466. package/dist/ionic/{p-1fa1406c.entry.js → p-d2489bf2.entry.js} +1 -1
  467. package/dist/ionic/p-d3014190.entry.js +4 -0
  468. package/dist/ionic/{p-a84f2d21.entry.js → p-da7d04cc.entry.js} +1 -1
  469. package/dist/ionic/p-db82892c.entry.js +4 -0
  470. package/dist/ionic/{p-b2d5238b.entry.js → p-dbbe606a.entry.js} +1 -1
  471. package/dist/ionic/{p-28d7852f.entry.js → p-dd1aef77.entry.js} +1 -1
  472. package/dist/ionic/p-e1d1f3cc.entry.js +4 -0
  473. package/dist/ionic/{p-c3e65e45.entry.js → p-f8f22cc0.entry.js} +1 -1
  474. package/dist/ionic/{p-9802c88e.entry.js → p-f9061316.entry.js} +1 -1
  475. package/dist/types/components/datetime/datetime.d.ts +0 -9
  476. package/dist/types/components/header/header.utils.d.ts +1 -2
  477. package/dist/types/components/modal/gestures/sheet.d.ts +2 -2
  478. package/dist/types/components/modal/gestures/swipe-to-close.d.ts +2 -2
  479. package/dist/types/components/modal/modal-interface.d.ts +7 -0
  480. package/dist/types/components/modal/modal.d.ts +17 -1
  481. package/dist/types/components/range/range-interface.d.ts +0 -1
  482. package/dist/types/components/range/range.d.ts +4 -33
  483. package/dist/types/components/refresher/refresher-interface.d.ts +0 -7
  484. package/dist/types/components/refresher/refresher.d.ts +3 -16
  485. package/dist/types/components.d.ts +206 -929
  486. package/dist/types/interface.d.ts +2 -2
  487. package/dist/types/stencil-public-runtime.d.ts +14 -126
  488. package/dist/types/utils/gesture/listener.d.ts +1 -2
  489. package/hydrate/index.d.ts +0 -12
  490. package/hydrate/index.js +1550 -5375
  491. package/hydrate/index.mjs +1551 -5374
  492. package/package.json +2 -2
  493. package/dist/cjs/app-globals-CLI8xCmk.js +0 -11
  494. package/dist/esm/app-globals-DhZjtldk.js +0 -9
  495. package/dist/ionic/p-02acdef4.entry.js +0 -4
  496. package/dist/ionic/p-04e2c388.entry.js +0 -4
  497. package/dist/ionic/p-13ade5c8.entry.js +0 -4
  498. package/dist/ionic/p-1b02923f.entry.js +0 -4
  499. package/dist/ionic/p-1bd477a9.entry.js +0 -4
  500. package/dist/ionic/p-239a27a4.entry.js +0 -4
  501. package/dist/ionic/p-3e143d1d.entry.js +0 -4
  502. package/dist/ionic/p-4431ef7e.entry.js +0 -4
  503. package/dist/ionic/p-463767ce.entry.js +0 -4
  504. package/dist/ionic/p-4f888343.entry.js +0 -4
  505. package/dist/ionic/p-51c11c47.entry.js +0 -4
  506. package/dist/ionic/p-56050077.entry.js +0 -4
  507. package/dist/ionic/p-6a3a5aae.entry.js +0 -4
  508. package/dist/ionic/p-6b97f2a3.entry.js +0 -4
  509. package/dist/ionic/p-77de9c60.entry.js +0 -4
  510. package/dist/ionic/p-7d20f4f8.entry.js +0 -4
  511. package/dist/ionic/p-91fc7352.entry.js +0 -4
  512. package/dist/ionic/p-93845421.entry.js +0 -4
  513. package/dist/ionic/p-96a2e768.entry.js +0 -4
  514. package/dist/ionic/p-9d1676bb.entry.js +0 -4
  515. package/dist/ionic/p-BW_TRJm8.js +0 -4
  516. package/dist/ionic/p-CtA-yJYy.js +0 -4
  517. package/dist/ionic/p-D8HJQ1qq.js +0 -4
  518. package/dist/ionic/p-DtVZDHlS.js +0 -4
  519. package/dist/ionic/p-IGIE5vDm.js +0 -5
  520. package/dist/ionic/p-a805674e.entry.js +0 -4
  521. package/dist/ionic/p-a81ae2cd.entry.js +0 -4
  522. package/dist/ionic/p-cbf245b5.entry.js +0 -4
  523. package/dist/ionic/p-d68b665a.entry.js +0 -4
  524. package/dist/ionic/p-efe86ed9.entry.js +0 -4
  525. package/dist/ionic/p-hNN3VvaC.js +0 -4
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { Build, Host, h } from "@stencil/core";
4
+ import { Host, h } from "@stencil/core";
5
5
  import { findClosestIonContent, disableContentScrollY, resetContentScrollY } from "../../utils/content/index";
6
6
  import { inheritAriaAttributes, clamp, debounceEvent, renderHiddenInput, isSafeNumber } from "../../utils/helpers";
7
7
  import { printIonWarning } from "../../utils/logging/index";
@@ -17,30 +17,13 @@ import { roundToMaxDecimalPlaces } from "../../utils/floating-point";
17
17
  * @slot start - Content is placed to the left of the range slider in LTR, and to the right in RTL.
18
18
  * @slot end - Content is placed to the right of the range slider in LTR, and to the left in RTL.
19
19
  *
20
- * @part label - The label text describing the range.
21
20
  * @part tick - An inactive tick mark.
22
21
  * @part tick-active - An active tick mark.
22
+ * @part pin - The counter that appears above a knob.
23
+ * @part knob - The handle that is used to drag the range.
23
24
  * @part bar - The inactive part of the bar.
24
25
  * @part bar-active - The active part of the bar.
25
- * @part knob-handle - The container element that wraps the knob and handles drag interactions.
26
- * @part knob-handle-a - The container element for the first knob. Only available when `dualKnobs` is `true`.
27
- * @part knob-handle-b - The container element for the second knob. Only available when `dualKnobs` is `true`.
28
- * @part knob-handle-lower - The container element for the lower knob. Only available when `dualKnobs` is `true`.
29
- * @part knob-handle-upper - The container element for the upper knob. Only available when `dualKnobs` is `true`.
30
- * @part pin - The counter that appears above a knob.
31
- * @part pin-a - The counter that appears above the first knob. Only available when `dualKnobs` is `true`.
32
- * @part pin-b - The counter that appears above the second knob. Only available when `dualKnobs` is `true`.
33
- * @part pin-lower - The counter that appears above the lower knob. Only available when `dualKnobs` is `true`.
34
- * @part pin-upper - The counter that appears above the upper knob. Only available when `dualKnobs` is `true`.
35
- * @part knob - The visual knob element that appears on the range track.
36
- * @part knob-a - The visual knob element for the first knob. Only available when `dualKnobs` is `true`.
37
- * @part knob-b - The visual knob element for the second knob. Only available when `dualKnobs` is `true`.
38
- * @part knob-lower - The visual knob element for the lower knob. Only available when `dualKnobs` is `true`.
39
- * @part knob-upper - The visual knob element for the upper knob. Only available when `dualKnobs` is `true`.
40
- * @part activated - Added to the knob-handle, knob, and pin when the knob is activated (has the `ion-activated` class). Only one set has this part at a time when `dualKnobs` is `true`.
41
- * @part focused - Added to the knob-handle, knob, and pin that currently has focus. Only one set has this part at a time when `dualKnobs` is `true`.
42
- * @part hover - Added to the knob-handle, knob, and pin when the knob has hover. Only one set has this part at a time when `dualKnobs` is `true`.
43
- * @part pressed - Added to the knob-handle, knob, and pin that is currently being pressed to drag. Only one set has this part at a time when `dualKnobs` is `true`.
26
+ * @part label - The label text describing the range.
44
27
  */
45
28
  export class Range {
46
29
  constructor() {
@@ -51,7 +34,6 @@ export class Range {
51
34
  this.inheritedAttributes = {};
52
35
  this.contentEl = null;
53
36
  this.initialContentScrollY = true;
54
- this.focusFromPointer = false;
55
37
  this.ratioA = 0;
56
38
  this.ratioB = 0;
57
39
  /**
@@ -161,31 +143,6 @@ export class Range {
161
143
  this.gesture.enable(!this.disabled);
162
144
  }
163
145
  };
164
- /**
165
- * Observes the knob handles for the ion-activated class and syncs
166
- * activatedKnob so the activated part is correctly set on the handle,
167
- * knob, and pin.
168
- */
169
- this.setupActivatedObserver = () => {
170
- const knobHandleA = this.el.shadowRoot.querySelector('.range-knob-handle-a');
171
- const knobHandleB = this.el.shadowRoot.querySelector('.range-knob-handle-b');
172
- const syncActivated = () => {
173
- this.activatedKnob = (knobHandleA === null || knobHandleA === void 0 ? void 0 : knobHandleA.classList.contains('ion-activated'))
174
- ? 'A'
175
- : (knobHandleB === null || knobHandleB === void 0 ? void 0 : knobHandleB.classList.contains('ion-activated'))
176
- ? 'B'
177
- : undefined;
178
- };
179
- if (Build.isBrowser && typeof MutationObserver !== 'undefined') {
180
- this.activatedObserver = new MutationObserver(syncActivated);
181
- this.activatedObserver.observe(this.el.shadowRoot, {
182
- attributes: true,
183
- attributeFilter: ['class'],
184
- subtree: true,
185
- });
186
- }
187
- syncActivated();
188
- };
189
146
  this.handleKeyboard = (knob, isIncrease) => {
190
147
  const { ensureValueInBounds } = this;
191
148
  let step = this.step;
@@ -208,7 +165,6 @@ export class Range {
208
165
  this.onBlur = () => {
209
166
  if (this.hasFocus) {
210
167
  this.hasFocus = false;
211
- this.focusedKnob = undefined;
212
168
  this.ionBlur.emit();
213
169
  }
214
170
  };
@@ -219,20 +175,21 @@ export class Range {
219
175
  }
220
176
  };
221
177
  this.onKnobFocus = (knob) => {
222
- // Clicking focuses the range which is needed for the keyboard,
223
- // but we only want to add the ion-focused class when focused via Tab.
224
- if (!this.focusFromPointer) {
225
- this.focusedKnob = knob;
226
- }
227
- else {
228
- this.focusFromPointer = false;
229
- this.focusedKnob = undefined;
230
- }
231
- // If the knob was not already focused, emit the focus event
232
178
  if (!this.hasFocus) {
233
179
  this.hasFocus = true;
234
180
  this.ionFocus.emit();
235
181
  }
182
+ // Manually manage ion-focused class for dual knobs
183
+ if (this.dualKnobs && this.el.shadowRoot) {
184
+ const knobA = this.el.shadowRoot.querySelector('.range-knob-a');
185
+ const knobB = this.el.shadowRoot.querySelector('.range-knob-b');
186
+ // Remove ion-focused from both knobs first
187
+ knobA === null || knobA === void 0 ? void 0 : knobA.classList.remove('ion-focused');
188
+ knobB === null || knobB === void 0 ? void 0 : knobB.classList.remove('ion-focused');
189
+ // Add ion-focused only to the focused knob
190
+ const focusedKnobEl = knob === 'A' ? knobA : knobB;
191
+ focusedKnobEl === null || focusedKnobEl === void 0 ? void 0 : focusedKnobEl.classList.add('ion-focused');
192
+ }
236
193
  };
237
194
  this.onKnobBlur = () => {
238
195
  // Check if focus is moving to another knob within the same range
@@ -244,18 +201,18 @@ export class Range {
244
201
  if (!isStillFocusedOnKnob) {
245
202
  if (this.hasFocus) {
246
203
  this.hasFocus = false;
247
- this.focusedKnob = undefined;
248
204
  this.ionBlur.emit();
249
205
  }
206
+ // Remove ion-focused from both knobs when focus leaves the range
207
+ if (this.dualKnobs && this.el.shadowRoot) {
208
+ const knobA = this.el.shadowRoot.querySelector('.range-knob-a');
209
+ const knobB = this.el.shadowRoot.querySelector('.range-knob-b');
210
+ knobA === null || knobA === void 0 ? void 0 : knobA.classList.remove('ion-focused');
211
+ knobB === null || knobB === void 0 ? void 0 : knobB.classList.remove('ion-focused');
212
+ }
250
213
  }
251
214
  }, 0);
252
215
  };
253
- this.onKnobMouseEnter = (knob) => {
254
- this.hoveredKnob = knob;
255
- };
256
- this.onKnobMouseLeave = () => {
257
- this.hoveredKnob = undefined;
258
- };
259
216
  }
260
217
  debounceChanged() {
261
218
  const { ionInput, debounce, originalIonInput } = this;
@@ -332,7 +289,6 @@ export class Range {
332
289
  this.originalIonInput = this.ionInput;
333
290
  this.setupGesture();
334
291
  this.updateRatio();
335
- this.setupActivatedObserver();
336
292
  this.didLoad = true;
337
293
  }
338
294
  connectedCallback() {
@@ -358,10 +314,6 @@ export class Range {
358
314
  this.gesture.destroy();
359
315
  this.gesture = undefined;
360
316
  }
361
- if (this.activatedObserver) {
362
- this.activatedObserver.disconnect();
363
- this.activatedObserver = undefined;
364
- }
365
317
  }
366
318
  getValue() {
367
319
  var _a;
@@ -514,6 +466,7 @@ export class Range {
514
466
  ratio = 1 - ratio;
515
467
  }
516
468
  this.pressedKnob = !this.dualKnobs || Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio) ? 'A' : 'B';
469
+ this.setFocus(this.pressedKnob);
517
470
  }
518
471
  get valA() {
519
472
  return ratioToValue(this.ratioA, this.min, this.max, this.step);
@@ -540,23 +493,9 @@ export class Range {
540
493
  updateRatio() {
541
494
  const value = this.getValue();
542
495
  const { min, max } = this;
543
- /**
544
- * For dual knobs, value gives lower/upper but not which is A vs B.
545
- * Assign (lowerRatio, upperRatio) to (ratioA, ratioB) in the way that
546
- * minimizes change from the current ratios so the knobs don't swap.
547
- */
548
496
  if (this.dualKnobs) {
549
- const lowerRatio = valueToRatio(value.lower, min, max);
550
- const upperRatio = valueToRatio(value.upper, min, max);
551
- if (Math.abs(this.ratioA - lowerRatio) + Math.abs(this.ratioB - upperRatio) <=
552
- Math.abs(this.ratioA - upperRatio) + Math.abs(this.ratioB - lowerRatio)) {
553
- this.ratioA = lowerRatio;
554
- this.ratioB = upperRatio;
555
- }
556
- else {
557
- this.ratioA = upperRatio;
558
- this.ratioB = lowerRatio;
559
- }
497
+ this.ratioA = valueToRatio(value.lower, min, max);
498
+ this.ratioB = valueToRatio(value.upper, min, max);
560
499
  }
561
500
  else {
562
501
  this.ratioA = valueToRatio(value, min, max);
@@ -573,6 +512,14 @@ export class Range {
573
512
  };
574
513
  this.noUpdate = false;
575
514
  }
515
+ setFocus(knob) {
516
+ if (this.el.shadowRoot) {
517
+ const knobEl = this.el.shadowRoot.querySelector(knob === 'A' ? '.range-knob-a' : '.range-knob-b');
518
+ if (knobEl) {
519
+ knobEl.focus();
520
+ }
521
+ }
522
+ }
576
523
  /**
577
524
  * Returns true if content was passed to the "start" slot
578
525
  */
@@ -590,7 +537,7 @@ export class Range {
590
537
  }
591
538
  renderRangeSlider() {
592
539
  var _a;
593
- const { min, max, step, handleKeyboard, activatedKnob, focusedKnob, hoveredKnob, pressedKnob, disabled, pin, ratioLower, ratioUpper, pinFormatter, inheritedAttributes, } = this;
540
+ const { min, max, step, handleKeyboard, pressedKnob, disabled, pin, ratioLower, ratioUpper, pinFormatter, inheritedAttributes, } = this;
594
541
  let barStart = `${ratioLower * 100}%`;
595
542
  let barEnd = `${100 - ratioUpper * 100}%`;
596
543
  const rtl = isRTL(this.el);
@@ -650,9 +597,7 @@ export class Range {
650
597
  ticks.push(tick);
651
598
  }
652
599
  }
653
- return (h("div", { class: "range-slider", ref: (rangeEl) => (this.rangeSlider = rangeEl), onPointerDown: () => {
654
- this.focusFromPointer = true;
655
- },
600
+ return (h("div", { class: "range-slider", ref: (rangeEl) => (this.rangeSlider = rangeEl),
656
601
  /**
657
602
  * Since the gesture has a threshold, the value
658
603
  * won't change until the user has dragged past
@@ -665,7 +610,6 @@ export class Range {
665
610
  * we need to listen for the "pointerUp" event.
666
611
  */
667
612
  onPointerUp: (ev) => {
668
- this.focusFromPointer = false;
669
613
  /**
670
614
  * If the user drags the knob on the web
671
615
  * version (does not occur on mobile),
@@ -691,11 +635,6 @@ export class Range {
691
635
  'has-ticks': ticks.length > 0,
692
636
  }, role: "presentation", style: barStyle, part: "bar-active" })), renderKnob(rtl, {
693
637
  knob: 'A',
694
- position: getKnobPosition('A', this.ratioA, this.ratioB, this.dualKnobs),
695
- dualKnobs: this.dualKnobs,
696
- activated: activatedKnob === 'A',
697
- focused: focusedKnob === 'A',
698
- hovered: hoveredKnob === 'A',
699
638
  pressed: pressedKnob === 'A',
700
639
  value: this.valA,
701
640
  ratio: this.ratioA,
@@ -708,16 +647,9 @@ export class Range {
708
647
  inheritedAttributes,
709
648
  onKnobFocus: this.onKnobFocus,
710
649
  onKnobBlur: this.onKnobBlur,
711
- onKnobMouseEnter: this.onKnobMouseEnter,
712
- onKnobMouseLeave: this.onKnobMouseLeave,
713
650
  }), this.dualKnobs &&
714
651
  renderKnob(rtl, {
715
652
  knob: 'B',
716
- position: getKnobPosition('B', this.ratioA, this.ratioB, this.dualKnobs),
717
- dualKnobs: this.dualKnobs,
718
- activated: activatedKnob === 'B',
719
- focused: focusedKnob === 'B',
720
- hovered: hoveredKnob === 'B',
721
653
  pressed: pressedKnob === 'B',
722
654
  value: this.valB,
723
655
  ratio: this.ratioB,
@@ -730,8 +662,6 @@ export class Range {
730
662
  inheritedAttributes,
731
663
  onKnobFocus: this.onKnobFocus,
732
664
  onKnobBlur: this.onKnobBlur,
733
- onKnobMouseEnter: this.onKnobMouseEnter,
734
- onKnobMouseLeave: this.onKnobMouseLeave,
735
665
  })));
736
666
  }
737
667
  render() {
@@ -750,12 +680,6 @@ export class Range {
750
680
  const hasEndContent = (hasLabel && labelPlacement === 'end') || this.hasEndSlotContent;
751
681
  const needsEndAdjustment = inItem && !hasEndContent;
752
682
  const mode = getIonMode(this);
753
- /**
754
- * Determine the name and position of the pressed knob to apply
755
- * Host classes for styling.
756
- */
757
- const pressedKnobName = dualKnobs ? pressedKnob === null || pressedKnob === void 0 ? void 0 : pressedKnob.toLowerCase() : undefined;
758
- const pressedKnobPosition = dualKnobs && pressedKnob ? getKnobPosition(pressedKnob, this.ratioA, this.ratioB, dualKnobs) : undefined;
759
683
  /**
760
684
  * Determine if any knob is at the min or max value to
761
685
  * apply Host classes for styling.
@@ -763,24 +687,21 @@ export class Range {
763
687
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
764
688
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
765
689
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
766
- return (h(Host, { key: '3d87901f6acf5848e1891e387f9042e2a1e3f91e', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
690
+ return (h(Host, { key: 'ed646a42d51b8fe22012198c354cbcf5a389c108', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
767
691
  [mode]: true,
768
692
  'in-item': inItem,
769
693
  'range-disabled': disabled,
770
- 'range-dual-knobs': dualKnobs,
771
694
  'range-pressed': pressedKnob !== undefined,
772
- [`range-pressed-${pressedKnobName}`]: pressedKnob !== undefined && pressedKnobName !== undefined,
773
- [`range-pressed-${pressedKnobPosition}`]: pressedKnob !== undefined && pressedKnobPosition !== undefined,
774
695
  'range-has-pin': pin,
775
696
  [`range-label-placement-${labelPlacement}`]: true,
776
697
  'range-item-start-adjustment': needsStartAdjustment,
777
698
  'range-item-end-adjustment': needsEndAdjustment,
778
699
  'range-value-min': valueAtMin,
779
700
  'range-value-max': valueAtMax,
780
- }) }, h("label", { key: '33a3fa985121811828dcfa4244edd73c28d18182', class: "range-wrapper", id: "range-label" }, h("div", { key: '36cd13d03e67fee8c92ade30ac1d3c6ae7a32126', class: {
701
+ }) }, h("label", { key: '3083e4f2a624e3b268396acb4415f7c6ac44d851', class: "range-wrapper", id: "range-label" }, h("div", { key: '47b92f94d2a0381dd7c5cd3dda54ed2942096715', class: {
781
702
  'label-text-wrapper': true,
782
703
  'label-text-wrapper-hidden': !hasLabel,
783
- }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '1650c180246f80340f0313b16dbdd8eae7451fb5', class: "native-wrapper" }, h("slot", { key: 'ca73ff66e30a49056d76cbd3007ece207ca5261d', name: "start" }), this.renderRangeSlider(), h("slot", { key: '59a90b1f4fd4a6879c90bb46d20f8df53d8456f6', name: "end" })))));
704
+ }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '5341da8d19eb29091df680978a0e20cc8f2eec65', class: "native-wrapper" }, h("slot", { key: '09f1437078032676695442d8c827a16faa7dffe2', name: "start" }), this.renderRangeSlider(), h("slot", { key: '02b7781970ea4d44f10b5f4627a2ca36eca45f85', name: "end" })))));
784
705
  }
785
706
  static get is() { return "ion-range"; }
786
707
  static get encapsulation() { return "shadow"; }
@@ -808,8 +729,7 @@ export class Range {
808
729
  "Color": {
809
730
  "location": "import",
810
731
  "path": "../../interface",
811
- "id": "src/interface.d.ts::Color",
812
- "referenceLocation": "Color"
732
+ "id": "src/interface.d.ts::Color"
813
733
  }
814
734
  }
815
735
  },
@@ -972,8 +892,7 @@ export class Range {
972
892
  "PinFormatter": {
973
893
  "location": "import",
974
894
  "path": "./range-interface",
975
- "id": "src/components/range/range-interface.ts::PinFormatter",
976
- "referenceLocation": "PinFormatter"
895
+ "id": "src/components/range/range-interface.ts::PinFormatter"
977
896
  }
978
897
  }
979
898
  },
@@ -1096,8 +1015,7 @@ export class Range {
1096
1015
  "RangeValue": {
1097
1016
  "location": "import",
1098
1017
  "path": "./range-interface",
1099
- "id": "src/components/range/range-interface.ts::RangeValue",
1100
- "referenceLocation": "RangeValue"
1018
+ "id": "src/components/range/range-interface.ts::RangeValue"
1101
1019
  }
1102
1020
  }
1103
1021
  },
@@ -1139,9 +1057,6 @@ export class Range {
1139
1057
  return {
1140
1058
  "ratioA": {},
1141
1059
  "ratioB": {},
1142
- "activatedKnob": {},
1143
- "focusedKnob": {},
1144
- "hoveredKnob": {},
1145
1060
  "pressedKnob": {}
1146
1061
  };
1147
1062
  }
@@ -1163,8 +1078,7 @@ export class Range {
1163
1078
  "RangeChangeEventDetail": {
1164
1079
  "location": "import",
1165
1080
  "path": "./range-interface",
1166
- "id": "src/components/range/range-interface.ts::RangeChangeEventDetail",
1167
- "referenceLocation": "RangeChangeEventDetail"
1081
+ "id": "src/components/range/range-interface.ts::RangeChangeEventDetail"
1168
1082
  }
1169
1083
  }
1170
1084
  }
@@ -1185,8 +1099,7 @@ export class Range {
1185
1099
  "RangeChangeEventDetail": {
1186
1100
  "location": "import",
1187
1101
  "path": "./range-interface",
1188
- "id": "src/components/range/range-interface.ts::RangeChangeEventDetail",
1189
- "referenceLocation": "RangeChangeEventDetail"
1102
+ "id": "src/components/range/range-interface.ts::RangeChangeEventDetail"
1190
1103
  }
1191
1104
  }
1192
1105
  }
@@ -1237,8 +1150,7 @@ export class Range {
1237
1150
  "RangeKnobMoveStartEventDetail": {
1238
1151
  "location": "import",
1239
1152
  "path": "./range-interface",
1240
- "id": "src/components/range/range-interface.ts::RangeKnobMoveStartEventDetail",
1241
- "referenceLocation": "RangeKnobMoveStartEventDetail"
1153
+ "id": "src/components/range/range-interface.ts::RangeKnobMoveStartEventDetail"
1242
1154
  }
1243
1155
  }
1244
1156
  }
@@ -1259,8 +1171,7 @@ export class Range {
1259
1171
  "RangeKnobMoveEndEventDetail": {
1260
1172
  "location": "import",
1261
1173
  "path": "./range-interface",
1262
- "id": "src/components/range/range-interface.ts::RangeKnobMoveEndEventDetail",
1263
- "referenceLocation": "RangeKnobMoveEndEventDetail"
1174
+ "id": "src/components/range/range-interface.ts::RangeKnobMoveEndEventDetail"
1264
1175
  }
1265
1176
  }
1266
1177
  }
@@ -1292,7 +1203,7 @@ export class Range {
1292
1203
  }];
1293
1204
  }
1294
1205
  }
1295
- const renderKnob = (rtl, { knob, position, dualKnobs, value, ratio, min, max, disabled, activated, focused, hovered, pressed, pin, handleKeyboard, pinFormatter, inheritedAttributes, onKnobFocus, onKnobBlur, onKnobMouseEnter, onKnobMouseLeave, }) => {
1206
+ const renderKnob = (rtl, { knob, value, ratio, min, max, disabled, pressed, pin, handleKeyboard, pinFormatter, inheritedAttributes, onKnobFocus, onKnobBlur, }) => {
1296
1207
  const start = rtl ? 'right' : 'left';
1297
1208
  const knobStyle = () => {
1298
1209
  const style = {};
@@ -1313,66 +1224,16 @@ const renderKnob = (rtl, { knob, position, dualKnobs, value, ratio, min, max, di
1313
1224
  ev.preventDefault();
1314
1225
  ev.stopPropagation();
1315
1226
  }
1316
- }, onFocus: () => onKnobFocus(knob), onBlur: onKnobBlur, onMouseEnter: () => onKnobMouseEnter(knob), onMouseLeave: onKnobMouseLeave, class: {
1227
+ }, onFocus: () => onKnobFocus(knob), onBlur: onKnobBlur, class: {
1317
1228
  'range-knob-handle': true,
1318
- 'range-knob-handle-a': knob === 'A',
1319
- 'range-knob-handle-b': knob === 'B',
1229
+ 'range-knob-a': knob === 'A',
1230
+ 'range-knob-b': knob === 'B',
1320
1231
  'range-knob-pressed': pressed,
1321
1232
  'range-knob-min': value === min,
1322
1233
  'range-knob-max': value === max,
1323
1234
  'ion-activatable': true,
1324
1235
  'ion-focusable': true,
1325
- 'ion-focused': focused,
1326
- }, part: [
1327
- 'knob-handle',
1328
- dualKnobs && knob === 'A' && 'knob-handle-a',
1329
- dualKnobs && knob === 'B' && 'knob-handle-b',
1330
- dualKnobs && position === 'lower' && 'knob-handle-lower',
1331
- dualKnobs && position === 'upper' && 'knob-handle-upper',
1332
- pressed && 'pressed',
1333
- focused && 'focused',
1334
- hovered && 'hover',
1335
- activated && 'activated',
1336
- ]
1337
- .filter(Boolean)
1338
- .join(' '), style: knobStyle(), role: "slider", tabindex: disabled ? -1 : 0, "aria-label": ariaLabel !== undefined ? ariaLabel : null, "aria-labelledby": ariaLabel === undefined ? 'range-label' : null, "aria-valuemin": min, "aria-valuemax": max, "aria-disabled": disabled ? 'true' : null, "aria-valuenow": value }, pin && (h("div", { class: "range-pin", role: "presentation", part: [
1339
- 'pin',
1340
- dualKnobs && knob === 'A' && 'pin-a',
1341
- dualKnobs && knob === 'B' && 'pin-b',
1342
- dualKnobs && position === 'lower' && 'pin-lower',
1343
- dualKnobs && position === 'upper' && 'pin-upper',
1344
- pressed && 'pressed',
1345
- focused && 'focused',
1346
- hovered && 'hover',
1347
- activated && 'activated',
1348
- ]
1349
- .filter(Boolean)
1350
- .join(' ') }, pinFormatter(value))), h("div", { class: "range-knob", role: "presentation", part: [
1351
- 'knob',
1352
- dualKnobs && knob === 'A' && 'knob-a',
1353
- dualKnobs && knob === 'B' && 'knob-b',
1354
- dualKnobs && position === 'lower' && 'knob-lower',
1355
- dualKnobs && position === 'upper' && 'knob-upper',
1356
- pressed && 'pressed',
1357
- focused && 'focused',
1358
- hovered && 'hover',
1359
- activated && 'activated',
1360
- ]
1361
- .filter(Boolean)
1362
- .join(' ') })));
1363
- };
1364
- /**
1365
- * Returns whether the given knob is at the lower or upper position based
1366
- * on current ratios for the given knob.
1367
- */
1368
- const getKnobPosition = (knob, ratioA, ratioB, dualKnobs) => {
1369
- if (dualKnobs) {
1370
- if (knob === 'A') {
1371
- return ratioA <= ratioB ? 'lower' : 'upper';
1372
- }
1373
- return ratioB <= ratioA ? 'lower' : 'upper';
1374
- }
1375
- return 'lower';
1236
+ }, style: knobStyle(), role: "slider", tabindex: disabled ? -1 : 0, "aria-label": ariaLabel !== undefined ? ariaLabel : null, "aria-labelledby": ariaLabel === undefined ? 'range-label' : null, "aria-valuemin": min, "aria-valuemax": max, "aria-disabled": disabled ? 'true' : null, "aria-valuenow": value }, pin && (h("div", { class: "range-pin", role: "presentation", part: "pin" }, pinFormatter(value))), h("div", { class: "range-knob", role: "presentation", part: "knob" })));
1376
1237
  };
1377
1238
  const ratioToValue = (ratio, min, max, step) => {
1378
1239
  let value = (max - min) * ratio;
@@ -68,8 +68,8 @@ export class Refresher {
68
68
  * than `1`. The default value is `1` which is equal to the speed of the cursor.
69
69
  * If a negative value is passed in, the factor will be `1` instead.
70
70
  *
71
- * For example, If the value passed is `1.2` and the content is dragged by
72
- * `10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels
71
+ * For example: If the value passed is `1.2` and the content is dragged by
72
+ * `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels
73
73
  * (an increase of 20 percent). If the value passed is `0.8`, the dragged amount
74
74
  * will be `8` pixels, less than the amount the cursor has moved.
75
75
  *
@@ -119,9 +119,6 @@ export class Refresher {
119
119
  this.animations = [];
120
120
  this.progress = 0;
121
121
  this.state = 1 /* RefresherState.Inactive */;
122
- this.ionPullEnd.emit({
123
- reason: state === 32 /* RefresherState.Completing */ ? 'complete' : 'cancel',
124
- });
125
122
  }
126
123
  async setupiOSNativeRefresher(pullingSpinner, refreshingSpinner) {
127
124
  this.elementToTransform = this.scrollEl;
@@ -154,7 +151,6 @@ export class Refresher {
154
151
  if (!this.didStart) {
155
152
  this.didStart = true;
156
153
  this.ionStart.emit();
157
- this.ionPullStart.emit();
158
154
  }
159
155
  // emit "pulling" on every move
160
156
  if (this.pointerDown) {
@@ -230,7 +226,6 @@ export class Refresher {
230
226
  this.lastVelocityY = ev.velocityY;
231
227
  },
232
228
  onEnd: () => {
233
- const hadStarted = this.didStart;
234
229
  this.pointerDown = false;
235
230
  this.didStart = false;
236
231
  if (this.needsCompletion) {
@@ -240,13 +235,6 @@ export class Refresher {
240
235
  else if (this.didRefresh) {
241
236
  readTask(() => translateElement(this.elementToTransform, `${this.el.clientHeight}px`));
242
237
  }
243
- else if (hadStarted) {
244
- /**
245
- * User started pulling but released before reaching the refresh threshold.
246
- * Emit ionPullEnd to complete the event pair.
247
- */
248
- this.ionPullEnd.emit({ reason: 'cancel' });
249
- }
250
238
  },
251
239
  });
252
240
  this.disabledChanged();
@@ -293,7 +281,6 @@ export class Refresher {
293
281
  ev.data.animation = animation;
294
282
  animation.progressStart(false, 0);
295
283
  this.ionStart.emit();
296
- this.ionPullStart.emit();
297
284
  this.animations.push(animation);
298
285
  return;
299
286
  }
@@ -316,7 +303,6 @@ export class Refresher {
316
303
  this.animations = [];
317
304
  this.gesture.enable(true);
318
305
  this.state = 1 /* RefresherState.Inactive */;
319
- this.ionPullEnd.emit({ reason: 'cancel' });
320
306
  });
321
307
  return;
322
308
  }
@@ -561,7 +547,6 @@ export class Refresher {
561
547
  if (!this.didStart) {
562
548
  this.didStart = true;
563
549
  this.ionStart.emit();
564
- this.ionPullStart.emit();
565
550
  }
566
551
  // emit "pulling" on every move
567
552
  this.ionPull.emit();
@@ -605,15 +590,6 @@ export class Refresher {
605
590
  * available right away.
606
591
  */
607
592
  this.restoreOverflowStyle();
608
- /**
609
- * If ionPullStart was emitted, we need to emit ionPullEnd
610
- * even though the gesture was aborted before reaching the
611
- * pulling threshold.
612
- */
613
- if (this.didStart) {
614
- this.didStart = false;
615
- this.ionPullEnd.emit({ reason: 'cancel' });
616
- }
617
593
  }
618
594
  }
619
595
  beginRefresh() {
@@ -660,9 +636,6 @@ export class Refresher {
660
636
  if (this.contentFullscreen && this.backgroundContentEl) {
661
637
  (_a = this.backgroundContentEl) === null || _a === void 0 ? void 0 : _a.style.removeProperty('--offset-top');
662
638
  }
663
- this.ionPullEnd.emit({
664
- reason: state === 32 /* RefresherState.Completing */ ? 'complete' : 'cancel',
665
- });
666
639
  }, 600);
667
640
  // reset the styles on the scroll element
668
641
  // set that the refresh is actively cancelling/completing
@@ -716,7 +689,7 @@ export class Refresher {
716
689
  }
717
690
  render() {
718
691
  const mode = getIonMode(this);
719
- return (h(Host, { key: 'bed0c2f44c32ecac24b7d8326ac7c7ef1d12c44f', slot: "fixed", class: {
692
+ return (h(Host, { key: '2d1bd880877b698604542ab2d602d38b9504d975', slot: "fixed", class: {
720
693
  [mode]: true,
721
694
  // Used internally for styling
722
695
  [`refresher-${mode}`]: true,
@@ -836,7 +809,7 @@ export class Refresher {
836
809
  "optional": false,
837
810
  "docs": {
838
811
  "tags": [],
839
- "text": "How much to multiply the pull speed by. To slow the pull animation down,\npass a number less than `1`. To speed up the pull, pass a number greater\nthan `1`. The default value is `1` which is equal to the speed of the cursor.\nIf a negative value is passed in, the factor will be `1` instead.\n\nFor example, If the value passed is `1.2` and the content is dragged by\n`10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels\n(an increase of 20 percent). If the value passed is `0.8`, the dragged amount\nwill be `8` pixels, less than the amount the cursor has moved.\n\nDoes not apply when the refresher content uses a spinner,\nenabling the native refresher."
812
+ "text": "How much to multiply the pull speed by. To slow the pull animation down,\npass a number less than `1`. To speed up the pull, pass a number greater\nthan `1`. The default value is `1` which is equal to the speed of the cursor.\nIf a negative value is passed in, the factor will be `1` instead.\n\nFor example: If the value passed is `1.2` and the content is dragged by\n`10` pixels, instead of `10` pixels the content will be pulled by `12` pixels\n(an increase of 20 percent). If the value passed is `0.8`, the dragged amount\nwill be `8` pixels, less than the amount the cursor has moved.\n\nDoes not apply when the refresher content uses a spinner,\nenabling the native refresher."
840
813
  },
841
814
  "getter": false,
842
815
  "setter": false,
@@ -890,8 +863,7 @@ export class Refresher {
890
863
  "RefresherEventDetail": {
891
864
  "location": "import",
892
865
  "path": "./refresher-interface",
893
- "id": "src/components/refresher/refresher-interface.ts::RefresherEventDetail",
894
- "referenceLocation": "RefresherEventDetail"
866
+ "id": "src/components/refresher/refresher-interface.ts::RefresherEventDetail"
895
867
  }
896
868
  }
897
869
  }
@@ -916,24 +888,6 @@ export class Refresher {
916
888
  "bubbles": true,
917
889
  "cancelable": true,
918
890
  "composed": true,
919
- "docs": {
920
- "tags": [{
921
- "name": "deprecated",
922
- "text": "Use `ionPullStart` instead."
923
- }],
924
- "text": "Emitted when the user begins to start pulling down.\nTODO(FW-7044): Remove this in a major release"
925
- },
926
- "complexType": {
927
- "original": "void",
928
- "resolved": "void",
929
- "references": {}
930
- }
931
- }, {
932
- "method": "ionPullStart",
933
- "name": "ionPullStart",
934
- "bubbles": true,
935
- "cancelable": true,
936
- "composed": true,
937
891
  "docs": {
938
892
  "tags": [],
939
893
  "text": "Emitted when the user begins to start pulling down."
@@ -943,28 +897,6 @@ export class Refresher {
943
897
  "resolved": "void",
944
898
  "references": {}
945
899
  }
946
- }, {
947
- "method": "ionPullEnd",
948
- "name": "ionPullEnd",
949
- "bubbles": true,
950
- "cancelable": true,
951
- "composed": true,
952
- "docs": {
953
- "tags": [],
954
- "text": "Emitted when the refresher has returned to the inactive state\nafter a pull gesture. This fires whether the refresh completed\nsuccessfully or was canceled."
955
- },
956
- "complexType": {
957
- "original": "RefresherPullEndEventDetail",
958
- "resolved": "RefresherPullEndEventDetail",
959
- "references": {
960
- "RefresherPullEndEventDetail": {
961
- "location": "import",
962
- "path": "./refresher-interface",
963
- "id": "src/components/refresher/refresher-interface.ts::RefresherPullEndEventDetail",
964
- "referenceLocation": "RefresherPullEndEventDetail"
965
- }
966
- }
967
- }
968
900
  }];
969
901
  }
970
902
  static get methods() {