voyager-ionic-core 7.5.5 → 7.6.1

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