@ionic/core 9.0.9-nightly.20261021 → 9.0.10-dev.11792788258.1f71cfee

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 (356) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion.js +1 -1
  3. package/components/ion-action-sheet.js +1 -1
  4. package/components/ion-alert.js +1 -1
  5. package/components/ion-app.js +1 -1
  6. package/components/ion-back-button.js +1 -1
  7. package/components/ion-breadcrumb.js +1 -1
  8. package/components/ion-button.js +1 -1
  9. package/components/ion-card.js +1 -1
  10. package/components/ion-checkbox.js +1 -1
  11. package/components/ion-col.js +1 -1
  12. package/components/ion-content.js +1 -1
  13. package/components/ion-datetime-button.js +1 -1
  14. package/components/ion-datetime.js +1 -1
  15. package/components/ion-fab-button.js +1 -1
  16. package/components/ion-footer.js +1 -1
  17. package/components/ion-header.js +1 -1
  18. package/components/ion-img.js +1 -1
  19. package/components/ion-infinite-scroll.js +1 -1
  20. package/components/ion-input-otp.js +1 -1
  21. package/components/ion-input-password-toggle.js +1 -1
  22. package/components/ion-input.js +1 -1
  23. package/components/ion-item-options.js +1 -1
  24. package/components/ion-item-sliding.js +1 -1
  25. package/components/ion-item.js +1 -1
  26. package/components/ion-label.js +1 -1
  27. package/components/ion-loading.js +1 -1
  28. package/components/ion-menu-button.js +1 -1
  29. package/components/ion-menu-toggle.js +1 -1
  30. package/components/ion-menu.js +1 -1
  31. package/components/ion-modal.js +1 -1
  32. package/components/ion-nav.js +1 -1
  33. package/components/ion-picker-column-option.js +1 -1
  34. package/components/ion-picker-column.js +1 -1
  35. package/components/ion-picker.js +1 -1
  36. package/components/ion-popover.js +1 -1
  37. package/components/ion-progress-bar.js +1 -1
  38. package/components/ion-radio-group.js +1 -1
  39. package/components/ion-radio.js +1 -1
  40. package/components/ion-range.js +1 -1
  41. package/components/ion-refresher-content.js +1 -1
  42. package/components/ion-refresher.js +1 -1
  43. package/components/ion-reorder-group.js +1 -1
  44. package/components/ion-router-outlet.js +1 -1
  45. package/components/ion-router.js +1 -1
  46. package/components/ion-searchbar.js +1 -1
  47. package/components/ion-segment-button.js +1 -1
  48. package/components/ion-segment-view.js +1 -1
  49. package/components/ion-segment.js +1 -1
  50. package/components/ion-select-modal.js +1 -1
  51. package/components/ion-select-popover.js +1 -1
  52. package/components/ion-select.js +1 -1
  53. package/components/ion-tab-button.js +1 -1
  54. package/components/ion-tab.js +1 -1
  55. package/components/ion-textarea.js +1 -1
  56. package/components/ion-title.js +1 -1
  57. package/components/ion-toast.js +1 -1
  58. package/components/ion-toggle.js +1 -1
  59. package/components/{p-GpqwNbxf.js → p-07wRJfkt.js} +1 -1
  60. package/components/{p-BqyLLYLm.js → p-3avHDbEF.js} +1 -1
  61. package/components/{p-r59A3wQk.js → p-7NbIvzb4.js} +1 -1
  62. package/components/p-B3dSuofL.js +4 -0
  63. package/components/{p-DD92Fw3n.js → p-BBsseItU.js} +1 -1
  64. package/components/{p-DBtFJlTi.js → p-BT2InaHz.js} +1 -1
  65. package/components/p-BWbz71uB.js +4 -0
  66. package/{dist/ionic/p-nCAPr1Ah.js → components/p-BZ1k9WL7.js} +1 -1
  67. package/components/{p-jsVMT15X.js → p-BrrMFd9K.js} +1 -1
  68. package/components/{p-C_gnmBt2.js → p-C-SO5kIs.js} +1 -1
  69. package/components/p-C0TdbIVo.js +4 -0
  70. package/components/p-C6Y0cCH_.js +4 -0
  71. package/components/{p-ZrYBjOcc.js → p-C8BAigo3.js} +1 -1
  72. package/components/p-CCFj0kgH.js +4 -0
  73. package/components/p-CRb2xRCz.js +4 -0
  74. package/components/{p-B4IBdPVJ.js → p-CUQjkOdi.js} +1 -1
  75. package/components/{p-V1THdfzs.js → p-D5_mEbGJ.js} +1 -1
  76. package/components/{p-B02CcbPD.js → p-D8FyR2IB.js} +1 -1
  77. package/components/p-DLEJ61lJ.js +4 -0
  78. package/components/p-DRm4t-by.js +4 -0
  79. package/components/{p-ODGeXc3M.js → p-DTGCMApY.js} +1 -1
  80. package/components/p-D_U0pDe5.js +4 -0
  81. package/components/p-DaW9OZ6S.js +4 -0
  82. package/components/{p-CKiqp4Vl.js → p-Dah8BCNg.js} +1 -1
  83. package/components/p-DaojW_d_.js +4 -0
  84. package/components/{p-Dojwmvde.js → p-Dj4J3LkD.js} +1 -1
  85. package/components/{p-CxEV3Vwy.js → p-DnBabjgY.js} +1 -1
  86. package/components/p-Ds5vN3iu.js +4 -0
  87. package/components/{p-CKTjkpAq.js → p-DwTzX8Vi.js} +1 -1
  88. package/components/{p-yGD6MBgf.js → p-Dy7x-KDF.js} +1 -1
  89. package/components/{p-DfDIY2oP.js → p-LkEGRiq0.js} +1 -1
  90. package/components/{p--cshUOAU.js → p-PkD1iLNN.js} +1 -1
  91. package/components/p-RhI78AKb.js +4 -0
  92. package/components/{p-DDI6VLW9.js → p-kKGBuIkf.js} +1 -1
  93. package/components/p-z-EWo6r-.js +4 -0
  94. package/dist/cjs/{animation-DcgLg_PI.js → animation-UiXhXV49.js} +1 -1
  95. package/dist/cjs/{attribute-controller-BjTE2TOf.js → attribute-controller-0-lwbVEj.js} +1 -1
  96. package/dist/cjs/{button-active-FdsfRDY_.js → button-active-DzN1aPt-.js} +1 -1
  97. package/dist/cjs/{capacitor-C6Pp4Z7A.js → capacitor-BTjfXFlK.js} +1 -1
  98. package/dist/cjs/{dir-zwDPRE5K.js → dir-Bma_9Lqh.js} +1 -1
  99. package/dist/cjs/{framework-delegate-JbKIVMzR.js → framework-delegate-hNMKEiQC.js} +1 -1
  100. package/dist/cjs/{haptic--4QteuuM.js → haptic-BD5qPgy8.js} +1 -1
  101. package/dist/cjs/{helpers-Cqr69qxA.js → helpers-BrETKUUX.js} +2 -3
  102. package/dist/cjs/{index-BhWiDK25.js → index-BTc0Jnhx.js} +3 -3
  103. package/dist/cjs/{index-CNaZ6SYM.js → index-DMz2Eyis.js} +1 -1
  104. package/dist/cjs/{index-DCfr5hz-.js → index-DNBYnlrc.js} +3 -3
  105. package/dist/cjs/{index-BQpSekmz.js → index-bwclzjks.js} +2 -2
  106. package/dist/cjs/index.cjs.js +9 -9
  107. package/dist/cjs/{input-shims-2AsXPZ5m.js → input-shims-CRmdShL9.js} +8 -9
  108. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  109. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  110. package/dist/cjs/ion-alert.cjs.entry.js +19 -19
  111. package/dist/cjs/ion-app_8.cjs.entry.js +18 -18
  112. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  113. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  114. package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
  115. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  116. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  117. package/dist/cjs/ion-col_3.cjs.entry.js +14 -12
  118. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  119. package/dist/cjs/ion-datetime.cjs.entry.js +8 -9
  120. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  121. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  122. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  123. package/dist/cjs/ion-input-otp.cjs.entry.js +2 -2
  124. package/dist/cjs/ion-input.cjs.entry.js +3 -3
  125. package/dist/cjs/ion-item-option_3.cjs.entry.js +9 -9
  126. package/dist/cjs/ion-item_8.cjs.entry.js +10 -10
  127. package/dist/cjs/ion-loading.cjs.entry.js +5 -5
  128. package/dist/cjs/ion-menu_3.cjs.entry.js +31 -13
  129. package/dist/cjs/ion-modal.cjs.entry.js +10 -10
  130. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -5
  131. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  132. package/dist/cjs/ion-picker-column.cjs.entry.js +4 -4
  133. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  134. package/dist/cjs/ion-popover.cjs.entry.js +28 -14
  135. package/dist/cjs/ion-progress-bar.cjs.entry.js +6 -5
  136. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  137. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  138. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
  139. package/dist/cjs/ion-reorder_2.cjs.entry.js +5 -5
  140. package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
  141. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  142. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  143. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  144. package/dist/cjs/ion-select-modal.cjs.entry.js +4 -4
  145. package/dist/cjs/ion-select_3.cjs.entry.js +5 -5
  146. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +5 -5
  147. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  148. package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
  149. package/dist/cjs/ion-toast.cjs.entry.js +5 -5
  150. package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
  151. package/dist/cjs/{ios.transition-Ca6XODo9.js → ios.transition-CN092Fh6.js} +15 -15
  152. package/dist/cjs/{keyboard-c2_I35b-.js → keyboard-4OBzkjOG.js} +4 -4
  153. package/dist/cjs/{keyboard-BlHp4a_c.js → keyboard-BMpscicm.js} +1 -1
  154. package/dist/cjs/{keyboard-controller-DHS0BgXp.js → keyboard-controller-DZE97OtR.js} +2 -2
  155. package/dist/cjs/{md.transition-D8SfNYEp.js → md.transition-B6961Ny9.js} +4 -4
  156. package/dist/cjs/{overlays-CLld3axA.js → overlays-BbVQG3UT.js} +2 -2
  157. package/dist/cjs/{slot-mutation-controller-B2OfJEBH.js → slot-mutation-controller-CRa_cKOh.js} +2 -2
  158. package/dist/cjs/{status-tap-CDA0Y3Ad.js → status-tap-hRIvObiJ.js} +3 -3
  159. package/dist/cjs/{swipe-back-Idb4gqUk.js → swipe-back-C-aigThB.js} +2 -2
  160. package/dist/collection/components/alert/alert.js +11 -11
  161. package/dist/collection/components/col/col.js +14 -12
  162. package/dist/collection/components/datetime/datetime.js +4 -5
  163. package/dist/collection/components/item/item.js +5 -4
  164. package/dist/collection/components/item-options/item-options.js +2 -2
  165. package/dist/collection/components/item-sliding/item-sliding.js +5 -4
  166. package/dist/collection/components/label/label.js +4 -3
  167. package/dist/collection/components/menu/menu.js +25 -8
  168. package/dist/collection/components/popover/animations/ios.enter.js +4 -3
  169. package/dist/collection/components/popover/animations/md.enter.js +4 -3
  170. package/dist/collection/components/popover/popover.js +17 -2
  171. package/dist/collection/components/progress-bar/progress-bar.js +5 -3
  172. package/dist/collection/components/title/title.js +4 -3
  173. package/dist/collection/utils/helpers.js +1 -2
  174. package/dist/collection/utils/input-shims/hacks/common.js +4 -4
  175. package/dist/collection/utils/rtl/dir.js +1 -1
  176. package/dist/collection/utils/transition/ios.transition.js +12 -11
  177. package/dist/docs.json +1 -1
  178. package/dist/esm/{animation-DmtJpz89.js → animation-C_V9lXzL.js} +1 -1
  179. package/dist/esm/{attribute-controller-DPMIcbef.js → attribute-controller-ItNOXNp9.js} +1 -1
  180. package/dist/esm/{button-active-DVk40Sjl.js → button-active-rB-Ct9KZ.js} +1 -1
  181. package/dist/esm/{capacitor-CHJaJ9aX.js → capacitor-BY7l8HgR.js} +1 -1
  182. package/dist/esm/{dir-Dojwmvde.js → dir-Dj4J3LkD.js} +1 -1
  183. package/dist/esm/{framework-delegate-CDjM1vRH.js → framework-delegate-CW5_kWfc.js} +1 -1
  184. package/dist/esm/{haptic-WXfMCob9.js → haptic-ES_sSPLn.js} +1 -1
  185. package/dist/esm/{helpers-BJqKF1pr.js → helpers-p94IkmEA.js} +2 -3
  186. package/dist/esm/{index-TkLga3ma.js → index-CBkVO5D0.js} +1 -1
  187. package/dist/esm/{index-Clv8QC5L.js → index-DLDbwWW7.js} +2 -2
  188. package/dist/esm/{index-DIouXecD.js → index-txcXIB3P.js} +3 -3
  189. package/dist/esm/{index-z9vdZN7I.js → index-vgPixHgF.js} +3 -3
  190. package/dist/esm/index.js +9 -9
  191. package/dist/esm/{input-shims-C1iYF5JK.js → input-shims-KNXj3DAv.js} +8 -9
  192. package/dist/esm/ion-accordion_2.entry.js +2 -2
  193. package/dist/esm/ion-action-sheet.entry.js +8 -8
  194. package/dist/esm/ion-alert.entry.js +19 -19
  195. package/dist/esm/ion-app_8.entry.js +18 -18
  196. package/dist/esm/ion-back-button.entry.js +2 -2
  197. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  198. package/dist/esm/ion-button_2.entry.js +3 -3
  199. package/dist/esm/ion-card_5.entry.js +3 -3
  200. package/dist/esm/ion-checkbox.entry.js +2 -2
  201. package/dist/esm/ion-col_3.entry.js +15 -13
  202. package/dist/esm/ion-datetime-button.entry.js +2 -2
  203. package/dist/esm/ion-datetime.entry.js +8 -9
  204. package/dist/esm/ion-fab_3.entry.js +2 -2
  205. package/dist/esm/ion-img.entry.js +2 -2
  206. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  207. package/dist/esm/ion-input-otp.entry.js +2 -2
  208. package/dist/esm/ion-input.entry.js +3 -3
  209. package/dist/esm/ion-item-option_3.entry.js +9 -9
  210. package/dist/esm/ion-item_8.entry.js +10 -10
  211. package/dist/esm/ion-loading.entry.js +5 -5
  212. package/dist/esm/ion-menu_3.entry.js +32 -14
  213. package/dist/esm/ion-modal.entry.js +10 -10
  214. package/dist/esm/ion-nav_2.entry.js +5 -5
  215. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  216. package/dist/esm/ion-picker-column.entry.js +4 -4
  217. package/dist/esm/ion-picker.entry.js +2 -2
  218. package/dist/esm/ion-popover.entry.js +28 -14
  219. package/dist/esm/ion-progress-bar.entry.js +7 -6
  220. package/dist/esm/ion-radio_2.entry.js +2 -2
  221. package/dist/esm/ion-range.entry.js +3 -3
  222. package/dist/esm/ion-refresher_2.entry.js +6 -6
  223. package/dist/esm/ion-reorder_2.entry.js +5 -5
  224. package/dist/esm/ion-route_4.entry.js +3 -3
  225. package/dist/esm/ion-searchbar.entry.js +2 -2
  226. package/dist/esm/ion-segment-view.entry.js +1 -1
  227. package/dist/esm/ion-segment_2.entry.js +2 -2
  228. package/dist/esm/ion-select-modal.entry.js +4 -4
  229. package/dist/esm/ion-select_3.entry.js +5 -5
  230. package/dist/esm/ion-tab-bar_2.entry.js +5 -5
  231. package/dist/esm/ion-tab_2.entry.js +3 -3
  232. package/dist/esm/ion-textarea.entry.js +3 -3
  233. package/dist/esm/ion-toast.entry.js +5 -5
  234. package/dist/esm/ion-toggle.entry.js +4 -4
  235. package/dist/esm/{ios.transition-BkUGiDUz.js → ios.transition-CW92wRDL.js} +15 -15
  236. package/dist/esm/{keyboard-B4Y-Gph8.js → keyboard-BumguZrM.js} +4 -4
  237. package/dist/esm/{keyboard-Cmqp5iZD.js → keyboard-CutS8BPd.js} +1 -1
  238. package/dist/esm/{keyboard-controller-B2NoF7bV.js → keyboard-controller-DqohyEsZ.js} +2 -2
  239. package/dist/esm/{md.transition-B6hlrWjR.js → md.transition-yhfkYX1P.js} +4 -4
  240. package/dist/esm/{overlays-DmDY-El7.js → overlays-BBgMM61s.js} +2 -2
  241. package/dist/esm/{slot-mutation-controller-Btpr9-9O.js → slot-mutation-controller-uKdPbY9K.js} +2 -2
  242. package/dist/esm/{status-tap-VGRBYwiC.js → status-tap-BskkGI4e.js} +3 -3
  243. package/dist/esm/{swipe-back-DV3UpWzz.js → swipe-back-BZdyM2Q-.js} +2 -2
  244. package/dist/ionic/index.esm.js +1 -1
  245. package/dist/ionic/ionic.esm.js +1 -1
  246. package/dist/ionic/{p-01b7e3f2.entry.js → p-013b9aba.entry.js} +1 -1
  247. package/dist/ionic/{p-9ffccbf1.entry.js → p-014c3633.entry.js} +1 -1
  248. package/dist/ionic/{p-4bd80334.entry.js → p-0562139b.entry.js} +1 -1
  249. package/dist/ionic/{p-52a16f94.entry.js → p-0f1613f2.entry.js} +1 -1
  250. package/dist/ionic/{p-e7ab4def.entry.js → p-1252621e.entry.js} +1 -1
  251. package/dist/ionic/p-129f7b95.entry.js +4 -0
  252. package/dist/ionic/{p-4f25b926.entry.js → p-16de8fd9.entry.js} +1 -1
  253. package/dist/ionic/{p-d0e374f8.entry.js → p-1bb1be7e.entry.js} +1 -1
  254. package/dist/ionic/{p-62c87f3d.entry.js → p-1f342c2d.entry.js} +1 -1
  255. package/dist/ionic/{p-362dcd86.entry.js → p-1ffa5577.entry.js} +1 -1
  256. package/dist/ionic/p-210f906e.entry.js +4 -0
  257. package/dist/ionic/{p-293cb1d5.entry.js → p-27960f65.entry.js} +1 -1
  258. package/dist/ionic/p-3c6fc2e8.entry.js +4 -0
  259. package/dist/ionic/{p-5bb24bce.entry.js → p-436d4ac8.entry.js} +1 -1
  260. package/dist/ionic/p-43729675.entry.js +4 -0
  261. package/dist/ionic/p-4468e439.entry.js +4 -0
  262. package/dist/ionic/{p-8db08782.entry.js → p-51af4728.entry.js} +1 -1
  263. package/dist/ionic/{p-ec259ac5.entry.js → p-59e4b521.entry.js} +1 -1
  264. package/dist/ionic/{p-BY4FwwBp.js → p-5a3UxQAh.js} +1 -1
  265. package/dist/ionic/{p-0c32c626.entry.js → p-5b47b8d5.entry.js} +1 -1
  266. package/dist/ionic/{p-e8e69c21.entry.js → p-5dcddfd5.entry.js} +1 -1
  267. package/dist/ionic/{p-7e9c2a97.entry.js → p-694f3e78.entry.js} +1 -1
  268. package/dist/ionic/{p-82abf431.entry.js → p-77540bcb.entry.js} +1 -1
  269. package/dist/ionic/{p-c250b6b0.entry.js → p-77e7b612.entry.js} +1 -1
  270. package/dist/ionic/{p-64ac3864.entry.js → p-7868eb92.entry.js} +1 -1
  271. package/dist/ionic/{p-af11d3c6.entry.js → p-800ce1e0.entry.js} +1 -1
  272. package/dist/ionic/{p-539d6c8e.entry.js → p-84470714.entry.js} +1 -1
  273. package/dist/ionic/{p-8d651adb.entry.js → p-87fb6d59.entry.js} +1 -1
  274. package/dist/ionic/{p-BpED_ep_.js → p-8B39TMv-.js} +1 -1
  275. package/dist/ionic/p-8af85fa8.entry.js +4 -0
  276. package/dist/ionic/p-8dQB1sG_.js +4 -0
  277. package/dist/ionic/p-9515f840.entry.js +4 -0
  278. package/dist/ionic/{p-eb989dc9.entry.js → p-96d040b0.entry.js} +1 -1
  279. package/dist/ionic/{p-60780b88.entry.js → p-9d7e5a0b.entry.js} +1 -1
  280. package/dist/ionic/{p-DXXGkPA8.js → p-B0afqOUt.js} +1 -1
  281. package/{components/p-Ba9_OzSY.js → dist/ionic/p-B2JD8_LP.js} +1 -1
  282. package/dist/ionic/p-B2y1T0dN.js +4 -0
  283. package/dist/ionic/{p-DPNVo1nr.js → p-BBZQUbCq.js} +1 -1
  284. package/dist/ionic/p-BHBb21Hp.js +4 -0
  285. package/dist/ionic/{p-CXs4J83x.js → p-BWKtcudz.js} +1 -1
  286. package/dist/ionic/p-BgkRGRO3.js +4 -0
  287. package/dist/ionic/{p-C1WYZOZj.js → p-C4SpVvhx.js} +1 -1
  288. package/dist/ionic/{p-Dk4Mdaru.js → p-CJmyfI8x.js} +1 -1
  289. package/dist/ionic/p-CNdt1FPc.js +4 -0
  290. package/dist/ionic/p-Cf6KtUnA.js +4 -0
  291. package/dist/ionic/p-CfccUand.js +4 -0
  292. package/dist/ionic/{p-D13gXhdC.js → p-DArnNWiu.js} +1 -1
  293. package/dist/ionic/p-DBFcFCH5.js +4 -0
  294. package/dist/ionic/p-DCmOKz8e.js +4 -0
  295. package/dist/ionic/p-DFPZa_No.js +4 -0
  296. package/dist/ionic/p-DYKDWM2f.js +4 -0
  297. package/dist/ionic/{p-Dojwmvde.js → p-Dj4J3LkD.js} +1 -1
  298. package/dist/ionic/p-DzQk7Lu8.js +4 -0
  299. package/dist/ionic/{p-7db20410.entry.js → p-a45caa30.entry.js} +1 -1
  300. package/dist/ionic/{p-91f3cd8b.entry.js → p-af15fc5d.entry.js} +1 -1
  301. package/dist/ionic/{p-d2406889.entry.js → p-af4b4719.entry.js} +1 -1
  302. package/dist/ionic/{p-107a81a6.entry.js → p-b0faaae2.entry.js} +1 -1
  303. package/dist/ionic/p-c56c23b6.entry.js +4 -0
  304. package/dist/ionic/{p-930c3538.entry.js → p-c7ea2647.entry.js} +1 -1
  305. package/dist/ionic/p-c8c77f7b.entry.js +4 -0
  306. package/dist/ionic/{p-d72accc4.entry.js → p-cbc73380.entry.js} +1 -1
  307. package/dist/ionic/p-d58e9da3.entry.js +4 -0
  308. package/dist/ionic/{p-0b09c60e.entry.js → p-ec08a7e6.entry.js} +1 -1
  309. package/dist/ionic/{p-67f004eb.entry.js → p-f37e6ed2.entry.js} +1 -1
  310. package/dist/ionic/{p-b9ed3a52.entry.js → p-f6a1ab48.entry.js} +1 -1
  311. package/dist/types/components/alert/alert.d.ts +4 -0
  312. package/dist/types/components/col/col.d.ts +1 -0
  313. package/dist/types/components/menu/menu.d.ts +7 -0
  314. package/dist/types/components/popover/popover.d.ts +1 -0
  315. package/dist/types/components/progress-bar/progress-bar.d.ts +1 -0
  316. package/dist/types/utils/helpers.d.ts +2 -3
  317. package/dist/types/utils/rtl/dir.d.ts +1 -1
  318. package/hydrate/index.js +108 -76
  319. package/hydrate/index.mjs +108 -76
  320. package/package.json +1 -1
  321. package/components/p-BODcC-C0.js +0 -4
  322. package/components/p-BVNUhOOf.js +0 -4
  323. package/components/p-Bd8hg9FK.js +0 -4
  324. package/components/p-C1AxSUnp.js +0 -4
  325. package/components/p-CONpe3oX.js +0 -4
  326. package/components/p-CVrOcN5N.js +0 -4
  327. package/components/p-CYctYy9B.js +0 -4
  328. package/components/p-Cyajikho.js +0 -4
  329. package/components/p-D0nwlsl_.js +0 -4
  330. package/components/p-Drpw2dyl.js +0 -4
  331. package/components/p-IQN1T5zw.js +0 -4
  332. package/components/p-SHHIB5F0.js +0 -4
  333. package/components/p-YNnH1_Hs.js +0 -4
  334. package/components/p-_y7kwBO8.js +0 -4
  335. package/dist/ionic/p-0f97175e.entry.js +0 -4
  336. package/dist/ionic/p-6c7b5930.entry.js +0 -4
  337. package/dist/ionic/p-7ce9c6f8.entry.js +0 -4
  338. package/dist/ionic/p-7l6ENjIV.js +0 -4
  339. package/dist/ionic/p-8d2ccf0c.entry.js +0 -4
  340. package/dist/ionic/p-94f1f7df.entry.js +0 -4
  341. package/dist/ionic/p-BNXIurCt.js +0 -4
  342. package/dist/ionic/p-BOLqP2-V.js +0 -4
  343. package/dist/ionic/p-BZTgGzGK.js +0 -4
  344. package/dist/ionic/p-BdHBcCZF.js +0 -4
  345. package/dist/ionic/p-BuLlVedw.js +0 -4
  346. package/dist/ionic/p-Bx5x5GJV.js +0 -4
  347. package/dist/ionic/p-C2LaBx3E.js +0 -4
  348. package/dist/ionic/p-CgcGX08t.js +0 -4
  349. package/dist/ionic/p-CngfKMRU.js +0 -4
  350. package/dist/ionic/p-Co7eql8D.js +0 -4
  351. package/dist/ionic/p-D926OmIX.js +0 -4
  352. package/dist/ionic/p-a4389f13.entry.js +0 -4
  353. package/dist/ionic/p-af8fb360.entry.js +0 -4
  354. package/dist/ionic/p-bfdbe24b.entry.js +0 -4
  355. package/dist/ionic/p-c83dbc12.entry.js +0 -4
  356. package/dist/ionic/p-f2116a54.entry.js +0 -4
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Host, h } from "@stencil/core";
5
+ import { isRTL } from "../../utils/rtl/index";
5
6
  import { createColorClasses, hostContext } from "../../utils/theme";
6
7
  import { getIonMode } from "../../global/ionic-global";
7
8
  /**
@@ -58,13 +59,13 @@ export class Label {
58
59
  render() {
59
60
  const position = this.position;
60
61
  const mode = getIonMode(this);
61
- return (h(Host, { key: '461604c1887f322dc13d7df3d5cdbb7ee1361117', class: createColorClasses(this.color, {
62
+ return (h(Host, { key: '5415f57fc93a0b2b82b6d327a8e635876ca5cbf5', class: createColorClasses(this.color, {
62
63
  [mode]: true,
63
64
  'in-item-color': hostContext('ion-item.ion-color', this.el),
64
65
  [`label-${position}`]: position !== undefined,
65
66
  [`label-no-animate`]: this.noAnimate,
66
- 'label-rtl': document.dir === 'rtl',
67
- }) }, h("slot", { key: 'a7005d0a217641278aa8e95144e8e4b9ae87a1c5' })));
67
+ 'label-rtl': isRTL(this.el),
68
+ }) }, h("slot", { key: 'b6b65053228525c94a06c20abb0f03c659cdd7dc' })));
68
69
  }
69
70
  static get is() { return "ion-label"; }
70
71
  static get encapsulation() { return "scoped"; }
@@ -11,7 +11,6 @@ import { printIonError } from "../../utils/logging/index";
11
11
  import { menuController } from "../../utils/menu-controller/index";
12
12
  import { BACKDROP, GESTURE, getPresentedOverlay } from "../../utils/overlays";
13
13
  import { isPlatform } from "../../utils/platform";
14
- import { hostContext } from "../../utils/theme";
15
14
  import { config } from "../../global/config";
16
15
  import { getIonMode } from "../../global/ionic-global";
17
16
  const iosEasing = 'cubic-bezier(0.32,0.72,0,1)';
@@ -169,7 +168,7 @@ export class Menu {
169
168
  * of the split pane. If the split pane is
170
169
  * hidden then the menu should be too.
171
170
  */
172
- const splitPane = this.el.closest('ion-split-pane');
171
+ const splitPane = this.getSplitPane();
173
172
  if (splitPane !== null) {
174
173
  this.isPaneVisible = await splitPane.isVisible();
175
174
  }
@@ -208,8 +207,8 @@ export class Menu {
208
207
  this.contentEl = undefined;
209
208
  }
210
209
  onSplitPaneChanged(ev) {
211
- const closestSplitPane = this.el.closest('ion-split-pane');
212
- if (closestSplitPane !== null && closestSplitPane === ev.target) {
210
+ const splitPane = this.getSplitPane();
211
+ if (splitPane !== null && splitPane === ev.target) {
213
212
  this.isPaneVisible = ev.detail.visible;
214
213
  this.updateState();
215
214
  }
@@ -407,6 +406,24 @@ export class Menu {
407
406
  _isActive() {
408
407
  return !this.disabled && !this.isPaneVisible;
409
408
  }
409
+ /**
410
+ * Returns the split pane this menu is a side pane of.
411
+ * A menu inside the split pane's main content, such as one
412
+ * in a page, is a regular menu. The menu doesn't need to be
413
+ * a direct child, since it can be wrapped in a component.
414
+ */
415
+ getSplitPane() {
416
+ const splitPane = this.el.closest('ion-split-pane');
417
+ const main = this.el.closest('.split-pane-main');
418
+ /**
419
+ * A split pane can be the main content of an outer split
420
+ * pane, so only this split pane's main content counts.
421
+ */
422
+ if (splitPane === null || (main !== null && main !== splitPane && splitPane.contains(main))) {
423
+ return null;
424
+ }
425
+ return splitPane;
426
+ }
410
427
  canSwipe() {
411
428
  return this.swipeGesture && !this.isAnimating && this._isActive();
412
429
  }
@@ -650,21 +667,21 @@ export class Menu {
650
667
  }
651
668
  }
652
669
  render() {
653
- const { type, disabled, el, isPaneVisible, inheritedAttributes, side } = this;
670
+ const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
654
671
  const mode = getIonMode(this);
655
672
  /**
656
673
  * If the Close Watcher is enabled then
657
674
  * the ionBackButton listener in the menu controller
658
675
  * will handle closing the menu when Escape is pressed.
659
676
  */
660
- return (h(Host, { key: '5cf26df26d4e539860cbeaea98ec621b98c3fcfc', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
677
+ return (h(Host, { key: '7481c8a32a135fb0fd6d5591eecbf3fb0a8e8dde', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
661
678
  [mode]: true,
662
679
  [`menu-type-${type}`]: true,
663
680
  'menu-enabled': !disabled,
664
681
  [`menu-side-${side}`]: true,
665
682
  'menu-pane-visible': isPaneVisible,
666
- 'split-pane-side': hostContext('ion-split-pane', el),
667
- } }, h("div", { key: 'f337016e293bb8665c99762e0c389dd6c372bb33', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '4c3fe331aa42cd57d7ad9bd1f5910f8eeb62d7da' })), h("ion-backdrop", { key: '61af7ea876d81574841e1dd3e81e2352e555d096', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
683
+ 'split-pane-side': this.getSplitPane() !== null,
684
+ } }, h("div", { key: '8ac2f0f531db944a46e5fef016d0b18bd7b804cc', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '1ac3e13ccccf1adb7915b739fc794f2889b626ce' })), h("ion-backdrop", { key: 'f8becbf4de1a13feb57fb87973befecb88510bab', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
668
685
  }
669
686
  static get is() { return "ion-menu"; }
670
687
  static get encapsulation() { return "shadow"; }
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { createAnimation } from "../../../utils/animation/animation";
5
5
  import { getElementRoot } from "../../../utils/helpers";
6
+ import { isRTL } from "../../../utils/rtl/index";
6
7
  import { calculateWindowAdjustment, getArrowDimensions, getElementCSSZoom, getPopoverDimensions, getPopoverPosition, getSafeAreaInsets, shouldShowArrow, } from "../utils";
7
8
  const POPOVER_IOS_BODY_PADDING = 5;
8
9
  /**
@@ -21,7 +22,7 @@ const POPOVER_IOS_MIN_EDGE_MARGIN = 25;
21
22
  export const iosEnterAnimation = (baseEl, opts) => {
22
23
  const { event: ev, size, trigger, reference, side, align } = opts;
23
24
  const doc = baseEl.ownerDocument;
24
- const isRTL = doc.dir === 'rtl';
25
+ const rtl = isRTL(baseEl);
25
26
  const root = getElementRoot(baseEl);
26
27
  const contentEl = root.querySelector('.popover-content');
27
28
  const arrowEl = root.querySelector('.popover-arrow');
@@ -47,10 +48,10 @@ export const iosEnterAnimation = (baseEl, opts) => {
47
48
  const defaultPosition = {
48
49
  top: bodyHeight / 2 - contentHeight / 2,
49
50
  left: bodyWidth / 2 - contentWidth / 2,
50
- originX: isRTL ? 'right' : 'left',
51
+ originX: rtl ? 'right' : 'left',
51
52
  originY: 'top',
52
53
  };
53
- const results = getPopoverPosition(isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, trigger, ev, zoom);
54
+ const results = getPopoverPosition(rtl, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, trigger, ev, zoom);
54
55
  const padding = size === 'cover' ? 0 : POPOVER_IOS_BODY_PADDING;
55
56
  const rawSafeArea = getSafeAreaInsets(doc);
56
57
  const safeArea = size === 'cover'
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { createAnimation } from "../../../utils/animation/animation";
5
5
  import { getElementRoot } from "../../../utils/helpers";
6
+ import { isRTL } from "../../../utils/rtl/index";
6
7
  import { calculateWindowAdjustment, getElementCSSZoom, getPopoverDimensions, getPopoverPosition, getSafeAreaInsets, } from "../utils";
7
8
  const POPOVER_MD_BODY_PADDING = 12;
8
9
  /**
@@ -12,7 +13,7 @@ const POPOVER_MD_BODY_PADDING = 12;
12
13
  export const mdEnterAnimation = (baseEl, opts) => {
13
14
  const { event: ev, size, trigger, reference, side, align } = opts;
14
15
  const doc = baseEl.ownerDocument;
15
- const isRTL = doc.dir === 'rtl';
16
+ const rtl = isRTL(baseEl);
16
17
  const root = getElementRoot(baseEl);
17
18
  const contentEl = root.querySelector('.popover-content');
18
19
  /**
@@ -36,10 +37,10 @@ export const mdEnterAnimation = (baseEl, opts) => {
36
37
  const defaultPosition = {
37
38
  top: bodyHeight / 2 - contentHeight / 2,
38
39
  left: bodyWidth / 2 - contentWidth / 2,
39
- originX: isRTL ? 'right' : 'left',
40
+ originX: rtl ? 'right' : 'left',
40
41
  originY: 'top',
41
42
  };
42
- const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev, zoom);
43
+ const results = getPopoverPosition(rtl, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev, zoom);
43
44
  const padding = size === 'cover' ? 0 : POPOVER_MD_BODY_PADDING;
44
45
  // MD mode now applies safe-area insets (previously passed 0, ignoring all safe areas).
45
46
  // This is needed for Android edge-to-edge (API 36+) where system bars overlap content.
@@ -9,6 +9,7 @@ import { createLockController } from "../../utils/lock-controller";
9
9
  import { printIonWarning } from "../../utils/logging/index";
10
10
  import { BACKDROP, cleanupRootFocusTrapAccessibility, dismiss, eventMethod, FOCUS_TRAP_DISABLE_CLASS, prepareOverlay, present, restoreRootFocusTrapAccessibility, setOverlayId, } from "../../utils/overlays";
11
11
  import { isPlatform } from "../../utils/platform";
12
+ import { isRTL } from "../../utils/rtl/index";
12
13
  import { getClassMap } from "../../utils/theme";
13
14
  import { deepReady, waitForMount } from "../../utils/transition/index";
14
15
  import { getIonMode } from "../../global/ionic-global";
@@ -34,6 +35,7 @@ export class Popover {
34
35
  this.lockController = createLockController();
35
36
  this.inline = false;
36
37
  this.focusDescendantOnPresent = false;
38
+ this.dirSetOnPresent = false;
37
39
  this.presented = false;
38
40
  /** @internal */
39
41
  this.hasController = false;
@@ -334,6 +336,15 @@ export class Popover {
334
336
  }
335
337
  const { el } = this;
336
338
  const { inline, delegate } = this.getDelegate(true);
339
+ /**
340
+ * When presented, ion-popover is hoisted from its place in the element
341
+ * hierarchy. Copy the current direction onto this element so that child
342
+ * elements can match.
343
+ */
344
+ if (!el.hasAttribute('dir')) {
345
+ el.setAttribute('dir', isRTL(el) ? 'rtl' : 'ltr');
346
+ this.dirSetOnPresent = true;
347
+ }
337
348
  /**
338
349
  * Emit ionMount so JS Frameworks have an opportunity
339
350
  * to add the child component to the DOM. The child
@@ -454,6 +465,10 @@ export class Popover {
454
465
  */
455
466
  const { delegate } = this.getDelegate();
456
467
  await detachComponent(delegate, this.usersElement);
468
+ if (this.dirSetOnPresent) {
469
+ this.el.removeAttribute('dir');
470
+ this.dirSetOnPresent = false;
471
+ }
457
472
  }
458
473
  unlock();
459
474
  return shouldDismiss;
@@ -481,7 +496,7 @@ export class Popover {
481
496
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
482
497
  const desktop = isPlatform('desktop');
483
498
  const enableArrow = arrow && !parentPopover;
484
- return (h(Host, { key: 'b5e9c788f58397203976d5f8302dfb89e916efe1', "aria-modal": "true", "no-router": true, tabindex: "-1", ...htmlAttributes, style: {
499
+ return (h(Host, { key: '083f06f04d2c2657e510b471fba81cc459e0e878', "aria-modal": "true", "no-router": true, tabindex: "-1", ...htmlAttributes, style: {
485
500
  zIndex: `${20000 + this.overlayIndex}`,
486
501
  }, class: {
487
502
  ...getClassMap(this.cssClass),
@@ -492,7 +507,7 @@ export class Popover {
492
507
  [`popover-side-${side}`]: true,
493
508
  [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
494
509
  'popover-nested': !!parentPopover,
495
- }, onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }, !parentPopover && h("ion-backdrop", { key: 'f3977833c5b2c0087c286ee54363b478d69eb115', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '1059893d6fd2932ca8adcdf8d45a5d66f4794727', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '24d7988bdd95882ad77fcaa7112aeda55878bee4', class: "popover-arrow", part: "arrow" }), h("div", { key: '4d6992e0a9d629f11763045f9199f9a77fa521ab', class: "popover-content", part: "content" }, h("slot", { key: 'b29747419620a01a6c34e9e846cd529b0b210145' })))));
510
+ }, onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }, !parentPopover && h("ion-backdrop", { key: 'afd9bfa3edfde061603acfc251eb8ac54c85ec6f', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '04314c9b510342f152027a6d62394b74d2888b88', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: 'e1bc715a4ca37012d109b512e2288c932485bf45', class: "popover-arrow", part: "arrow" }), h("div", { key: '5ab527ca65b483865954005239618de7daf2c621', class: "popover-content", part: "content" }, h("slot", { key: '4d3abb569347f6156d426f98b897e79ffd6b53bc' })))));
496
511
  }
497
512
  static get is() { return "ion-popover"; }
498
513
  static get encapsulation() { return "shadow"; }
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { Host, h } from "@stencil/core";
5
5
  import { clamp } from "../../utils/helpers";
6
+ import { isRTL } from "../../utils/rtl/index";
6
7
  import { createColorClasses } from "../../utils/theme";
7
8
  import { config } from "../../global/config";
8
9
  import { getIonMode } from "../../global/ionic-global";
@@ -38,16 +39,16 @@ export class ProgressBar {
38
39
  this.buffer = 1;
39
40
  }
40
41
  render() {
41
- const { color, type, reversed, value, buffer } = this;
42
+ const { color, type, reversed, value, buffer, el } = this;
42
43
  const paused = config.getBoolean('_testing');
43
44
  const mode = getIonMode(this);
44
45
  // If the progress is displayed as a solid bar.
45
46
  const progressSolid = buffer === 1;
46
- return (h(Host, { key: 'd53d39a3e2c0198164a9face62d3775f357b6914', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
47
+ return (h(Host, { key: '0a5c76361cf8df0c294e0fb2477892e23ecebe38', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
47
48
  [mode]: true,
48
49
  [`progress-bar-${type}`]: true,
49
50
  'progress-paused': paused,
50
- 'progress-bar-reversed': document.dir === 'rtl' ? !reversed : reversed,
51
+ 'progress-bar-reversed': isRTL(el) ? !reversed : reversed,
51
52
  'progress-bar-solid': progressSolid,
52
53
  }) }, type === 'indeterminate' ? renderIndeterminate() : renderProgress(value, buffer)));
53
54
  }
@@ -175,6 +176,7 @@ export class ProgressBar {
175
176
  }
176
177
  };
177
178
  }
179
+ static get elementRef() { return "el"; }
178
180
  }
179
181
  const renderIndeterminate = () => {
180
182
  return (h("div", { part: "track", class: "progress-buffer-bar" }, h("div", { class: "indeterminate-bar-primary" }, h("span", { part: "progress", class: "progress-indeterminate" })), h("div", { class: "indeterminate-bar-secondary" }, h("span", { part: "progress", class: "progress-indeterminate" }))));
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Host, h } from "@stencil/core";
5
+ import { isRTL } from "../../utils/rtl/index";
5
6
  import { createColorClasses } from "../../utils/theme";
6
7
  import { getIonMode } from "../../global/ionic-global";
7
8
  export class ToolbarTitle {
@@ -23,11 +24,11 @@ export class ToolbarTitle {
23
24
  render() {
24
25
  const mode = getIonMode(this);
25
26
  const size = this.getSize();
26
- return (h(Host, { key: 'c5f0b913ff0a22d9bf02da48a313a613c2ac8fe7', class: createColorClasses(this.color, {
27
+ return (h(Host, { key: '8d17feb9f9dcb9eb8e3b8ae6e831bdedb890771c', class: createColorClasses(this.color, {
27
28
  [mode]: true,
28
29
  [`title-${size}`]: true,
29
- 'title-rtl': document.dir === 'rtl',
30
- }) }, h("div", { key: '5253b9e39fb764bfe1e57370719139f8a83e9904', class: "toolbar-title" }, h("slot", { key: 'e38b1eccb0175c36f8cab211aee7ce4d61fc9035' }))));
30
+ 'title-rtl': isRTL(this.el),
31
+ }) }, h("div", { key: '0346aae3fca1e3ae443b1b511c44ab1f803cb103', class: "toolbar-title" }, h("slot", { key: 'e1945845df471d5eb8c3cdeb568c478abf5ad70e' }))));
31
32
  }
32
33
  static get is() { return "ion-title"; }
33
34
  static get encapsulation() { return "shadow"; }
@@ -324,8 +324,7 @@ export const pointerCoord = (ev) => {
324
324
  *
325
325
  * @param side The current side before being redefined based on the direction.
326
326
  * @param hostEl The component's host element. The direction is resolved from
327
- * it or its nearest ancestor that declares one. When omitted, the direction
328
- * is resolved from the document.
327
+ * it or its nearest ancestor that declares one, falling back to the document.
329
328
  */
330
329
  export const isEndSide = (side, hostEl) => {
331
330
  const rtl = isRTL(hostEl);
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { isRTL } from "../../rtl/index";
4
5
  const cloneMap = new WeakMap();
5
6
  export const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0, disabledClonedInput = false) => {
6
7
  if (cloneMap.has(componentEl) === shouldRelocate) {
@@ -59,9 +60,8 @@ const addClone = (componentEl, inputEl, inputRelativeY, disabledClonedInput = fa
59
60
  * Position the clone at the same horizontal offset as the native input
60
61
  * to prevent the placeholder from overlapping start slot content (e.g., icons).
61
62
  */
62
- const doc = componentEl.ownerDocument;
63
- const isRTL = doc.dir === 'rtl';
64
- if (isRTL) {
63
+ const rtl = isRTL(componentEl);
64
+ if (rtl) {
65
65
  const parentWidth = parentEl.offsetWidth;
66
66
  const startOffset = parentWidth - inputEl.offsetLeft - inputEl.offsetWidth;
67
67
  clonedEl.style.insetInlineStart = `${startOffset}px`;
@@ -71,7 +71,7 @@ const addClone = (componentEl, inputEl, inputRelativeY, disabledClonedInput = fa
71
71
  }
72
72
  parentEl.appendChild(clonedEl);
73
73
  cloneMap.set(componentEl, clonedEl);
74
- const tx = isRTL ? 9999 : -9999;
74
+ const tx = rtl ? 9999 : -9999;
75
75
  componentEl.style.pointerEvents = 'none';
76
76
  inputEl.style.transform = `translate3d(${tx}px,${inputRelativeY}px,0) scale(0)`;
77
77
  };
@@ -22,5 +22,5 @@ export const isRTL = (hostEl) => {
22
22
  return false;
23
23
  }
24
24
  }
25
- return document?.dir?.toLowerCase() === 'rtl';
25
+ return hostEl.ownerDocument?.dir?.toLowerCase() === 'rtl';
26
26
  };
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { isRTL } from "../rtl/index";
4
5
  import { createAnimation } from "../animation/animation";
5
6
  import { getIonPageElement } from "../transition";
6
7
  const DURATION = 540;
@@ -367,9 +368,9 @@ export const iosTransitionAnimation = (navEl, opts) => {
367
368
  const TRANSFORM = 'transform';
368
369
  const CENTER = '0%';
369
370
  const OFF_OPACITY = 0.8;
370
- const isRTL = navEl.ownerDocument.dir === 'rtl';
371
- const OFF_RIGHT = isRTL ? '-99.5%' : '99.5%';
372
- const OFF_LEFT = isRTL ? '33%' : '-33%';
371
+ const rtl = isRTL(navEl);
372
+ const OFF_RIGHT = rtl ? '-99.5%' : '99.5%';
373
+ const OFF_LEFT = rtl ? '33%' : '-33%';
373
374
  const enteringEl = opts.enteringEl;
374
375
  const leavingEl = opts.leavingEl;
375
376
  const backDirection = opts.direction === 'back';
@@ -434,7 +435,7 @@ export const iosTransitionAnimation = (navEl, opts) => {
434
435
  }
435
436
  }
436
437
  const enteringContentHasLargeTitle = enteringEl.querySelector('ion-header.header-collapse-condense');
437
- const { forward, backward } = createLargeTitleTransition(rootAnimation, isRTL, backDirection, enteringEl, leavingEl);
438
+ const { forward, backward } = createLargeTitleTransition(rootAnimation, rtl, backDirection, enteringEl, leavingEl);
438
439
  enteringToolBarEls.forEach((enteringToolBarEl) => {
439
440
  const enteringToolBar = createAnimation();
440
441
  enteringToolBar.addElement(enteringToolBarEl);
@@ -498,7 +499,7 @@ export const iosTransitionAnimation = (navEl, opts) => {
498
499
  enteringToolBarBg.fromTo(OPACITY, 0.01, 'var(--opacity)');
499
500
  }
500
501
  else {
501
- enteringToolBarBg.fromTo('transform', isRTL ? 'translateX(-100%)' : 'translateX(100%)', 'translateX(0px)');
502
+ enteringToolBarBg.fromTo('transform', rtl ? 'translateX(-100%)' : 'translateX(100%)', 'translateX(0px)');
502
503
  }
503
504
  // forward direction, entering page has a back button
504
505
  if (!forward) {
@@ -508,7 +509,7 @@ export const iosTransitionAnimation = (navEl, opts) => {
508
509
  const enteringBackBtnText = createAnimation();
509
510
  enteringBackBtnText
510
511
  .addElement(shadow(backButtonEl).querySelector('.button-text')) // REVIEW
511
- .fromTo(`transform`, isRTL ? 'translateX(-100px)' : 'translateX(100px)', 'translateX(0px)');
512
+ .fromTo(`transform`, rtl ? 'translateX(-100px)' : 'translateX(100px)', 'translateX(0px)');
512
513
  enteringToolBar.addAnimation(enteringBackBtnText);
513
514
  }
514
515
  }
@@ -531,7 +532,7 @@ export const iosTransitionAnimation = (navEl, opts) => {
531
532
  // leaving content, back direction
532
533
  leavingContent
533
534
  .beforeClearStyles([OPACITY])
534
- .fromTo('transform', `translateX(${CENTER})`, isRTL ? 'translateX(-100%)' : 'translateX(100%)');
535
+ .fromTo('transform', `translateX(${CENTER})`, rtl ? 'translateX(-100%)' : 'translateX(100%)');
535
536
  const leavingPage = getIonPageElement(leavingEl);
536
537
  rootAnimation.afterAddWrite(() => {
537
538
  if (rootAnimation.getDirection() === 'normal') {
@@ -611,10 +612,10 @@ export const iosTransitionAnimation = (navEl, opts) => {
611
612
  if (!inactiveHeader) {
612
613
  // leaving toolbar, back direction
613
614
  leavingTitle
614
- .fromTo('transform', `translateX(${CENTER})`, isRTL ? 'translateX(-100%)' : 'translateX(100%)')
615
+ .fromTo('transform', `translateX(${CENTER})`, rtl ? 'translateX(-100%)' : 'translateX(100%)')
615
616
  .fromTo(OPACITY, 0.99, 0);
616
617
  }
617
- leavingToolBarItems.fromTo('transform', `translateX(${CENTER})`, isRTL ? 'translateX(-100%)' : 'translateX(100%)');
618
+ leavingToolBarItems.fromTo('transform', `translateX(${CENTER})`, rtl ? 'translateX(-100%)' : 'translateX(100%)');
618
619
  leavingToolBarBg.beforeClearStyles([OPACITY, 'transform']);
619
620
  // leaving toolbar, back direction, and there's no entering toolbar
620
621
  // should just slide out, no fading out
@@ -623,13 +624,13 @@ export const iosTransitionAnimation = (navEl, opts) => {
623
624
  leavingToolBarBg.fromTo(OPACITY, 'var(--opacity)', 0);
624
625
  }
625
626
  else {
626
- leavingToolBarBg.fromTo('transform', 'translateX(0px)', isRTL ? 'translateX(-100%)' : 'translateX(100%)');
627
+ leavingToolBarBg.fromTo('transform', 'translateX(0px)', rtl ? 'translateX(-100%)' : 'translateX(100%)');
627
628
  }
628
629
  if (backButtonEl && !backward) {
629
630
  const leavingBackBtnText = createAnimation();
630
631
  leavingBackBtnText
631
632
  .addElement(shadow(backButtonEl).querySelector('.button-text')) // REVIEW
632
- .fromTo('transform', `translateX(${CENTER})`, `translateX(${(isRTL ? -124 : 124) + 'px'})`);
633
+ .fromTo('transform', `translateX(${CENTER})`, `translateX(${(rtl ? -124 : 124) + 'px'})`);
633
634
  leavingToolBar.addAnimation(leavingBackBtnText);
634
635
  }
635
636
  }
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-10-21T06:17:54",
2
+ "timestamp": "2026-10-23T20:45:55",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.45.2",
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { c as printIonError } from './index-BpRUsN_W.js';
5
- import { w as win } from './helpers-BJqKF1pr.js';
5
+ import { w as win } from './helpers-p94IkmEA.js';
6
6
 
7
7
  let animationPrefix;
8
8
  const getAnimationPrefix = (el) => {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { b as inheritAttributes, w as win, q as ariaAttributes } from './helpers-BJqKF1pr.js';
4
+ import { b as inheritAttributes, w as win, q as ariaAttributes } from './helpers-p94IkmEA.js';
5
5
 
6
6
  /**
7
7
  * Copies a set of attributes off the host element so they can be applied to an element
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { w as writeTask } from './index-BpRUsN_W.js';
5
- import { h as hapticSelectionEnd, a as hapticSelectionChanged, b as hapticSelectionStart } from './haptic-WXfMCob9.js';
5
+ import { h as hapticSelectionEnd, a as hapticSelectionChanged, b as hapticSelectionStart } from './haptic-ES_sSPLn.js';
6
6
  import { createGesture } from './index-BmLuEdV7.js';
7
7
 
8
8
  const createButtonActiveGesture = (el, isButton) => {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as win } from './helpers-BJqKF1pr.js';
4
+ import { w as win } from './helpers-p94IkmEA.js';
5
5
 
6
6
  const getCapacitor = () => {
7
7
  if (win !== undefined) {
@@ -22,7 +22,7 @@ const isRTL = (hostEl) => {
22
22
  return false;
23
23
  }
24
24
  }
25
- return document?.dir?.toLowerCase() === 'rtl';
25
+ return hostEl.ownerDocument?.dir?.toLowerCase() === 'rtl';
26
26
  };
27
27
 
28
28
  export { isRTL as i };
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-BJqKF1pr.js';
4
+ import { c as componentOnReady } from './helpers-p94IkmEA.js';
5
5
 
6
6
  // TODO(FW-2832): types
7
7
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { g as getCapacitor } from './capacitor-CHJaJ9aX.js';
4
+ import { g as getCapacitor } from './capacitor-BY7l8HgR.js';
5
5
 
6
6
  var ImpactStyle;
7
7
  (function (ImpactStyle) {
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { c as printIonError } from './index-BpRUsN_W.js';
5
- import { i as isRTL } from './dir-Dojwmvde.js';
5
+ import { i as isRTL } from './dir-Dj4J3LkD.js';
6
6
 
7
7
  const win = typeof window !== 'undefined' ? window : undefined;
8
8
  const doc = typeof document !== 'undefined' ? document : undefined;
@@ -321,8 +321,7 @@ const pointerCoord = (ev) => {
321
321
  *
322
322
  * @param side The current side before being redefined based on the direction.
323
323
  * @param hostEl The component's host element. The direction is resolved from
324
- * it or its nearest ancestor that declares one. When omitted, the direction
325
- * is resolved from the document.
324
+ * it or its nearest ancestor that declares one, falling back to the document.
326
325
  */
327
326
  const isEndSide = (side, hostEl) => {
328
327
  const rtl = isRTL(hostEl);
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-BJqKF1pr.js';
4
+ import { c as componentOnReady } from './helpers-p94IkmEA.js';
5
5
  import { t as printRequiredElementError } from './index-BpRUsN_W.js';
6
6
 
7
7
  const ION_CONTENT_TAG_NAME = 'ION-CONTENT';
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { n as doc, x as pointerCoord } from './helpers-BJqKF1pr.js';
4
+ import { n as doc, x as pointerCoord } from './helpers-p94IkmEA.js';
5
5
  import './index-BpRUsN_W.js';
6
- import './dir-Dojwmvde.js';
6
+ import './dir-Dj4J3LkD.js';
7
7
 
8
8
  const startTapClick = (config) => {
9
9
  if (doc === undefined) {
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { n as doc, c as componentOnReady } from './helpers-BJqKF1pr.js';
5
- import { M as MENU_BACK_BUTTON_PRIORITY, q as addCloseWatcherCondition } from './overlays-DmDY-El7.js';
4
+ import { n as doc, c as componentOnReady } from './helpers-p94IkmEA.js';
5
+ import { M as MENU_BACK_BUTTON_PRIORITY, q as addCloseWatcherCondition } from './overlays-BBgMM61s.js';
6
6
  import { a as printIonWarning } from './index-BpRUsN_W.js';
7
7
  import { b as getIonMode } from './ionic-global-Cep6oYzK.js';
8
- import { c as createAnimation } from './animation-DmtJpz89.js';
8
+ import { c as createAnimation } from './animation-C_V9lXzL.js';
9
9
 
10
10
  /**
11
11
  * baseAnimation
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { i as config, a as printIonWarning, w as writeTask, B as Build } from './index-BpRUsN_W.js';
5
- import { r as raf } from './helpers-BJqKF1pr.js';
5
+ import { r as raf } from './helpers-p94IkmEA.js';
6
6
 
7
7
  const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
8
8
  const LIFECYCLE_DID_ENTER = 'ionViewDidEnter';
@@ -118,8 +118,8 @@ const createFocusController = () => {
118
118
  };
119
119
  const LAST_FOCUS = 'ion-last-focus';
120
120
 
121
- const iosTransitionAnimation = () => import('./ios.transition-BkUGiDUz.js');
122
- const mdTransitionAnimation = () => import('./md.transition-B6hlrWjR.js');
121
+ const iosTransitionAnimation = () => import('./ios.transition-CW92wRDL.js');
122
+ const mdTransitionAnimation = () => import('./md.transition-yhfkYX1P.js');
123
123
  const focusController = createFocusController();
124
124
  // TODO(FW-2832): types
125
125
  /**
package/dist/esm/index.js CHANGED
@@ -1,23 +1,23 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- export { c as createAnimation } from './animation-DmtJpz89.js';
5
- export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-z9vdZN7I.js';
6
- export { iosTransitionAnimation } from './ios.transition-BkUGiDUz.js';
7
- export { mdTransitionAnimation } from './md.transition-B6hlrWjR.js';
4
+ export { c as createAnimation } from './animation-C_V9lXzL.js';
5
+ export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-vgPixHgF.js';
6
+ export { iosTransitionAnimation } from './ios.transition-CW92wRDL.js';
7
+ export { mdTransitionAnimation } from './md.transition-yhfkYX1P.js';
8
8
  export { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
9
9
  export { createGesture } from './index-BmLuEdV7.js';
10
10
  export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-Cep6oYzK.js';
11
- export { c as componentOnReady } from './helpers-BJqKF1pr.js';
11
+ export { c as componentOnReady } from './helpers-p94IkmEA.js';
12
12
  export { L as LogLevel, c as printIonError, a as printIonWarning } from './index-BpRUsN_W.js';
13
13
  export { I as IonicSafeString } from './index-CK8uF0iB.js';
14
14
  export { g as getMode, s as setupConfig } from './config-DWCzVL3Y.js';
15
15
  export { o as openURL } from './theme-byZM6qHV.js';
16
- export { m as menuController } from './index-DIouXecD.js';
17
- export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as popoverController, t as toastController } from './overlays-DmDY-El7.js';
16
+ export { m as menuController } from './index-txcXIB3P.js';
17
+ export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as popoverController, t as toastController } from './overlays-BBgMM61s.js';
18
+ import './dir-Dj4J3LkD.js';
18
19
  import './gesture-controller-B_gJaBk0.js';
19
- import './dir-Dojwmvde.js';
20
- import './framework-delegate-CDjM1vRH.js';
20
+ import './framework-delegate-CW5_kWfc.js';
21
21
 
22
22
  const IonicSlides = (opts) => {
23
23
  const { swiper, extendParams } = opts;