voyager-ionic-core 7.5.5 → 7.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1847) hide show
  1. package/components/action-sheet.js +297 -287
  2. package/components/alert.js +477 -467
  3. package/components/animation.js +991 -990
  4. package/components/backdrop.js +56 -56
  5. package/components/button-active.js +56 -56
  6. package/components/button.js +236 -236
  7. package/components/buttons.js +29 -29
  8. package/components/capacitor.js +4 -4
  9. package/components/checkbox.js +172 -170
  10. package/components/config.js +142 -142
  11. package/components/cubic-bezier.js +49 -49
  12. package/components/data.js +1055 -1055
  13. package/components/dir.js +5 -5
  14. package/components/focus-visible.js +63 -63
  15. package/components/form-controller.js +45 -45
  16. package/components/framework-delegate.js +121 -121
  17. package/components/gesture-controller.js +182 -182
  18. package/components/haptic.js +150 -150
  19. package/components/hardware-back-button.js +48 -48
  20. package/components/helpers.js +257 -257
  21. package/components/icon.js +133 -133
  22. package/components/index.js +95 -95
  23. package/components/index2.js +163 -163
  24. package/components/index3.js +417 -417
  25. package/components/index4.js +257 -259
  26. package/components/index5.js +0 -22
  27. package/components/index6.js +3 -3
  28. package/components/index8.js +58 -58
  29. package/components/index9.js +171 -171
  30. package/components/input-shims.js +488 -483
  31. package/components/input.utils.js +107 -106
  32. package/components/ion-accordion-group.d.ts +2 -2
  33. package/components/ion-accordion-group.js +220 -220
  34. package/components/ion-accordion.d.ts +2 -2
  35. package/components/ion-accordion.js +326 -326
  36. package/components/ion-action-sheet.d.ts +2 -2
  37. package/components/ion-alert.d.ts +2 -2
  38. package/components/ion-app.d.ts +2 -2
  39. package/components/ion-app.js +93 -93
  40. package/components/ion-avatar.d.ts +2 -2
  41. package/components/ion-avatar.js +23 -23
  42. package/components/ion-back-button.d.ts +2 -2
  43. package/components/ion-back-button.js +102 -102
  44. package/components/ion-backdrop.d.ts +2 -2
  45. package/components/ion-badge.d.ts +2 -2
  46. package/components/ion-badge.js +29 -29
  47. package/components/ion-breadcrumb.d.ts +2 -2
  48. package/components/ion-breadcrumb.js +111 -111
  49. package/components/ion-breadcrumbs.d.ts +2 -2
  50. package/components/ion-breadcrumbs.js +139 -139
  51. package/components/ion-button.d.ts +2 -2
  52. package/components/ion-buttons.d.ts +2 -2
  53. package/components/ion-card-content.d.ts +2 -2
  54. package/components/ion-card-content.js +27 -27
  55. package/components/ion-card-header.d.ts +2 -2
  56. package/components/ion-card-header.js +33 -33
  57. package/components/ion-card-subtitle.d.ts +2 -2
  58. package/components/ion-card-subtitle.js +30 -30
  59. package/components/ion-card-title.d.ts +2 -2
  60. package/components/ion-card-title.js +30 -30
  61. package/components/ion-card.d.ts +2 -2
  62. package/components/ion-card.js +78 -78
  63. package/components/ion-checkbox.d.ts +2 -2
  64. package/components/ion-chip.d.ts +2 -2
  65. package/components/ion-chip.js +41 -41
  66. package/components/ion-col.d.ts +2 -2
  67. package/components/ion-col.js +156 -156
  68. package/components/ion-content.d.ts +2 -2
  69. package/components/ion-content.js +394 -394
  70. package/components/ion-datetime-button.d.ts +2 -2
  71. package/components/ion-datetime-button.js +348 -348
  72. package/components/ion-datetime.d.ts +2 -2
  73. package/components/ion-datetime.js +1722 -1709
  74. package/components/ion-fab-button.d.ts +2 -2
  75. package/components/ion-fab-button.js +109 -109
  76. package/components/ion-fab-list.d.ts +2 -2
  77. package/components/ion-fab-list.js +44 -44
  78. package/components/ion-fab.d.ts +2 -2
  79. package/components/ion-fab.js +75 -75
  80. package/components/ion-footer.d.ts +2 -2
  81. package/components/ion-footer.js +124 -124
  82. package/components/ion-grid.d.ts +2 -2
  83. package/components/ion-grid.js +27 -27
  84. package/components/ion-header.d.ts +2 -2
  85. package/components/ion-header.js +298 -298
  86. package/components/ion-img.d.ts +2 -2
  87. package/components/ion-img.js +97 -97
  88. package/components/ion-infinite-scroll-content.d.ts +2 -2
  89. package/components/ion-infinite-scroll-content.js +49 -49
  90. package/components/ion-infinite-scroll.d.ts +2 -2
  91. package/components/ion-infinite-scroll.js +187 -179
  92. package/components/ion-input.d.ts +2 -2
  93. package/components/ion-input.js +479 -454
  94. package/components/ion-item-divider.d.ts +2 -2
  95. package/components/ion-item-divider.js +34 -34
  96. package/components/ion-item-group.d.ts +2 -2
  97. package/components/ion-item-group.js +28 -28
  98. package/components/ion-item-option.d.ts +2 -2
  99. package/components/ion-item-option.js +67 -67
  100. package/components/ion-item-options.d.ts +2 -2
  101. package/components/ion-item-options.js +50 -50
  102. package/components/ion-item-sliding.d.ts +2 -2
  103. package/components/ion-item-sliding.js +404 -404
  104. package/components/ion-item.d.ts +2 -2
  105. package/components/ion-label.d.ts +2 -2
  106. package/components/ion-list-header.d.ts +2 -2
  107. package/components/ion-list.d.ts +2 -2
  108. package/components/ion-loading.d.ts +2 -2
  109. package/components/ion-loading.js +257 -247
  110. package/components/ion-menu-button.d.ts +2 -2
  111. package/components/ion-menu-button.js +77 -77
  112. package/components/ion-menu-toggle.d.ts +2 -2
  113. package/components/ion-menu-toggle.js +41 -41
  114. package/components/ion-menu.d.ts +2 -2
  115. package/components/ion-menu.js +629 -629
  116. package/components/ion-modal.d.ts +2 -2
  117. package/components/ion-modal.js +1451 -1441
  118. package/components/ion-nav-link.d.ts +2 -2
  119. package/components/ion-nav-link.js +47 -47
  120. package/components/ion-nav.d.ts +2 -2
  121. package/components/ion-nav.js +910 -910
  122. package/components/ion-note.d.ts +2 -2
  123. package/components/ion-picker-column-internal.d.ts +2 -2
  124. package/components/ion-picker-column.d.ts +2 -2
  125. package/components/ion-picker-internal.d.ts +2 -2
  126. package/components/ion-picker.d.ts +2 -2
  127. package/components/ion-picker.js +263 -253
  128. package/components/ion-popover.d.ts +2 -2
  129. package/components/ion-progress-bar.d.ts +2 -2
  130. package/components/ion-progress-bar.js +57 -57
  131. package/components/ion-radio-group.d.ts +2 -2
  132. package/components/ion-radio.d.ts +2 -2
  133. package/components/ion-range.d.ts +2 -2
  134. package/components/ion-range.js +593 -591
  135. package/components/ion-refresher-content.d.ts +2 -2
  136. package/components/ion-refresher-content.js +63 -63
  137. package/components/ion-refresher.d.ts +2 -2
  138. package/components/ion-refresher.js +747 -747
  139. package/components/ion-reorder-group.d.ts +2 -2
  140. package/components/ion-reorder-group.js +259 -259
  141. package/components/ion-reorder.d.ts +2 -2
  142. package/components/ion-reorder.js +39 -39
  143. package/components/ion-ripple-effect.d.ts +2 -2
  144. package/components/ion-route-redirect.d.ts +2 -2
  145. package/components/ion-route-redirect.js +34 -34
  146. package/components/ion-route.d.ts +2 -2
  147. package/components/ion-route.js +56 -56
  148. package/components/ion-router-link.d.ts +2 -2
  149. package/components/ion-router-link.js +45 -45
  150. package/components/ion-router-outlet.d.ts +2 -2
  151. package/components/ion-router-outlet.js +193 -193
  152. package/components/ion-router.d.ts +2 -2
  153. package/components/ion-router.js +632 -632
  154. package/components/ion-row.d.ts +2 -2
  155. package/components/ion-row.js +20 -20
  156. package/components/ion-searchbar.d.ts +2 -2
  157. package/components/ion-searchbar.js +402 -400
  158. package/components/ion-segment-button.d.ts +2 -2
  159. package/components/ion-segment-button.js +117 -117
  160. package/components/ion-segment.d.ts +2 -2
  161. package/components/ion-segment.js +427 -427
  162. package/components/ion-select-option.d.ts +2 -2
  163. package/components/ion-select-option.js +27 -27
  164. package/components/ion-select-popover.d.ts +2 -2
  165. package/components/ion-select.d.ts +2 -2
  166. package/components/ion-select.js +778 -763
  167. package/components/ion-skeleton-text.d.ts +2 -2
  168. package/components/ion-skeleton-text.js +45 -32
  169. package/components/ion-spinner.d.ts +2 -2
  170. package/components/ion-split-pane.d.ts +2 -2
  171. package/components/ion-split-pane.js +145 -145
  172. package/components/ion-tab-bar.d.ts +2 -2
  173. package/components/ion-tab-bar.js +77 -77
  174. package/components/ion-tab-button.d.ts +2 -2
  175. package/components/ion-tab-button.js +104 -104
  176. package/components/ion-tab.d.ts +2 -2
  177. package/components/ion-tab.js +72 -72
  178. package/components/ion-tabs.d.ts +2 -2
  179. package/components/ion-tabs.js +160 -160
  180. package/components/ion-text.d.ts +2 -2
  181. package/components/ion-text.js +26 -26
  182. package/components/ion-textarea.d.ts +2 -2
  183. package/components/ion-textarea.js +420 -395
  184. package/components/ion-thumbnail.d.ts +2 -2
  185. package/components/ion-thumbnail.js +20 -20
  186. package/components/ion-title.d.ts +2 -2
  187. package/components/ion-title.js +56 -56
  188. package/components/ion-toast.d.ts +2 -2
  189. package/components/ion-toast.js +819 -464
  190. package/components/ion-toggle.d.ts +2 -2
  191. package/components/ion-toggle.js +243 -241
  192. package/components/ion-toolbar.d.ts +2 -2
  193. package/components/ion-toolbar.js +71 -71
  194. package/components/ionic-global.js +163 -163
  195. package/components/ios.transition.js +598 -598
  196. package/components/item.js +301 -301
  197. package/components/keyboard-controller.js +128 -128
  198. package/components/keyboard.js +62 -62
  199. package/components/keyboard2.js +59 -59
  200. package/components/label.js +85 -85
  201. package/components/list-header.js +33 -33
  202. package/components/list.js +50 -50
  203. package/components/lock-controller.js +24 -24
  204. package/components/md.transition.js +44 -44
  205. package/components/menu-toggle-util.js +2 -2
  206. package/components/notch-controller.js +120 -120
  207. package/components/note.js +29 -29
  208. package/components/overlays.js +496 -495
  209. package/components/picker-column-internal.js +350 -345
  210. package/components/picker-column.js +334 -334
  211. package/components/picker-internal.js +468 -468
  212. package/components/popover.js +1154 -1144
  213. package/components/radio-group.js +161 -159
  214. package/components/radio.js +248 -208
  215. package/components/ripple-effect.js +81 -81
  216. package/components/select-popover.js +163 -163
  217. package/components/spinner.js +182 -182
  218. package/components/status-tap.js +26 -26
  219. package/components/swipe-back.js +65 -65
  220. package/components/theme.js +23 -23
  221. package/components/watch-options.js +30 -30
  222. package/css/core.css +66 -0
  223. package/css/core.css.map +1 -1
  224. package/css/display.css +44 -0
  225. package/css/display.css.map +1 -1
  226. package/css/float-elements.css +44 -0
  227. package/css/float-elements.css.map +1 -1
  228. package/css/global.bundle.css +88 -0
  229. package/css/global.bundle.css.map +1 -1
  230. package/css/ionic-swiper.css +22 -0
  231. package/css/ionic-swiper.css.map +1 -1
  232. package/css/ionic.bundle.css.map +1 -1
  233. package/css/padding.css +44 -0
  234. package/css/padding.css.map +1 -1
  235. package/css/structure.css +44 -0
  236. package/css/structure.css.map +1 -1
  237. package/css/text-alignment.css +44 -0
  238. package/css/text-alignment.css.map +1 -1
  239. package/css/text-transformation.css +44 -0
  240. package/css/text-transformation.css.map +1 -1
  241. package/css/typography.css +44 -0
  242. package/css/typography.css.map +1 -1
  243. package/css/utils.bundle.css +220 -0
  244. package/css/utils.bundle.css.map +1 -1
  245. package/dist/cjs/animation-9b401d39.js +1062 -0
  246. package/dist/cjs/{app-globals-1d4c1dbf.js → app-globals-0af482c7.js} +1 -1
  247. package/dist/cjs/button-active-a5185907.js +69 -0
  248. package/dist/cjs/{capacitor-2ffba62a.js → capacitor-c04564bf.js} +5 -5
  249. package/dist/cjs/compare-with-utils-df1001d7.js +44 -0
  250. package/dist/cjs/config-4f60b98a.js +199 -0
  251. package/dist/cjs/cubic-bezier-f2dccc53.js +92 -0
  252. package/dist/cjs/data-36b9094e.js +1622 -0
  253. package/dist/cjs/{dir-f1e0ca26.js → dir-94c21456.js} +5 -5
  254. package/dist/cjs/focus-visible-7a0ce04f.js +77 -0
  255. package/dist/cjs/form-controller-7d42a722.js +66 -0
  256. package/dist/cjs/framework-delegate-1c29b14a.js +144 -0
  257. package/dist/cjs/gesture-controller-c40c045a.js +197 -0
  258. package/dist/cjs/haptic-b882e0bb.js +212 -0
  259. package/dist/cjs/hardware-back-button-76833cac.js +76 -0
  260. package/dist/cjs/helpers-76bb7efb.js +441 -0
  261. package/dist/cjs/{index-cc7dfb7c.js → index-5915f9b3.js} +3 -3
  262. package/dist/cjs/index-b4f986cd.js +198 -0
  263. package/dist/cjs/{index-c2940dc1.js → index-bbb4336c.js} +58 -7
  264. package/dist/cjs/index-c8d52405.js +10 -0
  265. package/dist/cjs/index-ce101dc9.js +308 -0
  266. package/dist/cjs/index-d1b59ffa.js +459 -0
  267. package/dist/cjs/{index-da2c7a37.js → index-da15e99c.js} +60 -60
  268. package/dist/cjs/index-f8f13389.js +243 -0
  269. package/dist/cjs/index.cjs.js +113 -113
  270. package/dist/cjs/input-shims-a23bb0f4.js +601 -0
  271. package/dist/cjs/input.utils-3d0166a2.js +138 -0
  272. package/dist/cjs/ion-accordion_2.cjs.entry.js +488 -488
  273. package/dist/cjs/ion-action-sheet.cjs.entry.js +260 -250
  274. package/dist/cjs/ion-alert.cjs.entry.js +442 -432
  275. package/dist/cjs/ion-app_8.cjs.entry.js +1151 -1151
  276. package/dist/cjs/ion-avatar_3.cjs.entry.js +29 -29
  277. package/dist/cjs/ion-back-button.cjs.entry.js +73 -73
  278. package/dist/cjs/ion-backdrop.cjs.entry.js +40 -40
  279. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +194 -194
  280. package/dist/cjs/ion-button_2.cjs.entry.js +303 -303
  281. package/dist/cjs/ion-card_5.cjs.entry.js +105 -105
  282. package/dist/cjs/ion-checkbox.cjs.entry.js +149 -147
  283. package/dist/cjs/ion-chip.cjs.entry.js +20 -20
  284. package/dist/cjs/ion-col_3.cjs.entry.js +136 -136
  285. package/dist/cjs/ion-datetime-button.cjs.entry.js +325 -325
  286. package/dist/cjs/ion-datetime_3.cjs.entry.js +2185 -2162
  287. package/dist/cjs/ion-fab_3.cjs.entry.js +150 -150
  288. package/dist/cjs/ion-img.cjs.entry.js +79 -79
  289. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +198 -190
  290. package/dist/cjs/ion-input.cjs.entry.js +424 -399
  291. package/dist/cjs/ion-item-option_3.cjs.entry.js +457 -457
  292. package/dist/cjs/ion-item_8.cjs.entry.js +441 -428
  293. package/dist/cjs/ion-loading.cjs.entry.js +220 -210
  294. package/dist/cjs/ion-menu_3.cjs.entry.js +668 -668
  295. package/dist/cjs/ion-modal.cjs.entry.js +1415 -1405
  296. package/dist/cjs/ion-nav_2.cjs.entry.js +904 -904
  297. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +331 -327
  298. package/dist/cjs/ion-picker-internal.cjs.entry.js +453 -453
  299. package/dist/cjs/ion-popover.cjs.entry.js +1108 -1098
  300. package/dist/cjs/ion-progress-bar.cjs.entry.js +40 -40
  301. package/dist/cjs/ion-radio_2.cjs.entry.js +321 -316
  302. package/dist/cjs/ion-range.cjs.entry.js +558 -556
  303. package/dist/cjs/ion-refresher_2.cjs.entry.js +786 -786
  304. package/dist/cjs/ion-reorder_2.cjs.entry.js +267 -267
  305. package/dist/cjs/ion-ripple-effect.cjs.entry.js +66 -66
  306. package/dist/cjs/ion-route_4.cjs.entry.js +693 -693
  307. package/dist/cjs/ion-searchbar.cjs.entry.js +360 -358
  308. package/dist/cjs/ion-segment_2.cjs.entry.js +507 -507
  309. package/dist/cjs/ion-select_3.cjs.entry.js +784 -768
  310. package/dist/cjs/ion-spinner.cjs.entry.js +46 -46
  311. package/dist/cjs/ion-split-pane.cjs.entry.js +117 -117
  312. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +138 -138
  313. package/dist/cjs/ion-tab_2.cjs.entry.js +187 -187
  314. package/dist/cjs/ion-text.cjs.entry.js +13 -13
  315. package/dist/cjs/ion-textarea.cjs.entry.js +378 -353
  316. package/dist/cjs/ion-toast.cjs.entry.js +771 -419
  317. package/dist/cjs/ion-toggle.cjs.entry.js +227 -225
  318. package/dist/cjs/ionic-global-f4a2093b.js +230 -0
  319. package/dist/cjs/ionic.cjs.js +5 -5
  320. package/dist/cjs/ios.transition-6787b799.js +654 -0
  321. package/dist/cjs/keyboard-0272231f.js +81 -0
  322. package/dist/cjs/{keyboard-38f2bb7b.js → keyboard-af1bb365.js} +62 -62
  323. package/dist/cjs/keyboard-controller-c05e747a.js +167 -0
  324. package/dist/cjs/loader.cjs.js +4 -4
  325. package/dist/cjs/lock-controller-6585a42a.js +40 -0
  326. package/dist/cjs/md.transition-e033d20a.js +59 -0
  327. package/dist/cjs/notch-controller-9735e7ac.js +155 -0
  328. package/dist/cjs/overlays-27a6fb16.js +716 -0
  329. package/dist/cjs/spinner-configs-282fd50a.js +147 -0
  330. package/dist/cjs/status-tap-415acac6.js +42 -0
  331. package/dist/cjs/swipe-back-e37a1a5c.js +81 -0
  332. package/dist/cjs/theme-d1c573d2.js +48 -0
  333. package/dist/cjs/watch-options-f5f3e158.js +49 -0
  334. package/dist/collection/collection-manifest.json +7 -7
  335. package/dist/collection/components/accordion/accordion.ios.css +44 -0
  336. package/dist/collection/components/accordion/accordion.js +410 -410
  337. package/dist/collection/components/accordion/accordion.md.css +22 -0
  338. package/dist/collection/components/accordion/test/a11y/accordion.e2e.js +31 -31
  339. package/dist/collection/components/accordion/test/accordion.e2e.js +24 -24
  340. package/dist/collection/components/accordion/test/accordion.spec.js +195 -0
  341. package/dist/collection/components/accordion/test/basic/accordion.e2e.js +26 -26
  342. package/dist/collection/components/accordion/test/multiple/accordion.e2e.js +18 -18
  343. package/dist/collection/components/accordion/test/nested/accordion.e2e.js +16 -16
  344. package/dist/collection/components/accordion/test/standalone/accordion.e2e.js +6 -6
  345. package/dist/collection/components/accordion-group/accordion-group.ios.css +44 -0
  346. package/dist/collection/components/accordion-group/accordion-group.js +421 -421
  347. package/dist/collection/components/accordion-group/accordion-group.md.css +66 -0
  348. package/dist/collection/components/action-sheet/action-sheet.ios.css +44 -0
  349. package/dist/collection/components/action-sheet/action-sheet.js +739 -729
  350. package/dist/collection/components/action-sheet/action-sheet.md.css +44 -0
  351. package/dist/collection/components/action-sheet/animations/ios.enter.js +18 -18
  352. package/dist/collection/components/action-sheet/animations/ios.leave.js +12 -12
  353. package/dist/collection/components/action-sheet/animations/md.enter.js +18 -18
  354. package/dist/collection/components/action-sheet/animations/md.leave.js +12 -12
  355. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +59 -59
  356. package/dist/collection/components/action-sheet/test/action-sheet-id.spec.js +32 -0
  357. package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +33 -33
  358. package/dist/collection/components/action-sheet/test/basic/action-sheet.e2e.js +74 -74
  359. package/dist/collection/components/action-sheet/test/basic/action-sheet.spec.js +18 -0
  360. package/dist/collection/components/action-sheet/test/basic/fixture.js +23 -23
  361. package/dist/collection/components/action-sheet/test/is-open/action-sheet.e2e.js +25 -25
  362. package/dist/collection/components/action-sheet/test/translucent/action-sheet.e2e.js +10 -10
  363. package/dist/collection/components/action-sheet/test/trigger/action-sheet.e2e.js +21 -21
  364. package/dist/collection/components/alert/alert.ios.css +85 -1
  365. package/dist/collection/components/alert/alert.js +977 -967
  366. package/dist/collection/components/alert/alert.md.css +115 -3
  367. package/dist/collection/components/alert/animations/ios.enter.js +19 -19
  368. package/dist/collection/components/alert/animations/ios.leave.js +13 -13
  369. package/dist/collection/components/alert/animations/md.enter.js +19 -19
  370. package/dist/collection/components/alert/animations/md.leave.js +10 -10
  371. package/dist/collection/components/alert/test/a11y/alert.e2e.js +116 -116
  372. package/dist/collection/components/alert/test/alert-id.spec.js +32 -0
  373. package/dist/collection/components/alert/test/alert.spec.js +37 -0
  374. package/dist/collection/components/alert/test/basic/alert-tablet.e2e.js +40 -0
  375. package/dist/collection/components/alert/test/basic/alert.e2e.js +96 -96
  376. package/dist/collection/components/alert/test/is-open/alert.e2e.js +25 -25
  377. package/dist/collection/components/alert/test/standalone/alert.e2e.js +9 -9
  378. package/dist/collection/components/alert/test/trigger/alert.e2e.js +21 -21
  379. package/dist/collection/components/app/app.js +116 -116
  380. package/dist/collection/components/app/test/safe-area/app.e2e.js +24 -24
  381. package/dist/collection/components/avatar/avatar.ios.css +44 -0
  382. package/dist/collection/components/avatar/avatar.js +17 -17
  383. package/dist/collection/components/avatar/avatar.md.css +44 -0
  384. package/dist/collection/components/avatar/test/basic/avatar.e2e.js +12 -12
  385. package/dist/collection/components/back-button/back-button.ios.css +44 -0
  386. package/dist/collection/components/back-button/back-button.js +214 -214
  387. package/dist/collection/components/back-button/back-button.md.css +44 -0
  388. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +6 -6
  389. package/dist/collection/components/back-button/test/back-button.spec.js +86 -0
  390. package/dist/collection/components/back-button/test/basic/back-button.e2e.js +6 -6
  391. package/dist/collection/components/back-button/test/toolbar/back-button.e2e.js +6 -6
  392. package/dist/collection/components/backdrop/backdrop.ios.css +44 -0
  393. package/dist/collection/components/backdrop/backdrop.js +131 -131
  394. package/dist/collection/components/backdrop/backdrop.md.css +44 -0
  395. package/dist/collection/components/badge/badge.ios.css +44 -0
  396. package/dist/collection/components/badge/badge.js +49 -49
  397. package/dist/collection/components/badge/badge.md.css +44 -0
  398. package/dist/collection/components/badge/test/a11y/badge.e2e.js +6 -6
  399. package/dist/collection/components/badge/test/basic/badge.e2e.js +6 -6
  400. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +44 -0
  401. package/dist/collection/components/breadcrumb/breadcrumb.js +395 -395
  402. package/dist/collection/components/breadcrumb/breadcrumb.md.css +44 -0
  403. package/dist/collection/components/breadcrumb/test/aria.spec.js +22 -0
  404. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +22 -0
  405. package/dist/collection/components/breadcrumbs/breadcrumbs.js +247 -247
  406. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +22 -0
  407. package/dist/collection/components/breadcrumbs/test/a11y/breadcrumbs.e2e.js +12 -12
  408. package/dist/collection/components/breadcrumbs/test/basic/breadcrumbs.e2e.js +6 -6
  409. package/dist/collection/components/breadcrumbs/test/breadcrumbs.spec.js +58 -0
  410. package/dist/collection/components/breadcrumbs/test/collapsed/breadcrumbs.e2e.js +6 -6
  411. package/dist/collection/components/breadcrumbs/test/reactive/breadcrumbs.e2e.js +43 -43
  412. package/dist/collection/components/button/button.ios.css +66 -0
  413. package/dist/collection/components/button/button.js +541 -541
  414. package/dist/collection/components/button/button.md.css +44 -0
  415. package/dist/collection/components/button/test/a11y/button.e2e.js +21 -21
  416. package/dist/collection/components/button/test/basic/button.e2e.js +32 -32
  417. package/dist/collection/components/button/test/clear/button.e2e.js +6 -6
  418. package/dist/collection/components/button/test/expand/button.e2e.js +6 -6
  419. package/dist/collection/components/button/test/form-reference/button.e2e.js +84 -84
  420. package/dist/collection/components/button/test/form-reference/button.spec.js +26 -0
  421. package/dist/collection/components/button/test/icon/button.e2e.js +6 -6
  422. package/dist/collection/components/button/test/outline/button.e2e.js +6 -6
  423. package/dist/collection/components/button/test/round/button.e2e.js +6 -6
  424. package/dist/collection/components/button/test/size/button.e2e.js +22 -22
  425. package/dist/collection/components/button/test/strong/button.e2e.js +22 -22
  426. package/dist/collection/components/button/test/wrap/button.e2e.js +73 -73
  427. package/dist/collection/components/buttons/buttons.ios.css +66 -0
  428. package/dist/collection/components/buttons/buttons.js +46 -46
  429. package/dist/collection/components/buttons/buttons.md.css +66 -0
  430. package/dist/collection/components/buttons/test/a11y/buttons.e2e.js +21 -21
  431. package/dist/collection/components/card/card.ios.css +44 -0
  432. package/dist/collection/components/card/card.js +251 -251
  433. package/dist/collection/components/card/card.md.css +44 -0
  434. package/dist/collection/components/card/test/a11y/card.e2e.js +6 -6
  435. package/dist/collection/components/card/test/aria.spec.js +16 -0
  436. package/dist/collection/components/card/test/basic/card.e2e.js +38 -38
  437. package/dist/collection/components/card-content/card-content.ios.css +44 -0
  438. package/dist/collection/components/card-content/card-content.js +21 -21
  439. package/dist/collection/components/card-content/card-content.md.css +44 -0
  440. package/dist/collection/components/card-header/card-header.ios.css +44 -0
  441. package/dist/collection/components/card-header/card-header.js +70 -70
  442. package/dist/collection/components/card-header/card-header.md.css +44 -0
  443. package/dist/collection/components/card-header/test/basic/card-header.e2e.js +6 -6
  444. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +44 -0
  445. package/dist/collection/components/card-subtitle/card-subtitle.js +50 -50
  446. package/dist/collection/components/card-subtitle/card-subtitle.md.css +44 -0
  447. package/dist/collection/components/card-title/card-title.ios.css +44 -0
  448. package/dist/collection/components/card-title/card-title.js +50 -50
  449. package/dist/collection/components/card-title/card-title.md.css +44 -0
  450. package/dist/collection/components/checkbox/checkbox.ios.css +66 -6
  451. package/dist/collection/components/checkbox/checkbox.js +418 -415
  452. package/dist/collection/components/checkbox/checkbox.md.css +66 -6
  453. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +14 -14
  454. package/dist/collection/components/checkbox/test/basic/checkbox.e2e.js +50 -50
  455. package/dist/collection/components/checkbox/test/checkbox.spec.js +34 -0
  456. package/dist/collection/components/checkbox/test/color/checkbox.e2e.js +11 -11
  457. package/dist/collection/components/checkbox/test/indeterminate/checkbox.e2e.js +6 -6
  458. package/dist/collection/components/checkbox/test/item/checkbox.e2e.js +29 -29
  459. package/dist/collection/components/checkbox/test/label/checkbox.e2e.js +75 -75
  460. package/dist/collection/components/checkbox/test/legacy/basic/checkbox.e2e.js +45 -45
  461. package/dist/collection/components/checkbox/test/legacy/indeterminate/checkbox.e2e.js +6 -6
  462. package/dist/collection/components/checkbox/test/states/checkbox.e2e.js +21 -21
  463. package/dist/collection/components/chip/chip.ios.css +22 -0
  464. package/dist/collection/components/chip/chip.js +90 -90
  465. package/dist/collection/components/chip/chip.md.css +22 -0
  466. package/dist/collection/components/chip/test/a11y/chip.e2e.js +19 -19
  467. package/dist/collection/components/chip/test/basic/chip.e2e.js +42 -42
  468. package/dist/collection/components/chip/test/states/chip.e2e.js +14 -14
  469. package/dist/collection/components/col/col.css +66 -0
  470. package/dist/collection/components/col/col.js +536 -536
  471. package/dist/collection/components/content/content.css +22 -0
  472. package/dist/collection/components/content/content.js +745 -745
  473. package/dist/collection/components/content/test/basic/content.e2e.js +6 -6
  474. package/dist/collection/components/content/test/fixed/content.e2e.js +6 -6
  475. package/dist/collection/components/content/test/fullscreen/content.e2e.js +6 -6
  476. package/dist/collection/components/content/test/standalone/content.e2e.js +5 -5
  477. package/dist/collection/components/datetime/datetime.ios.css +45 -0
  478. package/dist/collection/components/datetime/datetime.js +2245 -2232
  479. package/dist/collection/components/datetime/datetime.md.css +45 -0
  480. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +58 -58
  481. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +43 -0
  482. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +241 -241
  483. package/dist/collection/components/datetime/test/color/datetime.e2e.js +9 -9
  484. package/dist/collection/components/datetime/test/comparison.spec.js +43 -0
  485. package/dist/collection/components/datetime/test/custom/datetime.e2e.js +37 -37
  486. package/dist/collection/components/datetime/test/data.spec.js +456 -0
  487. package/dist/collection/components/datetime/test/datetime.e2e.js +29 -29
  488. package/dist/collection/components/datetime/test/disable-dates/datetime.e2e.js +119 -119
  489. package/dist/collection/components/datetime/test/disabled/datetime.e2e.js +43 -43
  490. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +33 -0
  491. package/dist/collection/components/datetime/test/display/datetime.e2e.js +86 -86
  492. package/dist/collection/components/datetime/test/first-day-of-week/datetime.e2e.js +6 -6
  493. package/dist/collection/components/datetime/test/format.spec.js +124 -0
  494. package/dist/collection/components/datetime/test/helpers.spec.js +72 -0
  495. package/dist/collection/components/datetime/test/highlighted-dates/datetime.e2e.js +76 -76
  496. package/dist/collection/components/datetime/test/hour-cycle/datetime.e2e.js +21 -21
  497. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +98 -98
  498. package/dist/collection/components/datetime/test/manipulation.spec.js +433 -0
  499. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +178 -178
  500. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +17 -17
  501. package/dist/collection/components/datetime/test/multiple/datetime.e2e.js +170 -170
  502. package/dist/collection/components/datetime/test/parse.spec.js +222 -0
  503. package/dist/collection/components/datetime/test/position/datetime.e2e.js +14 -14
  504. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +263 -263
  505. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +137 -137
  506. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +86 -86
  507. package/dist/collection/components/datetime/test/set-value/datetime.e2e.js +40 -40
  508. package/dist/collection/components/datetime/test/state.spec.js +114 -0
  509. package/dist/collection/components/datetime/test/time-label/datetime.e2e.js +13 -13
  510. package/dist/collection/components/datetime/test/values/datetime.e2e.js +77 -77
  511. package/dist/collection/components/datetime/utils/comparison.js +22 -22
  512. package/dist/collection/components/datetime/utils/data.js +394 -394
  513. package/dist/collection/components/datetime/utils/format.js +143 -143
  514. package/dist/collection/components/datetime/utils/helpers.js +74 -74
  515. package/dist/collection/components/datetime/utils/manipulation.js +274 -274
  516. package/dist/collection/components/datetime/utils/parse.js +139 -139
  517. package/dist/collection/components/datetime/utils/state.js +123 -123
  518. package/dist/collection/components/datetime-button/datetime-button.css +22 -0
  519. package/dist/collection/components/datetime-button/datetime-button.js +399 -399
  520. package/dist/collection/components/datetime-button/test/a11y/datetime-button.e2e.js +11 -11
  521. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +123 -123
  522. package/dist/collection/components/datetime-button/test/disabled/datetime-button.e2e.js +13 -13
  523. package/dist/collection/components/datetime-button/test/multiple/datetime-button.e2e.js +38 -38
  524. package/dist/collection/components/datetime-button/test/overlays/datetime-button.e2e.js +102 -102
  525. package/dist/collection/components/fab/fab.css +88 -0
  526. package/dist/collection/components/fab/fab.js +179 -179
  527. package/dist/collection/components/fab/test/basic/fab.e2e.js +50 -50
  528. package/dist/collection/components/fab/test/custom-size/fab.e2e.js +6 -6
  529. package/dist/collection/components/fab/test/safe-area/fab.e2e.js +25 -25
  530. package/dist/collection/components/fab/test/states/fab.e2e.js +6 -6
  531. package/dist/collection/components/fab/test/translucent/fab.e2e.js +17 -17
  532. package/dist/collection/components/fab-button/fab-button.ios.css +44 -0
  533. package/dist/collection/components/fab-button/fab-button.js +374 -374
  534. package/dist/collection/components/fab-button/fab-button.md.css +44 -0
  535. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +6 -6
  536. package/dist/collection/components/fab-list/fab-list.css +44 -0
  537. package/dist/collection/components/fab-list/fab-list.js +79 -79
  538. package/dist/collection/components/footer/footer.ios.css +44 -0
  539. package/dist/collection/components/footer/footer.js +135 -135
  540. package/dist/collection/components/footer/footer.md.css +44 -0
  541. package/dist/collection/components/footer/footer.utils.js +25 -25
  542. package/dist/collection/components/footer/test/basic/footer.e2e.js +18 -18
  543. package/dist/collection/components/footer/test/fade/footer.e2e.js +10 -10
  544. package/dist/collection/components/footer/test/scroll-target/footer.e2e.js +15 -15
  545. package/dist/collection/components/footer/test/with-tabs/footer.e2e.js +6 -6
  546. package/dist/collection/components/grid/grid.css +66 -0
  547. package/dist/collection/components/grid/grid.js +44 -44
  548. package/dist/collection/components/grid/test/basic/grid.e2e.js +6 -6
  549. package/dist/collection/components/grid/test/offsets/grid.e2e.js +6 -6
  550. package/dist/collection/components/grid/test/padding/grid.e2e.js +6 -6
  551. package/dist/collection/components/grid/test/sizes/grid.e2e.js +6 -6
  552. package/dist/collection/components/header/header.ios.css +44 -0
  553. package/dist/collection/components/header/header.js +181 -181
  554. package/dist/collection/components/header/header.md.css +44 -0
  555. package/dist/collection/components/header/header.utils.js +148 -148
  556. package/dist/collection/components/header/test/a11y/header.e2e.js +18 -18
  557. package/dist/collection/components/header/test/basic/header.e2e.js +23 -23
  558. package/dist/collection/components/header/test/condense/header.e2e.js +25 -25
  559. package/dist/collection/components/header/test/fade/header.e2e.js +10 -10
  560. package/dist/collection/components/header/test/scroll-target/header.e2e.js +15 -15
  561. package/dist/collection/components/icon/test/basic/icon.e2e.js +6 -6
  562. package/dist/collection/components/icon/test/dir/icon.e2e.js +11 -11
  563. package/dist/collection/components/img/img.js +177 -177
  564. package/dist/collection/components/img/test/basic/img.e2e.js +62 -62
  565. package/dist/collection/components/img/test/draggable/img.e2e.js +10 -10
  566. package/dist/collection/components/infinite-scroll/infinite-scroll.js +279 -271
  567. package/dist/collection/components/infinite-scroll/test/basic/infinite-scroll.e2e.js +11 -11
  568. package/dist/collection/components/infinite-scroll/test/scroll-target/infinite-scroll.e2e.js +11 -11
  569. package/dist/collection/components/infinite-scroll/test/small-dom-update/infinite-scroll.e2e.js +31 -0
  570. package/dist/collection/components/infinite-scroll/test/top/infinite-scroll.e2e.js +11 -11
  571. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +44 -0
  572. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +86 -86
  573. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +44 -0
  574. package/dist/collection/components/infinite-scroll-content/test/infinite-scroll-content.spec.js +37 -0
  575. package/dist/collection/components/input/input.ios.css +76 -3
  576. package/dist/collection/components/input/input.js +1231 -1204
  577. package/dist/collection/components/input/input.md.css +145 -12
  578. package/dist/collection/components/input/input.utils.js +22 -22
  579. package/dist/collection/components/input/test/a11y/input.e2e.js +12 -12
  580. package/dist/collection/components/input/test/basic/input.e2e.js +63 -63
  581. package/dist/collection/components/input/test/bottom-content/input.e2e.js +89 -89
  582. package/dist/collection/components/input/test/card/input.e2e.js +6 -6
  583. package/dist/collection/components/input/test/clear-on-edit/input.e2e.js +25 -25
  584. package/dist/collection/components/input/test/color/input.e2e.js +88 -88
  585. package/dist/collection/components/input/test/fill/input.e2e.js +63 -63
  586. package/dist/collection/components/input/test/highlight/input.e2e.js +52 -52
  587. package/dist/collection/components/input/test/input.e2e.js +6 -6
  588. package/dist/collection/components/input/test/input.spec.js +85 -0
  589. package/dist/collection/components/input/test/item/input.e2e.js +11 -11
  590. package/dist/collection/components/input/test/item/input.spec.js +24 -0
  591. package/dist/collection/components/input/test/label-placement/input.e2e.js +104 -104
  592. package/dist/collection/components/input/test/legacy/a11y/input.e2e.js +15 -15
  593. package/dist/collection/components/input/test/legacy/basic/input.e2e.js +102 -102
  594. package/dist/collection/components/input/test/legacy/clear-on-edit/input.e2e.js +44 -44
  595. package/dist/collection/components/input/test/legacy/input-events.e2e.js +56 -56
  596. package/dist/collection/components/input/test/legacy/masking/input.e2e.js +15 -15
  597. package/dist/collection/components/input/test/legacy/spec/input.e2e.js +8 -8
  598. package/dist/collection/components/input/test/slot/input.e2e.js +51 -0
  599. package/dist/collection/components/input/test/states/input.e2e.js +11 -11
  600. package/dist/collection/components/item/item.ios.css +85 -3
  601. package/dist/collection/components/item/item.js +614 -614
  602. package/dist/collection/components/item/item.md.css +129 -3
  603. package/dist/collection/components/item/test/a11y/item.e2e.js +47 -47
  604. package/dist/collection/components/item/test/a11y/item.spec.js +48 -0
  605. package/dist/collection/components/item/test/alignment/item.e2e.js +6 -6
  606. package/dist/collection/components/item/test/basic/item.e2e.js +16 -16
  607. package/dist/collection/components/item/test/buttons/item.e2e.js +18 -18
  608. package/dist/collection/components/item/test/colors/item.e2e.js +6 -6
  609. package/dist/collection/components/item/test/counter/item.e2e.js +34 -34
  610. package/dist/collection/components/item/test/css-variables/item.e2e.js +6 -6
  611. package/dist/collection/components/item/test/disabled/item.e2e.js +6 -7
  612. package/dist/collection/components/item/test/dividers/item.e2e.js +6 -6
  613. package/dist/collection/components/item/test/groups/item.e2e.js +8 -8
  614. package/dist/collection/components/item/test/highlight/item.e2e.js +6 -6
  615. package/dist/collection/components/item/test/icons/item.e2e.js +6 -6
  616. package/dist/collection/components/item/test/images/item.e2e.js +6 -6
  617. package/dist/collection/components/item/test/inputs/item.e2e.js +139 -139
  618. package/dist/collection/components/item/test/legacy/alignment/item.e2e.js +6 -6
  619. package/dist/collection/components/item/test/legacy/disabled/item.e2e.js +6 -6
  620. package/dist/collection/components/item/test/legacy/fill/item.e2e.js +6 -6
  621. package/dist/collection/components/item/test/legacy/form/item.e2e.js +6 -6
  622. package/dist/collection/components/item/test/lines/item.e2e.js +6 -6
  623. package/dist/collection/components/item/test/media/item.e2e.js +6 -6
  624. package/dist/collection/components/item/test/reorder/item.e2e.js +8 -8
  625. package/dist/collection/components/item/test/slotted-inputs/item.e2e.js +6 -6
  626. package/dist/collection/components/item/test/states/item.e2e.js +6 -6
  627. package/dist/collection/components/item-divider/item-divider.ios.css +66 -0
  628. package/dist/collection/components/item-divider/item-divider.js +71 -71
  629. package/dist/collection/components/item-divider/item-divider.md.css +66 -0
  630. package/dist/collection/components/item-divider/test/a11y/item-divider.e2e.js +11 -11
  631. package/dist/collection/components/item-divider/test/basic/item-divider.e2e.js +25 -25
  632. package/dist/collection/components/item-divider/test/spec/item-divider.e2e.js +8 -8
  633. package/dist/collection/components/item-group/item-group.ios.css +44 -0
  634. package/dist/collection/components/item-group/item-group.js +22 -22
  635. package/dist/collection/components/item-group/item-group.md.css +44 -0
  636. package/dist/collection/components/item-option/item-option.ios.css +44 -0
  637. package/dist/collection/components/item-option/item-option.js +197 -197
  638. package/dist/collection/components/item-option/item-option.md.css +44 -0
  639. package/dist/collection/components/item-options/item-options.ios.css +66 -0
  640. package/dist/collection/components/item-options/item-options.js +110 -110
  641. package/dist/collection/components/item-options/item-options.md.css +66 -0
  642. package/dist/collection/components/item-sliding/item-sliding.css +22 -0
  643. package/dist/collection/components/item-sliding/item-sliding.js +538 -538
  644. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +5 -5
  645. package/dist/collection/components/item-sliding/test/async/item-sliding.e2e.js +25 -25
  646. package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +87 -87
  647. package/dist/collection/components/item-sliding/test/icons/item-sliding.e2e.js +20 -20
  648. package/dist/collection/components/item-sliding/test/scroll-target/item-sliding.e2e.js +18 -18
  649. package/dist/collection/components/item-sliding/test/test.utils.js +20 -20
  650. package/dist/collection/components/label/label.ios.css +80 -3
  651. package/dist/collection/components/label/label.js +174 -174
  652. package/dist/collection/components/label/label.md.css +80 -3
  653. package/dist/collection/components/label/test/a11y/label.e2e.js +21 -21
  654. package/dist/collection/components/label/test/basic/label.e2e.js +21 -21
  655. package/dist/collection/components/label/test/color/label.e2e.js +21 -21
  656. package/dist/collection/components/label/test/headings/label.e2e.js +5 -5
  657. package/dist/collection/components/list/list.ios.css +66 -0
  658. package/dist/collection/components/list/list.js +101 -101
  659. package/dist/collection/components/list/list.md.css +66 -0
  660. package/dist/collection/components/list/test/a11y/list.e2e.js +6 -6
  661. package/dist/collection/components/list/test/basic/list.e2e.js +6 -6
  662. package/dist/collection/components/list/test/inset/list.e2e.js +16 -16
  663. package/dist/collection/components/list/test/lines/list.e2e.js +40 -40
  664. package/dist/collection/components/list-header/list-header.ios.css +66 -0
  665. package/dist/collection/components/list-header/list-header.js +69 -69
  666. package/dist/collection/components/list-header/list-header.md.css +66 -0
  667. package/dist/collection/components/list-header/test/a11y/list-header.e2e.js +6 -6
  668. package/dist/collection/components/list-header/test/basic/list-header.e2e.js +14 -14
  669. package/dist/collection/components/loading/animations/ios.enter.js +19 -19
  670. package/dist/collection/components/loading/animations/ios.leave.js +13 -13
  671. package/dist/collection/components/loading/animations/md.enter.js +19 -19
  672. package/dist/collection/components/loading/animations/md.leave.js +13 -13
  673. package/dist/collection/components/loading/loading.ios.css +44 -0
  674. package/dist/collection/components/loading/loading.js +730 -720
  675. package/dist/collection/components/loading/loading.md.css +44 -0
  676. package/dist/collection/components/loading/test/a11y/loading.e2e.js +26 -26
  677. package/dist/collection/components/loading/test/basic/loading.e2e.js +60 -60
  678. package/dist/collection/components/loading/test/basic/loading.spec.js +16 -0
  679. package/dist/collection/components/loading/test/is-open/loading.e2e.js +17 -17
  680. package/dist/collection/components/loading/test/loading-id.spec.js +32 -0
  681. package/dist/collection/components/loading/test/loading.spec.js +37 -0
  682. package/dist/collection/components/loading/test/standalone/loading.e2e.js +13 -13
  683. package/dist/collection/components/loading/test/trigger/loading.e2e.js +21 -21
  684. package/dist/collection/components/menu/menu.ios.css +44 -0
  685. package/dist/collection/components/menu/menu.js +956 -956
  686. package/dist/collection/components/menu/menu.md.css +44 -0
  687. package/dist/collection/components/menu/test/a11y/menu.e2e.js +13 -13
  688. package/dist/collection/components/menu/test/basic/menu.e2e.js +102 -102
  689. package/dist/collection/components/menu/test/disable/menu.e2e.js +44 -44
  690. package/dist/collection/components/menu/test/focus-trap/menu.e2e.js +61 -61
  691. package/dist/collection/components/menu/test/multiple/menu.e2e.js +49 -49
  692. package/dist/collection/components/menu/test/safe-area/menu.e2e.js +54 -54
  693. package/dist/collection/components/menu-button/menu-button.ios.css +44 -0
  694. package/dist/collection/components/menu-button/menu-button.js +173 -173
  695. package/dist/collection/components/menu-button/menu-button.md.css +44 -0
  696. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +12 -12
  697. package/dist/collection/components/menu-button/test/async/menu-button.e2e.js +12 -12
  698. package/dist/collection/components/menu-button/test/basic/menu-button.e2e.js +6 -6
  699. package/dist/collection/components/menu-toggle/menu-toggle-util.js +2 -2
  700. package/dist/collection/components/menu-toggle/menu-toggle.js +93 -93
  701. package/dist/collection/components/menu-toggle/test/basic/menu-toggle.e2e.js +33 -33
  702. package/dist/collection/components/modal/animations/ios.enter.js +81 -81
  703. package/dist/collection/components/modal/animations/ios.leave.js +74 -74
  704. package/dist/collection/components/modal/animations/md.enter.js +21 -21
  705. package/dist/collection/components/modal/animations/md.leave.js +15 -15
  706. package/dist/collection/components/modal/animations/sheet.js +43 -43
  707. package/dist/collection/components/modal/gestures/sheet.js +289 -289
  708. package/dist/collection/components/modal/gestures/swipe-to-close.js +248 -247
  709. package/dist/collection/components/modal/gestures/utils.js +39 -39
  710. package/dist/collection/components/modal/modal.ios.css +44 -0
  711. package/dist/collection/components/modal/modal.js +1290 -1280
  712. package/dist/collection/components/modal/modal.md.css +44 -0
  713. package/dist/collection/components/modal/test/a11y/modal.e2e.js +12 -12
  714. package/dist/collection/components/modal/test/a11y/modal.spec.js +22 -0
  715. package/dist/collection/components/modal/test/basic/modal.e2e.js +110 -110
  716. package/dist/collection/components/modal/test/basic/modal.spec.js +16 -0
  717. package/dist/collection/components/modal/test/can-dismiss/modal-card.e2e.js +44 -44
  718. package/dist/collection/components/modal/test/can-dismiss/modal-sheet.e2e.js +62 -62
  719. package/dist/collection/components/modal/test/can-dismiss/modal.e2e.js +16 -16
  720. package/dist/collection/components/modal/test/can-dismiss/modal.spec.js +191 -0
  721. package/dist/collection/components/modal/test/card/modal-card.e2e.js +69 -69
  722. package/dist/collection/components/modal/test/card/modal-tablet.e2e.js +67 -67
  723. package/dist/collection/components/modal/test/card-nav/modal.e2e.js +26 -26
  724. package/dist/collection/components/modal/test/card-refresher/modal.e2e.js +14 -14
  725. package/dist/collection/components/modal/test/card-scroll-target/modal.e2e.js +34 -34
  726. package/dist/collection/components/modal/test/custom/modal.e2e.js +16 -16
  727. package/dist/collection/components/modal/test/custom-dialog/modal.e2e.js +12 -12
  728. package/dist/collection/components/modal/test/dark-mode/model.e2e.js +12 -12
  729. package/dist/collection/components/modal/test/fixtures.js +21 -21
  730. package/dist/collection/components/modal/test/inline/modal.e2e.js +34 -34
  731. package/dist/collection/components/modal/test/is-open/modal.e2e.js +17 -17
  732. package/dist/collection/components/modal/test/modal-id.spec.js +32 -0
  733. package/dist/collection/components/modal/test/sheet/modal.e2e.js +178 -178
  734. package/dist/collection/components/modal/test/standalone/modal.e2e.js +12 -12
  735. package/dist/collection/components/modal/test/trigger/modal.e2e.js +23 -23
  736. package/dist/collection/components/modal/utils.js +55 -55
  737. package/dist/collection/components/modal/utils.spec.js +7 -7
  738. package/dist/collection/components/nav/nav.css +22 -0
  739. package/dist/collection/components/nav/nav.js +1748 -1748
  740. package/dist/collection/components/nav/test/basic/nav.e2e.js +58 -58
  741. package/dist/collection/components/nav/test/modal-navigation/nav.e2e.js +52 -52
  742. package/dist/collection/components/nav/test/nav-controller.spec.js +749 -0
  743. package/dist/collection/components/nav/test/nested/nav.e2e.js +54 -54
  744. package/dist/collection/components/nav/test/routing/nav.e2e.js +75 -75
  745. package/dist/collection/components/nav/view-controller.js +52 -52
  746. package/dist/collection/components/nav-link/nav-link-utils.js +16 -16
  747. package/dist/collection/components/nav-link/nav-link.js +106 -106
  748. package/dist/collection/components/note/note.ios.css +44 -0
  749. package/dist/collection/components/note/note.js +49 -49
  750. package/dist/collection/components/note/note.md.css +44 -0
  751. package/dist/collection/components/note/test/a11y/note.e2e.js +59 -16
  752. package/dist/collection/components/note/test/basic/note.e2e.js +33 -33
  753. package/dist/collection/components/picker/animations/ios.enter.js +18 -18
  754. package/dist/collection/components/picker/animations/ios.leave.js +14 -14
  755. package/dist/collection/components/picker/picker.ios.css +44 -0
  756. package/dist/collection/components/picker/picker.js +782 -772
  757. package/dist/collection/components/picker/picker.md.css +44 -0
  758. package/dist/collection/components/picker/test/basic/picker.e2e.js +17 -17
  759. package/dist/collection/components/picker/test/is-open/picker.e2e.js +17 -17
  760. package/dist/collection/components/picker/test/picker-id.spec.js +32 -0
  761. package/dist/collection/components/picker/test/trigger/picker.e2e.js +21 -21
  762. package/dist/collection/components/picker-column/picker-column.ios.css +44 -0
  763. package/dist/collection/components/picker-column/picker-column.js +377 -377
  764. package/dist/collection/components/picker-column/picker-column.md.css +44 -0
  765. package/dist/collection/components/picker-column/test/picker-column-aria.spec.js +35 -0
  766. package/dist/collection/components/picker-column/test/picker-column-dynamic.spec.js +29 -0
  767. package/dist/collection/components/picker-column/test/picker-column.spec.js +17 -0
  768. package/dist/collection/components/picker-column/test/standalone/picker-column.e2e.js +27 -27
  769. package/dist/collection/components/picker-column/test/test.utils.js +29 -29
  770. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +33 -3
  771. package/dist/collection/components/picker-column-internal/picker-column-internal.js +523 -501
  772. package/dist/collection/components/picker-column-internal/picker-column-internal.md.css +55 -3
  773. package/dist/collection/components/picker-column-internal/test/basic/picker-column-internal.e2e.js +53 -53
  774. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +66 -37
  775. package/dist/collection/components/picker-internal/picker-internal.ios.css +44 -0
  776. package/dist/collection/components/picker-internal/picker-internal.js +517 -517
  777. package/dist/collection/components/picker-internal/picker-internal.md.css +44 -0
  778. package/dist/collection/components/picker-internal/test/a11y/picker-internal.e2e.js +6 -6
  779. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +76 -76
  780. package/dist/collection/components/picker-internal/test/keyboard-entry/picker-internal.e2e.js +39 -39
  781. package/dist/collection/components/popover/animations/ios.enter.js +79 -79
  782. package/dist/collection/components/popover/animations/ios.leave.js +28 -28
  783. package/dist/collection/components/popover/animations/md.enter.js +58 -58
  784. package/dist/collection/components/popover/animations/md.leave.js +19 -19
  785. package/dist/collection/components/popover/popover.ios.css +44 -0
  786. package/dist/collection/components/popover/popover.js +1189 -1179
  787. package/dist/collection/components/popover/popover.md.css +44 -0
  788. package/dist/collection/components/popover/test/adjustment/popover.e2e.js +22 -22
  789. package/dist/collection/components/popover/test/arrow/popover.e2e.js +15 -15
  790. package/dist/collection/components/popover/test/async/popover.e2e.js +29 -29
  791. package/dist/collection/components/popover/test/basic/popover.e2e.js +108 -108
  792. package/dist/collection/components/popover/test/basic/popover.spec.js +16 -0
  793. package/dist/collection/components/popover/test/dismiss-on-select/popover.e2e.js +26 -26
  794. package/dist/collection/components/popover/test/fixture.js +16 -16
  795. package/dist/collection/components/popover/test/inline/popover.e2e.js +18 -18
  796. package/dist/collection/components/popover/test/is-open/popover.e2e.js +5 -5
  797. package/dist/collection/components/popover/test/nested/popover.e2e.js +81 -81
  798. package/dist/collection/components/popover/test/popover-id.spec.js +32 -0
  799. package/dist/collection/components/popover/test/position/popover.e2e.js +18 -18
  800. package/dist/collection/components/popover/test/reference/popover.e2e.js +14 -14
  801. package/dist/collection/components/popover/test/size/popover.e2e.js +29 -29
  802. package/dist/collection/components/popover/test/standalone/popover.e2e.js +7 -7
  803. package/dist/collection/components/popover/test/test.utils.js +23 -23
  804. package/dist/collection/components/popover/test/trigger/popover.e2e.js +35 -35
  805. package/dist/collection/components/popover/test/util.spec.js +53 -0
  806. package/dist/collection/components/popover/utils.js +606 -606
  807. package/dist/collection/components/progress-bar/progress-bar.ios.css +22 -0
  808. package/dist/collection/components/progress-bar/progress-bar.js +145 -145
  809. package/dist/collection/components/progress-bar/progress-bar.md.css +22 -0
  810. package/dist/collection/components/progress-bar/test/basic/progress-bar.e2e.js +6 -6
  811. package/dist/collection/components/progress-bar/test/buffer/progress-bar.e2e.js +10 -10
  812. package/dist/collection/components/progress-bar/test/determinate/progress-bar.e2e.js +10 -10
  813. package/dist/collection/components/radio/radio.ios.css +66 -6
  814. package/dist/collection/components/radio/radio.js +453 -449
  815. package/dist/collection/components/radio/radio.md.css +66 -6
  816. package/dist/collection/components/radio/test/a11y/radio.e2e.js +40 -40
  817. package/dist/collection/components/radio/test/color/radio.e2e.js +11 -11
  818. package/dist/collection/components/radio/test/item/radio.e2e.js +37 -37
  819. package/dist/collection/components/radio/test/label-placement/radio.e2e.js +70 -70
  820. package/dist/collection/components/radio/test/legacy/a11y/radio.e2e.js +29 -29
  821. package/dist/collection/components/radio/test/legacy/basic/radio.e2e.js +43 -43
  822. package/dist/collection/components/radio/test/radio.spec.js +60 -0
  823. package/dist/collection/components/radio/test/states/radio.e2e.js +21 -21
  824. package/dist/collection/components/radio-group/radio-group.js +279 -255
  825. package/dist/collection/components/radio-group/test/basic/radio-group.e2e.js +35 -35
  826. package/dist/collection/components/radio-group/test/fixtures.js +22 -22
  827. package/dist/collection/components/radio-group/test/form/radio-group.e2e.js +39 -39
  828. package/dist/collection/components/radio-group/test/legacy/basic/radio-group.e2e.js +59 -59
  829. package/dist/collection/components/radio-group/test/legacy/form/radio-group.e2e.js +22 -22
  830. package/dist/collection/components/radio-group/test/legacy/search/radio-group.e2e.js +27 -27
  831. package/dist/collection/components/radio-group/test/radio-group-events.e2e.js +42 -42
  832. package/dist/collection/components/radio-group/test/radio-group.spec.js +69 -0
  833. package/dist/collection/components/radio-group/test/search/radio-group.e2e.js +23 -23
  834. package/dist/collection/components/range/range.ios.css +44 -6
  835. package/dist/collection/components/range/range.js +1001 -998
  836. package/dist/collection/components/range/range.md.css +44 -6
  837. package/dist/collection/components/range/test/a11y/range.e2e.js +46 -46
  838. package/dist/collection/components/range/test/active-bar-start/range.e2e.js +6 -6
  839. package/dist/collection/components/range/test/basic/range.e2e.js +23 -23
  840. package/dist/collection/components/range/test/color/range.e2e.js +6 -6
  841. package/dist/collection/components/range/test/custom/range.e2e.js +6 -6
  842. package/dist/collection/components/range/test/item/range.e2e.js +28 -28
  843. package/dist/collection/components/range/test/label/range.e2e.js +99 -99
  844. package/dist/collection/components/range/test/label/range.spec.js +23 -0
  845. package/dist/collection/components/range/test/legacy/a11y/range.e2e.js +25 -25
  846. package/dist/collection/components/range/test/legacy/active-bar-start/range.e2e.js +6 -6
  847. package/dist/collection/components/range/test/legacy/basic/range.e2e.js +61 -61
  848. package/dist/collection/components/range/test/legacy/range-events.e2e.js +80 -80
  849. package/dist/collection/components/range/test/legacy/scroll-target/range.e2e.js +23 -23
  850. package/dist/collection/components/range/test/range-events.e2e.js +135 -135
  851. package/dist/collection/components/range/test/range.spec.js +221 -0
  852. package/dist/collection/components/range/test/scroll-target/range.e2e.js +23 -23
  853. package/dist/collection/components/range/test/states/range.e2e.js +21 -21
  854. package/dist/collection/components/refresher/refresher.ios.css +44 -0
  855. package/dist/collection/components/refresher/refresher.js +806 -806
  856. package/dist/collection/components/refresher/refresher.md.css +44 -0
  857. package/dist/collection/components/refresher/refresher.utils.js +148 -148
  858. package/dist/collection/components/refresher/test/basic/refresher.e2e.js +25 -25
  859. package/dist/collection/components/refresher/test/scroll-target/refresher.e2e.js +25 -25
  860. package/dist/collection/components/refresher/test/test.utils.js +5 -5
  861. package/dist/collection/components/refresher-content/refresher-content.js +131 -131
  862. package/dist/collection/components/refresher-content/test/refresher-content.spec.js +46 -0
  863. package/dist/collection/components/reorder/reorder.ios.css +22 -0
  864. package/dist/collection/components/reorder/reorder.js +37 -37
  865. package/dist/collection/components/reorder/reorder.md.css +22 -0
  866. package/dist/collection/components/reorder-group/reorder-group.css +22 -0
  867. package/dist/collection/components/reorder-group/reorder-group.js +327 -327
  868. package/dist/collection/components/reorder-group/test/a11y/reorder-group.e2e.js +6 -6
  869. package/dist/collection/components/reorder-group/test/basic/reorder-group.e2e.js +11 -11
  870. package/dist/collection/components/reorder-group/test/interactive/reorder-group.e2e.js +21 -21
  871. package/dist/collection/components/reorder-group/test/nested/reorder-group.e2e.js +21 -21
  872. package/dist/collection/components/reorder-group/test/scroll-target/reorder-group.e2e.js +21 -21
  873. package/dist/collection/components/ripple-effect/ripple-effect.css +22 -0
  874. package/dist/collection/components/ripple-effect/ripple-effect.js +135 -135
  875. package/dist/collection/components/ripple-effect/test/basic/ripple-effect.e2e.js +48 -48
  876. package/dist/collection/components/route/route.js +151 -151
  877. package/dist/collection/components/route-redirect/route-redirect.js +76 -76
  878. package/dist/collection/components/router/router.js +472 -472
  879. package/dist/collection/components/router/test/basic/router.e2e.js +55 -55
  880. package/dist/collection/components/router/test/guards/href/router.e2e.js +51 -51
  881. package/dist/collection/components/router/test/guards/link/router.e2e.js +51 -51
  882. package/dist/collection/components/router/test/guards/push/router.e2e.js +51 -51
  883. package/dist/collection/components/router/test/guards/router.e2e.js +5 -5
  884. package/dist/collection/components/router/test/guards/test.utils.js +2 -2
  885. package/dist/collection/components/router/test/matching.spec.js +250 -0
  886. package/dist/collection/components/router/test/parser.spec.js +133 -0
  887. package/dist/collection/components/router/test/path.spec.js +218 -0
  888. package/dist/collection/components/router/test/router.spec.js +55 -0
  889. package/dist/collection/components/router/utils/debug.js +14 -14
  890. package/dist/collection/components/router/utils/dom.js +56 -56
  891. package/dist/collection/components/router/utils/matching.js +150 -150
  892. package/dist/collection/components/router/utils/parser.js +52 -52
  893. package/dist/collection/components/router/utils/path.js +66 -66
  894. package/dist/collection/components/router-link/router-link.css +22 -0
  895. package/dist/collection/components/router-link/router-link.js +157 -157
  896. package/dist/collection/components/router-outlet/router-outlet.css +22 -0
  897. package/dist/collection/components/router-outlet/router-outlet.js +459 -459
  898. package/dist/collection/components/router-outlet/test/basic/router-outlet.e2e.js +31 -31
  899. package/dist/collection/components/row/row.css +66 -0
  900. package/dist/collection/components/row/row.js +15 -15
  901. package/dist/collection/components/searchbar/searchbar.ios.css +44 -0
  902. package/dist/collection/components/searchbar/searchbar.js +891 -889
  903. package/dist/collection/components/searchbar/searchbar.md.css +44 -0
  904. package/dist/collection/components/searchbar/test/a11y/searchbar.e2e.js +11 -11
  905. package/dist/collection/components/searchbar/test/basic/searchbar.e2e.js +101 -101
  906. package/dist/collection/components/searchbar/test/events/searchbar.e2e.js +55 -55
  907. package/dist/collection/components/searchbar/test/searchbar.spec.js +15 -0
  908. package/dist/collection/components/segment/segment.ios.css +66 -0
  909. package/dist/collection/components/segment/segment.js +631 -631
  910. package/dist/collection/components/segment/segment.md.css +66 -0
  911. package/dist/collection/components/segment/test/a11y/segment.e2e.js +37 -37
  912. package/dist/collection/components/segment/test/basic/segment.e2e.js +22 -22
  913. package/dist/collection/components/segment/test/custom/segment.e2e.js +6 -6
  914. package/dist/collection/components/segment/test/icon/segment.e2e.js +6 -6
  915. package/dist/collection/components/segment/test/modes/segment.e2e.js +15 -15
  916. package/dist/collection/components/segment/test/scrollable/segment.e2e.js +12 -12
  917. package/dist/collection/components/segment/test/segment-events.e2e.js +97 -97
  918. package/dist/collection/components/segment/test/segment.spec.js +37 -0
  919. package/dist/collection/components/segment/test/toolbar/segment.e2e.js +21 -21
  920. package/dist/collection/components/segment/test/wrap/segment.e2e.js +21 -21
  921. package/dist/collection/components/segment-button/segment-button.ios.css +44 -0
  922. package/dist/collection/components/segment-button/segment-button.js +217 -217
  923. package/dist/collection/components/segment-button/segment-button.md.css +44 -0
  924. package/dist/collection/components/select/select.ios.css +126 -7
  925. package/dist/collection/components/select/select.js +1201 -1184
  926. package/dist/collection/components/select/select.md.css +173 -19
  927. package/dist/collection/components/select/test/a11y/select.e2e.js +14 -14
  928. package/dist/collection/components/select/test/async/select.e2e.js +14 -14
  929. package/dist/collection/components/select/test/basic/select.e2e.js +140 -140
  930. package/dist/collection/components/select/test/card/select.e2e.js +6 -6
  931. package/dist/collection/components/select/test/color/select.e2e.js +22 -22
  932. package/dist/collection/components/select/test/compare-with/select.e2e.js +33 -33
  933. package/dist/collection/components/select/test/custom/select.e2e.js +19 -19
  934. package/dist/collection/components/select/test/disabled/select.e2e.js +17 -17
  935. package/dist/collection/components/select/test/fill/select.e2e.js +63 -63
  936. package/dist/collection/components/select/test/highlight/select.e2e.js +74 -74
  937. package/dist/collection/components/select/test/item/select.e2e.js +26 -11
  938. package/dist/collection/components/select/test/label/select.e2e.js +141 -141
  939. package/dist/collection/components/select/test/legacy/async/select.e2e.js +8 -8
  940. package/dist/collection/components/select/test/legacy/basic/select.e2e.js +108 -108
  941. package/dist/collection/components/select/test/legacy/compare-with/select.e2e.js +33 -33
  942. package/dist/collection/components/select/test/legacy/custom/custom.e2e.js +5 -5
  943. package/dist/collection/components/select/test/legacy/single-value/select.e2e.js +8 -8
  944. package/dist/collection/components/select/test/legacy/spec/select.e2e.js +6 -6
  945. package/dist/collection/components/select/test/legacy/standalone/select.e2e.js +11 -11
  946. package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +17 -17
  947. package/dist/collection/components/select/test/popover-size/select.e2e.js +63 -63
  948. package/dist/collection/components/select/test/select.spec.js +59 -0
  949. package/dist/collection/components/select/test/slot/select.e2e.js +67 -0
  950. package/dist/collection/components/select/test/states/select.e2e.js +21 -21
  951. package/dist/collection/components/select/test/toggle-icon/select.e2e.js +14 -14
  952. package/dist/collection/components/select/test/wrapping/select.e2e.js +16 -16
  953. package/dist/collection/components/select-option/select-option.js +60 -60
  954. package/dist/collection/components/select-popover/select-popover.ios.css +66 -0
  955. package/dist/collection/components/select-popover/select-popover.js +197 -197
  956. package/dist/collection/components/select-popover/select-popover.md.css +66 -0
  957. package/dist/collection/components/select-popover/test/basic/select-popover.e2e.js +52 -52
  958. package/dist/collection/components/select-popover/test/fixtures.js +33 -33
  959. package/dist/collection/components/skeleton-text/skeleton-text.css +22 -0
  960. package/dist/collection/components/skeleton-text/skeleton-text.js +87 -48
  961. package/dist/collection/components/skeleton-text/test/basic/skeleton-text.e2e.js +6 -6
  962. package/dist/collection/components/skeleton-text/test/custom/skeleton-text.e2e.js +6 -6
  963. package/dist/collection/components/slides/IonicSlides.js +95 -95
  964. package/dist/collection/components/spinner/spinner-configs.js +121 -121
  965. package/dist/collection/components/spinner/spinner.css +22 -0
  966. package/dist/collection/components/spinner/spinner.js +137 -137
  967. package/dist/collection/components/spinner/test/basic/spinner.e2e.js +10 -10
  968. package/dist/collection/components/spinner/test/color/spinner.e2e.js +10 -10
  969. package/dist/collection/components/spinner/test/resize/spinner.e2e.js +8 -8
  970. package/dist/collection/components/split-pane/split-pane.ios.css +66 -0
  971. package/dist/collection/components/split-pane/split-pane.js +225 -225
  972. package/dist/collection/components/split-pane/split-pane.md.css +66 -0
  973. package/dist/collection/components/split-pane/test/basic/split-pane.e2e.js +18 -18
  974. package/dist/collection/components/split-pane/test/multiple/split-pane.e2e.js +23 -23
  975. package/dist/collection/components/tab/tab.js +170 -170
  976. package/dist/collection/components/tab-bar/tab-bar.ios.css +66 -0
  977. package/dist/collection/components/tab-bar/tab-bar.js +177 -177
  978. package/dist/collection/components/tab-bar/tab-bar.md.css +66 -0
  979. package/dist/collection/components/tab-bar/test/basic/tab-bar.e2e.js +8 -8
  980. package/dist/collection/components/tab-bar/test/custom/tab-bar.e2e.js +6 -6
  981. package/dist/collection/components/tab-bar/test/translucent/tab-bar.e2e.js +14 -14
  982. package/dist/collection/components/tab-button/tab-button.ios.css +44 -0
  983. package/dist/collection/components/tab-button/tab-button.js +267 -267
  984. package/dist/collection/components/tab-button/tab-button.md.css +44 -0
  985. package/dist/collection/components/tab-button/test/a11y/tab-button.e2e.js +6 -6
  986. package/dist/collection/components/tab-button/test/basic/tab-button.e2e.js +16 -16
  987. package/dist/collection/components/tab-button/test/layout/tab-button.e2e.js +26 -26
  988. package/dist/collection/components/tab-button/test/states/tab-button.e2e.js +26 -26
  989. package/dist/collection/components/tabs/tabs.css +22 -0
  990. package/dist/collection/components/tabs/tabs.js +344 -344
  991. package/dist/collection/components/tabs/test/basic/tabs.e2e.js +24 -24
  992. package/dist/collection/components/tabs/test/placements/tabs.e2e.js +17 -17
  993. package/dist/collection/components/text/test/basic/text.e2e.js +11 -11
  994. package/dist/collection/components/text/text.css +22 -0
  995. package/dist/collection/components/text/text.js +47 -47
  996. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +12 -12
  997. package/dist/collection/components/textarea/test/autogrow/textarea.e2e.js +31 -31
  998. package/dist/collection/components/textarea/test/bottom-content/textarea.e2e.js +82 -82
  999. package/dist/collection/components/textarea/test/card/textarea.e2e.js +6 -6
  1000. package/dist/collection/components/textarea/test/clear-on-edit/textarea.e2e.js +17 -17
  1001. package/dist/collection/components/textarea/test/color/textarea.e2e.js +88 -88
  1002. package/dist/collection/components/textarea/test/cols/textarea.e2e.js +11 -11
  1003. package/dist/collection/components/textarea/test/fill/textarea.e2e.js +63 -63
  1004. package/dist/collection/components/textarea/test/highlight/textarea.e2e.js +52 -52
  1005. package/dist/collection/components/textarea/test/item/textarea.e2e.js +11 -11
  1006. package/dist/collection/components/textarea/test/label-placement/textarea.e2e.js +150 -150
  1007. package/dist/collection/components/textarea/test/legacy/a11y/textarea.e2e.js +15 -15
  1008. package/dist/collection/components/textarea/test/legacy/autogrow/textarea.e2e.js +31 -31
  1009. package/dist/collection/components/textarea/test/legacy/basic/textarea.e2e.js +30 -30
  1010. package/dist/collection/components/textarea/test/legacy/clear-on-edit/textarea.e2e.js +17 -17
  1011. package/dist/collection/components/textarea/test/slot/textarea.e2e.js +51 -0
  1012. package/dist/collection/components/textarea/test/states/textarea.e2e.js +11 -11
  1013. package/dist/collection/components/textarea/test/textarea-events.e2e.js +57 -57
  1014. package/dist/collection/components/textarea/test/textarea.spec.js +59 -0
  1015. package/dist/collection/components/textarea/textarea.ios.css +125 -5
  1016. package/dist/collection/components/textarea/textarea.js +1046 -1019
  1017. package/dist/collection/components/textarea/textarea.md.css +179 -14
  1018. package/dist/collection/components/thumbnail/test/basic/thumbnail.e2e.js +28 -28
  1019. package/dist/collection/components/thumbnail/thumbnail.css +22 -0
  1020. package/dist/collection/components/thumbnail/thumbnail.js +15 -15
  1021. package/dist/collection/components/title/test/a11y/title.e2e.js +17 -17
  1022. package/dist/collection/components/title/test/basic/title.e2e.js +13 -13
  1023. package/dist/collection/components/title/title.ios.css +22 -0
  1024. package/dist/collection/components/title/title.js +119 -119
  1025. package/dist/collection/components/title/title.md.css +22 -0
  1026. package/dist/collection/components/toast/animations/ios.enter.js +21 -20
  1027. package/dist/collection/components/toast/animations/ios.leave.js +18 -18
  1028. package/dist/collection/components/toast/animations/md.enter.js +23 -22
  1029. package/dist/collection/components/toast/animations/md.leave.js +6 -6
  1030. package/dist/collection/components/toast/animations/utils.js +62 -56
  1031. package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +267 -0
  1032. package/dist/collection/components/toast/test/a11y/toast.e2e.js +92 -92
  1033. package/dist/collection/components/toast/test/basic/toast.e2e.js +101 -101
  1034. package/dist/collection/components/toast/test/is-open/toast.e2e.js +17 -17
  1035. package/dist/collection/components/toast/test/layout/toast.e2e.js +9 -9
  1036. package/dist/collection/components/toast/test/position-anchor/toast.e2e.js +37 -37
  1037. package/dist/collection/components/toast/test/standalone/toast.e2e.js +10 -10
  1038. package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +84 -0
  1039. package/dist/collection/components/toast/test/toast-config.spec.js +25 -0
  1040. package/dist/collection/components/toast/test/toast-id.spec.js +32 -0
  1041. package/dist/collection/components/toast/test/toast.spec.js +200 -0
  1042. package/dist/collection/components/toast/test/trigger/toast.e2e.js +21 -21
  1043. package/dist/collection/components/toast/toast.ios.css +54 -10
  1044. package/dist/collection/components/toast/toast.js +1065 -952
  1045. package/dist/collection/components/toast/toast.md.css +54 -0
  1046. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +6 -6
  1047. package/dist/collection/components/toggle/test/color/toggle.e2e.js +11 -11
  1048. package/dist/collection/components/toggle/test/enable-on-off-labels/toggle.e2e.js +27 -27
  1049. package/dist/collection/components/toggle/test/item/toggle.e2e.js +52 -52
  1050. package/dist/collection/components/toggle/test/label/toggle.e2e.js +65 -65
  1051. package/dist/collection/components/toggle/test/legacy/basic/toggle.e2e.js +69 -69
  1052. package/dist/collection/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.js +23 -23
  1053. package/dist/collection/components/toggle/test/legacy/sizes/toggle.e2e.js +6 -6
  1054. package/dist/collection/components/toggle/test/sizes/toggle.e2e.js +6 -6
  1055. package/dist/collection/components/toggle/test/states/toggle.e2e.js +16 -16
  1056. package/dist/collection/components/toggle/test/toggle.spec.js +67 -0
  1057. package/dist/collection/components/toggle/toggle.ios.css +66 -6
  1058. package/dist/collection/components/toggle/toggle.js +487 -484
  1059. package/dist/collection/components/toggle/toggle.md.css +66 -6
  1060. package/dist/collection/components/toolbar/test/basic/toolbar.e2e.js +7 -7
  1061. package/dist/collection/components/toolbar/test/colors/toolbar.e2e.js +6 -6
  1062. package/dist/collection/components/toolbar/toolbar.ios.css +44 -0
  1063. package/dist/collection/components/toolbar/toolbar.js +100 -100
  1064. package/dist/collection/components/toolbar/toolbar.md.css +44 -0
  1065. package/dist/collection/css/test/a11y/typography.e2e.js +6 -6
  1066. package/dist/collection/global/config.js +51 -51
  1067. package/dist/collection/global/ionic-global.js +54 -54
  1068. package/dist/collection/global/test/config-controller.spec.js +77 -0
  1069. package/dist/collection/utils/animation/animation-utils.js +91 -91
  1070. package/dist/collection/utils/animation/animation.js +905 -904
  1071. package/dist/collection/utils/animation/cubic-bezier.js +49 -49
  1072. package/dist/collection/utils/animation/test/animation.spec.js +447 -0
  1073. package/dist/collection/utils/animation/test/animationbuilder/animation.e2e.js +26 -26
  1074. package/dist/collection/utils/animation/test/basic/animation.e2e.js +12 -12
  1075. package/dist/collection/utils/animation/test/display/animation.e2e.js +18 -18
  1076. package/dist/collection/utils/animation/test/hooks/animation.e2e.js +39 -39
  1077. package/dist/collection/utils/animation/test/multiple/animation.e2e.js +27 -27
  1078. package/dist/collection/utils/browser/index.js +0 -22
  1079. package/dist/collection/utils/config.js +20 -20
  1080. package/dist/collection/utils/content/content.utils.spec.js +121 -121
  1081. package/dist/collection/utils/content/index.js +58 -58
  1082. package/dist/collection/utils/floating-point/floating-point.spec.js +14 -14
  1083. package/dist/collection/utils/floating-point/index.js +5 -5
  1084. package/dist/collection/utils/focus-visible.js +63 -63
  1085. package/dist/collection/utils/forms/compare-with-utils.js +39 -0
  1086. package/dist/collection/utils/forms/form-controller.js +45 -45
  1087. package/dist/collection/utils/forms/index.js +1 -0
  1088. package/dist/collection/utils/forms/notch-controller.js +120 -120
  1089. package/dist/collection/utils/framework-delegate.js +121 -121
  1090. package/dist/collection/utils/gesture/button-active.js +56 -56
  1091. package/dist/collection/utils/gesture/gesture-controller.js +182 -182
  1092. package/dist/collection/utils/gesture/index.js +222 -222
  1093. package/dist/collection/utils/gesture/listener.js +36 -36
  1094. package/dist/collection/utils/gesture/pointer-events.js +113 -113
  1095. package/dist/collection/utils/gesture/recognizers.js +46 -46
  1096. package/dist/collection/utils/gesture/swipe-back.js +65 -65
  1097. package/dist/collection/utils/hardware-back-button.js +48 -48
  1098. package/dist/collection/utils/helpers.js +258 -258
  1099. package/dist/collection/utils/helpers.spec.js +28 -28
  1100. package/dist/collection/utils/input-shims/hacks/common.js +61 -61
  1101. package/dist/collection/utils/input-shims/hacks/hide-caret.js +19 -19
  1102. package/dist/collection/utils/input-shims/hacks/input-blurring.js +47 -47
  1103. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +225 -225
  1104. package/dist/collection/utils/input-shims/hacks/scroll-data.js +29 -29
  1105. package/dist/collection/utils/input-shims/hacks/scroll-padding.js +21 -21
  1106. package/dist/collection/utils/input-shims/hacks/test/scroll-assist.e2e.js +97 -97
  1107. package/dist/collection/utils/input-shims/input-shims.js +87 -81
  1108. package/dist/collection/utils/keyboard/keyboard-controller.js +128 -128
  1109. package/dist/collection/utils/keyboard/keyboard.js +59 -59
  1110. package/dist/collection/utils/keyboard/test/keyboard-controller.spec.js +21 -0
  1111. package/dist/collection/utils/keyboard/test/keyboard.spec.js +214 -0
  1112. package/dist/collection/utils/lock-controller.js +24 -24
  1113. package/dist/collection/utils/logging/index.js +3 -3
  1114. package/dist/collection/utils/media.js +13 -13
  1115. package/dist/collection/utils/menu-controller/animations/base.js +8 -8
  1116. package/dist/collection/utils/menu-controller/animations/overlay.js +21 -21
  1117. package/dist/collection/utils/menu-controller/animations/push.js +20 -20
  1118. package/dist/collection/utils/menu-controller/animations/reveal.js +6 -6
  1119. package/dist/collection/utils/menu-controller/index.js +204 -206
  1120. package/dist/collection/utils/native/capacitor.js +4 -4
  1121. package/dist/collection/utils/native/haptic.js +151 -151
  1122. package/dist/collection/utils/native/keyboard.js +47 -47
  1123. package/dist/collection/utils/native/native-interface.js +15 -15
  1124. package/dist/collection/utils/native/status-bar.js +36 -36
  1125. package/dist/collection/utils/overlays.js +495 -494
  1126. package/dist/collection/utils/platform.js +56 -56
  1127. package/dist/collection/utils/rtl/dir.js +5 -5
  1128. package/dist/collection/utils/rtl/dir.spec.js +17 -17
  1129. package/dist/collection/utils/sanitization/index.js +122 -122
  1130. package/dist/collection/utils/sanitization/test/sanitization.spec.js +43 -0
  1131. package/dist/collection/utils/slot-mutation-controller.js +86 -85
  1132. package/dist/collection/utils/status-tap.js +26 -26
  1133. package/dist/collection/utils/tap-click/index.js +171 -171
  1134. package/dist/collection/utils/tap-click/test/tap-click.e2e.js +12 -12
  1135. package/dist/collection/utils/test/aria.spec.js +79 -0
  1136. package/dist/collection/utils/test/attributes.spec.js +53 -0
  1137. package/dist/collection/utils/test/framework-delegate/framework-delegate.e2e.js +25 -25
  1138. package/dist/collection/utils/test/hardware-back-button.spec.js +53 -0
  1139. package/dist/collection/utils/test/overlays/overlays.e2e.js +137 -137
  1140. package/dist/collection/utils/test/overlays/overlays.spec.js +102 -0
  1141. package/dist/collection/utils/test/platform.spec.js +132 -0
  1142. package/dist/collection/utils/test/platform.utils.js +77 -77
  1143. package/dist/collection/utils/test/playwright/drag-element.js +69 -69
  1144. package/dist/collection/utils/test/playwright/generator.js +48 -25
  1145. package/dist/collection/utils/test/playwright/matchers/index.js +3 -3
  1146. package/dist/collection/utils/test/playwright/matchers/toHaveReceivedEvent.js +21 -21
  1147. package/dist/collection/utils/test/playwright/matchers/toHaveReceivedEventDetail.js +28 -28
  1148. package/dist/collection/utils/test/playwright/matchers/toHaveReceivedEventTimes.js +22 -22
  1149. package/dist/collection/utils/test/playwright/page/event-spy.js +110 -110
  1150. package/dist/collection/utils/test/playwright/page/utils/goto.js +52 -52
  1151. package/dist/collection/utils/test/playwright/page/utils/locator.js +8 -8
  1152. package/dist/collection/utils/test/playwright/page/utils/set-content.js +44 -35
  1153. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +19 -19
  1154. package/dist/collection/utils/test/playwright/page/utils/spy-on-event.js +4 -4
  1155. package/dist/collection/utils/test/playwright/page/utils/wait-for-changes.js +48 -48
  1156. package/dist/collection/utils/test/playwright/playwright-page.js +35 -35
  1157. package/dist/collection/utils/test/playwright/viewports/index.js +13 -13
  1158. package/dist/collection/utils/test/press-keys.js +77 -77
  1159. package/dist/collection/utils/test/ready.spec.js +39 -0
  1160. package/dist/collection/utils/test/theme.spec.js +56 -0
  1161. package/dist/collection/utils/theme.js +23 -23
  1162. package/dist/collection/utils/transition/index.js +163 -163
  1163. package/dist/collection/utils/transition/ios.transition.js +598 -598
  1164. package/dist/collection/utils/transition/md.transition.js +44 -44
  1165. package/dist/collection/utils/watch-options.js +30 -30
  1166. package/dist/docs.json +195 -38
  1167. package/dist/esm/animation-dde8cc0d.js +1060 -0
  1168. package/dist/esm/{app-globals-2398e405.js → app-globals-722340c4.js} +1 -1
  1169. package/dist/esm/button-active-c6ee4f50.js +67 -0
  1170. package/dist/esm/capacitor-59395cbd.js +13 -0
  1171. package/dist/esm/compare-with-utils-a96ff2ea.js +41 -0
  1172. package/dist/esm/config-49c88215.js +193 -0
  1173. package/dist/esm/cubic-bezier-fe2083dc.js +90 -0
  1174. package/dist/esm/data-f5c75b4e.js +1575 -0
  1175. package/dist/esm/{dir-912e3e13.js → dir-babeabeb.js} +5 -5
  1176. package/dist/esm/focus-visible-dd40d69f.js +75 -0
  1177. package/dist/esm/form-controller-548aa79c.js +64 -0
  1178. package/dist/esm/framework-delegate-bc1fd82a.js +140 -0
  1179. package/dist/esm/gesture-controller-1bf57181.js +195 -0
  1180. package/dist/esm/haptic-554688a5.js +206 -0
  1181. package/dist/esm/hardware-back-button-b2bc76db.js +71 -0
  1182. package/dist/esm/helpers-ae653409.js +418 -0
  1183. package/dist/esm/{index-7c9b1bca.js → index-08d686eb.js} +58 -7
  1184. package/dist/esm/index-0c12c22b.js +306 -0
  1185. package/dist/esm/index-1932b201.js +231 -0
  1186. package/dist/esm/index-2cf77112.js +457 -0
  1187. package/dist/esm/index-82eeb47f.js +196 -0
  1188. package/dist/esm/{index-595d62c9.js → index-9b0d46f4.js} +3 -3
  1189. package/dist/esm/index-a5d50daf.js +7 -0
  1190. package/dist/esm/{index-4392efa5.js → index-b9e742e5.js} +60 -60
  1191. package/dist/esm/index.js +113 -113
  1192. package/dist/esm/input-shims-6539ce13.js +599 -0
  1193. package/dist/esm/input.utils-a5a2d164.js +135 -0
  1194. package/dist/esm/ion-accordion_2.entry.js +488 -488
  1195. package/dist/esm/ion-action-sheet.entry.js +260 -250
  1196. package/dist/esm/ion-alert.entry.js +442 -432
  1197. package/dist/esm/ion-app_8.entry.js +1151 -1151
  1198. package/dist/esm/ion-avatar_3.entry.js +29 -29
  1199. package/dist/esm/ion-back-button.entry.js +73 -73
  1200. package/dist/esm/ion-backdrop.entry.js +40 -40
  1201. package/dist/esm/ion-breadcrumb_2.entry.js +194 -194
  1202. package/dist/esm/ion-button_2.entry.js +303 -303
  1203. package/dist/esm/ion-card_5.entry.js +105 -105
  1204. package/dist/esm/ion-checkbox.entry.js +149 -147
  1205. package/dist/esm/ion-chip.entry.js +20 -20
  1206. package/dist/esm/ion-col_3.entry.js +136 -136
  1207. package/dist/esm/ion-datetime-button.entry.js +325 -325
  1208. package/dist/esm/ion-datetime_3.entry.js +2185 -2162
  1209. package/dist/esm/ion-fab_3.entry.js +150 -150
  1210. package/dist/esm/ion-img.entry.js +79 -79
  1211. package/dist/esm/ion-infinite-scroll_2.entry.js +198 -190
  1212. package/dist/esm/ion-input.entry.js +424 -399
  1213. package/dist/esm/ion-item-option_3.entry.js +457 -457
  1214. package/dist/esm/ion-item_8.entry.js +441 -428
  1215. package/dist/esm/ion-loading.entry.js +220 -210
  1216. package/dist/esm/ion-menu_3.entry.js +668 -668
  1217. package/dist/esm/ion-modal.entry.js +1415 -1405
  1218. package/dist/esm/ion-nav_2.entry.js +904 -904
  1219. package/dist/esm/ion-picker-column-internal.entry.js +331 -327
  1220. package/dist/esm/ion-picker-internal.entry.js +453 -453
  1221. package/dist/esm/ion-popover.entry.js +1108 -1098
  1222. package/dist/esm/ion-progress-bar.entry.js +40 -40
  1223. package/dist/esm/ion-radio_2.entry.js +321 -316
  1224. package/dist/esm/ion-range.entry.js +558 -556
  1225. package/dist/esm/ion-refresher_2.entry.js +786 -786
  1226. package/dist/esm/ion-reorder_2.entry.js +267 -267
  1227. package/dist/esm/ion-ripple-effect.entry.js +66 -66
  1228. package/dist/esm/ion-route_4.entry.js +693 -693
  1229. package/dist/esm/ion-searchbar.entry.js +360 -358
  1230. package/dist/esm/ion-segment_2.entry.js +507 -507
  1231. package/dist/esm/ion-select_3.entry.js +784 -768
  1232. package/dist/esm/ion-spinner.entry.js +46 -46
  1233. package/dist/esm/ion-split-pane.entry.js +117 -117
  1234. package/dist/esm/ion-tab-bar_2.entry.js +138 -138
  1235. package/dist/esm/ion-tab_2.entry.js +187 -187
  1236. package/dist/esm/ion-text.entry.js +13 -13
  1237. package/dist/esm/ion-textarea.entry.js +378 -353
  1238. package/dist/esm/ion-toast.entry.js +771 -419
  1239. package/dist/esm/ion-toggle.entry.js +227 -225
  1240. package/dist/esm/ionic-global-c0cda98e.js +224 -0
  1241. package/dist/esm/ionic.js +6 -6
  1242. package/dist/esm/ios.transition-802a84a6.js +651 -0
  1243. package/dist/esm/keyboard-52278bd7.js +146 -0
  1244. package/dist/esm/keyboard-73175e24.js +79 -0
  1245. package/dist/esm/keyboard-controller-ec5c2bfa.js +165 -0
  1246. package/dist/esm/loader.js +5 -5
  1247. package/dist/esm/lock-controller-316928be.js +38 -0
  1248. package/dist/esm/md.transition-43c2874d.js +57 -0
  1249. package/dist/esm/notch-controller-fea7f9c5.js +153 -0
  1250. package/dist/esm/overlays-32ef481d.js +693 -0
  1251. package/dist/esm/spinner-configs-964f7cf3.js +145 -0
  1252. package/dist/esm/status-tap-2b93b1b5.js +40 -0
  1253. package/dist/esm/swipe-back-18cb49f7.js +79 -0
  1254. package/dist/esm/theme-01f3f29c.js +43 -0
  1255. package/dist/esm/watch-options-c2911ace.js +47 -0
  1256. package/dist/esm-es5/{animation-8aa13916.js → animation-dde8cc0d.js} +1 -1
  1257. package/dist/esm-es5/app-globals-722340c4.js +4 -0
  1258. package/dist/esm-es5/{button-active-ce5cba4c.js → button-active-c6ee4f50.js} +1 -1
  1259. package/dist/esm-es5/{capacitor-b4979570.js → capacitor-59395cbd.js} +1 -1
  1260. package/dist/esm-es5/compare-with-utils-a96ff2ea.js +4 -0
  1261. package/dist/esm-es5/{data-44d9e816.js → data-f5c75b4e.js} +1 -1
  1262. package/dist/esm-es5/{form-controller-64edeaad.js → form-controller-548aa79c.js} +1 -1
  1263. package/dist/esm-es5/{framework-delegate-aa433dea.js → framework-delegate-bc1fd82a.js} +1 -1
  1264. package/dist/esm-es5/{haptic-1243b917.js → haptic-554688a5.js} +1 -1
  1265. package/dist/esm-es5/{index-7c9b1bca.js → index-08d686eb.js} +1 -1
  1266. package/dist/esm-es5/index-0c12c22b.js +4 -0
  1267. package/dist/esm-es5/{index-6a0ccabb.js → index-1932b201.js} +1 -1
  1268. package/dist/esm-es5/{index-ff313b19.js → index-2cf77112.js} +1 -1
  1269. package/dist/esm-es5/{index-f0cc4e14.js → index-82eeb47f.js} +1 -1
  1270. package/dist/esm-es5/{index-4392efa5.js → index-b9e742e5.js} +1 -1
  1271. package/dist/esm-es5/index.js +1 -1
  1272. package/dist/esm-es5/input-shims-6539ce13.js +4 -0
  1273. package/dist/esm-es5/input.utils-a5a2d164.js +4 -0
  1274. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  1275. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  1276. package/dist/esm-es5/ion-alert.entry.js +1 -1
  1277. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  1278. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  1279. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  1280. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  1281. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  1282. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  1283. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  1284. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  1285. package/dist/esm-es5/ion-chip.entry.js +1 -1
  1286. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  1287. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  1288. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  1289. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  1290. package/dist/esm-es5/ion-img.entry.js +1 -1
  1291. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  1292. package/dist/esm-es5/ion-input.entry.js +1 -1
  1293. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  1294. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  1295. package/dist/esm-es5/ion-loading.entry.js +1 -1
  1296. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  1297. package/dist/esm-es5/ion-modal.entry.js +1 -1
  1298. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  1299. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  1300. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  1301. package/dist/esm-es5/ion-popover.entry.js +1 -1
  1302. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  1303. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  1304. package/dist/esm-es5/ion-range.entry.js +1 -1
  1305. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  1306. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  1307. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  1308. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  1309. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  1310. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  1311. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  1312. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  1313. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  1314. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  1315. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  1316. package/dist/esm-es5/ion-text.entry.js +1 -1
  1317. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  1318. package/dist/esm-es5/ion-toast.entry.js +1 -1
  1319. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  1320. package/dist/esm-es5/{ionic-global-40e42e7f.js → ionic-global-c0cda98e.js} +1 -1
  1321. package/dist/esm-es5/ionic.js +1 -1
  1322. package/dist/esm-es5/{ios.transition-1651c430.js → ios.transition-802a84a6.js} +1 -1
  1323. package/dist/esm-es5/{keyboard-b551279d.js → keyboard-52278bd7.js} +1 -1
  1324. package/dist/esm-es5/{keyboard-b063f012.js → keyboard-73175e24.js} +1 -1
  1325. package/dist/esm-es5/{keyboard-controller-0c2dce71.js → keyboard-controller-ec5c2bfa.js} +1 -1
  1326. package/dist/esm-es5/loader.js +1 -1
  1327. package/dist/esm-es5/md.transition-43c2874d.js +4 -0
  1328. package/dist/esm-es5/{notch-controller-8c9c0e54.js → notch-controller-fea7f9c5.js} +1 -1
  1329. package/dist/esm-es5/{overlays-6c9feb7e.js → overlays-32ef481d.js} +1 -1
  1330. package/dist/esm-es5/{status-tap-9ce68758.js → status-tap-2b93b1b5.js} +1 -1
  1331. package/dist/esm-es5/{swipe-back-cd4295f3.js → swipe-back-18cb49f7.js} +1 -1
  1332. package/dist/html.html-data.json +16 -3
  1333. package/dist/ionic/index.esm.js +1 -1
  1334. package/dist/ionic/ionic.esm.js +1 -1
  1335. package/dist/ionic/ionic.js +15 -15
  1336. package/dist/ionic/p-013013a3.js +4 -0
  1337. package/dist/ionic/p-01d14eba.system.entry.js +4 -0
  1338. package/dist/ionic/p-042e6f4b.entry.js +4 -0
  1339. package/dist/ionic/{p-f4cc91f6.entry.js → p-0add7211.entry.js} +1 -1
  1340. package/dist/ionic/{p-41477ad9.system.js → p-0bd51c34.system.js} +1 -1
  1341. package/dist/ionic/{p-c7b8c2ef.system.entry.js → p-0e53f8ea.system.entry.js} +1 -1
  1342. package/dist/ionic/{p-744973f3.entry.js → p-1161a793.entry.js} +1 -1
  1343. package/dist/ionic/{p-92800752.entry.js → p-1208f939.entry.js} +1 -1
  1344. package/dist/ionic/{p-cf425ec5.system.entry.js → p-16756e94.system.entry.js} +1 -1
  1345. package/dist/ionic/p-1786bc72.js +4 -0
  1346. package/dist/ionic/{p-c7d30db9.entry.js → p-17da5ed1.entry.js} +1 -1
  1347. package/dist/ionic/{p-a8e68fd9.entry.js → p-18ba8221.entry.js} +1 -1
  1348. package/dist/ionic/p-1b19c04b.entry.js +4 -0
  1349. package/dist/ionic/{p-b4b4bb29.system.js → p-1cca10d6.system.js} +1 -1
  1350. package/dist/ionic/p-1e4371bd.js +4 -0
  1351. package/dist/ionic/{p-0a794e83.entry.js → p-2092f39f.entry.js} +1 -1
  1352. package/dist/ionic/p-251666e2.entry.js +4 -0
  1353. package/dist/ionic/{p-9209d90c.entry.js → p-270e1a1d.entry.js} +1 -1
  1354. package/dist/ionic/{p-419eb426.js → p-27281edd.js} +1 -1
  1355. package/dist/ionic/p-28249b10.system.entry.js +4 -0
  1356. package/dist/ionic/p-28a2c2a2.entry.js +4 -0
  1357. package/dist/ionic/{p-ffb876b0.system.entry.js → p-2938823a.system.entry.js} +1 -1
  1358. package/dist/ionic/p-29d03b3a.js +4 -0
  1359. package/dist/ionic/{p-17240d90.js → p-2aea8b1e.js} +1 -1
  1360. package/dist/ionic/p-2b7827c7.js +4 -0
  1361. package/dist/ionic/p-2d3b9fa3.system.entry.js +4 -0
  1362. package/dist/ionic/p-2d539df1.entry.js +4 -0
  1363. package/dist/ionic/{p-fa8d4788.system.js → p-31b2326e.system.js} +1 -1
  1364. package/dist/ionic/{p-c4042875.system.js → p-31fcb233.system.js} +1 -1
  1365. package/dist/ionic/{p-a936d224.system.js → p-33a37fad.system.js} +1 -1
  1366. package/dist/ionic/p-350f7292.system.entry.js +4 -0
  1367. package/dist/ionic/{p-e76a4bc8.entry.js → p-353b349d.entry.js} +1 -1
  1368. package/dist/ionic/p-36d187af.js +4 -0
  1369. package/dist/ionic/p-376a6063.js +4 -0
  1370. package/dist/ionic/{p-55ed230e.system.js → p-38c337e7.system.js} +1 -1
  1371. package/dist/ionic/p-38f2c6bb.system.js +4 -0
  1372. package/dist/ionic/{p-0492946a.entry.js → p-3a45a82b.entry.js} +1 -1
  1373. package/dist/ionic/{p-3bad5c1a.js → p-3a75d7fd.js} +1 -1
  1374. package/dist/ionic/{p-0dc0d9b5.entry.js → p-3dd98a73.entry.js} +1 -1
  1375. package/dist/ionic/p-3e6b47e8.system.entry.js +4 -0
  1376. package/dist/ionic/p-3f5179b5.entry.js +4 -0
  1377. package/dist/ionic/p-40f68333.system.js +4 -0
  1378. package/dist/ionic/{p-c0c81820.system.js → p-4155f352.system.js} +1 -1
  1379. package/dist/ionic/{p-b287ab05.js → p-4180a747.js} +1 -1
  1380. package/dist/ionic/p-4233cc1e.system.entry.js +4 -0
  1381. package/dist/ionic/{p-b923f3d7.js → p-42f189f4.js} +1 -1
  1382. package/dist/ionic/{p-0e23256e.system.entry.js → p-46d400b4.system.entry.js} +1 -1
  1383. package/dist/ionic/{p-800ef057.js → p-47b6ba5b.js} +1 -1
  1384. package/dist/ionic/p-4d67d27a.entry.js +4 -0
  1385. package/dist/ionic/{p-1a8ae7a7.system.entry.js → p-4fb51e61.system.entry.js} +1 -1
  1386. package/dist/ionic/{p-18e01b30.system.entry.js → p-517a9885.system.entry.js} +1 -1
  1387. package/dist/ionic/{p-63f08fe3.entry.js → p-51a087d6.entry.js} +1 -1
  1388. package/dist/ionic/p-53ec4f1c.system.js +4 -0
  1389. package/dist/ionic/{p-5cfb3feb.system.entry.js → p-564af202.system.entry.js} +1 -1
  1390. package/dist/ionic/{p-1dc91702.entry.js → p-588fdf40.entry.js} +1 -1
  1391. package/dist/ionic/{p-41122cd6.system.js → p-5b365ca7.system.js} +1 -1
  1392. package/dist/ionic/{p-1d269117.system.entry.js → p-5bebc7b3.system.entry.js} +1 -1
  1393. package/dist/ionic/p-5e4eec2e.entry.js +4 -0
  1394. package/dist/ionic/{p-702d85d8.system.js → p-5e745192.system.js} +1 -1
  1395. package/dist/ionic/{p-6c3d5383.js → p-5ecae037.js} +1 -1
  1396. package/dist/ionic/{p-b2a74a72.entry.js → p-5eda1d7d.entry.js} +1 -1
  1397. package/dist/ionic/{p-6e23777e.system.entry.js → p-6577aea9.system.entry.js} +1 -1
  1398. package/dist/ionic/p-66d633fb.js +4 -0
  1399. package/dist/ionic/{p-3fb57e1b.system.entry.js → p-6ad34705.system.entry.js} +1 -1
  1400. package/dist/ionic/p-6de472cb.js +4 -0
  1401. package/dist/ionic/{p-34d2de14.system.entry.js → p-6de62649.system.entry.js} +1 -1
  1402. package/dist/ionic/{p-ff5144f3.system.entry.js → p-6e70dd1a.system.entry.js} +1 -1
  1403. package/dist/ionic/{p-4e6a1efb.system.entry.js → p-6f8dbe92.system.entry.js} +1 -1
  1404. package/dist/ionic/{p-1e86a71b.entry.js → p-6fbecbda.entry.js} +1 -1
  1405. package/dist/ionic/p-72f6ff89.js +4 -0
  1406. package/dist/ionic/p-765f4dde.entry.js +4 -0
  1407. package/dist/ionic/{p-8a308596.system.js → p-7798c78a.system.js} +2 -2
  1408. package/dist/ionic/{p-64ed03a3.entry.js → p-78aadecb.entry.js} +1 -1
  1409. package/dist/ionic/p-7d92bf15.system.entry.js +4 -0
  1410. package/dist/ionic/{p-5bd4e009.entry.js → p-80fa068e.entry.js} +1 -1
  1411. package/dist/ionic/{p-b8c3f071.system.js → p-82e3d633.system.js} +1 -1
  1412. package/dist/ionic/p-8314281e.system.js +4 -0
  1413. package/dist/ionic/p-8804a472.system.entry.js +4 -0
  1414. package/dist/ionic/{p-613d4042.system.js → p-888db766.system.js} +1 -1
  1415. package/dist/ionic/p-88d5fbd3.js +4 -0
  1416. package/dist/ionic/{p-3de79805.entry.js → p-88fde0e0.entry.js} +1 -1
  1417. package/dist/ionic/{p-ccdcb022.system.js → p-8985cdb6.system.js} +1 -1
  1418. package/dist/ionic/p-8aa1d0b7.system.js +4 -0
  1419. package/dist/ionic/p-8acae6b0.system.entry.js +4 -0
  1420. package/dist/ionic/p-8d69a624.entry.js +4 -0
  1421. package/dist/ionic/{p-14aca3fb.entry.js → p-8f5d30f5.entry.js} +1 -1
  1422. package/dist/ionic/{p-a9c3699b.system.entry.js → p-908475e7.system.entry.js} +1 -1
  1423. package/dist/ionic/{p-67aab78f.js → p-91d33c4a.js} +1 -1
  1424. package/dist/ionic/p-953009b1.entry.js +4 -0
  1425. package/dist/ionic/{p-3d7fea9b.system.entry.js → p-958d6ebe.system.entry.js} +2 -2
  1426. package/dist/ionic/{p-07d9e9cd.system.entry.js → p-9709ebd8.system.entry.js} +1 -1
  1427. package/dist/ionic/p-9738fd82.js +5 -0
  1428. package/dist/ionic/p-979d4f5c.system.js +4 -0
  1429. package/dist/ionic/{p-8b29691f.entry.js → p-98f3d827.entry.js} +1 -1
  1430. package/dist/ionic/p-9b7f0b0f.entry.js +4 -0
  1431. package/dist/ionic/p-9e447eb1.system.js +4 -0
  1432. package/dist/ionic/{p-4c80afe1.system.entry.js → p-9eec42cc.system.entry.js} +1 -1
  1433. package/dist/ionic/p-9f6ee2c0.system.entry.js +4 -0
  1434. package/dist/ionic/{p-bed722c4.system.entry.js → p-a0bb7b92.system.entry.js} +1 -1
  1435. package/dist/ionic/{p-97e31c0a.system.js → p-a0d7bb5e.system.js} +1 -1
  1436. package/dist/ionic/{p-965677f1.entry.js → p-a1987850.entry.js} +1 -1
  1437. package/dist/ionic/{p-b91fe549.entry.js → p-a3277a67.entry.js} +1 -1
  1438. package/dist/ionic/{p-ed636a74.entry.js → p-a4afcc88.entry.js} +1 -1
  1439. package/dist/ionic/{p-73411c1b.entry.js → p-a9978d08.entry.js} +1 -1
  1440. package/dist/ionic/{p-1cb5f2f8.system.entry.js → p-ada96dd0.system.entry.js} +1 -1
  1441. package/dist/ionic/p-afd6ca9d.entry.js +4 -0
  1442. package/dist/ionic/{p-0330f0a3.system.entry.js → p-b3b3efba.system.entry.js} +1 -1
  1443. package/dist/ionic/{p-a545b4f1.system.js → p-b4a51c42.system.js} +1 -1
  1444. package/dist/ionic/p-b56d0866.system.entry.js +4 -0
  1445. package/dist/ionic/{p-48d9faa7.entry.js → p-b5f9f14c.entry.js} +1 -1
  1446. package/dist/ionic/{p-45da1e68.system.entry.js → p-b6f5e4f2.system.entry.js} +1 -1
  1447. package/dist/ionic/p-b6f9d32a.entry.js +4 -0
  1448. package/dist/ionic/{p-664d2b07.system.entry.js → p-b7010c69.system.entry.js} +1 -1
  1449. package/dist/ionic/{p-5d711127.js → p-c3c3333a.js} +1 -1
  1450. package/dist/ionic/p-c61cc894.js +4 -0
  1451. package/dist/ionic/{p-5da0eb3e.system.entry.js → p-c847fb35.system.entry.js} +1 -1
  1452. package/dist/ionic/{p-67e18f02.system.entry.js → p-c91ccbfa.system.entry.js} +1 -1
  1453. package/dist/ionic/{p-f5a750e4.system.entry.js → p-c9a21dfd.system.entry.js} +1 -1
  1454. package/dist/ionic/{p-ab4cff27.system.js → p-cabad15b.system.js} +1 -1
  1455. package/dist/ionic/{p-d7ea6a0d.system.entry.js → p-caf21b46.system.entry.js} +1 -1
  1456. package/dist/ionic/{p-beb64be7.system.entry.js → p-cce9f61a.system.entry.js} +1 -1
  1457. package/dist/ionic/{p-a0b6d438.js → p-cdbeaadc.js} +1 -1
  1458. package/dist/ionic/{p-174f3446.entry.js → p-cfe57b1b.entry.js} +1 -1
  1459. package/dist/ionic/p-d032f825.system.entry.js +4 -0
  1460. package/dist/ionic/{p-7cee75c0.entry.js → p-d37b441e.entry.js} +1 -1
  1461. package/dist/ionic/{p-d2597b3e.system.js → p-d3b030b8.system.js} +1 -1
  1462. package/dist/ionic/p-d51674c5.system.js +4 -0
  1463. package/dist/ionic/p-dc6af8e9.entry.js +4 -0
  1464. package/dist/ionic/{p-8ad82eb3.entry.js → p-ddb30596.entry.js} +1 -1
  1465. package/dist/ionic/{p-bba2ce59.system.js → p-ddbb2d5b.system.js} +1 -1
  1466. package/dist/ionic/p-de6f8b28.system.js +4 -0
  1467. package/dist/ionic/p-de756e5c.js +4 -0
  1468. package/dist/ionic/p-dee7c1d0.system.entry.js +4 -0
  1469. package/dist/ionic/{p-09d142b3.system.js → p-e24ce1e5.system.js} +1 -1
  1470. package/dist/ionic/p-e3584231.system.js +4 -0
  1471. package/dist/ionic/{p-db5043df.system.entry.js → p-e6d68e02.system.entry.js} +1 -1
  1472. package/dist/ionic/{p-abacb44b.system.entry.js → p-e7ea9815.system.entry.js} +1 -1
  1473. package/dist/ionic/{p-c919498d.entry.js → p-e94c392d.entry.js} +1 -1
  1474. package/dist/ionic/p-ea69616e.entry.js +4 -0
  1475. package/dist/ionic/p-eef72e06.js +4 -0
  1476. package/dist/ionic/{p-a6d83a03.system.entry.js → p-ef126ae8.system.entry.js} +1 -1
  1477. package/dist/ionic/p-f0445d82.system.entry.js +4 -0
  1478. package/dist/ionic/p-f5d2dc9b.js +4 -0
  1479. package/dist/ionic/p-f656e032.system.entry.js +4 -0
  1480. package/dist/ionic/p-f70970cf.js +4 -0
  1481. package/dist/ionic/{p-5deff017.entry.js → p-f8a5bb89.entry.js} +1 -1
  1482. package/dist/ionic/{p-377c636c.system.entry.js → p-fba0a6e7.system.entry.js} +1 -1
  1483. package/dist/ionic/p-feae5133.entry.js +4 -0
  1484. package/dist/types/components/accordion/accordion.d.ts +62 -62
  1485. package/dist/types/components/accordion-group/accordion-group-interface.d.ts +3 -3
  1486. package/dist/types/components/accordion-group/accordion-group.d.ts +76 -76
  1487. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +25 -25
  1488. package/dist/types/components/action-sheet/action-sheet.d.ts +149 -149
  1489. package/dist/types/components/action-sheet/test/basic/fixture.d.ts +7 -7
  1490. package/dist/types/components/alert/alert-interface.d.ts +45 -45
  1491. package/dist/types/components/alert/alert.d.ts +181 -181
  1492. package/dist/types/components/app/app.d.ts +15 -15
  1493. package/dist/types/components/avatar/avatar.d.ts +1 -1
  1494. package/dist/types/components/back-button/back-button.d.ts +41 -41
  1495. package/dist/types/components/backdrop/backdrop.d.ts +22 -22
  1496. package/dist/types/components/badge/badge.d.ts +7 -7
  1497. package/dist/types/components/breadcrumb/breadcrumb-interface.d.ts +4 -4
  1498. package/dist/types/components/breadcrumb/breadcrumb.d.ts +87 -87
  1499. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +39 -39
  1500. package/dist/types/components/button/button.d.ts +121 -121
  1501. package/dist/types/components/buttons/buttons.d.ts +14 -14
  1502. package/dist/types/components/card/card.d.ts +57 -57
  1503. package/dist/types/components/card-content/card-content.d.ts +1 -1
  1504. package/dist/types/components/card-header/card-header.d.ts +13 -13
  1505. package/dist/types/components/card-subtitle/card-subtitle.d.ts +7 -7
  1506. package/dist/types/components/card-title/card-title.d.ts +7 -7
  1507. package/dist/types/components/checkbox/checkbox-interface.d.ts +4 -4
  1508. package/dist/types/components/checkbox/checkbox.d.ts +112 -111
  1509. package/dist/types/components/chip/chip.d.ts +15 -15
  1510. package/dist/types/components/col/col.d.ts +128 -128
  1511. package/dist/types/components/content/content-interface.d.ts +6 -6
  1512. package/dist/types/components/content/content.d.ts +129 -129
  1513. package/dist/types/components/datetime/datetime-interface.d.ts +15 -15
  1514. package/dist/types/components/datetime/datetime.d.ts +407 -407
  1515. package/dist/types/components/datetime/utils/data.d.ts +11 -11
  1516. package/dist/types/components/datetime/utils/manipulation.d.ts +25 -25
  1517. package/dist/types/components/datetime/utils/state.d.ts +8 -8
  1518. package/dist/types/components/datetime-button/datetime-button.d.ts +59 -59
  1519. package/dist/types/components/fab/fab.d.ts +33 -33
  1520. package/dist/types/components/fab-button/fab-button.d.ts +88 -88
  1521. package/dist/types/components/fab-list/fab-list.d.ts +11 -11
  1522. package/dist/types/components/footer/footer.d.ts +27 -27
  1523. package/dist/types/components/grid/grid.d.ts +5 -5
  1524. package/dist/types/components/header/header.d.ts +31 -31
  1525. package/dist/types/components/header/header.utils.d.ts +7 -7
  1526. package/dist/types/components/img/img.d.ts +30 -30
  1527. package/dist/types/components/infinite-scroll/infinite-scroll-interface.d.ts +1 -1
  1528. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +65 -58
  1529. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +23 -23
  1530. package/dist/types/components/input/input-interface.d.ts +6 -6
  1531. package/dist/types/components/input/input.d.ts +321 -315
  1532. package/dist/types/components/item/item.d.ts +111 -111
  1533. package/dist/types/components/item-divider/item-divider.d.ts +16 -16
  1534. package/dist/types/components/item-group/item-group.d.ts +1 -1
  1535. package/dist/types/components/item-option/item-option.d.ts +44 -44
  1536. package/dist/types/components/item-options/item-options.d.ts +13 -13
  1537. package/dist/types/components/item-sliding/item-sliding-interface.d.ts +1 -1
  1538. package/dist/types/components/item-sliding/item-sliding.d.ts +75 -75
  1539. package/dist/types/components/label/label.d.ts +30 -30
  1540. package/dist/types/components/list/list.d.ts +17 -17
  1541. package/dist/types/components/list-header/list-header.d.ts +11 -11
  1542. package/dist/types/components/loading/loading-interface.d.ts +16 -16
  1543. package/dist/types/components/loading/loading.d.ts +152 -152
  1544. package/dist/types/components/menu/menu-interface.d.ts +39 -39
  1545. package/dist/types/components/menu/menu.d.ts +140 -140
  1546. package/dist/types/components/menu-button/menu-button.d.ts +30 -30
  1547. package/dist/types/components/menu-toggle/menu-toggle.d.ts +21 -21
  1548. package/dist/types/components/modal/animations/sheet.d.ts +4 -4
  1549. package/dist/types/components/modal/gestures/sheet.d.ts +30 -30
  1550. package/dist/types/components/modal/gestures/swipe-to-close.d.ts +1 -1
  1551. package/dist/types/components/modal/modal-interface.d.ts +27 -27
  1552. package/dist/types/components/modal/modal.d.ts +265 -265
  1553. package/dist/types/components/modal/test/fixtures.d.ts +7 -7
  1554. package/dist/types/components/nav/nav-interface.d.ts +40 -40
  1555. package/dist/types/components/nav/nav.d.ts +247 -247
  1556. package/dist/types/components/nav/view-controller.d.ts +13 -13
  1557. package/dist/types/components/nav-link/nav-link.d.ts +19 -19
  1558. package/dist/types/components/note/note.d.ts +7 -7
  1559. package/dist/types/components/picker/picker-interface.d.ts +43 -43
  1560. package/dist/types/components/picker/picker.d.ts +149 -149
  1561. package/dist/types/components/picker-column/picker-column.d.ts +39 -39
  1562. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +3 -3
  1563. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +93 -89
  1564. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +4 -4
  1565. package/dist/types/components/picker-internal/picker-internal.d.ts +94 -94
  1566. package/dist/types/components/popover/popover-interface.d.ts +26 -26
  1567. package/dist/types/components/popover/popover.d.ts +279 -279
  1568. package/dist/types/components/popover/test/fixture.d.ts +5 -5
  1569. package/dist/types/components/popover/utils.d.ts +25 -25
  1570. package/dist/types/components/progress-bar/progress-bar.d.ts +27 -27
  1571. package/dist/types/components/radio/radio.d.ts +100 -99
  1572. package/dist/types/components/radio-group/radio-group-interface.d.ts +5 -4
  1573. package/dist/types/components/radio-group/radio-group.d.ts +51 -44
  1574. package/dist/types/components/radio-group/test/fixtures.d.ts +5 -5
  1575. package/dist/types/components/range/range-interface.d.ts +7 -7
  1576. package/dist/types/components/range/range.d.ts +193 -192
  1577. package/dist/types/components/refresher/refresher-interface.d.ts +3 -3
  1578. package/dist/types/components/refresher/refresher.d.ts +132 -132
  1579. package/dist/types/components/refresher-content/refresher-content.d.ts +44 -44
  1580. package/dist/types/components/reorder/reorder.d.ts +3 -3
  1581. package/dist/types/components/reorder-group/reorder-group-interface.d.ts +5 -5
  1582. package/dist/types/components/reorder-group/reorder-group.d.ts +53 -53
  1583. package/dist/types/components/ripple-effect/ripple-effect.d.ts +20 -20
  1584. package/dist/types/components/route/route-interface.d.ts +1 -1
  1585. package/dist/types/components/route/route.d.ts +43 -43
  1586. package/dist/types/components/route-redirect/route-redirect.d.ts +33 -33
  1587. package/dist/types/components/router/router.d.ts +74 -73
  1588. package/dist/types/components/router/utils/dom.d.ts +2 -2
  1589. package/dist/types/components/router/utils/interface.d.ts +31 -31
  1590. package/dist/types/components/router/utils/matching.d.ts +6 -6
  1591. package/dist/types/components/router-link/router-link.d.ts +34 -34
  1592. package/dist/types/components/router-outlet/router-outlet.d.ts +41 -41
  1593. package/dist/types/components/row/row.d.ts +1 -1
  1594. package/dist/types/components/searchbar/searchbar-interface.d.ts +6 -6
  1595. package/dist/types/components/searchbar/searchbar.d.ts +235 -233
  1596. package/dist/types/components/segment/segment-interface.d.ts +3 -3
  1597. package/dist/types/components/segment/segment.d.ts +82 -82
  1598. package/dist/types/components/segment-button/segment-button.d.ts +36 -36
  1599. package/dist/types/components/select/select-interface.d.ts +3 -3
  1600. package/dist/types/components/select/select.d.ts +238 -233
  1601. package/dist/types/components/select-option/select-option.d.ts +11 -11
  1602. package/dist/types/components/select-popover/select-popover-interface.d.ts +8 -8
  1603. package/dist/types/components/select-popover/select-popover.d.ts +39 -39
  1604. package/dist/types/components/select-popover/test/fixtures.d.ts +12 -12
  1605. package/dist/types/components/skeleton-text/skeleton-text.d.ts +15 -7
  1606. package/dist/types/components/spinner/spinner-configs.d.ts +96 -96
  1607. package/dist/types/components/spinner/spinner-interface.d.ts +14 -14
  1608. package/dist/types/components/spinner/spinner.d.ts +21 -21
  1609. package/dist/types/components/split-pane/split-pane.d.ts +33 -33
  1610. package/dist/types/components/tab/tab.d.ts +21 -21
  1611. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +4 -4
  1612. package/dist/types/components/tab-bar/tab-bar.d.ts +34 -34
  1613. package/dist/types/components/tab-button/tab-button.d.ts +56 -56
  1614. package/dist/types/components/tabs/tabs-interface.d.ts +4 -4
  1615. package/dist/types/components/tabs/tabs.d.ts +52 -52
  1616. package/dist/types/components/text/text.d.ts +7 -7
  1617. package/dist/types/components/textarea/textarea-interface.d.ts +6 -6
  1618. package/dist/types/components/textarea/textarea.d.ts +275 -269
  1619. package/dist/types/components/thumbnail/thumbnail.d.ts +1 -1
  1620. package/dist/types/components/title/title.d.ts +21 -21
  1621. package/dist/types/components/toast/animations/utils.d.ts +15 -4
  1622. package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +9 -0
  1623. package/dist/types/components/toast/toast-interface.d.ts +37 -35
  1624. package/dist/types/components/toast/toast.d.ts +241 -214
  1625. package/dist/types/components/toggle/toggle-interface.d.ts +4 -4
  1626. package/dist/types/components/toggle/toggle.d.ts +117 -116
  1627. package/dist/types/components/toolbar/toolbar.d.ts +11 -11
  1628. package/dist/types/components.d.ts +52 -13
  1629. package/dist/types/global/config.d.ts +6 -6
  1630. package/dist/types/interface.d.ts +1 -5
  1631. package/dist/types/jest.d.ts +5 -0
  1632. package/dist/types/stencil-public-runtime.d.ts +8 -0
  1633. package/dist/types/utils/animation/animation-interface.d.ts +205 -205
  1634. package/dist/types/utils/browser/index.d.ts +17 -8
  1635. package/dist/types/utils/config.d.ts +175 -175
  1636. package/dist/types/utils/element-interface.d.ts +6 -6
  1637. package/dist/types/utils/focus-visible.d.ts +2 -2
  1638. package/dist/types/utils/forms/compare-with-utils.d.ts +18 -0
  1639. package/dist/types/utils/forms/form-controller.d.ts +3 -3
  1640. package/dist/types/utils/forms/index.d.ts +1 -0
  1641. package/dist/types/utils/forms/notch-controller.d.ts +2 -2
  1642. package/dist/types/utils/framework-delegate.d.ts +3 -3
  1643. package/dist/types/utils/gesture/gesture-controller.d.ts +49 -49
  1644. package/dist/types/utils/gesture/index.d.ts +31 -31
  1645. package/dist/types/utils/gesture/listener.d.ts +2 -2
  1646. package/dist/types/utils/gesture/pointer-events.d.ts +12 -12
  1647. package/dist/types/utils/gesture/recognizers.d.ts +4 -4
  1648. package/dist/types/utils/hardware-back-button.d.ts +4 -0
  1649. package/dist/types/utils/helpers.d.ts +8 -8
  1650. package/dist/types/utils/input-shims/hacks/scroll-data.d.ts +4 -4
  1651. package/dist/types/utils/keyboard/keyboard-controller.d.ts +3 -3
  1652. package/dist/types/utils/lock-controller.d.ts +1 -1
  1653. package/dist/types/utils/native/haptic.d.ts +38 -38
  1654. package/dist/types/utils/native/keyboard.d.ts +29 -29
  1655. package/dist/types/utils/native/native-interface.d.ts +15 -15
  1656. package/dist/types/utils/native/status-bar.d.ts +8 -8
  1657. package/dist/types/utils/overlays-interface.d.ts +27 -27
  1658. package/dist/types/utils/overlays.d.ts +29 -28
  1659. package/dist/types/utils/platform.d.ts +16 -16
  1660. package/dist/types/utils/sanitization/index.d.ts +2 -2
  1661. package/dist/types/utils/slot-mutation-controller.d.ts +3 -3
  1662. package/dist/types/utils/test/platform.utils.d.ts +66 -66
  1663. package/dist/types/utils/test/playwright/generator.d.ts +16 -7
  1664. package/dist/types/utils/test/playwright/matchers/index.d.ts +3 -3
  1665. package/dist/types/utils/test/playwright/matchers/toHaveReceivedEvent.d.ts +2 -2
  1666. package/dist/types/utils/test/playwright/matchers/toHaveReceivedEventDetail.d.ts +2 -2
  1667. package/dist/types/utils/test/playwright/matchers/toHaveReceivedEventTimes.d.ts +2 -2
  1668. package/dist/types/utils/test/playwright/page/event-spy.d.ts +15 -15
  1669. package/dist/types/utils/test/playwright/page/utils/goto.d.ts +3 -3
  1670. package/dist/types/utils/test/playwright/page/utils/locator.d.ts +15 -15
  1671. package/dist/types/utils/test/playwright/playwright-declarations.d.ts +92 -92
  1672. package/dist/types/utils/test/playwright/playwright-page.d.ts +3 -3
  1673. package/dist/types/utils/test/playwright/viewports/index.d.ts +12 -12
  1674. package/dist/types/utils/test/press-keys.d.ts +14 -14
  1675. package/dist/types/utils/transition/index.d.ts +6 -6
  1676. package/dist/types/utils/watch-options.d.ts +1 -1
  1677. package/hydrate/index.d.ts +1 -1
  1678. package/hydrate/index.js +30517 -29945
  1679. package/package.json +3 -2
  1680. package/dist/cjs/animation-1083855c.js +0 -1061
  1681. package/dist/cjs/button-active-af897e0e.js +0 -69
  1682. package/dist/cjs/config-d5882735.js +0 -199
  1683. package/dist/cjs/cubic-bezier-6b9222ad.js +0 -92
  1684. package/dist/cjs/data-c8d21093.js +0 -1622
  1685. package/dist/cjs/focus-visible-a7545600.js +0 -77
  1686. package/dist/cjs/form-controller-9343050c.js +0 -66
  1687. package/dist/cjs/framework-delegate-c0873a6f.js +0 -144
  1688. package/dist/cjs/gesture-controller-b46721be.js +0 -197
  1689. package/dist/cjs/haptic-678abc9f.js +0 -212
  1690. package/dist/cjs/hardware-back-button-b67c8e75.js +0 -76
  1691. package/dist/cjs/helpers-ea4ccbcb.js +0 -441
  1692. package/dist/cjs/index-0ee995e4.js +0 -459
  1693. package/dist/cjs/index-306a7476.js +0 -32
  1694. package/dist/cjs/index-573877f3.js +0 -243
  1695. package/dist/cjs/index-9f379eaa.js +0 -198
  1696. package/dist/cjs/index-d7561763.js +0 -310
  1697. package/dist/cjs/input-shims-b0a75a01.js +0 -596
  1698. package/dist/cjs/input.utils-0fe3097c.js +0 -137
  1699. package/dist/cjs/ionic-global-ea2901a3.js +0 -230
  1700. package/dist/cjs/ios.transition-ac909bc8.js +0 -654
  1701. package/dist/cjs/keyboard-controller-50beb83a.js +0 -167
  1702. package/dist/cjs/keyboard-fd7db491.js +0 -81
  1703. package/dist/cjs/lock-controller-4ae2eb59.js +0 -40
  1704. package/dist/cjs/md.transition-907af519.js +0 -59
  1705. package/dist/cjs/notch-controller-f4f6af5d.js +0 -155
  1706. package/dist/cjs/overlays-2ffc5f27.js +0 -714
  1707. package/dist/cjs/spinner-configs-f7b5105b.js +0 -147
  1708. package/dist/cjs/status-tap-3fb2391a.js +0 -42
  1709. package/dist/cjs/swipe-back-7e843e77.js +0 -81
  1710. package/dist/cjs/theme-fbc56b3b.js +0 -48
  1711. package/dist/cjs/watch-options-53bbb124.js +0 -49
  1712. package/dist/collection/components/item/test/text/item.e2e.js +0 -14
  1713. package/dist/esm/animation-8aa13916.js +0 -1059
  1714. package/dist/esm/button-active-ce5cba4c.js +0 -67
  1715. package/dist/esm/capacitor-b4979570.js +0 -13
  1716. package/dist/esm/config-96c9ace3.js +0 -193
  1717. package/dist/esm/cubic-bezier-66542bc5.js +0 -90
  1718. package/dist/esm/data-44d9e816.js +0 -1575
  1719. package/dist/esm/focus-visible-85493433.js +0 -75
  1720. package/dist/esm/form-controller-64edeaad.js +0 -64
  1721. package/dist/esm/framework-delegate-aa433dea.js +0 -140
  1722. package/dist/esm/gesture-controller-0fa396c4.js +0 -195
  1723. package/dist/esm/haptic-1243b917.js +0 -206
  1724. package/dist/esm/hardware-back-button-39299f84.js +0 -71
  1725. package/dist/esm/helpers-3379ba19.js +0 -418
  1726. package/dist/esm/index-0aa6e61f.js +0 -308
  1727. package/dist/esm/index-6a0ccabb.js +0 -231
  1728. package/dist/esm/index-7a14ecec.js +0 -29
  1729. package/dist/esm/index-f0cc4e14.js +0 -196
  1730. package/dist/esm/index-ff313b19.js +0 -457
  1731. package/dist/esm/input-shims-d0c93e5d.js +0 -594
  1732. package/dist/esm/input.utils-ec063df4.js +0 -134
  1733. package/dist/esm/ionic-global-40e42e7f.js +0 -224
  1734. package/dist/esm/ios.transition-1651c430.js +0 -651
  1735. package/dist/esm/keyboard-b063f012.js +0 -79
  1736. package/dist/esm/keyboard-b551279d.js +0 -146
  1737. package/dist/esm/keyboard-controller-0c2dce71.js +0 -165
  1738. package/dist/esm/lock-controller-e8c6c051.js +0 -38
  1739. package/dist/esm/md.transition-66f18369.js +0 -57
  1740. package/dist/esm/notch-controller-8c9c0e54.js +0 -153
  1741. package/dist/esm/overlays-6c9feb7e.js +0 -692
  1742. package/dist/esm/spinner-configs-d09fbbbb.js +0 -145
  1743. package/dist/esm/status-tap-9ce68758.js +0 -40
  1744. package/dist/esm/swipe-back-cd4295f3.js +0 -79
  1745. package/dist/esm/theme-17531cdf.js +0 -43
  1746. package/dist/esm/watch-options-02d8498b.js +0 -47
  1747. package/dist/esm-es5/app-globals-2398e405.js +0 -4
  1748. package/dist/esm-es5/index-0aa6e61f.js +0 -4
  1749. package/dist/esm-es5/input-shims-d0c93e5d.js +0 -4
  1750. package/dist/esm-es5/input.utils-ec063df4.js +0 -4
  1751. package/dist/esm-es5/md.transition-66f18369.js +0 -4
  1752. package/dist/ionic/p-0d8e9393.entry.js +0 -4
  1753. package/dist/ionic/p-114a36ed.js +0 -4
  1754. package/dist/ionic/p-14b4348c.system.js +0 -4
  1755. package/dist/ionic/p-1e5165db.system.entry.js +0 -4
  1756. package/dist/ionic/p-1f4f0d59.system.entry.js +0 -4
  1757. package/dist/ionic/p-20cf4994.js +0 -4
  1758. package/dist/ionic/p-236063ec.system.entry.js +0 -4
  1759. package/dist/ionic/p-276afddd.js +0 -4
  1760. package/dist/ionic/p-2e8e0045.js +0 -4
  1761. package/dist/ionic/p-32083c2d.js +0 -4
  1762. package/dist/ionic/p-352c0232.system.entry.js +0 -4
  1763. package/dist/ionic/p-3602001b.system.js +0 -4
  1764. package/dist/ionic/p-3632220b.system.js +0 -4
  1765. package/dist/ionic/p-39044fe6.system.entry.js +0 -4
  1766. package/dist/ionic/p-3ce8c3e3.entry.js +0 -4
  1767. package/dist/ionic/p-40903d34.system.js +0 -4
  1768. package/dist/ionic/p-4518e4c0.system.entry.js +0 -4
  1769. package/dist/ionic/p-4794e0ac.system.entry.js +0 -4
  1770. package/dist/ionic/p-4a142496.system.entry.js +0 -4
  1771. package/dist/ionic/p-4cd588b3.system.entry.js +0 -4
  1772. package/dist/ionic/p-4dbac22d.entry.js +0 -4
  1773. package/dist/ionic/p-4ecb5692.entry.js +0 -4
  1774. package/dist/ionic/p-5370e786.js +0 -4
  1775. package/dist/ionic/p-63d519fb.entry.js +0 -4
  1776. package/dist/ionic/p-64296b15.entry.js +0 -4
  1777. package/dist/ionic/p-67ed452a.system.entry.js +0 -4
  1778. package/dist/ionic/p-67eecef4.system.js +0 -4
  1779. package/dist/ionic/p-7176cea3.entry.js +0 -4
  1780. package/dist/ionic/p-73420380.js +0 -4
  1781. package/dist/ionic/p-77e7a9c8.entry.js +0 -4
  1782. package/dist/ionic/p-7ab6fc5a.system.entry.js +0 -4
  1783. package/dist/ionic/p-81c818e7.js +0 -4
  1784. package/dist/ionic/p-8b1be026.js +0 -4
  1785. package/dist/ionic/p-8cf94fc1.js +0 -4
  1786. package/dist/ionic/p-8e1bded3.entry.js +0 -4
  1787. package/dist/ionic/p-97c65aa5.js +0 -4
  1788. package/dist/ionic/p-9ab6f3e6.system.js +0 -4
  1789. package/dist/ionic/p-9b89cbde.js +0 -4
  1790. package/dist/ionic/p-a5c1e6ce.entry.js +0 -4
  1791. package/dist/ionic/p-af016cd3.entry.js +0 -4
  1792. package/dist/ionic/p-b0cee324.entry.js +0 -4
  1793. package/dist/ionic/p-b1142133.entry.js +0 -4
  1794. package/dist/ionic/p-b17b7c3c.system.entry.js +0 -4
  1795. package/dist/ionic/p-b203659a.system.entry.js +0 -4
  1796. package/dist/ionic/p-b6f8ee31.entry.js +0 -4
  1797. package/dist/ionic/p-b906c5ca.entry.js +0 -4
  1798. package/dist/ionic/p-b912e055.system.js +0 -4
  1799. package/dist/ionic/p-c224b9a9.js +0 -5
  1800. package/dist/ionic/p-ca5219df.entry.js +0 -4
  1801. package/dist/ionic/p-cc196b34.js +0 -4
  1802. package/dist/ionic/p-d1de1188.js +0 -4
  1803. package/dist/ionic/p-d3952bd5.system.entry.js +0 -4
  1804. package/dist/ionic/p-dfa756ed.system.js +0 -4
  1805. package/dist/ionic/p-e6b240a0.js +0 -4
  1806. package/dist/ionic/p-e8400078.system.entry.js +0 -4
  1807. package/dist/ionic/p-f8e620f1.entry.js +0 -4
  1808. package/dist/ionic/p-ff5a10f9.system.js +0 -4
  1809. /package/dist/esm-es5/{config-96c9ace3.js → config-49c88215.js} +0 -0
  1810. /package/dist/esm-es5/{cubic-bezier-66542bc5.js → cubic-bezier-fe2083dc.js} +0 -0
  1811. /package/dist/esm-es5/{dir-912e3e13.js → dir-babeabeb.js} +0 -0
  1812. /package/dist/esm-es5/{focus-visible-85493433.js → focus-visible-dd40d69f.js} +0 -0
  1813. /package/dist/esm-es5/{gesture-controller-0fa396c4.js → gesture-controller-1bf57181.js} +0 -0
  1814. /package/dist/esm-es5/{hardware-back-button-39299f84.js → hardware-back-button-b2bc76db.js} +0 -0
  1815. /package/dist/esm-es5/{helpers-3379ba19.js → helpers-ae653409.js} +0 -0
  1816. /package/dist/esm-es5/{index-595d62c9.js → index-9b0d46f4.js} +0 -0
  1817. /package/dist/esm-es5/{index-7a14ecec.js → index-a5d50daf.js} +0 -0
  1818. /package/dist/esm-es5/{lock-controller-e8c6c051.js → lock-controller-316928be.js} +0 -0
  1819. /package/dist/esm-es5/{spinner-configs-d09fbbbb.js → spinner-configs-964f7cf3.js} +0 -0
  1820. /package/dist/esm-es5/{theme-17531cdf.js → theme-01f3f29c.js} +0 -0
  1821. /package/dist/esm-es5/{watch-options-02d8498b.js → watch-options-c2911ace.js} +0 -0
  1822. /package/dist/ionic/{p-5aac9314.system.js → p-012c3ceb.system.js} +0 -0
  1823. /package/dist/ionic/{p-1b8e1d03.js → p-06fee233.js} +0 -0
  1824. /package/dist/ionic/{p-819ff3b9.system.js → p-08e01816.system.js} +0 -0
  1825. /package/dist/ionic/{p-63eb0acd.js → p-23a9d086.js} +0 -0
  1826. /package/dist/ionic/{p-7c2bac85.js → p-2408c236.js} +0 -0
  1827. /package/dist/ionic/{p-815c2fba.system.js → p-32ad210f.system.js} +0 -0
  1828. /package/dist/ionic/{p-7b021525.js → p-41d5544e.js} +0 -0
  1829. /package/dist/ionic/{p-f10de93b.js → p-459d13d5.js} +0 -0
  1830. /package/dist/ionic/{p-44bc8b45.system.js → p-4609d030.system.js} +0 -0
  1831. /package/dist/ionic/{p-1d072d3d.js → p-47794def.js} +0 -0
  1832. /package/dist/ionic/{p-185e427e.js → p-4b3623da.js} +0 -0
  1833. /package/dist/ionic/{p-772f6c84.system.js → p-4f255d5a.system.js} +0 -0
  1834. /package/dist/ionic/{p-8c15eda7.system.js → p-790220fd.system.js} +0 -0
  1835. /package/dist/ionic/{p-0e94957a.system.js → p-792919fd.system.js} +0 -0
  1836. /package/dist/ionic/{p-b347cfd1.js → p-7b30edcc.js} +0 -0
  1837. /package/dist/ionic/{p-e0b06b65.js → p-bb3615f7.js} +0 -0
  1838. /package/dist/ionic/{p-87411e39.system.js → p-c468af8a.system.js} +0 -0
  1839. /package/dist/ionic/{p-9e852ff1.system.js → p-c7c8429a.system.js} +0 -0
  1840. /package/dist/ionic/{p-53b2a46f.js → p-ccd02320.js} +0 -0
  1841. /package/dist/ionic/{p-76fce40e.js → p-d47265c8.js} +0 -0
  1842. /package/dist/ionic/{p-56dc022e.system.js → p-d8d84afa.system.js} +0 -0
  1843. /package/dist/ionic/{p-c4f2dce7.system.js → p-e673a0a2.system.js} +0 -0
  1844. /package/dist/ionic/{p-c18d6eac.js → p-f0c2a614.js} +0 -0
  1845. /package/dist/ionic/{p-2b89ea1b.system.js → p-f233f1e0.system.js} +0 -0
  1846. /package/dist/ionic/{p-6dbfe5d4.js → p-fb813dab.js} +0 -0
  1847. /package/dist/ionic/{p-479cdbf8.system.js → p-ff4b7e40.system.js} +0 -0
@@ -14,381 +14,408 @@ import { getCounterText } from "./input.utils";
14
14
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
15
15
  *
16
16
  * @slot label - The label text to associate with the input. Use the `labelPlacement` property to control where the label is placed relative to the input. Use this if you need to render a label with custom HTML. (EXPERIMENTAL)
17
+ * @slot start - Content to display at the leading edge of the input. (EXPERIMENTAL)
18
+ * @slot end - Content to display at the trailing edge of the input. (EXPERIMENTAL)
17
19
  */
18
20
  export class Input {
19
- constructor() {
20
- this.inputId = `ion-input-${inputIds++}`;
21
- this.inheritedAttributes = {};
22
- this.isComposing = false;
23
- // This flag ensures we log the deprecation warning at most once.
24
- this.hasLoggedDeprecationWarning = false;
21
+ constructor() {
22
+ this.inputId = `ion-input-${inputIds++}`;
23
+ this.inheritedAttributes = {};
24
+ this.isComposing = false;
25
+ // This flag ensures we log the deprecation warning at most once.
26
+ this.hasLoggedDeprecationWarning = false;
27
+ /**
28
+ * `true` if the input was cleared as a result of the user typing
29
+ * with `clearOnEdit` enabled.
30
+ *
31
+ * Resets when the input loses focus.
32
+ */
33
+ this.didInputClearOnEdit = false;
34
+ this.onInput = (ev) => {
35
+ const input = ev.target;
36
+ if (input) {
37
+ this.value = input.value || '';
38
+ }
39
+ this.emitInputChange(ev);
40
+ };
41
+ this.onChange = (ev) => {
42
+ this.emitValueChange(ev);
43
+ };
44
+ this.onBlur = (ev) => {
45
+ this.hasFocus = false;
46
+ this.emitStyle();
47
+ if (this.focusedValue !== this.value) {
48
+ /**
49
+ * Emits the `ionChange` event when the input value
50
+ * is different than the value when the input was focused.
51
+ */
52
+ this.emitValueChange(ev);
53
+ }
54
+ this.didInputClearOnEdit = false;
55
+ this.ionBlur.emit(ev);
56
+ };
57
+ this.onFocus = (ev) => {
58
+ this.hasFocus = true;
59
+ this.focusedValue = this.value;
60
+ this.emitStyle();
61
+ this.ionFocus.emit(ev);
62
+ };
63
+ this.onKeydown = (ev) => {
64
+ this.checkClearOnEdit(ev);
65
+ };
66
+ this.onCompositionStart = () => {
67
+ this.isComposing = true;
68
+ };
69
+ this.onCompositionEnd = () => {
70
+ this.isComposing = false;
71
+ };
72
+ this.clearTextInput = (ev) => {
73
+ if (this.clearInput && !this.readonly && !this.disabled && ev) {
74
+ ev.preventDefault();
75
+ ev.stopPropagation();
76
+ // Attempt to focus input again after pressing clear button
77
+ this.setFocus();
78
+ }
79
+ this.value = '';
80
+ this.emitInputChange(ev);
81
+ };
82
+ this.hasFocus = false;
83
+ this.color = undefined;
84
+ this.accept = undefined;
85
+ this.autocapitalize = 'off';
86
+ this.autocomplete = 'off';
87
+ this.autocorrect = 'off';
88
+ this.autofocus = false;
89
+ this.clearInput = false;
90
+ this.clearOnEdit = undefined;
91
+ this.counter = false;
92
+ this.counterFormatter = undefined;
93
+ this.debounce = undefined;
94
+ this.disabled = false;
95
+ this.enterkeyhint = undefined;
96
+ this.errorText = undefined;
97
+ this.fill = undefined;
98
+ this.inputmode = undefined;
99
+ this.helperText = undefined;
100
+ this.label = undefined;
101
+ this.labelPlacement = 'start';
102
+ this.legacy = undefined;
103
+ this.max = undefined;
104
+ this.maxlength = undefined;
105
+ this.min = undefined;
106
+ this.minlength = undefined;
107
+ this.multiple = undefined;
108
+ this.name = this.inputId;
109
+ this.pattern = undefined;
110
+ this.placeholder = undefined;
111
+ this.readonly = false;
112
+ this.required = false;
113
+ this.shape = undefined;
114
+ this.spellcheck = false;
115
+ this.step = undefined;
116
+ this.size = undefined;
117
+ this.type = 'text';
118
+ this.value = '';
119
+ }
120
+ debounceChanged() {
121
+ const { ionInput, debounce, originalIonInput } = this;
122
+ /**
123
+ * If debounce is undefined, we have to manually revert the ionInput emitter in case
124
+ * debounce used to be set to a number. Otherwise, the event would stay debounced.
125
+ */
126
+ this.ionInput = debounce === undefined ? originalIonInput !== null && originalIonInput !== void 0 ? originalIonInput : ionInput : debounceEvent(ionInput, debounce);
127
+ }
128
+ disabledChanged() {
129
+ this.emitStyle();
130
+ }
25
131
  /**
26
- * `true` if the input was cleared as a result of the user typing
27
- * with `clearOnEdit` enabled.
132
+ * Update the item classes when the placeholder changes
133
+ */
134
+ placeholderChanged() {
135
+ this.emitStyle();
136
+ }
137
+ /**
138
+ * Update the native input element when the value changes
139
+ */
140
+ valueChanged() {
141
+ const nativeInput = this.nativeInput;
142
+ const value = this.getValue();
143
+ if (nativeInput && nativeInput.value !== value && !this.isComposing) {
144
+ /**
145
+ * Assigning the native input's value on attribute
146
+ * value change, allows `ionInput` implementations
147
+ * to override the control's value.
148
+ *
149
+ * Used for patterns such as input trimming (removing whitespace),
150
+ * or input masking.
151
+ */
152
+ nativeInput.value = value;
153
+ }
154
+ this.emitStyle();
155
+ }
156
+ componentWillLoad() {
157
+ this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, ['tabindex', 'title', 'data-form-type']));
158
+ }
159
+ connectedCallback() {
160
+ const { el } = this;
161
+ this.legacyFormController = createLegacyFormController(el);
162
+ this.slotMutationController = createSlotMutationController(el, ['label', 'start', 'end'], () => forceUpdate(this));
163
+ this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
164
+ this.emitStyle();
165
+ this.debounceChanged();
166
+ if (Build.isBrowser) {
167
+ document.dispatchEvent(new CustomEvent('ionInputDidLoad', {
168
+ detail: this.el,
169
+ }));
170
+ }
171
+ }
172
+ componentDidLoad() {
173
+ this.originalIonInput = this.ionInput;
174
+ }
175
+ componentDidRender() {
176
+ var _a;
177
+ (_a = this.notchController) === null || _a === void 0 ? void 0 : _a.calculateNotchWidth();
178
+ }
179
+ disconnectedCallback() {
180
+ if (Build.isBrowser) {
181
+ document.dispatchEvent(new CustomEvent('ionInputDidUnload', {
182
+ detail: this.el,
183
+ }));
184
+ }
185
+ if (this.slotMutationController) {
186
+ this.slotMutationController.destroy();
187
+ this.slotMutationController = undefined;
188
+ }
189
+ if (this.notchController) {
190
+ this.notchController.destroy();
191
+ this.notchController = undefined;
192
+ }
193
+ }
194
+ /**
195
+ * Sets focus on the native `input` in `ion-input`. Use this method instead of the global
196
+ * `input.focus()`.
28
197
  *
29
- * Resets when the input loses focus.
198
+ * Developers who wish to focus an input when a page enters
199
+ * should call `setFocus()` in the `ionViewDidEnter()` lifecycle method.
200
+ *
201
+ * Developers who wish to focus an input when an overlay is presented
202
+ * should call `setFocus` after `didPresent` has resolved.
203
+ *
204
+ * See [managing focus](/docs/developing/managing-focus) for more information.
205
+ */
206
+ async setFocus() {
207
+ if (this.nativeInput) {
208
+ this.nativeInput.focus();
209
+ }
210
+ }
211
+ /**
212
+ * Returns the native `<input>` element used under the hood.
30
213
  */
31
- this.didInputClearOnEdit = false;
32
- this.onInput = (ev) => {
33
- const input = ev.target;
34
- if (input) {
35
- this.value = input.value || '';
36
- }
37
- this.emitInputChange(ev);
38
- };
39
- this.onChange = (ev) => {
40
- this.emitValueChange(ev);
41
- };
42
- this.onBlur = (ev) => {
43
- this.hasFocus = false;
44
- this.emitStyle();
45
- if (this.focusedValue !== this.value) {
214
+ async getInputElement() {
46
215
  /**
47
- * Emits the `ionChange` event when the input value
48
- * is different than the value when the input was focused.
216
+ * If this gets called in certain early lifecycle hooks (ex: Vue onMounted),
217
+ * nativeInput won't be defined yet with the custom elements build, so wait for it to load in.
49
218
  */
50
- this.emitValueChange(ev);
51
- }
52
- this.didInputClearOnEdit = false;
53
- this.ionBlur.emit(ev);
54
- };
55
- this.onFocus = (ev) => {
56
- this.hasFocus = true;
57
- this.focusedValue = this.value;
58
- this.emitStyle();
59
- this.ionFocus.emit(ev);
60
- };
61
- this.onKeydown = (ev) => {
62
- this.checkClearOnEdit(ev);
63
- };
64
- this.onCompositionStart = () => {
65
- this.isComposing = true;
66
- };
67
- this.onCompositionEnd = () => {
68
- this.isComposing = false;
69
- };
70
- this.clearTextInput = (ev) => {
71
- if (this.clearInput && !this.readonly && !this.disabled && ev) {
72
- ev.preventDefault();
73
- ev.stopPropagation();
74
- // Attempt to focus input again after pressing clear button
75
- this.setFocus();
76
- }
77
- this.value = '';
78
- this.emitInputChange(ev);
79
- };
80
- this.hasFocus = false;
81
- this.color = undefined;
82
- this.accept = undefined;
83
- this.autocapitalize = 'off';
84
- this.autocomplete = 'off';
85
- this.autocorrect = 'off';
86
- this.autofocus = false;
87
- this.clearInput = false;
88
- this.clearOnEdit = undefined;
89
- this.counter = false;
90
- this.counterFormatter = undefined;
91
- this.debounce = undefined;
92
- this.disabled = false;
93
- this.enterkeyhint = undefined;
94
- this.errorText = undefined;
95
- this.fill = undefined;
96
- this.inputmode = undefined;
97
- this.helperText = undefined;
98
- this.label = undefined;
99
- this.labelPlacement = 'start';
100
- this.legacy = undefined;
101
- this.max = undefined;
102
- this.maxlength = undefined;
103
- this.min = undefined;
104
- this.minlength = undefined;
105
- this.multiple = undefined;
106
- this.name = this.inputId;
107
- this.pattern = undefined;
108
- this.placeholder = undefined;
109
- this.readonly = false;
110
- this.required = false;
111
- this.shape = undefined;
112
- this.spellcheck = false;
113
- this.step = undefined;
114
- this.size = undefined;
115
- this.type = 'text';
116
- this.value = '';
117
- }
118
- debounceChanged() {
119
- const { ionInput, debounce, originalIonInput } = this;
219
+ if (!this.nativeInput) {
220
+ await new Promise((resolve) => componentOnReady(this.el, resolve));
221
+ }
222
+ return Promise.resolve(this.nativeInput);
223
+ }
120
224
  /**
121
- * If debounce is undefined, we have to manually revert the ionInput emitter in case
122
- * debounce used to be set to a number. Otherwise, the event would stay debounced.
225
+ * Emits an `ionChange` event.
226
+ *
227
+ * This API should be called for user committed changes.
228
+ * This API should not be used for external value changes.
123
229
  */
124
- this.ionInput = debounce === undefined ? originalIonInput !== null && originalIonInput !== void 0 ? originalIonInput : ionInput : debounceEvent(ionInput, debounce);
125
- }
126
- disabledChanged() {
127
- this.emitStyle();
128
- }
129
- /**
130
- * Update the item classes when the placeholder changes
131
- */
132
- placeholderChanged() {
133
- this.emitStyle();
134
- }
135
- /**
136
- * Update the native input element when the value changes
137
- */
138
- valueChanged() {
139
- const nativeInput = this.nativeInput;
140
- const value = this.getValue();
141
- if (nativeInput && nativeInput.value !== value && !this.isComposing) {
142
- /**
143
- * Assigning the native input's value on attribute
144
- * value change, allows `ionInput` implementations
145
- * to override the control's value.
146
- *
147
- * Used for patterns such as input trimming (removing whitespace),
148
- * or input masking.
149
- */
150
- nativeInput.value = value;
230
+ emitValueChange(event) {
231
+ const { value } = this;
232
+ // Checks for both null and undefined values
233
+ const newValue = value == null ? value : value.toString();
234
+ // Emitting a value change should update the internal state for tracking the focused value
235
+ this.focusedValue = newValue;
236
+ this.ionChange.emit({ value: newValue, event });
151
237
  }
152
- this.emitStyle();
153
- }
154
- componentWillLoad() {
155
- this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, ['tabindex', 'title', 'data-form-type']));
156
- }
157
- connectedCallback() {
158
- const { el } = this;
159
- this.legacyFormController = createLegacyFormController(el);
160
- this.slotMutationController = createSlotMutationController(el, 'label', () => forceUpdate(this));
161
- this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
162
- this.emitStyle();
163
- this.debounceChanged();
164
- if (Build.isBrowser) {
165
- document.dispatchEvent(new CustomEvent('ionInputDidLoad', {
166
- detail: this.el,
167
- }));
238
+ /**
239
+ * Emits an `ionInput` event.
240
+ */
241
+ emitInputChange(event) {
242
+ const { value } = this;
243
+ // Checks for both null and undefined values
244
+ const newValue = value == null ? value : value.toString();
245
+ this.ionInput.emit({ value: newValue, event });
168
246
  }
169
- }
170
- componentDidLoad() {
171
- this.originalIonInput = this.ionInput;
172
- }
173
- componentDidRender() {
174
- var _a;
175
- (_a = this.notchController) === null || _a === void 0 ? void 0 : _a.calculateNotchWidth();
176
- }
177
- disconnectedCallback() {
178
- if (Build.isBrowser) {
179
- document.dispatchEvent(new CustomEvent('ionInputDidUnload', {
180
- detail: this.el,
181
- }));
247
+ shouldClearOnEdit() {
248
+ const { type, clearOnEdit } = this;
249
+ return clearOnEdit === undefined ? type === 'password' : clearOnEdit;
182
250
  }
183
- if (this.slotMutationController) {
184
- this.slotMutationController.destroy();
185
- this.slotMutationController = undefined;
251
+ getValue() {
252
+ return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();
186
253
  }
187
- if (this.notchController) {
188
- this.notchController.destroy();
189
- this.notchController = undefined;
254
+ emitStyle() {
255
+ if (this.legacyFormController.hasLegacyControl()) {
256
+ this.ionStyle.emit({
257
+ interactive: true,
258
+ input: true,
259
+ 'has-placeholder': this.placeholder !== undefined,
260
+ 'has-value': this.hasValue(),
261
+ 'has-focus': this.hasFocus,
262
+ 'interactive-disabled': this.disabled,
263
+ // TODO(FW-2764): remove this
264
+ legacy: !!this.legacy,
265
+ });
266
+ }
190
267
  }
191
- }
192
- /**
193
- * Sets focus on the native `input` in `ion-input`. Use this method instead of the global
194
- * `input.focus()`.
195
- *
196
- * Developers who wish to focus an input when a page enters
197
- * should call `setFocus()` in the `ionViewDidEnter()` lifecycle method.
198
- *
199
- * Developers who wish to focus an input when an overlay is presented
200
- * should call `setFocus` after `didPresent` has resolved.
201
- */
202
- async setFocus() {
203
- if (this.nativeInput) {
204
- this.nativeInput.focus();
268
+ checkClearOnEdit(ev) {
269
+ if (!this.shouldClearOnEdit()) {
270
+ return;
271
+ }
272
+ /**
273
+ * Clear the input if the control has not been previously cleared during focus.
274
+ * Do not clear if the user hitting enter to submit a form.
275
+ */
276
+ if (!this.didInputClearOnEdit && this.hasValue() && ev.key !== 'Enter' && ev.key !== 'Tab') {
277
+ this.value = '';
278
+ this.emitInputChange(ev);
279
+ }
280
+ this.didInputClearOnEdit = true;
281
+ }
282
+ hasValue() {
283
+ return this.getValue().length > 0;
205
284
  }
206
- }
207
- /**
208
- * Returns the native `<input>` element used under the hood.
209
- */
210
- async getInputElement() {
211
285
  /**
212
- * If this gets called in certain early lifecycle hooks (ex: Vue onMounted),
213
- * nativeInput won't be defined yet with the custom elements build, so wait for it to load in.
286
+ * Renders the helper text or error text values
214
287
  */
215
- if (!this.nativeInput) {
216
- await new Promise((resolve) => componentOnReady(this.el, resolve));
217
- }
218
- return Promise.resolve(this.nativeInput);
219
- }
220
- /**
221
- * Emits an `ionChange` event.
222
- *
223
- * This API should be called for user committed changes.
224
- * This API should not be used for external value changes.
225
- */
226
- emitValueChange(event) {
227
- const { value } = this;
228
- // Checks for both null and undefined values
229
- const newValue = value == null ? value : value.toString();
230
- // Emitting a value change should update the internal state for tracking the focused value
231
- this.focusedValue = newValue;
232
- this.ionChange.emit({ value: newValue, event });
233
- }
234
- /**
235
- * Emits an `ionInput` event.
236
- */
237
- emitInputChange(event) {
238
- const { value } = this;
239
- // Checks for both null and undefined values
240
- const newValue = value == null ? value : value.toString();
241
- this.ionInput.emit({ value: newValue, event });
242
- }
243
- shouldClearOnEdit() {
244
- const { type, clearOnEdit } = this;
245
- return clearOnEdit === undefined ? type === 'password' : clearOnEdit;
246
- }
247
- getValue() {
248
- return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();
249
- }
250
- emitStyle() {
251
- if (this.legacyFormController.hasLegacyControl()) {
252
- this.ionStyle.emit({
253
- interactive: true,
254
- input: true,
255
- 'has-placeholder': this.placeholder !== undefined,
256
- 'has-value': this.hasValue(),
257
- 'has-focus': this.hasFocus,
258
- 'interactive-disabled': this.disabled,
259
- });
288
+ renderHintText() {
289
+ const { helperText, errorText } = this;
290
+ return [h("div", { class: "helper-text" }, helperText), h("div", { class: "error-text" }, errorText)];
260
291
  }
261
- }
262
- checkClearOnEdit(ev) {
263
- if (!this.shouldClearOnEdit()) {
264
- return;
292
+ renderCounter() {
293
+ const { counter, maxlength, counterFormatter, value } = this;
294
+ if (counter !== true || maxlength === undefined) {
295
+ return;
296
+ }
297
+ return h("div", { class: "counter" }, getCounterText(value, maxlength, counterFormatter));
265
298
  }
266
299
  /**
267
- * Clear the input if the control has not been previously cleared during focus.
268
- * Do not clear if the user hitting enter to submit a form.
300
+ * Responsible for rendering helper text,
301
+ * error text, and counter. This element should only
302
+ * be rendered if hint text is set or counter is enabled.
269
303
  */
270
- if (!this.didInputClearOnEdit && this.hasValue() && ev.key !== 'Enter' && ev.key !== 'Tab') {
271
- this.value = '';
272
- this.emitInputChange(ev);
304
+ renderBottomContent() {
305
+ const { counter, helperText, errorText, maxlength } = this;
306
+ /**
307
+ * undefined and empty string values should
308
+ * be treated as not having helper/error text.
309
+ */
310
+ const hasHintText = !!helperText || !!errorText;
311
+ const hasCounter = counter === true && maxlength !== undefined;
312
+ if (!hasHintText && !hasCounter) {
313
+ return;
314
+ }
315
+ return (h("div", { class: "input-bottom" }, this.renderHintText(), this.renderCounter()));
273
316
  }
274
- this.didInputClearOnEdit = true;
275
- }
276
- hasValue() {
277
- return this.getValue().length > 0;
278
- }
279
- /**
280
- * Renders the helper text or error text values
281
- */
282
- renderHintText() {
283
- const { helperText, errorText } = this;
284
- return [h("div", { class: "helper-text" }, helperText), h("div", { class: "error-text" }, errorText)];
285
- }
286
- renderCounter() {
287
- const { counter, maxlength, counterFormatter, value } = this;
288
- if (counter !== true || maxlength === undefined) {
289
- return;
317
+ renderLabel() {
318
+ const { label } = this;
319
+ return (h("div", { class: {
320
+ 'label-text-wrapper': true,
321
+ 'label-text-wrapper-hidden': !this.hasLabel,
322
+ } }, label === undefined ? h("slot", { name: "label" }) : h("div", { class: "label-text" }, label)));
290
323
  }
291
- return h("div", { class: "counter" }, getCounterText(value, maxlength, counterFormatter));
292
- }
293
- /**
294
- * Responsible for rendering helper text,
295
- * error text, and counter. This element should only
296
- * be rendered if hint text is set or counter is enabled.
297
- */
298
- renderBottomContent() {
299
- const { counter, helperText, errorText, maxlength } = this;
300
324
  /**
301
- * undefined and empty string values should
302
- * be treated as not having helper/error text.
325
+ * Gets any content passed into the `label` slot,
326
+ * not the <slot> definition.
303
327
  */
304
- const hasHintText = !!helperText || !!errorText;
305
- const hasCounter = counter === true && maxlength !== undefined;
306
- if (!hasHintText && !hasCounter) {
307
- return;
328
+ get labelSlot() {
329
+ return this.el.querySelector('[slot="label"]');
308
330
  }
309
- return (h("div", { class: "input-bottom" }, this.renderHintText(), this.renderCounter()));
310
- }
311
- renderLabel() {
312
- const { label } = this;
313
- return (h("div", { class: {
314
- 'label-text-wrapper': true,
315
- 'label-text-wrapper-hidden': !this.hasLabel,
316
- } }, label === undefined ? h("slot", { name: "label" }) : h("div", { class: "label-text" }, label)));
317
- }
318
- /**
319
- * Gets any content passed into the `label` slot,
320
- * not the <slot> definition.
321
- */
322
- get labelSlot() {
323
- return this.el.querySelector('[slot="label"]');
324
- }
325
- /**
326
- * Returns `true` if label content is provided
327
- * either by a prop or a content. If you want
328
- * to get the plaintext value of the label use
329
- * the `labelText` getter instead.
330
- */
331
- get hasLabel() {
332
- return this.label !== undefined || this.labelSlot !== null;
333
- }
334
- /**
335
- * Renders the border container
336
- * when fill="outline".
337
- */
338
- renderLabelContainer() {
339
- const mode = getIonMode(this);
340
- const hasOutlineFill = mode === 'md' && this.fill === 'outline';
341
- if (hasOutlineFill) {
342
- /**
343
- * The outline fill has a special outline
344
- * that appears around the input and the label.
345
- * Certain stacked and floating label placements cause the
346
- * label to translate up and create a "cut out"
347
- * inside of that border by using the notch-spacer element.
348
- */
349
- return [
350
- h("div", { class: "input-outline-container" }, h("div", { class: "input-outline-start" }), h("div", { class: {
351
- 'input-outline-notch': true,
352
- 'input-outline-notch-hidden': !this.hasLabel,
353
- } }, h("div", { class: "notch-spacer", "aria-hidden": "true", ref: (el) => (this.notchSpacerEl = el) }, this.label)), h("div", { class: "input-outline-end" })),
354
- this.renderLabel(),
355
- ];
331
+ /**
332
+ * Returns `true` if label content is provided
333
+ * either by a prop or a content. If you want
334
+ * to get the plaintext value of the label use
335
+ * the `labelText` getter instead.
336
+ */
337
+ get hasLabel() {
338
+ return this.label !== undefined || this.labelSlot !== null;
356
339
  }
357
340
  /**
358
- * If not using the outline style,
359
- * we can render just the label.
341
+ * Renders the border container
342
+ * when fill="outline".
360
343
  */
361
- return this.renderLabel();
362
- }
363
- renderInput() {
364
- const { disabled, fill, readonly, shape, inputId, labelPlacement } = this;
365
- const mode = getIonMode(this);
366
- const value = this.getValue();
367
- const inItem = hostContext('ion-item', this.el);
368
- const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
369
- return (h(Host, { class: createColorClasses(this.color, {
370
- [mode]: true,
371
- 'has-value': this.hasValue(),
372
- 'has-focus': this.hasFocus,
373
- [`input-fill-${fill}`]: fill !== undefined,
374
- [`input-shape-${shape}`]: shape !== undefined,
375
- [`input-label-placement-${labelPlacement}`]: true,
376
- 'in-item': inItem,
377
- 'in-item-color': hostContext('ion-item.ion-color', this.el),
378
- 'input-disabled': disabled,
379
- }) }, h("label", { class: "input-wrapper" }, this.renderLabelContainer(), h("div", { class: "native-wrapper" }, h("input", Object.assign({ class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (h("button", { "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
344
+ renderLabelContainer() {
345
+ const mode = getIonMode(this);
346
+ const hasOutlineFill = mode === 'md' && this.fill === 'outline';
347
+ if (hasOutlineFill) {
348
+ /**
349
+ * The outline fill has a special outline
350
+ * that appears around the input and the label.
351
+ * Certain stacked and floating label placements cause the
352
+ * label to translate up and create a "cut out"
353
+ * inside of that border by using the notch-spacer element.
354
+ */
355
+ return [
356
+ h("div", { class: "input-outline-container" }, h("div", { class: "input-outline-start" }), h("div", { class: {
357
+ 'input-outline-notch': true,
358
+ 'input-outline-notch-hidden': !this.hasLabel,
359
+ } }, h("div", { class: "notch-spacer", "aria-hidden": "true", ref: (el) => (this.notchSpacerEl = el) }, this.label)), h("div", { class: "input-outline-end" })),
360
+ this.renderLabel(),
361
+ ];
362
+ }
380
363
  /**
381
- * This prevents mobile browsers from
382
- * blurring the input when the clear
383
- * button is activated.
364
+ * If not using the outline style,
365
+ * we can render just the label.
384
366
  */
385
- ev.preventDefault();
386
- }, onClick: this.clearTextInput }, h("ion-icon", { "aria-hidden": "true", icon: mode === 'ios' ? closeCircle : closeSharp })))), shouldRenderHighlight && h("div", { class: "input-highlight" })), this.renderBottomContent()));
387
- }
388
- // TODO FW-2764 Remove this
389
- renderLegacyInput() {
390
- if (!this.hasLoggedDeprecationWarning) {
391
- printIonWarning(`ion-input now requires providing a label with either the "label" property or the "aria-label" attribute. To migrate, remove any usage of "ion-label" and pass the label text to either the "label" property or the "aria-label" attribute.
367
+ return this.renderLabel();
368
+ }
369
+ renderInput() {
370
+ const { disabled, fill, readonly, shape, inputId, labelPlacement, el, hasFocus } = this;
371
+ const mode = getIonMode(this);
372
+ const value = this.getValue();
373
+ const inItem = hostContext('ion-item', this.el);
374
+ const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
375
+ const hasValue = this.hasValue();
376
+ const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
377
+ /**
378
+ * If the label is stacked, it should always sit above the input.
379
+ * For floating labels, the label should move above the input if
380
+ * the input has a value, is focused, or has anything in either
381
+ * the start or end slot.
382
+ *
383
+ * If there is content in the start slot, the label would overlap
384
+ * it if not forced to float. This is also applied to the end slot
385
+ * because with the default or solid fills, the input is not
386
+ * vertically centered in the container, but the label is. This
387
+ * causes the slots and label to appear vertically offset from each
388
+ * other when the label isn't floating above the input. This doesn't
389
+ * apply to the outline fill, but this was not accounted for to keep
390
+ * things consistent.
391
+ *
392
+ * TODO(FW-5592): Remove hasStartEndSlots condition
393
+ */
394
+ const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
395
+ return (h(Host, { class: createColorClasses(this.color, {
396
+ [mode]: true,
397
+ 'has-value': hasValue,
398
+ 'has-focus': hasFocus,
399
+ 'label-floating': labelShouldFloat,
400
+ [`input-fill-${fill}`]: fill !== undefined,
401
+ [`input-shape-${shape}`]: shape !== undefined,
402
+ [`input-label-placement-${labelPlacement}`]: true,
403
+ 'in-item': inItem,
404
+ 'in-item-color': hostContext('ion-item.ion-color', this.el),
405
+ 'input-disabled': disabled,
406
+ }) }, h("label", { class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), h("div", { class: "native-wrapper" }, h("slot", { name: "start" }), h("input", Object.assign({ class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (h("button", { "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
407
+ /**
408
+ * This prevents mobile browsers from
409
+ * blurring the input when the clear
410
+ * button is activated.
411
+ */
412
+ ev.preventDefault();
413
+ }, onClick: this.clearTextInput }, h("ion-icon", { "aria-hidden": "true", icon: mode === 'ios' ? closeCircle : closeSharp }))), h("slot", { name: "end" })), shouldRenderHighlight && h("div", { class: "input-highlight" })), this.renderBottomContent()));
414
+ }
415
+ // TODO FW-2764 Remove this
416
+ renderLegacyInput() {
417
+ if (!this.hasLoggedDeprecationWarning) {
418
+ printIonWarning(`ion-input now requires providing a label with either the "label" property or the "aria-label" attribute. To migrate, remove any usage of "ion-label" and pass the label text to either the "label" property or the "aria-label" attribute.
392
419
 
393
420
  Example: <ion-input label="Email"></ion-input>
394
421
  Example with aria-label: <ion-input aria-label="Email"></ion-input>
@@ -396,873 +423,873 @@ Example with aria-label: <ion-input aria-label="Email"></ion-input>
396
423
  For inputs that do not render the label immediately next to the input, developers may continue to use "ion-label" but must manually associate the label with the input by using "aria-labelledby".
397
424
 
398
425
  Developers can use the "legacy" property to continue using the legacy form markup. This property will be removed in an upcoming major release of Ionic where this form control will use the modern form markup.`, this.el);
399
- if (this.legacy) {
400
- printIonWarning(`ion-input is being used with the "legacy" property enabled which will forcibly enable the legacy form markup. This property will be removed in an upcoming major release of Ionic where this form control will use the modern form markup.
426
+ if (this.legacy) {
427
+ printIonWarning(`ion-input is being used with the "legacy" property enabled which will forcibly enable the legacy form markup. This property will be removed in an upcoming major release of Ionic where this form control will use the modern form markup.
401
428
 
402
429
  Developers can dismiss this warning by removing their usage of the "legacy" property and using the new input syntax.`, this.el);
403
- }
404
- this.hasLoggedDeprecationWarning = true;
405
- }
406
- const mode = getIonMode(this);
407
- const value = this.getValue();
408
- const labelId = this.inputId + '-lbl';
409
- const label = findItemLabel(this.el);
410
- if (label) {
411
- label.id = labelId;
412
- }
413
- return (h(Host, { "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
414
- [mode]: true,
415
- 'has-value': this.hasValue(),
416
- 'has-focus': this.hasFocus,
417
- 'legacy-input': true,
418
- 'in-item-color': hostContext('ion-item.ion-color', this.el),
419
- }) }, h("input", Object.assign({ class: "native-input", ref: (input) => (this.nativeInput = input), "aria-labelledby": label ? label.id : null, disabled: this.disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown }, this.inheritedAttributes)), this.clearInput && !this.readonly && !this.disabled && (h("button", { "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
420
- /**
421
- * This prevents mobile browsers from
422
- * blurring the input when the clear
423
- * button is activated.
424
- */
425
- ev.preventDefault();
426
- }, onClick: this.clearTextInput }, h("ion-icon", { "aria-hidden": "true", icon: mode === 'ios' ? closeCircle : closeSharp })))));
427
- }
428
- render() {
429
- const { legacyFormController } = this;
430
- return legacyFormController.hasLegacyControl() ? this.renderLegacyInput() : this.renderInput();
431
- }
432
- static get is() { return "ion-input"; }
433
- static get encapsulation() { return "scoped"; }
434
- static get originalStyleUrls() {
435
- return {
436
- "ios": ["input.ios.scss"],
437
- "md": ["input.md.scss"]
438
- };
439
- }
440
- static get styleUrls() {
441
- return {
442
- "ios": ["input.ios.css"],
443
- "md": ["input.md.css"]
444
- };
445
- }
446
- static get properties() {
447
- return {
448
- "color": {
449
- "type": "string",
450
- "mutable": false,
451
- "complexType": {
452
- "original": "Color",
453
- "resolved": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined",
454
- "references": {
455
- "Color": {
456
- "location": "import",
457
- "path": "../../interface",
458
- "id": "src/interface.d.ts::Color"
459
- }
460
- }
461
- },
462
- "required": false,
463
- "optional": true,
464
- "docs": {
465
- "tags": [],
466
- "text": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics)."
467
- },
468
- "attribute": "color",
469
- "reflect": true
470
- },
471
- "accept": {
472
- "type": "string",
473
- "mutable": false,
474
- "complexType": {
475
- "original": "string",
476
- "resolved": "string | undefined",
477
- "references": {}
478
- },
479
- "required": false,
480
- "optional": true,
481
- "docs": {
482
- "tags": [{
483
- "name": "deprecated",
484
- "text": undefined
485
- }],
486
- "text": "This attribute is ignored."
487
- },
488
- "attribute": "accept",
489
- "reflect": false
490
- },
491
- "autocapitalize": {
492
- "type": "string",
493
- "mutable": false,
494
- "complexType": {
495
- "original": "string",
496
- "resolved": "string",
497
- "references": {}
498
- },
499
- "required": false,
500
- "optional": false,
501
- "docs": {
502
- "tags": [],
503
- "text": "Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\nAvailable options: `\"off\"`, `\"none\"`, `\"on\"`, `\"sentences\"`, `\"words\"`, `\"characters\"`."
504
- },
505
- "attribute": "autocapitalize",
506
- "reflect": false,
507
- "defaultValue": "'off'"
508
- },
509
- "autocomplete": {
510
- "type": "string",
511
- "mutable": false,
512
- "complexType": {
513
- "original": "AutocompleteTypes",
514
- "resolved": "\"name\" | \"email\" | \"tel\" | \"url\" | \"on\" | \"off\" | \"honorific-prefix\" | \"given-name\" | \"additional-name\" | \"family-name\" | \"honorific-suffix\" | \"nickname\" | \"username\" | \"new-password\" | \"current-password\" | \"one-time-code\" | \"organization-title\" | \"organization\" | \"street-address\" | \"address-line1\" | \"address-line2\" | \"address-line3\" | \"address-level4\" | \"address-level3\" | \"address-level2\" | \"address-level1\" | \"country\" | \"country-name\" | \"postal-code\" | \"cc-name\" | \"cc-given-name\" | \"cc-additional-name\" | \"cc-family-name\" | \"cc-number\" | \"cc-exp\" | \"cc-exp-month\" | \"cc-exp-year\" | \"cc-csc\" | \"cc-type\" | \"transaction-currency\" | \"transaction-amount\" | \"language\" | \"bday\" | \"bday-day\" | \"bday-month\" | \"bday-year\" | \"sex\" | \"tel-country-code\" | \"tel-national\" | \"tel-area-code\" | \"tel-local\" | \"tel-extension\" | \"impp\" | \"photo\"",
515
- "references": {
516
- "AutocompleteTypes": {
517
- "location": "import",
518
- "path": "../../interface",
519
- "id": "src/interface.d.ts::AutocompleteTypes"
520
- }
521
- }
522
- },
523
- "required": false,
524
- "optional": false,
525
- "docs": {
526
- "tags": [],
527
- "text": "Indicates whether the value of the control can be automatically completed by the browser."
528
- },
529
- "attribute": "autocomplete",
530
- "reflect": false,
531
- "defaultValue": "'off'"
532
- },
533
- "autocorrect": {
534
- "type": "string",
535
- "mutable": false,
536
- "complexType": {
537
- "original": "'on' | 'off'",
538
- "resolved": "\"off\" | \"on\"",
539
- "references": {}
540
- },
541
- "required": false,
542
- "optional": false,
543
- "docs": {
544
- "tags": [],
545
- "text": "Whether auto correction should be enabled when the user is entering/editing the text value."
546
- },
547
- "attribute": "autocorrect",
548
- "reflect": false,
549
- "defaultValue": "'off'"
550
- },
551
- "autofocus": {
552
- "type": "boolean",
553
- "mutable": false,
554
- "complexType": {
555
- "original": "boolean",
556
- "resolved": "boolean",
557
- "references": {}
558
- },
559
- "required": false,
560
- "optional": false,
561
- "docs": {
562
- "tags": [],
563
- "text": "This Boolean attribute lets you specify that a form control should have input focus when the page loads."
564
- },
565
- "attribute": "autofocus",
566
- "reflect": false,
567
- "defaultValue": "false"
568
- },
569
- "clearInput": {
570
- "type": "boolean",
571
- "mutable": false,
572
- "complexType": {
573
- "original": "boolean",
574
- "resolved": "boolean",
575
- "references": {}
576
- },
577
- "required": false,
578
- "optional": false,
579
- "docs": {
580
- "tags": [],
581
- "text": "If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input."
582
- },
583
- "attribute": "clear-input",
584
- "reflect": false,
585
- "defaultValue": "false"
586
- },
587
- "clearOnEdit": {
588
- "type": "boolean",
589
- "mutable": false,
590
- "complexType": {
591
- "original": "boolean",
592
- "resolved": "boolean | undefined",
593
- "references": {}
594
- },
595
- "required": false,
596
- "optional": true,
597
- "docs": {
598
- "tags": [],
599
- "text": "If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `\"password\"`, `false` for all other types."
600
- },
601
- "attribute": "clear-on-edit",
602
- "reflect": false
603
- },
604
- "counter": {
605
- "type": "boolean",
606
- "mutable": false,
607
- "complexType": {
608
- "original": "boolean",
609
- "resolved": "boolean",
610
- "references": {}
611
- },
612
- "required": false,
613
- "optional": false,
614
- "docs": {
615
- "tags": [],
616
- "text": "If `true`, a character counter will display the ratio of characters used and the total character limit. Developers must also set the `maxlength` property for the counter to be calculated correctly."
617
- },
618
- "attribute": "counter",
619
- "reflect": false,
620
- "defaultValue": "false"
621
- },
622
- "counterFormatter": {
623
- "type": "unknown",
624
- "mutable": false,
625
- "complexType": {
626
- "original": "(inputLength: number, maxLength: number) => string",
627
- "resolved": "((inputLength: number, maxLength: number) => string) | undefined",
628
- "references": {}
629
- },
630
- "required": false,
631
- "optional": true,
632
- "docs": {
633
- "tags": [],
634
- "text": "A callback used to format the counter text.\nBy default the counter text is set to \"itemLength / maxLength\"."
635
- }
636
- },
637
- "debounce": {
638
- "type": "number",
639
- "mutable": false,
640
- "complexType": {
641
- "original": "number",
642
- "resolved": "number | undefined",
643
- "references": {}
644
- },
645
- "required": false,
646
- "optional": true,
647
- "docs": {
648
- "tags": [],
649
- "text": "Set the amount of time, in milliseconds, to wait to trigger the `ionInput` event after each keystroke."
650
- },
651
- "attribute": "debounce",
652
- "reflect": false
653
- },
654
- "disabled": {
655
- "type": "boolean",
656
- "mutable": false,
657
- "complexType": {
658
- "original": "boolean",
659
- "resolved": "boolean",
660
- "references": {}
661
- },
662
- "required": false,
663
- "optional": false,
664
- "docs": {
665
- "tags": [],
666
- "text": "If `true`, the user cannot interact with the input."
667
- },
668
- "attribute": "disabled",
669
- "reflect": false,
670
- "defaultValue": "false"
671
- },
672
- "enterkeyhint": {
673
- "type": "string",
674
- "mutable": false,
675
- "complexType": {
676
- "original": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'",
677
- "resolved": "\"done\" | \"enter\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\" | undefined",
678
- "references": {}
679
- },
680
- "required": false,
681
- "optional": true,
682
- "docs": {
683
- "tags": [],
684
- "text": "A hint to the browser for which enter key to display.\nPossible values: `\"enter\"`, `\"done\"`, `\"go\"`, `\"next\"`,\n`\"previous\"`, `\"search\"`, and `\"send\"`."
685
- },
686
- "attribute": "enterkeyhint",
687
- "reflect": false
688
- },
689
- "errorText": {
690
- "type": "string",
691
- "mutable": false,
692
- "complexType": {
693
- "original": "string",
694
- "resolved": "string | undefined",
695
- "references": {}
696
- },
697
- "required": false,
698
- "optional": true,
699
- "docs": {
700
- "tags": [],
701
- "text": "Text that is placed under the input and displayed when an error is detected."
702
- },
703
- "attribute": "error-text",
704
- "reflect": false
705
- },
706
- "fill": {
707
- "type": "string",
708
- "mutable": false,
709
- "complexType": {
710
- "original": "'outline' | 'solid'",
711
- "resolved": "\"outline\" | \"solid\" | undefined",
712
- "references": {}
713
- },
714
- "required": false,
715
- "optional": true,
716
- "docs": {
717
- "tags": [],
718
- "text": "The fill for the item. If `\"solid\"` the item will have a background. If\n`\"outline\"` the item will be transparent with a border. Only available in `md` mode."
719
- },
720
- "attribute": "fill",
721
- "reflect": false
722
- },
723
- "inputmode": {
724
- "type": "string",
725
- "mutable": false,
726
- "complexType": {
727
- "original": "'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'",
728
- "resolved": "\"decimal\" | \"email\" | \"none\" | \"numeric\" | \"search\" | \"tel\" | \"text\" | \"url\" | undefined",
729
- "references": {}
730
- },
731
- "required": false,
732
- "optional": true,
733
- "docs": {
734
- "tags": [],
735
- "text": "A hint to the browser for which keyboard to display.\nPossible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n`\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`."
736
- },
737
- "attribute": "inputmode",
738
- "reflect": false
739
- },
740
- "helperText": {
741
- "type": "string",
742
- "mutable": false,
743
- "complexType": {
744
- "original": "string",
745
- "resolved": "string | undefined",
746
- "references": {}
747
- },
748
- "required": false,
749
- "optional": true,
750
- "docs": {
751
- "tags": [],
752
- "text": "Text that is placed under the input and displayed when no error is detected."
753
- },
754
- "attribute": "helper-text",
755
- "reflect": false
756
- },
757
- "label": {
758
- "type": "string",
759
- "mutable": false,
760
- "complexType": {
761
- "original": "string",
762
- "resolved": "string | undefined",
763
- "references": {}
764
- },
765
- "required": false,
766
- "optional": true,
767
- "docs": {
768
- "tags": [],
769
- "text": "The visible label associated with the input.\n\nUse this if you need to render a plaintext label.\n\nThe `label` property will take priority over the `label` slot if both are used."
770
- },
771
- "attribute": "label",
772
- "reflect": false
773
- },
774
- "labelPlacement": {
775
- "type": "string",
776
- "mutable": false,
777
- "complexType": {
778
- "original": "'start' | 'end' | 'floating' | 'stacked' | 'fixed'",
779
- "resolved": "\"end\" | \"fixed\" | \"floating\" | \"stacked\" | \"start\"",
780
- "references": {}
781
- },
782
- "required": false,
783
- "optional": false,
784
- "docs": {
785
- "tags": [],
786
- "text": "Where to place the label relative to the input.\n`\"start\"`: The label will appear to the left of the input in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the input in LTR and to the left in RTL.\n`\"floating\"`: The label will appear smaller and above the input when the input is focused or it has a value. Otherwise it will appear on top of the input.\n`\"stacked\"`: The label will appear smaller and above the input regardless even when the input is blurred or has no value.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\")."
787
- },
788
- "attribute": "label-placement",
789
- "reflect": false,
790
- "defaultValue": "'start'"
791
- },
792
- "legacy": {
793
- "type": "boolean",
794
- "mutable": false,
795
- "complexType": {
796
- "original": "boolean",
797
- "resolved": "boolean | undefined",
798
- "references": {}
799
- },
800
- "required": false,
801
- "optional": true,
802
- "docs": {
803
- "tags": [],
804
- "text": "Set the `legacy` property to `true` to forcibly use the legacy form control markup.\nIonic will only opt components in to the modern form markup when they are\nusing either the `aria-label` attribute or the `label` property. As a result,\nthe `legacy` property should only be used as an escape hatch when you want to\navoid this automatic opt-in behavior.\nNote that this property will be removed in an upcoming major release\nof Ionic, and all form components will be opted-in to using the modern form markup."
805
- },
806
- "attribute": "legacy",
807
- "reflect": false
808
- },
809
- "max": {
810
- "type": "any",
811
- "mutable": false,
812
- "complexType": {
813
- "original": "string | number",
814
- "resolved": "number | string | undefined",
815
- "references": {}
816
- },
817
- "required": false,
818
- "optional": true,
819
- "docs": {
820
- "tags": [],
821
- "text": "The maximum value, which must not be less than its minimum (min attribute) value."
822
- },
823
- "attribute": "max",
824
- "reflect": false
825
- },
826
- "maxlength": {
827
- "type": "number",
828
- "mutable": false,
829
- "complexType": {
830
- "original": "number",
831
- "resolved": "number | undefined",
832
- "references": {}
833
- },
834
- "required": false,
835
- "optional": true,
836
- "docs": {
837
- "tags": [],
838
- "text": "If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the maximum number of characters that the user can enter."
839
- },
840
- "attribute": "maxlength",
841
- "reflect": false
842
- },
843
- "min": {
844
- "type": "any",
845
- "mutable": false,
846
- "complexType": {
847
- "original": "string | number",
848
- "resolved": "number | string | undefined",
849
- "references": {}
850
- },
851
- "required": false,
852
- "optional": true,
853
- "docs": {
854
- "tags": [],
855
- "text": "The minimum value, which must not be greater than its maximum (max attribute) value."
856
- },
857
- "attribute": "min",
858
- "reflect": false
859
- },
860
- "minlength": {
861
- "type": "number",
862
- "mutable": false,
863
- "complexType": {
864
- "original": "number",
865
- "resolved": "number | undefined",
866
- "references": {}
867
- },
868
- "required": false,
869
- "optional": true,
870
- "docs": {
871
- "tags": [],
872
- "text": "If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the minimum number of characters that the user can enter."
873
- },
874
- "attribute": "minlength",
875
- "reflect": false
876
- },
877
- "multiple": {
878
- "type": "boolean",
879
- "mutable": false,
880
- "complexType": {
881
- "original": "boolean",
882
- "resolved": "boolean | undefined",
883
- "references": {}
884
- },
885
- "required": false,
886
- "optional": true,
887
- "docs": {
888
- "tags": [],
889
- "text": "If `true`, the user can enter more than one value. This attribute applies when the type attribute is set to `\"email\"`, otherwise it is ignored."
890
- },
891
- "attribute": "multiple",
892
- "reflect": false
893
- },
894
- "name": {
895
- "type": "string",
896
- "mutable": false,
897
- "complexType": {
898
- "original": "string",
899
- "resolved": "string",
900
- "references": {}
901
- },
902
- "required": false,
903
- "optional": false,
904
- "docs": {
905
- "tags": [],
906
- "text": "The name of the control, which is submitted with the form data."
907
- },
908
- "attribute": "name",
909
- "reflect": false,
910
- "defaultValue": "this.inputId"
911
- },
912
- "pattern": {
913
- "type": "string",
914
- "mutable": false,
915
- "complexType": {
916
- "original": "string",
917
- "resolved": "string | undefined",
918
- "references": {}
919
- },
920
- "required": false,
921
- "optional": true,
922
- "docs": {
923
- "tags": [],
924
- "text": "A regular expression that the value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, `\"date\"`, or `\"password\"`, otherwise it is ignored. When the type attribute is `\"date\"`, `pattern` will only be used in browsers that do not support the `\"date\"` input type natively. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date for more information."
925
- },
926
- "attribute": "pattern",
927
- "reflect": false
928
- },
929
- "placeholder": {
930
- "type": "string",
931
- "mutable": false,
932
- "complexType": {
933
- "original": "string",
934
- "resolved": "string | undefined",
935
- "references": {}
936
- },
937
- "required": false,
938
- "optional": true,
939
- "docs": {
940
- "tags": [],
941
- "text": "Instructional text that shows before the input has a value.\nThis property applies only when the `type` property is set to `\"email\"`,\n`\"number\"`, `\"password\"`, `\"search\"`, `\"tel\"`, `\"text\"`, or `\"url\"`, otherwise it is ignored."
942
- },
943
- "attribute": "placeholder",
944
- "reflect": false
945
- },
946
- "readonly": {
947
- "type": "boolean",
948
- "mutable": false,
949
- "complexType": {
950
- "original": "boolean",
951
- "resolved": "boolean",
952
- "references": {}
953
- },
954
- "required": false,
955
- "optional": false,
956
- "docs": {
957
- "tags": [],
958
- "text": "If `true`, the user cannot modify the value."
959
- },
960
- "attribute": "readonly",
961
- "reflect": false,
962
- "defaultValue": "false"
963
- },
964
- "required": {
965
- "type": "boolean",
966
- "mutable": false,
967
- "complexType": {
968
- "original": "boolean",
969
- "resolved": "boolean",
970
- "references": {}
971
- },
972
- "required": false,
973
- "optional": false,
974
- "docs": {
975
- "tags": [],
976
- "text": "If `true`, the user must fill in a value before submitting a form."
977
- },
978
- "attribute": "required",
979
- "reflect": false,
980
- "defaultValue": "false"
981
- },
982
- "shape": {
983
- "type": "string",
984
- "mutable": false,
985
- "complexType": {
986
- "original": "'round'",
987
- "resolved": "\"round\" | undefined",
988
- "references": {}
989
- },
990
- "required": false,
991
- "optional": true,
992
- "docs": {
993
- "tags": [],
994
- "text": "The shape of the input. If \"round\" it will have an increased border radius."
995
- },
996
- "attribute": "shape",
997
- "reflect": false
998
- },
999
- "spellcheck": {
1000
- "type": "boolean",
1001
- "mutable": false,
1002
- "complexType": {
1003
- "original": "boolean",
1004
- "resolved": "boolean",
1005
- "references": {}
1006
- },
1007
- "required": false,
1008
- "optional": false,
1009
- "docs": {
1010
- "tags": [],
1011
- "text": "If `true`, the element will have its spelling and grammar checked."
1012
- },
1013
- "attribute": "spellcheck",
1014
- "reflect": false,
1015
- "defaultValue": "false"
1016
- },
1017
- "step": {
1018
- "type": "string",
1019
- "mutable": false,
1020
- "complexType": {
1021
- "original": "string",
1022
- "resolved": "string | undefined",
1023
- "references": {}
1024
- },
1025
- "required": false,
1026
- "optional": true,
1027
- "docs": {
1028
- "tags": [],
1029
- "text": "Works with the min and max attributes to limit the increments at which a value can be set.\nPossible values are: `\"any\"` or a positive floating point number."
1030
- },
1031
- "attribute": "step",
1032
- "reflect": false
1033
- },
1034
- "size": {
1035
- "type": "number",
1036
- "mutable": false,
1037
- "complexType": {
1038
- "original": "number",
1039
- "resolved": "number | undefined",
1040
- "references": {}
1041
- },
1042
- "required": false,
1043
- "optional": true,
1044
- "docs": {
1045
- "tags": [],
1046
- "text": ""
1047
- },
1048
- "attribute": "size",
1049
- "reflect": false
1050
- },
1051
- "type": {
1052
- "type": "string",
1053
- "mutable": false,
1054
- "complexType": {
1055
- "original": "TextFieldTypes",
1056
- "resolved": "\"date\" | \"datetime-local\" | \"email\" | \"month\" | \"number\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"time\" | \"url\" | \"week\"",
1057
- "references": {
1058
- "TextFieldTypes": {
1059
- "location": "import",
1060
- "path": "../../interface",
1061
- "id": "src/interface.d.ts::TextFieldTypes"
1062
430
  }
1063
- }
1064
- },
1065
- "required": false,
1066
- "optional": false,
1067
- "docs": {
1068
- "tags": [],
1069
- "text": "The type of control to display. The default type is text."
1070
- },
1071
- "attribute": "type",
1072
- "reflect": false,
1073
- "defaultValue": "'text'"
1074
- },
1075
- "value": {
1076
- "type": "any",
1077
- "mutable": true,
1078
- "complexType": {
1079
- "original": "string | number | null",
1080
- "resolved": "null | number | string | undefined",
1081
- "references": {}
1082
- },
1083
- "required": false,
1084
- "optional": true,
1085
- "docs": {
1086
- "tags": [],
1087
- "text": "The value of the input."
1088
- },
1089
- "attribute": "value",
1090
- "reflect": false,
1091
- "defaultValue": "''"
1092
- }
1093
- };
1094
- }
1095
- static get states() {
1096
- return {
1097
- "hasFocus": {}
1098
- };
1099
- }
1100
- static get events() {
1101
- return [{
1102
- "method": "ionInput",
1103
- "name": "ionInput",
1104
- "bubbles": true,
1105
- "cancelable": true,
1106
- "composed": true,
1107
- "docs": {
1108
- "tags": [],
1109
- "text": "The `ionInput` event is fired each time the user modifies the input's value.\nUnlike the `ionChange` event, the `ionInput` event is fired for each alteration\nto the input's value. This typically happens for each keystroke as the user types.\n\nFor elements that accept text input (`type=text`, `type=tel`, etc.), the interface\nis [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\nthe interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\nthe input is cleared on edit, the type is `null`."
1110
- },
1111
- "complexType": {
1112
- "original": "InputInputEventDetail",
1113
- "resolved": "InputInputEventDetail",
1114
- "references": {
1115
- "InputInputEventDetail": {
1116
- "location": "import",
1117
- "path": "./input-interface",
1118
- "id": "src/components/input/input-interface.ts::InputInputEventDetail"
1119
- }
1120
- }
1121
- }
1122
- }, {
1123
- "method": "ionChange",
1124
- "name": "ionChange",
1125
- "bubbles": true,
1126
- "cancelable": true,
1127
- "composed": true,
1128
- "docs": {
1129
- "tags": [],
1130
- "text": "The `ionChange` event is fired when the user modifies the input's value.\nUnlike the `ionInput` event, the `ionChange` event is only fired when changes\nare committed, not as the user types.\n\nDepending on the way the users interacts with the element, the `ionChange`\nevent fires at a different moment:\n- When the user commits the change explicitly (e.g. by selecting a date\nfrom a date picker for `<ion-input type=\"date\">`, pressing the \"Enter\" key, etc.).\n- When the element loses focus after its value has changed: for elements\nwhere the user's interaction is typing."
1131
- },
1132
- "complexType": {
1133
- "original": "InputChangeEventDetail",
1134
- "resolved": "InputChangeEventDetail",
1135
- "references": {
1136
- "InputChangeEventDetail": {
1137
- "location": "import",
1138
- "path": "./input-interface",
1139
- "id": "src/components/input/input-interface.ts::InputChangeEventDetail"
1140
- }
1141
- }
431
+ this.hasLoggedDeprecationWarning = true;
1142
432
  }
1143
- }, {
1144
- "method": "ionBlur",
1145
- "name": "ionBlur",
1146
- "bubbles": true,
1147
- "cancelable": true,
1148
- "composed": true,
1149
- "docs": {
1150
- "tags": [],
1151
- "text": "Emitted when the input loses focus."
1152
- },
1153
- "complexType": {
1154
- "original": "FocusEvent",
1155
- "resolved": "FocusEvent",
1156
- "references": {
1157
- "FocusEvent": {
1158
- "location": "global",
1159
- "id": "global::FocusEvent"
1160
- }
1161
- }
433
+ const mode = getIonMode(this);
434
+ const value = this.getValue();
435
+ const labelId = this.inputId + '-lbl';
436
+ const label = findItemLabel(this.el);
437
+ if (label) {
438
+ label.id = labelId;
1162
439
  }
1163
- }, {
1164
- "method": "ionFocus",
1165
- "name": "ionFocus",
1166
- "bubbles": true,
1167
- "cancelable": true,
1168
- "composed": true,
1169
- "docs": {
1170
- "tags": [],
1171
- "text": "Emitted when the input has focus."
1172
- },
1173
- "complexType": {
1174
- "original": "FocusEvent",
1175
- "resolved": "FocusEvent",
1176
- "references": {
1177
- "FocusEvent": {
1178
- "location": "global",
1179
- "id": "global::FocusEvent"
1180
- }
1181
- }
1182
- }
1183
- }, {
1184
- "method": "ionStyle",
1185
- "name": "ionStyle",
1186
- "bubbles": true,
1187
- "cancelable": true,
1188
- "composed": true,
1189
- "docs": {
1190
- "tags": [{
1191
- "name": "internal",
1192
- "text": undefined
1193
- }],
1194
- "text": "Emitted when the styles change."
1195
- },
1196
- "complexType": {
1197
- "original": "StyleEventDetail",
1198
- "resolved": "StyleEventDetail",
1199
- "references": {
1200
- "StyleEventDetail": {
1201
- "location": "import",
1202
- "path": "../../interface",
1203
- "id": "src/interface.d.ts::StyleEventDetail"
1204
- }
1205
- }
1206
- }
1207
- }];
1208
- }
1209
- static get methods() {
1210
- return {
1211
- "setFocus": {
1212
- "complexType": {
1213
- "signature": "() => Promise<void>",
1214
- "parameters": [],
1215
- "references": {
1216
- "Promise": {
1217
- "location": "global",
1218
- "id": "global::Promise"
440
+ return (h(Host, { "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
441
+ [mode]: true,
442
+ 'has-value': this.hasValue(),
443
+ 'has-focus': this.hasFocus,
444
+ 'legacy-input': true,
445
+ 'in-item-color': hostContext('ion-item.ion-color', this.el),
446
+ }) }, h("input", Object.assign({ class: "native-input", ref: (input) => (this.nativeInput = input), "aria-labelledby": label ? label.id : null, disabled: this.disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown }, this.inheritedAttributes)), this.clearInput && !this.readonly && !this.disabled && (h("button", { "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
447
+ /**
448
+ * This prevents mobile browsers from
449
+ * blurring the input when the clear
450
+ * button is activated.
451
+ */
452
+ ev.preventDefault();
453
+ }, onClick: this.clearTextInput }, h("ion-icon", { "aria-hidden": "true", icon: mode === 'ios' ? closeCircle : closeSharp })))));
454
+ }
455
+ render() {
456
+ const { legacyFormController } = this;
457
+ return legacyFormController.hasLegacyControl() ? this.renderLegacyInput() : this.renderInput();
458
+ }
459
+ static get is() { return "ion-input"; }
460
+ static get encapsulation() { return "scoped"; }
461
+ static get originalStyleUrls() {
462
+ return {
463
+ "ios": ["input.ios.scss"],
464
+ "md": ["input.md.scss"]
465
+ };
466
+ }
467
+ static get styleUrls() {
468
+ return {
469
+ "ios": ["input.ios.css"],
470
+ "md": ["input.md.css"]
471
+ };
472
+ }
473
+ static get properties() {
474
+ return {
475
+ "color": {
476
+ "type": "string",
477
+ "mutable": false,
478
+ "complexType": {
479
+ "original": "Color",
480
+ "resolved": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined",
481
+ "references": {
482
+ "Color": {
483
+ "location": "import",
484
+ "path": "../../interface",
485
+ "id": "src/interface.d.ts::Color"
486
+ }
487
+ }
488
+ },
489
+ "required": false,
490
+ "optional": true,
491
+ "docs": {
492
+ "tags": [],
493
+ "text": "The color to use from your application's color palette.\nDefault options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\nFor more information on colors, see [theming](/docs/theming/basics)."
494
+ },
495
+ "attribute": "color",
496
+ "reflect": true
497
+ },
498
+ "accept": {
499
+ "type": "string",
500
+ "mutable": false,
501
+ "complexType": {
502
+ "original": "string",
503
+ "resolved": "string | undefined",
504
+ "references": {}
505
+ },
506
+ "required": false,
507
+ "optional": true,
508
+ "docs": {
509
+ "tags": [{
510
+ "name": "deprecated",
511
+ "text": undefined
512
+ }],
513
+ "text": "This attribute is ignored."
514
+ },
515
+ "attribute": "accept",
516
+ "reflect": false
517
+ },
518
+ "autocapitalize": {
519
+ "type": "string",
520
+ "mutable": false,
521
+ "complexType": {
522
+ "original": "string",
523
+ "resolved": "string",
524
+ "references": {}
525
+ },
526
+ "required": false,
527
+ "optional": false,
528
+ "docs": {
529
+ "tags": [],
530
+ "text": "Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\nAvailable options: `\"off\"`, `\"none\"`, `\"on\"`, `\"sentences\"`, `\"words\"`, `\"characters\"`."
531
+ },
532
+ "attribute": "autocapitalize",
533
+ "reflect": false,
534
+ "defaultValue": "'off'"
535
+ },
536
+ "autocomplete": {
537
+ "type": "string",
538
+ "mutable": false,
539
+ "complexType": {
540
+ "original": "AutocompleteTypes",
541
+ "resolved": "\"name\" | \"email\" | \"tel\" | \"url\" | \"on\" | \"off\" | \"honorific-prefix\" | \"given-name\" | \"additional-name\" | \"family-name\" | \"honorific-suffix\" | \"nickname\" | \"username\" | \"new-password\" | \"current-password\" | \"one-time-code\" | \"organization-title\" | \"organization\" | \"street-address\" | \"address-line1\" | \"address-line2\" | \"address-line3\" | \"address-level4\" | \"address-level3\" | \"address-level2\" | \"address-level1\" | \"country\" | \"country-name\" | \"postal-code\" | \"cc-name\" | \"cc-given-name\" | \"cc-additional-name\" | \"cc-family-name\" | \"cc-number\" | \"cc-exp\" | \"cc-exp-month\" | \"cc-exp-year\" | \"cc-csc\" | \"cc-type\" | \"transaction-currency\" | \"transaction-amount\" | \"language\" | \"bday\" | \"bday-day\" | \"bday-month\" | \"bday-year\" | \"sex\" | \"tel-country-code\" | \"tel-national\" | \"tel-area-code\" | \"tel-local\" | \"tel-extension\" | \"impp\" | \"photo\"",
542
+ "references": {
543
+ "AutocompleteTypes": {
544
+ "location": "import",
545
+ "path": "../../interface",
546
+ "id": "src/interface.d.ts::AutocompleteTypes"
547
+ }
548
+ }
549
+ },
550
+ "required": false,
551
+ "optional": false,
552
+ "docs": {
553
+ "tags": [],
554
+ "text": "Indicates whether the value of the control can be automatically completed by the browser."
555
+ },
556
+ "attribute": "autocomplete",
557
+ "reflect": false,
558
+ "defaultValue": "'off'"
559
+ },
560
+ "autocorrect": {
561
+ "type": "string",
562
+ "mutable": false,
563
+ "complexType": {
564
+ "original": "'on' | 'off'",
565
+ "resolved": "\"off\" | \"on\"",
566
+ "references": {}
567
+ },
568
+ "required": false,
569
+ "optional": false,
570
+ "docs": {
571
+ "tags": [],
572
+ "text": "Whether auto correction should be enabled when the user is entering/editing the text value."
573
+ },
574
+ "attribute": "autocorrect",
575
+ "reflect": false,
576
+ "defaultValue": "'off'"
577
+ },
578
+ "autofocus": {
579
+ "type": "boolean",
580
+ "mutable": false,
581
+ "complexType": {
582
+ "original": "boolean",
583
+ "resolved": "boolean",
584
+ "references": {}
585
+ },
586
+ "required": false,
587
+ "optional": false,
588
+ "docs": {
589
+ "tags": [],
590
+ "text": "Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.\n\nThis may not be sufficient for the element to be focused on page load. See [managing focus](/docs/developing/managing-focus) for more information."
591
+ },
592
+ "attribute": "autofocus",
593
+ "reflect": false,
594
+ "defaultValue": "false"
595
+ },
596
+ "clearInput": {
597
+ "type": "boolean",
598
+ "mutable": false,
599
+ "complexType": {
600
+ "original": "boolean",
601
+ "resolved": "boolean",
602
+ "references": {}
603
+ },
604
+ "required": false,
605
+ "optional": false,
606
+ "docs": {
607
+ "tags": [],
608
+ "text": "If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input."
609
+ },
610
+ "attribute": "clear-input",
611
+ "reflect": false,
612
+ "defaultValue": "false"
613
+ },
614
+ "clearOnEdit": {
615
+ "type": "boolean",
616
+ "mutable": false,
617
+ "complexType": {
618
+ "original": "boolean",
619
+ "resolved": "boolean | undefined",
620
+ "references": {}
621
+ },
622
+ "required": false,
623
+ "optional": true,
624
+ "docs": {
625
+ "tags": [],
626
+ "text": "If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `\"password\"`, `false` for all other types."
627
+ },
628
+ "attribute": "clear-on-edit",
629
+ "reflect": false
630
+ },
631
+ "counter": {
632
+ "type": "boolean",
633
+ "mutable": false,
634
+ "complexType": {
635
+ "original": "boolean",
636
+ "resolved": "boolean",
637
+ "references": {}
638
+ },
639
+ "required": false,
640
+ "optional": false,
641
+ "docs": {
642
+ "tags": [],
643
+ "text": "If `true`, a character counter will display the ratio of characters used and the total character limit. Developers must also set the `maxlength` property for the counter to be calculated correctly."
644
+ },
645
+ "attribute": "counter",
646
+ "reflect": false,
647
+ "defaultValue": "false"
648
+ },
649
+ "counterFormatter": {
650
+ "type": "unknown",
651
+ "mutable": false,
652
+ "complexType": {
653
+ "original": "(inputLength: number, maxLength: number) => string",
654
+ "resolved": "((inputLength: number, maxLength: number) => string) | undefined",
655
+ "references": {}
656
+ },
657
+ "required": false,
658
+ "optional": true,
659
+ "docs": {
660
+ "tags": [],
661
+ "text": "A callback used to format the counter text.\nBy default the counter text is set to \"itemLength / maxLength\"."
662
+ }
663
+ },
664
+ "debounce": {
665
+ "type": "number",
666
+ "mutable": false,
667
+ "complexType": {
668
+ "original": "number",
669
+ "resolved": "number | undefined",
670
+ "references": {}
671
+ },
672
+ "required": false,
673
+ "optional": true,
674
+ "docs": {
675
+ "tags": [],
676
+ "text": "Set the amount of time, in milliseconds, to wait to trigger the `ionInput` event after each keystroke."
677
+ },
678
+ "attribute": "debounce",
679
+ "reflect": false
680
+ },
681
+ "disabled": {
682
+ "type": "boolean",
683
+ "mutable": false,
684
+ "complexType": {
685
+ "original": "boolean",
686
+ "resolved": "boolean",
687
+ "references": {}
688
+ },
689
+ "required": false,
690
+ "optional": false,
691
+ "docs": {
692
+ "tags": [],
693
+ "text": "If `true`, the user cannot interact with the input."
694
+ },
695
+ "attribute": "disabled",
696
+ "reflect": false,
697
+ "defaultValue": "false"
698
+ },
699
+ "enterkeyhint": {
700
+ "type": "string",
701
+ "mutable": false,
702
+ "complexType": {
703
+ "original": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'",
704
+ "resolved": "\"done\" | \"enter\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\" | undefined",
705
+ "references": {}
706
+ },
707
+ "required": false,
708
+ "optional": true,
709
+ "docs": {
710
+ "tags": [],
711
+ "text": "A hint to the browser for which enter key to display.\nPossible values: `\"enter\"`, `\"done\"`, `\"go\"`, `\"next\"`,\n`\"previous\"`, `\"search\"`, and `\"send\"`."
712
+ },
713
+ "attribute": "enterkeyhint",
714
+ "reflect": false
715
+ },
716
+ "errorText": {
717
+ "type": "string",
718
+ "mutable": false,
719
+ "complexType": {
720
+ "original": "string",
721
+ "resolved": "string | undefined",
722
+ "references": {}
723
+ },
724
+ "required": false,
725
+ "optional": true,
726
+ "docs": {
727
+ "tags": [],
728
+ "text": "Text that is placed under the input and displayed when an error is detected."
729
+ },
730
+ "attribute": "error-text",
731
+ "reflect": false
732
+ },
733
+ "fill": {
734
+ "type": "string",
735
+ "mutable": false,
736
+ "complexType": {
737
+ "original": "'outline' | 'solid'",
738
+ "resolved": "\"outline\" | \"solid\" | undefined",
739
+ "references": {}
740
+ },
741
+ "required": false,
742
+ "optional": true,
743
+ "docs": {
744
+ "tags": [],
745
+ "text": "The fill for the item. If `\"solid\"` the item will have a background. If\n`\"outline\"` the item will be transparent with a border. Only available in `md` mode."
746
+ },
747
+ "attribute": "fill",
748
+ "reflect": false
749
+ },
750
+ "inputmode": {
751
+ "type": "string",
752
+ "mutable": false,
753
+ "complexType": {
754
+ "original": "'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'",
755
+ "resolved": "\"decimal\" | \"email\" | \"none\" | \"numeric\" | \"search\" | \"tel\" | \"text\" | \"url\" | undefined",
756
+ "references": {}
757
+ },
758
+ "required": false,
759
+ "optional": true,
760
+ "docs": {
761
+ "tags": [],
762
+ "text": "A hint to the browser for which keyboard to display.\nPossible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n`\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`."
763
+ },
764
+ "attribute": "inputmode",
765
+ "reflect": false
766
+ },
767
+ "helperText": {
768
+ "type": "string",
769
+ "mutable": false,
770
+ "complexType": {
771
+ "original": "string",
772
+ "resolved": "string | undefined",
773
+ "references": {}
774
+ },
775
+ "required": false,
776
+ "optional": true,
777
+ "docs": {
778
+ "tags": [],
779
+ "text": "Text that is placed under the input and displayed when no error is detected."
780
+ },
781
+ "attribute": "helper-text",
782
+ "reflect": false
783
+ },
784
+ "label": {
785
+ "type": "string",
786
+ "mutable": false,
787
+ "complexType": {
788
+ "original": "string",
789
+ "resolved": "string | undefined",
790
+ "references": {}
791
+ },
792
+ "required": false,
793
+ "optional": true,
794
+ "docs": {
795
+ "tags": [],
796
+ "text": "The visible label associated with the input.\n\nUse this if you need to render a plaintext label.\n\nThe `label` property will take priority over the `label` slot if both are used."
797
+ },
798
+ "attribute": "label",
799
+ "reflect": false
800
+ },
801
+ "labelPlacement": {
802
+ "type": "string",
803
+ "mutable": false,
804
+ "complexType": {
805
+ "original": "'start' | 'end' | 'floating' | 'stacked' | 'fixed'",
806
+ "resolved": "\"end\" | \"fixed\" | \"floating\" | \"stacked\" | \"start\"",
807
+ "references": {}
808
+ },
809
+ "required": false,
810
+ "optional": false,
811
+ "docs": {
812
+ "tags": [],
813
+ "text": "Where to place the label relative to the input.\n`\"start\"`: The label will appear to the left of the input in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the input in LTR and to the left in RTL.\n`\"floating\"`: The label will appear smaller and above the input when the input is focused or it has a value. Otherwise it will appear on top of the input.\n`\"stacked\"`: The label will appear smaller and above the input regardless even when the input is blurred or has no value.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\")."
814
+ },
815
+ "attribute": "label-placement",
816
+ "reflect": false,
817
+ "defaultValue": "'start'"
818
+ },
819
+ "legacy": {
820
+ "type": "boolean",
821
+ "mutable": false,
822
+ "complexType": {
823
+ "original": "boolean",
824
+ "resolved": "boolean | undefined",
825
+ "references": {}
826
+ },
827
+ "required": false,
828
+ "optional": true,
829
+ "docs": {
830
+ "tags": [],
831
+ "text": "Set the `legacy` property to `true` to forcibly use the legacy form control markup.\nIonic will only opt components in to the modern form markup when they are\nusing either the `aria-label` attribute or the `label` property. As a result,\nthe `legacy` property should only be used as an escape hatch when you want to\navoid this automatic opt-in behavior.\nNote that this property will be removed in an upcoming major release\nof Ionic, and all form components will be opted-in to using the modern form markup."
832
+ },
833
+ "attribute": "legacy",
834
+ "reflect": false
835
+ },
836
+ "max": {
837
+ "type": "any",
838
+ "mutable": false,
839
+ "complexType": {
840
+ "original": "string | number",
841
+ "resolved": "number | string | undefined",
842
+ "references": {}
843
+ },
844
+ "required": false,
845
+ "optional": true,
846
+ "docs": {
847
+ "tags": [],
848
+ "text": "The maximum value, which must not be less than its minimum (min attribute) value."
849
+ },
850
+ "attribute": "max",
851
+ "reflect": false
852
+ },
853
+ "maxlength": {
854
+ "type": "number",
855
+ "mutable": false,
856
+ "complexType": {
857
+ "original": "number",
858
+ "resolved": "number | undefined",
859
+ "references": {}
860
+ },
861
+ "required": false,
862
+ "optional": true,
863
+ "docs": {
864
+ "tags": [],
865
+ "text": "If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the maximum number of characters that the user can enter."
866
+ },
867
+ "attribute": "maxlength",
868
+ "reflect": false
869
+ },
870
+ "min": {
871
+ "type": "any",
872
+ "mutable": false,
873
+ "complexType": {
874
+ "original": "string | number",
875
+ "resolved": "number | string | undefined",
876
+ "references": {}
877
+ },
878
+ "required": false,
879
+ "optional": true,
880
+ "docs": {
881
+ "tags": [],
882
+ "text": "The minimum value, which must not be greater than its maximum (max attribute) value."
883
+ },
884
+ "attribute": "min",
885
+ "reflect": false
886
+ },
887
+ "minlength": {
888
+ "type": "number",
889
+ "mutable": false,
890
+ "complexType": {
891
+ "original": "number",
892
+ "resolved": "number | undefined",
893
+ "references": {}
894
+ },
895
+ "required": false,
896
+ "optional": true,
897
+ "docs": {
898
+ "tags": [],
899
+ "text": "If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the minimum number of characters that the user can enter."
900
+ },
901
+ "attribute": "minlength",
902
+ "reflect": false
903
+ },
904
+ "multiple": {
905
+ "type": "boolean",
906
+ "mutable": false,
907
+ "complexType": {
908
+ "original": "boolean",
909
+ "resolved": "boolean | undefined",
910
+ "references": {}
911
+ },
912
+ "required": false,
913
+ "optional": true,
914
+ "docs": {
915
+ "tags": [],
916
+ "text": "If `true`, the user can enter more than one value. This attribute applies when the type attribute is set to `\"email\"`, otherwise it is ignored."
917
+ },
918
+ "attribute": "multiple",
919
+ "reflect": false
920
+ },
921
+ "name": {
922
+ "type": "string",
923
+ "mutable": false,
924
+ "complexType": {
925
+ "original": "string",
926
+ "resolved": "string",
927
+ "references": {}
928
+ },
929
+ "required": false,
930
+ "optional": false,
931
+ "docs": {
932
+ "tags": [],
933
+ "text": "The name of the control, which is submitted with the form data."
934
+ },
935
+ "attribute": "name",
936
+ "reflect": false,
937
+ "defaultValue": "this.inputId"
938
+ },
939
+ "pattern": {
940
+ "type": "string",
941
+ "mutable": false,
942
+ "complexType": {
943
+ "original": "string",
944
+ "resolved": "string | undefined",
945
+ "references": {}
946
+ },
947
+ "required": false,
948
+ "optional": true,
949
+ "docs": {
950
+ "tags": [],
951
+ "text": "A regular expression that the value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, `\"date\"`, or `\"password\"`, otherwise it is ignored. When the type attribute is `\"date\"`, `pattern` will only be used in browsers that do not support the `\"date\"` input type natively. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date for more information."
952
+ },
953
+ "attribute": "pattern",
954
+ "reflect": false
955
+ },
956
+ "placeholder": {
957
+ "type": "string",
958
+ "mutable": false,
959
+ "complexType": {
960
+ "original": "string",
961
+ "resolved": "string | undefined",
962
+ "references": {}
963
+ },
964
+ "required": false,
965
+ "optional": true,
966
+ "docs": {
967
+ "tags": [],
968
+ "text": "Instructional text that shows before the input has a value.\nThis property applies only when the `type` property is set to `\"email\"`,\n`\"number\"`, `\"password\"`, `\"search\"`, `\"tel\"`, `\"text\"`, or `\"url\"`, otherwise it is ignored."
969
+ },
970
+ "attribute": "placeholder",
971
+ "reflect": false
972
+ },
973
+ "readonly": {
974
+ "type": "boolean",
975
+ "mutable": false,
976
+ "complexType": {
977
+ "original": "boolean",
978
+ "resolved": "boolean",
979
+ "references": {}
980
+ },
981
+ "required": false,
982
+ "optional": false,
983
+ "docs": {
984
+ "tags": [],
985
+ "text": "If `true`, the user cannot modify the value."
986
+ },
987
+ "attribute": "readonly",
988
+ "reflect": false,
989
+ "defaultValue": "false"
990
+ },
991
+ "required": {
992
+ "type": "boolean",
993
+ "mutable": false,
994
+ "complexType": {
995
+ "original": "boolean",
996
+ "resolved": "boolean",
997
+ "references": {}
998
+ },
999
+ "required": false,
1000
+ "optional": false,
1001
+ "docs": {
1002
+ "tags": [],
1003
+ "text": "If `true`, the user must fill in a value before submitting a form."
1004
+ },
1005
+ "attribute": "required",
1006
+ "reflect": false,
1007
+ "defaultValue": "false"
1008
+ },
1009
+ "shape": {
1010
+ "type": "string",
1011
+ "mutable": false,
1012
+ "complexType": {
1013
+ "original": "'round'",
1014
+ "resolved": "\"round\" | undefined",
1015
+ "references": {}
1016
+ },
1017
+ "required": false,
1018
+ "optional": true,
1019
+ "docs": {
1020
+ "tags": [],
1021
+ "text": "The shape of the input. If \"round\" it will have an increased border radius."
1022
+ },
1023
+ "attribute": "shape",
1024
+ "reflect": false
1025
+ },
1026
+ "spellcheck": {
1027
+ "type": "boolean",
1028
+ "mutable": false,
1029
+ "complexType": {
1030
+ "original": "boolean",
1031
+ "resolved": "boolean",
1032
+ "references": {}
1033
+ },
1034
+ "required": false,
1035
+ "optional": false,
1036
+ "docs": {
1037
+ "tags": [],
1038
+ "text": "If `true`, the element will have its spelling and grammar checked."
1039
+ },
1040
+ "attribute": "spellcheck",
1041
+ "reflect": false,
1042
+ "defaultValue": "false"
1043
+ },
1044
+ "step": {
1045
+ "type": "string",
1046
+ "mutable": false,
1047
+ "complexType": {
1048
+ "original": "string",
1049
+ "resolved": "string | undefined",
1050
+ "references": {}
1051
+ },
1052
+ "required": false,
1053
+ "optional": true,
1054
+ "docs": {
1055
+ "tags": [],
1056
+ "text": "Works with the min and max attributes to limit the increments at which a value can be set.\nPossible values are: `\"any\"` or a positive floating point number."
1057
+ },
1058
+ "attribute": "step",
1059
+ "reflect": false
1060
+ },
1061
+ "size": {
1062
+ "type": "number",
1063
+ "mutable": false,
1064
+ "complexType": {
1065
+ "original": "number",
1066
+ "resolved": "number | undefined",
1067
+ "references": {}
1068
+ },
1069
+ "required": false,
1070
+ "optional": true,
1071
+ "docs": {
1072
+ "tags": [],
1073
+ "text": ""
1074
+ },
1075
+ "attribute": "size",
1076
+ "reflect": false
1077
+ },
1078
+ "type": {
1079
+ "type": "string",
1080
+ "mutable": false,
1081
+ "complexType": {
1082
+ "original": "TextFieldTypes",
1083
+ "resolved": "\"date\" | \"datetime-local\" | \"email\" | \"month\" | \"number\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"time\" | \"url\" | \"week\"",
1084
+ "references": {
1085
+ "TextFieldTypes": {
1086
+ "location": "import",
1087
+ "path": "../../interface",
1088
+ "id": "src/interface.d.ts::TextFieldTypes"
1089
+ }
1090
+ }
1091
+ },
1092
+ "required": false,
1093
+ "optional": false,
1094
+ "docs": {
1095
+ "tags": [],
1096
+ "text": "The type of control to display. The default type is text."
1097
+ },
1098
+ "attribute": "type",
1099
+ "reflect": false,
1100
+ "defaultValue": "'text'"
1101
+ },
1102
+ "value": {
1103
+ "type": "any",
1104
+ "mutable": true,
1105
+ "complexType": {
1106
+ "original": "string | number | null",
1107
+ "resolved": "null | number | string | undefined",
1108
+ "references": {}
1109
+ },
1110
+ "required": false,
1111
+ "optional": true,
1112
+ "docs": {
1113
+ "tags": [],
1114
+ "text": "The value of the input."
1115
+ },
1116
+ "attribute": "value",
1117
+ "reflect": false,
1118
+ "defaultValue": "''"
1219
1119
  }
1220
- },
1221
- "return": "Promise<void>"
1222
- },
1223
- "docs": {
1224
- "text": "Sets focus on the native `input` in `ion-input`. Use this method instead of the global\n`input.focus()`.\n\nDevelopers who wish to focus an input when a page enters\nshould call `setFocus()` in the `ionViewDidEnter()` lifecycle method.\n\nDevelopers who wish to focus an input when an overlay is presented\nshould call `setFocus` after `didPresent` has resolved.",
1225
- "tags": []
1226
- }
1227
- },
1228
- "getInputElement": {
1229
- "complexType": {
1230
- "signature": "() => Promise<HTMLInputElement>",
1231
- "parameters": [],
1232
- "references": {
1233
- "Promise": {
1234
- "location": "global",
1235
- "id": "global::Promise"
1120
+ };
1121
+ }
1122
+ static get states() {
1123
+ return {
1124
+ "hasFocus": {}
1125
+ };
1126
+ }
1127
+ static get events() {
1128
+ return [{
1129
+ "method": "ionInput",
1130
+ "name": "ionInput",
1131
+ "bubbles": true,
1132
+ "cancelable": true,
1133
+ "composed": true,
1134
+ "docs": {
1135
+ "tags": [],
1136
+ "text": "The `ionInput` event is fired each time the user modifies the input's value.\nUnlike the `ionChange` event, the `ionInput` event is fired for each alteration\nto the input's value. This typically happens for each keystroke as the user types.\n\nFor elements that accept text input (`type=text`, `type=tel`, etc.), the interface\nis [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\nthe interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\nthe input is cleared on edit, the type is `null`."
1137
+ },
1138
+ "complexType": {
1139
+ "original": "InputInputEventDetail",
1140
+ "resolved": "InputInputEventDetail",
1141
+ "references": {
1142
+ "InputInputEventDetail": {
1143
+ "location": "import",
1144
+ "path": "./input-interface",
1145
+ "id": "src/components/input/input-interface.ts::InputInputEventDetail"
1146
+ }
1147
+ }
1148
+ }
1149
+ }, {
1150
+ "method": "ionChange",
1151
+ "name": "ionChange",
1152
+ "bubbles": true,
1153
+ "cancelable": true,
1154
+ "composed": true,
1155
+ "docs": {
1156
+ "tags": [],
1157
+ "text": "The `ionChange` event is fired when the user modifies the input's value.\nUnlike the `ionInput` event, the `ionChange` event is only fired when changes\nare committed, not as the user types.\n\nDepending on the way the users interacts with the element, the `ionChange`\nevent fires at a different moment:\n- When the user commits the change explicitly (e.g. by selecting a date\nfrom a date picker for `<ion-input type=\"date\">`, pressing the \"Enter\" key, etc.).\n- When the element loses focus after its value has changed: for elements\nwhere the user's interaction is typing."
1158
+ },
1159
+ "complexType": {
1160
+ "original": "InputChangeEventDetail",
1161
+ "resolved": "InputChangeEventDetail",
1162
+ "references": {
1163
+ "InputChangeEventDetail": {
1164
+ "location": "import",
1165
+ "path": "./input-interface",
1166
+ "id": "src/components/input/input-interface.ts::InputChangeEventDetail"
1167
+ }
1168
+ }
1169
+ }
1170
+ }, {
1171
+ "method": "ionBlur",
1172
+ "name": "ionBlur",
1173
+ "bubbles": true,
1174
+ "cancelable": true,
1175
+ "composed": true,
1176
+ "docs": {
1177
+ "tags": [],
1178
+ "text": "Emitted when the input loses focus."
1179
+ },
1180
+ "complexType": {
1181
+ "original": "FocusEvent",
1182
+ "resolved": "FocusEvent",
1183
+ "references": {
1184
+ "FocusEvent": {
1185
+ "location": "global",
1186
+ "id": "global::FocusEvent"
1187
+ }
1188
+ }
1189
+ }
1190
+ }, {
1191
+ "method": "ionFocus",
1192
+ "name": "ionFocus",
1193
+ "bubbles": true,
1194
+ "cancelable": true,
1195
+ "composed": true,
1196
+ "docs": {
1197
+ "tags": [],
1198
+ "text": "Emitted when the input has focus."
1199
+ },
1200
+ "complexType": {
1201
+ "original": "FocusEvent",
1202
+ "resolved": "FocusEvent",
1203
+ "references": {
1204
+ "FocusEvent": {
1205
+ "location": "global",
1206
+ "id": "global::FocusEvent"
1207
+ }
1208
+ }
1209
+ }
1210
+ }, {
1211
+ "method": "ionStyle",
1212
+ "name": "ionStyle",
1213
+ "bubbles": true,
1214
+ "cancelable": true,
1215
+ "composed": true,
1216
+ "docs": {
1217
+ "tags": [{
1218
+ "name": "internal",
1219
+ "text": undefined
1220
+ }],
1221
+ "text": "Emitted when the styles change."
1222
+ },
1223
+ "complexType": {
1224
+ "original": "StyleEventDetail",
1225
+ "resolved": "StyleEventDetail",
1226
+ "references": {
1227
+ "StyleEventDetail": {
1228
+ "location": "import",
1229
+ "path": "../../interface",
1230
+ "id": "src/interface.d.ts::StyleEventDetail"
1231
+ }
1232
+ }
1233
+ }
1234
+ }];
1235
+ }
1236
+ static get methods() {
1237
+ return {
1238
+ "setFocus": {
1239
+ "complexType": {
1240
+ "signature": "() => Promise<void>",
1241
+ "parameters": [],
1242
+ "references": {
1243
+ "Promise": {
1244
+ "location": "global",
1245
+ "id": "global::Promise"
1246
+ }
1247
+ },
1248
+ "return": "Promise<void>"
1249
+ },
1250
+ "docs": {
1251
+ "text": "Sets focus on the native `input` in `ion-input`. Use this method instead of the global\n`input.focus()`.\n\nDevelopers who wish to focus an input when a page enters\nshould call `setFocus()` in the `ionViewDidEnter()` lifecycle method.\n\nDevelopers who wish to focus an input when an overlay is presented\nshould call `setFocus` after `didPresent` has resolved.\n\nSee [managing focus](/docs/developing/managing-focus) for more information.",
1252
+ "tags": []
1253
+ }
1236
1254
  },
1237
- "HTMLInputElement": {
1238
- "location": "global",
1239
- "id": "global::HTMLInputElement"
1255
+ "getInputElement": {
1256
+ "complexType": {
1257
+ "signature": "() => Promise<HTMLInputElement>",
1258
+ "parameters": [],
1259
+ "references": {
1260
+ "Promise": {
1261
+ "location": "global",
1262
+ "id": "global::Promise"
1263
+ },
1264
+ "HTMLInputElement": {
1265
+ "location": "global",
1266
+ "id": "global::HTMLInputElement"
1267
+ }
1268
+ },
1269
+ "return": "Promise<HTMLInputElement>"
1270
+ },
1271
+ "docs": {
1272
+ "text": "Returns the native `<input>` element used under the hood.",
1273
+ "tags": []
1274
+ }
1240
1275
  }
1241
- },
1242
- "return": "Promise<HTMLInputElement>"
1243
- },
1244
- "docs": {
1245
- "text": "Returns the native `<input>` element used under the hood.",
1246
- "tags": []
1247
- }
1248
- }
1249
- };
1250
- }
1251
- static get elementRef() { return "el"; }
1252
- static get watchers() {
1253
- return [{
1254
- "propName": "debounce",
1255
- "methodName": "debounceChanged"
1256
- }, {
1257
- "propName": "disabled",
1258
- "methodName": "disabledChanged"
1259
- }, {
1260
- "propName": "placeholder",
1261
- "methodName": "placeholderChanged"
1262
- }, {
1263
- "propName": "value",
1264
- "methodName": "valueChanged"
1265
- }];
1266
- }
1276
+ };
1277
+ }
1278
+ static get elementRef() { return "el"; }
1279
+ static get watchers() {
1280
+ return [{
1281
+ "propName": "debounce",
1282
+ "methodName": "debounceChanged"
1283
+ }, {
1284
+ "propName": "disabled",
1285
+ "methodName": "disabledChanged"
1286
+ }, {
1287
+ "propName": "placeholder",
1288
+ "methodName": "placeholderChanged"
1289
+ }, {
1290
+ "propName": "value",
1291
+ "methodName": "valueChanged"
1292
+ }];
1293
+ }
1267
1294
  }
1268
1295
  let inputIds = 0;