@sparkle-learning/core 0.0.30 → 0.0.33

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 (278) hide show
  1. package/dist/cjs/PrivateRoute-482697a6.js +35 -0
  2. package/dist/cjs/{PrivateRoute-043bb7d3.js → auth.service-f878f6ab.js} +0 -30
  3. package/dist/cjs/dom-utils-b8befdd5.js +63 -0
  4. package/dist/cjs/header-mobile-collapse_2.cjs.entry.js +112 -0
  5. package/dist/cjs/{icons-b8a2231a.js → icons-80d477f6.js} +0 -0
  6. package/dist/cjs/index-07e8aa51.js +3071 -0
  7. package/dist/cjs/index.cjs.js +6 -5
  8. package/dist/cjs/injectHistory-77d41284.js +9 -0
  9. package/dist/cjs/ion-avatar.cjs.entry.js +25 -0
  10. package/dist/cjs/ion-button_3.cjs.entry.js +383 -0
  11. package/dist/cjs/ion-card_2.cjs.entry.js +93 -0
  12. package/dist/cjs/ion-checkbox_4.cjs.entry.js +370 -0
  13. package/dist/cjs/ion-col_3.cjs.entry.js +155 -0
  14. package/dist/cjs/ion-icon_2.cjs.entry.js +397 -0
  15. package/dist/cjs/ion-input_2.cjs.entry.js +316 -0
  16. package/dist/cjs/ion-label_2.cjs.entry.js +126 -0
  17. package/dist/cjs/ion-range.cjs.entry.js +445 -0
  18. package/dist/cjs/ion-spinner.cjs.entry.js +64 -0
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/cjs/match-path-84c9f7ca.js +511 -0
  21. package/dist/cjs/sparkle-card_3.cjs.entry.js +91 -0
  22. package/dist/cjs/sparkle-code.cjs.entry.js +1 -1
  23. package/dist/cjs/sparkle-core.cjs.js +1 -1
  24. package/dist/cjs/sparkle-course-root.cjs.entry.js +145 -0
  25. package/dist/cjs/sparkle-dropdown.cjs.entry.js +61 -0
  26. package/dist/cjs/{header-mobile-collapse_61.cjs.entry.js → sparkle-export-lessons_6.cjs.entry.js} +8863 -17664
  27. package/dist/cjs/sparkle-facilitator-header_19.cjs.entry.js +2129 -0
  28. package/dist/cjs/sparkle-feedback.cjs.entry.js +2 -1
  29. package/dist/cjs/sparkle-goal-progress.cjs.entry.js +19 -0
  30. package/dist/cjs/sparkle-gww-item.cjs.entry.js +74 -0
  31. package/dist/cjs/sparkle-intro.cjs.entry.js +26 -0
  32. package/dist/cjs/sparkle-menu-collapsible.cjs.entry.js +1 -1
  33. package/dist/cjs/sparkle-menu-toggle_3.cjs.entry.js +236 -0
  34. package/dist/cjs/sparkle-validation-error.cjs.entry.js +21 -0
  35. package/dist/cjs/stencil-route-link.cjs.entry.js +77 -0
  36. package/dist/cjs/stencil-router-redirect.cjs.entry.js +32 -0
  37. package/dist/cjs/student.service-7af424fe.js +61 -0
  38. package/dist/cjs/user.store-3d29139d.js +21 -0
  39. package/dist/collection/collection-manifest.json +1 -0
  40. package/dist/collection/components/layout/page/page.js +0 -2
  41. package/dist/collection/components/sparkle-intro/sparkle-intro.css +16 -0
  42. package/dist/collection/components/sparkle-intro/sparkle-intro.js +35 -0
  43. package/dist/collection/models/course.model.js +6 -0
  44. package/dist/esm/PrivateRoute-f59ba6b5.js +33 -0
  45. package/dist/esm/{animation-b306f6c2.js → animation-7b083379.js} +1 -1
  46. package/dist/esm/{PrivateRoute-b9937c45.js → auth.service-7ab0ac58.js} +3 -32
  47. package/dist/esm/{auth.store-3ed2389e.js → auth.store-98fad96d.js} +2 -2
  48. package/dist/esm/dom-utils-8e73e88b.js +55 -0
  49. package/dist/esm/{facilitator.service-ec0a9739.js → facilitator.service-1524bf89.js} +1 -1
  50. package/dist/esm/{feed.service-33b83cb7.js → feed.service-4900fc62.js} +2 -2
  51. package/dist/esm/{framework-delegate-3bc58c27.js → framework-delegate-518bd233.js} +1 -1
  52. package/dist/esm/header-mobile-collapse_2.entry.js +107 -0
  53. package/dist/esm/{helpers-39367fe1.js → helpers-9d0930de.js} +1 -1
  54. package/dist/esm/{icons-5debfbaf.js → icons-05b6ce86.js} +1 -1
  55. package/dist/esm/{index-c26d8655.js → index-8de9446b.js} +3 -3
  56. package/dist/esm/index-c92f99d4.js +3067 -0
  57. package/dist/esm/{index-dc61f152.js → index-ea26196a.js} +1 -1
  58. package/dist/esm/{index-9594837e.js → index-fa5e93c5.js} +2 -2
  59. package/dist/esm/{index.es-97dd8174.js → index.es-89cff481.js} +3 -3
  60. package/dist/esm/index.js +5 -4
  61. package/dist/esm/injectHistory-52d0c7eb.js +7 -0
  62. package/dist/esm/{input-shims-cc98ea92.js → input-shims-7f04e044.js} +1 -1
  63. package/dist/esm/ion-accordion.entry.js +2 -2
  64. package/dist/esm/ion-action-sheet_4.entry.js +5 -5
  65. package/dist/esm/ion-app.entry.js +3 -3
  66. package/dist/esm/ion-avatar.entry.js +21 -0
  67. package/dist/esm/ion-back-button.entry.js +2 -2
  68. package/dist/esm/ion-breadcrumb.entry.js +2 -2
  69. package/dist/esm/ion-button_3.entry.js +377 -0
  70. package/dist/esm/ion-card_2.entry.js +88 -0
  71. package/dist/esm/ion-checkbox_4.entry.js +363 -0
  72. package/dist/esm/ion-col_3.entry.js +149 -0
  73. package/dist/esm/ion-content_2.entry.js +1 -1
  74. package/dist/esm/ion-datetime.entry.js +2 -2
  75. package/dist/esm/ion-fab-button.entry.js +1 -1
  76. package/dist/esm/ion-footer.entry.js +1 -1
  77. package/dist/esm/ion-icon_2.entry.js +392 -0
  78. package/dist/esm/ion-img.entry.js +1 -1
  79. package/dist/esm/ion-infinite-scroll.entry.js +1 -1
  80. package/dist/esm/ion-input_2.entry.js +311 -0
  81. package/dist/esm/ion-item-options.entry.js +1 -1
  82. package/dist/esm/ion-item-sliding.entry.js +1 -1
  83. package/dist/esm/ion-label_2.entry.js +121 -0
  84. package/dist/esm/ion-loading.entry.js +3 -3
  85. package/dist/esm/ion-menu-button.entry.js +5 -5
  86. package/dist/esm/ion-menu-toggle.entry.js +4 -4
  87. package/dist/esm/ion-menu.entry.js +4 -4
  88. package/dist/esm/ion-modal.entry.js +5 -5
  89. package/dist/esm/ion-nav.entry.js +4 -4
  90. package/dist/esm/ion-picker-column-internal_2.entry.js +1 -1
  91. package/dist/esm/ion-picker-column.entry.js +1 -1
  92. package/dist/esm/ion-picker.entry.js +3 -3
  93. package/dist/esm/ion-progress-bar.entry.js +1 -1
  94. package/dist/esm/ion-range.entry.js +441 -0
  95. package/dist/esm/ion-refresher-content.entry.js +1 -1
  96. package/dist/esm/ion-refresher.entry.js +2 -2
  97. package/dist/esm/ion-reorder-group.entry.js +1 -1
  98. package/dist/esm/ion-reorder.entry.js +1 -1
  99. package/dist/esm/ion-router-outlet.entry.js +4 -4
  100. package/dist/esm/ion-router.entry.js +1 -1
  101. package/dist/esm/ion-searchbar.entry.js +2 -2
  102. package/dist/esm/ion-segment-button.entry.js +1 -1
  103. package/dist/esm/ion-segment.entry.js +1 -1
  104. package/dist/esm/ion-select_2.entry.js +2 -2
  105. package/dist/esm/ion-slides.entry.js +1 -1
  106. package/dist/esm/ion-spinner.entry.js +60 -0
  107. package/dist/esm/ion-tab.entry.js +2 -2
  108. package/dist/esm/ion-textarea.entry.js +1 -1
  109. package/dist/esm/ion-toast.entry.js +3 -3
  110. package/dist/esm/ion-toggle.entry.js +1 -1
  111. package/dist/esm/ion-virtual-scroll.entry.js +1 -1
  112. package/dist/esm/{ios.transition-b4ca8a33.js → ios.transition-db4f4ca6.js} +3 -3
  113. package/dist/esm/loader.js +1 -1
  114. package/dist/esm/match-path-36fdf5c7.js +499 -0
  115. package/dist/esm/{md.transition-ca5e0322.js → md.transition-8294b503.js} +3 -3
  116. package/dist/esm/{menu-toggle-util-7fa22c2f.js → menu-toggle-util-06adade3.js} +1 -1
  117. package/dist/esm/{overlays-34cfa9e0.js → overlays-5c777f10.js} +2 -2
  118. package/dist/esm/{purify-ffce2b4c.js → purify-eb68cf1d.js} +1 -1
  119. package/dist/esm/sparkle-animation-player.entry.js +1 -1
  120. package/dist/esm/sparkle-card_3.entry.js +85 -0
  121. package/dist/esm/sparkle-code.entry.js +1 -1
  122. package/dist/esm/sparkle-core.js +1 -1
  123. package/dist/esm/sparkle-course-root.entry.js +141 -0
  124. package/dist/esm/sparkle-dropdown.entry.js +57 -0
  125. package/dist/esm/{header-mobile-collapse_61.entry.js → sparkle-export-lessons_6.entry.js} +8858 -17604
  126. package/dist/esm/sparkle-facilitator-header_19.entry.js +2107 -0
  127. package/dist/esm/sparkle-facilitator-notes-form.entry.js +4 -4
  128. package/dist/esm/sparkle-feedback.entry.js +5 -4
  129. package/dist/esm/sparkle-goal-form.entry.js +5 -5
  130. package/dist/esm/sparkle-goal-progress.entry.js +15 -0
  131. package/dist/esm/sparkle-gww-item.entry.js +70 -0
  132. package/dist/esm/sparkle-intro.entry.js +22 -0
  133. package/dist/esm/sparkle-menu-collapsible.entry.js +1 -1
  134. package/dist/esm/sparkle-menu-toggle_3.entry.js +230 -0
  135. package/dist/esm/sparkle-validation-error.entry.js +17 -0
  136. package/dist/esm/{status-tap-6351a0cb.js → status-tap-e8c0c752.js} +1 -1
  137. package/dist/esm/stencil-route-link.entry.js +73 -0
  138. package/dist/esm/stencil-router-redirect.entry.js +28 -0
  139. package/dist/esm/{student.service-29b688ba.js → student.service-c2f44f3a.js} +3 -18
  140. package/dist/esm/{swipe-back-34251834.js → swipe-back-9a3b2cdd.js} +1 -1
  141. package/dist/esm/{tap-click-13f1fb0d.js → tap-click-cca25060.js} +1 -1
  142. package/dist/esm/user.store-e6ff7558.js +19 -0
  143. package/dist/esm/{util-6ef753e9.js → util-a831d09d.js} +1 -1
  144. package/dist/sparkle-core/index.esm.js +1 -1
  145. package/dist/sparkle-core/p-021fde3c.entry.js +1 -0
  146. package/dist/sparkle-core/p-034306e2.js +1 -0
  147. package/dist/sparkle-core/{p-6c90bde6.entry.js → p-034aa29f.entry.js} +1 -1
  148. package/dist/sparkle-core/p-06c0cce3.entry.js +1 -0
  149. package/dist/sparkle-core/{p-9cfdeb18.entry.js → p-08923b40.entry.js} +1 -1
  150. package/dist/sparkle-core/{p-513794b0.js → p-0ad99881.js} +1 -1
  151. package/dist/sparkle-core/{p-95004267.entry.js → p-11234d0f.entry.js} +1 -1
  152. package/dist/sparkle-core/{p-9a17f2ad.js → p-1133fcbd.js} +2 -2
  153. package/dist/sparkle-core/{p-faa912d7.entry.js → p-1551190a.entry.js} +1 -1
  154. package/dist/sparkle-core/p-1728ead7.js +1 -0
  155. package/dist/sparkle-core/{p-ae1f145d.entry.js → p-1e8c22e0.entry.js} +1 -1
  156. package/dist/sparkle-core/p-232cc3bc.js +1 -0
  157. package/dist/sparkle-core/{p-289a35ed.entry.js → p-28950db0.entry.js} +1 -1
  158. package/dist/sparkle-core/p-2af82cc1.entry.js +1 -0
  159. package/dist/sparkle-core/p-2bd4c60e.js +1 -0
  160. package/dist/sparkle-core/p-2f437793.entry.js +348 -0
  161. package/dist/sparkle-core/p-330ccc7c.entry.js +1 -0
  162. package/dist/sparkle-core/{p-838fa86d.entry.js → p-337f92b0.entry.js} +1 -1
  163. package/dist/sparkle-core/{p-857f3696.entry.js → p-35c5c110.entry.js} +1 -1
  164. package/dist/sparkle-core/p-3ff617d5.js +1 -0
  165. package/dist/sparkle-core/{p-7c38a70b.js → p-401feeb0.js} +1 -1
  166. package/dist/sparkle-core/{p-5a3d0e6b.js → p-4028676b.js} +1 -1
  167. package/dist/sparkle-core/{p-1cef8572.js → p-41124baa.js} +1 -1
  168. package/dist/sparkle-core/{p-0187adef.entry.js → p-41af3793.entry.js} +1 -1
  169. package/dist/sparkle-core/p-43a7391b.entry.js +1 -0
  170. package/dist/sparkle-core/{p-855ca600.js → p-44c23f72.js} +1 -1
  171. package/dist/sparkle-core/{p-c1376096.entry.js → p-4550e10f.entry.js} +1 -1
  172. package/dist/sparkle-core/{p-660e0742.js → p-4a72626a.js} +1 -1
  173. package/dist/sparkle-core/{p-e1cba44b.entry.js → p-4ba57978.entry.js} +1 -1
  174. package/dist/sparkle-core/{p-935e7cfc.js → p-4bd4dab2.js} +1 -1
  175. package/dist/sparkle-core/{p-d5b05ece.entry.js → p-4ef4b8bd.entry.js} +1 -1
  176. package/dist/sparkle-core/{p-55ae49e1.js → p-4f144efa.js} +1 -1
  177. package/dist/sparkle-core/{p-713590fc.js → p-52d4715a.js} +1 -1
  178. package/dist/sparkle-core/{p-bca0e465.entry.js → p-52f1d1ca.entry.js} +1 -1
  179. package/dist/sparkle-core/{p-7e61973d.entry.js → p-5a98d42e.entry.js} +1 -1
  180. package/dist/sparkle-core/{p-82e98d07.entry.js → p-5e4ec238.entry.js} +1 -1
  181. package/dist/sparkle-core/{p-0146afa0.entry.js → p-5ec7fd67.entry.js} +1 -1
  182. package/dist/sparkle-core/p-618f6f82.entry.js +1 -0
  183. package/dist/sparkle-core/p-65ca1fb2.entry.js +1 -0
  184. package/dist/sparkle-core/{p-a080e768.entry.js → p-663fafa9.entry.js} +1 -1
  185. package/dist/sparkle-core/p-67f71099.entry.js +4 -0
  186. package/dist/sparkle-core/{p-6e88764b.entry.js → p-6a16b9ef.entry.js} +2 -2
  187. package/dist/sparkle-core/p-6b6a8f0a.entry.js +1 -0
  188. package/dist/sparkle-core/p-6c5b5ea2.entry.js +1 -0
  189. package/dist/sparkle-core/{p-941eaa3a.entry.js → p-6ebf52fb.entry.js} +1 -1
  190. package/dist/sparkle-core/p-6f45db93.js +1 -0
  191. package/dist/sparkle-core/p-74106ca8.entry.js +1 -0
  192. package/dist/sparkle-core/{p-6fbe3ca3.entry.js → p-7568dcab.entry.js} +1 -1
  193. package/dist/sparkle-core/p-7703bae9.entry.js +1 -0
  194. package/dist/sparkle-core/p-77c23496.entry.js +1 -0
  195. package/dist/sparkle-core/p-79606a41.entry.js +1 -0
  196. package/dist/sparkle-core/p-7976e88c.entry.js +1 -0
  197. package/dist/sparkle-core/p-7c1f59ec.js +1 -0
  198. package/dist/sparkle-core/p-7de0a22b.entry.js +1 -0
  199. package/dist/sparkle-core/p-848fe770.entry.js +1 -0
  200. package/dist/sparkle-core/{p-cbbeed67.entry.js → p-85429b12.entry.js} +1 -1
  201. package/dist/sparkle-core/{p-64e72f8f.js → p-86d099f1.js} +2 -2
  202. package/dist/sparkle-core/{p-389500fd.js → p-87549bb7.js} +2 -2
  203. package/dist/sparkle-core/{p-1b78dea1.entry.js → p-8c470e28.entry.js} +1 -1
  204. package/dist/sparkle-core/{p-50aac721.entry.js → p-90466494.entry.js} +1 -1
  205. package/dist/sparkle-core/p-954c89c2.entry.js +1 -0
  206. package/dist/sparkle-core/{p-f4001fdf.js → p-95d01c4c.js} +1 -1
  207. package/dist/sparkle-core/{p-6ee40949.js → p-987c64eb.js} +1 -1
  208. package/dist/sparkle-core/{p-1af044f7.js → p-a7832a51.js} +1 -1
  209. package/dist/sparkle-core/p-a89dea80.entry.js +1 -0
  210. package/dist/sparkle-core/p-aef8aa31.entry.js +1 -0
  211. package/dist/sparkle-core/{p-6c6145cd.js → p-b17dd6df.js} +2 -2
  212. package/dist/sparkle-core/{p-5ff6416d.entry.js → p-b21d0d9f.entry.js} +1 -1
  213. package/dist/sparkle-core/p-b7dafaae.entry.js +1 -0
  214. package/dist/sparkle-core/{p-c3986a52.entry.js → p-bd062288.entry.js} +1 -1
  215. package/dist/sparkle-core/{p-c1279cc9.entry.js → p-beb401e3.entry.js} +1 -1
  216. package/dist/sparkle-core/p-bef34cfe.entry.js +1 -0
  217. package/dist/sparkle-core/{p-6bf07a28.js → p-c1c59771.js} +1 -1
  218. package/dist/sparkle-core/p-c4104929.entry.js +1 -0
  219. package/dist/sparkle-core/{p-173d5461.entry.js → p-c748f64e.entry.js} +1 -1
  220. package/dist/sparkle-core/{p-d4a435f8.entry.js → p-c753207f.entry.js} +1 -1
  221. package/dist/sparkle-core/{p-18e62133.entry.js → p-c8ae9e47.entry.js} +1 -1
  222. package/dist/sparkle-core/p-c8ed0575.js +1 -0
  223. package/dist/sparkle-core/{p-8fe2e51f.entry.js → p-c96b24bd.entry.js} +2 -2
  224. package/dist/sparkle-core/p-ce13171b.entry.js +1 -0
  225. package/dist/sparkle-core/{p-5c9aa1f9.entry.js → p-d00f550b.entry.js} +1 -1
  226. package/dist/sparkle-core/p-d394eed1.entry.js +1 -0
  227. package/dist/sparkle-core/p-d48e95c1.entry.js +1 -0
  228. package/dist/sparkle-core/p-d4b1a14a.entry.js +1 -0
  229. package/dist/sparkle-core/{p-b81e20fe.entry.js → p-d56efeac.entry.js} +1 -1
  230. package/dist/sparkle-core/{p-932bfb69.entry.js → p-d59a5984.entry.js} +1 -1
  231. package/dist/sparkle-core/p-d8aff730.entry.js +1 -0
  232. package/dist/sparkle-core/{p-5d2e54ee.entry.js → p-da8921d0.entry.js} +1 -1
  233. package/dist/sparkle-core/{p-a1cab0f3.js → p-e08059b6.js} +2 -2
  234. package/dist/sparkle-core/{p-5598650a.entry.js → p-ec4d22e3.entry.js} +1 -1
  235. package/dist/sparkle-core/{p-eb70a23c.entry.js → p-ed3eed72.entry.js} +1 -1
  236. package/dist/sparkle-core/{p-a7cc0052.entry.js → p-ee0717e1.entry.js} +1 -1
  237. package/dist/sparkle-core/p-ef2dace6.js +4 -0
  238. package/dist/sparkle-core/{p-2ee6a5f9.entry.js → p-f1106984.entry.js} +1 -1
  239. package/dist/sparkle-core/p-f61ca75c.entry.js +1 -0
  240. package/dist/sparkle-core/{p-e225581a.js → p-f6bafe1d.js} +1 -1
  241. package/dist/sparkle-core/{p-1df05176.js → p-ff4d6858.js} +1 -1
  242. package/dist/sparkle-core/sparkle-core.esm.js +1 -1
  243. package/dist/types/components/sparkle-intro/sparkle-intro.d.ts +7 -0
  244. package/dist/types/components.d.ts +13 -0
  245. package/dist/types/models/course.model.d.ts +1 -8
  246. package/package.json +2 -2
  247. package/dist/cjs/student.service-744c3155.js +0 -77
  248. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/button/button.css +0 -49
  249. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/cards/card/card.css +0 -208
  250. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/cards/cards.css +0 -31
  251. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/code/code.css +0 -245
  252. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/dropdown/dropdown.css +0 -115
  253. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/header/header-mobile-collapse/header-mobile-collapse.css +0 -255
  254. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/header/header.css +0 -232
  255. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/menu/collapsible/collapsible.css +0 -3
  256. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/menu/menu-toggle/menu-toggle.css +0 -25
  257. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/menu/menu.css +0 -71
  258. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/nav/nav.css +0 -194
  259. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/notfound-page/notfound-page.css +0 -4
  260. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/overlay/overlay.css +0 -67
  261. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/page-footer/page-footer.css +0 -18
  262. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/pagination/pagination.css +0 -89
  263. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/select/select.css +0 -52
  264. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/sidebar/sidebar.css +0 -98
  265. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/sparkle-lower-content-nav/sparkle-lower-content-nav.css +0 -8
  266. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/table-of-contents/table-of-contents.css +0 -37
  267. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/tabs/tabs.css +0 -64
  268. package/dist/sparkle-core/p-03189863.js +0 -1
  269. package/dist/sparkle-core/p-1339830f.entry.js +0 -1
  270. package/dist/sparkle-core/p-145e40f5.entry.js +0 -1
  271. package/dist/sparkle-core/p-547b70c6.entry.js +0 -1
  272. package/dist/sparkle-core/p-6bbabb80.entry.js +0 -1
  273. package/dist/sparkle-core/p-950effe7.entry.js +0 -1
  274. package/dist/sparkle-core/p-d8d3524a.js +0 -1
  275. package/dist/sparkle-core/p-df0070c5.entry.js +0 -352
  276. package/dist/sparkle-core/p-e0fced48.entry.js +0 -1
  277. package/dist/sparkle-core/p-e72d4450.js +0 -4
  278. package/dist/sparkle-core/p-fc933591.entry.js +0 -1
@@ -0,0 +1,370 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-bae2a754.js');
6
+ const ionicGlobal = require('./ionic-global-878073d1.js');
7
+ const helpers = require('./helpers-7e28976c.js');
8
+ const theme = require('./theme-4252ac15.js');
9
+
10
+ const checkboxIosCss = ":host{--background-checked:var(--ion-color-primary, #3880ff);--border-color-checked:var(--ion-color-primary, #3880ff);--checkmark-color:var(--ion-color-primary-contrast, #fff);--checkmark-width:1;--transition:none;display:inline-block;position:relative;user-select:none;z-index:2}:host(.ion-color){--background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}label{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;appearance:none;outline:none;display:flex;align-items:center;opacity:0}[dir=rtl] label,:host-context([dir=rtl]) label{left:unset;right:unset;right:0}label::-moz-focus-inner{border:0}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.checkbox-icon{border-radius:var(--border-radius);display:block;position:relative;width:100%;height:100%;transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:50%;--border-width:1px;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23);--background:var(--ion-item-background, var(--ion-background-color, #fff));--size:26px;width:var(--size);height:var(--size)}:host(.checkbox-disabled){opacity:0.3}:host(.in-item){margin-left:0;margin-right:8px;margin-top:10px;margin-bottom:9px;display:block;position:static}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host(.in-item){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px}}:host(.in-item[slot=start]){margin-left:2px;margin-right:20px;margin-top:8px;margin-bottom:8px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host(.in-item[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:20px;margin-inline-end:20px}}";
11
+
12
+ const checkboxMdCss = ":host{--background-checked:var(--ion-color-primary, #3880ff);--border-color-checked:var(--ion-color-primary, #3880ff);--checkmark-color:var(--ion-color-primary-contrast, #fff);--checkmark-width:1;--transition:none;display:inline-block;position:relative;user-select:none;z-index:2}:host(.ion-color){--background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}label{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;appearance:none;outline:none;display:flex;align-items:center;opacity:0}[dir=rtl] label,:host-context([dir=rtl]) label{left:unset;right:unset;right:0}label::-moz-focus-inner{border:0}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.checkbox-icon{border-radius:var(--border-radius);display:block;position:relative;width:100%;height:100%;transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:calc(var(--size) * .125);--border-width:2px;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.51);--checkmark-width:3;--background:var(--ion-item-background, var(--ion-background-color, #fff));--transition:background 180ms cubic-bezier(0.4, 0, 0.2, 1);--size:18px;width:var(--size);height:var(--size)}.checkbox-icon path{stroke-dasharray:30;stroke-dashoffset:30}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{stroke-dashoffset:0;transition:stroke-dashoffset 90ms linear 90ms}:host(.checkbox-disabled){opacity:0.3}:host(.in-item){margin-left:0;margin-right:0;margin-top:18px;margin-bottom:18px;display:block;position:static}:host(.in-item[slot=start]){margin-left:4px;margin-right:36px;margin-top:18px;margin-bottom:18px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host(.in-item[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:36px;margin-inline-end:36px}}";
13
+
14
+ const Checkbox = class {
15
+ constructor(hostRef) {
16
+ index.registerInstance(this, hostRef);
17
+ this.ionChange = index.createEvent(this, "ionChange", 7);
18
+ this.ionFocus = index.createEvent(this, "ionFocus", 7);
19
+ this.ionBlur = index.createEvent(this, "ionBlur", 7);
20
+ this.ionStyle = index.createEvent(this, "ionStyle", 7);
21
+ this.inputId = `ion-cb-${checkboxIds++}`;
22
+ /**
23
+ * The name of the control, which is submitted with the form data.
24
+ */
25
+ this.name = this.inputId;
26
+ /**
27
+ * If `true`, the checkbox is selected.
28
+ */
29
+ this.checked = false;
30
+ /**
31
+ * If `true`, the checkbox will visually appear as indeterminate.
32
+ */
33
+ this.indeterminate = false;
34
+ /**
35
+ * If `true`, the user cannot interact with the checkbox.
36
+ */
37
+ this.disabled = false;
38
+ /**
39
+ * The value of the checkbox does not mean if it's checked or not, use the `checked`
40
+ * property for that.
41
+ *
42
+ * The value of a checkbox is analogous to the value of an `<input type="checkbox">`,
43
+ * it's only used when the checkbox participates in a native `<form>`.
44
+ */
45
+ this.value = 'on';
46
+ this.onClick = (ev) => {
47
+ ev.preventDefault();
48
+ this.setFocus();
49
+ this.checked = !this.checked;
50
+ this.indeterminate = false;
51
+ };
52
+ this.onFocus = () => {
53
+ this.ionFocus.emit();
54
+ };
55
+ this.onBlur = () => {
56
+ this.ionBlur.emit();
57
+ };
58
+ }
59
+ componentWillLoad() {
60
+ this.emitStyle();
61
+ }
62
+ checkedChanged(isChecked) {
63
+ this.ionChange.emit({
64
+ checked: isChecked,
65
+ value: this.value
66
+ });
67
+ this.emitStyle();
68
+ }
69
+ disabledChanged() {
70
+ this.emitStyle();
71
+ }
72
+ emitStyle() {
73
+ this.ionStyle.emit({
74
+ 'checkbox-checked': this.checked,
75
+ 'interactive-disabled': this.disabled,
76
+ });
77
+ }
78
+ setFocus() {
79
+ if (this.focusEl) {
80
+ this.focusEl.focus();
81
+ }
82
+ }
83
+ render() {
84
+ const { color, checked, disabled, el, indeterminate, inputId, name, value } = this;
85
+ const mode = ionicGlobal.getIonMode(this);
86
+ const { label, labelId, labelText } = helpers.getAriaLabel(el, inputId);
87
+ helpers.renderHiddenInput(true, el, name, (checked ? value : ''), disabled);
88
+ let path = indeterminate
89
+ ? index.h("path", { d: "M6 12L18 12", part: "mark" })
90
+ : index.h("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" });
91
+ if (mode === 'md') {
92
+ path = indeterminate
93
+ ? index.h("path", { d: "M2 12H22", part: "mark" })
94
+ : index.h("path", { d: "M1.73,12.91 8.1,19.28 22.79,4.59", part: "mark" });
95
+ }
96
+ return (index.h(index.Host, { onClick: this.onClick, "aria-labelledby": label ? labelId : null, "aria-checked": `${checked}`, "aria-hidden": disabled ? 'true' : null, role: "checkbox", class: theme.createColorClasses(color, {
97
+ [mode]: true,
98
+ 'in-item': theme.hostContext('ion-item', el),
99
+ 'checkbox-checked': checked,
100
+ 'checkbox-disabled': disabled,
101
+ 'checkbox-indeterminate': indeterminate,
102
+ 'interactive': true
103
+ }) }, index.h("svg", { class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path), index.h("label", { htmlFor: inputId }, labelText), index.h("input", { type: "checkbox", "aria-checked": `${checked}`, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: focusEl => this.focusEl = focusEl })));
104
+ }
105
+ get el() { return index.getElement(this); }
106
+ static get watchers() { return {
107
+ "checked": ["checkedChanged"],
108
+ "disabled": ["disabledChanged"]
109
+ }; }
110
+ };
111
+ let checkboxIds = 0;
112
+ Checkbox.style = {
113
+ ios: checkboxIosCss,
114
+ md: checkboxMdCss
115
+ };
116
+
117
+ const listHeaderIosCss = ":host{--border-style:solid;--border-width:0;--inner-border-width:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:40px;border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);overflow:hidden}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}.list-header-inner{display:flex;position:relative;flex:1;flex-direction:inherit;align-items:inherit;align-self:stretch;min-height:inherit;border-width:var(--inner-border-width);border-style:var(--border-style);border-color:var(--border-color);overflow:inherit;box-sizing:border-box}::slotted(ion-label){flex:1 1 auto}:host(.list-header-lines-inset),:host(.list-header-lines-none){--border-width:0}:host(.list-header-lines-full),:host(.list-header-lines-none){--inner-border-width:0}:host{--background:transparent;--color:var(--ion-color-step-850, #262626);--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));padding-left:calc(var(--ion-safe-area-left, 0px) + 20px);position:relative;align-items:flex-end;font-size:22px;font-weight:700;letter-spacing:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;-webkit-padding-start:calc(var(--ion-safe-area-left, 0px) + 20px);padding-inline-start:calc(var(--ion-safe-area-left, 0px) + 20px)}}::slotted(ion-button),::slotted(ion-label){margin-top:29px;margin-bottom:6px}::slotted(ion-button){margin-left:3px;margin-right:3px;height:1.4em}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted(ion-button){margin-left:unset;margin-right:unset;-webkit-margin-start:3px;margin-inline-start:3px;-webkit-margin-end:3px;margin-inline-end:3px}}:host(.list-header-lines-full){--border-width:0 0 0.55px 0}:host(.list-header-lines-inset){--inner-border-width:0 0 0.55px 0}";
118
+
119
+ const listHeaderMdCss = ":host{--border-style:solid;--border-width:0;--inner-border-width:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:40px;border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);overflow:hidden}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}.list-header-inner{display:flex;position:relative;flex:1;flex-direction:inherit;align-items:inherit;align-self:stretch;min-height:inherit;border-width:var(--inner-border-width);border-style:var(--border-style);border-color:var(--border-color);overflow:inherit;box-sizing:border-box}::slotted(ion-label){flex:1 1 auto}:host(.list-header-lines-inset),:host(.list-header-lines-none){--border-width:0}:host(.list-header-lines-full),:host(.list-header-lines-none){--inner-border-width:0}:host{--background:transparent;--color:var(--ion-text-color, #000);--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));padding-left:calc(var(--ion-safe-area-left, 0) + 16px);min-height:45px;font-size:14px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;-webkit-padding-start:calc(var(--ion-safe-area-left, 0) + 16px);padding-inline-start:calc(var(--ion-safe-area-left, 0) + 16px)}}:host(.list-header-lines-full){--border-width:0 0 1px 0}:host(.list-header-lines-inset){--inner-border-width:0 0 1px 0}";
120
+
121
+ const ListHeader = class {
122
+ constructor(hostRef) {
123
+ index.registerInstance(this, hostRef);
124
+ }
125
+ render() {
126
+ const { lines } = this;
127
+ const mode = ionicGlobal.getIonMode(this);
128
+ return (index.h(index.Host, { class: theme.createColorClasses(this.color, {
129
+ [mode]: true,
130
+ [`list-header-lines-${lines}`]: lines !== undefined,
131
+ }) }, index.h("div", { class: "list-header-inner" }, index.h("slot", null))));
132
+ }
133
+ };
134
+ ListHeader.style = {
135
+ ios: listHeaderIosCss,
136
+ md: listHeaderMdCss
137
+ };
138
+
139
+ const radioIosCss = ":host{--inner-border-radius:50%;display:inline-block;position:relative;box-sizing:border-box;user-select:none;z-index:2}:host(.radio-disabled){pointer-events:none}.radio-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%;contain:layout size style}.radio-icon,.radio-inner{box-sizing:border-box}label{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;appearance:none;outline:none;display:flex;align-items:center;opacity:0}[dir=rtl] label,:host-context([dir=rtl]) label{left:unset;right:unset;right:0}label::-moz-focus-inner{border:0}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host(:focus){outline:none}:host{--color-checked:var(--ion-color-primary, #3880ff);width:15px;height:24px}:host(.ion-color.radio-checked) .radio-inner{border-color:var(--ion-color-base)}.item-radio.item-ios ion-label{margin-left:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.item-radio.item-ios ion-label{margin-left:unset;-webkit-margin-start:0;margin-inline-start:0}}.radio-inner{width:33%;height:50%}:host(.radio-checked) .radio-inner{transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--color-checked)}:host(.radio-disabled){opacity:0.3}:host(.ion-focused) .radio-icon::after{border-radius:var(--inner-border-radius);left:-9px;top:-8px;display:block;position:absolute;width:36px;height:36px;background:var(--ion-color-primary-tint, #4c8dff);content:\"\";opacity:0.2}:host-context([dir=rtl]):host(.ion-focused) .radio-icon::after,:host-context([dir=rtl]).ion-focused .radio-icon::after{left:unset;right:unset;right:-9px}:host(.in-item){margin-left:10px;margin-right:11px;margin-top:8px;margin-bottom:8px;display:block;position:static}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host(.in-item){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:11px;margin-inline-end:11px}}:host(.in-item[slot=start]){margin-left:3px;margin-right:21px;margin-top:8px;margin-bottom:8px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host(.in-item[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:3px;margin-inline-start:3px;-webkit-margin-end:21px;margin-inline-end:21px}}";
140
+
141
+ const radioMdCss = ":host{--inner-border-radius:50%;display:inline-block;position:relative;box-sizing:border-box;user-select:none;z-index:2}:host(.radio-disabled){pointer-events:none}.radio-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%;contain:layout size style}.radio-icon,.radio-inner{box-sizing:border-box}label{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;appearance:none;outline:none;display:flex;align-items:center;opacity:0}[dir=rtl] label,:host-context([dir=rtl]) label{left:unset;right:unset;right:0}label::-moz-focus-inner{border:0}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host(:focus){outline:none}:host{--color:var(--ion-color-step-400, #999999);--color-checked:var(--ion-color-primary, #3880ff);--border-width:2px;--border-style:solid;--border-radius:50%;width:20px;height:20px}:host(.ion-color) .radio-inner{background:var(--ion-color-base)}:host(.ion-color.radio-checked) .radio-icon{border-color:var(--ion-color-base)}.radio-icon{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:var(--border-radius);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--color)}.radio-inner{border-radius:var(--inner-border-radius);width:calc(50% + var(--border-width));height:calc(50% + var(--border-width));transform:scale3d(0, 0, 0);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background:var(--color-checked)}:host(.radio-checked) .radio-icon{border-color:var(--color-checked)}:host(.radio-checked) .radio-inner{transform:scale3d(1, 1, 1)}:host(.radio-disabled){opacity:0.3}:host(.ion-focused) .radio-icon::after{border-radius:var(--inner-border-radius);left:-12px;top:-12px;display:block;position:absolute;width:36px;height:36px;background:var(--ion-color-primary-tint, #4c8dff);content:\"\";opacity:0.2}:host-context([dir=rtl]):host(.ion-focused) .radio-icon::after,:host-context([dir=rtl]).ion-focused .radio-icon::after{left:unset;right:unset;right:-12px}:host(.in-item){margin-left:0;margin-right:0;margin-top:9px;margin-bottom:9px;display:block;position:static}:host(.in-item[slot=start]){margin-left:4px;margin-right:36px;margin-top:11px;margin-bottom:10px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host(.in-item[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:36px;margin-inline-end:36px}}";
142
+
143
+ const Radio = class {
144
+ constructor(hostRef) {
145
+ index.registerInstance(this, hostRef);
146
+ this.ionStyle = index.createEvent(this, "ionStyle", 7);
147
+ this.ionFocus = index.createEvent(this, "ionFocus", 7);
148
+ this.ionBlur = index.createEvent(this, "ionBlur", 7);
149
+ this.inputId = `ion-rb-${radioButtonIds++}`;
150
+ this.radioGroup = null;
151
+ /**
152
+ * If `true`, the radio is selected.
153
+ */
154
+ this.checked = false;
155
+ /**
156
+ * The tabindex of the radio button.
157
+ * @internal
158
+ */
159
+ this.buttonTabindex = -1;
160
+ /**
161
+ * The name of the control, which is submitted with the form data.
162
+ */
163
+ this.name = this.inputId;
164
+ /**
165
+ * If `true`, the user cannot interact with the radio.
166
+ */
167
+ this.disabled = false;
168
+ this.updateState = () => {
169
+ if (this.radioGroup) {
170
+ this.checked = this.radioGroup.value === this.value;
171
+ }
172
+ };
173
+ this.onClick = () => {
174
+ this.checked = this.nativeInput.checked;
175
+ };
176
+ this.onFocus = () => {
177
+ this.ionFocus.emit();
178
+ };
179
+ this.onBlur = () => {
180
+ this.ionBlur.emit();
181
+ };
182
+ }
183
+ /** @internal */
184
+ async setFocus(ev) {
185
+ ev.stopPropagation();
186
+ ev.preventDefault();
187
+ this.el.focus();
188
+ }
189
+ /** @internal */
190
+ async setButtonTabindex(value) {
191
+ this.buttonTabindex = value;
192
+ }
193
+ connectedCallback() {
194
+ if (this.value === undefined) {
195
+ this.value = this.inputId;
196
+ }
197
+ const radioGroup = this.radioGroup = this.el.closest('ion-radio-group');
198
+ if (radioGroup) {
199
+ this.updateState();
200
+ helpers.addEventListener(radioGroup, 'ionChange', this.updateState);
201
+ }
202
+ }
203
+ disconnectedCallback() {
204
+ const radioGroup = this.radioGroup;
205
+ if (radioGroup) {
206
+ helpers.removeEventListener(radioGroup, 'ionChange', this.updateState);
207
+ this.radioGroup = null;
208
+ }
209
+ }
210
+ componentWillLoad() {
211
+ this.emitStyle();
212
+ }
213
+ emitStyle() {
214
+ this.ionStyle.emit({
215
+ 'radio-checked': this.checked,
216
+ 'interactive-disabled': this.disabled,
217
+ });
218
+ }
219
+ render() {
220
+ const { inputId, disabled, checked, color, el, buttonTabindex } = this;
221
+ const mode = ionicGlobal.getIonMode(this);
222
+ const { label, labelId, labelText } = helpers.getAriaLabel(el, inputId);
223
+ return (index.h(index.Host, { "aria-checked": `${checked}`, "aria-hidden": disabled ? 'true' : null, "aria-labelledby": label ? labelId : null, role: "radio", tabindex: buttonTabindex, onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: theme.createColorClasses(color, {
224
+ [mode]: true,
225
+ 'in-item': theme.hostContext('ion-item', el),
226
+ 'interactive': true,
227
+ 'radio-checked': checked,
228
+ 'radio-disabled': disabled,
229
+ }) }, index.h("div", { class: "radio-icon", part: "container" }, index.h("div", { class: "radio-inner", part: "mark" }), index.h("div", { class: "radio-ripple" })), index.h("label", { htmlFor: inputId }, labelText), index.h("input", { type: "radio", checked: checked, disabled: disabled, tabindex: "-1", id: inputId, ref: nativeEl => this.nativeInput = nativeEl })));
230
+ }
231
+ get el() { return index.getElement(this); }
232
+ static get watchers() { return {
233
+ "color": ["emitStyle"],
234
+ "checked": ["emitStyle"],
235
+ "disabled": ["emitStyle"]
236
+ }; }
237
+ };
238
+ let radioButtonIds = 0;
239
+ Radio.style = {
240
+ ios: radioIosCss,
241
+ md: radioMdCss
242
+ };
243
+
244
+ const RadioGroup = class {
245
+ constructor(hostRef) {
246
+ index.registerInstance(this, hostRef);
247
+ this.ionChange = index.createEvent(this, "ionChange", 7);
248
+ this.inputId = `ion-rg-${radioGroupIds++}`;
249
+ this.labelId = `${this.inputId}-lbl`;
250
+ /**
251
+ * If `true`, the radios can be deselected.
252
+ */
253
+ this.allowEmptySelection = false;
254
+ /**
255
+ * The name of the control, which is submitted with the form data.
256
+ */
257
+ this.name = this.inputId;
258
+ this.setRadioTabindex = (value) => {
259
+ const radios = this.getRadios();
260
+ // Get the first radio that is not disabled and the checked one
261
+ const first = radios.find(radio => !radio.disabled);
262
+ const checked = radios.find(radio => (radio.value === value && !radio.disabled));
263
+ if (!first && !checked) {
264
+ return;
265
+ }
266
+ // If an enabled checked radio exists, set it to be the focusable radio
267
+ // otherwise we default to focus the first radio
268
+ const focusable = checked || first;
269
+ for (const radio of radios) {
270
+ const tabindex = radio === focusable ? 0 : -1;
271
+ radio.setButtonTabindex(tabindex);
272
+ }
273
+ };
274
+ this.onClick = (ev) => {
275
+ ev.preventDefault();
276
+ const selectedRadio = ev.target && ev.target.closest('ion-radio');
277
+ if (selectedRadio) {
278
+ const currentValue = this.value;
279
+ const newValue = selectedRadio.value;
280
+ if (newValue !== currentValue) {
281
+ this.value = newValue;
282
+ }
283
+ else if (this.allowEmptySelection) {
284
+ this.value = undefined;
285
+ }
286
+ }
287
+ };
288
+ }
289
+ valueChanged(value) {
290
+ this.setRadioTabindex(value);
291
+ this.ionChange.emit({ value });
292
+ }
293
+ componentDidLoad() {
294
+ this.setRadioTabindex(this.value);
295
+ }
296
+ async connectedCallback() {
297
+ // Get the list header if it exists and set the id
298
+ // this is used to set aria-labelledby
299
+ const header = this.el.querySelector('ion-list-header') || this.el.querySelector('ion-item-divider');
300
+ if (header) {
301
+ const label = this.label = header.querySelector('ion-label');
302
+ if (label) {
303
+ this.labelId = label.id = this.name + '-lbl';
304
+ }
305
+ }
306
+ }
307
+ getRadios() {
308
+ return Array.from(this.el.querySelectorAll('ion-radio'));
309
+ }
310
+ onKeydown(ev) {
311
+ const inSelectPopover = !!this.el.closest('ion-select-popover');
312
+ if (ev.target && !this.el.contains(ev.target)) {
313
+ return;
314
+ }
315
+ // Get all radios inside of the radio group and then
316
+ // filter out disabled radios since we need to skip those
317
+ const radios = this.getRadios().filter(radio => !radio.disabled);
318
+ // Only move the radio if the current focus is in the radio group
319
+ if (ev.target && radios.includes(ev.target)) {
320
+ const index = radios.findIndex(radio => radio === ev.target);
321
+ const current = radios[index];
322
+ let next;
323
+ // If hitting arrow down or arrow right, move to the next radio
324
+ // If we're on the last radio, move to the first radio
325
+ if (['ArrowDown', 'ArrowRight'].includes(ev.code)) {
326
+ next = (index === radios.length - 1)
327
+ ? radios[0]
328
+ : radios[index + 1];
329
+ }
330
+ // If hitting arrow up or arrow left, move to the previous radio
331
+ // If we're on the first radio, move to the last radio
332
+ if (['ArrowUp', 'ArrowLeft'].includes(ev.code)) {
333
+ next = (index === 0)
334
+ ? radios[radios.length - 1]
335
+ : radios[index - 1];
336
+ }
337
+ if (next && radios.includes(next)) {
338
+ next.setFocus(ev);
339
+ if (!inSelectPopover) {
340
+ this.value = next.value;
341
+ }
342
+ }
343
+ // Update the radio group value when a user presses the
344
+ // space bar on top of a selected radio
345
+ if (['Space'].includes(ev.code)) {
346
+ this.value = (this.allowEmptySelection && this.value !== undefined)
347
+ ? undefined
348
+ : current.value;
349
+ // Prevent browsers from jumping
350
+ // to the bottom of the screen
351
+ ev.preventDefault();
352
+ }
353
+ }
354
+ }
355
+ render() {
356
+ const { label, labelId } = this;
357
+ const mode = ionicGlobal.getIonMode(this);
358
+ return (index.h(index.Host, { role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode }));
359
+ }
360
+ get el() { return index.getElement(this); }
361
+ static get watchers() { return {
362
+ "value": ["valueChanged"]
363
+ }; }
364
+ };
365
+ let radioGroupIds = 0;
366
+
367
+ exports.ion_checkbox = Checkbox;
368
+ exports.ion_list_header = ListHeader;
369
+ exports.ion_radio = Radio;
370
+ exports.ion_radio_group = RadioGroup;
@@ -0,0 +1,155 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-bae2a754.js');
6
+ const ionicGlobal = require('./ionic-global-878073d1.js');
7
+
8
+ /*!
9
+ * (C) Ionic http://ionicframework.com - MIT License
10
+ */
11
+ const SIZE_TO_MEDIA = {
12
+ 'xs': '(min-width: 0px)',
13
+ 'sm': '(min-width: 576px)',
14
+ 'md': '(min-width: 768px)',
15
+ 'lg': '(min-width: 992px)',
16
+ 'xl': '(min-width: 1200px)',
17
+ };
18
+ // Check if the window matches the media query
19
+ // at the breakpoint passed
20
+ // e.g. matchBreakpoint('sm') => true if screen width exceeds 576px
21
+ const matchBreakpoint = (breakpoint) => {
22
+ if (breakpoint === undefined || breakpoint === '') {
23
+ return true;
24
+ }
25
+ if (window.matchMedia) {
26
+ const mediaQuery = SIZE_TO_MEDIA[breakpoint];
27
+ return window.matchMedia(mediaQuery).matches;
28
+ }
29
+ return false;
30
+ };
31
+
32
+ const colCss = ":host{padding-left:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-right:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;box-sizing:border-box;position:relative;flex-basis:0;flex-grow:1;width:100%;max-width:100%;min-height:1px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px))}}@media (min-width: 576px){:host{padding-left:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-right:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px))}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px))}}}@media (min-width: 768px){:host{padding-left:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-right:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px))}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px))}}}@media (min-width: 992px){:host{padding-left:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-right:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px))}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px))}}}@media (min-width: 1200px){:host{padding-left:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-right:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px))}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px))}}}";
33
+
34
+ const win = (typeof window !== 'undefined') ? window : undefined;
35
+ const SUPPORTS_VARS = win && !!(win.CSS && win.CSS.supports && win.CSS.supports('--a: 0'));
36
+ const BREAKPOINTS = ['', 'xs', 'sm', 'md', 'lg', 'xl'];
37
+ const Col = class {
38
+ constructor(hostRef) {
39
+ index.registerInstance(this, hostRef);
40
+ }
41
+ onResize() {
42
+ index.forceUpdate(this);
43
+ }
44
+ // Loop through all of the breakpoints to see if the media query
45
+ // matches and grab the column value from the relevant prop if so
46
+ getColumns(property) {
47
+ let matched;
48
+ for (const breakpoint of BREAKPOINTS) {
49
+ const matches = matchBreakpoint(breakpoint);
50
+ // Grab the value of the property, if it exists and our
51
+ // media query matches we return the value
52
+ const columns = this[property + breakpoint.charAt(0).toUpperCase() + breakpoint.slice(1)];
53
+ if (matches && columns !== undefined) {
54
+ matched = columns;
55
+ }
56
+ }
57
+ // Return the last matched columns since the breakpoints
58
+ // increase in size and we want to return the largest match
59
+ return matched;
60
+ }
61
+ calculateSize() {
62
+ const columns = this.getColumns('size');
63
+ // If size wasn't set for any breakpoint
64
+ // or if the user set the size without a value
65
+ // it means we need to stick with the default and return
66
+ // e.g. <ion-col size-md>
67
+ if (!columns || columns === '') {
68
+ return;
69
+ }
70
+ // If the size is set to auto then don't calculate a size
71
+ const colSize = (columns === 'auto')
72
+ ? 'auto'
73
+ // If CSS supports variables we should use the grid columns var
74
+ : SUPPORTS_VARS ? `calc(calc(${columns} / var(--ion-grid-columns, 12)) * 100%)`
75
+ // Convert the columns to a percentage by dividing by the total number
76
+ // of columns (12) and then multiplying by 100
77
+ : ((columns / 12) * 100) + '%';
78
+ return {
79
+ 'flex': `0 0 ${colSize}`,
80
+ 'width': `${colSize}`,
81
+ 'max-width': `${colSize}`
82
+ };
83
+ }
84
+ // Called by push, pull, and offset since they use the same calculations
85
+ calculatePosition(property, modifier) {
86
+ const columns = this.getColumns(property);
87
+ if (!columns) {
88
+ return;
89
+ }
90
+ // If the number of columns passed are greater than 0 and less than
91
+ // 12 we can position the column, else default to auto
92
+ const amount = SUPPORTS_VARS
93
+ // If CSS supports variables we should use the grid columns var
94
+ ? `calc(calc(${columns} / var(--ion-grid-columns, 12)) * 100%)`
95
+ // Convert the columns to a percentage by dividing by the total number
96
+ // of columns (12) and then multiplying by 100
97
+ : (columns > 0 && columns < 12) ? (columns / 12 * 100) + '%' : 'auto';
98
+ return {
99
+ [modifier]: amount
100
+ };
101
+ }
102
+ calculateOffset(isRTL) {
103
+ return this.calculatePosition('offset', isRTL ? 'margin-right' : 'margin-left');
104
+ }
105
+ calculatePull(isRTL) {
106
+ return this.calculatePosition('pull', isRTL ? 'left' : 'right');
107
+ }
108
+ calculatePush(isRTL) {
109
+ return this.calculatePosition('push', isRTL ? 'right' : 'left');
110
+ }
111
+ render() {
112
+ const isRTL = document.dir === 'rtl';
113
+ const mode = ionicGlobal.getIonMode(this);
114
+ return (index.h(index.Host, { class: {
115
+ [mode]: true
116
+ }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, index.h("slot", null)));
117
+ }
118
+ };
119
+ Col.style = colCss;
120
+
121
+ const gridCss = ":host{padding-left:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-right:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));margin-left:auto;margin-right:auto;display:block;flex:1}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px))}}@media (min-width: 576px){:host{padding-left:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-right:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px))}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px))}}}@media (min-width: 768px){:host{padding-left:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-right:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px))}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px))}}}@media (min-width: 992px){:host{padding-left:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-right:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px))}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px))}}}@media (min-width: 1200px){:host{padding-left:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-right:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px))}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px))}}}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}:host(.grid-fixed){width:var(--ion-grid-width-xs, var(--ion-grid-width, 100%));max-width:100%}@media (min-width: 576px){:host(.grid-fixed){width:var(--ion-grid-width-sm, var(--ion-grid-width, 540px))}}@media (min-width: 768px){:host(.grid-fixed){width:var(--ion-grid-width-md, var(--ion-grid-width, 720px))}}@media (min-width: 992px){:host(.grid-fixed){width:var(--ion-grid-width-lg, var(--ion-grid-width, 960px))}}@media (min-width: 1200px){:host(.grid-fixed){width:var(--ion-grid-width-xl, var(--ion-grid-width, 1140px))}}:host(.ion-no-padding){--ion-grid-column-padding:0;--ion-grid-column-padding-xs:0;--ion-grid-column-padding-sm:0;--ion-grid-column-padding-md:0;--ion-grid-column-padding-lg:0;--ion-grid-column-padding-xl:0}";
122
+
123
+ const Grid = class {
124
+ constructor(hostRef) {
125
+ index.registerInstance(this, hostRef);
126
+ /**
127
+ * If `true`, the grid will have a fixed width based on the screen size.
128
+ */
129
+ this.fixed = false;
130
+ }
131
+ render() {
132
+ const mode = ionicGlobal.getIonMode(this);
133
+ return (index.h(index.Host, { class: {
134
+ [mode]: true,
135
+ 'grid-fixed': this.fixed
136
+ } }, index.h("slot", null)));
137
+ }
138
+ };
139
+ Grid.style = gridCss;
140
+
141
+ const rowCss = ":host{display:flex;flex-wrap:wrap}";
142
+
143
+ const Row = class {
144
+ constructor(hostRef) {
145
+ index.registerInstance(this, hostRef);
146
+ }
147
+ render() {
148
+ return (index.h(index.Host, { class: ionicGlobal.getIonMode(this) }, index.h("slot", null)));
149
+ }
150
+ };
151
+ Row.style = rowCss;
152
+
153
+ exports.ion_col = Col;
154
+ exports.ion_grid = Grid;
155
+ exports.ion_row = Row;