@ionic/core 8.7.19-dev.11772655618.1af0949f → 8.7.19-dev.11773072221.15efeed0

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 +0 -2
  2. package/components/index.js +114 -1
  3. package/components/ion-accordion-group.js +268 -1
  4. package/components/ion-accordion.js +456 -1
  5. package/components/ion-action-sheet.js +6 -1
  6. package/components/ion-alert.js +6 -1
  7. package/components/ion-app.js +132 -1
  8. package/components/ion-avatar.js +41 -1
  9. package/components/ion-back-button.js +130 -1
  10. package/components/ion-backdrop.js +6 -1
  11. package/components/ion-badge.js +47 -1
  12. package/components/ion-breadcrumb.js +137 -1
  13. package/components/ion-breadcrumbs.js +164 -1
  14. package/components/ion-button.js +6 -1
  15. package/components/ion-buttons.js +6 -1
  16. package/components/ion-card-content.js +45 -1
  17. package/components/ion-card-header.js +56 -1
  18. package/components/ion-card-subtitle.js +48 -1
  19. package/components/ion-card-title.js +48 -1
  20. package/components/ion-card.js +107 -1
  21. package/components/ion-checkbox.js +6 -1
  22. package/components/ion-chip.js +66 -1
  23. package/components/ion-col.js +163 -1
  24. package/components/ion-content.js +6 -1
  25. package/components/ion-datetime-button.js +383 -1
  26. package/components/ion-datetime.js +2047 -1
  27. package/components/ion-fab-button.js +151 -1
  28. package/components/ion-fab-list.js +73 -1
  29. package/components/ion-fab.js +101 -1
  30. package/components/ion-footer.js +179 -1
  31. package/components/ion-grid.js +46 -1
  32. package/components/ion-header.js +6 -1
  33. package/components/ion-icon.js +6 -1
  34. package/components/ion-img.js +133 -1
  35. package/components/ion-infinite-scroll-content.js +69 -1
  36. package/components/ion-infinite-scroll.js +236 -1
  37. package/components/ion-input-otp.js +682 -1
  38. package/components/ion-input-password-toggle.js +128 -1
  39. package/components/ion-input.js +646 -1
  40. package/components/ion-item-divider.js +59 -1
  41. package/components/ion-item-group.js +46 -1
  42. package/components/ion-item-option.js +91 -1
  43. package/components/ion-item-options.js +73 -1
  44. package/components/ion-item-sliding.js +457 -1
  45. package/components/ion-item.js +6 -1
  46. package/components/ion-label.js +6 -1
  47. package/components/ion-list-header.js +6 -1
  48. package/components/ion-list.js +6 -1
  49. package/components/ion-loading.js +343 -1
  50. package/components/ion-menu-button.js +109 -1
  51. package/components/ion-menu-toggle.js +64 -1
  52. package/components/ion-menu.js +741 -1
  53. package/components/ion-modal.js +6 -1
  54. package/components/ion-nav-link.js +64 -1
  55. package/components/ion-nav.js +951 -1
  56. package/components/ion-note.js +47 -1
  57. package/components/ion-picker-column-option.js +6 -1
  58. package/components/ion-picker-column.js +6 -1
  59. package/components/ion-picker-legacy-column.js +6 -1
  60. package/components/ion-picker-legacy.js +342 -1
  61. package/components/ion-picker.js +6 -1
  62. package/components/ion-popover.js +6 -1
  63. package/components/ion-progress-bar.js +100 -1
  64. package/components/ion-radio-group.js +6 -1
  65. package/components/ion-radio.js +6 -1
  66. package/components/ion-range.js +844 -1
  67. package/components/ion-refresher-content.js +88 -1
  68. package/components/ion-refresher.js +750 -1
  69. package/components/ion-reorder-group.js +322 -1
  70. package/components/ion-reorder.js +60 -1
  71. package/components/ion-ripple-effect.js +6 -1
  72. package/components/ion-route-redirect.js +45 -1
  73. package/components/ion-route.js +74 -1
  74. package/components/ion-router-link.js +61 -1
  75. package/components/ion-router-outlet.js +226 -1
  76. package/components/ion-router.js +840 -1
  77. package/components/ion-row.js +36 -1
  78. package/components/ion-searchbar.js +540 -1
  79. package/components/ion-segment-button.js +173 -1
  80. package/components/ion-segment-content.js +35 -1
  81. package/components/ion-segment-view.js +142 -1
  82. package/components/ion-segment.js +602 -1
  83. package/components/ion-select-modal.js +6 -1
  84. package/components/ion-select-option.js +46 -1
  85. package/components/ion-select-popover.js +6 -1
  86. package/components/ion-select.js +1035 -1
  87. package/components/ion-skeleton-text.js +64 -1
  88. package/components/ion-spinner.js +6 -1
  89. package/components/ion-split-pane.js +190 -1
  90. package/components/ion-tab-bar.js +135 -1
  91. package/components/ion-tab-button.js +127 -1
  92. package/components/ion-tab.js +82 -1
  93. package/components/ion-tabs.js +204 -1
  94. package/components/ion-text.js +42 -1
  95. package/components/ion-textarea.js +554 -1
  96. package/components/ion-thumbnail.js +36 -1
  97. package/components/ion-title.js +6 -1
  98. package/components/ion-toast.js +938 -1
  99. package/components/ion-toggle.js +360 -1
  100. package/components/ion-toolbar.js +6 -1
  101. package/components/p-B-hirT0v.js +35 -1
  102. package/components/p-B25GjpND.js +71 -0
  103. package/components/p-BANeLH_G.js +290 -0
  104. package/components/p-BBFQmhcD.js +59 -0
  105. package/components/p-BC-awmYt.js +306 -0
  106. package/components/p-BHbOsu99.js +501 -0
  107. package/components/p-BTEOs1at.js +192 -1
  108. package/components/p-BTlwXR9e.js +73 -0
  109. package/components/p-BcazQttQ.js +612 -0
  110. package/components/p-BdGshsIJ.js +226 -0
  111. package/components/p-BfS7vSpC.js +147 -0
  112. package/components/p-BhRFCLuX.js +675 -0
  113. package/components/p-Bhnhnzjz.js +75 -0
  114. package/components/p-BmVRXR1y.js +72 -1
  115. package/components/p-BmcqD0EN.js +153 -0
  116. package/components/p-Boi6hecl.js +115 -0
  117. package/components/p-Bt_moUyl.js +232 -0
  118. package/components/p-Bxl5etF4.js +146 -0
  119. package/components/p-ByjmWt3s.js +139 -0
  120. package/components/p-C04oPyjT.js +54 -0
  121. package/components/p-C53feagD.js +15 -1
  122. package/components/p-C6dkQWq2.js +1626 -0
  123. package/components/p-CFZWrvIQ.js +194 -0
  124. package/components/p-CIGNaXM1.js +10 -1
  125. package/{dist/esm/config-TO1rZH52.js → components/p-CIJwkzL6.js} +1 -1
  126. package/components/p-CL12ApCQ.js +820 -0
  127. package/components/p-CO7fmmxt.js +29 -1
  128. package/components/p-CXJR56Oq.js +564 -0
  129. package/components/p-Cdm3dKWf.js +108 -0
  130. package/components/p-Cl0B-RWe.js +452 -1
  131. package/components/p-CslsoGzv.js +192 -0
  132. package/components/p-CtWGkNnJ.js +162 -1
  133. package/components/p-Cyd00tgZ.js +167 -0
  134. package/components/p-CzAJ3ArC.js +380 -0
  135. package/components/p-CzW34QBh.js +12 -0
  136. package/components/p-D0zXRwcr.js +196 -0
  137. package/components/p-D13Eaw-8.js +76 -1
  138. package/components/p-D5hF6rwn.js +339 -0
  139. package/components/p-D6Ynv7Xh.js +141 -1
  140. package/components/p-D8eD2iBA.js +67 -0
  141. package/components/p-DGOrLIyS.js +481 -0
  142. package/components/p-DJztqcrH.js +14 -1
  143. package/components/p-DK2Bn1Mc.js +305 -0
  144. package/components/p-DKRQWlK2.js +598 -0
  145. package/components/p-DNDUsygf.js +128 -0
  146. package/components/p-DTWZF6wg.js +418 -0
  147. package/components/p-DWoUQeZ3.js +3012 -0
  148. package/components/p-DX0w75a9.js +420 -0
  149. package/components/p-DiVJyqlX.js +40 -1
  150. package/components/p-Dt8zaCLQ.js +92 -0
  151. package/components/p-Dtdm8lKC.js +44 -1
  152. package/components/p-DyFBFrV7.js +264 -0
  153. package/components/p-DyHPCMyn.js +39 -0
  154. package/components/p-LgLeKTkH.js +112 -0
  155. package/components/p-NhiRFRn9.js +50 -0
  156. package/components/p-OuiHmXO5.js +646 -0
  157. package/components/p-Wro9IPHE.js +459 -0
  158. package/components/p-ZjP4CjeZ.js +4 -1
  159. package/components/p-aIWC4ZEV.js +305 -0
  160. package/components/p-c-XJ9XhZ.js +915 -0
  161. package/components/p-cyNmxje6.js +155 -1
  162. package/components/p-fVuFT3Wd.js +78 -0
  163. package/components/p-hHmYLOfE.js +87 -1
  164. package/components/p-iyo0Toaz.js +2822 -0
  165. package/{dist/esm/framework-delegate-CyxE1S_P.js → components/p-l_lso3Zl.js} +1 -1
  166. package/components/p-mQp4lwQD.js +1638 -0
  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-Dl5cnc_e.js → input-shims-CuMghsQ-.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 +43 -48
  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 +46 -75
  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 +17 -19
  205. package/dist/cjs/ion-item_8.cjs.entry.js +42 -48
  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 +59 -237
  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 +57 -205
  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 +8 -13
  224. package/dist/cjs/ion-segment_2.cjs.entry.js +16 -26
  225. package/dist/cjs/ion-select-modal.cjs.entry.js +13 -17
  226. package/dist/cjs/ion-select_3.cjs.entry.js +24 -33
  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 +14 -20
  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 +7 -12
  260. package/dist/collection/components/datetime/datetime.js +22 -43
  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 +5 -10
  268. package/dist/collection/components/item-divider/item-divider.js +3 -7
  269. package/dist/collection/components/item-option/item-option.js +3 -6
  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 +3 -6
  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 +12 -120
  278. package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -54
  279. package/dist/collection/components/modal/modal.js +45 -127
  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 +53 -214
  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.ios.css +1 -2
  304. package/dist/collection/components/segment-view/segment-view.js +4 -30
  305. package/dist/collection/components/segment-view/segment-view.md.css +1 -2
  306. package/dist/collection/components/select/select.js +8 -17
  307. package/dist/collection/components/select-modal/select-modal.js +2 -27
  308. package/dist/collection/components/select-popover/select-popover.js +1 -2
  309. package/dist/collection/components/skeleton-text/skeleton-text.js +1 -2
  310. package/dist/collection/components/spinner/spinner.js +2 -4
  311. package/dist/collection/components/tab/tab.js +2 -4
  312. package/dist/collection/components/tab-bar/tab-bar.js +2 -4
  313. package/dist/collection/components/tab-button/tab-button.js +2 -4
  314. package/dist/collection/components/tabs/tabs.js +2 -4
  315. package/dist/collection/components/text/text.js +1 -2
  316. package/dist/collection/components/textarea/textarea.js +7 -10
  317. package/dist/collection/components/title/title.js +2 -4
  318. package/dist/collection/components/toast/toast.js +17 -34
  319. package/dist/collection/components/toggle/toggle.js +2 -4
  320. package/dist/collection/components/toolbar/toolbar.js +1 -2
  321. package/dist/docs.d.ts +0 -37
  322. package/dist/docs.json +389 -1186
  323. package/dist/esm/{animation-CnGMT4ji.js → animation-Dt8bGnA-.js} +1 -1
  324. package/dist/esm/app-globals-BDSf8fOA.js +8 -0
  325. package/dist/esm/{button-active-BBx21brx.js → button-active-L570Swow.js} +1 -1
  326. package/dist/esm/config-mCdtaoPe.js +195 -0
  327. package/dist/esm/{data-B9iGR5YO.js → data-DCORV9FH.js} +1 -1
  328. package/dist/esm/framework-delegate-BYawdMXj.js +140 -0
  329. package/dist/esm/{hardware-back-button-CTe4XmL7.js → hardware-back-button-CPLxO-Ev.js} +1 -1
  330. package/dist/esm/{helpers-Tl8jw6S2.js → helpers-DEn3pfjm.js} +1 -1
  331. package/dist/esm/{index-hW6eNZ3o.js → index-Bs3kT4bc.js} +2 -2
  332. package/dist/esm/{index-IGIE5vDm.js → index-C8IsBmNU.js} +382 -503
  333. package/dist/esm/{index-B2KwgBLx.js → index-CvDIirVx.js} +5 -5
  334. package/dist/esm/{index-BtUdxPjv.js → index-ceb5RaMT.js} +2 -2
  335. package/dist/esm/{index-B-hkiOUh.js → index-r2D9DEro.js} +4 -4
  336. package/dist/esm/index.js +12 -12
  337. package/dist/esm/{input-shims-AaDhOpKN.js → input-shims-D6H3ZaWt.js} +3 -3
  338. package/dist/esm/{input.utils-Bxa_DQ7-.js → input.utils-DrvTa8gz.js} +2 -2
  339. package/dist/esm/ion-accordion_2.entry.js +15 -23
  340. package/dist/esm/ion-action-sheet.entry.js +15 -21
  341. package/dist/esm/ion-alert.entry.js +17 -25
  342. package/dist/esm/ion-app_8.entry.js +43 -48
  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 +14 -20
  347. package/dist/esm/ion-button_2.entry.js +18 -36
  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 +46 -75
  354. package/dist/esm/ion-fab_3.entry.js +13 -17
  355. package/dist/esm/ion-img.entry.js +6 -8
  356. package/dist/esm/ion-infinite-scroll_2.entry.js +13 -17
  357. package/dist/esm/ion-input-otp.entry.js +10 -16
  358. package/dist/esm/ion-input-password-toggle.entry.js +7 -9
  359. package/dist/esm/ion-input.entry.js +13 -21
  360. package/dist/esm/ion-item-option_3.entry.js +17 -19
  361. package/dist/esm/ion-item_8.entry.js +42 -48
  362. package/dist/esm/ion-loading.entry.js +14 -18
  363. package/dist/esm/ion-menu_3.entry.js +22 -30
  364. package/dist/esm/ion-modal.entry.js +59 -237
  365. package/dist/esm/ion-nav_2.entry.js +10 -14
  366. package/dist/esm/ion-picker-column-option.entry.js +8 -10
  367. package/dist/esm/ion-picker-column.entry.js +7 -11
  368. package/dist/esm/ion-picker.entry.js +6 -6
  369. package/dist/esm/ion-popover.entry.js +15 -21
  370. package/dist/esm/ion-progress-bar.entry.js +7 -7
  371. package/dist/esm/ion-radio_2.entry.js +13 -17
  372. package/dist/esm/ion-range.entry.js +57 -205
  373. package/dist/esm/ion-refresher_2.entry.js +14 -45
  374. package/dist/esm/ion-reorder_2.entry.js +11 -13
  375. package/dist/esm/ion-ripple-effect.entry.js +4 -4
  376. package/dist/esm/ion-route_4.entry.js +10 -20
  377. package/dist/esm/ion-searchbar.entry.js +12 -22
  378. package/dist/esm/ion-segment-content.entry.js +3 -3
  379. package/dist/esm/ion-segment-view.entry.js +8 -13
  380. package/dist/esm/ion-segment_2.entry.js +16 -26
  381. package/dist/esm/ion-select-modal.entry.js +13 -17
  382. package/dist/esm/ion-select_3.entry.js +24 -33
  383. package/dist/esm/ion-spinner.entry.js +4 -4
  384. package/dist/esm/ion-split-pane.entry.js +9 -15
  385. package/dist/esm/ion-tab-bar_2.entry.js +12 -14
  386. package/dist/esm/ion-tab_2.entry.js +8 -10
  387. package/dist/esm/ion-text.entry.js +4 -4
  388. package/dist/esm/ion-textarea.entry.js +14 -20
  389. package/dist/esm/ion-toast.entry.js +15 -21
  390. package/dist/esm/ion-toggle.entry.js +8 -10
  391. package/dist/esm/{ionic-global-DfbeLwcV.js → ionic-global-CDrldh-5.js} +1 -1
  392. package/dist/esm/ionic.js +6 -6
  393. package/dist/esm/{ios.transition--aMF-pDH.js → ios.transition-BDzw0_Hm.js} +4 -4
  394. package/dist/esm/loader.js +5 -5
  395. package/dist/esm/{md.transition-BEVbfm8j.js → md.transition-BzDYi3qq.js} +4 -4
  396. package/dist/esm/{notch-controller-DAcvKU57.js → notch-controller-BwelN_JM.js} +1 -1
  397. package/dist/esm/{overlays-F8GHPo-e.js → overlays-D5YkFThA.js} +5 -5
  398. package/dist/esm/{status-tap-BfJqFSLF.js → status-tap-5DQ7Fc4V.js} +3 -3
  399. package/dist/esm/{swipe-back-BZBFwTQV.js → swipe-back-BKw2CAHc.js} +2 -2
  400. package/dist/html.html-data.json +109 -117
  401. package/dist/ionic/index.esm.js +1 -1
  402. package/dist/ionic/ionic.esm.js +1 -1
  403. package/dist/ionic/{p-f2deaceb.entry.js → p-0ca0fe9c.entry.js} +1 -1
  404. package/dist/ionic/p-11518b31.entry.js +4 -0
  405. package/dist/ionic/{p-80cac7a2.entry.js → p-11aa58d6.entry.js} +1 -1
  406. package/dist/ionic/p-221a3d8c.entry.js +4 -0
  407. package/dist/ionic/{p-b325a113.entry.js → p-2668188b.entry.js} +1 -1
  408. package/dist/ionic/p-2ac254dc.entry.js +4 -0
  409. package/dist/ionic/p-2bd1ea35.entry.js +4 -0
  410. package/dist/ionic/p-30333874.entry.js +4 -0
  411. package/dist/ionic/p-31db96da.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-363d1209.entry.js +4 -0
  415. package/dist/ionic/p-46a38cfd.entry.js +4 -0
  416. package/dist/ionic/{p-301c43f8.entry.js → p-49d06882.entry.js} +1 -1
  417. package/dist/ionic/p-4eec1a5e.entry.js +4 -0
  418. package/dist/ionic/p-530fcd71.entry.js +4 -0
  419. package/dist/ionic/{p-9833cf63.entry.js → p-582824c5.entry.js} +1 -1
  420. package/dist/ionic/{p-1b169fb6.entry.js → p-5c8f7253.entry.js} +1 -1
  421. package/dist/ionic/p-5d6fb6e3.entry.js +4 -0
  422. package/dist/ionic/{p-e6cedcd7.entry.js → p-652318c3.entry.js} +1 -1
  423. package/dist/ionic/p-66fbe052.entry.js +4 -0
  424. package/dist/ionic/{p-9fae83d8.entry.js → p-675b1a31.entry.js} +1 -1
  425. package/dist/ionic/{p-bcaa827e.entry.js → p-6f37536a.entry.js} +1 -1
  426. package/dist/ionic/{p-370a60ee.entry.js → p-79bd78f9.entry.js} +1 -1
  427. package/dist/ionic/p-7babec72.entry.js +4 -0
  428. package/dist/ionic/{p-6af16209.entry.js → p-7cad388a.entry.js} +1 -1
  429. package/dist/ionic/{p-6b701daa.entry.js → p-7f98e710.entry.js} +1 -1
  430. package/dist/ionic/p-82d5bb3d.entry.js +4 -0
  431. package/dist/ionic/{p-7ca71c83.entry.js → p-906bb44d.entry.js} +1 -1
  432. package/dist/ionic/{p-23fac490.entry.js → p-915b3e3d.entry.js} +1 -1
  433. package/dist/ionic/{p-e663bc5a.entry.js → p-9575b654.entry.js} +1 -1
  434. package/dist/ionic/p-97eb0812.entry.js +4 -0
  435. package/dist/ionic/p-9b6d46f2.entry.js +4 -0
  436. package/dist/ionic/{p-DB_iPQC-.js → p-B0q1YL7N.js} +1 -1
  437. package/dist/ionic/{p-NFFyoJ4Q.js → p-BFvmZNyx.js} +1 -1
  438. package/dist/ionic/p-BKc55Xev.js +4 -0
  439. package/dist/ionic/{p-CYbRmDdy.js → p-BOVrCkpJ.js} +1 -1
  440. package/{components/p-Cy5XSfIk.js → dist/ionic/p-BYEqWnSg.js} +1 -1
  441. package/dist/ionic/p-Bmgaetn_.js +4 -0
  442. package/dist/ionic/{p-BAt5H1ac.js → p-C7hRNDhM.js} +1 -1
  443. package/dist/ionic/p-C8IsBmNU.js +5 -0
  444. package/dist/ionic/p-CJxh_yLS.js +4 -0
  445. package/dist/ionic/{p-CGmVTdWh.js → p-CTfR9YZG.js} +1 -1
  446. package/{components/p-C59ryAuS.js → dist/ionic/p-CwgG81ZD.js} +1 -1
  447. package/{components/p-BR3tZJmu.js → dist/ionic/p-D-eFFUkA.js} +1 -1
  448. package/{components/p-BS1TtEiJ.js → dist/ionic/p-D0dMcSkw.js} +1 -1
  449. package/dist/ionic/{p-DjriolRs.js → p-DCv9sLH2.js} +1 -1
  450. package/dist/ionic/{p-Bum7H1fw.js → p-DDb5r57F.js} +1 -1
  451. package/dist/ionic/{p-DLbbmF9h.js → p-DNcfiJwE.js} +1 -1
  452. package/{components/p-9VcRUwdB.js → dist/ionic/p-DUt5fQmA.js} +1 -1
  453. package/dist/ionic/p-DZRJwG4S.js +4 -0
  454. package/{components/p-BUbsoBOV.js → dist/ionic/p-DbQ5QkTP.js} +1 -1
  455. package/dist/ionic/{p-BxIcPWoV.js → p-Dc45iWE4.js} +1 -1
  456. package/{components/p-Cq8cQ0NL.js → dist/ionic/p-DdR6rpbR.js} +1 -1
  457. package/dist/ionic/{p-CYvM5g3q.js → p-MUoJJJwd.js} +1 -1
  458. package/dist/ionic/p-a4a9f5ae.entry.js +4 -0
  459. package/dist/ionic/{p-f5dfb9a3.entry.js → p-ac4eb91d.entry.js} +1 -1
  460. package/dist/ionic/{p-ca31010f.entry.js → p-b0a7585c.entry.js} +1 -1
  461. package/dist/ionic/p-b0ebf9f8.entry.js +4 -0
  462. package/dist/ionic/{p-294f4bb5.entry.js → p-b8551510.entry.js} +1 -1
  463. package/dist/ionic/{p-f8186550.entry.js → p-bce86e56.entry.js} +1 -1
  464. package/dist/ionic/p-be263062.entry.js +4 -0
  465. package/dist/ionic/p-c175d792.entry.js +4 -0
  466. package/dist/ionic/p-cc2a9936.entry.js +4 -0
  467. package/dist/ionic/p-cc45bcbc.entry.js +4 -0
  468. package/dist/ionic/p-d0a2a1ab.entry.js +4 -0
  469. package/dist/ionic/{p-b440381f.entry.js → p-d1f54e28.entry.js} +1 -1
  470. package/dist/ionic/{p-a84f2d21.entry.js → p-da7d04cc.entry.js} +1 -1
  471. package/dist/ionic/p-e4c57008.entry.js +4 -0
  472. package/dist/ionic/p-e5d6d0f0.entry.js +4 -0
  473. package/dist/ionic/p-f1dfee25.entry.js +4 -0
  474. package/dist/ionic/p-f9f7b9db.entry.js +4 -0
  475. package/dist/ionic/{p-c3cce9d8.entry.js → p-fb0271ae.entry.js} +1 -1
  476. package/dist/ionic/{p-e863ffe8.entry.js → p-fbb00634.entry.js} +1 -1
  477. package/dist/types/components/datetime/datetime.d.ts +0 -10
  478. package/dist/types/components/header/header.utils.d.ts +1 -2
  479. package/dist/types/components/item/item.d.ts +0 -2
  480. package/dist/types/components/item-divider/item-divider.d.ts +0 -3
  481. package/dist/types/components/item-option/item-option.d.ts +0 -2
  482. package/dist/types/components/list-header/list-header.d.ts +0 -2
  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 +0 -25
  486. package/dist/types/components/modal/modal.d.ts +1 -22
  487. package/dist/types/components/range/range-interface.d.ts +0 -1
  488. package/dist/types/components/range/range.d.ts +4 -44
  489. package/dist/types/components/refresher/refresher-interface.d.ts +0 -7
  490. package/dist/types/components/refresher/refresher.d.ts +3 -16
  491. package/dist/types/components/segment-view/segment-view.d.ts +0 -4
  492. package/dist/types/components/select/select.d.ts +0 -3
  493. package/dist/types/components/select-modal/select-modal.d.ts +0 -4
  494. package/dist/types/components.d.ts +191 -964
  495. package/dist/types/interface.d.ts +2 -2
  496. package/dist/types/stencil-public-runtime.d.ts +14 -126
  497. package/dist/types/utils/gesture/listener.d.ts +1 -2
  498. package/hydrate/index.d.ts +0 -12
  499. package/hydrate/index.js +1421 -5632
  500. package/hydrate/index.mjs +1422 -5631
  501. package/package.json +2 -2
  502. package/components/p-1KVKSLu5.js +0 -4
  503. package/components/p-ApmKVjaE.js +0 -4
  504. package/components/p-B6FQ0cKR.js +0 -4
  505. package/components/p-B6HaBl3o.js +0 -4
  506. package/components/p-B8b1Ukl9.js +0 -4
  507. package/components/p-BFxT89Wl.js +0 -4
  508. package/components/p-BJoMtgfR.js +0 -4
  509. package/components/p-BNAG-aVv.js +0 -4
  510. package/components/p-BSB38Tek.js +0 -4
  511. package/components/p-BTeL5HCK.js +0 -4
  512. package/components/p-BVnB3eEn.js +0 -4
  513. package/components/p-BYDc3hSE.js +0 -4
  514. package/components/p-BagjAGC0.js +0 -4
  515. package/components/p-BegtE7nr.js +0 -4
  516. package/components/p-BgwEQWW6.js +0 -4
  517. package/components/p-Bk2zuNWT.js +0 -4
  518. package/components/p-Bum_LjMh.js +0 -4
  519. package/components/p-BxwWvu-b.js +0 -4
  520. package/components/p-C4jPsTQa.js +0 -4
  521. package/components/p-C7AoMl7c.js +0 -4
  522. package/components/p-CBzELu-H.js +0 -4
  523. package/components/p-CDfQnFrd.js +0 -4
  524. package/components/p-CH0NYjKq.js +0 -4
  525. package/components/p-CU1SSH8_.js +0 -4
  526. package/components/p-CVF7ukTk.js +0 -4
  527. package/components/p-CgfaEEem.js +0 -4
  528. package/components/p-CgqKJg96.js +0 -4
  529. package/components/p-CneGxKsZ.js +0 -4
  530. package/components/p-CoA-aqGF.js +0 -4
  531. package/components/p-Csw8xuz4.js +0 -4
  532. package/components/p-Cwv-vmkN.js +0 -4
  533. package/components/p-Cyxa_4PV.js +0 -4
  534. package/components/p-Cz5nLPGT.js +0 -4
  535. package/components/p-D6NJwNJN.js +0 -4
  536. package/components/p-DHsZWn1l.js +0 -4
  537. package/components/p-DJMZehmW.js +0 -4
  538. package/components/p-DYdpXONG.js +0 -4
  539. package/components/p-DgbT0exM.js +0 -4
  540. package/components/p-YLXPWgVj.js +0 -4
  541. package/components/p-ak_d-z48.js +0 -4
  542. package/components/p-fpbh6w3f.js +0 -4
  543. package/components/p-kvaDs24J.js +0 -4
  544. package/components/p-vEbVo2hO.js +0 -4
  545. package/dist/cjs/app-globals-CLI8xCmk.js +0 -11
  546. package/dist/esm/app-globals-DhZjtldk.js +0 -9
  547. package/dist/ionic/p-031b76f7.entry.js +0 -4
  548. package/dist/ionic/p-045a6a42.entry.js +0 -4
  549. package/dist/ionic/p-07506134.entry.js +0 -4
  550. package/dist/ionic/p-084c25b2.entry.js +0 -4
  551. package/dist/ionic/p-0d8b5c38.entry.js +0 -4
  552. package/dist/ionic/p-16813ce7.entry.js +0 -4
  553. package/dist/ionic/p-16b65553.entry.js +0 -4
  554. package/dist/ionic/p-1b02923f.entry.js +0 -4
  555. package/dist/ionic/p-2a68388b.entry.js +0 -4
  556. package/dist/ionic/p-2f5a8140.entry.js +0 -4
  557. package/dist/ionic/p-3e143d1d.entry.js +0 -4
  558. package/dist/ionic/p-4819b469.entry.js +0 -4
  559. package/dist/ionic/p-4dd5e8e0.entry.js +0 -4
  560. package/dist/ionic/p-51c11c47.entry.js +0 -4
  561. package/dist/ionic/p-53f750a5.entry.js +0 -4
  562. package/dist/ionic/p-6b97f2a3.entry.js +0 -4
  563. package/dist/ionic/p-71e322f7.entry.js +0 -4
  564. package/dist/ionic/p-7620be24.entry.js +0 -4
  565. package/dist/ionic/p-771b27a5.entry.js +0 -4
  566. package/dist/ionic/p-96a2e768.entry.js +0 -4
  567. package/dist/ionic/p-9cbc6f1f.entry.js +0 -4
  568. package/dist/ionic/p-9cdbabbb.entry.js +0 -4
  569. package/dist/ionic/p-9eac4eb1.entry.js +0 -4
  570. package/dist/ionic/p-B8xlpH8p.js +0 -4
  571. package/dist/ionic/p-BW_TRJm8.js +0 -4
  572. package/dist/ionic/p-BvFYtOdE.js +0 -4
  573. package/dist/ionic/p-C0JvVFMv.js +0 -4
  574. package/dist/ionic/p-CmFz1Mjc.js +0 -4
  575. package/dist/ionic/p-CtA-yJYy.js +0 -4
  576. package/dist/ionic/p-D8HJQ1qq.js +0 -4
  577. package/dist/ionic/p-DTPR1Wpn.js +0 -4
  578. package/dist/ionic/p-DtVZDHlS.js +0 -4
  579. package/dist/ionic/p-IGIE5vDm.js +0 -5
  580. package/dist/ionic/p-a805674e.entry.js +0 -4
  581. package/dist/ionic/p-aa47f46e.entry.js +0 -4
  582. package/dist/ionic/p-b6e0ff03.entry.js +0 -4
  583. package/dist/ionic/p-d4e8b473.entry.js +0 -4
  584. package/dist/ionic/p-e6c5f060.entry.js +0 -4
  585. package/dist/ionic/p-fdbc90d4.entry.js +0 -4
  586. package/dist/ionic/p-gbVXD275.js +0 -4
  587. 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 that wraps the knob and handles drag interactions.
26
- * @part knob-handle-a - The container for the knob with the static `A` identity when `dualKnobs` is `true`. This identity does not change, even if the knobs cross and swap which one represents the lower or upper value.
27
- * @part knob-handle-b - The container for the knob with the static `B` identity when `dualKnobs` is `true`. This identity does not change, even if the knobs cross and swap which one represents the lower or upper value.
28
- * @part knob-handle-lower - The container for the knob whose current `value` is `lower` when `dualKnobs` is `true`. The lower and upper parts swap which knob handle they refer to when the knobs cross.
29
- * @part knob-handle-upper - The container for the knob whose current `value` is `upper` when `dualKnobs` is `true`. The lower and upper parts swap which knob handle they refer to when the knobs cross.
30
- * @part pin - The value indicator displayed above a knob.
31
- * @part pin-a - The value indicator above the knob with the static `A` identity when `dualKnobs` is `true`. This identity does not change, even if the knobs cross and swap which one represents the lower or upper value.
32
- * @part pin-b - The value indicator above the knob with the static `B` identity when `dualKnobs` is `true`. This identity does not change, even if the knobs cross and swap which one represents the lower or upper value.
33
- * @part pin-lower - The value indicator above the knob whose current `value` is `lower` when `dualKnobs` is `true`. The lower and upper parts swap which pin they refer to when the knobs cross.
34
- * @part pin-upper - The value indicator above the knob whose current `value` is `upper` when `dualKnobs` is `true`. The lower and upper parts swap which pin they refer to when the knobs cross.
35
- * @part knob - The visual knob element on the range track.
36
- * @part knob-a - The visual knob for the static `A` identity when `dualKnobs` is `true`. This identity does not change, even if the knobs cross and swap which one represents the lower or upper value.
37
- * @part knob-b - The visual knob for the static `B` identity when `dualKnobs` is `true`. This identity does not change, even if the knobs cross and swap which one represents the lower or upper value.
38
- * @part knob-lower - The visual knob whose current `value` is `lower` when `dualKnobs` is `true`. The lower and upper parts swap which knob they refer to when the knobs cross.
39
- * @part knob-upper - The visual knob whose current `value` is `upper` when `dualKnobs` is `true`. The lower and upper parts swap which knob they refer to when the knobs cross.
40
- * @part activated - Added to the knob-handle, knob, and pin when the knob is active. 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,12 +34,6 @@ export class Range {
51
34
  this.inheritedAttributes = {};
52
35
  this.contentEl = null;
53
36
  this.initialContentScrollY = true;
54
- /**
55
- * Used to avoid setting the focused state on click or tap. The focused
56
- * state is only set when the focus comes from the keyboard (e.g. Tab).
57
- * This is set to true on pointer down (mouse/touch).
58
- */
59
- this.focusFromPointer = false;
60
37
  this.ratioA = 0;
61
38
  this.ratioB = 0;
62
39
  /**
@@ -166,31 +143,6 @@ export class Range {
166
143
  this.gesture.enable(!this.disabled);
167
144
  }
168
145
  };
169
- /**
170
- * Observes the knob handles for the ion-activated class and syncs
171
- * activatedKnob so the activated part is correctly set on the handle,
172
- * knob, and pin.
173
- */
174
- this.setupActivatedObserver = () => {
175
- const knobHandleA = this.el.shadowRoot.querySelector('.range-knob-handle-a');
176
- const knobHandleB = this.el.shadowRoot.querySelector('.range-knob-handle-b');
177
- const syncActivated = () => {
178
- this.activatedKnob = (knobHandleA === null || knobHandleA === void 0 ? void 0 : knobHandleA.classList.contains('ion-activated'))
179
- ? 'A'
180
- : (knobHandleB === null || knobHandleB === void 0 ? void 0 : knobHandleB.classList.contains('ion-activated'))
181
- ? 'B'
182
- : undefined;
183
- };
184
- if (Build.isBrowser && typeof MutationObserver !== 'undefined') {
185
- this.activatedObserver = new MutationObserver(syncActivated);
186
- this.activatedObserver.observe(this.el.shadowRoot, {
187
- attributes: true,
188
- attributeFilter: ['class'],
189
- subtree: true,
190
- });
191
- }
192
- syncActivated();
193
- };
194
146
  this.handleKeyboard = (knob, isIncrease) => {
195
147
  const { ensureValueInBounds } = this;
196
148
  let step = this.step;
@@ -213,7 +165,6 @@ export class Range {
213
165
  this.onBlur = () => {
214
166
  if (this.hasFocus) {
215
167
  this.hasFocus = false;
216
- this.focusedKnob = undefined;
217
168
  this.ionBlur.emit();
218
169
  }
219
170
  };
@@ -224,20 +175,21 @@ export class Range {
224
175
  }
225
176
  };
226
177
  this.onKnobFocus = (knob) => {
227
- // Clicking focuses the range which is needed for the keyboard,
228
- // but we only want to add the ion-focused class when focused via Tab.
229
- if (!this.focusFromPointer) {
230
- this.focusedKnob = knob;
231
- }
232
- else {
233
- this.focusFromPointer = false;
234
- this.focusedKnob = undefined;
235
- }
236
- // If the knob was not already focused, emit the focus event
237
178
  if (!this.hasFocus) {
238
179
  this.hasFocus = true;
239
180
  this.ionFocus.emit();
240
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
+ }
241
193
  };
242
194
  this.onKnobBlur = () => {
243
195
  // Check if focus is moving to another knob within the same range
@@ -249,18 +201,18 @@ export class Range {
249
201
  if (!isStillFocusedOnKnob) {
250
202
  if (this.hasFocus) {
251
203
  this.hasFocus = false;
252
- this.focusedKnob = undefined;
253
204
  this.ionBlur.emit();
254
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
+ }
255
213
  }
256
214
  }, 0);
257
215
  };
258
- this.onKnobMouseEnter = (knob) => {
259
- this.hoveredKnob = knob;
260
- };
261
- this.onKnobMouseLeave = () => {
262
- this.hoveredKnob = undefined;
263
- };
264
216
  }
265
217
  debounceChanged() {
266
218
  const { ionInput, debounce, originalIonInput } = this;
@@ -337,7 +289,6 @@ export class Range {
337
289
  this.originalIonInput = this.ionInput;
338
290
  this.setupGesture();
339
291
  this.updateRatio();
340
- this.setupActivatedObserver();
341
292
  this.didLoad = true;
342
293
  }
343
294
  connectedCallback() {
@@ -354,7 +305,6 @@ export class Range {
354
305
  */
355
306
  if (this.didLoad) {
356
307
  this.setupGesture();
357
- this.setupActivatedObserver();
358
308
  }
359
309
  const ionContent = findClosestIonContent(this.el);
360
310
  this.contentEl = (_a = ionContent === null || ionContent === void 0 ? void 0 : ionContent.querySelector('.ion-content-scroll-host')) !== null && _a !== void 0 ? _a : ionContent;
@@ -364,10 +314,6 @@ export class Range {
364
314
  this.gesture.destroy();
365
315
  this.gesture = undefined;
366
316
  }
367
- if (this.activatedObserver) {
368
- this.activatedObserver.disconnect();
369
- this.activatedObserver = undefined;
370
- }
371
317
  }
372
318
  getValue() {
373
319
  var _a;
@@ -438,7 +384,7 @@ export class Range {
438
384
  * started dragging the knob.
439
385
  *
440
386
  * This is necessary to determine which knob the user is dragging,
441
- * especially when using dual knobs.
387
+ * especially when it's a dual knob.
442
388
  * Plus, it determines when to apply certain styles.
443
389
  *
444
390
  * This only needs to be done once since the knob won't change
@@ -465,7 +411,7 @@ export class Range {
465
411
  * dragged the knob. They just tapped on the bar.
466
412
  *
467
413
  * This is necessary to determine which knob the user is changing,
468
- * especially when using dual knobs.
414
+ * especially when it's a dual knob.
469
415
  * Plus, it determines when to apply certain styles.
470
416
  */
471
417
  if (this.pressedKnob === undefined) {
@@ -520,6 +466,7 @@ export class Range {
520
466
  ratio = 1 - ratio;
521
467
  }
522
468
  this.pressedKnob = !this.dualKnobs || Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio) ? 'A' : 'B';
469
+ this.setFocus(this.pressedKnob);
523
470
  }
524
471
  get valA() {
525
472
  return ratioToValue(this.ratioA, this.min, this.max, this.step);
@@ -546,23 +493,9 @@ export class Range {
546
493
  updateRatio() {
547
494
  const value = this.getValue();
548
495
  const { min, max } = this;
549
- /**
550
- * For dual knobs, value gives lower/upper but not which is A vs B.
551
- * Assign (lowerRatio, upperRatio) to (ratioA, ratioB) in the way that
552
- * minimizes change from the current ratios so the knobs don't swap.
553
- */
554
496
  if (this.dualKnobs) {
555
- const lowerRatio = valueToRatio(value.lower, min, max);
556
- const upperRatio = valueToRatio(value.upper, min, max);
557
- if (Math.abs(this.ratioA - lowerRatio) + Math.abs(this.ratioB - upperRatio) <=
558
- Math.abs(this.ratioA - upperRatio) + Math.abs(this.ratioB - lowerRatio)) {
559
- this.ratioA = lowerRatio;
560
- this.ratioB = upperRatio;
561
- }
562
- else {
563
- this.ratioA = upperRatio;
564
- this.ratioB = lowerRatio;
565
- }
497
+ this.ratioA = valueToRatio(value.lower, min, max);
498
+ this.ratioB = valueToRatio(value.upper, min, max);
566
499
  }
567
500
  else {
568
501
  this.ratioA = valueToRatio(value, min, max);
@@ -579,6 +512,14 @@ export class Range {
579
512
  };
580
513
  this.noUpdate = false;
581
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
+ }
582
523
  /**
583
524
  * Returns true if content was passed to the "start" slot
584
525
  */
@@ -596,7 +537,7 @@ export class Range {
596
537
  }
597
538
  renderRangeSlider() {
598
539
  var _a;
599
- 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;
600
541
  let barStart = `${ratioLower * 100}%`;
601
542
  let barEnd = `${100 - ratioUpper * 100}%`;
602
543
  const rtl = isRTL(this.el);
@@ -656,9 +597,7 @@ export class Range {
656
597
  ticks.push(tick);
657
598
  }
658
599
  }
659
- return (h("div", { class: "range-slider", ref: (rangeEl) => (this.rangeSlider = rangeEl), onPointerDown: () => {
660
- this.focusFromPointer = true;
661
- },
600
+ return (h("div", { class: "range-slider", ref: (rangeEl) => (this.rangeSlider = rangeEl),
662
601
  /**
663
602
  * Since the gesture has a threshold, the value
664
603
  * won't change until the user has dragged past
@@ -671,7 +610,6 @@ export class Range {
671
610
  * we need to listen for the "pointerUp" event.
672
611
  */
673
612
  onPointerUp: (ev) => {
674
- this.focusFromPointer = false;
675
613
  /**
676
614
  * If the user drags the knob on the web
677
615
  * version (does not occur on mobile),
@@ -697,11 +635,6 @@ export class Range {
697
635
  'has-ticks': ticks.length > 0,
698
636
  }, role: "presentation", style: barStyle, part: "bar-active" })), renderKnob(rtl, {
699
637
  knob: 'A',
700
- position: getKnobPosition('A', this.ratioA, this.ratioB, this.dualKnobs),
701
- dualKnobs: this.dualKnobs,
702
- activated: activatedKnob === 'A',
703
- focused: focusedKnob === 'A',
704
- hovered: hoveredKnob === 'A',
705
638
  pressed: pressedKnob === 'A',
706
639
  value: this.valA,
707
640
  ratio: this.ratioA,
@@ -714,16 +647,9 @@ export class Range {
714
647
  inheritedAttributes,
715
648
  onKnobFocus: this.onKnobFocus,
716
649
  onKnobBlur: this.onKnobBlur,
717
- onKnobMouseEnter: this.onKnobMouseEnter,
718
- onKnobMouseLeave: this.onKnobMouseLeave,
719
650
  }), this.dualKnobs &&
720
651
  renderKnob(rtl, {
721
652
  knob: 'B',
722
- position: getKnobPosition('B', this.ratioA, this.ratioB, this.dualKnobs),
723
- dualKnobs: this.dualKnobs,
724
- activated: activatedKnob === 'B',
725
- focused: focusedKnob === 'B',
726
- hovered: hoveredKnob === 'B',
727
653
  pressed: pressedKnob === 'B',
728
654
  value: this.valB,
729
655
  ratio: this.ratioB,
@@ -736,12 +662,10 @@ export class Range {
736
662
  inheritedAttributes,
737
663
  onKnobFocus: this.onKnobFocus,
738
664
  onKnobBlur: this.onKnobBlur,
739
- onKnobMouseEnter: this.onKnobMouseEnter,
740
- onKnobMouseLeave: this.onKnobMouseLeave,
741
665
  })));
742
666
  }
743
667
  render() {
744
- const { disabled, el, hasLabel, rangeId, pin, pressedKnob, labelPlacement, label, dualKnobs, min, max } = this;
668
+ const { disabled, el, hasLabel, rangeId, pin, pressedKnob, labelPlacement, label } = this;
745
669
  const inItem = hostContext('ion-item', el);
746
670
  /**
747
671
  * If there is no start content then the knob at
@@ -756,37 +680,20 @@ export class Range {
756
680
  const hasEndContent = (hasLabel && labelPlacement === 'end') || this.hasEndSlotContent;
757
681
  const needsEndAdjustment = inItem && !hasEndContent;
758
682
  const mode = getIonMode(this);
759
- /**
760
- * Determine the name and position of the pressed knob to apply
761
- * Host classes for styling.
762
- */
763
- const pressedKnobName = dualKnobs ? pressedKnob === null || pressedKnob === void 0 ? void 0 : pressedKnob.toLowerCase() : undefined;
764
- const pressedKnobPosition = dualKnobs && pressedKnob ? getKnobPosition(pressedKnob, this.ratioA, this.ratioB, dualKnobs) : undefined;
765
- /**
766
- * Determine if any knob is at the min or max value to
767
- * apply Host classes for styling.
768
- */
769
- const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
770
- const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
771
683
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
772
- return (h(Host, { key: 'f8063d1234fb113fe55a7902845dd4b4da8b1edb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
684
+ return (h(Host, { key: 'affcac4709096a48a5b4c1864b209b6352f6b078', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
773
685
  [mode]: true,
774
686
  'in-item': inItem,
775
687
  'range-disabled': disabled,
776
- 'range-dual-knobs': dualKnobs,
777
688
  'range-pressed': pressedKnob !== undefined,
778
- [`range-pressed-${pressedKnobName}`]: pressedKnob !== undefined && pressedKnobName !== undefined,
779
- [`range-pressed-${pressedKnobPosition}`]: pressedKnob !== undefined && pressedKnobPosition !== undefined,
780
689
  'range-has-pin': pin,
781
690
  [`range-label-placement-${labelPlacement}`]: true,
782
691
  'range-item-start-adjustment': needsStartAdjustment,
783
692
  'range-item-end-adjustment': needsEndAdjustment,
784
- 'range-value-min': valueAtMin,
785
- 'range-value-max': valueAtMax,
786
- }) }, h("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, h("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
693
+ }) }, h("label", { key: 'c7cf95fa831d10b17c137995d0a9e0cf84006a76', class: "range-wrapper", id: "range-label" }, h("div", { key: '5b8479c7939ae0f94a042c3aafd64316e4577d30', class: {
787
694
  'label-text-wrapper': true,
788
695
  'label-text-wrapper-hidden': !hasLabel,
789
- }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: 'c066804263ab6ae7393f8dcc51184b7198844ffa', class: "native-wrapper" }, h("slot", { key: '7e8ea224d72b3e965dd948bee7e45c1a096b6899', name: "start" }), this.renderRangeSlider(), h("slot", { key: '21f242f6f60ff3adce6a2d90b2d4dac1ceaf6624', name: "end" })))));
696
+ }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '3c275d822b29a8008e044722e8b6bdabd3ecfad7', class: "native-wrapper" }, h("slot", { key: '03c849d0aa708914984ad57ca292bc5fc66ecad5', name: "start" }), this.renderRangeSlider(), h("slot", { key: '10ca7b8152cac00b45d8fa98ad91410f59fd176a', name: "end" })))));
790
697
  }
791
698
  static get is() { return "ion-range"; }
792
699
  static get encapsulation() { return "shadow"; }
@@ -814,8 +721,7 @@ export class Range {
814
721
  "Color": {
815
722
  "location": "import",
816
723
  "path": "../../interface",
817
- "id": "src/interface.d.ts::Color",
818
- "referenceLocation": "Color"
724
+ "id": "src/interface.d.ts::Color"
819
725
  }
820
726
  }
821
727
  },
@@ -978,8 +884,7 @@ export class Range {
978
884
  "PinFormatter": {
979
885
  "location": "import",
980
886
  "path": "./range-interface",
981
- "id": "src/components/range/range-interface.ts::PinFormatter",
982
- "referenceLocation": "PinFormatter"
887
+ "id": "src/components/range/range-interface.ts::PinFormatter"
983
888
  }
984
889
  }
985
890
  },
@@ -1102,8 +1007,7 @@ export class Range {
1102
1007
  "RangeValue": {
1103
1008
  "location": "import",
1104
1009
  "path": "./range-interface",
1105
- "id": "src/components/range/range-interface.ts::RangeValue",
1106
- "referenceLocation": "RangeValue"
1010
+ "id": "src/components/range/range-interface.ts::RangeValue"
1107
1011
  }
1108
1012
  }
1109
1013
  },
@@ -1145,9 +1049,6 @@ export class Range {
1145
1049
  return {
1146
1050
  "ratioA": {},
1147
1051
  "ratioB": {},
1148
- "activatedKnob": {},
1149
- "focusedKnob": {},
1150
- "hoveredKnob": {},
1151
1052
  "pressedKnob": {}
1152
1053
  };
1153
1054
  }
@@ -1169,8 +1070,7 @@ export class Range {
1169
1070
  "RangeChangeEventDetail": {
1170
1071
  "location": "import",
1171
1072
  "path": "./range-interface",
1172
- "id": "src/components/range/range-interface.ts::RangeChangeEventDetail",
1173
- "referenceLocation": "RangeChangeEventDetail"
1073
+ "id": "src/components/range/range-interface.ts::RangeChangeEventDetail"
1174
1074
  }
1175
1075
  }
1176
1076
  }
@@ -1191,8 +1091,7 @@ export class Range {
1191
1091
  "RangeChangeEventDetail": {
1192
1092
  "location": "import",
1193
1093
  "path": "./range-interface",
1194
- "id": "src/components/range/range-interface.ts::RangeChangeEventDetail",
1195
- "referenceLocation": "RangeChangeEventDetail"
1094
+ "id": "src/components/range/range-interface.ts::RangeChangeEventDetail"
1196
1095
  }
1197
1096
  }
1198
1097
  }
@@ -1243,8 +1142,7 @@ export class Range {
1243
1142
  "RangeKnobMoveStartEventDetail": {
1244
1143
  "location": "import",
1245
1144
  "path": "./range-interface",
1246
- "id": "src/components/range/range-interface.ts::RangeKnobMoveStartEventDetail",
1247
- "referenceLocation": "RangeKnobMoveStartEventDetail"
1145
+ "id": "src/components/range/range-interface.ts::RangeKnobMoveStartEventDetail"
1248
1146
  }
1249
1147
  }
1250
1148
  }
@@ -1265,8 +1163,7 @@ export class Range {
1265
1163
  "RangeKnobMoveEndEventDetail": {
1266
1164
  "location": "import",
1267
1165
  "path": "./range-interface",
1268
- "id": "src/components/range/range-interface.ts::RangeKnobMoveEndEventDetail",
1269
- "referenceLocation": "RangeKnobMoveEndEventDetail"
1166
+ "id": "src/components/range/range-interface.ts::RangeKnobMoveEndEventDetail"
1270
1167
  }
1271
1168
  }
1272
1169
  }
@@ -1298,7 +1195,7 @@ export class Range {
1298
1195
  }];
1299
1196
  }
1300
1197
  }
1301
- const renderKnob = (rtl, { knob, position, dualKnobs, value, ratio, min, max, disabled, activated, focused, hovered, pressed, pin, handleKeyboard, pinFormatter, inheritedAttributes, onKnobFocus, onKnobBlur, onKnobMouseEnter, onKnobMouseLeave, }) => {
1198
+ const renderKnob = (rtl, { knob, value, ratio, min, max, disabled, pressed, pin, handleKeyboard, pinFormatter, inheritedAttributes, onKnobFocus, onKnobBlur, }) => {
1302
1199
  const start = rtl ? 'right' : 'left';
1303
1200
  const knobStyle = () => {
1304
1201
  const style = {};
@@ -1319,74 +1216,16 @@ const renderKnob = (rtl, { knob, position, dualKnobs, value, ratio, min, max, di
1319
1216
  ev.preventDefault();
1320
1217
  ev.stopPropagation();
1321
1218
  }
1322
- }, onFocus: () => onKnobFocus(knob), onBlur: onKnobBlur, onMouseEnter: () => onKnobMouseEnter(knob), onMouseLeave: onKnobMouseLeave, class: {
1219
+ }, onFocus: () => onKnobFocus(knob), onBlur: onKnobBlur, class: {
1323
1220
  'range-knob-handle': true,
1324
- 'range-knob-handle-a': knob === 'A',
1325
- 'range-knob-handle-b': knob === 'B',
1221
+ 'range-knob-a': knob === 'A',
1222
+ 'range-knob-b': knob === 'B',
1326
1223
  'range-knob-pressed': pressed,
1327
1224
  'range-knob-min': value === min,
1328
1225
  'range-knob-max': value === max,
1329
1226
  'ion-activatable': true,
1330
1227
  'ion-focusable': true,
1331
- 'ion-focused': focused,
1332
- }, part: [
1333
- 'knob-handle',
1334
- dualKnobs && knob === 'A' && 'knob-handle-a',
1335
- dualKnobs && knob === 'B' && 'knob-handle-b',
1336
- dualKnobs && position === 'lower' && 'knob-handle-lower',
1337
- dualKnobs && position === 'upper' && 'knob-handle-upper',
1338
- pressed && 'pressed',
1339
- focused && 'focused',
1340
- hovered && 'hover',
1341
- activated && 'activated',
1342
- ]
1343
- .filter(Boolean)
1344
- .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: [
1345
- 'pin',
1346
- dualKnobs && knob === 'A' && 'pin-a',
1347
- dualKnobs && knob === 'B' && 'pin-b',
1348
- dualKnobs && position === 'lower' && 'pin-lower',
1349
- dualKnobs && position === 'upper' && 'pin-upper',
1350
- pressed && 'pressed',
1351
- focused && 'focused',
1352
- hovered && 'hover',
1353
- activated && 'activated',
1354
- ]
1355
- .filter(Boolean)
1356
- .join(' ') }, pinFormatter(value))), h("div", { class: "range-knob", role: "presentation", part: [
1357
- 'knob',
1358
- dualKnobs && knob === 'A' && 'knob-a',
1359
- dualKnobs && knob === 'B' && 'knob-b',
1360
- dualKnobs && position === 'lower' && 'knob-lower',
1361
- dualKnobs && position === 'upper' && 'knob-upper',
1362
- pressed && 'pressed',
1363
- focused && 'focused',
1364
- hovered && 'hover',
1365
- activated && 'activated',
1366
- ]
1367
- .filter(Boolean)
1368
- .join(' ') })));
1369
- };
1370
- /**
1371
- * Returns whether the given knob is at the lower or upper position based
1372
- * on current ratios for the given knob.
1373
- *
1374
- * When both knobs have the same ratio, we only want one "lower" and one
1375
- * "upper" position so that the `lower` and `upper` parts are not applied to
1376
- * the same knob. In that case, we treat knob "A" as the lower position and
1377
- * knob "B" as the upper position.
1378
- */
1379
- const getKnobPosition = (knob, ratioA, ratioB, dualKnobs) => {
1380
- if (!dualKnobs) {
1381
- return 'lower';
1382
- }
1383
- if (ratioA === ratioB) {
1384
- return knob === 'A' ? 'lower' : 'upper';
1385
- }
1386
- if (knob === 'A') {
1387
- return ratioA < ratioB ? 'lower' : 'upper';
1388
- }
1389
- return ratioB < ratioA ? 'lower' : 'upper';
1228
+ }, 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" })));
1390
1229
  };
1391
1230
  const ratioToValue = (ratio, min, max, step) => {
1392
1231
  let value = (max - min) * ratio;