@ionic/core 8.8.7-dev.11778599050.191a48e3 → 8.8.7-dev.11778680417.1f9234bd

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 (308) 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-col.js +1 -1
  8. package/components/ion-datetime-button.js +1 -1
  9. package/components/ion-datetime.js +1 -1
  10. package/components/ion-fab-button.js +1 -1
  11. package/components/ion-gallery.d.ts +11 -0
  12. package/components/ion-gallery.js +4 -0
  13. package/components/ion-grid.js +1 -1
  14. package/components/ion-header.js +1 -1
  15. package/components/ion-img.js +1 -1
  16. package/components/ion-infinite-scroll-content.js +1 -1
  17. package/components/ion-infinite-scroll.js +1 -1
  18. package/components/ion-input-otp.js +1 -1
  19. package/components/ion-input-password-toggle.js +1 -1
  20. package/components/ion-input.js +1 -1
  21. package/components/ion-item-divider.js +1 -1
  22. package/components/ion-item-group.js +1 -1
  23. package/components/ion-item-option.js +1 -1
  24. package/components/ion-item-options.js +1 -1
  25. package/components/ion-item-sliding.js +1 -1
  26. package/components/ion-item.js +1 -1
  27. package/components/ion-label.js +1 -1
  28. package/components/ion-list-header.js +1 -1
  29. package/components/ion-list.js +1 -1
  30. package/components/ion-loading.js +1 -1
  31. package/components/ion-menu-button.js +1 -1
  32. package/components/ion-menu-toggle.js +1 -1
  33. package/components/ion-menu.js +1 -1
  34. package/components/ion-modal.js +1 -1
  35. package/components/ion-nav-link.js +1 -1
  36. package/components/ion-nav.js +1 -1
  37. package/components/ion-note.js +1 -1
  38. package/components/ion-picker-column-option.js +1 -1
  39. package/components/ion-picker-legacy-column.js +1 -1
  40. package/components/ion-picker-legacy.js +1 -1
  41. package/components/ion-popover.js +1 -1
  42. package/components/ion-progress-bar.js +1 -1
  43. package/components/ion-radio-group.js +1 -1
  44. package/components/ion-radio.js +1 -1
  45. package/components/ion-range.js +1 -1
  46. package/components/ion-refresher-content.js +1 -1
  47. package/components/ion-refresher.js +1 -1
  48. package/components/ion-reorder-group.js +1 -1
  49. package/components/ion-reorder.js +1 -1
  50. package/components/ion-ripple-effect.js +1 -1
  51. package/components/ion-router-link.js +1 -1
  52. package/components/ion-router-outlet.js +1 -1
  53. package/components/ion-row.js +1 -1
  54. package/components/ion-searchbar.js +1 -1
  55. package/components/ion-segment-button.js +1 -1
  56. package/components/ion-segment-content.js +1 -1
  57. package/components/ion-segment-view.js +1 -1
  58. package/components/ion-segment.js +1 -1
  59. package/components/ion-select-modal.js +1 -1
  60. package/components/ion-select-option.js +1 -1
  61. package/components/ion-select-popover.js +1 -1
  62. package/components/ion-select.js +1 -1
  63. package/components/ion-skeleton-text.js +1 -1
  64. package/components/ion-spinner.js +1 -1
  65. package/components/ion-split-pane.js +1 -1
  66. package/components/ion-tab-bar.js +1 -1
  67. package/components/ion-tab-button.js +1 -1
  68. package/components/ion-tab.js +1 -1
  69. package/components/ion-tabs.js +1 -1
  70. package/components/ion-text.js +1 -1
  71. package/components/ion-textarea.js +1 -1
  72. package/components/ion-thumbnail.js +1 -1
  73. package/components/ion-title.js +1 -1
  74. package/components/ion-toast.js +1 -1
  75. package/components/ion-toggle.js +1 -1
  76. package/components/ion-toolbar.js +1 -1
  77. package/components/p-B2rpt1JV.js +4 -0
  78. package/components/p-B6zr9RZN.js +4 -0
  79. package/components/{p-Brxa0j7O.js → p-B71c6yUH.js} +1 -1
  80. package/components/{p-C2cZvGcF.js → p-BFbsici0.js} +1 -1
  81. package/components/{p-CoarhFWH.js → p-BLCuPAtN.js} +1 -1
  82. package/components/{p-GnGGIfCd.js → p-BRWWcnBq.js} +1 -1
  83. package/components/{p-BfHB6wX_.js → p-BXcCGjEc.js} +1 -1
  84. package/components/{p-BU8N7ZrK.js → p-BqImG3uk.js} +1 -1
  85. package/components/{p-D5lMX0xt.js → p-C8ktKu9j.js} +1 -1
  86. package/components/{p-BhfW3d9j.js → p-CIoAIKEr.js} +1 -1
  87. package/components/p-CN-WzkJE.js +4 -0
  88. package/components/{p-CnwZE7CW.js → p-CoFqDNc5.js} +1 -1
  89. package/components/{p-TpZHKDyk.js → p-DAv9P_LE.js} +1 -1
  90. package/components/{p-CeYwuysM.js → p-DH_9VCbD.js} +1 -1
  91. package/components/{p-CdYTq34D.js → p-DTtRWhIZ.js} +1 -1
  92. package/components/{p-C-_EGKki.js → p-DXUyXgVL.js} +1 -1
  93. package/components/{p-BTYqyHph.js → p-Di5rHO3q.js} +1 -1
  94. package/components/{p-D39cV-un.js → p-Dmuy6xyk.js} +1 -1
  95. package/components/{p-BtAlyZ0b.js → p-IMXp2Inn.js} +1 -1
  96. package/components/{p-DAeMHNER.js → p-TR4ubkPu.js} +1 -1
  97. package/dist/cjs/ion-app_8.cjs.entry.js +7 -7
  98. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-col_3.cjs.entry.js +8 -6
  100. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
  101. package/dist/cjs/ion-gallery.cjs.entry.js +490 -0
  102. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  103. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  104. package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
  105. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  106. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  107. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  108. package/dist/cjs/ion-item_8.cjs.entry.js +12 -12
  109. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  110. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  111. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  112. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  113. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  114. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  115. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  116. package/dist/cjs/ion-radio_2.cjs.entry.js +5 -5
  117. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  118. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  119. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  120. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  121. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  122. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  123. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  124. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  125. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  126. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  127. package/dist/cjs/ion-select_3.cjs.entry.js +6 -6
  128. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  129. package/dist/cjs/ion-split-pane.cjs.entry.js +3 -2
  130. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  131. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  132. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  133. package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
  134. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  135. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  136. package/dist/cjs/ionic.cjs.js +1 -1
  137. package/dist/cjs/loader.cjs.js +1 -1
  138. package/dist/collection/collection-manifest.json +6 -0
  139. package/dist/collection/components/col/col.js +3 -2
  140. package/dist/collection/components/gallery/gallery-constants.js +12 -0
  141. package/dist/collection/components/gallery/gallery-interface.js +1 -0
  142. package/dist/collection/components/gallery/gallery.css +100 -0
  143. package/dist/collection/components/gallery/gallery.js +575 -0
  144. package/dist/collection/components/gallery/test/utils.js +100 -0
  145. package/dist/collection/components/grid/grid.js +2 -2
  146. package/dist/collection/components/header/header.js +2 -2
  147. package/dist/collection/components/img/img.js +2 -2
  148. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  149. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  150. package/dist/collection/components/input/input.js +4 -4
  151. package/dist/collection/components/input-otp/input-otp.js +3 -3
  152. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  153. package/dist/collection/components/item-divider/item-divider.js +2 -2
  154. package/dist/collection/components/item-group/item-group.js +1 -1
  155. package/dist/collection/components/item-option/item-option.js +2 -2
  156. package/dist/collection/components/item-options/item-options.js +1 -1
  157. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  158. package/dist/collection/components/label/label.js +2 -2
  159. package/dist/collection/components/list/list.js +1 -1
  160. package/dist/collection/components/list-header/list-header.js +2 -2
  161. package/dist/collection/components/loading/loading.js +2 -2
  162. package/dist/collection/components/menu/menu.js +2 -2
  163. package/dist/collection/components/menu-button/menu-button.js +2 -2
  164. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  165. package/dist/collection/components/modal/modal.js +4 -4
  166. package/dist/collection/components/nav/nav.js +1 -1
  167. package/dist/collection/components/nav-link/nav-link.js +1 -1
  168. package/dist/collection/components/note/note.js +2 -2
  169. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  170. package/dist/collection/components/picker-legacy/picker.js +2 -2
  171. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  172. package/dist/collection/components/popover/popover.js +2 -2
  173. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  174. package/dist/collection/components/radio/radio.js +3 -3
  175. package/dist/collection/components/radio-group/radio-group.js +2 -2
  176. package/dist/collection/components/range/range.js +3 -3
  177. package/dist/collection/components/refresher/refresher.js +1 -1
  178. package/dist/collection/components/refresher-content/refresher-content.js +2 -2
  179. package/dist/collection/components/reorder/reorder.js +2 -2
  180. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  181. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  182. package/dist/collection/components/router-link/router-link.js +2 -2
  183. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  184. package/dist/collection/components/row/row.js +2 -2
  185. package/dist/collection/components/searchbar/searchbar.js +4 -4
  186. package/dist/collection/components/segment/segment.js +2 -2
  187. package/dist/collection/components/segment-button/segment-button.js +2 -2
  188. package/dist/collection/components/segment-content/segment-content.js +1 -1
  189. package/dist/collection/components/segment-view/segment-view.js +2 -2
  190. package/dist/collection/components/select/select.js +3 -3
  191. package/dist/collection/components/select-modal/select-modal.js +1 -1
  192. package/dist/collection/components/select-option/select-option.js +1 -1
  193. package/dist/collection/components/select-popover/select-popover.js +2 -2
  194. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  195. package/dist/collection/components/spinner/spinner.js +1 -1
  196. package/dist/collection/components/split-pane/split-pane.js +3 -2
  197. package/dist/collection/components/tab/tab.js +2 -2
  198. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  199. package/dist/collection/components/tab-button/tab-button.js +2 -2
  200. package/dist/collection/components/tabs/tabs.js +1 -1
  201. package/dist/collection/components/text/text.js +2 -2
  202. package/dist/collection/components/textarea/textarea.js +3 -3
  203. package/dist/collection/components/thumbnail/thumbnail.js +2 -2
  204. package/dist/collection/components/title/title.js +2 -2
  205. package/dist/collection/components/toast/toast.js +2 -2
  206. package/dist/collection/components/toggle/toggle.js +3 -3
  207. package/dist/collection/components/toolbar/toolbar.js +2 -2
  208. package/dist/collection/utils/css-value-validation.js +25 -0
  209. package/dist/collection/utils/media.js +1 -0
  210. package/dist/docs.json +256 -1
  211. package/dist/esm/ion-app_8.entry.js +7 -7
  212. package/dist/esm/ion-avatar_3.entry.js +2 -2
  213. package/dist/esm/ion-col_3.entry.js +8 -6
  214. package/dist/esm/ion-datetime_3.entry.js +4 -4
  215. package/dist/esm/ion-gallery.entry.js +488 -0
  216. package/dist/esm/ion-img.entry.js +2 -2
  217. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  218. package/dist/esm/ion-input-otp.entry.js +3 -3
  219. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  220. package/dist/esm/ion-input.entry.js +4 -4
  221. package/dist/esm/ion-item-option_3.entry.js +4 -4
  222. package/dist/esm/ion-item_8.entry.js +12 -12
  223. package/dist/esm/ion-loading.entry.js +2 -2
  224. package/dist/esm/ion-menu_3.entry.js +6 -6
  225. package/dist/esm/ion-modal.entry.js +4 -4
  226. package/dist/esm/ion-nav_2.entry.js +2 -2
  227. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  228. package/dist/esm/ion-popover.entry.js +2 -2
  229. package/dist/esm/ion-progress-bar.entry.js +1 -1
  230. package/dist/esm/ion-radio_2.entry.js +5 -5
  231. package/dist/esm/ion-range.entry.js +3 -3
  232. package/dist/esm/ion-refresher_2.entry.js +3 -3
  233. package/dist/esm/ion-reorder_2.entry.js +3 -3
  234. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  235. package/dist/esm/ion-route_4.entry.js +2 -2
  236. package/dist/esm/ion-searchbar.entry.js +4 -4
  237. package/dist/esm/ion-segment-content.entry.js +1 -1
  238. package/dist/esm/ion-segment-view.entry.js +2 -2
  239. package/dist/esm/ion-segment_2.entry.js +4 -4
  240. package/dist/esm/ion-select-modal.entry.js +1 -1
  241. package/dist/esm/ion-select_3.entry.js +6 -6
  242. package/dist/esm/ion-spinner.entry.js +1 -1
  243. package/dist/esm/ion-split-pane.entry.js +3 -2
  244. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  245. package/dist/esm/ion-tab_2.entry.js +3 -3
  246. package/dist/esm/ion-text.entry.js +2 -2
  247. package/dist/esm/ion-textarea.entry.js +3 -3
  248. package/dist/esm/ion-toast.entry.js +2 -2
  249. package/dist/esm/ion-toggle.entry.js +3 -3
  250. package/dist/esm/ionic.js +1 -1
  251. package/dist/esm/loader.js +1 -1
  252. package/dist/html.html-data.json +74 -0
  253. package/dist/ionic/ionic.esm.js +1 -1
  254. package/dist/ionic/{p-96549175.entry.js → p-00c0bd38.entry.js} +1 -1
  255. package/dist/ionic/{p-192e7509.entry.js → p-15e3e8f5.entry.js} +1 -1
  256. package/dist/ionic/{p-5ac21be2.entry.js → p-1709b0aa.entry.js} +1 -1
  257. package/dist/ionic/{p-2bf931ae.entry.js → p-1c2c1869.entry.js} +1 -1
  258. package/dist/ionic/{p-3bf01c2c.entry.js → p-1c4de46b.entry.js} +1 -1
  259. package/dist/ionic/p-1e1c8d61.entry.js +4 -0
  260. package/dist/ionic/p-2aa7567e.entry.js +4 -0
  261. package/dist/ionic/{p-bc5713f7.entry.js → p-2ad79c23.entry.js} +1 -1
  262. package/dist/ionic/{p-5a3fc28e.entry.js → p-2f0073af.entry.js} +1 -1
  263. package/dist/ionic/{p-833910ae.entry.js → p-35b144f5.entry.js} +1 -1
  264. package/dist/ionic/{p-59b4f8d0.entry.js → p-3f79f594.entry.js} +1 -1
  265. package/dist/ionic/p-4079cee3.entry.js +4 -0
  266. package/dist/ionic/{p-f061fcb7.entry.js → p-48026d15.entry.js} +1 -1
  267. package/dist/ionic/{p-4091ad21.entry.js → p-50b61fab.entry.js} +1 -1
  268. package/dist/ionic/{p-8516eb69.entry.js → p-50cd2d57.entry.js} +1 -1
  269. package/dist/ionic/{p-50d90690.entry.js → p-5274f999.entry.js} +1 -1
  270. package/dist/ionic/{p-3093958a.entry.js → p-586d4270.entry.js} +1 -1
  271. package/dist/ionic/{p-6991ffa2.entry.js → p-7054a1b9.entry.js} +1 -1
  272. package/dist/ionic/{p-b8b20b7e.entry.js → p-71b6014c.entry.js} +1 -1
  273. package/dist/ionic/{p-9b9b1450.entry.js → p-72491468.entry.js} +1 -1
  274. package/dist/ionic/{p-c2894f9e.entry.js → p-76307d10.entry.js} +1 -1
  275. package/dist/ionic/{p-f740c359.entry.js → p-7d5057c4.entry.js} +1 -1
  276. package/dist/ionic/{p-091a95ea.entry.js → p-83c693c4.entry.js} +1 -1
  277. package/dist/ionic/{p-2aa44c65.entry.js → p-8537b2fb.entry.js} +1 -1
  278. package/dist/ionic/{p-02ecc684.entry.js → p-90e653e3.entry.js} +1 -1
  279. package/dist/ionic/p-96001281.entry.js +4 -0
  280. package/dist/ionic/{p-98c34fd7.entry.js → p-9d789053.entry.js} +1 -1
  281. package/dist/ionic/{p-1faf270d.entry.js → p-a9fb086b.entry.js} +1 -1
  282. package/dist/ionic/{p-e7f216ae.entry.js → p-ae667493.entry.js} +1 -1
  283. package/dist/ionic/{p-edb0b0c8.entry.js → p-b2fe6c1c.entry.js} +1 -1
  284. package/dist/ionic/{p-2effd05d.entry.js → p-b3c9f19c.entry.js} +1 -1
  285. package/dist/ionic/{p-6c8c37c2.entry.js → p-b653f4c2.entry.js} +1 -1
  286. package/dist/ionic/{p-4e46439d.entry.js → p-bd71a4a7.entry.js} +1 -1
  287. package/dist/ionic/p-bf972309.entry.js +4 -0
  288. package/dist/ionic/{p-8180abe5.entry.js → p-c10fa162.entry.js} +1 -1
  289. package/dist/ionic/{p-d954cd19.entry.js → p-d4ed5710.entry.js} +1 -1
  290. package/dist/ionic/{p-228b6a9c.entry.js → p-d6299c37.entry.js} +1 -1
  291. package/dist/ionic/{p-4610e447.entry.js → p-e18d3fdb.entry.js} +1 -1
  292. package/dist/ionic/{p-4c864eb2.entry.js → p-fad05840.entry.js} +1 -1
  293. package/dist/types/components/gallery/gallery-constants.d.ts +9 -0
  294. package/dist/types/components/gallery/gallery-interface.d.ts +10 -0
  295. package/dist/types/components/gallery/gallery.d.ts +171 -0
  296. package/dist/types/components/gallery/test/utils.d.ts +2 -0
  297. package/dist/types/components.d.ts +75 -0
  298. package/dist/types/utils/css-value-validation.d.ts +12 -0
  299. package/hydrate/index.js +628 -126
  300. package/hydrate/index.mjs +628 -126
  301. package/package.json +1 -1
  302. package/components/p-CnOTQxHB.js +0 -4
  303. package/components/p-XFUFdPrc.js +0 -4
  304. package/components/p-tYh73xQe.js +0 -4
  305. package/dist/ionic/p-308beb71.entry.js +0 -4
  306. package/dist/ionic/p-64341e32.entry.js +0 -4
  307. package/dist/ionic/p-76d0e7ef.entry.js +0 -4
  308. package/dist/ionic/p-ae4ea663.entry.js +0 -4
package/hydrate/index.mjs CHANGED
@@ -13106,6 +13106,7 @@ class Chip {
13106
13106
  }; }
13107
13107
  }
13108
13108
 
13109
+ // TODO(FW-7285): Replace with global breakpoints
13109
13110
  const SIZE_TO_MEDIA = {
13110
13111
  xs: '(min-width: 0px)',
13111
13112
  sm: '(min-width: 576px)',
@@ -13129,8 +13130,9 @@ const matchBreakpoint = (breakpoint) => {
13129
13130
 
13130
13131
  const colCss = () => `:host{--col-unit-size:calc( (100% - (var(--ion-grid-columns, 12) - 1) * var(--ion-grid-gap, 0px)) / var(--ion-grid-columns, 12) );-webkit-padding-start:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;-ms-flex:1;flex:1;min-height:1px;overflow:auto}@media (min-width: 576px){:host{-webkit-padding-start:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px))}}@media (min-width: 768px){:host{-webkit-padding-start:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px))}}@media (min-width: 992px){:host{-webkit-padding-start:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px))}}@media (min-width: 1200px){:host{-webkit-padding-start:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px))}}:host(.ion-grid-col-auto){-ms-flex:0 0 auto;flex:0 0 auto}:host([class^=ion-grid-col--]),:host([class*=" ion-grid-col--"]){-ms-flex:0 0 calc(var(--ion-grid-col-span) * var(--col-unit-size) + (var(--ion-grid-col-span) - 1) * var(--ion-grid-gap, 0px));flex:0 0 calc(var(--ion-grid-col-span) * var(--col-unit-size) + (var(--ion-grid-col-span) - 1) * var(--ion-grid-gap, 0px));max-width:calc(var(--ion-grid-col-span) * var(--col-unit-size) + (var(--ion-grid-col-span) - 1) * var(--ion-grid-gap, 0px))}:host([class^=ion-grid-offset-col--]),:host([class*=" ion-grid-offset-col--"]){--margin-calc:calc( var(--col-unit-size) * var(--ion-grid-col-margin) + (var(--ion-grid-gap, 0px) * var(--ion-grid-col-margin)) );-webkit-margin-start:var(--margin-calc);margin-inline-start:var(--margin-calc);-webkit-margin-end:0;margin-inline-end:0}:host(.ion-grid-col--1){--ion-grid-col-span:1}:host(.ion-grid-order-col--1){-ms-flex-order:1;order:1}:host(.ion-grid-offset-col--1){--ion-grid-col-margin:1}:host(.ion-grid-col--2){--ion-grid-col-span:2}:host(.ion-grid-order-col--2){-ms-flex-order:2;order:2}:host(.ion-grid-offset-col--2){--ion-grid-col-margin:2}:host(.ion-grid-col--3){--ion-grid-col-span:3}:host(.ion-grid-order-col--3){-ms-flex-order:3;order:3}:host(.ion-grid-offset-col--3){--ion-grid-col-margin:3}:host(.ion-grid-col--4){--ion-grid-col-span:4}:host(.ion-grid-order-col--4){-ms-flex-order:4;order:4}:host(.ion-grid-offset-col--4){--ion-grid-col-margin:4}:host(.ion-grid-col--5){--ion-grid-col-span:5}:host(.ion-grid-order-col--5){-ms-flex-order:5;order:5}:host(.ion-grid-offset-col--5){--ion-grid-col-margin:5}:host(.ion-grid-col--6){--ion-grid-col-span:6}:host(.ion-grid-order-col--6){-ms-flex-order:6;order:6}:host(.ion-grid-offset-col--6){--ion-grid-col-margin:6}:host(.ion-grid-col--7){--ion-grid-col-span:7}:host(.ion-grid-order-col--7){-ms-flex-order:7;order:7}:host(.ion-grid-offset-col--7){--ion-grid-col-margin:7}:host(.ion-grid-col--8){--ion-grid-col-span:8}:host(.ion-grid-order-col--8){-ms-flex-order:8;order:8}:host(.ion-grid-offset-col--8){--ion-grid-col-margin:8}:host(.ion-grid-col--9){--ion-grid-col-span:9}:host(.ion-grid-order-col--9){-ms-flex-order:9;order:9}:host(.ion-grid-offset-col--9){--ion-grid-col-margin:9}:host(.ion-grid-col--10){--ion-grid-col-span:10}:host(.ion-grid-order-col--10){-ms-flex-order:10;order:10}:host(.ion-grid-offset-col--10){--ion-grid-col-margin:10}:host(.ion-grid-col--11){--ion-grid-col-span:11}:host(.ion-grid-order-col--11){-ms-flex-order:11;order:11}:host(.ion-grid-offset-col--11){--ion-grid-col-margin:11}:host(.ion-grid-col--12){--ion-grid-col-span:12}:host(.ion-grid-order-col--12){-ms-flex-order:12;order:12}:host(.ion-grid-offset-col--12){--ion-grid-col-margin:12}`;
13131
13132
 
13133
+ // TODO(FW-7285): Replace with global breakpoints
13132
13134
  // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
13133
- const BREAKPOINTS = ['', 'xs', 'sm', 'md', 'lg', 'xl'];
13135
+ const BREAKPOINTS$1 = ['', 'xs', 'sm', 'md', 'lg', 'xl'];
13134
13136
  /**
13135
13137
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
13136
13138
  * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
@@ -13145,7 +13147,7 @@ class Col {
13145
13147
  // matches and grab the column value from the relevant prop if so
13146
13148
  getColumns(property) {
13147
13149
  let matched;
13148
- for (const breakpoint of BREAKPOINTS) {
13150
+ for (const breakpoint of BREAKPOINTS$1) {
13149
13151
  const matches = matchBreakpoint(breakpoint);
13150
13152
  // Grab the value of the property, if it exists and our
13151
13153
  // media query matches we return the value
@@ -13206,12 +13208,12 @@ class Col {
13206
13208
  const colSize = this.getSizeClass();
13207
13209
  const colOrder = this.getOrderClass();
13208
13210
  const colOffset = this.getOffsetClass();
13209
- return (hAsync(Host, { key: '4620a4eb3c94f744d6169ae9d4cc43e86a271a52', class: {
13211
+ return (hAsync(Host, { key: '7fc98e15bd75e9c22fe7eaf71f2f49f5d987613a', class: {
13210
13212
  [theme]: true,
13211
13213
  [`${colSize}`]: colSize !== undefined,
13212
13214
  [`${colOrder}`]: colOrder !== undefined,
13213
13215
  [`${colOffset}`]: colOffset !== undefined,
13214
- } }, hAsync("slot", { key: '5c3be98deed2050634396339b7787f2770a05d35' })));
13216
+ } }, hAsync("slot", { key: '6ed04a2c2bcdb0400354368c568e58414a60fc39' })));
13215
13217
  }
13216
13218
  get el() { return getElement(this); }
13217
13219
  static get style() { return colCss(); }
@@ -18689,6 +18691,504 @@ class Footer {
18689
18691
  }; }
18690
18692
  }
18691
18693
 
18694
+ /**
18695
+ * Helpers for validating user-supplied CSS values using regular expressions, without
18696
+ * relying on browser CSS APIs.
18697
+ */
18698
+ // Matches `<length>` (`<number>` + unit identifier) or `<percentage>` (`<number>%`).
18699
+ const LENGTH_PERCENTAGE_PATTERN = /^[-+]?(?:\d+\.?\d*|\.\d+)(?:%|[a-z]+)$/i;
18700
+ // Matches simple `calc` / `min` / `max` / `clamp(...)` functions.
18701
+ const MATH_FUNCTION_PATTERN = /^(calc|min|max|clamp)\s*\(.+\)$/i;
18702
+ /**
18703
+ * Returns whether `value` matches the [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
18704
+ * syntax. Accepts `<length>` (`<number>` + unit identifier) or `<percentage>` (`<number>%`).
18705
+ * Also supports simple `calc` / `min` / `max` / `clamp(...)` functions.
18706
+ *
18707
+ * @param value String value to validate.
18708
+ */
18709
+ function isValidLengthPercentage(value) {
18710
+ const v = value.trim();
18711
+ if (!v) {
18712
+ return false;
18713
+ }
18714
+ return MATH_FUNCTION_PATTERN.test(v) || LENGTH_PERCENTAGE_PATTERN.test(v);
18715
+ }
18716
+
18717
+ const DEFAULT_COLUMNS = {
18718
+ xs: 2,
18719
+ sm: 3,
18720
+ md: 4,
18721
+ lg: 6,
18722
+ xl: 8,
18723
+ xxl: 10,
18724
+ };
18725
+ const DEFAULT_GAP = '16px';
18726
+
18727
+ const galleryCss = () => `:host{display:grid;grid-template-columns:repeat(var(--internal-gallery-columns, 2), minmax(0, 1fr))}:host(.gallery-layout-uniform){gap:var(--internal-gallery-gap, 16px)}:host(.gallery-layout-uniform) ::slotted(*){aspect-ratio:1/1}:host(.gallery-layout-masonry){-ms-flex-align:start;align-items:start;-webkit-column-gap:var(--internal-gallery-gap, 16px);-moz-column-gap:var(--internal-gallery-gap, 16px);column-gap:var(--internal-gallery-gap, 16px);row-gap:0;grid-auto-rows:2px}:host(.gallery-layout-masonry) ::slotted(*){display:block;min-height:unset;margin-bottom:var(--internal-gallery-gap, 16px)}::slotted(*){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%}::slotted(img){display:block;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}`;
18728
+
18729
+ // TODO(FW-7285): Replace with global breakpoints
18730
+ const BREAKPOINTS = {
18731
+ xs: 0,
18732
+ sm: 576,
18733
+ md: 768,
18734
+ lg: 992,
18735
+ xl: 1200,
18736
+ xxl: 1400,
18737
+ };
18738
+ const BREAKPOINT_ORDER = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
18739
+ /**
18740
+ * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
18741
+ * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
18742
+ *
18743
+ * @slot - Content is placed in a responsive gallery layout.
18744
+ */
18745
+ class Gallery {
18746
+ constructor(hostRef) {
18747
+ registerInstance(this, hostRef);
18748
+ // Keep track of whether we've warned about invalid columns, invalid gap,
18749
+ // and unused order properties to avoid duplicate warnings on screen resize.
18750
+ this.hasWarnedInvalidColumns = false;
18751
+ this.hasWarnedInvalidGap = false;
18752
+ this.hasWarnedUnusedOrder = false;
18753
+ /**
18754
+ * The visual layout of the gallery. When `uniform`, rows take up the height
18755
+ * of the tallest item and are spaced evenly across the gallery. Additionally,
18756
+ * items will have an aspect ratio of 1/1, forcing them to be square unless a
18757
+ * height is explicitly set. When `masonry`, items will be positioned under each
18758
+ * other with only the specified gap between them.
18759
+ */
18760
+ this.layout = 'uniform';
18761
+ /**
18762
+ * The number of columns to display. Can be set as a number or an object of
18763
+ * breakpoint values (e.g. `{ xs: 2, sm: 3, md: 4 }`).
18764
+ */
18765
+ this.columns = DEFAULT_COLUMNS;
18766
+ /**
18767
+ * The space between gallery items. Accepts valid CSS [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
18768
+ * values like `16px`, `1rem`, `20%`, math functions like `calc(10px + 20%)`,
18769
+ * or numbers (treated as pixel values). Can also be set as a breakpoint map
18770
+ * (e.g. `{ xs: '8px', sm: '1rem', md: '24px' }`). Does not accept
18771
+ * space-separated values or CSS keyword values like `inherit`, `auto`, etc.
18772
+ */
18773
+ this.gap = DEFAULT_GAP;
18774
+ /**
18775
+ * Listen for the slotchange event on the slot.
18776
+ * When the layout is `masonry`, this listener is used to schedule a resize
18777
+ * of the masonry grid when the slot changes. This is useful for when items
18778
+ * are added or removed from the gallery.
18779
+ */
18780
+ this.onSlotChange = () => {
18781
+ this.scheduleMasonryResize();
18782
+ };
18783
+ /**
18784
+ * Measure the host and children, then compute masonry placement.
18785
+ */
18786
+ this.resizeMasonryGrid = () => {
18787
+ this.masonryRaf = undefined;
18788
+ if (this.layout !== 'masonry') {
18789
+ this.clearMasonryStyles();
18790
+ return;
18791
+ }
18792
+ const width = this.el.getBoundingClientRect().width;
18793
+ const columns = this.getColumnsForWidth(width);
18794
+ // Skip masonry placement when width/columns does not resolve
18795
+ // to a valid breakpoint column count.
18796
+ if (columns === undefined) {
18797
+ return;
18798
+ }
18799
+ const styles = getComputedStyle(this.el);
18800
+ const rowHeight = parseFloat(styles.getPropertyValue('grid-auto-rows')) || 0;
18801
+ const rowGap = parseFloat(styles.getPropertyValue('row-gap')) || parseFloat(styles.getPropertyValue('gap')) || 0;
18802
+ const items = this.getItems();
18803
+ this.layoutMasonry(items, rowHeight, rowGap, columns);
18804
+ };
18805
+ }
18806
+ propertiesChanged() {
18807
+ this.updateResponsiveStyles(true);
18808
+ this.scheduleMasonryResize();
18809
+ // Wait until the next animation frame to warn about unused order
18810
+ // to avoid erroneous warnings when the layout and order are updated
18811
+ // in the same frame.
18812
+ raf(() => {
18813
+ this.warnUnusedOrder();
18814
+ });
18815
+ }
18816
+ componentDidLoad() {
18817
+ this.updateResponsiveStyles(true);
18818
+ this.resizeObserver = new ResizeObserver(() => {
18819
+ this.updateResponsiveStyles();
18820
+ this.scheduleMasonryResize();
18821
+ });
18822
+ this.resizeObserver.observe(this.el);
18823
+ this.scheduleMasonryResize();
18824
+ this.warnUnusedOrder();
18825
+ }
18826
+ disconnectedCallback() {
18827
+ var _a;
18828
+ if (this.masonryRaf !== undefined) {
18829
+ cancelAnimationFrame(this.masonryRaf);
18830
+ this.masonryRaf = undefined;
18831
+ }
18832
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
18833
+ this.resizeObserver = undefined;
18834
+ }
18835
+ /**
18836
+ * Listen for the load event on child elements.
18837
+ * When the layout is `masonry`, this listener is used to schedule a resize
18838
+ * of the masonry grid when the child elements load. This is useful for when
18839
+ * images take time to load.
18840
+ */
18841
+ onChildLoad(ev) {
18842
+ if (this.layout !== 'masonry') {
18843
+ return;
18844
+ }
18845
+ const target = ev.target;
18846
+ if (target !== null && this.el.contains(target)) {
18847
+ this.scheduleMasonryResize();
18848
+ }
18849
+ }
18850
+ /**
18851
+ * Batch masonry measurements to a single animation frame.
18852
+ * This avoids repeated sync layouts during rapid resize/load/slot changes.
18853
+ */
18854
+ scheduleMasonryResize() {
18855
+ if (this.layout !== 'masonry') {
18856
+ this.clearMasonryStyles();
18857
+ return;
18858
+ }
18859
+ if (this.masonryRaf !== undefined) {
18860
+ cancelAnimationFrame(this.masonryRaf);
18861
+ }
18862
+ this.masonryRaf = requestAnimationFrame(this.resizeMasonryGrid);
18863
+ }
18864
+ /**
18865
+ * Normalize a single column value (`columns` as a number, string, or one entry from
18866
+ * a `columns` breakpoint map) to a positive integer. Returns `undefined` when
18867
+ * the input cannot be interpreted as a finite number.
18868
+ */
18869
+ sanitizeColumns(columns) {
18870
+ if (columns === undefined) {
18871
+ return undefined;
18872
+ }
18873
+ const numericColumns = typeof columns === 'number' ? columns : Number(columns);
18874
+ if (!Number.isFinite(numericColumns) || !Number.isInteger(numericColumns) || numericColumns <= 0) {
18875
+ return undefined;
18876
+ }
18877
+ return numericColumns;
18878
+ }
18879
+ /**
18880
+ * Normalize a single gap value (`gap` as a number, string, or one entry from
18881
+ * a `gap` breakpoint map) to a CSS length string. Returns `undefined` when
18882
+ * the input cannot be interpreted as a valid CSS length.
18883
+ */
18884
+ sanitizeGap(gap) {
18885
+ if (gap === undefined) {
18886
+ return undefined;
18887
+ }
18888
+ const normalizedGap = typeof gap === 'string' ? gap.trim() : gap;
18889
+ if (normalizedGap === '' || typeof normalizedGap === 'object') {
18890
+ return undefined;
18891
+ }
18892
+ const numericGap = Number(normalizedGap);
18893
+ if (Number.isFinite(numericGap)) {
18894
+ return numericGap < 0 ? undefined : `${numericGap}px`;
18895
+ }
18896
+ if (typeof normalizedGap !== 'string') {
18897
+ return undefined;
18898
+ }
18899
+ const isValidCssLength = isValidLengthPercentage(normalizedGap);
18900
+ return isValidCssLength ? normalizedGap : undefined;
18901
+ }
18902
+ /**
18903
+ * Check if the value is a breakpoint map object.
18904
+ */
18905
+ isBreakpointMap(value) {
18906
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
18907
+ }
18908
+ /**
18909
+ * Check if the breakpoint map has any invalid values for the provided sanitizer.
18910
+ */
18911
+ hasInvalidBreakpointMap(breakpointMap, sanitizeValue) {
18912
+ for (const breakpoint of BREAKPOINT_ORDER) {
18913
+ const value = breakpointMap[breakpoint];
18914
+ if (value !== undefined && sanitizeValue(value) === undefined) {
18915
+ return true;
18916
+ }
18917
+ }
18918
+ return false;
18919
+ }
18920
+ /**
18921
+ * Resolve a responsive value from a breakpoint map.
18922
+ * Uses a breakpoint-specific default when custom values are missing/invalid.
18923
+ */
18924
+ resolveFromBreakpoints(width, breakpointMap, sanitizeProvided, getSanitizedDefault) {
18925
+ let resolvedValue;
18926
+ for (const bp of BREAKPOINT_ORDER) {
18927
+ const providedValue = breakpointMap[bp];
18928
+ const sanitizedProvided = sanitizeProvided(providedValue);
18929
+ const sanitizedDefault = getSanitizedDefault(bp);
18930
+ const resolved = providedValue === undefined || sanitizedProvided === undefined ? sanitizedDefault : sanitizedProvided;
18931
+ if (resolved !== undefined && width >= BREAKPOINTS[bp]) {
18932
+ resolvedValue = resolved;
18933
+ }
18934
+ }
18935
+ return resolvedValue;
18936
+ }
18937
+ /**
18938
+ * Get the columns from a responsive breakpoint map.
18939
+ * Returns the columns for the last matching breakpoint.
18940
+ */
18941
+ getColumnsFromBreakpointMap(width, breakpointMap) {
18942
+ return this.resolveFromBreakpoints(width, breakpointMap, (value) => this.sanitizeColumns(value), (bp) => this.sanitizeColumns(DEFAULT_COLUMNS[bp]));
18943
+ }
18944
+ /**
18945
+ * Get the gap from a responsive breakpoint map.
18946
+ * Returns the gap for the last matching breakpoint.
18947
+ */
18948
+ getGapFromBreakpointMap(width, breakpointMap) {
18949
+ return this.resolveFromBreakpoints(width, breakpointMap, (value) => this.sanitizeGap(value), () => this.sanitizeGap(DEFAULT_GAP));
18950
+ }
18951
+ /**
18952
+ * Warn about an invalid columns value when it is set to a non-positive
18953
+ * integer or a breakpoint map object with invalid values.
18954
+ */
18955
+ warnInvalidColumns(columns) {
18956
+ if (this.hasWarnedInvalidColumns) {
18957
+ return;
18958
+ }
18959
+ printIonWarning(`[ion-gallery] - Invalid "columns" value (${JSON.stringify(columns)}). Expected a positive integer or breakpoint map object (e.g. { xs: 2, md: 4 }). Falling back to default responsive columns.`, this.el);
18960
+ this.hasWarnedInvalidColumns = true;
18961
+ }
18962
+ /**
18963
+ * Warn about an invalid gap value when it is set to a negative number
18964
+ * or a breakpoint map object with invalid values.
18965
+ */
18966
+ warnInvalidGap(gap) {
18967
+ if (this.hasWarnedInvalidGap) {
18968
+ return;
18969
+ }
18970
+ printIonWarning(`[ion-gallery] - Invalid "gap" value (${JSON.stringify(gap)}). Expected a non-negative number, CSS length string, or breakpoint map object (e.g. { xs: 8, md: "1rem" }).`, this.el);
18971
+ this.hasWarnedInvalidGap = true;
18972
+ }
18973
+ /**
18974
+ * Warn when `order` is explicitly set while layout is `uniform`.
18975
+ */
18976
+ warnUnusedOrder() {
18977
+ const { layout } = this;
18978
+ const order = this.order == null ? undefined : this.order;
18979
+ if (this.hasWarnedUnusedOrder || layout !== 'uniform' || order === undefined) {
18980
+ return;
18981
+ }
18982
+ printIonWarning(`[ion-gallery] - "order" has no effect when "layout" is "uniform". Set "layout" to "masonry" for "order" to apply.`, this.el);
18983
+ this.hasWarnedUnusedOrder = true;
18984
+ }
18985
+ /**
18986
+ * Resolve the active columns value for the current width. Falls back to
18987
+ * the default responsive columns when the provided prop is invalid.
18988
+ */
18989
+ getColumnsForWidth(width) {
18990
+ const { columns } = this;
18991
+ const isBreakpointColumns = this.isBreakpointMap(columns);
18992
+ const hasInvalidBreakpointColumns = isBreakpointColumns && this.hasInvalidBreakpointMap(columns, (value) => this.sanitizeColumns(value));
18993
+ const sanitizedColumns = isBreakpointColumns
18994
+ ? this.getColumnsFromBreakpointMap(width, columns)
18995
+ : this.sanitizeColumns(columns);
18996
+ if (hasInvalidBreakpointColumns || (!isBreakpointColumns && sanitizedColumns === undefined)) {
18997
+ this.warnInvalidColumns(columns);
18998
+ }
18999
+ if (sanitizedColumns !== undefined) {
19000
+ return sanitizedColumns;
19001
+ }
19002
+ return this.getColumnsFromBreakpointMap(width, DEFAULT_COLUMNS);
19003
+ }
19004
+ /**
19005
+ * Resolve the active gap value for the current width.
19006
+ */
19007
+ getGapForWidth(width) {
19008
+ const { gap } = this;
19009
+ const providedGap = gap !== null && gap !== void 0 ? gap : DEFAULT_GAP;
19010
+ const isBreakpointGap = this.isBreakpointMap(providedGap);
19011
+ const hasInvalidBreakpointGap = isBreakpointGap && this.hasInvalidBreakpointMap(providedGap, (value) => this.sanitizeGap(value));
19012
+ const sanitizedGap = isBreakpointGap
19013
+ ? this.getGapFromBreakpointMap(width, providedGap)
19014
+ : this.sanitizeGap(providedGap);
19015
+ if (hasInvalidBreakpointGap || (!isBreakpointGap && sanitizedGap === undefined)) {
19016
+ this.warnInvalidGap(providedGap);
19017
+ }
19018
+ if (sanitizedGap !== undefined) {
19019
+ return sanitizedGap;
19020
+ }
19021
+ return this.sanitizeGap(DEFAULT_GAP);
19022
+ }
19023
+ /**
19024
+ * Update the responsive styles for the gallery. This is used to update
19025
+ * the columns and gap when the component width changes.
19026
+ */
19027
+ updateResponsiveStyles(force = false) {
19028
+ const width = this.el.getBoundingClientRect().width;
19029
+ // Only update the columns if the component width has changed by more than
19030
+ // 1px or if the force flag is true. This prevents unnecessary re-renders
19031
+ // when the component width has not changed.
19032
+ if (!width || (!force && this.lastWidth !== undefined && Math.abs(this.lastWidth - width) < 1)) {
19033
+ return;
19034
+ }
19035
+ this.lastWidth = width;
19036
+ const columns = this.getColumnsForWidth(width);
19037
+ this.el.style.setProperty('--internal-gallery-columns', `${columns}`);
19038
+ const gap = this.getGapForWidth(width);
19039
+ this.el.style.setProperty('--internal-gallery-gap', `${gap}`);
19040
+ }
19041
+ /**
19042
+ * Return all directly slotted HTMLElement children of the gallery.
19043
+ */
19044
+ getItems() {
19045
+ return Array.from(this.el.children).filter((child) => child instanceof HTMLElement);
19046
+ }
19047
+ /**
19048
+ * Clear the item styles for the given item element.
19049
+ * This is used to switch between uniform and masonry layouts.
19050
+ */
19051
+ clearItemStyles(itemEl) {
19052
+ itemEl.style.gridRowStart = '';
19053
+ itemEl.style.gridRowEnd = '';
19054
+ itemEl.style.gridColumn = '';
19055
+ itemEl.style.marginBottom = '';
19056
+ }
19057
+ /**
19058
+ * Clear placement styles for all items when leaving masonry mode.
19059
+ */
19060
+ clearMasonryStyles() {
19061
+ this.getItems().forEach((itemEl) => this.clearItemStyles(itemEl));
19062
+ }
19063
+ /**
19064
+ * Convert a rendered item height to the number of grid rows it should span.
19065
+ * Returns undefined for images that are not fully loaded yet.
19066
+ */
19067
+ calculateRowSpan(itemEl, rowHeight, rowGap) {
19068
+ if (itemEl instanceof HTMLImageElement && (!itemEl.complete || itemEl.naturalHeight === 0)) {
19069
+ return undefined;
19070
+ }
19071
+ const height = itemEl.getBoundingClientRect().height;
19072
+ const itemStyles = getComputedStyle(itemEl);
19073
+ const marginBottom = parseFloat(itemStyles.getPropertyValue('margin-bottom')) || 0;
19074
+ const denominator = rowHeight + rowGap;
19075
+ if (!denominator || !Number.isFinite(denominator)) {
19076
+ return 1;
19077
+ }
19078
+ return Math.ceil((height + marginBottom + rowGap) / denominator) || 1;
19079
+ }
19080
+ /**
19081
+ * Get the index of the column to position the item in.
19082
+ * When the order is `best-fit`, the column with the shortest height is
19083
+ * returned. Otherwise, items are placed in the column that matches their
19084
+ * natural DOM order.
19085
+ */
19086
+ getColumnIndex(index, columnHeights, columns) {
19087
+ const order = this.getOrder();
19088
+ if (order === 'best-fit') {
19089
+ let columnIndex = 0;
19090
+ for (let i = 1; i < columns; i++) {
19091
+ if (columnHeights[i] < columnHeights[columnIndex]) {
19092
+ columnIndex = i;
19093
+ }
19094
+ }
19095
+ return columnIndex;
19096
+ }
19097
+ return index % columns;
19098
+ }
19099
+ /**
19100
+ * Apply masonry placement by assigning each item a column and row span.
19101
+ */
19102
+ layoutMasonry(items, rowHeight, rowGap, columns) {
19103
+ const columnHeights = new Array(columns).fill(0);
19104
+ const lastItemsByColumn = new Array(columns).fill(undefined);
19105
+ items.forEach((itemEl, i) => {
19106
+ itemEl.style.marginBottom = '';
19107
+ const span = this.calculateRowSpan(itemEl, rowHeight, rowGap);
19108
+ if (span === undefined) {
19109
+ this.clearItemStyles(itemEl);
19110
+ return;
19111
+ }
19112
+ const columnIndex = this.getColumnIndex(i, columnHeights, columns);
19113
+ const start = columnHeights[columnIndex] + 1;
19114
+ itemEl.style.gridColumn = `${columnIndex + 1}`;
19115
+ itemEl.style.gridRowStart = `${start}`;
19116
+ itemEl.style.gridRowEnd = `span ${span}`;
19117
+ columnHeights[columnIndex] = start + span - 1;
19118
+ lastItemsByColumn[columnIndex] = itemEl;
19119
+ });
19120
+ // Remove trailing space from the final item in each column while preserving
19121
+ // spacing between all non-final items.
19122
+ lastItemsByColumn.forEach((itemEl) => {
19123
+ if (itemEl === undefined) {
19124
+ return;
19125
+ }
19126
+ itemEl.style.marginBottom = '0px';
19127
+ const spanWithoutTrailingGap = this.calculateRowSpan(itemEl, rowHeight, rowGap);
19128
+ if (spanWithoutTrailingGap === undefined) {
19129
+ this.clearItemStyles(itemEl);
19130
+ return;
19131
+ }
19132
+ itemEl.style.gridRowEnd = `span ${spanWithoutTrailingGap}`;
19133
+ });
19134
+ }
19135
+ /**
19136
+ * Resolved order for layout and CSS. Order should be `undefined` for
19137
+ * the uniform layout. When order is not set, it should be `"sequential"`
19138
+ * for the masonry layout.
19139
+ */
19140
+ getOrder() {
19141
+ const { layout } = this;
19142
+ const order = this.order == null ? undefined : this.order;
19143
+ if (layout === 'uniform') {
19144
+ return undefined;
19145
+ }
19146
+ if (layout === 'masonry' && order === undefined) {
19147
+ return 'sequential';
19148
+ }
19149
+ return order;
19150
+ }
19151
+ render() {
19152
+ const { layout } = this;
19153
+ const order = this.getOrder();
19154
+ const theme = getIonTheme(this);
19155
+ return (hAsync(Host, { key: '8a8266626f1ba8beb7e382c89ae7905372fe23a9', class: {
19156
+ [theme]: true,
19157
+ [`gallery-layout-${layout}`]: true,
19158
+ [`gallery-order-${order}`]: layout === 'masonry' && order !== undefined,
19159
+ } }, hAsync("slot", { key: '7758e89bda53a91d593b9ece0cbe60a4bce0a0fa', onSlotchange: this.onSlotChange })));
19160
+ }
19161
+ get el() { return getElement(this); }
19162
+ static get watchers() { return {
19163
+ "columns": [{
19164
+ "propertiesChanged": 0
19165
+ }],
19166
+ "gap": [{
19167
+ "propertiesChanged": 0
19168
+ }],
19169
+ "layout": [{
19170
+ "propertiesChanged": 0
19171
+ }],
19172
+ "order": [{
19173
+ "propertiesChanged": 0
19174
+ }]
19175
+ }; }
19176
+ static get style() { return galleryCss(); }
19177
+ static get cmpMeta() { return {
19178
+ "$flags$": 265,
19179
+ "$tagName$": "ion-gallery",
19180
+ "$members$": {
19181
+ "layout": [1],
19182
+ "order": [1],
19183
+ "columns": [8],
19184
+ "gap": [8]
19185
+ },
19186
+ "$listeners$": [[2, "load", "onChildLoad"]],
19187
+ "$lazyBundleId$": "-",
19188
+ "$attrsToReflect$": []
19189
+ }; }
19190
+ }
19191
+
18692
19192
  const gridCss = () => `:host{-webkit-padding-start:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;display:block;-ms-flex:1;flex:1}@media (min-width: 576px){:host{-webkit-padding-start:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px))}}@media (min-width: 768px){:host{-webkit-padding-start:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px))}}@media (min-width: 992px){:host{-webkit-padding-start:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px))}}@media (min-width: 1200px){:host{-webkit-padding-start:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px))}}:host(.grid-fixed){width:var(--ion-grid-width-xs, var(--ion-grid-width, 100%));max-width:100%}@media (min-width: 576px){:host(.grid-fixed){width:var(--ion-grid-width-sm, var(--ion-grid-width, 540px))}}@media (min-width: 768px){:host(.grid-fixed){width:var(--ion-grid-width-md, var(--ion-grid-width, 720px))}}@media (min-width: 992px){:host(.grid-fixed){width:var(--ion-grid-width-lg, var(--ion-grid-width, 960px))}}@media (min-width: 1200px){:host(.grid-fixed){width:var(--ion-grid-width-xl, var(--ion-grid-width, 1140px))}}:host(.ion-no-padding){--ion-grid-column-padding:0;--ion-grid-column-padding-xs:0;--ion-grid-column-padding-sm:0;--ion-grid-column-padding-md:0;--ion-grid-column-padding-lg:0;--ion-grid-column-padding-xl:0}`;
18693
19193
 
18694
19194
  /**
@@ -18705,10 +19205,10 @@ class Grid {
18705
19205
  }
18706
19206
  render() {
18707
19207
  const theme = getIonTheme(this);
18708
- return (hAsync(Host, { key: 'cd55886cabaeab57e3b13193381b196bec2f07f8', class: {
19208
+ return (hAsync(Host, { key: '43b4e05ef076160d901c70dc37e177f19b524349', class: {
18709
19209
  [theme]: true,
18710
19210
  'grid-fixed': this.fixed,
18711
- } }, hAsync("slot", { key: 'c9b95999e6a274a8a0c997451c0be45b1304d77b' })));
19211
+ } }, hAsync("slot", { key: 'f3805936034708e6783223ded72c0ecfd40e5fb0' })));
18712
19212
  }
18713
19213
  static get style() { return gridCss(); }
18714
19214
  static get cmpMeta() { return {
@@ -19110,7 +19610,7 @@ class Header {
19110
19610
  const isCondensed = collapse === 'condense';
19111
19611
  // banner role must be at top level, so remove role if inside a menu
19112
19612
  const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, theme);
19113
- return (hAsync(Host, Object.assign({ key: '658d5746920c349cc9fe85666c7215f2edc3c794', role: roleType, class: {
19613
+ return (hAsync(Host, Object.assign({ key: 'b43e5f542bdcec5e94c299556183cf6d9d673438', role: roleType, class: {
19114
19614
  [theme]: true,
19115
19615
  // Used internally for styling
19116
19616
  [`header-${theme}`]: true,
@@ -19118,7 +19618,7 @@ class Header {
19118
19618
  [`header-collapse-${collapse}`]: true,
19119
19619
  [`header-translucent-${theme}`]: this.translucent,
19120
19620
  ['header-divider']: divider,
19121
- } }, inheritedAttributes), theme !== 'md' && translucent && hAsync("div", { key: '4a1470d86e1aac6f8d545fe01e75b4dce665fb70', class: "header-background" }), hAsync("slot", { key: '3b02661242bda5834c4e13e4eb61bf79b53ba33e' })));
19621
+ } }, inheritedAttributes), theme !== 'md' && translucent && hAsync("div", { key: 'fd9938f02edd38e1afc83025373ec0aec5633711', class: "header-background" }), hAsync("slot", { key: '900aaa7da5d6f08e6f94b128fa065348d595159e' })));
19122
19622
  }
19123
19623
  get el() { return getElement(this); }
19124
19624
  static get style() { return {
@@ -19469,9 +19969,9 @@ class Img {
19469
19969
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
19470
19970
  const { draggable } = inheritedAttributes;
19471
19971
  const theme = getIonTheme(this);
19472
- return (hAsync(Host, { key: '840d5b29d81222b061ac72168ef6551b5a061e3a', class: {
19972
+ return (hAsync(Host, { key: '91de170493b31d6260e975b440beceb6906b6d5a', class: {
19473
19973
  [theme]: true,
19474
- } }, hAsync("img", { key: 'e22e66ee4bb3a648b21c6080674e68eebf4a3feb', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
19974
+ } }, hAsync("img", { key: 'ac1f41afbece34a3e38e656733f3e55cce385b4c', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
19475
19975
  }
19476
19976
  get el() { return getElement(this); }
19477
19977
  static get watchers() { return {
@@ -19776,7 +20276,7 @@ class InfiniteScroll {
19776
20276
  render() {
19777
20277
  const theme = getIonTheme(this);
19778
20278
  const disabled = this.disabled;
19779
- return (hAsync(Host, { key: '22d99824cb589d9024666a3c1ed205f781858eed', class: {
20279
+ return (hAsync(Host, { key: '02beca21d668e4e605532ad5ca5a67a08c71eebb', class: {
19780
20280
  [theme]: true,
19781
20281
  'infinite-scroll-loading': this.isLoading,
19782
20282
  'infinite-scroll-enabled': !disabled,
@@ -19839,11 +20339,11 @@ class InfiniteScrollContent {
19839
20339
  }
19840
20340
  render() {
19841
20341
  const theme = getIonTheme(this);
19842
- return (hAsync(Host, { key: 'e94d19f17ef9d4d77786716152e3206366feb546', class: {
20342
+ return (hAsync(Host, { key: 'b51954f829eeafd5ec304b3e66e330776485ffc8', class: {
19843
20343
  [theme]: true,
19844
20344
  // Used internally for styling
19845
20345
  [`infinite-scroll-content-${theme}`]: true,
19846
- } }, hAsync("div", { key: '35fcc0572ad27a683aa55a704bd11b19fcdfd29c', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { key: 'fec3c13dbb2fa98699401147ce442b73e97e8bd8', class: "infinite-loading-spinner" }, hAsync("ion-spinner", { key: '6cd6083255dacc891b4d201477e6bffccb1084bc', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
20346
+ } }, hAsync("div", { key: '047da7f15fe38deed592dd66d1c97e12da4545bb', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { key: '1c05820f091052b8ee9e9ca20054495a676c21aa', class: "infinite-loading-spinner" }, hAsync("ion-spinner", { key: 'ff801e3486f3c1a4605d2a2de9b47bd7bd536698', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
19847
20347
  }
19848
20348
  static get style() { return {
19849
20349
  ionic: ionicInfiniteScrollContentMdCss(),
@@ -20591,7 +21091,7 @@ class Input {
20591
21091
  * TODO(FW-5592): Remove hasStartEndSlots condition
20592
21092
  */
20593
21093
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
20594
- return (hAsync(Host, { key: 'd62741432c3e1421d69fdf2ed2e8058a1ce3544f', class: createColorClasses$1(this.color, {
21094
+ return (hAsync(Host, { key: 'beeeca9939e7e416783425f67d3c9e2be6bbae99', class: createColorClasses$1(this.color, {
20595
21095
  [theme]: true,
20596
21096
  'has-value': hasValue,
20597
21097
  'has-focus': hasFocus,
@@ -20604,7 +21104,7 @@ class Input {
20604
21104
  'in-item-color': hostContext('ion-item.ion-color', this.el),
20605
21105
  'input-disabled': disabled,
20606
21106
  'input-readonly': readonly,
20607
- }) }, hAsync("label", { key: '9707227d9eb977e0983c78757af20219eb1651c6', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '8bc5197ecb665e268668137844f122b74f69cc2d', class: "native-wrapper", onClick: this.onLabelClick },
21107
+ }) }, hAsync("label", { key: 'f227df52a6ad60344f16261a82c0d0566bb8cd5b', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: 'ae6da554ce21f805361a7704139b776a9344dcb2', class: "native-wrapper", onClick: this.onLabelClick },
20608
21108
  /**
20609
21109
  * For the ionic theme, we render the outline container here
20610
21110
  * instead of higher up, so it can be positioned relative to
@@ -20614,14 +21114,14 @@ class Input {
20614
21114
  * <label> element, ensuring that clicking the label text
20615
21115
  * focuses the input.
20616
21116
  */
20617
- theme === 'ionic' && hAsync("div", { key: '65383eeb6a876dbf103dd5358f041f45856e6e9d', class: "input-outline" }), hAsync("slot", { key: '7d333894f2be13a4033a515ce3c8a4489cc4bfc3', name: "start" }), hAsync("input", Object.assign({ key: '8221d445e4ee9e1d2946205893cbb6de93604c86', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), clearInput && !readonly && !disabled && (hAsync("button", { key: '2fb77a78ecb32b46dc9641580c2c2f6125e9715d', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
21117
+ theme === 'ionic' && hAsync("div", { key: '83aa5e7ad97b0c964e31966c1d2b8771d1ecfc53', class: "input-outline" }), hAsync("slot", { key: '1931003f2b0d19508acaaffab58fee644d1f6158', name: "start" }), hAsync("input", Object.assign({ key: '33a06efb4ce0b6e67c12e77f131effb113fba73f', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), clearInput && !readonly && !disabled && (hAsync("button", { key: 'd350f26cf6927ee089373ea8903db2479a0a404c', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
20618
21118
  /**
20619
21119
  * This prevents mobile browsers from
20620
21120
  * blurring the input when the clear
20621
21121
  * button is activated.
20622
21122
  */
20623
21123
  ev.preventDefault();
20624
- }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: 'a349dfb263a011fc10f01350f917c4020809f512', "aria-hidden": "true", icon: inputClearIcon }))), hAsync("slot", { key: '6e02025608bd54cf36e21ed3bef00353921a7fb9', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '8bf1e516962d232a96a2fa701e10c8c909318f62', class: "input-highlight" })), this.renderBottomContent()));
21124
+ }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '972a2d94dcf599e63aac1d73e34873a9c3d0bf94', "aria-hidden": "true", icon: inputClearIcon }))), hAsync("slot", { key: 'fac4dcaabb02f647e46276e92e3f341557170aec', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'a10e519d8d1f0dcd81ffc43b8e4086797476f753', class: "input-highlight" })), this.renderBottomContent()));
20625
21125
  }
20626
21126
  get el() { return getElement(this); }
20627
21127
  static get watchers() { return {
@@ -21386,7 +21886,7 @@ class InputOTP {
21386
21886
  const tabbableIndex = this.getTabbableIndex();
21387
21887
  const pattern = this.getPattern();
21388
21888
  const hasDescription = ((_b = (_a = el.querySelector('.input-otp-description')) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== '';
21389
- return (hAsync(Host, { key: 'aee59cdba3f3c3783519cf114c668ae92f74fcef', class: createColorClasses$1(color, {
21889
+ return (hAsync(Host, { key: '7a5c5dbb7e1880bd94d4b00e579af941366b1cb2', class: createColorClasses$1(color, {
21390
21890
  [mode]: true,
21391
21891
  'has-focus': hasFocus,
21392
21892
  [`input-otp-size-${size}`]: true,
@@ -21394,10 +21894,10 @@ class InputOTP {
21394
21894
  [`input-otp-fill-${fill}`]: true,
21395
21895
  'input-otp-disabled': disabled,
21396
21896
  'input-otp-readonly': readonly,
21397
- }) }, hAsync("div", Object.assign({ key: 'a0b26b833a20807019114a78e4512a639b82a61f', role: "group", "aria-label": "One-time password input", class: "input-otp-group", part: "group" }, inheritedAttributes), Array.from({ length }).map((_, index) => (hAsync(Fragment, null, hAsync("div", { class: "native-wrapper", part: "container" }, hAsync("input", { class: "native-input", part: "native", id: `${inputId}-${index}`, "aria-label": `Input ${index + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index === tabbableIndex ? 0 : -1, value: inputValues[index] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index] = el), onInput: this.onInput(index), onBlur: this.onBlur, onFocus: this.onFocus(index), onKeyDown: this.onKeyDown(index), onPaste: this.onPaste })), this.showSeparator(index) && hAsync("div", { class: "input-otp-separator", part: "separator" }))))), hAsync("div", { key: 'e525d1841bab5378b165ec1cca9fc45274c2c0ec', class: {
21897
+ }) }, hAsync("div", Object.assign({ key: 'a4427602ea1894d53e4d0f502dbb972c93a86bff', role: "group", "aria-label": "One-time password input", class: "input-otp-group", part: "group" }, inheritedAttributes), Array.from({ length }).map((_, index) => (hAsync(Fragment, null, hAsync("div", { class: "native-wrapper", part: "container" }, hAsync("input", { class: "native-input", part: "native", id: `${inputId}-${index}`, "aria-label": `Input ${index + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index === tabbableIndex ? 0 : -1, value: inputValues[index] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index] = el), onInput: this.onInput(index), onBlur: this.onBlur, onFocus: this.onFocus(index), onKeyDown: this.onKeyDown(index), onPaste: this.onPaste })), this.showSeparator(index) && hAsync("div", { class: "input-otp-separator", part: "separator" }))))), hAsync("div", { key: '7ee9d8dfd2e52875f1bfe3e3dea0494c18c12f4a', class: {
21398
21898
  'input-otp-description': true,
21399
21899
  'input-otp-description-hidden': !hasDescription,
21400
- }, part: "description" }, hAsync("slot", { key: '9fd331ceff04ab93f8d4aec251565cc201f19294' }))));
21900
+ }, part: "description" }, hAsync("slot", { key: '163c374e7ae5dbdb1dc12483161e5aca919a50d5' }))));
21401
21901
  }
21402
21902
  static get formAssociated() { return true; }
21403
21903
  get el() { return getElement(this); }
@@ -21545,16 +22045,16 @@ class InputPasswordToggle {
21545
22045
  const { color, inputPasswordHideIcon, inputPasswordShowIcon, type } = this;
21546
22046
  const mode = getIonMode$1(this);
21547
22047
  const isPasswordVisible = type === 'text';
21548
- return (hAsync(Host, { key: 'e3c21d5bedebeadb57c0c9b7f065d15ab0d49e4a', class: createColorClasses$1(color, {
22048
+ return (hAsync(Host, { key: 'c7f0805958b284005806a0cb3ed0b5cba42cecd1', class: createColorClasses$1(color, {
21549
22049
  [mode]: true,
21550
- }) }, hAsync("ion-button", { key: '0a83d58e059bc3b7ef604270e92351d7fa5d129c', mode: mode, color: color, fill: "clear", shape: "round", "aria-label": isPasswordVisible ? 'Hide password' : 'Show password', "aria-pressed": isPasswordVisible ? 'true' : 'false', type: "button", onPointerDown: (ev) => {
22050
+ }) }, hAsync("ion-button", { key: 'dee2bdeb169d1fa4943c9a8b0164b8fbb4cdfe06', mode: mode, color: color, fill: "clear", shape: "round", "aria-label": isPasswordVisible ? 'Hide password' : 'Show password', "aria-pressed": isPasswordVisible ? 'true' : 'false', type: "button", onPointerDown: (ev) => {
21551
22051
  /**
21552
22052
  * This prevents mobile browsers from
21553
22053
  * blurring the input when the password toggle
21554
22054
  * button is activated.
21555
22055
  */
21556
22056
  ev.preventDefault();
21557
- }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: 'af9a7e202fe0b3f75f10b3e13bf1e5fb653194d1', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
22057
+ }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: 'be752db7186a7cd6fc033c7002fcb1683d93c162', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
21558
22058
  }
21559
22059
  get el() { return getElement(this); }
21560
22060
  static get watchers() { return {
@@ -21929,11 +22429,11 @@ class ItemDivider {
21929
22429
  }
21930
22430
  render() {
21931
22431
  const theme = getIonTheme(this);
21932
- return (hAsync(Host, { key: '4d481e6233a75f3c3042b5825d9c14fe77280f03', class: createColorClasses$1(this.color, {
22432
+ return (hAsync(Host, { key: 'ede65c17ec8e42e4096f8753116923d6b8d2cc14', class: createColorClasses$1(this.color, {
21933
22433
  [theme]: true,
21934
22434
  'item-divider-sticky': this.sticky,
21935
22435
  item: true,
21936
- }) }, hAsync("slot", { key: 'e10eeec38a39d7801b88f478c834beded30f1bb4', name: "start" }), hAsync("div", { key: '3e88c2c1a5938ee2df3264d99f2c595d438a7557', class: "item-divider-inner", part: "inner" }, hAsync("div", { key: 'e7bf5e3a985c59211bfac097e8a904627a9cc6f7', class: "item-divider-wrapper", part: "container" }, hAsync("slot", { key: '0ec4f262411414bf44d9ab6e831dbc74672ba317' })), hAsync("slot", { key: '9cd77653584fe95db1477149134af10e0d4053fa', name: "end" }))));
22436
+ }) }, hAsync("slot", { key: '4e16384a4481326490dab1ad31218c19eb9108db', name: "start" }), hAsync("div", { key: '0bddbea071781e3372b5c7147c2fdd3ba0e29ffe', class: "item-divider-inner", part: "inner" }, hAsync("div", { key: 'dfa603352f7cc58aaa717a32507b1dbbd7b79757', class: "item-divider-wrapper", part: "container" }, hAsync("slot", { key: '4b1b67cfe72266645943f88ede9f8c61a344967d' })), hAsync("slot", { key: '6ddd72a410c449e281f5344d02324e7461ba29e8', name: "end" }))));
21937
22437
  }
21938
22438
  get el() { return getElement(this); }
21939
22439
  static get style() { return {
@@ -21970,7 +22470,7 @@ class ItemGroup {
21970
22470
  }
21971
22471
  render() {
21972
22472
  const theme = getIonTheme(this);
21973
- return (hAsync(Host, { key: '3fb0784b321736344604e259cfb05c6307159bed', role: "group", class: {
22473
+ return (hAsync(Host, { key: '66ad8ce335cd97703e884538bdf6ea1927a30889', role: "group", class: {
21974
22474
  [theme]: true,
21975
22475
  // Used internally for styling
21976
22476
  [`item-group-${theme}`]: true,
@@ -22066,14 +22566,14 @@ class ItemOption {
22066
22566
  href: this.href,
22067
22567
  target: this.target,
22068
22568
  };
22069
- return (hAsync(Host, { key: '810fe351aa83d6e88cb0e2ebee307b3050e65b45', onClick: this.onClick, class: createColorClasses$1(this.color, {
22569
+ return (hAsync(Host, { key: 'bfade0042108ff525077dfbdfd45169ccfd6b920', onClick: this.onClick, class: createColorClasses$1(this.color, {
22070
22570
  [theme]: true,
22071
22571
  [`item-option-${shape}`]: shape !== undefined,
22072
22572
  [`item-option-${hue}`]: hue !== undefined,
22073
22573
  'item-option-disabled': disabled,
22074
22574
  'item-option-expandable': expandable,
22075
22575
  'ion-activatable': true,
22076
- }) }, hAsync(TagType, Object.assign({ key: '6eb95c4f815e774d1b579a1fb2ddcad891966ca0' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: '5630c1bd31910f46b0a08017a98f7935f17385bf', class: "button-inner", part: "inner" }, hAsync("slot", { key: '081375e3b9683347008d08817ded21c61a374d93', name: "top" }), hAsync("div", { key: '99d7dff311268ab4677397ab5a29b068f1cdf79b', class: "horizontal-wrapper", part: "container" }, hAsync("slot", { key: 'b88858db83d847e3d49a84b75eb277500cb66fb3', name: "start" }), hAsync("slot", { key: '8ca5149591a5e3285eff5078e1eb03554fb0713b', name: "icon-only" }), hAsync("slot", { key: 'a8229a5e11bf41926745ab71f6dcd2d2ca63806c' }), hAsync("slot", { key: '9a497c0cb92fe14ad6b9063fa0946fcd75fb8c08', name: "end" })), hAsync("slot", { key: 'cae262fd2b7fad9e4bc9c02541fa17a6480ecf7f', name: "bottom" })), theme === 'md' && hAsync("ion-ripple-effect", { key: '7114b927480e6a9261c7568e036ecf38ec1680ab' }))));
22576
+ }) }, hAsync(TagType, Object.assign({ key: '38466b511f4a20a3728f37dbf6779b852eba531a' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: 'bb8f1b332afa2f575bcc69b340bd8f1faa5ca925', class: "button-inner", part: "inner" }, hAsync("slot", { key: '41d627511e1615283956712e1b9519bae92460f6', name: "top" }), hAsync("div", { key: 'bb949a43a586a8996933ee7528e5491beb647aa5', class: "horizontal-wrapper", part: "container" }, hAsync("slot", { key: 'c0d6a73ef49082bfbdf0f542f7465d044ccb6521', name: "start" }), hAsync("slot", { key: '79c6103e680983b2c1a17f1f11dbc41224cd4016', name: "icon-only" }), hAsync("slot", { key: '6c7f17723544d3f6e8b9689b84ddf6196f1897a5' }), hAsync("slot", { key: 'e15d0e02fde71bad8ff7bab0eded7d49508a926e', name: "end" })), hAsync("slot", { key: 'c509d54d44ce33f5a34597b9d0ec29960bbcff62', name: "bottom" })), theme === 'md' && hAsync("ion-ripple-effect", { key: '412d4dc645c941d0b4356cf982be3d5bc2686f13' }))));
22077
22577
  }
22078
22578
  get el() { return getElement(this); }
22079
22579
  static get style() { return {
@@ -22131,7 +22631,7 @@ class ItemOptions {
22131
22631
  render() {
22132
22632
  const theme = getIonTheme(this);
22133
22633
  const isEnd = isEndSide(this.side);
22134
- return (hAsync(Host, { key: 'cc55282505679d51fb90ebf30869e930c71afbd4', class: {
22634
+ return (hAsync(Host, { key: 'f3bb726a28c571101791d33d946df9017f47e5ec', class: {
22135
22635
  [theme]: true,
22136
22636
  // Used internally for styling
22137
22637
  [`item-options-${theme}`]: true,
@@ -22983,7 +23483,7 @@ class ItemSliding {
22983
23483
  }
22984
23484
  render() {
22985
23485
  const theme = getIonTheme(this);
22986
- return (hAsync(Host, { key: 'ca0730d5ee00f245b6a139d9fb53fcc8c529a8c6', class: {
23486
+ return (hAsync(Host, { key: 'e6890a1b14faaf9121a07912b1c2f46e06148202', class: {
22987
23487
  [theme]: true,
22988
23488
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
22989
23489
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -23102,13 +23602,13 @@ class Label {
23102
23602
  render() {
23103
23603
  const position = this.position;
23104
23604
  const theme = getIonTheme(this);
23105
- return (hAsync(Host, { key: 'd730045c08ba576082563398ab51fc903577d214', class: createColorClasses$1(this.color, {
23605
+ return (hAsync(Host, { key: '7cbec4c1b8fe8925f44255e02cee78bc1873fd70', class: createColorClasses$1(this.color, {
23106
23606
  [theme]: true,
23107
23607
  'in-item-color': hostContext('ion-item.ion-color', this.el),
23108
23608
  [`label-${position}`]: position !== undefined,
23109
23609
  [`label-no-animate`]: this.noAnimate,
23110
23610
  'label-rtl': document.dir === 'rtl',
23111
- }) }, hAsync("slot", { key: '604289ef567339c83fb409371224906819a9d7cc' })));
23611
+ }) }, hAsync("slot", { key: '6d8b4a7ab396792d7a7c0b7e259c622840b7ef9b' })));
23112
23612
  }
23113
23613
  get el() { return getElement(this); }
23114
23614
  static get watchers() { return {
@@ -23188,7 +23688,7 @@ class List {
23188
23688
  const theme = getIonTheme(this);
23189
23689
  const shape = this.getShape();
23190
23690
  const { lines, inset } = this;
23191
- return (hAsync(Host, { key: 'dcdfb595a6b45307f9810e1ded25ba635c947940', role: "list", class: {
23691
+ return (hAsync(Host, { key: 'f17f7af20c567ea0098b362ea04d051b44aa151a', role: "list", class: {
23192
23692
  [theme]: true,
23193
23693
  // Used internally for styling
23194
23694
  [`list-${theme}`]: true,
@@ -23238,10 +23738,10 @@ class ListHeader {
23238
23738
  render() {
23239
23739
  const { lines } = this;
23240
23740
  const theme = getIonTheme(this);
23241
- return (hAsync(Host, { key: '0be4fb7d4f9cd6f50229cf7b361c74e94fbfce91', class: createColorClasses$1(this.color, {
23741
+ return (hAsync(Host, { key: '90c594b0290949b159f35bd36c86c3231a1b8e44', class: createColorClasses$1(this.color, {
23242
23742
  [theme]: true,
23243
23743
  [`list-header-lines-${lines}`]: lines !== undefined,
23244
- }) }, hAsync("div", { key: '4dcc3374685728ae9270d8d58b1ea1c08b0bbc08', class: "list-header-inner", part: "inner" }, hAsync("slot", { key: '5658cc9185680bfa96328685d817b84b18e9ab5a' }))));
23744
+ }) }, hAsync("div", { key: '9d1bde129787263edb79bc921cdf0168a2935a27', class: "list-header-inner", part: "inner" }, hAsync("slot", { key: 'fe157b5ff88355adfb09209ee92fd03c82e067ff' }))));
23245
23745
  }
23246
23746
  static get style() { return {
23247
23747
  ionic: listHeaderIonicCss(),
@@ -23530,9 +24030,9 @@ class Loading {
23530
24030
  * Otherwise, don't set aria-labelledby.
23531
24031
  */
23532
24032
  const ariaLabelledBy = message !== undefined ? msgId : null;
23533
- return (hAsync(Host, Object.assign({ key: '0c475f8e28e680e28e09317557795fc56e0835d8', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
24033
+ return (hAsync(Host, Object.assign({ key: 'b1e84a0d078fac04c0736a19d067d8d49e339323', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
23534
24034
  zIndex: `${40000 + this.overlayIndex}`,
23535
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'd7e88feb6df8edbc326a84d07b294618f7ce6adc', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'f9622f45b2d9e913c325b228a1e6ed03cf2b98e8', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'f4dfdce70c4515878b247d0cc116b5cec2cf79a4', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: '6d4475e00c444eb3d217813ae8cc1a02a97b969e', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'd9ad8dd56ec7677c18d06936c1a1b21a0a6a87a8', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'bd3159e18f33ec25d3480d47ce33fa7dfd1f1460', tabindex: "0", "aria-hidden": "true" })));
24035
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '19884fd6f8bf6f704bff388ecfa245d1cd98156c', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'ecd47d503a9805a5c18f1b0d48989e54b4cb8f78', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '231821576b812ffaa90ed9ced4437e456908ad53', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'e18d21751a73f408bd058aa4270f245285cd57fa', class: "loading-spinner" }, hAsync("ion-spinner", { key: '478761b8a000191951e9902138483b389e1b76c4', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '968be6c72872ce5bc8706fa37f242dcdc38efb33', tabindex: "0", "aria-hidden": "true" })));
23536
24036
  }
23537
24037
  get el() { return getElement(this); }
23538
24038
  static get watchers() { return {
@@ -24593,14 +25093,14 @@ class Menu {
24593
25093
  * the ionBackButton listener in the menu controller
24594
25094
  * will handle closing the menu when Escape is pressed.
24595
25095
  */
24596
- return (hAsync(Host, { key: '12bd2c4e9aa2f314ffc45d7f43290bd9910ca8b0', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
25096
+ return (hAsync(Host, { key: 'd42a7b48a1464a4d71188e3a31f719c5dc296d77', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
24597
25097
  [theme]: true,
24598
25098
  [`menu-type-${type}`]: true,
24599
25099
  'menu-enabled': !disabled,
24600
25100
  [`menu-side-${side}`]: true,
24601
25101
  'menu-pane-visible': isPaneVisible,
24602
25102
  'split-pane-side': hostContext('ion-split-pane', el),
24603
- } }, hAsync("div", { key: 'd43e12f2502ae5da847eb0d2a70d0a3945733739', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '19977e6584bdbb5b01e6e0a4a7f4558087175b33' })), hAsync("ion-backdrop", { key: '22e79a7edca409248bd3637474d6783f1d7de1b3', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
25103
+ } }, hAsync("div", { key: '3ffcedd178c412771657599f3d5de2cd2a717c00', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '2d8dfdb569c4b433cbacbe2aee8a12954e157a51' })), hAsync("ion-backdrop", { key: 'e1fcbdcf6bd3aa0fa10dcf05a2b012bef196a243', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
24604
25104
  }
24605
25105
  get el() { return getElement(this); }
24606
25106
  static get watchers() { return {
@@ -24734,7 +25234,7 @@ class MenuButton {
24734
25234
  type: this.type,
24735
25235
  };
24736
25236
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
24737
- return (hAsync(Host, { key: '206b8482b58e7ee49ea89393a15e9cf30578297b', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
25237
+ return (hAsync(Host, { key: 'd150818e749a1cbe72dc05011247023f6d442eb8', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
24738
25238
  [theme]: true,
24739
25239
  button: true, // ion-buttons target .button
24740
25240
  'menu-button-hidden': hidden,
@@ -24743,7 +25243,7 @@ class MenuButton {
24743
25243
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
24744
25244
  'ion-activatable': true,
24745
25245
  'ion-focusable': true,
24746
- }) }, hAsync("button", Object.assign({ key: '33017f0cde4835383f65b82f24e088dc2cf46517' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '63aadc2910f7fd7ae070fe108822c51441dd8ea5', class: "button-inner" }, hAsync("slot", { key: '6696b67329bdf6a0a7db0739d16717eb9ffc5f3b' }, hAsync("ion-icon", { key: '7f88dd0caa7003db810bce76189ecbaba9ff6317', part: "icon", icon: menuIcon, lazy: false, "aria-hidden": "true" }))), theme === 'md' && hAsync("ion-ripple-effect", { key: '1a2063529bb63cc055fb4bb7d1ad3032df2a74b4', type: "unbounded" }))));
25246
+ }) }, hAsync("button", Object.assign({ key: '88bef93aa6c1a0d5795c4a9ba3edffd99413a758' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '12b2f8bc542239a35adee62d76acccff571a84d7', class: "button-inner" }, hAsync("slot", { key: '5bba549d8e92745aa34372c105cfe80e0ecbc9f5' }, hAsync("ion-icon", { key: '864ff8bf1722b7fe1f17f2a40dfc5b91cb3403f9', part: "icon", icon: menuIcon, lazy: false, "aria-hidden": "true" }))), theme === 'md' && hAsync("ion-ripple-effect", { key: '59e24ecb22970e43b51739324b11457c6e4bc117', type: "unbounded" }))));
24747
25247
  }
24748
25248
  get el() { return getElement(this); }
24749
25249
  static get style() { return {
@@ -24800,10 +25300,10 @@ class MenuToggle {
24800
25300
  render() {
24801
25301
  const theme = getIonTheme(this);
24802
25302
  const hidden = this.autoHide && !this.visible;
24803
- return (hAsync(Host, { key: 'c3ddce789a90d720769919ebf854d05cc75f599e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
25303
+ return (hAsync(Host, { key: '973372d778e7902eac28b2a6a5e74165b51d60d6', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
24804
25304
  [theme]: true,
24805
25305
  'menu-toggle-hidden': hidden,
24806
- } }, hAsync("slot", { key: 'f1334ba9d20148b673a0b6185ab5ef92f448f720' })));
25306
+ } }, hAsync("slot", { key: '760b8ffe93ae490b62f7ad6fc94ecbc8521ead64' })));
24807
25307
  }
24808
25308
  static get style() { return menuToggleCss(); }
24809
25309
  static get cmpMeta() { return {
@@ -28306,20 +28806,20 @@ class Modal {
28306
28806
  const isHandleCycle = handleBehavior === 'cycle';
28307
28807
  const shape = this.getShape();
28308
28808
  const isSheetModalWithHandle = isSheetModal && showHandle;
28309
- return (hAsync(Host, Object.assign({ key: 'e4b82f87c76d3ad5aae7794c4c882e6c95ef7c97', "no-router": true,
28809
+ return (hAsync(Host, Object.assign({ key: '2d3a31da1613386cf90f0d59d6b26c9a5b654d2a', "no-router": true,
28310
28810
  // Allow the modal to be navigable when the handle is focusable
28311
28811
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
28312
28812
  zIndex: `${20000 + this.overlayIndex}`,
28313
- }, class: Object.assign({ [theme]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-${shape}`]: shape !== undefined, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '70f0240dd59e38587c6fbbc2ade4fcb094292b48', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme === 'ios' && hAsync("div", { key: '9c2b8fd94a37c39739de9b5b12d541685e4fb26c', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '55eb3782bd130447dcb935097366b85941422220',
28813
+ }, class: Object.assign({ [theme]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-${shape}`]: shape !== undefined, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: 'baf6be86f7d5053d870a4ad794c1d584985c5ba0', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme === 'ios' && hAsync("div", { key: 'e3b76699bc31e8dd29b09ed6091d8f9003865e15', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '3043e51b33a1e394ae731ebc49fd4df7ef71be99',
28314
28814
  /*
28315
28815
  role and aria-modal must be used on the
28316
28816
  same element. They must also be set inside the
28317
28817
  shadow DOM otherwise ion-button will not be highlighted
28318
28818
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
28319
28819
  */
28320
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'bc685478939603b48fd2530cc0d24beb138f5918', class: "modal-handle",
28820
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '19e71dc84abf18b21be76ec35229c5c5e7410c6e', class: "modal-handle",
28321
28821
  // Prevents the handle from receiving keyboard focus when it does not cycle
28322
- 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) })), hAsync("slot", { key: '96d518c5ee89e7b16929cd6fd682347045d5c231', onSlotchange: this.onSlotChange }))));
28822
+ 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) })), hAsync("slot", { key: '9b868070ee1be064e6b385f4783fc428c78d8084', onSlotchange: this.onSlotChange }))));
28323
28823
  }
28324
28824
  get el() { return getElement(this); }
28325
28825
  static get watchers() { return {
@@ -29279,7 +29779,7 @@ class Nav {
29279
29779
  }
29280
29780
  }
29281
29781
  render() {
29282
- return hAsync("slot", { key: 'd6dd0b1e0ba59381a139f4a49de3eb8351fa87a4' });
29782
+ return hAsync("slot", { key: '87188d8fb4232d448ef2ad8e3db29c3730b1ff9e' });
29283
29783
  }
29284
29784
  get el() { return getElement(this); }
29285
29785
  static get watchers() { return {
@@ -29360,7 +29860,7 @@ class NavLink {
29360
29860
  };
29361
29861
  }
29362
29862
  render() {
29363
- return hAsync(Host, { key: '61246716bdf9556db90e07680bc1a289f9658d5c', onClick: this.onClick });
29863
+ return hAsync(Host, { key: '38f3d2e7a3ae4e57ac1479436c143e6820d25cd2', onClick: this.onClick });
29364
29864
  }
29365
29865
  get el() { return getElement(this); }
29366
29866
  static get cmpMeta() { return {
@@ -29394,9 +29894,9 @@ class Note {
29394
29894
  }
29395
29895
  render() {
29396
29896
  const theme = getIonTheme(this);
29397
- return (hAsync(Host, { key: 'a8470df6b8fb8ca327a282fc23705bc230f13a40', class: createColorClasses$1(this.color, {
29897
+ return (hAsync(Host, { key: '34a74796fc2e41549100c6611a5900d60c8d688d', class: createColorClasses$1(this.color, {
29398
29898
  [theme]: true,
29399
- }) }, hAsync("slot", { key: '07cbdef68f010b06638f359f70dff3f1d659d899' })));
29899
+ }) }, hAsync("slot", { key: 'ea4c2e3b5666d10ca312e175db200134d8a30382' })));
29400
29900
  }
29401
29901
  static get style() { return {
29402
29902
  ionic: ionicNoteMdCss(),
@@ -30162,11 +30662,11 @@ class Picker {
30162
30662
  render() {
30163
30663
  const { htmlAttributes } = this;
30164
30664
  const theme = getIonTheme(this);
30165
- return (hAsync(Host, Object.assign({ key: 'efcc823fad9cb37c1379bef4f4b84c6461f3a3a6', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
30665
+ return (hAsync(Host, Object.assign({ key: 'b0c1fc8eee284f03c696f0c8aaa29f4a6d7be0be', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
30166
30666
  zIndex: `${20000 + this.overlayIndex}`,
30167
30667
  }, class: Object.assign({ [theme]: true,
30168
30668
  // Used internally for styling
30169
- [`picker-${theme}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '3f44bf34e039210ae149c590c393ee9f7fb85da0', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'c2a51a89c525b1a22cbc8583cd30f41c3c356d4f', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '23837ffe309d0aad9b8ea09d7ac94d21040ef0d7', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '91ba7e553d570768142715ded4bcc27fceedbce4', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '22661cafeb555f1435ec1e0a122404a48136095b', class: "picker-columns" }, hAsync("div", { key: '5f3db32468b8c60f63c70d81a27b18cce6f2e259', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: '1bae6b170125b1671a480506ba73636b42b65909', class: "picker-below-highlight" }))), hAsync("div", { key: '91beb94ce537122fbd6cd0c2bd3c00f908d0fefe', tabindex: "0", "aria-hidden": "true" })));
30669
+ [`picker-${theme}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: 'b56a9f94c7a95efc047d7be95e76ba3a2284801d', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'f134d49a3afcfd2a809147b55949cea43fc34462', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '9ae98dc10164e182a13eaef2105894a717a03cc4', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '96acad60c1214e13098282182fa855b19f0a386c', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: 'af26cd644ed9bb50c22f06624da3726e7e60426f', class: "picker-columns" }, hAsync("div", { key: 'c0d8bf724f7dc081c314bef61fa08894a75c657b', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: '7315333742b5b0c9533f30e5ce3dfc6ec9112dc1', class: "picker-below-highlight" }))), hAsync("div", { key: '454546aaf27319ae7973e74063c0a026cfc88834', tabindex: "0", "aria-hidden": "true" })));
30170
30670
  }
30171
30671
  get el() { return getElement(this); }
30172
30672
  static get watchers() { return {
@@ -31144,9 +31644,9 @@ class PickerColumnCmp {
31144
31644
  render() {
31145
31645
  const col = this.col;
31146
31646
  const theme = getIonTheme(this);
31147
- return (hAsync(Host, { key: '66a5b7f51aa1ee343dbad3830e03933dbdab27ed', class: Object.assign({ [theme]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
31647
+ return (hAsync(Host, { key: '5751788e3b7ecd2fe269c096db883b0681646270', class: Object.assign({ [theme]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
31148
31648
  'max-width': this.col.columnWidth,
31149
- } }, col.prefix && (hAsync("div", { key: '19a170752bacdabd50c719f6d1aa9e58a2bd830b', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '871671f796aa6a1f78e07ab2599d94b5fd8cd0bf', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '89792e1dc75a4359a4706a8fd1846fe29b866173', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
31649
+ } }, col.prefix && (hAsync("div", { key: '833f3309c8c77e1faa773f7eaa066516dfd51067', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: 'a39f38e60938e70425e4d7674f5e481885b6b548', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: 'a2f1e0eab834c85e84cee0a716eb1083aa6c7741', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
31150
31650
  }
31151
31651
  get el() { return getElement(this); }
31152
31652
  static get watchers() { return {
@@ -31271,10 +31771,10 @@ class PickerColumnOption {
31271
31771
  render() {
31272
31772
  const { color, disabled, ariaLabel } = this;
31273
31773
  const theme = getIonTheme(this);
31274
- return (hAsync(Host, { key: '9ceebae71b6df0b01f36691d82d716f6756625d9', class: createColorClasses$1(color, {
31774
+ return (hAsync(Host, { key: '54c254f01017aa47aac76c0833f9ef04bf20bdc9', class: createColorClasses$1(color, {
31275
31775
  [theme]: true,
31276
31776
  ['option-disabled']: disabled,
31277
- }) }, hAsync("div", { key: '1f26246d601779dadfaf055d195e2a4959180f5a', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: 'eed413474a8b7ec7a73da27fa72a2d0a9a2aae2b' }))));
31777
+ }) }, hAsync("div", { key: '36b21f1b7d9a5b05f0211ce8be90f66578641224', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: '154bf9ca37ca1c6e5d34d42c16b04203e83210be' }))));
31278
31778
  }
31279
31779
  get el() { return getElement(this); }
31280
31780
  static get watchers() { return {
@@ -32843,9 +33343,9 @@ class Popover {
32843
33343
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
32844
33344
  const desktop = isPlatform('desktop');
32845
33345
  const enableArrow = arrow && !parentPopover;
32846
- return (hAsync(Host, Object.assign({ key: 'ba8801218aa8543eae0e8e2c57fbd0d4fbb2c8ff', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
33346
+ return (hAsync(Host, Object.assign({ key: '43128f8b7e57f08a451af1a237534d0517d86eda', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
32847
33347
  zIndex: `${20000 + this.overlayIndex}`,
32848
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: '0301c9a9ed70cf34445e89484cd4145dc98f3d4c', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'd017b8cda9eb474cf990222c90539697308a1c8f', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: 'fdf8ec2e98a29bfa3e26788e4a432ff402800202', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '9498eace0a68daf39e7c0580ca46e33a9791f62c', class: "popover-content", part: "content" }, hAsync("slot", { key: '0f10c7e335d2f4f75e10d7fde5244c3dd5ae0bb4' })))));
33348
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'c087932225f8fc872af7451fd847ab2667ae6ffb', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: '25fb1c8320099d1170f3a61766760c694d84bf0b', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '552f4b70758470fac0d2e2bd114eaf5d9b81a3ac', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: 'f19c1d60b0f4ff86bf308c5837637cd4bbd6814e', class: "popover-content", part: "content" }, hAsync("slot", { key: '00870a41134268d84e239d305bf2daed7b049c34' })))));
32849
33349
  }
32850
33350
  get el() { return getElement(this); }
32851
33351
  static get watchers() { return {
@@ -32973,7 +33473,7 @@ class ProgressBar {
32973
33473
  const shape = this.getShape();
32974
33474
  // If the progress is displayed as a solid bar.
32975
33475
  const progressSolid = buffer === 1;
32976
- return (hAsync(Host, { key: '9adef68c31bdf39d48199e01587f8d5295d4c6af', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
33476
+ return (hAsync(Host, { key: '0f6202e25d884fb85d18578769f6cfa5c704e9d9', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
32977
33477
  [theme]: true,
32978
33478
  [`progress-bar-${type}`]: true,
32979
33479
  'progress-paused': paused,
@@ -33166,7 +33666,7 @@ class Radio {
33166
33666
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
33167
33667
  const theme = getIonTheme(this);
33168
33668
  const inItem = hostContext('ion-item', el);
33169
- return (hAsync(Host, { key: '19cc76c559551a34e4968f4902709be6f104dede', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
33669
+ return (hAsync(Host, { key: '82127b11eac97fa45886179d248c8509ca07655a', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
33170
33670
  [theme]: true,
33171
33671
  'in-item': inItem,
33172
33672
  'radio-checked': checked,
@@ -33177,10 +33677,10 @@ class Radio {
33177
33677
  // Focus and active styling should not apply when the radio is in an item
33178
33678
  'ion-activatable': !inItem,
33179
33679
  'ion-focusable': !inItem,
33180
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: 'ba97fae433b69e609ad88b949a56cd213d866ae6', class: "radio-wrapper" }, hAsync("div", { key: 'a742b8f1a56d080fd221d89717dbd110db18ee69', class: {
33680
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '352c25ebdeeba01b85dc02b2108de988e9eb14a6', class: "radio-wrapper" }, hAsync("div", { key: '8eca395a22199d24b376c57dd52eeaa91ba51c34', class: {
33181
33681
  'label-text-wrapper': true,
33182
33682
  'label-text-wrapper-hidden': !hasLabel,
33183
- }, part: "label" }, hAsync("slot", { key: 'f06b9b57e1c2d66d3eb6790ca30f4d5e85d0d264' })), hAsync("div", { key: '780fc11778f5661d95e60c6cd72a9ed78910b889', class: "native-wrapper" }, this.renderRadioControl()))));
33683
+ }, part: "label" }, hAsync("slot", { key: '9c26b977843398be61f1b753251d8fe40d65702a' })), hAsync("div", { key: '336b2d6aeb5e86dc1d994ac1eac52634f5da5b9c', class: "native-wrapper" }, this.renderRadioControl()))));
33184
33684
  }
33185
33685
  get el() { return getElement(this); }
33186
33686
  static get watchers() { return {
@@ -33450,10 +33950,10 @@ class RadioGroup {
33450
33950
  const { label, labelId, el, name, value } = this;
33451
33951
  const theme = getIonTheme(this);
33452
33952
  renderHiddenInput(true, el, name, value, false);
33453
- return (hAsync(Host, { key: '39246fbf1f1e3a6ba27dd715f030445d4434999b', class: {
33953
+ return (hAsync(Host, { key: 'c8077cb16bcc6719fa2aba1a5a9cb139e0b81a9e', class: {
33454
33954
  [theme]: true,
33455
33955
  'in-list': hostContext('ion-list', el),
33456
- }, role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick }, this.renderHintText(), hAsync("slot", { key: '892b023cb363fc2dc67f8df028d3dfc58f7b54cd' })));
33956
+ }, role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick }, this.renderHintText(), hAsync("slot", { key: 'ddeca1867cb8e74121add7616f6be9e1a202c142' })));
33457
33957
  }
33458
33958
  get el() { return getElement(this); }
33459
33959
  static get watchers() { return {
@@ -34303,7 +34803,7 @@ class Range {
34303
34803
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
34304
34804
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
34305
34805
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
34306
- return (hAsync(Host, { key: '1b8ca217fa6965fc038fb4ca8f0bc9142b3893ad', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
34806
+ return (hAsync(Host, { key: '6c11f7ad176a00ca5368be9ba46c29f6a9aa02bb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
34307
34807
  [theme]: true,
34308
34808
  'in-item': inItem,
34309
34809
  'range-disabled': disabled,
@@ -34317,10 +34817,10 @@ class Range {
34317
34817
  'range-item-end-adjustment': needsEndAdjustment,
34318
34818
  'range-value-min': valueAtMin,
34319
34819
  'range-value-max': valueAtMax,
34320
- }) }, hAsync("label", { key: '98b02130c9bb5a9ba6557be28f1ac09be0d10806', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '570083103b51b335c805672918d69e997dc30e66', class: {
34820
+ }) }, hAsync("label", { key: '4ac202cf5fd17a9f69e288508e89cfe266a2c8f2', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '1261d51ce247e066e5005f4aaa7b474ae0ddd421', class: {
34321
34821
  'label-text-wrapper': true,
34322
34822
  'label-text-wrapper-hidden': !hasLabel,
34323
- }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '1e3233a747d0adca6611234d0675ce049ef979cf', class: "native-wrapper" }, hAsync("slot", { key: '4f06a217592a98d889420468eb282ba8652ef1cc', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '4286279dbadf0e92bffbd5e98d5e36cba095be3c', name: "end" })))));
34823
+ }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '4c09b153ab02c2c80b6197c2beb73c8cd1dc9348', class: "native-wrapper" }, hAsync("slot", { key: 'a81e2e9a5442603f128fec3d1f15090615164abf', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: 'ccc0a89eb6ce714e5b67893fb6845670a7857914', name: "end" })))));
34324
34824
  }
34325
34825
  get el() { return getElement(this); }
34326
34826
  static get watchers() { return {
@@ -35395,7 +35895,7 @@ class Refresher {
35395
35895
  }
35396
35896
  render() {
35397
35897
  const theme = getIonTheme(this);
35398
- return (hAsync(Host, { key: '0be6aed52363cda66f8324ddfb9b0aeda92ce0bf', slot: "fixed", class: {
35898
+ return (hAsync(Host, { key: 'd2671f7850b565e7a6fc5b3ff15b2410bcf7cb32', slot: "fixed", class: {
35399
35899
  [theme]: true,
35400
35900
  // Used internally for styling
35401
35901
  [`refresher-${theme}`]: true,
@@ -35634,9 +36134,9 @@ class RefresherContent {
35634
36134
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
35635
36135
  const theme = getIonTheme(this);
35636
36136
  const arrowIcon = theme === 'ionic' ? caretLeftFillSvg : caretBackSharp;
35637
- return (hAsync(Host, { key: '3a3a3fb44f8397bb8e5019b51254ada8c26ae371', class: {
36137
+ return (hAsync(Host, { key: '684bf1189acba94c502e2bb421f0b65313c3e9f9', class: {
35638
36138
  [theme]: true,
35639
- } }, hAsync("div", { key: '3e63966e8c2b262b1f9d4a5545dbdd00e97a4c68', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: 'd4c8fa7151cee666520a40050c58f6e8201b14a5', class: "refresher-pulling-icon" }, hAsync("div", { key: '2f45a17fe5fe51e81e2d7bd580fd60ce754c5989', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '210cd5f152453a283dbc579f545c683e3af84ea3', name: this.pullingIcon, paused: true }), (theme === 'md' || theme === 'ionic') && this.pullingIcon === 'circular' && (hAsync("div", { key: '060c8d531e90478121113f59989ac29809f48947', class: "arrow-container" }, hAsync("ion-icon", { key: '7c30ddd2c1a6e2274e7d57f792733017c663197b', icon: arrowIcon, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: '3dee253d56c871195dcd59eaedc2b867ac578319', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: '46b859328da272449f316ea8f68f3c3dd545c2e7', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '56660f9f6cff1006c5552df3a9430124689d42cb', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'e8232281f251e5d0d22972fa8e38176edc3d9e5d', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '70f42df444c4669f393137f218ba9d635f76a26c', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
36139
+ } }, hAsync("div", { key: '29bfcc52d581913654f7639b0f669d149bf91026', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: 'c5ddc5a3c22ec365906e8716cdbdb8cf793bb978', class: "refresher-pulling-icon" }, hAsync("div", { key: '4314fff1f89758c81de7d908be2eaae81e8d9fb8', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: 'cea2bc74fd42c35ec6d6349f033830e745c9e99b', name: this.pullingIcon, paused: true }), (theme === 'md' || theme === 'ionic') && this.pullingIcon === 'circular' && (hAsync("div", { key: 'bfd43614c33fa6e83f67ac95022db5343af160d6', class: "arrow-container" }, hAsync("ion-icon", { key: '64f48d15dc2c17cbeb177f28272477ee8535136b', icon: arrowIcon, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: '6f540e79e981a923050f57167aff8da92bfe8990', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: '97b0755e0f240ec199b408a9cfef9fc48b481a68', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '1cd2a284b786fa94272f88659942ff15a7344f66', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: '722aea4deaef0b014f49ce61a4a81ef219d0b101', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '8152f4fe27037c4f34918e515ac460c1f03240d5', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
35640
36140
  }
35641
36141
  get el() { return getElement(this); }
35642
36142
  static get style() { return {
@@ -35705,9 +36205,9 @@ class Reorder {
35705
36205
  render() {
35706
36206
  const { reorderHandleIcon } = this;
35707
36207
  const theme = getIonTheme(this);
35708
- return (hAsync(Host, { key: 'ba59a095c200b70c6d847dc7362d52b315dc853a', class: {
36208
+ return (hAsync(Host, { key: '2a30643d0c5dbebab97a7aca68c165ee79ceed33', class: {
35709
36209
  [theme]: true,
35710
- } }, hAsync("slot", { key: '79be263f78cc21c9c4f91326e557e65849ab1e51' }, hAsync("ion-icon", { key: '6e5c47c8bbd33f5cd405a5fd531831cb87c8e57e', icon: reorderHandleIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
36210
+ } }, hAsync("slot", { key: '9ac45a0cc21aea6ed0ec03aa12334886219b1051' }, hAsync("ion-icon", { key: '6d6789a718db4f252c6b3b4484148be2a65c80b8', icon: reorderHandleIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
35711
36211
  }
35712
36212
  get el() { return getElement(this); }
35713
36213
  static get style() { return {
@@ -35983,7 +36483,7 @@ class ReorderGroup {
35983
36483
  }
35984
36484
  render() {
35985
36485
  const theme = getIonTheme(this);
35986
- return (hAsync(Host, { key: 'df12858536c409c76552fe79b88827b3c4a5d9c5', class: {
36486
+ return (hAsync(Host, { key: 'f618089290a47bae34bcaaed968c3f8f4daa827f', class: {
35987
36487
  [theme]: true,
35988
36488
  'reorder-enabled': !this.disabled,
35989
36489
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -36109,7 +36609,7 @@ class RippleEffect {
36109
36609
  }
36110
36610
  render() {
36111
36611
  const theme = getIonTheme(this);
36112
- return (hAsync(Host, { key: '502ce1841747f255dfab542914bebd0d0f4ae9bd', role: "presentation", class: {
36612
+ return (hAsync(Host, { key: 'f4db39623cfd1bdc773e222b2dd9ed52a26cc685', role: "presentation", class: {
36113
36613
  [theme]: true,
36114
36614
  unbounded: this.unbounded,
36115
36615
  } }));
@@ -37094,10 +37594,10 @@ class RouterLink {
37094
37594
  rel: this.rel,
37095
37595
  target: this.target,
37096
37596
  };
37097
- return (hAsync(Host, { key: '518b86cf40eb95e03f75a20ff44fff804ac8ec4d', onClick: this.onClick, class: createColorClasses$1(this.color, {
37597
+ return (hAsync(Host, { key: '989574921f3bf06e4e5ad4e98ea3cce2e5c7165e', onClick: this.onClick, class: createColorClasses$1(this.color, {
37098
37598
  [theme]: true,
37099
37599
  'ion-activatable': true,
37100
- }) }, hAsync("a", Object.assign({ key: 'dbf3cc12752b4fa2d3873723a8ea5a30b053d261' }, attrs), hAsync("slot", { key: '9614e46a8d35201937f1f9a39b88f71b78efa7a0' }))));
37600
+ }) }, hAsync("a", Object.assign({ key: 'ee72dba91cc13ca4f251ba6bb5a8b7bf54b6f88d' }, attrs), hAsync("slot", { key: '8e8b5afd795bb213b8765f731463e0588799b001' }))));
37101
37601
  }
37102
37602
  static get style() { return routerLinkCss(); }
37103
37603
  static get cmpMeta() { return {
@@ -37297,7 +37797,7 @@ class RouterOutlet {
37297
37797
  return true;
37298
37798
  }
37299
37799
  render() {
37300
- return hAsync("slot", { key: '3f107f085a977b4d27c7266771a9564e3219f736' });
37800
+ return hAsync("slot", { key: 'f59dfdc11831ed91f5f7d8147cdc14f3c07bc289' });
37301
37801
  }
37302
37802
  get el() { return getElement(this); }
37303
37803
  static get watchers() { return {
@@ -37337,9 +37837,9 @@ class Row {
37337
37837
  }
37338
37838
  render() {
37339
37839
  const theme = getIonTheme(this);
37340
- return (hAsync(Host, { key: '6f5dd5032485a69ddf9510e2e539a7ba90afda47', class: {
37840
+ return (hAsync(Host, { key: '64ff6346d95be8d99d6500a6263067081f3fe254', class: {
37341
37841
  [theme]: true,
37342
- } }, hAsync("slot", { key: '994dcbbc871d606b61ff5993fb29aa1fa349c483' })));
37842
+ } }, hAsync("slot", { key: 'e9b4c111f3a49515a721bf679ef2f1a039c9822a' })));
37343
37843
  }
37344
37844
  static get style() { return rowCss(); }
37345
37845
  static get cmpMeta() { return {
@@ -37898,8 +38398,8 @@ class Searchbar {
37898
38398
  const shouldShowCancelButton = this.shouldShowCancelButton();
37899
38399
  const shape = this.getShape();
37900
38400
  const size = this.getSize();
37901
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: 'e9d60e9e313218ae012da0eb63dc3c08f37f6915', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: theme === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '4566b2968b5ba79369e424f1829decf7779e9be1', "aria-hidden": "true" }, theme === 'md' || theme === 'ionic' ? (hAsync("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
37902
- return (hAsync(Host, { key: 'e6af154631381ee0549c5d1d39577a86b8ae7b3f', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
38401
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '9b71660f86c93ab8e1c4bca45a778584b1473a48', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: theme === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '27c4121c6b49906b2a9c225bd7ba9ab2a41e4292', "aria-hidden": "true" }, theme === 'md' || theme === 'ionic' ? (hAsync("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
38402
+ return (hAsync(Host, { key: 'd5fc37533478d088fd40697b21cffc8f9c673add', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
37903
38403
  [theme]: true,
37904
38404
  'searchbar-animated': animated,
37905
38405
  'searchbar-disabled': this.disabled,
@@ -37913,14 +38413,14 @@ class Searchbar {
37913
38413
  [`searchbar-shape-${shape}`]: shape !== undefined,
37914
38414
  [`searchbar-size-${size}`]: size !== undefined,
37915
38415
  'in-toolbar': hostContext('ion-toolbar', this.el),
37916
- }) }, hAsync("div", { key: 'cdd7674dd31f53a96517c69fc83916ceea590d6a', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: 'b7682f425c2645b9fe33ee03d0d0adb88c5b7c7b', "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, spellcheck: this.spellcheck }, this.inheritedAttributes)), (theme === 'md' || theme === 'ionic') && cancelButton, this.shouldShowSearchIcon() && (hAsync("ion-icon", { key: 'd8ad4196fa5921a3f444756410386b8189f4136a', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" })), this.shouldShowClearButton() && (hAsync("button", { key: '7bad8accea54850d7cb6dbe8d5d5a404c97bab8b', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
38416
+ }) }, hAsync("div", { key: 'b7e0dbfa02f9ea4db7eb01cb293d81d4a54e23d2', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '3b790197d1f8bad980086ebd898cb2487d56ea24', "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, spellcheck: this.spellcheck }, this.inheritedAttributes)), (theme === 'md' || theme === 'ionic') && cancelButton, this.shouldShowSearchIcon() && (hAsync("ion-icon", { key: 'fce3e3510516d768d8b51a6334cf9d9ac934345e', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" })), this.shouldShowClearButton() && (hAsync("button", { key: 'b47cb7c79fd07e44f2273e55782a784f6d567155', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
37917
38417
  /**
37918
38418
  * This prevents mobile browsers from
37919
38419
  * blurring the input when the clear
37920
38420
  * button is activated.
37921
38421
  */
37922
38422
  ev.preventDefault();
37923
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: 'f60f21ce6f8c3e37d768ff0bd5c69e5797dd77fd', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
38423
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '6d4f026bd1fde68d43c4e49531ca7b1689590e80', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" })))), theme === 'ios' && cancelButton));
37924
38424
  }
37925
38425
  get el() { return getElement(this); }
37926
38426
  static get watchers() { return {
@@ -38535,14 +39035,14 @@ class Segment {
38535
39035
  }
38536
39036
  render() {
38537
39037
  const theme = getIonTheme(this);
38538
- return (hAsync(Host, { key: 'aa903445e6c04076cb4b29cf7195e7b843b158aa', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
39038
+ return (hAsync(Host, { key: '2c0631392507f2e903670070232029928470bf11', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
38539
39039
  [theme]: true,
38540
39040
  'in-toolbar': hostContext('ion-toolbar', this.el),
38541
39041
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
38542
39042
  'segment-activated': this.activated,
38543
39043
  'segment-disabled': this.disabled,
38544
39044
  'segment-scrollable': this.scrollable,
38545
- }) }, hAsync("slot", { key: '761df7f38ea889287f466ba35076a50b5e8d7b72', onSlotchange: this.onSlottedItemsChange })));
39045
+ }) }, hAsync("slot", { key: 'ed99c28b8976c4d51ad12089680cb8fb51d835a7', onSlotchange: this.onSlottedItemsChange })));
38546
39046
  }
38547
39047
  get el() { return getElement(this); }
38548
39048
  static get watchers() { return {
@@ -38694,7 +39194,7 @@ class SegmentButton {
38694
39194
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
38695
39195
  const theme = getIonTheme(this);
38696
39196
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
38697
- return (hAsync(Host, { key: '75eeffd15e3581c15f48a0b12cbf5a4229b087d6', class: {
39197
+ return (hAsync(Host, { key: 'bbb2ae95aa27852c31dcc0ba3ee5acce24349752', class: {
38698
39198
  [theme]: true,
38699
39199
  'in-toolbar': hostContext('ion-toolbar', this.el),
38700
39200
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -38710,7 +39210,7 @@ class SegmentButton {
38710
39210
  'ion-activatable': true,
38711
39211
  'ion-activatable-instant': true,
38712
39212
  'ion-focusable': true,
38713
- } }, hAsync("button", Object.assign({ key: '701fd86647377f744d91eb92427c73583d229253', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '63634d3e500312c847194551996a2897610e0cc7', class: "button-inner" }, hAsync("slot", { key: '89963e233c9a7ea84b7262ab84db6edbe76ee95e' })), theme === 'md' && hAsync("ion-ripple-effect", { key: '9d766c3d48c0b2ba50ab03f2279ccf710973bbba' })), hAsync("div", { key: 'a70f2d1a57cca4e04b00b36a6b47eb93ef4cb26e', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'aff9931755a1f643147bf0e7d2be29b35d8f9d41', part: "indicator-background", class: "segment-button-indicator-background" }))));
39213
+ } }, hAsync("button", Object.assign({ key: '0335787c4606314d2715062b536b544cf0fb1f27', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '47d06436538ed9fc97789af76b6681674a2bd0a7', class: "button-inner" }, hAsync("slot", { key: 'de1164da25cb74e6fa3066e43744483fc5b821fa' })), theme === 'md' && hAsync("ion-ripple-effect", { key: '82d3f9d812f851a6bbbf3603e5845e6e6e925442' })), hAsync("div", { key: '77bbfb251707d274635f21e4cd7153791d9fdb49', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: '2d7b64dbdb084bd3a851e215b9d049a9aff6f03f', part: "indicator-background", class: "segment-button-indicator-background" }))));
38714
39214
  }
38715
39215
  get el() { return getElement(this); }
38716
39216
  static get watchers() { return {
@@ -38748,7 +39248,7 @@ class SegmentContent {
38748
39248
  registerInstance(this, hostRef);
38749
39249
  }
38750
39250
  render() {
38751
- return (hAsync(Host, { key: '81cc29460a17c32592fbf9fca6242f4bb1738aa6' }, hAsync("slot", { key: '4f718420caf11c6672642fcf1a1bdb7f48d6cdfc' })));
39251
+ return (hAsync(Host, { key: '66e6783365c0842eb785d50191206d82321b35e7' }, hAsync("slot", { key: '21528369e7efdb93599179720b26c3f3c3e574ed' })));
38752
39252
  }
38753
39253
  static get style() { return segmentContentCss(); }
38754
39254
  static get cmpMeta() { return {
@@ -38876,11 +39376,11 @@ class SegmentView {
38876
39376
  }
38877
39377
  render() {
38878
39378
  const { disabled, isManualScroll, swipeGesture } = this;
38879
- return (hAsync(Host, { key: 'f03a6e740fde773dc02e0aad79fd73475c3227fa', class: {
39379
+ return (hAsync(Host, { key: '48ce45ca6c45d4bbc804390c31a43729a60abb8a', class: {
38880
39380
  'segment-view-disabled': disabled,
38881
39381
  'segment-view-scroll-disabled': isManualScroll === false,
38882
39382
  'segment-view-swipe-disabled': swipeGesture === false,
38883
- } }, hAsync("slot", { key: '3c850dd0e7ca795af8497162c8824eaede3bbc29' })));
39383
+ } }, hAsync("slot", { key: 'e248ce5b24b355bd6b51cbfd25741addf4ffd4fb' })));
38884
39384
  }
38885
39385
  get el() { return getElement(this); }
38886
39386
  static get style() { return {
@@ -39816,7 +40316,7 @@ class Select {
39816
40316
  * TODO(FW-5592): Remove hasStartEndSlots condition
39817
40317
  */
39818
40318
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
39819
- return (hAsync(Host, { key: 'b75ee27abca24a0ee5ec2bcecec98aeab85d11b2', onClick: this.onClick, class: createColorClasses$1(this.color, {
40319
+ return (hAsync(Host, { key: '03fa41ce215865ceeaeddec12d9ac66b5ab18e3f', onClick: this.onClick, class: createColorClasses$1(this.color, {
39820
40320
  [theme]: true,
39821
40321
  'in-item': inItem,
39822
40322
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -39835,7 +40335,7 @@ class Select {
39835
40335
  [`select-shape-${shape}`]: shape !== undefined,
39836
40336
  [`select-label-placement-${labelPlacement}`]: true,
39837
40337
  [`select-size-${size}`]: size !== undefined,
39838
- }) }, hAsync("label", { key: '09f84e92cec1f79d4563d5f27edd7f71266446b8', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '448be6befb0d4a2c0be0b31d9fb970c4bf86e004', class: "select-wrapper-inner", part: "inner" },
40338
+ }) }, hAsync("label", { key: '66808fb8c26f7a5db356b22d43751463cbb4bcaa', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '3e80160009e0e5b47952d666ca621166067adbea', class: "select-wrapper-inner", part: "inner" },
39839
40339
  /**
39840
40340
  * For the ionic theme, we render the outline container here
39841
40341
  * instead of higher up, so it can be positioned relative to
@@ -39845,7 +40345,7 @@ class Select {
39845
40345
  * <label> element, ensuring that clicking the label text
39846
40346
  * focuses the select.
39847
40347
  */
39848
- theme === 'ionic' && fill === 'outline' && hAsync("div", { key: '5304fa8c9eb2f8a048cd242696aad6bcd66ffa71', class: "select-outline" }), hAsync("slot", { key: '6103312fc0549a71b395e550472c489cd63e50cf', name: "start" }), hAsync("div", { key: 'c37d9c7f6087b522b424b28aaa711f7682468429', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '4e7228f7911e5b85b60bdba483506845b2df9f58', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '9c4a369969d2653a553e667e544928e9341dbb51', class: "select-highlight" })), this.renderBottomContent()));
40348
+ theme === 'ionic' && fill === 'outline' && hAsync("div", { key: '8ea2530c4dc535661bf97d16724bdca3b9e23560', class: "select-outline" }), hAsync("slot", { key: '2526c811e6f0f250421f6de9834d96d21df528b7', name: "start" }), hAsync("div", { key: '95d0b2432c9e656166bf35ddd457a74052c91a27', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '0864febe104e3ac77aa10ce397e7c7569855636e', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'c83f3992d7a0ee55ca635b391421626a9131c8eb', class: "select-highlight" })), this.renderBottomContent()));
39849
40349
  }
39850
40350
  get el() { return getElement(this); }
39851
40351
  static get watchers() { return {
@@ -40237,7 +40737,7 @@ class SelectModal {
40237
40737
  });
40238
40738
  }
40239
40739
  render() {
40240
- return (hAsync(Host, { key: '3d19cbc5c4b35089ce424924174f6b87fb1bdcab', class: Object.assign({ [getIonMode$1(this)]: true }, this.getModalContextClasses()) }, hAsync("ion-header", { key: '3cb79b05db6fec2f72ebdb87edcc24bad9c375ac' }, hAsync("ion-toolbar", { key: '99cf6652daad67727efc354d2064f96658e110be' }, this.header !== undefined && hAsync("ion-title", { key: '372fc52cfb477875cb6f0af8aee0e33f3059ecb1' }, this.header), hAsync("ion-buttons", { key: '748ff6504898f1516ce1904e77a5bcea8ad8cdd3', slot: "end" }, hAsync("ion-button", { key: '129b09e56081dd7f4407d00dce0df0d89836d32b', "aria-label": this.cancelIcon ? this.cancelText : undefined, onClick: () => this.closeModal() }, this.cancelIcon ? (hAsync("ion-icon", { "aria-hidden": "true", slot: "icon-only", icon: this.cancelButtonIcon })) : (this.cancelText))))), hAsync("ion-content", { key: 'd3e095c2d3b01481877ffadffcef17792422c242' }, hAsync("ion-list", { key: '7514600d43482f866e508ee88ea65ee2eae63887' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
40740
+ return (hAsync(Host, { key: '43db0bab8915e4e422acbd73d27a880935c13a38', class: Object.assign({ [getIonMode$1(this)]: true }, this.getModalContextClasses()) }, hAsync("ion-header", { key: '58f462db240eb759d7be9f090ab9fba48abdea0c' }, hAsync("ion-toolbar", { key: 'dbd4722ad8c2fc21a066b89451fdc5c0a3776808' }, this.header !== undefined && hAsync("ion-title", { key: 'cefe16f3dff1a90d10875506a94fe1d737c67b44' }, this.header), hAsync("ion-buttons", { key: '750ba8ac17447906cbe020d654b943a88adf8185', slot: "end" }, hAsync("ion-button", { key: '8c075ec9d7becf25dd1307bf083bec229a0889ae', "aria-label": this.cancelIcon ? this.cancelText : undefined, onClick: () => this.closeModal() }, this.cancelIcon ? (hAsync("ion-icon", { "aria-hidden": "true", slot: "icon-only", icon: this.cancelButtonIcon })) : (this.cancelText))))), hAsync("ion-content", { key: '65dff8eab0158cdff103ade997246cea2b3c4b9e' }, hAsync("ion-list", { key: 'e3556e81c97146ffda80260265294a4f8d6ebdf2' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
40241
40741
  }
40242
40742
  get el() { return getElement(this); }
40243
40743
  static get style() { return {
@@ -40282,7 +40782,7 @@ class SelectOption {
40282
40782
  }
40283
40783
  render() {
40284
40784
  const theme = getIonTheme(this);
40285
- return (hAsync(Host, { key: 'fd2c00d514768451e7d51631e4ce4cdb2a7a92ad', class: {
40785
+ return (hAsync(Host, { key: 'f4d425097bd16997f0ea48c8896dc92408e55bb9', class: {
40286
40786
  [theme]: true,
40287
40787
  }, role: "option", id: this.inputId }));
40288
40788
  }
@@ -40451,9 +40951,9 @@ class SelectPopover {
40451
40951
  const { header, message, options, subHeader } = this;
40452
40952
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
40453
40953
  const theme = getIonTheme(this);
40454
- return (hAsync(Host, { key: '75388b15e655f05df0849bbcd79064e4f9f72294', class: {
40954
+ return (hAsync(Host, { key: 'de63245b6690ffb6201a8faac850b7e73eed8022', class: {
40455
40955
  [theme]: true,
40456
- } }, hAsync("ion-list", { key: '14a2f8e328145d7563e9f1924637e08ba3f64f07' }, header !== undefined && hAsync("ion-list-header", { key: '22f0b835c1ea3c13e54dc3be563dcb2dc8d7f53e' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'd0464a9be0c4c3f5df33597929b89d20bc57ca7b' }, hAsync("ion-label", { key: '362f77d17c4613a27ced112cc056369ac6915fc7', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: '7166ad9c5a5f39ee3006e59ab069bbee6fbf8c2f' }, subHeader), message !== undefined && hAsync("p", { key: 'a195ed5683525cf6d63b6b8c36c49965dcab7315' }, message)))), this.renderOptions(options))));
40956
+ } }, hAsync("ion-list", { key: 'a96857c064aaf9a645b9e1ee22932116b1c25d62' }, header !== undefined && hAsync("ion-list-header", { key: '86b8c398f12cdd3e7d2a7d4c4af69029e4decdbc' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: '3bcd9c0a544e1e98243163600413d82a304081db' }, hAsync("ion-label", { key: 'd20b933ba82913b623486c982ab094819f850565', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'c869868d89d024b5b02e6a3b626ca91e6f312036' }, subHeader), message !== undefined && hAsync("p", { key: 'd8a26d162ba8d3b092abef38ef3c1795787e7f75' }, message)))), this.renderOptions(options))));
40457
40957
  }
40458
40958
  get el() { return getElement(this); }
40459
40959
  static get style() { return {
@@ -40508,11 +41008,11 @@ class SkeletonText {
40508
41008
  const animated = this.animated && config.getBoolean('animated', true);
40509
41009
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
40510
41010
  const theme = getIonTheme(this);
40511
- return (hAsync(Host, { key: '5014563646b6c5213750d503babce3013b66ec96', class: {
41011
+ return (hAsync(Host, { key: 'aa94213767105077047a369d4e4861027af96060', class: {
40512
41012
  [theme]: true,
40513
41013
  'skeleton-text-animated': animated,
40514
41014
  'in-media': inMedia,
40515
- } }, hAsync("span", { key: '4b816883b1c71bb1db66d8b2b084559f7cb489bd' }, "\u00A0")));
41015
+ } }, hAsync("span", { key: 'c5dab0fb89d524827936aef5345cc0c7eda9e274' }, "\u00A0")));
40516
41016
  }
40517
41017
  get el() { return getElement(this); }
40518
41018
  static get style() { return skeletonTextCss(); }
@@ -40585,7 +41085,7 @@ class Spinner {
40585
41085
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
40586
41086
  }
40587
41087
  }
40588
- return (hAsync(Host, { key: '0b3ce4b99c2c828d05b507c4f073811ebbe17d0f', class: createColorClasses$1(self.color, {
41088
+ return (hAsync(Host, { key: 'fb9e66e61191ada25b8cb1f82038e8d6eaeaebe0', class: createColorClasses$1(self.color, {
40589
41089
  [theme]: true,
40590
41090
  [`spinner-${spinnerName}`]: true,
40591
41091
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -40629,6 +41129,7 @@ const splitPaneIosCss = () => `:host{--side-width:100%;right:0;left:0;top:0;bott
40629
41129
 
40630
41130
  const splitPaneMdCss = () => `:host{--side-width:100%;right:0;left:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}:host(.split-pane-visible) ::slotted(.split-pane-main){right:0;left:0;top:0;bottom:0;position:relative;-ms-flex:1;flex:1;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;z-index:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host{--border:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--side-min-width:270px;--side-max-width:28%}`;
40631
41131
 
41132
+ // TODO(FW-7285): Replace with global breakpoints
40632
41133
  const QUERY = {
40633
41134
  lg: '(min-width: 992px)'};
40634
41135
  /**
@@ -40696,12 +41197,12 @@ class SplitPane {
40696
41197
  }
40697
41198
  render() {
40698
41199
  const theme = getIonTheme(this);
40699
- return (hAsync(Host, { key: '9d0c67f1f81b09bb9a6f14a66053e5cc7431a286', class: {
41200
+ return (hAsync(Host, { key: 'f9f96d71771ced17604357d27ae7b4b7ed29ec9c', class: {
40700
41201
  [theme]: true,
40701
41202
  // Used internally for styling
40702
41203
  [`split-pane-${theme}`]: true,
40703
41204
  'split-pane-visible': this.visible,
40704
- } }, hAsync("slot", { key: 'ab7b3050d3c5484bd00949cf57efa4396b4d5bc3' })));
41205
+ } }, hAsync("slot", { key: '4c95f5197bde73de689c3e4425c14c55412539c6' })));
40705
41206
  }
40706
41207
  get el() { return getElement(this); }
40707
41208
  static get watchers() { return {
@@ -40778,10 +41279,10 @@ class Tab {
40778
41279
  }
40779
41280
  render() {
40780
41281
  const { tab, active, component } = this;
40781
- return (hAsync(Host, { key: 'b249545a5adfcef4616afe79aa0f215bab464d0a', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
41282
+ return (hAsync(Host, { key: '5761999a97a78dda973bd39bf44f10d9637fc00c', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
40782
41283
  'ion-page': component === undefined,
40783
41284
  'tab-hidden': !active,
40784
- } }, hAsync("slot", { key: '19e2a406d96d20d8d4af8c3ff900e975d06021f6' })));
41285
+ } }, hAsync("slot", { key: 'd2cc63bbd20ba5f58ef8d6b23eb50ffa7d80478a' })));
40785
41286
  }
40786
41287
  get el() { return getElement(this); }
40787
41288
  static get watchers() { return {
@@ -40988,7 +41489,7 @@ class TabBar {
40988
41489
  const theme = getIonTheme(this);
40989
41490
  const shape = this.getShape();
40990
41491
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
40991
- return (hAsync(Host, { key: '7a91bb00ad289d94d34271bdecefb7221c093fd6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
41492
+ return (hAsync(Host, { key: 'dd255e7c4d99f239f43c03eaef94c26ae6db4fc6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
40992
41493
  [theme]: true,
40993
41494
  'tab-bar-translucent': translucent,
40994
41495
  'tab-bar-hidden': shouldHide,
@@ -40996,7 +41497,7 @@ class TabBar {
40996
41497
  'tab-bar-scroll-hidden': scrollHidden,
40997
41498
  [`tab-bar-${expand}`]: true,
40998
41499
  [`tab-bar-${shape}`]: shape !== undefined,
40999
- }) }, hAsync("slot", { key: '96ad10c451a6ae1e2b7c48d94d0f158fb8cde1dc' })));
41500
+ }) }, hAsync("slot", { key: 'f112cf52bce37b8a93f9ca6f9632e85889d2791e' })));
41000
41501
  }
41001
41502
  get el() { return getElement(this); }
41002
41503
  static get watchers() { return {
@@ -41124,7 +41625,7 @@ class TabButton {
41124
41625
  rel,
41125
41626
  target,
41126
41627
  };
41127
- return (hAsync(Host, { key: '5a32785eaf0570cdc3444d52ce8bba8174c3e0b9', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
41628
+ return (hAsync(Host, { key: '124248b961d34d24a3cbeeb669c672caa10f6d07', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
41128
41629
  [theme]: true,
41129
41630
  'tab-selected': selected,
41130
41631
  'tab-disabled': disabled,
@@ -41137,7 +41638,7 @@ class TabButton {
41137
41638
  'ion-selectable': true,
41138
41639
  [`tab-button-shape-${shape}`]: shape !== undefined,
41139
41640
  'ion-focusable': true,
41140
- } }, hAsync("a", Object.assign({ key: '1441f409b4a60823a57f27b90f6840b557b7d65a' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: '1566ca0af66b6e51068aca221a89133d2af061ed', class: "button-inner" }, hAsync("slot", { key: '757878091cfe3768107eb0a53b8d1c895ce43399' })), theme === 'md' && hAsync("ion-ripple-effect", { key: '28dde3e7127bdc9d5e1477b47458a5a4ab71328e', type: "unbounded" }))));
41641
+ } }, hAsync("a", Object.assign({ key: 'fde7dc112f62c5e1a08017f1e8665bf68658eadf' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: '0912736f1e69a8da9a49c94bca1c613061bcaad1', class: "button-inner" }, hAsync("slot", { key: '9b919361a07b62304dddc751658fca0540a3747a' })), theme === 'md' && hAsync("ion-ripple-effect", { key: '472967f7b2b8f63d669fae542bb2eb1900955975', type: "unbounded" }))));
41141
41642
  }
41142
41643
  get el() { return getElement(this); }
41143
41644
  static get style() { return {
@@ -41333,7 +41834,7 @@ class Tabs {
41333
41834
  return Array.from(this.el.querySelectorAll('ion-tab'));
41334
41835
  }
41335
41836
  render() {
41336
- return (hAsync(Host, { key: '9c05f69a72ab24897f1febab0928783d08224734', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '56407c9562bfd095e0259e430879151b824287fd', name: "top" }), hAsync("div", { key: '6a86ceff372b8a60342040d9361ad31bf05e80ec', class: "tabs-inner" }, hAsync("slot", { key: 'a554d3e835236a87686a0a53bd16d3124e77c0c5' })), hAsync("slot", { key: 'd241d4cfba26a7ce3a3f93703dae18b8857bd9ee', name: "bottom" })));
41837
+ return (hAsync(Host, { key: 'd94b2760650125d00a9bd620f367022119aba911', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: 'dfa95a272dce19af4575e4d6488962cf6c521754', name: "top" }), hAsync("div", { key: 'd537e5212745833107c751cc6f79d12f48f5472a', class: "tabs-inner" }, hAsync("slot", { key: '6db89721daa7ffd390586345137f1fdfcefa7910' })), hAsync("slot", { key: '7b24f140b89e8e316f24170b29390e00c31d9a0c', name: "bottom" })));
41337
41838
  }
41338
41839
  get el() { return getElement(this); }
41339
41840
  static get style() { return tabsCss(); }
@@ -41374,9 +41875,9 @@ class Text {
41374
41875
  }
41375
41876
  render() {
41376
41877
  const theme = getIonTheme(this);
41377
- return (hAsync(Host, { key: '7a3f31d6e219207a1ff98ac441357caa512012e5', class: createColorClasses$1(this.color, {
41878
+ return (hAsync(Host, { key: '4a8be0173621ab64b2849bd02b569e479890c5c4', class: createColorClasses$1(this.color, {
41378
41879
  [theme]: true,
41379
- }) }, hAsync("slot", { key: '392d48d6a5e0e5d1b44e762ec96fb8b53b3ebd49' })));
41880
+ }) }, hAsync("slot", { key: 'af7771d2fd855b5de843f32d58cd33a89051fa8b' })));
41380
41881
  }
41381
41882
  static get style() { return textCss(); }
41382
41883
  static get cmpMeta() { return {
@@ -41940,7 +42441,7 @@ class Textarea {
41940
42441
  * TODO(FW-5592): Remove hasStartEndSlots condition
41941
42442
  */
41942
42443
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
41943
- return (hAsync(Host, { key: 'b31341357553adac08f518e48d83127415f36500', class: createColorClasses$1(this.color, {
42444
+ return (hAsync(Host, { key: 'd4a95fcd3fe11311d779c10777421c36da20b7a6', class: createColorClasses$1(this.color, {
41944
42445
  [theme]: true,
41945
42446
  'has-value': hasValue,
41946
42447
  'has-focus': hasFocus,
@@ -41952,7 +42453,7 @@ class Textarea {
41952
42453
  'in-item': inItem,
41953
42454
  'textarea-disabled': disabled,
41954
42455
  'textarea-readonly': readonly,
41955
- }) }, hAsync("label", { key: '406cb6739da3382da1f723c42f4ea5aee86e09d4', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '69056191d5f1036bcb88a31d44bc61e3a98f9ebc', class: "textarea-wrapper-inner" },
42456
+ }) }, hAsync("label", { key: '3d21eab560550527de015d36b1c71761792aa516', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '5fe9ec91ac5560d2ebbb93751dd770fe17e5f839', class: "textarea-wrapper-inner" },
41956
42457
  /**
41957
42458
  * For the ionic theme, we render the outline container here
41958
42459
  * instead of higher up, so it can be positioned relative to
@@ -41962,7 +42463,7 @@ class Textarea {
41962
42463
  * <label> element, ensuring that clicking the label text
41963
42464
  * focuses the textarea.
41964
42465
  */
41965
- theme === 'ionic' && fill === 'outline' && hAsync("div", { key: 'eff37b99e2f47f1973cc61611647c28ae7271a4d', class: "textarea-outline" }), hAsync("div", { key: '9c70d10b3d2cce601f670cd86bfc19fff10233da', class: "start-slot-wrapper" }, hAsync("slot", { key: 'b0c92cc7941a0810faabfb1acf177c019e200a5d', name: "start" })), hAsync("div", { key: 'a6f9a2c06a009c322d29aa3a6e2b5a79f3532c5b', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el), part: "container" }, hAsync("textarea", Object.assign({ key: 'eb6bf7370fa3047ed475680111d3e232f0c0644c', class: "native-textarea", part: "native", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), hAsync("div", { key: 'e869ef964514267c0d419d474c16303c01d26cec', class: "end-slot-wrapper" }, hAsync("slot", { key: '8e9905fe7caaf4be904f9cfbc3d9d7f9c48deb50', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '4287784c6b896b13a4205f5f959aebbbcdd49db3', class: "textarea-highlight" })), this.renderBottomContent()));
42466
+ theme === 'ionic' && fill === 'outline' && hAsync("div", { key: 'aac1db3f8a9a9d541bd0d76f17c7936daca419d7', class: "textarea-outline" }), hAsync("div", { key: '49779a6b346b5bf2e8f98787c9159f41fd767d26', class: "start-slot-wrapper" }, hAsync("slot", { key: '2a86311a2ee002e286d8cb1e27480364cb3eb5b1', name: "start" })), hAsync("div", { key: '922069ecd0aa72e4294d78e02a4f216706af0d99', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el), part: "container" }, hAsync("textarea", Object.assign({ key: 'c1cae5f0695b4d978fbbd6d0af8d3da681d2c671', class: "native-textarea", part: "native", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), hAsync("div", { key: '6e76190d9644dd880200f28bbfdb6291362ce639', class: "end-slot-wrapper" }, hAsync("slot", { key: 'fe9466237a1d88bf8cd534e83cca148ce6178abe', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: 'e8a158231e0dcacb4df5b94575fe54d7aff5c23f', class: "textarea-highlight" })), this.renderBottomContent()));
41966
42467
  }
41967
42468
  static get delegatesFocus() { return true; }
41968
42469
  static get formAssociated() { return true; }
@@ -42046,9 +42547,9 @@ class Thumbnail {
42046
42547
  }
42047
42548
  render() {
42048
42549
  const theme = getIonTheme(this);
42049
- return (hAsync(Host, { key: '6053cf163155d4268dad4fc81ffc6bbc70d75659', class: {
42550
+ return (hAsync(Host, { key: '2fb4e6f9f650badf2bc492fc4b1c43cad64141c0', class: {
42050
42551
  [theme]: true,
42051
- } }, hAsync("slot", { key: 'b7afb5835bce7c7ed9e5cf44758bbe2d802e1271' })));
42552
+ } }, hAsync("slot", { key: 'ea18f4572b2b019af3470c6bdb7915d4a5dd84bb' })));
42052
42553
  }
42053
42554
  static get style() { return thumbnailCss(); }
42054
42555
  static get cmpMeta() { return {
@@ -42932,9 +43433,9 @@ class Toast {
42932
43433
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
42933
43434
  printIonWarning('[ion-toast] - This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
42934
43435
  }
42935
- return (hAsync(Host, Object.assign({ key: '6fd286b024a05e6960f7b4b7947a3c26cc129e14', tabindex: "-1" }, this.htmlAttributes, { style: {
43436
+ return (hAsync(Host, Object.assign({ key: 'f8a4c4537d421e924a58f9addbb38a4a043b9f53', tabindex: "-1" }, this.htmlAttributes, { style: {
42936
43437
  zIndex: `${60000 + this.overlayIndex}`,
42937
- }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true, [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent, [`toast-shape-${shape}`]: shape !== undefined, [`toast-hue-${hue}`]: hue !== undefined })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '42aa178a6c7f25841bb6e257810c37b6a5703b1f', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: '5cb2f2566ce8ab76de6a79ecac02a354eb242c58', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: 'f5a60e1b8c95bbbb829e3b9b01db64ab5229265a', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'a903491644c03391f66432253cc8365c782b056d', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
43438
+ }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true, [theme]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent, [`toast-shape-${shape}`]: shape !== undefined, [`toast-hue-${hue}`]: hue !== undefined })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '4f0b39c8e0d7aecfe81da23c3ca1591374a8afa5', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: 'a2cf3ea830d27b51ffe1158fb3f3bf87486401b5', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: 'bee5f21ee8df2278e20bf0565495da30c2e61963', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: '40a95848e952dd587d1972487affd4b8e088209f', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
42938
43439
  }
42939
43440
  get el() { return getElement(this); }
42940
43441
  static get watchers() { return {
@@ -43310,7 +43811,7 @@ class Toggle {
43310
43811
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
43311
43812
  const isIonicTheme = theme === 'ionic';
43312
43813
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
43313
- return (hAsync(Host, { key: 'b12951146a79d3839e6263e91e747398a0fa901d', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
43814
+ return (hAsync(Host, { key: '48744f35038be7be61fea432996440628d4f2ce9', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
43314
43815
  [theme]: true,
43315
43816
  'in-item': hostContext('ion-item', el),
43316
43817
  'toggle-activated': activated,
@@ -43322,10 +43823,10 @@ class Toggle {
43322
43823
  [`toggle-${rtl}`]: true,
43323
43824
  'ion-activatable': isIonicTheme,
43324
43825
  'ion-focusable': isIonicTheme,
43325
- }) }, hAsync("label", { key: 'cf1d27243bf9bdd5bafaf6d86b76beb311b5e01c', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: 'b3eb0f146836f5994c15bf1fd67a79f72b9414f7', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: '56ddcfd6452f30fd6b38d0fd85be3ec966aa120b', class: {
43826
+ }) }, hAsync("label", { key: '43d05b9140a9ccabc3981a28b01bf2cb844050f6', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: '716f13f4202712d4ce22fe738879a8259102c329', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: '0466a7f662ec5804ecc2e22971248a86f20141c7', class: {
43326
43827
  'label-text-wrapper': true,
43327
43828
  'label-text-wrapper-hidden': !hasLabel,
43328
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '706e5b667ee242fb1afb3e4afa613f9798fbe25b' }), this.renderHintText()), hAsync("div", { key: '255ccd7d60f7d78b4eba8d380b303a72093e9d16', class: "native-wrapper" }, this.renderToggleControl()))));
43829
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '86b8fbbd03ee3179e84cf906ea4e6881137d798a' }), this.renderHintText()), hAsync("div", { key: '6ccf0131e4ff14c3b1f59d218081b8da5f6b1864', class: "native-wrapper" }, this.renderToggleControl()))));
43329
43830
  }
43330
43831
  get el() { return getElement(this); }
43331
43832
  static get watchers() { return {
@@ -43617,11 +44118,11 @@ class Toolbar {
43617
44118
  Object.assign(childStyles, style);
43618
44119
  });
43619
44120
  const titlePlacement = this.getTitlePlacement();
43620
- return (hAsync(Host, { key: 'a2103857ffb26f517b4190bb01a8fa170a042e45', class: Object.assign(Object.assign({}, createColorClasses$1(this.color, {
44121
+ return (hAsync(Host, { key: '069913e9241b8e9a2dee8e7d088d181b6faeab5e', class: Object.assign(Object.assign({}, createColorClasses$1(this.color, {
43621
44122
  [theme]: true,
43622
44123
  'in-toolbar': hostContext('ion-toolbar', this.el),
43623
44124
  [`toolbar-title-placement-${titlePlacement}`]: true,
43624
- })), childStyles) }, hAsync("div", { key: '288b74048d260c9279d6e60c8733e26105ee0098', class: "toolbar-background", part: "background" }), hAsync("div", { key: 'fa4b8cfb32f3bfb84f451cf3a2420b37fc75533c', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'fe9414ab3fa2ca84d424a400ba91ec8239d700ff', name: "start", onSlotchange: () => this.updateSlotClasses }), hAsync("slot", { key: 'c633cd1b6eef87adbfccfa61857518dcf62ac550', name: "secondary", onSlotchange: () => this.updateSlotClasses }), hAsync("div", { key: 'aff3a3d8acbc480e9daec864aeb85d168ab2c447', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '52b45c5abbfe695e862c857163e7aa00c1c2af9a' })), hAsync("slot", { key: '3157c16fcfe428230998f218c6233d114b550a6f', name: "primary", onSlotchange: () => this.updateSlotClasses }), hAsync("slot", { key: '4b74dff5b832ea0f3030efa319c63c876c3e90e2', name: "end", onSlotchange: () => this.updateSlotClasses }))));
44125
+ })), childStyles) }, hAsync("div", { key: '3255531be492b9afa7b47476a805f923beea09db', class: "toolbar-background", part: "background" }), hAsync("div", { key: '8758189374c0a12f293c30ca7f8f049b732d2cab', class: "toolbar-container", part: "container" }, hAsync("slot", { key: '74c3705f717968893bf94ea95c99cae313ce68f3', name: "start", onSlotchange: () => this.updateSlotClasses }), hAsync("slot", { key: '298c78f93291442f140f8c52983871215f20ea87', name: "secondary", onSlotchange: () => this.updateSlotClasses }), hAsync("div", { key: 'f7376320b704b8ce375fe2223ae30d51bfc05acb', class: "toolbar-content", part: "content" }, hAsync("slot", { key: 'ddaec08b1fbd13384d834ba4c3b4441c4d749faf' })), hAsync("slot", { key: '6d5bce85159859bb548e4d3fb6b22208dcb48987', name: "primary", onSlotchange: () => this.updateSlotClasses }), hAsync("slot", { key: 'd1d21752ed3bcc7bf15c20de1c0a6fd956373450', name: "end", onSlotchange: () => this.updateSlotClasses }))));
43625
44126
  }
43626
44127
  get el() { return getElement(this); }
43627
44128
  static get watchers() { return {
@@ -43680,11 +44181,11 @@ class ToolbarTitle {
43680
44181
  render() {
43681
44182
  const theme = getIonTheme(this);
43682
44183
  const size = this.getSize();
43683
- return (hAsync(Host, { key: '8db3e5f9dbd8b1762a9919eaeef29c98649dfb25', class: createColorClasses$1(this.color, {
44184
+ return (hAsync(Host, { key: '87bb5264f4c13d0d6eeef874ed114539d0b59062', class: createColorClasses$1(this.color, {
43684
44185
  [theme]: true,
43685
44186
  [`title-${size}`]: true,
43686
44187
  'title-rtl': document.dir === 'rtl',
43687
- }) }, hAsync("div", { key: 'a31ebae2c494a51d2145eec69d0b1bc635108a01', class: "toolbar-title" }, hAsync("slot", { key: 'f5975b44b3e3afbf98dcbdb53fc78447b49407b3' }))));
44188
+ }) }, hAsync("div", { key: '75f2ddfaf693ffdec13d909eefdb09b441d76e80', class: "toolbar-title" }, hAsync("slot", { key: '00539af5e250bee78fdd1c55f2ecdc8e53bc18b0' }))));
43688
44189
  }
43689
44190
  get el() { return getElement(this); }
43690
44191
  static get watchers() { return {
@@ -43740,6 +44241,7 @@ registerComponents([
43740
44241
  FabButton,
43741
44242
  FabList,
43742
44243
  Footer,
44244
+ Gallery,
43743
44245
  Grid,
43744
44246
  Header,
43745
44247
  Icon,