voyager-ionic-core 8.7.9 → 8.7.13

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 (1039) hide show
  1. package/components/action-sheet.js +186 -5
  2. package/components/checkbox.js +63 -9
  3. package/components/content.js +13 -3
  4. package/components/ion-accordion.js +1 -1
  5. package/components/ion-datetime.js +35 -2
  6. package/components/ion-fab-button.js +1 -1
  7. package/components/ion-input.js +2 -1
  8. package/components/ion-select.js +15 -9
  9. package/components/ion-textarea.js +2 -1
  10. package/components/ion-toggle.js +62 -12
  11. package/components/item.js +1 -1
  12. package/components/modal.js +97 -5
  13. package/components/notch-controller.js +153 -0
  14. package/components/overlays.js +11 -5
  15. package/components/popover.js +36 -2
  16. package/components/radio-group.js +60 -7
  17. package/components/validity.js +1 -150
  18. package/css/core.css +1 -1
  19. package/css/core.css.map +1 -1
  20. package/css/ionic.bundle.css +1 -1
  21. package/css/ionic.bundle.css.map +1 -1
  22. package/dist/cjs/index.cjs.js +1 -1
  23. package/dist/cjs/ion-action-sheet.cjs.entry.js +184 -5
  24. package/dist/cjs/ion-alert.cjs.entry.js +1 -1
  25. package/dist/cjs/ion-app_8.cjs.entry.js +12 -3
  26. package/dist/cjs/ion-checkbox.cjs.entry.js +60 -8
  27. package/dist/cjs/ion-datetime_3.cjs.entry.js +36 -3
  28. package/dist/cjs/ion-input.cjs.entry.js +3 -2
  29. package/dist/cjs/ion-loading.cjs.entry.js +1 -1
  30. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  31. package/dist/cjs/ion-modal.cjs.entry.js +97 -6
  32. package/dist/cjs/ion-popover.cjs.entry.js +37 -3
  33. package/dist/cjs/ion-radio_2.cjs.entry.js +57 -6
  34. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  35. package/dist/cjs/ion-select_3.cjs.entry.js +16 -10
  36. package/dist/cjs/ion-textarea.cjs.entry.js +3 -2
  37. package/dist/cjs/ion-toast.cjs.entry.js +1 -1
  38. package/dist/cjs/ion-toggle.cjs.entry.js +58 -10
  39. package/dist/cjs/ionic.cjs.js +1 -1
  40. package/dist/cjs/loader.cjs.js +1 -1
  41. package/dist/cjs/{validity-C8QoAYT2.js → notch-controller-Bzqhjm4f.js} +0 -14
  42. package/dist/cjs/{overlays-DxIZwUXI.js → overlays--dagG4QM.js} +11 -5
  43. package/dist/cjs/validity-BpS37YFM.js +19 -0
  44. package/dist/collection/components/accordion/accordion.js +3 -3
  45. package/dist/collection/components/action-sheet/action-sheet.js +199 -4
  46. package/dist/collection/components/checkbox/checkbox.js +67 -9
  47. package/dist/collection/components/content/content.js +32 -3
  48. package/dist/collection/components/datetime/datetime.js +35 -2
  49. package/dist/collection/components/fab-button/fab-button.js +3 -3
  50. package/dist/collection/components/item/item.js +3 -3
  51. package/dist/collection/components/modal/modal.js +97 -5
  52. package/dist/collection/components/popover/popover.js +36 -2
  53. package/dist/collection/components/radio-group/radio-group.js +64 -7
  54. package/dist/collection/components/select/select.js +13 -8
  55. package/dist/collection/components/toggle/toggle.js +62 -12
  56. package/dist/collection/utils/overlays.js +11 -5
  57. package/dist/collection/utils/test/playwright/page/utils/set-content.js +7 -0
  58. package/dist/docs.json +26 -20
  59. package/dist/esm/index.js +1 -1
  60. package/dist/esm/ion-action-sheet.entry.js +184 -5
  61. package/dist/esm/ion-alert.entry.js +1 -1
  62. package/dist/esm/ion-app_8.entry.js +12 -3
  63. package/dist/esm/ion-checkbox.entry.js +60 -8
  64. package/dist/esm/ion-datetime_3.entry.js +36 -3
  65. package/dist/esm/ion-input.entry.js +2 -1
  66. package/dist/esm/ion-loading.entry.js +1 -1
  67. package/dist/esm/ion-menu_3.entry.js +1 -1
  68. package/dist/esm/ion-modal.entry.js +97 -6
  69. package/dist/esm/ion-popover.entry.js +37 -3
  70. package/dist/esm/ion-radio_2.entry.js +57 -6
  71. package/dist/esm/ion-select-modal.entry.js +1 -1
  72. package/dist/esm/ion-select_3.entry.js +15 -9
  73. package/dist/esm/ion-textarea.entry.js +2 -1
  74. package/dist/esm/ion-toast.entry.js +1 -1
  75. package/dist/esm/ion-toggle.entry.js +58 -10
  76. package/dist/esm/ionic.js +1 -1
  77. package/dist/esm/loader.js +1 -1
  78. package/dist/esm/{validity-B8oWougr.js → notch-controller-BwelN_JM.js} +1 -14
  79. package/dist/esm/{overlays-BymNv-BL.js → overlays-DCabi1dI.js} +11 -5
  80. package/dist/esm/validity-DJztqcrH.js +17 -0
  81. package/dist/ionic/index.esm.js +1 -1
  82. package/dist/ionic/ionic.esm.js +1 -1
  83. package/dist/ionic/p-071e8c1b.entry.js +4 -0
  84. package/dist/ionic/{p-7da39a4d.entry.js → p-07753df3.entry.js} +1 -1
  85. package/dist/ionic/{p-0b80d700.entry.js → p-0abeb0fc.entry.js} +1 -1
  86. package/dist/ionic/p-0bf76d0f.entry.js +4 -0
  87. package/dist/ionic/p-40c261a3.entry.js +4 -0
  88. package/dist/ionic/p-4b658a7c.entry.js +4 -0
  89. package/dist/ionic/p-4e41ea20.entry.js +4 -0
  90. package/dist/ionic/{p-98fc09eb.entry.js → p-576e0965.entry.js} +1 -1
  91. package/dist/ionic/p-60e0728c.entry.js +4 -0
  92. package/dist/ionic/p-75ae4733.entry.js +4 -0
  93. package/dist/ionic/p-C6F4hat2.js +4 -0
  94. package/dist/ionic/{p-DieJyvMP.js → p-DCv9sLH2.js} +1 -1
  95. package/dist/ionic/p-DJztqcrH.js +4 -0
  96. package/dist/ionic/{p-83be404e.entry.js → p-a8ed848b.entry.js} +1 -1
  97. package/dist/ionic/p-c19f63d0.entry.js +4 -0
  98. package/dist/ionic/p-c85a2127.entry.js +4 -0
  99. package/dist/ionic/p-d1f54e28.entry.js +4 -0
  100. package/dist/ionic/p-d3014190.entry.js +4 -0
  101. package/dist/ionic/{p-15193d01.entry.js → p-ec654c42.entry.js} +1 -1
  102. package/dist/ionic/svg/document-sharp.svg +1 -0
  103. package/dist/ionic/svg/document-text-outline.svg +1 -0
  104. package/dist/ionic/svg/document-text-sharp.svg +1 -0
  105. package/dist/ionic/svg/document-text.svg +1 -0
  106. package/dist/ionic/svg/document.svg +1 -0
  107. package/dist/ionic/svg/documents-outline.svg +1 -0
  108. package/dist/ionic/svg/documents-sharp.svg +1 -0
  109. package/dist/ionic/svg/documents.svg +1 -0
  110. package/dist/ionic/svg/download-outline.svg +1 -0
  111. package/dist/ionic/svg/download-sharp.svg +1 -0
  112. package/dist/ionic/svg/download.svg +1 -0
  113. package/dist/ionic/svg/duplicate-outline.svg +1 -0
  114. package/dist/ionic/svg/duplicate-sharp.svg +1 -0
  115. package/dist/ionic/svg/duplicate.svg +1 -0
  116. package/dist/ionic/svg/ear-outline.svg +1 -0
  117. package/dist/ionic/svg/ear-sharp.svg +1 -0
  118. package/dist/ionic/svg/ear.svg +1 -0
  119. package/dist/ionic/svg/earth-outline.svg +1 -0
  120. package/dist/ionic/svg/earth-sharp.svg +1 -0
  121. package/dist/ionic/svg/earth.svg +1 -0
  122. package/dist/ionic/svg/easel-outline.svg +1 -0
  123. package/dist/ionic/svg/easel-sharp.svg +1 -0
  124. package/dist/ionic/svg/easel.svg +1 -0
  125. package/dist/ionic/svg/egg-outline.svg +1 -0
  126. package/dist/ionic/svg/egg-sharp.svg +1 -0
  127. package/dist/ionic/svg/egg.svg +1 -0
  128. package/dist/ionic/svg/ellipse-outline.svg +1 -0
  129. package/dist/ionic/svg/ellipse-sharp.svg +1 -0
  130. package/dist/ionic/svg/ellipse.svg +1 -0
  131. package/dist/ionic/svg/ellipsis-horizontal-circle-outline.svg +1 -0
  132. package/dist/ionic/svg/ellipsis-horizontal-circle-sharp.svg +1 -0
  133. package/dist/ionic/svg/ellipsis-horizontal-circle.svg +1 -0
  134. package/dist/ionic/svg/ellipsis-horizontal-outline.svg +1 -0
  135. package/dist/ionic/svg/ellipsis-horizontal-sharp.svg +1 -0
  136. package/dist/ionic/svg/ellipsis-horizontal.svg +1 -0
  137. package/dist/ionic/svg/ellipsis-vertical-circle-outline.svg +1 -0
  138. package/dist/ionic/svg/ellipsis-vertical-circle-sharp.svg +1 -0
  139. package/dist/ionic/svg/ellipsis-vertical-circle.svg +1 -0
  140. package/dist/ionic/svg/ellipsis-vertical-outline.svg +1 -0
  141. package/dist/ionic/svg/ellipsis-vertical-sharp.svg +1 -0
  142. package/dist/ionic/svg/ellipsis-vertical.svg +1 -0
  143. package/dist/ionic/svg/enter-outline.svg +1 -0
  144. package/dist/ionic/svg/enter-sharp.svg +1 -0
  145. package/dist/ionic/svg/enter.svg +1 -0
  146. package/dist/ionic/svg/exit-outline.svg +1 -0
  147. package/dist/ionic/svg/exit-sharp.svg +1 -0
  148. package/dist/ionic/svg/exit.svg +1 -0
  149. package/dist/ionic/svg/expand-outline.svg +1 -0
  150. package/dist/ionic/svg/expand-sharp.svg +1 -0
  151. package/dist/ionic/svg/expand.svg +1 -0
  152. package/dist/ionic/svg/extension-puzzle-outline.svg +1 -0
  153. package/dist/ionic/svg/extension-puzzle-sharp.svg +1 -0
  154. package/dist/ionic/svg/extension-puzzle.svg +1 -0
  155. package/dist/ionic/svg/eye-off-outline.svg +1 -0
  156. package/dist/ionic/svg/eye-off-sharp.svg +1 -0
  157. package/dist/ionic/svg/eye-off.svg +1 -0
  158. package/dist/ionic/svg/eye-outline.svg +1 -0
  159. package/dist/ionic/svg/eye-sharp.svg +1 -0
  160. package/dist/ionic/svg/eye.svg +1 -0
  161. package/dist/ionic/svg/eyedrop-outline.svg +1 -0
  162. package/dist/ionic/svg/eyedrop-sharp.svg +1 -0
  163. package/dist/ionic/svg/eyedrop.svg +1 -0
  164. package/dist/ionic/svg/fast-food-outline.svg +1 -0
  165. package/dist/ionic/svg/fast-food-sharp.svg +1 -0
  166. package/dist/ionic/svg/fast-food.svg +1 -0
  167. package/dist/ionic/svg/female-outline.svg +1 -0
  168. package/dist/ionic/svg/female-sharp.svg +1 -0
  169. package/dist/ionic/svg/female.svg +1 -0
  170. package/dist/ionic/svg/file-tray-full-outline.svg +1 -0
  171. package/dist/ionic/svg/file-tray-full-sharp.svg +1 -0
  172. package/dist/ionic/svg/file-tray-full.svg +1 -0
  173. package/dist/ionic/svg/file-tray-outline.svg +1 -0
  174. package/dist/ionic/svg/file-tray-sharp.svg +1 -0
  175. package/dist/ionic/svg/file-tray-stacked-outline.svg +1 -0
  176. package/dist/ionic/svg/file-tray-stacked-sharp.svg +1 -0
  177. package/dist/ionic/svg/file-tray-stacked.svg +1 -0
  178. package/dist/ionic/svg/file-tray.svg +1 -0
  179. package/dist/ionic/svg/film-outline.svg +1 -0
  180. package/dist/ionic/svg/film-sharp.svg +1 -0
  181. package/dist/ionic/svg/film.svg +1 -0
  182. package/dist/ionic/svg/filter-circle-outline.svg +1 -0
  183. package/dist/ionic/svg/filter-circle-sharp.svg +1 -0
  184. package/dist/ionic/svg/filter-circle.svg +1 -0
  185. package/dist/ionic/svg/filter-outline.svg +1 -0
  186. package/dist/ionic/svg/filter-sharp.svg +1 -0
  187. package/dist/ionic/svg/filter.svg +1 -0
  188. package/dist/ionic/svg/finger-print-outline.svg +1 -0
  189. package/dist/ionic/svg/finger-print-sharp.svg +1 -0
  190. package/dist/ionic/svg/finger-print.svg +1 -0
  191. package/dist/ionic/svg/fish-outline.svg +1 -0
  192. package/dist/ionic/svg/fish-sharp.svg +1 -0
  193. package/dist/ionic/svg/fish.svg +1 -0
  194. package/dist/ionic/svg/fitness-outline.svg +1 -0
  195. package/dist/ionic/svg/fitness-sharp.svg +1 -0
  196. package/dist/ionic/svg/fitness.svg +1 -0
  197. package/dist/ionic/svg/flag-outline.svg +1 -0
  198. package/dist/ionic/svg/flag-sharp.svg +1 -0
  199. package/dist/ionic/svg/flag.svg +1 -0
  200. package/dist/ionic/svg/flame-outline.svg +1 -0
  201. package/dist/ionic/svg/flame-sharp.svg +1 -0
  202. package/dist/ionic/svg/flame.svg +1 -0
  203. package/dist/ionic/svg/flash-off-outline.svg +1 -0
  204. package/dist/ionic/svg/flash-off-sharp.svg +1 -0
  205. package/dist/ionic/svg/flash-off.svg +1 -0
  206. package/dist/ionic/svg/flash-outline.svg +1 -0
  207. package/dist/ionic/svg/flash-sharp.svg +1 -0
  208. package/dist/ionic/svg/flash.svg +1 -0
  209. package/dist/ionic/svg/flashlight-outline.svg +1 -0
  210. package/dist/ionic/svg/flashlight-sharp.svg +1 -0
  211. package/dist/ionic/svg/flashlight.svg +1 -0
  212. package/dist/ionic/svg/flask-outline.svg +1 -0
  213. package/dist/ionic/svg/flask-sharp.svg +1 -0
  214. package/dist/ionic/svg/flask.svg +1 -0
  215. package/dist/ionic/svg/flower-outline.svg +1 -0
  216. package/dist/ionic/svg/flower-sharp.svg +1 -0
  217. package/dist/ionic/svg/flower.svg +1 -0
  218. package/dist/ionic/svg/folder-open-outline.svg +1 -0
  219. package/dist/ionic/svg/folder-open-sharp.svg +1 -0
  220. package/dist/ionic/svg/folder-open.svg +1 -0
  221. package/dist/ionic/svg/folder-outline.svg +1 -0
  222. package/dist/ionic/svg/folder-sharp.svg +1 -0
  223. package/dist/ionic/svg/folder.svg +1 -0
  224. package/dist/ionic/svg/football-outline.svg +1 -0
  225. package/dist/ionic/svg/football-sharp.svg +1 -0
  226. package/dist/ionic/svg/football.svg +1 -0
  227. package/dist/ionic/svg/footsteps-outline.svg +1 -0
  228. package/dist/ionic/svg/footsteps-sharp.svg +1 -0
  229. package/dist/ionic/svg/footsteps.svg +1 -0
  230. package/dist/ionic/svg/funnel-outline.svg +1 -0
  231. package/dist/ionic/svg/funnel-sharp.svg +1 -0
  232. package/dist/ionic/svg/funnel.svg +1 -0
  233. package/dist/ionic/svg/game-controller-outline.svg +1 -0
  234. package/dist/ionic/svg/game-controller-sharp.svg +1 -0
  235. package/dist/ionic/svg/game-controller.svg +1 -0
  236. package/dist/ionic/svg/gift-outline.svg +1 -0
  237. package/dist/ionic/svg/gift-sharp.svg +1 -0
  238. package/dist/ionic/svg/gift.svg +1 -0
  239. package/dist/ionic/svg/git-branch-outline.svg +1 -0
  240. package/dist/ionic/svg/git-branch-sharp.svg +1 -0
  241. package/dist/ionic/svg/git-branch.svg +1 -0
  242. package/dist/ionic/svg/git-commit-outline.svg +1 -0
  243. package/dist/ionic/svg/git-commit-sharp.svg +1 -0
  244. package/dist/ionic/svg/git-commit.svg +1 -0
  245. package/dist/ionic/svg/git-compare-outline.svg +1 -0
  246. package/dist/ionic/svg/git-compare-sharp.svg +1 -0
  247. package/dist/ionic/svg/git-compare.svg +1 -0
  248. package/dist/ionic/svg/git-merge-outline.svg +1 -0
  249. package/dist/ionic/svg/git-merge-sharp.svg +1 -0
  250. package/dist/ionic/svg/git-merge.svg +1 -0
  251. package/dist/ionic/svg/git-network-outline.svg +1 -0
  252. package/dist/ionic/svg/git-network-sharp.svg +1 -0
  253. package/dist/ionic/svg/git-network.svg +1 -0
  254. package/dist/ionic/svg/git-pull-request-outline.svg +1 -0
  255. package/dist/ionic/svg/git-pull-request-sharp.svg +1 -0
  256. package/dist/ionic/svg/git-pull-request.svg +1 -0
  257. package/dist/ionic/svg/glasses-outline.svg +1 -0
  258. package/dist/ionic/svg/glasses-sharp.svg +1 -0
  259. package/dist/ionic/svg/glasses.svg +1 -0
  260. package/dist/ionic/svg/globe-outline.svg +1 -0
  261. package/dist/ionic/svg/globe-sharp.svg +1 -0
  262. package/dist/ionic/svg/globe.svg +1 -0
  263. package/dist/ionic/svg/golf-outline.svg +1 -0
  264. package/dist/ionic/svg/golf-sharp.svg +1 -0
  265. package/dist/ionic/svg/golf.svg +1 -0
  266. package/dist/ionic/svg/grid-outline.svg +1 -0
  267. package/dist/ionic/svg/grid-sharp.svg +1 -0
  268. package/dist/ionic/svg/grid.svg +1 -0
  269. package/dist/ionic/svg/hammer-outline.svg +1 -0
  270. package/dist/ionic/svg/hammer-sharp.svg +1 -0
  271. package/dist/ionic/svg/hammer.svg +1 -0
  272. package/dist/ionic/svg/hand-left-outline.svg +1 -0
  273. package/dist/ionic/svg/hand-left-sharp.svg +1 -0
  274. package/dist/ionic/svg/hand-left.svg +1 -0
  275. package/dist/ionic/svg/hand-right-outline.svg +1 -0
  276. package/dist/ionic/svg/hand-right-sharp.svg +1 -0
  277. package/dist/ionic/svg/hand-right.svg +1 -0
  278. package/dist/ionic/svg/happy-outline.svg +1 -0
  279. package/dist/ionic/svg/happy-sharp.svg +1 -0
  280. package/dist/ionic/svg/happy.svg +1 -0
  281. package/dist/ionic/svg/hardware-chip-outline.svg +1 -0
  282. package/dist/ionic/svg/hardware-chip-sharp.svg +1 -0
  283. package/dist/ionic/svg/hardware-chip.svg +1 -0
  284. package/dist/ionic/svg/headset-outline.svg +1 -0
  285. package/dist/ionic/svg/headset-sharp.svg +1 -0
  286. package/dist/ionic/svg/headset.svg +1 -0
  287. package/dist/ionic/svg/heart-circle-outline.svg +1 -0
  288. package/dist/ionic/svg/heart-circle-sharp.svg +1 -0
  289. package/dist/ionic/svg/heart-circle.svg +1 -0
  290. package/dist/ionic/svg/heart-dislike-circle-outline.svg +1 -0
  291. package/dist/ionic/svg/heart-dislike-circle-sharp.svg +1 -0
  292. package/dist/ionic/svg/heart-dislike-circle.svg +1 -0
  293. package/dist/ionic/svg/heart-dislike-outline.svg +1 -0
  294. package/dist/ionic/svg/heart-dislike-sharp.svg +1 -0
  295. package/dist/ionic/svg/heart-dislike.svg +1 -0
  296. package/dist/ionic/svg/heart-half-outline.svg +1 -0
  297. package/dist/ionic/svg/heart-half-sharp.svg +1 -0
  298. package/dist/ionic/svg/heart-half.svg +1 -0
  299. package/dist/ionic/svg/heart-outline.svg +1 -0
  300. package/dist/ionic/svg/heart-sharp.svg +1 -0
  301. package/dist/ionic/svg/heart.svg +1 -0
  302. package/dist/ionic/svg/help-buoy-outline.svg +1 -0
  303. package/dist/ionic/svg/help-buoy-sharp.svg +1 -0
  304. package/dist/ionic/svg/help-buoy.svg +1 -0
  305. package/dist/ionic/svg/help-circle-outline.svg +1 -0
  306. package/dist/ionic/svg/help-circle-sharp.svg +1 -0
  307. package/dist/ionic/svg/help-circle.svg +1 -0
  308. package/dist/ionic/svg/help-outline.svg +1 -0
  309. package/dist/ionic/svg/help-sharp.svg +1 -0
  310. package/dist/ionic/svg/help.svg +1 -0
  311. package/dist/ionic/svg/home-outline.svg +1 -0
  312. package/dist/ionic/svg/home-sharp.svg +1 -0
  313. package/dist/ionic/svg/home.svg +1 -0
  314. package/dist/ionic/svg/hourglass-outline.svg +1 -0
  315. package/dist/ionic/svg/hourglass-sharp.svg +1 -0
  316. package/dist/ionic/svg/hourglass.svg +1 -0
  317. package/dist/ionic/svg/ice-cream-outline.svg +1 -0
  318. package/dist/ionic/svg/ice-cream-sharp.svg +1 -0
  319. package/dist/ionic/svg/ice-cream.svg +1 -0
  320. package/dist/ionic/svg/id-card-outline.svg +1 -0
  321. package/dist/ionic/svg/id-card-sharp.svg +1 -0
  322. package/dist/ionic/svg/id-card.svg +1 -0
  323. package/dist/ionic/svg/image-outline.svg +1 -0
  324. package/dist/ionic/svg/image-sharp.svg +1 -0
  325. package/dist/ionic/svg/image.svg +1 -0
  326. package/dist/ionic/svg/images-outline.svg +1 -0
  327. package/dist/ionic/svg/images-sharp.svg +1 -0
  328. package/dist/ionic/svg/images.svg +1 -0
  329. package/dist/ionic/svg/infinite-outline.svg +1 -0
  330. package/dist/ionic/svg/infinite-sharp.svg +1 -0
  331. package/dist/ionic/svg/infinite.svg +1 -0
  332. package/dist/ionic/svg/information-circle-outline.svg +1 -0
  333. package/dist/ionic/svg/information-circle-sharp.svg +1 -0
  334. package/dist/ionic/svg/information-circle.svg +1 -0
  335. package/dist/ionic/svg/information-outline.svg +1 -0
  336. package/dist/ionic/svg/information-sharp.svg +1 -0
  337. package/dist/ionic/svg/information.svg +1 -0
  338. package/dist/ionic/svg/invert-mode-outline.svg +1 -0
  339. package/dist/ionic/svg/invert-mode-sharp.svg +1 -0
  340. package/dist/ionic/svg/invert-mode.svg +1 -0
  341. package/dist/ionic/svg/journal-outline.svg +1 -0
  342. package/dist/ionic/svg/journal-sharp.svg +1 -0
  343. package/dist/ionic/svg/journal.svg +1 -0
  344. package/dist/ionic/svg/key-outline.svg +1 -0
  345. package/dist/ionic/svg/key-sharp.svg +1 -0
  346. package/dist/ionic/svg/key.svg +1 -0
  347. package/dist/ionic/svg/keypad-outline.svg +1 -0
  348. package/dist/ionic/svg/keypad-sharp.svg +1 -0
  349. package/dist/ionic/svg/keypad.svg +1 -0
  350. package/dist/ionic/svg/language-outline.svg +1 -0
  351. package/dist/ionic/svg/language-sharp.svg +1 -0
  352. package/dist/ionic/svg/language.svg +1 -0
  353. package/dist/ionic/svg/laptop-outline.svg +1 -0
  354. package/dist/ionic/svg/laptop-sharp.svg +1 -0
  355. package/dist/ionic/svg/laptop.svg +1 -0
  356. package/dist/ionic/svg/layers-outline.svg +1 -0
  357. package/dist/ionic/svg/layers-sharp.svg +1 -0
  358. package/dist/ionic/svg/layers.svg +1 -0
  359. package/dist/ionic/svg/leaf-outline.svg +1 -0
  360. package/dist/ionic/svg/leaf-sharp.svg +1 -0
  361. package/dist/ionic/svg/leaf.svg +1 -0
  362. package/dist/ionic/svg/library-outline.svg +1 -0
  363. package/dist/ionic/svg/library-sharp.svg +1 -0
  364. package/dist/ionic/svg/library.svg +1 -0
  365. package/dist/ionic/svg/link-outline.svg +1 -0
  366. package/dist/ionic/svg/link-sharp.svg +1 -0
  367. package/dist/ionic/svg/link.svg +1 -0
  368. package/dist/ionic/svg/list-circle-outline.svg +1 -0
  369. package/dist/ionic/svg/list-circle-sharp.svg +1 -0
  370. package/dist/ionic/svg/list-circle.svg +1 -0
  371. package/dist/ionic/svg/list-outline.svg +1 -0
  372. package/dist/ionic/svg/list-sharp.svg +1 -0
  373. package/dist/ionic/svg/list.svg +1 -0
  374. package/dist/ionic/svg/locate-outline.svg +1 -0
  375. package/dist/ionic/svg/locate-sharp.svg +1 -0
  376. package/dist/ionic/svg/locate.svg +1 -0
  377. package/dist/ionic/svg/location-outline.svg +1 -0
  378. package/dist/ionic/svg/location-sharp.svg +1 -0
  379. package/dist/ionic/svg/location.svg +1 -0
  380. package/dist/ionic/svg/lock-closed-outline.svg +1 -0
  381. package/dist/ionic/svg/lock-closed-sharp.svg +1 -0
  382. package/dist/ionic/svg/lock-closed.svg +1 -0
  383. package/dist/ionic/svg/lock-open-outline.svg +1 -0
  384. package/dist/ionic/svg/lock-open-sharp.svg +1 -0
  385. package/dist/ionic/svg/lock-open.svg +1 -0
  386. package/dist/ionic/svg/log-in-outline.svg +1 -0
  387. package/dist/ionic/svg/log-in-sharp.svg +1 -0
  388. package/dist/ionic/svg/log-in.svg +1 -0
  389. package/dist/ionic/svg/log-out-outline.svg +1 -0
  390. package/dist/ionic/svg/log-out-sharp.svg +1 -0
  391. package/dist/ionic/svg/log-out.svg +1 -0
  392. package/dist/ionic/svg/logo-alipay.svg +1 -0
  393. package/dist/ionic/svg/logo-amazon.svg +1 -0
  394. package/dist/ionic/svg/logo-amplify.svg +1 -0
  395. package/dist/ionic/svg/logo-android.svg +1 -0
  396. package/dist/ionic/svg/logo-angular.svg +1 -0
  397. package/dist/ionic/svg/logo-appflow.svg +1 -0
  398. package/dist/ionic/svg/logo-apple-appstore.svg +1 -0
  399. package/dist/ionic/svg/logo-apple-ar.svg +1 -0
  400. package/dist/ionic/svg/logo-apple.svg +1 -0
  401. package/dist/ionic/svg/logo-behance.svg +1 -0
  402. package/dist/ionic/svg/logo-bitbucket.svg +1 -0
  403. package/dist/ionic/svg/logo-bitcoin.svg +1 -0
  404. package/dist/ionic/svg/logo-buffer.svg +1 -0
  405. package/dist/ionic/svg/logo-capacitor.svg +1 -0
  406. package/dist/ionic/svg/logo-chrome.svg +1 -0
  407. package/dist/ionic/svg/logo-closed-captioning.svg +1 -0
  408. package/dist/ionic/svg/logo-codepen.svg +1 -0
  409. package/dist/ionic/svg/logo-css3.svg +1 -0
  410. package/dist/ionic/svg/logo-designernews.svg +1 -0
  411. package/dist/ionic/svg/logo-deviantart.svg +1 -0
  412. package/dist/ionic/svg/logo-discord.svg +1 -0
  413. package/dist/ionic/svg/logo-docker.svg +1 -0
  414. package/dist/ionic/svg/logo-dribbble.svg +1 -0
  415. package/dist/ionic/svg/logo-dropbox.svg +1 -0
  416. package/dist/ionic/svg/logo-edge.svg +1 -0
  417. package/dist/ionic/svg/logo-electron.svg +1 -0
  418. package/dist/ionic/svg/logo-euro.svg +1 -0
  419. package/dist/ionic/svg/logo-facebook.svg +1 -0
  420. package/dist/ionic/svg/logo-figma.svg +1 -0
  421. package/dist/ionic/svg/logo-firebase.svg +1 -0
  422. package/dist/ionic/svg/logo-firefox.svg +1 -0
  423. package/dist/ionic/svg/logo-flickr.svg +1 -0
  424. package/dist/ionic/svg/logo-foursquare.svg +1 -0
  425. package/dist/ionic/svg/logo-github.svg +1 -0
  426. package/dist/ionic/svg/logo-gitlab.svg +1 -0
  427. package/dist/ionic/svg/logo-google-playstore.svg +1 -0
  428. package/dist/ionic/svg/logo-google.svg +1 -0
  429. package/dist/ionic/svg/logo-hackernews.svg +1 -0
  430. package/dist/ionic/svg/logo-html5.svg +1 -0
  431. package/dist/ionic/svg/logo-instagram.svg +1 -0
  432. package/dist/ionic/svg/logo-ionic.svg +1 -0
  433. package/dist/ionic/svg/logo-ionitron.svg +1 -0
  434. package/dist/ionic/svg/logo-javascript.svg +1 -0
  435. package/dist/ionic/svg/logo-laravel.svg +1 -0
  436. package/dist/ionic/svg/logo-linkedin.svg +1 -0
  437. package/dist/ionic/svg/logo-markdown.svg +1 -0
  438. package/dist/ionic/svg/logo-mastodon.svg +1 -0
  439. package/dist/ionic/svg/logo-medium.svg +1 -0
  440. package/dist/ionic/svg/logo-microsoft.svg +1 -0
  441. package/dist/ionic/svg/logo-no-smoking.svg +1 -0
  442. package/dist/ionic/svg/logo-nodejs.svg +1 -0
  443. package/dist/ionic/svg/logo-npm.svg +1 -0
  444. package/dist/ionic/svg/logo-octocat.svg +1 -0
  445. package/dist/ionic/svg/logo-paypal.svg +1 -0
  446. package/dist/ionic/svg/logo-pinterest.svg +1 -0
  447. package/dist/ionic/svg/logo-playstation.svg +1 -0
  448. package/dist/ionic/svg/logo-pwa.svg +1 -0
  449. package/dist/ionic/svg/logo-python.svg +1 -0
  450. package/dist/ionic/svg/logo-react.svg +1 -0
  451. package/dist/ionic/svg/logo-reddit.svg +1 -0
  452. package/dist/ionic/svg/logo-rss.svg +1 -0
  453. package/dist/ionic/svg/logo-sass.svg +1 -0
  454. package/dist/ionic/svg/logo-skype.svg +1 -0
  455. package/dist/ionic/svg/logo-slack.svg +1 -0
  456. package/dist/ionic/svg/logo-snapchat.svg +1 -0
  457. package/dist/ionic/svg/logo-soundcloud.svg +1 -0
  458. package/dist/ionic/svg/logo-stackoverflow.svg +1 -0
  459. package/dist/ionic/svg/logo-steam.svg +1 -0
  460. package/dist/ionic/svg/logo-stencil.svg +1 -0
  461. package/dist/ionic/svg/logo-tableau.svg +1 -0
  462. package/dist/ionic/svg/logo-threads.svg +1 -0
  463. package/dist/ionic/svg/logo-tiktok.svg +1 -0
  464. package/dist/ionic/svg/logo-trapeze.svg +1 -0
  465. package/dist/ionic/svg/logo-tumblr.svg +1 -0
  466. package/dist/ionic/svg/logo-tux.svg +1 -0
  467. package/dist/ionic/svg/logo-twitch.svg +1 -0
  468. package/dist/ionic/svg/logo-twitter.svg +1 -0
  469. package/dist/ionic/svg/logo-usd.svg +1 -0
  470. package/dist/ionic/svg/logo-venmo.svg +1 -0
  471. package/dist/ionic/svg/logo-vercel.svg +1 -0
  472. package/dist/ionic/svg/logo-vimeo.svg +1 -0
  473. package/dist/ionic/svg/logo-vk.svg +1 -0
  474. package/dist/ionic/svg/logo-vue.svg +1 -0
  475. package/dist/ionic/svg/logo-web-component.svg +1 -0
  476. package/dist/ionic/svg/logo-wechat.svg +1 -0
  477. package/dist/ionic/svg/logo-whatsapp.svg +1 -0
  478. package/dist/ionic/svg/logo-windows.svg +1 -0
  479. package/dist/ionic/svg/logo-wordpress.svg +1 -0
  480. package/dist/ionic/svg/logo-x.svg +1 -0
  481. package/dist/ionic/svg/logo-xbox.svg +1 -0
  482. package/dist/ionic/svg/logo-xing.svg +1 -0
  483. package/dist/ionic/svg/logo-yahoo.svg +1 -0
  484. package/dist/ionic/svg/logo-yen.svg +1 -0
  485. package/dist/ionic/svg/logo-youtube.svg +1 -0
  486. package/dist/ionic/svg/magnet-outline.svg +1 -0
  487. package/dist/ionic/svg/magnet-sharp.svg +1 -0
  488. package/dist/ionic/svg/magnet.svg +1 -0
  489. package/dist/ionic/svg/mail-open-outline.svg +1 -0
  490. package/dist/ionic/svg/mail-open-sharp.svg +1 -0
  491. package/dist/ionic/svg/mail-open.svg +1 -0
  492. package/dist/ionic/svg/mail-outline.svg +1 -0
  493. package/dist/ionic/svg/mail-sharp.svg +1 -0
  494. package/dist/ionic/svg/mail-unread-outline.svg +1 -0
  495. package/dist/ionic/svg/mail-unread-sharp.svg +1 -0
  496. package/dist/ionic/svg/mail-unread.svg +1 -0
  497. package/dist/ionic/svg/mail.svg +1 -0
  498. package/dist/ionic/svg/male-female-outline.svg +1 -0
  499. package/dist/ionic/svg/male-female-sharp.svg +1 -0
  500. package/dist/ionic/svg/male-female.svg +1 -0
  501. package/dist/ionic/svg/male-outline.svg +1 -0
  502. package/dist/ionic/svg/male-sharp.svg +1 -0
  503. package/dist/ionic/svg/male.svg +1 -0
  504. package/dist/ionic/svg/man-outline.svg +1 -0
  505. package/dist/ionic/svg/man-sharp.svg +1 -0
  506. package/dist/ionic/svg/man.svg +1 -0
  507. package/dist/ionic/svg/map-outline.svg +1 -0
  508. package/dist/ionic/svg/map-sharp.svg +1 -0
  509. package/dist/ionic/svg/map.svg +1 -0
  510. package/dist/ionic/svg/medal-outline.svg +1 -0
  511. package/dist/ionic/svg/medal-sharp.svg +1 -0
  512. package/dist/ionic/svg/medal.svg +1 -0
  513. package/dist/ionic/svg/medical-outline.svg +1 -0
  514. package/dist/ionic/svg/medical-sharp.svg +1 -0
  515. package/dist/ionic/svg/medical.svg +1 -0
  516. package/dist/ionic/svg/medkit-outline.svg +1 -0
  517. package/dist/ionic/svg/medkit-sharp.svg +1 -0
  518. package/dist/ionic/svg/medkit.svg +1 -0
  519. package/dist/ionic/svg/megaphone-outline.svg +1 -0
  520. package/dist/ionic/svg/megaphone-sharp.svg +1 -0
  521. package/dist/ionic/svg/megaphone.svg +1 -0
  522. package/dist/ionic/svg/menu-outline.svg +1 -0
  523. package/dist/ionic/svg/menu-sharp.svg +1 -0
  524. package/dist/ionic/svg/menu.svg +1 -0
  525. package/dist/ionic/svg/mic-circle-outline.svg +1 -0
  526. package/dist/ionic/svg/mic-circle-sharp.svg +1 -0
  527. package/dist/ionic/svg/mic-circle.svg +1 -0
  528. package/dist/ionic/svg/mic-off-circle-outline.svg +1 -0
  529. package/dist/ionic/svg/mic-off-circle-sharp.svg +1 -0
  530. package/dist/ionic/svg/mic-off-circle.svg +1 -0
  531. package/dist/ionic/svg/mic-off-outline.svg +1 -0
  532. package/dist/ionic/svg/mic-off-sharp.svg +1 -0
  533. package/dist/ionic/svg/mic-off.svg +1 -0
  534. package/dist/ionic/svg/mic-outline.svg +1 -0
  535. package/dist/ionic/svg/mic-sharp.svg +1 -0
  536. package/dist/ionic/svg/mic.svg +1 -0
  537. package/dist/ionic/svg/moon-outline.svg +1 -0
  538. package/dist/ionic/svg/moon-sharp.svg +1 -0
  539. package/dist/ionic/svg/moon.svg +1 -0
  540. package/dist/ionic/svg/move-outline.svg +1 -0
  541. package/dist/ionic/svg/move-sharp.svg +1 -0
  542. package/dist/ionic/svg/move.svg +1 -0
  543. package/dist/ionic/svg/musical-note-outline.svg +1 -0
  544. package/dist/ionic/svg/musical-note-sharp.svg +1 -0
  545. package/dist/ionic/svg/musical-note.svg +1 -0
  546. package/dist/ionic/svg/musical-notes-outline.svg +1 -0
  547. package/dist/ionic/svg/musical-notes-sharp.svg +1 -0
  548. package/dist/ionic/svg/musical-notes.svg +1 -0
  549. package/dist/ionic/svg/navigate-circle-outline.svg +1 -0
  550. package/dist/ionic/svg/navigate-circle-sharp.svg +1 -0
  551. package/dist/ionic/svg/navigate-circle.svg +1 -0
  552. package/dist/ionic/svg/navigate-outline.svg +1 -0
  553. package/dist/ionic/svg/navigate-sharp.svg +1 -0
  554. package/dist/ionic/svg/navigate.svg +1 -0
  555. package/dist/ionic/svg/newspaper-outline.svg +1 -0
  556. package/dist/ionic/svg/newspaper-sharp.svg +1 -0
  557. package/dist/ionic/svg/newspaper.svg +1 -0
  558. package/dist/ionic/svg/notifications-circle-outline.svg +1 -0
  559. package/dist/ionic/svg/notifications-circle-sharp.svg +1 -0
  560. package/dist/ionic/svg/notifications-circle.svg +1 -0
  561. package/dist/ionic/svg/notifications-off-circle-outline.svg +1 -0
  562. package/dist/ionic/svg/notifications-off-circle-sharp.svg +1 -0
  563. package/dist/ionic/svg/notifications-off-circle.svg +1 -0
  564. package/dist/ionic/svg/notifications-off-outline.svg +1 -0
  565. package/dist/ionic/svg/notifications-off-sharp.svg +1 -0
  566. package/dist/ionic/svg/notifications-off.svg +1 -0
  567. package/dist/ionic/svg/notifications-outline.svg +1 -0
  568. package/dist/ionic/svg/notifications-sharp.svg +1 -0
  569. package/dist/ionic/svg/notifications.svg +1 -0
  570. package/dist/ionic/svg/nuclear-outline.svg +1 -0
  571. package/dist/ionic/svg/nuclear-sharp.svg +1 -0
  572. package/dist/ionic/svg/nuclear.svg +1 -0
  573. package/dist/ionic/svg/nutrition-outline.svg +1 -0
  574. package/dist/ionic/svg/nutrition-sharp.svg +1 -0
  575. package/dist/ionic/svg/nutrition.svg +1 -0
  576. package/dist/ionic/svg/open-outline.svg +1 -0
  577. package/dist/ionic/svg/open-sharp.svg +1 -0
  578. package/dist/ionic/svg/open.svg +1 -0
  579. package/dist/ionic/svg/options-outline.svg +1 -0
  580. package/dist/ionic/svg/options-sharp.svg +1 -0
  581. package/dist/ionic/svg/options.svg +1 -0
  582. package/dist/ionic/svg/paper-plane-outline.svg +1 -0
  583. package/dist/ionic/svg/paper-plane-sharp.svg +1 -0
  584. package/dist/ionic/svg/paper-plane.svg +1 -0
  585. package/dist/ionic/svg/partly-sunny-outline.svg +1 -0
  586. package/dist/ionic/svg/partly-sunny-sharp.svg +1 -0
  587. package/dist/ionic/svg/partly-sunny.svg +1 -0
  588. package/dist/ionic/svg/pause-circle-outline.svg +1 -0
  589. package/dist/ionic/svg/pause-circle-sharp.svg +1 -0
  590. package/dist/ionic/svg/pause-circle.svg +1 -0
  591. package/dist/ionic/svg/pause-outline.svg +1 -0
  592. package/dist/ionic/svg/pause-sharp.svg +1 -0
  593. package/dist/ionic/svg/pause.svg +1 -0
  594. package/dist/ionic/svg/paw-outline.svg +1 -0
  595. package/dist/ionic/svg/paw-sharp.svg +1 -0
  596. package/dist/ionic/svg/paw.svg +1 -0
  597. package/dist/ionic/svg/pencil-outline.svg +1 -0
  598. package/dist/ionic/svg/pencil-sharp.svg +1 -0
  599. package/dist/ionic/svg/pencil.svg +1 -0
  600. package/dist/ionic/svg/people-circle-outline.svg +1 -0
  601. package/dist/ionic/svg/people-circle-sharp.svg +1 -0
  602. package/dist/ionic/svg/people-circle.svg +1 -0
  603. package/dist/ionic/svg/people-outline.svg +1 -0
  604. package/dist/ionic/svg/people-sharp.svg +1 -0
  605. package/dist/ionic/svg/people.svg +1 -0
  606. package/dist/ionic/svg/person-add-outline.svg +1 -0
  607. package/dist/ionic/svg/person-add-sharp.svg +1 -0
  608. package/dist/ionic/svg/person-add.svg +1 -0
  609. package/dist/ionic/svg/person-circle-outline.svg +1 -0
  610. package/dist/ionic/svg/person-circle-sharp.svg +1 -0
  611. package/dist/ionic/svg/person-circle.svg +1 -0
  612. package/dist/ionic/svg/person-outline.svg +1 -0
  613. package/dist/ionic/svg/person-remove-outline.svg +1 -0
  614. package/dist/ionic/svg/person-remove-sharp.svg +1 -0
  615. package/dist/ionic/svg/person-remove.svg +1 -0
  616. package/dist/ionic/svg/person-sharp.svg +1 -0
  617. package/dist/ionic/svg/person.svg +1 -0
  618. package/dist/ionic/svg/phone-landscape-outline.svg +1 -0
  619. package/dist/ionic/svg/phone-landscape-sharp.svg +1 -0
  620. package/dist/ionic/svg/phone-landscape.svg +1 -0
  621. package/dist/ionic/svg/phone-portrait-outline.svg +1 -0
  622. package/dist/ionic/svg/phone-portrait-sharp.svg +1 -0
  623. package/dist/ionic/svg/phone-portrait.svg +1 -0
  624. package/dist/ionic/svg/pie-chart-outline.svg +1 -0
  625. package/dist/ionic/svg/pie-chart-sharp.svg +1 -0
  626. package/dist/ionic/svg/pie-chart.svg +1 -0
  627. package/dist/ionic/svg/pin-outline.svg +1 -0
  628. package/dist/ionic/svg/pin-sharp.svg +1 -0
  629. package/dist/ionic/svg/pin.svg +1 -0
  630. package/dist/ionic/svg/pint-outline.svg +1 -0
  631. package/dist/ionic/svg/pint-sharp.svg +1 -0
  632. package/dist/ionic/svg/pint.svg +1 -0
  633. package/dist/ionic/svg/pizza-outline.svg +1 -0
  634. package/dist/ionic/svg/pizza-sharp.svg +1 -0
  635. package/dist/ionic/svg/pizza.svg +1 -0
  636. package/dist/ionic/svg/planet-outline.svg +1 -0
  637. package/dist/ionic/svg/planet-sharp.svg +1 -0
  638. package/dist/ionic/svg/planet.svg +1 -0
  639. package/dist/ionic/svg/play-back-circle-outline.svg +1 -0
  640. package/dist/ionic/svg/play-back-circle-sharp.svg +1 -0
  641. package/dist/ionic/svg/play-back-circle.svg +1 -0
  642. package/dist/ionic/svg/play-back-outline.svg +1 -0
  643. package/dist/ionic/svg/play-back-sharp.svg +1 -0
  644. package/dist/ionic/svg/play-back.svg +1 -0
  645. package/dist/ionic/svg/play-circle-outline.svg +1 -0
  646. package/dist/ionic/svg/play-circle-sharp.svg +1 -0
  647. package/dist/ionic/svg/play-circle.svg +1 -0
  648. package/dist/ionic/svg/play-forward-circle-outline.svg +1 -0
  649. package/dist/ionic/svg/play-forward-circle-sharp.svg +1 -0
  650. package/dist/ionic/svg/play-forward-circle.svg +1 -0
  651. package/dist/ionic/svg/play-forward-outline.svg +1 -0
  652. package/dist/ionic/svg/play-forward-sharp.svg +1 -0
  653. package/dist/ionic/svg/play-forward.svg +1 -0
  654. package/dist/ionic/svg/play-outline.svg +1 -0
  655. package/dist/ionic/svg/play-sharp.svg +1 -0
  656. package/dist/ionic/svg/play-skip-back-circle-outline.svg +1 -0
  657. package/dist/ionic/svg/play-skip-back-circle-sharp.svg +1 -0
  658. package/dist/ionic/svg/play-skip-back-circle.svg +1 -0
  659. package/dist/ionic/svg/play-skip-back-outline.svg +1 -0
  660. package/dist/ionic/svg/play-skip-back-sharp.svg +1 -0
  661. package/dist/ionic/svg/play-skip-back.svg +1 -0
  662. package/dist/ionic/svg/play-skip-forward-circle-outline.svg +1 -0
  663. package/dist/ionic/svg/play-skip-forward-circle-sharp.svg +1 -0
  664. package/dist/ionic/svg/play-skip-forward-circle.svg +1 -0
  665. package/dist/ionic/svg/play-skip-forward-outline.svg +1 -0
  666. package/dist/ionic/svg/play-skip-forward-sharp.svg +1 -0
  667. package/dist/ionic/svg/play-skip-forward.svg +1 -0
  668. package/dist/ionic/svg/play.svg +1 -0
  669. package/dist/ionic/svg/podium-outline.svg +1 -0
  670. package/dist/ionic/svg/podium-sharp.svg +1 -0
  671. package/dist/ionic/svg/podium.svg +1 -0
  672. package/dist/ionic/svg/power-outline.svg +1 -0
  673. package/dist/ionic/svg/power-sharp.svg +1 -0
  674. package/dist/ionic/svg/power.svg +1 -0
  675. package/dist/ionic/svg/pricetag-outline.svg +1 -0
  676. package/dist/ionic/svg/pricetag-sharp.svg +1 -0
  677. package/dist/ionic/svg/pricetag.svg +1 -0
  678. package/dist/ionic/svg/pricetags-outline.svg +1 -0
  679. package/dist/ionic/svg/pricetags-sharp.svg +1 -0
  680. package/dist/ionic/svg/pricetags.svg +1 -0
  681. package/dist/ionic/svg/print-outline.svg +1 -0
  682. package/dist/ionic/svg/print-sharp.svg +1 -0
  683. package/dist/ionic/svg/print.svg +1 -0
  684. package/dist/ionic/svg/prism-outline.svg +1 -0
  685. package/dist/ionic/svg/prism-sharp.svg +1 -0
  686. package/dist/ionic/svg/prism.svg +1 -0
  687. package/dist/ionic/svg/pulse-outline.svg +1 -0
  688. package/dist/ionic/svg/pulse-sharp.svg +1 -0
  689. package/dist/ionic/svg/pulse.svg +1 -0
  690. package/dist/ionic/svg/push-outline.svg +1 -0
  691. package/dist/ionic/svg/push-sharp.svg +1 -0
  692. package/dist/ionic/svg/push.svg +1 -0
  693. package/dist/ionic/svg/qr-code-outline.svg +1 -0
  694. package/dist/ionic/svg/qr-code-sharp.svg +1 -0
  695. package/dist/ionic/svg/qr-code.svg +1 -0
  696. package/dist/ionic/svg/radio-button-off-outline.svg +1 -0
  697. package/dist/ionic/svg/radio-button-off-sharp.svg +1 -0
  698. package/dist/ionic/svg/radio-button-off.svg +1 -0
  699. package/dist/ionic/svg/radio-button-on-outline.svg +1 -0
  700. package/dist/ionic/svg/radio-button-on-sharp.svg +1 -0
  701. package/dist/ionic/svg/radio-button-on.svg +1 -0
  702. package/dist/ionic/svg/radio-outline.svg +1 -0
  703. package/dist/ionic/svg/radio-sharp.svg +1 -0
  704. package/dist/ionic/svg/radio.svg +1 -0
  705. package/dist/ionic/svg/rainy-outline.svg +1 -0
  706. package/dist/ionic/svg/rainy-sharp.svg +1 -0
  707. package/dist/ionic/svg/rainy.svg +1 -0
  708. package/dist/ionic/svg/reader-outline.svg +1 -0
  709. package/dist/ionic/svg/reader-sharp.svg +1 -0
  710. package/dist/ionic/svg/reader.svg +1 -0
  711. package/dist/ionic/svg/receipt-outline.svg +1 -0
  712. package/dist/ionic/svg/receipt-sharp.svg +1 -0
  713. package/dist/ionic/svg/receipt.svg +1 -0
  714. package/dist/ionic/svg/recording-outline.svg +1 -0
  715. package/dist/ionic/svg/recording-sharp.svg +1 -0
  716. package/dist/ionic/svg/recording.svg +1 -0
  717. package/dist/ionic/svg/refresh-circle-outline.svg +1 -0
  718. package/dist/ionic/svg/refresh-circle-sharp.svg +1 -0
  719. package/dist/ionic/svg/refresh-circle.svg +1 -0
  720. package/dist/ionic/svg/refresh-outline.svg +1 -0
  721. package/dist/ionic/svg/refresh-sharp.svg +1 -0
  722. package/dist/ionic/svg/refresh.svg +1 -0
  723. package/dist/ionic/svg/reload-circle-outline.svg +1 -0
  724. package/dist/ionic/svg/reload-circle-sharp.svg +1 -0
  725. package/dist/ionic/svg/reload-circle.svg +1 -0
  726. package/dist/ionic/svg/reload-outline.svg +1 -0
  727. package/dist/ionic/svg/reload-sharp.svg +1 -0
  728. package/dist/ionic/svg/reload.svg +1 -0
  729. package/dist/ionic/svg/remove-circle-outline.svg +1 -0
  730. package/dist/ionic/svg/remove-circle-sharp.svg +1 -0
  731. package/dist/ionic/svg/remove-circle.svg +1 -0
  732. package/dist/ionic/svg/remove-outline.svg +1 -0
  733. package/dist/ionic/svg/remove-sharp.svg +1 -0
  734. package/dist/ionic/svg/remove.svg +1 -0
  735. package/dist/ionic/svg/reorder-four-outline.svg +1 -0
  736. package/dist/ionic/svg/reorder-four-sharp.svg +1 -0
  737. package/dist/ionic/svg/reorder-four.svg +1 -0
  738. package/dist/ionic/svg/reorder-three-outline.svg +1 -0
  739. package/dist/ionic/svg/reorder-three-sharp.svg +1 -0
  740. package/dist/ionic/svg/reorder-three.svg +1 -0
  741. package/dist/ionic/svg/reorder-two-outline.svg +1 -0
  742. package/dist/ionic/svg/reorder-two-sharp.svg +1 -0
  743. package/dist/ionic/svg/reorder-two.svg +1 -0
  744. package/dist/ionic/svg/repeat-outline.svg +1 -0
  745. package/dist/ionic/svg/repeat-sharp.svg +1 -0
  746. package/dist/ionic/svg/repeat.svg +1 -0
  747. package/dist/ionic/svg/resize-outline.svg +1 -0
  748. package/dist/ionic/svg/resize-sharp.svg +1 -0
  749. package/dist/ionic/svg/resize.svg +1 -0
  750. package/dist/ionic/svg/restaurant-outline.svg +1 -0
  751. package/dist/ionic/svg/restaurant-sharp.svg +1 -0
  752. package/dist/ionic/svg/restaurant.svg +1 -0
  753. package/dist/ionic/svg/return-down-back-outline.svg +1 -0
  754. package/dist/ionic/svg/return-down-back-sharp.svg +1 -0
  755. package/dist/ionic/svg/return-down-back.svg +1 -0
  756. package/dist/ionic/svg/return-down-forward-outline.svg +1 -0
  757. package/dist/ionic/svg/return-down-forward-sharp.svg +1 -0
  758. package/dist/ionic/svg/return-down-forward.svg +1 -0
  759. package/dist/ionic/svg/return-up-back-outline.svg +1 -0
  760. package/dist/ionic/svg/return-up-back-sharp.svg +1 -0
  761. package/dist/ionic/svg/return-up-back.svg +1 -0
  762. package/dist/ionic/svg/return-up-forward-outline.svg +1 -0
  763. package/dist/ionic/svg/return-up-forward-sharp.svg +1 -0
  764. package/dist/ionic/svg/return-up-forward.svg +1 -0
  765. package/dist/ionic/svg/ribbon-outline.svg +1 -0
  766. package/dist/ionic/svg/ribbon-sharp.svg +1 -0
  767. package/dist/ionic/svg/ribbon.svg +1 -0
  768. package/dist/ionic/svg/rocket-outline.svg +1 -0
  769. package/dist/ionic/svg/rocket-sharp.svg +1 -0
  770. package/dist/ionic/svg/rocket.svg +1 -0
  771. package/dist/ionic/svg/rose-outline.svg +1 -0
  772. package/dist/ionic/svg/rose-sharp.svg +1 -0
  773. package/dist/ionic/svg/rose.svg +1 -0
  774. package/dist/ionic/svg/sad-outline.svg +1 -0
  775. package/dist/ionic/svg/sad-sharp.svg +1 -0
  776. package/dist/ionic/svg/sad.svg +1 -0
  777. package/dist/ionic/svg/save-outline.svg +1 -0
  778. package/dist/ionic/svg/save-sharp.svg +1 -0
  779. package/dist/ionic/svg/save.svg +1 -0
  780. package/dist/ionic/svg/scale-outline.svg +1 -0
  781. package/dist/ionic/svg/scale-sharp.svg +1 -0
  782. package/dist/ionic/svg/scale.svg +1 -0
  783. package/dist/ionic/svg/scan-circle-outline.svg +1 -0
  784. package/dist/ionic/svg/scan-circle-sharp.svg +1 -0
  785. package/dist/ionic/svg/scan-circle.svg +1 -0
  786. package/dist/ionic/svg/scan-outline.svg +1 -0
  787. package/dist/ionic/svg/scan-sharp.svg +1 -0
  788. package/dist/ionic/svg/scan.svg +1 -0
  789. package/dist/ionic/svg/school-outline.svg +1 -0
  790. package/dist/ionic/svg/school-sharp.svg +1 -0
  791. package/dist/ionic/svg/school.svg +1 -0
  792. package/dist/ionic/svg/search-circle-outline.svg +1 -0
  793. package/dist/ionic/svg/search-circle-sharp.svg +1 -0
  794. package/dist/ionic/svg/search-circle.svg +1 -0
  795. package/dist/ionic/svg/search-outline.svg +1 -0
  796. package/dist/ionic/svg/search-sharp.svg +1 -0
  797. package/dist/ionic/svg/search.svg +1 -0
  798. package/dist/ionic/svg/send-outline.svg +1 -0
  799. package/dist/ionic/svg/send-sharp.svg +1 -0
  800. package/dist/ionic/svg/send.svg +1 -0
  801. package/dist/ionic/svg/server-outline.svg +1 -0
  802. package/dist/ionic/svg/server-sharp.svg +1 -0
  803. package/dist/ionic/svg/server.svg +1 -0
  804. package/dist/ionic/svg/settings-outline.svg +1 -0
  805. package/dist/ionic/svg/settings-sharp.svg +1 -0
  806. package/dist/ionic/svg/settings.svg +1 -0
  807. package/dist/ionic/svg/shapes-outline.svg +1 -0
  808. package/dist/ionic/svg/shapes-sharp.svg +1 -0
  809. package/dist/ionic/svg/shapes.svg +1 -0
  810. package/dist/ionic/svg/share-outline.svg +1 -0
  811. package/dist/ionic/svg/share-sharp.svg +1 -0
  812. package/dist/ionic/svg/share-social-outline.svg +1 -0
  813. package/dist/ionic/svg/share-social-sharp.svg +1 -0
  814. package/dist/ionic/svg/share-social.svg +1 -0
  815. package/dist/ionic/svg/share.svg +1 -0
  816. package/dist/ionic/svg/shield-checkmark-outline.svg +1 -0
  817. package/dist/ionic/svg/shield-checkmark-sharp.svg +1 -0
  818. package/dist/ionic/svg/shield-checkmark.svg +1 -0
  819. package/dist/ionic/svg/shield-half-outline.svg +1 -0
  820. package/dist/ionic/svg/shield-half-sharp.svg +1 -0
  821. package/dist/ionic/svg/shield-half.svg +1 -0
  822. package/dist/ionic/svg/shield-outline.svg +1 -0
  823. package/dist/ionic/svg/shield-sharp.svg +1 -0
  824. package/dist/ionic/svg/shield.svg +1 -0
  825. package/dist/ionic/svg/shirt-outline.svg +1 -0
  826. package/dist/ionic/svg/shirt-sharp.svg +1 -0
  827. package/dist/ionic/svg/shirt.svg +1 -0
  828. package/dist/ionic/svg/shuffle-outline.svg +1 -0
  829. package/dist/ionic/svg/shuffle-sharp.svg +1 -0
  830. package/dist/ionic/svg/shuffle.svg +1 -0
  831. package/dist/ionic/svg/skull-outline.svg +1 -0
  832. package/dist/ionic/svg/skull-sharp.svg +1 -0
  833. package/dist/ionic/svg/skull.svg +1 -0
  834. package/dist/ionic/svg/snow-outline.svg +1 -0
  835. package/dist/ionic/svg/snow-sharp.svg +1 -0
  836. package/dist/ionic/svg/snow.svg +1 -0
  837. package/dist/ionic/svg/sparkles-outline.svg +1 -0
  838. package/dist/ionic/svg/sparkles-sharp.svg +1 -0
  839. package/dist/ionic/svg/sparkles.svg +1 -0
  840. package/dist/ionic/svg/speedometer-outline.svg +1 -0
  841. package/dist/ionic/svg/speedometer-sharp.svg +1 -0
  842. package/dist/ionic/svg/speedometer.svg +1 -0
  843. package/dist/ionic/svg/square-outline.svg +1 -0
  844. package/dist/ionic/svg/square-sharp.svg +1 -0
  845. package/dist/ionic/svg/square.svg +1 -0
  846. package/dist/ionic/svg/star-half-outline.svg +1 -0
  847. package/dist/ionic/svg/star-half-sharp.svg +1 -0
  848. package/dist/ionic/svg/star-half.svg +1 -0
  849. package/dist/ionic/svg/star-outline.svg +1 -0
  850. package/dist/ionic/svg/star-sharp.svg +1 -0
  851. package/dist/ionic/svg/star.svg +1 -0
  852. package/dist/ionic/svg/stats-chart-outline.svg +1 -0
  853. package/dist/ionic/svg/stats-chart-sharp.svg +1 -0
  854. package/dist/ionic/svg/stats-chart.svg +1 -0
  855. package/dist/ionic/svg/stop-circle-outline.svg +1 -0
  856. package/dist/ionic/svg/stop-circle-sharp.svg +1 -0
  857. package/dist/ionic/svg/stop-circle.svg +1 -0
  858. package/dist/ionic/svg/stop-outline.svg +1 -0
  859. package/dist/ionic/svg/stop-sharp.svg +1 -0
  860. package/dist/ionic/svg/stop.svg +1 -0
  861. package/dist/ionic/svg/stopwatch-outline.svg +1 -0
  862. package/dist/ionic/svg/stopwatch-sharp.svg +1 -0
  863. package/dist/ionic/svg/stopwatch.svg +1 -0
  864. package/dist/ionic/svg/storefront-outline.svg +1 -0
  865. package/dist/ionic/svg/storefront-sharp.svg +1 -0
  866. package/dist/ionic/svg/storefront.svg +1 -0
  867. package/dist/ionic/svg/subway-outline.svg +1 -0
  868. package/dist/ionic/svg/subway-sharp.svg +1 -0
  869. package/dist/ionic/svg/subway.svg +1 -0
  870. package/dist/ionic/svg/sunny-outline.svg +1 -0
  871. package/dist/ionic/svg/sunny-sharp.svg +1 -0
  872. package/dist/ionic/svg/sunny.svg +1 -0
  873. package/dist/ionic/svg/swap-horizontal-outline.svg +1 -0
  874. package/dist/ionic/svg/swap-horizontal-sharp.svg +1 -0
  875. package/dist/ionic/svg/swap-horizontal.svg +1 -0
  876. package/dist/ionic/svg/swap-vertical-outline.svg +1 -0
  877. package/dist/ionic/svg/swap-vertical-sharp.svg +1 -0
  878. package/dist/ionic/svg/swap-vertical.svg +1 -0
  879. package/dist/ionic/svg/sync-circle-outline.svg +1 -0
  880. package/dist/ionic/svg/sync-circle-sharp.svg +1 -0
  881. package/dist/ionic/svg/sync-circle.svg +1 -0
  882. package/dist/ionic/svg/sync-outline.svg +1 -0
  883. package/dist/ionic/svg/sync-sharp.svg +1 -0
  884. package/dist/ionic/svg/sync.svg +1 -0
  885. package/dist/ionic/svg/tablet-landscape-outline.svg +1 -0
  886. package/dist/ionic/svg/tablet-landscape-sharp.svg +1 -0
  887. package/dist/ionic/svg/tablet-landscape.svg +1 -0
  888. package/dist/ionic/svg/tablet-portrait-outline.svg +1 -0
  889. package/dist/ionic/svg/tablet-portrait-sharp.svg +1 -0
  890. package/dist/ionic/svg/tablet-portrait.svg +1 -0
  891. package/dist/ionic/svg/telescope-outline.svg +1 -0
  892. package/dist/ionic/svg/telescope-sharp.svg +1 -0
  893. package/dist/ionic/svg/telescope.svg +1 -0
  894. package/dist/ionic/svg/tennisball-outline.svg +1 -0
  895. package/dist/ionic/svg/tennisball-sharp.svg +1 -0
  896. package/dist/ionic/svg/tennisball.svg +1 -0
  897. package/dist/ionic/svg/terminal-outline.svg +1 -0
  898. package/dist/ionic/svg/terminal-sharp.svg +1 -0
  899. package/dist/ionic/svg/terminal.svg +1 -0
  900. package/dist/ionic/svg/text-outline.svg +1 -0
  901. package/dist/ionic/svg/text-sharp.svg +1 -0
  902. package/dist/ionic/svg/text.svg +1 -0
  903. package/dist/ionic/svg/thermometer-outline.svg +1 -0
  904. package/dist/ionic/svg/thermometer-sharp.svg +1 -0
  905. package/dist/ionic/svg/thermometer.svg +1 -0
  906. package/dist/ionic/svg/thumbs-down-outline.svg +1 -0
  907. package/dist/ionic/svg/thumbs-down-sharp.svg +1 -0
  908. package/dist/ionic/svg/thumbs-down.svg +1 -0
  909. package/dist/ionic/svg/thumbs-up-outline.svg +1 -0
  910. package/dist/ionic/svg/thumbs-up-sharp.svg +1 -0
  911. package/dist/ionic/svg/thumbs-up.svg +1 -0
  912. package/dist/ionic/svg/thunderstorm-outline.svg +1 -0
  913. package/dist/ionic/svg/thunderstorm-sharp.svg +1 -0
  914. package/dist/ionic/svg/thunderstorm.svg +1 -0
  915. package/dist/ionic/svg/ticket-outline.svg +1 -0
  916. package/dist/ionic/svg/ticket-sharp.svg +1 -0
  917. package/dist/ionic/svg/ticket.svg +1 -0
  918. package/dist/ionic/svg/time-outline.svg +1 -0
  919. package/dist/ionic/svg/time-sharp.svg +1 -0
  920. package/dist/ionic/svg/time.svg +1 -0
  921. package/dist/ionic/svg/timer-outline.svg +1 -0
  922. package/dist/ionic/svg/timer-sharp.svg +1 -0
  923. package/dist/ionic/svg/timer.svg +1 -0
  924. package/dist/ionic/svg/today-outline.svg +1 -0
  925. package/dist/ionic/svg/today-sharp.svg +1 -0
  926. package/dist/ionic/svg/today.svg +1 -0
  927. package/dist/ionic/svg/toggle-outline.svg +1 -0
  928. package/dist/ionic/svg/toggle-sharp.svg +1 -0
  929. package/dist/ionic/svg/toggle.svg +1 -0
  930. package/dist/ionic/svg/trail-sign-outline.svg +1 -0
  931. package/dist/ionic/svg/trail-sign-sharp.svg +1 -0
  932. package/dist/ionic/svg/trail-sign.svg +1 -0
  933. package/dist/ionic/svg/train-outline.svg +1 -0
  934. package/dist/ionic/svg/train-sharp.svg +1 -0
  935. package/dist/ionic/svg/train.svg +1 -0
  936. package/dist/ionic/svg/transgender-outline.svg +1 -0
  937. package/dist/ionic/svg/transgender-sharp.svg +1 -0
  938. package/dist/ionic/svg/transgender.svg +1 -0
  939. package/dist/ionic/svg/trash-bin-outline.svg +1 -0
  940. package/dist/ionic/svg/trash-bin-sharp.svg +1 -0
  941. package/dist/ionic/svg/trash-bin.svg +1 -0
  942. package/dist/ionic/svg/trash-outline.svg +1 -0
  943. package/dist/ionic/svg/trash-sharp.svg +1 -0
  944. package/dist/ionic/svg/trash.svg +1 -0
  945. package/dist/ionic/svg/trending-down-outline.svg +1 -0
  946. package/dist/ionic/svg/trending-down-sharp.svg +1 -0
  947. package/dist/ionic/svg/trending-down.svg +1 -0
  948. package/dist/ionic/svg/trending-up-outline.svg +1 -0
  949. package/dist/ionic/svg/trending-up-sharp.svg +1 -0
  950. package/dist/ionic/svg/trending-up.svg +1 -0
  951. package/dist/ionic/svg/triangle-outline.svg +1 -0
  952. package/dist/ionic/svg/triangle-sharp.svg +1 -0
  953. package/dist/ionic/svg/triangle.svg +1 -0
  954. package/dist/ionic/svg/trophy-outline.svg +1 -0
  955. package/dist/ionic/svg/trophy-sharp.svg +1 -0
  956. package/dist/ionic/svg/trophy.svg +1 -0
  957. package/dist/ionic/svg/tv-outline.svg +1 -0
  958. package/dist/ionic/svg/tv-sharp.svg +1 -0
  959. package/dist/ionic/svg/tv.svg +1 -0
  960. package/dist/ionic/svg/umbrella-outline.svg +1 -0
  961. package/dist/ionic/svg/umbrella-sharp.svg +1 -0
  962. package/dist/ionic/svg/umbrella.svg +1 -0
  963. package/dist/ionic/svg/unlink-outline.svg +1 -0
  964. package/dist/ionic/svg/unlink-sharp.svg +1 -0
  965. package/dist/ionic/svg/unlink.svg +1 -0
  966. package/dist/ionic/svg/videocam-off-outline.svg +1 -0
  967. package/dist/ionic/svg/videocam-off-sharp.svg +1 -0
  968. package/dist/ionic/svg/videocam-off.svg +1 -0
  969. package/dist/ionic/svg/videocam-outline.svg +1 -0
  970. package/dist/ionic/svg/videocam-sharp.svg +1 -0
  971. package/dist/ionic/svg/videocam.svg +1 -0
  972. package/dist/ionic/svg/volume-high-outline.svg +1 -0
  973. package/dist/ionic/svg/volume-high-sharp.svg +1 -0
  974. package/dist/ionic/svg/volume-high.svg +1 -0
  975. package/dist/ionic/svg/volume-low-outline.svg +1 -0
  976. package/dist/ionic/svg/volume-low-sharp.svg +1 -0
  977. package/dist/ionic/svg/volume-low.svg +1 -0
  978. package/dist/ionic/svg/volume-medium-outline.svg +1 -0
  979. package/dist/ionic/svg/volume-medium-sharp.svg +1 -0
  980. package/dist/ionic/svg/volume-medium.svg +1 -0
  981. package/dist/ionic/svg/volume-mute-outline.svg +1 -0
  982. package/dist/ionic/svg/volume-mute-sharp.svg +1 -0
  983. package/dist/ionic/svg/volume-mute.svg +1 -0
  984. package/dist/ionic/svg/volume-off-outline.svg +1 -0
  985. package/dist/ionic/svg/volume-off-sharp.svg +1 -0
  986. package/dist/ionic/svg/volume-off.svg +1 -0
  987. package/dist/ionic/svg/walk-outline.svg +1 -0
  988. package/dist/ionic/svg/walk-sharp.svg +1 -0
  989. package/dist/ionic/svg/walk.svg +1 -0
  990. package/dist/ionic/svg/wallet-outline.svg +1 -0
  991. package/dist/ionic/svg/wallet-sharp.svg +1 -0
  992. package/dist/ionic/svg/wallet.svg +1 -0
  993. package/dist/ionic/svg/warning-outline.svg +1 -0
  994. package/dist/ionic/svg/warning-sharp.svg +1 -0
  995. package/dist/ionic/svg/warning.svg +1 -0
  996. package/dist/ionic/svg/watch-outline.svg +1 -0
  997. package/dist/ionic/svg/watch-sharp.svg +1 -0
  998. package/dist/ionic/svg/watch.svg +1 -0
  999. package/dist/ionic/svg/water-outline.svg +1 -0
  1000. package/dist/ionic/svg/water-sharp.svg +1 -0
  1001. package/dist/ionic/svg/water.svg +1 -0
  1002. package/dist/ionic/svg/wifi-outline.svg +1 -0
  1003. package/dist/ionic/svg/wifi-sharp.svg +1 -0
  1004. package/dist/ionic/svg/wifi.svg +1 -0
  1005. package/dist/ionic/svg/wine-outline.svg +1 -0
  1006. package/dist/ionic/svg/wine-sharp.svg +1 -0
  1007. package/dist/ionic/svg/wine.svg +1 -0
  1008. package/dist/ionic/svg/woman-outline.svg +1 -0
  1009. package/dist/ionic/svg/woman-sharp.svg +1 -0
  1010. package/dist/ionic/svg/woman.svg +1 -0
  1011. package/dist/types/components/accordion/accordion.d.ts +1 -1
  1012. package/dist/types/components/action-sheet/action-sheet.d.ts +37 -0
  1013. package/dist/types/components/checkbox/checkbox.d.ts +9 -1
  1014. package/dist/types/components/content/content.d.ts +7 -0
  1015. package/dist/types/components/datetime/datetime.d.ts +10 -0
  1016. package/dist/types/components/fab-button/fab-button.d.ts +1 -1
  1017. package/dist/types/components/item/item.d.ts +1 -1
  1018. package/dist/types/components/modal/modal.d.ts +14 -0
  1019. package/dist/types/components/popover/popover.d.ts +7 -0
  1020. package/dist/types/components/radio-group/radio-group.d.ts +9 -1
  1021. package/dist/types/components/select/select.d.ts +2 -2
  1022. package/dist/types/components/toggle/toggle.d.ts +7 -1
  1023. package/dist/types/components.d.ts +10 -6
  1024. package/dist/types/utils/forms/validity.d.ts +1 -1
  1025. package/hydrate/index.js +863 -451
  1026. package/hydrate/index.mjs +863 -451
  1027. package/package.json +10 -6
  1028. package/dist/ionic/p-4cc26913.entry.js +0 -4
  1029. package/dist/ionic/p-4efea47a.entry.js +0 -4
  1030. package/dist/ionic/p-510d86e1.entry.js +0 -4
  1031. package/dist/ionic/p-5fb517e4.entry.js +0 -4
  1032. package/dist/ionic/p-7bcfc421.entry.js +0 -4
  1033. package/dist/ionic/p-8bdfc8f6.entry.js +0 -4
  1034. package/dist/ionic/p-95bddd49.entry.js +0 -4
  1035. package/dist/ionic/p-D87hU-Ly.js +0 -4
  1036. package/dist/ionic/p-dc2e126d.entry.js +0 -4
  1037. package/dist/ionic/p-e16b69e1.entry.js +0 -4
  1038. package/dist/ionic/p-f65f9308.entry.js +0 -4
  1039. package/dist/ionic/p-fc278823.entry.js +0 -4
@@ -463,7 +463,13 @@ export class Modal {
463
463
  };
464
464
  window.addEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
465
465
  }
466
- if (this.isSheetModal) {
466
+ /**
467
+ * Recalculate isSheetModal because framework bindings (e.g., Angular)
468
+ * may not have been applied when componentWillLoad ran.
469
+ */
470
+ const isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
471
+ this.isSheetModal = isSheetModal;
472
+ if (isSheetModal) {
467
473
  this.initSheetGesture();
468
474
  }
469
475
  else if (hasCardModal) {
@@ -545,6 +551,79 @@ export class Modal {
545
551
  this.gesture = gesture;
546
552
  this.moveSheetToBreakpoint = moveSheetToBreakpoint;
547
553
  this.gesture.enable(true);
554
+ /**
555
+ * When backdrop interaction is allowed, nested router outlets from child routes
556
+ * may block pointer events to parent content. Apply passthrough styles only when
557
+ * the modal was the sole content of a child route page.
558
+ * See https://github.com/ionic-team/ionic-framework/issues/30700
559
+ */
560
+ const backdropNotBlocking = this.showBackdrop === false || this.focusTrap === false || backdropBreakpoint > 0;
561
+ if (backdropNotBlocking) {
562
+ this.setupChildRoutePassthrough();
563
+ }
564
+ }
565
+ /**
566
+ * For sheet modals that allow background interaction, sets up pointer-events
567
+ * passthrough on child route page wrappers and nested router outlets.
568
+ */
569
+ setupChildRoutePassthrough() {
570
+ var _a;
571
+ // Cache the page parent for cleanup
572
+ this.cachedPageParent = this.getOriginalPageParent();
573
+ const pageParent = this.cachedPageParent;
574
+ // Skip ion-app (controller modals) and pages with visible sibling content next to the modal
575
+ if (!pageParent || pageParent.tagName === 'ION-APP') {
576
+ return;
577
+ }
578
+ const hasVisibleContent = Array.from(pageParent.children).some((child) => {
579
+ var _a;
580
+ return child !== this.el &&
581
+ !(child instanceof HTMLElement && window.getComputedStyle(child).display === 'none') &&
582
+ child.tagName !== 'TEMPLATE' &&
583
+ child.tagName !== 'SLOT' &&
584
+ !(child.nodeType === Node.TEXT_NODE && !((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()));
585
+ });
586
+ if (hasVisibleContent) {
587
+ return;
588
+ }
589
+ // Child route case: page only contained the modal
590
+ pageParent.classList.add('ion-page-overlay-passthrough');
591
+ // Also make nested router outlets passthrough
592
+ const routerOutlet = pageParent.parentElement;
593
+ if ((routerOutlet === null || routerOutlet === void 0 ? void 0 : routerOutlet.tagName) === 'ION-ROUTER-OUTLET' && ((_a = routerOutlet.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) !== 'ION-APP') {
594
+ routerOutlet.style.setProperty('pointer-events', 'none');
595
+ routerOutlet.setAttribute('data-overlay-passthrough', 'true');
596
+ }
597
+ }
598
+ /**
599
+ * Finds the ion-page ancestor of the modal's original parent location.
600
+ */
601
+ getOriginalPageParent() {
602
+ if (!this.cachedOriginalParent) {
603
+ return null;
604
+ }
605
+ let pageParent = this.cachedOriginalParent;
606
+ while (pageParent && !pageParent.classList.contains('ion-page')) {
607
+ pageParent = pageParent.parentElement;
608
+ }
609
+ return pageParent;
610
+ }
611
+ /**
612
+ * Removes passthrough styles added by setupChildRoutePassthrough.
613
+ */
614
+ cleanupChildRoutePassthrough() {
615
+ const pageParent = this.cachedPageParent;
616
+ if (!pageParent) {
617
+ return;
618
+ }
619
+ pageParent.classList.remove('ion-page-overlay-passthrough');
620
+ const routerOutlet = pageParent.parentElement;
621
+ if (routerOutlet === null || routerOutlet === void 0 ? void 0 : routerOutlet.hasAttribute('data-overlay-passthrough')) {
622
+ routerOutlet.style.removeProperty('pointer-events');
623
+ routerOutlet.removeAttribute('data-overlay-passthrough');
624
+ }
625
+ // Clear the cached reference
626
+ this.cachedPageParent = undefined;
548
627
  }
549
628
  sheetOnDismiss() {
550
629
  /**
@@ -634,6 +713,7 @@ export class Modal {
634
713
  }
635
714
  this.cleanupViewTransitionListener();
636
715
  this.cleanupParentRemovalObserver();
716
+ this.cleanupChildRoutePassthrough();
637
717
  }
638
718
  this.currentBreakpoint = undefined;
639
719
  this.animation = undefined;
@@ -838,6 +918,17 @@ export class Modal {
838
918
  this.cachedOriginalParent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
839
919
  return;
840
920
  }
921
+ /**
922
+ * Don't observe for controller-based modals or when the parent is the
923
+ * app root (document.body or ion-app). These parents won't be removed,
924
+ * and observing document.body with subtree: true causes performance
925
+ * issues with frameworks like Angular during change detection.
926
+ */
927
+ if (this.hasController ||
928
+ this.cachedOriginalParent === document.body ||
929
+ this.cachedOriginalParent.tagName === 'ION-APP') {
930
+ return;
931
+ }
841
932
  this.parentRemovalObserver = new MutationObserver((mutations) => {
842
933
  mutations.forEach((mutation) => {
843
934
  if (mutation.type === 'childList' && mutation.removedNodes.length > 0) {
@@ -879,20 +970,20 @@ export class Modal {
879
970
  const isCardModal = presentingElement !== undefined && mode === 'ios';
880
971
  const isHandleCycle = handleBehavior === 'cycle';
881
972
  const isSheetModalWithHandle = isSheetModal && showHandle;
882
- return (h(Host, Object.assign({ key: '9e9a7bd591eb17a225a00b4fa2e379e94601d17f', "no-router": true,
973
+ return (h(Host, Object.assign({ key: '9a75095a13de0cfc96f1fa69fd92777d25da8daa', "no-router": true,
883
974
  // Allow the modal to be navigable when the handle is focusable
884
975
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
885
976
  zIndex: `${20000 + this.overlayIndex}`,
886
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'e5eae2c14f830f75e308fcd7f4c10c86fac5b962', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: 'e268f9cd310c3cf4e051b5b92524ce4fb70d005e', class: "modal-shadow" }), h("div", Object.assign({ key: '9c380f36c18144c153077b15744d1c3346bce63e',
977
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'd02612d8063ef20f59f173ff47795f71cdaaf63e', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '708761b70a93e34c08faae079569f444c7416a4c', class: "modal-shadow" }), h("div", Object.assign({ key: 'a72226ff1a98229f9bfd9207b98fc57e02baa430',
887
978
  /*
888
979
  role and aria-modal must be used on the
889
980
  same element. They must also be set inside the
890
981
  shadow DOM otherwise ion-button will not be highlighted
891
982
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
892
983
  */
893
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '2d5ee6d5959d97309c306e8ce72eb0f2c19be144', class: "modal-handle",
984
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '0547f32323882660221385d84d492929caa77c6b', class: "modal-handle",
894
985
  // Prevents the handle from receiving keyboard focus when it does not cycle
895
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '5590434c35ea04c42fc006498bc189038e15a298', onSlotchange: this.onSlotChange }))));
986
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: 'fccbd64518b6fa22f9e874deb6b4ba55d8d89c3b', onSlotchange: this.onSlotChange }))));
896
987
  }
897
988
  static get is() { return "ion-modal"; }
898
989
  static get encapsulation() { return "shadow"; }
@@ -1451,6 +1542,7 @@ export class Modal {
1451
1542
  }
1452
1543
  static get states() {
1453
1544
  return {
1545
+ "isSheetModal": {},
1454
1546
  "presented": {}
1455
1547
  };
1456
1548
  }
@@ -225,6 +225,10 @@ export class Popover {
225
225
  if (destroyTriggerInteraction) {
226
226
  destroyTriggerInteraction();
227
227
  }
228
+ if (this.headerResizeObserver) {
229
+ this.headerResizeObserver.disconnect();
230
+ this.headerResizeObserver = undefined;
231
+ }
228
232
  }
229
233
  componentWillLoad() {
230
234
  var _a, _b;
@@ -327,6 +331,7 @@ export class Popover {
327
331
  */
328
332
  this.ionMount.emit();
329
333
  this.usersElement = await attachComponent(delegate, el, this.component, ['popover-viewport'], this.componentProps, inline);
334
+ this.recalculateContentOnHeaderReady();
330
335
  if (!this.keyboardEvents) {
331
336
  this.configureKeyboardInteraction();
332
337
  }
@@ -372,6 +377,35 @@ export class Popover {
372
377
  }
373
378
  unlock();
374
379
  }
380
+ /**
381
+ * Watch the header for height changes and trigger content dimension
382
+ * recalculation when the header has a height > 0. This sets the offset-top
383
+ * of the content to the height of the header correctly.
384
+ */
385
+ recalculateContentOnHeaderReady() {
386
+ var _a;
387
+ const popoverContent = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.popover-content');
388
+ if (!popoverContent) {
389
+ return;
390
+ }
391
+ const contentContainer = this.usersElement || popoverContent;
392
+ const header = contentContainer.querySelector('ion-header');
393
+ const contentElements = contentContainer.querySelectorAll('ion-content');
394
+ if (!header || contentElements.length === 0) {
395
+ return;
396
+ }
397
+ this.headerResizeObserver = new ResizeObserver(async () => {
398
+ var _a;
399
+ if (header.offsetHeight > 0) {
400
+ (_a = this.headerResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
401
+ this.headerResizeObserver = undefined;
402
+ for (const contentEl of contentElements) {
403
+ await contentEl.recalculateDimensions();
404
+ }
405
+ }
406
+ });
407
+ this.headerResizeObserver.observe(header);
408
+ }
375
409
  /**
376
410
  * Dismiss the popover overlay after it has been presented.
377
411
  * This is a no-op if the overlay has not been presented yet. If you want
@@ -433,9 +467,9 @@ export class Popover {
433
467
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
434
468
  const desktop = isPlatform('desktop');
435
469
  const enableArrow = arrow && !parentPopover;
436
- return (h(Host, Object.assign({ key: '16866c02534968c982cf4730d2936d03a5107c8b', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
470
+ return (h(Host, Object.assign({ key: '42863f748c93f709d433931d969230137b37d42d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
437
471
  zIndex: `${20000 + this.overlayIndex}`,
438
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '0df258601a4d30df3c27aa8234a7d5e056c3ecbb', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'f94e80ed996b957b5cd09b826472b4f60e8fcc78', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '185ce22f6386e8444a9cc7b8818dbfc16c463c99', class: "popover-arrow", part: "arrow" }), h("div", { key: '206202b299404e110de5397b229678cca18568d3', class: "popover-content", part: "content" }, h("slot", { key: 'ee543a0b92d6e35a837c0a0e4617c7b0fc4ad0b0' })))));
472
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '22b6d82178b52158b76ab3fd9a7dd738fd6e4bbf', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'b76335c64e992a964ed3fb91d17a992c3474b4cd', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '018c846c32e7ff7fa010528e6b37a17e5f03c84c', class: "popover-arrow", part: "arrow" }), h("div", { key: '350c468c80052da3a07768bceab98fe159c35a43', class: "popover-content", part: "content" }, h("slot", { key: '686443c17ac9873d33905c1cdb67e6d6da675282' })))));
439
473
  }
440
474
  static get is() { return "ion-popover"; }
441
475
  static get encapsulation() { return "shadow"; }
@@ -1,7 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { Host, h } from "@stencil/core";
4
+ import { Build, Host, h } from "@stencil/core";
5
+ import { checkInvalidState } from "../../utils/forms/index";
5
6
  import { renderHiddenInput } from "../../utils/helpers";
6
7
  import { getIonMode } from "../../global/ionic-global";
7
8
  export class RadioGroup {
@@ -10,6 +11,10 @@ export class RadioGroup {
10
11
  this.helperTextId = `${this.inputId}-helper-text`;
11
12
  this.errorTextId = `${this.inputId}-error-text`;
12
13
  this.labelId = `${this.inputId}-lbl`;
14
+ /**
15
+ * Track validation state for proper aria-live announcements.
16
+ */
17
+ this.isInvalid = false;
13
18
  /**
14
19
  * If `true`, the radios can be deselected.
15
20
  */
@@ -91,6 +96,52 @@ export class RadioGroup {
91
96
  this.labelId = label.id = this.name + '-lbl';
92
97
  }
93
98
  }
99
+ // Watch for class changes to update validation state.
100
+ if (Build.isBrowser && typeof MutationObserver !== 'undefined') {
101
+ this.validationObserver = new MutationObserver(() => {
102
+ const newIsInvalid = checkInvalidState(this.el);
103
+ if (this.isInvalid !== newIsInvalid) {
104
+ this.isInvalid = newIsInvalid;
105
+ /**
106
+ * Screen readers tend to announce changes
107
+ * to `aria-describedby` when the attribute
108
+ * is changed during a blur event for a
109
+ * native form control.
110
+ * However, the announcement can be spotty
111
+ * when using a non-native form control
112
+ * and `forceUpdate()`.
113
+ * This is due to `forceUpdate()` internally
114
+ * rescheduling the DOM update to a lower
115
+ * priority queue regardless if it's called
116
+ * inside a Promise or not, thus causing
117
+ * the screen reader to potentially miss the
118
+ * change.
119
+ * By using a State variable inside a Promise,
120
+ * it guarantees a re-render immediately at
121
+ * a higher priority.
122
+ */
123
+ Promise.resolve().then(() => {
124
+ this.hintTextId = this.getHintTextId();
125
+ });
126
+ }
127
+ });
128
+ this.validationObserver.observe(this.el, {
129
+ attributes: true,
130
+ attributeFilter: ['class'],
131
+ });
132
+ }
133
+ // Always set initial state
134
+ this.isInvalid = checkInvalidState(this.el);
135
+ }
136
+ componentWillLoad() {
137
+ this.hintTextId = this.getHintTextId();
138
+ }
139
+ disconnectedCallback() {
140
+ // Clean up validation observer to prevent memory leaks.
141
+ if (this.validationObserver) {
142
+ this.validationObserver.disconnect();
143
+ this.validationObserver = undefined;
144
+ }
94
145
  }
95
146
  getRadios() {
96
147
  return Array.from(this.el.querySelectorAll('ion-radio'));
@@ -166,16 +217,16 @@ export class RadioGroup {
166
217
  * Renders the helper text or error text values
167
218
  */
168
219
  renderHintText() {
169
- const { helperText, errorText, helperTextId, errorTextId } = this;
220
+ const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
170
221
  const hasHintText = !!helperText || !!errorText;
171
222
  if (!hasHintText) {
172
223
  return;
173
224
  }
174
- return (h("div", { class: "radio-group-top" }, h("div", { id: helperTextId, class: "helper-text" }, helperText), h("div", { id: errorTextId, class: "error-text" }, errorText)));
225
+ return (h("div", { class: "radio-group-top" }, h("div", { id: helperTextId, class: "helper-text", "aria-live": "polite" }, !isInvalid ? helperText : null), h("div", { id: errorTextId, class: "error-text", role: "alert" }, isInvalid ? errorText : null)));
175
226
  }
176
- getHintTextID() {
177
- const { el, helperText, errorText, helperTextId, errorTextId } = this;
178
- if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
227
+ getHintTextId() {
228
+ const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
229
+ if (isInvalid && errorText) {
179
230
  return errorTextId;
180
231
  }
181
232
  if (helperText) {
@@ -187,7 +238,7 @@ export class RadioGroup {
187
238
  const { label, labelId, el, name, value } = this;
188
239
  const mode = getIonMode(this);
189
240
  renderHiddenInput(true, el, name, value, false);
190
- return (h(Host, { key: '81b8ebc96b2f383c36717f290d2959cc921ad6e8', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, onClick: this.onClick, class: mode }, this.renderHintText(), h("div", { key: '45b09efc10776b889a8f372cba80d25a3fc849da', class: "radio-group-wrapper" }, h("slot", { key: '58714934542c2fdd7396de160364f3f06b32e8f8' }))));
241
+ return (h(Host, { key: 'db593b3ed511e9395e3c7bfd91b787328692cd6d', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, class: mode }, this.renderHintText(), h("div", { key: '85045b45a0100a45f3b9a35d1c5a25ec63d525c4', class: "radio-group-wrapper" }, h("slot", { key: '53dacb87ce62398e78771fb2efaf839ab922d946' }))));
191
242
  }
192
243
  static get is() { return "ion-radio-group"; }
193
244
  static get originalStyleUrls() {
@@ -328,6 +379,12 @@ export class RadioGroup {
328
379
  }
329
380
  };
330
381
  }
382
+ static get states() {
383
+ return {
384
+ "isInvalid": {},
385
+ "hintTextId": {}
386
+ };
387
+ }
331
388
  static get events() {
332
389
  return [{
333
390
  "method": "ionChange",
@@ -202,7 +202,7 @@ export class Select {
202
202
  * a higher priority.
203
203
  */
204
204
  Promise.resolve().then(() => {
205
- this.hintTextID = this.getHintTextID();
205
+ this.hintTextId = this.getHintTextId();
206
206
  });
207
207
  }
208
208
  });
@@ -216,7 +216,7 @@ export class Select {
216
216
  }
217
217
  componentWillLoad() {
218
218
  this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);
219
- this.hintTextID = this.getHintTextID();
219
+ this.hintTextId = this.getHintTextId();
220
220
  }
221
221
  componentDidLoad() {
222
222
  /**
@@ -395,13 +395,18 @@ export class Select {
395
395
  .filter((cls) => cls !== 'hydrated')
396
396
  .join(' ');
397
397
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
398
+ const isSelected = isOptionSelected(selectValue, value, this.compareWith);
398
399
  return {
399
- role: isOptionSelected(selectValue, value, this.compareWith) ? 'selected' : '',
400
+ role: isSelected ? 'selected' : '',
400
401
  text: option.textContent,
401
402
  cssClass: optClass,
402
403
  handler: () => {
403
404
  this.setValue(value);
404
405
  },
406
+ htmlAttributes: {
407
+ 'aria-checked': isSelected ? 'true' : 'false',
408
+ role: 'radio',
409
+ },
405
410
  };
406
411
  });
407
412
  // Add "cancel" button
@@ -761,9 +766,9 @@ export class Select {
761
766
  }
762
767
  renderListbox() {
763
768
  const { disabled, inputId, isExpanded, required } = this;
764
- return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-describedby": this.hintTextID, "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
769
+ return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
765
770
  }
766
- getHintTextID() {
771
+ getHintTextId() {
767
772
  const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
768
773
  if (isInvalid && errorText) {
769
774
  return errorTextId;
@@ -828,7 +833,7 @@ export class Select {
828
833
  * TODO(FW-5592): Remove hasStartEndSlots condition
829
834
  */
830
835
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
831
- return (h(Host, { key: '35b5e18e6f79a802ff2d46d1242e80ff755cc0b9', onClick: this.onClick, class: createColorClasses(this.color, {
836
+ return (h(Host, { key: 'd8026835993d0e6dce747098f741a06ae4e4f54d', onClick: this.onClick, class: createColorClasses(this.color, {
832
837
  [mode]: true,
833
838
  'in-item': inItem,
834
839
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -846,7 +851,7 @@ export class Select {
846
851
  [`select-justify-${justify}`]: justifyEnabled,
847
852
  [`select-shape-${shape}`]: shape !== undefined,
848
853
  [`select-label-placement-${labelPlacement}`]: true,
849
- }) }, h("label", { key: '6005b34a0c50bc4d7653a4276bc232ecd02e083c', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: 'c7e07aa81ae856c057f16275dd058f37c5670a47', class: "select-wrapper-inner" }, h("slot", { key: '7fc2deefe0424404caacdbbd9e08ed43ba55d28a', name: "start" }), h("div", { key: '157d74ee717b1bc30b5f1c233a09b0c8456aa68e', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'ea66db304528b82bf9317730b6dce3db2612f235', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '786eb1530b7476f0615d4e7c0bf4e7e4dc66509c', class: "select-highlight" })), this.renderBottomContent()));
854
+ }) }, h("label", { key: 'fcfb40209d6d07d49c7fdca4884b31abf6ac2567', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: 'f191664f2290c3890bde1156157c83a6ff17dbe2', class: "select-wrapper-inner" }, h("slot", { key: '317a28d1115b4214f291e228ce0fe6fc782e57d5', name: "start" }), h("div", { key: 'db68e18abd5ca3a1023d7c7b58bf89893ae18073', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '4274e042267c2234a198b0f65c89477898d08130', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '2e2eb1ee2b2791e0683d9afb186fde6e938ca59c', class: "select-highlight" })), this.renderBottomContent()));
850
855
  }
851
856
  static get is() { return "ion-select"; }
852
857
  static get encapsulation() { return "shadow"; }
@@ -1316,7 +1321,7 @@ export class Select {
1316
1321
  "isExpanded": {},
1317
1322
  "hasFocus": {},
1318
1323
  "isInvalid": {},
1319
- "hintTextID": {}
1324
+ "hintTextId": {}
1320
1325
  };
1321
1326
  }
1322
1327
  static get events() {
@@ -1,7 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { Host, h } from "@stencil/core";
4
+ import { Build, Host, h } from "@stencil/core";
5
+ import { checkInvalidState } from "../../utils/forms/index";
5
6
  import { renderHiddenInput, inheritAriaAttributes } from "../../utils/helpers";
6
7
  import { hapticSelection } from "../../utils/native/haptic";
7
8
  import { isPlatform } from "../../utils/platform";
@@ -32,6 +33,10 @@ export class Toggle {
32
33
  this.inheritedAttributes = {};
33
34
  this.didLoad = false;
34
35
  this.activated = false;
36
+ /**
37
+ * Track validation state for proper aria-live announcements.
38
+ */
39
+ this.isInvalid = false;
35
40
  /**
36
41
  * The name of the control, which is submitted with the form data.
37
42
  */
@@ -145,15 +150,52 @@ export class Toggle {
145
150
  });
146
151
  }
147
152
  async connectedCallback() {
153
+ const { didLoad, el } = this;
148
154
  /**
149
155
  * If we have not yet rendered
150
156
  * ion-toggle, then toggleTrack is not defined.
151
157
  * But if we are moving ion-toggle via appendChild,
152
158
  * then toggleTrack will be defined.
153
159
  */
154
- if (this.didLoad) {
160
+ if (didLoad) {
155
161
  this.setupGesture();
156
162
  }
163
+ // Watch for class changes to update validation state.
164
+ if (Build.isBrowser && typeof MutationObserver !== 'undefined') {
165
+ this.validationObserver = new MutationObserver(() => {
166
+ const newIsInvalid = checkInvalidState(el);
167
+ if (this.isInvalid !== newIsInvalid) {
168
+ this.isInvalid = newIsInvalid;
169
+ /**
170
+ * Screen readers tend to announce changes
171
+ * to `aria-describedby` when the attribute
172
+ * is changed during a blur event for a
173
+ * native form control.
174
+ * However, the announcement can be spotty
175
+ * when using a non-native form control
176
+ * and `forceUpdate()`.
177
+ * This is due to `forceUpdate()` internally
178
+ * rescheduling the DOM update to a lower
179
+ * priority queue regardless if it's called
180
+ * inside a Promise or not, thus causing
181
+ * the screen reader to potentially miss the
182
+ * change.
183
+ * By using a State variable inside a Promise,
184
+ * it guarantees a re-render immediately at
185
+ * a higher priority.
186
+ */
187
+ Promise.resolve().then(() => {
188
+ this.hintTextId = this.getHintTextId();
189
+ });
190
+ }
191
+ });
192
+ this.validationObserver.observe(el, {
193
+ attributes: true,
194
+ attributeFilter: ['class'],
195
+ });
196
+ }
197
+ // Always set initial state
198
+ this.isInvalid = checkInvalidState(el);
157
199
  }
158
200
  componentDidLoad() {
159
201
  this.setupGesture();
@@ -164,9 +206,15 @@ export class Toggle {
164
206
  this.gesture.destroy();
165
207
  this.gesture = undefined;
166
208
  }
209
+ // Clean up validation observer to prevent memory leaks.
210
+ if (this.validationObserver) {
211
+ this.validationObserver.disconnect();
212
+ this.validationObserver = undefined;
213
+ }
167
214
  }
168
215
  componentWillLoad() {
169
216
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
217
+ this.hintTextId = this.getHintTextId();
170
218
  }
171
219
  onStart() {
172
220
  this.activated = true;
@@ -207,9 +255,9 @@ export class Toggle {
207
255
  get hasLabel() {
208
256
  return this.el.textContent !== '';
209
257
  }
210
- getHintTextID() {
211
- const { el, helperText, errorText, helperTextId, errorTextId } = this;
212
- if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
258
+ getHintTextId() {
259
+ const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
260
+ if (isInvalid && errorText) {
213
261
  return errorTextId;
214
262
  }
215
263
  if (helperText) {
@@ -222,7 +270,7 @@ export class Toggle {
222
270
  * This element should only be rendered if hint text is set.
223
271
  */
224
272
  renderHintText() {
225
- const { helperText, errorText, helperTextId, errorTextId } = this;
273
+ const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
226
274
  /**
227
275
  * undefined and empty string values should
228
276
  * be treated as not having helper/error text.
@@ -231,15 +279,15 @@ export class Toggle {
231
279
  if (!hasHintText) {
232
280
  return;
233
281
  }
234
- return (h("div", { class: "toggle-bottom" }, h("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text" }, helperText), h("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text" }, errorText)));
282
+ return (h("div", { class: "toggle-bottom" }, h("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text", "aria-live": "polite" }, !isInvalid ? helperText : null), h("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text", role: "alert" }, isInvalid ? errorText : null)));
235
283
  }
236
284
  render() {
237
- const { activated, alignment, checked, color, disabled, el, errorTextId, hasLabel, inheritedAttributes, inputId, inputLabelId, justify, labelPlacement, name, required, } = this;
285
+ const { activated, alignment, checked, color, disabled, el, hasLabel, inheritedAttributes, inputId, inputLabelId, justify, labelPlacement, name, required, } = this;
238
286
  const mode = getIonMode(this);
239
287
  const value = this.getValue();
240
288
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
241
289
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
242
- return (h(Host, { key: '17bbbc8d229868e5c872b2bc5a3faf579780c5e0', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === errorTextId, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses(color, {
290
+ return (h(Host, { key: 'f569148edd89ee041a4719ffc4733c16b05229bd', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses(color, {
243
291
  [mode]: true,
244
292
  'in-item': hostContext('ion-item', el),
245
293
  'toggle-activated': activated,
@@ -249,10 +297,10 @@ export class Toggle {
249
297
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
250
298
  [`toggle-label-placement-${labelPlacement}`]: true,
251
299
  [`toggle-${rtl}`]: true,
252
- }) }, h("label", { key: '673625b62a2c909e95dccb642c91312967a6cd1c', class: "toggle-wrapper", htmlFor: inputId }, h("input", Object.assign({ key: '7dc3f357b4708116663970047765da9f8f845bf0', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), h("div", { key: '8f1c6a182031e8cbc6727e5f4ac0e00ad4247447', class: {
300
+ }) }, h("label", { key: '3027f2ac4be6de422a14486d847fbee77f615db1', class: "toggle-wrapper", htmlFor: inputId }, h("input", Object.assign({ key: '4b0304c9e879e432b80184b4e5de37d55c11b436', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), h("div", { key: '8ef265ec942e7f01ff31cbb202ed146c6bf94e02', class: {
253
301
  'label-text-wrapper': true,
254
302
  'label-text-wrapper-hidden': !hasLabel,
255
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, h("slot", { key: '8322b9d54dc7edeb4e16fefcde9f7ebca8d5c3e1' }), this.renderHintText()), h("div", { key: 'fe6984143db817a7b3020a3f57cf5418fc3dcc0e', class: "native-wrapper" }, this.renderToggleControl()))));
303
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, h("slot", { key: '7b162b7dd27199cca2a4c995276a18b9f8e44aaf' }), this.renderHintText()), h("div", { key: 'd13c34bd42fca01cc73ddb4ea7e471b33a282a3e', class: "native-wrapper" }, this.renderToggleControl()))));
256
304
  }
257
305
  static get is() { return "ion-toggle"; }
258
306
  static get encapsulation() { return "shadow"; }
@@ -515,7 +563,9 @@ export class Toggle {
515
563
  }
516
564
  static get states() {
517
565
  return {
518
- "activated": {}
566
+ "activated": {},
567
+ "isInvalid": {},
568
+ "hintTextId": {}
519
569
  };
520
570
  }
521
571
  static get events() {
@@ -14,6 +14,14 @@ import { addEventListener, componentOnReady, focusVisibleElement, getElementRoot
14
14
  let lastOverlayIndex = 0;
15
15
  let lastId = 0;
16
16
  export const activeAnimations = new WeakMap();
17
+ /**
18
+ * Determines if the overlay's backdrop is always blocking (no background interaction).
19
+ * Returns false if showBackdrop=false or backdropBreakpoint > 0.
20
+ */
21
+ const isBackdropAlwaysBlocking = (el) => {
22
+ var _a;
23
+ return el.showBackdrop !== false && !(((_a = el.backdropBreakpoint) !== null && _a !== void 0 ? _a : 0) > 0);
24
+ };
17
25
  const createController = (tagName) => {
18
26
  return {
19
27
  create(options) {
@@ -457,9 +465,7 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
457
465
  */
458
466
  const overlayEl = overlay.el;
459
467
  const shouldTrapFocus = overlayEl.tagName !== 'ION-TOAST' && overlayEl.focusTrap !== false;
460
- // Only lock out root content when backdrop is active. Developers relying on showBackdrop=false
461
- // expect background interaction to remain enabled.
462
- const shouldLockRoot = shouldTrapFocus && overlayEl.showBackdrop !== false;
468
+ const shouldLockRoot = shouldTrapFocus && isBackdropAlwaysBlocking(overlayEl);
463
469
  overlay.presented = true;
464
470
  overlay.willPresent.emit();
465
471
  if (shouldLockRoot) {
@@ -575,10 +581,10 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
575
581
  */
576
582
  const overlaysLockingRoot = presentedOverlays.filter((o) => {
577
583
  const el = o;
578
- return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && el.showBackdrop !== false;
584
+ return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
579
585
  });
580
586
  const overlayEl = overlay.el;
581
- const locksRoot = overlayEl.tagName !== 'ION-TOAST' && overlayEl.focusTrap !== false && overlayEl.showBackdrop !== false;
587
+ const locksRoot = overlayEl.tagName !== 'ION-TOAST' && overlayEl.focusTrap !== false && isBackdropAlwaysBlocking(overlayEl);
582
588
  /**
583
589
  * If this is the last visible overlay that is trapping focus
584
590
  * then we want to re-add the root to the accessibility tree.
@@ -95,6 +95,13 @@ export const setContent = async (page, html, testInfo, options) => {
95
95
  route.continue();
96
96
  }
97
97
  });
98
+ /**
99
+ * URL query parameters cause the custom Playwright `page.route`
100
+ * interceptor to fail, which is necessary to inject the test HTML.
101
+ *
102
+ * To avoid this, the final navigation URL is kept simple by using
103
+ * hash params to ensure the route interceptor always works.
104
+ */
98
105
  await page.goto(`${baseUrl}#`, options);
99
106
  }
100
107
  };