@ionic/core 8.7.16-dev.11769699401.1dc7caf4 → 8.7.16-dev.11770318223.1177a6ea

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 (481) hide show
  1. package/components/button.js +20 -15
  2. package/components/checkbox.js +3 -3
  3. package/components/content.js +3 -3
  4. package/components/header.js +2 -2
  5. package/components/helpers.js +18 -4
  6. package/components/ion-card-content.js +7 -8
  7. package/components/ion-card-header.js +2 -2
  8. package/components/ion-card-subtitle.js +2 -2
  9. package/components/ion-card-title.js +2 -2
  10. package/components/ion-chip.js +2 -2
  11. package/components/ion-col.js +2 -2
  12. package/components/ion-datetime-button.js +2 -2
  13. package/components/ion-datetime.js +11 -17
  14. package/components/ion-divider.js +2 -2
  15. package/components/ion-fab-button.js +2 -2
  16. package/components/ion-fab-list.js +2 -2
  17. package/components/ion-fab.js +2 -2
  18. package/components/ion-footer.js +2 -2
  19. package/components/ion-grid.js +2 -2
  20. package/components/ion-img.js +2 -2
  21. package/components/ion-infinite-scroll-content.js +2 -2
  22. package/components/ion-infinite-scroll.js +1 -1
  23. package/components/ion-input-otp.js +62 -7
  24. package/components/ion-input-password-toggle.js +3 -3
  25. package/components/ion-input.js +4 -4
  26. package/components/ion-item-divider.js +2 -2
  27. package/components/ion-item-group.js +1 -1
  28. package/components/ion-item-option.js +2 -2
  29. package/components/ion-item-options.js +1 -1
  30. package/components/ion-item-sliding.js +1 -1
  31. package/components/ion-loading.js +2 -2
  32. package/components/ion-menu-button.js +2 -2
  33. package/components/ion-menu-toggle.js +2 -2
  34. package/components/ion-menu.js +2 -2
  35. package/components/ion-nav-link.js +1 -1
  36. package/components/ion-nav.js +1 -1
  37. package/components/ion-note.js +2 -2
  38. package/components/ion-picker-legacy.js +2 -2
  39. package/components/ion-progress-bar.js +1 -1
  40. package/components/ion-range.js +3 -3
  41. package/components/ion-refresher-content.js +2 -2
  42. package/components/ion-refresher.js +1 -1
  43. package/components/ion-reorder-group.js +1 -1
  44. package/components/ion-reorder.js +2 -2
  45. package/components/ion-router-link.js +2 -2
  46. package/components/ion-router-outlet.js +1 -1
  47. package/components/ion-row.js +2 -2
  48. package/components/ion-searchbar.js +4 -4
  49. package/components/ion-segment-button.js +2 -2
  50. package/components/ion-segment-content.js +1 -1
  51. package/components/ion-segment-view.js +2 -2
  52. package/components/ion-segment.js +2 -2
  53. package/components/ion-select-option.js +1 -1
  54. package/components/ion-select.js +3 -3
  55. package/components/ion-skeleton-text.js +2 -2
  56. package/components/ion-split-pane.js +2 -2
  57. package/components/ion-tab-bar.js +2 -2
  58. package/components/ion-tab-button.js +2 -2
  59. package/components/ion-tab.js +2 -2
  60. package/components/ion-tabs.js +1 -1
  61. package/components/ion-text.js +2 -2
  62. package/components/ion-textarea.js +81 -14
  63. package/components/ion-thumbnail.js +2 -2
  64. package/components/ion-toast.js +2 -2
  65. package/components/ion-toggle.js +3 -3
  66. package/components/label.js +2 -2
  67. package/components/list-header.js +2 -2
  68. package/components/list.js +1 -1
  69. package/components/modal.js +4 -4
  70. package/components/overlays.js +93 -2
  71. package/components/picker-column-option.js +2 -2
  72. package/components/picker-column.js +3 -3
  73. package/components/picker-column2.js +2 -2
  74. package/components/picker.js +2 -2
  75. package/components/popover.js +2 -2
  76. package/components/radio-group.js +2 -2
  77. package/components/radio.js +3 -3
  78. package/components/ripple-effect.js +1 -1
  79. package/components/select-modal.js +1 -1
  80. package/components/select-popover.js +2 -2
  81. package/components/spinner.js +1 -1
  82. package/components/theme.js +25 -1
  83. package/components/title.js +2 -2
  84. package/components/toolbar.js +2 -2
  85. package/components/validity.js +32 -1
  86. package/css/core.css +1 -1
  87. package/css/core.css.map +1 -1
  88. package/css/ionic/bundle.ionic.css +1 -1
  89. package/css/ionic/bundle.ionic.css.map +1 -1
  90. package/css/ionic/core.ionic.css +1 -1
  91. package/css/ionic/core.ionic.css.map +1 -1
  92. package/css/ionic.bundle.css +1 -1
  93. package/css/ionic.bundle.css.map +1 -1
  94. package/dist/cjs/{animation-CD5nuON9.js → animation-C04i0Aq2.js} +2 -2
  95. package/dist/cjs/{app-globals-CoW5jvJu.js → app-globals-BP1XPbBb.js} +1 -1
  96. package/dist/cjs/{button-active-Dxyabn6T.js → button-active-B9D1nnqS.js} +2 -2
  97. package/dist/cjs/{capacitor-C8raJ_tU.js → capacitor-CbwHRb4L.js} +1 -1
  98. package/dist/cjs/{config-C5fsO43a.js → config-CPCkFfH2.js} +1 -1
  99. package/dist/cjs/{data-MoL8Ckx5.js → data-BpYscHnl.js} +1 -1
  100. package/dist/cjs/{framework-delegate-Bwdk9vFS.js → framework-delegate-C7fZ8bup.js} +2 -2
  101. package/dist/cjs/{haptic-BU6_qLwg.js → haptic-CYmISoOJ.js} +1 -1
  102. package/dist/cjs/{helpers-DnouLczu.js → helpers-DF1tCuxf.js} +19 -5
  103. package/dist/cjs/{index-C4_FN9N0.js → index-B2l1iL59.js} +4 -4
  104. package/dist/cjs/{index-JtyffOXl.js → index-BVcv37_B.js} +4 -4
  105. package/dist/cjs/{index-CADY2xEW.js → index-BioRZa_4.js} +3 -3
  106. package/dist/cjs/{index-DUoP_H1L.js → index-C2sRwpb7.js} +2 -2
  107. package/dist/cjs/{index-D6Wc6v08.js → index-DjlJwy91.js} +41 -4
  108. package/dist/cjs/index.cjs.js +12 -12
  109. package/dist/cjs/{input-shims-C-YCyXjg.js → input-shims-BYRSBwuG.js} +6 -6
  110. package/dist/cjs/{input.utils-C3-BwdV0.js → input.utils-BBh_FWGy.js} +3 -3
  111. package/dist/cjs/ion-accordion_2.cjs.entry.js +4 -4
  112. package/dist/cjs/ion-action-sheet.cjs.entry.js +10 -10
  113. package/dist/cjs/ion-alert.cjs.entry.js +11 -11
  114. package/dist/cjs/ion-app_8.cjs.entry.js +23 -23
  115. package/dist/cjs/ion-avatar_3.cjs.entry.js +5 -5
  116. package/dist/cjs/ion-back-button.cjs.entry.js +4 -4
  117. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  118. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +4 -4
  119. package/dist/cjs/ion-button_2.cjs.entry.js +23 -18
  120. package/dist/cjs/ion-card_5.cjs.entry.js +15 -17
  121. package/dist/cjs/ion-checkbox.cjs.entry.js +8 -8
  122. package/dist/cjs/ion-chip.cjs.entry.js +5 -5
  123. package/dist/cjs/ion-col_3.cjs.entry.js +8 -8
  124. package/dist/cjs/ion-datetime-button.cjs.entry.js +7 -7
  125. package/dist/cjs/ion-datetime_3.cjs.entry.js +21 -21
  126. package/dist/cjs/ion-divider.cjs.entry.js +4 -4
  127. package/dist/cjs/ion-fab_3.cjs.entry.js +10 -10
  128. package/dist/cjs/ion-img.cjs.entry.js +5 -5
  129. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +8 -8
  130. package/dist/cjs/ion-input-otp.cjs.entry.js +69 -10
  131. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +6 -6
  132. package/dist/cjs/ion-input.cjs.entry.js +11 -11
  133. package/dist/cjs/ion-item-option_3.cjs.entry.js +9 -9
  134. package/dist/cjs/ion-item_8.cjs.entry.js +16 -16
  135. package/dist/cjs/ion-loading.cjs.entry.js +10 -10
  136. package/dist/cjs/ion-menu_3.cjs.entry.js +14 -14
  137. package/dist/cjs/ion-modal.cjs.entry.js +16 -16
  138. package/dist/cjs/ion-nav_2.cjs.entry.js +8 -8
  139. package/dist/cjs/ion-picker-column-option.cjs.entry.js +6 -6
  140. package/dist/cjs/ion-picker-column.cjs.entry.js +9 -9
  141. package/dist/cjs/ion-picker.cjs.entry.js +4 -4
  142. package/dist/cjs/ion-popover.cjs.entry.js +10 -10
  143. package/dist/cjs/ion-progress-bar.cjs.entry.js +5 -5
  144. package/dist/cjs/ion-radio_2.cjs.entry.js +10 -10
  145. package/dist/cjs/ion-range.cjs.entry.js +8 -8
  146. package/dist/cjs/ion-refresher_2.cjs.entry.js +11 -11
  147. package/dist/cjs/ion-reorder_2.cjs.entry.js +9 -9
  148. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  149. package/dist/cjs/ion-route_4.cjs.entry.js +6 -6
  150. package/dist/cjs/ion-searchbar.cjs.entry.js +8 -8
  151. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  152. package/dist/cjs/ion-segment-view.cjs.entry.js +3 -3
  153. package/dist/cjs/ion-segment_2.cjs.entry.js +8 -8
  154. package/dist/cjs/ion-select-modal.cjs.entry.js +7 -7
  155. package/dist/cjs/ion-select_3.cjs.entry.js +14 -14
  156. package/dist/cjs/ion-spinner.cjs.entry.js +4 -4
  157. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  158. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +11 -11
  159. package/dist/cjs/ion-tab_2.cjs.entry.js +6 -6
  160. package/dist/cjs/ion-text.cjs.entry.js +5 -5
  161. package/dist/cjs/ion-textarea.cjs.entry.js +88 -18
  162. package/dist/cjs/ion-toast.cjs.entry.js +10 -10
  163. package/dist/cjs/ion-toggle.cjs.entry.js +10 -10
  164. package/dist/cjs/{ionic-global-DpRwOXLK.js → ionic-global-Dq_E1GCa.js} +5 -5
  165. package/dist/cjs/ionic.cjs.js +4 -4
  166. package/dist/cjs/{ios.transition-Dt4GT8w5.js → ios.transition-DRha8gOi.js} +5 -5
  167. package/dist/cjs/{keyboard-B8HJHbg3.js → keyboard-DYFGJjuN.js} +4 -4
  168. package/dist/cjs/{keyboard-controller-O8n0dTQz.js → keyboard-controller-DNlzZiH-.js} +3 -3
  169. package/dist/cjs/{keyboard-BlrG3xPK.js → keyboard-sMvh7TE6.js} +1 -1
  170. package/dist/cjs/loader.cjs.js +4 -4
  171. package/dist/cjs/{md.transition-BolcQzNP.js → md.transition-Dh46qaSH.js} +5 -5
  172. package/dist/cjs/{notch-controller-BE80VRju.js → notch-controller-qvgjFR8h.js} +2 -2
  173. package/dist/cjs/{overlays-CRSQCKrz.js → overlays-CA-nLfRi.js} +97 -6
  174. package/dist/cjs/{status-tap-e-hyosXV.js → status-tap-BLw3gi_z.js} +3 -3
  175. package/dist/cjs/{swipe-back-CR060nOX.js → swipe-back-BD2lWufH.js} +2 -2
  176. package/dist/cjs/{theme-CeDs6Hcv.js → theme-IlOsGAz7.js} +25 -1
  177. package/dist/cjs/validity-QmuwEptc.js +51 -0
  178. package/dist/collection/components/button/button.ionic.css +10 -0
  179. package/dist/collection/components/button/button.ios.css +19 -0
  180. package/dist/collection/components/button/button.js +17 -12
  181. package/dist/collection/components/button/button.md.css +24 -0
  182. package/dist/collection/components/card-content/card-content.ionic.css +4 -7
  183. package/dist/collection/components/card-content/card-content.ios.css +5 -35
  184. package/dist/collection/components/card-content/card-content.js +3 -4
  185. package/dist/collection/components/card-content/card-content.md.css +5 -35
  186. package/dist/collection/components/card-header/card-header.js +2 -2
  187. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  188. package/dist/collection/components/card-title/card-title.js +2 -2
  189. package/dist/collection/components/checkbox/checkbox.js +3 -3
  190. package/dist/collection/components/chip/chip.js +2 -2
  191. package/dist/collection/components/col/col.js +2 -2
  192. package/dist/collection/components/content/content.js +3 -3
  193. package/dist/collection/components/datetime/datetime.ionic.css +5 -13
  194. package/dist/collection/components/datetime/datetime.ios.css +47 -12
  195. package/dist/collection/components/datetime/datetime.js +4 -4
  196. package/dist/collection/components/datetime/datetime.md.css +37 -2
  197. package/dist/collection/components/datetime-button/datetime-button.js +2 -2
  198. package/dist/collection/components/divider/divider.js +2 -2
  199. package/dist/collection/components/fab/fab.js +2 -2
  200. package/dist/collection/components/fab-button/fab-button.js +2 -2
  201. package/dist/collection/components/fab-list/fab-list.js +2 -2
  202. package/dist/collection/components/footer/footer.js +2 -2
  203. package/dist/collection/components/grid/grid.js +2 -2
  204. package/dist/collection/components/header/header.js +2 -2
  205. package/dist/collection/components/img/img.js +2 -2
  206. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  207. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  208. package/dist/collection/components/input/input.js +4 -4
  209. package/dist/collection/components/input-otp/input-otp.ionic.css +2 -0
  210. package/dist/collection/components/input-otp/input-otp.ios.css +3 -0
  211. package/dist/collection/components/input-otp/input-otp.js +69 -4
  212. package/dist/collection/components/input-otp/input-otp.md.css +3 -0
  213. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  214. package/dist/collection/components/item-divider/item-divider.js +2 -2
  215. package/dist/collection/components/item-group/item-group.js +1 -1
  216. package/dist/collection/components/item-option/item-option.js +2 -2
  217. package/dist/collection/components/item-options/item-options.js +1 -1
  218. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  219. package/dist/collection/components/label/label.js +2 -2
  220. package/dist/collection/components/list/list.js +1 -1
  221. package/dist/collection/components/list-header/list-header.js +2 -2
  222. package/dist/collection/components/loading/loading.js +2 -2
  223. package/dist/collection/components/menu/menu.js +2 -2
  224. package/dist/collection/components/menu-button/menu-button.js +2 -2
  225. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  226. package/dist/collection/components/modal/modal.js +4 -4
  227. package/dist/collection/components/nav/nav.js +1 -1
  228. package/dist/collection/components/nav-link/nav-link.js +1 -1
  229. package/dist/collection/components/note/note.js +2 -2
  230. package/dist/collection/components/picker/picker.js +2 -2
  231. package/dist/collection/components/picker-column/picker-column.js +3 -3
  232. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  233. package/dist/collection/components/picker-legacy/picker.js +2 -2
  234. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  235. package/dist/collection/components/popover/popover.js +2 -2
  236. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  237. package/dist/collection/components/radio/radio.js +3 -3
  238. package/dist/collection/components/radio-group/radio-group.js +2 -2
  239. package/dist/collection/components/range/range.js +3 -3
  240. package/dist/collection/components/refresher/refresher.js +1 -1
  241. package/dist/collection/components/refresher-content/refresher-content.js +2 -2
  242. package/dist/collection/components/reorder/reorder.js +2 -2
  243. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  244. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  245. package/dist/collection/components/router-link/router-link.js +2 -2
  246. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  247. package/dist/collection/components/row/row.js +2 -2
  248. package/dist/collection/components/searchbar/searchbar.js +4 -4
  249. package/dist/collection/components/segment/segment.js +2 -2
  250. package/dist/collection/components/segment-button/segment-button.js +2 -2
  251. package/dist/collection/components/segment-content/segment-content.js +1 -1
  252. package/dist/collection/components/segment-view/segment-view.js +2 -2
  253. package/dist/collection/components/select/select.js +3 -3
  254. package/dist/collection/components/select-modal/select-modal.js +1 -1
  255. package/dist/collection/components/select-option/select-option.js +1 -1
  256. package/dist/collection/components/select-popover/select-popover.js +2 -2
  257. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  258. package/dist/collection/components/spinner/spinner.js +1 -1
  259. package/dist/collection/components/split-pane/split-pane.js +2 -2
  260. package/dist/collection/components/tab/tab.js +2 -2
  261. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  262. package/dist/collection/components/tab-button/tab-button.js +2 -2
  263. package/dist/collection/components/tabs/tabs.js +1 -1
  264. package/dist/collection/components/text/text.js +2 -2
  265. package/dist/collection/components/textarea/textarea.ionic.css +13 -20
  266. package/dist/collection/components/textarea/textarea.ios.css +8 -14
  267. package/dist/collection/components/textarea/textarea.js +89 -11
  268. package/dist/collection/components/textarea/textarea.md.css +9 -14
  269. package/dist/collection/components/thumbnail/thumbnail.js +2 -2
  270. package/dist/collection/components/title/title.js +2 -2
  271. package/dist/collection/components/toast/toast.js +2 -2
  272. package/dist/collection/components/toggle/toggle.js +3 -3
  273. package/dist/collection/components/toolbar/toolbar.js +2 -2
  274. package/dist/collection/utils/focus-trap.js +13 -2
  275. package/dist/collection/utils/forms/validity.js +31 -0
  276. package/dist/collection/utils/helpers.js +18 -4
  277. package/dist/collection/utils/overlays.js +80 -0
  278. package/dist/collection/utils/theme.js +25 -1
  279. package/dist/docs.json +178 -15
  280. package/dist/esm/{animation-BNuoDl-O.js → animation-C5cgFymd.js} +2 -2
  281. package/dist/esm/{app-globals-tX0s9Zd7.js → app-globals-BQa4bHAm.js} +1 -1
  282. package/dist/esm/{button-active-BF6GZ_yH.js → button-active-DpavRUgB.js} +2 -2
  283. package/dist/esm/{capacitor-pzVAlnC0.js → capacitor-Bc47Xxvc.js} +1 -1
  284. package/dist/esm/{config-mCdtaoPe.js → config-DK9FWNvn.js} +1 -1
  285. package/dist/esm/{data-DFCY8gnk.js → data-B5lRlGxI.js} +1 -1
  286. package/dist/esm/{framework-delegate-D2mUP0WI.js → framework-delegate-Dx6tn-_w.js} +2 -2
  287. package/dist/esm/{haptic-bBvyATla.js → haptic-Dti4RWuD.js} +1 -1
  288. package/dist/esm/{helpers-Bsml3FcE.js → helpers-6l6yFg3S.js} +19 -5
  289. package/dist/esm/{index-Bnw-zNoN.js → index-B6MWWbnL.js} +3 -3
  290. package/dist/esm/{index-BpFi2B8W.js → index-CXCvNx5X.js} +2 -2
  291. package/dist/esm/{index-BQI9hSZP.js → index-DO9elf_6.js} +4 -4
  292. package/dist/esm/{index-C8IsBmNU.js → index-gD7P82jx.js} +41 -4
  293. package/dist/esm/{index-M3l-IyxQ.js → index-urxfV0GK.js} +4 -4
  294. package/dist/esm/index.js +12 -12
  295. package/dist/esm/{input-shims-ACbgRt10.js → input-shims-CK_oprMl.js} +6 -6
  296. package/dist/esm/{input.utils-loPnHH5H.js → input.utils-C3tJs_iL.js} +3 -3
  297. package/dist/esm/ion-accordion_2.entry.js +4 -4
  298. package/dist/esm/ion-action-sheet.entry.js +10 -10
  299. package/dist/esm/ion-alert.entry.js +11 -11
  300. package/dist/esm/ion-app_8.entry.js +23 -23
  301. package/dist/esm/ion-avatar_3.entry.js +5 -5
  302. package/dist/esm/ion-back-button.entry.js +4 -4
  303. package/dist/esm/ion-backdrop.entry.js +2 -2
  304. package/dist/esm/ion-breadcrumb_2.entry.js +4 -4
  305. package/dist/esm/ion-button_2.entry.js +23 -18
  306. package/dist/esm/ion-card_5.entry.js +15 -17
  307. package/dist/esm/ion-checkbox.entry.js +8 -8
  308. package/dist/esm/ion-chip.entry.js +5 -5
  309. package/dist/esm/ion-col_3.entry.js +8 -8
  310. package/dist/esm/ion-datetime-button.entry.js +7 -7
  311. package/dist/esm/ion-datetime_3.entry.js +21 -21
  312. package/dist/esm/ion-divider.entry.js +4 -4
  313. package/dist/esm/ion-fab_3.entry.js +10 -10
  314. package/dist/esm/ion-img.entry.js +5 -5
  315. package/dist/esm/ion-infinite-scroll_2.entry.js +8 -8
  316. package/dist/esm/ion-input-otp.entry.js +69 -10
  317. package/dist/esm/ion-input-password-toggle.entry.js +6 -6
  318. package/dist/esm/ion-input.entry.js +11 -11
  319. package/dist/esm/ion-item-option_3.entry.js +9 -9
  320. package/dist/esm/ion-item_8.entry.js +16 -16
  321. package/dist/esm/ion-loading.entry.js +10 -10
  322. package/dist/esm/ion-menu_3.entry.js +14 -14
  323. package/dist/esm/ion-modal.entry.js +16 -16
  324. package/dist/esm/ion-nav_2.entry.js +8 -8
  325. package/dist/esm/ion-picker-column-option.entry.js +6 -6
  326. package/dist/esm/ion-picker-column.entry.js +9 -9
  327. package/dist/esm/ion-picker.entry.js +4 -4
  328. package/dist/esm/ion-popover.entry.js +10 -10
  329. package/dist/esm/ion-progress-bar.entry.js +5 -5
  330. package/dist/esm/ion-radio_2.entry.js +10 -10
  331. package/dist/esm/ion-range.entry.js +8 -8
  332. package/dist/esm/ion-refresher_2.entry.js +11 -11
  333. package/dist/esm/ion-reorder_2.entry.js +9 -9
  334. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  335. package/dist/esm/ion-route_4.entry.js +6 -6
  336. package/dist/esm/ion-searchbar.entry.js +8 -8
  337. package/dist/esm/ion-segment-content.entry.js +2 -2
  338. package/dist/esm/ion-segment-view.entry.js +3 -3
  339. package/dist/esm/ion-segment_2.entry.js +8 -8
  340. package/dist/esm/ion-select-modal.entry.js +7 -7
  341. package/dist/esm/ion-select_3.entry.js +14 -14
  342. package/dist/esm/ion-spinner.entry.js +4 -4
  343. package/dist/esm/ion-split-pane.entry.js +4 -4
  344. package/dist/esm/ion-tab-bar_2.entry.js +11 -11
  345. package/dist/esm/ion-tab_2.entry.js +6 -6
  346. package/dist/esm/ion-text.entry.js +5 -5
  347. package/dist/esm/ion-textarea.entry.js +88 -18
  348. package/dist/esm/ion-toast.entry.js +10 -10
  349. package/dist/esm/ion-toggle.entry.js +10 -10
  350. package/dist/esm/{ionic-global-2lDD9k7y.js → ionic-global-KnoA5TnE.js} +5 -5
  351. package/dist/esm/ionic.js +5 -5
  352. package/dist/esm/{ios.transition-uJxJFbq8.js → ios.transition-D-ZEPllL.js} +5 -5
  353. package/dist/esm/{keyboard-CU1vRv-b.js → keyboard-C7jpSDLg.js} +1 -1
  354. package/dist/esm/{keyboard-B-HHSSYU.js → keyboard-CrGPuspU.js} +4 -4
  355. package/dist/esm/{keyboard-controller-Dplyc4OV.js → keyboard-controller-CFeM2qrY.js} +3 -3
  356. package/dist/esm/loader.js +5 -5
  357. package/dist/esm/{md.transition-Dp4NTeSh.js → md.transition-DiPaaGY2.js} +5 -5
  358. package/dist/esm/{notch-controller-BvFDmO69.js → notch-controller-CEiB8plC.js} +2 -2
  359. package/dist/esm/{overlays-B037a9Tz.js → overlays-BMHHx7Tm.js} +97 -6
  360. package/dist/esm/{status-tap-DXVlluKS.js → status-tap-BAJGCN-1.js} +3 -3
  361. package/dist/esm/{swipe-back-DNhAt9fY.js → swipe-back-bZ7qcCmT.js} +2 -2
  362. package/dist/esm/{theme-DiVJyqlX.js → theme-DaJxRxSQ.js} +25 -1
  363. package/dist/esm/validity-BjW8SOqw.js +48 -0
  364. package/dist/html.html-data.json +28 -1
  365. package/dist/ionic/index.esm.js +1 -1
  366. package/dist/ionic/ionic.esm.js +1 -1
  367. package/dist/ionic/{p-5daa0980.entry.js → p-01dec443.entry.js} +1 -1
  368. package/dist/ionic/{p-04b1d37a.entry.js → p-01e2ad58.entry.js} +1 -1
  369. package/dist/ionic/{p-112e1ca9.entry.js → p-04c2c873.entry.js} +1 -1
  370. package/dist/ionic/{p-28a9d991.entry.js → p-09aab7d0.entry.js} +1 -1
  371. package/dist/ionic/{p-be82dc77.entry.js → p-0b51f337.entry.js} +1 -1
  372. package/dist/ionic/{p-616dd053.entry.js → p-131e3b2d.entry.js} +1 -1
  373. package/dist/ionic/{p-0f124806.entry.js → p-1454c314.entry.js} +1 -1
  374. package/dist/ionic/p-14c73725.entry.js +4 -0
  375. package/dist/ionic/p-14d44c66.entry.js +4 -0
  376. package/dist/ionic/{p-a35678f4.entry.js → p-1af56d46.entry.js} +1 -1
  377. package/dist/ionic/{p-0744265c.entry.js → p-1c00e5cc.entry.js} +1 -1
  378. package/dist/ionic/{p-0ac7c560.entry.js → p-25db2a16.entry.js} +1 -1
  379. package/dist/ionic/{p-60549f06.entry.js → p-2ef8db38.entry.js} +1 -1
  380. package/dist/ionic/{p-0607ce8e.entry.js → p-31706aa0.entry.js} +1 -1
  381. package/dist/ionic/{p-19b2060d.entry.js → p-39f88b4f.entry.js} +1 -1
  382. package/dist/ionic/p-3b163efb.entry.js +4 -0
  383. package/dist/ionic/{p-ecba552f.entry.js → p-3d69c783.entry.js} +1 -1
  384. package/dist/ionic/{p-e1d84521.entry.js → p-3d7263e2.entry.js} +1 -1
  385. package/dist/ionic/p-3f93e610.entry.js +4 -0
  386. package/dist/ionic/{p-Cq83JWMg.js → p-44OfGWEp.js} +1 -1
  387. package/dist/ionic/{p-5543b7b8.entry.js → p-45ffc1cb.entry.js} +1 -1
  388. package/dist/ionic/{p-a89211bd.entry.js → p-4d7a2141.entry.js} +1 -1
  389. package/dist/ionic/{p-f667945d.entry.js → p-51ddc430.entry.js} +1 -1
  390. package/dist/ionic/{p-d9c9592a.entry.js → p-69bef533.entry.js} +1 -1
  391. package/dist/ionic/{p-dacd8666.entry.js → p-717fa143.entry.js} +1 -1
  392. package/dist/ionic/{p-742fed9f.entry.js → p-7482c8b3.entry.js} +1 -1
  393. package/dist/ionic/{p-bd295ca7.entry.js → p-74cab2da.entry.js} +1 -1
  394. package/dist/ionic/p-788de6f7.entry.js +4 -0
  395. package/dist/ionic/{p-01577340.entry.js → p-7ab2b10c.entry.js} +1 -1
  396. package/dist/ionic/{p-ecf8e713.entry.js → p-7dc9aa9a.entry.js} +1 -1
  397. package/dist/ionic/{p-27dbb44c.entry.js → p-7f6069f4.entry.js} +1 -1
  398. package/dist/ionic/{p-472b2ca3.entry.js → p-8093e290.entry.js} +1 -1
  399. package/dist/ionic/{p-59a79bd9.entry.js → p-82ca1cae.entry.js} +1 -1
  400. package/dist/ionic/{p-5f9d9c14.entry.js → p-83c3c072.entry.js} +1 -1
  401. package/dist/ionic/p-8ddbeb52.entry.js +4 -0
  402. package/dist/ionic/{p-af1f624e.entry.js → p-9e985573.entry.js} +1 -1
  403. package/dist/ionic/p-9f29b55e.entry.js +4 -0
  404. package/dist/ionic/{p-qZR4N8Lu.js → p-B0QqVGqF.js} +1 -1
  405. package/dist/ionic/p-BAmXMA83.js +4 -0
  406. package/dist/ionic/p-BIyO17h7.js +4 -0
  407. package/dist/ionic/p-BjW8SOqw.js +4 -0
  408. package/dist/ionic/{p-UafGZQ8e.js → p-Br3trE7L.js} +1 -1
  409. package/dist/ionic/{p-DeEDqH91.js → p-BunTRNUk.js} +1 -1
  410. package/dist/ionic/p-CCy93Kdo.js +4 -0
  411. package/dist/ionic/{p-HpOiAvpC.js → p-CDRncjej.js} +1 -1
  412. package/dist/ionic/{p-CtUK3cKk.js → p-CH4Ab9QE.js} +1 -1
  413. package/dist/ionic/{p-B3uz75uZ.js → p-CYW7idR0.js} +1 -1
  414. package/dist/ionic/{p-B-D7Cfki.js → p-Ccfet-fb.js} +1 -1
  415. package/dist/ionic/p-CdcKo7Br.js +4 -0
  416. package/dist/ionic/{p-COLHV2ym.js → p-CsyYiC5f.js} +1 -1
  417. package/dist/ionic/{p-DyaKZbAH.js → p-CtS5hTli.js} +1 -1
  418. package/dist/ionic/{p-DbQ5QkTP.js → p-Cv5jk_TK.js} +1 -1
  419. package/dist/ionic/{p-q1ZSn0l7.js → p-CzuA64hv.js} +1 -1
  420. package/dist/ionic/{p-D-BelbiX.js → p-DGDvjMxF.js} +1 -1
  421. package/dist/ionic/p-DKogfaNJ.js +4 -0
  422. package/dist/ionic/p-DOsU-ODO.js +4 -0
  423. package/dist/ionic/p-DPrmF8Ki.js +4 -0
  424. package/dist/ionic/p-DYzvRXm5.js +4 -0
  425. package/dist/ionic/p-DaJxRxSQ.js +4 -0
  426. package/dist/ionic/{p-CvRDI-Iz.js → p-TL0QOgYo.js} +1 -1
  427. package/dist/ionic/p-We-0jbXn.js +4 -0
  428. package/dist/ionic/{p-c082f853.entry.js → p-a0c5e546.entry.js} +1 -1
  429. package/dist/ionic/{p-0eecce18.entry.js → p-a339cde1.entry.js} +1 -1
  430. package/dist/ionic/p-a59f21b3.entry.js +4 -0
  431. package/dist/ionic/{p-d3f64c58.entry.js → p-a5f4fe92.entry.js} +1 -1
  432. package/dist/ionic/{p-826267d6.entry.js → p-aaff29dd.entry.js} +1 -1
  433. package/dist/ionic/{p-0c41c8a8.entry.js → p-b4da10d5.entry.js} +1 -1
  434. package/dist/ionic/{p-8f541b05.entry.js → p-bb04a3d7.entry.js} +1 -1
  435. package/dist/ionic/{p-a6a37a34.entry.js → p-bc19095e.entry.js} +1 -1
  436. package/dist/ionic/{p-8ee09d4e.entry.js → p-bd0057bd.entry.js} +1 -1
  437. package/dist/ionic/{p-da49c0fe.entry.js → p-bf763ab7.entry.js} +1 -1
  438. package/dist/ionic/{p-cdbfbff6.entry.js → p-c66416de.entry.js} +1 -1
  439. package/dist/ionic/{p-b475ec18.entry.js → p-d103fef9.entry.js} +1 -1
  440. package/dist/ionic/{p-68c064ce.entry.js → p-d9c0d206.entry.js} +1 -1
  441. package/dist/ionic/{p-412d5d9e.entry.js → p-e278c474.entry.js} +1 -1
  442. package/dist/ionic/{p-6bb99f41.entry.js → p-e8344f8f.entry.js} +1 -1
  443. package/dist/ionic/{p-04e0ff62.entry.js → p-ec510664.entry.js} +1 -1
  444. package/dist/ionic/p-eyZt9Ndv.js +4 -0
  445. package/dist/ionic/{p-8681a2a7.entry.js → p-f0894af8.entry.js} +1 -1
  446. package/dist/ionic/p-gD7P82jx.js +5 -0
  447. package/dist/ionic/p-hPTD29t1.js +4 -0
  448. package/dist/types/components/button/button.d.ts +4 -2
  449. package/dist/types/components/input-otp/input-otp.d.ts +37 -0
  450. package/dist/types/components/textarea/textarea.d.ts +36 -0
  451. package/dist/types/components.d.ts +18 -2
  452. package/dist/types/utils/focus-trap.d.ts +1 -1
  453. package/dist/types/utils/forms/validity.d.ts +7 -0
  454. package/dist/types/utils/theme.d.ts +9 -0
  455. package/hydrate/index.js +527 -210
  456. package/hydrate/index.mjs +527 -210
  457. package/package.json +1 -1
  458. package/dist/cjs/validity-BpS37YFM.js +0 -19
  459. package/dist/esm/validity-DJztqcrH.js +0 -17
  460. package/dist/ionic/p-2dc676b2.entry.js +0 -4
  461. package/dist/ionic/p-381eb2a4.entry.js +0 -4
  462. package/dist/ionic/p-57a2d30b.entry.js +0 -4
  463. package/dist/ionic/p-63a2b52a.entry.js +0 -4
  464. package/dist/ionic/p-7fe3ea65.entry.js +0 -4
  465. package/dist/ionic/p-83580e97.entry.js +0 -4
  466. package/dist/ionic/p-BiTKUjko.js +0 -4
  467. package/dist/ionic/p-ByhhQryg.js +0 -4
  468. package/dist/ionic/p-C8IsBmNU.js +0 -5
  469. package/dist/ionic/p-C8r4dtYR.js +0 -4
  470. package/dist/ionic/p-CK1xn1Nt.js +0 -4
  471. package/dist/ionic/p-C_97se21.js +0 -4
  472. package/dist/ionic/p-DHeUgOSJ.js +0 -4
  473. package/dist/ionic/p-DJztqcrH.js +0 -4
  474. package/dist/ionic/p-DM-v_NNE.js +0 -4
  475. package/dist/ionic/p-DiVJyqlX.js +0 -4
  476. package/dist/ionic/p-DoGrslUl.js +0 -4
  477. package/dist/ionic/p-Dq8ap6AD.js +0 -4
  478. package/dist/ionic/p-add1a5d8.entry.js +0 -4
  479. package/dist/ionic/p-da0a2ca6.entry.js +0 -4
  480. package/dist/ionic/p-nP9c7bo5.js +0 -4
  481. package/dist/ionic/p-of4jy1ch.js +0 -4
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-01-29T15:12:16",
2
+ "timestamp": "2026-02-05T19:05:55",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.38.0",
@@ -5621,7 +5621,7 @@
5621
5621
  "mutable": true,
5622
5622
  "attr": "fill",
5623
5623
  "reflectToAttr": true,
5624
- "docs": "Set to `\"clear\"` for a transparent button that resembles a flat button, to `\"outline\"`\nfor a transparent button with a border, or to `\"solid\"` for a button with a filled background.\nThe default fill is `\"solid\"` except inside of a toolbar, where the default is `\"clear\"`.",
5624
+ "docs": "Set to `\"clear\"` for a transparent button that resembles a flat button, to `\"outline\"`\nfor a transparent button with a border, or to `\"solid\"` for a button with a filled background.\nThe default fill is `\"solid\"` except when inside of a buttons or datetime component, where\nthe default fill is `\"clear\"`.",
5625
5625
  "docsTags": [],
5626
5626
  "values": [
5627
5627
  {
@@ -6619,14 +6619,10 @@
6619
6619
  "slots": [],
6620
6620
  "parts": [],
6621
6621
  "dependents": [
6622
- "ion-datetime",
6623
6622
  "ion-select-modal"
6624
6623
  ],
6625
6624
  "dependencies": [],
6626
6625
  "dependencyGraph": {
6627
- "ion-datetime": [
6628
- "ion-buttons"
6629
- ],
6630
6626
  "ion-select-modal": [
6631
6627
  "ion-buttons"
6632
6628
  ]
@@ -7162,7 +7158,7 @@
7162
7158
  },
7163
7159
  {
7164
7160
  "filePath": "src/components/card-content/card-content.tsx",
7165
- "encapsulation": "none",
7161
+ "encapsulation": "shadow",
7166
7162
  "tag": "ion-card-content",
7167
7163
  "docs": "",
7168
7164
  "docsTags": [
@@ -12134,7 +12130,6 @@
12134
12130
  ],
12135
12131
  "dependents": [],
12136
12132
  "dependencies": [
12137
- "ion-buttons",
12138
12133
  "ion-button",
12139
12134
  "ion-picker",
12140
12135
  "ion-picker-column",
@@ -12145,7 +12140,6 @@
12145
12140
  ],
12146
12141
  "dependencyGraph": {
12147
12142
  "ion-datetime": [
12148
- "ion-buttons",
12149
12143
  "ion-button",
12150
12144
  "ion-picker",
12151
12145
  "ion-picker-column",
@@ -16933,10 +16927,39 @@
16933
16927
  },
16934
16928
  {
16935
16929
  "filePath": "src/components/input-otp/input-otp.tsx",
16936
- "encapsulation": "scoped",
16930
+ "encapsulation": "shadow",
16937
16931
  "tag": "ion-input-otp",
16938
16932
  "docs": "",
16939
- "docsTags": [],
16933
+ "docsTags": [
16934
+ {
16935
+ "name": "virtualProp",
16936
+ "text": "{\"ios\" | \"md\"} mode - The mode determines the platform behaviors of the component."
16937
+ },
16938
+ {
16939
+ "name": "virtualProp",
16940
+ "text": "{\"ios\" | \"md\" | \"ionic\"} theme - The theme determines the visual appearance of the component."
16941
+ },
16942
+ {
16943
+ "name": "part",
16944
+ "text": "group - The container element that wraps all input boxes."
16945
+ },
16946
+ {
16947
+ "name": "part",
16948
+ "text": "container - The wrapper element for each individual input box."
16949
+ },
16950
+ {
16951
+ "name": "part",
16952
+ "text": "native - The native input element."
16953
+ },
16954
+ {
16955
+ "name": "part",
16956
+ "text": "separator - The separator element displayed between input boxes."
16957
+ },
16958
+ {
16959
+ "name": "part",
16960
+ "text": "description - The container element for the description text."
16961
+ }
16962
+ ],
16940
16963
  "usage": {},
16941
16964
  "props": [
16942
16965
  {
@@ -17186,6 +17209,27 @@
17186
17209
  "getter": false,
17187
17210
  "setter": false
17188
17211
  },
17212
+ {
17213
+ "name": "mode",
17214
+ "type": "\"ios\" | \"md\"",
17215
+ "mutable": false,
17216
+ "attr": "mode",
17217
+ "reflectToAttr": false,
17218
+ "docs": "The mode determines the platform behaviors of the component.",
17219
+ "docsTags": [],
17220
+ "values": [
17221
+ {
17222
+ "value": "ios",
17223
+ "type": "string"
17224
+ },
17225
+ {
17226
+ "value": "md",
17227
+ "type": "string"
17228
+ }
17229
+ ],
17230
+ "optional": true,
17231
+ "required": false
17232
+ },
17189
17233
  {
17190
17234
  "name": "pattern",
17191
17235
  "type": "string | undefined",
@@ -17346,6 +17390,31 @@
17346
17390
  "getter": false,
17347
17391
  "setter": false
17348
17392
  },
17393
+ {
17394
+ "name": "theme",
17395
+ "type": "\"ios\" | \"md\" | \"ionic\"",
17396
+ "mutable": false,
17397
+ "attr": "theme",
17398
+ "reflectToAttr": false,
17399
+ "docs": "The theme determines the visual appearance of the component.",
17400
+ "docsTags": [],
17401
+ "values": [
17402
+ {
17403
+ "value": "ios",
17404
+ "type": "string"
17405
+ },
17406
+ {
17407
+ "value": "md",
17408
+ "type": "string"
17409
+ },
17410
+ {
17411
+ "value": "ionic",
17412
+ "type": "string"
17413
+ }
17414
+ ],
17415
+ "optional": true,
17416
+ "required": false
17417
+ },
17349
17418
  {
17350
17419
  "name": "type",
17351
17420
  "type": "\"number\" | \"text\"",
@@ -17996,7 +18065,28 @@
17996
18065
  }
17997
18066
  ],
17998
18067
  "slots": [],
17999
- "parts": [],
18068
+ "parts": [
18069
+ {
18070
+ "name": "container",
18071
+ "docs": "The wrapper element for each individual input box."
18072
+ },
18073
+ {
18074
+ "name": "description",
18075
+ "docs": "The container element for the description text."
18076
+ },
18077
+ {
18078
+ "name": "group",
18079
+ "docs": "The container element that wraps all input boxes."
18080
+ },
18081
+ {
18082
+ "name": "native",
18083
+ "docs": "The native input element."
18084
+ },
18085
+ {
18086
+ "name": "separator",
18087
+ "docs": "The separator element displayed between input boxes."
18088
+ }
18089
+ ],
18000
18090
  "dependents": [],
18001
18091
  "dependencies": [],
18002
18092
  "dependencyGraph": {}
@@ -40609,7 +40699,7 @@
40609
40699
  },
40610
40700
  {
40611
40701
  "filePath": "src/components/textarea/textarea.tsx",
40612
- "encapsulation": "scoped",
40702
+ "encapsulation": "shadow",
40613
40703
  "tag": "ion-textarea",
40614
40704
  "docs": "",
40615
40705
  "docsTags": [
@@ -40632,6 +40722,42 @@
40632
40722
  {
40633
40723
  "name": "slot",
40634
40724
  "text": "end - Content to display at the trailing edge of the textarea. (EXPERIMENTAL)"
40725
+ },
40726
+ {
40727
+ "name": "part",
40728
+ "text": "wrapper - The clickable label element that wraps the entire form field (label text, slots, and native textarea)."
40729
+ },
40730
+ {
40731
+ "name": "part",
40732
+ "text": "container - The inner wrapper element that directly contains the native textarea element."
40733
+ },
40734
+ {
40735
+ "name": "part",
40736
+ "text": "label - The label text describing the textarea."
40737
+ },
40738
+ {
40739
+ "name": "part",
40740
+ "text": "native - The native textarea element."
40741
+ },
40742
+ {
40743
+ "name": "part",
40744
+ "text": "supporting-text - Supporting text displayed beneath the textarea label."
40745
+ },
40746
+ {
40747
+ "name": "part",
40748
+ "text": "helper-text - Supporting text displayed beneath the textarea label when the textarea is valid."
40749
+ },
40750
+ {
40751
+ "name": "part",
40752
+ "text": "error-text - Supporting text displayed beneath the textarea label when the textarea is invalid and touched."
40753
+ },
40754
+ {
40755
+ "name": "part",
40756
+ "text": "counter - The character counter displayed when the counter property is set."
40757
+ },
40758
+ {
40759
+ "name": "part",
40760
+ "text": "bottom - The container element for helper text, error text, and counter."
40635
40761
  }
40636
40762
  ],
40637
40763
  "usage": {},
@@ -41383,7 +41509,7 @@
41383
41509
  },
41384
41510
  "mutable": false,
41385
41511
  "attr": "required",
41386
- "reflectToAttr": false,
41512
+ "reflectToAttr": true,
41387
41513
  "docs": "If `true`, the user must fill in a value before submitting a form.",
41388
41514
  "docsTags": [
41389
41515
  {
@@ -42106,7 +42232,44 @@
42106
42232
  "docs": "Content to display at the leading edge of the textarea. (EXPERIMENTAL)"
42107
42233
  }
42108
42234
  ],
42109
- "parts": [],
42235
+ "parts": [
42236
+ {
42237
+ "name": "bottom",
42238
+ "docs": "The container element for helper text, error text, and counter."
42239
+ },
42240
+ {
42241
+ "name": "container",
42242
+ "docs": "The inner wrapper element that directly contains the native textarea element."
42243
+ },
42244
+ {
42245
+ "name": "counter",
42246
+ "docs": "The character counter displayed when the counter property is set."
42247
+ },
42248
+ {
42249
+ "name": "error-text",
42250
+ "docs": "Supporting text displayed beneath the textarea label when the textarea is invalid and touched."
42251
+ },
42252
+ {
42253
+ "name": "helper-text",
42254
+ "docs": "Supporting text displayed beneath the textarea label when the textarea is valid."
42255
+ },
42256
+ {
42257
+ "name": "label",
42258
+ "docs": "The label text describing the textarea."
42259
+ },
42260
+ {
42261
+ "name": "native",
42262
+ "docs": "The native textarea element."
42263
+ },
42264
+ {
42265
+ "name": "supporting-text",
42266
+ "docs": "Supporting text displayed beneath the textarea label."
42267
+ },
42268
+ {
42269
+ "name": "wrapper",
42270
+ "docs": "The clickable label element that wraps the entire form field (label text, slots, and native textarea)."
42271
+ }
42272
+ ],
42110
42273
  "dependents": [],
42111
42274
  "dependencies": [],
42112
42275
  "dependencyGraph": {}
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { j as printIonError } from './index-C8IsBmNU.js';
5
- import { w as win } from './ionic-global-2lDD9k7y.js';
4
+ import { j as printIonError } from './index-gD7P82jx.js';
5
+ import { w as win } from './ionic-global-KnoA5TnE.js';
6
6
 
7
7
  let animationPrefix;
8
8
  const getAnimationPrefix = (el) => {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { i as initialize } from './ionic-global-2lDD9k7y.js';
4
+ import { i as initialize } from './ionic-global-KnoA5TnE.js';
5
5
 
6
6
  const globalScripts = initialize;
7
7
 
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask } from './index-C8IsBmNU.js';
5
- import { h as hapticSelectionEnd, a as hapticSelectionChanged, b as hapticSelectionStart } from './haptic-bBvyATla.js';
4
+ import { w as writeTask } from './index-gD7P82jx.js';
5
+ import { h as hapticSelectionEnd, a as hapticSelectionChanged, b as hapticSelectionStart } from './haptic-Dti4RWuD.js';
6
6
  import { createGesture } from './index-CfgBF1SE.js';
7
7
 
8
8
  const createButtonActiveGesture = (el, isButton) => {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as win } from './ionic-global-2lDD9k7y.js';
4
+ import { w as win } from './ionic-global-KnoA5TnE.js';
5
5
 
6
6
  const getCapacitor = () => {
7
7
  if (win !== undefined) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { j as printIonError } from './index-C8IsBmNU.js';
4
+ import { j as printIonError } from './index-gD7P82jx.js';
5
5
 
6
6
  /**
7
7
  * Does a simple sanitization of all elements
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { f as printIonWarning } from './index-C8IsBmNU.js';
4
+ import { f as printIonWarning } from './index-gD7P82jx.js';
5
5
 
6
6
  /**
7
7
  * Returns true if the selected day is equal to the reference day
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { e as config } from './index-C8IsBmNU.js';
5
- import { c as componentOnReady } from './helpers-Bsml3FcE.js';
4
+ import { e as config } from './index-gD7P82jx.js';
5
+ import { c as componentOnReady } from './helpers-6l6yFg3S.js';
6
6
 
7
7
  // TODO(FW-2832): types
8
8
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { g as getCapacitor } from './capacitor-pzVAlnC0.js';
4
+ import { g as getCapacitor } from './capacitor-Bc47Xxvc.js';
5
5
 
6
6
  var ImpactStyle;
7
7
  (function (ImpactStyle) {
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { focusElements } from './focus-visible-vXpMhGrs.js';
5
- import { j as printIonError, e as config } from './index-C8IsBmNU.js';
5
+ import { j as printIonError, e as config } from './index-gD7P82jx.js';
6
6
 
7
7
  const transitionEndAsync = (el, expectedDuration = 0) => {
8
8
  return new Promise((resolve) => {
@@ -222,10 +222,24 @@ const focusVisibleElement = (el) => {
222
222
  * however, there are times when we need to manually control
223
223
  * this behavior so we call the `setFocus` method on ion-app
224
224
  * which will let us explicitly set the elements to focus.
225
+ *
226
+ * Note: The element passed to this function might be an inner
227
+ * focusable element (e.g., a native <button> inside ion-button's
228
+ * shadow root). If so, we need to find the host element that has
229
+ * the ion-focusable class to pass to setFocus.
225
230
  */
226
- if (el.classList.contains('ion-focusable')) {
231
+ let elToFocus = el;
232
+ // If the element doesn't have ion-focusable, check if it's inside
233
+ // a shadow root and use the host element instead
234
+ if (!el.classList.contains('ion-focusable')) {
235
+ const rootNode = el.getRootNode();
236
+ if (rootNode instanceof ShadowRoot && rootNode.host instanceof HTMLElement) {
237
+ elToFocus = rootNode.host;
238
+ }
239
+ }
240
+ if (elToFocus.classList.contains('ion-focusable')) {
227
241
  const appRootSelector = config.get('appRootSelector', 'ion-app');
228
- const app = el.closest(appRootSelector);
242
+ const app = elToFocus.closest(appRootSelector);
229
243
  if (app) {
230
244
  if (appRootSelector === 'ion-app') {
231
245
  /**
@@ -234,7 +248,7 @@ const focusVisibleElement = (el) => {
234
248
  * focus-visible utility is attached to the app root
235
249
  * and will handle setting focus on the correct element.
236
250
  */
237
- app.setFocus([el]);
251
+ app.setFocus([elToFocus]);
238
252
  }
239
253
  else {
240
254
  /**
@@ -251,7 +265,7 @@ const focusVisibleElement = (el) => {
251
265
  * The focus-visible utility is used to set focus on an
252
266
  * element that uses `ion-focusable`.
253
267
  */
254
- focusElements([el]);
268
+ focusElements([elToFocus]);
255
269
  });
256
270
  }
257
271
  }
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { d as doc } from './ionic-global-2lDD9k7y.js';
5
- import { q as pointerCoord } from './helpers-Bsml3FcE.js';
6
- import './index-C8IsBmNU.js';
4
+ import { d as doc } from './ionic-global-KnoA5TnE.js';
5
+ import { q as pointerCoord } from './helpers-6l6yFg3S.js';
6
+ import './index-gD7P82jx.js';
7
7
  import './focus-visible-vXpMhGrs.js';
8
8
 
9
9
  const startTapClick = (config) => {
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-Bsml3FcE.js';
5
- import { t as printRequiredElementError } from './index-C8IsBmNU.js';
4
+ import { c as componentOnReady } from './helpers-6l6yFg3S.js';
5
+ import { t as printRequiredElementError } from './index-gD7P82jx.js';
6
6
 
7
7
  const ION_CONTENT_TAG_NAME = 'ION-CONTENT';
8
8
  const ION_CONTENT_ELEMENT_SELECTOR = 'ion-content';
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { b as getIonMode, d as doc, M as MENU_BACK_BUTTON_PRIORITY } from './ionic-global-2lDD9k7y.js';
5
- import { f as printIonWarning } from './index-C8IsBmNU.js';
6
- import { c as componentOnReady } from './helpers-Bsml3FcE.js';
7
- import { c as createAnimation } from './animation-BNuoDl-O.js';
4
+ import { b as getIonMode, d as doc, M as MENU_BACK_BUTTON_PRIORITY } from './ionic-global-KnoA5TnE.js';
5
+ import { f as printIonWarning } from './index-gD7P82jx.js';
6
+ import { c as componentOnReady } from './helpers-6l6yFg3S.js';
7
+ import { c as createAnimation } from './animation-C5cgFymd.js';
8
8
 
9
9
  /**
10
10
  * baseAnimation
@@ -246,6 +246,12 @@ var HYDRATE_CHILD_ID = "c-id";
246
246
  var HYDRATED_CSS = "{visibility:hidden}.hydrated{visibility:inherit}";
247
247
  var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
248
248
  var XLINK_NS = "http://www.w3.org/1999/xlink";
249
+ var FORM_ASSOCIATED_CUSTOM_ELEMENT_CALLBACKS = [
250
+ "formAssociatedCallback",
251
+ "formResetCallback",
252
+ "formDisabledCallback",
253
+ "formStateRestoreCallback"
254
+ ];
249
255
  var win = typeof window !== "undefined" ? window : {};
250
256
  var H = win.HTMLElement || class {
251
257
  };
@@ -1729,7 +1735,9 @@ var parsePropertyValue = (propValue, propType, isFormAssociated) => {
1729
1735
  }
1730
1736
  if (propValue != null && !isComplexType(propValue)) {
1731
1737
  if (propType & 4 /* Boolean */) {
1732
- {
1738
+ if (isFormAssociated && typeof propValue === "string") {
1739
+ return propValue === "" || !!propValue;
1740
+ } else {
1733
1741
  return propValue === "false" ? false : propValue === "" || !!propValue;
1734
1742
  }
1735
1743
  }
@@ -2681,7 +2689,9 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
2681
2689
  const instance = hostRef.$lazyInstance$ ;
2682
2690
  newVal = parsePropertyValue(
2683
2691
  newVal,
2684
- cmpMeta.$members$[propName][0]);
2692
+ cmpMeta.$members$[propName][0],
2693
+ !!(cmpMeta.$flags$ & 64 /* formAssociated */)
2694
+ );
2685
2695
  const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);
2686
2696
  const didValueChange = newVal !== oldVal && !areBothNaN;
2687
2697
  if ((!(flags & 8 /* isConstructingInstance */) || oldVal === void 0) && didValueChange) {
@@ -2715,6 +2725,26 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
2715
2725
  var proxyComponent = (Cstr, cmpMeta, flags) => {
2716
2726
  var _a, _b;
2717
2727
  const prototype = Cstr.prototype;
2728
+ if (cmpMeta.$flags$ & 64 /* formAssociated */ && flags & 1 /* isElementConstructor */) {
2729
+ FORM_ASSOCIATED_CUSTOM_ELEMENT_CALLBACKS.forEach((cbName) => {
2730
+ Object.defineProperty(prototype, cbName, {
2731
+ value(...args) {
2732
+ var _a2;
2733
+ const hostRef = getHostRef(this);
2734
+ const instance = hostRef == null ? void 0 : hostRef.$lazyInstance$ ;
2735
+ if (!instance) {
2736
+ (_a2 = hostRef == null ? void 0 : hostRef.$onReadyPromise$) == null ? void 0 : _a2.then((asyncInstance) => {
2737
+ const cb = asyncInstance[cbName];
2738
+ typeof cb === "function" && cb.call(asyncInstance, ...args);
2739
+ });
2740
+ } else {
2741
+ const cb = instance[cbName] ;
2742
+ typeof cb === "function" && cb.call(instance, ...args);
2743
+ }
2744
+ }
2745
+ });
2746
+ });
2747
+ }
2718
2748
  if (cmpMeta.$members$ || BUILD.propChangeCallback) {
2719
2749
  {
2720
2750
  if (Cstr.watchers && !cmpMeta.$watchers$) {
@@ -2764,7 +2794,9 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
2764
2794
  origSetter.apply(this, [
2765
2795
  parsePropertyValue(
2766
2796
  newValue,
2767
- memberFlags)
2797
+ memberFlags,
2798
+ !!(cmpMeta.$flags$ & 64 /* formAssociated */)
2799
+ )
2768
2800
  ]);
2769
2801
  newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];
2770
2802
  setValue(this, memberName, newValue, cmpMeta);
@@ -2789,7 +2821,9 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
2789
2821
  }
2790
2822
  ref.$lazyInstance$[memberName] = parsePropertyValue(
2791
2823
  newValue,
2792
- memberFlags);
2824
+ memberFlags,
2825
+ !!(cmpMeta.$flags$ & 64 /* formAssociated */)
2826
+ );
2793
2827
  setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);
2794
2828
  };
2795
2829
  if (ref.$lazyInstance$) {
@@ -3170,6 +3204,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
3170
3204
  patchPseudoShadowDom(HostElement.prototype);
3171
3205
  }
3172
3206
  }
3207
+ if (cmpMeta.$flags$ & 64 /* formAssociated */) {
3208
+ HostElement.formAssociated = true;
3209
+ }
3173
3210
  cmpMeta.$lazyBundleId$ = lazyBundle[0];
3174
3211
  if (!exclude.includes(tagName) && !customElements2.get(tagName)) {
3175
3212
  cmpTags.push(tagName);
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { e as config, f as printIonWarning, w as writeTask, B as Build } from './index-C8IsBmNU.js';
5
- import { r as raf } from './helpers-Bsml3FcE.js';
4
+ import { e as config, f as printIonWarning, w as writeTask, B as Build } from './index-gD7P82jx.js';
5
+ import { r as raf } from './helpers-6l6yFg3S.js';
6
6
 
7
7
  const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
8
8
  const LIFECYCLE_DID_ENTER = 'ionViewDidEnter';
@@ -118,8 +118,8 @@ const createFocusController = () => {
118
118
  };
119
119
  const LAST_FOCUS = 'ion-last-focus';
120
120
 
121
- const iosTransitionAnimation = () => import('./ios.transition-uJxJFbq8.js');
122
- const mdTransitionAnimation = () => import('./md.transition-Dp4NTeSh.js');
121
+ const iosTransitionAnimation = () => import('./ios.transition-D-ZEPllL.js');
122
+ const mdTransitionAnimation = () => import('./md.transition-DiPaaGY2.js');
123
123
  const focusController = createFocusController();
124
124
  // TODO(FW-2832): types
125
125
  /**
package/dist/esm/index.js CHANGED
@@ -1,22 +1,22 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- export { c as createAnimation } from './animation-BNuoDl-O.js';
5
- export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-M3l-IyxQ.js';
6
- export { iosTransitionAnimation } from './ios.transition-uJxJFbq8.js';
7
- export { mdTransitionAnimation } from './md.transition-Dp4NTeSh.js';
4
+ export { c as createAnimation } from './animation-C5cgFymd.js';
5
+ export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-urxfV0GK.js';
6
+ export { iosTransitionAnimation } from './ios.transition-D-ZEPllL.js';
7
+ export { mdTransitionAnimation } from './md.transition-DiPaaGY2.js';
8
8
  export { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
9
9
  export { createGesture } from './index-CfgBF1SE.js';
10
- export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-2lDD9k7y.js';
11
- export { c as componentOnReady } from './helpers-Bsml3FcE.js';
12
- export { L as LogLevel } from './index-C8IsBmNU.js';
13
- export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-mCdtaoPe.js';
14
- export { o as openURL } from './theme-DiVJyqlX.js';
15
- export { m as menuController } from './index-BQI9hSZP.js';
16
- export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-B037a9Tz.js';
10
+ export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-KnoA5TnE.js';
11
+ export { c as componentOnReady } from './helpers-6l6yFg3S.js';
12
+ export { L as LogLevel } from './index-gD7P82jx.js';
13
+ export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-DK9FWNvn.js';
14
+ export { o as openURL } from './theme-DaJxRxSQ.js';
15
+ export { m as menuController } from './index-DO9elf_6.js';
16
+ export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-BMHHx7Tm.js';
17
17
  import './gesture-controller-BTEOs1at.js';
18
18
  import './focus-visible-vXpMhGrs.js';
19
- import './framework-delegate-D2mUP0WI.js';
19
+ import './framework-delegate-Dx6tn-_w.js';
20
20
 
21
21
  const IonicSlides = (opts) => {
22
22
  const { swiper, extendParams } = opts;
@@ -1,13 +1,13 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as win, d as doc } from './ionic-global-2lDD9k7y.js';
5
- import { g as getScrollElement, c as scrollByPoint, f as findClosestIonContent } from './index-BpFi2B8W.js';
6
- import { f as addEventListener, m as removeEventListener, r as raf, c as componentOnReady } from './helpers-Bsml3FcE.js';
7
- import { a as KeyboardResize, K as Keyboard } from './keyboard-CU1vRv-b.js';
8
- import './index-C8IsBmNU.js';
4
+ import { w as win, d as doc } from './ionic-global-KnoA5TnE.js';
5
+ import { g as getScrollElement, c as scrollByPoint, f as findClosestIonContent } from './index-CXCvNx5X.js';
6
+ import { f as addEventListener, m as removeEventListener, r as raf, c as componentOnReady } from './helpers-6l6yFg3S.js';
7
+ import { a as KeyboardResize, K as Keyboard } from './keyboard-C7jpSDLg.js';
8
+ import './index-gD7P82jx.js';
9
9
  import './focus-visible-vXpMhGrs.js';
10
- import './capacitor-pzVAlnC0.js';
10
+ import './capacitor-Bc47Xxvc.js';
11
11
 
12
12
  const cloneMap = new WeakMap();
13
13
  const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0, disabledClonedInput = false) => {
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as win } from './ionic-global-2lDD9k7y.js';
5
- import { r as raf } from './helpers-Bsml3FcE.js';
6
- import { j as printIonError } from './index-C8IsBmNU.js';
4
+ import { w as win } from './ionic-global-KnoA5TnE.js';
5
+ import { r as raf } from './helpers-6l6yFg3S.js';
6
+ import { j as printIonError } from './index-gD7P82jx.js';
7
7
 
8
8
  /**
9
9
  * Used to update a scoped component that uses emulated slots. This fires when