voyager-ionic-core 7.5.1 → 7.5.5

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 (581) hide show
  1. package/components/action-sheet.js +2 -2
  2. package/components/alert.js +2 -2
  3. package/components/animation.js +18 -3
  4. package/components/checkbox.js +2 -2
  5. package/components/form-controller.js +1 -5
  6. package/components/index8.js +0 -1
  7. package/components/input-shims.js +9 -1
  8. package/components/ion-accordion-group.js +11 -1
  9. package/components/ion-datetime.js +48 -23
  10. package/components/ion-fab-list.js +1 -1
  11. package/components/ion-fab.js +1 -1
  12. package/components/ion-header.js +1 -1
  13. package/components/ion-input.js +11 -4
  14. package/components/ion-item-divider.js +2 -2
  15. package/components/ion-item-option.js +2 -2
  16. package/components/ion-menu.js +17 -5
  17. package/components/ion-modal.js +8 -8
  18. package/components/ion-range.js +2 -2
  19. package/components/ion-refresher.js +8 -1
  20. package/components/ion-reorder.js +2 -2
  21. package/components/ion-searchbar.js +10 -3
  22. package/components/ion-segment.js +43 -17
  23. package/components/ion-select.js +2 -2
  24. package/components/ion-tab-bar.js +2 -2
  25. package/components/ion-tab-button.js +2 -2
  26. package/components/ion-textarea.js +11 -4
  27. package/components/ion-title.js +1 -1
  28. package/components/ion-toast.js +2 -2
  29. package/components/ion-toggle.js +2 -2
  30. package/components/item.js +2 -2
  31. package/components/list-header.js +2 -2
  32. package/components/list.js +2 -2
  33. package/components/picker-internal.js +2 -2
  34. package/components/popover.js +2 -2
  35. package/components/radio-group.js +10 -1
  36. package/components/radio.js +2 -3
  37. package/components/watch-options.js +14 -3
  38. package/css/core.css.map +1 -1
  39. package/css/display.css.map +1 -1
  40. package/css/float-elements.css.map +1 -1
  41. package/css/global.bundle.css.map +1 -1
  42. package/css/ionic.bundle.css.map +1 -1
  43. package/css/padding.css.map +1 -1
  44. package/css/structure.css.map +1 -1
  45. package/css/text-alignment.css.map +1 -1
  46. package/css/text-transformation.css.map +1 -1
  47. package/css/typography.css.map +1 -1
  48. package/css/utils.bundle.css.map +1 -1
  49. package/dist/cjs/{animation-c8bdd3c7.js → animation-1083855c.js} +18 -3
  50. package/dist/cjs/{app-globals-fe1ad535.js → app-globals-1d4c1dbf.js} +1 -1
  51. package/dist/cjs/{button-active-c0ff1915.js → button-active-af897e0e.js} +1 -1
  52. package/dist/cjs/{form-controller-5e223b54.js → form-controller-9343050c.js} +1 -5
  53. package/dist/cjs/{index-eccba000.js → index-573877f3.js} +3 -3
  54. package/dist/cjs/{index-305a23dc.js → index-c2940dc1.js} +127 -57
  55. package/dist/cjs/{index-5e7529f6.js → index-d7561763.js} +2 -2
  56. package/dist/cjs/{index-10873539.js → index-da2c7a37.js} +0 -1
  57. package/dist/cjs/index.cjs.js +8 -8
  58. package/dist/cjs/{input-shims-da7dc0de.js → input-shims-b0a75a01.js} +10 -2
  59. package/dist/cjs/ion-accordion_2.cjs.entry.js +13 -3
  60. package/dist/cjs/ion-action-sheet.cjs.entry.js +7 -7
  61. package/dist/cjs/ion-alert.cjs.entry.js +7 -7
  62. package/dist/cjs/ion-app_8.cjs.entry.js +8 -8
  63. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  65. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  66. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  68. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-checkbox.cjs.entry.js +5 -5
  70. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  71. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  72. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-datetime_3.cjs.entry.js +52 -27
  74. package/dist/cjs/ion-fab_3.cjs.entry.js +4 -4
  75. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  77. package/dist/cjs/ion-input.cjs.entry.js +13 -6
  78. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  79. package/dist/cjs/ion-item_8.cjs.entry.js +10 -10
  80. package/dist/cjs/ion-loading.cjs.entry.js +4 -4
  81. package/dist/cjs/ion-menu_3.cjs.entry.js +22 -10
  82. package/dist/cjs/ion-modal.cjs.entry.js +14 -14
  83. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
  84. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
  85. package/dist/cjs/ion-picker-internal.cjs.entry.js +3 -3
  86. package/dist/cjs/ion-popover.cjs.entry.js +7 -7
  87. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  88. package/dist/cjs/ion-radio_2.cjs.entry.js +15 -7
  89. package/dist/cjs/ion-range.cjs.entry.js +6 -6
  90. package/dist/cjs/ion-refresher_2.cjs.entry.js +12 -5
  91. package/dist/cjs/ion-reorder_2.cjs.entry.js +5 -5
  92. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  93. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  94. package/dist/cjs/ion-searchbar.cjs.entry.js +11 -4
  95. package/dist/cjs/ion-segment_2.cjs.entry.js +45 -19
  96. package/dist/cjs/ion-select_3.cjs.entry.js +7 -7
  97. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  98. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
  100. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  101. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  102. package/dist/cjs/ion-textarea.cjs.entry.js +13 -6
  103. package/dist/cjs/ion-toast.cjs.entry.js +6 -6
  104. package/dist/cjs/ion-toggle.cjs.entry.js +5 -5
  105. package/dist/cjs/{ionic-global-fb752503.js → ionic-global-ea2901a3.js} +1 -1
  106. package/dist/cjs/ionic.cjs.js +4 -4
  107. package/dist/cjs/{ios.transition-5af5991e.js → ios.transition-ac909bc8.js} +3 -3
  108. package/dist/cjs/loader.cjs.js +3 -3
  109. package/dist/cjs/{md.transition-1e740a6a.js → md.transition-907af519.js} +3 -3
  110. package/dist/cjs/{overlays-1a734051.js → overlays-2ffc5f27.js} +1 -1
  111. package/dist/cjs/{status-tap-778e8054.js → status-tap-3fb2391a.js} +2 -2
  112. package/dist/cjs/{watch-options-f3f77e54.js → watch-options-53bbb124.js} +14 -3
  113. package/dist/collection/collection-manifest.json +1 -1
  114. package/dist/collection/components/accordion-group/accordion-group.js +10 -0
  115. package/dist/collection/components/accordion-group/accordion-group.md.css +2 -2
  116. package/dist/collection/components/action-sheet/action-sheet.ios.css +18 -5
  117. package/dist/collection/components/action-sheet/action-sheet.md.css +18 -5
  118. package/dist/collection/components/action-sheet/test/basic/action-sheet.e2e.js +59 -0
  119. package/dist/collection/components/alert/alert.ios.css +37 -4
  120. package/dist/collection/components/alert/alert.md.css +37 -4
  121. package/dist/collection/components/alert/test/a11y/alert.e2e.js +48 -0
  122. package/dist/collection/components/checkbox/checkbox.ios.css +3 -3
  123. package/dist/collection/components/checkbox/checkbox.md.css +3 -3
  124. package/dist/collection/components/datetime/datetime.ios.css +24 -4
  125. package/dist/collection/components/datetime/datetime.js +47 -22
  126. package/dist/collection/components/datetime/datetime.md.css +24 -8
  127. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +66 -0
  128. package/dist/collection/components/datetime/test/disabled/datetime.e2e.js +68 -0
  129. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +113 -0
  130. package/dist/collection/components/fab/fab.css +24 -36
  131. package/dist/collection/components/fab/test/safe-area/fab.e2e.js +63 -0
  132. package/dist/collection/components/fab-list/fab-list.css +2 -2
  133. package/dist/collection/components/header/header.ios.css +4 -1
  134. package/dist/collection/components/input/input.ios.css +15 -15
  135. package/dist/collection/components/input/input.js +9 -2
  136. package/dist/collection/components/input/input.md.css +22 -10
  137. package/dist/collection/components/item/item.ios.css +60 -12
  138. package/dist/collection/components/item/item.md.css +63 -15
  139. package/dist/collection/components/item/test/basic/item.e2e.js +26 -0
  140. package/dist/collection/components/item-divider/item-divider.ios.css +35 -8
  141. package/dist/collection/components/item-divider/item-divider.md.css +35 -8
  142. package/dist/collection/components/item-divider/test/basic/item-divider.e2e.js +22 -0
  143. package/dist/collection/components/item-option/item-option.ios.css +0 -10
  144. package/dist/collection/components/item-option/item-option.md.css +0 -10
  145. package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +77 -0
  146. package/dist/collection/components/label/label.ios.css +1 -1
  147. package/dist/collection/components/list/list.ios.css +15 -1
  148. package/dist/collection/components/list/list.md.css +41 -3
  149. package/dist/collection/components/list/test/lines/list.e2e.js +143 -0
  150. package/dist/collection/components/list-header/list-header.ios.css +15 -2
  151. package/dist/collection/components/list-header/list-header.md.css +15 -2
  152. package/dist/collection/components/list-header/test/basic/list-header.e2e.js +28 -0
  153. package/dist/collection/components/menu/menu.ios.css +4 -4
  154. package/dist/collection/components/menu/menu.js +15 -3
  155. package/dist/collection/components/menu/menu.md.css +4 -4
  156. package/dist/collection/components/modal/animations/ios.enter.js +3 -3
  157. package/dist/collection/components/modal/animations/ios.leave.js +4 -4
  158. package/dist/collection/components/modal/modal.ios.css +2 -2
  159. package/dist/collection/components/picker/picker.ios.css +1 -1
  160. package/dist/collection/components/picker/picker.md.css +1 -1
  161. package/dist/collection/components/picker-internal/picker-internal.ios.css +2 -2
  162. package/dist/collection/components/picker-internal/picker-internal.md.css +2 -2
  163. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +5 -0
  164. package/dist/collection/components/popover/popover.ios.css +4 -4
  165. package/dist/collection/components/popover/popover.md.css +2 -2
  166. package/dist/collection/components/radio/radio.ios.css +4 -4
  167. package/dist/collection/components/radio/radio.js +5 -2
  168. package/dist/collection/components/radio/radio.md.css +4 -4
  169. package/dist/collection/components/radio/test/legacy/a11y/radio.e2e.js +5 -5
  170. package/dist/collection/components/radio-group/radio-group.js +10 -1
  171. package/dist/collection/components/range/range.ios.css +1 -1
  172. package/dist/collection/components/range/range.md.css +1 -1
  173. package/dist/collection/components/refresher/refresher.utils.js +8 -1
  174. package/dist/collection/components/reorder/reorder.ios.css +1 -34
  175. package/dist/collection/components/reorder/reorder.md.css +1 -34
  176. package/dist/collection/components/searchbar/searchbar.js +9 -2
  177. package/dist/collection/components/searchbar/searchbar.md.css +12 -6
  178. package/dist/collection/components/searchbar/test/basic/searchbar.e2e.js +25 -0
  179. package/dist/collection/components/segment/segment.js +43 -17
  180. package/dist/collection/components/select/select.ios.css +12 -15
  181. package/dist/collection/components/select/select.md.css +16 -7
  182. package/dist/collection/components/split-pane/test/multiple/split-pane.e2e.js +31 -0
  183. package/dist/collection/components/tab-bar/tab-bar.ios.css +4 -4
  184. package/dist/collection/components/tab-bar/tab-bar.md.css +4 -4
  185. package/dist/collection/components/tab-bar/test/basic/tab-bar.e2e.js +43 -0
  186. package/dist/collection/components/tab-button/tab-button.ios.css +3 -3
  187. package/dist/collection/components/tab-button/tab-button.md.css +3 -3
  188. package/dist/collection/components/textarea/textarea.ios.css +19 -19
  189. package/dist/collection/components/textarea/textarea.js +9 -2
  190. package/dist/collection/components/textarea/textarea.md.css +26 -20
  191. package/dist/collection/components/title/title.ios.css +2 -2
  192. package/dist/collection/components/toast/toast.ios.css +1 -1
  193. package/dist/collection/components/toast/toast.md.css +1 -1
  194. package/dist/collection/components/toggle/toggle.ios.css +3 -3
  195. package/dist/collection/components/toggle/toggle.md.css +3 -3
  196. package/dist/collection/utils/animation/animation.js +18 -3
  197. package/dist/collection/utils/content/index.js +0 -1
  198. package/dist/collection/utils/forms/form-controller.js +1 -5
  199. package/dist/collection/utils/input-shims/hacks/common.js +9 -1
  200. package/dist/collection/utils/watch-options.js +14 -3
  201. package/dist/docs.json +3 -3
  202. package/dist/esm/{animation-92066c62.js → animation-8aa13916.js} +18 -3
  203. package/dist/esm/{app-globals-ec816a70.js → app-globals-2398e405.js} +1 -1
  204. package/dist/esm/{button-active-d926d4f4.js → button-active-ce5cba4c.js} +1 -1
  205. package/dist/esm/{form-controller-ed77647a.js → form-controller-64edeaad.js} +1 -5
  206. package/dist/esm/{index-df55802d.js → index-0aa6e61f.js} +2 -2
  207. package/dist/esm/{index-746a238e.js → index-4392efa5.js} +0 -1
  208. package/dist/esm/{index-a09eac70.js → index-6a0ccabb.js} +3 -3
  209. package/dist/esm/{index-b49b173c.js → index-7c9b1bca.js} +127 -57
  210. package/dist/esm/index.js +8 -8
  211. package/dist/esm/{input-shims-d78a3c77.js → input-shims-d0c93e5d.js} +10 -2
  212. package/dist/esm/ion-accordion_2.entry.js +13 -3
  213. package/dist/esm/ion-action-sheet.entry.js +7 -7
  214. package/dist/esm/ion-alert.entry.js +7 -7
  215. package/dist/esm/ion-app_8.entry.js +8 -8
  216. package/dist/esm/ion-avatar_3.entry.js +2 -2
  217. package/dist/esm/ion-back-button.entry.js +2 -2
  218. package/dist/esm/ion-backdrop.entry.js +2 -2
  219. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  220. package/dist/esm/ion-button_2.entry.js +2 -2
  221. package/dist/esm/ion-card_5.entry.js +2 -2
  222. package/dist/esm/ion-checkbox.entry.js +5 -5
  223. package/dist/esm/ion-chip.entry.js +2 -2
  224. package/dist/esm/ion-col_3.entry.js +2 -2
  225. package/dist/esm/ion-datetime-button.entry.js +2 -2
  226. package/dist/esm/ion-datetime_3.entry.js +52 -27
  227. package/dist/esm/ion-fab_3.entry.js +4 -4
  228. package/dist/esm/ion-img.entry.js +2 -2
  229. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  230. package/dist/esm/ion-input.entry.js +14 -7
  231. package/dist/esm/ion-item-option_3.entry.js +6 -6
  232. package/dist/esm/ion-item_8.entry.js +10 -10
  233. package/dist/esm/ion-loading.entry.js +4 -4
  234. package/dist/esm/ion-menu_3.entry.js +22 -10
  235. package/dist/esm/ion-modal.entry.js +14 -14
  236. package/dist/esm/ion-nav_2.entry.js +3 -3
  237. package/dist/esm/ion-picker-column-internal.entry.js +2 -2
  238. package/dist/esm/ion-picker-internal.entry.js +3 -3
  239. package/dist/esm/ion-popover.entry.js +7 -7
  240. package/dist/esm/ion-progress-bar.entry.js +2 -2
  241. package/dist/esm/ion-radio_2.entry.js +15 -7
  242. package/dist/esm/ion-range.entry.js +6 -6
  243. package/dist/esm/ion-refresher_2.entry.js +12 -5
  244. package/dist/esm/ion-reorder_2.entry.js +5 -5
  245. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  246. package/dist/esm/ion-route_4.entry.js +2 -2
  247. package/dist/esm/ion-searchbar.entry.js +12 -5
  248. package/dist/esm/ion-segment_2.entry.js +45 -19
  249. package/dist/esm/ion-select_3.entry.js +7 -7
  250. package/dist/esm/ion-spinner.entry.js +2 -2
  251. package/dist/esm/ion-split-pane.entry.js +2 -2
  252. package/dist/esm/ion-tab-bar_2.entry.js +6 -6
  253. package/dist/esm/ion-tab_2.entry.js +1 -1
  254. package/dist/esm/ion-text.entry.js +2 -2
  255. package/dist/esm/ion-textarea.entry.js +14 -7
  256. package/dist/esm/ion-toast.entry.js +6 -6
  257. package/dist/esm/ion-toggle.entry.js +5 -5
  258. package/dist/esm/{ionic-global-246ca78f.js → ionic-global-40e42e7f.js} +1 -1
  259. package/dist/esm/ionic.js +5 -5
  260. package/dist/esm/{ios.transition-4d1322d6.js → ios.transition-1651c430.js} +3 -3
  261. package/dist/esm/loader.js +4 -4
  262. package/dist/esm/{md.transition-66b425d0.js → md.transition-66f18369.js} +3 -3
  263. package/dist/esm/{overlays-cec6bac8.js → overlays-6c9feb7e.js} +1 -1
  264. package/dist/esm/{status-tap-9aeeaca5.js → status-tap-9ce68758.js} +2 -2
  265. package/dist/esm/{watch-options-355a920a.js → watch-options-02d8498b.js} +14 -3
  266. package/dist/esm-es5/animation-8aa13916.js +4 -0
  267. package/dist/esm-es5/app-globals-2398e405.js +4 -0
  268. package/dist/esm-es5/{button-active-d926d4f4.js → button-active-ce5cba4c.js} +1 -1
  269. package/dist/esm-es5/config-96c9ace3.js +1 -1
  270. package/dist/esm-es5/cubic-bezier-66542bc5.js +1 -1
  271. package/dist/esm-es5/data-44d9e816.js +1 -1
  272. package/dist/esm-es5/dir-912e3e13.js +1 -1
  273. package/dist/esm-es5/focus-visible-85493433.js +1 -1
  274. package/dist/esm-es5/form-controller-64edeaad.js +4 -0
  275. package/dist/esm-es5/framework-delegate-aa433dea.js +1 -1
  276. package/dist/esm-es5/gesture-controller-0fa396c4.js +1 -1
  277. package/dist/esm-es5/haptic-1243b917.js +1 -1
  278. package/dist/esm-es5/hardware-back-button-39299f84.js +1 -1
  279. package/dist/esm-es5/helpers-3379ba19.js +1 -1
  280. package/dist/esm-es5/index-0aa6e61f.js +4 -0
  281. package/dist/esm-es5/index-4392efa5.js +4 -0
  282. package/dist/esm-es5/{index-a09eac70.js → index-6a0ccabb.js} +1 -1
  283. package/dist/esm-es5/index-7c9b1bca.js +5 -0
  284. package/dist/esm-es5/index-f0cc4e14.js +1 -1
  285. package/dist/esm-es5/index-ff313b19.js +1 -1
  286. package/dist/esm-es5/index.js +1 -1
  287. package/dist/esm-es5/input-shims-d0c93e5d.js +4 -0
  288. package/dist/esm-es5/input.utils-ec063df4.js +1 -1
  289. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  290. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  291. package/dist/esm-es5/ion-alert.entry.js +1 -1
  292. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  293. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  294. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  295. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  296. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  297. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  298. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  299. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  300. package/dist/esm-es5/ion-chip.entry.js +1 -1
  301. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  302. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  303. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  304. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  305. package/dist/esm-es5/ion-img.entry.js +1 -1
  306. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  307. package/dist/esm-es5/ion-input.entry.js +1 -1
  308. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  309. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  310. package/dist/esm-es5/ion-loading.entry.js +1 -1
  311. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  312. package/dist/esm-es5/ion-modal.entry.js +1 -1
  313. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  314. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  315. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  316. package/dist/esm-es5/ion-popover.entry.js +1 -1
  317. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  318. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  319. package/dist/esm-es5/ion-range.entry.js +1 -1
  320. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  321. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  322. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  323. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  324. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  325. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  326. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  327. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  328. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  329. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  330. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  331. package/dist/esm-es5/ion-text.entry.js +1 -1
  332. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  333. package/dist/esm-es5/ion-toast.entry.js +1 -1
  334. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  335. package/dist/esm-es5/ionic-global-40e42e7f.js +4 -0
  336. package/dist/esm-es5/ionic.js +1 -1
  337. package/dist/esm-es5/{ios.transition-4d1322d6.js → ios.transition-1651c430.js} +1 -1
  338. package/dist/esm-es5/keyboard-b551279d.js +1 -1
  339. package/dist/esm-es5/keyboard-controller-0c2dce71.js +1 -1
  340. package/dist/esm-es5/loader.js +1 -1
  341. package/dist/esm-es5/{md.transition-66b425d0.js → md.transition-66f18369.js} +1 -1
  342. package/dist/esm-es5/notch-controller-8c9c0e54.js +1 -1
  343. package/dist/esm-es5/overlays-6c9feb7e.js +4 -0
  344. package/dist/esm-es5/spinner-configs-d09fbbbb.js +1 -1
  345. package/dist/esm-es5/status-tap-9ce68758.js +4 -0
  346. package/dist/esm-es5/swipe-back-cd4295f3.js +1 -1
  347. package/dist/esm-es5/watch-options-02d8498b.js +4 -0
  348. package/dist/html.html-data.json +1 -1
  349. package/dist/ionic/index.esm.js +1 -1
  350. package/dist/ionic/ionic.esm.js +1 -1
  351. package/dist/ionic/ionic.js +1 -1
  352. package/dist/ionic/p-0330f0a3.system.entry.js +4 -0
  353. package/dist/ionic/{p-9e106f58.entry.js → p-0492946a.entry.js} +1 -1
  354. package/dist/ionic/{p-78030c1f.system.entry.js → p-07d9e9cd.system.entry.js} +1 -1
  355. package/dist/ionic/{p-e0f0d55f.system.js → p-09d142b3.system.js} +1 -1
  356. package/dist/ionic/{p-fcf47f80.entry.js → p-0a794e83.entry.js} +1 -1
  357. package/dist/ionic/p-0d8e9393.entry.js +4 -0
  358. package/dist/ionic/p-0dc0d9b5.entry.js +4 -0
  359. package/dist/ionic/p-0e23256e.system.entry.js +4 -0
  360. package/dist/ionic/p-14aca3fb.entry.js +4 -0
  361. package/dist/ionic/p-14b4348c.system.js +4 -0
  362. package/dist/ionic/{p-108f9d49.entry.js → p-174f3446.entry.js} +1 -1
  363. package/dist/ionic/{p-c575a7b8.system.entry.js → p-18e01b30.system.entry.js} +1 -1
  364. package/dist/ionic/p-1a8ae7a7.system.entry.js +4 -0
  365. package/dist/ionic/p-1cb5f2f8.system.entry.js +4 -0
  366. package/dist/ionic/{p-c42c86c0.system.entry.js → p-1d269117.system.entry.js} +1 -1
  367. package/dist/ionic/{p-0ac3fb2c.entry.js → p-1dc91702.entry.js} +1 -1
  368. package/dist/ionic/p-1e5165db.system.entry.js +4 -0
  369. package/dist/ionic/{p-0b00b937.entry.js → p-1e86a71b.entry.js} +1 -1
  370. package/dist/ionic/p-1f4f0d59.system.entry.js +4 -0
  371. package/dist/ionic/p-20cf4994.js +4 -0
  372. package/dist/ionic/p-236063ec.system.entry.js +4 -0
  373. package/dist/ionic/p-2b89ea1b.system.js +1 -1
  374. package/dist/ionic/p-2e8e0045.js +4 -0
  375. package/dist/ionic/{p-ce7d67a7.system.entry.js → p-34d2de14.system.entry.js} +2 -2
  376. package/dist/ionic/{p-303bf1e8.system.entry.js → p-352c0232.system.entry.js} +2 -2
  377. package/dist/ionic/p-3602001b.system.js +4 -0
  378. package/dist/ionic/p-3632220b.system.js +1 -1
  379. package/dist/ionic/p-377c636c.system.entry.js +4 -0
  380. package/dist/ionic/{p-f9fa802c.system.entry.js → p-39044fe6.system.entry.js} +2 -2
  381. package/dist/ionic/{p-38089641.entry.js → p-3ce8c3e3.entry.js} +1 -1
  382. package/dist/ionic/{p-eb8dc56f.system.entry.js → p-3d7fea9b.system.entry.js} +1 -1
  383. package/dist/ionic/p-3de79805.entry.js +4 -0
  384. package/dist/ionic/{p-0bbede6a.system.entry.js → p-3fb57e1b.system.entry.js} +1 -1
  385. package/dist/ionic/{p-755b2917.system.js → p-40903d34.system.js} +1 -1
  386. package/dist/ionic/p-41122cd6.system.js +4 -0
  387. package/dist/ionic/p-41477ad9.system.js +1 -1
  388. package/dist/ionic/p-44bc8b45.system.js +2 -2
  389. package/dist/ionic/p-4518e4c0.system.entry.js +4 -0
  390. package/dist/ionic/{p-eab10949.system.entry.js → p-45da1e68.system.entry.js} +1 -1
  391. package/dist/ionic/p-4794e0ac.system.entry.js +4 -0
  392. package/dist/ionic/p-479cdbf8.system.js +2 -2
  393. package/dist/ionic/{p-4e50b8d1.entry.js → p-48d9faa7.entry.js} +1 -1
  394. package/dist/ionic/{p-8d6728a1.system.entry.js → p-4a142496.system.entry.js} +1 -1
  395. package/dist/ionic/p-4c80afe1.system.entry.js +4 -0
  396. package/dist/ionic/p-4cd588b3.system.entry.js +4 -0
  397. package/dist/ionic/{p-afb6658f.entry.js → p-4dbac22d.entry.js} +1 -1
  398. package/dist/ionic/{p-61b192a4.system.entry.js → p-4e6a1efb.system.entry.js} +1 -1
  399. package/dist/ionic/p-4ecb5692.entry.js +4 -0
  400. package/dist/ionic/p-5370e786.js +4 -0
  401. package/dist/ionic/p-55ed230e.system.js +4 -0
  402. package/dist/ionic/p-56dc022e.system.js +1 -1
  403. package/dist/ionic/p-5aac9314.system.js +4 -0
  404. package/dist/ionic/p-5bd4e009.entry.js +4 -0
  405. package/dist/ionic/{p-6f8a95a3.system.entry.js → p-5cfb3feb.system.entry.js} +2 -2
  406. package/dist/ionic/{p-181b7c2a.js → p-5d711127.js} +1 -1
  407. package/dist/ionic/p-5da0eb3e.system.entry.js +4 -0
  408. package/dist/ionic/p-5deff017.entry.js +4 -0
  409. package/dist/ionic/p-613d4042.system.js +2 -2
  410. package/dist/ionic/p-63d519fb.entry.js +4 -0
  411. package/dist/ionic/{p-8083aadb.entry.js → p-63f08fe3.entry.js} +1 -1
  412. package/dist/ionic/{p-35b26732.entry.js → p-64296b15.entry.js} +1 -1
  413. package/dist/ionic/p-64ed03a3.entry.js +4 -0
  414. package/dist/ionic/p-664d2b07.system.entry.js +4 -0
  415. package/dist/ionic/p-67aab78f.js +4 -0
  416. package/dist/ionic/{p-e0f52215.system.entry.js → p-67e18f02.system.entry.js} +1 -1
  417. package/dist/ionic/{p-572cce26.system.entry.js → p-67ed452a.system.entry.js} +2 -2
  418. package/dist/ionic/p-67eecef4.system.js +4 -0
  419. package/dist/ionic/{p-76378400.js → p-6c3d5383.js} +1 -1
  420. package/dist/ionic/{p-1289b3b5.system.entry.js → p-6e23777e.system.entry.js} +2 -2
  421. package/dist/ionic/{p-2a8eeef7.system.js → p-702d85d8.system.js} +1 -1
  422. package/dist/ionic/{p-1edb53a1.entry.js → p-7176cea3.entry.js} +1 -1
  423. package/dist/ionic/p-73411c1b.entry.js +4 -0
  424. package/dist/ionic/p-73420380.js +4 -0
  425. package/dist/ionic/{p-6ea2e653.entry.js → p-744973f3.entry.js} +1 -1
  426. package/dist/ionic/p-772f6c84.system.js +2 -2
  427. package/dist/ionic/p-77e7a9c8.entry.js +4 -0
  428. package/dist/ionic/p-7ab6fc5a.system.entry.js +4 -0
  429. package/dist/ionic/{p-31119a15.entry.js → p-7cee75c0.entry.js} +1 -1
  430. package/dist/ionic/{p-cf62e1c8.js → p-800ef057.js} +1 -1
  431. package/dist/ionic/p-815c2fba.system.js +2 -2
  432. package/dist/ionic/p-819ff3b9.system.js +1 -1
  433. package/dist/ionic/p-87411e39.system.js +1 -1
  434. package/dist/ionic/p-8a308596.system.js +4 -0
  435. package/dist/ionic/{p-3818f63f.entry.js → p-8ad82eb3.entry.js} +1 -1
  436. package/dist/ionic/{p-c4a5de01.entry.js → p-8b29691f.entry.js} +1 -1
  437. package/dist/ionic/p-8c15eda7.system.js +2 -2
  438. package/dist/ionic/p-8e1bded3.entry.js +4 -0
  439. package/dist/ionic/{p-7423746f.entry.js → p-9209d90c.entry.js} +1 -1
  440. package/dist/ionic/{p-96ba8eac.entry.js → p-92800752.entry.js} +1 -1
  441. package/dist/ionic/p-965677f1.entry.js +4 -0
  442. package/dist/ionic/{p-446230d7.js → p-97c65aa5.js} +1 -1
  443. package/dist/ionic/p-97e31c0a.system.js +4 -0
  444. package/dist/ionic/p-9ab6f3e6.system.js +1 -1
  445. package/dist/ionic/{p-62e7d4fa.js → p-9b89cbde.js} +1 -1
  446. package/dist/ionic/p-9e852ff1.system.js +1 -1
  447. package/dist/ionic/{p-de68588d.js → p-a0b6d438.js} +1 -1
  448. package/dist/ionic/p-a545b4f1.system.js +4 -0
  449. package/dist/ionic/p-a5c1e6ce.entry.js +4 -0
  450. package/dist/ionic/p-a6d83a03.system.entry.js +4 -0
  451. package/dist/ionic/p-a8e68fd9.entry.js +4 -0
  452. package/dist/ionic/{p-aa377971.system.js → p-a936d224.system.js} +1 -1
  453. package/dist/ionic/{p-beb864e4.system.entry.js → p-a9c3699b.system.entry.js} +1 -1
  454. package/dist/ionic/p-ab4cff27.system.js +1 -1
  455. package/dist/ionic/{p-012952cd.system.entry.js → p-abacb44b.system.entry.js} +2 -2
  456. package/dist/ionic/{p-1f81b5be.entry.js → p-af016cd3.entry.js} +1 -1
  457. package/dist/ionic/{p-a9c32660.entry.js → p-b0cee324.entry.js} +1 -1
  458. package/dist/ionic/{p-f4309ac7.entry.js → p-b1142133.entry.js} +1 -1
  459. package/dist/ionic/p-b17b7c3c.system.entry.js +4 -0
  460. package/dist/ionic/p-b203659a.system.entry.js +4 -0
  461. package/dist/ionic/{p-c679fcb5.entry.js → p-b2a74a72.entry.js} +1 -1
  462. package/dist/ionic/p-b4b4bb29.system.js +1 -1
  463. package/dist/ionic/p-b6f8ee31.entry.js +4 -0
  464. package/dist/ionic/p-b8c3f071.system.js +1 -1
  465. package/dist/ionic/p-b906c5ca.entry.js +4 -0
  466. package/dist/ionic/p-b912e055.system.js +1 -1
  467. package/dist/ionic/{p-8209372c.entry.js → p-b91fe549.entry.js} +1 -1
  468. package/dist/ionic/p-bba2ce59.system.js +1 -1
  469. package/dist/ionic/p-beb64be7.system.entry.js +4 -0
  470. package/dist/ionic/p-bed722c4.system.entry.js +4 -0
  471. package/dist/ionic/p-c0c81820.system.js +4 -0
  472. package/dist/ionic/p-c224b9a9.js +5 -0
  473. package/dist/ionic/{p-e028178a.system.js → p-c4042875.system.js} +1 -1
  474. package/dist/ionic/p-c4f2dce7.system.js +1 -1
  475. package/dist/ionic/{p-6f6646bf.system.entry.js → p-c7b8c2ef.system.entry.js} +1 -1
  476. package/dist/ionic/{p-1ecba429.entry.js → p-c7d30db9.entry.js} +1 -1
  477. package/dist/ionic/{p-db1a1e00.entry.js → p-c919498d.entry.js} +1 -1
  478. package/dist/ionic/{p-54200074.entry.js → p-ca5219df.entry.js} +1 -1
  479. package/dist/ionic/p-ccdcb022.system.js +1 -1
  480. package/dist/ionic/p-cf425ec5.system.entry.js +4 -0
  481. package/dist/ionic/p-d2597b3e.system.js +5 -0
  482. package/dist/ionic/p-d3952bd5.system.entry.js +4 -0
  483. package/dist/ionic/{p-8c1805f4.system.entry.js → p-d7ea6a0d.system.entry.js} +1 -1
  484. package/dist/ionic/p-db5043df.system.entry.js +4 -0
  485. package/dist/ionic/p-dfa756ed.system.js +4 -0
  486. package/dist/ionic/{p-28ea45b9.js → p-e6b240a0.js} +1 -1
  487. package/dist/ionic/{p-cabd2c6d.entry.js → p-e76a4bc8.entry.js} +1 -1
  488. package/dist/ionic/{p-cf0c93e3.system.entry.js → p-e8400078.system.entry.js} +2 -2
  489. package/dist/ionic/{p-4e6e43c1.entry.js → p-ed636a74.entry.js} +1 -1
  490. package/dist/ionic/p-f10de93b.js +4 -0
  491. package/dist/ionic/{p-f919c026.entry.js → p-f4cc91f6.entry.js} +1 -1
  492. package/dist/ionic/p-f5a750e4.system.entry.js +4 -0
  493. package/dist/ionic/p-f8e620f1.entry.js +4 -0
  494. package/dist/ionic/p-fa8d4788.system.js +1 -1
  495. package/dist/ionic/{p-8a2801f1.system.entry.js → p-ff5144f3.system.entry.js} +1 -1
  496. package/dist/ionic/p-ff5a10f9.system.js +2 -2
  497. package/dist/ionic/{p-6129af0a.system.entry.js → p-ffb876b0.system.entry.js} +1 -1
  498. package/dist/types/components/datetime/datetime.d.ts +1 -1
  499. package/dist/types/components/radio/radio.d.ts +1 -1
  500. package/dist/types/components.d.ts +627 -3
  501. package/dist/types/stencil-public-runtime.d.ts +2 -0
  502. package/dist/types/utils/content/index.d.ts +1 -1
  503. package/dist/types/utils/focus-visible.d.ts +3 -2
  504. package/dist/types/utils/test/platform.utils.d.ts +9 -9
  505. package/dist/types/utils/watch-options.d.ts +9 -1
  506. package/hydrate/index.d.ts +1 -1
  507. package/hydrate/index.js +350 -197
  508. package/package.json +9 -12
  509. package/dist/esm-es5/animation-92066c62.js +0 -4
  510. package/dist/esm-es5/app-globals-ec816a70.js +0 -4
  511. package/dist/esm-es5/form-controller-ed77647a.js +0 -4
  512. package/dist/esm-es5/index-746a238e.js +0 -4
  513. package/dist/esm-es5/index-b49b173c.js +0 -5
  514. package/dist/esm-es5/index-df55802d.js +0 -4
  515. package/dist/esm-es5/input-shims-d78a3c77.js +0 -4
  516. package/dist/esm-es5/ionic-global-246ca78f.js +0 -4
  517. package/dist/esm-es5/overlays-cec6bac8.js +0 -4
  518. package/dist/esm-es5/status-tap-9aeeaca5.js +0 -4
  519. package/dist/esm-es5/watch-options-355a920a.js +0 -4
  520. package/dist/ionic/p-015187e5.system.js +0 -4
  521. package/dist/ionic/p-06ac429a.js +0 -5
  522. package/dist/ionic/p-091c8792.system.js +0 -4
  523. package/dist/ionic/p-0b7c25ee.system.entry.js +0 -4
  524. package/dist/ionic/p-0f1f59da.system.entry.js +0 -4
  525. package/dist/ionic/p-19fba51c.entry.js +0 -4
  526. package/dist/ionic/p-1a463b1e.system.entry.js +0 -4
  527. package/dist/ionic/p-1f260a7b.entry.js +0 -4
  528. package/dist/ionic/p-29073efe.system.entry.js +0 -4
  529. package/dist/ionic/p-33a8349a.system.entry.js +0 -4
  530. package/dist/ionic/p-34259245.system.entry.js +0 -4
  531. package/dist/ionic/p-35e399bd.entry.js +0 -4
  532. package/dist/ionic/p-38c5fe2b.system.entry.js +0 -4
  533. package/dist/ionic/p-3a58e3a4.system.entry.js +0 -4
  534. package/dist/ionic/p-3d726a67.system.js +0 -4
  535. package/dist/ionic/p-3f3da911.system.entry.js +0 -4
  536. package/dist/ionic/p-4215652f.system.entry.js +0 -4
  537. package/dist/ionic/p-4f97c112.entry.js +0 -4
  538. package/dist/ionic/p-54f6cd27.system.entry.js +0 -4
  539. package/dist/ionic/p-5b976d70.entry.js +0 -4
  540. package/dist/ionic/p-5bf16a18.js +0 -4
  541. package/dist/ionic/p-629aa3fd.system.js +0 -5
  542. package/dist/ionic/p-64475ab5.system.js +0 -4
  543. package/dist/ionic/p-673846f6.entry.js +0 -4
  544. package/dist/ionic/p-6ce0a709.system.entry.js +0 -4
  545. package/dist/ionic/p-818b2e75.entry.js +0 -4
  546. package/dist/ionic/p-81ef7437.system.entry.js +0 -4
  547. package/dist/ionic/p-8e24ebbc.js +0 -4
  548. package/dist/ionic/p-8f01a9a2.system.js +0 -4
  549. package/dist/ionic/p-939e0fa1.system.js +0 -4
  550. package/dist/ionic/p-9dc85536.system.entry.js +0 -4
  551. package/dist/ionic/p-9f2e0db9.js +0 -4
  552. package/dist/ionic/p-a04bfada.entry.js +0 -4
  553. package/dist/ionic/p-a164e3ab.system.entry.js +0 -4
  554. package/dist/ionic/p-a200a7fc.entry.js +0 -4
  555. package/dist/ionic/p-a34fc12e.system.entry.js +0 -4
  556. package/dist/ionic/p-ad48dd13.system.js +0 -4
  557. package/dist/ionic/p-b132c2c0.system.js +0 -4
  558. package/dist/ionic/p-b3c68723.system.js +0 -4
  559. package/dist/ionic/p-b61a2fa0.system.entry.js +0 -4
  560. package/dist/ionic/p-b753ec0d.system.entry.js +0 -4
  561. package/dist/ionic/p-bb055450.system.entry.js +0 -4
  562. package/dist/ionic/p-c105bd36.entry.js +0 -4
  563. package/dist/ionic/p-c44fe9fd.js +0 -4
  564. package/dist/ionic/p-c49672d8.system.js +0 -4
  565. package/dist/ionic/p-c87827ca.system.js +0 -4
  566. package/dist/ionic/p-c8c9d699.system.entry.js +0 -4
  567. package/dist/ionic/p-c92f0a6d.system.entry.js +0 -4
  568. package/dist/ionic/p-c956e82c.system.entry.js +0 -4
  569. package/dist/ionic/p-ca5cf574.js +0 -4
  570. package/dist/ionic/p-cd2d17c3.system.entry.js +0 -4
  571. package/dist/ionic/p-d35217be.entry.js +0 -4
  572. package/dist/ionic/p-d6e53e66.entry.js +0 -4
  573. package/dist/ionic/p-e1d5752d.system.entry.js +0 -4
  574. package/dist/ionic/p-e25cb483.entry.js +0 -4
  575. package/dist/ionic/p-e65ebe96.entry.js +0 -4
  576. package/dist/ionic/p-e74faf2a.entry.js +0 -4
  577. package/dist/ionic/p-eac263dd.entry.js +0 -4
  578. package/dist/ionic/p-eb7d0922.js +0 -4
  579. package/dist/ionic/p-f5bf698b.entry.js +0 -4
  580. package/dist/ionic/p-f7566bad.entry.js +0 -4
  581. /package/dist/ionic/{p-b24aa895.js → p-114a36ed.js} +0 -0
@@ -88,6 +88,24 @@
88
88
  box-sizing: border-box;
89
89
  }
90
90
 
91
+ :host(:not(.legacy-textarea)) {
92
+ min-height: 44px;
93
+ }
94
+
95
+ /**
96
+ * Since the label sits on top of the element,
97
+ * the component needs to be taller otherwise the
98
+ * label will appear too close to the textarea text.
99
+ * Also, floating and stacked labels should not
100
+ * push the label down since it it
101
+ * sits on top of the textarea.
102
+ */
103
+ :host(.textarea-label-placement-floating),
104
+ :host(.textarea-label-placement-stacked) {
105
+ --padding-top: 0px;
106
+ min-height: 56px;
107
+ }
108
+
91
109
  /**
92
110
  * When the cols property is set we should
93
111
  * respect that width instead of defaulting
@@ -643,7 +661,7 @@
643
661
  }
644
662
 
645
663
  @supports selector(:dir(rtl)) {
646
- :host(.textarea-label-placement-stacked) .label-text-wrapper:dir(rtl), :host(.textarea-label-placement-floating) .label-text-wrapper:dir(rtl) {
664
+ :host(.textarea-label-placement-stacked:dir(rtl)) .label-text-wrapper, :host(.textarea-label-placement-floating:dir(rtl)) .label-text-wrapper {
647
665
  transform-origin: right top;
648
666
  }
649
667
  }
@@ -826,22 +844,4 @@
826
844
  :host(.legacy-textarea) .native-textarea[disabled],
827
845
  :host(.textarea-disabled) {
828
846
  opacity: 0.3;
829
- }
830
-
831
- :host(:not(.legacy-textarea)) {
832
- min-height: 44px;
833
- }
834
-
835
- /**
836
- * Since the label sits on top of the element,
837
- * the component needs to be taller otherwise the
838
- * label will appear too close to the textarea text.
839
- * Also, floating and stacked labels should not
840
- * push the label down since it it
841
- * sits on top of the textarea.
842
- */
843
- :host(.textarea-label-placement-floating),
844
- :host(.textarea-label-placement-stacked) {
845
- --padding-top: 0px;
846
- min-height: 56px;
847
847
  }
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Build, Host, forceUpdate, h, writeTask, } from "@stencil/core";
5
5
  import { createLegacyFormController, createNotchController } from "../../utils/forms/index";
6
- import { inheritAriaAttributes, debounceEvent, findItemLabel, inheritAttributes } from "../../utils/helpers";
6
+ import { inheritAriaAttributes, debounceEvent, findItemLabel, inheritAttributes, componentOnReady, } from "../../utils/helpers";
7
7
  import { printIonWarning } from "../../utils/logging/index";
8
8
  import { createSlotMutationController } from "../../utils/slot-mutation-controller";
9
9
  import { createColorClasses, hostContext } from "../../utils/theme";
@@ -169,7 +169,14 @@ export class Textarea {
169
169
  /**
170
170
  * Returns the native `<textarea>` element used under the hood.
171
171
  */
172
- getInputElement() {
172
+ async getInputElement() {
173
+ /**
174
+ * If this gets called in certain early lifecycle hooks (ex: Vue onMounted),
175
+ * nativeInput won't be defined yet with the custom elements build, so wait for it to load in.
176
+ */
177
+ if (!this.nativeInput) {
178
+ await new Promise((resolve) => componentOnReady(this.el, resolve));
179
+ }
173
180
  return Promise.resolve(this.nativeInput);
174
181
  }
175
182
  emitStyle() {
@@ -88,6 +88,24 @@
88
88
  box-sizing: border-box;
89
89
  }
90
90
 
91
+ :host(:not(.legacy-textarea)) {
92
+ min-height: 44px;
93
+ }
94
+
95
+ /**
96
+ * Since the label sits on top of the element,
97
+ * the component needs to be taller otherwise the
98
+ * label will appear too close to the textarea text.
99
+ * Also, floating and stacked labels should not
100
+ * push the label down since it it
101
+ * sits on top of the textarea.
102
+ */
103
+ :host(.textarea-label-placement-floating),
104
+ :host(.textarea-label-placement-stacked) {
105
+ --padding-top: 0px;
106
+ min-height: 56px;
107
+ }
108
+
91
109
  /**
92
110
  * When the cols property is set we should
93
111
  * respect that width instead of defaulting
@@ -643,7 +661,7 @@
643
661
  }
644
662
 
645
663
  @supports selector(:dir(rtl)) {
646
- :host(.textarea-label-placement-stacked) .label-text-wrapper:dir(rtl), :host(.textarea-label-placement-floating) .label-text-wrapper:dir(rtl) {
664
+ :host(.textarea-label-placement-stacked:dir(rtl)) .label-text-wrapper, :host(.textarea-label-placement-floating:dir(rtl)) .label-text-wrapper {
647
665
  transform-origin: right top;
648
666
  }
649
667
  }
@@ -838,6 +856,7 @@
838
856
  --border-radius: 4px;
839
857
  --padding-start: 16px;
840
858
  --padding-end: 16px;
859
+ min-height: 56px;
841
860
  }
842
861
 
843
862
  /**
@@ -900,7 +919,7 @@
900
919
  }
901
920
 
902
921
  @supports selector(:dir(rtl)) {
903
- :host(.textarea-fill-solid) .textarea-wrapper:dir(rtl) {
922
+ :host(.textarea-fill-solid:dir(rtl)) .textarea-wrapper {
904
923
  border-top-left-radius: var(--border-radius);
905
924
  border-top-right-radius: var(--border-radius);
906
925
  border-bottom-right-radius: 0px;
@@ -956,6 +975,7 @@
956
975
  --border-radius: 4px;
957
976
  --padding-start: 16px;
958
977
  --padding-end: 16px;
978
+ min-height: 56px;
959
979
  }
960
980
 
961
981
  :host(.textarea-fill-outline.textarea-shape-round) {
@@ -1024,7 +1044,7 @@
1024
1044
  }
1025
1045
 
1026
1046
  @supports selector(:dir(rtl)) {
1027
- :host(.textarea-fill-outline.textarea-label-placement-stacked) .label-text-wrapper:dir(rtl), :host(.textarea-fill-outline.textarea-label-placement-floating) .label-text-wrapper:dir(rtl) {
1047
+ :host(.textarea-fill-outline.textarea-label-placement-stacked:dir(rtl)) .label-text-wrapper, :host(.textarea-fill-outline.textarea-label-placement-floating:dir(rtl)) .label-text-wrapper {
1028
1048
  transform-origin: right top;
1029
1049
  }
1030
1050
  }
@@ -1167,7 +1187,7 @@
1167
1187
  }
1168
1188
 
1169
1189
  @supports selector(:dir(rtl)) {
1170
- :host(.textarea-fill-outline) .textarea-outline-start:dir(rtl) {
1190
+ :host(.textarea-fill-outline:dir(rtl)) .textarea-outline-start {
1171
1191
  border-top-left-radius: 0px;
1172
1192
  border-top-right-radius: var(--border-radius);
1173
1193
  border-bottom-right-radius: var(--border-radius);
@@ -1196,7 +1216,7 @@
1196
1216
  }
1197
1217
 
1198
1218
  @supports selector(:dir(rtl)) {
1199
- :host(.textarea-fill-outline) .textarea-outline-end:dir(rtl) {
1219
+ :host(.textarea-fill-outline:dir(rtl)) .textarea-outline-end {
1200
1220
  border-top-left-radius: var(--border-radius);
1201
1221
  border-top-right-radius: 0px;
1202
1222
  border-bottom-right-radius: 0px;
@@ -1248,20 +1268,6 @@
1248
1268
  letter-spacing: 0.0333333333em;
1249
1269
  }
1250
1270
 
1251
- :host(:not(.legacy-textarea)) {
1252
- min-height: 56px;
1253
- }
1254
-
1255
- /**
1256
- * Floating and stacked labels should not
1257
- * push the label down since it it
1258
- * sits on top of the textarea.
1259
- */
1260
- :host(.textarea-label-placement-floating),
1261
- :host(.textarea-label-placement-stacked) {
1262
- --padding-top: 0px;
1263
- }
1264
-
1265
1271
  /**
1266
1272
  * When the textarea is focused the label should
1267
1273
  * take on the highlight color. This should
@@ -1348,7 +1354,7 @@
1348
1354
  right: 0;
1349
1355
  }
1350
1356
  @supports selector(:dir(rtl)) {
1351
- :host(.in-item) .textarea-highlight:dir(rtl) {
1357
+ :host(.in-item:dir(rtl)) .textarea-highlight {
1352
1358
  left: unset;
1353
1359
  right: unset;
1354
1360
  right: 0;
@@ -93,7 +93,7 @@
93
93
  right: 0;
94
94
  }
95
95
  @supports selector(:dir(rtl)) {
96
- :host:dir(rtl) {
96
+ :host(:dir(rtl)) {
97
97
  left: unset;
98
98
  right: unset;
99
99
  right: 0;
@@ -155,7 +155,7 @@
155
155
  }
156
156
 
157
157
  @supports selector(:dir(rtl)) {
158
- :host(.title-large) .toolbar-title:dir(rtl) {
158
+ :host(.title-large:dir(rtl)) .toolbar-title {
159
159
  transform-origin: calc(100% - inherit);
160
160
  }
161
161
  }
@@ -95,7 +95,7 @@
95
95
  right: 0;
96
96
  }
97
97
  @supports selector(:dir(rtl)) {
98
- :host:dir(rtl) {
98
+ :host(:dir(rtl)) {
99
99
  left: unset;
100
100
  right: unset;
101
101
  right: 0;
@@ -95,7 +95,7 @@
95
95
  right: 0;
96
96
  }
97
97
  @supports selector(:dir(rtl)) {
98
- :host:dir(rtl) {
98
+ :host(:dir(rtl)) {
99
99
  left: unset;
100
100
  right: unset;
101
101
  right: 0;
@@ -122,7 +122,7 @@
122
122
  right: 0;
123
123
  }
124
124
  @supports selector(:dir(rtl)) {
125
- :host(.legacy-toggle) label:dir(rtl) {
125
+ :host(.legacy-toggle:dir(rtl)) label {
126
126
  left: unset;
127
127
  right: unset;
128
128
  right: 0;
@@ -316,7 +316,7 @@ input {
316
316
  }
317
317
 
318
318
  @supports selector(:dir(rtl)) {
319
- :host(.toggle-label-placement-stacked.toggle-alignment-start) .label-text-wrapper:dir(rtl) {
319
+ :host(.toggle-label-placement-stacked.toggle-alignment-start:dir(rtl)) .label-text-wrapper {
320
320
  transform-origin: right top;
321
321
  }
322
322
  }
@@ -329,7 +329,7 @@ input {
329
329
  }
330
330
 
331
331
  @supports selector(:dir(rtl)) {
332
- :host(.toggle-label-placement-stacked.toggle-alignment-center) .label-text-wrapper:dir(rtl) {
332
+ :host(.toggle-label-placement-stacked.toggle-alignment-center:dir(rtl)) .label-text-wrapper {
333
333
  transform-origin: calc(100% - center) top;
334
334
  }
335
335
  }
@@ -122,7 +122,7 @@
122
122
  right: 0;
123
123
  }
124
124
  @supports selector(:dir(rtl)) {
125
- :host(.legacy-toggle) label:dir(rtl) {
125
+ :host(.legacy-toggle:dir(rtl)) label {
126
126
  left: unset;
127
127
  right: unset;
128
128
  right: 0;
@@ -316,7 +316,7 @@ input {
316
316
  }
317
317
 
318
318
  @supports selector(:dir(rtl)) {
319
- :host(.toggle-label-placement-stacked.toggle-alignment-start) .label-text-wrapper:dir(rtl) {
319
+ :host(.toggle-label-placement-stacked.toggle-alignment-start:dir(rtl)) .label-text-wrapper {
320
320
  transform-origin: right top;
321
321
  }
322
322
  }
@@ -329,7 +329,7 @@ input {
329
329
  }
330
330
 
331
331
  @supports selector(:dir(rtl)) {
332
- :host(.toggle-label-placement-stacked.toggle-alignment-center) .label-text-wrapper:dir(rtl) {
332
+ :host(.toggle-label-placement-stacked.toggle-alignment-center:dir(rtl)) .label-text-wrapper {
333
333
  transform-origin: calc(100% - center) top;
334
334
  }
335
335
  }
@@ -387,11 +387,25 @@ export const createAnimation = (animationId) => {
387
387
  const updateKeyframes = (keyframeValues) => {
388
388
  if (supportsWebAnimations) {
389
389
  getWebAnimations().forEach((animation) => {
390
- if (animation.effect.setKeyframes) {
391
- animation.effect.setKeyframes(keyframeValues);
390
+ /**
391
+ * animation.effect's type is AnimationEffect.
392
+ * However, in this case we have a more specific
393
+ * type of AnimationEffect called KeyframeEffect which
394
+ * inherits from AnimationEffect. As a result,
395
+ * we cast animation.effect to KeyframeEffect.
396
+ */
397
+ const keyframeEffect = animation.effect;
398
+ /**
399
+ * setKeyframes is not supported in all browser
400
+ * versions that Ionic supports, so we need to
401
+ * check for support before using it.
402
+ */
403
+ // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
404
+ if (keyframeEffect.setKeyframes) {
405
+ keyframeEffect.setKeyframes(keyframeValues);
392
406
  }
393
407
  else {
394
- const newEffect = new KeyframeEffect(animation.effect.target, keyframeValues, animation.effect.getTiming());
408
+ const newEffect = new KeyframeEffect(keyframeEffect.target, keyframeValues, keyframeEffect.getTiming());
395
409
  animation.effect = newEffect;
396
410
  }
397
411
  });
@@ -536,6 +550,7 @@ export const createAnimation = (animationId) => {
536
550
  step = Math.min(Math.max(step, 0), 0.9999);
537
551
  if (supportsWebAnimations) {
538
552
  webAnimations.forEach((animation) => {
553
+ // When creating the animation the delay is guaranteed to be set to a number.
539
554
  animation.currentTime = animation.effect.getComputedTiming().delay + getDuration() * step;
540
555
  animation.pause();
541
556
  });
@@ -58,7 +58,6 @@ export const findClosestIonContent = (el) => {
58
58
  * Scrolls to the top of the element. If an `ion-content` is found, it will scroll
59
59
  * using the public API `scrollToTop` with a duration.
60
60
  */
61
- // TODO(FW-2832): type
62
61
  export const scrollToTop = (el, durationMs) => {
63
62
  if (isIonContent(el)) {
64
63
  const content = el;
@@ -39,10 +39,6 @@ export const createLegacyFormController = (el) => {
39
39
  return { hasLegacyControl };
40
40
  };
41
41
  const hasLabelSlot = (controlEl) => {
42
- const root = controlEl.shadowRoot;
43
- if (root === null) {
44
- return false;
45
- }
46
42
  /**
47
43
  * Components that have a named label slot
48
44
  * also have other slots, so we need to query for
@@ -61,5 +57,5 @@ const hasLabelSlot = (controlEl) => {
61
57
  }
62
58
  return false;
63
59
  };
64
- const NAMED_LABEL_SLOT_COMPONENTS = ['ION-RANGE'];
60
+ const NAMED_LABEL_SLOT_COMPONENTS = ['ION-INPUT', 'ION-TEXTAREA', 'ION-SELECT', 'ION-RANGE'];
65
61
  const UNNAMED_LABEL_SLOT_COMPONENTS = ['ION-TOGGLE', 'ION-CHECKBOX', 'ION-RADIO'];
@@ -13,8 +13,16 @@ export const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativ
13
13
  removeClone(componentEl, inputEl);
14
14
  }
15
15
  };
16
- // TODO(FW-2832): type
17
16
  export const isFocused = (input) => {
17
+ /**
18
+ * https://developer.mozilla.org/en-US/docs/Web/API/Node/getRootNode
19
+ * Calling getRootNode on an element in standard web page will return HTMLDocument.
20
+ * Calling getRootNode on an element inside of the Shadow DOM will return the associated ShadowRoot.
21
+ * Calling getRootNode on an element that is not attached to a document/shadow tree will return
22
+ * the root of the DOM tree it belongs to.
23
+ * isFocused is used for the hide-caret utility which only considers input/textarea elements
24
+ * that are present in the DOM, so we don't set types for that final case since it does not apply.
25
+ */
18
26
  return input === input.getRootNode().activeElement;
19
27
  };
20
28
  const addClone = (componentEl, inputEl, inputRelativeY, disabledClonedInput = false) => {
@@ -1,7 +1,6 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- // TODO(FW-2832): types
5
4
  export const watchForOptions = (containerEl, tagName, onChange) => {
6
5
  if (typeof MutationObserver === 'undefined') {
7
6
  return;
@@ -25,10 +24,22 @@ const getSelectedOption = (mutationList, tagName) => {
25
24
  });
26
25
  return newOption;
27
26
  };
28
- export const findCheckedOption = (el, tagName) => {
29
- if (el.nodeType !== 1) {
27
+ /**
28
+ * The "value" key is only set on some components such as ion-select-option.
29
+ * As a result, we create a default union type of HTMLElement and the "value" key.
30
+ * However, implementers are required to provide the appropriate component type
31
+ * such as HTMLIonSelectOptionElement.
32
+ */
33
+ export const findCheckedOption = (node, tagName) => {
34
+ /**
35
+ * https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
36
+ * The above check ensures "node" is an Element (nodeType 1).
37
+ */
38
+ if (node.nodeType !== 1) {
30
39
  return undefined;
31
40
  }
41
+ // HTMLElement inherits from Element, so we cast "el" as T.
42
+ const el = node;
32
43
  const options = el.tagName === tagName.toUpperCase() ? [el] : Array.from(el.querySelectorAll(tagName));
33
44
  return options.find((o) => o.value === el.value);
34
45
  };
package/dist/docs.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2023-10-19T00:28:11",
2
+ "timestamp": "2023-11-16T23:52:44",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
- "version": "4.5.0",
5
+ "version": "4.7.2",
6
6
  "typescriptVersion": "5.2.2"
7
7
  },
8
8
  "components": [
@@ -7477,7 +7477,7 @@
7477
7477
  "mutable": false,
7478
7478
  "attr": "readonly",
7479
7479
  "reflectToAttr": false,
7480
- "docs": "If `true`, the datetime appears normal but is not interactive.",
7480
+ "docs": "If `true`, the datetime appears normal but the selected date cannot be changed.",
7481
7481
  "docsTags": [],
7482
7482
  "default": "false",
7483
7483
  "values": [
@@ -510,11 +510,25 @@ const createAnimation = (animationId) => {
510
510
  const updateKeyframes = (keyframeValues) => {
511
511
  if (supportsWebAnimations) {
512
512
  getWebAnimations().forEach((animation) => {
513
- if (animation.effect.setKeyframes) {
514
- animation.effect.setKeyframes(keyframeValues);
513
+ /**
514
+ * animation.effect's type is AnimationEffect.
515
+ * However, in this case we have a more specific
516
+ * type of AnimationEffect called KeyframeEffect which
517
+ * inherits from AnimationEffect. As a result,
518
+ * we cast animation.effect to KeyframeEffect.
519
+ */
520
+ const keyframeEffect = animation.effect;
521
+ /**
522
+ * setKeyframes is not supported in all browser
523
+ * versions that Ionic supports, so we need to
524
+ * check for support before using it.
525
+ */
526
+ // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
527
+ if (keyframeEffect.setKeyframes) {
528
+ keyframeEffect.setKeyframes(keyframeValues);
515
529
  }
516
530
  else {
517
- const newEffect = new KeyframeEffect(animation.effect.target, keyframeValues, animation.effect.getTiming());
531
+ const newEffect = new KeyframeEffect(keyframeEffect.target, keyframeValues, keyframeEffect.getTiming());
518
532
  animation.effect = newEffect;
519
533
  }
520
534
  });
@@ -659,6 +673,7 @@ const createAnimation = (animationId) => {
659
673
  step = Math.min(Math.max(step, 0), 0.9999);
660
674
  if (supportsWebAnimations) {
661
675
  webAnimations.forEach((animation) => {
676
+ // When creating the animation the delay is guaranteed to be set to a number.
662
677
  animation.currentTime = animation.effect.getComputedTiming().delay + getDuration() * step;
663
678
  animation.pause();
664
679
  });
@@ -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-246ca78f.js';
4
+ import { i as initialize } from './ionic-global-40e42e7f.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-b49b173c.js';
4
+ import { w as writeTask } from './index-7c9b1bca.js';
5
5
  import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-1243b917.js';
6
6
  import { createGesture } from './index-ff313b19.js';
7
7
 
@@ -40,10 +40,6 @@ const createLegacyFormController = (el) => {
40
40
  return { hasLegacyControl };
41
41
  };
42
42
  const hasLabelSlot = (controlEl) => {
43
- const root = controlEl.shadowRoot;
44
- if (root === null) {
45
- return false;
46
- }
47
43
  /**
48
44
  * Components that have a named label slot
49
45
  * also have other slots, so we need to query for
@@ -62,7 +58,7 @@ const hasLabelSlot = (controlEl) => {
62
58
  }
63
59
  return false;
64
60
  };
65
- const NAMED_LABEL_SLOT_COMPONENTS = ['ION-RANGE'];
61
+ const NAMED_LABEL_SLOT_COMPONENTS = ['ION-INPUT', 'ION-TEXTAREA', 'ION-SELECT', 'ION-RANGE'];
66
62
  const UNNAMED_LABEL_SLOT_COMPONENTS = ['ION-TOGGLE', 'ION-CHECKBOX', 'ION-RADIO'];
67
63
 
68
64
  export { createLegacyFormController as c };
@@ -4,8 +4,8 @@
4
4
  import { p as printIonWarning } from './index-595d62c9.js';
5
5
  import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-39299f84.js';
6
6
  import { c as componentOnReady } from './helpers-3379ba19.js';
7
- import { b as getIonMode } from './ionic-global-246ca78f.js';
8
- import { c as createAnimation } from './animation-92066c62.js';
7
+ import { b as getIonMode } from './ionic-global-40e42e7f.js';
8
+ import { c as createAnimation } from './animation-8aa13916.js';
9
9
 
10
10
  /**
11
11
  * baseAnimation
@@ -59,7 +59,6 @@ const findClosestIonContent = (el) => {
59
59
  * Scrolls to the top of the element. If an `ion-content` is found, it will scroll
60
60
  * using the public API `scrollToTop` with a duration.
61
61
  */
62
- // TODO(FW-2832): type
63
62
  const scrollToTop = (el, durationMs) => {
64
63
  if (isIonContent(el)) {
65
64
  const content = el;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask, B as Build } from './index-b49b173c.js';
4
+ import { w as writeTask, B as Build } from './index-7c9b1bca.js';
5
5
  import { r as raf } from './helpers-3379ba19.js';
6
6
 
7
7
  const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
@@ -10,8 +10,8 @@ const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
10
10
  const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
11
11
  const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
12
12
 
13
- const iosTransitionAnimation = () => import('./ios.transition-4d1322d6.js');
14
- const mdTransitionAnimation = () => import('./md.transition-66b425d0.js');
13
+ const iosTransitionAnimation = () => import('./ios.transition-1651c430.js');
14
+ const mdTransitionAnimation = () => import('./md.transition-66f18369.js');
15
15
  // TODO(FW-2832): types
16
16
  const transition = (opts) => {
17
17
  return new Promise((resolve, reject) => {