@pod-os/elements 0.0.1 → 0.0.2-c322656

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 (483) hide show
  1. package/dist/cjs/{animation-bd89cfc5.js → animation-5840e4df.js} +1 -1
  2. package/dist/cjs/{app-globals-01ad6c72.js → app-globals-8793f3b5.js} +1 -1
  3. package/dist/cjs/{button-active-e6ddc8af.js → button-active-dc62e864.js} +3 -3
  4. package/dist/cjs/{cubic-bezier-24e309bf.js → cubic-bezier-dcb7bfef.js} +0 -0
  5. package/dist/cjs/elements.cjs.js +5 -5
  6. package/dist/cjs/{focus-visible-1583bc8e.js → focus-visible-16c98640.js} +0 -0
  7. package/dist/cjs/{framework-delegate-0a2d58a6.js → framework-delegate-c45292a3.js} +1 -1
  8. package/dist/cjs/{gesture-controller-e824cfb3.js → gesture-controller-fbbe9a65.js} +0 -0
  9. package/dist/cjs/{haptic-415dac5b.js → haptic-09e73337.js} +0 -0
  10. package/dist/cjs/{hardware-back-button-ca468aae.js → hardware-back-button-01027575.js} +0 -0
  11. package/dist/cjs/{helpers-ff618d5e.js → helpers-398ced09.js} +67 -0
  12. package/dist/cjs/{index-6bf2cd3d.js → index-0aae2825.js} +121 -79
  13. package/dist/cjs/{index-427d03fb.js → index-6bbae9b1.js} +0 -0
  14. package/dist/cjs/{index-5663f42c.js → index-b8164b0b.js} +4 -4
  15. package/dist/cjs/{index-5571e89c.js → index-d01d9183.js} +1 -1
  16. package/dist/cjs/{index-b29012b2.js → index-fdf96391.js} +4 -4
  17. package/dist/cjs/{input-shims-23510d35.js → input-shims-e959d9e2.js} +1 -1
  18. package/dist/cjs/ion-action-sheet.cjs.entry.js +13 -13
  19. package/dist/cjs/ion-alert.cjs.entry.js +12 -12
  20. package/dist/cjs/{ion-app_32.cjs.entry.js → ion-app_34.cjs.entry.js} +475 -64
  21. package/dist/cjs/ion-avatar.cjs.entry.js +2 -2
  22. package/dist/cjs/ion-back-button.cjs.entry.js +9 -5
  23. package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
  24. package/dist/cjs/ion-badge.cjs.entry.js +3 -3
  25. package/dist/cjs/ion-buttons.cjs.entry.js +2 -2
  26. package/dist/cjs/ion-card-subtitle.cjs.entry.js +30 -0
  27. package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
  28. package/dist/cjs/ion-chip.cjs.entry.js +3 -3
  29. package/dist/cjs/ion-datetime.cjs.entry.js +6 -6
  30. package/dist/cjs/ion-fab-button.cjs.entry.js +3 -3
  31. package/dist/cjs/ion-fab-list.cjs.entry.js +2 -2
  32. package/dist/cjs/ion-fab.cjs.entry.js +2 -2
  33. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-infinite-scroll-content.cjs.entry.js +3 -3
  35. package/dist/cjs/ion-infinite-scroll.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  37. package/dist/cjs/ion-item-option.cjs.entry.js +3 -3
  38. package/dist/cjs/ion-item-options.cjs.entry.js +3 -3
  39. package/dist/cjs/ion-item-sliding.cjs.entry.js +4 -4
  40. package/dist/cjs/ion-list-header_3.cjs.entry.js +4 -4
  41. package/dist/cjs/ion-loading.cjs.entry.js +8 -8
  42. package/dist/cjs/ion-menu-button.cjs.entry.js +9 -9
  43. package/dist/cjs/ion-menu-toggle.cjs.entry.js +7 -7
  44. package/dist/cjs/ion-menu.cjs.entry.js +117 -13
  45. package/dist/cjs/ion-modal.cjs.entry.js +12 -12
  46. package/dist/cjs/ion-nav-link.cjs.entry.js +1 -1
  47. package/dist/cjs/ion-nav.cjs.entry.js +7 -7
  48. package/dist/cjs/ion-note.cjs.entry.js +3 -3
  49. package/dist/cjs/ion-picker-column.cjs.entry.js +5 -5
  50. package/dist/cjs/ion-picker.cjs.entry.js +7 -7
  51. package/dist/cjs/ion-popover.cjs.entry.js +11 -11
  52. package/dist/cjs/ion-range.cjs.entry.js +6 -6
  53. package/dist/cjs/ion-refresher-content.cjs.entry.js +4 -4
  54. package/dist/cjs/ion-refresher.cjs.entry.js +9 -9
  55. package/dist/cjs/ion-reorder-group.cjs.entry.js +4 -4
  56. package/dist/cjs/ion-reorder.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-route-redirect.cjs.entry.js +1 -1
  58. package/dist/cjs/ion-route.cjs.entry.js +1 -1
  59. package/dist/cjs/ion-router-link.cjs.entry.js +3 -3
  60. package/dist/cjs/ion-router-outlet.cjs.entry.js +7 -7
  61. package/dist/cjs/ion-router.cjs.entry.js +48 -8
  62. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  63. package/dist/cjs/ion-segment-button.cjs.entry.js +4 -4
  64. package/dist/cjs/ion-segment.cjs.entry.js +5 -5
  65. package/dist/cjs/ion-select-option.cjs.entry.js +2 -2
  66. package/dist/cjs/ion-select-popover.cjs.entry.js +6 -6
  67. package/dist/cjs/ion-select.cjs.entry.js +6 -6
  68. package/dist/cjs/ion-skeleton-text.cjs.entry.js +3 -3
  69. package/dist/cjs/ion-slide.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-slides.cjs.entry.js +8 -27
  71. package/dist/cjs/ion-spinner.cjs.entry.js +4 -4
  72. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-tab-bar.cjs.entry.js +3 -3
  74. package/dist/cjs/ion-tab-button.cjs.entry.js +2 -2
  75. package/dist/cjs/ion-tab.cjs.entry.js +3 -3
  76. package/dist/cjs/ion-tabs.cjs.entry.js +1 -1
  77. package/dist/cjs/ion-text.cjs.entry.js +3 -3
  78. package/dist/cjs/ion-textarea.cjs.entry.js +5 -5
  79. package/dist/cjs/ion-thumbnail.cjs.entry.js +2 -2
  80. package/dist/cjs/ion-toast.cjs.entry.js +8 -8
  81. package/dist/cjs/ion-toggle.cjs.entry.js +6 -6
  82. package/dist/cjs/ion-virtual-scroll.cjs.entry.js +2 -2
  83. package/dist/cjs/{ionic-global-167e590d.js → ionic-global-a6599940.js} +1 -1
  84. package/dist/cjs/{ios.transition-2250af96.js → ios.transition-b6fe660c.js} +4 -4
  85. package/dist/cjs/{keyboard-1dcbde6c.js → keyboard-9e8103e4.js} +0 -0
  86. package/dist/cjs/loader.cjs.js +5 -5
  87. package/dist/cjs/{md.transition-e801e09e.js → md.transition-af65cb42.js} +4 -4
  88. package/dist/cjs/{menu-toggle-util-48d3b587.js → menu-toggle-util-e66c2545.js} +1 -1
  89. package/dist/cjs/{overlays-0c3389b6.js → overlays-7d879e64.js} +3 -3
  90. package/dist/cjs/{spinner-configs-559523fd.js → spinner-configs-fb16b986.js} +0 -0
  91. package/dist/cjs/{status-tap-da644888.js → status-tap-869e1b97.js} +2 -2
  92. package/dist/cjs/{swipe-back-a15422cc.js → swipe-back-c4a778df.js} +3 -3
  93. package/dist/cjs/{swiper.bundle-8c897c07.js → swiper.bundle-bcbafede.js} +0 -0
  94. package/dist/cjs/{tap-click-9c4dcea3.js → tap-click-f24cb477.js} +1 -1
  95. package/dist/cjs/{theme-98ccfc24.js → theme-2259d0f5.js} +0 -0
  96. package/dist/collection/apps/pos-app-generic/pos-app-generic.js +21 -0
  97. package/dist/collection/collection-manifest.json +6 -3
  98. package/dist/collection/components/pos-app/pos-app.js +6 -6
  99. package/dist/collection/components/pos-demo-app/pos-demo-app.js +3 -34
  100. package/dist/collection/components/pos-login/pos-login.js +7 -7
  101. package/dist/collection/components/pos-resource/pos-resource.js +6 -3
  102. package/dist/collection/components/pos-reverse-relations/pos-reverse-relations.js +43 -0
  103. package/dist/collection/components/pos-rich-link/pos-rich-link.js +1 -1
  104. package/dist/collection/components/pos-router/pos-router.js +38 -0
  105. package/dist/collection/store/session.js +2 -2
  106. package/dist/collection/test/mockPodOS.js +15 -1
  107. package/dist/custom-elements/index.d.ts +18 -0
  108. package/dist/custom-elements/index.js +879 -242
  109. package/dist/elements/elements.css +1 -1
  110. package/dist/elements/elements.esm.js +1 -1
  111. package/dist/elements/{p-252ee244.entry.js → p-025c9a9b.entry.js} +1 -1
  112. package/dist/elements/p-039fd555.js +1 -0
  113. package/dist/elements/{p-f2660943.js → p-03bda390.js} +0 -0
  114. package/dist/elements/{p-4ea63d49.entry.js → p-03cde843.entry.js} +1 -1
  115. package/dist/elements/p-0452fb27.entry.js +1 -0
  116. package/dist/elements/{p-2bb4eed0.entry.js → p-0931b188.entry.js} +1 -1
  117. package/dist/elements/p-0addb25c.entry.js +1 -0
  118. package/dist/elements/p-10e4ca40.entry.js +1 -0
  119. package/dist/elements/p-12094a99.entry.js +1 -0
  120. package/dist/elements/{p-22c3fe84.js → p-16427279.js} +1 -1
  121. package/dist/elements/{p-35ae10a1.entry.js → p-17758df3.entry.js} +1 -1
  122. package/dist/elements/p-1aa0e849.js +1 -0
  123. package/dist/elements/{p-1672bb59.js → p-1bb1a7ba.js} +1 -1
  124. package/dist/elements/{p-c563b4de.js → p-1d4a2c61.js} +0 -0
  125. package/dist/elements/p-1d8e7db1.entry.js +1 -0
  126. package/dist/elements/{p-073c4b46.entry.js → p-1f6a9d65.entry.js} +1 -1
  127. package/dist/elements/{p-c9c31823.entry.js → p-2145cf89.entry.js} +1 -1
  128. package/dist/elements/{p-d3820644.entry.js → p-22fc3a24.entry.js} +1 -1
  129. package/dist/elements/p-2c2ae808.js +1 -0
  130. package/dist/elements/p-30ceacb9.entry.js +1 -0
  131. package/dist/elements/{p-7dbfc316.js → p-312e6979.js} +0 -0
  132. package/dist/elements/{p-8f72be08.js → p-37de7110.js} +0 -0
  133. package/dist/elements/{p-5dcf40ab.entry.js → p-387aff19.entry.js} +1 -1
  134. package/dist/elements/{p-21a76883.js → p-38bde1d3.js} +1 -1
  135. package/dist/elements/{p-10a1d53e.entry.js → p-3a26e7e5.entry.js} +1 -1
  136. package/dist/elements/{p-b41e0ead.entry.js → p-3e6db2fa.entry.js} +1 -1
  137. package/dist/elements/p-46221508.entry.js +1 -0
  138. package/dist/elements/{p-3bf3b9ee.entry.js → p-4b8b50f2.entry.js} +1 -1
  139. package/dist/elements/{p-b85f2273.entry.js → p-51c7cb3f.entry.js} +1 -1
  140. package/dist/elements/{p-44da9fdb.entry.js → p-5628f80d.entry.js} +1 -1
  141. package/dist/elements/{p-52b26eb1.entry.js → p-57f7c0c2.entry.js} +1 -1
  142. package/dist/elements/{p-37fb0153.entry.js → p-58625104.entry.js} +1 -1
  143. package/dist/elements/p-66bbe62d.entry.js +1 -0
  144. package/dist/elements/{p-7748825d.entry.js → p-671b4546.entry.js} +1 -1
  145. package/dist/elements/p-675e436c.js +1 -0
  146. package/dist/elements/{p-adaf489e.entry.js → p-6e905d35.entry.js} +1 -1
  147. package/dist/elements/p-7003c175.entry.js +1 -0
  148. package/dist/elements/p-7010f947.entry.js +1 -0
  149. package/dist/elements/p-70f5d1c1.entry.js +1 -0
  150. package/dist/elements/p-735719e4.js +1 -0
  151. package/dist/elements/{p-9ab5469e.entry.js → p-78cd25d1.entry.js} +1 -1
  152. package/dist/elements/{p-762052a8.entry.js → p-80adc18b.entry.js} +1 -1
  153. package/dist/elements/{p-58fde612.entry.js → p-8544ef1b.entry.js} +1 -1
  154. package/dist/elements/p-854dbdf1.js +1 -0
  155. package/dist/elements/{p-6428a29b.entry.js → p-856e2a7d.entry.js} +1 -1
  156. package/dist/elements/{p-8fc9298a.js → p-874c2b44.js} +0 -0
  157. package/dist/elements/{p-6c8effa6.entry.js → p-8aaf51be.entry.js} +1 -1
  158. package/dist/elements/{p-cf929f00.entry.js → p-8b372444.entry.js} +1 -1
  159. package/dist/elements/{p-c2396e45.js → p-8d1d6062.js} +1 -1
  160. package/dist/elements/{p-6d0e7670.entry.js → p-8d8e018a.entry.js} +1 -1
  161. package/dist/elements/{p-894597a1.entry.js → p-90ab8eff.entry.js} +1 -1
  162. package/dist/elements/{p-2e4e8117.js → p-91fe653f.js} +0 -0
  163. package/dist/elements/p-92a0735b.js +1 -0
  164. package/dist/elements/{p-f5849699.js → p-98c79eda.js} +1 -1
  165. package/dist/elements/{p-c6685d24.entry.js → p-99837f0d.entry.js} +1 -1
  166. package/dist/elements/{p-0bbdf7ee.entry.js → p-9a05c749.entry.js} +1 -1
  167. package/dist/elements/{p-c358ebf9.entry.js → p-9b2ff01b.entry.js} +1 -1
  168. package/dist/elements/p-9b903903.js +1 -0
  169. package/dist/elements/{p-677eed6e.entry.js → p-a08b2157.entry.js} +1 -1
  170. package/dist/elements/{p-627c2a27.entry.js → p-a0ee39e8.entry.js} +1 -1
  171. package/dist/elements/{p-c46ee782.entry.js → p-a5b00718.entry.js} +1 -1
  172. package/dist/elements/p-a712c2f6.js +2 -0
  173. package/dist/elements/p-a9dafdf2.entry.js +1 -0
  174. package/dist/elements/{p-aef0bba0.js → p-aab0f63c.js} +0 -0
  175. package/dist/elements/{p-670281d8.entry.js → p-b04936a5.entry.js} +1 -1
  176. package/dist/elements/{p-69104d78.entry.js → p-b4ab884c.entry.js} +1 -1
  177. package/dist/elements/{p-559e271a.entry.js → p-b7cd6fef.entry.js} +1 -1
  178. package/dist/elements/p-b84ab0eb.js +1 -0
  179. package/dist/elements/{p-89d2245e.entry.js → p-bcc3c37c.entry.js} +1 -1
  180. package/dist/elements/p-bf5cd642.entry.js +1 -0
  181. package/dist/elements/{p-111520a0.js → p-c1e7fbfb.js} +0 -0
  182. package/dist/elements/p-c3e16816.entry.js +1 -0
  183. package/dist/elements/p-c67ec320.js +1 -0
  184. package/dist/elements/{p-3d2c1009.entry.js → p-c6dbdd06.entry.js} +1 -1
  185. package/dist/elements/{p-73a89fc4.entry.js → p-c7feb66f.entry.js} +1 -1
  186. package/dist/elements/{p-258f83d6.entry.js → p-c8663562.entry.js} +1 -1
  187. package/dist/elements/{p-0773b39d.entry.js → p-c94f01cf.entry.js} +1 -1
  188. package/dist/elements/{p-051e7d1c.entry.js → p-c96b5885.entry.js} +1 -1
  189. package/dist/elements/p-ca395368.entry.js +1 -0
  190. package/dist/elements/{p-417a8dd6.js → p-ca69d6c9.js} +0 -0
  191. package/dist/elements/{p-8f9f5815.entry.js → p-cf79afd2.entry.js} +1 -1
  192. package/dist/elements/{p-7840618d.js → p-cfc0e54d.js} +0 -0
  193. package/dist/elements/{p-20488e32.entry.js → p-d4ac974f.entry.js} +1 -1
  194. package/dist/elements/{p-3d052ec7.entry.js → p-d6012b74.entry.js} +1 -1
  195. package/dist/elements/{p-b5c94073.entry.js → p-d82c8102.entry.js} +1 -1
  196. package/dist/elements/{p-996d272b.entry.js → p-d9570980.entry.js} +1 -1
  197. package/dist/elements/{p-e4cd9daa.entry.js → p-da1d4d15.entry.js} +1 -1
  198. package/dist/elements/p-e8b8da88.entry.js +1 -0
  199. package/dist/elements/{p-7735ce2a.js → p-ec47a369.js} +1 -1
  200. package/dist/elements/{p-39e69ceb.entry.js → p-f35bc63b.entry.js} +1 -1
  201. package/dist/elements/{p-d7bc38e3.entry.js → p-f4120adc.entry.js} +1 -1
  202. package/dist/elements/p-f5b9742c.js +1 -0
  203. package/dist/elements/{p-5e6fdd4f.entry.js → p-f91f59f9.entry.js} +1 -1
  204. package/dist/esm/{animation-23699cc5.js → animation-cb124ae5.js} +1 -1
  205. package/dist/esm/{app-globals-b3330c28.js → app-globals-6c3cceb6.js} +1 -1
  206. package/dist/esm/{button-active-8918719c.js → button-active-1cd0f291.js} +3 -3
  207. package/dist/esm/{cubic-bezier-ed243a9b.js → cubic-bezier-108b8579.js} +0 -0
  208. package/dist/esm/elements.js +5 -5
  209. package/dist/esm/{focus-visible-abf04ce3.js → focus-visible-edb28f19.js} +0 -0
  210. package/dist/esm/{framework-delegate-0a271c52.js → framework-delegate-ef487ffc.js} +1 -1
  211. package/dist/esm/{gesture-controller-604336b7.js → gesture-controller-8f35af24.js} +0 -0
  212. package/dist/esm/{haptic-67928174.js → haptic-c424e670.js} +0 -0
  213. package/dist/esm/{hardware-back-button-508e48cf.js → hardware-back-button-bb4c578a.js} +0 -0
  214. package/dist/esm/{helpers-dffac6f7.js → helpers-af16fc18.js} +67 -1
  215. package/dist/esm/{index-82f710ea.js → index-082b47ce.js} +121 -79
  216. package/dist/esm/{index-f910ce2c.js → index-178a7a06.js} +4 -4
  217. package/dist/esm/{index-51ec9e66.js → index-3a1bd803.js} +2 -2
  218. package/dist/esm/{index-cc97b114.js → index-8d682224.js} +0 -0
  219. package/dist/esm/{index-db7c08b4.js → index-edb45c26.js} +4 -4
  220. package/dist/esm/{input-shims-9c0b3bc9.js → input-shims-dbfbbeff.js} +1 -1
  221. package/dist/esm/ion-action-sheet.entry.js +13 -13
  222. package/dist/esm/ion-alert.entry.js +12 -12
  223. package/dist/esm/{ion-app_32.entry.js → ion-app_34.entry.js} +471 -62
  224. package/dist/esm/ion-avatar.entry.js +2 -2
  225. package/dist/esm/ion-back-button.entry.js +9 -5
  226. package/dist/esm/ion-backdrop.entry.js +3 -3
  227. package/dist/esm/ion-badge.entry.js +3 -3
  228. package/dist/esm/ion-buttons.entry.js +2 -2
  229. package/dist/esm/ion-card-subtitle.entry.js +26 -0
  230. package/dist/esm/ion-checkbox.entry.js +4 -4
  231. package/dist/esm/ion-chip.entry.js +3 -3
  232. package/dist/esm/ion-datetime.entry.js +6 -6
  233. package/dist/esm/ion-fab-button.entry.js +3 -3
  234. package/dist/esm/ion-fab-list.entry.js +2 -2
  235. package/dist/esm/ion-fab.entry.js +2 -2
  236. package/dist/esm/ion-img.entry.js +2 -2
  237. package/dist/esm/ion-infinite-scroll-content.entry.js +3 -3
  238. package/dist/esm/ion-infinite-scroll.entry.js +2 -2
  239. package/dist/esm/ion-input.entry.js +5 -5
  240. package/dist/esm/ion-item-option.entry.js +3 -3
  241. package/dist/esm/ion-item-options.entry.js +3 -3
  242. package/dist/esm/ion-item-sliding.entry.js +4 -4
  243. package/dist/esm/ion-list-header_3.entry.js +4 -4
  244. package/dist/esm/ion-loading.entry.js +8 -8
  245. package/dist/esm/ion-menu-button.entry.js +9 -9
  246. package/dist/esm/ion-menu-toggle.entry.js +7 -7
  247. package/dist/esm/ion-menu.entry.js +117 -13
  248. package/dist/esm/ion-modal.entry.js +12 -12
  249. package/dist/esm/ion-nav-link.entry.js +1 -1
  250. package/dist/esm/ion-nav.entry.js +7 -7
  251. package/dist/esm/ion-note.entry.js +3 -3
  252. package/dist/esm/ion-picker-column.entry.js +5 -5
  253. package/dist/esm/ion-picker.entry.js +7 -7
  254. package/dist/esm/ion-popover.entry.js +11 -11
  255. package/dist/esm/ion-range.entry.js +6 -6
  256. package/dist/esm/ion-refresher-content.entry.js +4 -4
  257. package/dist/esm/ion-refresher.entry.js +9 -9
  258. package/dist/esm/ion-reorder-group.entry.js +4 -4
  259. package/dist/esm/ion-reorder.entry.js +2 -2
  260. package/dist/esm/ion-route-redirect.entry.js +1 -1
  261. package/dist/esm/ion-route.entry.js +1 -1
  262. package/dist/esm/ion-router-link.entry.js +3 -3
  263. package/dist/esm/ion-router-outlet.entry.js +7 -7
  264. package/dist/esm/ion-router.entry.js +48 -8
  265. package/dist/esm/ion-searchbar.entry.js +4 -4
  266. package/dist/esm/ion-segment-button.entry.js +4 -4
  267. package/dist/esm/ion-segment.entry.js +5 -5
  268. package/dist/esm/ion-select-option.entry.js +2 -2
  269. package/dist/esm/ion-select-popover.entry.js +6 -6
  270. package/dist/esm/ion-select.entry.js +6 -6
  271. package/dist/esm/ion-skeleton-text.entry.js +3 -3
  272. package/dist/esm/ion-slide.entry.js +2 -2
  273. package/dist/esm/ion-slides.entry.js +8 -27
  274. package/dist/esm/ion-spinner.entry.js +4 -4
  275. package/dist/esm/ion-split-pane.entry.js +2 -2
  276. package/dist/esm/ion-tab-bar.entry.js +3 -3
  277. package/dist/esm/ion-tab-button.entry.js +2 -2
  278. package/dist/esm/ion-tab.entry.js +3 -3
  279. package/dist/esm/ion-tabs.entry.js +1 -1
  280. package/dist/esm/ion-text.entry.js +3 -3
  281. package/dist/esm/ion-textarea.entry.js +5 -5
  282. package/dist/esm/ion-thumbnail.entry.js +2 -2
  283. package/dist/esm/ion-toast.entry.js +8 -8
  284. package/dist/esm/ion-toggle.entry.js +6 -6
  285. package/dist/esm/ion-virtual-scroll.entry.js +2 -2
  286. package/dist/esm/{ionic-global-fadc16f8.js → ionic-global-b8056dd2.js} +1 -1
  287. package/dist/esm/{ios.transition-dd5b9636.js → ios.transition-ab339f2c.js} +4 -4
  288. package/dist/esm/{keyboard-06906eac.js → keyboard-e6abcb80.js} +0 -0
  289. package/dist/esm/loader.js +5 -5
  290. package/dist/esm/{md.transition-6a0a5df0.js → md.transition-1ed7c8eb.js} +4 -4
  291. package/dist/esm/{menu-toggle-util-0e5e4140.js → menu-toggle-util-d2db3453.js} +1 -1
  292. package/dist/esm/{overlays-6a09f1ef.js → overlays-423fcd0a.js} +3 -3
  293. package/dist/esm/polyfills/core-js.js +0 -0
  294. package/dist/esm/polyfills/css-shim.js +1 -1
  295. package/dist/esm/polyfills/dom.js +0 -0
  296. package/dist/esm/polyfills/es5-html-element.js +0 -0
  297. package/dist/esm/polyfills/index.js +0 -0
  298. package/dist/esm/polyfills/system.js +0 -0
  299. package/dist/esm/{spinner-configs-9536fae2.js → spinner-configs-aaf2a1a9.js} +0 -0
  300. package/dist/esm/{status-tap-54b1c888.js → status-tap-3e0a5551.js} +2 -2
  301. package/dist/esm/{swipe-back-5459ab3a.js → swipe-back-7e655479.js} +3 -3
  302. package/dist/esm/{swiper.bundle-b6a959de.js → swiper.bundle-2dd16264.js} +0 -0
  303. package/dist/esm/{tap-click-e0215d5a.js → tap-click-faa3d392.js} +1 -1
  304. package/dist/esm/{theme-12606872.js → theme-d21826a7.js} +0 -0
  305. package/dist/types/apps/pos-app-generic/pos-app-generic.d.ts +3 -0
  306. package/dist/types/components/pos-app/pos-app.d.ts +2 -2
  307. package/dist/types/components/pos-demo-app/pos-demo-app.d.ts +0 -2
  308. package/dist/types/components/pos-login/pos-login.d.ts +1 -1
  309. package/dist/types/components/pos-resource/pos-resource.d.ts +1 -1
  310. package/dist/types/components/pos-reverse-relations/pos-reverse-relations.d.ts +8 -0
  311. package/dist/types/components/pos-rich-link/pos-rich-link.d.ts +1 -1
  312. package/dist/types/components/pos-router/pos-router.d.ts +8 -0
  313. package/dist/types/components.d.ts +79 -7
  314. package/dist/types/stencil-public-runtime.d.ts +6 -4
  315. package/dist/types/store/session.d.ts +3 -3
  316. package/dist/types/test/mockPodOS.d.ts +1 -0
  317. package/loader/index.d.ts +0 -1
  318. package/package.json +19 -10
  319. package/readme.md +9 -64
  320. package/dist/elements/p-0ce985f2.entry.js +0 -1
  321. package/dist/elements/p-2ae62ee2.entry.js +0 -1
  322. package/dist/elements/p-3783db21.entry.js +0 -1
  323. package/dist/elements/p-3eb3ceda.js +0 -1
  324. package/dist/elements/p-4261cf00.entry.js +0 -1
  325. package/dist/elements/p-4e81f5a3.js +0 -1
  326. package/dist/elements/p-4f428fec.js +0 -1
  327. package/dist/elements/p-514a156e.entry.js +0 -1
  328. package/dist/elements/p-64fbf059.entry.js +0 -1
  329. package/dist/elements/p-6f125c33.entry.js +0 -1
  330. package/dist/elements/p-7e4727c5.entry.js +0 -1
  331. package/dist/elements/p-825cd4a4.js +0 -1
  332. package/dist/elements/p-8e7bb098.js +0 -1
  333. package/dist/elements/p-94ccf933.js +0 -1
  334. package/dist/elements/p-974e28d1.entry.js +0 -1
  335. package/dist/elements/p-a856c740.entry.js +0 -1
  336. package/dist/elements/p-aae3bbd8.js +0 -1
  337. package/dist/elements/p-bc8ab428.entry.js +0 -1
  338. package/dist/elements/p-cb3dd05c.entry.js +0 -1
  339. package/dist/elements/p-cd151f5b.js +0 -1
  340. package/dist/elements/p-cd981ec5.js +0 -1
  341. package/dist/elements/p-d9cf0163.js +0 -1
  342. package/dist/elements/p-db2e69b4.js +0 -1
  343. package/dist/elements/p-deec7dde.entry.js +0 -1
  344. package/dist/elements/p-e110bbef.entry.js +0 -1
  345. package/dist/elements/p-f8e7eda0.js +0 -1
  346. package/dist/elements/p-fba364fd.entry.js +0 -1
  347. package/dist/node_modules/@ionic/core/dist/collection/components/action-sheet/action-sheet.ios.css +0 -371
  348. package/dist/node_modules/@ionic/core/dist/collection/components/action-sheet/action-sheet.md.css +0 -287
  349. package/dist/node_modules/@ionic/core/dist/collection/components/alert/alert.ios.css +0 -494
  350. package/dist/node_modules/@ionic/core/dist/collection/components/alert/alert.md.css +0 -502
  351. package/dist/node_modules/@ionic/core/dist/collection/components/app/app.css +0 -17
  352. package/dist/node_modules/@ionic/core/dist/collection/components/avatar/avatar.ios.css +0 -22
  353. package/dist/node_modules/@ionic/core/dist/collection/components/avatar/avatar.md.css +0 -22
  354. package/dist/node_modules/@ionic/core/dist/collection/components/back-button/back-button.ios.css +0 -281
  355. package/dist/node_modules/@ionic/core/dist/collection/components/back-button/back-button.md.css +0 -309
  356. package/dist/node_modules/@ionic/core/dist/collection/components/backdrop/backdrop.ios.css +0 -26
  357. package/dist/node_modules/@ionic/core/dist/collection/components/backdrop/backdrop.md.css +0 -26
  358. package/dist/node_modules/@ionic/core/dist/collection/components/badge/badge.ios.css +0 -58
  359. package/dist/node_modules/@ionic/core/dist/collection/components/badge/badge.md.css +0 -62
  360. package/dist/node_modules/@ionic/core/dist/collection/components/button/button.ios.css +0 -439
  361. package/dist/node_modules/@ionic/core/dist/collection/components/button/button.md.css +0 -428
  362. package/dist/node_modules/@ionic/core/dist/collection/components/buttons/buttons.ios.css +0 -128
  363. package/dist/node_modules/@ionic/core/dist/collection/components/buttons/buttons.md.css +0 -151
  364. package/dist/node_modules/@ionic/core/dist/collection/components/card/card.ios.css +0 -101
  365. package/dist/node_modules/@ionic/core/dist/collection/components/card/card.md.css +0 -95
  366. package/dist/node_modules/@ionic/core/dist/collection/components/card-content/card-content.ios.css +0 -61
  367. package/dist/node_modules/@ionic/core/dist/collection/components/card-content/card-content.md.css +0 -63
  368. package/dist/node_modules/@ionic/core/dist/collection/components/card-header/card-header.ios.css +0 -37
  369. package/dist/node_modules/@ionic/core/dist/collection/components/card-header/card-header.md.css +0 -35
  370. package/dist/node_modules/@ionic/core/dist/collection/components/card-subtitle/card-subtitle.ios.css +0 -28
  371. package/dist/node_modules/@ionic/core/dist/collection/components/card-subtitle/card-subtitle.md.css +0 -26
  372. package/dist/node_modules/@ionic/core/dist/collection/components/card-title/card-title.ios.css +0 -27
  373. package/dist/node_modules/@ionic/core/dist/collection/components/card-title/card-title.md.css +0 -27
  374. package/dist/node_modules/@ionic/core/dist/collection/components/checkbox/checkbox.ios.css +0 -169
  375. package/dist/node_modules/@ionic/core/dist/collection/components/checkbox/checkbox.md.css +0 -172
  376. package/dist/node_modules/@ionic/core/dist/collection/components/chip/chip.ios.css +0 -200
  377. package/dist/node_modules/@ionic/core/dist/collection/components/chip/chip.md.css +0 -200
  378. package/dist/node_modules/@ionic/core/dist/collection/components/col/col.css +0 -108
  379. package/dist/node_modules/@ionic/core/dist/collection/components/content/content.css +0 -184
  380. package/dist/node_modules/@ionic/core/dist/collection/components/datetime/datetime.ios.css +0 -106
  381. package/dist/node_modules/@ionic/core/dist/collection/components/datetime/datetime.md.css +0 -106
  382. package/dist/node_modules/@ionic/core/dist/collection/components/fab/fab.css +0 -61
  383. package/dist/node_modules/@ionic/core/dist/collection/components/fab-button/fab-button.ios.css +0 -338
  384. package/dist/node_modules/@ionic/core/dist/collection/components/fab-button/fab-button.md.css +0 -307
  385. package/dist/node_modules/@ionic/core/dist/collection/components/fab-list/fab-list.css +0 -116
  386. package/dist/node_modules/@ionic/core/dist/collection/components/footer/footer.ios.css +0 -33
  387. package/dist/node_modules/@ionic/core/dist/collection/components/footer/footer.md.css +0 -37
  388. package/dist/node_modules/@ionic/core/dist/collection/components/grid/grid.css +0 -151
  389. package/dist/node_modules/@ionic/core/dist/collection/components/header/header.ios.css +0 -92
  390. package/dist/node_modules/@ionic/core/dist/collection/components/header/header.md.css +0 -40
  391. package/dist/node_modules/@ionic/core/dist/collection/components/img/img.css +0 -12
  392. package/dist/node_modules/@ionic/core/dist/collection/components/infinite-scroll/infinite-scroll.css +0 -8
  393. package/dist/node_modules/@ionic/core/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -54
  394. package/dist/node_modules/@ionic/core/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -54
  395. package/dist/node_modules/@ionic/core/dist/collection/components/input/input.ios.css +0 -185
  396. package/dist/node_modules/@ionic/core/dist/collection/components/input/input.md.css +0 -185
  397. package/dist/node_modules/@ionic/core/dist/collection/components/item/item.ios.css +0 -580
  398. package/dist/node_modules/@ionic/core/dist/collection/components/item/item.md.css +0 -654
  399. package/dist/node_modules/@ionic/core/dist/collection/components/item-divider/item-divider.ios.css +0 -204
  400. package/dist/node_modules/@ionic/core/dist/collection/components/item-divider/item-divider.md.css +0 -297
  401. package/dist/node_modules/@ionic/core/dist/collection/components/item-group/item-group.ios.css +0 -3
  402. package/dist/node_modules/@ionic/core/dist/collection/components/item-group/item-group.md.css +0 -3
  403. package/dist/node_modules/@ionic/core/dist/collection/components/item-option/item-option.ios.css +0 -186
  404. package/dist/node_modules/@ionic/core/dist/collection/components/item-option/item-option.md.css +0 -180
  405. package/dist/node_modules/@ionic/core/dist/collection/components/item-options/item-options.ios.css +0 -88
  406. package/dist/node_modules/@ionic/core/dist/collection/components/item-options/item-options.md.css +0 -85
  407. package/dist/node_modules/@ionic/core/dist/collection/components/item-sliding/item-sliding.css +0 -42
  408. package/dist/node_modules/@ionic/core/dist/collection/components/label/label.ios.css +0 -156
  409. package/dist/node_modules/@ionic/core/dist/collection/components/label/label.md.css +0 -172
  410. package/dist/node_modules/@ionic/core/dist/collection/components/list/list.ios.css +0 -91
  411. package/dist/node_modules/@ionic/core/dist/collection/components/list/list.md.css +0 -114
  412. package/dist/node_modules/@ionic/core/dist/collection/components/list-header/list-header.ios.css +0 -118
  413. package/dist/node_modules/@ionic/core/dist/collection/components/list-header/list-header.md.css +0 -94
  414. package/dist/node_modules/@ionic/core/dist/collection/components/loading/loading.ios.css +0 -114
  415. package/dist/node_modules/@ionic/core/dist/collection/components/loading/loading.md.css +0 -105
  416. package/dist/node_modules/@ionic/core/dist/collection/components/menu/menu.ios.css +0 -131
  417. package/dist/node_modules/@ionic/core/dist/collection/components/menu/menu.md.css +0 -127
  418. package/dist/node_modules/@ionic/core/dist/collection/components/menu-button/menu-button.ios.css +0 -175
  419. package/dist/node_modules/@ionic/core/dist/collection/components/menu-button/menu-button.md.css +0 -178
  420. package/dist/node_modules/@ionic/core/dist/collection/components/menu-toggle/menu-toggle.css +0 -3
  421. package/dist/node_modules/@ionic/core/dist/collection/components/modal/modal.ios.css +0 -159
  422. package/dist/node_modules/@ionic/core/dist/collection/components/modal/modal.md.css +0 -105
  423. package/dist/node_modules/@ionic/core/dist/collection/components/nav/nav.css +0 -10
  424. package/dist/node_modules/@ionic/core/dist/collection/components/note/note.ios.css +0 -16
  425. package/dist/node_modules/@ionic/core/dist/collection/components/note/note.md.css +0 -17
  426. package/dist/node_modules/@ionic/core/dist/collection/components/picker/picker.ios.css +0 -217
  427. package/dist/node_modules/@ionic/core/dist/collection/components/picker/picker.md.css +0 -204
  428. package/dist/node_modules/@ionic/core/dist/collection/components/picker-column/picker-column.ios.css +0 -122
  429. package/dist/node_modules/@ionic/core/dist/collection/components/picker-column/picker-column.md.css +0 -123
  430. package/dist/node_modules/@ionic/core/dist/collection/components/popover/popover.ios.css +0 -118
  431. package/dist/node_modules/@ionic/core/dist/collection/components/popover/popover.md.css +0 -83
  432. package/dist/node_modules/@ionic/core/dist/collection/components/progress-bar/progress-bar.ios.css +0 -206
  433. package/dist/node_modules/@ionic/core/dist/collection/components/progress-bar/progress-bar.md.css +0 -206
  434. package/dist/node_modules/@ionic/core/dist/collection/components/radio/radio.ios.css +0 -177
  435. package/dist/node_modules/@ionic/core/dist/collection/components/radio/radio.md.css +0 -178
  436. package/dist/node_modules/@ionic/core/dist/collection/components/range/range.ios.css +0 -275
  437. package/dist/node_modules/@ionic/core/dist/collection/components/range/range.md.css +0 -320
  438. package/dist/node_modules/@ionic/core/dist/collection/components/refresher/refresher.ios.css +0 -177
  439. package/dist/node_modules/@ionic/core/dist/collection/components/refresher/refresher.md.css +0 -210
  440. package/dist/node_modules/@ionic/core/dist/collection/components/reorder/reorder.ios.css +0 -15
  441. package/dist/node_modules/@ionic/core/dist/collection/components/reorder/reorder.md.css +0 -15
  442. package/dist/node_modules/@ionic/core/dist/collection/components/reorder-group/reorder-group.css +0 -33
  443. package/dist/node_modules/@ionic/core/dist/collection/components/ripple-effect/ripple-effect.css +0 -58
  444. package/dist/node_modules/@ionic/core/dist/collection/components/router-link/router-link.css +0 -29
  445. package/dist/node_modules/@ionic/core/dist/collection/components/router-outlet/route-outlet.css +0 -10
  446. package/dist/node_modules/@ionic/core/dist/collection/components/row/row.css +0 -4
  447. package/dist/node_modules/@ionic/core/dist/collection/components/searchbar/searchbar.ios.css +0 -348
  448. package/dist/node_modules/@ionic/core/dist/collection/components/searchbar/searchbar.md.css +0 -279
  449. package/dist/node_modules/@ionic/core/dist/collection/components/segment/segment.ios.css +0 -65
  450. package/dist/node_modules/@ionic/core/dist/collection/components/segment/segment.md.css +0 -36
  451. package/dist/node_modules/@ionic/core/dist/collection/components/segment-button/segment-button.ios.css +0 -446
  452. package/dist/node_modules/@ionic/core/dist/collection/components/segment-button/segment-button.md.css +0 -424
  453. package/dist/node_modules/@ionic/core/dist/collection/components/select/select.ios.css +0 -145
  454. package/dist/node_modules/@ionic/core/dist/collection/components/select/select.md.css +0 -149
  455. package/dist/node_modules/@ionic/core/dist/collection/components/select-option/select-option.css +0 -3
  456. package/dist/node_modules/@ionic/core/dist/collection/components/select-popover/select-popover.css +0 -14
  457. package/dist/node_modules/@ionic/core/dist/collection/components/skeleton-text/skeleton-text.css +0 -53
  458. package/dist/node_modules/@ionic/core/dist/collection/components/slide/slide.css +0 -31
  459. package/dist/node_modules/@ionic/core/dist/collection/components/slides/slides.ios.css +0 -764
  460. package/dist/node_modules/@ionic/core/dist/collection/components/slides/slides.md.css +0 -764
  461. package/dist/node_modules/@ionic/core/dist/collection/components/spinner/spinner.css +0 -154
  462. package/dist/node_modules/@ionic/core/dist/collection/components/split-pane/split-pane.ios.css +0 -108
  463. package/dist/node_modules/@ionic/core/dist/collection/components/split-pane/split-pane.md.css +0 -108
  464. package/dist/node_modules/@ionic/core/dist/collection/components/tab/tab.css +0 -4
  465. package/dist/node_modules/@ionic/core/dist/collection/components/tab-bar/tab-bar.ios.css +0 -97
  466. package/dist/node_modules/@ionic/core/dist/collection/components/tab-bar/tab-bar.md.css +0 -82
  467. package/dist/node_modules/@ionic/core/dist/collection/components/tab-button/tab-button.ios.css +0 -308
  468. package/dist/node_modules/@ionic/core/dist/collection/components/tab-button/tab-button.md.css +0 -331
  469. package/dist/node_modules/@ionic/core/dist/collection/components/tabs/tabs.css +0 -19
  470. package/dist/node_modules/@ionic/core/dist/collection/components/text/text.css +0 -3
  471. package/dist/node_modules/@ionic/core/dist/collection/components/textarea/textarea.ios.css +0 -158
  472. package/dist/node_modules/@ionic/core/dist/collection/components/textarea/textarea.md.css +0 -162
  473. package/dist/node_modules/@ionic/core/dist/collection/components/thumbnail/thumbnail.css +0 -21
  474. package/dist/node_modules/@ionic/core/dist/collection/components/title/title.ios.css +0 -122
  475. package/dist/node_modules/@ionic/core/dist/collection/components/title/title.md.css +0 -55
  476. package/dist/node_modules/@ionic/core/dist/collection/components/toast/toast.ios.css +0 -250
  477. package/dist/node_modules/@ionic/core/dist/collection/components/toast/toast.md.css +0 -283
  478. package/dist/node_modules/@ionic/core/dist/collection/components/toggle/toggle.ios.css +0 -237
  479. package/dist/node_modules/@ionic/core/dist/collection/components/toggle/toggle.md.css +0 -234
  480. package/dist/node_modules/@ionic/core/dist/collection/components/toolbar/toolbar.ios.css +0 -174
  481. package/dist/node_modules/@ionic/core/dist/collection/components/toolbar/toolbar.md.css +0 -167
  482. package/dist/node_modules/@ionic/core/dist/collection/components/virtual-scroll/virtual-scroll.css +0 -21
  483. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +0 -101
@@ -1,11 +1,11 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-82f710ea.js';
2
- import { c as config, g as getIonMode } from './ionic-global-fadc16f8.js';
3
- import { g as getTimeGivenProgression } from './cubic-bezier-ed243a9b.js';
4
- import { G as GESTURE_CONTROLLER } from './gesture-controller-604336b7.js';
5
- import { l as isEndSide, m as assert, c as clamp } from './helpers-dffac6f7.js';
6
- import { m as menuController } from './index-f910ce2c.js';
7
- import './hardware-back-button-508e48cf.js';
8
- import './animation-23699cc5.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-082b47ce.js';
2
+ import { c as config, g as getIonMode } from './ionic-global-b8056dd2.js';
3
+ import { g as getTimeGivenProgression } from './cubic-bezier-108b8579.js';
4
+ import { G as GESTURE_CONTROLLER } from './gesture-controller-8f35af24.js';
5
+ import { m as isEndSide, i as inheritAriaAttributes, n as assert, c as clamp } from './helpers-af16fc18.js';
6
+ import { m as menuController } from './index-178a7a06.js';
7
+ import './hardware-back-button-bb4c578a.js';
8
+ import './animation-cb124ae5.js';
9
9
 
10
10
  const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{left:0;right:auto;top:0;bottom:0;transform:translate3d(-9999px, 0, 0);display:flex;position:absolute;flex-direction:column;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}[dir=rtl] .menu-inner,:host-context([dir=rtl]) .menu-inner{left:unset;right:unset;left:auto;right:0}[dir=rtl] .menu-inner,:host-context([dir=rtl]) .menu-inner{transform:translate3d(calc(-1 * -9999px), 0, 0)}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;right:auto;left:0}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;right:0;left:auto;}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){width:var(--width);min-width:var(--min-width);max-width:var(--max-width)}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;transform:none !important;box-shadow:none !important}:host(.menu-pane-visible) ion-backdrop{display:hidden !important;}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
11
11
 
@@ -15,6 +15,7 @@ const iosEasing = 'cubic-bezier(0.32,0.72,0,1)';
15
15
  const mdEasing = 'cubic-bezier(0.0,0.0,0.2,1)';
16
16
  const iosEasingReverse = 'cubic-bezier(1, 0, 0.68, 0.28)';
17
17
  const mdEasingReverse = 'cubic-bezier(0.4, 0, 0.6, 1)';
18
+ const focusableQueryString = '[tabindex]:not([tabindex^="-"]), input:not([type=hidden]):not([tabindex^="-"]), textarea:not([tabindex^="-"]), button:not([tabindex^="-"]), select:not([tabindex^="-"]), .ion-focusable:not([tabindex^="-"])';
18
19
  const Menu = class {
19
20
  constructor(hostRef) {
20
21
  registerInstance(this, hostRef);
@@ -27,6 +28,8 @@ const Menu = class {
27
28
  this.blocker = GESTURE_CONTROLLER.createBlocker({ disableScroll: true });
28
29
  this.isAnimating = false;
29
30
  this._isOpen = false;
31
+ this.inheritedAttributes = {};
32
+ this.handleFocus = (ev) => this.trapKeyboardFocus(ev, document);
30
33
  this.isPaneVisible = false;
31
34
  this.isEndSide = false;
32
35
  /**
@@ -107,7 +110,7 @@ AFTER:
107
110
  this.sideChanged();
108
111
  // register this menu with the app's menu controller
109
112
  menuController._register(this);
110
- this.gesture = (await import('./index-51ec9e66.js')).createGesture({
113
+ this.gesture = (await import('./index-3a1bd803.js')).createGesture({
111
114
  el: document,
112
115
  gestureName: 'menu-swipe',
113
116
  gesturePriority: 30,
@@ -121,6 +124,9 @@ AFTER:
121
124
  });
122
125
  this.updateState();
123
126
  }
127
+ componentWillLoad() {
128
+ this.inheritedAttributes = inheritAriaAttributes(this.el);
129
+ }
124
130
  async componentDidLoad() {
125
131
  this.ionMenuChange.emit({ disabled: this.disabled, open: this._isOpen });
126
132
  this.updateState();
@@ -154,6 +160,11 @@ AFTER:
154
160
  }
155
161
  }
156
162
  }
163
+ onKeydown(ev) {
164
+ if (ev.key === 'Escape') {
165
+ this.close();
166
+ }
167
+ }
157
168
  /**
158
169
  * Returns `true` is the menu is open.
159
170
  */
@@ -197,6 +208,62 @@ AFTER:
197
208
  setOpen(shouldOpen, animated = true) {
198
209
  return menuController._setOpen(this, shouldOpen, animated);
199
210
  }
211
+ focusFirstDescendant() {
212
+ const { el } = this;
213
+ const firstInput = el.querySelector(focusableQueryString);
214
+ if (firstInput) {
215
+ firstInput.focus();
216
+ }
217
+ else {
218
+ el.focus();
219
+ }
220
+ }
221
+ focusLastDescendant() {
222
+ const { el } = this;
223
+ const inputs = Array.from(el.querySelectorAll(focusableQueryString));
224
+ const lastInput = inputs.length > 0 ? inputs[inputs.length - 1] : null;
225
+ if (lastInput) {
226
+ lastInput.focus();
227
+ }
228
+ else {
229
+ el.focus();
230
+ }
231
+ }
232
+ trapKeyboardFocus(ev, doc) {
233
+ const target = ev.target;
234
+ if (!target) {
235
+ return;
236
+ }
237
+ /**
238
+ * If the target is inside the menu contents, let the browser
239
+ * focus as normal and keep a log of the last focused element.
240
+ */
241
+ if (this.el.contains(target)) {
242
+ this.lastFocus = target;
243
+ }
244
+ else {
245
+ /**
246
+ * Otherwise, we are about to have focus go out of the menu.
247
+ * Wrap the focus to either the first or last element.
248
+ */
249
+ /**
250
+ * Once we call `focusFirstDescendant`, another focus event
251
+ * will fire, which will cause `lastFocus` to be updated
252
+ * before we can run the code after that. We cache the value
253
+ * here to avoid that.
254
+ */
255
+ this.focusFirstDescendant();
256
+ /**
257
+ * If the cached last focused element is the same as the now-
258
+ * active element, that means the user was on the first element
259
+ * already and pressed Shift + Tab, so we need to wrap to the
260
+ * last descendant.
261
+ */
262
+ if (this.lastFocus === doc.activeElement) {
263
+ this.focusLastDescendant();
264
+ }
265
+ }
266
+ }
200
267
  async _setOpen(shouldOpen, animated = true) {
201
268
  // If the menu is disabled or it is currently being animated, let's do nothing
202
269
  if (!this._isActive() || this.isAnimating || shouldOpen === this._isOpen) {
@@ -341,6 +408,15 @@ AFTER:
341
408
  // this places the menu into the correct location before it animates in
342
409
  // this css class doesn't actually kick off any animations
343
410
  this.el.classList.add(SHOW_MENU);
411
+ /**
412
+ * We add a tabindex here so that focus trapping
413
+ * still works even if the menu does not have
414
+ * any focusable elements slotted inside. The
415
+ * focus trapping utility will fallback to focusing
416
+ * the menu so focus does not leave when the menu
417
+ * is open.
418
+ */
419
+ this.el.setAttribute('tabindex', '0');
344
420
  if (this.backdropEl) {
345
421
  this.backdropEl.classList.add(SHOW_BACKDROP);
346
422
  }
@@ -365,18 +441,44 @@ AFTER:
365
441
  this.blocker.unblock();
366
442
  }
367
443
  if (isOpen) {
368
- // add css class
444
+ // add css class and hide content behind menu from screen readers
369
445
  if (this.contentEl) {
370
446
  this.contentEl.classList.add(MENU_CONTENT_OPEN);
447
+ /**
448
+ * When the menu is open and overlaying the main
449
+ * content, the main content should not be announced
450
+ * by the screenreader as the menu is the main
451
+ * focus. This is useful with screenreaders that have
452
+ * "read from top" gestures that read the entire
453
+ * page from top to bottom when activated.
454
+ */
455
+ this.contentEl.setAttribute('aria-hidden', 'true');
371
456
  }
372
457
  // emit open event
373
458
  this.ionDidOpen.emit();
459
+ // focus menu content for screen readers
460
+ if (this.menuInnerEl) {
461
+ this.focusFirstDescendant();
462
+ }
463
+ // setup focus trapping
464
+ document.addEventListener('focus', this.handleFocus, true);
374
465
  }
375
466
  else {
376
- // remove css classes
467
+ // remove css classes and unhide content from screen readers
377
468
  this.el.classList.remove(SHOW_MENU);
469
+ /**
470
+ * Remove tabindex from the menu component
471
+ * so that is cannot be tabbed to.
472
+ */
473
+ this.el.removeAttribute('tabindex');
378
474
  if (this.contentEl) {
379
475
  this.contentEl.classList.remove(MENU_CONTENT_OPEN);
476
+ /**
477
+ * Remove aria-hidden so screen readers
478
+ * can announce the main content again
479
+ * now that the menu is not the main focus.
480
+ */
481
+ this.contentEl.removeAttribute('aria-hidden');
380
482
  }
381
483
  if (this.backdropEl) {
382
484
  this.backdropEl.classList.remove(SHOW_BACKDROP);
@@ -386,6 +488,8 @@ AFTER:
386
488
  }
387
489
  // emit close event
388
490
  this.ionDidClose.emit();
491
+ // undo focus trapping so multiple menus don't collide
492
+ document.removeEventListener('focus', this.handleFocus, true);
389
493
  }
390
494
  }
391
495
  updateState() {
@@ -411,9 +515,9 @@ AFTER:
411
515
  this.afterAnimation(false);
412
516
  }
413
517
  render() {
414
- const { isEndSide, type, disabled, isPaneVisible } = this;
518
+ const { isEndSide, type, disabled, isPaneVisible, inheritedAttributes } = this;
415
519
  const mode = getIonMode(this);
416
- return (h(Host, { role: "navigation", class: {
520
+ return (h(Host, { role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
417
521
  [mode]: true,
418
522
  [`menu-type-${type}`]: true,
419
523
  'menu-enabled': !disabled,
@@ -1,15 +1,15 @@
1
- import { r as registerInstance, c as createEvent, w as writeTask, h, H as Host, a as getElement } from './index-82f710ea.js';
2
- import { g as getIonMode, c as config } from './ionic-global-fadc16f8.js';
3
- import { a as attachComponent, d as detachComponent } from './framework-delegate-0a271c52.js';
4
- import { B as BACKDROP, a as prepareOverlay, p as present, c as activeAnimations, d as dismiss, e as eventMethod } from './overlays-6a09f1ef.js';
5
- import { g as getClassMap } from './theme-12606872.js';
6
- import { d as deepReady } from './index-db7c08b4.js';
7
- import { c as createAnimation } from './animation-23699cc5.js';
8
- import { g as getTimeGivenProgression } from './cubic-bezier-ed243a9b.js';
9
- import { createGesture } from './index-51ec9e66.js';
10
- import { c as clamp } from './helpers-dffac6f7.js';
11
- import './hardware-back-button-508e48cf.js';
12
- import './gesture-controller-604336b7.js';
1
+ import { r as registerInstance, c as createEvent, w as writeTask, h, H as Host, a as getElement } from './index-082b47ce.js';
2
+ import { g as getIonMode, c as config } from './ionic-global-b8056dd2.js';
3
+ import { a as attachComponent, d as detachComponent } from './framework-delegate-ef487ffc.js';
4
+ import { B as BACKDROP, a as prepareOverlay, p as present, c as activeAnimations, d as dismiss, e as eventMethod } from './overlays-423fcd0a.js';
5
+ import { g as getClassMap } from './theme-d21826a7.js';
6
+ import { d as deepReady } from './index-edb45c26.js';
7
+ import { c as createAnimation } from './animation-cb124ae5.js';
8
+ import { g as getTimeGivenProgression } from './cubic-bezier-108b8579.js';
9
+ import { createGesture } from './index-3a1bd803.js';
10
+ import { c as clamp } from './helpers-af16fc18.js';
11
+ import './hardware-back-button-bb4c578a.js';
12
+ import './gesture-controller-8f35af24.js';
13
13
 
14
14
  // Defaults for the card swipe animation
15
15
  const SwipeToCloseDefaults = {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, a as getElement, H as Host } from './index-82f710ea.js';
1
+ import { r as registerInstance, h, a as getElement, H as Host } from './index-082b47ce.js';
2
2
 
3
3
  const navLink = (el, routerDirection, component, componentProps, routerAnimation) => {
4
4
  const nav = el.closest('ion-nav');
@@ -1,9 +1,9 @@
1
- import { r as registerInstance, c as createEvent, h, a as getElement } from './index-82f710ea.js';
2
- import { g as getIonMode, c as config } from './ionic-global-fadc16f8.js';
3
- import { g as getTimeGivenProgression } from './cubic-bezier-ed243a9b.js';
4
- import { m as assert } from './helpers-dffac6f7.js';
5
- import { l as lifecycle, t as transition, s as setPageHidden, L as LIFECYCLE_WILL_UNLOAD, a as LIFECYCLE_WILL_LEAVE, b as LIFECYCLE_DID_LEAVE } from './index-db7c08b4.js';
6
- import { a as attachComponent } from './framework-delegate-0a271c52.js';
1
+ import { r as registerInstance, c as createEvent, h, a as getElement } from './index-082b47ce.js';
2
+ import { g as getIonMode, c as config } from './ionic-global-b8056dd2.js';
3
+ import { g as getTimeGivenProgression } from './cubic-bezier-108b8579.js';
4
+ import { n as assert } from './helpers-af16fc18.js';
5
+ import { l as lifecycle, t as transition, s as setPageHidden, L as LIFECYCLE_WILL_UNLOAD, a as LIFECYCLE_WILL_LEAVE, b as LIFECYCLE_DID_LEAVE } from './index-edb45c26.js';
6
+ import { a as attachComponent } from './framework-delegate-ef487ffc.js';
7
7
 
8
8
  const VIEW_STATE_NEW = 1;
9
9
  const VIEW_STATE_ATTACHED = 2;
@@ -140,7 +140,7 @@ const Nav = class {
140
140
  }
141
141
  async componentDidLoad() {
142
142
  this.rootChanged();
143
- this.gesture = (await import('./swipe-back-5459ab3a.js')).createSwipeBackGesture(this.el, this.canStart.bind(this), this.onStart.bind(this), this.onMove.bind(this), this.onEnd.bind(this));
143
+ this.gesture = (await import('./swipe-back-7e655479.js')).createSwipeBackGesture(this.el, this.canStart.bind(this), this.onStart.bind(this), this.onMove.bind(this), this.onEnd.bind(this));
144
144
  this.swipeGestureChanged();
145
145
  }
146
146
  disconnectedCallback() {
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, h, H as Host } from './index-82f710ea.js';
2
- import { g as getIonMode } from './ionic-global-fadc16f8.js';
3
- import { c as createColorClasses } from './theme-12606872.js';
1
+ import { r as registerInstance, h, H as Host } from './index-082b47ce.js';
2
+ import { g as getIonMode } from './ionic-global-b8056dd2.js';
3
+ import { c as createColorClasses } from './theme-d21826a7.js';
4
4
 
5
5
  const noteIosCss = ":host{color:var(--color);font-family:var(--ion-font-family, inherit);box-sizing:border-box}:host(.ion-color){color:var(--ion-color-base)}:host{--color:var(--ion-color-step-350, #a6a6a6)}";
6
6
 
@@ -1,7 +1,7 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-82f710ea.js';
2
- import { g as getIonMode } from './ionic-global-fadc16f8.js';
3
- import { c as clamp } from './helpers-dffac6f7.js';
4
- import { b as hapticSelectionChanged, h as hapticSelectionEnd, a as hapticSelectionStart } from './haptic-67928174.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-082b47ce.js';
2
+ import { g as getIonMode } from './ionic-global-b8056dd2.js';
3
+ import { c as clamp } from './helpers-af16fc18.js';
4
+ import { b as hapticSelectionChanged, h as hapticSelectionEnd, a as hapticSelectionStart } from './haptic-c424e670.js';
5
5
 
6
6
  const pickerColumnIosCss = ".picker-col{display:flex;position:relative;flex:1;justify-content:center;height:100%;box-sizing:content-box;contain:content}.picker-opts{position:relative;flex:1;max-width:100%}.picker-opt{left:0;top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}[dir=rtl] .picker-opt,:host-context([dir=rtl]) .picker-opt{left:unset;right:unset;right:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{justify-content:flex-start}.picker-opts-right{justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;flex:1;text-align:start;white-space:nowrap}.picker-col{padding-left:4px;padding-right:4px;padding-top:0;padding-bottom:0;transform-style:preserve-3d}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.picker-col{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px}}.picker-prefix,.picker-suffix,.picker-opts{top:77px;transform-style:preserve-3d;color:inherit;font-size:20px;line-height:42px;pointer-events:none}.picker-opt{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;transform-origin:center center;height:46px;transform-style:preserve-3d;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:20px;line-height:42px;backface-visibility:hidden;pointer-events:auto}[dir=rtl] .picker-opt,:host-context([dir=rtl]) .picker-opt{transform-origin:calc(100% - center) center}";
7
7
 
@@ -31,7 +31,7 @@ const PickerColumnCmp = class {
31
31
  }
32
32
  this.rotateFactor = pickerRotateFactor;
33
33
  this.scaleFactor = pickerScaleFactor;
34
- this.gesture = (await import('./index-51ec9e66.js')).createGesture({
34
+ this.gesture = (await import('./index-3a1bd803.js')).createGesture({
35
35
  el: this.el,
36
36
  gestureName: 'picker-swipe',
37
37
  gesturePriority: 100,
@@ -1,10 +1,10 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-82f710ea.js';
2
- import { g as getIonMode } from './ionic-global-fadc16f8.js';
3
- import { B as BACKDROP, i as isCancel, a as prepareOverlay, p as present, d as dismiss, e as eventMethod, s as safeCall } from './overlays-6a09f1ef.js';
4
- import { g as getClassMap } from './theme-12606872.js';
5
- import { c as createAnimation } from './animation-23699cc5.js';
6
- import './hardware-back-button-508e48cf.js';
7
- import './helpers-dffac6f7.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-082b47ce.js';
2
+ import { g as getIonMode } from './ionic-global-b8056dd2.js';
3
+ import { B as BACKDROP, i as isCancel, a as prepareOverlay, p as present, d as dismiss, e as eventMethod, s as safeCall } from './overlays-423fcd0a.js';
4
+ import { g as getClassMap } from './theme-d21826a7.js';
5
+ import { c as createAnimation } from './animation-cb124ae5.js';
6
+ import './hardware-back-button-bb4c578a.js';
7
+ import './helpers-af16fc18.js';
8
8
 
9
9
  /**
10
10
  * iOS Picker Enter Animation
@@ -1,12 +1,12 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-82f710ea.js';
2
- import { g as getIonMode } from './ionic-global-fadc16f8.js';
3
- import { a as attachComponent, d as detachComponent } from './framework-delegate-0a271c52.js';
4
- import { B as BACKDROP, a as prepareOverlay, p as present, d as dismiss, e as eventMethod } from './overlays-6a09f1ef.js';
5
- import { g as getClassMap } from './theme-12606872.js';
6
- import { d as deepReady } from './index-db7c08b4.js';
7
- import { c as createAnimation } from './animation-23699cc5.js';
8
- import './helpers-dffac6f7.js';
9
- import './hardware-back-button-508e48cf.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-082b47ce.js';
2
+ import { g as getIonMode } from './ionic-global-b8056dd2.js';
3
+ import { a as attachComponent, d as detachComponent } from './framework-delegate-ef487ffc.js';
4
+ import { B as BACKDROP, a as prepareOverlay, p as present, d as dismiss, e as eventMethod } from './overlays-423fcd0a.js';
5
+ import { g as getClassMap } from './theme-d21826a7.js';
6
+ import { d as deepReady } from './index-edb45c26.js';
7
+ import { c as createAnimation } from './animation-cb124ae5.js';
8
+ import './helpers-af16fc18.js';
9
+ import './hardware-back-button-bb4c578a.js';
10
10
 
11
11
  /**
12
12
  * iOS Popover Enter Animation
@@ -239,9 +239,9 @@ const mdLeaveAnimation = (baseEl) => {
239
239
  .addAnimation([backdropAnimation, wrapperAnimation]);
240
240
  };
241
241
 
242
- const popoverIosCss = ".sc-ion-popover-ios-h{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;left:0;right:0;top:0;bottom:0;display:flex;position:fixed;align-items:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}.overlay-hidden.sc-ion-popover-ios-h{display:none}.popover-wrapper.sc-ion-popover-ios{opacity:0;z-index:10}.popover-content.sc-ion-popover-ios{display:flex;position:absolute;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);box-shadow:var(--box-shadow);overflow:auto;z-index:10}.popover-viewport.sc-ion-popover-ios{--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px}.sc-ion-popover-ios-h{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}.popover-content.sc-ion-popover-ios{border-radius:10px}.popover-arrow.sc-ion-popover-ios{display:block;position:absolute;width:20px;height:10px;overflow:hidden}.popover-arrow.sc-ion-popover-ios::after{left:3px;top:3px;border-radius:3px;position:absolute;width:14px;height:14px;transform:rotate(45deg);background:var(--background);content:\"\";z-index:10}[dir=rtl].sc-ion-popover-ios .popover-arrow.sc-ion-popover-ios::after,[dir=rtl].sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after,[dir=rtl] .sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after{left:unset;right:unset;right:3px}.popover-bottom.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{top:auto;bottom:-10px}.popover-bottom.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after{top:-6px}@supports (backdrop-filter: blur(0)){.popover-translucent.sc-ion-popover-ios-h .popover-content.sc-ion-popover-ios,.popover-translucent.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);backdrop-filter:saturate(180%) blur(20px)}}";
242
+ const popoverIosCss = ".sc-ion-popover-ios-h{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;left:0;right:0;top:0;bottom:0;display:flex;position:fixed;align-items:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}.overlay-hidden.sc-ion-popover-ios-h{display:none}.popover-wrapper.sc-ion-popover-ios{opacity:0;z-index:10}.popover-content.sc-ion-popover-ios{display:flex;position:absolute;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);box-shadow:var(--box-shadow);overflow:auto;z-index:10}.popover-viewport.sc-ion-popover-ios{--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:flex;flex-direction:column;overflow:hidden}.sc-ion-popover-ios-h{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}.popover-content.sc-ion-popover-ios{border-radius:10px}.popover-arrow.sc-ion-popover-ios{display:block;position:absolute;width:20px;height:10px;overflow:hidden}.popover-arrow.sc-ion-popover-ios::after{left:3px;top:3px;border-radius:3px;position:absolute;width:14px;height:14px;transform:rotate(45deg);background:var(--background);content:\"\";z-index:10}[dir=rtl].sc-ion-popover-ios .popover-arrow.sc-ion-popover-ios::after,[dir=rtl].sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after,[dir=rtl] .sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after{left:unset;right:unset;right:3px}.popover-bottom.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{top:auto;bottom:-10px}.popover-bottom.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after{top:-6px}@supports (backdrop-filter: blur(0)){.popover-translucent.sc-ion-popover-ios-h .popover-content.sc-ion-popover-ios,.popover-translucent.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);backdrop-filter:saturate(180%) blur(20px)}}";
243
243
 
244
- const popoverMdCss = ".sc-ion-popover-md-h{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;left:0;right:0;top:0;bottom:0;display:flex;position:fixed;align-items:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}.overlay-hidden.sc-ion-popover-md-h{display:none}.popover-wrapper.sc-ion-popover-md{opacity:0;z-index:10}.popover-content.sc-ion-popover-md{display:flex;position:absolute;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);box-shadow:var(--box-shadow);overflow:auto;z-index:10}.popover-viewport.sc-ion-popover-md{--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px}.sc-ion-popover-md-h{--width:250px;--max-height:90%;--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content.sc-ion-popover-md{border-radius:4px;transform-origin:left top}[dir=rtl].sc-ion-popover-md .popover-content.sc-ion-popover-md,[dir=rtl].sc-ion-popover-md-h .popover-content.sc-ion-popover-md,[dir=rtl] .sc-ion-popover-md-h .popover-content.sc-ion-popover-md{transform-origin:right top}.popover-viewport.sc-ion-popover-md{transition-delay:100ms}";
244
+ const popoverMdCss = ".sc-ion-popover-md-h{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;left:0;right:0;top:0;bottom:0;display:flex;position:fixed;align-items:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}.overlay-hidden.sc-ion-popover-md-h{display:none}.popover-wrapper.sc-ion-popover-md{opacity:0;z-index:10}.popover-content.sc-ion-popover-md{display:flex;position:absolute;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);box-shadow:var(--box-shadow);overflow:auto;z-index:10}.popover-viewport.sc-ion-popover-md{--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:flex;flex-direction:column;overflow:hidden}.sc-ion-popover-md-h{--width:250px;--max-height:90%;--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content.sc-ion-popover-md{border-radius:4px;transform-origin:left top}[dir=rtl].sc-ion-popover-md .popover-content.sc-ion-popover-md,[dir=rtl].sc-ion-popover-md-h .popover-content.sc-ion-popover-md,[dir=rtl] .sc-ion-popover-md-h .popover-content.sc-ion-popover-md{transform-origin:right top}.popover-viewport.sc-ion-popover-md{transition-delay:100ms}";
245
245
 
246
246
  const Popover = class {
247
247
  constructor(hostRef) {
@@ -1,7 +1,7 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-82f710ea.js';
2
- import { g as getIonMode } from './ionic-global-fadc16f8.js';
3
- import { c as clamp, k as debounceEvent, i as inheritAttributes, e as getAriaLabel, f as renderHiddenInput } from './helpers-dffac6f7.js';
4
- import { c as createColorClasses, h as hostContext } from './theme-12606872.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-082b47ce.js';
2
+ import { g as getIonMode } from './ionic-global-b8056dd2.js';
3
+ import { c as clamp, k as debounceEvent, i as inheritAriaAttributes, e as getAriaLabel, f as renderHiddenInput } from './helpers-af16fc18.js';
4
+ import { c as createColorClasses, h as hostContext } from './theme-d21826a7.js';
5
5
 
6
6
  const rangeIosCss = ":host{--knob-handle-size:calc(var(--knob-size) * 2);display:flex;position:relative;flex:3;align-items:center;font-family:var(--ion-font-family, inherit);user-select:none;z-index:2}:host(.range-disabled){pointer-events:none}::slotted(ion-label){flex:initial}::slotted(ion-icon[slot]){font-size:24px}.range-slider{position:relative;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:grab;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:grabbing}.range-pin{position:absolute;background:var(--ion-color-base);color:var(--ion-color-contrast);text-align:center;box-sizing:border-box}.range-knob-handle{left:0;top:calc((var(--height) - var(--knob-handle-size)) / 2);margin-left:calc(0px - var(--knob-handle-size) / 2);position:absolute;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset;right:unset;right:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.range-knob-handle{margin-left:unset;-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2)}}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar{border-radius:var(--bar-border-radius);left:0;top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset;right:unset;right:0}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset}.range-knob{border-radius:var(--knob-border-radius);left:calc(50% - var(--knob-size) / 2);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host(.in-item) ::slotted(ion-label){align-self:center}:host{--knob-border-radius:50%;--knob-background:#ffffff;--knob-box-shadow:0 3px 1px rgba(0, 0, 0, 0.1), 0 4px 8px rgba(0, 0, 0, 0.13), 0 0 0 1px rgba(0, 0, 0, 0.02);--knob-size:28px;--bar-height:2px;--bar-background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1);--bar-background-active:var(--ion-color-primary, #3880ff);--bar-border-radius:0;--height:42px;padding-left:16px;padding-right:16px;padding-top:8px;padding-bottom:8px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-tick-active{background:var(--ion-color-base)}::slotted([slot=start]){margin-left:0;margin-right:16px;margin-top:0;margin-bottom:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}}::slotted([slot=end]){margin-left:16px;margin-right:0;margin-top:0;margin-bottom:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}}:host(.range-has-pin){padding-top:20px}.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-tick{margin-left:-1px;border-radius:0;position:absolute;top:18px;width:2px;height:8px;background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1);pointer-events:none}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.range-tick{margin-left:unset;-webkit-margin-start:-1px;margin-inline-start:-1px}}.range-tick-active{background:var(--bar-background-active)}.range-pin{transform:translate3d(0, 28px, 0) scale(0.01);padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;display:inline-block;position:relative;top:-20px;min-width:28px;transition:transform 120ms ease;background:transparent;color:var(--ion-text-color, #000);font-size:12px;text-align:center}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.range-pin{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}.range-knob-pressed .range-pin{transform:translate3d(0, 0, 0) scale(1)}:host(.range-disabled){opacity:0.5}";
7
7
 
@@ -87,7 +87,7 @@ const Range = class {
87
87
  this.setupGesture = async () => {
88
88
  const rangeSlider = this.rangeSlider;
89
89
  if (rangeSlider) {
90
- this.gesture = (await import('./index-51ec9e66.js')).createGesture({
90
+ this.gesture = (await import('./index-3a1bd803.js')).createGesture({
91
91
  el: rangeSlider,
92
92
  gestureName: 'range',
93
93
  gesturePriority: 100,
@@ -161,7 +161,7 @@ const Range = class {
161
161
  * not assign the default incrementing ID.
162
162
  */
163
163
  this.rangeId = (this.el.hasAttribute('id')) ? this.el.getAttribute('id') : `ion-r-${rangeIds++}`;
164
- this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);
164
+ this.inheritedAttributes = inheritAriaAttributes(this.el);
165
165
  }
166
166
  componentDidLoad() {
167
167
  this.setupGesture();
@@ -1,7 +1,7 @@
1
- import { r as registerInstance, h, H as Host, a as getElement } from './index-82f710ea.js';
2
- import { g as getIonMode, c as config, a as isPlatform } from './ionic-global-fadc16f8.js';
3
- import { s as sanitizeDOMString } from './index-cc97b114.js';
4
- import { S as SPINNERS } from './spinner-configs-9536fae2.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement } from './index-082b47ce.js';
2
+ import { g as getIonMode, c as config, a as isPlatform } from './ionic-global-b8056dd2.js';
3
+ import { s as sanitizeDOMString } from './index-8d682224.js';
4
+ import { S as SPINNERS } from './spinner-configs-aaf2a1a9.js';
5
5
 
6
6
  const RefresherContent = class {
7
7
  constructor(hostRef) {
@@ -1,9 +1,9 @@
1
- import { w as writeTask, r as registerInstance, c as createEvent, d as readTask, h, a as getElement, H as Host } from './index-82f710ea.js';
2
- import { a as isPlatform, g as getIonMode } from './ionic-global-fadc16f8.js';
3
- import { g as getTimeGivenProgression } from './cubic-bezier-ed243a9b.js';
4
- import { a as componentOnReady, c as clamp, g as getElementRoot, r as raf } from './helpers-dffac6f7.js';
5
- import { c as hapticImpact } from './haptic-67928174.js';
6
- import { c as createAnimation } from './animation-23699cc5.js';
1
+ import { w as writeTask, r as registerInstance, c as createEvent, d as readTask, h, a as getElement, H as Host } from './index-082b47ce.js';
2
+ import { a as isPlatform, g as getIonMode } from './ionic-global-b8056dd2.js';
3
+ import { g as getTimeGivenProgression } from './cubic-bezier-108b8579.js';
4
+ import { a as componentOnReady, c as clamp, g as getElementRoot, r as raf } from './helpers-af16fc18.js';
5
+ import { c as hapticImpact } from './haptic-c424e670.js';
6
+ import { c as createAnimation } from './animation-cb124ae5.js';
7
7
 
8
8
  const getRefresherAnimationType = (contentEl) => {
9
9
  const previousSibling = contentEl.previousElementSibling;
@@ -382,7 +382,7 @@ const Refresher = class {
382
382
  });
383
383
  };
384
384
  this.scrollEl.addEventListener('scroll', this.scrollListenerCallback);
385
- this.gesture = (await import('./index-51ec9e66.js')).createGesture({
385
+ this.gesture = (await import('./index-3a1bd803.js')).createGesture({
386
386
  el: this.scrollEl,
387
387
  gestureName: 'refresher',
388
388
  gesturePriority: 31,
@@ -434,7 +434,7 @@ const Refresher = class {
434
434
  refreshingCircle.style.setProperty('animation-delay', '-655ms');
435
435
  });
436
436
  }
437
- this.gesture = (await import('./index-51ec9e66.js')).createGesture({
437
+ this.gesture = (await import('./index-3a1bd803.js')).createGesture({
438
438
  el: this.scrollEl,
439
439
  gestureName: 'refresher',
440
440
  gesturePriority: 31,
@@ -539,7 +539,7 @@ const Refresher = class {
539
539
  this.setupNativeRefresher(contentEl);
540
540
  }
541
541
  else {
542
- this.gesture = (await import('./index-51ec9e66.js')).createGesture({
542
+ this.gesture = (await import('./index-3a1bd803.js')).createGesture({
543
543
  el: contentEl,
544
544
  gestureName: 'refresher',
545
545
  gesturePriority: 31,
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, c as createEvent, h, a as getElement, H as Host } from './index-82f710ea.js';
2
- import { g as getIonMode } from './ionic-global-fadc16f8.js';
3
- import { a as hapticSelectionStart, b as hapticSelectionChanged, h as hapticSelectionEnd } from './haptic-67928174.js';
1
+ import { r as registerInstance, c as createEvent, h, a as getElement, H as Host } from './index-082b47ce.js';
2
+ import { g as getIonMode } from './ionic-global-b8056dd2.js';
3
+ import { a as hapticSelectionStart, b as hapticSelectionChanged, h as hapticSelectionEnd } from './haptic-c424e670.js';
4
4
 
5
5
  const reorderGroupCss = ".reorder-list-active>*{transition:transform 300ms;will-change:transform}.reorder-enabled{user-select:none}.reorder-enabled ion-reorder{display:block;cursor:grab;pointer-events:all;touch-action:none}.reorder-selected,.reorder-selected ion-reorder{cursor:grabbing}.reorder-selected{position:relative;transition:none !important;box-shadow:0 0 10px rgba(0, 0, 0, 0.4);opacity:0.8;z-index:100}.reorder-visible ion-reorder .reorder-icon{transform:translate3d(0, 0, 0)}";
6
6
 
@@ -31,7 +31,7 @@ const ReorderGroup = class {
31
31
  if (contentEl) {
32
32
  this.scrollEl = await contentEl.getScrollElement();
33
33
  }
34
- this.gesture = (await import('./index-51ec9e66.js')).createGesture({
34
+ this.gesture = (await import('./index-3a1bd803.js')).createGesture({
35
35
  el: this.el,
36
36
  gestureName: 'reorder',
37
37
  gesturePriority: 110,
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, h, H as Host, a as getElement } from './index-82f710ea.js';
2
- import { g as getIonMode } from './ionic-global-fadc16f8.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement } from './index-082b47ce.js';
2
+ import { g as getIonMode } from './ionic-global-b8056dd2.js';
3
3
 
4
4
  const reorderIosCss = ":host([slot]){display:none;line-height:0;z-index:100}.reorder-icon{display:block;font-size:22px}.reorder-icon{font-size:34px;opacity:0.4}";
5
5
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent } from './index-82f710ea.js';
1
+ import { r as registerInstance, c as createEvent } from './index-082b47ce.js';
2
2
 
3
3
  const RouteRedirect = class {
4
4
  constructor(hostRef) {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent } from './index-82f710ea.js';
1
+ import { r as registerInstance, c as createEvent } from './index-082b47ce.js';
2
2
 
3
3
  const Route = class {
4
4
  constructor(hostRef) {
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, h, H as Host } from './index-82f710ea.js';
2
- import { g as getIonMode } from './ionic-global-fadc16f8.js';
3
- import { o as openURL, c as createColorClasses } from './theme-12606872.js';
1
+ import { r as registerInstance, h, H as Host } from './index-082b47ce.js';
2
+ import { g as getIonMode } from './ionic-global-b8056dd2.js';
3
+ import { o as openURL, c as createColorClasses } from './theme-d21826a7.js';
4
4
 
5
5
  const routerLinkCss = ":host{--background:transparent;--color:var(--ion-color-primary, #3880ff);background:var(--background);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}a{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit}";
6
6
 
@@ -1,9 +1,9 @@
1
- import { r as registerInstance, c as createEvent, h, a as getElement } from './index-82f710ea.js';
2
- import { g as getIonMode, c as config } from './ionic-global-fadc16f8.js';
3
- import { g as getTimeGivenProgression } from './cubic-bezier-ed243a9b.js';
4
- import { a as attachComponent, d as detachComponent } from './framework-delegate-0a271c52.js';
5
- import { t as transition } from './index-db7c08b4.js';
6
- import './helpers-dffac6f7.js';
1
+ import { r as registerInstance, c as createEvent, h, a as getElement } from './index-082b47ce.js';
2
+ import { g as getIonMode, c as config } from './ionic-global-b8056dd2.js';
3
+ import { g as getTimeGivenProgression } from './cubic-bezier-108b8579.js';
4
+ import { a as attachComponent, d as detachComponent } from './framework-delegate-ef487ffc.js';
5
+ import { t as transition } from './index-edb45c26.js';
6
+ import './helpers-af16fc18.js';
7
7
 
8
8
  const routeOutletCss = ":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;overflow:hidden;z-index:0}";
9
9
 
@@ -35,7 +35,7 @@ const RouterOutlet = class {
35
35
  this.swipeHandler.onStart();
36
36
  }
37
37
  };
38
- this.gesture = (await import('./swipe-back-5459ab3a.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), step => this.ani && this.ani.progressStep(step), (shouldComplete, step, dur) => {
38
+ this.gesture = (await import('./swipe-back-7e655479.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), step => this.ani && this.ani.progressStep(step), (shouldComplete, step, dur) => {
39
39
  if (this.ani) {
40
40
  this.ani.onFinish(() => {
41
41
  this.gestureOrAnimationInProgress = false;
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, c as createEvent, a as getElement } from './index-82f710ea.js';
2
- import { a as componentOnReady, n as debounce } from './helpers-dffac6f7.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement } from './index-082b47ce.js';
2
+ import { a as componentOnReady, o as debounce } from './helpers-af16fc18.js';
3
3
 
4
4
  const ROUTER_INTENT_NONE = 'root';
5
5
  const ROUTER_INTENT_FORWARD = 'forward';
@@ -224,13 +224,54 @@ const findRouteRedirect = (path, redirects) => {
224
224
  };
225
225
  const matchesIDs = (ids, chain) => {
226
226
  const len = Math.min(ids.length, chain.length);
227
- let i = 0;
228
- for (; i < len; i++) {
229
- if (ids[i].toLowerCase() !== chain[i].id) {
227
+ let score = 0;
228
+ for (let i = 0; i < len; i++) {
229
+ const routeId = ids[i];
230
+ const routeChain = chain[i];
231
+ // Skip results where the route id does not match the chain at the same index
232
+ if (routeId.id.toLowerCase() !== routeChain.id) {
230
233
  break;
231
234
  }
235
+ if (routeId.params) {
236
+ const routeIdParams = Object.keys(routeId.params);
237
+ /**
238
+ * Only compare routes with the chain that have the same number of parameters.
239
+ */
240
+ if (routeIdParams.length === routeChain.path.length) {
241
+ /**
242
+ * Maps the route's params into a path based on the path variable names,
243
+ * to compare against the route chain format.
244
+ *
245
+ * Before:
246
+ * ```ts
247
+ * {
248
+ * params: {
249
+ * s1: 'a',
250
+ * s2: 'b'
251
+ * }
252
+ * }
253
+ * ```
254
+ *
255
+ * After:
256
+ * ```ts
257
+ * [':s1',':s2']
258
+ * ```
259
+ */
260
+ const pathWithParams = routeIdParams.map(key => `:${key}`);
261
+ for (let j = 0; j < pathWithParams.length; j++) {
262
+ // Skip results where the path variable is not a match
263
+ if (pathWithParams[j].toLowerCase() !== routeChain.path[j]) {
264
+ break;
265
+ }
266
+ // Weight path matches for the same index higher.
267
+ score++;
268
+ }
269
+ }
270
+ }
271
+ // Weight id matches
272
+ score++;
232
273
  }
233
- return i;
274
+ return score;
234
275
  };
235
276
  const matchesPath = (inputPath, chain) => {
236
277
  const segments = new RouterSegments(inputPath);
@@ -285,9 +326,8 @@ const mergeParams = (a, b) => {
285
326
  const routerIDsToChain = (ids, chains) => {
286
327
  let match = null;
287
328
  let maxMatches = 0;
288
- const plainIDs = ids.map(i => i.id);
289
329
  for (const chain of chains) {
290
- const score = matchesIDs(plainIDs, chain);
330
+ const score = matchesIDs(ids, chain);
291
331
  if (score > maxMatches) {
292
332
  match = chain;
293
333
  maxMatches = score;