@ionic/core 8.8.19-dev.11786610762.137bbb21 → 8.8.19-dev.11786735826.1fad7c0a

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 (1240) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker.js +1 -1
  59. package/components/ion-popover.js +1 -1
  60. package/components/ion-progress-bar.js +1 -1
  61. package/components/ion-radio-group.js +1 -1
  62. package/components/ion-radio.js +1 -1
  63. package/components/ion-range.js +1 -1
  64. package/components/ion-refresher-content.js +1 -1
  65. package/components/ion-refresher.js +1 -1
  66. package/components/ion-reorder-group.js +1 -1
  67. package/components/ion-reorder.js +1 -1
  68. package/components/ion-ripple-effect.js +1 -1
  69. package/components/ion-route-redirect.js +1 -1
  70. package/components/ion-route.js +1 -1
  71. package/components/ion-router-link.js +1 -1
  72. package/components/ion-router-outlet.js +1 -1
  73. package/components/ion-router.js +1 -1
  74. package/components/ion-row.js +1 -1
  75. package/components/ion-searchbar.js +1 -1
  76. package/components/ion-segment-button.js +1 -1
  77. package/components/ion-segment-content.js +1 -1
  78. package/components/ion-segment-view.js +1 -1
  79. package/components/ion-segment.js +1 -1
  80. package/components/ion-select-modal.js +1 -1
  81. package/components/ion-select-option.js +1 -1
  82. package/components/ion-select-popover.js +1 -1
  83. package/components/ion-select.js +1 -1
  84. package/components/ion-skeleton-text.js +1 -1
  85. package/components/ion-spinner.js +1 -1
  86. package/components/ion-split-pane.js +1 -1
  87. package/components/ion-tab-bar.js +1 -1
  88. package/components/ion-tab-button.js +1 -1
  89. package/components/ion-tab.js +1 -1
  90. package/components/ion-tabs.js +1 -1
  91. package/components/ion-text.js +1 -1
  92. package/components/ion-textarea.js +1 -1
  93. package/components/ion-thumbnail.js +1 -1
  94. package/components/ion-title.js +1 -1
  95. package/components/ion-toast.js +1 -1
  96. package/components/ion-toggle.js +1 -1
  97. package/components/ion-toolbar.js +1 -1
  98. package/components/p--m5cCjbK.js +4 -0
  99. package/components/{p-CpHPq11n.js → p-30_sZS2V.js} +1 -1
  100. package/components/p-8FN7p701.js +4 -0
  101. package/components/p-B-FxiyeI.js +4 -0
  102. package/components/p-B4uHHhPK.js +4 -0
  103. package/components/p-BMPN55of.js +4 -0
  104. package/components/p-BMS4t-kJ.js +4 -0
  105. package/components/p-BOvLNVKq.js +4 -0
  106. package/components/p-BSQPZ79H.js +4 -0
  107. package/components/p-BWBigMsI.js +4 -0
  108. package/components/p-BZ4-QTes.js +4 -0
  109. package/components/p-BhamHSw3.js +4 -0
  110. package/components/p-BjluhQMI.js +4 -0
  111. package/components/p-BlsIikdZ.js +4 -0
  112. package/components/p-Blug1Vxu.js +4 -0
  113. package/components/p-BmVRXR1y.js +4 -0
  114. package/components/p-BpG8kBfD.js +4 -0
  115. package/components/p-BqPNzJf6.js +4 -0
  116. package/components/p-C5KYjZWD.js +4 -0
  117. package/components/p-C91npEel.js +4 -0
  118. package/components/p-C9BGR5fy.js +4 -0
  119. package/components/p-CD4fmpem.js +4 -0
  120. package/components/p-CEW4RXZO.js +4 -0
  121. package/components/p-CIGNaXM1.js +4 -0
  122. package/components/p-CKhiNOEg.js +4 -0
  123. package/components/p-CO2zzh3W.js +4 -0
  124. package/components/p-CVb3x_r3.js +4 -0
  125. package/components/p-CWLrHG8Y.js +4 -0
  126. package/components/p-CbhUdtjf.js +4 -0
  127. package/components/p-CejmQs3h.js +4 -0
  128. package/components/p-CfnNZz_d.js +4 -0
  129. package/components/p-CmKf4pgI.js +4 -0
  130. package/components/p-Cs5f-uOS.js +4 -0
  131. package/components/p-D7-vHX0A.js +4 -0
  132. package/components/p-DJztqcrH.js +4 -0
  133. package/components/p-DKrhJJV0.js +4 -0
  134. package/components/p-DRfgH82D.js +4 -0
  135. package/components/p-DSzSbVP2.js +4 -0
  136. package/components/p-DV85C0e0.js +4 -0
  137. package/components/p-DVKS-ovH.js +4 -0
  138. package/components/p-DWCzVL3Y.js +4 -0
  139. package/components/p-Dd8ajo9a.js +4 -0
  140. package/components/p-DdnhY_oj.js +4 -0
  141. package/components/p-DgZOZQjJ.js +4 -0
  142. package/components/p-Dmd2xqCe.js +4 -0
  143. package/components/{p-B2SvA6NE.js → p-DwpKZ6rl.js} +1 -1
  144. package/components/p-G0TxqHfe.js +4 -0
  145. package/components/p-GG5GhznE.js +4 -0
  146. package/components/{p-Ch8jco3x.js → p-J-p0EtHR.js} +1 -1
  147. package/components/p-LXu5-6Ti.js +4 -0
  148. package/components/p-LpMHEu3v.js +4 -0
  149. package/components/p-TXPDHL13.js +4 -0
  150. package/components/p-UQSiXX2Z.js +4 -0
  151. package/components/p-UuPYCOZE.js +4 -0
  152. package/components/p-WeeS7GvC.js +4 -0
  153. package/components/p-ZjP4CjeZ.js +4 -0
  154. package/components/{p-CzlL9T_X.js → p-_0JhwClE.js} +1 -1
  155. package/components/p-_IKFD3ID.js +4 -0
  156. package/components/p-byZM6qHV.js +4 -0
  157. package/components/p-hh7qIC-X.js +4 -0
  158. package/components/p-idq4JFo2.js +4 -0
  159. package/components/p-qT1szVjw.js +4 -0
  160. package/components/{p-BZwQa9ey.js → p-ryyf_ItD.js} +1 -1
  161. package/components/p-wzAhIh03.js +4 -0
  162. package/components/p-ypuYdSDB.js +4 -0
  163. package/components/{p-Dovs7FIs.js → p-yuj4Nkm_.js} +1 -1
  164. package/css/core.css +1 -1
  165. package/css/core.css.map +1 -1
  166. package/css/display.css +1 -1
  167. package/css/display.css.map +1 -1
  168. package/css/flex-utils.css +1 -1
  169. package/css/flex-utils.css.map +1 -1
  170. package/css/float-elements.css.map +1 -1
  171. package/css/global.bundle.css.map +1 -1
  172. package/css/ionic-swiper.css +1 -1
  173. package/css/ionic-swiper.css.map +1 -1
  174. package/css/ionic.bundle.css +1 -1
  175. package/css/ionic.bundle.css.map +1 -1
  176. package/css/normalize.css.map +1 -1
  177. package/css/padding.css.map +1 -1
  178. package/css/palettes/dark.always.css.map +1 -1
  179. package/css/palettes/dark.class.css.map +1 -1
  180. package/css/palettes/dark.system.css.map +1 -1
  181. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  182. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  183. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  184. package/css/palettes/high-contrast.always.css.map +1 -1
  185. package/css/palettes/high-contrast.class.css.map +1 -1
  186. package/css/palettes/high-contrast.system.css.map +1 -1
  187. package/css/structure.css.map +1 -1
  188. package/css/text-alignment.css.map +1 -1
  189. package/css/text-transformation.css.map +1 -1
  190. package/css/typography.css.map +1 -1
  191. package/css/utils.bundle.css +1 -1
  192. package/css/utils.bundle.css.map +1 -1
  193. package/dist/cjs/{animation-qlGmEn5Y.js → animation-C0mOHzej.js} +6 -6
  194. package/dist/cjs/{app-globals-CtK-3pCu.js → app-globals-BREG4twP.js} +1 -1
  195. package/dist/cjs/{button-active-CugpWmFI.js → button-active-BKj1rdFx.js} +3 -3
  196. package/dist/cjs/{capacitor-BixsAzyb.js → capacitor-DmA66EwP.js} +3 -3
  197. package/dist/cjs/{config-DWdFbSNK.js → config-CjUbvdPW.js} +5 -4
  198. package/dist/cjs/{dir-Cn0z1rJH.js → dir-Brx7VkvP.js} +1 -1
  199. package/dist/{esm/focus-visible-vXpMhGrs.js → cjs/focus-visible-CCvKiLh3.js} +3 -23
  200. package/dist/cjs/{format-COAsdjOc.js → format-pp0Du3K-.js} +40 -30
  201. package/dist/cjs/{framework-delegate-CJT_QJQI.js → framework-delegate-NTLQ5YzV.js} +6 -10
  202. package/dist/cjs/{gesture-controller-dtqlP_q4.js → gesture-controller-BDUH7687.js} +15 -8
  203. package/dist/cjs/{haptic-BFgF-QCg.js → haptic-Ch-X4gRx.js} +3 -4
  204. package/dist/cjs/hardware-back-button-fqpYh-kd.js +121 -0
  205. package/dist/cjs/{helpers-Fh1iXsX9.js → helpers-CaLhEmTE.js} +6 -73
  206. package/dist/cjs/{index-YYUVCfP-.js → index-B7zJsYWS.js} +3 -3
  207. package/dist/cjs/{index-CNicxECl.js → index-BlshL9ib.js} +8 -9
  208. package/dist/cjs/{index-D94mERjz.js → index-Ck9advCT.js} +5 -5
  209. package/dist/cjs/{index-CM8iGvyx.js → index-D2X6b92x.js} +15 -16
  210. package/dist/cjs/{index-DRFkZu3V.js → index-D48vawBq.js} +2 -2
  211. package/dist/cjs/index-DkNv4J_i.js +10 -0
  212. package/dist/cjs/{index-CAvQ7Tka.js → index-P1nQxrpZ.js} +10 -4
  213. package/dist/cjs/{index-C1knGA9x.js → index-uvry__L4.js} +33 -65
  214. package/dist/cjs/{index-CxDnX7hd.js → index-wOmugbdg.js} +0 -2
  215. package/dist/cjs/index.cjs.js +17 -17
  216. package/dist/cjs/{input-shims-C8NCYfWv.js → input-shims-DvHAFqiP.js} +19 -22
  217. package/dist/cjs/input.utils-BZdMWVrt.js +35 -0
  218. package/dist/cjs/ion-accordion_2.cjs.entry.js +378 -382
  219. package/dist/cjs/ion-action-sheet.cjs.entry.js +178 -86
  220. package/dist/cjs/ion-alert.cjs.entry.js +250 -125
  221. package/dist/cjs/ion-app_8.cjs.entry.js +461 -608
  222. package/dist/cjs/ion-avatar_3.cjs.entry.js +19 -125
  223. package/dist/cjs/ion-back-button.cjs.entry.js +64 -49
  224. package/dist/cjs/ion-backdrop.cjs.entry.js +23 -22
  225. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +211 -169
  226. package/dist/cjs/ion-button_2.cjs.entry.js +152 -117
  227. package/dist/cjs/ion-card_5.cjs.entry.js +109 -79
  228. package/dist/cjs/ion-checkbox.cjs.entry.js +163 -129
  229. package/dist/cjs/ion-chip.cjs.entry.js +21 -56
  230. package/dist/cjs/ion-col_3.cjs.entry.js +186 -61
  231. package/dist/cjs/ion-datetime-button.cjs.entry.js +255 -247
  232. package/dist/cjs/ion-datetime.cjs.entry.js +2770 -0
  233. package/dist/cjs/ion-fab_3.cjs.entry.js +154 -112
  234. package/dist/cjs/ion-img.cjs.entry.js +34 -16
  235. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +108 -156
  236. package/dist/cjs/ion-input-otp.cjs.entry.js +435 -437
  237. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +40 -64
  238. package/dist/cjs/ion-input.cjs.entry.js +351 -311
  239. package/dist/cjs/ion-item-option_3.cjs.entry.js +136 -511
  240. package/dist/cjs/ion-item_8.cjs.entry.js +217 -189
  241. package/dist/cjs/ion-loading.cjs.entry.js +151 -68
  242. package/dist/cjs/ion-menu_3.cjs.entry.js +181 -137
  243. package/dist/cjs/ion-modal.cjs.entry.js +570 -500
  244. package/dist/cjs/ion-nav_2.cjs.entry.js +103 -163
  245. package/dist/cjs/ion-picker-column-option.cjs.entry.js +39 -39
  246. package/dist/cjs/ion-picker-column.cjs.entry.js +421 -409
  247. package/dist/cjs/ion-picker.cjs.entry.js +405 -400
  248. package/dist/cjs/ion-popover.cjs.entry.js +323 -211
  249. package/dist/cjs/ion-progress-bar.cjs.entry.js +35 -47
  250. package/dist/cjs/ion-radio_2.cjs.entry.js +216 -161
  251. package/dist/cjs/ion-range.cjs.entry.js +307 -249
  252. package/dist/cjs/ion-refresher_2.cjs.entry.js +174 -121
  253. package/dist/cjs/ion-reorder_2.cjs.entry.js +59 -53
  254. package/dist/cjs/ion-ripple-effect.cjs.entry.js +18 -26
  255. package/dist/cjs/ion-route_4.cjs.entry.js +178 -75
  256. package/dist/cjs/ion-searchbar.cjs.entry.js +308 -331
  257. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  258. package/dist/cjs/ion-segment-view.cjs.entry.js +28 -27
  259. package/dist/cjs/ion-segment_2.cjs.entry.js +177 -141
  260. package/dist/cjs/ion-select-modal.cjs.entry.js +49 -69
  261. package/dist/cjs/ion-select_3.cjs.entry.js +507 -429
  262. package/dist/cjs/ion-spinner.cjs.entry.js +28 -36
  263. package/dist/cjs/ion-split-pane.cjs.entry.js +34 -25
  264. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +116 -179
  265. package/dist/cjs/ion-tab_2.cjs.entry.js +54 -29
  266. package/dist/cjs/ion-text.cjs.entry.js +13 -7
  267. package/dist/cjs/ion-textarea.cjs.entry.js +303 -309
  268. package/dist/cjs/ion-toast.cjs.entry.js +264 -169
  269. package/dist/cjs/ion-toggle.cjs.entry.js +184 -187
  270. package/dist/cjs/ionic-global-k6hOWWpn.js +156 -0
  271. package/dist/cjs/ionic.cjs.js +4 -4
  272. package/dist/cjs/{ios.transition-BgDCUY4Y.js → ios.transition-KvuRAe2W.js} +14 -20
  273. package/dist/cjs/{item-multiple-inputs-DKn76MYO.js → item-multiple-inputs-BdYSbfKN.js} +1 -1
  274. package/dist/cjs/{keyboard-nne7rvBK.js → keyboard-Cix5TVkD.js} +4 -5
  275. package/dist/cjs/{keyboard-BbZXOwZg.js → keyboard-cHxZlTyz.js} +3 -3
  276. package/dist/cjs/keyboard-controller-PtZoN2GS.js +167 -0
  277. package/dist/cjs/loader.cjs.js +4 -4
  278. package/dist/cjs/{md.transition-Debf4tYr.js → md.transition-Bjl5Ozph.js} +8 -10
  279. package/dist/cjs/{overlay-control-label-DnRLQR1t.js → overlay-control-label-D2sdL2O8.js} +11 -13
  280. package/dist/cjs/{overlays-DYBUkNQu.js → overlays-IlP4H2Gn.js} +60 -336
  281. package/dist/cjs/{select-option-render-BqJEK1N1.js → select-option-render-pULCGldr.js} +3 -4
  282. package/dist/cjs/slot-mutation-controller-CgTGFqlW.js +397 -0
  283. package/dist/cjs/{status-tap-hwqc0yb_.js → status-tap-BR_ujYHg.js} +3 -4
  284. package/dist/cjs/{swipe-back-DqQx5QCp.js → swipe-back-DzQKEl5g.js} +5 -6
  285. package/dist/cjs/{theme-IlOsGAz7.js → theme-Bw0rpaNN.js} +7 -26
  286. package/dist/cjs/validity-BpS37YFM.js +19 -0
  287. package/dist/collection/collection-manifest.json +1 -13
  288. package/dist/collection/components/accordion/accordion.ios.css +58 -73
  289. package/dist/collection/components/accordion/accordion.js +327 -338
  290. package/dist/collection/components/accordion/accordion.md.css +59 -67
  291. package/dist/collection/components/accordion-group/accordion-group.ios.css +4 -16
  292. package/dist/collection/components/accordion-group/accordion-group.js +56 -69
  293. package/dist/collection/components/accordion-group/accordion-group.md.css +4 -22
  294. package/dist/collection/components/action-sheet/action-sheet.ios.css +54 -184
  295. package/dist/collection/components/action-sheet/action-sheet.js +166 -76
  296. package/dist/collection/components/action-sheet/action-sheet.md.css +55 -179
  297. package/dist/collection/components/action-sheet/test/basic/fixture.js +3 -0
  298. package/dist/collection/components/alert/alert.ios.css +54 -247
  299. package/dist/collection/components/alert/alert.js +236 -113
  300. package/dist/collection/components/alert/alert.md.css +56 -243
  301. package/dist/collection/components/app/app.js +86 -15
  302. package/dist/collection/components/avatar/avatar.ios.css +33 -7
  303. package/dist/collection/components/avatar/avatar.js +4 -120
  304. package/dist/collection/components/avatar/avatar.md.css +0 -51
  305. package/dist/collection/components/back-button/back-button.ios.css +48 -60
  306. package/dist/collection/components/back-button/back-button.js +61 -46
  307. package/dist/collection/components/back-button/back-button.md.css +48 -60
  308. package/dist/collection/components/backdrop/backdrop.ios.css +19 -56
  309. package/dist/collection/components/backdrop/backdrop.js +22 -26
  310. package/dist/collection/components/backdrop/backdrop.md.css +19 -56
  311. package/dist/collection/components/badge/badge.ios.css +12 -137
  312. package/dist/collection/components/badge/badge.js +15 -145
  313. package/dist/collection/components/badge/badge.md.css +12 -122
  314. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +8 -20
  315. package/dist/collection/components/breadcrumb/breadcrumb.js +101 -72
  316. package/dist/collection/components/breadcrumb/breadcrumb.md.css +8 -20
  317. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +0 -6
  318. package/dist/collection/components/breadcrumbs/breadcrumbs.js +112 -99
  319. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +0 -6
  320. package/dist/collection/components/button/button.ios.css +46 -154
  321. package/dist/collection/components/button/button.js +157 -122
  322. package/dist/collection/components/button/button.md.css +50 -150
  323. package/dist/collection/components/buttons/buttons.ios.css +7 -59
  324. package/dist/collection/components/buttons/buttons.js +21 -29
  325. package/dist/collection/components/buttons/buttons.md.css +3 -55
  326. package/dist/collection/components/card/card.ios.css +14 -65
  327. package/dist/collection/components/card/card.js +63 -61
  328. package/dist/collection/components/card/card.md.css +14 -65
  329. package/dist/collection/components/card-content/card-content.ios.css +35 -20
  330. package/dist/collection/components/card-content/card-content.js +10 -12
  331. package/dist/collection/components/card-content/card-content.md.css +35 -20
  332. package/dist/collection/components/card-header/card-header.ios.css +15 -27
  333. package/dist/collection/components/card-header/card-header.js +21 -20
  334. package/dist/collection/components/card-header/card-header.md.css +15 -27
  335. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +0 -12
  336. package/dist/collection/components/card-subtitle/card-subtitle.js +14 -11
  337. package/dist/collection/components/card-subtitle/card-subtitle.md.css +0 -12
  338. package/dist/collection/components/card-title/card-title.ios.css +0 -73
  339. package/dist/collection/components/card-title/card-title.js +14 -11
  340. package/dist/collection/components/card-title/card-title.md.css +0 -73
  341. package/dist/collection/components/checkbox/checkbox.ios.css +117 -242
  342. package/dist/collection/components/checkbox/checkbox.js +160 -165
  343. package/dist/collection/components/checkbox/checkbox.md.css +118 -243
  344. package/dist/collection/components/chip/chip.ios.css +14 -67
  345. package/dist/collection/components/chip/chip.js +20 -116
  346. package/dist/collection/components/chip/chip.md.css +14 -67
  347. package/dist/collection/components/col/col.css +4 -192
  348. package/dist/collection/components/col/col.js +186 -212
  349. package/dist/collection/components/content/content.css +2 -47
  350. package/dist/collection/components/content/content.js +102 -78
  351. package/dist/collection/components/datetime/datetime.ios.css +148 -304
  352. package/dist/collection/components/datetime/datetime.js +1068 -910
  353. package/dist/collection/components/datetime/datetime.md.css +138 -294
  354. package/dist/collection/components/datetime/utils/data.js +18 -19
  355. package/dist/collection/components/datetime/utils/format.js +21 -11
  356. package/dist/collection/components/datetime/utils/manipulation.js +8 -8
  357. package/dist/collection/components/datetime/utils/parse.js +10 -10
  358. package/dist/collection/components/datetime/utils/state.js +8 -2
  359. package/dist/collection/components/datetime/utils/validate.js +4 -5
  360. package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -6
  361. package/dist/collection/components/datetime-button/datetime-button.js +253 -246
  362. package/dist/collection/components/datetime-button/datetime-button.md.css +5 -6
  363. package/dist/collection/components/fab/fab.css +1 -25
  364. package/dist/collection/components/fab/fab.js +25 -22
  365. package/dist/collection/components/fab-button/fab-button.ios.css +6 -18
  366. package/dist/collection/components/fab-button/fab-button.js +117 -83
  367. package/dist/collection/components/fab-button/fab-button.md.css +8 -20
  368. package/dist/collection/components/fab-list/fab-list.css +0 -12
  369. package/dist/collection/components/fab-list/fab-list.js +15 -20
  370. package/dist/collection/components/footer/footer.ios.css +6 -33
  371. package/dist/collection/components/footer/footer.js +65 -151
  372. package/dist/collection/components/footer/footer.md.css +0 -40
  373. package/dist/collection/components/grid/grid.css +0 -12
  374. package/dist/collection/components/grid/grid.js +9 -15
  375. package/dist/collection/components/header/header.ios.css +133 -178
  376. package/dist/collection/components/header/header.js +70 -202
  377. package/dist/collection/components/header/header.md.css +9 -199
  378. package/dist/collection/components/header/header.utils.js +13 -6
  379. package/dist/collection/components/img/img.js +34 -16
  380. package/dist/collection/components/infinite-scroll/infinite-scroll.js +76 -164
  381. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -12
  382. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +30 -19
  383. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -12
  384. package/dist/collection/components/input/input.ios.css +191 -247
  385. package/dist/collection/components/input/input.js +357 -340
  386. package/dist/collection/components/input/input.md.css +285 -234
  387. package/dist/collection/components/input-otp/input-otp.ios.css +60 -105
  388. package/dist/collection/components/input-otp/input-otp.js +432 -437
  389. package/dist/collection/components/input-otp/input-otp.md.css +60 -105
  390. package/dist/collection/components/input-password-toggle/input-password-toggle.js +37 -60
  391. package/dist/collection/components/item/item.ios.css +80 -120
  392. package/dist/collection/components/item/item.js +113 -102
  393. package/dist/collection/components/item/item.md.css +79 -131
  394. package/dist/collection/components/item-divider/item-divider.ios.css +0 -18
  395. package/dist/collection/components/item-divider/item-divider.js +23 -21
  396. package/dist/collection/components/item-divider/item-divider.md.css +0 -18
  397. package/dist/collection/components/item-group/item-group.ios.css +0 -12
  398. package/dist/collection/components/item-group/item-group.js +7 -13
  399. package/dist/collection/components/item-group/item-group.md.css +0 -12
  400. package/dist/collection/components/item-option/item-option.ios.css +29 -136
  401. package/dist/collection/components/item-option/item-option.js +56 -92
  402. package/dist/collection/components/item-option/item-option.md.css +29 -136
  403. package/dist/collection/components/item-options/item-options.ios.css +34 -77
  404. package/dist/collection/components/item-options/item-options.js +17 -20
  405. package/dist/collection/components/item-options/item-options.md.css +34 -77
  406. package/dist/collection/components/item-sliding/{item-sliding.native.css → item-sliding.css} +9 -84
  407. package/dist/collection/components/item-sliding/item-sliding.js +61 -441
  408. package/dist/collection/components/item-sliding/test/test.utils.js +0 -13
  409. package/dist/collection/components/label/label.ios.css +0 -18
  410. package/dist/collection/components/label/label.js +32 -15
  411. package/dist/collection/components/label/label.md.css +0 -18
  412. package/dist/collection/components/list/list.ios.css +14 -54
  413. package/dist/collection/components/list/list.js +19 -55
  414. package/dist/collection/components/list/list.md.css +16 -56
  415. package/dist/collection/components/list-header/list-header.ios.css +38 -82
  416. package/dist/collection/components/list-header/list-header.js +18 -11
  417. package/dist/collection/components/list-header/list-header.md.css +38 -82
  418. package/dist/collection/components/loading/loading.ios.css +1 -13
  419. package/dist/collection/components/loading/loading.js +143 -62
  420. package/dist/collection/components/loading/loading.md.css +1 -13
  421. package/dist/collection/components/menu/menu.ios.css +3 -15
  422. package/dist/collection/components/menu/menu.js +108 -71
  423. package/dist/collection/components/menu/menu.md.css +3 -15
  424. package/dist/collection/components/menu-button/menu-button.ios.css +14 -48
  425. package/dist/collection/components/menu-button/menu-button.js +38 -45
  426. package/dist/collection/components/menu-button/menu-button.md.css +15 -49
  427. package/dist/collection/components/menu-toggle/menu-toggle.js +25 -21
  428. package/dist/collection/components/modal/animations/ios.enter.js +1 -1
  429. package/dist/collection/components/modal/animations/md.enter.js +1 -1
  430. package/dist/collection/components/modal/animations/sheet.js +2 -8
  431. package/dist/collection/components/modal/gestures/sheet.js +32 -86
  432. package/dist/collection/components/modal/gestures/swipe-to-close.js +15 -3
  433. package/dist/collection/components/modal/modal.ios.css +70 -178
  434. package/dist/collection/components/modal/modal.js +404 -272
  435. package/dist/collection/components/modal/modal.md.css +70 -178
  436. package/dist/collection/components/modal/safe-area-utils.js +6 -7
  437. package/dist/collection/components/modal/test/fixtures.js +3 -0
  438. package/dist/collection/components/nav/nav.css +1 -7
  439. package/dist/collection/components/nav/nav.js +72 -256
  440. package/dist/collection/components/nav/view-controller.js +7 -1
  441. package/dist/collection/components/nav-link/nav-link.js +21 -14
  442. package/dist/collection/components/note/note.ios.css +0 -12
  443. package/dist/collection/components/note/note.js +14 -11
  444. package/dist/collection/components/note/note.md.css +0 -12
  445. package/dist/collection/components/picker/picker.ios.css +3 -15
  446. package/dist/collection/components/picker/picker.js +403 -398
  447. package/dist/collection/components/picker/picker.md.css +3 -15
  448. package/dist/collection/components/picker-column/picker-column.css +5 -9
  449. package/dist/collection/components/picker-column/picker-column.js +418 -409
  450. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -6
  451. package/dist/collection/components/picker-column-option/picker-column-option.js +38 -42
  452. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -7
  453. package/dist/collection/components/popover/animations/ios.enter.js +1 -2
  454. package/dist/collection/components/popover/animations/md.enter.js +1 -2
  455. package/dist/collection/components/popover/popover.ios.css +2 -15
  456. package/dist/collection/components/popover/popover.js +313 -199
  457. package/dist/collection/components/popover/popover.md.css +2 -15
  458. package/dist/collection/components/popover/test/fixture.js +1 -0
  459. package/dist/collection/components/popover/utils.js +4 -6
  460. package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -48
  461. package/dist/collection/components/progress-bar/progress-bar.js +33 -65
  462. package/dist/collection/components/progress-bar/progress-bar.md.css +17 -48
  463. package/dist/collection/components/radio/radio.ios.css +102 -207
  464. package/dist/collection/components/radio/radio.js +108 -77
  465. package/dist/collection/components/radio/radio.md.css +102 -207
  466. package/dist/collection/components/radio-group/radio-group.ios.css +19 -43
  467. package/dist/collection/components/radio-group/radio-group.js +107 -113
  468. package/dist/collection/components/radio-group/radio-group.md.css +19 -43
  469. package/dist/collection/components/radio-group/test/fixtures.js +2 -0
  470. package/dist/collection/components/range/range.ios.css +85 -128
  471. package/dist/collection/components/range/range.js +303 -245
  472. package/dist/collection/components/range/range.md.css +85 -128
  473. package/dist/collection/components/refresher/refresher.ios.css +1 -14
  474. package/dist/collection/components/refresher/refresher.js +117 -88
  475. package/dist/collection/components/refresher/refresher.md.css +2 -15
  476. package/dist/collection/components/refresher-content/refresher-content.js +47 -31
  477. package/dist/collection/components/reorder/reorder.ios.css +0 -6
  478. package/dist/collection/components/reorder/reorder.js +7 -33
  479. package/dist/collection/components/reorder/reorder.md.css +0 -6
  480. package/dist/collection/components/reorder-group/reorder-group.css +0 -6
  481. package/dist/collection/components/reorder-group/reorder-group.js +47 -22
  482. package/dist/collection/components/ripple-effect/{ripple-effect.common.css → ripple-effect.css} +1 -7
  483. package/dist/collection/components/ripple-effect/ripple-effect.js +17 -26
  484. package/dist/collection/components/route/route.js +39 -14
  485. package/dist/collection/components/route-redirect/route-redirect.js +31 -0
  486. package/dist/collection/components/router/router.js +37 -37
  487. package/dist/collection/components/router/utils/dom.js +25 -7
  488. package/dist/collection/components/router/utils/matching.js +7 -9
  489. package/dist/collection/components/router/utils/parser.js +1 -1
  490. package/dist/collection/components/router/utils/path.js +0 -1
  491. package/dist/collection/components/router-link/router-link.css +2 -8
  492. package/dist/collection/components/router-link/router-link.js +40 -19
  493. package/dist/collection/components/router-outlet/router-outlet.css +1 -7
  494. package/dist/collection/components/router-outlet/router-outlet.js +83 -25
  495. package/dist/collection/components/row/row.css +0 -16
  496. package/dist/collection/components/row/row.js +2 -9
  497. package/dist/collection/components/searchbar/searchbar.ios.css +18 -56
  498. package/dist/collection/components/searchbar/searchbar.js +321 -380
  499. package/dist/collection/components/searchbar/searchbar.md.css +18 -56
  500. package/dist/collection/components/segment/segment.ios.css +2 -45
  501. package/dist/collection/components/segment/segment.js +126 -94
  502. package/dist/collection/components/segment/segment.md.css +2 -45
  503. package/dist/collection/components/segment-button/segment-button.ios.css +105 -146
  504. package/dist/collection/components/segment-button/segment-button.js +49 -46
  505. package/dist/collection/components/segment-button/segment-button.md.css +107 -148
  506. package/dist/collection/components/segment-content/segment-content.js +1 -1
  507. package/dist/collection/components/segment-view/segment-view.ios.css +0 -6
  508. package/dist/collection/components/segment-view/segment-view.js +28 -27
  509. package/dist/collection/components/segment-view/segment-view.md.css +0 -6
  510. package/dist/collection/components/select/select.ios.css +206 -351
  511. package/dist/collection/components/select/select.js +431 -444
  512. package/dist/collection/components/select/select.md.css +230 -383
  513. package/dist/collection/components/select-modal/select-modal.ios.css +45 -293
  514. package/dist/collection/components/select-modal/select-modal.js +37 -79
  515. package/dist/collection/components/select-modal/select-modal.md.css +43 -273
  516. package/dist/collection/components/select-modal/test/fixtures.js +8 -1
  517. package/dist/collection/components/select-option/select-option.js +48 -15
  518. package/dist/collection/components/select-popover/select-popover.ios.css +124 -188
  519. package/dist/collection/components/select-popover/select-popover.js +44 -37
  520. package/dist/collection/components/select-popover/select-popover.md.css +47 -228
  521. package/dist/collection/components/select-popover/test/fixtures.js +8 -1
  522. package/dist/collection/components/skeleton-text/skeleton-text.css +0 -6
  523. package/dist/collection/components/skeleton-text/skeleton-text.js +15 -15
  524. package/dist/collection/components/spinner/{spinner.ionic.css → spinner.css} +10 -78
  525. package/dist/collection/components/spinner/spinner.js +26 -55
  526. package/dist/collection/components/split-pane/split-pane.ios.css +2 -20
  527. package/dist/collection/components/split-pane/split-pane.js +33 -28
  528. package/dist/collection/components/split-pane/split-pane.md.css +2 -20
  529. package/dist/collection/components/tab/tab.js +17 -10
  530. package/dist/collection/components/tab-bar/tab-bar.ios.css +43 -86
  531. package/dist/collection/components/tab-bar/tab-bar.js +44 -190
  532. package/dist/collection/components/tab-bar/tab-bar.md.css +43 -86
  533. package/dist/collection/components/tab-button/tab-button.ios.css +95 -171
  534. package/dist/collection/components/tab-button/tab-button.js +68 -74
  535. package/dist/collection/components/tab-button/tab-button.md.css +93 -137
  536. package/dist/collection/components/tabs/tabs.css +1 -7
  537. package/dist/collection/components/tabs/tabs.js +33 -23
  538. package/dist/collection/components/text/text.css +0 -6
  539. package/dist/collection/components/text/text.js +12 -7
  540. package/dist/collection/components/textarea/textarea.ios.css +221 -329
  541. package/dist/collection/components/textarea/textarea.js +302 -334
  542. package/dist/collection/components/textarea/textarea.md.css +231 -358
  543. package/dist/collection/components/thumbnail/thumbnail.css +0 -6
  544. package/dist/collection/components/thumbnail/thumbnail.js +2 -9
  545. package/dist/collection/components/title/title.ios.css +4 -32
  546. package/dist/collection/components/title/title.js +23 -13
  547. package/dist/collection/components/title/title.md.css +4 -39
  548. package/dist/collection/components/toast/animations/utils.js +1 -1
  549. package/dist/collection/components/toast/toast.ios.css +45 -84
  550. package/dist/collection/components/toast/toast.js +232 -178
  551. package/dist/collection/components/toast/toast.md.css +45 -84
  552. package/dist/collection/components/toggle/toggle.ios.css +127 -247
  553. package/dist/collection/components/toggle/toggle.js +175 -177
  554. package/dist/collection/components/toggle/toggle.md.css +127 -245
  555. package/dist/collection/components/toolbar/toolbar.ios.css +47 -90
  556. package/dist/collection/components/toolbar/toolbar.js +25 -222
  557. package/dist/collection/components/toolbar/toolbar.md.css +47 -90
  558. package/dist/collection/global/config.js +4 -6
  559. package/dist/collection/global/ionic-global.js +20 -242
  560. package/dist/collection/index.js +1 -1
  561. package/dist/collection/utils/animation/animation.js +3 -3
  562. package/dist/collection/utils/config.js +5 -4
  563. package/dist/collection/utils/focus-controller/index.js +1 -1
  564. package/dist/collection/utils/focus-trap.js +5 -16
  565. package/dist/collection/utils/focus-visible.js +0 -22
  566. package/dist/collection/utils/forms/index.js +1 -1
  567. package/dist/collection/utils/forms/start-container-controller.js +132 -0
  568. package/dist/collection/utils/forms/validity.js +0 -31
  569. package/dist/collection/utils/framework-delegate.js +5 -9
  570. package/dist/collection/utils/gesture/gesture-controller.js +15 -8
  571. package/dist/collection/utils/gesture/index.js +10 -2
  572. package/dist/collection/utils/gesture/listener.js +1 -1
  573. package/dist/collection/utils/hardware-back-button.js +3 -18
  574. package/dist/collection/utils/helpers.js +5 -72
  575. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
  576. package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
  577. package/dist/collection/utils/keyboard/keyboard-controller.js +6 -8
  578. package/dist/collection/utils/keyboard/keyboard.js +1 -1
  579. package/dist/collection/utils/logging/index.js +23 -4
  580. package/dist/collection/utils/media.js +0 -1
  581. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  582. package/dist/collection/utils/menu-controller/animations/push.js +1 -2
  583. package/dist/collection/utils/menu-controller/animations/reveal.js +1 -2
  584. package/dist/collection/utils/menu-controller/index.js +1 -2
  585. package/dist/collection/utils/native/haptic.js +2 -3
  586. package/dist/collection/utils/native/keyboard.js +2 -2
  587. package/dist/collection/utils/native/status-bar.js +1 -1
  588. package/dist/collection/utils/overlay-control-label.js +11 -13
  589. package/dist/collection/utils/overlays.js +45 -312
  590. package/dist/collection/utils/platform.js +4 -5
  591. package/dist/collection/utils/rtl/dir.js +1 -1
  592. package/dist/collection/utils/sanitization/index.js +2 -2
  593. package/dist/collection/utils/select-option-render.js +1 -2
  594. package/dist/collection/utils/slot-mutation-controller.js +1 -2
  595. package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
  596. package/dist/collection/utils/test/playwright/drag-element.js +11 -35
  597. package/dist/collection/utils/test/playwright/generator.js +25 -51
  598. package/dist/collection/utils/test/playwright/page/event-spy.js +11 -12
  599. package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -15
  600. package/dist/collection/utils/test/playwright/page/utils/set-content.js +4 -27
  601. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
  602. package/dist/collection/utils/test/press-keys.js +10 -17
  603. package/dist/collection/utils/theme.js +7 -26
  604. package/dist/collection/utils/transition/ios.transition.js +9 -14
  605. package/dist/collection/utils/transition/md.transition.js +3 -4
  606. package/dist/docs.json +524 -10028
  607. package/dist/esm/{animation-ChfHU0RG.js → animation-CGFdmGk9.js} +5 -5
  608. package/dist/esm/{app-globals-D1OOQlqq.js → app-globals-CYmMeGdU.js} +1 -1
  609. package/dist/esm/{button-active-CPYK0dNo.js → button-active--80YqSHA.js} +3 -3
  610. package/dist/esm/{capacitor-DG_4yVXz.js → capacitor-CFERIeaU.js} +1 -1
  611. package/dist/esm/{config-BwKpO3Is.js → config-DWCzVL3Y.js} +5 -4
  612. package/dist/esm/{dir-C53feagD.js → dir-B-FxiyeI.js} +1 -1
  613. package/dist/{cjs/focus-visible-BIj-I3-C.js → esm/focus-visible-BmVRXR1y.js} +1 -27
  614. package/dist/esm/{format-2WlZcMvG.js → format-Dcwga61t.js} +41 -31
  615. package/dist/esm/{framework-delegate-DO2QXccA.js → framework-delegate--ajhSeKH.js} +6 -10
  616. package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-TXPDHL13.js} +15 -8
  617. package/dist/esm/{haptic-BWlRCqa-.js → haptic-Cq4UAeka.js} +3 -4
  618. package/dist/esm/hardware-back-button-gLJHMX_F.js +115 -0
  619. package/dist/esm/{helpers-DfF5_wJc.js → helpers-DexiPLIC.js} +7 -73
  620. package/dist/esm/{index-BSDDOljg.js → index-8s8kZKJ7.js} +5 -5
  621. package/dist/esm/{index-DNY2GOUg.js → index-BCgUwrV0.js} +3 -4
  622. package/dist/esm/{index-B4Kq2YNk.js → index-BvabGprD.js} +1 -2
  623. package/dist/esm/{index-Mq5pCWmZ.js → index-CKM1DdGm.js} +3 -3
  624. package/dist/esm/{index-C0EQceqV.js → index-ChhhtsGZ.js} +34 -66
  625. package/dist/esm/{index-7eS8XtuU.js → index-CumkqGQF.js} +12 -13
  626. package/dist/esm/{index-CfgBF1SE.js → index-DppOcPFQ.js} +10 -4
  627. package/dist/esm/index-ZjP4CjeZ.js +7 -0
  628. package/dist/esm/{index-taYRjZGp.js → index-_Za5VB9w.js} +2 -2
  629. package/dist/esm/index.js +17 -16
  630. package/dist/esm/{input-shims-tZfqB5a5.js → input-shims-BB0AKb_k.js} +11 -14
  631. package/dist/esm/input.utils-B1ValN_N.js +33 -0
  632. package/dist/esm/ion-accordion_2.entry.js +378 -382
  633. package/dist/esm/ion-action-sheet.entry.js +178 -86
  634. package/dist/esm/ion-alert.entry.js +250 -125
  635. package/dist/esm/ion-app_8.entry.js +460 -607
  636. package/dist/esm/ion-avatar_3.entry.js +19 -125
  637. package/dist/esm/ion-back-button.entry.js +64 -49
  638. package/dist/esm/ion-backdrop.entry.js +23 -22
  639. package/dist/esm/ion-breadcrumb_2.entry.js +211 -169
  640. package/dist/esm/ion-button_2.entry.js +152 -117
  641. package/dist/esm/ion-card_5.entry.js +109 -79
  642. package/dist/esm/ion-checkbox.entry.js +163 -129
  643. package/dist/esm/ion-chip.entry.js +21 -56
  644. package/dist/esm/ion-col_3.entry.js +186 -61
  645. package/dist/esm/ion-datetime-button.entry.js +255 -247
  646. package/dist/esm/ion-datetime.entry.js +2768 -0
  647. package/dist/esm/ion-fab_3.entry.js +154 -112
  648. package/dist/esm/ion-img.entry.js +34 -16
  649. package/dist/esm/ion-infinite-scroll_2.entry.js +108 -156
  650. package/dist/esm/ion-input-otp.entry.js +435 -437
  651. package/dist/esm/ion-input-password-toggle.entry.js +40 -64
  652. package/dist/esm/ion-input.entry.js +349 -309
  653. package/dist/esm/ion-item-option_3.entry.js +136 -511
  654. package/dist/esm/ion-item_8.entry.js +217 -189
  655. package/dist/esm/ion-loading.entry.js +151 -68
  656. package/dist/esm/ion-menu_3.entry.js +181 -137
  657. package/dist/esm/ion-modal.entry.js +528 -458
  658. package/dist/esm/ion-nav_2.entry.js +103 -163
  659. package/dist/esm/ion-picker-column-option.entry.js +39 -39
  660. package/dist/esm/ion-picker-column.entry.js +421 -409
  661. package/dist/esm/ion-picker.entry.js +405 -400
  662. package/dist/esm/ion-popover.entry.js +323 -211
  663. package/dist/esm/ion-progress-bar.entry.js +35 -47
  664. package/dist/esm/ion-radio_2.entry.js +216 -161
  665. package/dist/esm/ion-range.entry.js +307 -249
  666. package/dist/esm/ion-refresher_2.entry.js +174 -121
  667. package/dist/esm/ion-reorder_2.entry.js +59 -53
  668. package/dist/esm/ion-ripple-effect.entry.js +18 -26
  669. package/dist/esm/ion-route_4.entry.js +178 -75
  670. package/dist/esm/ion-searchbar.entry.js +308 -331
  671. package/dist/esm/ion-segment-content.entry.js +2 -2
  672. package/dist/esm/ion-segment-view.entry.js +28 -27
  673. package/dist/esm/ion-segment_2.entry.js +177 -141
  674. package/dist/esm/ion-select-modal.entry.js +49 -69
  675. package/dist/esm/ion-select_3.entry.js +507 -429
  676. package/dist/esm/ion-spinner.entry.js +28 -36
  677. package/dist/esm/ion-split-pane.entry.js +34 -25
  678. package/dist/esm/ion-tab-bar_2.entry.js +115 -178
  679. package/dist/esm/ion-tab_2.entry.js +54 -29
  680. package/dist/esm/ion-text.entry.js +13 -7
  681. package/dist/esm/ion-textarea.entry.js +302 -308
  682. package/dist/esm/ion-toast.entry.js +243 -148
  683. package/dist/esm/ion-toggle.entry.js +184 -187
  684. package/dist/esm/ionic-global-BVB7BrLT.js +151 -0
  685. package/dist/esm/ionic.js +5 -5
  686. package/dist/esm/{ios.transition-C3r-0w96.js → ios.transition-BdhybwLl.js} +14 -20
  687. package/dist/esm/{item-multiple-inputs-C6onMFOo.js → item-multiple-inputs-rU8VaNNg.js} +1 -1
  688. package/dist/esm/{keyboard-BzbtCDwZ.js → keyboard-Cj8mLJeq.js} +4 -5
  689. package/dist/esm/{keyboard-DYGmALa7.js → keyboard-DAF8GNJ9.js} +3 -3
  690. package/dist/esm/keyboard-controller-DEwoa1ev.js +165 -0
  691. package/dist/esm/loader.js +5 -5
  692. package/dist/esm/{md.transition-CPHOF5T9.js → md.transition-B5lqKGCs.js} +8 -10
  693. package/dist/esm/{overlay-control-label-CODBQrPj.js → overlay-control-label-BSQPZ79H.js} +11 -13
  694. package/dist/esm/{overlays-C1NQMs9y.js → overlays-CjWwtvf1.js} +57 -333
  695. package/dist/esm/{select-option-render-BlKZ2H83.js → select-option-render-C4m76VGH.js} +3 -4
  696. package/dist/esm/slot-mutation-controller-u741eD3Z.js +393 -0
  697. package/dist/esm/{status-tap-BueE8Coq.js → status-tap-DpLhkDWs.js} +3 -4
  698. package/dist/esm/{swipe-back-qmvTRnSq.js → swipe-back-cz4-lyG3.js} +5 -6
  699. package/dist/esm/theme-byZM6qHV.js +48 -0
  700. package/dist/esm/validity-DJztqcrH.js +17 -0
  701. package/dist/html.html-data.json +146 -2713
  702. package/dist/ionic/index.esm.js +1 -1
  703. package/dist/ionic/ionic.esm.js +1 -1
  704. package/dist/ionic/p-06533d51.entry.js +4 -0
  705. package/dist/ionic/p-08443c08.entry.js +4 -0
  706. package/dist/ionic/p-0FNc80PN.js +4 -0
  707. package/dist/ionic/p-141f5b47.entry.js +4 -0
  708. package/dist/ionic/p-14a5e8f5.entry.js +4 -0
  709. package/dist/ionic/p-19269e04.entry.js +4 -0
  710. package/dist/ionic/p-19abbc33.entry.js +4 -0
  711. package/dist/ionic/p-1edf0573.entry.js +4 -0
  712. package/dist/ionic/p-40424a88.entry.js +4 -0
  713. package/dist/ionic/p-4204184c.entry.js +4 -0
  714. package/dist/ionic/p-4bc3ecdb.entry.js +4 -0
  715. package/dist/ionic/p-4eOQC00Z.js +4 -0
  716. package/dist/ionic/p-4eed9ca1.entry.js +4 -0
  717. package/dist/ionic/p-53bac1c9.entry.js +4 -0
  718. package/dist/ionic/p-5506caeb.entry.js +4 -0
  719. package/dist/ionic/p-5521dc1f.entry.js +4 -0
  720. package/dist/ionic/p-5993a77f.entry.js +4 -0
  721. package/dist/ionic/p-5c3626de.entry.js +4 -0
  722. package/dist/ionic/p-5d3b411c.entry.js +4 -0
  723. package/dist/ionic/p-60576951.entry.js +4 -0
  724. package/dist/ionic/p-7116e558.entry.js +4 -0
  725. package/dist/ionic/p-711a8319.entry.js +4 -0
  726. package/dist/ionic/p-71419a55.entry.js +4 -0
  727. package/dist/ionic/p-79325ffe.entry.js +4 -0
  728. package/dist/ionic/p-7bb3e957.entry.js +4 -0
  729. package/dist/ionic/p-82525fb0.entry.js +4 -0
  730. package/dist/ionic/p-84a38904.entry.js +4 -0
  731. package/dist/ionic/p-865fa114.entry.js +4 -0
  732. package/dist/ionic/p-8e1d9e3a.entry.js +4 -0
  733. package/dist/ionic/p-8f204f1e.entry.js +4 -0
  734. package/dist/ionic/p-9055e897.entry.js +4 -0
  735. package/dist/ionic/p-9658e083.entry.js +4 -0
  736. package/dist/ionic/p-988baee1.entry.js +4 -0
  737. package/dist/ionic/p-9nmHvEvw.js +4 -0
  738. package/dist/ionic/p-B-FxiyeI.js +4 -0
  739. package/dist/ionic/p-BB0LlG4y.js +4 -0
  740. package/dist/ionic/p-BMPN55of.js +4 -0
  741. package/dist/ionic/p-BQ8oNV0v.js +4 -0
  742. package/dist/ionic/p-BSQPZ79H.js +4 -0
  743. package/dist/ionic/p-BhamHSw3.js +4 -0
  744. package/dist/ionic/p-BjvtSsVI.js +4 -0
  745. package/dist/ionic/p-BkfAWuv6.js +4 -0
  746. package/dist/ionic/p-BmVRXR1y.js +4 -0
  747. package/dist/ionic/p-BvabGprD.js +4 -0
  748. package/{components/p-Va26YR7l.js → dist/ionic/p-BwIp10KV.js} +1 -1
  749. package/dist/ionic/p-C-94tAim.js +4 -0
  750. package/dist/ionic/p-C6eME8Ey.js +4 -0
  751. package/dist/ionic/p-CIGNaXM1.js +4 -0
  752. package/dist/ionic/p-CKUuSnDR.js +4 -0
  753. package/dist/ionic/p-CMRtMbJc.js +4 -0
  754. package/dist/ionic/p-CPcPmkGv.js +4 -0
  755. package/dist/ionic/p-CQ_4TirR.js +4 -0
  756. package/dist/ionic/p-CaRuIadB.js +4 -0
  757. package/dist/ionic/p-Cdjxf_yg.js +4 -0
  758. package/dist/ionic/p-ChhhtsGZ.js +5 -0
  759. package/dist/ionic/p-CmKf4pgI.js +4 -0
  760. package/dist/ionic/p-D5t_-oMk.js +4 -0
  761. package/dist/ionic/p-D94b61er.js +4 -0
  762. package/dist/ionic/p-DAztxQR0.js +4 -0
  763. package/dist/ionic/p-DCI3rXQo.js +4 -0
  764. package/dist/ionic/p-DDhtUaaA.js +4 -0
  765. package/dist/ionic/p-DJztqcrH.js +4 -0
  766. package/dist/ionic/p-DWCzVL3Y.js +4 -0
  767. package/dist/ionic/p-DkUB-ROc.js +4 -0
  768. package/dist/ionic/p-Dn0mqQ_R.js +4 -0
  769. package/dist/ionic/p-I3In7hMC.js +4 -0
  770. package/dist/ionic/p-T71k3C35.js +4 -0
  771. package/dist/ionic/p-TXPDHL13.js +4 -0
  772. package/dist/ionic/p-ZjP4CjeZ.js +4 -0
  773. package/dist/ionic/p-a71232d6.entry.js +4 -0
  774. package/dist/ionic/p-a73d8742.entry.js +4 -0
  775. package/dist/ionic/p-a8421d18.entry.js +4 -0
  776. package/dist/ionic/p-a8c2c343.entry.js +4 -0
  777. package/dist/ionic/p-acf0a6af.entry.js +4 -0
  778. package/dist/ionic/p-ad98e3ff.entry.js +4 -0
  779. package/dist/ionic/p-af5166f5.entry.js +4 -0
  780. package/dist/ionic/p-bc2bad5f.entry.js +4 -0
  781. package/dist/ionic/p-be08d500.entry.js +4 -0
  782. package/dist/ionic/p-be9a4f51.entry.js +4 -0
  783. package/dist/ionic/p-byZM6qHV.js +4 -0
  784. package/dist/ionic/p-ccc5044d.entry.js +4 -0
  785. package/dist/ionic/p-ce32912b.entry.js +4 -0
  786. package/dist/ionic/p-ded69ceb.entry.js +4 -0
  787. package/dist/ionic/p-e0c6e31e.entry.js +4 -0
  788. package/dist/ionic/p-e1e5b507.entry.js +4 -0
  789. package/dist/ionic/p-e8c3e08a.entry.js +4 -0
  790. package/dist/ionic/p-ed5d540d.entry.js +4 -0
  791. package/dist/ionic/p-f046aa37.entry.js +4 -0
  792. package/dist/ionic/p-f2802440.entry.js +4 -0
  793. package/dist/ionic/p-f402f5a4.entry.js +4 -0
  794. package/dist/ionic/p-fe1bfbcf.entry.js +4 -0
  795. package/dist/types/components/accordion/accordion.d.ts +3 -6
  796. package/dist/types/components/accordion-group/accordion-group.d.ts +1 -12
  797. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +7 -3
  798. package/dist/types/components/action-sheet/action-sheet.d.ts +2 -3
  799. package/dist/types/components/alert/alert-interface.d.ts +7 -3
  800. package/dist/types/components/alert/alert.d.ts +2 -3
  801. package/dist/types/components/app/app.d.ts +5 -4
  802. package/dist/types/components/avatar/avatar.d.ts +0 -32
  803. package/dist/types/components/back-button/back-button.d.ts +1 -2
  804. package/dist/types/components/backdrop/backdrop.d.ts +0 -4
  805. package/dist/types/components/badge/badge.d.ts +1 -34
  806. package/dist/types/components/breadcrumb/breadcrumb.d.ts +1 -4
  807. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  808. package/dist/types/components/button/button.d.ts +8 -23
  809. package/dist/types/components/buttons/buttons.d.ts +1 -5
  810. package/dist/types/components/card/card.d.ts +1 -8
  811. package/dist/types/components/card-content/card-content.d.ts +1 -2
  812. package/dist/types/components/card-header/card-header.d.ts +2 -3
  813. package/dist/types/components/card-subtitle/card-subtitle.d.ts +1 -2
  814. package/dist/types/components/card-title/card-title.d.ts +1 -2
  815. package/dist/types/components/checkbox/checkbox.d.ts +4 -14
  816. package/dist/types/components/chip/chip.d.ts +1 -26
  817. package/dist/types/components/col/col.d.ts +5 -52
  818. package/dist/types/components/content/content.d.ts +0 -3
  819. package/dist/types/components/datetime/datetime.d.ts +1 -26
  820. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  821. package/dist/types/components/datetime-button/datetime-button.d.ts +1 -2
  822. package/dist/types/components/fab/fab.d.ts +0 -4
  823. package/dist/types/components/fab-button/fab-button.d.ts +3 -5
  824. package/dist/types/components/fab-list/fab-list.d.ts +0 -4
  825. package/dist/types/components/footer/footer.d.ts +3 -20
  826. package/dist/types/components/grid/grid.d.ts +0 -4
  827. package/dist/types/components/header/header.d.ts +3 -26
  828. package/dist/types/components/header/header.utils.d.ts +5 -4
  829. package/dist/types/components/img/img.d.ts +1 -2
  830. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -21
  831. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +0 -4
  832. package/dist/types/components/input/input.d.ts +17 -40
  833. package/dist/types/components/input-otp/input-otp.d.ts +0 -37
  834. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +0 -2
  835. package/dist/types/components/item/item.d.ts +4 -11
  836. package/dist/types/components/item-divider/item-divider.d.ts +1 -2
  837. package/dist/types/components/item-group/item-group.d.ts +0 -4
  838. package/dist/types/components/item-option/item-option.d.ts +1 -18
  839. package/dist/types/components/item-options/item-options.d.ts +0 -4
  840. package/dist/types/components/item-sliding/item-sliding.d.ts +1 -47
  841. package/dist/types/components/item-sliding/test/test.utils.d.ts +0 -13
  842. package/dist/types/components/label/label.d.ts +1 -2
  843. package/dist/types/components/list/list.d.ts +1 -15
  844. package/dist/types/components/list-header/list-header.d.ts +1 -2
  845. package/dist/types/components/loading/loading-interface.d.ts +7 -2
  846. package/dist/types/components/loading/loading.d.ts +2 -3
  847. package/dist/types/components/menu/menu.d.ts +0 -3
  848. package/dist/types/components/menu-button/menu-button.d.ts +1 -3
  849. package/dist/types/components/menu-toggle/menu-toggle.d.ts +0 -3
  850. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  851. package/dist/types/components/modal/modal-interface.d.ts +16 -4
  852. package/dist/types/components/modal/modal.d.ts +12 -15
  853. package/dist/types/components/nav/nav-interface.d.ts +1 -10
  854. package/dist/types/components/nav/nav.d.ts +3 -27
  855. package/dist/types/components/nav-link/nav-link.d.ts +0 -4
  856. package/dist/types/components/note/note.d.ts +1 -2
  857. package/dist/types/components/picker/picker.d.ts +1 -2
  858. package/dist/types/components/picker-column/picker-column.d.ts +1 -2
  859. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -4
  860. package/dist/types/components/popover/popover-interface.d.ts +6 -3
  861. package/dist/types/components/popover/popover.d.ts +5 -6
  862. package/dist/types/components/progress-bar/progress-bar.d.ts +1 -10
  863. package/dist/types/components/radio/radio.d.ts +1 -2
  864. package/dist/types/components/radio-group/radio-group.d.ts +0 -12
  865. package/dist/types/components/range/range.d.ts +1 -2
  866. package/dist/types/components/refresher/refresher.d.ts +1 -2
  867. package/dist/types/components/refresher-content/refresher-content.d.ts +0 -4
  868. package/dist/types/components/reorder/reorder.d.ts +0 -9
  869. package/dist/types/components/reorder-group/reorder-group.d.ts +0 -4
  870. package/dist/types/components/ripple-effect/ripple-effect.d.ts +0 -4
  871. package/dist/types/components/route/route.d.ts +1 -5
  872. package/dist/types/components/router/router.d.ts +0 -4
  873. package/dist/types/components/router-link/router-link.d.ts +0 -4
  874. package/dist/types/components/router-outlet/router-outlet.d.ts +8 -4
  875. package/dist/types/components/row/row.d.ts +0 -4
  876. package/dist/types/components/searchbar/searchbar.d.ts +11 -57
  877. package/dist/types/components/segment/segment.d.ts +1 -2
  878. package/dist/types/components/segment-button/segment-button.d.ts +1 -2
  879. package/dist/types/components/select/select.d.ts +26 -55
  880. package/dist/types/components/select-modal/select-modal.d.ts +0 -8
  881. package/dist/types/components/select-option/select-option.d.ts +4 -7
  882. package/dist/types/components/select-popover/select-popover.d.ts +0 -3
  883. package/dist/types/components/skeleton-text/skeleton-text.d.ts +0 -4
  884. package/dist/types/components/spinner/spinner.d.ts +0 -15
  885. package/dist/types/components/split-pane/split-pane.d.ts +0 -4
  886. package/dist/types/components/tab/tab.d.ts +0 -4
  887. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +0 -1
  888. package/dist/types/components/tab-bar/tab-bar.d.ts +3 -41
  889. package/dist/types/components/tab-button/tab-button.d.ts +1 -12
  890. package/dist/types/components/tabs/tabs.d.ts +0 -3
  891. package/dist/types/components/text/text.d.ts +1 -2
  892. package/dist/types/components/textarea/textarea.d.ts +16 -58
  893. package/dist/types/components/thumbnail/thumbnail.d.ts +0 -4
  894. package/dist/types/components/title/title.d.ts +0 -4
  895. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  896. package/dist/types/components/toast/toast-interface.d.ts +7 -3
  897. package/dist/types/components/toast/toast.d.ts +2 -19
  898. package/dist/types/components/toggle/toggle.d.ts +1 -15
  899. package/dist/types/components/toolbar/toolbar.d.ts +3 -43
  900. package/dist/types/components.d.ts +263 -2171
  901. package/dist/types/global/ionic-global.d.ts +2 -28
  902. package/dist/types/index.d.ts +1 -1
  903. package/dist/types/interface.d.ts +0 -4
  904. package/dist/types/utils/config.d.ts +3 -114
  905. package/dist/types/utils/focus-trap.d.ts +1 -1
  906. package/dist/types/utils/focus-visible.d.ts +0 -13
  907. package/dist/types/utils/forms/index.d.ts +1 -1
  908. package/dist/types/utils/forms/start-container-controller.d.ts +34 -0
  909. package/dist/types/utils/forms/validity.d.ts +0 -7
  910. package/dist/types/utils/helpers.d.ts +0 -22
  911. package/dist/types/utils/logging/index.d.ts +2 -1
  912. package/dist/types/utils/overlay-control-label.d.ts +9 -11
  913. package/dist/types/utils/overlays-interface.d.ts +1 -31
  914. package/dist/types/utils/overlays.d.ts +12 -10
  915. package/dist/types/utils/test/playwright/drag-element.d.ts +3 -16
  916. package/dist/types/utils/test/playwright/generator.d.ts +2 -31
  917. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  918. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  919. package/dist/types/utils/theme.d.ts +0 -9
  920. package/hydrate/index.js +10577 -12217
  921. package/hydrate/index.mjs +10577 -12217
  922. package/package.json +56 -17
  923. package/components/ion-divider.d.ts +0 -11
  924. package/components/ion-divider.js +0 -4
  925. package/components/ion-gallery-item.d.ts +0 -11
  926. package/components/ion-gallery-item.js +0 -4
  927. package/components/ion-gallery.d.ts +0 -11
  928. package/components/ion-gallery.js +0 -4
  929. package/components/ion-picker-legacy-column.d.ts +0 -11
  930. package/components/ion-picker-legacy-column.js +0 -4
  931. package/components/ion-picker-legacy.d.ts +0 -11
  932. package/components/ion-picker-legacy.js +0 -4
  933. package/components/p-6hUZIMBp.js +0 -4
  934. package/components/p-9mfpAwJh.js +0 -4
  935. package/components/p-B2aAAEfp.js +0 -4
  936. package/components/p-B2lpqDWK.js +0 -4
  937. package/components/p-BDoEcs72.js +0 -4
  938. package/components/p-BDqjX7Z_.js +0 -4
  939. package/components/p-BE21dB_a.js +0 -4
  940. package/components/p-BFpXpzD-.js +0 -4
  941. package/components/p-BTEOs1at.js +0 -4
  942. package/components/p-BUNIyvqe.js +0 -4
  943. package/components/p-BYSs-jZz.js +0 -4
  944. package/components/p-BYoGvMgh.js +0 -4
  945. package/components/p-BYrCPOBM.js +0 -4
  946. package/components/p-BbVhJs-a.js +0 -4
  947. package/components/p-BhRXIcSN.js +0 -4
  948. package/components/p-BjW8SOqw.js +0 -4
  949. package/components/p-BsiHrVPa.js +0 -4
  950. package/components/p-BwKpO3Is.js +0 -4
  951. package/components/p-Bz8jnuiy.js +0 -4
  952. package/components/p-C-Ea1l5K.js +0 -4
  953. package/components/p-C3X10Pc6.js +0 -4
  954. package/components/p-C53feagD.js +0 -4
  955. package/components/p-CA4M5WkT.js +0 -4
  956. package/components/p-CH6jbAEI.js +0 -4
  957. package/components/p-CJE5t2qs.js +0 -4
  958. package/components/p-CODBQrPj.js +0 -4
  959. package/components/p-CUbb1HkU.js +0 -4
  960. package/components/p-CVYFPBs-.js +0 -4
  961. package/components/p-CVoLDZ7z.js +0 -4
  962. package/components/p-CZrORZXS.js +0 -4
  963. package/components/p-Cc3oC60a.js +0 -4
  964. package/components/p-Cl0B-RWe.js +0 -4
  965. package/components/p-CmoUesXp.js +0 -4
  966. package/components/p-CyNW8ypn.js +0 -4
  967. package/components/p-CzxyxYID.js +0 -4
  968. package/components/p-D0Iqw6OZ.js +0 -4
  969. package/components/p-D0LT3Z3i.js +0 -4
  970. package/components/p-D1t981Ih.js +0 -4
  971. package/components/p-D6tqrIYY.js +0 -4
  972. package/components/p-D9C5yWpF.js +0 -4
  973. package/components/p-DCRXgAoM.js +0 -4
  974. package/components/p-DL5wyRub.js +0 -4
  975. package/components/p-DQlXUUDh.js +0 -4
  976. package/components/p-DRWN7QM2.js +0 -4
  977. package/components/p-DaJxRxSQ.js +0 -4
  978. package/components/p-DbmfFkd1.js +0 -4
  979. package/components/p-Dhi5xtNS.js +0 -4
  980. package/components/p-DnwLgh9U.js +0 -4
  981. package/components/p-DoZB3DcY.js +0 -4
  982. package/components/p-DrrpZB81.js +0 -4
  983. package/components/p-DrzWRqnG.js +0 -4
  984. package/components/p-DylrHLJF.js +0 -4
  985. package/components/p-Dypq4kXE.js +0 -4
  986. package/components/p-DzeMJvWL.js +0 -4
  987. package/components/p-Dzk4Tr0X.js +0 -4
  988. package/components/p-Rkm2AOZ2.js +0 -4
  989. package/components/p-UYngqo1f.js +0 -4
  990. package/components/p-asUhrzOB.js +0 -4
  991. package/components/p-fIOYmaqA.js +0 -4
  992. package/components/p-jlwpz7Ms.js +0 -4
  993. package/components/p-kInyVu79.js +0 -4
  994. package/components/p-miSYSxcc.js +0 -4
  995. package/components/p-paDbTUL9.js +0 -4
  996. package/components/p-vXpMhGrs.js +0 -4
  997. package/components/p-znZTPd7u.js +0 -4
  998. package/css/ionic/bundle.ionic.css +0 -1
  999. package/css/ionic/bundle.ionic.css.map +0 -1
  1000. package/css/ionic/core.ionic.css +0 -1
  1001. package/css/ionic/core.ionic.css.map +0 -1
  1002. package/css/ionic/global.bundle.ionic.css +0 -1
  1003. package/css/ionic/global.bundle.ionic.css.map +0 -1
  1004. package/css/ionic/ionic-swiper.ionic.css +0 -1
  1005. package/css/ionic/ionic-swiper.ionic.css.map +0 -1
  1006. package/css/ionic/link.ionic.css +0 -1
  1007. package/css/ionic/link.ionic.css.map +0 -1
  1008. package/css/ionic/structure.ionic.css +0 -1
  1009. package/css/ionic/structure.ionic.css.map +0 -1
  1010. package/css/ionic/typography.ionic.css +0 -1
  1011. package/css/ionic/typography.ionic.css.map +0 -1
  1012. package/css/ionic/utils.bundle.ionic.css +0 -1
  1013. package/css/ionic/utils.bundle.ionic.css.map +0 -1
  1014. package/dist/cjs/caret-down-vtVgfXIs.js +0 -8
  1015. package/dist/cjs/caret-left-CxZXLRv5.js +0 -8
  1016. package/dist/cjs/caret-right-CRCgv98E.js +0 -8
  1017. package/dist/cjs/clear-button-press-controller-2hAy_qdm.js +0 -45
  1018. package/dist/cjs/input.utils-CYZZsbdf.js +0 -150
  1019. package/dist/cjs/ion-datetime_3.cjs.entry.js +0 -3242
  1020. package/dist/cjs/ion-divider.cjs.entry.js +0 -51
  1021. package/dist/cjs/ion-gallery-item.cjs.entry.js +0 -59
  1022. package/dist/cjs/ion-gallery.cjs.entry.js +0 -607
  1023. package/dist/cjs/ionic-global-DvEcO0tQ.js +0 -519
  1024. package/dist/cjs/list-a-7GSA6K.js +0 -8
  1025. package/dist/cjs/notch-controller-CFlPw7ER.js +0 -155
  1026. package/dist/cjs/scroll-hide-controller-DAf_DwKc.js +0 -345
  1027. package/dist/cjs/validity-QmuwEptc.js +0 -51
  1028. package/dist/cjs/x-BTF99yFH.js +0 -8
  1029. package/dist/collection/components/accordion/accordion.ionic.css +0 -201
  1030. package/dist/collection/components/accordion-group/accordion-group.ionic.css +0 -93
  1031. package/dist/collection/components/action-sheet/action-sheet.ionic.css +0 -494
  1032. package/dist/collection/components/alert/alert.ionic.css +0 -787
  1033. package/dist/collection/components/avatar/avatar.ionic.css +0 -385
  1034. package/dist/collection/components/backdrop/backdrop.ionic.css +0 -109
  1035. package/dist/collection/components/badge/badge.ionic.css +0 -272
  1036. package/dist/collection/components/button/button.ionic.css +0 -644
  1037. package/dist/collection/components/buttons/buttons.ionic.css +0 -97
  1038. package/dist/collection/components/card/card.ionic.css +0 -144
  1039. package/dist/collection/components/card-content/card-content.ionic.css +0 -89
  1040. package/dist/collection/components/card-header/card-header.ionic.css +0 -85
  1041. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +0 -144
  1042. package/dist/collection/components/checkbox/checkbox.ionic.css +0 -543
  1043. package/dist/collection/components/chip/chip.ionic.css +0 -217
  1044. package/dist/collection/components/datetime/datetime.ionic.css +0 -703
  1045. package/dist/collection/components/divider/divider.ionic.css +0 -148
  1046. package/dist/collection/components/divider/divider.ios.css +0 -87
  1047. package/dist/collection/components/divider/divider.js +0 -94
  1048. package/dist/collection/components/divider/divider.md.css +0 -87
  1049. package/dist/collection/components/footer/footer-interface.js +0 -1
  1050. package/dist/collection/components/gallery/gallery-constants.js +0 -12
  1051. package/dist/collection/components/gallery/gallery-interface.js +0 -1
  1052. package/dist/collection/components/gallery/gallery.css +0 -15
  1053. package/dist/collection/components/gallery/gallery.js +0 -679
  1054. package/dist/collection/components/gallery/test/utils.js +0 -100
  1055. package/dist/collection/components/gallery-item/gallery-item.css +0 -49
  1056. package/dist/collection/components/gallery-item/gallery-item.js +0 -99
  1057. package/dist/collection/components/header/header-interface.js +0 -1
  1058. package/dist/collection/components/header/header.ionic.css +0 -250
  1059. package/dist/collection/components/input/input.ionic.css +0 -891
  1060. package/dist/collection/components/input-otp/input-otp.ionic.css +0 -371
  1061. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +0 -78
  1062. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +0 -61
  1063. package/dist/collection/components/item/item.ionic.css +0 -496
  1064. package/dist/collection/components/item-option/item-option.ionic.css +0 -277
  1065. package/dist/collection/components/item-options/item-options.ionic.css +0 -221
  1066. package/dist/collection/components/item-sliding/item-sliding.ionic.css +0 -211
  1067. package/dist/collection/components/list/list.ionic.css +0 -212
  1068. package/dist/collection/components/list-header/list-header.ionic.css +0 -190
  1069. package/dist/collection/components/menu-button/menu-button.ionic.css +0 -236
  1070. package/dist/collection/components/modal/animations/ionic.enter.js +0 -40
  1071. package/dist/collection/components/modal/animations/ionic.leave.js +0 -28
  1072. package/dist/collection/components/modal/modal.ionic.css +0 -255
  1073. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  1074. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  1075. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  1076. package/dist/collection/components/picker-legacy/picker.ios.css +0 -312
  1077. package/dist/collection/components/picker-legacy/picker.js +0 -891
  1078. package/dist/collection/components/picker-legacy/picker.md.css +0 -299
  1079. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -243
  1080. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  1081. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -234
  1082. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  1083. package/dist/collection/components/popover/popover.ionic.css +0 -290
  1084. package/dist/collection/components/progress-bar/progress-bar.ionic.css +0 -287
  1085. package/dist/collection/components/radio/radio.ionic.css +0 -422
  1086. package/dist/collection/components/radio-group/radio-group.ionic.css +0 -119
  1087. package/dist/collection/components/range/range.ionic.css +0 -567
  1088. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +0 -215
  1089. package/dist/collection/components/searchbar/searchbar.ionic.css +0 -622
  1090. package/dist/collection/components/segment/segment.ionic.css +0 -115
  1091. package/dist/collection/components/segment-button/segment-button.ionic.css +0 -352
  1092. package/dist/collection/components/select/select.ionic.css +0 -809
  1093. package/dist/collection/components/select-modal/select-modal.ionic.css +0 -257
  1094. package/dist/collection/components/select-popover/select-popover.ionic.css +0 -255
  1095. package/dist/collection/components/spinner/spinner.native.css +0 -199
  1096. package/dist/collection/components/tab-bar/tab-bar.ionic.css +0 -249
  1097. package/dist/collection/components/tab-button/tab-button.ionic.css +0 -373
  1098. package/dist/collection/components/textarea/textarea.ionic.css +0 -898
  1099. package/dist/collection/components/title/title.ionic.css +0 -127
  1100. package/dist/collection/components/toast/toast.ionic.css +0 -394
  1101. package/dist/collection/components/toggle/toggle.ionic.css +0 -512
  1102. package/dist/collection/components/toolbar/test/image.svg +0 -1
  1103. package/dist/collection/components/toolbar/toolbar.ionic.css +0 -249
  1104. package/dist/collection/utils/css-value-validation.js +0 -39
  1105. package/dist/collection/utils/forms/clear-button-press-controller.js +0 -40
  1106. package/dist/collection/utils/scroll-hide-controller.js +0 -178
  1107. package/dist/esm/caret-down-D1t981Ih.js +0 -6
  1108. package/dist/esm/caret-left-fIOYmaqA.js +0 -6
  1109. package/dist/esm/caret-right-BYSs-jZz.js +0 -6
  1110. package/dist/esm/clear-button-press-controller-C79TPm5p.js +0 -43
  1111. package/dist/esm/input.utils-fs4B7WL5.js +0 -147
  1112. package/dist/esm/ion-datetime_3.entry.js +0 -3238
  1113. package/dist/esm/ion-divider.entry.js +0 -49
  1114. package/dist/esm/ion-gallery-item.entry.js +0 -57
  1115. package/dist/esm/ion-gallery.entry.js +0 -605
  1116. package/dist/esm/ionic-global-CEwbmRLz.js +0 -508
  1117. package/dist/esm/list-Dhi5xtNS.js +0 -6
  1118. package/dist/esm/notch-controller-CsbpmbOz.js +0 -153
  1119. package/dist/esm/scroll-hide-controller-CfbtPBWv.js +0 -342
  1120. package/dist/esm/theme-DaJxRxSQ.js +0 -67
  1121. package/dist/esm/validity-BjW8SOqw.js +0 -48
  1122. package/dist/esm/x-BDqjX7Z_.js +0 -6
  1123. package/dist/ionic/p--sroV-k-.js +0 -4
  1124. package/dist/ionic/p-00731d20.entry.js +0 -4
  1125. package/dist/ionic/p-03c20a50.entry.js +0 -4
  1126. package/dist/ionic/p-03ec6673.entry.js +0 -4
  1127. package/dist/ionic/p-0405ec57.entry.js +0 -4
  1128. package/dist/ionic/p-04f16322.entry.js +0 -4
  1129. package/dist/ionic/p-09123f89.entry.js +0 -4
  1130. package/dist/ionic/p-15028853.entry.js +0 -4
  1131. package/dist/ionic/p-16c5db90.entry.js +0 -4
  1132. package/dist/ionic/p-1d1dfb68.entry.js +0 -4
  1133. package/dist/ionic/p-231572a0.entry.js +0 -4
  1134. package/dist/ionic/p-2740db6e.entry.js +0 -4
  1135. package/dist/ionic/p-2a6d4601.entry.js +0 -4
  1136. package/dist/ionic/p-2d8fe33c.entry.js +0 -4
  1137. package/dist/ionic/p-2dbc50d9.entry.js +0 -4
  1138. package/dist/ionic/p-32d3095c.entry.js +0 -4
  1139. package/dist/ionic/p-356cd619.entry.js +0 -4
  1140. package/dist/ionic/p-391bdb60.entry.js +0 -4
  1141. package/dist/ionic/p-3b2ab5b4.entry.js +0 -4
  1142. package/dist/ionic/p-4e3e750a.entry.js +0 -4
  1143. package/dist/ionic/p-4fee0df6.entry.js +0 -4
  1144. package/dist/ionic/p-547d010c.entry.js +0 -4
  1145. package/dist/ionic/p-54895118.entry.js +0 -4
  1146. package/dist/ionic/p-6163d04d.entry.js +0 -4
  1147. package/dist/ionic/p-679c1448.entry.js +0 -4
  1148. package/dist/ionic/p-6de524e5.entry.js +0 -4
  1149. package/dist/ionic/p-764d7ea2.entry.js +0 -4
  1150. package/dist/ionic/p-7k7Q1A38.js +0 -4
  1151. package/dist/ionic/p-81BMEE8Q.js +0 -4
  1152. package/dist/ionic/p-8d6d7acb.entry.js +0 -4
  1153. package/dist/ionic/p-96732fe2.entry.js +0 -4
  1154. package/dist/ionic/p-96c4c1b9.entry.js +0 -4
  1155. package/dist/ionic/p-9745f518.entry.js +0 -4
  1156. package/dist/ionic/p-9a40af3c.entry.js +0 -4
  1157. package/dist/ionic/p-9e725104.entry.js +0 -4
  1158. package/dist/ionic/p-B4Kq2YNk.js +0 -4
  1159. package/dist/ionic/p-BDqjX7Z_.js +0 -4
  1160. package/dist/ionic/p-BTEOs1at.js +0 -4
  1161. package/dist/ionic/p-BYSs-jZz.js +0 -4
  1162. package/dist/ionic/p-BbWo-T8F.js +0 -4
  1163. package/dist/ionic/p-BjW8SOqw.js +0 -4
  1164. package/dist/ionic/p-Bvz8PHo5.js +0 -4
  1165. package/dist/ionic/p-BwKpO3Is.js +0 -4
  1166. package/dist/ionic/p-C0EQceqV.js +0 -5
  1167. package/dist/ionic/p-C1_a9uRb.js +0 -4
  1168. package/dist/ionic/p-C53feagD.js +0 -4
  1169. package/dist/ionic/p-C6WD6qSF.js +0 -4
  1170. package/dist/ionic/p-C7urd_wE.js +0 -4
  1171. package/dist/ionic/p-CCgRIJJv.js +0 -4
  1172. package/dist/ionic/p-CEkwLb3L.js +0 -4
  1173. package/dist/ionic/p-CGFf6My7.js +0 -4
  1174. package/dist/ionic/p-CLUwRxij.js +0 -4
  1175. package/dist/ionic/p-CODBQrPj.js +0 -4
  1176. package/dist/ionic/p-CP_sVwEm.js +0 -4
  1177. package/dist/ionic/p-CSMWpRc0.js +0 -4
  1178. package/dist/ionic/p-CYYo93al.js +0 -4
  1179. package/dist/ionic/p-Cipl19Qe.js +0 -4
  1180. package/dist/ionic/p-Cl0B-RWe.js +0 -4
  1181. package/dist/ionic/p-CnIzWLAn.js +0 -4
  1182. package/dist/ionic/p-Cvvva6Z7.js +0 -4
  1183. package/dist/ionic/p-D1t981Ih.js +0 -4
  1184. package/dist/ionic/p-DINFwXlp.js +0 -4
  1185. package/dist/ionic/p-DIvCXVmD.js +0 -4
  1186. package/dist/ionic/p-DTsDGZPd.js +0 -4
  1187. package/dist/ionic/p-DaJxRxSQ.js +0 -4
  1188. package/dist/ionic/p-Dhi5xtNS.js +0 -4
  1189. package/dist/ionic/p-DtQgCTtW.js +0 -4
  1190. package/dist/ionic/p-DuRx6DeQ.js +0 -4
  1191. package/dist/ionic/p-YGLqXqFd.js +0 -4
  1192. package/dist/ionic/p-YIsE5bNG.js +0 -4
  1193. package/dist/ionic/p-a61c2ace.entry.js +0 -4
  1194. package/dist/ionic/p-abb516e3.entry.js +0 -4
  1195. package/dist/ionic/p-b54edee6.entry.js +0 -4
  1196. package/dist/ionic/p-c076ac5c.entry.js +0 -4
  1197. package/dist/ionic/p-c4ff25cb.entry.js +0 -4
  1198. package/dist/ionic/p-c7279756.entry.js +0 -4
  1199. package/dist/ionic/p-c7ebed50.entry.js +0 -4
  1200. package/dist/ionic/p-cd0037e4.entry.js +0 -4
  1201. package/dist/ionic/p-d261938d.entry.js +0 -4
  1202. package/dist/ionic/p-d33dfc12.entry.js +0 -4
  1203. package/dist/ionic/p-d7764330.entry.js +0 -4
  1204. package/dist/ionic/p-defb23a2.entry.js +0 -4
  1205. package/dist/ionic/p-df642ef5.entry.js +0 -4
  1206. package/dist/ionic/p-e2a35249.entry.js +0 -4
  1207. package/dist/ionic/p-e2b952ef.entry.js +0 -4
  1208. package/dist/ionic/p-e77cfd1e.entry.js +0 -4
  1209. package/dist/ionic/p-ecb9d3d3.entry.js +0 -4
  1210. package/dist/ionic/p-efd13adf.entry.js +0 -4
  1211. package/dist/ionic/p-f0904c1d.entry.js +0 -4
  1212. package/dist/ionic/p-f33689f7.entry.js +0 -4
  1213. package/dist/ionic/p-f693efe9.entry.js +0 -4
  1214. package/dist/ionic/p-f788396b.entry.js +0 -4
  1215. package/dist/ionic/p-fIOYmaqA.js +0 -4
  1216. package/dist/ionic/p-fa16fad8.entry.js +0 -4
  1217. package/dist/ionic/p-lMb_45ax.js +0 -4
  1218. package/dist/ionic/p-oadJNPuo.js +0 -4
  1219. package/dist/ionic/p-vXpMhGrs.js +0 -4
  1220. package/dist/ionic/p-wNjWCZVO.js +0 -4
  1221. package/dist/types/components/divider/divider.d.ts +0 -20
  1222. package/dist/types/components/footer/footer-interface.d.ts +0 -1
  1223. package/dist/types/components/gallery/gallery-constants.d.ts +0 -9
  1224. package/dist/types/components/gallery/gallery-interface.d.ts +0 -10
  1225. package/dist/types/components/gallery/gallery.d.ts +0 -218
  1226. package/dist/types/components/gallery/test/utils.d.ts +0 -3
  1227. package/dist/types/components/gallery-item/gallery-item.d.ts +0 -33
  1228. package/dist/types/components/header/header-interface.d.ts +0 -1
  1229. package/dist/types/components/modal/animations/ionic.enter.d.ts +0 -6
  1230. package/dist/types/components/modal/animations/ionic.leave.d.ts +0 -6
  1231. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  1232. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  1233. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  1234. package/dist/types/components/picker-legacy/picker.d.ts +0 -159
  1235. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  1236. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
  1237. package/dist/types/utils/css-value-validation.d.ts +0 -21
  1238. package/dist/types/utils/forms/clear-button-press-controller.d.ts +0 -20
  1239. package/dist/types/utils/scroll-hide-controller.d.ts +0 -56
  1240. /package/dist/collection/components/{refresher-content/refresher-content.css → input-password-toggle/input-password-toggle.css} +0 -0
@@ -3,19 +3,15 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-C1knGA9x.js');
7
- var helpers = require('./helpers-Fh1iXsX9.js');
8
- var validity = require('./validity-QmuwEptc.js');
9
- var dir = require('./dir-Cn0z1rJH.js');
10
- var theme = require('./theme-IlOsGAz7.js');
11
- var ionicGlobal = require('./ionic-global-DvEcO0tQ.js');
12
- require('./focus-visible-BIj-I3-C.js');
6
+ var index = require('./index-uvry__L4.js');
7
+ var helpers = require('./helpers-CaLhEmTE.js');
8
+ var dir = require('./dir-Brx7VkvP.js');
9
+ var theme = require('./theme-Bw0rpaNN.js');
10
+ var ionicGlobal = require('./ionic-global-k6hOWWpn.js');
13
11
 
14
- const inputOtpIonicCss = () => `:host{--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--separator-height:var(--separator-width);--highlight-color:var(--highlight-color-focused);display:block;position:relative}.input-otp-group{-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:var(--min-width)}.native-input{border-radius:var(--border-radius);width:var(--width);min-width:inherit;height:var(--height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);font-family:inherit;font-size:inherit;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.has-focus) .native-input{caret-color:var(--highlight-color)}.input-otp-description{text-align:center}.input-otp-description-hidden{display:none}.input-otp-separator{border-radius:var(--separator-border-radius);-ms-flex-negative:0;flex-shrink:0;width:var(--separator-width);height:var(--separator-height);background:var(--separator-color)}:host(.input-otp-disabled),:host(.input-otp-disabled) .native-input:disabled{cursor:not-allowed}:host(.has-focus) .native-input:focus{--border-color:var(--highlight-color);outline:none}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}:host(.has-focus.ion-valid),:host(.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host{--padding-top:var(--token-space-400, var(--token-scale-400, 16px));--padding-end:var(--token-space-0, var(--token-scale-0, 0px));--padding-bottom:var(--token-space-400, var(--token-scale-400, 16px));--padding-start:var(--token-space-0, var(--token-scale-0, 0px));--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));--min-width:var(--token-scale-1000, 40px);--border-width:var(--token-border-size-025, var(--token-scale-025, 1px));--border-style:var(--token-border-style-solid, solid);--border-color:var(--token-border-input-default, var(--token-primitives-neutral-600, #8c8c8c));--separator-width:var(--token-scale-200, 8px);--separator-border-radius:var(--token-border-radius-full, 999px);--separator-color:var(--token-bg-neutral-subtle-press, var(--token-primitives-neutral-400, #d5d5d5));--highlight-color-focused:var(--token-border-focus-default, var(--token-primitives-blue-400, #b5c0f7));--highlight-color-valid:var(--token-border-success, var(--token-semantics-success-900, var(--token-primitives-green-900, #126f23)));--highlight-color-invalid:var(--token-border-danger-default, var(--token-semantics-danger-800, var(--token-primitives-red-800, #bf2222)));font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-regular, 400);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none}:host(.has-focus) .native-input:focus{--border-width:var(--token-border-size-050, var(--token-scale-050, 2px))}.input-otp-description{font-size:var(--token-font-size-300, 0.75rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-500, var(--token-scale-500, 20px));text-decoration:none;text-transform:none;color:var(--token-text-subtlest, var(--token-primitives-neutral-800, #626262))}:host(.input-otp-size-small){--width:var(--token-scale-1000, 40px);--height:var(--token-scale-1000, 40px)}:host(.input-otp-size-small) .input-otp-group{gap:var(--token-space-200, var(--token-scale-200, 8px))}:host(.input-otp-size-medium){--width:var(--token-scale-1200, 48px);--height:var(--token-scale-1200, 48px)}:host(.input-otp-size-large){--width:var(--token-scale-1400, 56px);--height:var(--token-scale-1400, 56px)}:host(.input-otp-size-medium) .input-otp-group,:host(.input-otp-size-large) .input-otp-group{gap:var(--token-space-300, var(--token-scale-300, 12px))}:host(.input-otp-shape-round){--border-radius:var(--token-round-xl, var(--token-border-radius-400, var(--token-scale-400, 16px)))}:host(.input-otp-shape-soft){--border-radius:var(--token-soft-xl, var(--token-border-radius-200, var(--token-scale-200, 8px)))}:host(.input-otp-shape-rectangular){--border-radius:var(--token-rectangular-xl, var(--token-border-radius-0, var(--token-scale-0, 0px)))}:host(.input-otp-fill-outline){--background:var(--token-bg-input-default, var(--token-primitives-base-white, #ffffff))}:host(.input-otp-fill-solid){--border-color:var(--token-bg-input-bold-default, var(--token-primitives-neutral-200, #eae9e9));--background:var(--token-bg-input-bold-default, var(--token-primitives-neutral-200, #eae9e9))}:host(.input-otp-disabled){--color:var(--token-text-disabled, var(--token-primitives-neutral-500, #a2a2a2))}:host(.input-otp-fill-outline.input-otp-disabled){--background:var(--token-bg-input-disabled, var(--token-primitives-neutral-100, #f3f3f3));--border-color:var(--token-border-disabled, var(--token-primitives-neutral-300, #e0e0e0))}:host(.input-otp-fill-outline.input-otp-readonly){--background:var(--token-bg-input-read-only, var(--token-primitives-neutral-100, #f3f3f3))}:host(.input-otp-fill-solid.input-otp-disabled){--border-color:var(--token-bg-input-bold-disabled, var(--token-primitives-neutral-300, #e0e0e0));--background:var(--token-bg-input-bold-disabled, var(--token-primitives-neutral-300, #e0e0e0))}:host(.input-otp-fill-solid.input-otp-readonly){--border-color:var(--token-bg-input-bold-read-only, var(--token-primitives-neutral-300, #e0e0e0));--background:var(--token-bg-input-bold-read-only, var(--token-primitives-neutral-300, #e0e0e0))}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.input-otp-fill-outline.ion-color) .native-input,:host(.input-otp-fill-solid.ion-color) .native-input:focus{border-color:rgba(var(--ion-color-base-rgb), 0.6)}:host(.input-otp-fill-outline.ion-color.ion-invalid) .native-input,:host(.input-otp-fill-solid.ion-color.ion-invalid) .native-input,:host(.input-otp-fill-outline.ion-color.has-focus.ion-invalid) .native-input,:host(.input-otp-fill-solid.ion-color.has-focus.ion-invalid) .native-input{border-color:var(--ion-color-danger, var(--token-bg-danger-base-default, var(--token-semantics-danger-800, var(--token-primitives-red-800, #bf2222))))}:host(.input-otp-fill-outline.ion-color.ion-valid) .native-input,:host(.input-otp-fill-solid.ion-color.ion-valid) .native-input,:host(.input-otp-fill-outline.ion-color.has-focus.ion-valid) .native-input,:host(.input-otp-fill-solid.ion-color.has-focus.ion-valid) .native-input{border-color:var(--ion-color-success, var(--token-bg-success-base-default, var(--token-semantics-success-900, var(--token-primitives-green-900, #126f23))))}:host(.input-otp-fill-outline.input-otp-disabled.ion-color) .native-input{border-color:rgba(var(--ion-color-base-rgb), 0.3)}`;
12
+ const inputOtpIosCss = () => `.sc-ion-input-otp-ios-h{--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--padding-top:16px;--padding-end:0;--padding-bottom:16px;--padding-start:0;--color:initial;--min-width:40px;--separator-width:8px;--separator-height:var(--separator-width);--separator-border-radius:999px;--separator-color:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;font-size:0.875rem}.input-otp-group.sc-ion-input-otp-ios{-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.native-wrapper.sc-ion-input-otp-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:var(--min-width)}.native-input.sc-ion-input-otp-ios{border-radius:var(--border-radius);width:var(--width);min-width:inherit;height:var(--height);border-width:var(--border-width);border-style:solid;border-color:var(--border-color);background:var(--background);color:var(--color);font-size:inherit;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none}.has-focus.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios{caret-color:var(--highlight-color)}.input-otp-description.sc-ion-input-otp-ios{color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem;line-height:1.25rem;text-align:center}.input-otp-description-hidden.sc-ion-input-otp-ios{display:none}.input-otp-separator.sc-ion-input-otp-ios{border-radius:var(--separator-border-radius);-ms-flex-negative:0;flex-shrink:0;width:var(--separator-width);height:var(--separator-height);background:var(--separator-color)}.input-otp-size-small.sc-ion-input-otp-ios-h{--width:40px;--height:40px}.input-otp-size-small.sc-ion-input-otp-ios-h .input-otp-group.sc-ion-input-otp-ios{gap:8px}.input-otp-size-medium.sc-ion-input-otp-ios-h{--width:48px;--height:48px}.input-otp-size-large.sc-ion-input-otp-ios-h{--width:56px;--height:56px}.input-otp-size-medium.sc-ion-input-otp-ios-h .input-otp-group.sc-ion-input-otp-ios,.input-otp-size-large.sc-ion-input-otp-ios-h .input-otp-group.sc-ion-input-otp-ios{gap:12px}.input-otp-shape-round.sc-ion-input-otp-ios-h{--border-radius:16px}.input-otp-shape-soft.sc-ion-input-otp-ios-h{--border-radius:8px}.input-otp-shape-rectangular.sc-ion-input-otp-ios-h{--border-radius:0}.input-otp-fill-outline.sc-ion-input-otp-ios-h{--background:none}.input-otp-fill-solid.sc-ion-input-otp-ios-h{--border-color:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}.input-otp-disabled.sc-ion-input-otp-ios-h{--color:var(--ion-color-step-350, var(--ion-text-color-step-650, #a6a6a6))}.input-otp-fill-outline.input-otp-disabled.sc-ion-input-otp-ios-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.input-otp-disabled.sc-ion-input-otp-ios-h,.input-otp-disabled.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios:disabled{cursor:not-allowed}.has-focus.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios:focus{--border-color:var(--highlight-color);outline:none}.input-otp-fill-outline.input-otp-readonly.sc-ion-input-otp-ios-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}.input-otp-fill-solid.input-otp-disabled.sc-ion-input-otp-ios-h,.input-otp-fill-solid.input-otp-readonly.sc-ion-input-otp-ios-h{--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.ion-touched.ion-invalid.sc-ion-input-otp-ios-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-input-otp-ios-h{--highlight-color:var(--highlight-color-valid)}.has-focus.ion-valid.sc-ion-input-otp-ios-h,.ion-touched.ion-invalid.sc-ion-input-otp-ios-h{--border-color:var(--highlight-color)}.ion-color.sc-ion-input-otp-ios-h{--highlight-color-focused:var(--ion-color-base)}.input-otp-fill-outline.ion-color.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios:focus{border-color:rgba(var(--ion-color-base-rgb), 0.6)}.input-otp-fill-outline.ion-color.ion-invalid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.ion-invalid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-outline.ion-color.has-focus.ion-invalid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.has-focus.ion-invalid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios{border-color:var(--ion-color-danger, #c5000f)}.input-otp-fill-outline.ion-color.ion-valid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.ion-valid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-outline.ion-color.has-focus.ion-valid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.has-focus.ion-valid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios{border-color:var(--ion-color-success, #2dd55b)}.input-otp-fill-outline.input-otp-disabled.ion-color.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios{border-color:rgba(var(--ion-color-base-rgb), 0.3)}.sc-ion-input-otp-ios-h{--border-width:0.55px}.has-focus.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios:focus{--border-width:1px}.input-otp-fill-outline.sc-ion-input-otp-ios-h{--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))))}`;
15
13
 
16
- const inputOtpIosCss = () => `:host{--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--separator-height:var(--separator-width);--highlight-color:var(--highlight-color-focused);display:block;position:relative}.input-otp-group{-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:var(--min-width)}.native-input{border-radius:var(--border-radius);width:var(--width);min-width:inherit;height:var(--height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);font-family:inherit;font-size:inherit;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.has-focus) .native-input{caret-color:var(--highlight-color)}.input-otp-description{text-align:center}.input-otp-description-hidden{display:none}.input-otp-separator{border-radius:var(--separator-border-radius);-ms-flex-negative:0;flex-shrink:0;width:var(--separator-width);height:var(--separator-height);background:var(--separator-color)}:host(.input-otp-disabled),:host(.input-otp-disabled) .native-input:disabled{cursor:not-allowed}:host(.has-focus) .native-input:focus{--border-color:var(--highlight-color);outline:none}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}:host(.has-focus.ion-valid),:host(.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host{--padding-top:16px;--padding-end:0;--padding-bottom:16px;--padding-start:0;--color:initial;--min-width:40px;--border-style:solid;--separator-width:8px;--separator-border-radius:999px;--separator-color:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);font-family:var(--ion-font-family, inherit);font-size:0.875rem}.input-otp-description{color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem;line-height:1.25rem}:host(.input-otp-size-small){--width:40px;--height:40px}:host(.input-otp-size-small) .input-otp-group{gap:8px}:host(.input-otp-size-medium){--width:48px;--height:48px}:host(.input-otp-size-large){--width:56px;--height:56px}:host(.input-otp-size-medium) .input-otp-group,:host(.input-otp-size-large) .input-otp-group{gap:12px}:host(.input-otp-shape-round){--border-radius:16px}:host(.input-otp-shape-soft){--border-radius:8px}:host(.input-otp-shape-rectangular){--border-radius:0}:host(.input-otp-fill-outline){--background:none}:host(.input-otp-fill-solid){--border-color:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}:host(.input-otp-disabled){--color:var(--ion-color-step-350, var(--ion-text-color-step-650, #a6a6a6))}:host(.input-otp-fill-outline.input-otp-disabled){--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}:host(.input-otp-fill-outline.input-otp-readonly){--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}:host(.input-otp-fill-solid.input-otp-disabled),:host(.input-otp-fill-solid.input-otp-readonly){--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.input-otp-fill-outline.ion-color) .native-input,:host(.input-otp-fill-solid.ion-color) .native-input:focus{border-color:rgba(var(--ion-color-base-rgb), 0.6)}:host(.input-otp-fill-outline.ion-color.ion-invalid) .native-input,:host(.input-otp-fill-solid.ion-color.ion-invalid) .native-input,:host(.input-otp-fill-outline.ion-color.has-focus.ion-invalid) .native-input,:host(.input-otp-fill-solid.ion-color.has-focus.ion-invalid) .native-input{border-color:var(--ion-color-danger, #c5000f)}:host(.input-otp-fill-outline.ion-color.ion-valid) .native-input,:host(.input-otp-fill-solid.ion-color.ion-valid) .native-input,:host(.input-otp-fill-outline.ion-color.has-focus.ion-valid) .native-input,:host(.input-otp-fill-solid.ion-color.has-focus.ion-valid) .native-input{border-color:var(--ion-color-success, #2dd55b)}:host(.input-otp-fill-outline.input-otp-disabled.ion-color) .native-input{border-color:rgba(var(--ion-color-base-rgb), 0.3)}:host{--border-width:0.55px}:host(.has-focus) .native-input:focus{--border-width:1px}:host(.input-otp-fill-outline){--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))))}`;
17
-
18
- const inputOtpMdCss = () => `:host{--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--separator-height:var(--separator-width);--highlight-color:var(--highlight-color-focused);display:block;position:relative}.input-otp-group{-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:var(--min-width)}.native-input{border-radius:var(--border-radius);width:var(--width);min-width:inherit;height:var(--height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);font-family:inherit;font-size:inherit;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.has-focus) .native-input{caret-color:var(--highlight-color)}.input-otp-description{text-align:center}.input-otp-description-hidden{display:none}.input-otp-separator{border-radius:var(--separator-border-radius);-ms-flex-negative:0;flex-shrink:0;width:var(--separator-width);height:var(--separator-height);background:var(--separator-color)}:host(.input-otp-disabled),:host(.input-otp-disabled) .native-input:disabled{cursor:not-allowed}:host(.has-focus) .native-input:focus{--border-color:var(--highlight-color);outline:none}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}:host(.has-focus.ion-valid),:host(.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host{--padding-top:16px;--padding-end:0;--padding-bottom:16px;--padding-start:0;--color:initial;--min-width:40px;--border-style:solid;--separator-width:8px;--separator-border-radius:999px;--separator-color:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);font-family:var(--ion-font-family, inherit);font-size:0.875rem}.input-otp-description{color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem;line-height:1.25rem}:host(.input-otp-size-small){--width:40px;--height:40px}:host(.input-otp-size-small) .input-otp-group{gap:8px}:host(.input-otp-size-medium){--width:48px;--height:48px}:host(.input-otp-size-large){--width:56px;--height:56px}:host(.input-otp-size-medium) .input-otp-group,:host(.input-otp-size-large) .input-otp-group{gap:12px}:host(.input-otp-shape-round){--border-radius:16px}:host(.input-otp-shape-soft){--border-radius:8px}:host(.input-otp-shape-rectangular){--border-radius:0}:host(.input-otp-fill-outline){--background:none}:host(.input-otp-fill-solid){--border-color:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}:host(.input-otp-disabled){--color:var(--ion-color-step-350, var(--ion-text-color-step-650, #a6a6a6))}:host(.input-otp-fill-outline.input-otp-disabled){--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}:host(.input-otp-fill-outline.input-otp-readonly){--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}:host(.input-otp-fill-solid.input-otp-disabled),:host(.input-otp-fill-solid.input-otp-readonly){--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.input-otp-fill-outline.ion-color) .native-input,:host(.input-otp-fill-solid.ion-color) .native-input:focus{border-color:rgba(var(--ion-color-base-rgb), 0.6)}:host(.input-otp-fill-outline.ion-color.ion-invalid) .native-input,:host(.input-otp-fill-solid.ion-color.ion-invalid) .native-input,:host(.input-otp-fill-outline.ion-color.has-focus.ion-invalid) .native-input,:host(.input-otp-fill-solid.ion-color.has-focus.ion-invalid) .native-input{border-color:var(--ion-color-danger, #c5000f)}:host(.input-otp-fill-outline.ion-color.ion-valid) .native-input,:host(.input-otp-fill-solid.ion-color.ion-valid) .native-input,:host(.input-otp-fill-outline.ion-color.has-focus.ion-valid) .native-input,:host(.input-otp-fill-solid.ion-color.has-focus.ion-valid) .native-input{border-color:var(--ion-color-success, #2dd55b)}:host(.input-otp-fill-outline.input-otp-disabled.ion-color) .native-input{border-color:rgba(var(--ion-color-base-rgb), 0.3)}:host{--border-width:1px}:host(.has-focus) .native-input:focus{--border-width:2px}:host(.input-otp-fill-outline){--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3))}`;
14
+ const inputOtpMdCss = () => `.sc-ion-input-otp-md-h{--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--padding-top:16px;--padding-end:0;--padding-bottom:16px;--padding-start:0;--color:initial;--min-width:40px;--separator-width:8px;--separator-height:var(--separator-width);--separator-border-radius:999px;--separator-color:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;font-size:0.875rem}.input-otp-group.sc-ion-input-otp-md{-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.native-wrapper.sc-ion-input-otp-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:var(--min-width)}.native-input.sc-ion-input-otp-md{border-radius:var(--border-radius);width:var(--width);min-width:inherit;height:var(--height);border-width:var(--border-width);border-style:solid;border-color:var(--border-color);background:var(--background);color:var(--color);font-size:inherit;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none}.has-focus.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md{caret-color:var(--highlight-color)}.input-otp-description.sc-ion-input-otp-md{color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem;line-height:1.25rem;text-align:center}.input-otp-description-hidden.sc-ion-input-otp-md{display:none}.input-otp-separator.sc-ion-input-otp-md{border-radius:var(--separator-border-radius);-ms-flex-negative:0;flex-shrink:0;width:var(--separator-width);height:var(--separator-height);background:var(--separator-color)}.input-otp-size-small.sc-ion-input-otp-md-h{--width:40px;--height:40px}.input-otp-size-small.sc-ion-input-otp-md-h .input-otp-group.sc-ion-input-otp-md{gap:8px}.input-otp-size-medium.sc-ion-input-otp-md-h{--width:48px;--height:48px}.input-otp-size-large.sc-ion-input-otp-md-h{--width:56px;--height:56px}.input-otp-size-medium.sc-ion-input-otp-md-h .input-otp-group.sc-ion-input-otp-md,.input-otp-size-large.sc-ion-input-otp-md-h .input-otp-group.sc-ion-input-otp-md{gap:12px}.input-otp-shape-round.sc-ion-input-otp-md-h{--border-radius:16px}.input-otp-shape-soft.sc-ion-input-otp-md-h{--border-radius:8px}.input-otp-shape-rectangular.sc-ion-input-otp-md-h{--border-radius:0}.input-otp-fill-outline.sc-ion-input-otp-md-h{--background:none}.input-otp-fill-solid.sc-ion-input-otp-md-h{--border-color:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}.input-otp-disabled.sc-ion-input-otp-md-h{--color:var(--ion-color-step-350, var(--ion-text-color-step-650, #a6a6a6))}.input-otp-fill-outline.input-otp-disabled.sc-ion-input-otp-md-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.input-otp-disabled.sc-ion-input-otp-md-h,.input-otp-disabled.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md:disabled{cursor:not-allowed}.has-focus.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md:focus{--border-color:var(--highlight-color);outline:none}.input-otp-fill-outline.input-otp-readonly.sc-ion-input-otp-md-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}.input-otp-fill-solid.input-otp-disabled.sc-ion-input-otp-md-h,.input-otp-fill-solid.input-otp-readonly.sc-ion-input-otp-md-h{--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.ion-touched.ion-invalid.sc-ion-input-otp-md-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-input-otp-md-h{--highlight-color:var(--highlight-color-valid)}.has-focus.ion-valid.sc-ion-input-otp-md-h,.ion-touched.ion-invalid.sc-ion-input-otp-md-h{--border-color:var(--highlight-color)}.ion-color.sc-ion-input-otp-md-h{--highlight-color-focused:var(--ion-color-base)}.input-otp-fill-outline.ion-color.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-solid.ion-color.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md:focus{border-color:rgba(var(--ion-color-base-rgb), 0.6)}.input-otp-fill-outline.ion-color.ion-invalid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-solid.ion-color.ion-invalid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-outline.ion-color.has-focus.ion-invalid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-solid.ion-color.has-focus.ion-invalid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md{border-color:var(--ion-color-danger, #c5000f)}.input-otp-fill-outline.ion-color.ion-valid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-solid.ion-color.ion-valid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-outline.ion-color.has-focus.ion-valid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-solid.ion-color.has-focus.ion-valid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md{border-color:var(--ion-color-success, #2dd55b)}.input-otp-fill-outline.input-otp-disabled.ion-color.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md{border-color:rgba(var(--ion-color-base-rgb), 0.3)}.sc-ion-input-otp-md-h{--border-width:1px}.has-focus.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md:focus{--border-width:2px}.input-otp-fill-outline.sc-ion-input-otp-md-h{--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3))}`;
19
15
 
20
16
  const InputOTP = class {
21
17
  constructor(hostRef) {
@@ -25,372 +21,134 @@ const InputOTP = class {
25
21
  this.ionComplete = index.createEvent(this, "ionComplete", 7);
26
22
  this.ionBlur = index.createEvent(this, "ionBlur", 7);
27
23
  this.ionFocus = index.createEvent(this, "ionFocus", 7);
28
- if (hostRef.$hostElement$["s-ei"]) {
29
- this.internals = hostRef.$hostElement$["s-ei"];
30
- }
31
- else {
32
- this.internals = hostRef.$hostElement$.attachInternals();
33
- hostRef.$hostElement$["s-ei"] = this.internals;
34
- }
35
- this.inheritedAttributes = {};
36
- this.inputRefs = [];
37
- this.inputId = `ion-input-otp-${inputIds++}`;
38
- this.parsedSeparators = [];
39
- /**
40
- * Tracks whether the user is navigating through input boxes using keyboard navigation
41
- * (arrow keys, tab) versus mouse clicks. This is used to determine the appropriate
42
- * focus behavior when an input box is focused.
43
- */
44
- this.isKeyboardNavigation = false;
45
- this.inputValues = [];
46
- this.hasFocus = false;
47
- this.previousInputValues = [];
48
- /**
49
- * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
50
- * Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
51
- */
52
- this.autocapitalize = 'off';
53
- /**
54
- * If `true`, the user cannot interact with the input.
55
- */
56
- this.disabled = false;
57
- /**
58
- * The fill for the input boxes. If `"solid"` the input boxes will have a background. If
59
- * `"outline"` the input boxes will be transparent with a border.
60
- */
61
- this.fill = 'outline';
62
- /**
63
- * The number of input boxes to display.
64
- */
65
- this.length = 4;
66
- /**
67
- * If `true`, the user cannot modify the value.
68
- */
69
- this.readonly = false;
70
- /**
71
- * The shape of the input boxes.
72
- * If "round" they will have an increased border radius.
73
- * If "rectangular" they will have no border radius.
74
- * If "soft" they will have a soft border radius.
75
- */
76
- this.shape = 'round';
77
- /**
78
- * The size of the input boxes.
79
- */
80
- this.size = 'medium';
81
- /**
82
- * The type of input allowed in the input boxes.
83
- */
84
- this.type = 'number';
85
- /**
86
- * The value of the input group.
87
- */
88
- this.value = '';
89
- /**
90
- * Handles the focus behavior for the input OTP component.
91
- *
92
- * Focus behavior:
93
- * 1. Keyboard navigation: Allow normal focus movement
94
- * 2. Mouse click:
95
- * - If clicked box has value: Focus that box
96
- * - If clicked box is empty: Focus first empty box
97
- *
98
- * Emits the `ionFocus` event when the input group gains focus.
99
- */
100
- this.onFocus = (index) => (event) => {
101
- var _a;
102
- const { inputRefs } = this;
103
- // Only emit ionFocus and set the focusedValue when the
104
- // component first gains focus
105
- if (!this.hasFocus) {
106
- this.ionFocus.emit(event);
107
- this.focusedValue = this.value;
108
- }
109
- this.hasFocus = true;
110
- let finalIndex = index;
111
- if (!this.isKeyboardNavigation) {
112
- // If the clicked box has a value, focus it
113
- // Otherwise focus the first empty box
114
- const targetIndex = this.inputValues[index] ? index : this.getFirstEmptyIndex();
115
- finalIndex = targetIndex === -1 ? this.length - 1 : targetIndex;
116
- // Focus the target box
117
- (_a = this.inputRefs[finalIndex]) === null || _a === void 0 ? void 0 : _a.focus();
118
- }
119
- // Update tabIndexes to match the focused box
120
- inputRefs.forEach((input, i) => {
121
- input.tabIndex = i === finalIndex ? 0 : -1;
122
- });
123
- // Reset the keyboard navigation flag
124
- this.isKeyboardNavigation = false;
125
- };
126
- /**
127
- * Handles the blur behavior for the input OTP component.
128
- * Emits the `ionBlur` event when the input group loses focus.
129
- */
130
- this.onBlur = (event) => {
131
- const { inputRefs } = this;
132
- const relatedTarget = event.relatedTarget;
133
- // Do not emit blur if we're moving to another input box in the same component
134
- const isInternalFocus = relatedTarget != null && inputRefs.includes(relatedTarget);
135
- if (!isInternalFocus) {
136
- this.hasFocus = false;
137
- // Reset tabIndexes when focus leaves the component
138
- this.updateTabIndexes();
139
- // Always emit ionBlur when focus leaves the component
140
- this.ionBlur.emit(event);
141
- // Only emit ionChange if the value has actually changed
142
- if (this.focusedValue !== this.value) {
143
- this.emitIonChange(event);
144
- }
145
- }
146
- };
147
- /**
148
- * Handles keyboard navigation for the OTP component.
149
- *
150
- * Navigation:
151
- * - Backspace: Clears current input and moves to previous box if empty
152
- * - Arrow Left/Right: Moves focus between input boxes
153
- * - Tab: Allows normal tab navigation between components
154
- */
155
- this.onKeyDown = (index) => (event) => {
156
- const { disabled, length, readonly } = this;
157
- const rtl = dir.isRTL(this.el);
158
- const input = event.target;
159
- if (disabled) {
160
- return;
161
- }
162
- if (readonly) {
163
- if (event.key === 'Backspace' || event.key === 'Delete') {
164
- event.preventDefault();
165
- return;
166
- }
167
- }
168
- // Meta shortcuts are used to copy, paste, and select text
169
- // We don't want to handle these keys here
170
- const metaShortcuts = ['a', 'c', 'v', 'x', 'r', 'z', 'y'];
171
- const isTextSelection = input.selectionStart !== input.selectionEnd;
172
- // Return if the key is a meta shortcut or the input value
173
- // text is selected and let the onPaste / onInput handler manage it
174
- if (isTextSelection || ((event.metaKey || event.ctrlKey) && metaShortcuts.includes(event.key.toLowerCase()))) {
175
- return;
176
- }
177
- if (event.key === 'Backspace') {
178
- if (this.inputValues[index]) {
179
- // Shift all values to the right of the current index left by one
180
- for (let i = index; i < length - 1; i++) {
181
- this.inputValues[i] = this.inputValues[i + 1];
182
- }
183
- // Clear the last box
184
- this.inputValues[length - 1] = '';
185
- // Update all inputRefs to match inputValues
186
- for (let i = 0; i < length; i++) {
187
- this.inputRefs[i].value = this.inputValues[i] || '';
188
- }
189
- this.updateValue(event);
190
- event.preventDefault();
191
- }
192
- else if (!this.inputValues[index] && index > 0) {
193
- // If current input is empty, move to previous input
194
- this.focusPrevious(index);
195
- }
196
- }
197
- else if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {
198
- this.isKeyboardNavigation = true;
199
- event.preventDefault();
200
- const isLeft = event.key === 'ArrowLeft';
201
- const shouldMoveNext = (isLeft && rtl) || (!isLeft && !rtl);
202
- // Only allow moving to the next input if the current has a value
203
- if (shouldMoveNext) {
204
- if (this.inputValues[index] && index < length - 1) {
205
- this.focusNext(index);
206
- }
207
- }
208
- else {
209
- this.focusPrevious(index);
210
- }
211
- }
212
- else if (event.key === 'Tab') {
213
- this.isKeyboardNavigation = true;
214
- // Let all tab events proceed normally
215
- return;
216
- }
217
- };
218
- /**
219
- * Processes all input scenarios for each input box.
220
- *
221
- * This function manages:
222
- * 1. Autofill handling
223
- * 2. Input validation
224
- * 3. Full selection replacement or typing in an empty box
225
- * 4. Inserting in the middle with available space (shifting)
226
- * 5. Single character replacement
227
- */
228
- this.onInput = (index) => (event) => {
229
- var _a, _b;
230
- const { disabled, length, readonly, validKeyPattern } = this;
231
- const input = event.target;
232
- const value = input.value;
233
- const previousValue = this.previousInputValues[index] || '';
234
- if (disabled || readonly) {
235
- return;
236
- }
237
- // 1. Autofill handling
238
- // If the length of the value increases by more than 1 from the previous
239
- // value, treat this as autofill. This is to prevent the case where the
240
- // user is typing a single character into an input box containing a value
241
- // as that will trigger this function with a value length of 2 characters.
242
- const isAutofill = value.length - previousValue.length > 1;
243
- if (isAutofill) {
244
- // Distribute valid characters across input boxes
245
- const validChars = value
246
- .split('')
247
- .filter((char) => validKeyPattern.test(char))
248
- .slice(0, length);
249
- // If there are no valid characters coming from the
250
- // autofill, all input refs have to be cleared after the
251
- // browser has finished the autofill behavior
252
- if (validChars.length === 0) {
253
- requestAnimationFrame(() => {
254
- this.inputRefs.forEach((input) => {
255
- input.value = '';
256
- });
257
- });
258
- }
259
- for (let i = 0; i < length; i++) {
260
- this.inputValues[i] = validChars[i] || '';
261
- this.inputRefs[i].value = validChars[i] || '';
262
- }
263
- this.updateValue(event);
264
- // Focus the first empty input box or the last input box if all boxes
265
- // are filled after a small delay to ensure the input boxes have been
266
- // updated before moving the focus
267
- setTimeout(() => {
268
- var _a;
269
- const nextIndex = validChars.length < length ? validChars.length : length - 1;
270
- (_a = this.inputRefs[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();
271
- }, 20);
272
- this.previousInputValues = [...this.inputValues];
273
- return;
274
- }
275
- // 2. Input validation
276
- // If the character entered is invalid (does not match the pattern),
277
- // restore the previous value and exit
278
- if (value.length > 0 && !validKeyPattern.test(value[value.length - 1])) {
279
- input.value = this.inputValues[index] || '';
280
- this.previousInputValues = [...this.inputValues];
281
- return;
282
- }
283
- // 3. Full selection replacement or typing in an empty box
284
- // If the user selects all text in the input box and types, or if the
285
- // input box is empty, replace only this input box. If the box is empty,
286
- // move to the next box, otherwise stay focused on this box.
287
- const isAllSelected = input.selectionStart === 0 && input.selectionEnd === value.length;
288
- const isEmpty = !this.inputValues[index];
289
- if (isAllSelected || isEmpty) {
290
- this.inputValues[index] = value;
291
- input.value = value;
292
- this.updateValue(event);
293
- this.focusNext(index);
294
- this.previousInputValues = [...this.inputValues];
295
- return;
296
- }
297
- // 4. Inserting in the middle with available space (shifting)
298
- // If typing in a filled input box and there are empty boxes at the end,
299
- // shift all values starting at the current box to the right, and insert
300
- // the new character at the current box.
301
- const hasAvailableBoxAtEnd = this.inputValues[this.inputValues.length - 1] === '';
302
- if (this.inputValues[index] && hasAvailableBoxAtEnd && value.length === 2) {
303
- // Get the inserted character (from event or by diffing value/previousValue)
304
- let newChar = event.data;
305
- if (!newChar) {
306
- newChar = value.split('').find((c, i) => c !== previousValue[i]) || value[value.length - 1];
307
- }
308
- // Validate the new character before shifting
309
- if (!validKeyPattern.test(newChar)) {
310
- input.value = this.inputValues[index] || '';
311
- this.previousInputValues = [...this.inputValues];
312
- return;
313
- }
314
- // Shift values right from the end to the insertion point
315
- for (let i = this.inputValues.length - 1; i > index; i--) {
316
- this.inputValues[i] = this.inputValues[i - 1];
317
- this.inputRefs[i].value = this.inputValues[i] || '';
318
- }
319
- this.inputValues[index] = newChar;
320
- this.inputRefs[index].value = newChar;
321
- this.updateValue(event);
322
- this.previousInputValues = [...this.inputValues];
323
- return;
324
- }
325
- // 5. Single character replacement
326
- // Handles replacing a single character in a box containing a value based
327
- // on the cursor position. We need the cursor position to determine which
328
- // character was the last character typed. For example, if the user types "2"
329
- // in an input box with the cursor at the beginning of the value of "6",
330
- // the value will be "26", but we want to grab the "2" as the last character
331
- // typed.
332
- const cursorPos = (_a = input.selectionStart) !== null && _a !== void 0 ? _a : value.length;
333
- const newCharIndex = cursorPos - 1;
334
- const newChar = (_b = value[newCharIndex]) !== null && _b !== void 0 ? _b : value[0];
335
- // Check if the new character is valid before updating the value
336
- if (!validKeyPattern.test(newChar)) {
337
- input.value = this.inputValues[index] || '';
338
- this.previousInputValues = [...this.inputValues];
339
- return;
340
- }
341
- this.inputValues[index] = newChar;
342
- input.value = newChar;
343
- this.updateValue(event);
344
- this.previousInputValues = [...this.inputValues];
345
- };
346
- /**
347
- * Handles pasting text into the input OTP component.
348
- * This function prevents the default paste behavior and
349
- * validates the pasted text against the allowed pattern.
350
- * It then updates the value of the input group and focuses
351
- * the next empty input after pasting.
352
- */
353
- this.onPaste = (event) => {
354
- var _a, _b;
355
- const { disabled, inputRefs, length, readonly, validKeyPattern } = this;
356
- event.preventDefault();
357
- if (disabled || readonly) {
358
- return;
359
- }
360
- const pastedText = (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text');
361
- // If there is no pasted text, still emit the input change event
362
- // because this is how the native input element behaves
363
- // but return early because there is nothing to paste.
364
- if (!pastedText) {
365
- this.emitIonInput(event);
366
- return;
367
- }
368
- const validChars = pastedText
369
- .split('')
370
- .filter((char) => validKeyPattern.test(char))
371
- .slice(0, length);
372
- // Always paste starting at the first box
373
- validChars.forEach((char, index) => {
374
- if (index < length) {
375
- this.inputRefs[index].value = char;
376
- this.inputValues[index] = char;
377
- }
378
- });
379
- // Update the value so that all input boxes are updated
380
- this.value = validChars.join('');
381
- this.updateValue(event);
382
- // Focus the next empty input after pasting
383
- // If all boxes are filled, focus the last input
384
- const nextEmptyIndex = validChars.length < length ? validChars.length : length - 1;
385
- (_b = inputRefs[nextEmptyIndex]) === null || _b === void 0 ? void 0 : _b.focus();
386
- };
387
24
  }
25
+ inheritedAttributes = {};
26
+ inputRefs = [];
27
+ inputId = `ion-input-otp-${inputIds++}`;
28
+ parsedSeparators = [];
388
29
  /**
389
- * Update element internals when disabled prop changes
30
+ * Stores the initial value of the input when it receives focus.
31
+ * Used to determine if the value changed during the focus session
32
+ * to avoid emitting unnecessary change events on blur.
390
33
  */
391
- disabledChanged() {
392
- this.updateElementInternals();
393
- }
34
+ focusedValue;
35
+ /**
36
+ * Tracks whether the user is navigating through input boxes using keyboard navigation
37
+ * (arrow keys, tab) versus mouse clicks. This is used to determine the appropriate
38
+ * focus behavior when an input box is focused.
39
+ */
40
+ isKeyboardNavigation = false;
41
+ get el() { return index.getElement(this); }
42
+ inputValues = [];
43
+ hasFocus = false;
44
+ previousInputValues = [];
45
+ /**
46
+ * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
47
+ * Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
48
+ */
49
+ autocapitalize = 'off';
50
+ /**
51
+ * The color to use from your application's color palette.
52
+ * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
53
+ * For more information on colors, see [theming](/docs/theming/basics).
54
+ */
55
+ color;
56
+ /**
57
+ * If `true`, the user cannot interact with the input.
58
+ */
59
+ disabled = false;
60
+ /**
61
+ * The fill for the input boxes. If `"solid"` the input boxes will have a background. If
62
+ * `"outline"` the input boxes will be transparent with a border.
63
+ */
64
+ fill = 'outline';
65
+ /**
66
+ * A hint to the browser for which keyboard to display.
67
+ * Possible values: `"none"`, `"text"`, `"tel"`, `"url"`,
68
+ * `"email"`, `"numeric"`, `"decimal"`, and `"search"`.
69
+ *
70
+ * For numbers (type="number"): "numeric"
71
+ * For text (type="text"): "text"
72
+ */
73
+ inputmode;
74
+ /**
75
+ * The number of input boxes to display.
76
+ */
77
+ length = 4;
78
+ /**
79
+ * A regex pattern string for allowed characters. Defaults based on type.
80
+ *
81
+ * For numbers (`type="number"`): `"[\p{N}]"`
82
+ * For text (`type="text"`): `"[\p{L}\p{N}]"`
83
+ */
84
+ pattern;
85
+ /**
86
+ * If `true`, the user cannot modify the value.
87
+ */
88
+ readonly = false;
89
+ /**
90
+ * Where separators should be shown between input boxes.
91
+ * Can be a comma-separated string or an array of numbers.
92
+ *
93
+ * For example:
94
+ * `"3"` will show a separator after the 3rd input box.
95
+ * `[1,4]` will show a separator after the 1st and 4th input boxes.
96
+ * `"all"` will show a separator between every input box.
97
+ */
98
+ separators;
99
+ /**
100
+ * The shape of the input boxes.
101
+ * If "round" they will have an increased border radius.
102
+ * If "rectangular" they will have no border radius.
103
+ * If "soft" they will have a soft border radius.
104
+ */
105
+ shape = 'round';
106
+ /**
107
+ * The size of the input boxes.
108
+ */
109
+ size = 'medium';
110
+ /**
111
+ * The type of input allowed in the input boxes.
112
+ */
113
+ type = 'number';
114
+ /**
115
+ * The value of the input group.
116
+ */
117
+ value = '';
118
+ /**
119
+ * The `ionInput` event is fired each time the user modifies the input's value.
120
+ * Unlike the `ionChange` event, the `ionInput` event is fired for each alteration
121
+ * to the input's value. This typically happens for each keystroke as the user types.
122
+ *
123
+ * For elements that accept text input (`type=text`, `type=tel`, etc.), the interface
124
+ * is [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,
125
+ * the interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If
126
+ * the input is cleared on edit, the type is `null`.
127
+ */
128
+ ionInput;
129
+ /**
130
+ * The `ionChange` event is fired when the user modifies the input's value.
131
+ * Unlike the `ionInput` event, the `ionChange` event is only fired when changes
132
+ * are committed, not as the user types.
133
+ *
134
+ * The `ionChange` event fires when the `<ion-input-otp>` component loses
135
+ * focus after its value has changed.
136
+ *
137
+ * This event will not emit when programmatically setting the `value` property.
138
+ */
139
+ ionChange;
140
+ /**
141
+ * Emitted when all input boxes have been filled with valid values.
142
+ */
143
+ ionComplete;
144
+ /**
145
+ * Emitted when the input group loses focus.
146
+ */
147
+ ionBlur;
148
+ /**
149
+ * Emitted when the input group has focus.
150
+ */
151
+ ionFocus;
394
152
  /**
395
153
  * Sets focus to an input box.
396
154
  * @param index - The index of the input box to focus (0-based).
@@ -398,20 +156,18 @@ const InputOTP = class {
398
156
  * Otherwise, the first empty input box or the last input if all are filled will be focused.
399
157
  */
400
158
  async setFocus(index) {
401
- var _a, _b;
402
159
  if (typeof index === 'number') {
403
160
  const validIndex = Math.max(0, Math.min(index, this.length - 1));
404
- (_a = this.inputRefs[validIndex]) === null || _a === void 0 ? void 0 : _a.focus();
161
+ this.inputRefs[validIndex]?.focus();
405
162
  }
406
163
  else {
407
164
  const tabbableIndex = this.getTabbableIndex();
408
- (_b = this.inputRefs[tabbableIndex]) === null || _b === void 0 ? void 0 : _b.focus();
165
+ this.inputRefs[tabbableIndex]?.focus();
409
166
  }
410
167
  }
411
168
  valueChanged() {
412
169
  this.initializeValues();
413
170
  this.updateTabIndexes();
414
- this.updateElementInternals();
415
171
  }
416
172
  /**
417
173
  * Processes the separators prop into an array of numbers.
@@ -468,7 +224,6 @@ const InputOTP = class {
468
224
  }
469
225
  componentDidLoad() {
470
226
  this.updateTabIndexes();
471
- this.updateElementInternals();
472
227
  }
473
228
  /**
474
229
  * Get the regex pattern for allowed characters.
@@ -545,47 +300,6 @@ const InputOTP = class {
545
300
  this.ionComplete.emit({ value: newValue });
546
301
  }
547
302
  }
548
- /**
549
- * Gets the value of the input group as a string for form submission.
550
- * Returns an empty string if the value is null or undefined.
551
- */
552
- getValue() {
553
- return this.value != null ? this.value.toString() : '';
554
- }
555
- /**
556
- * Called when the form state is restored.
557
- * Restores the component's value.
558
- */
559
- formStateRestoreCallback(value) {
560
- this.value = value;
561
- }
562
- /**
563
- * Called when the form is reset.
564
- * Resets the component's value.
565
- */
566
- formResetCallback() {
567
- this.value = '';
568
- }
569
- /**
570
- * Updates the form value and reports validity state to the browser via
571
- * ElementInternals. This should be called when the component loads, when
572
- * the disabled prop changes, and when the value changes to ensure the form
573
- * value stays in sync and validation state is updated.
574
- */
575
- updateElementInternals() {
576
- var _a;
577
- // Disabled form controls should not be included in form data
578
- // Pass null to setFormValue when disabled to exclude it from form submission
579
- const value = this.disabled ? null : this.getValue();
580
- // ElementInternals may not be fully available in test environments
581
- // so we need to check if the method exists before calling it
582
- if (typeof this.internals.setFormValue === 'function') {
583
- this.internals.setFormValue(value);
584
- }
585
- // Use the first input element for validity reporting since all inputs
586
- // share the same validation state
587
- validity.reportValidityToElementInternals((_a = this.inputRefs[0]) !== null && _a !== void 0 ? _a : null, this.internals);
588
- }
589
303
  /**
590
304
  * Emits an `ionChange` event.
591
305
  * This API should be called for user committed changes.
@@ -608,24 +322,79 @@ const InputOTP = class {
608
322
  const newValue = value == null ? value : value.toString();
609
323
  this.ionInput.emit({ value: newValue, event });
610
324
  }
325
+ /**
326
+ * Handles the focus behavior for the input OTP component.
327
+ *
328
+ * Focus behavior:
329
+ * 1. Keyboard navigation: Allow normal focus movement
330
+ * 2. Mouse click:
331
+ * - If clicked box has value: Focus that box
332
+ * - If clicked box is empty: Focus first empty box
333
+ *
334
+ * Emits the `ionFocus` event when the input group gains focus.
335
+ */
336
+ onFocus = (index) => (event) => {
337
+ const { inputRefs } = this;
338
+ // Only emit ionFocus and set the focusedValue when the
339
+ // component first gains focus
340
+ if (!this.hasFocus) {
341
+ this.ionFocus.emit(event);
342
+ this.focusedValue = this.value;
343
+ }
344
+ this.hasFocus = true;
345
+ let finalIndex = index;
346
+ if (!this.isKeyboardNavigation) {
347
+ // If the clicked box has a value, focus it
348
+ // Otherwise focus the first empty box
349
+ const targetIndex = this.inputValues[index] ? index : this.getFirstEmptyIndex();
350
+ finalIndex = targetIndex === -1 ? this.length - 1 : targetIndex;
351
+ // Focus the target box
352
+ this.inputRefs[finalIndex]?.focus();
353
+ }
354
+ // Update tabIndexes to match the focused box
355
+ inputRefs.forEach((input, i) => {
356
+ input.tabIndex = i === finalIndex ? 0 : -1;
357
+ });
358
+ // Reset the keyboard navigation flag
359
+ this.isKeyboardNavigation = false;
360
+ };
361
+ /**
362
+ * Handles the blur behavior for the input OTP component.
363
+ * Emits the `ionBlur` event when the input group loses focus.
364
+ */
365
+ onBlur = (event) => {
366
+ const { inputRefs } = this;
367
+ const relatedTarget = event.relatedTarget;
368
+ // Do not emit blur if we're moving to another input box in the same component
369
+ const isInternalFocus = relatedTarget != null && inputRefs.includes(relatedTarget);
370
+ if (!isInternalFocus) {
371
+ this.hasFocus = false;
372
+ // Reset tabIndexes when focus leaves the component
373
+ this.updateTabIndexes();
374
+ // Always emit ionBlur when focus leaves the component
375
+ this.ionBlur.emit(event);
376
+ // Only emit ionChange if the value has actually changed
377
+ if (this.focusedValue !== this.value) {
378
+ this.emitIonChange(event);
379
+ }
380
+ }
381
+ };
611
382
  /**
612
383
  * Focuses the next input box.
613
384
  */
614
385
  focusNext(currentIndex) {
615
- var _a;
616
386
  const { inputRefs, length } = this;
617
387
  if (currentIndex < length - 1) {
618
- (_a = inputRefs[currentIndex + 1]) === null || _a === void 0 ? void 0 : _a.focus();
388
+ inputRefs[currentIndex + 1]?.focus();
619
389
  }
620
390
  }
621
391
  /**
622
392
  * Focuses the previous input box.
623
393
  */
624
394
  focusPrevious(currentIndex) {
625
- var _a;
626
395
  const { inputRefs } = this;
627
396
  if (currentIndex > 0) {
628
- (_a = inputRefs[currentIndex - 1]) === null || _a === void 0 ? void 0 : _a.focus();
397
+ inputRefs[currentIndex - 1]?.focus();
629
398
  }
630
399
  }
631
400
  /**
@@ -634,12 +403,11 @@ const InputOTP = class {
634
403
  * Returns -1 if all inputs are filled.
635
404
  */
636
405
  getFirstEmptyIndex() {
637
- var _a;
638
406
  const { inputValues, length } = this;
639
407
  // Create an array of the same length as the input OTP
640
408
  // and fill it with the input values
641
409
  const values = Array.from({ length }, (_, i) => inputValues[i] || '');
642
- return (_a = values.findIndex((value) => !value || value === '')) !== null && _a !== void 0 ? _a : -1;
410
+ return values.findIndex((value) => !value || value === '') ?? -1;
643
411
  }
644
412
  /**
645
413
  * Returns the index of the input that should be tabbed to.
@@ -676,6 +444,243 @@ const InputOTP = class {
676
444
  input.setAttribute('aria-hidden', isEmpty && !shouldBeTabbable ? 'true' : 'false');
677
445
  });
678
446
  }
447
+ /**
448
+ * Handles keyboard navigation for the OTP component.
449
+ *
450
+ * Navigation:
451
+ * - Backspace: Clears current input and moves to previous box if empty
452
+ * - Arrow Left/Right: Moves focus between input boxes
453
+ * - Tab: Allows normal tab navigation between components
454
+ */
455
+ onKeyDown = (index) => (event) => {
456
+ const { disabled, length, readonly } = this;
457
+ const rtl = dir.isRTL(this.el);
458
+ const input = event.target;
459
+ if (disabled) {
460
+ return;
461
+ }
462
+ if (readonly) {
463
+ if (event.key === 'Backspace' || event.key === 'Delete') {
464
+ event.preventDefault();
465
+ return;
466
+ }
467
+ }
468
+ // Meta shortcuts are used to copy, paste, and select text
469
+ // We don't want to handle these keys here
470
+ const metaShortcuts = ['a', 'c', 'v', 'x', 'r', 'z', 'y'];
471
+ const isTextSelection = input.selectionStart !== input.selectionEnd;
472
+ // Return if the key is a meta shortcut or the input value
473
+ // text is selected and let the onPaste / onInput handler manage it
474
+ if (isTextSelection || ((event.metaKey || event.ctrlKey) && metaShortcuts.includes(event.key.toLowerCase()))) {
475
+ return;
476
+ }
477
+ if (event.key === 'Backspace') {
478
+ if (this.inputValues[index]) {
479
+ // Shift all values to the right of the current index left by one
480
+ for (let i = index; i < length - 1; i++) {
481
+ this.inputValues[i] = this.inputValues[i + 1];
482
+ }
483
+ // Clear the last box
484
+ this.inputValues[length - 1] = '';
485
+ // Update all inputRefs to match inputValues
486
+ for (let i = 0; i < length; i++) {
487
+ this.inputRefs[i].value = this.inputValues[i] || '';
488
+ }
489
+ this.updateValue(event);
490
+ event.preventDefault();
491
+ }
492
+ else if (!this.inputValues[index] && index > 0) {
493
+ // If current input is empty, move to previous input
494
+ this.focusPrevious(index);
495
+ }
496
+ }
497
+ else if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {
498
+ this.isKeyboardNavigation = true;
499
+ event.preventDefault();
500
+ const isLeft = event.key === 'ArrowLeft';
501
+ const shouldMoveNext = (isLeft && rtl) || (!isLeft && !rtl);
502
+ // Only allow moving to the next input if the current has a value
503
+ if (shouldMoveNext) {
504
+ if (this.inputValues[index] && index < length - 1) {
505
+ this.focusNext(index);
506
+ }
507
+ }
508
+ else {
509
+ this.focusPrevious(index);
510
+ }
511
+ }
512
+ else if (event.key === 'Tab') {
513
+ this.isKeyboardNavigation = true;
514
+ // Let all tab events proceed normally
515
+ return;
516
+ }
517
+ };
518
+ /**
519
+ * Processes all input scenarios for each input box.
520
+ *
521
+ * This function manages:
522
+ * 1. Autofill handling
523
+ * 2. Input validation
524
+ * 3. Full selection replacement or typing in an empty box
525
+ * 4. Inserting in the middle with available space (shifting)
526
+ * 5. Single character replacement
527
+ */
528
+ onInput = (index) => (event) => {
529
+ const { disabled, length, readonly, validKeyPattern } = this;
530
+ const input = event.target;
531
+ const value = input.value;
532
+ const previousValue = this.previousInputValues[index] || '';
533
+ if (disabled || readonly) {
534
+ return;
535
+ }
536
+ // 1. Autofill handling
537
+ // If the length of the value increases by more than 1 from the previous
538
+ // value, treat this as autofill. This is to prevent the case where the
539
+ // user is typing a single character into an input box containing a value
540
+ // as that will trigger this function with a value length of 2 characters.
541
+ const isAutofill = value.length - previousValue.length > 1;
542
+ if (isAutofill) {
543
+ // Distribute valid characters across input boxes
544
+ const validChars = value
545
+ .split('')
546
+ .filter((char) => validKeyPattern.test(char))
547
+ .slice(0, length);
548
+ // If there are no valid characters coming from the
549
+ // autofill, all input refs have to be cleared after the
550
+ // browser has finished the autofill behavior
551
+ if (validChars.length === 0) {
552
+ requestAnimationFrame(() => {
553
+ this.inputRefs.forEach((input) => {
554
+ input.value = '';
555
+ });
556
+ });
557
+ }
558
+ for (let i = 0; i < length; i++) {
559
+ this.inputValues[i] = validChars[i] || '';
560
+ this.inputRefs[i].value = validChars[i] || '';
561
+ }
562
+ this.updateValue(event);
563
+ // Focus the first empty input box or the last input box if all boxes
564
+ // are filled after a small delay to ensure the input boxes have been
565
+ // updated before moving the focus
566
+ setTimeout(() => {
567
+ const nextIndex = validChars.length < length ? validChars.length : length - 1;
568
+ this.inputRefs[nextIndex]?.focus();
569
+ }, 20);
570
+ this.previousInputValues = [...this.inputValues];
571
+ return;
572
+ }
573
+ // 2. Input validation
574
+ // If the character entered is invalid (does not match the pattern),
575
+ // restore the previous value and exit
576
+ if (value.length > 0 && !validKeyPattern.test(value[value.length - 1])) {
577
+ input.value = this.inputValues[index] || '';
578
+ this.previousInputValues = [...this.inputValues];
579
+ return;
580
+ }
581
+ // 3. Full selection replacement or typing in an empty box
582
+ // If the user selects all text in the input box and types, or if the
583
+ // input box is empty, replace only this input box. If the box is empty,
584
+ // move to the next box, otherwise stay focused on this box.
585
+ const isAllSelected = input.selectionStart === 0 && input.selectionEnd === value.length;
586
+ const isEmpty = !this.inputValues[index];
587
+ if (isAllSelected || isEmpty) {
588
+ this.inputValues[index] = value;
589
+ input.value = value;
590
+ this.updateValue(event);
591
+ this.focusNext(index);
592
+ this.previousInputValues = [...this.inputValues];
593
+ return;
594
+ }
595
+ // 4. Inserting in the middle with available space (shifting)
596
+ // If typing in a filled input box and there are empty boxes at the end,
597
+ // shift all values starting at the current box to the right, and insert
598
+ // the new character at the current box.
599
+ const hasAvailableBoxAtEnd = this.inputValues[this.inputValues.length - 1] === '';
600
+ if (this.inputValues[index] && hasAvailableBoxAtEnd && value.length === 2) {
601
+ // Get the inserted character (from event or by diffing value/previousValue)
602
+ let newChar = event.data;
603
+ if (!newChar) {
604
+ newChar = value.split('').find((c, i) => c !== previousValue[i]) || value[value.length - 1];
605
+ }
606
+ // Validate the new character before shifting
607
+ if (!validKeyPattern.test(newChar)) {
608
+ input.value = this.inputValues[index] || '';
609
+ this.previousInputValues = [...this.inputValues];
610
+ return;
611
+ }
612
+ // Shift values right from the end to the insertion point
613
+ for (let i = this.inputValues.length - 1; i > index; i--) {
614
+ this.inputValues[i] = this.inputValues[i - 1];
615
+ this.inputRefs[i].value = this.inputValues[i] || '';
616
+ }
617
+ this.inputValues[index] = newChar;
618
+ this.inputRefs[index].value = newChar;
619
+ this.updateValue(event);
620
+ this.previousInputValues = [...this.inputValues];
621
+ return;
622
+ }
623
+ // 5. Single character replacement
624
+ // Handles replacing a single character in a box containing a value based
625
+ // on the cursor position. We need the cursor position to determine which
626
+ // character was the last character typed. For example, if the user types "2"
627
+ // in an input box with the cursor at the beginning of the value of "6",
628
+ // the value will be "26", but we want to grab the "2" as the last character
629
+ // typed.
630
+ const cursorPos = input.selectionStart ?? value.length;
631
+ const newCharIndex = cursorPos - 1;
632
+ const newChar = value[newCharIndex] ?? value[0];
633
+ // Check if the new character is valid before updating the value
634
+ if (!validKeyPattern.test(newChar)) {
635
+ input.value = this.inputValues[index] || '';
636
+ this.previousInputValues = [...this.inputValues];
637
+ return;
638
+ }
639
+ this.inputValues[index] = newChar;
640
+ input.value = newChar;
641
+ this.updateValue(event);
642
+ this.previousInputValues = [...this.inputValues];
643
+ };
644
+ /**
645
+ * Handles pasting text into the input OTP component.
646
+ * This function prevents the default paste behavior and
647
+ * validates the pasted text against the allowed pattern.
648
+ * It then updates the value of the input group and focuses
649
+ * the next empty input after pasting.
650
+ */
651
+ onPaste = (event) => {
652
+ const { disabled, inputRefs, length, readonly, validKeyPattern } = this;
653
+ event.preventDefault();
654
+ if (disabled || readonly) {
655
+ return;
656
+ }
657
+ const pastedText = event.clipboardData?.getData('text');
658
+ // If there is no pasted text, still emit the input change event
659
+ // because this is how the native input element behaves
660
+ // but return early because there is nothing to paste.
661
+ if (!pastedText) {
662
+ this.emitIonInput(event);
663
+ return;
664
+ }
665
+ const validChars = pastedText
666
+ .split('')
667
+ .filter((char) => validKeyPattern.test(char))
668
+ .slice(0, length);
669
+ // Always paste starting at the first box
670
+ validChars.forEach((char, index) => {
671
+ if (index < length) {
672
+ this.inputRefs[index].value = char;
673
+ this.inputValues[index] = char;
674
+ }
675
+ });
676
+ // Update the value so that all input boxes are updated
677
+ this.value = validChars.join('');
678
+ this.updateValue(event);
679
+ // Focus the next empty input after pasting
680
+ // If all boxes are filled, focus the last input
681
+ const nextEmptyIndex = validChars.length < length ? validChars.length : length - 1;
682
+ inputRefs[nextEmptyIndex]?.focus();
683
+ };
679
684
  /**
680
685
  * Determines if a separator should be shown for a given index by
681
686
  * checking if the index is included in the parsed separators array.
@@ -685,14 +690,13 @@ const InputOTP = class {
685
690
  return this.parsedSeparators.includes(index + 1) && index < length - 1;
686
691
  }
687
692
  render() {
688
- var _a, _b;
689
693
  const { autocapitalize, color, disabled, el, fill, hasFocus, inheritedAttributes, inputId, inputRefs, inputValues, length, readonly, shape, size, } = this;
690
694
  const mode = ionicGlobal.getIonMode(this);
691
695
  const inputmode = this.getInputmode();
692
696
  const tabbableIndex = this.getTabbableIndex();
693
697
  const pattern = this.getPattern();
694
- const hasDescription = ((_b = (_a = el.querySelector('.input-otp-description')) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== '';
695
- return (index.h(index.Host, { key: '2bdd205b13281373a43d1a86a25df950a6f36ae1', class: theme.createColorClasses(color, {
698
+ const hasDescription = el.querySelector('.input-otp-description')?.textContent?.trim() !== '';
699
+ return (index.h(index.Host, { key: 'bd37661e13cde21feff30c663e6813ce3fff0d9a', class: theme.createColorClasses(color, {
696
700
  [mode]: true,
697
701
  'has-focus': hasFocus,
698
702
  [`input-otp-size-${size}`]: true,
@@ -700,17 +704,12 @@ const InputOTP = class {
700
704
  [`input-otp-fill-${fill}`]: true,
701
705
  'input-otp-disabled': disabled,
702
706
  'input-otp-readonly': readonly,
703
- }) }, index.h("div", Object.assign({ key: 'b82d198138929327cd5429bbeb482248935ae88d', role: "group", "aria-label": "One-time password input", class: "input-otp-group", part: "group" }, inheritedAttributes), Array.from({ length }).map((_, index$1) => (index.h(index.Fragment, null, index.h("div", { class: "native-wrapper", part: "container" }, index.h("input", { class: "native-input", part: "native", id: `${inputId}-${index$1}`, "aria-label": `Input ${index$1 + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index$1 === tabbableIndex ? 0 : -1, value: inputValues[index$1] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index$1] = el), onInput: this.onInput(index$1), onBlur: this.onBlur, onFocus: this.onFocus(index$1), onKeyDown: this.onKeyDown(index$1), onPaste: this.onPaste })), this.showSeparator(index$1) && index.h("div", { class: "input-otp-separator", part: "separator" }))))), index.h("div", { key: '0bb5444d4e653bb7310abec502f5b1d76e681c37', class: {
707
+ }) }, index.h("div", { key: '5e206f870024f1ecfebda999ff31e6e815774deb', role: "group", "aria-label": "One-time password input", class: "input-otp-group", ...inheritedAttributes }, Array.from({ length }).map((_, index$1) => (index.h(index.Fragment, null, index.h("div", { class: "native-wrapper" }, index.h("input", { class: "native-input", id: `${inputId}-${index$1}`, "aria-label": `Input ${index$1 + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index$1 === tabbableIndex ? 0 : -1, value: inputValues[index$1] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index$1] = el), onInput: this.onInput(index$1), onBlur: this.onBlur, onFocus: this.onFocus(index$1), onKeyDown: this.onKeyDown(index$1), onPaste: this.onPaste })), this.showSeparator(index$1) && index.h("div", { class: "input-otp-separator" }))))), index.h("div", { key: 'c268f838ddab2c8d6a612a11c7d38e6ca076436d', class: {
704
708
  'input-otp-description': true,
705
709
  'input-otp-description-hidden': !hasDescription,
706
- }, part: "description" }, index.h("slot", { key: 'f717bda988a6e9b97d67025c1d3163d838f27bb5' }))));
710
+ } }, index.h("slot", { key: 'c0736359b26f609b795e399fc1ad9b540632af18' }))));
707
711
  }
708
- static get formAssociated() { return true; }
709
- get el() { return index.getElement(this); }
710
712
  static get watchers() { return {
711
- "disabled": [{
712
- "disabledChanged": 0
713
- }],
714
713
  "value": [{
715
714
  "valueChanged": 0
716
715
  }],
@@ -724,7 +723,6 @@ const InputOTP = class {
724
723
  };
725
724
  let inputIds = 0;
726
725
  InputOTP.style = {
727
- ionic: inputOtpIonicCss(),
728
726
  ios: inputOtpIosCss(),
729
727
  md: inputOtpMdCss()
730
728
  };