@ionic/core 8.8.19-dev.11786730389.1a1927bf → 8.8.19-dev.11786735826.1fad7c0a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/components/ion-action-sheet.js +1 -1
  2. package/components/ion-alert.js +1 -1
  3. package/components/ion-back-button.js +1 -1
  4. package/components/ion-button.js +1 -1
  5. package/components/ion-card.js +1 -1
  6. package/components/ion-chip.js +1 -1
  7. package/components/ion-datetime-button.js +1 -1
  8. package/components/ion-datetime.js +1 -1
  9. package/components/ion-fab-button.js +1 -1
  10. package/components/ion-infinite-scroll-content.js +1 -1
  11. package/components/ion-input-otp.js +1 -1
  12. package/components/ion-input-password-toggle.js +1 -1
  13. package/components/ion-input.js +1 -1
  14. package/components/ion-item-divider.js +1 -1
  15. package/components/ion-item-group.js +1 -1
  16. package/components/ion-item-option.js +1 -1
  17. package/components/ion-item-options.js +1 -1
  18. package/components/ion-item-sliding.js +1 -1
  19. package/components/ion-item.js +1 -1
  20. package/components/ion-label.js +1 -1
  21. package/components/ion-list-header.js +1 -1
  22. package/components/ion-list.js +1 -1
  23. package/components/ion-loading.js +1 -1
  24. package/components/ion-menu-button.js +1 -1
  25. package/components/ion-menu-toggle.js +1 -1
  26. package/components/ion-menu.js +1 -1
  27. package/components/ion-modal.js +1 -1
  28. package/components/ion-nav-link.js +1 -1
  29. package/components/ion-nav.js +1 -1
  30. package/components/ion-note.js +1 -1
  31. package/components/ion-picker-column-option.js +1 -1
  32. package/components/ion-popover.js +1 -1
  33. package/components/ion-progress-bar.js +1 -1
  34. package/components/ion-radio-group.js +1 -1
  35. package/components/ion-radio.js +1 -1
  36. package/components/ion-range.js +1 -1
  37. package/components/ion-refresher-content.js +1 -1
  38. package/components/ion-refresher.js +1 -1
  39. package/components/ion-reorder-group.js +1 -1
  40. package/components/ion-reorder.js +1 -1
  41. package/components/ion-ripple-effect.js +1 -1
  42. package/components/ion-router-link.js +1 -1
  43. package/components/ion-router-outlet.js +1 -1
  44. package/components/ion-row.js +1 -1
  45. package/components/ion-searchbar.js +1 -1
  46. package/components/ion-segment-button.js +1 -1
  47. package/components/ion-segment-content.js +1 -1
  48. package/components/ion-segment-view.js +1 -1
  49. package/components/ion-segment.js +1 -1
  50. package/components/ion-select-modal.js +1 -1
  51. package/components/ion-select-option.js +1 -1
  52. package/components/ion-select-popover.js +1 -1
  53. package/components/ion-select.js +1 -1
  54. package/components/ion-skeleton-text.js +1 -1
  55. package/components/ion-spinner.js +1 -1
  56. package/components/ion-split-pane.js +1 -1
  57. package/components/ion-tab-bar.js +1 -1
  58. package/components/ion-tab-button.js +1 -1
  59. package/components/ion-tab.js +1 -1
  60. package/components/ion-tabs.js +1 -1
  61. package/components/ion-text.js +1 -1
  62. package/components/ion-textarea.js +1 -1
  63. package/components/ion-thumbnail.js +1 -1
  64. package/components/ion-title.js +1 -1
  65. package/components/ion-toast.js +1 -1
  66. package/components/ion-toggle.js +1 -1
  67. package/components/ion-toolbar.js +1 -1
  68. package/components/{p-C1O9GEug.js → p--m5cCjbK.js} +1 -1
  69. package/components/{p-CfnGxjv-.js → p-B4uHHhPK.js} +1 -1
  70. package/components/{p-BxUIQcD9.js → p-BOvLNVKq.js} +1 -1
  71. package/components/{p-D_XD0pVT.js → p-BWBigMsI.js} +1 -1
  72. package/components/{p-xOjr4bwc.js → p-BZ4-QTes.js} +1 -1
  73. package/components/{p-tYCT3JGl.js → p-BjluhQMI.js} +1 -1
  74. package/components/{p-ClFYbgND.js → p-BlsIikdZ.js} +1 -1
  75. package/components/{p-Obm7si-x.js → p-Blug1Vxu.js} +1 -1
  76. package/components/{p-DTY4otpr.js → p-C91npEel.js} +1 -1
  77. package/components/{p-CVnwvOBD.js → p-CVb3x_r3.js} +1 -1
  78. package/components/{p-B6dUPQXq.js → p-CWLrHG8Y.js} +1 -1
  79. package/components/{p-0Pyit076.js → p-CfnNZz_d.js} +1 -1
  80. package/components/{p-DyePCNGr.js → p-DKrhJJV0.js} +1 -1
  81. package/components/p-DSzSbVP2.js +4 -0
  82. package/components/{p-BsVxQGUT.js → p-DgZOZQjJ.js} +1 -1
  83. package/components/{p-BO4sUqUv.js → p-Dmd2xqCe.js} +1 -1
  84. package/components/{p-83oP9gzn.js → p-GG5GhznE.js} +1 -1
  85. package/components/{p-Bc4wROfM.js → p-UQSiXX2Z.js} +1 -1
  86. package/components/{p-Dm7h4Nyv.js → p-qT1szVjw.js} +1 -1
  87. package/components/p-ypuYdSDB.js +4 -0
  88. package/dist/cjs/input.utils-BZdMWVrt.js +35 -0
  89. package/dist/cjs/ion-app_8.cjs.entry.js +5 -5
  90. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  91. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  92. package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
  93. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  94. package/dist/cjs/ion-input.cjs.entry.js +42 -56
  95. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  96. package/dist/cjs/ion-item_8.cjs.entry.js +12 -12
  97. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  98. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  99. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  100. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  101. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  102. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  103. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  104. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  105. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  106. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  107. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  108. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  109. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  110. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  111. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  112. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  113. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  114. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  115. package/dist/cjs/ion-select_3.cjs.entry.js +41 -59
  116. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  117. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  118. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  119. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  120. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  121. package/dist/cjs/ion-textarea.cjs.entry.js +44 -55
  122. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  123. package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
  124. package/dist/cjs/slot-mutation-controller-CgTGFqlW.js +397 -0
  125. package/dist/collection/components/input/input.ios.css +56 -24
  126. package/dist/collection/components/input/input.js +36 -51
  127. package/dist/collection/components/input/input.md.css +78 -41
  128. package/dist/collection/components/input-otp/input-otp.js +3 -3
  129. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  130. package/dist/collection/components/item-divider/item-divider.js +2 -2
  131. package/dist/collection/components/item-group/item-group.js +1 -1
  132. package/dist/collection/components/item-option/item-option.js +2 -2
  133. package/dist/collection/components/item-options/item-options.js +1 -1
  134. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  135. package/dist/collection/components/label/label.js +2 -2
  136. package/dist/collection/components/list/list.js +1 -1
  137. package/dist/collection/components/list-header/list-header.js +2 -2
  138. package/dist/collection/components/loading/loading.js +2 -2
  139. package/dist/collection/components/menu/menu.js +2 -2
  140. package/dist/collection/components/menu-button/menu-button.js +2 -2
  141. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  142. package/dist/collection/components/modal/modal.js +4 -4
  143. package/dist/collection/components/nav/nav.js +1 -1
  144. package/dist/collection/components/nav-link/nav-link.js +1 -1
  145. package/dist/collection/components/note/note.js +2 -2
  146. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  147. package/dist/collection/components/popover/popover.js +2 -2
  148. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  149. package/dist/collection/components/radio/radio.js +3 -3
  150. package/dist/collection/components/radio-group/radio-group.js +1 -1
  151. package/dist/collection/components/range/range.js +3 -3
  152. package/dist/collection/components/refresher/refresher.js +1 -1
  153. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  154. package/dist/collection/components/reorder/reorder.js +1 -1
  155. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  156. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  157. package/dist/collection/components/router-link/router-link.js +2 -2
  158. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  159. package/dist/collection/components/row/row.js +1 -1
  160. package/dist/collection/components/searchbar/searchbar.js +4 -4
  161. package/dist/collection/components/segment/segment.js +2 -2
  162. package/dist/collection/components/segment-button/segment-button.js +2 -2
  163. package/dist/collection/components/segment-content/segment-content.js +1 -1
  164. package/dist/collection/components/segment-view/segment-view.js +2 -2
  165. package/dist/collection/components/select/select.ios.css +63 -69
  166. package/dist/collection/components/select/select.js +40 -55
  167. package/dist/collection/components/select/select.md.css +85 -85
  168. package/dist/collection/components/select-modal/select-modal.js +1 -1
  169. package/dist/collection/components/select-option/select-option.js +1 -1
  170. package/dist/collection/components/select-popover/select-popover.js +1 -1
  171. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  172. package/dist/collection/components/spinner/spinner.js +1 -1
  173. package/dist/collection/components/split-pane/split-pane.js +2 -2
  174. package/dist/collection/components/tab/tab.js +2 -2
  175. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  176. package/dist/collection/components/tab-button/tab-button.js +2 -2
  177. package/dist/collection/components/tabs/tabs.js +1 -1
  178. package/dist/collection/components/text/text.js +2 -2
  179. package/dist/collection/components/textarea/textarea.ios.css +94 -62
  180. package/dist/collection/components/textarea/textarea.js +39 -51
  181. package/dist/collection/components/textarea/textarea.md.css +103 -77
  182. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  183. package/dist/collection/components/title/title.js +2 -2
  184. package/dist/collection/components/toast/toast.js +2 -2
  185. package/dist/collection/components/toggle/toggle.js +3 -3
  186. package/dist/collection/components/toolbar/toolbar.js +2 -2
  187. package/dist/collection/utils/forms/index.js +1 -0
  188. package/dist/collection/utils/forms/start-container-controller.js +132 -0
  189. package/dist/docs.json +22 -6
  190. package/dist/esm/input.utils-B1ValN_N.js +33 -0
  191. package/dist/esm/ion-app_8.entry.js +5 -5
  192. package/dist/esm/ion-avatar_3.entry.js +1 -1
  193. package/dist/esm/ion-col_3.entry.js +1 -1
  194. package/dist/esm/ion-input-otp.entry.js +3 -3
  195. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  196. package/dist/esm/ion-input.entry.js +40 -54
  197. package/dist/esm/ion-item-option_3.entry.js +4 -4
  198. package/dist/esm/ion-item_8.entry.js +12 -12
  199. package/dist/esm/ion-loading.entry.js +2 -2
  200. package/dist/esm/ion-menu_3.entry.js +6 -6
  201. package/dist/esm/ion-modal.entry.js +4 -4
  202. package/dist/esm/ion-nav_2.entry.js +2 -2
  203. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  204. package/dist/esm/ion-popover.entry.js +2 -2
  205. package/dist/esm/ion-progress-bar.entry.js +1 -1
  206. package/dist/esm/ion-radio_2.entry.js +4 -4
  207. package/dist/esm/ion-range.entry.js +3 -3
  208. package/dist/esm/ion-refresher_2.entry.js +2 -2
  209. package/dist/esm/ion-reorder_2.entry.js +2 -2
  210. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  211. package/dist/esm/ion-route_4.entry.js +2 -2
  212. package/dist/esm/ion-searchbar.entry.js +4 -4
  213. package/dist/esm/ion-segment-content.entry.js +1 -1
  214. package/dist/esm/ion-segment-view.entry.js +2 -2
  215. package/dist/esm/ion-segment_2.entry.js +4 -4
  216. package/dist/esm/ion-select-modal.entry.js +1 -1
  217. package/dist/esm/ion-select_3.entry.js +40 -58
  218. package/dist/esm/ion-spinner.entry.js +1 -1
  219. package/dist/esm/ion-split-pane.entry.js +2 -2
  220. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  221. package/dist/esm/ion-tab_2.entry.js +3 -3
  222. package/dist/esm/ion-text.entry.js +2 -2
  223. package/dist/esm/ion-textarea.entry.js +43 -54
  224. package/dist/esm/ion-toast.entry.js +2 -2
  225. package/dist/esm/ion-toggle.entry.js +4 -4
  226. package/dist/esm/slot-mutation-controller-u741eD3Z.js +393 -0
  227. package/dist/ionic/ionic.esm.js +1 -1
  228. package/dist/ionic/{p-dbfd2d52.entry.js → p-06533d51.entry.js} +1 -1
  229. package/dist/ionic/{p-a641d428.entry.js → p-141f5b47.entry.js} +1 -1
  230. package/dist/ionic/p-14a5e8f5.entry.js +4 -0
  231. package/dist/ionic/{p-12589d59.entry.js → p-19269e04.entry.js} +1 -1
  232. package/dist/ionic/{p-efef6788.entry.js → p-19abbc33.entry.js} +1 -1
  233. package/dist/ionic/{p-5394e1d4.entry.js → p-4204184c.entry.js} +1 -1
  234. package/dist/ionic/p-4bc3ecdb.entry.js +4 -0
  235. package/dist/ionic/{p-21a7fb2a.entry.js → p-4eed9ca1.entry.js} +1 -1
  236. package/dist/ionic/p-5521dc1f.entry.js +4 -0
  237. package/dist/ionic/p-5c3626de.entry.js +4 -0
  238. package/dist/ionic/{p-374b10cb.entry.js → p-5d3b411c.entry.js} +1 -1
  239. package/dist/ionic/p-60576951.entry.js +4 -0
  240. package/dist/ionic/{p-1d2e53e8.entry.js → p-711a8319.entry.js} +1 -1
  241. package/dist/ionic/{p-48b6835f.entry.js → p-71419a55.entry.js} +1 -1
  242. package/dist/ionic/{p-ba8a598f.entry.js → p-79325ffe.entry.js} +1 -1
  243. package/dist/ionic/p-84a38904.entry.js +4 -0
  244. package/dist/ionic/{p-bf7c1f05.entry.js → p-8f204f1e.entry.js} +1 -1
  245. package/dist/ionic/p-9055e897.entry.js +4 -0
  246. package/dist/ionic/{p-6277efba.entry.js → p-9658e083.entry.js} +1 -1
  247. package/dist/ionic/{p-74f30659.entry.js → p-988baee1.entry.js} +1 -1
  248. package/dist/ionic/p-DAztxQR0.js +4 -0
  249. package/dist/ionic/p-DkUB-ROc.js +4 -0
  250. package/dist/ionic/{p-3835a020.entry.js → p-a71232d6.entry.js} +1 -1
  251. package/dist/ionic/{p-08f1ed1c.entry.js → p-a73d8742.entry.js} +1 -1
  252. package/dist/ionic/{p-8a21bdbd.entry.js → p-a8421d18.entry.js} +1 -1
  253. package/dist/ionic/{p-2ce59395.entry.js → p-a8c2c343.entry.js} +1 -1
  254. package/dist/ionic/{p-c3f65965.entry.js → p-bc2bad5f.entry.js} +1 -1
  255. package/dist/ionic/{p-f622796d.entry.js → p-be08d500.entry.js} +1 -1
  256. package/dist/ionic/p-be9a4f51.entry.js +4 -0
  257. package/dist/ionic/{p-33829e94.entry.js → p-ccc5044d.entry.js} +1 -1
  258. package/dist/ionic/{p-3c5fdd27.entry.js → p-ce32912b.entry.js} +1 -1
  259. package/dist/ionic/p-ded69ceb.entry.js +4 -0
  260. package/dist/ionic/{p-cec87704.entry.js → p-e0c6e31e.entry.js} +1 -1
  261. package/dist/ionic/{p-09b47b7d.entry.js → p-e8c3e08a.entry.js} +1 -1
  262. package/dist/ionic/{p-8f3a1995.entry.js → p-ed5d540d.entry.js} +1 -1
  263. package/dist/ionic/{p-6b286c5c.entry.js → p-f2802440.entry.js} +1 -1
  264. package/dist/ionic/{p-62e71297.entry.js → p-fe1bfbcf.entry.js} +1 -1
  265. package/dist/types/components/input/input.d.ts +11 -5
  266. package/dist/types/components/select/select.d.ts +12 -6
  267. package/dist/types/components/textarea/textarea.d.ts +12 -5
  268. package/dist/types/utils/forms/index.d.ts +1 -0
  269. package/dist/types/utils/forms/start-container-controller.d.ts +34 -0
  270. package/hydrate/index.js +350 -267
  271. package/hydrate/index.mjs +350 -267
  272. package/package.json +4 -4
  273. package/components/p-DIgGHN7D.js +0 -4
  274. package/components/p-MCJ7HjWe.js +0 -4
  275. package/dist/cjs/input.utils-CP4fzrqk.js +0 -149
  276. package/dist/cjs/notch-controller-BEUpEgb5.js +0 -155
  277. package/dist/esm/input.utils-J6HWocLA.js +0 -146
  278. package/dist/esm/notch-controller-CrUGyHYz.js +0 -153
  279. package/dist/ionic/p-0266b7e1.entry.js +0 -4
  280. package/dist/ionic/p-214e000a.entry.js +0 -4
  281. package/dist/ionic/p-91c6faf1.entry.js +0 -4
  282. package/dist/ionic/p-9b865fe6.entry.js +0 -4
  283. package/dist/ionic/p-BnMQxWON.js +0 -4
  284. package/dist/ionic/p-ac6ef997.entry.js +0 -4
  285. package/dist/ionic/p-b24dc0a1.entry.js +0 -4
  286. package/dist/ionic/p-c8fbe544.entry.js +0 -4
  287. package/dist/ionic/p-cb12f6c3.entry.js +0 -4
  288. package/dist/ionic/p-ede019ef.entry.js +0 -4
  289. package/dist/ionic/p-kJA95YWg.js +0 -4
@@ -1342,7 +1342,7 @@ export class Modal {
1342
1342
  const isCardModal = presentingElement !== undefined && mode === 'ios';
1343
1343
  const isHandleCycle = handleBehavior === 'cycle';
1344
1344
  const isSheetModalWithHandle = isSheetModal && showHandle;
1345
- return (h(Host, { key: 'ae61e0ce9f0e062f1f30a7dc2283add15ad71a14', "no-router": true,
1345
+ return (h(Host, { key: 'a471c293319cb6ee5ffb7ffafec0b8413e4289de', "no-router": true,
1346
1346
  // Allow the modal to be navigable when the handle is focusable
1347
1347
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1, ...htmlAttributes, style: {
1348
1348
  zIndex: `${20000 + this.overlayIndex}`,
@@ -1355,7 +1355,7 @@ export class Modal {
1355
1355
  'overlay-hidden': true,
1356
1356
  [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
1357
1357
  ...getClassMap(this.cssClass),
1358
- }, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, h("ion-backdrop", { key: '71298f3b3094e9935195af2591acf6c95ff4d7df', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '2580ffb95ec3470c77a66267ead4d57641d39473', class: "modal-shadow" }), h("div", { key: '652a7bf0ae78bde33b56d73bfc27a5bf6c910ac4',
1358
+ }, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, h("ion-backdrop", { key: 'f67934afd4ddad64623856fb641cb6db846df428', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: 'a23f5cb6cf60c8f717c1dd556bce375829c80a43', class: "modal-shadow" }), h("div", { key: '51eb6cd1070e4b7e49840a78dc7437238c867a01',
1359
1359
  /*
1360
1360
  role and aria-modal must be used on the
1361
1361
  same element. They must also be set inside the
@@ -1368,9 +1368,9 @@ export class Modal {
1368
1368
  without the tabindex focus() would be a no-op and screen readers
1369
1369
  may not properly announce the dialog and its content when it opens.
1370
1370
  */
1371
- role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (h("button", { key: '50d48904d16c7ac5b08b980b06b382a6a772b4ea', class: "modal-handle",
1371
+ role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (h("button", { key: 'f49a144642b5c227c0c2b00b33f4c7e37a2bf088', class: "modal-handle",
1372
1372
  // Prevents the handle from receiving keyboard focus when it does not cycle
1373
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: 'f6159c78c19c79a1cc2d25254e9e9c0a7488ce37', onSlotchange: this.onSlotChange }))));
1373
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: 'e781c0d5881762c6b61aa432721a38b49580ff64', onSlotchange: this.onSlotChange }))));
1374
1374
  }
1375
1375
  static get is() { return "ion-modal"; }
1376
1376
  static get encapsulation() { return "shadow"; }
@@ -757,7 +757,7 @@ export class Nav {
757
757
  }
758
758
  }
759
759
  render() {
760
- return h("slot", { key: '598ac877d56c6430b658b23f0275bdef12c50cd3' });
760
+ return h("slot", { key: '1886154d3c2fa8511af4d641d269aaa4c0f45c05' });
761
761
  }
762
762
  static get is() { return "ion-nav"; }
763
763
  static get encapsulation() { return "shadow"; }
@@ -25,7 +25,7 @@ export class NavLink {
25
25
  return navLink(this.el, this.routerDirection, this.component, this.componentProps, this.routerAnimation);
26
26
  };
27
27
  render() {
28
- return h(Host, { key: 'd4d80feb51c0d92b0bedf6952c892f9df3002046', onClick: this.onClick });
28
+ return h(Host, { key: '4bcaa74015462824b3f19253b04a77ce83389ca0', onClick: this.onClick });
29
29
  }
30
30
  static get is() { return "ion-nav-link"; }
31
31
  static get properties() {
@@ -16,9 +16,9 @@ export class Note {
16
16
  color;
17
17
  render() {
18
18
  const mode = getIonMode(this);
19
- return (h(Host, { key: 'b86a6acc9274df6528d224d4c11ab826a0f84dbc', class: createColorClasses(this.color, {
19
+ return (h(Host, { key: 'ffe9b4de8bbd89b1ef427f6cd5dbcd354d715e6b', class: createColorClasses(this.color, {
20
20
  [mode]: true,
21
- }) }, h("slot", { key: '5de76567ed7713827cd277a42db102faf34190c8' })));
21
+ }) }, h("slot", { key: '42fa3ca3f98208ea2a5057da25b7f9d371c5ba1f' })));
22
22
  }
23
23
  static get is() { return "ion-note"; }
24
24
  static get encapsulation() { return "shadow"; }
@@ -94,10 +94,10 @@ export class PickerColumnOption {
94
94
  render() {
95
95
  const { color, disabled, ariaLabel } = this;
96
96
  const mode = getIonMode(this);
97
- return (h(Host, { key: '98109dc9aeced749a3e879394d9a24de24204433', class: createColorClasses(color, {
97
+ return (h(Host, { key: '81f1938e0114392a6e035442b8bc9fcdf73fda84', class: createColorClasses(color, {
98
98
  [mode]: true,
99
99
  ['option-disabled']: disabled,
100
- }) }, h("div", { key: '42cb75738ea6925a7780b3ec9c1ff6823e340a24', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, h("slot", { key: '1f1b3862cdfb2b432016014e2e56330c0247d0b5' }))));
100
+ }) }, h("div", { key: 'b0bb84fd39ea38ea3037ad43c6be8e8dfca2e7d1', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, h("slot", { key: 'e0305b721618aef05823032ccd58214b0f184ca9' }))));
101
101
  }
102
102
  static get is() { return "ion-picker-column-option"; }
103
103
  static get encapsulation() { return "shadow"; }
@@ -575,7 +575,7 @@ export class Popover {
575
575
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
576
576
  const desktop = isPlatform('desktop');
577
577
  const enableArrow = arrow && !parentPopover;
578
- return (h(Host, { key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1", ...htmlAttributes, style: {
578
+ return (h(Host, { key: '52ffc7116969ae1b8b927e67f2acbfe5f5434f70', "aria-modal": "true", "no-router": true, tabindex: "-1", ...htmlAttributes, style: {
579
579
  zIndex: `${20000 + this.overlayIndex}`,
580
580
  }, class: {
581
581
  ...getClassMap(this.cssClass),
@@ -586,7 +586,7 @@ export class Popover {
586
586
  [`popover-side-${side}`]: true,
587
587
  [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
588
588
  'popover-nested': !!parentPopover,
589
- }, onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }, !parentPopover && h("ion-backdrop", { key: 'b87be2ef14219997b9c47dcbaf904eb770d0e057', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'e6243572faf1b871ae2b34923410b2a6638469f0', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '3d4938c9d0764a644398e0e7a4361106da1bd926', class: "popover-arrow", part: "arrow" }), h("div", { key: '24ad6d777828aad2881d56595693e6022fc9cb8e', class: "popover-content", part: "content" }, h("slot", { key: '79f83df74a5c5e3dd7650f15c1aa50795b90a345' })))));
589
+ }, onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }, !parentPopover && h("ion-backdrop", { key: '79a8e851dbd22119e21ffb2f4709c555251045c8', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'c46c9f62c3ef3f902e23f27404eaa446a5d8cf88', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '9fdcbbc4ea6c7bde74f646d48eb77296b2c9dd83', class: "popover-arrow", part: "arrow" }), h("div", { key: '138e56bb83462ebb0908edb522b45ecf94b82aeb', class: "popover-content", part: "content" }, h("slot", { key: 'daeefcf002e8d89e91d6e0faf7f63f75b68a2dbe' })))));
590
590
  }
591
591
  static get is() { return "ion-popover"; }
592
592
  static get encapsulation() { return "shadow"; }
@@ -47,7 +47,7 @@ export class ProgressBar {
47
47
  const mode = getIonMode(this);
48
48
  // If the progress is displayed as a solid bar.
49
49
  const progressSolid = buffer === 1;
50
- return (h(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
50
+ return (h(Host, { key: 'd53d39a3e2c0198164a9face62d3775f357b6914', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
51
51
  [mode]: true,
52
52
  [`progress-bar-${type}`]: true,
53
53
  'progress-paused': paused,
@@ -178,7 +178,7 @@ export class Radio {
178
178
  const mode = getIonMode(this);
179
179
  const inItem = hostContext('ion-item', el);
180
180
  const inMultipleInputsItem = hostContext('ion-item.item-multiple-inputs', el);
181
- return (h(Host, { key: '093884548134579b1d1ea6ee4b318185543cf8d6', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
181
+ return (h(Host, { key: 'ad7ac0bdc4d3216ecc19402e5b8d6f9e4d09334b', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
182
182
  [mode]: true,
183
183
  'in-item': inItem,
184
184
  'radio-checked': checked,
@@ -191,10 +191,10 @@ export class Radio {
191
191
  // styling stays suppressed either way.
192
192
  'ion-activatable': !inItem,
193
193
  'ion-focusable': !inItem || inMultipleInputsItem,
194
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: 'c263300816ee9b91401bb0b4c99a007465d31e2a', class: "radio-wrapper" }, h("div", { key: 'e78d45f2878e560eed64a2ad88e297cdba8d5426', class: {
194
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '59c09125633120e2000447b8a3bc24c54490aa85', class: "radio-wrapper" }, h("div", { key: '1a98f3e0027deeac52647ba37aa9a99be0231966', class: {
195
195
  'label-text-wrapper': true,
196
196
  'label-text-wrapper-hidden': !hasLabel,
197
- }, part: "label" }, h("slot", { key: '6c5df964e3dcc64796cebd8500a68bd8a14d05cd' })), h("div", { key: '3af5cd21f7e41510f9a8eaef104d6d01a5c00679', class: "native-wrapper" }, this.renderRadioControl()))));
197
+ }, part: "label" }, h("slot", { key: '6a48e76ac8793d2aacebd3a8f193e3537272e5c2' })), h("div", { key: '68e4350bac8dad29c6b7a180560de2bb4dfc8c41', class: "native-wrapper" }, this.renderRadioControl()))));
198
198
  }
199
199
  static get is() { return "ion-radio"; }
200
200
  static get encapsulation() { return "shadow"; }
@@ -285,7 +285,7 @@ export class RadioGroup {
285
285
  const { label, labelId, el, name, value } = this;
286
286
  const mode = getIonMode(this);
287
287
  renderHiddenInput(true, el, name, value, false);
288
- return (h(Host, { key: '377e4aa3a656cc84b742f9d7a7d4be65d20c69f5', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, class: mode }, this.renderHintText(), h("slot", { key: 'c3187a2497773b4f15cea3b413b036502bcec8c0' })));
288
+ return (h(Host, { key: '8d926a17e800adf0184274215c9689c96a8d6dfd', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, class: mode }, this.renderHintText(), h("slot", { key: '2ff891123d5971a581b70d0886d23a074358c2dc' })));
289
289
  }
290
290
  static get is() { return "ion-radio-group"; }
291
291
  static get originalStyleUrls() {
@@ -833,7 +833,7 @@ export class Range {
833
833
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
834
834
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
835
835
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
836
- return (h(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
836
+ return (h(Host, { key: 'c9e2fd903e9a4dc8fc6c6d11695c830010d04705', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
837
837
  [mode]: true,
838
838
  'in-item': inItem,
839
839
  'range-disabled': disabled,
@@ -847,10 +847,10 @@ export class Range {
847
847
  'range-item-end-adjustment': needsEndAdjustment,
848
848
  'range-value-min': valueAtMin,
849
849
  'range-value-max': valueAtMax,
850
- }) }, h("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, h("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
850
+ }) }, h("label", { key: '034b9fdf0cfb8574f0deaa082da0d09d49416a69', class: "range-wrapper", id: "range-label" }, h("div", { key: 'a47912d48e1a71746aeb506e14a59ff84af43682', class: {
851
851
  'label-text-wrapper': true,
852
852
  'label-text-wrapper-hidden': !hasLabel,
853
- }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '9e252f1190838fbae46e724bf665f9b1943600a4', class: "native-wrapper" }, h("slot", { key: '950697dd9636da340de659812daa91fff50e5345', name: "start" }), this.renderRangeSlider(), h("slot", { key: 'd3fce46b29db275af71e6149e725967839ec12b0', name: "end" })))));
853
+ }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '4eeea5baa3f1c9cb365385910b53bde578cae119', class: "native-wrapper" }, h("slot", { key: '6a62a106648d301b9fdb20e89f359317e4f552fa', name: "start" }), this.renderRangeSlider(), h("slot", { key: '03c8bd01a7465ba78f6e45405facd243c1aaf526', name: "end" })))));
854
854
  }
855
855
  static get is() { return "ion-range"; }
856
856
  static get encapsulation() { return "shadow"; }
@@ -775,7 +775,7 @@ export class Refresher {
775
775
  }
776
776
  render() {
777
777
  const mode = getIonMode(this);
778
- return (h(Host, { key: '0a59e1b2be1462927b03b112cb8c5147e3edcc1e', slot: "fixed", class: {
778
+ return (h(Host, { key: 'b76e9fb79121799717063137135e448a3c784d82', slot: "fixed", class: {
779
779
  [mode]: true,
780
780
  // Used internally for styling
781
781
  [`refresher-${mode}`]: true,
@@ -85,7 +85,7 @@ export class RefresherContent {
85
85
  const pullingIcon = this.pullingIcon;
86
86
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
87
87
  const mode = getIonMode(this);
88
- return (h(Host, { key: 'ec378d6a302be697c12c4f973a57c6ad2ada070f', class: mode }, h("div", { key: '0055f98f8c5a1ed7979dc8146ec1f82a575860c7', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { key: '4f88468e26370df6889e72aa54ebb395ebf3757d', class: "refresher-pulling-icon" }, h("div", { key: '05b3f8679576aaa6c2d84d60df6629a392df29e2', class: "spinner-arrow-container" }, h("ion-spinner", { key: '0bf6ceea416ce1140c0f10a5bede063cae7054f4', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { key: 'b71ede8455837968218edae28504e5e14bbc1f5c', class: "arrow-container" }, h("ion-icon", { key: '30b808288d23d3eac681b1225cd8392fdacfefe1', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { key: 'fee1ae7e57ef8a02f5654808dff9dca3002b6702', class: "refresher-pulling-icon" }, h("ion-icon", { key: '55b34a98028adb497fbc2ac66bdb3d5ae5b1705b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { key: 'ef8f987daa8060cb6f8fd83c0864095042b9eecf', class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { key: 'cd6fe0e81b34eeae11478fcc8a42044bff6f7a52', class: "refresher-refreshing-icon" }, h("ion-spinner", { key: '9cd778229582b538d54589c4d8e4d470efb64aad', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
88
+ return (h(Host, { key: 'a1546008813bbcfa70f97e9b9025846ee0aed722', class: mode }, h("div", { key: '5422771d67fe201e22d4f9d7db6b685f3db5d99d', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { key: '5c2b6dfc3f01b42586ea83380548d454b220a7ca', class: "refresher-pulling-icon" }, h("div", { key: '2c3799ca3f66960d7081c63c5a0840951f694baf', class: "spinner-arrow-container" }, h("ion-spinner", { key: '03f766a9b9354dcb8f6975757a9b882c2eb5cf4a', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { key: 'e5f4ba7c6a70adb71f8985af0e23aca07d7b005a', class: "arrow-container" }, h("ion-icon", { key: 'ddccbd9164ae8daa97178fc53b52f74f1fd298ef', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { key: '6fb742f47f9149fa6dc3daefe5aaa77f925da4bd', class: "refresher-pulling-icon" }, h("ion-icon", { key: '907657135eeac4c394be1eae4a659664a7bfacb0', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { key: 'fb3094b3ed7e100ab9641c3221770889088e27f3', class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { key: 'bc8078f94e7cea3cb6f03a09e98540f0e0b38721', class: "refresher-refreshing-icon" }, h("ion-spinner", { key: '8f39524f073aa828e941bcdd4d48e4d5dfc759c6', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
89
89
  }
90
90
  static get is() { return "ion-refresher-content"; }
91
91
  static get properties() {
@@ -21,7 +21,7 @@ export class Reorder {
21
21
  render() {
22
22
  const mode = getIonMode(this);
23
23
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
24
- return (h(Host, { key: '4d35db30b5b3df2020d2212abb3cfac94f9bc2b8', class: mode }, h("slot", { key: '68a565ae4a47f6a9f5d6ba845b596fdfa629ece8' }, h("ion-icon", { key: '168fb0f8eb9c02329274488900fcdb05d44cb895', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
24
+ return (h(Host, { key: 'f278c473b4695a6a93565100e4fcaa7f9e3e9ff5', class: mode }, h("slot", { key: 'cc26b5ed297f68a0bea82e27e34a7fe945186f4e' }, h("ion-icon", { key: '696f5e4c2b09e64bd08abf0d0818b1554cd29737', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
25
25
  }
26
26
  static get is() { return "ion-reorder"; }
27
27
  static get encapsulation() { return "shadow"; }
@@ -282,7 +282,7 @@ export class ReorderGroup {
282
282
  }
283
283
  render() {
284
284
  const mode = getIonMode(this);
285
- return (h(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
285
+ return (h(Host, { key: '779332508f44409696b6bab80eda72f9b1d7869d', class: {
286
286
  [mode]: true,
287
287
  'reorder-enabled': !this.disabled,
288
288
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -67,7 +67,7 @@ export class RippleEffect {
67
67
  }
68
68
  render() {
69
69
  const mode = getIonMode(this);
70
- return (h(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
70
+ return (h(Host, { key: '371350cb76e98338ef7467191aaaf817b1298b3f', role: "presentation", class: {
71
71
  [mode]: true,
72
72
  unbounded: this.unbounded,
73
73
  } }));
@@ -47,10 +47,10 @@ export class RouterLink {
47
47
  rel: this.rel,
48
48
  target: this.target,
49
49
  };
50
- return (h(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses(this.color, {
50
+ return (h(Host, { key: '8aaf732d8f5cc4ced351e2b3164605c10bd90cad', onClick: this.onClick, class: createColorClasses(this.color, {
51
51
  [mode]: true,
52
52
  'ion-activatable': true,
53
- }) }, h("a", { key: '85796b7b48581fe9830ba1102dad7d1069de4e17', ...attrs }, h("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
53
+ }) }, h("a", { key: '8f291ffbbce5b08dd10720d855eb020880bf1be1', ...attrs }, h("slot", { key: '24dc388a49204011e1c1f0a1131c9a1b0a4ae4da' }))));
54
54
  }
55
55
  static get is() { return "ion-router-link"; }
56
56
  static get encapsulation() { return "shadow"; }
@@ -220,7 +220,7 @@ export class RouterOutlet {
220
220
  return true;
221
221
  }
222
222
  render() {
223
- return h("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
223
+ return h("slot", { key: '249e7d8a063c781db52fa535e42d648c7bf2909a' });
224
224
  }
225
225
  static get is() { return "ion-router-outlet"; }
226
226
  static get encapsulation() { return "shadow"; }
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
5
5
  import { getIonMode } from "../../global/ionic-global";
6
6
  export class Row {
7
7
  render() {
8
- return (h(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode(this) }, h("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
8
+ return (h(Host, { key: '12b7419dd67ff18dd00e1bf5093299bd94c75503', class: getIonMode(this) }, h("slot", { key: '43fc76a289ecaf398a77a90034ee576003a826fd' })));
9
9
  }
10
10
  static get is() { return "ion-row"; }
11
11
  static get encapsulation() { return "shadow"; }
@@ -549,8 +549,8 @@ export class Searchbar {
549
549
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
550
550
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
551
551
  const shouldShowCancelButton = this.shouldShowCancelButton();
552
- const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '73964da43dbd099fc7f3d30cbc4da11087701ac5', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '27335a0e35f6c253c074685fa0b088404927bcbb', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
553
- return (h(Host, { key: '1b4f6c4e7dffb02e092f0026ce3875822d98a631', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
552
+ const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '47ee586db12684db8b2d16a790976bd247cbbc62', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '55e6b556a46e7bba14c2cfe1b58542499d2334ab', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
553
+ return (h(Host, { key: '468d524b52a0d29d840e2c3cdafba46152716b15', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
554
554
  [mode]: true,
555
555
  'searchbar-animated': animated,
556
556
  'searchbar-disabled': this.disabled,
@@ -560,14 +560,14 @@ export class Searchbar {
560
560
  'searchbar-has-focus': this.focused,
561
561
  'searchbar-should-show-clear': this.shouldShowClearButton(),
562
562
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
563
- }) }, h("div", { key: '587e1950e329cfb9d3658be5b2a6491e7af9321a', class: "searchbar-input-container" }, h("input", { key: '7f78a3d22cce03af277a538b4d9f85faddf1fa80', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', spellcheck: this.spellcheck, ...this.inheritedAttributes }), mode === 'md' && cancelButton, h("ion-icon", { key: '9fd3e458978b64e9e3358bcbb26471753f6ff2a6', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: 'c7864c85923668dfa25f5fc4a70c7dbf6da191b7', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
563
+ }) }, h("div", { key: '94378bdfdf883c28941ef770d64347705d6f8345', class: "searchbar-input-container" }, h("input", { key: 'deea2190823bf8652703148d308aa21473605930', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', spellcheck: this.spellcheck, ...this.inheritedAttributes }), mode === 'md' && cancelButton, h("ion-icon", { key: '0ecc28496ab545f2064b71b994b4cbf0968c2108', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '1bcc77d70eaa08f2ae7fc6173642f114fe387fb7', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
564
564
  /**
565
565
  * This prevents mobile browsers from
566
566
  * blurring the input when the clear
567
567
  * button is activated.
568
568
  */
569
569
  ev.preventDefault();
570
- }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '47e7a15c6c6d4df4c54c62b042842e499627da05', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
570
+ }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: 'bbf8d05eb1070a0d34a22236dfaaf11d8dcc06af', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
571
571
  }
572
572
  static get is() { return "ion-searchbar"; }
573
573
  static get encapsulation() { return "scoped"; }
@@ -582,14 +582,14 @@ export class Segment {
582
582
  }
583
583
  render() {
584
584
  const mode = getIonMode(this);
585
- return (h(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
585
+ return (h(Host, { key: 'f74bd72f10f966129528497aa47b2c683a62d59e', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
586
586
  [mode]: true,
587
587
  'in-toolbar': hostContext('ion-toolbar', this.el),
588
588
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
589
589
  'segment-activated': this.activated,
590
590
  'segment-disabled': this.disabled,
591
591
  'segment-scrollable': this.scrollable,
592
- }) }, h("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
592
+ }) }, h("slot", { key: '79b0c6cce9d83d147b190ae5d77df7de29a6b42d', onSlotchange: this.onSlottedItemsChange })));
593
593
  }
594
594
  static get is() { return "ion-segment"; }
595
595
  static get encapsulation() { return "shadow"; }
@@ -117,7 +117,7 @@ export class SegmentButton {
117
117
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
118
118
  const mode = getIonMode(this);
119
119
  const hasSegmentColor = () => segmentEl?.color !== undefined;
120
- return (h(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
120
+ return (h(Host, { key: '2b4b7ad8b981d2ee39aba5b9c734de8a5bd045ba', class: {
121
121
  [mode]: true,
122
122
  'in-toolbar': hostContext('ion-toolbar', this.el),
123
123
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -133,7 +133,7 @@ export class SegmentButton {
133
133
  'ion-activatable': true,
134
134
  'ion-activatable-instant': true,
135
135
  'ion-focusable': true,
136
- } }, h("button", { key: '860698be6ceb8f08c0ce3d16ba82d4bb56adf030', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled, ...this.inheritedAttributes }, h("span", { key: 'e903a2642ff46797878a941887b5c596d52fd3a3', class: "button-inner" }, h("slot", { key: '5fc6b842ecb7f0ab8df23b344bf6714f38dda89a' })), mode === 'md' && h("ion-ripple-effect", { key: '710aaf6e4fa2b6cb15897a883e88dec17ef3829f' })), h("div", { key: 'a7b036cba32420e9eb3f2d16487df0519ecc5289', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: 'a0a5f49ea7f2ecab8014f4f9ca473a27db8348b6', part: "indicator-background", class: "segment-button-indicator-background" }))));
136
+ } }, h("button", { key: '9cc58cfbe70844a0f5e1a307002e0d04e044be99', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled, ...this.inheritedAttributes }, h("span", { key: '6443551951ce589efdb2d0e1fd1a14e35b82ed19', class: "button-inner" }, h("slot", { key: 'c3548b469ae6e5477d8372cb28bc70dff3a24d18' })), mode === 'md' && h("ion-ripple-effect", { key: 'fb176415ca1702766c4d7a5964ec0bb467bdcb55' })), h("div", { key: 'aa22b4752f8336d0e232a1e0894e87023b284a08', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: '61e29ea52048fa0583fce6c20c81614a4d0199cb', part: "indicator-background", class: "segment-button-indicator-background" }))));
137
137
  }
138
138
  static get is() { return "ion-segment-button"; }
139
139
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@
4
4
  import { Host, h } from "@stencil/core";
5
5
  export class SegmentContent {
6
6
  render() {
7
- return (h(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, h("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
7
+ return (h(Host, { key: 'b03079d7cfd78724828a4f42d7a7030457682b25' }, h("slot", { key: 'c4c86280e5e577ee31a181758fea27a788fd87fa' })));
8
8
  }
9
9
  static get is() { return "ion-segment-content"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -113,11 +113,11 @@ export class SegmentView {
113
113
  }
114
114
  render() {
115
115
  const { disabled, isManualScroll, swipeGesture } = this;
116
- return (h(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
116
+ return (h(Host, { key: 'b3cd48fead5d2877ead68cf6d81955fc31530c7a', class: {
117
117
  'segment-view-disabled': disabled,
118
118
  'segment-view-scroll-disabled': isManualScroll === false,
119
119
  'segment-view-swipe-disabled': swipeGesture === false,
120
- } }, h("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
120
+ } }, h("slot", { key: 'ad5aa8b79790c490e13438afa0cbb2c241eab0a1' })));
121
121
  }
122
122
  static get is() { return "ion-segment-view"; }
123
123
  static get encapsulation() { return "shadow"; }
@@ -202,33 +202,6 @@ button {
202
202
  color: inherit;
203
203
  }
204
204
 
205
- /**
206
- * The select icon should be centered with
207
- * the entire container not just the control
208
- * with floating/stacked labels.
209
- */
210
- :host(.select-label-placement-stacked) .select-icon,
211
- :host(.select-label-placement-floating) .select-icon {
212
- position: absolute;
213
- height: 100%;
214
- }
215
-
216
- /**
217
- * This positions the icon at the correct
218
- * edge of the component with LTR and RTL
219
- * text directions. The position mixin cannot be
220
- * used here because the icon is in the Shadow DOM.
221
- */
222
- :host(.select-ltr.select-label-placement-stacked) .select-icon,
223
- :host(.select-ltr.select-label-placement-floating) .select-icon {
224
- right: var(--padding-end, 0);
225
- }
226
-
227
- :host(.select-rtl.select-label-placement-stacked) .select-icon,
228
- :host(.select-rtl.select-label-placement-floating) .select-icon {
229
- left: var(--padding-start, 0);
230
- }
231
-
232
205
  .select-text {
233
206
  flex: 1;
234
207
  min-width: 16px;
@@ -271,7 +244,7 @@ button {
271
244
  display: flex;
272
245
  position: relative;
273
246
  flex-grow: 1;
274
- align-items: center;
247
+ align-items: stretch;
275
248
  justify-content: space-between;
276
249
  height: inherit;
277
250
  /**
@@ -297,21 +270,24 @@ button {
297
270
  transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
298
271
  }
299
272
 
300
- .select-wrapper-inner {
273
+ /**
274
+ * The control must inherit specific flex properties
275
+ * so that it will be placed properly when justify
276
+ * or label-placement are set on the host.
277
+ */
278
+ .select-control {
301
279
  display: flex;
280
+ flex: 1;
281
+ flex-direction: inherit;
302
282
  align-items: center;
303
- overflow: hidden;
304
- }
305
-
306
- :host(.select-label-placement-stacked) .select-wrapper-inner,
307
- :host(.select-label-placement-floating) .select-wrapper-inner {
283
+ justify-content: inherit;
308
284
  /**
309
- * When using a stacked/floating label, the inner wrapper is
310
- * stacked vertically under the label container. This line
311
- * ensures that the inner wrapper fills all the remaining height
312
- * of the component.
285
+ * The min-width is set to 0 to allow flex items to shrink below
286
+ * their content size. This enables the select text to collapse
287
+ * in width. We avoid overflow: hidden here because it will clip
288
+ * the floating label.
313
289
  */
314
- flex-grow: 1;
290
+ min-width: 0;
315
291
  }
316
292
 
317
293
  :host(.ion-touched.ion-invalid) {
@@ -399,6 +375,12 @@ button {
399
375
  */
400
376
  display: flex;
401
377
  align-items: center;
378
+ /**
379
+ * Allows the label to shrink below its intrinsic content width.
380
+ * Without this the label keeps its full width and can push the
381
+ * select and end slot outside the wrapper.
382
+ */
383
+ min-width: 0;
402
384
  /**
403
385
  * Label text should not extend
404
386
  * beyond the bounds of the select.
@@ -417,6 +399,18 @@ button {
417
399
  pointer-events: none;
418
400
  }
419
401
 
402
+ /**
403
+ * When start/end slots are added or removed, we temporarily
404
+ * disable the label transition to prevent the floating label
405
+ * from animating as its position is adjusted.
406
+ *
407
+ * This class is applied by the start container controller, so
408
+ * renaming it here requires renaming it there too.
409
+ */
410
+ :host(.skip-label-transition) .label-text-wrapper {
411
+ transition: none;
412
+ }
413
+
420
414
  /**
421
415
  * We need to use two elements instead of
422
416
  * one. The .label-text-wrapper is responsible
@@ -449,6 +443,13 @@ button {
449
443
 
450
444
  .native-wrapper {
451
445
  display: flex;
446
+ /**
447
+ * Give up space before the label does. Flexbox would otherwise take
448
+ * from both in proportion to their size and truncate the shorter
449
+ * label first. The factor is this large because the label truncates
450
+ * as soon as it loses any width at all, even a fraction of a pixel.
451
+ */
452
+ flex-shrink: 100000;
452
453
  align-items: center;
453
454
  /**
454
455
  * When the floating label appears on top of the
@@ -552,9 +553,16 @@ button {
552
553
  * down when the select is focused or has a value.
553
554
  *
554
555
  */
555
- :host(.select-label-placement-stacked) .select-wrapper,
556
- :host(.select-label-placement-floating) .select-wrapper {
556
+ :host(.select-label-placement-stacked) .select-control,
557
+ :host(.select-label-placement-floating) .select-control {
557
558
  flex-direction: column;
559
+ /**
560
+ * When using a stacked/floating label, the control is
561
+ * stacked vertically under the label container. This line
562
+ * ensures that the control fills all the remaining height
563
+ * of the component.
564
+ */
565
+ flex-grow: 1;
558
566
  align-items: start;
559
567
  }
560
568
 
@@ -579,17 +587,11 @@ button {
579
587
  }
580
588
 
581
589
  /**
582
- * Ensures the select does not
583
- * overlap the label.
584
- * Also ensure that the native wrapper
585
- * takes up the remaining available height and width.
590
+ * Ensures that the native wrapper takes up the
591
+ * remaining available height and width.
586
592
  */
587
593
  :host(.select-label-placement-stacked) .native-wrapper,
588
594
  :host(.select-label-placement-floating) .native-wrapper {
589
- margin-left: 0;
590
- margin-right: 0;
591
- margin-top: 1px;
592
- margin-bottom: 0;
593
595
  flex-grow: 1;
594
596
  width: 100%;
595
597
  }
@@ -613,27 +615,16 @@ button {
613
615
  * The placeholder should be hidden when the label
614
616
  * is on top of the select. This prevents the label
615
617
  * from overlapping any placeholder value.
616
- *
617
- * TODO(FW-5592): Remove :not(.label-floating) piece
618
618
  */
619
- :host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder {
619
+ :host(.select-label-placement-floating) .native-wrapper .select-placeholder {
620
620
  opacity: 0;
621
621
  }
622
622
 
623
623
  /**
624
- * We don't use .label-floating here because that would
625
- * also include the case where the label is floating due
626
- * to content in the start/end slot. We want the opacity
627
- * to remain at the default in this case, since the select
628
- * isn't being actively interacted with.
629
- *
630
- * TODO(FW-5592): Change entire selector to:
631
- * :host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder
624
+ * Show the placeholder when the label is floating.
632
625
  */
633
- :host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,
634
- :host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,
635
- :host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder {
636
- opacity: 1;
626
+ :host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder {
627
+ opacity: var(--placeholder-opacity);
637
628
  }
638
629
 
639
630
  /**
@@ -648,6 +639,14 @@ button {
648
639
  max-width: calc(100% / 0.75);
649
640
  }
650
641
 
642
+ .select-start,
643
+ .select-end {
644
+ display: flex;
645
+ position: relative;
646
+ flex-shrink: 0;
647
+ align-items: center;
648
+ }
649
+
651
650
  ::slotted([slot=start]), ::slotted([slot=end]) {
652
651
  /**
653
652
  * Prevent the slots from shrinking when the label and/or
@@ -789,11 +788,6 @@ button {
789
788
  color: var(--ion-color-step-650, var(--ion-text-color-step-350, #595959));
790
789
  }
791
790
 
792
- :host(.select-label-placement-stacked) .select-wrapper-inner,
793
- :host(.select-label-placement-floating) .select-wrapper-inner {
794
- width: calc(100% - 1.125rem - 4px);
795
- }
796
-
797
791
  :host(.select-disabled) {
798
792
  opacity: 0.3;
799
793
  }