@ionic/core 7.5.8-dev.11701461830.1be851fd → 7.5.8-dev.11701788142.11dcb825

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 (322) hide show
  1. package/components/ion-input.js +21 -2
  2. package/components/ion-searchbar.js +2 -0
  3. package/components/ion-textarea.js +25 -2
  4. package/dist/cjs/{app-globals-28656db1.js → app-globals-0af482c7.js} +1 -1
  5. package/dist/cjs/{button-active-75b38d77.js → button-active-417ccdcb.js} +1 -1
  6. package/dist/cjs/{index-097270a3.js → index-5cbb20f9.js} +1 -1
  7. package/dist/cjs/{index-b0102f48.js → index-bbb4336c.js} +39 -1
  8. package/dist/cjs/{index-cb3e0ab7.js → index-d4c2e02c.js} +3 -3
  9. package/dist/cjs/index.cjs.js +7 -7
  10. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  11. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  12. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  13. package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
  14. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  15. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  16. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  17. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  18. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  19. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  20. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  21. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  22. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  23. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  24. package/dist/cjs/ion-datetime_3.cjs.entry.js +3 -3
  25. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  26. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  27. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  28. package/dist/cjs/ion-input.cjs.entry.js +23 -4
  29. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  31. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  32. package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
  33. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  34. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
  35. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  37. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  38. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  39. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  43. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  44. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -2
  46. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  47. package/dist/cjs/ion-select_3.cjs.entry.js +3 -3
  48. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  49. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  52. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-textarea.cjs.entry.js +27 -4
  54. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  55. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  56. package/dist/cjs/{ionic-global-62510d64.js → ionic-global-f4a2093b.js} +1 -1
  57. package/dist/cjs/ionic.cjs.js +4 -4
  58. package/dist/cjs/{ios.transition-d9c0e4fb.js → ios.transition-a4ffb5a2.js} +2 -2
  59. package/dist/cjs/loader.cjs.js +3 -3
  60. package/dist/cjs/{md.transition-4fac8a87.js → md.transition-292abe1c.js} +2 -2
  61. package/dist/cjs/{overlays-b1471172.js → overlays-5c379703.js} +1 -1
  62. package/dist/cjs/{status-tap-0aa8e1f2.js → status-tap-415acac6.js} +1 -1
  63. package/dist/collection/collection-manifest.json +1 -1
  64. package/dist/collection/components/input/input.js +23 -4
  65. package/dist/collection/components/input/test/clear-on-edit/input.e2e.js +21 -9
  66. package/dist/collection/components/searchbar/searchbar.js +3 -1
  67. package/dist/collection/components/textarea/test/clear-on-edit/textarea.e2e.js +28 -0
  68. package/dist/collection/components/textarea/textarea.js +27 -4
  69. package/dist/docs.json +7 -7
  70. package/dist/esm/{app-globals-c23144fc.js → app-globals-722340c4.js} +1 -1
  71. package/dist/esm/{button-active-7013b5a1.js → button-active-3fdf3e4f.js} +1 -1
  72. package/dist/esm/{index-39329c6f.js → index-08d686eb.js} +39 -1
  73. package/dist/esm/{index-7a818ed3.js → index-80492ed3.js} +1 -1
  74. package/dist/esm/{index-bebaae5d.js → index-d8817fb0.js} +3 -3
  75. package/dist/esm/index.js +7 -7
  76. package/dist/esm/ion-accordion_2.entry.js +2 -2
  77. package/dist/esm/ion-action-sheet.entry.js +4 -4
  78. package/dist/esm/ion-alert.entry.js +4 -4
  79. package/dist/esm/ion-app_8.entry.js +4 -4
  80. package/dist/esm/ion-avatar_3.entry.js +2 -2
  81. package/dist/esm/ion-back-button.entry.js +2 -2
  82. package/dist/esm/ion-backdrop.entry.js +2 -2
  83. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  84. package/dist/esm/ion-button_2.entry.js +2 -2
  85. package/dist/esm/ion-card_5.entry.js +2 -2
  86. package/dist/esm/ion-checkbox.entry.js +2 -2
  87. package/dist/esm/ion-chip.entry.js +2 -2
  88. package/dist/esm/ion-col_3.entry.js +2 -2
  89. package/dist/esm/ion-datetime-button.entry.js +2 -2
  90. package/dist/esm/ion-datetime_3.entry.js +3 -3
  91. package/dist/esm/ion-fab_3.entry.js +2 -2
  92. package/dist/esm/ion-img.entry.js +2 -2
  93. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  94. package/dist/esm/ion-input.entry.js +23 -4
  95. package/dist/esm/ion-item-option_3.entry.js +2 -2
  96. package/dist/esm/ion-item_8.entry.js +2 -2
  97. package/dist/esm/ion-loading.entry.js +3 -3
  98. package/dist/esm/ion-menu_3.entry.js +4 -4
  99. package/dist/esm/ion-modal.entry.js +4 -4
  100. package/dist/esm/ion-nav_2.entry.js +3 -3
  101. package/dist/esm/ion-picker-column-internal.entry.js +2 -2
  102. package/dist/esm/ion-picker-internal.entry.js +1 -1
  103. package/dist/esm/ion-popover.entry.js +4 -4
  104. package/dist/esm/ion-progress-bar.entry.js +2 -2
  105. package/dist/esm/ion-radio_2.entry.js +2 -2
  106. package/dist/esm/ion-range.entry.js +2 -2
  107. package/dist/esm/ion-refresher_2.entry.js +2 -2
  108. package/dist/esm/ion-reorder_2.entry.js +2 -2
  109. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  110. package/dist/esm/ion-route_4.entry.js +2 -2
  111. package/dist/esm/ion-searchbar.entry.js +4 -2
  112. package/dist/esm/ion-segment_2.entry.js +2 -2
  113. package/dist/esm/ion-select_3.entry.js +3 -3
  114. package/dist/esm/ion-spinner.entry.js +2 -2
  115. package/dist/esm/ion-split-pane.entry.js +2 -2
  116. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  117. package/dist/esm/ion-tab_2.entry.js +1 -1
  118. package/dist/esm/ion-text.entry.js +2 -2
  119. package/dist/esm/ion-textarea.entry.js +27 -4
  120. package/dist/esm/ion-toast.entry.js +3 -3
  121. package/dist/esm/ion-toggle.entry.js +2 -2
  122. package/dist/esm/{ionic-global-6c78e871.js → ionic-global-c0cda98e.js} +1 -1
  123. package/dist/esm/ionic.js +5 -5
  124. package/dist/esm/{ios.transition-daa373e9.js → ios.transition-fd16bec1.js} +2 -2
  125. package/dist/esm/loader.js +4 -4
  126. package/dist/esm/{md.transition-91c3d3cc.js → md.transition-94ac93e1.js} +2 -2
  127. package/dist/esm/{overlays-64e67e2c.js → overlays-abf58489.js} +1 -1
  128. package/dist/esm/{status-tap-9dd45200.js → status-tap-2b93b1b5.js} +1 -1
  129. package/dist/esm-es5/app-globals-722340c4.js +4 -0
  130. package/dist/esm-es5/{button-active-7013b5a1.js → button-active-3fdf3e4f.js} +1 -1
  131. package/dist/esm-es5/{index-39329c6f.js → index-08d686eb.js} +1 -1
  132. package/dist/esm-es5/{index-7a818ed3.js → index-80492ed3.js} +1 -1
  133. package/dist/esm-es5/{index-bebaae5d.js → index-d8817fb0.js} +1 -1
  134. package/dist/esm-es5/index.js +1 -1
  135. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  136. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  137. package/dist/esm-es5/ion-alert.entry.js +1 -1
  138. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  139. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  140. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  141. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  142. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  143. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  144. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  145. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  146. package/dist/esm-es5/ion-chip.entry.js +1 -1
  147. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  148. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  149. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  150. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  151. package/dist/esm-es5/ion-img.entry.js +1 -1
  152. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  153. package/dist/esm-es5/ion-input.entry.js +1 -1
  154. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  155. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  156. package/dist/esm-es5/ion-loading.entry.js +1 -1
  157. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  158. package/dist/esm-es5/ion-modal.entry.js +1 -1
  159. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  160. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  161. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  162. package/dist/esm-es5/ion-popover.entry.js +1 -1
  163. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  164. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  165. package/dist/esm-es5/ion-range.entry.js +1 -1
  166. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  167. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  168. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  169. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  170. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  171. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  172. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  173. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  174. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  175. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  176. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  177. package/dist/esm-es5/ion-text.entry.js +1 -1
  178. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  179. package/dist/esm-es5/ion-toast.entry.js +1 -1
  180. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  181. package/dist/esm-es5/{ionic-global-6c78e871.js → ionic-global-c0cda98e.js} +1 -1
  182. package/dist/esm-es5/ionic.js +1 -1
  183. package/dist/esm-es5/{ios.transition-daa373e9.js → ios.transition-fd16bec1.js} +1 -1
  184. package/dist/esm-es5/loader.js +1 -1
  185. package/dist/esm-es5/{md.transition-91c3d3cc.js → md.transition-94ac93e1.js} +1 -1
  186. package/dist/esm-es5/{overlays-64e67e2c.js → overlays-abf58489.js} +1 -1
  187. package/dist/esm-es5/{status-tap-9dd45200.js → status-tap-2b93b1b5.js} +1 -1
  188. package/dist/html.html-data.json +2 -2
  189. package/dist/ionic/index.esm.js +1 -1
  190. package/dist/ionic/ionic.esm.js +1 -1
  191. package/dist/ionic/ionic.js +1 -1
  192. package/dist/ionic/{p-46dbd723.entry.js → p-0519cd21.entry.js} +1 -1
  193. package/dist/ionic/{p-ad4d66ba.system.entry.js → p-08f196ce.system.entry.js} +1 -1
  194. package/dist/ionic/p-093033ee.entry.js +4 -0
  195. package/dist/ionic/{p-f34d6a49.entry.js → p-0add7211.entry.js} +1 -1
  196. package/dist/ionic/{p-e8e530fc.entry.js → p-0b1bc636.entry.js} +1 -1
  197. package/dist/ionic/{p-a0945c3a.system.entry.js → p-0e53f8ea.system.entry.js} +1 -1
  198. package/dist/ionic/{p-161d0916.entry.js → p-1161a793.entry.js} +1 -1
  199. package/dist/ionic/{p-89026d53.entry.js → p-1208f939.entry.js} +1 -1
  200. package/dist/ionic/p-1786bc72.js +4 -0
  201. package/dist/ionic/{p-312221db.entry.js → p-17da5ed1.entry.js} +1 -1
  202. package/dist/ionic/p-17f893be.js +4 -0
  203. package/dist/ionic/{p-83fada9e.system.entry.js → p-18b6bd23.system.entry.js} +1 -1
  204. package/dist/ionic/{p-5fb707e0.entry.js → p-18ba8221.entry.js} +1 -1
  205. package/dist/ionic/{p-d1530ea9.entry.js → p-1d17219f.entry.js} +1 -1
  206. package/dist/ionic/{p-1ff22253.entry.js → p-2092f39f.entry.js} +1 -1
  207. package/dist/ionic/{p-2507b0c0.entry.js → p-25b32c3d.entry.js} +1 -1
  208. package/dist/ionic/{p-b81a8111.system.entry.js → p-2938823a.system.entry.js} +1 -1
  209. package/dist/ionic/{p-df361680.system.entry.js → p-2ab4e925.system.entry.js} +1 -1
  210. package/dist/ionic/{p-45db7949.system.entry.js → p-2ba0657d.system.entry.js} +1 -1
  211. package/dist/ionic/{p-0263eb49.system.js → p-30029cc2.system.js} +1 -1
  212. package/dist/ionic/{p-ac4a7fc0.js → p-31158892.js} +1 -1
  213. package/dist/ionic/{p-18032a93.entry.js → p-34c39c48.entry.js} +1 -1
  214. package/dist/ionic/p-350f7292.system.entry.js +4 -0
  215. package/dist/ionic/{p-86c2bbc8.entry.js → p-353b349d.entry.js} +1 -1
  216. package/dist/ionic/{p-bc97b5cd.system.entry.js → p-3b686a65.system.entry.js} +1 -1
  217. package/dist/ionic/{p-33f3cd49.entry.js → p-3de71759.entry.js} +1 -1
  218. package/dist/ionic/{p-f0384573.system.entry.js → p-3e960213.system.entry.js} +1 -1
  219. package/dist/ionic/{p-a3a145d3.entry.js → p-3f6270b3.entry.js} +1 -1
  220. package/dist/ionic/{p-23a27e78.system.entry.js → p-3fd37993.system.entry.js} +1 -1
  221. package/dist/ionic/{p-426bdba9.system.js → p-3fe96156.system.js} +1 -1
  222. package/dist/ionic/{p-e26030f8.system.js → p-4155f352.system.js} +1 -1
  223. package/dist/ionic/p-4890093d.js +4 -0
  224. package/dist/ionic/{p-5f46d93e.entry.js → p-4a31c99f.entry.js} +1 -1
  225. package/dist/ionic/{p-2cd9cb80.system.entry.js → p-4fb51e61.system.entry.js} +1 -1
  226. package/dist/ionic/{p-71d986ae.entry.js → p-50880712.entry.js} +1 -1
  227. package/dist/ionic/{p-d3e123c0.entry.js → p-51a087d6.entry.js} +1 -1
  228. package/dist/ionic/{p-aac289d2.system.entry.js → p-564af202.system.entry.js} +1 -1
  229. package/dist/ionic/{p-abab375b.system.js → p-57477107.system.js} +1 -1
  230. package/dist/ionic/p-588fdf40.entry.js +4 -0
  231. package/dist/ionic/{p-a5c81b99.entry.js → p-5a68960f.entry.js} +1 -1
  232. package/dist/ionic/{p-34d6f520.system.js → p-5b365ca7.system.js} +1 -1
  233. package/dist/ionic/{p-eef8d7e8.system.entry.js → p-5bebc7b3.system.entry.js} +1 -1
  234. package/dist/ionic/{p-21f015cf.js → p-5ecae037.js} +1 -1
  235. package/dist/ionic/{p-06600f70.js → p-61d7d7fb.js} +1 -1
  236. package/dist/ionic/{p-2657f213.entry.js → p-6470b136.entry.js} +1 -1
  237. package/dist/ionic/{p-5f127075.system.entry.js → p-6577aea9.system.entry.js} +1 -1
  238. package/dist/ionic/{p-d0251fc4.entry.js → p-67da080d.entry.js} +1 -1
  239. package/dist/ionic/{p-2a7e6572.system.entry.js → p-6ad34705.system.entry.js} +1 -1
  240. package/dist/ionic/{p-1cbc21e2.system.entry.js → p-6e70dd1a.system.entry.js} +1 -1
  241. package/dist/ionic/{p-64af4468.entry.js → p-6fbecbda.entry.js} +1 -1
  242. package/dist/ionic/{p-0827d00e.system.entry.js → p-73637557.system.entry.js} +1 -1
  243. package/dist/ionic/{p-fcf49977.system.entry.js → p-73ea8f82.system.entry.js} +1 -1
  244. package/dist/ionic/{p-57c0d5bf.system.entry.js → p-7b8d0af2.system.entry.js} +1 -1
  245. package/dist/ionic/{p-315ad733.system.entry.js → p-7faba551.system.entry.js} +1 -1
  246. package/dist/ionic/{p-bbe3feee.entry.js → p-80fa068e.entry.js} +1 -1
  247. package/dist/ionic/{p-b11ceee2.entry.js → p-82045bc1.entry.js} +1 -1
  248. package/dist/ionic/{p-8c202d6e.system.entry.js → p-868d0165.system.entry.js} +1 -1
  249. package/dist/ionic/{p-ee4a54e3.entry.js → p-88fde0e0.entry.js} +1 -1
  250. package/dist/ionic/{p-67598744.entry.js → p-8f5d30f5.entry.js} +1 -1
  251. package/dist/ionic/{p-edc5c693.system.entry.js → p-908475e7.system.entry.js} +1 -1
  252. package/dist/ionic/{p-3acad8ff.system.entry.js → p-93000a81.system.entry.js} +1 -1
  253. package/dist/ionic/{p-2ac9d078.system.entry.js → p-94389114.system.entry.js} +1 -1
  254. package/dist/ionic/{p-a0db3de9.system.entry.js → p-9709ebd8.system.entry.js} +1 -1
  255. package/dist/ionic/{p-12cdcb59.js → p-9738fd82.js} +1 -1
  256. package/dist/ionic/{p-6cf08720.entry.js → p-98b14ece.entry.js} +1 -1
  257. package/dist/ionic/{p-a70b5d24.entry.js → p-98f3d827.entry.js} +1 -1
  258. package/dist/ionic/{p-58dd7c15.entry.js → p-9c3b6849.entry.js} +1 -1
  259. package/dist/ionic/{p-93dac17a.system.entry.js → p-9eec42cc.system.entry.js} +1 -1
  260. package/dist/ionic/{p-89cfbc88.system.entry.js → p-a0126dd5.system.entry.js} +1 -1
  261. package/dist/ionic/{p-70ecb18b.entry.js → p-a1987850.entry.js} +1 -1
  262. package/dist/ionic/{p-53a3283e.entry.js → p-a4afcc88.entry.js} +1 -1
  263. package/dist/ionic/{p-27e6473f.entry.js → p-a6f9dd7b.entry.js} +1 -1
  264. package/dist/ionic/{p-99fe0543.entry.js → p-a98dc0c1.entry.js} +1 -1
  265. package/dist/ionic/{p-90db28f8.system.entry.js → p-a9e3b5be.system.entry.js} +1 -1
  266. package/dist/ionic/{p-a843a90e.system.entry.js → p-ab9456e9.system.entry.js} +1 -1
  267. package/dist/ionic/{p-22c6adfa.entry.js → p-ad019ef0.entry.js} +1 -1
  268. package/dist/ionic/{p-ad78c421.system.js → p-af5cfad2.system.js} +1 -1
  269. package/dist/ionic/{p-a1b4dba7.entry.js → p-b04e4d62.entry.js} +1 -1
  270. package/dist/ionic/{p-1631b52f.system.js → p-b0dc1cf9.system.js} +1 -1
  271. package/dist/ionic/{p-98ac0e27.system.entry.js → p-b3b3efba.system.entry.js} +2 -2
  272. package/dist/ionic/{p-58ff9e5b.system.js → p-b4a51c42.system.js} +1 -1
  273. package/dist/ionic/{p-b5e33ebc.system.entry.js → p-b4bad293.system.entry.js} +1 -1
  274. package/dist/ionic/{p-3cb5466e.entry.js → p-b5f9f14c.entry.js} +1 -1
  275. package/dist/ionic/{p-b0fcf130.system.entry.js → p-b6f5e4f2.system.entry.js} +1 -1
  276. package/dist/ionic/{p-7ae5ca1f.system.entry.js → p-b7010c69.system.entry.js} +1 -1
  277. package/dist/ionic/{p-a99f14a7.system.entry.js → p-b752714f.system.entry.js} +1 -1
  278. package/dist/ionic/{p-f444fea5.entry.js → p-c3289ef2.entry.js} +1 -1
  279. package/dist/ionic/{p-acdd8148.js → p-c3c3333a.js} +1 -1
  280. package/dist/ionic/{p-5a7d5905.system.entry.js → p-c3d09cf2.system.entry.js} +1 -1
  281. package/dist/ionic/{p-8261be6c.system.entry.js → p-c847fb35.system.entry.js} +1 -1
  282. package/dist/ionic/{p-e3c44332.system.entry.js → p-c91ccbfa.system.entry.js} +1 -1
  283. package/dist/ionic/{p-9f376964.system.entry.js → p-c9a21dfd.system.entry.js} +1 -1
  284. package/dist/ionic/{p-ad953217.system.entry.js → p-caf21b46.system.entry.js} +1 -1
  285. package/dist/ionic/{p-19545a49.system.entry.js → p-cce9f61a.system.entry.js} +1 -1
  286. package/dist/ionic/{p-1c6c6098.entry.js → p-cfe57b1b.entry.js} +1 -1
  287. package/dist/ionic/p-cff478d8.entry.js +4 -0
  288. package/dist/ionic/{p-742e11cf.system.entry.js → p-d1cb29a8.system.entry.js} +1 -1
  289. package/dist/ionic/{p-c04accad.entry.js → p-d37b441e.entry.js} +1 -1
  290. package/dist/ionic/{p-f8c5a0dd.system.js → p-d3b030b8.system.js} +1 -1
  291. package/dist/ionic/{p-3f5ae764.entry.js → p-d40a974a.entry.js} +1 -1
  292. package/dist/ionic/{p-91f9e81b.js → p-d662d908.js} +1 -1
  293. package/dist/ionic/{p-41f7af3f.system.entry.js → p-d7be6b7e.system.entry.js} +1 -1
  294. package/dist/ionic/{p-3535a36c.entry.js → p-ddb30596.entry.js} +1 -1
  295. package/dist/ionic/{p-c5ae50be.system.js → p-e3584231.system.js} +1 -1
  296. package/dist/ionic/p-e4d90573.js +4 -0
  297. package/dist/ionic/{p-ca32685b.system.entry.js → p-e553006f.system.entry.js} +1 -1
  298. package/dist/ionic/{p-27a5f2c7.system.entry.js → p-e6d68e02.system.entry.js} +1 -1
  299. package/dist/ionic/{p-8a75f7bf.system.entry.js → p-e7ea9815.system.entry.js} +1 -1
  300. package/dist/ionic/{p-8a10752d.entry.js → p-e94c392d.entry.js} +1 -1
  301. package/dist/ionic/p-ea69616e.entry.js +4 -0
  302. package/dist/ionic/{p-4f71a9cf.system.entry.js → p-ef126ae8.system.entry.js} +1 -1
  303. package/dist/ionic/{p-f10de9d5.system.js → p-f2c21dae.system.js} +1 -1
  304. package/dist/ionic/{p-7484b1d6.system.js → p-f7a36cd0.system.js} +1 -1
  305. package/dist/ionic/{p-e4045e04.entry.js → p-f8a5bb89.entry.js} +1 -1
  306. package/dist/types/components/input/input.d.ts +5 -1
  307. package/dist/types/components/searchbar/searchbar.d.ts +2 -0
  308. package/dist/types/components/textarea/textarea.d.ts +5 -1
  309. package/dist/types/components.d.ts +7 -7
  310. package/hydrate/index.d.ts +1 -1
  311. package/hydrate/index.js +49 -5
  312. package/package.json +2 -2
  313. package/dist/esm-es5/app-globals-c23144fc.js +0 -4
  314. package/dist/ionic/p-405f1a72.entry.js +0 -4
  315. package/dist/ionic/p-5c7f13cd.system.entry.js +0 -4
  316. package/dist/ionic/p-6744eca5.entry.js +0 -4
  317. package/dist/ionic/p-af959b5d.entry.js +0 -4
  318. package/dist/ionic/p-b8f2134e.js +0 -4
  319. package/dist/ionic/p-cde72008.js +0 -4
  320. package/dist/ionic/p-ddccf1f4.js +0 -4
  321. package/dist/ionic/p-e145b9f9.entry.js +0 -4
  322. package/dist/ionic/p-eab6401e.js +0 -4
@@ -5,14 +5,14 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-b0102f48.js');
8
+ const index = require('./index-bbb4336c.js');
9
9
  const formController = require('./form-controller-7d42a722.js');
10
10
  const notchController = require('./notch-controller-1dce508a.js');
11
11
  const helpers = require('./helpers-76bb7efb.js');
12
12
  const index$1 = require('./index-5915f9b3.js');
13
13
  const input_utils = require('./input.utils-2a11c1fe.js');
14
14
  const theme = require('./theme-d1c573d2.js');
15
- const ionicGlobal = require('./ionic-global-62510d64.js');
15
+ const ionicGlobal = require('./ionic-global-f4a2093b.js');
16
16
  require('./index-306a7476.js');
17
17
 
18
18
  const textareaIosCss = ".sc-ion-textarea-ios-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:0.6;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--border-radius:0;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #3880ff);--highlight-color-valid:var(--ion-color-success, #2dd36f);--highlight-color-invalid:var(--ion-color-danger, #eb445a);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}.sc-ion-textarea-ios-h:not(.legacy-textarea){min-height:44px}.textarea-label-placement-floating.sc-ion-textarea-ios-h,.textarea-label-placement-stacked.sc-ion-textarea-ios-h{--padding-top:0px;min-height:56px}[cols].sc-ion-textarea-ios-h:not([auto-grow]){width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.legacy-textarea.sc-ion-textarea-ios-h{-ms-flex:1;flex:1;background:var(--background);white-space:pre-wrap}.legacy-textarea.ion-color.sc-ion-textarea-ios-h{color:var(--ion-color-base)}.sc-ion-textarea-ios-h:not(.legacy-textarea){--padding-bottom:8px}.ion-color.sc-ion-textarea-ios-h{--highlight-color-focused:var(--ion-color-base);background:initial}ion-item.sc-ion-textarea-ios-h,ion-item .sc-ion-textarea-ios-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item.sc-ion-textarea-ios-h:not(.item-label),ion-item:not(.item-label) .sc-ion-textarea-ios-h{--padding-start:0}ion-item[slot=start].sc-ion-textarea-ios-h,ion-item [slot=start].sc-ion-textarea-ios-h,ion-item[slot=end].sc-ion-textarea-ios-h,ion-item [slot=end].sc-ion-textarea-ios-h{width:auto}.native-textarea.sc-ion-textarea-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;white-space:pre-wrap;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.native-textarea.sc-ion-textarea-ios::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.legacy-textarea.sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios{white-space:inherit}.legacy-textarea.sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios,.legacy-textarea.sc-ion-textarea-ios-h .textarea-legacy-wrapper.sc-ion-textarea-ios::after{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius)}.native-textarea.sc-ion-textarea-ios{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.legacy-textarea.sc-ion-textarea-ios-h .textarea-legacy-wrapper.sc-ion-textarea-ios::after{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;grid-area:1/1/2/2;word-break:break-word}.cloned-input.sc-ion-textarea-ios{top:0;bottom:0;position:absolute;pointer-events:none}@supports (inset-inline-start: 0){.cloned-input.sc-ion-textarea-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){.cloned-input.sc-ion-textarea-ios{left:0}[dir=rtl].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{left:unset;right:unset;right:0}[dir=rtl].sc-ion-textarea-ios .cloned-input.sc-ion-textarea-ios{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.cloned-input.sc-ion-textarea-ios:dir(rtl){left:unset;right:unset;right:0}}}.cloned-input.sc-ion-textarea-ios:disabled{opacity:1}.legacy-textarea[auto-grow].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}[auto-grow].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{height:100%}[auto-grow].sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios{overflow:hidden}.item-label-floating.item-has-placeholder.sc-ion-textarea-ios-h:not(.item-has-value),.item-label-floating.item-has-placeholder:not(.item-has-value) .sc-ion-textarea-ios-h{opacity:0}.item-label-floating.item-has-placeholder.sc-ion-textarea-ios-h:not(.item-has-value).item-has-focus,.item-label-floating.item-has-placeholder:not(.item-has-value).item-has-focus .sc-ion-textarea-ios-h{-webkit-transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);opacity:1}.textarea-wrapper.sc-ion-textarea-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:0px;padding-bottom:0px;border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:flex-start;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.native-wrapper.sc-ion-textarea-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;width:100%;height:100%}.has-focus.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{caret-color:var(--highlight-color)}.native-wrapper.sc-ion-textarea-ios textarea.sc-ion-textarea-ios{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom)}.native-wrapper.sc-ion-textarea-ios,.textarea-legacy-wrapper.sc-ion-textarea-ios{display:grid;min-width:inherit;max-width:inherit;min-height:inherit;max-height:inherit;grid-auto-rows:100%}.native-wrapper.sc-ion-textarea-ios::after,.textarea-legacy-wrapper.sc-ion-textarea-ios::after{white-space:pre-wrap;content:attr(data-replicated-value) \" \";visibility:hidden}.native-wrapper.sc-ion-textarea-ios::after{padding-left:0;padding-right:0;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:var(--border-radius);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.ion-touched.ion-invalid.sc-ion-textarea-ios-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-textarea-ios-h{--highlight-color:var(--highlight-color-valid)}.textarea-bottom.sc-ion-textarea-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem}.has-focus.ion-valid.sc-ion-textarea-ios-h,.ion-touched.ion-invalid.sc-ion-textarea-ios-h{--border-color:var(--highlight-color)}.textarea-bottom.sc-ion-textarea-ios .error-text.sc-ion-textarea-ios{display:none;color:var(--highlight-color-invalid)}.textarea-bottom.sc-ion-textarea-ios .helper-text.sc-ion-textarea-ios{display:block;color:var(--ion-color-step-550, #737373)}.ion-touched.ion-invalid.sc-ion-textarea-ios-h .textarea-bottom.sc-ion-textarea-ios .error-text.sc-ion-textarea-ios{display:block}.ion-touched.ion-invalid.sc-ion-textarea-ios-h .textarea-bottom.sc-ion-textarea-ios .helper-text.sc-ion-textarea-ios{display:none}.textarea-bottom.sc-ion-textarea-ios .counter.sc-ion-textarea-ios{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-550, #737373);white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.label-text-wrapper.sc-ion-textarea-ios{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text.sc-ion-textarea-ios,.sc-ion-textarea-ios-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-textarea-ios,.textarea-outline-notch-hidden.sc-ion-textarea-ios{display:none}.textarea-wrapper.sc-ion-textarea-ios textarea.sc-ion-textarea-ios{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.textarea-label-placement-start.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios{-ms-flex-direction:row;flex-direction:row}.textarea-label-placement-start.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-end.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.textarea-label-placement-end.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-ios-h .label-text.sc-ion-textarea-ios{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:left top;transform-origin:left top;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;max-width:100%;z-index:2}[dir=rtl].sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.textarea-label-placement-stacked.sc-ion-textarea-ios-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h:dir(rtl) .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:right top;transform-origin:right top}}.textarea-label-placement-stacked.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.textarea-label-placement-stacked[auto-grow].sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios::after,.textarea-label-placement-floating[auto-grow].sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios::after{-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:8px;margin-bottom:0px}.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{opacity:0}.has-focus.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.has-value.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{opacity:1}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,.has-focus.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,.has-value.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.sc-ion-textarea-ios-h{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--padding-top:10px;--padding-end:0px;--padding-bottom:8px;--padding-start:0px;font-size:inherit}.legacy-textarea.sc-ion-textarea-ios-h{--padding-top:10px;--padding-end:8px;--padding-bottom:10px;--padding-start:0}.item-label-stacked.sc-ion-textarea-ios-h,.item-label-stacked .sc-ion-textarea-ios-h,.item-label-floating.sc-ion-textarea-ios-h,.item-label-floating .sc-ion-textarea-ios-h{--padding-top:8px;--padding-bottom:8px;--padding-start:0px}.legacy-textarea.sc-ion-textarea-ios-h .native-textarea[disabled].sc-ion-textarea-ios,.textarea-disabled.sc-ion-textarea-ios-h{opacity:0.3}";
@@ -171,6 +171,8 @@ const Textarea = class {
171
171
  /**
172
172
  * Sets focus on the native `textarea` in `ion-textarea`. Use this method instead of the global
173
173
  * `textarea.focus()`.
174
+ *
175
+ * See [managing focus](/docs/developing/managing-focus) for more information.
174
176
  */
175
177
  async setFocus() {
176
178
  if (this.nativeInput) {
@@ -243,15 +245,36 @@ const Textarea = class {
243
245
  if (!this.clearOnEdit) {
244
246
  return;
245
247
  }
248
+ /**
249
+ * The following keys do not modify the
250
+ * contents of the input. As a result, pressing
251
+ * them should not edit the textarea.
252
+ *
253
+ * We can't check to see if the value of the textarea
254
+ * was changed because we call checkClearOnEdit
255
+ * in a keydown listener, and the key has not yet
256
+ * been added to the textarea.
257
+ *
258
+ * Unlike ion-input, the "Enter" key does modify the
259
+ * textarea by adding a new line, so "Enter" is not
260
+ * included in the IGNORED_KEYS array.
261
+ */
262
+ const IGNORED_KEYS = ['Tab', 'Shift', 'Meta', 'Alt', 'Control'];
246
263
  /**
247
264
  * Clear the textarea if the control has not been previously cleared
248
265
  * during focus.
249
266
  */
250
- if (!this.didTextareaClearOnEdit && this.hasValue() && ev.key !== 'Tab') {
267
+ if (!this.didTextareaClearOnEdit && this.hasValue() && !IGNORED_KEYS.includes(ev.key)) {
251
268
  this.value = '';
252
269
  this.emitInputChange(ev);
270
+ /**
271
+ * Only set this flag if we cleared the input.
272
+ * Otherwise pressing an IGNORED_KEYS first and
273
+ * then an allowed key will cause the input to not
274
+ * be cleared.
275
+ */
276
+ this.didTextareaClearOnEdit = true;
253
277
  }
254
- this.didTextareaClearOnEdit = true;
255
278
  }
256
279
  focusChange() {
257
280
  this.emitStyle();
@@ -5,14 +5,14 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index$2 = require('./index-b0102f48.js');
8
+ const index$2 = require('./index-bbb4336c.js');
9
9
  const config = require('./config-4f60b98a.js');
10
10
  const helpers = require('./helpers-76bb7efb.js');
11
11
  const lockController = require('./lock-controller-6585a42a.js');
12
12
  const index$1 = require('./index-5915f9b3.js');
13
- const overlays = require('./overlays-b1471172.js');
13
+ const overlays = require('./overlays-5c379703.js');
14
14
  const theme = require('./theme-d1c573d2.js');
15
- const ionicGlobal = require('./ionic-global-62510d64.js');
15
+ const ionicGlobal = require('./ionic-global-f4a2093b.js');
16
16
  const animation = require('./animation-cc40e39c.js');
17
17
  const index = require('./index-306a7476.js');
18
18
  require('./framework-delegate-1c29b14a.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-b0102f48.js');
8
+ const index = require('./index-bbb4336c.js');
9
9
  const formController = require('./form-controller-7d42a722.js');
10
10
  const helpers = require('./helpers-76bb7efb.js');
11
11
  const index$2 = require('./index-5915f9b3.js');
@@ -13,7 +13,7 @@ const haptic = require('./haptic-216df36c.js');
13
13
  const dir = require('./dir-94c21456.js');
14
14
  const theme = require('./theme-d1c573d2.js');
15
15
  const index$1 = require('./index-09471526.js');
16
- const ionicGlobal = require('./ionic-global-62510d64.js');
16
+ const ionicGlobal = require('./ionic-global-f4a2093b.js');
17
17
  require('./capacitor-46980811.js');
18
18
  require('./index-306a7476.js');
19
19
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index = require('./index-b0102f48.js');
6
+ const index = require('./index-bbb4336c.js');
7
7
 
8
8
  // TODO(FW-2832): types
9
9
  class Config {
@@ -5,12 +5,12 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-b0102f48.js');
9
- const appGlobals = require('./app-globals-28656db1.js');
10
- require('./ionic-global-62510d64.js');
8
+ const index = require('./index-bbb4336c.js');
9
+ const appGlobals = require('./app-globals-0af482c7.js');
10
+ require('./ionic-global-f4a2093b.js');
11
11
 
12
12
  /*
13
- Stencil Client Patch Browser v4.8.0 | MIT Licensed | https://stenciljs.com
13
+ Stencil Client Patch Browser v4.8.1 | MIT Licensed | https://stenciljs.com
14
14
  */
15
15
  const patchBrowser = () => {
16
16
  const importMeta = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('ionic.cjs.js', document.baseURI).href));
@@ -4,10 +4,10 @@
4
4
  'use strict';
5
5
 
6
6
  const animation = require('./animation-cc40e39c.js');
7
- const index = require('./index-cb3e0ab7.js');
7
+ const index = require('./index-d4c2e02c.js');
8
8
  require('./index-306a7476.js');
9
9
  require('./helpers-76bb7efb.js');
10
- require('./index-b0102f48.js');
10
+ require('./index-bbb4336c.js');
11
11
 
12
12
  const DURATION = 540;
13
13
  // TODO(FW-2832): types
@@ -5,9 +5,9 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-b0102f48.js');
9
- const appGlobals = require('./app-globals-28656db1.js');
10
- require('./ionic-global-62510d64.js');
8
+ const index = require('./index-bbb4336c.js');
9
+ const appGlobals = require('./app-globals-0af482c7.js');
10
+ require('./ionic-global-f4a2093b.js');
11
11
 
12
12
  const defineCustomElements = (win, options) => {
13
13
  if (typeof window === 'undefined') return undefined;
@@ -4,10 +4,10 @@
4
4
  'use strict';
5
5
 
6
6
  const animation = require('./animation-cc40e39c.js');
7
- const index = require('./index-cb3e0ab7.js');
7
+ const index = require('./index-d4c2e02c.js');
8
8
  require('./index-306a7476.js');
9
9
  require('./helpers-76bb7efb.js');
10
- require('./index-b0102f48.js');
10
+ require('./index-bbb4336c.js');
11
11
 
12
12
  const mdTransitionAnimation = (_, opts) => {
13
13
  var _a, _b, _c;
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-306a7476.js');
7
- const ionicGlobal = require('./ionic-global-62510d64.js');
7
+ const ionicGlobal = require('./ionic-global-f4a2093b.js');
8
8
  const frameworkDelegate = require('./framework-delegate-1c29b14a.js');
9
9
  const hardwareBackButton = require('./hardware-back-button-76833cac.js');
10
10
  const helpers = require('./helpers-76bb7efb.js');
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index = require('./index-b0102f48.js');
6
+ const index = require('./index-bbb4336c.js');
7
7
  const index$1 = require('./index-da15e99c.js');
8
8
  const helpers = require('./helpers-76bb7efb.js');
9
9
  require('./index-5915f9b3.js');
@@ -94,7 +94,7 @@
94
94
  ],
95
95
  "compiler": {
96
96
  "name": "@stencil/core",
97
- "version": "4.8.0",
97
+ "version": "4.8.1",
98
98
  "typescriptVersion": "5.2.2"
99
99
  },
100
100
  "collections": [
@@ -198,6 +198,8 @@ export class Input {
198
198
  *
199
199
  * Developers who wish to focus an input when an overlay is presented
200
200
  * should call `setFocus` after `didPresent` has resolved.
201
+ *
202
+ * See [managing focus](/docs/developing/managing-focus) for more information.
201
203
  */
202
204
  async setFocus() {
203
205
  if (this.nativeInput) {
@@ -263,15 +265,32 @@ export class Input {
263
265
  if (!this.shouldClearOnEdit()) {
264
266
  return;
265
267
  }
268
+ /**
269
+ * The following keys do not modify the
270
+ * contents of the input. As a result, pressing
271
+ * them should not edit the input.
272
+ *
273
+ * We can't check to see if the value of the input
274
+ * was changed because we call checkClearOnEdit
275
+ * in a keydown listener, and the key has not yet
276
+ * been added to the input.
277
+ */
278
+ const IGNORED_KEYS = ['Enter', 'Tab', 'Shift', 'Meta', 'Alt', 'Control'];
266
279
  /**
267
280
  * Clear the input if the control has not been previously cleared during focus.
268
281
  * Do not clear if the user hitting enter to submit a form.
269
282
  */
270
- if (!this.didInputClearOnEdit && this.hasValue() && ev.key !== 'Enter' && ev.key !== 'Tab') {
283
+ if (!this.didInputClearOnEdit && this.hasValue() && !IGNORED_KEYS.includes(ev.key)) {
271
284
  this.value = '';
272
285
  this.emitInputChange(ev);
286
+ /**
287
+ * Only set this flag if we cleared the input.
288
+ * Otherwise pressing an IGNORED_KEYS first and
289
+ * then an allowed key will cause the input to not
290
+ * be cleared.
291
+ */
292
+ this.didInputClearOnEdit = true;
273
293
  }
274
- this.didInputClearOnEdit = true;
275
294
  }
276
295
  hasValue() {
277
296
  return this.getValue().length > 0;
@@ -560,7 +579,7 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop
560
579
  "optional": false,
561
580
  "docs": {
562
581
  "tags": [],
563
- "text": "This Boolean attribute lets you specify that a form control should have input focus when the page loads."
582
+ "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."
564
583
  },
565
584
  "attribute": "autofocus",
566
585
  "reflect": false,
@@ -1221,7 +1240,7 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop
1221
1240
  "return": "Promise<void>"
1222
1241
  },
1223
1242
  "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.",
1243
+ "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.",
1225
1244
  "tags": []
1226
1245
  }
1227
1246
  },
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { expect } from "@playwright/test";
5
5
  import { test, configs } from "../../../../utils/test/playwright/index";
6
+ const IGNORED_KEYS = ['Enter', 'Tab', 'Shift', 'Meta', 'Alt', 'Control'];
6
7
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
7
8
  test.describe(title('input: clearOnEdit'), () => {
8
9
  test('should clear when typed into', async ({ page }) => {
@@ -13,21 +14,32 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
13
14
  await ionInput.next();
14
15
  await expect(input).toHaveJSProperty('value', 'h');
15
16
  });
16
- test('should not clear when enter is pressed', async ({ page }) => {
17
- await page.setContent(`<ion-input value="abc" clear-on-edit="true" aria-label="input"></ion-input>`, config);
18
- const input = page.locator('ion-input');
19
- await input.locator('input').focus();
20
- await page.keyboard.press('Enter');
21
- await page.waitForChanges();
22
- await expect(input).toHaveJSProperty('value', 'abc');
17
+ IGNORED_KEYS.forEach((ignoredKey) => {
18
+ test(`should not clear when ${ignoredKey} is pressed`, async ({ page }) => {
19
+ await page.setContent(`<ion-input value="abc" clear-on-edit="true" aria-label="input"></ion-input>`, config);
20
+ const input = page.locator('ion-input');
21
+ await input.locator('input').focus();
22
+ await page.keyboard.press(ignoredKey);
23
+ await page.waitForChanges();
24
+ await expect(input).toHaveJSProperty('value', 'abc');
25
+ });
23
26
  });
24
- test('should not clear when tab is pressed', async ({ page }) => {
27
+ test('should clear after when pressing valid key after pressing ignored key', async ({ page }) => {
28
+ test.info().annotations.push({
29
+ type: 'issue',
30
+ description: 'https://github.com/ionic-team/ionic-framework/issues/28633',
31
+ });
25
32
  await page.setContent(`<ion-input value="abc" clear-on-edit="true" aria-label="input"></ion-input>`, config);
26
33
  const input = page.locator('ion-input');
27
34
  await input.locator('input').focus();
28
- await page.keyboard.press('Tab');
35
+ // ignored
36
+ await page.keyboard.press('Shift');
29
37
  await page.waitForChanges();
30
38
  await expect(input).toHaveJSProperty('value', 'abc');
39
+ // allowed
40
+ await page.keyboard.press('a');
41
+ await page.waitForChanges();
42
+ await expect(input).toHaveJSProperty('value', 'a');
31
43
  });
32
44
  });
33
45
  });
@@ -180,6 +180,8 @@ export class Searchbar {
180
180
  *
181
181
  * Developers who wish to focus an input when an overlay is presented
182
182
  * should call `setFocus` after `didPresent` has resolved.
183
+ *
184
+ * See [managing focus](/docs/developing/managing-focus) for more information.
183
185
  */
184
186
  async setFocus() {
185
187
  if (this.nativeInput) {
@@ -890,7 +892,7 @@ export class Searchbar {
890
892
  "return": "Promise<void>"
891
893
  },
892
894
  "docs": {
893
- "text": "Sets focus on the native `input` in `ion-searchbar`. 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.",
895
+ "text": "Sets focus on the native `input` in `ion-searchbar`. 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.",
894
896
  "tags": []
895
897
  }
896
898
  },
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { expect } from "@playwright/test";
5
5
  import { test, configs } from "../../../../utils/test/playwright/index";
6
+ const IGNORED_KEYS = ['Tab', 'Shift', 'Meta', 'Alt', 'Control'];
6
7
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
7
8
  test.describe(title('textarea: clearOnEdit'), () => {
8
9
  test('should clear when typed into', async ({ page }) => {
@@ -21,5 +22,32 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
21
22
  await page.waitForChanges();
22
23
  await expect(textarea).toHaveJSProperty('value', 'abc');
23
24
  });
25
+ IGNORED_KEYS.forEach((ignoredKey) => {
26
+ test(`should not clear when ${ignoredKey} is pressed`, async ({ page }) => {
27
+ await page.setContent(`<ion-textarea value="abc" clear-on-edit="true" aria-label="textarea"></ion-textarea>`, config);
28
+ const textarea = page.locator('ion-textarea');
29
+ await textarea.locator('textarea').focus();
30
+ await page.keyboard.press(ignoredKey);
31
+ await page.waitForChanges();
32
+ await expect(textarea).toHaveJSProperty('value', 'abc');
33
+ });
34
+ });
35
+ test('should clear after when pressing valid key after pressing ignored key', async ({ page }) => {
36
+ test.info().annotations.push({
37
+ type: 'issue',
38
+ description: 'https://github.com/ionic-team/ionic-framework/issues/28633',
39
+ });
40
+ await page.setContent(`<ion-textarea value="abc" clear-on-edit="true" aria-label="textarea"></ion-textarea>`, config);
41
+ const textarea = page.locator('ion-textarea');
42
+ await textarea.locator('textarea').focus();
43
+ // ignored
44
+ await page.keyboard.press('Shift');
45
+ await page.waitForChanges();
46
+ await expect(textarea).toHaveJSProperty('value', 'abc');
47
+ // allowed
48
+ await page.keyboard.press('a');
49
+ await page.waitForChanges();
50
+ await expect(textarea).toHaveJSProperty('value', 'a');
51
+ });
24
52
  });
25
53
  });
@@ -160,6 +160,8 @@ export class Textarea {
160
160
  /**
161
161
  * Sets focus on the native `textarea` in `ion-textarea`. Use this method instead of the global
162
162
  * `textarea.focus()`.
163
+ *
164
+ * See [managing focus](/docs/developing/managing-focus) for more information.
163
165
  */
164
166
  async setFocus() {
165
167
  if (this.nativeInput) {
@@ -232,15 +234,36 @@ export class Textarea {
232
234
  if (!this.clearOnEdit) {
233
235
  return;
234
236
  }
237
+ /**
238
+ * The following keys do not modify the
239
+ * contents of the input. As a result, pressing
240
+ * them should not edit the textarea.
241
+ *
242
+ * We can't check to see if the value of the textarea
243
+ * was changed because we call checkClearOnEdit
244
+ * in a keydown listener, and the key has not yet
245
+ * been added to the textarea.
246
+ *
247
+ * Unlike ion-input, the "Enter" key does modify the
248
+ * textarea by adding a new line, so "Enter" is not
249
+ * included in the IGNORED_KEYS array.
250
+ */
251
+ const IGNORED_KEYS = ['Tab', 'Shift', 'Meta', 'Alt', 'Control'];
235
252
  /**
236
253
  * Clear the textarea if the control has not been previously cleared
237
254
  * during focus.
238
255
  */
239
- if (!this.didTextareaClearOnEdit && this.hasValue() && ev.key !== 'Tab') {
256
+ if (!this.didTextareaClearOnEdit && this.hasValue() && !IGNORED_KEYS.includes(ev.key)) {
240
257
  this.value = '';
241
258
  this.emitInputChange(ev);
259
+ /**
260
+ * Only set this flag if we cleared the input.
261
+ * Otherwise pressing an IGNORED_KEYS first and
262
+ * then an allowed key will cause the input to not
263
+ * be cleared.
264
+ */
265
+ this.didTextareaClearOnEdit = true;
242
266
  }
243
- this.didTextareaClearOnEdit = true;
244
267
  }
245
268
  focusChange() {
246
269
  this.emitStyle();
@@ -448,7 +471,7 @@ Developers can use the "legacy" property to continue using the legacy form marku
448
471
  "optional": false,
449
472
  "docs": {
450
473
  "tags": [],
451
- "text": "This Boolean attribute lets you specify that a form control should have input focus when the page loads."
474
+ "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."
452
475
  },
453
476
  "attribute": "autofocus",
454
477
  "reflect": false,
@@ -1035,7 +1058,7 @@ Developers can use the "legacy" property to continue using the legacy form marku
1035
1058
  "return": "Promise<void>"
1036
1059
  },
1037
1060
  "docs": {
1038
- "text": "Sets focus on the native `textarea` in `ion-textarea`. Use this method instead of the global\n`textarea.focus()`.",
1061
+ "text": "Sets focus on the native `textarea` in `ion-textarea`. Use this method instead of the global\n`textarea.focus()`.\n\nSee [managing focus](/docs/developing/managing-focus) for more information.",
1039
1062
  "tags": []
1040
1063
  }
1041
1064
  },
package/dist/docs.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2023-12-01T20:19:02",
2
+ "timestamp": "2023-12-05T14:57:32",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
- "version": "4.8.0",
5
+ "version": "4.8.1",
6
6
  "typescriptVersion": "5.2.2"
7
7
  },
8
8
  "components": [
@@ -9991,7 +9991,7 @@
9991
9991
  "mutable": false,
9992
9992
  "attr": "autofocus",
9993
9993
  "reflectToAttr": false,
9994
- "docs": "This Boolean attribute lets you specify that a form control should have input focus when the page loads.",
9994
+ "docs": "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.",
9995
9995
  "docsTags": [],
9996
9996
  "default": "false",
9997
9997
  "values": [
@@ -10978,7 +10978,7 @@
10978
10978
  },
10979
10979
  "signature": "setFocus() => Promise<void>",
10980
10980
  "parameters": [],
10981
- "docs": "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.",
10981
+ "docs": "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.",
10982
10982
  "docsTags": []
10983
10983
  }
10984
10984
  ],
@@ -22977,7 +22977,7 @@
22977
22977
  },
22978
22978
  "signature": "setFocus() => Promise<void>",
22979
22979
  "parameters": [],
22980
- "docs": "Sets focus on the native `input` in `ion-searchbar`. 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.",
22980
+ "docs": "Sets focus on the native `input` in `ion-searchbar`. 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.",
22981
22981
  "docsTags": []
22982
22982
  }
22983
22983
  ],
@@ -26100,7 +26100,7 @@
26100
26100
  "mutable": false,
26101
26101
  "attr": "autofocus",
26102
26102
  "reflectToAttr": false,
26103
- "docs": "This Boolean attribute lets you specify that a form control should have input focus when the page loads.",
26103
+ "docs": "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.",
26104
26104
  "docsTags": [],
26105
26105
  "default": "false",
26106
26106
  "values": [
@@ -26918,7 +26918,7 @@
26918
26918
  },
26919
26919
  "signature": "setFocus() => Promise<void>",
26920
26920
  "parameters": [],
26921
- "docs": "Sets focus on the native `textarea` in `ion-textarea`. Use this method instead of the global\n`textarea.focus()`.",
26921
+ "docs": "Sets focus on the native `textarea` in `ion-textarea`. Use this method instead of the global\n`textarea.focus()`.\n\nSee [managing focus](/docs/developing/managing-focus) for more information.",
26922
26922
  "docsTags": []
26923
26923
  }
26924
26924
  ],
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { i as initialize } from './ionic-global-6c78e871.js';
4
+ import { i as initialize } from './ionic-global-c0cda98e.js';
5
5
 
6
6
  const globalScripts = initialize;
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask } from './index-39329c6f.js';
4
+ import { w as writeTask } from './index-08d686eb.js';
5
5
  import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-152c4172.js';
6
6
  import { createGesture } from './index-2cf77112.js';
7
7
 
@@ -263,6 +263,17 @@ const convertToPrivate = (node) => {
263
263
  vnode.$name$ = node.vname;
264
264
  return vnode;
265
265
  };
266
+ /**
267
+ * Entrypoint of the client-side hydration process. Facilitates calls to hydrate the
268
+ * document and all its nodes.
269
+ *
270
+ * This process will also reconstruct the shadow root and slot DOM nodes for components using shadow DOM.
271
+ *
272
+ * @param hostElm The element to hydrate.
273
+ * @param tagName The element's tag name.
274
+ * @param hostId The host ID assigned to the element by the server.
275
+ * @param hostRef The host reference for the element.
276
+ */
266
277
  const initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
267
278
  const endHydrate = createTime('hydrateClient', tagName);
268
279
  const shadowRoot = hostElm.shadowRoot;
@@ -280,6 +291,8 @@ const initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
280
291
  const orgLocationId = c.$hostId$ + '.' + c.$nodeId$;
281
292
  const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId);
282
293
  const node = c.$elm$;
294
+ // Put the node back in its original location since the native Shadow DOM
295
+ // can handle rendering it its correct location now
283
296
  if (orgLocationNode && supportsShadow && orgLocationNode['s-en'] === '') {
284
297
  orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling);
285
298
  }
@@ -301,6 +314,22 @@ const initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
301
314
  }
302
315
  endHydrate();
303
316
  };
317
+ /**
318
+ * Recursively constructs the virtual node tree for a host element and its children.
319
+ * The tree is constructed by parsing the annotations set on the nodes by the server.
320
+ *
321
+ * In addition to constructing the vNode tree, we also track information about the node's
322
+ * descendants like which are slots, which should exist in the shadow root, and which
323
+ * are nodes that should be rendered as children of the parent node.
324
+ *
325
+ * @param parentVNode The vNode representing the parent node.
326
+ * @param childRenderNodes An array of all child nodes in the parent's node tree.
327
+ * @param slotNodes An array of all slot nodes in the parent's node tree.
328
+ * @param shadowRootNodes An array all nodes that should be rendered in the shadow root in the parent's node tree.
329
+ * @param hostElm The parent element.
330
+ * @param node The node to construct the vNode tree for.
331
+ * @param hostId The host ID assigned to the element by the server.
332
+ */
304
333
  const clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node, hostId) => {
305
334
  let childNodeType;
306
335
  let childIdSplt;
@@ -445,6 +474,13 @@ const clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes
445
474
  parentVNode.$children$ = [vnode];
446
475
  }
447
476
  };
477
+ /**
478
+ * Recursively locate any comments representing an original location for a node in a node's
479
+ * children or shadowRoot children.
480
+ *
481
+ * @param node The node to search.
482
+ * @param orgLocNodes A map of the original location annotation and the current node being searched.
483
+ */
448
484
  const initializeDocumentHydrate = (node, orgLocNodes) => {
449
485
  if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {
450
486
  let i = 0;
@@ -2527,12 +2563,14 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2527
2563
  // If we have styles, add them to the DOM
2528
2564
  if (dataStyles.innerHTML.length) {
2529
2565
  dataStyles.setAttribute('data-styles', '');
2530
- head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);
2531
2566
  // Apply CSP nonce to the style tag if it exists
2532
2567
  const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
2533
2568
  if (nonce != null) {
2534
2569
  dataStyles.setAttribute('nonce', nonce);
2535
2570
  }
2571
+ // Insert the styles into the document head
2572
+ // NOTE: this _needs_ to happen last so we can ensure the nonce (and other attributes) are applied
2573
+ head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);
2536
2574
  }
2537
2575
  // Process deferred connectedCallbacks now all components have been registered
2538
2576
  isBootstrapping = false;