@pod-os/elements 0.17.1-fef97c9.0 → 0.18.1-a971174.0

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 (457) hide show
  1. package/dist/cjs/elements.cjs.js +1 -1
  2. package/dist/cjs/ion-app.cjs.entry.js +114 -0
  3. package/dist/cjs/ion-app.cjs.entry.js.map +1 -0
  4. package/dist/cjs/ion-badge_11.cjs.entry.js +1 -1
  5. package/dist/cjs/{ion-app_32.cjs.entry.js → ion-card_26.cjs.entry.js} +48 -1380
  6. package/dist/cjs/ion-card_26.cjs.entry.js.map +1 -0
  7. package/dist/cjs/ion-content.cjs.entry.js +416 -0
  8. package/dist/cjs/ion-content.cjs.entry.js.map +1 -0
  9. package/dist/cjs/ion-footer.cjs.entry.js +144 -0
  10. package/dist/cjs/ion-footer.cjs.entry.js.map +1 -0
  11. package/dist/cjs/ion-header.cjs.entry.js +346 -0
  12. package/dist/cjs/ion-header.cjs.entry.js.map +1 -0
  13. package/dist/cjs/ion-title.cjs.entry.js +58 -0
  14. package/dist/cjs/ion-title.cjs.entry.js.map +1 -0
  15. package/dist/cjs/ion-toolbar.cjs.entry.js +79 -0
  16. package/dist/cjs/ion-toolbar.cjs.entry.js.map +1 -0
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/cjs/pos-app-generic.cjs.entry.js +1 -1
  19. package/dist/cjs/pos-app-ldp-container.cjs.entry.js +1 -1
  20. package/dist/cjs/pos-app-rdf-document.cjs.entry.js +1 -1
  21. package/dist/collection/apps/pos-app-browser/pos-app-browser.css +64 -0
  22. package/dist/collection/apps/pos-app-browser/pos-app-browser.js +33 -2
  23. package/dist/collection/apps/pos-app-browser/pos-app-browser.js.map +1 -1
  24. package/dist/collection/apps/pos-app-generic/pos-app-generic.js +1 -1
  25. package/dist/collection/apps/pos-app-ldp-container/pos-app-ldp-container.js +1 -1
  26. package/dist/collection/apps/pos-app-rdf-document/pos-app-rdf-document.js +1 -1
  27. package/dist/collection/components/pos-add-new-thing/pos-add-new-thing.js +1 -1
  28. package/dist/collection/components/pos-app/pos-app.js +1 -1
  29. package/dist/collection/components/pos-dialog/pos-dialog.js +1 -1
  30. package/dist/collection/components/pos-error-toast/pos-error-toast.js +1 -1
  31. package/dist/collection/components/pos-literals/pos-literals.js +1 -1
  32. package/dist/collection/components/pos-login/pos-login.css +13 -9
  33. package/dist/collection/components/pos-login/pos-login.js +1 -1
  34. package/dist/collection/components/pos-login/pos-login.js.map +1 -1
  35. package/dist/collection/components/pos-login-form/pos-login-form.js +1 -1
  36. package/dist/collection/components/pos-navigation-bar/pos-navigation-bar.js +1 -1
  37. package/dist/collection/components/pos-new-thing-form/pos-new-thing-form.js +1 -1
  38. package/dist/collection/components/pos-rich-link/pos-rich-link.js +2 -2
  39. package/dist/collection/components/pos-router/pos-router.js +26 -2
  40. package/dist/collection/components/pos-router/pos-router.js.map +1 -1
  41. package/dist/collection/components/pos-select-term/pos-select-term.js +1 -1
  42. package/dist/components/ion-app.js +121 -1
  43. package/dist/components/ion-app.js.map +1 -1
  44. package/dist/components/ion-content.js +436 -1
  45. package/dist/components/ion-content.js.map +1 -1
  46. package/dist/components/ion-footer.js +150 -1
  47. package/dist/components/ion-footer.js.map +1 -1
  48. package/dist/components/ion-header.js +354 -1
  49. package/dist/components/ion-header.js.map +1 -1
  50. package/dist/components/ion-title.js +70 -1
  51. package/dist/components/ion-title.js.map +1 -1
  52. package/dist/components/ion-toolbar.js +88 -1
  53. package/dist/components/ion-toolbar.js.map +1 -1
  54. package/dist/components/pos-add-new-thing2.js +1 -1
  55. package/dist/components/pos-app-browser.js +40 -55
  56. package/dist/components/pos-app-browser.js.map +1 -1
  57. package/dist/components/pos-app-generic.js +1 -1
  58. package/dist/components/pos-app-ldp-container.js +1 -1
  59. package/dist/components/pos-app-rdf-document.js +1 -1
  60. package/dist/components/pos-app2.js +1 -1
  61. package/dist/components/pos-dialog2.js +1 -1
  62. package/dist/components/pos-error-toast2.js +1 -1
  63. package/dist/components/pos-literals2.js +1 -1
  64. package/dist/components/pos-login-form2.js +1 -1
  65. package/dist/components/pos-login2.js +2 -2
  66. package/dist/components/pos-login2.js.map +1 -1
  67. package/dist/components/pos-navigation-bar2.js +1 -1
  68. package/dist/components/pos-new-thing-form2.js +1 -1
  69. package/dist/components/pos-rich-link2.js +2 -2
  70. package/dist/components/pos-router2.js +6 -375
  71. package/dist/components/pos-router2.js.map +1 -1
  72. package/dist/components/pos-select-term2.js +1 -1
  73. package/dist/elements/elements.css +1 -1
  74. package/dist/elements/elements.esm.js +1 -1
  75. package/dist/elements/elements.esm.js.map +1 -1
  76. package/dist/elements/p-00ce08f0.entry.js +2 -0
  77. package/dist/elements/{p-546a0100.entry.js.map → p-00ce08f0.entry.js.map} +1 -1
  78. package/dist/elements/p-012387ef.js +5 -0
  79. package/dist/elements/{p-e06dbbcc.entry.js → p-0133f543.entry.js} +2 -2
  80. package/dist/elements/p-05e3c2f1.entry.js +2 -0
  81. package/dist/elements/{p-d5ff3d36.entry.js.map → p-05e3c2f1.entry.js.map} +1 -1
  82. package/dist/elements/{p-3aeb707f.entry.js → p-09a7b8e1.entry.js} +2 -2
  83. package/dist/elements/{p-86136480.entry.js → p-11ad53dd.entry.js} +2 -2
  84. package/dist/elements/{p-9365c31d.entry.js → p-122324d9.entry.js} +2 -2
  85. package/dist/elements/{p-530932bb.js → p-163e3e87.js} +2 -2
  86. package/dist/elements/{p-9b56d918.js → p-18d4a4f4.js} +3 -3
  87. package/dist/elements/{p-b90d29b6.entry.js → p-18d9c4f7.entry.js} +2 -2
  88. package/dist/elements/{p-69d9dbbf.entry.js → p-1a90b8bb.entry.js} +2 -2
  89. package/dist/elements/{p-02b4f408.entry.js → p-1f36a3c0.entry.js} +2 -2
  90. package/dist/elements/{p-c7ac1d8b.entry.js → p-200707c8.entry.js} +6 -6
  91. package/dist/elements/{p-78982008.entry.js → p-2072bd89.entry.js} +2 -2
  92. package/dist/elements/{p-170a54a2.js → p-20e2e8c1.js} +3 -3
  93. package/dist/elements/{p-9e7f0522.js → p-25270f1a.js} +2 -2
  94. package/dist/elements/p-27e8c19d.entry.js +2 -0
  95. package/dist/elements/{p-909f0d6e.entry.js.map → p-27e8c19d.entry.js.map} +1 -1
  96. package/dist/elements/p-27ec1e73.entry.js +2 -0
  97. package/dist/elements/{p-c4a822b5.entry.js → p-28b1f2dc.entry.js} +2 -2
  98. package/dist/elements/{p-4d47eeb5.js → p-2a17fd31.js} +2 -2
  99. package/dist/elements/{p-8d4278bb.entry.js → p-2adb9784.entry.js} +2 -2
  100. package/dist/elements/p-2f85baae.entry.js +2 -0
  101. package/dist/elements/{p-e3d72483.entry.js.map → p-2f85baae.entry.js.map} +1 -1
  102. package/dist/elements/{p-d212be68.entry.js → p-30685d32.entry.js} +2 -2
  103. package/dist/elements/{p-8e1e3e7d.js → p-359bfe6a.js} +2 -2
  104. package/dist/elements/p-382054bf.entry.js +2 -0
  105. package/dist/elements/p-382054bf.entry.js.map +1 -0
  106. package/dist/elements/{p-bba60e3b.entry.js → p-39cc0ada.entry.js} +2 -2
  107. package/dist/elements/p-4056decf.entry.js +2 -0
  108. package/dist/elements/p-4056decf.entry.js.map +1 -0
  109. package/dist/elements/p-4918fd10.entry.js +2 -0
  110. package/dist/elements/p-4918fd10.entry.js.map +1 -0
  111. package/dist/elements/{p-af43acbb.entry.js → p-4c0808b4.entry.js} +2 -2
  112. package/dist/elements/p-4cf87b24.entry.js +2 -0
  113. package/dist/elements/{p-0edf98c5.entry.js.map → p-4cf87b24.entry.js.map} +1 -1
  114. package/dist/elements/{p-b8ac0ee4.js → p-4d6e48bf.js} +2 -2
  115. package/dist/elements/{p-28ad7b6e.entry.js → p-5298b7a1.entry.js} +2 -2
  116. package/dist/elements/{p-0b1c92f2.entry.js → p-52c87099.entry.js} +2 -2
  117. package/dist/elements/{p-c0eb0e3d.entry.js → p-55fbf5f7.entry.js} +3 -3
  118. package/dist/elements/{p-c0eb0e3d.entry.js.map → p-55fbf5f7.entry.js.map} +1 -1
  119. package/dist/elements/{p-2428b6bf.js → p-592177e8.js} +2 -2
  120. package/dist/elements/{p-8b81a782.js → p-595c0a57.js} +2 -2
  121. package/dist/elements/{p-e32a52ee.js → p-5a248cff.js} +2 -2
  122. package/dist/elements/p-5b933f24.entry.js +2 -0
  123. package/dist/elements/p-5b933f24.entry.js.map +1 -0
  124. package/dist/elements/{p-cc62cb3d.entry.js → p-61a489ee.entry.js} +2 -2
  125. package/dist/elements/p-6ac0c71c.entry.js +2 -0
  126. package/dist/elements/{p-6c9053ed.entry.js → p-6bcba1f6.entry.js} +2 -2
  127. package/dist/elements/{p-ddc13326.entry.js → p-6e2a89ab.entry.js} +2 -2
  128. package/dist/elements/{p-565128c5.entry.js → p-74ebe432.entry.js} +2 -2
  129. package/dist/elements/p-76543de1.entry.js +2 -0
  130. package/dist/elements/{p-d7231d27.entry.js → p-76e7559c.entry.js} +2 -2
  131. package/dist/elements/{p-41e21640.entry.js → p-778d7821.entry.js} +6 -6
  132. package/dist/elements/{p-f941317f.entry.js → p-78ba7248.entry.js} +2 -2
  133. package/dist/elements/{p-6579450f.js → p-7a563988.js} +2 -2
  134. package/dist/elements/{p-3c2b721e.js → p-7f507bcb.js} +2 -2
  135. package/dist/elements/p-7fb554a5.entry.js +2 -0
  136. package/dist/elements/{p-cc274814.entry.js.map → p-7fb554a5.entry.js.map} +1 -1
  137. package/dist/elements/p-8206b1f1.js +6 -0
  138. package/dist/elements/{p-b097a0ac.entry.js → p-82fb9396.entry.js} +2 -2
  139. package/dist/elements/{p-d86e6e48.entry.js → p-8817e69b.entry.js} +2 -2
  140. package/dist/elements/p-8865cb08.entry.js +2 -0
  141. package/dist/elements/{p-0951f046.entry.js → p-8b9b339b.entry.js} +2 -2
  142. package/dist/elements/{p-553217d4.entry.js → p-8b9b7f79.entry.js} +2 -2
  143. package/dist/elements/{p-86eaec56.entry.js → p-8c32e0ab.entry.js} +2 -2
  144. package/dist/elements/p-8fe569b3.entry.js +2 -0
  145. package/dist/elements/p-9090e8dc.entry.js +2 -0
  146. package/dist/elements/p-90f99f85.entry.js +5 -0
  147. package/dist/elements/p-90f99f85.entry.js.map +1 -0
  148. package/dist/elements/{p-fb11bb27.entry.js → p-916a6612.entry.js} +2 -2
  149. package/dist/elements/{p-fa9aa28a.entry.js → p-a68e7901.entry.js} +2 -2
  150. package/dist/elements/p-a88c6bd6.entry.js +2 -0
  151. package/dist/elements/{p-f05a0cca.entry.js.map → p-a88c6bd6.entry.js.map} +1 -1
  152. package/dist/elements/{p-69410d36.js → p-a91046dc.js} +3 -3
  153. package/dist/elements/{p-325e5484.entry.js → p-aad12400.entry.js} +2 -2
  154. package/dist/elements/{p-58418838.entry.js → p-ab92e9ad.entry.js} +2 -2
  155. package/dist/elements/{p-d01e6782.entry.js → p-af3f8ab1.entry.js} +2 -2
  156. package/dist/elements/p-b11e8f77.entry.js +2 -0
  157. package/dist/elements/{p-77d82071.entry.js → p-b19890bd.entry.js} +2 -2
  158. package/dist/elements/p-b1d0e1fe.entry.js +5 -0
  159. package/dist/{components/header.js.map → elements/p-b1d0e1fe.entry.js.map} +1 -1
  160. package/dist/elements/{p-573b7dca.entry.js → p-b227f4a8.entry.js} +2 -2
  161. package/dist/elements/p-b8b9096d.entry.js +2 -0
  162. package/dist/elements/p-b8b9096d.entry.js.map +1 -0
  163. package/dist/elements/{p-134b66b6.js → p-bb3054a3.js} +6 -6
  164. package/dist/elements/p-bc5eefc4.entry.js +2 -0
  165. package/dist/elements/{p-b115ebcf.entry.js.map → p-bc5eefc4.entry.js.map} +1 -1
  166. package/dist/elements/{p-56bf9fdf.js → p-c2690129.js} +2 -2
  167. package/dist/elements/{p-8b0695a7.entry.js → p-c445f3ac.entry.js} +2 -2
  168. package/dist/elements/{p-2ba30f60.entry.js → p-c9faf4da.entry.js} +2 -2
  169. package/dist/elements/p-ca453b3d.js +8 -0
  170. package/dist/elements/p-cc23946c.entry.js +2 -0
  171. package/dist/elements/{p-4342e2ef.entry.js.map → p-cc23946c.entry.js.map} +1 -1
  172. package/dist/elements/{p-c23172a0.entry.js → p-cd9107d1.entry.js} +2 -2
  173. package/dist/elements/{p-9b369d09.js → p-cebe59d4.js} +2 -2
  174. package/dist/elements/{p-b67ce91f.entry.js → p-cfec477d.entry.js} +2 -2
  175. package/dist/elements/{p-1c69ca01.js → p-d0fcc589.js} +2 -2
  176. package/dist/elements/{p-257248f2.entry.js → p-d2458575.entry.js} +2 -2
  177. package/dist/elements/p-d2e7f4d4.entry.js +2 -0
  178. package/dist/elements/p-d65caf7a.entry.js +2 -0
  179. package/dist/elements/{p-acbfc962.entry.js.map → p-d65caf7a.entry.js.map} +1 -1
  180. package/dist/elements/{p-3505dfe2.js → p-d6769f21.js} +2 -2
  181. package/dist/elements/{p-a1a15808.entry.js → p-d6bf2b98.entry.js} +2 -2
  182. package/dist/elements/{p-75cbc833.entry.js → p-d86570da.entry.js} +2 -2
  183. package/dist/elements/p-d8e8bd9b.entry.js +2 -0
  184. package/dist/elements/p-d8fc8b11.js +2 -0
  185. package/dist/elements/{p-0ddd5da3.entry.js → p-da5f6dcd.entry.js} +3 -3
  186. package/dist/elements/{p-ab5544fc.entry.js → p-db793eec.entry.js} +2 -2
  187. package/dist/elements/p-db973275.js +5 -0
  188. package/dist/elements/{p-5f2c1e33.entry.js → p-e134ddc9.entry.js} +2 -2
  189. package/dist/elements/{p-0752ec21.entry.js → p-e3ae9b45.entry.js} +2 -2
  190. package/dist/elements/p-e5cefd56.entry.js +2 -0
  191. package/dist/elements/{p-64af0b46.entry.js.map → p-e5cefd56.entry.js.map} +1 -1
  192. package/dist/elements/{p-ad2273d6.js → p-ecdb52e8.js} +2 -2
  193. package/dist/elements/{p-2dddbb15.js → p-f1ef82a9.js} +4 -4
  194. package/dist/elements/p-f4440338.entry.js +2 -0
  195. package/dist/elements/{p-5bd948fa.entry.js → p-f981858f.entry.js} +2 -2
  196. package/dist/elements/{p-f6b92b3c.entry.js → p-fd200088.entry.js} +2 -2
  197. package/dist/elements/{p-b56ae71f.entry.js → p-fdeb6a78.entry.js} +3 -3
  198. package/dist/esm/{BrokenFile-0cbdf2f2.js → BrokenFile-660171a9.js} +2 -2
  199. package/dist/esm/{BrokenFile-0cbdf2f2.js.map → BrokenFile-660171a9.js.map} +1 -1
  200. package/dist/esm/{animation-0dedebd7.js → animation-8c622dae.js} +2 -2
  201. package/dist/esm/{animation-0dedebd7.js.map → animation-8c622dae.js.map} +1 -1
  202. package/dist/esm/{app-globals-8441b381.js → app-globals-a35b051d.js} +2 -2
  203. package/dist/esm/{app-globals-8441b381.js.map → app-globals-a35b051d.js.map} +1 -1
  204. package/dist/esm/{data-3bd275a7.js → data-cdc9b206.js} +2 -2
  205. package/dist/esm/{data-3bd275a7.js.map → data-cdc9b206.js.map} +1 -1
  206. package/dist/esm/elements.js +5 -5
  207. package/dist/esm/{form-controller-ba097a73.js → form-controller-1f70ed52.js} +2 -2
  208. package/dist/esm/{form-controller-ba097a73.js.map → form-controller-1f70ed52.js.map} +1 -1
  209. package/dist/esm/{framework-delegate-0ffa1682.js → framework-delegate-b5751311.js} +2 -2
  210. package/dist/esm/{framework-delegate-0ffa1682.js.map → framework-delegate-b5751311.js.map} +1 -1
  211. package/dist/esm/{hardware-back-button-80e72d27.js → hardware-back-button-e34ddb75.js} +3 -3
  212. package/dist/esm/{hardware-back-button-80e72d27.js.map → hardware-back-button-e34ddb75.js.map} +1 -1
  213. package/dist/esm/{helpers-ad2d8971.js → helpers-a93a8cd2.js} +2 -2
  214. package/dist/esm/{helpers-ad2d8971.js.map → helpers-a93a8cd2.js.map} +1 -1
  215. package/dist/esm/{index-141ce7d0.js → index-1e601862.js} +5 -5
  216. package/dist/esm/{index-141ce7d0.js.map → index-1e601862.js.map} +1 -1
  217. package/dist/esm/{index-38b2da1b.js → index-432e7c6f.js} +3 -3
  218. package/dist/esm/{index-38b2da1b.js.map → index-432e7c6f.js.map} +1 -1
  219. package/dist/esm/{index-46b2983b.js → index-538226d8.js} +2 -2
  220. package/dist/esm/{index-46b2983b.js.map → index-538226d8.js.map} +1 -1
  221. package/dist/esm/{index-049cf01c.js → index-e9b97538.js} +6 -6
  222. package/dist/esm/{index-049cf01c.js.map → index-e9b97538.js.map} +1 -1
  223. package/dist/esm/{index-c043b4c8.js → index-f69a875d.js} +2 -2
  224. package/dist/esm/{index-c043b4c8.js.map → index-f69a875d.js.map} +1 -1
  225. package/dist/esm/{index-bec78e8b.js → index-f7ac0403.js} +2 -2
  226. package/dist/esm/{index-bec78e8b.js.map → index-f7ac0403.js.map} +1 -1
  227. package/dist/esm/{input-shims-2246db96.js → input-shims-212ee02f.js} +4 -4
  228. package/dist/esm/{input-shims-2246db96.js.map → input-shims-212ee02f.js.map} +1 -1
  229. package/dist/esm/{input.utils-8550a81d.js → input.utils-d2c917c3.js} +3 -3
  230. package/dist/esm/{input.utils-8550a81d.js.map → input.utils-d2c917c3.js.map} +1 -1
  231. package/dist/esm/ion-accordion-group.entry.js +3 -3
  232. package/dist/esm/ion-accordion.entry.js +3 -3
  233. package/dist/esm/ion-action-sheet_3.entry.js +8 -8
  234. package/dist/{components/app.js → esm/ion-app.entry.js} +20 -35
  235. package/dist/esm/ion-app.entry.js.map +1 -0
  236. package/dist/esm/ion-avatar.entry.js +2 -2
  237. package/dist/esm/ion-back-button.entry.js +3 -3
  238. package/dist/esm/ion-backdrop.entry.js +2 -2
  239. package/dist/esm/ion-badge_11.entry.js +8 -8
  240. package/dist/esm/ion-breadcrumb.entry.js +3 -3
  241. package/dist/esm/ion-breadcrumbs.entry.js +2 -2
  242. package/dist/esm/ion-button_4.entry.js +4 -4
  243. package/dist/esm/ion-card-subtitle.entry.js +2 -2
  244. package/dist/esm/{ion-app_32.entry.js → ion-card_26.entry.js} +48 -1374
  245. package/dist/esm/ion-card_26.entry.js.map +1 -0
  246. package/dist/esm/ion-checkbox_4.entry.js +5 -5
  247. package/dist/esm/ion-chip.entry.js +2 -2
  248. package/dist/{components/content.js → esm/ion-content.entry.js} +14 -42
  249. package/dist/esm/ion-content.entry.js.map +1 -0
  250. package/dist/esm/ion-datetime-button.entry.js +5 -5
  251. package/dist/esm/ion-datetime.entry.js +5 -5
  252. package/dist/esm/ion-fab-button.entry.js +3 -3
  253. package/dist/esm/ion-fab-list.entry.js +2 -2
  254. package/dist/esm/ion-fab.entry.js +2 -2
  255. package/dist/{components/footer.js → esm/ion-footer.entry.js} +20 -34
  256. package/dist/esm/ion-footer.entry.js.map +1 -0
  257. package/dist/{components/header.js → esm/ion-header.entry.js} +17 -33
  258. package/dist/esm/ion-header.entry.js.map +1 -0
  259. package/dist/esm/ion-img.entry.js +3 -3
  260. package/dist/esm/ion-infinite-scroll-content.entry.js +2 -2
  261. package/dist/esm/ion-infinite-scroll.entry.js +5 -5
  262. package/dist/esm/ion-item-option.entry.js +2 -2
  263. package/dist/esm/ion-item-options.entry.js +3 -3
  264. package/dist/esm/ion-item-sliding.entry.js +5 -5
  265. package/dist/esm/ion-item_4.entry.js +4 -4
  266. package/dist/esm/ion-loading.entry.js +8 -8
  267. package/dist/esm/ion-menu-button.entry.js +8 -8
  268. package/dist/esm/ion-menu-toggle.entry.js +8 -8
  269. package/dist/esm/ion-menu.entry.js +9 -9
  270. package/dist/esm/ion-modal.entry.js +10 -10
  271. package/dist/esm/ion-nav-link.entry.js +1 -1
  272. package/dist/esm/ion-nav.entry.js +6 -6
  273. package/dist/esm/ion-picker-column.entry.js +3 -3
  274. package/dist/esm/ion-picker.entry.js +8 -8
  275. package/dist/esm/ion-popover.entry.js +9 -9
  276. package/dist/esm/ion-range.entry.js +6 -6
  277. package/dist/esm/ion-refresher-content.entry.js +5 -5
  278. package/dist/esm/ion-refresher.entry.js +7 -7
  279. package/dist/esm/ion-reorder-group.entry.js +5 -5
  280. package/dist/esm/ion-reorder.entry.js +2 -2
  281. package/dist/esm/ion-route-redirect.entry.js +1 -1
  282. package/dist/esm/ion-route.entry.js +1 -1
  283. package/dist/esm/ion-router-link.entry.js +2 -2
  284. package/dist/esm/ion-router-outlet.entry.js +6 -6
  285. package/dist/esm/ion-router.entry.js +2 -2
  286. package/dist/esm/ion-segment-button.entry.js +3 -3
  287. package/dist/esm/ion-segment.entry.js +3 -3
  288. package/dist/esm/ion-select-option.entry.js +2 -2
  289. package/dist/esm/ion-select.entry.js +9 -9
  290. package/dist/esm/ion-spinner.entry.js +2 -2
  291. package/dist/esm/ion-split-pane.entry.js +2 -2
  292. package/dist/esm/ion-tab-bar.entry.js +2 -2
  293. package/dist/esm/ion-tab-button.entry.js +3 -3
  294. package/dist/esm/ion-tab.entry.js +3 -3
  295. package/dist/esm/ion-tabs.entry.js +1 -1
  296. package/dist/esm/ion-text.entry.js +2 -2
  297. package/dist/esm/ion-textarea.entry.js +7 -7
  298. package/dist/esm/ion-thumbnail.entry.js +2 -2
  299. package/dist/{components/title.js → esm/ion-title.entry.js} +14 -34
  300. package/dist/esm/ion-title.entry.js.map +1 -0
  301. package/dist/esm/ion-toast.entry.js +8 -8
  302. package/dist/esm/ion-toggle.entry.js +5 -5
  303. package/dist/{components/toolbar.js → esm/ion-toolbar.entry.js} +14 -31
  304. package/dist/esm/ion-toolbar.entry.js.map +1 -0
  305. package/dist/esm/{ionic-global-006bfdaa.js → ionic-global-163eb7af.js} +2 -2
  306. package/dist/esm/{ionic-global-006bfdaa.js.map → ionic-global-163eb7af.js.map} +1 -1
  307. package/dist/esm/{ios.transition-e19293f7.js → ios.transition-0236708a.js} +5 -5
  308. package/dist/esm/{ios.transition-e19293f7.js.map → ios.transition-0236708a.js.map} +1 -1
  309. package/dist/esm/loader.js +5 -5
  310. package/dist/esm/{md.transition-d72e937f.js → md.transition-e93291da.js} +5 -5
  311. package/dist/esm/{md.transition-d72e937f.js.map → md.transition-e93291da.js.map} +1 -1
  312. package/dist/esm/{menu-toggle-util-dca4ccca.js → menu-toggle-util-a0afc829.js} +2 -2
  313. package/dist/esm/{menu-toggle-util-dca4ccca.js.map → menu-toggle-util-a0afc829.js.map} +1 -1
  314. package/dist/esm/{notch-controller-18232ec1.js → notch-controller-ae856621.js} +2 -2
  315. package/dist/esm/{notch-controller-18232ec1.js.map → notch-controller-ae856621.js.map} +1 -1
  316. package/dist/esm/{overlays-f768dabb.js → overlays-708b9a6f.js} +6 -6
  317. package/dist/esm/{overlays-f768dabb.js.map → overlays-708b9a6f.js.map} +1 -1
  318. package/dist/esm/pos-app-document-viewer.entry.js +1 -1
  319. package/dist/esm/pos-app-generic.entry.js +2 -2
  320. package/dist/esm/pos-app-image-viewer.entry.js +1 -1
  321. package/dist/esm/pos-app-ldp-container.entry.js +2 -2
  322. package/dist/esm/pos-app-rdf-document.entry.js +2 -2
  323. package/dist/esm/pos-container-contents.entry.js +1 -1
  324. package/dist/esm/pos-container-item.entry.js +1 -1
  325. package/dist/esm/pos-document.entry.js +2 -2
  326. package/dist/esm/pos-relations_2.entry.js +1 -1
  327. package/dist/esm/pos-subjects.entry.js +1 -1
  328. package/dist/esm/pos-value.entry.js +1 -1
  329. package/dist/esm/{refresher.utils-5cd2771a.js → refresher.utils-e3624272.js} +4 -4
  330. package/dist/esm/{refresher.utils-5cd2771a.js.map → refresher.utils-e3624272.js.map} +1 -1
  331. package/dist/esm/{status-tap-96ab3acb.js → status-tap-9b757300.js} +5 -5
  332. package/dist/esm/{status-tap-96ab3acb.js.map → status-tap-9b757300.js.map} +1 -1
  333. package/dist/esm/{swipe-back-44f8b09c.js → swipe-back-5993fe10.js} +2 -2
  334. package/dist/esm/{swipe-back-44f8b09c.js.map → swipe-back-5993fe10.js.map} +1 -1
  335. package/dist/types/apps/pos-app-browser/pos-app-browser.d.ts +1 -0
  336. package/dist/types/components/pos-router/pos-router.d.ts +10 -0
  337. package/dist/types/components.d.ts +39 -0
  338. package/package.json +1 -1
  339. package/dist/cjs/ion-app_32.cjs.entry.js.map +0 -1
  340. package/dist/components/app.js.map +0 -1
  341. package/dist/components/content.js.map +0 -1
  342. package/dist/components/footer.js.map +0 -1
  343. package/dist/components/title.js.map +0 -1
  344. package/dist/components/toolbar.js.map +0 -1
  345. package/dist/elements/p-089421d7.entry.js +0 -8
  346. package/dist/elements/p-089421d7.entry.js.map +0 -1
  347. package/dist/elements/p-0edf98c5.entry.js +0 -2
  348. package/dist/elements/p-0feec79b.js +0 -6
  349. package/dist/elements/p-118e0bed.entry.js +0 -2
  350. package/dist/elements/p-2fa5ecde.js +0 -8
  351. package/dist/elements/p-4342e2ef.entry.js +0 -2
  352. package/dist/elements/p-546a0100.entry.js +0 -2
  353. package/dist/elements/p-5f19bcb1.entry.js +0 -2
  354. package/dist/elements/p-64af0b46.entry.js +0 -2
  355. package/dist/elements/p-7e36887e.js +0 -5
  356. package/dist/elements/p-86f80c54.entry.js +0 -2
  357. package/dist/elements/p-89b3cdad.entry.js +0 -2
  358. package/dist/elements/p-8eb42424.entry.js +0 -2
  359. package/dist/elements/p-8f98459a.entry.js +0 -2
  360. package/dist/elements/p-909f0d6e.entry.js +0 -2
  361. package/dist/elements/p-963acf5e.entry.js +0 -2
  362. package/dist/elements/p-9b3608b6.entry.js +0 -2
  363. package/dist/elements/p-acbfc962.entry.js +0 -2
  364. package/dist/elements/p-b115ebcf.entry.js +0 -2
  365. package/dist/elements/p-cc274814.entry.js +0 -2
  366. package/dist/elements/p-d3a247bd.entry.js +0 -2
  367. package/dist/elements/p-d5ff3d36.entry.js +0 -2
  368. package/dist/elements/p-de267699.js +0 -2
  369. package/dist/elements/p-e3734616.entry.js +0 -2
  370. package/dist/elements/p-e3d72483.entry.js +0 -2
  371. package/dist/elements/p-f05a0cca.entry.js +0 -2
  372. package/dist/elements/p-f82feb40.js +0 -5
  373. package/dist/esm/ion-app_32.entry.js.map +0 -1
  374. /package/dist/elements/{p-f82feb40.js.map → p-012387ef.js.map} +0 -0
  375. /package/dist/elements/{p-e06dbbcc.entry.js.map → p-0133f543.entry.js.map} +0 -0
  376. /package/dist/elements/{p-3aeb707f.entry.js.map → p-09a7b8e1.entry.js.map} +0 -0
  377. /package/dist/elements/{p-86136480.entry.js.map → p-11ad53dd.entry.js.map} +0 -0
  378. /package/dist/elements/{p-9365c31d.entry.js.map → p-122324d9.entry.js.map} +0 -0
  379. /package/dist/elements/{p-530932bb.js.map → p-163e3e87.js.map} +0 -0
  380. /package/dist/elements/{p-9b56d918.js.map → p-18d4a4f4.js.map} +0 -0
  381. /package/dist/elements/{p-b90d29b6.entry.js.map → p-18d9c4f7.entry.js.map} +0 -0
  382. /package/dist/elements/{p-69d9dbbf.entry.js.map → p-1a90b8bb.entry.js.map} +0 -0
  383. /package/dist/elements/{p-02b4f408.entry.js.map → p-1f36a3c0.entry.js.map} +0 -0
  384. /package/dist/elements/{p-c7ac1d8b.entry.js.map → p-200707c8.entry.js.map} +0 -0
  385. /package/dist/elements/{p-78982008.entry.js.map → p-2072bd89.entry.js.map} +0 -0
  386. /package/dist/elements/{p-170a54a2.js.map → p-20e2e8c1.js.map} +0 -0
  387. /package/dist/elements/{p-9e7f0522.js.map → p-25270f1a.js.map} +0 -0
  388. /package/dist/elements/{p-5f19bcb1.entry.js.map → p-27ec1e73.entry.js.map} +0 -0
  389. /package/dist/elements/{p-c4a822b5.entry.js.map → p-28b1f2dc.entry.js.map} +0 -0
  390. /package/dist/elements/{p-4d47eeb5.js.map → p-2a17fd31.js.map} +0 -0
  391. /package/dist/elements/{p-8d4278bb.entry.js.map → p-2adb9784.entry.js.map} +0 -0
  392. /package/dist/elements/{p-d212be68.entry.js.map → p-30685d32.entry.js.map} +0 -0
  393. /package/dist/elements/{p-8e1e3e7d.js.map → p-359bfe6a.js.map} +0 -0
  394. /package/dist/elements/{p-bba60e3b.entry.js.map → p-39cc0ada.entry.js.map} +0 -0
  395. /package/dist/elements/{p-af43acbb.entry.js.map → p-4c0808b4.entry.js.map} +0 -0
  396. /package/dist/elements/{p-b8ac0ee4.js.map → p-4d6e48bf.js.map} +0 -0
  397. /package/dist/elements/{p-28ad7b6e.entry.js.map → p-5298b7a1.entry.js.map} +0 -0
  398. /package/dist/elements/{p-0b1c92f2.entry.js.map → p-52c87099.entry.js.map} +0 -0
  399. /package/dist/elements/{p-2428b6bf.js.map → p-592177e8.js.map} +0 -0
  400. /package/dist/elements/{p-8b81a782.js.map → p-595c0a57.js.map} +0 -0
  401. /package/dist/elements/{p-e32a52ee.js.map → p-5a248cff.js.map} +0 -0
  402. /package/dist/elements/{p-cc62cb3d.entry.js.map → p-61a489ee.entry.js.map} +0 -0
  403. /package/dist/elements/{p-118e0bed.entry.js.map → p-6ac0c71c.entry.js.map} +0 -0
  404. /package/dist/elements/{p-6c9053ed.entry.js.map → p-6bcba1f6.entry.js.map} +0 -0
  405. /package/dist/elements/{p-ddc13326.entry.js.map → p-6e2a89ab.entry.js.map} +0 -0
  406. /package/dist/elements/{p-565128c5.entry.js.map → p-74ebe432.entry.js.map} +0 -0
  407. /package/dist/elements/{p-89b3cdad.entry.js.map → p-76543de1.entry.js.map} +0 -0
  408. /package/dist/elements/{p-d7231d27.entry.js.map → p-76e7559c.entry.js.map} +0 -0
  409. /package/dist/elements/{p-41e21640.entry.js.map → p-778d7821.entry.js.map} +0 -0
  410. /package/dist/elements/{p-f941317f.entry.js.map → p-78ba7248.entry.js.map} +0 -0
  411. /package/dist/elements/{p-6579450f.js.map → p-7a563988.js.map} +0 -0
  412. /package/dist/elements/{p-3c2b721e.js.map → p-7f507bcb.js.map} +0 -0
  413. /package/dist/elements/{p-0feec79b.js.map → p-8206b1f1.js.map} +0 -0
  414. /package/dist/elements/{p-b097a0ac.entry.js.map → p-82fb9396.entry.js.map} +0 -0
  415. /package/dist/elements/{p-d86e6e48.entry.js.map → p-8817e69b.entry.js.map} +0 -0
  416. /package/dist/elements/{p-86f80c54.entry.js.map → p-8865cb08.entry.js.map} +0 -0
  417. /package/dist/elements/{p-0951f046.entry.js.map → p-8b9b339b.entry.js.map} +0 -0
  418. /package/dist/elements/{p-553217d4.entry.js.map → p-8b9b7f79.entry.js.map} +0 -0
  419. /package/dist/elements/{p-86eaec56.entry.js.map → p-8c32e0ab.entry.js.map} +0 -0
  420. /package/dist/elements/{p-8f98459a.entry.js.map → p-8fe569b3.entry.js.map} +0 -0
  421. /package/dist/elements/{p-e3734616.entry.js.map → p-9090e8dc.entry.js.map} +0 -0
  422. /package/dist/elements/{p-fb11bb27.entry.js.map → p-916a6612.entry.js.map} +0 -0
  423. /package/dist/elements/{p-fa9aa28a.entry.js.map → p-a68e7901.entry.js.map} +0 -0
  424. /package/dist/elements/{p-69410d36.js.map → p-a91046dc.js.map} +0 -0
  425. /package/dist/elements/{p-325e5484.entry.js.map → p-aad12400.entry.js.map} +0 -0
  426. /package/dist/elements/{p-58418838.entry.js.map → p-ab92e9ad.entry.js.map} +0 -0
  427. /package/dist/elements/{p-d01e6782.entry.js.map → p-af3f8ab1.entry.js.map} +0 -0
  428. /package/dist/elements/{p-8eb42424.entry.js.map → p-b11e8f77.entry.js.map} +0 -0
  429. /package/dist/elements/{p-77d82071.entry.js.map → p-b19890bd.entry.js.map} +0 -0
  430. /package/dist/elements/{p-573b7dca.entry.js.map → p-b227f4a8.entry.js.map} +0 -0
  431. /package/dist/elements/{p-134b66b6.js.map → p-bb3054a3.js.map} +0 -0
  432. /package/dist/elements/{p-56bf9fdf.js.map → p-c2690129.js.map} +0 -0
  433. /package/dist/elements/{p-8b0695a7.entry.js.map → p-c445f3ac.entry.js.map} +0 -0
  434. /package/dist/elements/{p-2ba30f60.entry.js.map → p-c9faf4da.entry.js.map} +0 -0
  435. /package/dist/elements/{p-2fa5ecde.js.map → p-ca453b3d.js.map} +0 -0
  436. /package/dist/elements/{p-c23172a0.entry.js.map → p-cd9107d1.entry.js.map} +0 -0
  437. /package/dist/elements/{p-9b369d09.js.map → p-cebe59d4.js.map} +0 -0
  438. /package/dist/elements/{p-b67ce91f.entry.js.map → p-cfec477d.entry.js.map} +0 -0
  439. /package/dist/elements/{p-1c69ca01.js.map → p-d0fcc589.js.map} +0 -0
  440. /package/dist/elements/{p-257248f2.entry.js.map → p-d2458575.entry.js.map} +0 -0
  441. /package/dist/elements/{p-9b3608b6.entry.js.map → p-d2e7f4d4.entry.js.map} +0 -0
  442. /package/dist/elements/{p-3505dfe2.js.map → p-d6769f21.js.map} +0 -0
  443. /package/dist/elements/{p-a1a15808.entry.js.map → p-d6bf2b98.entry.js.map} +0 -0
  444. /package/dist/elements/{p-75cbc833.entry.js.map → p-d86570da.entry.js.map} +0 -0
  445. /package/dist/elements/{p-963acf5e.entry.js.map → p-d8e8bd9b.entry.js.map} +0 -0
  446. /package/dist/elements/{p-de267699.js.map → p-d8fc8b11.js.map} +0 -0
  447. /package/dist/elements/{p-0ddd5da3.entry.js.map → p-da5f6dcd.entry.js.map} +0 -0
  448. /package/dist/elements/{p-ab5544fc.entry.js.map → p-db793eec.entry.js.map} +0 -0
  449. /package/dist/elements/{p-7e36887e.js.map → p-db973275.js.map} +0 -0
  450. /package/dist/elements/{p-5f2c1e33.entry.js.map → p-e134ddc9.entry.js.map} +0 -0
  451. /package/dist/elements/{p-0752ec21.entry.js.map → p-e3ae9b45.entry.js.map} +0 -0
  452. /package/dist/elements/{p-ad2273d6.js.map → p-ecdb52e8.js.map} +0 -0
  453. /package/dist/elements/{p-2dddbb15.js.map → p-f1ef82a9.js.map} +0 -0
  454. /package/dist/elements/{p-d3a247bd.entry.js.map → p-f4440338.entry.js.map} +0 -0
  455. /package/dist/elements/{p-5bd948fa.entry.js.map → p-f981858f.entry.js.map} +0 -0
  456. /package/dist/elements/{p-f6b92b3c.entry.js.map → p-fd200088.entry.js.map} +0 -0
  457. /package/dist/elements/{p-b56ae71f.entry.js.map → p-fdeb6a78.entry.js.map} +0 -0
@@ -3,126 +3,21 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-b86da440.js');
6
- const hardwareBackButton = require('./hardware-back-button-7f7e29d9.js');
7
- const index$1 = require('./index-5fa17650.js');
8
- const ionicGlobal = require('./ionic-global-dcebbee3.js');
9
6
  const helpers = require('./helpers-95c22e6d.js');
10
7
  const theme = require('./theme-187bbc7d.js');
8
+ const ionicGlobal = require('./ionic-global-dcebbee3.js');
11
9
  const dir = require('./dir-e6b438e6.js');
12
- const index$2 = require('./index-223c32ee.js');
13
- const keyboardController = require('./keyboard-controller-736f8327.js');
14
- const index$3 = require('./index-3129b55a.js');
10
+ const index$1 = require('./index-3129b55a.js');
15
11
  const BrokenFile = require('./BrokenFile-426cd057.js');
16
- const index$4 = require('./index-480a0aeb.js');
12
+ const index$2 = require('./index-480a0aeb.js');
17
13
  const ResourceAware = require('./ResourceAware-7b6501ae.js');
18
14
  require('./gesture-controller-85b9b0a5.js');
19
15
  const overlays = require('./overlays-a44ab21f.js');
20
16
  const PodOsAware = require('./PodOsAware-a16ddb44.js');
21
17
  require('./index-957a289d.js');
22
- require('./keyboard-227ae91c.js');
23
- require('./capacitor-5139e8a2.js');
18
+ require('./hardware-back-button-7f7e29d9.js');
24
19
  require('./framework-delegate-a257df68.js');
25
-
26
- 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}";
27
- const IonAppStyle0 = appCss;
28
-
29
- const App = class {
30
- constructor(hostRef) {
31
- index.registerInstance(this, hostRef);
32
- }
33
- componentDidLoad() {
34
- {
35
- rIC(async () => {
36
- const isHybrid = ionicGlobal.isPlatform(window, 'hybrid');
37
- if (!ionicGlobal.config.getBoolean('_testing')) {
38
- Promise.resolve().then(function () { return require('./index-865239c9.js'); }).then((module) => module.startTapClick(ionicGlobal.config));
39
- }
40
- if (ionicGlobal.config.getBoolean('statusTap', isHybrid)) {
41
- Promise.resolve().then(function () { return require('./status-tap-9a8ade8f.js'); }).then((module) => module.startStatusTap());
42
- }
43
- if (ionicGlobal.config.getBoolean('inputShims', needInputShims())) {
44
- /**
45
- * needInputShims() ensures that only iOS and Android
46
- * platforms proceed into this block.
47
- */
48
- const platform = ionicGlobal.isPlatform(window, 'ios') ? 'ios' : 'android';
49
- Promise.resolve().then(function () { return require('./input-shims-650ba6be.js'); }).then((module) => module.startInputShims(ionicGlobal.config, platform));
50
- }
51
- const hardwareBackButtonModule = await Promise.resolve().then(function () { return require('./hardware-back-button-7f7e29d9.js'); });
52
- const supportsHardwareBackButtonEvents = isHybrid || hardwareBackButton.shouldUseCloseWatcher();
53
- if (ionicGlobal.config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
54
- hardwareBackButtonModule.startHardwareBackButton();
55
- }
56
- else {
57
- /**
58
- * If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
59
- * then the close watcher will not be used.
60
- */
61
- if (hardwareBackButton.shouldUseCloseWatcher()) {
62
- index$1.printIonWarning('experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.');
63
- }
64
- hardwareBackButtonModule.blockHardwareBackButton();
65
- }
66
- if (typeof window !== 'undefined') {
67
- Promise.resolve().then(function () { return require('./keyboard-172ec2d9.js'); }).then((module) => module.startKeyboardAssist(window));
68
- }
69
- Promise.resolve().then(function () { return require('./focus-visible-f844cf9d.js'); }).then((module) => (this.focusVisible = module.startFocusVisible()));
70
- });
71
- }
72
- }
73
- /**
74
- * @internal
75
- * Used to set focus on an element that uses `ion-focusable`.
76
- * Do not use this if focusing the element as a result of a keyboard
77
- * event as the focus utility should handle this for us. This method
78
- * should be used when we want to programmatically focus an element as
79
- * a result of another user action. (Ex: We focus the first element
80
- * inside of a popover when the user presents it, but the popover is not always
81
- * presented as a result of keyboard action.)
82
- */
83
- async setFocus(elements) {
84
- if (this.focusVisible) {
85
- this.focusVisible.setFocus(elements);
86
- }
87
- }
88
- render() {
89
- const mode = ionicGlobal.getIonMode(this);
90
- return (index.h(index.Host, { key: '6d7c57453b4be454690e8f1a0721f1e3da8f92aa', class: {
91
- [mode]: true,
92
- 'ion-page': true,
93
- 'force-statusbar-padding': ionicGlobal.config.getBoolean('_forceStatusbarPadding'),
94
- } }));
95
- }
96
- get el() { return index.getElement(this); }
97
- };
98
- const needInputShims = () => {
99
- /**
100
- * iOS always needs input shims
101
- */
102
- const needsShimsIOS = ionicGlobal.isPlatform(window, 'ios') && ionicGlobal.isPlatform(window, 'mobile');
103
- if (needsShimsIOS) {
104
- return true;
105
- }
106
- /**
107
- * Android only needs input shims when running
108
- * in the browser and only if the browser is using the
109
- * new Chrome 108+ resize behavior: https://developer.chrome.com/blog/viewport-resize-behavior/
110
- */
111
- const isAndroidMobileWeb = ionicGlobal.isPlatform(window, 'android') && ionicGlobal.isPlatform(window, 'mobileweb');
112
- if (isAndroidMobileWeb) {
113
- return true;
114
- }
115
- return false;
116
- };
117
- const rIC = (callback) => {
118
- if ('requestIdleCallback' in window) {
119
- window.requestIdleCallback(callback);
120
- }
121
- else {
122
- setTimeout(callback, 32);
123
- }
124
- };
125
- App.style = IonAppStyle0;
20
+ require('./index-5fa17650.js');
126
21
 
127
22
  const cardIosCss = ":host{--ion-safe-area-left:0px;--ion-safe-area-right:0px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;overflow:hidden}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.card-disabled){cursor:default;opacity:0.3;pointer-events:none}.card-native{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;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;min-height:var(--min-height);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:inherit}.card-native::-moz-focus-inner{border:0}button,a{cursor:pointer;user-select:none;-webkit-user-drag:none}ion-ripple-effect{color:var(--ripple-color)}:host{--background:var(--ion-card-background, var(--ion-item-background, var(--ion-background-color, #fff)));--color:var(--ion-card-color, var(--ion-item-color, var(--ion-color-step-600, #666666)));-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:24px;margin-bottom:24px;border-radius:8px;transition:transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);font-size:0.875rem;box-shadow:0 4px 16px rgba(0, 0, 0, 0.12)}:host(.ion-activated){transform:scale3d(0.97, 0.97, 1)}";
128
23
  const IonCardIosStyle0 = cardIosCss;
@@ -233,868 +128,6 @@ CardHeader.style = {
233
128
  md: IonCardHeaderMdStyle0
234
129
  };
235
130
 
236
- 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);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end: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;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.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;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;transform:translateZ(0)}";
237
- const IonContentStyle0 = contentCss;
238
-
239
- const Content = class {
240
- constructor(hostRef) {
241
- index.registerInstance(this, hostRef);
242
- this.ionScrollStart = index.createEvent(this, "ionScrollStart", 7);
243
- this.ionScroll = index.createEvent(this, "ionScroll", 7);
244
- this.ionScrollEnd = index.createEvent(this, "ionScrollEnd", 7);
245
- this.watchDog = null;
246
- this.isScrolling = false;
247
- this.lastScroll = 0;
248
- this.queued = false;
249
- this.cTop = -1;
250
- this.cBottom = -1;
251
- this.isMainContent = true;
252
- this.resizeTimeout = null;
253
- this.tabsElement = null;
254
- // Detail is used in a hot loop in the scroll event, by allocating it here
255
- // V8 will be able to inline any read/write to it since it's a monomorphic class.
256
- // https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html
257
- this.detail = {
258
- scrollTop: 0,
259
- scrollLeft: 0,
260
- type: 'scroll',
261
- event: undefined,
262
- startX: 0,
263
- startY: 0,
264
- startTime: 0,
265
- currentX: 0,
266
- currentY: 0,
267
- velocityX: 0,
268
- velocityY: 0,
269
- deltaX: 0,
270
- deltaY: 0,
271
- currentTime: 0,
272
- data: undefined,
273
- isScrolling: true,
274
- };
275
- this.color = undefined;
276
- this.fullscreen = false;
277
- this.forceOverscroll = undefined;
278
- this.scrollX = false;
279
- this.scrollY = true;
280
- this.scrollEvents = false;
281
- }
282
- connectedCallback() {
283
- this.isMainContent = this.el.closest('ion-menu, ion-popover, ion-modal') === null;
284
- /**
285
- * The fullscreen content offsets need to be
286
- * computed after the tab bar has loaded. Since
287
- * lazy evaluation means components are not hydrated
288
- * at the same time, we need to wait for the ionTabBarLoaded
289
- * event to fire. This does not impact dist-custom-elements
290
- * because there is no hydration there.
291
- */
292
- if (helpers.hasLazyBuild(this.el)) {
293
- /**
294
- * We need to cache the reference to the tabs.
295
- * If just the content is unmounted then we won't
296
- * be able to query for the closest tabs on disconnectedCallback
297
- * since the content has been removed from the DOM tree.
298
- */
299
- const closestTabs = (this.tabsElement = this.el.closest('ion-tabs'));
300
- if (closestTabs !== null) {
301
- /**
302
- * When adding and removing the event listener
303
- * we need to make sure we pass the same function reference
304
- * otherwise the event listener will not be removed properly.
305
- * We can't only pass `this.resize` because "this" in the function
306
- * context becomes a reference to IonTabs instead of IonContent.
307
- *
308
- * Additionally, we listen for ionTabBarLoaded on the IonTabs
309
- * instance rather than the IonTabBar instance. It's possible for
310
- * a tab bar to be conditionally rendered/mounted. Since ionTabBarLoaded
311
- * bubbles, we can catch any instances of child tab bars loading by listening
312
- * on IonTabs.
313
- */
314
- this.tabsLoadCallback = () => this.resize();
315
- closestTabs.addEventListener('ionTabBarLoaded', this.tabsLoadCallback);
316
- }
317
- }
318
- }
319
- disconnectedCallback() {
320
- this.onScrollEnd();
321
- if (helpers.hasLazyBuild(this.el)) {
322
- /**
323
- * The event listener and tabs caches need to
324
- * be cleared otherwise this will create a memory
325
- * leak where the IonTabs instance can never be
326
- * garbage collected.
327
- */
328
- const { tabsElement, tabsLoadCallback } = this;
329
- if (tabsElement !== null && tabsLoadCallback !== undefined) {
330
- tabsElement.removeEventListener('ionTabBarLoaded', tabsLoadCallback);
331
- }
332
- this.tabsElement = null;
333
- this.tabsLoadCallback = undefined;
334
- }
335
- }
336
- /**
337
- * Rotating certain devices can update
338
- * the safe area insets. As a result,
339
- * the fullscreen feature on ion-content
340
- * needs to be recalculated.
341
- *
342
- * We listen for "resize" because we
343
- * do not care what the orientation of
344
- * the device is. Other APIs
345
- * such as ScreenOrientation or
346
- * the deviceorientation event must have
347
- * permission from the user first whereas
348
- * the "resize" event does not.
349
- *
350
- * We also throttle the callback to minimize
351
- * thrashing when quickly resizing a window.
352
- */
353
- onResize() {
354
- if (this.resizeTimeout) {
355
- clearTimeout(this.resizeTimeout);
356
- this.resizeTimeout = null;
357
- }
358
- this.resizeTimeout = setTimeout(() => {
359
- /**
360
- * Resize should only happen
361
- * if the content is visible.
362
- * When the content is hidden
363
- * then offsetParent will be null.
364
- */
365
- if (this.el.offsetParent === null) {
366
- return;
367
- }
368
- this.resize();
369
- }, 100);
370
- }
371
- shouldForceOverscroll() {
372
- const { forceOverscroll } = this;
373
- const mode = ionicGlobal.getIonMode(this);
374
- return forceOverscroll === undefined ? mode === 'ios' && ionicGlobal.isPlatform('ios') : forceOverscroll;
375
- }
376
- resize() {
377
- /**
378
- * Only force update if the component is rendered in a browser context.
379
- * Using `forceUpdate` in a server context with pre-rendering can lead to an infinite loop.
380
- * The `hydrateDocument` function in `@stencil/core` will render the `ion-content`, but
381
- * `forceUpdate` will trigger another render, locking up the server.
382
- *
383
- * TODO: Remove if STENCIL-834 determines Stencil will account for this.
384
- */
385
- {
386
- if (this.fullscreen) {
387
- index.readTask(() => this.readDimensions());
388
- }
389
- else if (this.cTop !== 0 || this.cBottom !== 0) {
390
- this.cTop = this.cBottom = 0;
391
- index.forceUpdate(this);
392
- }
393
- }
394
- }
395
- readDimensions() {
396
- const page = getPageElement(this.el);
397
- const top = Math.max(this.el.offsetTop, 0);
398
- const bottom = Math.max(page.offsetHeight - top - this.el.offsetHeight, 0);
399
- const dirty = top !== this.cTop || bottom !== this.cBottom;
400
- if (dirty) {
401
- this.cTop = top;
402
- this.cBottom = bottom;
403
- index.forceUpdate(this);
404
- }
405
- }
406
- onScroll(ev) {
407
- const timeStamp = Date.now();
408
- const shouldStart = !this.isScrolling;
409
- this.lastScroll = timeStamp;
410
- if (shouldStart) {
411
- this.onScrollStart();
412
- }
413
- if (!this.queued && this.scrollEvents) {
414
- this.queued = true;
415
- index.readTask((ts) => {
416
- this.queued = false;
417
- this.detail.event = ev;
418
- updateScrollDetail(this.detail, this.scrollEl, ts, shouldStart);
419
- this.ionScroll.emit(this.detail);
420
- });
421
- }
422
- }
423
- /**
424
- * Get the element where the actual scrolling takes place.
425
- * This element can be used to subscribe to `scroll` events or manually modify
426
- * `scrollTop`. However, it's recommended to use the API provided by `ion-content`:
427
- *
428
- * i.e. Using `ionScroll`, `ionScrollStart`, `ionScrollEnd` for scrolling events
429
- * and `scrollToPoint()` to scroll the content into a certain point.
430
- */
431
- async getScrollElement() {
432
- /**
433
- * If this gets called in certain early lifecycle hooks (ex: Vue onMounted),
434
- * scrollEl won't be defined yet with the custom elements build, so wait for it to load in.
435
- */
436
- if (!this.scrollEl) {
437
- await new Promise((resolve) => helpers.componentOnReady(this.el, resolve));
438
- }
439
- return Promise.resolve(this.scrollEl);
440
- }
441
- /**
442
- * Returns the background content element.
443
- * @internal
444
- */
445
- async getBackgroundElement() {
446
- if (!this.backgroundContentEl) {
447
- await new Promise((resolve) => helpers.componentOnReady(this.el, resolve));
448
- }
449
- return Promise.resolve(this.backgroundContentEl);
450
- }
451
- /**
452
- * Scroll to the top of the component.
453
- *
454
- * @param duration The amount of time to take scrolling to the top. Defaults to `0`.
455
- */
456
- scrollToTop(duration = 0) {
457
- return this.scrollToPoint(undefined, 0, duration);
458
- }
459
- /**
460
- * Scroll to the bottom of the component.
461
- *
462
- * @param duration The amount of time to take scrolling to the bottom. Defaults to `0`.
463
- */
464
- async scrollToBottom(duration = 0) {
465
- const scrollEl = await this.getScrollElement();
466
- const y = scrollEl.scrollHeight - scrollEl.clientHeight;
467
- return this.scrollToPoint(undefined, y, duration);
468
- }
469
- /**
470
- * Scroll by a specified X/Y distance in the component.
471
- *
472
- * @param x The amount to scroll by on the horizontal axis.
473
- * @param y The amount to scroll by on the vertical axis.
474
- * @param duration The amount of time to take scrolling by that amount.
475
- */
476
- async scrollByPoint(x, y, duration) {
477
- const scrollEl = await this.getScrollElement();
478
- return this.scrollToPoint(x + scrollEl.scrollLeft, y + scrollEl.scrollTop, duration);
479
- }
480
- /**
481
- * Scroll to a specified X/Y location in the component.
482
- *
483
- * @param x The point to scroll to on the horizontal axis.
484
- * @param y The point to scroll to on the vertical axis.
485
- * @param duration The amount of time to take scrolling to that point. Defaults to `0`.
486
- */
487
- async scrollToPoint(x, y, duration = 0) {
488
- const el = await this.getScrollElement();
489
- if (duration < 32) {
490
- if (y != null) {
491
- el.scrollTop = y;
492
- }
493
- if (x != null) {
494
- el.scrollLeft = x;
495
- }
496
- return;
497
- }
498
- let resolve;
499
- let startTime = 0;
500
- const promise = new Promise((r) => (resolve = r));
501
- const fromY = el.scrollTop;
502
- const fromX = el.scrollLeft;
503
- const deltaY = y != null ? y - fromY : 0;
504
- const deltaX = x != null ? x - fromX : 0;
505
- // scroll loop
506
- const step = (timeStamp) => {
507
- const linearTime = Math.min(1, (timeStamp - startTime) / duration) - 1;
508
- const easedT = Math.pow(linearTime, 3) + 1;
509
- if (deltaY !== 0) {
510
- el.scrollTop = Math.floor(easedT * deltaY + fromY);
511
- }
512
- if (deltaX !== 0) {
513
- el.scrollLeft = Math.floor(easedT * deltaX + fromX);
514
- }
515
- if (easedT < 1) {
516
- // do not use DomController here
517
- // must use nativeRaf in order to fire in the next frame
518
- requestAnimationFrame(step);
519
- }
520
- else {
521
- resolve();
522
- }
523
- };
524
- // chill out for a frame first
525
- requestAnimationFrame((ts) => {
526
- startTime = ts;
527
- step(ts);
528
- });
529
- return promise;
530
- }
531
- onScrollStart() {
532
- this.isScrolling = true;
533
- this.ionScrollStart.emit({
534
- isScrolling: true,
535
- });
536
- if (this.watchDog) {
537
- clearInterval(this.watchDog);
538
- }
539
- // watchdog
540
- this.watchDog = setInterval(() => {
541
- if (this.lastScroll < Date.now() - 120) {
542
- this.onScrollEnd();
543
- }
544
- }, 100);
545
- }
546
- onScrollEnd() {
547
- if (this.watchDog)
548
- clearInterval(this.watchDog);
549
- this.watchDog = null;
550
- if (this.isScrolling) {
551
- this.isScrolling = false;
552
- this.ionScrollEnd.emit({
553
- isScrolling: false,
554
- });
555
- }
556
- }
557
- render() {
558
- const { isMainContent, scrollX, scrollY, el } = this;
559
- const rtl = dir.isRTL(el) ? 'rtl' : 'ltr';
560
- const mode = ionicGlobal.getIonMode(this);
561
- const forceOverscroll = this.shouldForceOverscroll();
562
- const transitionShadow = mode === 'ios';
563
- const TagType = isMainContent ? 'main' : 'div';
564
- this.resize();
565
- return (index.h(index.Host, { key: 'e13815c0e6f6095150b112d3a1aaf2f509aa0d0b', class: theme.createColorClasses(this.color, {
566
- [mode]: true,
567
- 'content-sizing': theme.hostContext('ion-popover', this.el),
568
- overscroll: forceOverscroll,
569
- [`content-${rtl}`]: true,
570
- }), style: {
571
- '--offset-top': `${this.cTop}px`,
572
- '--offset-bottom': `${this.cBottom}px`,
573
- } }, index.h("div", { key: '8006c4a10d8f7dc83c646246961d018a8097236e', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), index.h(TagType, { key: '4dd2f58421493f7a4ca42f8f5d7b85cda8e320ea', class: {
574
- 'inner-scroll': true,
575
- 'scroll-x': scrollX,
576
- 'scroll-y': scrollY,
577
- overscroll: (scrollX || scrollY) && forceOverscroll,
578
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, index.h("slot", { key: '37904f8f1d8319156cd901feb21930ef674fe0f7' })), transitionShadow ? (index.h("div", { class: "transition-effect" }, index.h("div", { class: "transition-cover" }), index.h("div", { class: "transition-shadow" }))) : null, index.h("slot", { key: '8f696583903af0548d064dca1a6bae060e127485', name: "fixed" })));
579
- }
580
- get el() { return index.getElement(this); }
581
- };
582
- const getParentElement = (el) => {
583
- var _a;
584
- if (el.parentElement) {
585
- // normal element with a parent element
586
- return el.parentElement;
587
- }
588
- if ((_a = el.parentNode) === null || _a === void 0 ? void 0 : _a.host) {
589
- // shadow dom's document fragment
590
- return el.parentNode.host;
591
- }
592
- return null;
593
- };
594
- const getPageElement = (el) => {
595
- const tabs = el.closest('ion-tabs');
596
- if (tabs) {
597
- return tabs;
598
- }
599
- /**
600
- * If we're in a popover, we need to use its wrapper so we can account for space
601
- * between the popover and the edges of the screen. But if the popover contains
602
- * its own page element, we should use that instead.
603
- */
604
- const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
605
- if (page) {
606
- return page;
607
- }
608
- return getParentElement(el);
609
- };
610
- // ******** DOM READ ****************
611
- const updateScrollDetail = (detail, el, timestamp, shouldStart) => {
612
- const prevX = detail.currentX;
613
- const prevY = detail.currentY;
614
- const prevT = detail.currentTime;
615
- const currentX = el.scrollLeft;
616
- const currentY = el.scrollTop;
617
- const timeDelta = timestamp - prevT;
618
- if (shouldStart) {
619
- // remember the start positions
620
- detail.startTime = timestamp;
621
- detail.startX = currentX;
622
- detail.startY = currentY;
623
- detail.velocityX = detail.velocityY = 0;
624
- }
625
- detail.currentTime = timestamp;
626
- detail.currentX = detail.scrollLeft = currentX;
627
- detail.currentY = detail.scrollTop = currentY;
628
- detail.deltaX = currentX - detail.startX;
629
- detail.deltaY = currentY - detail.startY;
630
- if (timeDelta > 0 && timeDelta < 100) {
631
- const velocityX = (currentX - prevX) / timeDelta;
632
- const velocityY = (currentY - prevY) / timeDelta;
633
- detail.velocityX = velocityX * 0.7 + detail.velocityX * 0.3;
634
- detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;
635
- }
636
- };
637
- Content.style = IonContentStyle0;
638
-
639
- /*!
640
- * (C) Ionic http://ionicframework.com - MIT License
641
- */
642
- const handleFooterFade = (scrollEl, baseEl) => {
643
- index.readTask(() => {
644
- const scrollTop = scrollEl.scrollTop;
645
- const maxScroll = scrollEl.scrollHeight - scrollEl.clientHeight;
646
- /**
647
- * Toolbar background will fade
648
- * out over fadeDuration in pixels.
649
- */
650
- const fadeDuration = 10;
651
- /**
652
- * Begin fading out maxScroll - 30px
653
- * from the bottom of the content.
654
- * Also determine how close we are
655
- * to starting the fade. If we are
656
- * before the starting point, the
657
- * scale value will get clamped to 0.
658
- * If we are after the maxScroll (rubber
659
- * band scrolling), the scale value will
660
- * get clamped to 1.
661
- */
662
- const fadeStart = maxScroll - fadeDuration;
663
- const distanceToStart = scrollTop - fadeStart;
664
- const scale = helpers.clamp(0, 1 - distanceToStart / fadeDuration, 1);
665
- index.writeTask(() => {
666
- baseEl.style.setProperty('--opacity-scale', scale.toString());
667
- });
668
- });
669
- };
670
-
671
- const footerIosCss = "ion-footer{display:block;position:relative;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports (backdrop-filter: blur(0)){.footer-background{left:0;right:0;top:0;bottom:0;position:absolute;backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}";
672
- const IonFooterIosStyle0 = footerIosCss;
673
-
674
- const footerMdCss = "ion-footer{display:block;position:relative;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-md{box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.ion-no-border{box-shadow:none}";
675
- const IonFooterMdStyle0 = footerMdCss;
676
-
677
- const Footer = class {
678
- constructor(hostRef) {
679
- index.registerInstance(this, hostRef);
680
- this.keyboardCtrl = null;
681
- this.checkCollapsibleFooter = () => {
682
- const mode = ionicGlobal.getIonMode(this);
683
- if (mode !== 'ios') {
684
- return;
685
- }
686
- const { collapse } = this;
687
- const hasFade = collapse === 'fade';
688
- this.destroyCollapsibleFooter();
689
- if (hasFade) {
690
- const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
691
- const contentEl = pageEl ? index$2.findIonContent(pageEl) : null;
692
- if (!contentEl) {
693
- index$2.printIonContentErrorMsg(this.el);
694
- return;
695
- }
696
- this.setupFadeFooter(contentEl);
697
- }
698
- };
699
- this.setupFadeFooter = async (contentEl) => {
700
- const scrollEl = (this.scrollEl = await index$2.getScrollElement(contentEl));
701
- /**
702
- * Handle fading of toolbars on scroll
703
- */
704
- this.contentScrollCallback = () => {
705
- handleFooterFade(scrollEl, this.el);
706
- };
707
- scrollEl.addEventListener('scroll', this.contentScrollCallback);
708
- handleFooterFade(scrollEl, this.el);
709
- };
710
- this.keyboardVisible = false;
711
- this.collapse = undefined;
712
- this.translucent = false;
713
- }
714
- componentDidLoad() {
715
- this.checkCollapsibleFooter();
716
- }
717
- componentDidUpdate() {
718
- this.checkCollapsibleFooter();
719
- }
720
- async connectedCallback() {
721
- this.keyboardCtrl = await keyboardController.createKeyboardController(async (keyboardOpen, waitForResize) => {
722
- /**
723
- * If the keyboard is hiding, then we need to wait
724
- * for the webview to resize. Otherwise, the footer
725
- * will flicker before the webview resizes.
726
- */
727
- if (keyboardOpen === false && waitForResize !== undefined) {
728
- await waitForResize;
729
- }
730
- this.keyboardVisible = keyboardOpen; // trigger re-render by updating state
731
- });
732
- }
733
- disconnectedCallback() {
734
- if (this.keyboardCtrl) {
735
- this.keyboardCtrl.destroy();
736
- }
737
- }
738
- destroyCollapsibleFooter() {
739
- if (this.scrollEl && this.contentScrollCallback) {
740
- this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
741
- this.contentScrollCallback = undefined;
742
- }
743
- }
744
- render() {
745
- const { translucent, collapse } = this;
746
- const mode = ionicGlobal.getIonMode(this);
747
- const tabs = this.el.closest('ion-tabs');
748
- const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
749
- return (index.h(index.Host, { key: 'dd8fa96901e8a09759a9621b6513f0492b3a6197', role: "contentinfo", class: {
750
- [mode]: true,
751
- // Used internally for styling
752
- [`footer-${mode}`]: true,
753
- [`footer-translucent`]: translucent,
754
- [`footer-translucent-${mode}`]: translucent,
755
- ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
756
- [`footer-collapse-${collapse}`]: collapse !== undefined,
757
- } }, mode === 'ios' && translucent && index.h("div", { key: '0fbb4ebf8e3951ff399f843dc11aab37fc48f8b7', class: "footer-background" }), index.h("slot", { key: 'ecb14a65e3b6960670446c4428e3095b3231a3b0' })));
758
- }
759
- get el() { return index.getElement(this); }
760
- };
761
- Footer.style = {
762
- ios: IonFooterIosStyle0,
763
- md: IonFooterMdStyle0
764
- };
765
-
766
- /*!
767
- * (C) Ionic http://ionicframework.com - MIT License
768
- */
769
- const TRANSITION = 'all 0.2s ease-in-out';
770
- const cloneElement = (tagName) => {
771
- const getCachedEl = document.querySelector(`${tagName}.ion-cloned-element`);
772
- if (getCachedEl !== null) {
773
- return getCachedEl;
774
- }
775
- const clonedEl = document.createElement(tagName);
776
- clonedEl.classList.add('ion-cloned-element');
777
- clonedEl.style.setProperty('display', 'none');
778
- document.body.appendChild(clonedEl);
779
- return clonedEl;
780
- };
781
- const createHeaderIndex = (headerEl) => {
782
- if (!headerEl) {
783
- return;
784
- }
785
- const toolbars = headerEl.querySelectorAll('ion-toolbar');
786
- return {
787
- el: headerEl,
788
- toolbars: Array.from(toolbars).map((toolbar) => {
789
- const ionTitleEl = toolbar.querySelector('ion-title');
790
- return {
791
- el: toolbar,
792
- background: toolbar.shadowRoot.querySelector('.toolbar-background'),
793
- ionTitleEl,
794
- innerTitleEl: ionTitleEl ? ionTitleEl.shadowRoot.querySelector('.toolbar-title') : null,
795
- ionButtonsEl: Array.from(toolbar.querySelectorAll('ion-buttons')),
796
- };
797
- }),
798
- };
799
- };
800
- const handleContentScroll = (scrollEl, scrollHeaderIndex, contentEl) => {
801
- index.readTask(() => {
802
- const scrollTop = scrollEl.scrollTop;
803
- const scale = helpers.clamp(1, 1 + -scrollTop / 500, 1.1);
804
- // Native refresher should not cause titles to scale
805
- const nativeRefresher = contentEl.querySelector('ion-refresher.refresher-native');
806
- if (nativeRefresher === null) {
807
- index.writeTask(() => {
808
- scaleLargeTitles(scrollHeaderIndex.toolbars, scale);
809
- });
810
- }
811
- });
812
- };
813
- const setToolbarBackgroundOpacity = (headerEl, opacity) => {
814
- /**
815
- * Fading in the backdrop opacity
816
- * should happen after the large title
817
- * has collapsed, so it is handled
818
- * by handleHeaderFade()
819
- */
820
- if (headerEl.collapse === 'fade') {
821
- return;
822
- }
823
- if (opacity === undefined) {
824
- headerEl.style.removeProperty('--opacity-scale');
825
- }
826
- else {
827
- headerEl.style.setProperty('--opacity-scale', opacity.toString());
828
- }
829
- };
830
- const handleToolbarBorderIntersection = (ev, mainHeaderIndex, scrollTop) => {
831
- if (!ev[0].isIntersecting) {
832
- return;
833
- }
834
- /**
835
- * There is a bug in Safari where overflow scrolling on a non-body element
836
- * does not always reset the scrollTop position to 0 when letting go. It will
837
- * set to 1 once the rubber band effect has ended. This causes the background to
838
- * appear slightly on certain app setups.
839
- *
840
- * Additionally, we check if user is rubber banding (scrolling is negative)
841
- * as this can mean they are using pull to refresh. Once the refresher starts,
842
- * the content is transformed which can cause the intersection observer to erroneously
843
- * fire here as well.
844
- */
845
- const scale = ev[0].intersectionRatio > 0.9 || scrollTop <= 0 ? 0 : ((1 - ev[0].intersectionRatio) * 100) / 75;
846
- setToolbarBackgroundOpacity(mainHeaderIndex.el, scale === 1 ? undefined : scale);
847
- };
848
- /**
849
- * If toolbars are intersecting, hide the scrollable toolbar content
850
- * and show the primary toolbar content. If the toolbars are not intersecting,
851
- * hide the primary toolbar content and show the scrollable toolbar content
852
- */
853
- const handleToolbarIntersection = (ev, // TODO(FW-2832): type (IntersectionObserverEntry[] triggers errors which should be sorted)
854
- mainHeaderIndex, scrollHeaderIndex, scrollEl) => {
855
- index.writeTask(() => {
856
- const scrollTop = scrollEl.scrollTop;
857
- handleToolbarBorderIntersection(ev, mainHeaderIndex, scrollTop);
858
- const event = ev[0];
859
- const intersection = event.intersectionRect;
860
- const intersectionArea = intersection.width * intersection.height;
861
- const rootArea = event.rootBounds.width * event.rootBounds.height;
862
- const isPageHidden = intersectionArea === 0 && rootArea === 0;
863
- const leftDiff = Math.abs(intersection.left - event.boundingClientRect.left);
864
- const rightDiff = Math.abs(intersection.right - event.boundingClientRect.right);
865
- const isPageTransitioning = intersectionArea > 0 && (leftDiff >= 5 || rightDiff >= 5);
866
- if (isPageHidden || isPageTransitioning) {
867
- return;
868
- }
869
- if (event.isIntersecting) {
870
- setHeaderActive(mainHeaderIndex, false);
871
- setHeaderActive(scrollHeaderIndex);
872
- }
873
- else {
874
- /**
875
- * There is a bug with IntersectionObserver on Safari
876
- * where `event.isIntersecting === false` when cancelling
877
- * a swipe to go back gesture. Checking the intersection
878
- * x, y, width, and height provides a workaround. This bug
879
- * does not happen when using Safari + Web Animations,
880
- * only Safari + CSS Animations.
881
- */
882
- const hasValidIntersection = (intersection.x === 0 && intersection.y === 0) || (intersection.width !== 0 && intersection.height !== 0);
883
- if (hasValidIntersection && scrollTop > 0) {
884
- setHeaderActive(mainHeaderIndex);
885
- setHeaderActive(scrollHeaderIndex, false);
886
- setToolbarBackgroundOpacity(mainHeaderIndex.el);
887
- }
888
- }
889
- });
890
- };
891
- const setHeaderActive = (headerIndex, active = true) => {
892
- const headerEl = headerIndex.el;
893
- if (active) {
894
- headerEl.classList.remove('header-collapse-condense-inactive');
895
- headerEl.removeAttribute('aria-hidden');
896
- }
897
- else {
898
- headerEl.classList.add('header-collapse-condense-inactive');
899
- headerEl.setAttribute('aria-hidden', 'true');
900
- }
901
- };
902
- const scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {
903
- toolbars.forEach((toolbar) => {
904
- const ionTitle = toolbar.ionTitleEl;
905
- const titleDiv = toolbar.innerTitleEl;
906
- if (!ionTitle || ionTitle.size !== 'large') {
907
- return;
908
- }
909
- titleDiv.style.transition = transition ? TRANSITION : '';
910
- titleDiv.style.transform = `scale3d(${scale}, ${scale}, 1)`;
911
- });
912
- };
913
- const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
914
- index.readTask(() => {
915
- const scrollTop = scrollEl.scrollTop;
916
- const baseElHeight = baseEl.clientHeight;
917
- const fadeStart = condenseHeader ? condenseHeader.clientHeight : 0;
918
- /**
919
- * If we are using fade header with a condense
920
- * header, then the toolbar backgrounds should
921
- * not begin to fade in until the condense
922
- * header has fully collapsed.
923
- *
924
- * Additionally, the main content should not
925
- * overflow out of the container until the
926
- * condense header has fully collapsed. When
927
- * using just the condense header the content
928
- * should overflow out of the container.
929
- */
930
- if (condenseHeader !== null && scrollTop < fadeStart) {
931
- baseEl.style.setProperty('--opacity-scale', '0');
932
- scrollEl.style.setProperty('clip-path', `inset(${baseElHeight}px 0px 0px 0px)`);
933
- return;
934
- }
935
- const distanceToStart = scrollTop - fadeStart;
936
- const fadeDuration = 10;
937
- const scale = helpers.clamp(0, distanceToStart / fadeDuration, 1);
938
- index.writeTask(() => {
939
- scrollEl.style.removeProperty('clip-path');
940
- baseEl.style.setProperty('--opacity-scale', scale.toString());
941
- });
942
- });
943
- };
944
-
945
- const headerIosCss = "ion-header{display:block;position:relative;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports (backdrop-filter: blur(0)){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{--background:var(--ion-background-color, #fff);z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{transition:all 0.2s ease-in-out}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header.header-ios:not(.header-collapse-main):has(~ion-content ion-header.header-ios[collapse=condense],~ion-content ion-header.header-ios.header-collapse-condense){opacity:0}";
946
- const IonHeaderIosStyle0 = headerIosCss;
947
-
948
- const headerMdCss = "ion-header{display:block;position:relative;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md{box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-collapse-condense{display:none}.header-md.ion-no-border{box-shadow:none}";
949
- const IonHeaderMdStyle0 = headerMdCss;
950
-
951
- const Header = class {
952
- constructor(hostRef) {
953
- index.registerInstance(this, hostRef);
954
- this.inheritedAttributes = {};
955
- this.setupFadeHeader = async (contentEl, condenseHeader) => {
956
- const scrollEl = (this.scrollEl = await index$2.getScrollElement(contentEl));
957
- /**
958
- * Handle fading of toolbars on scroll
959
- */
960
- this.contentScrollCallback = () => {
961
- handleHeaderFade(this.scrollEl, this.el, condenseHeader);
962
- };
963
- scrollEl.addEventListener('scroll', this.contentScrollCallback);
964
- handleHeaderFade(this.scrollEl, this.el, condenseHeader);
965
- };
966
- this.collapse = undefined;
967
- this.translucent = false;
968
- }
969
- componentWillLoad() {
970
- this.inheritedAttributes = helpers.inheritAriaAttributes(this.el);
971
- }
972
- componentDidLoad() {
973
- this.checkCollapsibleHeader();
974
- }
975
- componentDidUpdate() {
976
- this.checkCollapsibleHeader();
977
- }
978
- disconnectedCallback() {
979
- this.destroyCollapsibleHeader();
980
- }
981
- async checkCollapsibleHeader() {
982
- const mode = ionicGlobal.getIonMode(this);
983
- if (mode !== 'ios') {
984
- return;
985
- }
986
- const { collapse } = this;
987
- const hasCondense = collapse === 'condense';
988
- const hasFade = collapse === 'fade';
989
- this.destroyCollapsibleHeader();
990
- if (hasCondense) {
991
- const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
992
- const contentEl = pageEl ? index$2.findIonContent(pageEl) : null;
993
- // Cloned elements are always needed in iOS transition
994
- index.writeTask(() => {
995
- const title = cloneElement('ion-title');
996
- title.size = 'large';
997
- cloneElement('ion-back-button');
998
- });
999
- await this.setupCondenseHeader(contentEl, pageEl);
1000
- }
1001
- else if (hasFade) {
1002
- const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1003
- const contentEl = pageEl ? index$2.findIonContent(pageEl) : null;
1004
- if (!contentEl) {
1005
- index$2.printIonContentErrorMsg(this.el);
1006
- return;
1007
- }
1008
- const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"]');
1009
- await this.setupFadeHeader(contentEl, condenseHeader);
1010
- }
1011
- }
1012
- destroyCollapsibleHeader() {
1013
- if (this.intersectionObserver) {
1014
- this.intersectionObserver.disconnect();
1015
- this.intersectionObserver = undefined;
1016
- }
1017
- if (this.scrollEl && this.contentScrollCallback) {
1018
- this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
1019
- this.contentScrollCallback = undefined;
1020
- }
1021
- if (this.collapsibleMainHeader) {
1022
- this.collapsibleMainHeader.classList.remove('header-collapse-main');
1023
- this.collapsibleMainHeader = undefined;
1024
- }
1025
- }
1026
- async setupCondenseHeader(contentEl, pageEl) {
1027
- if (!contentEl || !pageEl) {
1028
- index$2.printIonContentErrorMsg(this.el);
1029
- return;
1030
- }
1031
- if (typeof IntersectionObserver === 'undefined') {
1032
- return;
1033
- }
1034
- this.scrollEl = await index$2.getScrollElement(contentEl);
1035
- const headers = pageEl.querySelectorAll('ion-header');
1036
- this.collapsibleMainHeader = Array.from(headers).find((header) => header.collapse !== 'condense');
1037
- if (!this.collapsibleMainHeader) {
1038
- return;
1039
- }
1040
- const mainHeaderIndex = createHeaderIndex(this.collapsibleMainHeader);
1041
- const scrollHeaderIndex = createHeaderIndex(this.el);
1042
- if (!mainHeaderIndex || !scrollHeaderIndex) {
1043
- return;
1044
- }
1045
- setHeaderActive(mainHeaderIndex, false);
1046
- setToolbarBackgroundOpacity(mainHeaderIndex.el, 0);
1047
- /**
1048
- * Handle interaction between toolbar collapse and
1049
- * showing/hiding content in the primary ion-header
1050
- * as well as progressively showing/hiding the main header
1051
- * border as the top-most toolbar collapses or expands.
1052
- */
1053
- const toolbarIntersection = (ev) => {
1054
- handleToolbarIntersection(ev, mainHeaderIndex, scrollHeaderIndex, this.scrollEl);
1055
- };
1056
- this.intersectionObserver = new IntersectionObserver(toolbarIntersection, {
1057
- root: contentEl,
1058
- threshold: [0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1],
1059
- });
1060
- this.intersectionObserver.observe(scrollHeaderIndex.toolbars[scrollHeaderIndex.toolbars.length - 1].el);
1061
- /**
1062
- * Handle scaling of large iOS titles and
1063
- * showing/hiding border on last toolbar
1064
- * in primary header
1065
- */
1066
- this.contentScrollCallback = () => {
1067
- handleContentScroll(this.scrollEl, scrollHeaderIndex, contentEl);
1068
- };
1069
- this.scrollEl.addEventListener('scroll', this.contentScrollCallback);
1070
- index.writeTask(() => {
1071
- if (this.collapsibleMainHeader !== undefined) {
1072
- this.collapsibleMainHeader.classList.add('header-collapse-main');
1073
- }
1074
- });
1075
- }
1076
- render() {
1077
- const { translucent, inheritedAttributes } = this;
1078
- const mode = ionicGlobal.getIonMode(this);
1079
- const collapse = this.collapse || 'none';
1080
- // banner role must be at top level, so remove role if inside a menu
1081
- const roleType = theme.hostContext('ion-menu', this.el) ? 'none' : 'banner';
1082
- return (index.h(index.Host, Object.assign({ key: '9fa0af97b605f9fe98b13361bc3d1289745c549f', role: roleType, class: {
1083
- [mode]: true,
1084
- // Used internally for styling
1085
- [`header-${mode}`]: true,
1086
- [`header-translucent`]: this.translucent,
1087
- [`header-collapse-${collapse}`]: true,
1088
- [`header-translucent-${mode}`]: this.translucent,
1089
- } }, inheritedAttributes), mode === 'ios' && translucent && index.h("div", { key: '1a780d2625302f2465718e304bdd3794c89c9845', class: "header-background" }), index.h("slot", { key: 'b2b8557b44be40c590bfcc362ac4350f9f8b889e' })));
1090
- }
1091
- get el() { return index.getElement(this); }
1092
- };
1093
- Header.style = {
1094
- ios: IonHeaderIosStyle0,
1095
- md: IonHeaderMdStyle0
1096
- };
1097
-
1098
131
  let CACHED_MAP;
1099
132
  const getIconMap = () => {
1100
133
  if (typeof window === 'undefined') {
@@ -1694,7 +727,7 @@ const Searchbar = class {
1694
727
  this.autocapitalize = 'default';
1695
728
  this.autocomplete = 'off';
1696
729
  this.autocorrect = 'off';
1697
- this.cancelButtonIcon = ionicGlobal.config.get('backButtonIcon', index$3.arrowBackSharp);
730
+ this.cancelButtonIcon = ionicGlobal.config.get('backButtonIcon', index$1.arrowBackSharp);
1698
731
  this.cancelButtonText = 'Cancel';
1699
732
  this.clearIcon = undefined;
1700
733
  this.debounce = undefined;
@@ -1949,8 +982,8 @@ const Searchbar = class {
1949
982
  const { cancelButtonText, autocapitalize } = this;
1950
983
  const animated = this.animated && ionicGlobal.config.getBoolean('animated', true);
1951
984
  const mode = ionicGlobal.getIonMode(this);
1952
- const clearIcon = this.clearIcon || (mode === 'ios' ? index$3.closeCircle : index$3.closeSharp);
1953
- const searchIcon = this.searchIcon || (mode === 'ios' ? index$3.searchOutline : index$3.searchSharp);
985
+ const clearIcon = this.clearIcon || (mode === 'ios' ? index$1.closeCircle : index$1.closeSharp);
986
+ const searchIcon = this.searchIcon || (mode === 'ios' ? index$1.searchOutline : index$1.searchSharp);
1954
987
  const shouldShowCancelButton = this.shouldShowCancelButton();
1955
988
  const cancelButton = this.showCancelButton !== 'never' && (index.h("button", { key: '9c7b4d2e86d9bcd12e57c9a96723d3da598a3773', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, index.h("div", { key: '1c25268a776134cccd29eb752898cb8ac0eed30f', "aria-hidden": "true" }, mode === 'md' ? (index.h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
1956
989
  return (index.h(index.Host, { key: 'feef9fc7e405656e134a76dc037aaaa1a4ce36b4', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: theme.createColorClasses(this.color, {
@@ -2022,121 +1055,6 @@ const SkeletonText = class {
2022
1055
  };
2023
1056
  SkeletonText.style = IonSkeletonTextStyle0;
2024
1057
 
2025
- const titleIosCss = ":host{--color:initial;display:flex;flex:1;align-items:center;transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;transform:translateZ(0);font-size:min(1.0625rem, 20.4px);font-weight:600;text-align:center;box-sizing:border-box;pointer-events:none}@supports (inset-inline-start: 0){:host{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host{left:0}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(:dir(rtl)){left:unset;right:unset;right:0}}}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:min(0.8125rem, 23.4px);font-weight:normal}:host(.title-large){-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:2px;padding-bottom:4px;transform-origin:left center;position:static;align-items:flex-end;min-width:100%;font-size:min(2.125rem, 61.2px);font-weight:700;text-align:start}:host(.title-large.title-rtl){transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000);font-family:var(--ion-font-family)}:host(.title-large) .toolbar-title{transform-origin:inherit;width:auto}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large:dir(rtl)) .toolbar-title{transform-origin:calc(100% - inherit)}}";
2026
- const IonTitleIosStyle0 = titleIosCss;
2027
-
2028
- const titleMdCss = ":host{--color:initial;display:flex;flex:1;align-items:center;transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:0;padding-bottom:0;font-size:1.25rem;font-weight:500;letter-spacing:0.0125em}:host(.title-small){width:100%;height:100%;font-size:0.9375rem;font-weight:normal}";
2029
- const IonTitleMdStyle0 = titleMdCss;
2030
-
2031
- const ToolbarTitle = class {
2032
- constructor(hostRef) {
2033
- index.registerInstance(this, hostRef);
2034
- this.ionStyle = index.createEvent(this, "ionStyle", 7);
2035
- this.color = undefined;
2036
- this.size = undefined;
2037
- }
2038
- sizeChanged() {
2039
- this.emitStyle();
2040
- }
2041
- connectedCallback() {
2042
- this.emitStyle();
2043
- }
2044
- emitStyle() {
2045
- const size = this.getSize();
2046
- this.ionStyle.emit({
2047
- [`title-${size}`]: true,
2048
- });
2049
- }
2050
- getSize() {
2051
- return this.size !== undefined ? this.size : 'default';
2052
- }
2053
- render() {
2054
- const mode = ionicGlobal.getIonMode(this);
2055
- const size = this.getSize();
2056
- return (index.h(index.Host, { key: '6f43362b782ef7d340c241bb66f1469663c03cc1', class: theme.createColorClasses(this.color, {
2057
- [mode]: true,
2058
- [`title-${size}`]: true,
2059
- 'title-rtl': document.dir === 'rtl',
2060
- }) }, index.h("div", { key: '9c3ff1a289e533ee3426b71ab5560fbea3529502', class: "toolbar-title" }, index.h("slot", { key: '50d5cc5a1519ad58f1994d2f8c8f08f62baac1fe' }))));
2061
- }
2062
- get el() { return index.getElement(this); }
2063
- static get watchers() { return {
2064
- "size": ["sizeChanged"]
2065
- }; }
2066
- };
2067
- ToolbarTitle.style = {
2068
- ios: IonTitleIosStyle0,
2069
- md: IonTitleMdStyle0
2070
- };
2071
-
2072
- const toolbarIosCss = ":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:flex;position:relative;flex-direction:row;align-items:center;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, #f7f7f7));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.2))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{flex:1;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){order:2}::slotted([slot=secondary]){order:3}::slotted([slot=primary]){order:5;text-align:end}::slotted([slot=end]){order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{flex-wrap:wrap;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{flex:1;order:8;min-width:100%}";
2073
- const IonToolbarIosStyle0 = toolbarIosCss;
2074
-
2075
- const toolbarMdCss = ":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:flex;position:relative;flex-direction:row;align-items:center;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, #c1c4cd)));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{flex:1;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){order:2}::slotted([slot=secondary]){order:4}::slotted([slot=primary]){order:5;text-align:end}::slotted([slot=end]){order:6;text-align:end}";
2076
- const IonToolbarMdStyle0 = toolbarMdCss;
2077
-
2078
- const Toolbar = class {
2079
- constructor(hostRef) {
2080
- index.registerInstance(this, hostRef);
2081
- this.childrenStyles = new Map();
2082
- this.color = undefined;
2083
- }
2084
- componentWillLoad() {
2085
- const buttons = Array.from(this.el.querySelectorAll('ion-buttons'));
2086
- const firstButtons = buttons.find((button) => {
2087
- return button.slot === 'start';
2088
- });
2089
- if (firstButtons) {
2090
- firstButtons.classList.add('buttons-first-slot');
2091
- }
2092
- const buttonsReversed = buttons.reverse();
2093
- const lastButtons = buttonsReversed.find((button) => button.slot === 'end') ||
2094
- buttonsReversed.find((button) => button.slot === 'primary') ||
2095
- buttonsReversed.find((button) => button.slot === 'secondary');
2096
- if (lastButtons) {
2097
- lastButtons.classList.add('buttons-last-slot');
2098
- }
2099
- }
2100
- childrenStyle(ev) {
2101
- ev.stopPropagation();
2102
- const tagName = ev.target.tagName;
2103
- const updatedStyles = ev.detail;
2104
- const newStyles = {};
2105
- const childStyles = this.childrenStyles.get(tagName) || {};
2106
- let hasStyleChange = false;
2107
- Object.keys(updatedStyles).forEach((key) => {
2108
- const childKey = `toolbar-${key}`;
2109
- const newValue = updatedStyles[key];
2110
- if (newValue !== childStyles[childKey]) {
2111
- hasStyleChange = true;
2112
- }
2113
- if (newValue) {
2114
- newStyles[childKey] = true;
2115
- }
2116
- });
2117
- if (hasStyleChange) {
2118
- this.childrenStyles.set(tagName, newStyles);
2119
- index.forceUpdate(this);
2120
- }
2121
- }
2122
- render() {
2123
- const mode = ionicGlobal.getIonMode(this);
2124
- const childStyles = {};
2125
- this.childrenStyles.forEach((value) => {
2126
- Object.assign(childStyles, value);
2127
- });
2128
- return (index.h(index.Host, { key: '8907ed75fbb2b1dced55c481bba6363f1dca815b', class: Object.assign(Object.assign({}, childStyles), theme.createColorClasses(this.color, {
2129
- [mode]: true,
2130
- 'in-toolbar': theme.hostContext('ion-toolbar', this.el),
2131
- })) }, index.h("div", { key: '6bfa09b08d6517f0d680f53b739854cecd631bc9', class: "toolbar-background" }), index.h("div", { key: '1531bd6dd9e0a5843309bba854b744c453037ad0', class: "toolbar-container" }, index.h("slot", { key: '881b41697d386eae651b019128573f0fa432cd33', name: "start" }), index.h("slot", { key: '64a284e6eae5311ac3125dfadb4bb32bdba9d089', name: "secondary" }), index.h("div", { key: 'c1f47503563b38084b27d7ba54f17ec478482b94', class: "toolbar-content" }, index.h("slot", { key: '9a85acfba72252705619ae32acae9c14f81aa57d' })), index.h("slot", { key: '89e08bd761dc6940dbebc5d06f5f080af204aa72', name: "primary" }), index.h("slot", { key: 'a1cb7d95627f8a3d24dd4b9c11718fc164f53674', name: "end" }))));
2132
- }
2133
- get el() { return index.getElement(this); }
2134
- };
2135
- Toolbar.style = {
2136
- ios: IonToolbarIosStyle0,
2137
- md: IonToolbarMdStyle0
2138
- };
2139
-
2140
1058
  const posAddNewThingCss = ":host{font-family:var(--font-sans);display:block}button#new{cursor:pointer;display:flex;align-items:center;justify-content:center;border:none;width:var(--scale-5);height:var(--scale-5);background-color:var(--pos-primary-color);color:var(--color-grey-50);font-size:var(--scale-6);border-radius:var(--radius-xs)}button#new:hover,button#new:focus{outline:none;filter:brightness(110%);box-shadow:var(--shadow-sm)}pos-new-thing-form{margin:var(--scale-3)}";
2141
1059
  const PosAddNewThingStyle0 = posAddNewThingCss;
2142
1060
 
@@ -2149,13 +1067,13 @@ const PosAddNewThing = class {
2149
1067
  this.dialog.showModal();
2150
1068
  }
2151
1069
  render() {
2152
- return (index.h(index.Host, { key: 'f68aeded06adc5372957f9a75438cfb630d305e9' }, index.h("button", { key: '21216bb0fcbf47fbaafa2435b7f9e41df9412be4', id: "new", title: "Add a new thing", onClick: () => this.openDialog() }, index.h("ion-icon", { key: '58d0dc9ac04ee40cdccc23ce46cc8736767a6bde', name: "add-circle-outline" })), index.h("pos-dialog", { key: 'dde1ef9d4f75860173868088c47f252e98f00288', ref: el => (this.dialog = el) }, index.h("span", { key: 'fb12cccee3d5514cb6db2e329aede9e05183f3c5', slot: "title" }, "Add a new thing"), index.h("pos-new-thing-form", { key: '01949fa90383f62cbe987dd206f837ebfa8d4e55', slot: "content", referenceUri: this.referenceUri }))));
1070
+ return (index.h(index.Host, { key: '2e632aa0d1699b39fd52f178c93bb510ac2d6e91' }, index.h("button", { key: '3830a37cc82868ed6bcbb4b88049da5de1a932c4', id: "new", title: "Add a new thing", onClick: () => this.openDialog() }, index.h("ion-icon", { key: 'efd48bfa658f4d58792e442ede0c22527ac1fb34', name: "add-circle-outline" })), index.h("pos-dialog", { key: '69be02ce0bf6a01ba7c919de67c87acc4a550983', ref: el => (this.dialog = el) }, index.h("span", { key: '8cfc152b49103ed239238af52f7c7de3f18df1b1', slot: "title" }, "Add a new thing"), index.h("pos-new-thing-form", { key: '4780a2a0c7254a577d38deac1d5078e8d5c7f82e', slot: "content", referenceUri: this.referenceUri }))));
2153
1071
  }
2154
1072
  };
2155
1073
  PosAddNewThing.style = PosAddNewThingStyle0;
2156
1074
 
2157
1075
  const createPodOS = () => {
2158
- return new index$4.PodOS();
1076
+ return new index$2.PodOS();
2159
1077
  };
2160
1078
 
2161
1079
  function isFunction(value) {
@@ -3122,19 +2040,39 @@ const PosApp = class {
3122
2040
  }
3123
2041
  }
3124
2042
  render() {
3125
- return index.h("slot", { key: 'd44bd56f5036b319e90964aa8cb2c0ab60046f46' });
2043
+ return index.h("slot", { key: '0c1dd123a984543004e73308e33bab0afca708c7' });
3126
2044
  }
3127
2045
  };
3128
2046
 
2047
+ const posAppBrowserCss = "pos-router{margin:0;padding:0;display:flex;flex-direction:column;height:100vh}pos-navigation-bar{max-width:var(--width-lg);margin:0}pos-add-new-thing,pos-login{flex:0 1 auto;}header,footer{display:flex;gap:var(--size-1);height:auto;justify-content:center;align-items:center;padding:var(--size-1)}footer svg{width:var(--size-5);height:var(--size-5)}footer{font-size:var(--scale-fluid-000)}header{flex-wrap:wrap;padding:0 var(--size-8)}main{flex:1;max-height:100vh;overflow:auto}@media (max-width: 640px){header{padding:0 var(--size-1) var(--size-1);justify-content:space-between}pos-navigation-bar{flex-basis:100%;order:0}pos-add-new-thing,pos-login{order:1}}";
2048
+ const PosAppBrowserStyle0 = posAppBrowserCss;
2049
+
3129
2050
  const PosAppBrowser = class {
3130
2051
  constructor(hostRef) {
3131
2052
  index.registerInstance(this, hostRef);
3132
2053
  this.restorePreviousSession = false;
2054
+ this.uri = '';
3133
2055
  }
3134
2056
  render() {
3135
- return (index.h("pos-app", { key: 'b0cd0b818fdf4b747828e45722a2e5e2beca3fed', restorePreviousSession: this.restorePreviousSession }, index.h("pos-error-toast", { key: '48840fd1401920e5e925097c5e0fdbc84b0683a0' }, index.h("ion-app", { key: '739484cc781ab72aca520c8254ed0514b58c3ba3' }, index.h("ion-header", { key: 'e2f4cb34edc538c7e698fc0ed8e6a330ece3cfdc' }, index.h("ion-toolbar", { key: '25e12849dce08731864de78b9daa85c807a8d332' }, index.h("ion-title", { key: '1fb14f21d28e12bc3fe405fec7344bfd0987031e', slot: "start" }, "PodOS"), index.h("pos-login", { key: 'ffa9bb4105b5151d69ec8b2b2dbbe7038efc3612' }))), index.h("ion-content", { key: 'bbd8454b8b3cc65c650816112d2d43261335186b' }, index.h("pos-router", { key: 'e1c94f5dda22557fa417113a9168b5acef4cddfd' })), index.h("ion-footer", { key: '40623fc943a0a89c1a3ef23e23daebc653b5c5dc' }, index.h("ion-toolbar", { key: 'b3b6d497a9a19c0c0756b89c152ea2dc2ad25c41' }, index.h("ion-title", { key: '982679383f343e6f7a1a42d9110c1a53493c3b71' }, "PodOS Browser")))))));
3136
- }
3137
- };
2057
+ return (index.h(index.Host, { key: 'b154b596b7c172de223da89c4f6e113607111ff4' }, index.h("pos-app", { key: '057c6ea517b358513a292ee1b22a4ab3f847acb4', restorePreviousSession: this.restorePreviousSession }, index.h("pos-error-toast", { key: '818712bc4dfbba08a5091412931fba60529f1ce1' }, index.h("pos-router", { key: '58b23715dd4a0c4c981b92c43da41df4fde0bfe5', "onPod-os:route-changed": e => (this.uri = e.detail) }, index.h("header", { key: 'e83dcbaff0f013747922a62734856663e0d8e095' }, index.h("pos-add-new-thing", { key: 'e74961384b4c145bdf7d771fbae0547f83b95b78', referenceUri: this.uri }), index.h("pos-navigation-bar", { key: 'e3cb7e3e137f2615fdda8980444fd03bf009bbd3', uri: this.uri }), index.h("pos-login", { key: 'fe07f4cedb465911c76fc0c4520c6084090c9fed' })), index.h("main", { key: '993531497ec2d6ec8a9828519c1405568f2ab86b' }, index.h("pos-resource", { key: this.uri, uri: this.uri }, index.h("pos-type-router", { key: '0b4faa6fac3426438744c224d5966cf1b8312e4a' }))), index.h("footer", { key: 'cff5a02d8a14b478a4484ce105e53443b9b753ae' }, index.h(Logo, { key: 'd6a67415ba15c8b0a72517dd011b622564d9d8d2' }), index.h("span", { key: '5cfb56d1da679a022826b72082fe47cad150f055' }, "PodOS Browser")))))));
2058
+ }
2059
+ };
2060
+ const Logo = () => {
2061
+ return (index.h("svg", { viewBox: "0 0 400 400", xmlns: "http://www.w3.org/2000/svg" }, index.h("path", { d: "M50 350 L50 100 L200 50 L350 100 L350 350 Z", style: {
2062
+ 'fill': '#008BF8',
2063
+ 'stroke': '#008BF8',
2064
+ 'stroke-width': '70',
2065
+ }, "stroke-linejoin": "round" }), index.h("path", { d: "M100 300 L100 150 L200 120 L300 150 L300 300 L130 300 L130 370 L100 370Z", style: {
2066
+ 'fill': 'white',
2067
+ 'stroke': 'white',
2068
+ 'stroke-width': '45',
2069
+ }, "stroke-linejoin": "round" }), index.h("path", { d: "M150 250 L150 200 L200 180 L250 200 L250 250 Z", style: {
2070
+ 'fill': '#DC0073',
2071
+ 'stroke': '#DC0073',
2072
+ 'stroke-width': '20',
2073
+ }, "stroke-linejoin": "round" })));
2074
+ };
2075
+ PosAppBrowser.style = PosAppBrowserStyle0;
3138
2076
 
3139
2077
  const PosDescription = class {
3140
2078
  constructor(hostRef) {
@@ -3167,7 +2105,7 @@ const PosDialog = class {
3167
2105
  this.dialog.close();
3168
2106
  }
3169
2107
  render() {
3170
- return (index.h(index.Host, { key: '0bc83e22253fd17e9f8ffc1c81b80682050a0883' }, index.h("dialog", { key: '2a5d5ba49cfde551389d11f2f5ffb0dd065b26e1', ref: el => (this.dialog = el) }, index.h("header", { key: '09f35e49e79e9cb067926213d9e715048d57e0f4' }, index.h("slot", { key: '3f16be3db881b8f93aa1bcb0cf1cb2a19bade573', name: "title" }), index.h("button", { key: 'd4a566a54d6d5db752a1ae9c1c0eda34954103d9', tabindex: -1, id: "close", title: "Close", onClick: () => this.close() }, index.h("ion-icon", { key: '262f5f7233764471ab4dcd61808e65e6468bcffa', name: "close-outline" }))), index.h("slot", { key: 'de6782ef358e852a6d4d34d3bd37c222fbf64527', name: "content" }))));
2108
+ return (index.h(index.Host, { key: '2afede6b81d08df86698897989cf60ddd0924725' }, index.h("dialog", { key: '437b2817f0cf0a24d2c23705754666db08d86d7b', ref: el => (this.dialog = el) }, index.h("header", { key: 'b117318680cf8afd336ecb0a1833e527c0ab9b12' }, index.h("slot", { key: 'bfb23dd0fcd65c92dce927ddff6656e97a6a4b58', name: "title" }), index.h("button", { key: '954d0e64de334a658a96927921f213cba1e30715', tabindex: -1, id: "close", title: "Close", onClick: () => this.close() }, index.h("ion-icon", { key: 'c7b70eda40f3c087eadfb6cfeb6107cbe7747c21', name: "close-outline" }))), index.h("slot", { key: '9fc63ff77963a2564b18598c97bee19a73655c1a', name: "content" }))));
3171
2109
  }
3172
2110
  };
3173
2111
  PosDialog.style = PosDialogStyle0;
@@ -3200,7 +2138,7 @@ const PosErrorToast = class {
3200
2138
  await toast.present();
3201
2139
  }
3202
2140
  render() {
3203
- return index.h("slot", { key: '93ac613ea6c25c6533fbca6ee06201a97c39d87d' });
2141
+ return index.h("slot", { key: '8c5c8f5197184686f81602136672f35a62b2ea78' });
3204
2142
  }
3205
2143
  };
3206
2144
 
@@ -3296,7 +2234,7 @@ const PosLabel = class {
3296
2234
  }
3297
2235
  };
3298
2236
 
3299
- const posLoginCss = ":host{display:flex;gap:10px}.user-data{align-items:center;display:inline-flex;gap:10px}.user-data pos-picture{--width:40px;--height:40px;--border-radius:50%}pos-login-form{margin:var(--size-2)}dialog{margin-top:var(--size-10)}button#login,button#logout{outline:none;text-transform:uppercase;font-weight:var(--weight-bold);letter-spacing:var(--letter-xl);border:none;box-sizing:border-box;border-radius:var(--radius-xs);padding:var(--scale-000);box-shadow:var(--shadow-sm);cursor:pointer;color:var(--pos-primary-text-color);background-color:var(--pos-primary-color)}button#login:focus-within,button#logout:focus-within{outline:var(--pos-input-focus-outline)}button#login:focus,button#login:hover,button#logout:focus,button#logout:hover{filter:brightness(110%);box-shadow:var(--shadow-md)}";
2237
+ const posLoginCss = ".container{display:flex;align-items:center;gap:var(--size-2)}.user-data{align-items:center;display:inline-flex;gap:10px}.user-data pos-picture{--width:40px;--height:40px;--border-radius:50%}pos-login-form{margin:var(--size-2)}dialog{margin-top:var(--size-10)}button#login,button#logout{outline:none;font-weight:var(--weight-bold);letter-spacing:var(--letter-xl);border:none;box-sizing:border-box;border-radius:var(--radius-xs);padding:var(--size-2);box-shadow:var(--shadow-sm);color:var(--pos-primary-text-color);background-color:var(--pos-primary-color)}button#login:focus-within,button#logout:focus-within{outline:var(--pos-input-focus-outline)}button#login:focus,button#login:hover,button#logout:focus,button#logout:hover{filter:brightness(110%);box-shadow:var(--shadow-md)}";
3300
2238
  const PosLoginStyle0 = posLoginCss;
3301
2239
 
3302
2240
  const PosLogin = class {
@@ -3322,7 +2260,7 @@ const PosLogin = class {
3322
2260
  this.dialog.showModal();
3323
2261
  }
3324
2262
  render() {
3325
- return (index.h(index.Host, { key: '4d80604bf01d45172f793cc3a66ff9bfd853d6e8' }, BrokenFile.store.state.isLoggedIn ? (index.h("pos-resource", { uri: BrokenFile.store.state.webId }, index.h("span", { class: "user-data" }, index.h("pos-picture", null), index.h("pos-label", null)))) : (''), !BrokenFile.store.state.isLoggedIn && (index.h("button", { key: 'c8d7cc5dfff6c6fd061876a295acb094cf13e620', id: "login", onClick: () => this.openDialog() }, "Login")), BrokenFile.store.state.isLoggedIn && (index.h("button", { key: '7ee336f2d00cf71c36f5d2c87853e9eabe04366a', id: "logout", onClick: () => this.logout() }, "Logout")), index.h("pos-dialog", { key: '20b349d711044d71a876c4993577fd942e809bdb', ref: el => (this.dialog = el) }, index.h("span", { key: 'e7dc7cd69e392c7872a18f5129a7ab2545d74a57', slot: "title" }, "Sign in to your Pod"), index.h("pos-login-form", { key: 'bb17fa8b1632b286dd0a9d6ff68879730b276d82', "onPod-os:idp-url-selected": ev => this.login(ev), slot: "content" }))));
2263
+ return (index.h(index.Host, { key: '780beb7c8a3be6f4f834c0d165c264fc4ca57f9b' }, index.h("div", { key: '66d54e274fab1e72590338ebb3a3aae3ab1275d5', class: "container" }, BrokenFile.store.state.isLoggedIn ? (index.h("pos-resource", { uri: BrokenFile.store.state.webId }, index.h("span", { class: "user-data" }, index.h("pos-picture", null), index.h("pos-label", null)))) : (''), !BrokenFile.store.state.isLoggedIn && (index.h("button", { key: '86196036b1ca3cfa505f3c1efbc2ceeb65843a91', id: "login", onClick: () => this.openDialog() }, "Login")), BrokenFile.store.state.isLoggedIn && (index.h("button", { key: 'ae2d4298dc2300ea9b9812b162bc7c14573a1606', id: "logout", onClick: () => this.logout() }, "Logout"))), index.h("pos-dialog", { key: 'c4cd26d24bdb7a4fa12ed589843da5cc90253c6c', ref: el => (this.dialog = el) }, index.h("span", { key: '5e59b0cde7cc110262edc1c2cf21cca9704970c6', slot: "title" }, "Sign in to your Pod"), index.h("pos-login-form", { key: '32c76681860a47a7a6f56fcd1d54757923891967', "onPod-os:idp-url-selected": ev => this.login(ev), slot: "content" }))));
3326
2264
  }
3327
2265
  };
3328
2266
  PosLogin.style = PosLoginStyle0;
@@ -3341,7 +2279,7 @@ const PosLoginForm = class {
3341
2279
  this.canSubmit = Boolean(this.idpUrl);
3342
2280
  }
3343
2281
  render() {
3344
- return (index.h("form", { key: '7fde1bbc5d3047550052bca7319edb79c7f99977', method: "dialog", onSubmit: () => this.handleSubmit() }, index.h("label", { key: '251439f51b85a4cb510f6e3848231b709cc8e510', htmlFor: "idpUrl" }, "Please enter your Identity Provider"), index.h("input", { key: '9f552e4b8dd06dedf0a64307778607d0c910b386', id: "idpUrl", type: "url", value: this.idpUrl, required: true, onInput: e => this.handleChange(e), list: "suggestedIssuers", placeholder: "Type to search..." }), index.h("datalist", { key: '3db05059ada1e7e9444015de2017c4dc9278ed7b', id: "suggestedIssuers" }, index.h("option", { key: 'aa1e61b1e72368c34b367e1788d8628a8e295821', value: "https://solidcommunity.net" }, "solidcommunity.net"), index.h("option", { key: '6320ad809ca912e94c20e18bcee7ed17a348f3f1', value: "https://solidweb.org" }, "solidweb.org"), index.h("option", { key: 'b1c2ec5d91e0078db5f12128f44f95c99adb6b4e', value: "https://solidweb.me" }, "solidweb.me"), index.h("option", { key: 'eeb13ac45c75177601a91ff6a5205a7f549055e6', value: "https://inrupt.net" }, "inrupt.net"), index.h("option", { key: '11f5ad9045b9d6707562922f4179d25fa6917583', value: "https://login.inrupt.com" }, "Inrupt PodSpaces"), index.h("option", { key: '75057cfb45adec0016f23506f2a93712e497aaf4', value: "https://trinpod.us" }, "trinpod.us"), index.h("option", { key: 'b0963e48242377be16275eb4f69b7cceb30e6be8', value: "https://use.id" }, "use.id"), index.h("option", { key: '211ef60f11d5c5d2ac5777645ad20548bc73d874', value: "https://solid.redpencil.io" }, "redpencil.io"), index.h("option", { key: '5879da4e80fd09f049e4c2ba8819a6d17ff9b028', value: "https://datapod.grant.io" }, "Data Pod (grant.io)"), index.h("option", { key: 'f35cb3113271a67f154b04559d18cc6be3f362b1', value: "https://teamid.live" }, "teamid.live")), index.h("input", { key: 'f33a4cf13b5ddb46b0c019122a6ae71e7e701bb6', id: "login", type: "submit", value: "Login", disabled: !this.canSubmit })));
2282
+ return (index.h("form", { key: '92f9f517c1f20206c03c4a0ba0fa36cf44d03a4e', method: "dialog", onSubmit: () => this.handleSubmit() }, index.h("label", { key: '545072b27374d328f177cc7cd29a869f94084199', htmlFor: "idpUrl" }, "Please enter your Identity Provider"), index.h("input", { key: '702a8478a60f238aa571206709179735a6c4e94c', id: "idpUrl", type: "url", value: this.idpUrl, required: true, onInput: e => this.handleChange(e), list: "suggestedIssuers", placeholder: "Type to search..." }), index.h("datalist", { key: '1998a954b5b5af5f0db4134d5c5936a86ca3d938', id: "suggestedIssuers" }, index.h("option", { key: '10162042cea7e1080ae6dc1b22d417ea2c8bcdf1', value: "https://solidcommunity.net" }, "solidcommunity.net"), index.h("option", { key: 'd6fc9acff784dbf07ecd8370b8a864975c99b34c', value: "https://solidweb.org" }, "solidweb.org"), index.h("option", { key: 'd3980f1bbd66a092a3a8f26994d2e24c786bd311', value: "https://solidweb.me" }, "solidweb.me"), index.h("option", { key: 'c6e71652acbac29140c40f255b9f26cb50334bc9', value: "https://inrupt.net" }, "inrupt.net"), index.h("option", { key: 'c9b5cc8768bee481a34b95d6c993e4c75e63ecfd', value: "https://login.inrupt.com" }, "Inrupt PodSpaces"), index.h("option", { key: '97bb6676127f80f67337a1b0daa4dd367da21482', value: "https://trinpod.us" }, "trinpod.us"), index.h("option", { key: 'c8def1b84548f10bc2e7961139405ab5679e0dcc', value: "https://use.id" }, "use.id"), index.h("option", { key: 'e796fec0814bcafb4b3b48f9aff5efe9868243ba', value: "https://solid.redpencil.io" }, "redpencil.io"), index.h("option", { key: 'fd6632816dbad59dd8ebf3b2ab18d63b74bfd6ca', value: "https://datapod.grant.io" }, "Data Pod (grant.io)"), index.h("option", { key: 'c64c01e649cba6d8ff93b603e582369fd1bd5bd5', value: "https://teamid.live" }, "teamid.live")), index.h("input", { key: '2fe45bcb27fdb9f00680474b7e1cdfc989b0b0f2', id: "login", type: "submit", value: "Login", disabled: !this.canSubmit })));
3345
2283
  }
3346
2284
  handleChange(event) {
3347
2285
  this.validate();
@@ -3429,7 +2367,7 @@ const PosNavigationBar = class {
3429
2367
  }
3430
2368
  }
3431
2369
  render() {
3432
- return (index.h("form", { key: '2accd6147dcc87fcf5c2dd68b54296297150b75c', onSubmit: e => this.onSubmit(e) }, index.h("ion-searchbar", { key: 'a10e7d4af946c8676d5568c0756af7b86ce0fc57', enterkeyhint: "search", placeholder: "Search or enter URI", value: this.uri, debounce: 300, onIonChange: e => this.onChange(e), onIonInput: e => this.onChange(e) }), this.suggestions.length > 0 ? (index.h("div", { class: "suggestions" }, index.h("ol", null, this.suggestions.map((it, index$1) => (index.h("li", { class: index$1 === this.selectedIndex ? 'selected' : '' }, index.h("pos-rich-link", { uri: it.ref }))))))) : null));
2370
+ return (index.h("form", { key: '0338ecb2fc05df87b7b1b9b46a3fe60dacf66a3a', onSubmit: e => this.onSubmit(e) }, index.h("ion-searchbar", { key: '691b8574fb64227895f521d501edd1d670b2cc6a', enterkeyhint: "search", placeholder: "Search or enter URI", value: this.uri, debounce: 300, onIonChange: e => this.onChange(e), onIonInput: e => this.onChange(e) }), this.suggestions.length > 0 ? (index.h("div", { class: "suggestions" }, index.h("ol", null, this.suggestions.map((it, index$1) => (index.h("li", { class: index$1 === this.selectedIndex ? 'selected' : '' }, index.h("pos-rich-link", { uri: it.ref }))))))) : null));
3433
2371
  }
3434
2372
  };
3435
2373
  PosNavigationBar.style = PosNavigationBarStyle0;
@@ -3460,7 +2398,7 @@ const PosNewThingForm = class {
3460
2398
  PodOsAware.subscribePodOs(this);
3461
2399
  }
3462
2400
  render() {
3463
- return (index.h("form", { key: '05e374959459dd5b51a8b34625301f3e355aba9a', method: "dialog", onSubmit: e => this.handleSubmit(e) }, index.h("label", { key: 'f18a7ac3b1d4dcdc28da5761c27405f7302e8f45', htmlFor: "type" }, "Type"), index.h("pos-select-term", { key: 'fad6874533d45e2539ebc25d6e2ed3aa925477b5', id: "type", placeholder: "", value: this.selectedTypeUri, "onPod-os:term-selected": e => this.onTermSelected(e) }), index.h("label", { key: 'a0fc71d7a8096ea789a35d61b389a7b96283f5bc', htmlFor: "name" }, "Name"), index.h("input", { key: 'f405b91039d011e9625495bc7ecaeab98d1da487', id: "name", type: "text", value: this.name, onInput: e => this.handleChange(e) }), this.newUri ? (index.h("div", { id: "new-uri", title: "This will be the URI of the new thing" }, this.newUri)) : null, index.h("input", { key: '82204f0a888beca696f5cecececcf2dea64a2eb2', id: "create", type: "submit", value: "Create", disabled: !this.canSubmit })));
2401
+ return (index.h("form", { key: 'd2e96a0788fc188f5d565a9f7cfd091cac2a50f9', method: "dialog", onSubmit: e => this.handleSubmit(e) }, index.h("label", { key: '06926ce3e0f9ed415559e05551e12d919fcfb355', htmlFor: "type" }, "Type"), index.h("pos-select-term", { key: '163341916328a9f18265125c9083afde595c617c', id: "type", placeholder: "", value: this.selectedTypeUri, "onPod-os:term-selected": e => this.onTermSelected(e) }), index.h("label", { key: 'f80187e539434d239649451da75f7b03a7735c6f', htmlFor: "name" }, "Name"), index.h("input", { key: '505d645e314a614300ac9e181cf0e9ece5ba564d', id: "name", type: "text", value: this.name, onInput: e => this.handleChange(e) }), this.newUri ? (index.h("div", { id: "new-uri", title: "This will be the URI of the new thing" }, this.newUri)) : null, index.h("input", { key: '5dc303fa9b68d363b417c4c6572bf5ff7afbea14', id: "create", type: "submit", value: "Create", disabled: !this.canSubmit })));
3464
2402
  }
3465
2403
  handleChange(event) {
3466
2404
  this.name = event.target.value;
@@ -3597,10 +2535,10 @@ const PosRichLink = class {
3597
2535
  this.uri = undefined;
3598
2536
  }
3599
2537
  render() {
3600
- return (index.h("a", { key: 'a5e376305dc74372b48c127d8df8d8c6d6c76974', class: "container", href: this.uri, onClick: e => {
2538
+ return (index.h("a", { key: '478e3fbeac417934283500edff87459f3ad155c9', class: "container", href: this.uri, onClick: e => {
3601
2539
  e.preventDefault();
3602
2540
  this.linkEmitter.emit(this.uri);
3603
- } }, index.h("pos-resource", { key: 'b9c6c0740fdb6708f386f68cd2506fccf6f1319e', lazy: true, uri: this.uri }, index.h("p", { key: '2b5e733ac4947ba896cd9aa2d770963067f075b7', class: "content" }, index.h("pos-label", { key: 'f5b57fbfea27e2b5dd06de89997b300f2788b0f8' }), index.h("pos-description", { key: '14c379c13217b0a4d96cb6645b24e4eda27cfce1' }), index.h("a", { key: 'cf29b9c0e4f1e1cc003b9471326c81ba8dee5eec', class: "uri", href: this.uri }, this.uri)))));
2541
+ } }, index.h("pos-resource", { key: 'c28c929cc2df484cbdf4a071aa2636246eedf6f1', lazy: true, uri: this.uri }, index.h("p", { key: 'fb9f9211aacfb0d2550ba52d76f32632c7a99a38', class: "content" }, index.h("pos-label", { key: 'b44b9b7ed43aa889f4c3f706399a9e5de1509fb2' }), index.h("pos-description", { key: '9db29a285402b80fa18a895bd58996d91d7ea71e' }), index.h("a", { key: 'd5c7d15883f1b65dc2b6557121ad9439a56ddbd6', class: "uri", href: this.uri }, this.uri)))));
3604
2542
  }
3605
2543
  };
3606
2544
  PosRichLink.style = PosRichLinkStyle0;
@@ -3866,20 +2804,6 @@ const createRouter = (opts) => {
3866
2804
  win.addEventListener('popstate', navigationChanged);
3867
2805
  return router;
3868
2806
  };
3869
- const Route = (props, children) => {
3870
- var _a;
3871
- if ('to' in props) {
3872
- return {
3873
- path: props.path,
3874
- to: props.to,
3875
- };
3876
- }
3877
- return {
3878
- path: props.path,
3879
- id: props.id,
3880
- jsx: (_a = props.render) !== null && _a !== void 0 ? _a : children,
3881
- };
3882
- };
3883
2807
  const matchPath = (pathname, path) => {
3884
2808
  if (typeof path === 'string') {
3885
2809
  if (path === pathname) {
@@ -3907,258 +2831,6 @@ const DEFAULT_PARSE_URL = (url) => {
3907
2831
  return url.pathname.toLowerCase();
3908
2832
  };
3909
2833
 
3910
- /**
3911
- * TS adaption of https://github.com/pillarjs/path-to-regexp/blob/master/index.js
3912
- */
3913
- /**
3914
- * Default configs.
3915
- */
3916
- const DEFAULT_DELIMITER = '/';
3917
- const DEFAULT_DELIMITERS = './';
3918
- /**
3919
- * The main path matching regexp utility.
3920
- */
3921
- const PATH_REGEXP = new RegExp([
3922
- // Match escaped characters that would otherwise appear in future matches.
3923
- // This allows the user to escape special characters that won't transform.
3924
- '(\\\\.)',
3925
- // Match Express-style parameters and un-named parameters with a prefix
3926
- // and optional suffixes. Matches appear as:
3927
- //
3928
- // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?"]
3929
- // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined]
3930
- '(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?'
3931
- ].join('|'), 'g');
3932
- /**
3933
- * Parse a string for the raw tokens.
3934
- */
3935
- const parse = (str, options) => {
3936
- var tokens = [];
3937
- var key = 0;
3938
- var index = 0;
3939
- var path = '';
3940
- var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER;
3941
- var delimiters = (options && options.delimiters) || DEFAULT_DELIMITERS;
3942
- var pathEscaped = false;
3943
- var res;
3944
- while ((res = PATH_REGEXP.exec(str)) !== null) {
3945
- var m = res[0];
3946
- var escaped = res[1];
3947
- var offset = res.index;
3948
- path += str.slice(index, offset);
3949
- index = offset + m.length;
3950
- // Ignore already escaped sequences.
3951
- if (escaped) {
3952
- path += escaped[1];
3953
- pathEscaped = true;
3954
- continue;
3955
- }
3956
- var prev = '';
3957
- var next = str[index];
3958
- var name = res[2];
3959
- var capture = res[3];
3960
- var group = res[4];
3961
- var modifier = res[5];
3962
- if (!pathEscaped && path.length) {
3963
- var k = path.length - 1;
3964
- if (delimiters.indexOf(path[k]) > -1) {
3965
- prev = path[k];
3966
- path = path.slice(0, k);
3967
- }
3968
- }
3969
- // Push the current path onto the tokens.
3970
- if (path) {
3971
- tokens.push(path);
3972
- path = '';
3973
- pathEscaped = false;
3974
- }
3975
- var partial = prev !== '' && next !== undefined && next !== prev;
3976
- var repeat = modifier === '+' || modifier === '*';
3977
- var optional = modifier === '?' || modifier === '*';
3978
- var delimiter = prev || defaultDelimiter;
3979
- var pattern = capture || group;
3980
- tokens.push({
3981
- name: name || key++,
3982
- prefix: prev,
3983
- delimiter: delimiter,
3984
- optional: optional,
3985
- repeat: repeat,
3986
- partial: partial,
3987
- pattern: pattern ? escapeGroup(pattern) : '[^' + escapeString(delimiter) + ']+?'
3988
- });
3989
- }
3990
- // Push any remaining characters.
3991
- if (path || index < str.length) {
3992
- tokens.push(path + str.substr(index));
3993
- }
3994
- return tokens;
3995
- };
3996
- /**
3997
- * Escape a regular expression string.
3998
- */
3999
- const escapeString = (str) => {
4000
- return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, '\\$1');
4001
- };
4002
- /**
4003
- * Escape the capturing group by escaping special characters and meaning.
4004
- */
4005
- const escapeGroup = (group) => {
4006
- return group.replace(/([=!:$/()])/g, '\\$1');
4007
- };
4008
- /**
4009
- * Get the flags for a regexp from the options.
4010
- */
4011
- const flags = (options) => {
4012
- return options && options.sensitive ? '' : 'i';
4013
- };
4014
- /**
4015
- * Pull out keys from a regexp.
4016
- */
4017
- const regexpToRegexp = (path, keys) => {
4018
- if (!keys)
4019
- return path;
4020
- // Use a negative lookahead to match only capturing groups.
4021
- var groups = path.source.match(/\((?!\?)/g);
4022
- if (groups) {
4023
- for (var i = 0; i < groups.length; i++) {
4024
- keys.push({
4025
- name: i,
4026
- prefix: null,
4027
- delimiter: null,
4028
- optional: false,
4029
- repeat: false,
4030
- partial: false,
4031
- pattern: null
4032
- });
4033
- }
4034
- }
4035
- return path;
4036
- };
4037
- /**
4038
- * Transform an array into a regexp.
4039
- */
4040
- const arrayToRegexp = (path, keys, options) => {
4041
- var parts = [];
4042
- for (var i = 0; i < path.length; i++) {
4043
- parts.push(pathToRegexp(path[i], keys, options).source);
4044
- }
4045
- return new RegExp('(?:' + parts.join('|') + ')', flags(options));
4046
- };
4047
- /**
4048
- * Create a path regexp from string input.
4049
- */
4050
- const stringToRegexp = (path, keys, options) => {
4051
- return tokensToRegExp(parse(path, options), keys, options);
4052
- };
4053
- /**
4054
- * Expose a function for taking tokens and returning a RegExp.
4055
- */
4056
- const tokensToRegExp = (tokens, keys, options) => {
4057
- options = options || {};
4058
- var strict = options.strict;
4059
- var end = options.end !== false;
4060
- var delimiter = escapeString(options.delimiter || DEFAULT_DELIMITER);
4061
- var delimiters = options.delimiters || DEFAULT_DELIMITERS;
4062
- var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|');
4063
- var route = '';
4064
- var isEndDelimited = false;
4065
- // Iterate over the tokens and create our regexp string.
4066
- for (var i = 0; i < tokens.length; i++) {
4067
- var token = tokens[i];
4068
- if (typeof token === 'string') {
4069
- route += escapeString(token);
4070
- isEndDelimited = i === tokens.length - 1 && delimiters.indexOf(token[token.length - 1]) > -1;
4071
- }
4072
- else {
4073
- var prefix = escapeString(token.prefix || '');
4074
- var capture = token.repeat
4075
- ? '(?:' + token.pattern + ')(?:' + prefix + '(?:' + token.pattern + '))*'
4076
- : token.pattern;
4077
- if (keys)
4078
- keys.push(token);
4079
- if (token.optional) {
4080
- if (token.partial) {
4081
- route += prefix + '(' + capture + ')?';
4082
- }
4083
- else {
4084
- route += '(?:' + prefix + '(' + capture + '))?';
4085
- }
4086
- }
4087
- else {
4088
- route += prefix + '(' + capture + ')';
4089
- }
4090
- }
4091
- }
4092
- if (end) {
4093
- if (!strict)
4094
- route += '(?:' + delimiter + ')?';
4095
- route += endsWith === '$' ? '$' : '(?=' + endsWith + ')';
4096
- }
4097
- else {
4098
- if (!strict)
4099
- route += '(?:' + delimiter + '(?=' + endsWith + '))?';
4100
- if (!isEndDelimited)
4101
- route += '(?=' + delimiter + '|' + endsWith + ')';
4102
- }
4103
- return new RegExp('^' + route, flags(options));
4104
- };
4105
- /**
4106
- * Normalize the given path string, returning a regular expression.
4107
- *
4108
- * An empty array can be passed in for the keys, which will hold the
4109
- * placeholder key descriptions. For example, using `/user/:id`, `keys` will
4110
- * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.
4111
- */
4112
- const pathToRegexp = (path, keys, options) => {
4113
- if (path instanceof RegExp) {
4114
- return regexpToRegexp(path, keys);
4115
- }
4116
- if (Array.isArray(path)) {
4117
- return arrayToRegexp(path, keys, options);
4118
- }
4119
- return stringToRegexp(path, keys, options);
4120
- };
4121
-
4122
- let cacheCount = 0;
4123
- const patternCache = {};
4124
- const cacheLimit = 10000;
4125
- // Memoized function for creating the path match regex
4126
- const compilePath = (pattern, options) => {
4127
- const cacheKey = `${options.end}${options.strict}`;
4128
- const cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});
4129
- const cachePattern = JSON.stringify(pattern);
4130
- if (cache[cachePattern]) {
4131
- return cache[cachePattern];
4132
- }
4133
- const keys = [];
4134
- const re = pathToRegexp(pattern, keys, options);
4135
- const compiledPattern = { re, keys };
4136
- if (cacheCount < cacheLimit) {
4137
- cache[cachePattern] = compiledPattern;
4138
- cacheCount += 1;
4139
- }
4140
- return compiledPattern;
4141
- };
4142
- const match = (pathname, options = {}) => {
4143
- const { exact = false, strict = false } = options;
4144
- const { re, keys } = compilePath(pathname, { end: exact, strict });
4145
- return (path) => {
4146
- const match = re.exec(path);
4147
- if (!match) {
4148
- return undefined;
4149
- }
4150
- const [url, ...values] = match;
4151
- const isExact = path === url;
4152
- if (exact && !isExact) {
4153
- return undefined;
4154
- }
4155
- return keys.reduce((memo, key, index) => {
4156
- memo[key.name] = values[index];
4157
- return memo;
4158
- }, {});
4159
- };
4160
- };
4161
-
4162
2834
  const posRouterCss = ".toolbar{display:flex;flex-direction:row;gap:0;align-items:center;margin-left:0.5rem}pos-navigation-bar{flex-grow:1}";
4163
2835
  const PosRouterStyle0 = posRouterCss;
4164
2836
 
@@ -4166,6 +2838,7 @@ const Router = createRouter();
4166
2838
  const PosRouter = class {
4167
2839
  constructor(hostRef) {
4168
2840
  index.registerInstance(this, hostRef);
2841
+ this.routeChanged = index.createEvent(this, "pod-os:route-changed", 7);
4169
2842
  this.uri = undefined;
4170
2843
  }
4171
2844
  linkClicked(e) {
@@ -4185,9 +2858,10 @@ const PosRouter = class {
4185
2858
  }
4186
2859
  updateUri() {
4187
2860
  this.uri = new URLSearchParams(window.location.search).get('uri') || window.location.href;
2861
+ this.routeChanged.emit(this.uri);
4188
2862
  }
4189
2863
  render() {
4190
- return (index.h(Router.Switch, { key: '57f9081e368822ff79d98945592959d019e578b9' }, index.h(Route, { key: '9d92bd00f9594c3ecd54ab53ae2bbe68c74894f6', path: match('', { exact: false }) }, index.h("div", { key: 'a977487e785d053e4599704308fa5baac783c47d', class: "toolbar" }, index.h("pos-add-new-thing", { key: 'da79e7a8c6c5427437f5b8e4ce386ece5d89c0b8', referenceUri: this.uri }), index.h("pos-navigation-bar", { key: '9266285b028945079eb3411c00d958a56021dd7e', uri: this.uri })), index.h("pos-resource", { key: this.uri, uri: this.uri }, index.h("pos-type-router", { key: '82657153a1d34b49c4e711b348cece4191ad363b' })))));
2864
+ return index.h("slot", { key: '90cdd039ec5d00643bab4449814cce75e6aef855' });
4191
2865
  }
4192
2866
  };
4193
2867
  PosRouter.style = PosRouterStyle0;
@@ -4218,7 +2892,7 @@ const PosSelectTerm = class {
4218
2892
  this.termSelected.emit({ uri: event.target.value });
4219
2893
  }
4220
2894
  render() {
4221
- return (index.h(index.Host, { key: '3e62d57949e8598cb000c62a684d624c0dc44739' }, index.h("input", { key: '2c09ff6c88c48105ebd6f146b9e724fb113f7523', part: "input", list: "terms", placeholder: this.placeholder, value: this.value, onChange: ev => this.handleChange(ev) }), index.h("datalist", { key: '1f3e596be54d4e0f055dac00c99742945adee3b1', part: "terms", id: "terms" }, this.terms.map(term => (index.h("option", { value: term.uri }, term.shorthand))))));
2895
+ return (index.h(index.Host, { key: 'e73b3d7cb4dd291555b035c82959978ca0f665f3' }, index.h("input", { key: '9900762d64d4f7fcb31552e926bf71229e9b8ea4', part: "input", list: "terms", placeholder: this.placeholder, value: this.value, onChange: ev => this.handleChange(ev) }), index.h("datalist", { key: '71aca3b0d13973ea7e666e04ba09ff0f2d1483b0', part: "terms", id: "terms" }, this.terms.map(term => (index.h("option", { value: term.uri }, term.shorthand))))));
4222
2896
  }
4223
2897
  static get delegatesFocus() { return true; }
4224
2898
  static get watchers() { return {
@@ -4281,20 +2955,14 @@ const PosTypeRouter = class {
4281
2955
  }
4282
2956
  };
4283
2957
 
4284
- exports.ion_app = App;
4285
2958
  exports.ion_card = Card;
4286
2959
  exports.ion_card_content = CardContent;
4287
2960
  exports.ion_card_header = CardHeader;
4288
- exports.ion_content = Content;
4289
- exports.ion_footer = Footer;
4290
- exports.ion_header = Header;
4291
2961
  exports.ion_icon = Icon;
4292
2962
  exports.ion_progress_bar = ProgressBar;
4293
2963
  exports.ion_ripple_effect = RippleEffect;
4294
2964
  exports.ion_searchbar = Searchbar;
4295
2965
  exports.ion_skeleton_text = SkeletonText;
4296
- exports.ion_title = ToolbarTitle;
4297
- exports.ion_toolbar = Toolbar;
4298
2966
  exports.pos_add_new_thing = PosAddNewThing;
4299
2967
  exports.pos_app = PosApp;
4300
2968
  exports.pos_app_browser = PosAppBrowser;
@@ -4314,4 +2982,4 @@ exports.pos_router = PosRouter;
4314
2982
  exports.pos_select_term = PosSelectTerm;
4315
2983
  exports.pos_type_router = PosTypeRouter;
4316
2984
 
4317
- //# sourceMappingURL=ion-app_32.cjs.entry.js.map
2985
+ //# sourceMappingURL=ion-card_26.cjs.entry.js.map