@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,7 +1,7 @@
1
- import { r as registerInstance, h, H as Host, a as getElement, c as createEvent, f as forceUpdate, d as readTask, w as writeTask, e as getAssetPath, i as getRenderingRef } from './index-82f710ea.js';
2
- import { g as getIonMode$1, c as config, a as isPlatform } from './ionic-global-fadc16f8.js';
3
- import { h as hasShadowDom, i as inheritAttributes, c as clamp, r as raf } from './helpers-dffac6f7.js';
4
- import { o as openURL, c as createColorClasses$1, h as hostContext } from './theme-12606872.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement, c as createEvent, f as forceUpdate, d as readTask, w as writeTask, e as getAssetPath, i as getRenderingRef } from './index-082b47ce.js';
2
+ import { g as getIonMode$1, c as config, a as isPlatform } from './ionic-global-b8056dd2.js';
3
+ import { h as hasShadowDom, i as inheritAriaAttributes, c as clamp, r as raf } from './helpers-af16fc18.js';
4
+ import { o as openURL, c as createColorClasses$1, h as hostContext } from './theme-d21826a7.js';
5
5
 
6
6
  const appCss = "html.plt-mobile ion-app{user-select:none}html.plt-mobile ion-app [contenteditable]{user-select:text}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}";
7
7
 
@@ -14,15 +14,15 @@ const App = class {
14
14
  rIC(async () => {
15
15
  const isHybrid = isPlatform(window, 'hybrid');
16
16
  if (!config.getBoolean('_testing')) {
17
- import('./tap-click-e0215d5a.js').then(module => module.startTapClick(config));
17
+ import('./tap-click-faa3d392.js').then(module => module.startTapClick(config));
18
18
  }
19
19
  if (config.getBoolean('statusTap', isHybrid)) {
20
- import('./status-tap-54b1c888.js').then(module => module.startStatusTap());
20
+ import('./status-tap-3e0a5551.js').then(module => module.startStatusTap());
21
21
  }
22
22
  if (config.getBoolean('inputShims', needInputShims())) {
23
- import('./input-shims-9c0b3bc9.js').then(module => module.startInputShims(config));
23
+ import('./input-shims-dbfbbeff.js').then(module => module.startInputShims(config));
24
24
  }
25
- const hardwareBackButtonModule = await import('./hardware-back-button-508e48cf.js');
25
+ const hardwareBackButtonModule = await import('./hardware-back-button-bb4c578a.js');
26
26
  if (config.getBoolean('hardwareBackButton', isHybrid)) {
27
27
  hardwareBackButtonModule.startHardwareBackButton();
28
28
  }
@@ -30,9 +30,9 @@ const App = class {
30
30
  hardwareBackButtonModule.blockHardwareBackButton();
31
31
  }
32
32
  if (typeof window !== 'undefined') {
33
- import('./keyboard-06906eac.js').then(module => module.startKeyboardAssist(window));
33
+ import('./keyboard-e6abcb80.js').then(module => module.startKeyboardAssist(window));
34
34
  }
35
- import('./focus-visible-abf04ce3.js').then(module => module.startFocusVisible());
35
+ import('./focus-visible-edb28f19.js').then(module => module.startFocusVisible());
36
36
  });
37
37
  }
38
38
  }
@@ -124,7 +124,7 @@ const Button = class {
124
124
  this.inToolbar = !!this.el.closest('ion-buttons');
125
125
  this.inListHeader = !!this.el.closest('ion-list-header');
126
126
  this.inItem = !!this.el.closest('ion-item') || !!this.el.closest('ion-item-divider');
127
- this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);
127
+ this.inheritedAttributes = inheritAriaAttributes(this.el);
128
128
  }
129
129
  get hasIconOnly() {
130
130
  return !!this.el.querySelector('[slot="icon-only"]');
@@ -289,27 +289,6 @@ CardHeader.style = {
289
289
  md: cardHeaderMdCss
290
290
  };
291
291
 
292
- const cardSubtitleIosCss = ":host{display:block;position:relative;color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}:host{--color:var(--ion-color-step-600, #666666);margin-left:0;margin-right:0;margin-top:0;margin-bottom:4px;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-size:12px;font-weight:700;letter-spacing:0.4px;text-transform:uppercase}";
293
-
294
- const cardSubtitleMdCss = ":host{display:block;position:relative;color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}:host{--color:var(--ion-color-step-550, #737373);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-size:14px;font-weight:500}";
295
-
296
- const CardSubtitle = class {
297
- constructor(hostRef) {
298
- registerInstance(this, hostRef);
299
- }
300
- render() {
301
- const mode = getIonMode$1(this);
302
- return (h(Host, { role: "heading", "aria-level": "3", class: createColorClasses$1(this.color, {
303
- 'ion-inherit-color': true,
304
- [mode]: true
305
- }) }, h("slot", null)));
306
- }
307
- };
308
- CardSubtitle.style = {
309
- ios: cardSubtitleIosCss,
310
- md: cardSubtitleMdCss
311
- };
312
-
313
292
  const cardTitleIosCss = ":host{display:block;position:relative;color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}:host{--color:var(--ion-text-color, #000);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-size:28px;font-weight:700;line-height:1.2}";
314
293
 
315
294
  const cardTitleMdCss = ":host{display:block;position:relative;color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}:host{--color:var(--ion-color-step-850, #262626);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-size:20px;font-weight:500;line-height:1.2}";
@@ -441,7 +420,7 @@ const Col = class {
441
420
  };
442
421
  Col.style = colCss;
443
422
 
444
- const contentCss = ":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.outer-content){--background:var(--ion-color-step-50, #f2f2f2)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);box-sizing:border-box;overflow:hidden}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.inner-scroll{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{touch-action:pan-y;overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{touch-action:pan-x;overflow-x:var(--overflow);overscroll-behavior-x:contain}.scroll-x.scroll-y{touch-action:auto}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\"\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){contain:none}:host(.content-sizing) .inner-scroll{position:relative}.transition-effect{display:none;position:absolute;left:-100%;width:100%;height:100vh;opacity:0;pointer-events:none}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;right:0;width:10px;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3MDgzRkQ5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3MDgzRkU5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMTcwODNGQjlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTcwODNGQzlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmePEuQAAABNSURBVHjaYvz//z8DIxAwMDAwATGMhmFmPDQuOSZks0AMmoJBaQHjkPfB0Lfg/2gQjVow+HPy/yHvg9GiYjQfjMbBqAWjFgy/4hogwADYqwdzxy5BuwAAAABJRU5ErkJggg==);background-repeat:repeat-y;background-size:10px 16px}::slotted([slot=fixed]){position:absolute}";
423
+ const contentCss = ":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.outer-content){--background:var(--ion-color-step-50, #f2f2f2)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);box-sizing:border-box;overflow:hidden}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.inner-scroll{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{touch-action:pan-y;overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{touch-action:pan-x;overflow-x:var(--overflow);overscroll-behavior-x:contain}.scroll-x.scroll-y{touch-action:auto}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\"\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:flex;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;left:-100%;width:100%;height:100vh;opacity:0;pointer-events:none}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;right:0;width:10px;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3MDgzRkQ5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3MDgzRkU5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMTcwODNGQjlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTcwODNGQzlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmePEuQAAABNSURBVHjaYvz//z8DIxAwMDAwATGMhmFmPDQuOSZks0AMmoJBaQHjkPfB0Lfg/2gQjVow+HPy/yHvg9GiYjQfjMbBqAWjFgy/4hogwADYqwdzxy5BuwAAAABJRU5ErkJggg==);background-repeat:repeat-y;background-size:10px 16px}::slotted([slot=fixed]){position:absolute;transform:translateZ(0)}";
445
424
 
446
425
  const Content = class {
447
426
  constructor(hostRef) {
@@ -505,12 +484,6 @@ const Content = class {
505
484
  onAppLoad() {
506
485
  this.resize();
507
486
  }
508
- onClick(ev) {
509
- if (this.isScrolling) {
510
- ev.preventDefault();
511
- ev.stopPropagation();
512
- }
513
- }
514
487
  shouldForceOverscroll() {
515
488
  const { forceOverscroll } = this;
516
489
  const mode = getIonMode$1(this);
@@ -709,7 +682,12 @@ const getPageElement = (el) => {
709
682
  if (tabs) {
710
683
  return tabs;
711
684
  }
712
- const page = el.closest('ion-app,ion-page,.ion-page,page-inner');
685
+ /**
686
+ * If we're in a popover, we need to use its wrapper so we can account for space
687
+ * between the popover and the edges of the screen. But if the popover contains
688
+ * its own page element, we should use that instead.
689
+ */
690
+ const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
713
691
  if (page) {
714
692
  return page;
715
693
  }
@@ -953,7 +931,7 @@ const Header = class {
953
931
  this.translucent = false;
954
932
  }
955
933
  componentWillLoad() {
956
- this.inheritedAttributes = inheritAttributes(this.el, ['role']);
934
+ this.inheritedAttributes = inheritAriaAttributes(this.el);
957
935
  }
958
936
  async componentDidLoad() {
959
937
  await this.checkCollapsibleHeader();
@@ -1047,7 +1025,9 @@ const Header = class {
1047
1025
  const { translucent, inheritedAttributes } = this;
1048
1026
  const mode = getIonMode$1(this);
1049
1027
  const collapse = this.collapse || 'none';
1050
- return (h(Host, Object.assign({ role: "banner", class: {
1028
+ // banner role must be at top level, so remove role if inside a menu
1029
+ const roleType = hostContext('ion-menu', this.el) ? 'none' : 'banner';
1030
+ return (h(Host, Object.assign({ role: roleType, class: {
1051
1031
  [mode]: true,
1052
1032
  // Used internally for styling
1053
1033
  [`header-${mode}`]: true,
@@ -1339,6 +1319,7 @@ const Item = class {
1339
1319
  this.labelColorStyles = {};
1340
1320
  this.itemStyles = new Map();
1341
1321
  this.multipleInputs = false;
1322
+ this.focusable = true;
1342
1323
  /**
1343
1324
  * If `true`, a button tag will be rendered and the item will be tappable.
1344
1325
  */
@@ -1412,7 +1393,10 @@ const Item = class {
1412
1393
  }
1413
1394
  }
1414
1395
  componentDidLoad() {
1415
- raf(() => this.setMultipleInputs());
1396
+ raf(() => {
1397
+ this.setMultipleInputs();
1398
+ this.focusable = this.isFocusable();
1399
+ });
1416
1400
  }
1417
1401
  // If the item contains multiple clickable elements and/or inputs, then the item
1418
1402
  // should not have a clickable input cover over the entire item to prevent
@@ -1448,6 +1432,10 @@ const Item = class {
1448
1432
  canActivate() {
1449
1433
  return (this.isClickable() || this.hasCover());
1450
1434
  }
1435
+ isFocusable() {
1436
+ const focusableChild = this.el.querySelector('.ion-focusable');
1437
+ return (this.canActivate() || focusableChild !== null);
1438
+ }
1451
1439
  getFirstInput() {
1452
1440
  const inputs = this.el.querySelectorAll('ion-input, ion-textarea');
1453
1441
  return inputs[0];
@@ -1509,7 +1497,7 @@ const Item = class {
1509
1497
  'in-list': hostContext('ion-list', this.el),
1510
1498
  'item-multiple-inputs': this.multipleInputs,
1511
1499
  'ion-activatable': canActivate,
1512
- 'ion-focusable': true,
1500
+ 'ion-focusable': this.focusable
1513
1501
  })) }, h(TagType, Object.assign({}, attrs, { class: "item-native", part: "native", disabled: disabled }, clickFn), h("slot", { name: "start" }), h("div", { class: "item-inner" }, h("div", { class: "input-wrapper" }, h("slot", null)), h("slot", { name: "end" }), showDetail && h("ion-icon", { icon: detailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true" }), h("div", { class: "item-inner-highlight" })), canActivate && mode === 'md' && h("ion-ripple-effect", null)), h("div", { class: "item-highlight" })));
1514
1502
  }
1515
1503
  static get delegatesFocus() { return true; }
@@ -2146,7 +2134,7 @@ const createStore = (defaultState, shouldUpdate) => {
2146
2134
 
2147
2135
  const getIdpUrl = () => prompt('Please enter your Identity Provider URL', 'http://localhost:3000');
2148
2136
 
2149
- const { state } = createStore({
2137
+ const store = createStore({
2150
2138
  getIdpUrl,
2151
2139
  isLoggedIn: false,
2152
2140
  webId: '',
@@ -2165,11 +2153,11 @@ const PosApp = class {
2165
2153
  this.os = createPodOS();
2166
2154
  this.os.handleIncomingRedirect();
2167
2155
  this.os.trackSession(sessionInfo => {
2168
- state.isLoggedIn = sessionInfo.isLoggedIn;
2169
- state.webId = sessionInfo.webId;
2156
+ store.state.isLoggedIn = sessionInfo.isLoggedIn;
2157
+ store.state.webId = sessionInfo.webId;
2170
2158
  });
2171
2159
  }
2172
- async consumeOs(event) {
2160
+ async initializeOs(event) {
2173
2161
  event.stopPropagation();
2174
2162
  event.detail(this.os);
2175
2163
  }
@@ -2178,16 +2166,21 @@ const PosApp = class {
2178
2166
  }
2179
2167
  };
2180
2168
 
2181
- const PosDemoApp = class {
2169
+ const PosAppGeneric = class {
2182
2170
  constructor(hostRef) {
2183
2171
  registerInstance(this, hostRef);
2184
- this.url = 'http://localhost:3000/alice/games/minecraft#it';
2185
2172
  }
2186
- linkClicked(e) {
2187
- this.url = e.detail;
2173
+ render() {
2174
+ return (h("ion-grid", null, h("ion-row", null, h("ion-col", { size: "12", "size-sm": true }, h("ion-card", null, h("ion-card-header", null, h("img", { src: "https://dummyimage.com/250/ffffff/000000" }), h("ion-card-title", null, h("pos-label", null))), h("ion-card-content", null, h("pos-description", null)))), h("ion-col", { size: "12", "size-sm": true }, h("pos-literals", null)), h("ion-col", { size: "12", "size-sm": true }, h("pos-relations", null), h("pos-reverse-relations", null)))));
2175
+ }
2176
+ };
2177
+
2178
+ const PosDemoApp = class {
2179
+ constructor(hostRef) {
2180
+ registerInstance(this, hostRef);
2188
2181
  }
2189
2182
  render() {
2190
- return (h("pos-app", null, h("ion-header", null, h("ion-toolbar", null, h("ion-title", { slot: "start" }, "pod os"), h("pos-login", null))), h("ion-content", { class: "ion-padding" }, h("pos-resource", { uri: this.url }, h("ion-grid", null, h("ion-row", null, h("ion-col", { size: "12", "size-sm": true }, h("ion-card", null, h("ion-card-header", null, h("img", { src: "https://upload.wikimedia.org/wikipedia/de/5/57/Minecraft_logo-SVG.svg" }), h("ion-card-subtitle", null, "VideoGame"), h("ion-card-title", null, h("pos-label", null))), h("ion-card-content", null, h("pos-description", null)))), h("ion-col", { size: "12", "size-sm": true }, h("pos-literals", null)), h("ion-col", { size: "12", "size-sm": true }, h("pos-relations", null)))))), h("ion-footer", null, h("ion-toolbar", null, h("ion-title", null, "Footer")))));
2183
+ return (h("pos-app", null, h("ion-header", null, h("ion-toolbar", null, h("ion-title", { slot: "start" }, "pod os"), h("pos-login", null))), h("ion-content", null, h("pos-router", null)), h("ion-footer", null, h("ion-toolbar", null, h("ion-title", null, "Footer")))));
2191
2184
  }
2192
2185
  };
2193
2186
 
@@ -2207,7 +2200,7 @@ const PosDescription = class {
2207
2200
  }
2208
2201
  };
2209
2202
 
2210
- const PosLabel$1 = class {
2203
+ const PosLabel = class {
2211
2204
  constructor(hostRef) {
2212
2205
  registerInstance(this, hostRef);
2213
2206
  this.getResource = createEvent(this, "pod-os:resource", 7);
@@ -2244,23 +2237,23 @@ const PosLiterals = class {
2244
2237
  const PosLogin = class {
2245
2238
  constructor(hostRef) {
2246
2239
  registerInstance(this, hostRef);
2247
- this.consumeOsEmitter = createEvent(this, "consumeOs", 7);
2240
+ this.initializeOsEmitter = createEvent(this, "pod-os:init", 7);
2248
2241
  this.setOs = async (os) => {
2249
2242
  this.os = os;
2250
2243
  };
2251
2244
  }
2252
2245
  componentWillLoad() {
2253
- this.consumeOsEmitter.emit(this.setOs);
2246
+ this.initializeOsEmitter.emit(this.setOs);
2254
2247
  }
2255
2248
  login() {
2256
- const idp = state.getIdpUrl();
2249
+ const idp = store.state.getIdpUrl();
2257
2250
  this.os.login(idp);
2258
2251
  }
2259
2252
  logout() {
2260
2253
  this.os.logout();
2261
2254
  }
2262
2255
  render() {
2263
- return (h(Host, null, state.isLoggedIn ? (h("pos-resource", { uri: state.webId }, h("pos-label", null))) : (''), !state.isLoggedIn && h("ion-button", { onClick: () => this.login() }, "Login"), state.isLoggedIn && h("ion-button", { onClick: () => this.logout() }, "Logout")));
2256
+ return (h(Host, null, store.state.isLoggedIn ? (h("pos-resource", { uri: store.state.webId }, h("pos-label", null))) : (''), !store.state.isLoggedIn && h("ion-button", { onClick: () => this.login() }, "Login"), store.state.isLoggedIn && h("ion-button", { onClick: () => this.logout() }, "Logout")));
2264
2257
  }
2265
2258
  };
2266
2259
 
@@ -2285,7 +2278,7 @@ const PosRelations = class {
2285
2278
  const PosResource = class {
2286
2279
  constructor(hostRef) {
2287
2280
  registerInstance(this, hostRef);
2288
- this.consumeOsEmitter = createEvent(this, "consumeOs", 7);
2281
+ this.initializeOsEmitter = createEvent(this, "pod-os:init", 7);
2289
2282
  this.consumers = [];
2290
2283
  this.lazy = false;
2291
2284
  this.loading = true;
@@ -2294,7 +2287,8 @@ const PosResource = class {
2294
2287
  };
2295
2288
  }
2296
2289
  componentWillLoad() {
2297
- this.consumeOsEmitter.emit(this.setOs);
2290
+ store.onChange('isLoggedIn', () => this.loadResource());
2291
+ this.initializeOsEmitter.emit(this.setOs);
2298
2292
  }
2299
2293
  async provideResource(event) {
2300
2294
  event.stopPropagation();
@@ -2316,6 +2310,7 @@ const PosResource = class {
2316
2310
  await this.os.fetch(this.uri);
2317
2311
  }
2318
2312
  this.resource = this.os.store.get(this.uri);
2313
+ this.error = null;
2319
2314
  this.consumers.forEach(consumer => {
2320
2315
  consumer.detail(this.resource);
2321
2316
  });
@@ -2342,7 +2337,25 @@ const PosResource = class {
2342
2337
  }; }
2343
2338
  };
2344
2339
 
2345
- const PosLabel = class {
2340
+ const PosReverseRelations = class {
2341
+ constructor(hostRef) {
2342
+ registerInstance(this, hostRef);
2343
+ this.getResource = createEvent(this, "pod-os:resource", 7);
2344
+ this.data = [];
2345
+ this.setResource = async (resource) => {
2346
+ this.data = resource.reverseRelations();
2347
+ };
2348
+ }
2349
+ componentWillLoad() {
2350
+ this.getResource.emit(this.setResource);
2351
+ }
2352
+ render() {
2353
+ const items = this.data.map(it => (h("ion-item-group", null, h("ion-item-divider", null, h("ion-label", null, "is ", it.predicate, " of")), it.uris.map(uri => (h("pos-rich-link", { uri: uri }))))));
2354
+ return this.data.length > 0 ? h("ion-list", null, items) : null;
2355
+ }
2356
+ };
2357
+
2358
+ const PosRichLink = class {
2346
2359
  constructor(hostRef) {
2347
2360
  registerInstance(this, hostRef);
2348
2361
  this.linkEmitter = createEvent(this, "pod-os:link", 7);
@@ -2355,4 +2368,400 @@ const PosLabel = class {
2355
2368
  }
2356
2369
  };
2357
2370
 
2358
- export { App as ion_app, Button as ion_button, Card as ion_card, CardContent as ion_card_content, CardHeader as ion_card_header, CardSubtitle as ion_card_subtitle, CardTitle as ion_card_title, Col as ion_col, Content as ion_content, Footer as ion_footer, Grid as ion_grid, Header as ion_header, Icon as ion_icon, Item as ion_item, ItemDivider as ion_item_divider, ItemGroup as ion_item_group, Label as ion_label, List as ion_list, ProgressBar as ion_progress_bar, RippleEffect as ion_ripple_effect, Row as ion_row, ToolbarTitle as ion_title, Toolbar as ion_toolbar, PosApp as pos_app, PosDemoApp as pos_demo_app, PosDescription as pos_description, PosLabel$1 as pos_label, PosLiterals as pos_literals, PosLogin as pos_login, PosRelations as pos_relations, PosResource as pos_resource, PosLabel as pos_rich_link };
2371
+ const createRouter = (opts) => {
2372
+ var _a;
2373
+ const win = window;
2374
+ const url = new URL(win.location.href);
2375
+ const parseURL = (_a = opts === null || opts === void 0 ? void 0 : opts.parseURL) !== null && _a !== void 0 ? _a : DEFAULT_PARSE_URL;
2376
+ const { state, onChange, dispose } = createStore({
2377
+ url,
2378
+ activePath: parseURL(url)
2379
+ }, (newV, oldV, prop) => {
2380
+ if (prop === 'url') {
2381
+ return newV.href !== oldV.href;
2382
+ }
2383
+ return newV !== oldV;
2384
+ });
2385
+ const push = (href) => {
2386
+ history.pushState(null, null, href);
2387
+ const url = new URL(href, document.baseURI);
2388
+ state.url = url;
2389
+ state.activePath = parseURL(url);
2390
+ };
2391
+ const match = (routes) => {
2392
+ const { activePath } = state;
2393
+ for (let route of routes) {
2394
+ const params = matchPath(activePath, route.path);
2395
+ if (params) {
2396
+ if (route.to != null) {
2397
+ const to = (typeof route.to === 'string')
2398
+ ? route.to
2399
+ : route.to(activePath);
2400
+ push(to);
2401
+ return match(routes);
2402
+ }
2403
+ else {
2404
+ return { params, route };
2405
+ }
2406
+ }
2407
+ }
2408
+ return undefined;
2409
+ };
2410
+ const navigationChanged = () => {
2411
+ const url = new URL(win.location.href);
2412
+ state.url = url;
2413
+ state.activePath = parseURL(url);
2414
+ };
2415
+ const Switch = (_, childrenRoutes) => {
2416
+ const result = match(childrenRoutes);
2417
+ if (result) {
2418
+ if (typeof result.route.jsx === 'function') {
2419
+ return result.route.jsx(result.params);
2420
+ }
2421
+ else {
2422
+ return result.route.jsx;
2423
+ }
2424
+ }
2425
+ };
2426
+ const disposeRouter = () => {
2427
+ win.removeEventListener('popstate', navigationChanged);
2428
+ dispose();
2429
+ };
2430
+ const router = {
2431
+ Switch,
2432
+ get url() {
2433
+ return state.url;
2434
+ },
2435
+ get activePath() {
2436
+ return state.activePath;
2437
+ },
2438
+ push,
2439
+ onChange: onChange,
2440
+ dispose: disposeRouter,
2441
+ };
2442
+ // Initial update
2443
+ navigationChanged();
2444
+ // Listen URL changes
2445
+ win.addEventListener('popstate', navigationChanged);
2446
+ return router;
2447
+ };
2448
+ const Route = (props, children) => {
2449
+ var _a;
2450
+ if ('to' in props) {
2451
+ return {
2452
+ path: props.path,
2453
+ to: props.to,
2454
+ };
2455
+ }
2456
+ return {
2457
+ path: props.path,
2458
+ id: props.id,
2459
+ jsx: (_a = props.render) !== null && _a !== void 0 ? _a : children,
2460
+ };
2461
+ };
2462
+ const matchPath = (pathname, path) => {
2463
+ if (typeof path === 'string') {
2464
+ if (path === pathname) {
2465
+ return {};
2466
+ }
2467
+ }
2468
+ else if (typeof path === 'function') {
2469
+ const params = path(pathname);
2470
+ if (params) {
2471
+ return params === true
2472
+ ? {}
2473
+ : { ...params };
2474
+ }
2475
+ }
2476
+ else {
2477
+ const results = path.exec(pathname);
2478
+ if (results) {
2479
+ path.lastIndex = 0;
2480
+ return { ...results };
2481
+ }
2482
+ }
2483
+ return undefined;
2484
+ };
2485
+ const DEFAULT_PARSE_URL = (url) => {
2486
+ return url.pathname.toLowerCase();
2487
+ };
2488
+
2489
+ /**
2490
+ * TS adaption of https://github.com/pillarjs/path-to-regexp/blob/master/index.js
2491
+ */
2492
+ /**
2493
+ * Default configs.
2494
+ */
2495
+ const DEFAULT_DELIMITER = '/';
2496
+ const DEFAULT_DELIMITERS = './';
2497
+ /**
2498
+ * The main path matching regexp utility.
2499
+ */
2500
+ const PATH_REGEXP = new RegExp([
2501
+ // Match escaped characters that would otherwise appear in future matches.
2502
+ // This allows the user to escape special characters that won't transform.
2503
+ '(\\\\.)',
2504
+ // Match Express-style parameters and un-named parameters with a prefix
2505
+ // and optional suffixes. Matches appear as:
2506
+ //
2507
+ // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?"]
2508
+ // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined]
2509
+ '(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?'
2510
+ ].join('|'), 'g');
2511
+ /**
2512
+ * Parse a string for the raw tokens.
2513
+ */
2514
+ const parse = (str, options) => {
2515
+ var tokens = [];
2516
+ var key = 0;
2517
+ var index = 0;
2518
+ var path = '';
2519
+ var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER;
2520
+ var delimiters = (options && options.delimiters) || DEFAULT_DELIMITERS;
2521
+ var pathEscaped = false;
2522
+ var res;
2523
+ while ((res = PATH_REGEXP.exec(str)) !== null) {
2524
+ var m = res[0];
2525
+ var escaped = res[1];
2526
+ var offset = res.index;
2527
+ path += str.slice(index, offset);
2528
+ index = offset + m.length;
2529
+ // Ignore already escaped sequences.
2530
+ if (escaped) {
2531
+ path += escaped[1];
2532
+ pathEscaped = true;
2533
+ continue;
2534
+ }
2535
+ var prev = '';
2536
+ var next = str[index];
2537
+ var name = res[2];
2538
+ var capture = res[3];
2539
+ var group = res[4];
2540
+ var modifier = res[5];
2541
+ if (!pathEscaped && path.length) {
2542
+ var k = path.length - 1;
2543
+ if (delimiters.indexOf(path[k]) > -1) {
2544
+ prev = path[k];
2545
+ path = path.slice(0, k);
2546
+ }
2547
+ }
2548
+ // Push the current path onto the tokens.
2549
+ if (path) {
2550
+ tokens.push(path);
2551
+ path = '';
2552
+ pathEscaped = false;
2553
+ }
2554
+ var partial = prev !== '' && next !== undefined && next !== prev;
2555
+ var repeat = modifier === '+' || modifier === '*';
2556
+ var optional = modifier === '?' || modifier === '*';
2557
+ var delimiter = prev || defaultDelimiter;
2558
+ var pattern = capture || group;
2559
+ tokens.push({
2560
+ name: name || key++,
2561
+ prefix: prev,
2562
+ delimiter: delimiter,
2563
+ optional: optional,
2564
+ repeat: repeat,
2565
+ partial: partial,
2566
+ pattern: pattern ? escapeGroup(pattern) : '[^' + escapeString(delimiter) + ']+?'
2567
+ });
2568
+ }
2569
+ // Push any remaining characters.
2570
+ if (path || index < str.length) {
2571
+ tokens.push(path + str.substr(index));
2572
+ }
2573
+ return tokens;
2574
+ };
2575
+ /**
2576
+ * Escape a regular expression string.
2577
+ */
2578
+ const escapeString = (str) => {
2579
+ return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, '\\$1');
2580
+ };
2581
+ /**
2582
+ * Escape the capturing group by escaping special characters and meaning.
2583
+ */
2584
+ const escapeGroup = (group) => {
2585
+ return group.replace(/([=!:$/()])/g, '\\$1');
2586
+ };
2587
+ /**
2588
+ * Get the flags for a regexp from the options.
2589
+ */
2590
+ const flags = (options) => {
2591
+ return options && options.sensitive ? '' : 'i';
2592
+ };
2593
+ /**
2594
+ * Pull out keys from a regexp.
2595
+ */
2596
+ const regexpToRegexp = (path, keys) => {
2597
+ if (!keys)
2598
+ return path;
2599
+ // Use a negative lookahead to match only capturing groups.
2600
+ var groups = path.source.match(/\((?!\?)/g);
2601
+ if (groups) {
2602
+ for (var i = 0; i < groups.length; i++) {
2603
+ keys.push({
2604
+ name: i,
2605
+ prefix: null,
2606
+ delimiter: null,
2607
+ optional: false,
2608
+ repeat: false,
2609
+ partial: false,
2610
+ pattern: null
2611
+ });
2612
+ }
2613
+ }
2614
+ return path;
2615
+ };
2616
+ /**
2617
+ * Transform an array into a regexp.
2618
+ */
2619
+ const arrayToRegexp = (path, keys, options) => {
2620
+ var parts = [];
2621
+ for (var i = 0; i < path.length; i++) {
2622
+ parts.push(pathToRegexp(path[i], keys, options).source);
2623
+ }
2624
+ return new RegExp('(?:' + parts.join('|') + ')', flags(options));
2625
+ };
2626
+ /**
2627
+ * Create a path regexp from string input.
2628
+ */
2629
+ const stringToRegexp = (path, keys, options) => {
2630
+ return tokensToRegExp(parse(path, options), keys, options);
2631
+ };
2632
+ /**
2633
+ * Expose a function for taking tokens and returning a RegExp.
2634
+ */
2635
+ const tokensToRegExp = (tokens, keys, options) => {
2636
+ options = options || {};
2637
+ var strict = options.strict;
2638
+ var end = options.end !== false;
2639
+ var delimiter = escapeString(options.delimiter || DEFAULT_DELIMITER);
2640
+ var delimiters = options.delimiters || DEFAULT_DELIMITERS;
2641
+ var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|');
2642
+ var route = '';
2643
+ var isEndDelimited = false;
2644
+ // Iterate over the tokens and create our regexp string.
2645
+ for (var i = 0; i < tokens.length; i++) {
2646
+ var token = tokens[i];
2647
+ if (typeof token === 'string') {
2648
+ route += escapeString(token);
2649
+ isEndDelimited = i === tokens.length - 1 && delimiters.indexOf(token[token.length - 1]) > -1;
2650
+ }
2651
+ else {
2652
+ var prefix = escapeString(token.prefix || '');
2653
+ var capture = token.repeat
2654
+ ? '(?:' + token.pattern + ')(?:' + prefix + '(?:' + token.pattern + '))*'
2655
+ : token.pattern;
2656
+ if (keys)
2657
+ keys.push(token);
2658
+ if (token.optional) {
2659
+ if (token.partial) {
2660
+ route += prefix + '(' + capture + ')?';
2661
+ }
2662
+ else {
2663
+ route += '(?:' + prefix + '(' + capture + '))?';
2664
+ }
2665
+ }
2666
+ else {
2667
+ route += prefix + '(' + capture + ')';
2668
+ }
2669
+ }
2670
+ }
2671
+ if (end) {
2672
+ if (!strict)
2673
+ route += '(?:' + delimiter + ')?';
2674
+ route += endsWith === '$' ? '$' : '(?=' + endsWith + ')';
2675
+ }
2676
+ else {
2677
+ if (!strict)
2678
+ route += '(?:' + delimiter + '(?=' + endsWith + '))?';
2679
+ if (!isEndDelimited)
2680
+ route += '(?=' + delimiter + '|' + endsWith + ')';
2681
+ }
2682
+ return new RegExp('^' + route, flags(options));
2683
+ };
2684
+ /**
2685
+ * Normalize the given path string, returning a regular expression.
2686
+ *
2687
+ * An empty array can be passed in for the keys, which will hold the
2688
+ * placeholder key descriptions. For example, using `/user/:id`, `keys` will
2689
+ * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.
2690
+ */
2691
+ const pathToRegexp = (path, keys, options) => {
2692
+ if (path instanceof RegExp) {
2693
+ return regexpToRegexp(path, keys);
2694
+ }
2695
+ if (Array.isArray(path)) {
2696
+ return arrayToRegexp(path, keys, options);
2697
+ }
2698
+ return stringToRegexp(path, keys, options);
2699
+ };
2700
+
2701
+ let cacheCount = 0;
2702
+ const patternCache = {};
2703
+ const cacheLimit = 10000;
2704
+ // Memoized function for creating the path match regex
2705
+ const compilePath = (pattern, options) => {
2706
+ const cacheKey = `${options.end}${options.strict}`;
2707
+ const cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});
2708
+ const cachePattern = JSON.stringify(pattern);
2709
+ if (cache[cachePattern]) {
2710
+ return cache[cachePattern];
2711
+ }
2712
+ const keys = [];
2713
+ const re = pathToRegexp(pattern, keys, options);
2714
+ const compiledPattern = { re, keys };
2715
+ if (cacheCount < cacheLimit) {
2716
+ cache[cachePattern] = compiledPattern;
2717
+ cacheCount += 1;
2718
+ }
2719
+ return compiledPattern;
2720
+ };
2721
+ const match = (pathname, options = {}) => {
2722
+ const { exact = false, strict = false } = options;
2723
+ const { re, keys } = compilePath(pathname, { end: exact, strict });
2724
+ return (path) => {
2725
+ const match = re.exec(path);
2726
+ if (!match) {
2727
+ return undefined;
2728
+ }
2729
+ const [url, ...values] = match;
2730
+ const isExact = path === url;
2731
+ if (exact && !isExact) {
2732
+ return undefined;
2733
+ }
2734
+ return keys.reduce((memo, key, index) => {
2735
+ memo[key.name] = values[index];
2736
+ return memo;
2737
+ }, {});
2738
+ };
2739
+ };
2740
+
2741
+ const Router = createRouter();
2742
+ const PosRouter = class {
2743
+ constructor(hostRef) {
2744
+ registerInstance(this, hostRef);
2745
+ }
2746
+ linkClicked(e) {
2747
+ this.navigate(e.detail);
2748
+ }
2749
+ componentWillLoad() {
2750
+ this.updateUri();
2751
+ Router.onChange('url', () => {
2752
+ this.updateUri();
2753
+ });
2754
+ }
2755
+ navigate(uri) {
2756
+ Router.push('?uri=' + encodeURIComponent(uri));
2757
+ }
2758
+ updateUri() {
2759
+ this.uri = new URLSearchParams(window.location.search).get('uri') || window.location.href;
2760
+ }
2761
+ render() {
2762
+ console.log('render router', this.uri);
2763
+ return (h(Router.Switch, null, h(Route, { path: match('', { exact: false }) }, h("pos-resource", { key: this.uri, uri: this.uri }, h("pos-app-generic", null)))));
2764
+ }
2765
+ };
2766
+
2767
+ export { App as ion_app, Button as ion_button, Card as ion_card, CardContent as ion_card_content, CardHeader as ion_card_header, CardTitle as ion_card_title, Col as ion_col, Content as ion_content, Footer as ion_footer, Grid as ion_grid, Header as ion_header, Icon as ion_icon, Item as ion_item, ItemDivider as ion_item_divider, ItemGroup as ion_item_group, Label as ion_label, List as ion_list, ProgressBar as ion_progress_bar, RippleEffect as ion_ripple_effect, Row as ion_row, ToolbarTitle as ion_title, Toolbar as ion_toolbar, PosApp as pos_app, PosAppGeneric as pos_app_generic, PosDemoApp as pos_demo_app, PosDescription as pos_description, PosLabel as pos_label, PosLiterals as pos_literals, PosLogin as pos_login, PosRelations as pos_relations, PosResource as pos_resource, PosReverseRelations as pos_reverse_relations, PosRichLink as pos_rich_link, PosRouter as pos_router };