voyager-ionic-core 7.5.0 → 7.5.5

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 (594) hide show
  1. package/components/action-sheet.js +2 -2
  2. package/components/alert.js +2 -2
  3. package/components/animation.js +18 -3
  4. package/components/checkbox.js +2 -2
  5. package/components/form-controller.js +1 -5
  6. package/components/index8.js +0 -1
  7. package/components/input-shims.js +9 -1
  8. package/components/ion-accordion-group.js +11 -1
  9. package/components/ion-datetime.js +48 -23
  10. package/components/ion-fab-list.js +1 -1
  11. package/components/ion-fab.js +1 -1
  12. package/components/ion-header.js +1 -1
  13. package/components/ion-input.js +11 -4
  14. package/components/ion-item-divider.js +2 -2
  15. package/components/ion-item-option.js +2 -2
  16. package/components/ion-menu.js +17 -5
  17. package/components/ion-modal.js +8 -8
  18. package/components/ion-range.js +2 -2
  19. package/components/ion-refresher.js +8 -1
  20. package/components/ion-reorder.js +2 -2
  21. package/components/ion-searchbar.js +10 -3
  22. package/components/ion-segment.js +43 -17
  23. package/components/ion-select.js +2 -2
  24. package/components/ion-tab-bar.js +2 -2
  25. package/components/ion-tab-button.js +2 -2
  26. package/components/ion-textarea.js +11 -4
  27. package/components/ion-title.js +1 -1
  28. package/components/ion-toast.js +2 -2
  29. package/components/ion-toggle.js +2 -2
  30. package/components/ios.transition.js +209 -41
  31. package/components/item.js +2 -2
  32. package/components/list-header.js +2 -2
  33. package/components/list.js +2 -2
  34. package/components/picker-internal.js +2 -2
  35. package/components/popover.js +2 -2
  36. package/components/radio-group.js +10 -1
  37. package/components/radio.js +2 -3
  38. package/components/watch-options.js +14 -3
  39. package/css/core.css.map +1 -1
  40. package/css/display.css.map +1 -1
  41. package/css/float-elements.css.map +1 -1
  42. package/css/global.bundle.css.map +1 -1
  43. package/css/ionic.bundle.css.map +1 -1
  44. package/css/padding.css.map +1 -1
  45. package/css/structure.css.map +1 -1
  46. package/css/text-alignment.css.map +1 -1
  47. package/css/text-transformation.css.map +1 -1
  48. package/css/typography.css.map +1 -1
  49. package/css/utils.bundle.css.map +1 -1
  50. package/dist/cjs/{animation-c8bdd3c7.js → animation-1083855c.js} +18 -3
  51. package/dist/cjs/{app-globals-fe1ad535.js → app-globals-1d4c1dbf.js} +1 -1
  52. package/dist/cjs/{button-active-c0ff1915.js → button-active-af897e0e.js} +1 -1
  53. package/dist/cjs/{form-controller-5e223b54.js → form-controller-9343050c.js} +1 -5
  54. package/dist/cjs/{index-d93fb71d.js → index-573877f3.js} +3 -3
  55. package/dist/cjs/{index-305a23dc.js → index-c2940dc1.js} +127 -57
  56. package/dist/cjs/{index-5e7529f6.js → index-d7561763.js} +2 -2
  57. package/dist/cjs/{index-10873539.js → index-da2c7a37.js} +0 -1
  58. package/dist/cjs/index.cjs.js +8 -8
  59. package/dist/cjs/{input-shims-da7dc0de.js → input-shims-b0a75a01.js} +10 -2
  60. package/dist/cjs/ion-accordion_2.cjs.entry.js +13 -3
  61. package/dist/cjs/ion-action-sheet.cjs.entry.js +7 -7
  62. package/dist/cjs/ion-alert.cjs.entry.js +7 -7
  63. package/dist/cjs/ion-app_8.cjs.entry.js +8 -8
  64. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  65. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  66. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  68. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-checkbox.cjs.entry.js +5 -5
  71. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  72. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-datetime_3.cjs.entry.js +52 -27
  75. package/dist/cjs/ion-fab_3.cjs.entry.js +4 -4
  76. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  77. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  78. package/dist/cjs/ion-input.cjs.entry.js +13 -6
  79. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  80. package/dist/cjs/ion-item_8.cjs.entry.js +10 -10
  81. package/dist/cjs/ion-loading.cjs.entry.js +4 -4
  82. package/dist/cjs/ion-menu_3.cjs.entry.js +22 -10
  83. package/dist/cjs/ion-modal.cjs.entry.js +14 -14
  84. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
  85. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
  86. package/dist/cjs/ion-picker-internal.cjs.entry.js +3 -3
  87. package/dist/cjs/ion-popover.cjs.entry.js +7 -7
  88. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-radio_2.cjs.entry.js +15 -7
  90. package/dist/cjs/ion-range.cjs.entry.js +6 -6
  91. package/dist/cjs/ion-refresher_2.cjs.entry.js +12 -5
  92. package/dist/cjs/ion-reorder_2.cjs.entry.js +5 -5
  93. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  94. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  95. package/dist/cjs/ion-searchbar.cjs.entry.js +11 -4
  96. package/dist/cjs/ion-segment_2.cjs.entry.js +45 -19
  97. package/dist/cjs/ion-select_3.cjs.entry.js +7 -7
  98. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  100. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
  101. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  102. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  103. package/dist/cjs/ion-textarea.cjs.entry.js +13 -6
  104. package/dist/cjs/ion-toast.cjs.entry.js +6 -6
  105. package/dist/cjs/ion-toggle.cjs.entry.js +5 -5
  106. package/dist/cjs/{ionic-global-fb752503.js → ionic-global-ea2901a3.js} +1 -1
  107. package/dist/cjs/ionic.cjs.js +4 -4
  108. package/dist/cjs/{ios.transition-a4d545dd.js → ios.transition-ac909bc8.js} +212 -44
  109. package/dist/cjs/loader.cjs.js +3 -3
  110. package/dist/cjs/{md.transition-80bb961b.js → md.transition-907af519.js} +3 -3
  111. package/dist/cjs/{overlays-1a734051.js → overlays-2ffc5f27.js} +1 -1
  112. package/dist/cjs/{status-tap-778e8054.js → status-tap-3fb2391a.js} +2 -2
  113. package/dist/cjs/{watch-options-f3f77e54.js → watch-options-53bbb124.js} +14 -3
  114. package/dist/collection/collection-manifest.json +1 -1
  115. package/dist/collection/components/accordion-group/accordion-group.js +10 -0
  116. package/dist/collection/components/accordion-group/accordion-group.md.css +2 -2
  117. package/dist/collection/components/action-sheet/action-sheet.ios.css +18 -5
  118. package/dist/collection/components/action-sheet/action-sheet.md.css +18 -5
  119. package/dist/collection/components/action-sheet/test/basic/action-sheet.e2e.js +59 -0
  120. package/dist/collection/components/alert/alert.ios.css +37 -4
  121. package/dist/collection/components/alert/alert.md.css +37 -4
  122. package/dist/collection/components/alert/test/a11y/alert.e2e.js +48 -0
  123. package/dist/collection/components/checkbox/checkbox.ios.css +3 -3
  124. package/dist/collection/components/checkbox/checkbox.md.css +3 -3
  125. package/dist/collection/components/datetime/datetime.ios.css +24 -4
  126. package/dist/collection/components/datetime/datetime.js +47 -22
  127. package/dist/collection/components/datetime/datetime.md.css +24 -8
  128. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +66 -0
  129. package/dist/collection/components/datetime/test/disabled/datetime.e2e.js +68 -0
  130. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +113 -0
  131. package/dist/collection/components/fab/fab.css +24 -36
  132. package/dist/collection/components/fab/test/safe-area/fab.e2e.js +63 -0
  133. package/dist/collection/components/fab-list/fab-list.css +2 -2
  134. package/dist/collection/components/header/header.ios.css +4 -1
  135. package/dist/collection/components/input/input.ios.css +15 -15
  136. package/dist/collection/components/input/input.js +9 -2
  137. package/dist/collection/components/input/input.md.css +22 -10
  138. package/dist/collection/components/item/item.ios.css +60 -12
  139. package/dist/collection/components/item/item.md.css +63 -15
  140. package/dist/collection/components/item/test/basic/item.e2e.js +26 -0
  141. package/dist/collection/components/item-divider/item-divider.ios.css +35 -8
  142. package/dist/collection/components/item-divider/item-divider.md.css +35 -8
  143. package/dist/collection/components/item-divider/test/basic/item-divider.e2e.js +22 -0
  144. package/dist/collection/components/item-option/item-option.ios.css +0 -10
  145. package/dist/collection/components/item-option/item-option.md.css +0 -10
  146. package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +77 -0
  147. package/dist/collection/components/label/label.ios.css +1 -1
  148. package/dist/collection/components/list/list.ios.css +15 -1
  149. package/dist/collection/components/list/list.md.css +41 -3
  150. package/dist/collection/components/list/test/lines/list.e2e.js +143 -0
  151. package/dist/collection/components/list-header/list-header.ios.css +15 -2
  152. package/dist/collection/components/list-header/list-header.md.css +15 -2
  153. package/dist/collection/components/list-header/test/basic/list-header.e2e.js +28 -0
  154. package/dist/collection/components/menu/menu.ios.css +4 -4
  155. package/dist/collection/components/menu/menu.js +15 -3
  156. package/dist/collection/components/menu/menu.md.css +4 -4
  157. package/dist/collection/components/modal/animations/ios.enter.js +3 -3
  158. package/dist/collection/components/modal/animations/ios.leave.js +4 -4
  159. package/dist/collection/components/modal/modal.ios.css +2 -2
  160. package/dist/collection/components/picker/picker.ios.css +1 -1
  161. package/dist/collection/components/picker/picker.md.css +1 -1
  162. package/dist/collection/components/picker-internal/picker-internal.ios.css +2 -2
  163. package/dist/collection/components/picker-internal/picker-internal.md.css +2 -2
  164. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +5 -0
  165. package/dist/collection/components/popover/popover.ios.css +4 -4
  166. package/dist/collection/components/popover/popover.md.css +2 -2
  167. package/dist/collection/components/radio/radio.ios.css +4 -4
  168. package/dist/collection/components/radio/radio.js +5 -2
  169. package/dist/collection/components/radio/radio.md.css +4 -4
  170. package/dist/collection/components/radio/test/legacy/a11y/radio.e2e.js +5 -5
  171. package/dist/collection/components/radio-group/radio-group.js +10 -1
  172. package/dist/collection/components/range/range.ios.css +1 -1
  173. package/dist/collection/components/range/range.md.css +1 -1
  174. package/dist/collection/components/refresher/refresher.utils.js +8 -1
  175. package/dist/collection/components/reorder/reorder.ios.css +1 -34
  176. package/dist/collection/components/reorder/reorder.md.css +1 -34
  177. package/dist/collection/components/searchbar/searchbar.js +9 -2
  178. package/dist/collection/components/searchbar/searchbar.md.css +12 -6
  179. package/dist/collection/components/searchbar/test/basic/searchbar.e2e.js +25 -0
  180. package/dist/collection/components/segment/segment.js +43 -17
  181. package/dist/collection/components/select/select.ios.css +12 -15
  182. package/dist/collection/components/select/select.md.css +16 -7
  183. package/dist/collection/components/split-pane/test/multiple/split-pane.e2e.js +31 -0
  184. package/dist/collection/components/tab-bar/tab-bar.ios.css +4 -4
  185. package/dist/collection/components/tab-bar/tab-bar.md.css +4 -4
  186. package/dist/collection/components/tab-bar/test/basic/tab-bar.e2e.js +43 -0
  187. package/dist/collection/components/tab-button/tab-button.ios.css +3 -3
  188. package/dist/collection/components/tab-button/tab-button.md.css +3 -3
  189. package/dist/collection/components/textarea/textarea.ios.css +19 -19
  190. package/dist/collection/components/textarea/textarea.js +9 -2
  191. package/dist/collection/components/textarea/textarea.md.css +26 -20
  192. package/dist/collection/components/title/title.ios.css +11 -2
  193. package/dist/collection/components/toast/toast.ios.css +1 -1
  194. package/dist/collection/components/toast/toast.md.css +1 -1
  195. package/dist/collection/components/toggle/toggle.ios.css +3 -3
  196. package/dist/collection/components/toggle/toggle.md.css +3 -3
  197. package/dist/collection/utils/animation/animation.js +18 -3
  198. package/dist/collection/utils/content/index.js +0 -1
  199. package/dist/collection/utils/forms/form-controller.js +1 -5
  200. package/dist/collection/utils/input-shims/hacks/common.js +9 -1
  201. package/dist/collection/utils/transition/ios.transition.js +209 -41
  202. package/dist/collection/utils/watch-options.js +14 -3
  203. package/dist/docs.json +3 -3
  204. package/dist/esm/{animation-92066c62.js → animation-8aa13916.js} +18 -3
  205. package/dist/esm/{app-globals-ec816a70.js → app-globals-2398e405.js} +1 -1
  206. package/dist/esm/{button-active-d926d4f4.js → button-active-ce5cba4c.js} +1 -1
  207. package/dist/esm/{form-controller-ed77647a.js → form-controller-64edeaad.js} +1 -5
  208. package/dist/esm/{index-df55802d.js → index-0aa6e61f.js} +2 -2
  209. package/dist/esm/{index-746a238e.js → index-4392efa5.js} +0 -1
  210. package/dist/esm/{index-7d2b2808.js → index-6a0ccabb.js} +3 -3
  211. package/dist/esm/{index-b49b173c.js → index-7c9b1bca.js} +127 -57
  212. package/dist/esm/index.js +8 -8
  213. package/dist/esm/{input-shims-d78a3c77.js → input-shims-d0c93e5d.js} +10 -2
  214. package/dist/esm/ion-accordion_2.entry.js +13 -3
  215. package/dist/esm/ion-action-sheet.entry.js +7 -7
  216. package/dist/esm/ion-alert.entry.js +7 -7
  217. package/dist/esm/ion-app_8.entry.js +8 -8
  218. package/dist/esm/ion-avatar_3.entry.js +2 -2
  219. package/dist/esm/ion-back-button.entry.js +2 -2
  220. package/dist/esm/ion-backdrop.entry.js +2 -2
  221. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  222. package/dist/esm/ion-button_2.entry.js +2 -2
  223. package/dist/esm/ion-card_5.entry.js +2 -2
  224. package/dist/esm/ion-checkbox.entry.js +5 -5
  225. package/dist/esm/ion-chip.entry.js +2 -2
  226. package/dist/esm/ion-col_3.entry.js +2 -2
  227. package/dist/esm/ion-datetime-button.entry.js +2 -2
  228. package/dist/esm/ion-datetime_3.entry.js +52 -27
  229. package/dist/esm/ion-fab_3.entry.js +4 -4
  230. package/dist/esm/ion-img.entry.js +2 -2
  231. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  232. package/dist/esm/ion-input.entry.js +14 -7
  233. package/dist/esm/ion-item-option_3.entry.js +6 -6
  234. package/dist/esm/ion-item_8.entry.js +10 -10
  235. package/dist/esm/ion-loading.entry.js +4 -4
  236. package/dist/esm/ion-menu_3.entry.js +22 -10
  237. package/dist/esm/ion-modal.entry.js +14 -14
  238. package/dist/esm/ion-nav_2.entry.js +3 -3
  239. package/dist/esm/ion-picker-column-internal.entry.js +2 -2
  240. package/dist/esm/ion-picker-internal.entry.js +3 -3
  241. package/dist/esm/ion-popover.entry.js +7 -7
  242. package/dist/esm/ion-progress-bar.entry.js +2 -2
  243. package/dist/esm/ion-radio_2.entry.js +15 -7
  244. package/dist/esm/ion-range.entry.js +6 -6
  245. package/dist/esm/ion-refresher_2.entry.js +12 -5
  246. package/dist/esm/ion-reorder_2.entry.js +5 -5
  247. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  248. package/dist/esm/ion-route_4.entry.js +2 -2
  249. package/dist/esm/ion-searchbar.entry.js +12 -5
  250. package/dist/esm/ion-segment_2.entry.js +45 -19
  251. package/dist/esm/ion-select_3.entry.js +7 -7
  252. package/dist/esm/ion-spinner.entry.js +2 -2
  253. package/dist/esm/ion-split-pane.entry.js +2 -2
  254. package/dist/esm/ion-tab-bar_2.entry.js +6 -6
  255. package/dist/esm/ion-tab_2.entry.js +1 -1
  256. package/dist/esm/ion-text.entry.js +2 -2
  257. package/dist/esm/ion-textarea.entry.js +14 -7
  258. package/dist/esm/ion-toast.entry.js +6 -6
  259. package/dist/esm/ion-toggle.entry.js +5 -5
  260. package/dist/esm/{ionic-global-246ca78f.js → ionic-global-40e42e7f.js} +1 -1
  261. package/dist/esm/ionic.js +5 -5
  262. package/dist/esm/{ios.transition-a86d7bbe.js → ios.transition-1651c430.js} +212 -44
  263. package/dist/esm/loader.js +4 -4
  264. package/dist/esm/{md.transition-365ef6b6.js → md.transition-66f18369.js} +3 -3
  265. package/dist/esm/{overlays-cec6bac8.js → overlays-6c9feb7e.js} +1 -1
  266. package/dist/esm/{status-tap-9aeeaca5.js → status-tap-9ce68758.js} +2 -2
  267. package/dist/esm/{watch-options-355a920a.js → watch-options-02d8498b.js} +14 -3
  268. package/dist/esm-es5/animation-8aa13916.js +4 -0
  269. package/dist/esm-es5/app-globals-2398e405.js +4 -0
  270. package/dist/esm-es5/{button-active-d926d4f4.js → button-active-ce5cba4c.js} +1 -1
  271. package/dist/esm-es5/config-96c9ace3.js +1 -1
  272. package/dist/esm-es5/cubic-bezier-66542bc5.js +1 -1
  273. package/dist/esm-es5/data-44d9e816.js +1 -1
  274. package/dist/esm-es5/dir-912e3e13.js +1 -1
  275. package/dist/esm-es5/focus-visible-85493433.js +1 -1
  276. package/dist/esm-es5/form-controller-64edeaad.js +4 -0
  277. package/dist/esm-es5/framework-delegate-aa433dea.js +1 -1
  278. package/dist/esm-es5/gesture-controller-0fa396c4.js +1 -1
  279. package/dist/esm-es5/haptic-1243b917.js +1 -1
  280. package/dist/esm-es5/hardware-back-button-39299f84.js +1 -1
  281. package/dist/esm-es5/helpers-3379ba19.js +1 -1
  282. package/dist/esm-es5/index-0aa6e61f.js +4 -0
  283. package/dist/esm-es5/index-4392efa5.js +4 -0
  284. package/dist/esm-es5/index-6a0ccabb.js +4 -0
  285. package/dist/esm-es5/index-7c9b1bca.js +5 -0
  286. package/dist/esm-es5/index-f0cc4e14.js +1 -1
  287. package/dist/esm-es5/index-ff313b19.js +1 -1
  288. package/dist/esm-es5/index.js +1 -1
  289. package/dist/esm-es5/input-shims-d0c93e5d.js +4 -0
  290. package/dist/esm-es5/input.utils-ec063df4.js +1 -1
  291. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  292. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  293. package/dist/esm-es5/ion-alert.entry.js +1 -1
  294. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  295. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  296. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  297. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  298. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  299. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  300. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  301. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  302. package/dist/esm-es5/ion-chip.entry.js +1 -1
  303. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  304. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  305. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  306. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  307. package/dist/esm-es5/ion-img.entry.js +1 -1
  308. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  309. package/dist/esm-es5/ion-input.entry.js +1 -1
  310. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  311. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  312. package/dist/esm-es5/ion-loading.entry.js +1 -1
  313. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  314. package/dist/esm-es5/ion-modal.entry.js +1 -1
  315. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  316. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  317. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  318. package/dist/esm-es5/ion-popover.entry.js +1 -1
  319. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  320. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  321. package/dist/esm-es5/ion-range.entry.js +1 -1
  322. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  323. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  324. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  325. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  326. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  327. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  328. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  329. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  330. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  331. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  332. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  333. package/dist/esm-es5/ion-text.entry.js +1 -1
  334. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  335. package/dist/esm-es5/ion-toast.entry.js +1 -1
  336. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  337. package/dist/esm-es5/ionic-global-40e42e7f.js +4 -0
  338. package/dist/esm-es5/ionic.js +1 -1
  339. package/dist/esm-es5/ios.transition-1651c430.js +4 -0
  340. package/dist/esm-es5/keyboard-b551279d.js +1 -1
  341. package/dist/esm-es5/keyboard-controller-0c2dce71.js +1 -1
  342. package/dist/esm-es5/loader.js +1 -1
  343. package/dist/esm-es5/md.transition-66f18369.js +4 -0
  344. package/dist/esm-es5/notch-controller-8c9c0e54.js +1 -1
  345. package/dist/esm-es5/overlays-6c9feb7e.js +4 -0
  346. package/dist/esm-es5/spinner-configs-d09fbbbb.js +1 -1
  347. package/dist/esm-es5/status-tap-9ce68758.js +4 -0
  348. package/dist/esm-es5/swipe-back-cd4295f3.js +1 -1
  349. package/dist/esm-es5/watch-options-02d8498b.js +4 -0
  350. package/dist/html.html-data.json +1 -1
  351. package/dist/ionic/index.esm.js +1 -1
  352. package/dist/ionic/ionic.esm.js +1 -1
  353. package/dist/ionic/ionic.js +1 -1
  354. package/dist/ionic/p-0330f0a3.system.entry.js +4 -0
  355. package/dist/ionic/{p-a7f8dc42.entry.js → p-0492946a.entry.js} +1 -1
  356. package/dist/ionic/{p-78030c1f.system.entry.js → p-07d9e9cd.system.entry.js} +1 -1
  357. package/dist/ionic/{p-ced41304.system.js → p-09d142b3.system.js} +1 -1
  358. package/dist/ionic/{p-fcf47f80.entry.js → p-0a794e83.entry.js} +1 -1
  359. package/dist/ionic/p-0d8e9393.entry.js +4 -0
  360. package/dist/ionic/p-0dc0d9b5.entry.js +4 -0
  361. package/dist/ionic/p-0e23256e.system.entry.js +4 -0
  362. package/dist/ionic/p-14aca3fb.entry.js +4 -0
  363. package/dist/ionic/p-14b4348c.system.js +4 -0
  364. package/dist/ionic/{p-108f9d49.entry.js → p-174f3446.entry.js} +1 -1
  365. package/dist/ionic/p-18e01b30.system.entry.js +4 -0
  366. package/dist/ionic/p-1a8ae7a7.system.entry.js +4 -0
  367. package/dist/ionic/p-1cb5f2f8.system.entry.js +4 -0
  368. package/dist/ionic/{p-c42c86c0.system.entry.js → p-1d269117.system.entry.js} +1 -1
  369. package/dist/ionic/{p-0ac3fb2c.entry.js → p-1dc91702.entry.js} +1 -1
  370. package/dist/ionic/p-1e5165db.system.entry.js +4 -0
  371. package/dist/ionic/{p-0b00b937.entry.js → p-1e86a71b.entry.js} +1 -1
  372. package/dist/ionic/p-1f4f0d59.system.entry.js +4 -0
  373. package/dist/ionic/p-20cf4994.js +4 -0
  374. package/dist/ionic/p-236063ec.system.entry.js +4 -0
  375. package/dist/ionic/p-2b89ea1b.system.js +1 -1
  376. package/dist/ionic/p-2e8e0045.js +4 -0
  377. package/dist/ionic/{p-ce7d67a7.system.entry.js → p-34d2de14.system.entry.js} +2 -2
  378. package/dist/ionic/{p-303bf1e8.system.entry.js → p-352c0232.system.entry.js} +2 -2
  379. package/dist/ionic/p-3602001b.system.js +4 -0
  380. package/dist/ionic/p-3632220b.system.js +1 -1
  381. package/dist/ionic/p-377c636c.system.entry.js +4 -0
  382. package/dist/ionic/{p-f9fa802c.system.entry.js → p-39044fe6.system.entry.js} +2 -2
  383. package/dist/ionic/{p-38089641.entry.js → p-3ce8c3e3.entry.js} +1 -1
  384. package/dist/ionic/p-3d7fea9b.system.entry.js +4 -0
  385. package/dist/ionic/p-3de79805.entry.js +4 -0
  386. package/dist/ionic/{p-0bbede6a.system.entry.js → p-3fb57e1b.system.entry.js} +1 -1
  387. package/dist/ionic/{p-5c3e72a8.system.js → p-40903d34.system.js} +1 -1
  388. package/dist/ionic/p-41122cd6.system.js +4 -0
  389. package/dist/ionic/p-41477ad9.system.js +1 -1
  390. package/dist/ionic/p-44bc8b45.system.js +2 -2
  391. package/dist/ionic/p-4518e4c0.system.entry.js +4 -0
  392. package/dist/ionic/{p-eab10949.system.entry.js → p-45da1e68.system.entry.js} +1 -1
  393. package/dist/ionic/p-4794e0ac.system.entry.js +4 -0
  394. package/dist/ionic/p-479cdbf8.system.js +2 -2
  395. package/dist/ionic/{p-4e50b8d1.entry.js → p-48d9faa7.entry.js} +1 -1
  396. package/dist/ionic/{p-8d6728a1.system.entry.js → p-4a142496.system.entry.js} +1 -1
  397. package/dist/ionic/p-4c80afe1.system.entry.js +4 -0
  398. package/dist/ionic/p-4cd588b3.system.entry.js +4 -0
  399. package/dist/ionic/{p-afb6658f.entry.js → p-4dbac22d.entry.js} +1 -1
  400. package/dist/ionic/p-4e6a1efb.system.entry.js +4 -0
  401. package/dist/ionic/p-4ecb5692.entry.js +4 -0
  402. package/dist/ionic/p-5370e786.js +4 -0
  403. package/dist/ionic/p-55ed230e.system.js +4 -0
  404. package/dist/ionic/p-56dc022e.system.js +1 -1
  405. package/dist/ionic/p-5aac9314.system.js +4 -0
  406. package/dist/ionic/p-5bd4e009.entry.js +4 -0
  407. package/dist/ionic/{p-6f8a95a3.system.entry.js → p-5cfb3feb.system.entry.js} +2 -2
  408. package/dist/ionic/{p-181b7c2a.js → p-5d711127.js} +1 -1
  409. package/dist/ionic/p-5da0eb3e.system.entry.js +4 -0
  410. package/dist/ionic/p-5deff017.entry.js +4 -0
  411. package/dist/ionic/p-613d4042.system.js +2 -2
  412. package/dist/ionic/p-63d519fb.entry.js +4 -0
  413. package/dist/ionic/{p-8083aadb.entry.js → p-63f08fe3.entry.js} +1 -1
  414. package/dist/ionic/{p-35b26732.entry.js → p-64296b15.entry.js} +1 -1
  415. package/dist/ionic/p-64ed03a3.entry.js +4 -0
  416. package/dist/ionic/p-664d2b07.system.entry.js +4 -0
  417. package/dist/ionic/p-67aab78f.js +4 -0
  418. package/dist/ionic/{p-e0f52215.system.entry.js → p-67e18f02.system.entry.js} +1 -1
  419. package/dist/ionic/{p-572cce26.system.entry.js → p-67ed452a.system.entry.js} +2 -2
  420. package/dist/ionic/p-67eecef4.system.js +4 -0
  421. package/dist/ionic/{p-76378400.js → p-6c3d5383.js} +1 -1
  422. package/dist/ionic/{p-1289b3b5.system.entry.js → p-6e23777e.system.entry.js} +2 -2
  423. package/dist/ionic/p-702d85d8.system.js +4 -0
  424. package/dist/ionic/{p-1edb53a1.entry.js → p-7176cea3.entry.js} +1 -1
  425. package/dist/ionic/p-73411c1b.entry.js +4 -0
  426. package/dist/ionic/p-73420380.js +4 -0
  427. package/dist/ionic/{p-6ea2e653.entry.js → p-744973f3.entry.js} +1 -1
  428. package/dist/ionic/p-772f6c84.system.js +2 -2
  429. package/dist/ionic/p-77e7a9c8.entry.js +4 -0
  430. package/dist/ionic/p-7ab6fc5a.system.entry.js +4 -0
  431. package/dist/ionic/{p-31119a15.entry.js → p-7cee75c0.entry.js} +1 -1
  432. package/dist/ionic/{p-cf62e1c8.js → p-800ef057.js} +1 -1
  433. package/dist/ionic/p-815c2fba.system.js +2 -2
  434. package/dist/ionic/p-819ff3b9.system.js +1 -1
  435. package/dist/ionic/p-87411e39.system.js +1 -1
  436. package/dist/ionic/p-8a308596.system.js +4 -0
  437. package/dist/ionic/{p-3818f63f.entry.js → p-8ad82eb3.entry.js} +1 -1
  438. package/dist/ionic/{p-c4a5de01.entry.js → p-8b29691f.entry.js} +1 -1
  439. package/dist/ionic/p-8c15eda7.system.js +2 -2
  440. package/dist/ionic/p-8e1bded3.entry.js +4 -0
  441. package/dist/ionic/{p-15decbec.entry.js → p-9209d90c.entry.js} +1 -1
  442. package/dist/ionic/{p-96ba8eac.entry.js → p-92800752.entry.js} +1 -1
  443. package/dist/ionic/p-965677f1.entry.js +4 -0
  444. package/dist/ionic/{p-446230d7.js → p-97c65aa5.js} +1 -1
  445. package/dist/ionic/p-97e31c0a.system.js +4 -0
  446. package/dist/ionic/p-9ab6f3e6.system.js +1 -1
  447. package/dist/ionic/{p-62e7d4fa.js → p-9b89cbde.js} +1 -1
  448. package/dist/ionic/p-9e852ff1.system.js +1 -1
  449. package/dist/ionic/p-a0b6d438.js +4 -0
  450. package/dist/ionic/p-a545b4f1.system.js +4 -0
  451. package/dist/ionic/p-a5c1e6ce.entry.js +4 -0
  452. package/dist/ionic/p-a6d83a03.system.entry.js +4 -0
  453. package/dist/ionic/p-a8e68fd9.entry.js +4 -0
  454. package/dist/ionic/{p-aa377971.system.js → p-a936d224.system.js} +1 -1
  455. package/dist/ionic/{p-beb864e4.system.entry.js → p-a9c3699b.system.entry.js} +1 -1
  456. package/dist/ionic/p-ab4cff27.system.js +1 -1
  457. package/dist/ionic/{p-012952cd.system.entry.js → p-abacb44b.system.entry.js} +2 -2
  458. package/dist/ionic/{p-1f81b5be.entry.js → p-af016cd3.entry.js} +1 -1
  459. package/dist/ionic/{p-a9c32660.entry.js → p-b0cee324.entry.js} +1 -1
  460. package/dist/ionic/{p-f4309ac7.entry.js → p-b1142133.entry.js} +1 -1
  461. package/dist/ionic/p-b17b7c3c.system.entry.js +4 -0
  462. package/dist/ionic/p-b203659a.system.entry.js +4 -0
  463. package/dist/ionic/{p-c679fcb5.entry.js → p-b2a74a72.entry.js} +1 -1
  464. package/dist/ionic/p-b4b4bb29.system.js +1 -1
  465. package/dist/ionic/p-b6f8ee31.entry.js +4 -0
  466. package/dist/ionic/p-b8c3f071.system.js +1 -1
  467. package/dist/ionic/p-b906c5ca.entry.js +4 -0
  468. package/dist/ionic/p-b912e055.system.js +1 -1
  469. package/dist/ionic/{p-e42aaa8b.entry.js → p-b91fe549.entry.js} +1 -1
  470. package/dist/ionic/p-bba2ce59.system.js +1 -1
  471. package/dist/ionic/p-beb64be7.system.entry.js +4 -0
  472. package/dist/ionic/p-bed722c4.system.entry.js +4 -0
  473. package/dist/ionic/p-c0c81820.system.js +4 -0
  474. package/dist/ionic/p-c224b9a9.js +5 -0
  475. package/dist/ionic/p-c4042875.system.js +4 -0
  476. package/dist/ionic/p-c4f2dce7.system.js +1 -1
  477. package/dist/ionic/{p-6f6646bf.system.entry.js → p-c7b8c2ef.system.entry.js} +1 -1
  478. package/dist/ionic/{p-1ecba429.entry.js → p-c7d30db9.entry.js} +1 -1
  479. package/dist/ionic/{p-db1a1e00.entry.js → p-c919498d.entry.js} +1 -1
  480. package/dist/ionic/{p-54200074.entry.js → p-ca5219df.entry.js} +1 -1
  481. package/dist/ionic/p-ccdcb022.system.js +1 -1
  482. package/dist/ionic/p-cf425ec5.system.entry.js +4 -0
  483. package/dist/ionic/p-d2597b3e.system.js +5 -0
  484. package/dist/ionic/p-d3952bd5.system.entry.js +4 -0
  485. package/dist/ionic/{p-8c1805f4.system.entry.js → p-d7ea6a0d.system.entry.js} +1 -1
  486. package/dist/ionic/p-db5043df.system.entry.js +4 -0
  487. package/dist/ionic/p-dfa756ed.system.js +4 -0
  488. package/dist/ionic/{p-28ea45b9.js → p-e6b240a0.js} +1 -1
  489. package/dist/ionic/{p-cabd2c6d.entry.js → p-e76a4bc8.entry.js} +1 -1
  490. package/dist/ionic/{p-cf0c93e3.system.entry.js → p-e8400078.system.entry.js} +2 -2
  491. package/dist/ionic/{p-4e6e43c1.entry.js → p-ed636a74.entry.js} +1 -1
  492. package/dist/ionic/p-f10de93b.js +4 -0
  493. package/dist/ionic/{p-f919c026.entry.js → p-f4cc91f6.entry.js} +1 -1
  494. package/dist/ionic/p-f5a750e4.system.entry.js +4 -0
  495. package/dist/ionic/p-f8e620f1.entry.js +4 -0
  496. package/dist/ionic/p-fa8d4788.system.js +1 -1
  497. package/dist/ionic/{p-8a2801f1.system.entry.js → p-ff5144f3.system.entry.js} +1 -1
  498. package/dist/ionic/p-ff5a10f9.system.js +2 -2
  499. package/dist/ionic/{p-6129af0a.system.entry.js → p-ffb876b0.system.entry.js} +1 -1
  500. package/dist/types/components/datetime/datetime.d.ts +1 -1
  501. package/dist/types/components/menu/menu-interface.d.ts +15 -4
  502. package/dist/types/components/radio/radio.d.ts +1 -1
  503. package/dist/types/components.d.ts +627 -3
  504. package/dist/types/stencil-public-runtime.d.ts +21 -0
  505. package/dist/types/utils/content/index.d.ts +1 -1
  506. package/dist/types/utils/focus-visible.d.ts +3 -2
  507. package/dist/types/utils/menu-controller/index.d.ts +2 -21
  508. package/dist/types/utils/test/platform.utils.d.ts +9 -9
  509. package/dist/types/utils/watch-options.d.ts +9 -1
  510. package/hydrate/index.d.ts +1 -1
  511. package/hydrate/index.js +567 -238
  512. package/package.json +11 -14
  513. package/dist/esm-es5/animation-92066c62.js +0 -4
  514. package/dist/esm-es5/app-globals-ec816a70.js +0 -4
  515. package/dist/esm-es5/form-controller-ed77647a.js +0 -4
  516. package/dist/esm-es5/index-746a238e.js +0 -4
  517. package/dist/esm-es5/index-7d2b2808.js +0 -4
  518. package/dist/esm-es5/index-b49b173c.js +0 -5
  519. package/dist/esm-es5/index-df55802d.js +0 -4
  520. package/dist/esm-es5/input-shims-d78a3c77.js +0 -4
  521. package/dist/esm-es5/ionic-global-246ca78f.js +0 -4
  522. package/dist/esm-es5/ios.transition-a86d7bbe.js +0 -4
  523. package/dist/esm-es5/md.transition-365ef6b6.js +0 -4
  524. package/dist/esm-es5/overlays-cec6bac8.js +0 -4
  525. package/dist/esm-es5/status-tap-9aeeaca5.js +0 -4
  526. package/dist/esm-es5/watch-options-355a920a.js +0 -4
  527. package/dist/ionic/p-015187e5.system.js +0 -4
  528. package/dist/ionic/p-06ac429a.js +0 -5
  529. package/dist/ionic/p-0b7c25ee.system.entry.js +0 -4
  530. package/dist/ionic/p-0f1f59da.system.entry.js +0 -4
  531. package/dist/ionic/p-128a98e8.system.js +0 -4
  532. package/dist/ionic/p-16e44585.js +0 -4
  533. package/dist/ionic/p-19fba51c.entry.js +0 -4
  534. package/dist/ionic/p-1a463b1e.system.entry.js +0 -4
  535. package/dist/ionic/p-1f260a7b.entry.js +0 -4
  536. package/dist/ionic/p-29073efe.system.entry.js +0 -4
  537. package/dist/ionic/p-2bbf3ac4.system.entry.js +0 -4
  538. package/dist/ionic/p-33a8349a.system.entry.js +0 -4
  539. package/dist/ionic/p-34259245.system.entry.js +0 -4
  540. package/dist/ionic/p-35e399bd.entry.js +0 -4
  541. package/dist/ionic/p-38c5fe2b.system.entry.js +0 -4
  542. package/dist/ionic/p-3a58e3a4.system.entry.js +0 -4
  543. package/dist/ionic/p-3d726a67.system.js +0 -4
  544. package/dist/ionic/p-3f3da911.system.entry.js +0 -4
  545. package/dist/ionic/p-4215652f.system.entry.js +0 -4
  546. package/dist/ionic/p-4f97c112.entry.js +0 -4
  547. package/dist/ionic/p-54f6cd27.system.entry.js +0 -4
  548. package/dist/ionic/p-5b976d70.entry.js +0 -4
  549. package/dist/ionic/p-5bf16a18.js +0 -4
  550. package/dist/ionic/p-629aa3fd.system.js +0 -5
  551. package/dist/ionic/p-64475ab5.system.js +0 -4
  552. package/dist/ionic/p-673846f6.entry.js +0 -4
  553. package/dist/ionic/p-6ce0a709.system.entry.js +0 -4
  554. package/dist/ionic/p-818b2e75.entry.js +0 -4
  555. package/dist/ionic/p-81ef7437.system.entry.js +0 -4
  556. package/dist/ionic/p-8e24ebbc.js +0 -4
  557. package/dist/ionic/p-8f01a9a2.system.js +0 -4
  558. package/dist/ionic/p-939e0fa1.system.js +0 -4
  559. package/dist/ionic/p-95817276.system.entry.js +0 -4
  560. package/dist/ionic/p-9b9dcc3e.system.entry.js +0 -4
  561. package/dist/ionic/p-9dc85536.system.entry.js +0 -4
  562. package/dist/ionic/p-9f2e0db9.js +0 -4
  563. package/dist/ionic/p-a04bfada.entry.js +0 -4
  564. package/dist/ionic/p-a164e3ab.system.entry.js +0 -4
  565. package/dist/ionic/p-a200a7fc.entry.js +0 -4
  566. package/dist/ionic/p-a34fc12e.system.entry.js +0 -4
  567. package/dist/ionic/p-ad48dd13.system.js +0 -4
  568. package/dist/ionic/p-b132c2c0.system.js +0 -4
  569. package/dist/ionic/p-b3c68723.system.js +0 -4
  570. package/dist/ionic/p-b61a2fa0.system.entry.js +0 -4
  571. package/dist/ionic/p-b753ec0d.system.entry.js +0 -4
  572. package/dist/ionic/p-b9047b05.system.js +0 -4
  573. package/dist/ionic/p-c05315f5.system.entry.js +0 -4
  574. package/dist/ionic/p-c105bd36.entry.js +0 -4
  575. package/dist/ionic/p-c49672d8.system.js +0 -4
  576. package/dist/ionic/p-c87827ca.system.js +0 -4
  577. package/dist/ionic/p-c8c9d699.system.entry.js +0 -4
  578. package/dist/ionic/p-c92f0a6d.system.entry.js +0 -4
  579. package/dist/ionic/p-c956e82c.system.entry.js +0 -4
  580. package/dist/ionic/p-c994fff0.system.js +0 -4
  581. package/dist/ionic/p-ca5cf574.js +0 -4
  582. package/dist/ionic/p-cd2d17c3.system.entry.js +0 -4
  583. package/dist/ionic/p-d35217be.entry.js +0 -4
  584. package/dist/ionic/p-d6e53e66.entry.js +0 -4
  585. package/dist/ionic/p-e1d5752d.system.entry.js +0 -4
  586. package/dist/ionic/p-e2bb634f.js +0 -4
  587. package/dist/ionic/p-e38a5f77.js +0 -4
  588. package/dist/ionic/p-e65ebe96.entry.js +0 -4
  589. package/dist/ionic/p-e74faf2a.entry.js +0 -4
  590. package/dist/ionic/p-eac263dd.entry.js +0 -4
  591. package/dist/ionic/p-f34f001c.entry.js +0 -4
  592. package/dist/ionic/p-f5bf698b.entry.js +0 -4
  593. package/dist/ionic/p-f7566bad.entry.js +0 -4
  594. /package/dist/ionic/{p-b24aa895.js → p-114a36ed.js} +0 -0
@@ -188,10 +188,6 @@
188
188
  margin-right: 0;
189
189
  margin-top: 0;
190
190
  margin-bottom: 0;
191
- -webkit-padding-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
192
- padding-inline-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
193
- -webkit-padding-end: var(--padding-end);
194
- padding-inline-end: var(--padding-end);
195
191
  padding-top: var(--padding-top);
196
192
  padding-bottom: var(--padding-bottom);
197
193
  font-family: inherit;
@@ -206,6 +202,10 @@
206
202
  text-align: inherit;
207
203
  white-space: inherit;
208
204
  color: inherit;
205
+ /* stylelint-disable */
206
+ padding-right: var(--padding-end);
207
+ padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
208
+ /* stylelint-enable */
209
209
  display: flex;
210
210
  position: relative;
211
211
  align-items: inherit;
@@ -222,6 +222,22 @@
222
222
  box-sizing: border-box;
223
223
  z-index: 1;
224
224
  }
225
+ :host-context([dir=rtl]) .item-native {
226
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
227
+ padding-left: var(--padding-end);
228
+ }
229
+
230
+ [dir=rtl] .item-native {
231
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
232
+ padding-left: var(--padding-end);
233
+ }
234
+
235
+ @supports selector(:dir(rtl)) {
236
+ .item-native:dir(rtl) {
237
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
238
+ padding-left: var(--padding-end);
239
+ }
240
+ }
225
241
 
226
242
  .item-native::-moz-focus-inner {
227
243
  border: 0;
@@ -250,12 +266,12 @@ button, a {
250
266
  margin-right: 0;
251
267
  margin-top: 0;
252
268
  margin-bottom: 0;
253
- -webkit-padding-start: var(--inner-padding-start);
254
- padding-inline-start: var(--inner-padding-start);
255
- -webkit-padding-end: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
256
- padding-inline-end: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
257
269
  padding-top: var(--inner-padding-top);
258
270
  padding-bottom: var(--inner-padding-bottom);
271
+ /* stylelint-disable */
272
+ padding-right: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
273
+ padding-left: var(--inner-padding-start);
274
+ /* stylelint-enable */
259
275
  display: flex;
260
276
  position: relative;
261
277
  flex: 1;
@@ -270,21 +286,53 @@ button, a {
270
286
  overflow: inherit;
271
287
  box-sizing: border-box;
272
288
  }
289
+ :host-context([dir=rtl]) .item-inner {
290
+ padding-right: var(--inner-padding-start);
291
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
292
+ }
293
+
294
+ [dir=rtl] .item-inner {
295
+ padding-right: var(--inner-padding-start);
296
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
297
+ }
298
+
299
+ @supports selector(:dir(rtl)) {
300
+ .item-inner:dir(rtl) {
301
+ padding-right: var(--inner-padding-start);
302
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
303
+ }
304
+ }
273
305
 
274
306
  .item-bottom {
275
307
  margin-left: 0;
276
308
  margin-right: 0;
277
309
  margin-top: 0;
278
310
  margin-bottom: 0;
279
- -webkit-padding-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
280
- padding-inline-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
281
- -webkit-padding-end: var(--inner-padding-end);
282
- padding-inline-end: var(--inner-padding-end);
283
311
  padding-top: 0;
284
312
  padding-bottom: 0;
313
+ /* stylelint-disable */
314
+ padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
315
+ padding-right: calc(var(--inner-padding-end) + var(--ion-safe-area-right, 0px));
316
+ /* stylelint-enable */
285
317
  display: flex;
286
318
  justify-content: space-between;
287
319
  }
320
+ :host-context([dir=rtl]) .item-bottom {
321
+ padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
322
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
323
+ }
324
+
325
+ [dir=rtl] .item-bottom {
326
+ padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
327
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
328
+ }
329
+
330
+ @supports selector(:dir(rtl)) {
331
+ .item-bottom:dir(rtl) {
332
+ padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
333
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
334
+ }
335
+ }
288
336
 
289
337
  .item-detail-icon {
290
338
  /**
@@ -743,7 +791,7 @@ ion-ripple-effect {
743
791
  right: var(--position-offset);
744
792
  }
745
793
  @supports selector(:dir(rtl)) {
746
- :host(.item-fill-outline) .item-highlight:dir(rtl) {
794
+ :host(.item-fill-outline:dir(rtl)) .item-highlight {
747
795
  left: unset;
748
796
  right: unset;
749
797
  right: var(--position-offset);
@@ -955,7 +1003,7 @@ ion-ripple-effect {
955
1003
  }
956
1004
 
957
1005
  @supports selector(:dir(rtl)) {
958
- :host(.item-fill-solid):dir(rtl) {
1006
+ :host(.item-fill-solid:dir(rtl)) {
959
1007
  border-top-left-radius: 4px;
960
1008
  border-top-right-radius: 4px;
961
1009
  border-bottom-right-radius: 0;
@@ -986,7 +1034,7 @@ ion-ripple-effect {
986
1034
  }
987
1035
 
988
1036
  @supports selector(:dir(rtl)) {
989
- :host(.item-fill-solid.item-shape-round):dir(rtl) {
1037
+ :host(.item-fill-solid.item-shape-round:dir(rtl)) {
990
1038
  border-top-left-radius: 16px;
991
1039
  border-top-right-radius: 16px;
992
1040
  border-bottom-right-radius: 0;
@@ -10,5 +10,31 @@ configs().forEach(({ title, screenshot, config }) => {
10
10
  await page.setIonViewport();
11
11
  await expect(page).toHaveScreenshot(screenshot(`item-diff`));
12
12
  });
13
+ /**
14
+ * This behavior needs to be tested for all modes & directions
15
+ * Safe padding should stay on the same side when the direction changes
16
+ */
17
+ test('should have safe area padding', async ({ page }) => {
18
+ await page.setContent(`
19
+ <style>
20
+ :root {
21
+ --ion-safe-area-left: 40px;
22
+ --ion-safe-area-right: 20px;
23
+ }
24
+ </style>
25
+ <ion-list>
26
+ <ion-item>
27
+ <ion-label>Item with helper</ion-label>
28
+ <div slot="helper">Helper</div>
29
+ </ion-item>
30
+
31
+ <ion-item>
32
+ <ion-label> Single line text that should have ellipses when it doesn't all fit in the item</ion-label>
33
+ </ion-item>
34
+ </ion-list>
35
+ `, config);
36
+ const list = page.locator('ion-list');
37
+ await expect(list).toHaveScreenshot(screenshot('item-safe-area'));
38
+ });
13
39
  });
14
40
  });
@@ -61,12 +61,12 @@
61
61
  margin-right: 0;
62
62
  margin-top: 0;
63
63
  margin-bottom: 0;
64
- -webkit-padding-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
65
- padding-inline-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
66
- -webkit-padding-end: var(--padding-end);
67
- padding-inline-end: var(--padding-end);
68
64
  padding-top: var(--padding-top);
69
65
  padding-bottom: var(--padding-bottom);
66
+ /* stylelint-disable */
67
+ padding-right: var(--padding-end);
68
+ padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
69
+ /* stylelint-enable */
70
70
  display: flex;
71
71
  align-items: center;
72
72
  justify-content: space-between;
@@ -78,6 +78,17 @@
78
78
  z-index: 100;
79
79
  box-sizing: border-box;
80
80
  }
81
+ :host-context([dir=rtl]) {
82
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
83
+ padding-left: var(--padding-end);
84
+ }
85
+
86
+ @supports selector(:dir(rtl)) {
87
+ :host(:dir(rtl)) {
88
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
89
+ padding-left: var(--padding-end);
90
+ }
91
+ }
81
92
 
82
93
  :host(.ion-color) {
83
94
  background: var(--ion-color-base);
@@ -94,12 +105,12 @@
94
105
  margin-right: 0;
95
106
  margin-top: 0;
96
107
  margin-bottom: 0;
97
- -webkit-padding-start: var(--inner-padding-start);
98
- padding-inline-start: var(--inner-padding-start);
99
- -webkit-padding-end: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
100
- padding-inline-end: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
101
108
  padding-top: var(--inner-padding-top);
102
109
  padding-bottom: var(--inner-padding-bottom);
110
+ /* stylelint-disable */
111
+ padding-right: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
112
+ padding-left: var(--inner-padding-start);
113
+ /* stylelint-enable */
103
114
  display: flex;
104
115
  flex: 1;
105
116
  flex-direction: inherit;
@@ -109,6 +120,22 @@
109
120
  border: 0;
110
121
  overflow: hidden;
111
122
  }
123
+ :host-context([dir=rtl]) .item-divider-inner {
124
+ padding-right: var(--inner-padding-start);
125
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
126
+ }
127
+
128
+ [dir=rtl] .item-divider-inner {
129
+ padding-right: var(--inner-padding-start);
130
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
131
+ }
132
+
133
+ @supports selector(:dir(rtl)) {
134
+ .item-divider-inner:dir(rtl) {
135
+ padding-right: var(--inner-padding-start);
136
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
137
+ }
138
+ }
112
139
 
113
140
  .item-divider-wrapper {
114
141
  display: flex;
@@ -61,12 +61,12 @@
61
61
  margin-right: 0;
62
62
  margin-top: 0;
63
63
  margin-bottom: 0;
64
- -webkit-padding-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
65
- padding-inline-start: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
66
- -webkit-padding-end: var(--padding-end);
67
- padding-inline-end: var(--padding-end);
68
64
  padding-top: var(--padding-top);
69
65
  padding-bottom: var(--padding-bottom);
66
+ /* stylelint-disable */
67
+ padding-right: var(--padding-end);
68
+ padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
69
+ /* stylelint-enable */
70
70
  display: flex;
71
71
  align-items: center;
72
72
  justify-content: space-between;
@@ -78,6 +78,17 @@
78
78
  z-index: 100;
79
79
  box-sizing: border-box;
80
80
  }
81
+ :host-context([dir=rtl]) {
82
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
83
+ padding-left: var(--padding-end);
84
+ }
85
+
86
+ @supports selector(:dir(rtl)) {
87
+ :host(:dir(rtl)) {
88
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
89
+ padding-left: var(--padding-end);
90
+ }
91
+ }
81
92
 
82
93
  :host(.ion-color) {
83
94
  background: var(--ion-color-base);
@@ -94,12 +105,12 @@
94
105
  margin-right: 0;
95
106
  margin-top: 0;
96
107
  margin-bottom: 0;
97
- -webkit-padding-start: var(--inner-padding-start);
98
- padding-inline-start: var(--inner-padding-start);
99
- -webkit-padding-end: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
100
- padding-inline-end: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
101
108
  padding-top: var(--inner-padding-top);
102
109
  padding-bottom: var(--inner-padding-bottom);
110
+ /* stylelint-disable */
111
+ padding-right: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
112
+ padding-left: var(--inner-padding-start);
113
+ /* stylelint-enable */
103
114
  display: flex;
104
115
  flex: 1;
105
116
  flex-direction: inherit;
@@ -109,6 +120,22 @@
109
120
  border: 0;
110
121
  overflow: hidden;
111
122
  }
123
+ :host-context([dir=rtl]) .item-divider-inner {
124
+ padding-right: var(--inner-padding-start);
125
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
126
+ }
127
+
128
+ [dir=rtl] .item-divider-inner {
129
+ padding-right: var(--inner-padding-start);
130
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
131
+ }
132
+
133
+ @supports selector(:dir(rtl)) {
134
+ .item-divider-inner:dir(rtl) {
135
+ padding-right: var(--inner-padding-start);
136
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
137
+ }
138
+ }
112
139
 
113
140
  .item-divider-wrapper {
114
141
  display: flex;
@@ -34,5 +34,27 @@ configs().forEach(({ title, screenshot, config }) => {
34
34
  const divider = page.locator('ion-item-divider');
35
35
  await expect(divider).toHaveScreenshot(screenshot(`item-divider-icon-start`));
36
36
  });
37
+ /**
38
+ * This behavior needs to be tested for all modes & directions
39
+ * Safe padding should stay on the same side when the direction changes
40
+ */
41
+ test('should have safe area padding', async ({ page }) => {
42
+ await page.setContent(`
43
+ <style>
44
+ :root {
45
+ --ion-safe-area-left: 40px;
46
+ --ion-safe-area-right: 20px;
47
+ }
48
+ </style>
49
+ <ion-list>
50
+ <ion-item-divider>
51
+ <ion-label>Item Divider</ion-label>
52
+ <ion-button slot="end">Button</ion-button>
53
+ </ion-item-divider>
54
+ </ion-list>
55
+ `, config);
56
+ const list = page.locator('ion-list');
57
+ await expect(list).toHaveScreenshot(screenshot('item-divider-safe-area'));
58
+ });
37
59
  });
38
60
  });
@@ -43,16 +43,6 @@
43
43
  font-family: var(--ion-font-family, inherit);
44
44
  }
45
45
 
46
- :host(.in-list.item-options-end:last-child) {
47
- -webkit-padding-end: calc(0.7em + var(--ion-safe-area-right));
48
- padding-inline-end: calc(0.7em + var(--ion-safe-area-right));
49
- }
50
-
51
- :host(.in-list.item-options-start:first-child) {
52
- -webkit-padding-start: calc(0.7em + var(--ion-safe-area-left));
53
- padding-inline-start: calc(0.7em + var(--ion-safe-area-left));
54
- }
55
-
56
46
  :host(.ion-color) {
57
47
  background: var(--ion-color-base);
58
48
  color: var(--ion-color-contrast);
@@ -43,16 +43,6 @@
43
43
  font-family: var(--ion-font-family, inherit);
44
44
  }
45
45
 
46
- :host(.in-list.item-options-end:last-child) {
47
- -webkit-padding-end: calc(0.7em + var(--ion-safe-area-right));
48
- padding-inline-end: calc(0.7em + var(--ion-safe-area-right));
49
- }
50
-
51
- :host(.in-list.item-options-start:first-child) {
52
- -webkit-padding-start: calc(0.7em + var(--ion-safe-area-left));
53
- padding-inline-start: calc(0.7em + var(--ion-safe-area-left));
54
- }
55
-
56
46
  :host(.ion-color) {
57
47
  background: var(--ion-color-base);
58
48
  color: var(--ion-color-contrast);
@@ -83,3 +83,80 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
83
83
  });
84
84
  });
85
85
  });
86
+ /**
87
+ * This behavior needs to be tested in both modes and directions to
88
+ * make sure the safe area padding is applied only to that side
89
+ * regardless of direction
90
+ */
91
+ configs().forEach(({ title, screenshot, config }) => {
92
+ test.describe(title('item-sliding: basic'), () => {
93
+ test.describe('safe area left', () => {
94
+ test('should have padding on the left only', async ({ page }) => {
95
+ await page.setContent(`
96
+ <style>
97
+ :root {
98
+ --ion-safe-area-left: 40px;
99
+ }
100
+ </style>
101
+
102
+ <ion-item-sliding>
103
+ <ion-item-options side="start">
104
+ <ion-item-option color="primary">
105
+ Archive
106
+ </ion-item-option>
107
+ <ion-item-option color="danger">
108
+ Delete
109
+ </ion-item-option>
110
+ </ion-item-options>
111
+
112
+ <ion-item>
113
+ <ion-label>
114
+ Sliding Item
115
+ </ion-label>
116
+ </ion-item>
117
+ </ion-item-sliding>
118
+ `, config);
119
+ const direction = config.direction;
120
+ const item = page.locator('ion-item-sliding');
121
+ const dragByX = direction == 'rtl' ? -150 : 150;
122
+ await dragElementBy(item, page, dragByX);
123
+ await page.waitForChanges();
124
+ await expect(item).toHaveScreenshot(screenshot(`item-sliding-safe-area-left`));
125
+ });
126
+ });
127
+ test.describe('safe area right', () => {
128
+ test('should have padding on the right only', async ({ page }) => {
129
+ await page.setContent(`
130
+ <style>
131
+ :root {
132
+ --ion-safe-area-right: 40px;
133
+ }
134
+ </style>
135
+
136
+ <ion-item-sliding>
137
+ <ion-item>
138
+ <ion-label>
139
+ Sliding Item
140
+ </ion-label>
141
+ </ion-item>
142
+
143
+ <ion-item-options side="end">
144
+ <ion-item-option color="primary">
145
+ Archive
146
+ </ion-item-option>
147
+ <ion-item-option color="danger">
148
+ Delete
149
+ </ion-item-option>
150
+ </ion-item-options>
151
+ </ion-item-sliding>
152
+ `, config);
153
+ const direction = config.direction;
154
+ const item = page.locator('ion-item-sliding');
155
+ const dragByX = direction == 'rtl' ? 150 : -150;
156
+ await dragElementBy(item, page, dragByX);
157
+ await page.waitForChanges();
158
+ await expect(item).toHaveScreenshot(screenshot(`item-sliding-safe-area-right`));
159
+ });
160
+ });
161
+ });
162
+ });
@@ -186,7 +186,7 @@
186
186
  }
187
187
 
188
188
  @supports selector(:dir(rtl)) {
189
- :host(.label-floating):dir(rtl) {
189
+ :host(.label-floating:dir(rtl)) {
190
190
  transform-origin: right top;
191
191
  }
192
192
  }
@@ -130,7 +130,21 @@ ion-list.list-inset {
130
130
  border-radius: 10px;
131
131
  }
132
132
 
133
- .list-ios.list-inset ion-item:last-child {
133
+ /**
134
+ * These selectors ensure the last item in the list
135
+ * has the correct border.
136
+ * We need to consider the following scenarios:
137
+ 1. The only item in a list.
138
+ 2. The last item in a list as long as it is not the only item.
139
+ 3. The item in the last item-sliding in a list.
140
+ * Note that we do not select ion-item:last-of-type
141
+ * because that will cause the borders to disappear on
142
+ * items in an item-sliding when the item is the last
143
+ * element in the item-sliding container.
144
+ */
145
+ .list-ios.list-inset ion-item:only-child,
146
+ .list-ios.list-inset ion-item:not(:only-of-type):last-of-type,
147
+ .list-ios.list-inset ion-item-sliding:last-of-type ion-item {
134
148
  --border-width: 0;
135
149
  --inner-border-width: 0;
136
150
  }
@@ -166,12 +166,50 @@ ion-list.list-inset {
166
166
  border-radius: 2px;
167
167
  }
168
168
 
169
- .list-md.list-inset ion-item:first-child {
169
+ /**
170
+ * These selectors ensure the first item in the list
171
+ * has the correct radius.
172
+ * We need to consider the following scenarios:
173
+ 1. The first item in a list as long as it is not the only item.
174
+ 2. The item in the first item-sliding in a list.
175
+ * Note that we do not select "ion-item-sliding ion-item:first-of-type"
176
+ * because that will cause the borders to disappear on
177
+ * items in an item-sliding when the item is the first
178
+ * element in the item-sliding container.
179
+ */
180
+ .list-md.list-inset ion-item:not(:only-of-type):first-of-type,
181
+ .list-md.list-inset ion-item-sliding:first-of-type ion-item {
170
182
  --border-radius: 2px 2px 0 0;
171
183
  }
172
184
 
173
- .list-md.list-inset ion-item:last-child {
174
- --border-radius: 0 0 2px, 2px;
185
+ /**
186
+ * These selectors ensure the last item in the list
187
+ * has the correct radius and border.
188
+ * We need to consider the following scenarios:
189
+ 1. The last item in a list as long as it is not the only item.
190
+ 2. The item in the last item-sliding in a list.
191
+ * Note that we do not select "ion-item-sliding ion-item:last-of-type"
192
+ * because that will cause the borders to disappear on
193
+ * items in an item-sliding when the item is the last
194
+ * element in the item-sliding container.
195
+ */
196
+ .list-md.list-inset ion-item:not(:only-of-type):last-of-type,
197
+ .list-md.list-inset ion-item-sliding:last-of-type ion-item {
198
+ --border-radius: 0 0 2px 2px;
199
+ --border-width: 0;
200
+ --inner-border-width: 0;
201
+ }
202
+
203
+ /**
204
+ * The only item in a list should have a border radius
205
+ * on all corners.
206
+ * We target :only-child instead of :only-of-type
207
+ * otherwise borders will disappear on items inside of
208
+ * ion-item-sliding because the item will be the only
209
+ * one of its type inside of the ion-item-sliding group.
210
+ */
211
+ .list-md.list-inset ion-item:only-child {
212
+ --border-radius: 2px;
175
213
  --border-width: 0;
176
214
  --inner-border-width: 0;
177
215
  }