@ionic/core 8.8.9-dev.11781024903.1e4268e5 → 8.8.9-dev.11781201980.1b6e8398

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 (366) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-action-sheet.js +1 -1
  3. package/components/ion-alert.js +1 -1
  4. package/components/ion-back-button.js +1 -1
  5. package/components/ion-button.js +1 -1
  6. package/components/ion-card.js +1 -1
  7. package/components/ion-chip.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-item.d.ts +11 -0
  12. package/components/ion-gallery-item.js +4 -0
  13. package/components/ion-gallery.js +1 -1
  14. package/components/ion-grid.js +1 -1
  15. package/components/ion-header.js +1 -1
  16. package/components/ion-img.js +1 -1
  17. package/components/ion-infinite-scroll-content.js +1 -1
  18. package/components/ion-infinite-scroll.js +1 -1
  19. package/components/ion-input-otp.js +1 -1
  20. package/components/ion-input-password-toggle.js +1 -1
  21. package/components/ion-input.js +1 -1
  22. package/components/ion-item-divider.js +1 -1
  23. package/components/ion-item-group.js +1 -1
  24. package/components/ion-item-option.js +1 -1
  25. package/components/ion-item-options.js +1 -1
  26. package/components/ion-item-sliding.js +1 -1
  27. package/components/ion-item.js +1 -1
  28. package/components/ion-label.js +1 -1
  29. package/components/ion-list-header.js +1 -1
  30. package/components/ion-list.js +1 -1
  31. package/components/ion-loading.js +1 -1
  32. package/components/ion-menu-button.js +1 -1
  33. package/components/ion-menu-toggle.js +1 -1
  34. package/components/ion-menu.js +1 -1
  35. package/components/ion-modal.js +1 -1
  36. package/components/ion-nav-link.js +1 -1
  37. package/components/ion-nav.js +1 -1
  38. package/components/ion-note.js +1 -1
  39. package/components/ion-picker-column-option.js +1 -1
  40. package/components/ion-picker-legacy-column.js +1 -1
  41. package/components/ion-picker-legacy.js +1 -1
  42. package/components/ion-popover.js +1 -1
  43. package/components/ion-progress-bar.js +1 -1
  44. package/components/ion-radio-group.js +1 -1
  45. package/components/ion-radio.js +1 -1
  46. package/components/ion-range.js +1 -1
  47. package/components/ion-refresher-content.js +1 -1
  48. package/components/ion-refresher.js +1 -1
  49. package/components/ion-reorder-group.js +1 -1
  50. package/components/ion-reorder.js +1 -1
  51. package/components/ion-ripple-effect.js +1 -1
  52. package/components/ion-router-link.js +1 -1
  53. package/components/ion-router-outlet.js +1 -1
  54. package/components/ion-row.js +1 -1
  55. package/components/ion-searchbar.js +1 -1
  56. package/components/ion-segment-button.js +1 -1
  57. package/components/ion-segment-content.js +1 -1
  58. package/components/ion-segment-view.js +1 -1
  59. package/components/ion-segment.js +1 -1
  60. package/components/ion-select-modal.js +1 -1
  61. package/components/ion-select-option.js +1 -1
  62. package/components/ion-select-popover.js +1 -1
  63. package/components/ion-select.js +1 -1
  64. package/components/ion-skeleton-text.js +1 -1
  65. package/components/ion-spinner.js +1 -1
  66. package/components/ion-split-pane.js +1 -1
  67. package/components/ion-tab-bar.js +1 -1
  68. package/components/ion-tab-button.js +1 -1
  69. package/components/ion-tab.js +1 -1
  70. package/components/ion-tabs.js +1 -1
  71. package/components/ion-text.js +1 -1
  72. package/components/ion-textarea.js +1 -1
  73. package/components/ion-thumbnail.js +1 -1
  74. package/components/ion-title.js +1 -1
  75. package/components/ion-toast.js +1 -1
  76. package/components/ion-toggle.js +1 -1
  77. package/components/ion-toolbar.js +1 -1
  78. package/components/p-BFZBl0TS.js +4 -0
  79. package/components/{p-pvh0bjpw.js → p-BVi3gqm6.js} +1 -1
  80. package/components/{p-D6g8ud1e.js → p-BVk7LVs0.js} +1 -1
  81. package/components/{p-B9MABkWm.js → p-BdUtZxku.js} +1 -1
  82. package/components/{p-CzC_ZSgb.js → p-Be8tHurp.js} +1 -1
  83. package/components/p-C0U8YqYW.js +4 -0
  84. package/components/{p-C8kBejTT.js → p-CG3ZV6ON.js} +1 -1
  85. package/components/{p-CBS0sBAa.js → p-CaqTORfV.js} +1 -1
  86. package/components/{p-D2mReIu8.js → p-CkA0SI9d.js} +1 -1
  87. package/components/p-Cmql_g3_.js +4 -0
  88. package/components/p-CsakePQg.js +4 -0
  89. package/components/{p-CgSn4J7d.js → p-D1gEOh9B.js} +1 -1
  90. package/components/p-D3qBmaqi.js +4 -0
  91. package/components/{p-Do7NMUwR.js → p-DGn-jQpr.js} +1 -1
  92. package/components/p-DH4JHV73.js +4 -0
  93. package/components/p-DYK0qX7x.js +4 -0
  94. package/components/{p-Dp2x0MpA.js → p-DfV7pOtM.js} +1 -1
  95. package/components/{p-BhkGOA7t.js → p-F3N54OKJ.js} +1 -1
  96. package/components/{p-CgZLVOCc.js → p-MPREydZp.js} +1 -1
  97. package/components/{p-kKYBfhbe.js → p-OFfrVDLw.js} +1 -1
  98. package/components/p-iZO3WzZT.js +4 -0
  99. package/components/{p-LB-QPk3e.js → p-qclL-gNR.js} +1 -1
  100. package/dist/cjs/index-BJlwOs11.js +171 -0
  101. package/dist/cjs/index.cjs.js +1 -1
  102. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  103. package/dist/cjs/ion-alert.cjs.entry.js +9 -25
  104. package/dist/cjs/ion-app_8.cjs.entry.js +7 -7
  105. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  106. package/dist/cjs/ion-col_3.cjs.entry.js +4 -4
  107. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
  108. package/dist/cjs/ion-gallery-item.cjs.entry.js +60 -0
  109. package/dist/cjs/ion-gallery.cjs.entry.js +91 -13
  110. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  111. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -4
  112. package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
  113. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  114. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  115. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  116. package/dist/cjs/ion-item_8.cjs.entry.js +16 -15
  117. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  118. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  119. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  120. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  121. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  122. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  123. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  124. package/dist/cjs/ion-radio_2.cjs.entry.js +5 -5
  125. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  126. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  127. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  128. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  129. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  130. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  131. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  132. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  133. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  134. package/dist/cjs/ion-select-modal.cjs.entry.js +10 -30
  135. package/dist/cjs/ion-select_3.cjs.entry.js +43 -102
  136. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  137. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  138. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  139. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  140. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  141. package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
  142. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  143. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  144. package/dist/cjs/ionic.cjs.js +1 -1
  145. package/dist/cjs/loader.cjs.js +1 -1
  146. package/dist/cjs/select-option-render-C7klBX2H.js +81 -0
  147. package/dist/collection/collection-manifest.json +2 -1
  148. package/dist/collection/components/action-sheet/action-sheet.ionic.css +506 -163
  149. package/dist/collection/components/action-sheet/action-sheet.ios.css +27 -288
  150. package/dist/collection/components/action-sheet/action-sheet.md.css +27 -228
  151. package/dist/collection/components/alert/alert.ionic.css +797 -416
  152. package/dist/collection/components/alert/alert.ios.css +40 -402
  153. package/dist/collection/components/alert/alert.js +4 -20
  154. package/dist/collection/components/alert/alert.md.css +50 -385
  155. package/dist/collection/components/gallery/gallery.css +1 -86
  156. package/dist/collection/components/gallery/gallery.js +92 -13
  157. package/dist/collection/components/gallery/test/utils.js +16 -16
  158. package/dist/collection/components/gallery-item/gallery-item.css +88 -0
  159. package/dist/collection/components/gallery-item/gallery-item.js +100 -0
  160. package/dist/collection/components/grid/grid.js +2 -2
  161. package/dist/collection/components/header/header.js +2 -2
  162. package/dist/collection/components/img/img.js +2 -2
  163. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  164. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  165. package/dist/collection/components/input/input.js +4 -4
  166. package/dist/collection/components/input-otp/input-otp.js +3 -3
  167. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  168. package/dist/collection/components/item/item.ionic.css +17 -5
  169. package/dist/collection/components/item/item.js +3 -2
  170. package/dist/collection/components/item-divider/item-divider.js +2 -2
  171. package/dist/collection/components/item-group/item-group.js +1 -1
  172. package/dist/collection/components/item-option/item-option.js +2 -2
  173. package/dist/collection/components/item-options/item-options.js +1 -1
  174. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  175. package/dist/collection/components/label/label.js +2 -2
  176. package/dist/collection/components/list/list.js +1 -1
  177. package/dist/collection/components/list-header/list-header.js +2 -2
  178. package/dist/collection/components/loading/loading.js +2 -2
  179. package/dist/collection/components/menu/menu.js +2 -2
  180. package/dist/collection/components/menu-button/menu-button.js +2 -2
  181. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  182. package/dist/collection/components/modal/modal.js +4 -4
  183. package/dist/collection/components/nav/nav.js +1 -1
  184. package/dist/collection/components/nav-link/nav-link.js +1 -1
  185. package/dist/collection/components/note/note.js +2 -2
  186. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  187. package/dist/collection/components/picker-legacy/picker.js +2 -2
  188. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  189. package/dist/collection/components/popover/popover.js +2 -2
  190. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  191. package/dist/collection/components/radio/radio.js +3 -3
  192. package/dist/collection/components/radio-group/radio-group.js +2 -2
  193. package/dist/collection/components/range/range.js +3 -3
  194. package/dist/collection/components/refresher/refresher.js +1 -1
  195. package/dist/collection/components/refresher-content/refresher-content.js +2 -2
  196. package/dist/collection/components/reorder/reorder.js +2 -2
  197. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  198. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  199. package/dist/collection/components/router-link/router-link.js +2 -2
  200. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  201. package/dist/collection/components/row/row.js +2 -2
  202. package/dist/collection/components/searchbar/searchbar.js +4 -4
  203. package/dist/collection/components/segment/segment.js +2 -2
  204. package/dist/collection/components/segment-button/segment-button.js +2 -2
  205. package/dist/collection/components/segment-content/segment-content.js +1 -1
  206. package/dist/collection/components/segment-view/segment-view.js +2 -2
  207. package/dist/collection/components/select/select.js +32 -72
  208. package/dist/collection/components/select-modal/select-modal.ionic.css +29 -139
  209. package/dist/collection/components/select-modal/select-modal.ios.css +7 -379
  210. package/dist/collection/components/select-modal/select-modal.js +5 -25
  211. package/dist/collection/components/select-modal/select-modal.md.css +7 -319
  212. package/dist/collection/components/select-option/select-option.js +1 -39
  213. package/dist/collection/components/select-popover/select-popover.ionic.css +376 -129
  214. package/dist/collection/components/select-popover/select-popover.ios.css +69 -252
  215. package/dist/collection/components/select-popover/select-popover.js +6 -25
  216. package/dist/collection/components/select-popover/select-popover.md.css +27 -273
  217. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  218. package/dist/collection/components/spinner/spinner.js +1 -1
  219. package/dist/collection/components/split-pane/split-pane.js +2 -2
  220. package/dist/collection/components/tab/tab.js +2 -2
  221. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  222. package/dist/collection/components/tab-button/tab-button.js +2 -2
  223. package/dist/collection/components/tabs/tabs.js +1 -1
  224. package/dist/collection/components/text/text.js +2 -2
  225. package/dist/collection/components/textarea/textarea.js +3 -3
  226. package/dist/collection/components/thumbnail/thumbnail.js +2 -2
  227. package/dist/collection/components/title/title.js +2 -2
  228. package/dist/collection/components/toast/toast.js +2 -2
  229. package/dist/collection/components/toggle/toggle.js +3 -3
  230. package/dist/collection/components/toolbar/toolbar.js +2 -2
  231. package/dist/collection/utils/sanitization/index.js +14 -255
  232. package/dist/collection/utils/select-option-render.js +24 -59
  233. package/dist/docs.json +87 -69
  234. package/dist/esm/index-D4ugF_sT.js +168 -0
  235. package/dist/esm/index.js +1 -1
  236. package/dist/esm/ion-action-sheet.entry.js +5 -5
  237. package/dist/esm/ion-alert.entry.js +9 -25
  238. package/dist/esm/ion-app_8.entry.js +7 -7
  239. package/dist/esm/ion-avatar_3.entry.js +2 -2
  240. package/dist/esm/ion-col_3.entry.js +4 -4
  241. package/dist/esm/ion-datetime_3.entry.js +4 -4
  242. package/dist/esm/ion-gallery-item.entry.js +58 -0
  243. package/dist/esm/ion-gallery.entry.js +91 -13
  244. package/dist/esm/ion-img.entry.js +2 -2
  245. package/dist/esm/ion-infinite-scroll_2.entry.js +4 -4
  246. package/dist/esm/ion-input-otp.entry.js +3 -3
  247. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  248. package/dist/esm/ion-input.entry.js +4 -4
  249. package/dist/esm/ion-item-option_3.entry.js +4 -4
  250. package/dist/esm/ion-item_8.entry.js +16 -15
  251. package/dist/esm/ion-loading.entry.js +3 -3
  252. package/dist/esm/ion-menu_3.entry.js +6 -6
  253. package/dist/esm/ion-modal.entry.js +4 -4
  254. package/dist/esm/ion-nav_2.entry.js +2 -2
  255. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  256. package/dist/esm/ion-popover.entry.js +2 -2
  257. package/dist/esm/ion-progress-bar.entry.js +1 -1
  258. package/dist/esm/ion-radio_2.entry.js +5 -5
  259. package/dist/esm/ion-range.entry.js +3 -3
  260. package/dist/esm/ion-refresher_2.entry.js +4 -4
  261. package/dist/esm/ion-reorder_2.entry.js +3 -3
  262. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  263. package/dist/esm/ion-route_4.entry.js +2 -2
  264. package/dist/esm/ion-searchbar.entry.js +4 -4
  265. package/dist/esm/ion-segment-content.entry.js +1 -1
  266. package/dist/esm/ion-segment-view.entry.js +2 -2
  267. package/dist/esm/ion-segment_2.entry.js +4 -4
  268. package/dist/esm/ion-select-modal.entry.js +10 -30
  269. package/dist/esm/ion-select_3.entry.js +43 -102
  270. package/dist/esm/ion-spinner.entry.js +1 -1
  271. package/dist/esm/ion-split-pane.entry.js +2 -2
  272. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  273. package/dist/esm/ion-tab_2.entry.js +3 -3
  274. package/dist/esm/ion-text.entry.js +2 -2
  275. package/dist/esm/ion-textarea.entry.js +3 -3
  276. package/dist/esm/ion-toast.entry.js +3 -3
  277. package/dist/esm/ion-toggle.entry.js +3 -3
  278. package/dist/esm/ionic.js +1 -1
  279. package/dist/esm/loader.js +1 -1
  280. package/dist/esm/select-option-render-B2qc5ZP7.js +79 -0
  281. package/dist/html.html-data.json +42 -27
  282. package/dist/ionic/index.esm.js +1 -1
  283. package/dist/ionic/ionic.esm.js +1 -1
  284. package/dist/ionic/{p-f52856cb.entry.js → p-0592c549.entry.js} +1 -1
  285. package/dist/ionic/{p-67c2d349.entry.js → p-0aa510cd.entry.js} +1 -1
  286. package/dist/ionic/{p-9ccfb733.entry.js → p-0cd5fd9d.entry.js} +1 -1
  287. package/dist/ionic/p-0e9d4e11.entry.js +4 -0
  288. package/dist/ionic/{p-497f6391.entry.js → p-11a38333.entry.js} +1 -1
  289. package/dist/ionic/{p-0030507d.entry.js → p-1a009a51.entry.js} +1 -1
  290. package/dist/ionic/{p-7186786e.entry.js → p-23e524f8.entry.js} +1 -1
  291. package/dist/ionic/{p-1439fecb.entry.js → p-2826761a.entry.js} +1 -1
  292. package/dist/ionic/{p-93315d96.entry.js → p-2c4170d8.entry.js} +1 -1
  293. package/dist/ionic/p-2d5a2511.entry.js +4 -0
  294. package/dist/ionic/{p-7f294078.entry.js → p-3706ea52.entry.js} +1 -1
  295. package/dist/ionic/{p-b69add0e.entry.js → p-3e376501.entry.js} +1 -1
  296. package/dist/ionic/{p-c684a3b6.entry.js → p-44597202.entry.js} +1 -1
  297. package/dist/ionic/{p-8458f1b6.entry.js → p-4a27a79a.entry.js} +1 -1
  298. package/dist/ionic/{p-b7235e85.entry.js → p-4f07113d.entry.js} +1 -1
  299. package/dist/ionic/{p-88e7f52a.entry.js → p-52b85650.entry.js} +1 -1
  300. package/dist/ionic/{p-199bffb3.entry.js → p-5a6e0ae1.entry.js} +1 -1
  301. package/dist/ionic/p-6906dca7.entry.js +4 -0
  302. package/dist/ionic/p-75a1ca50.entry.js +4 -0
  303. package/dist/ionic/{p-19a1ff9a.entry.js → p-7b09c19d.entry.js} +1 -1
  304. package/dist/ionic/{p-76c70824.entry.js → p-7b886782.entry.js} +1 -1
  305. package/dist/ionic/p-7da8b262.entry.js +4 -0
  306. package/dist/ionic/{p-89eab395.entry.js → p-82c05be2.entry.js} +1 -1
  307. package/dist/ionic/{p-b653f4c2.entry.js → p-83c0eb9b.entry.js} +1 -1
  308. package/dist/ionic/{p-b4fd91b8.entry.js → p-85ff1314.entry.js} +1 -1
  309. package/dist/ionic/p-88048796.entry.js +4 -0
  310. package/dist/ionic/{p-3f18dfe9.entry.js → p-8eca5ba1.entry.js} +1 -1
  311. package/dist/ionic/p-96f52444.entry.js +4 -0
  312. package/dist/ionic/p-CFjI63GE.js +4 -0
  313. package/dist/ionic/p-CWJdc8f_.js +4 -0
  314. package/dist/ionic/{p-f2f740aa.entry.js → p-a3b047e0.entry.js} +1 -1
  315. package/dist/ionic/{p-40d9e029.entry.js → p-a73caa5e.entry.js} +1 -1
  316. package/dist/ionic/{p-1ad16c09.entry.js → p-b0dfd018.entry.js} +1 -1
  317. package/dist/ionic/{p-a3f9be52.entry.js → p-b6130fe4.entry.js} +1 -1
  318. package/dist/ionic/p-c0558552.entry.js +4 -0
  319. package/dist/ionic/{p-084c2623.entry.js → p-c5f745b4.entry.js} +1 -1
  320. package/dist/ionic/{p-bc3d68ff.entry.js → p-c781241c.entry.js} +1 -1
  321. package/dist/ionic/p-cb154afe.entry.js +4 -0
  322. package/dist/ionic/{p-b847907d.entry.js → p-cde69f38.entry.js} +1 -1
  323. package/dist/ionic/{p-70ee89c9.entry.js → p-d6f0a698.entry.js} +1 -1
  324. package/dist/ionic/{p-dd2981d0.entry.js → p-d9804d04.entry.js} +1 -1
  325. package/dist/ionic/{p-7054a1b9.entry.js → p-e342b205.entry.js} +1 -1
  326. package/dist/ionic/{p-9dfbe98d.entry.js → p-e8916b04.entry.js} +1 -1
  327. package/dist/ionic/{p-dac1d4de.entry.js → p-f10f8f95.entry.js} +1 -1
  328. package/dist/types/components/gallery/gallery.d.ts +41 -8
  329. package/dist/types/components/gallery/test/utils.d.ts +2 -1
  330. package/dist/types/components/gallery-item/gallery-item.d.ts +33 -0
  331. package/dist/types/components/select/select-interface.d.ts +0 -8
  332. package/dist/types/components/select-option/select-option.d.ts +0 -32
  333. package/dist/types/components.d.ts +33 -18
  334. package/dist/types/utils/sanitization/index.d.ts +2 -54
  335. package/dist/types/utils/select-option-render.d.ts +0 -31
  336. package/hydrate/index.js +380 -645
  337. package/hydrate/index.mjs +380 -645
  338. package/package.json +1 -1
  339. package/components/p-BP_TU_4l.js +0 -4
  340. package/components/p-BqTwa6uT.js +0 -4
  341. package/components/p-Bxiu1dAN.js +0 -4
  342. package/components/p-C91NnY87.js +0 -4
  343. package/components/p-CODBQrPj.js +0 -4
  344. package/components/p-GElQZ38c.js +0 -4
  345. package/components/p-WdrzoonY.js +0 -4
  346. package/components/p-h64_gZrH.js +0 -4
  347. package/components/p-sehKq5RI.js +0 -4
  348. package/dist/cjs/index-Dm4Dm7Vg.js +0 -414
  349. package/dist/cjs/overlay-control-label-DnRLQR1t.js +0 -52
  350. package/dist/cjs/select-option-render-DQyZnlF5.js +0 -116
  351. package/dist/collection/utils/overlay-control-label.js +0 -47
  352. package/dist/esm/index-Bmyj8b0z.js +0 -409
  353. package/dist/esm/overlay-control-label-CODBQrPj.js +0 -49
  354. package/dist/esm/select-option-render-QGJ9tZHa.js +0 -114
  355. package/dist/ionic/p-18ed37e3.entry.js +0 -4
  356. package/dist/ionic/p-2049aa81.entry.js +0 -4
  357. package/dist/ionic/p-290778c1.entry.js +0 -4
  358. package/dist/ionic/p-2aa7567e.entry.js +0 -4
  359. package/dist/ionic/p-2e7e3da1.entry.js +0 -4
  360. package/dist/ionic/p-CODBQrPj.js +0 -4
  361. package/dist/ionic/p-CxRK9GyE.js +0 -4
  362. package/dist/ionic/p-NqPMS7BP.js +0 -4
  363. package/dist/ionic/p-c94fbdab.entry.js +0 -4
  364. package/dist/ionic/p-e89848b2.entry.js +0 -4
  365. package/dist/ionic/p-ff09d2a5.entry.js +0 -4
  366. package/dist/types/utils/overlay-control-label.d.ts +0 -34
@@ -17,11 +17,16 @@ const BREAKPOINTS = {
17
17
  xxl: 1400,
18
18
  };
19
19
  const BREAKPOINT_ORDER = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
20
+ /**
21
+ * The tag of the component used to wrap each gallery item.
22
+ */
23
+ const GALLERY_ITEM_SELECTOR = 'ion-gallery-item';
20
24
  /**
21
25
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
22
26
  * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
23
27
  *
24
- * @slot - Content is placed in a responsive gallery layout.
28
+ * @slot - One or more `ion-gallery-item` components, placed in a responsive
29
+ * gallery layout.
25
30
  */
26
31
  export class Gallery {
27
32
  constructor() {
@@ -30,6 +35,7 @@ export class Gallery {
30
35
  this.hasWarnedInvalidColumns = false;
31
36
  this.hasWarnedInvalidGap = false;
32
37
  this.hasWarnedUnusedOrder = false;
38
+ this.hasWarnedInvalidItems = false;
33
39
  /**
34
40
  * The visual layout of the gallery. When `uniform`, rows take up the height
35
41
  * of the tallest item and are spaced evenly across the gallery. Additionally,
@@ -53,12 +59,13 @@ export class Gallery {
53
59
  */
54
60
  this.gap = DEFAULT_GAP;
55
61
  /**
56
- * Listen for the slotchange event on the slot.
57
- * When the layout is `masonry`, this listener is used to schedule a resize
58
- * of the masonry grid when the slot changes. This is useful for when items
59
- * are added or removed from the gallery.
62
+ * Listen for the slotchange event on the slot. When the gallery's items are
63
+ * added or removed, re-collapse wrappers, re-observe items for size changes,
64
+ * and recompute the masonry grid.
60
65
  */
61
66
  this.onSlotChange = () => {
67
+ this.collapseWrappers();
68
+ this.observeResizes();
62
69
  this.scheduleMasonryResize();
63
70
  };
64
71
  /**
@@ -89,6 +96,7 @@ export class Gallery {
89
96
  }
90
97
  onLayoutOrOrderChanged() {
91
98
  this.syncResponsiveLayout();
99
+ this.syncItemLayout();
92
100
  // Wait until the next animation frame to warn about unused order
93
101
  // to avoid erroneous warnings when the layout and order are updated
94
102
  // in the same frame.
@@ -96,13 +104,23 @@ export class Gallery {
96
104
  this.warnUnusedOrder();
97
105
  });
98
106
  }
107
+ /**
108
+ * Sync the current layout with each item when the gallery's `layout`
109
+ * changes.
110
+ */
111
+ syncItemLayout() {
112
+ this.getItems().forEach((item) => {
113
+ item.syncGalleryLayout();
114
+ });
115
+ }
99
116
  componentDidLoad() {
117
+ this.collapseWrappers();
100
118
  this.updateResponsiveStyles(true);
101
119
  this.resizeObserver = new ResizeObserver(() => {
102
120
  this.updateResponsiveStyles();
103
121
  this.scheduleMasonryResize();
104
122
  });
105
- this.resizeObserver.observe(this.el);
123
+ this.observeResizes();
106
124
  this.scheduleMasonryResize();
107
125
  this.warnUnusedOrder();
108
126
  }
@@ -115,6 +133,22 @@ export class Gallery {
115
133
  (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
116
134
  this.resizeObserver = undefined;
117
135
  }
136
+ /**
137
+ * Observe the host and each item for size changes. Items are observed in
138
+ * addition to the host so masonry placement is recomputed when an item's
139
+ * rendered height changes — most importantly when a dynamically added
140
+ * `ion-gallery-item` finishes hydrating, which (unlike an `<img>`) emits no
141
+ * `load` event and does not change the host's measured size while collapsed.
142
+ */
143
+ observeResizes() {
144
+ const observer = this.resizeObserver;
145
+ if (observer === undefined) {
146
+ return;
147
+ }
148
+ observer.disconnect();
149
+ observer.observe(this.el);
150
+ this.getItems().forEach((item) => observer.observe(item));
151
+ }
118
152
  /**
119
153
  * Listen for the load event on child elements.
120
154
  * When the layout is `masonry`, this listener is used to schedule a resize
@@ -343,11 +377,49 @@ export class Gallery {
343
377
  this.el.style.setProperty('--internal-gallery-gap', `${gap}`);
344
378
  }
345
379
  /**
346
- * Return all directly slotted children of the gallery that can be grid items
347
- * with inline placement styles (HTML elements and SVG elements).
380
+ * Return the `ion-gallery-item` elements to place in the grid. Each item is a
381
+ * direct grid cell, whether a direct child or nested inside a pass-through
382
+ * wrapper (e.g. a layout `<div>`). Items belonging to a nested `ion-gallery`
383
+ * are excluded.
348
384
  */
349
385
  getItems() {
350
- return Array.from(this.el.children).filter((child) => { var _a; return typeof ((_a = child.style) === null || _a === void 0 ? void 0 : _a.setProperty) === 'function'; });
386
+ return Array.from(this.el.querySelectorAll(GALLERY_ITEM_SELECTOR)).filter((item) => item.closest('ion-gallery') === this.el);
387
+ }
388
+ /**
389
+ * Collapse each pass-through wrapper's box with `display: contents` so its
390
+ * items participate in the gallery grid. Restore the box of a wrapper that
391
+ * no longer contains items, and warn about children that contain none.
392
+ */
393
+ collapseWrappers() {
394
+ const items = this.getItems();
395
+ Array.from(this.el.children).forEach((child) => {
396
+ if (child.matches(GALLERY_ITEM_SELECTOR)) {
397
+ return;
398
+ }
399
+ if (!items.some((item) => child.contains(item))) {
400
+ // If the wrapper was previously collapsed with `display: contents`
401
+ // but now contains no items, clear the display style.
402
+ if (child.style.display === 'contents') {
403
+ child.style.display = '';
404
+ }
405
+ this.warnInvalidItems();
406
+ return;
407
+ }
408
+ // Collapse the wrapper's box so its items sit directly in the grid.
409
+ child.style.display = 'contents';
410
+ });
411
+ }
412
+ /**
413
+ * Warn when the gallery has content that is not wrapped in an
414
+ * `ion-gallery-item` component. Items belonging to a nested
415
+ * gallery are considered invalid content for the parent gallery.
416
+ */
417
+ warnInvalidItems() {
418
+ if (this.hasWarnedInvalidItems) {
419
+ return;
420
+ }
421
+ printIonWarning(`[ion-gallery] - Gallery items must be wrapped in "ion-gallery-item" components. Direct children that are not "ion-gallery-item" (and do not contain one) are ignored.`, this.el);
422
+ this.hasWarnedInvalidItems = true;
351
423
  }
352
424
  /**
353
425
  * Clear the item styles for the given item element.
@@ -365,12 +437,19 @@ export class Gallery {
365
437
  clearMasonryStyles() {
366
438
  this.getItems().forEach((itemEl) => this.clearItemStyles(itemEl));
367
439
  }
440
+ /**
441
+ * Whether the item contains any images that have not finished loading.
442
+ * Used to defer masonry placement until the rendered height is final.
443
+ */
444
+ hasUnloadedImages(itemEl) {
445
+ return Array.from(itemEl.querySelectorAll('img')).some((img) => !img.complete || img.naturalHeight === 0);
446
+ }
368
447
  /**
369
448
  * Convert a rendered item height to the number of grid rows it should span.
370
- * Returns undefined for images that are not fully loaded yet.
449
+ * Returns undefined when the item has images that are not fully loaded yet.
371
450
  */
372
451
  calculateRowSpan(itemEl, rowHeight, rowGap) {
373
- if (itemEl instanceof HTMLImageElement && (!itemEl.complete || itemEl.naturalHeight === 0)) {
452
+ if (this.hasUnloadedImages(itemEl)) {
374
453
  return undefined;
375
454
  }
376
455
  const height = itemEl.getBoundingClientRect().height;
@@ -457,11 +536,11 @@ export class Gallery {
457
536
  const { layout } = this;
458
537
  const order = this.getOrder();
459
538
  const theme = getIonTheme(this);
460
- return (h(Host, { key: '4f578bea373b422f5dd41395ca04ade699a2f398', class: {
539
+ return (h(Host, { key: '4a0a9cdd0da106ac0bd2c188a4c6612edab43b33', class: {
461
540
  [theme]: true,
462
541
  [`gallery-layout-${layout}`]: true,
463
542
  [`gallery-order-${order}`]: layout === 'masonry' && order !== undefined,
464
- } }, h("slot", { key: '0daa3ba1ea894c8c10ab077a6b83476ad5cf514d', onSlotchange: this.onSlotChange })));
543
+ } }, h("slot", { key: 'dc6414ce9762ad7daaedc1583db35e0613a76e11', onSlotchange: this.onSlotChange })));
465
544
  }
466
545
  static get is() { return "ion-gallery"; }
467
546
  static get encapsulation() { return "shadow"; }
@@ -1,62 +1,62 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- export const sharedStyles = `
4
+ export const sharedGalleryStyles = `
5
5
  ion-gallery {
6
6
  width: 343px;
7
7
  }
8
-
9
- div {
8
+ `;
9
+ export const sharedGalleryItemStyles = `
10
+ ion-gallery-item {
10
11
  color: #fff;
11
- height: 150px;
12
12
  }
13
13
 
14
- div:nth-child(1) {
14
+ ion-gallery-item:nth-child(1) {
15
15
  background: #ff6b6b;
16
16
  }
17
17
 
18
- div:nth-child(2) {
18
+ ion-gallery-item:nth-child(2) {
19
19
  background: #4ecdc4;
20
20
  }
21
21
 
22
- div:nth-child(3) {
22
+ ion-gallery-item:nth-child(3) {
23
23
  background: #ffe66d;
24
24
  color: #333;
25
25
  }
26
26
 
27
- div:nth-child(4) {
27
+ ion-gallery-item:nth-child(4) {
28
28
  background: #5f27cd;
29
29
  }
30
30
 
31
- div:nth-child(5) {
31
+ ion-gallery-item:nth-child(5) {
32
32
  background: #7f8c8d;
33
33
  }
34
34
 
35
- div:nth-child(6) {
35
+ ion-gallery-item:nth-child(6) {
36
36
  background: #ff9f43;
37
37
  }
38
38
 
39
- div:nth-child(7) {
39
+ ion-gallery-item:nth-child(7) {
40
40
  background: #ff3f34;
41
41
  }
42
42
 
43
- div:nth-child(8) {
43
+ ion-gallery-item:nth-child(8) {
44
44
  background: #2ecc71;
45
45
  }
46
46
 
47
- div:nth-child(9) {
47
+ ion-gallery-item:nth-child(9) {
48
48
  background: #34495e;
49
49
  }
50
50
 
51
- div:nth-child(10) {
51
+ ion-gallery-item:nth-child(10) {
52
52
  background: #1abc9c;
53
53
  }
54
54
 
55
- div:nth-child(11) {
55
+ ion-gallery-item:nth-child(11) {
56
56
  background: #e67e22;
57
57
  }
58
58
 
59
- div:nth-child(12) {
59
+ ion-gallery-item:nth-child(12) {
60
60
  background: #9b59b6;
61
61
  }
62
62
  `;
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Convert a pixels given value into rem
3
+ *
4
+ * @param pixels - Value in pixels to be converted (i.e. px)
5
+ * @param context (optional) - Baseline value
6
+ */
7
+ /**
8
+ * Convert a font size to a dynamic font size.
9
+ * Fonts that participate in Dynamic Type should use
10
+ * dynamic font sizes.
11
+ * @param size - The initial font size including the unit (i.e. px or pt)
12
+ * @param unit (optional) - The unit to convert to. Use this if you want to
13
+ * convert to a unit other than $baselineUnit.
14
+ */
15
+ /**
16
+ * Convert a font size to a dynamic font size but impose
17
+ * a maximum font size.
18
+ * @param size - The initial font size including the unit (i.e. px or pt)
19
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
20
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
21
+ * convert to a unit other than $baselineUnit.
22
+ */
23
+ /**
24
+ * Convert a font size to a dynamic font size but impose
25
+ * a minimum font size.
26
+ * @param size - The initial font size including the unit (i.e. px or pt)
27
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
28
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
29
+ * convert to a unit other than $baselineUnit.
30
+ */
31
+ /**
32
+ * Convert a font size to a dynamic font size but impose
33
+ * maximum and minimum font sizes.
34
+ * @param size - The initial font size including the unit (i.e. px or pt)
35
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
36
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
37
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
38
+ * convert to a unit other than $baselineUnit.
39
+ */
40
+ /**
41
+ * A heuristic that applies CSS to tablet
42
+ * viewports.
43
+ *
44
+ * Usage:
45
+ * @include tablet-viewport() {
46
+ * :host {
47
+ * background-color: green;
48
+ * }
49
+ * }
50
+ */
51
+ /**
52
+ * A heuristic that applies CSS to mobile
53
+ * viewports (i.e. phones, not tablets).
54
+ *
55
+ * Usage:
56
+ * @include mobile-viewport() {
57
+ * :host {
58
+ * background-color: blue;
59
+ * }
60
+ * }
61
+ */
62
+ :host {
63
+ display: block;
64
+ width: 100%;
65
+ }
66
+
67
+ ::slotted(*) {
68
+ margin-left: 0;
69
+ margin-right: 0;
70
+ margin-top: 0;
71
+ margin-bottom: 0;
72
+ width: 100%;
73
+ }
74
+
75
+ ::slotted(img) {
76
+ display: block;
77
+ object-fit: cover;
78
+ object-position: center;
79
+ }
80
+
81
+ :host(.in-gallery-layout-uniform),
82
+ :host(.in-gallery-layout-uniform) ::slotted(*) {
83
+ aspect-ratio: 1/1;
84
+ }
85
+
86
+ :host(.in-gallery-layout-masonry) {
87
+ margin-bottom: var(--internal-gallery-gap, 16px);
88
+ }
@@ -0,0 +1,100 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { Host, h } from "@stencil/core";
5
+ import { printIonWarning } from "../../utils/logging/index";
6
+ import { getIonTheme } from "../../global/ionic-global";
7
+ /**
8
+ * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
9
+ * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
10
+ *
11
+ * @slot - The content placed inside of the gallery item. This is typically an
12
+ * `img`, but can be any element (e.g. a `figure` wrapping an image and caption).
13
+ */
14
+ export class GalleryItem {
15
+ constructor() {
16
+ this.hasWarnedInvalidParent = false;
17
+ this.onSlotChange = () => {
18
+ this.warnInvalidParent();
19
+ };
20
+ }
21
+ componentWillLoad() {
22
+ this.syncGalleryLayout();
23
+ }
24
+ componentDidLoad() {
25
+ this.warnInvalidParent();
26
+ }
27
+ connectedCallback() {
28
+ this.syncGalleryLayout();
29
+ }
30
+ /**
31
+ * Resolve the layout from the parent `ion-gallery`. Called internally on
32
+ * load and connect, and by the gallery when its layout changes.
33
+ * @internal
34
+ */
35
+ async syncGalleryLayout() {
36
+ var _a;
37
+ this.galleryLayout = (_a = this.el.closest('ion-gallery')) === null || _a === void 0 ? void 0 : _a.layout;
38
+ }
39
+ /**
40
+ * Warn when the item is not a descendant of an `ion-gallery`.
41
+ */
42
+ warnInvalidParent() {
43
+ if (this.hasWarnedInvalidParent || this.el.closest('ion-gallery') !== null) {
44
+ return;
45
+ }
46
+ printIonWarning('[ion-gallery-item] - This component should be used as a child of an "ion-gallery" component.', this.el);
47
+ this.hasWarnedInvalidParent = true;
48
+ }
49
+ render() {
50
+ const { galleryLayout } = this;
51
+ const theme = getIonTheme(this);
52
+ return (h(Host, { key: '627880170eb3ee3f9cca8be75f438ca09c1b15c3', class: {
53
+ [theme]: true,
54
+ 'in-gallery-layout-uniform': galleryLayout === 'uniform',
55
+ 'in-gallery-layout-masonry': galleryLayout === 'masonry',
56
+ } }, h("slot", { key: 'df76399e3b75ce6017d70f41f7e5879586042ac8', onSlotchange: this.onSlotChange })));
57
+ }
58
+ static get is() { return "ion-gallery-item"; }
59
+ static get encapsulation() { return "shadow"; }
60
+ static get originalStyleUrls() {
61
+ return {
62
+ "$": ["gallery-item.scss"]
63
+ };
64
+ }
65
+ static get styleUrls() {
66
+ return {
67
+ "$": ["gallery-item.css"]
68
+ };
69
+ }
70
+ static get states() {
71
+ return {
72
+ "galleryLayout": {}
73
+ };
74
+ }
75
+ static get methods() {
76
+ return {
77
+ "syncGalleryLayout": {
78
+ "complexType": {
79
+ "signature": "() => Promise<void>",
80
+ "parameters": [],
81
+ "references": {
82
+ "Promise": {
83
+ "location": "global",
84
+ "id": "global::Promise"
85
+ }
86
+ },
87
+ "return": "Promise<void>"
88
+ },
89
+ "docs": {
90
+ "text": "Resolve the layout from the parent `ion-gallery`. Called internally on\nload and connect, and by the gallery when its layout changes.",
91
+ "tags": [{
92
+ "name": "internal",
93
+ "text": undefined
94
+ }]
95
+ }
96
+ }
97
+ };
98
+ }
99
+ static get elementRef() { return "el"; }
100
+ }
@@ -16,10 +16,10 @@ export class Grid {
16
16
  }
17
17
  render() {
18
18
  const theme = getIonTheme(this);
19
- return (h(Host, { key: '43b4e05ef076160d901c70dc37e177f19b524349', class: {
19
+ return (h(Host, { key: 'e3320fc2fc5391d26898cc119505cd3be30dd48b', class: {
20
20
  [theme]: true,
21
21
  'grid-fixed': this.fixed,
22
- } }, h("slot", { key: 'f3805936034708e6783223ded72c0ecfd40e5fb0' })));
22
+ } }, h("slot", { key: '2000e6b336c294aadf4585269c301d734d2fe478' })));
23
23
  }
24
24
  static get is() { return "ion-grid"; }
25
25
  static get encapsulation() { return "shadow"; }
@@ -156,7 +156,7 @@ export class Header {
156
156
  const isCondensed = collapse === 'condense';
157
157
  // banner role must be at top level, so remove role if inside a menu
158
158
  const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, theme);
159
- return (h(Host, Object.assign({ key: 'b43e5f542bdcec5e94c299556183cf6d9d673438', role: roleType, class: {
159
+ return (h(Host, Object.assign({ key: '3395dedfd5165ba6e9f3ad1a25f0bb5b3678704a', role: roleType, class: {
160
160
  [theme]: true,
161
161
  // Used internally for styling
162
162
  [`header-${theme}`]: true,
@@ -164,7 +164,7 @@ export class Header {
164
164
  [`header-collapse-${collapse}`]: true,
165
165
  [`header-translucent-${theme}`]: this.translucent,
166
166
  ['header-divider']: divider,
167
- } }, inheritedAttributes), theme !== 'md' && translucent && h("div", { key: 'fd9938f02edd38e1afc83025373ec0aec5633711', class: "header-background" }), h("slot", { key: '900aaa7da5d6f08e6f94b128fa065348d595159e' })));
167
+ } }, inheritedAttributes), theme !== 'md' && translucent && h("div", { key: 'cafeb88b6e73d64b264514ea46590fd3477b3052', class: "header-background" }), h("slot", { key: 'ad681aaf866d7e7a5e5e731c0b5d6f5cc9fe94d2' })));
168
168
  }
169
169
  static get is() { return "ion-header"; }
170
170
  static get originalStyleUrls() {
@@ -80,9 +80,9 @@ export class Img {
80
80
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
81
81
  const { draggable } = inheritedAttributes;
82
82
  const theme = getIonTheme(this);
83
- return (h(Host, { key: '91de170493b31d6260e975b440beceb6906b6d5a', class: {
83
+ return (h(Host, { key: 'ba84621055567b2a35387709d9d89b97ad853274', class: {
84
84
  [theme]: true,
85
- } }, h("img", { key: 'ac1f41afbece34a3e38e656733f3e55cce385b4c', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
85
+ } }, h("img", { key: '9d6118bbf69e2cccbb0603802c03b9a0d101e2c3', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
86
86
  }
87
87
  static get is() { return "ion-img"; }
88
88
  static get encapsulation() { return "shadow"; }
@@ -264,7 +264,7 @@ export class InfiniteScroll {
264
264
  render() {
265
265
  const theme = getIonTheme(this);
266
266
  const disabled = this.disabled;
267
- return (h(Host, { key: '02beca21d668e4e605532ad5ca5a67a08c71eebb', class: {
267
+ return (h(Host, { key: 'e3a3cde079dfd6f07e565eb462765df757cbb128', class: {
268
268
  [theme]: true,
269
269
  'infinite-scroll-loading': this.isLoading,
270
270
  'infinite-scroll-enabled': !disabled,
@@ -29,11 +29,11 @@ export class InfiniteScrollContent {
29
29
  }
30
30
  render() {
31
31
  const theme = getIonTheme(this);
32
- return (h(Host, { key: 'b51954f829eeafd5ec304b3e66e330776485ffc8', class: {
32
+ return (h(Host, { key: '263a27297159ced042f7552a1e14b8c6aba62fa8', class: {
33
33
  [theme]: true,
34
34
  // Used internally for styling
35
35
  [`infinite-scroll-content-${theme}`]: true,
36
- } }, h("div", { key: '047da7f15fe38deed592dd66d1c97e12da4545bb', class: "infinite-loading" }, this.loadingSpinner && (h("div", { key: '1c05820f091052b8ee9e9ca20054495a676c21aa', class: "infinite-loading-spinner" }, h("ion-spinner", { key: 'ff801e3486f3c1a4605d2a2de9b47bd7bd536698', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
36
+ } }, h("div", { key: 'ee38d3c52df9dc5de186406b3087f20917a17252', class: "infinite-loading" }, this.loadingSpinner && (h("div", { key: 'e2348727f79a26f52f42641d4334a0ba9d4aa03e', class: "infinite-loading-spinner" }, h("ion-spinner", { key: '41be6f2747f3af5f46c8738e2ef56083ecd95e99', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
37
37
  }
38
38
  static get is() { return "ion-infinite-scroll-content"; }
39
39
  static get originalStyleUrls() {
@@ -617,7 +617,7 @@ export class Input {
617
617
  * TODO(FW-5592): Remove hasStartEndSlots condition
618
618
  */
619
619
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
620
- return (h(Host, { key: 'beeeca9939e7e416783425f67d3c9e2be6bbae99', class: createColorClasses(this.color, {
620
+ return (h(Host, { key: '3da29d837b5abe22de740ac96c8142422fce537a', class: createColorClasses(this.color, {
621
621
  [theme]: true,
622
622
  'has-value': hasValue,
623
623
  'has-focus': hasFocus,
@@ -630,7 +630,7 @@ export class Input {
630
630
  'in-item-color': hostContext('ion-item.ion-color', this.el),
631
631
  'input-disabled': disabled,
632
632
  'input-readonly': readonly,
633
- }) }, h("label", { key: 'f227df52a6ad60344f16261a82c0d0566bb8cd5b', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: 'ae6da554ce21f805361a7704139b776a9344dcb2', class: "native-wrapper", onClick: this.onLabelClick },
633
+ }) }, h("label", { key: '142a8230382a05938887e9c0790832218ac37697', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: '953f247ea2f40545e01e0346549d9b7aa344b720', class: "native-wrapper", onClick: this.onLabelClick },
634
634
  /**
635
635
  * For the ionic theme, we render the outline container here
636
636
  * instead of higher up, so it can be positioned relative to
@@ -640,14 +640,14 @@ export class Input {
640
640
  * <label> element, ensuring that clicking the label text
641
641
  * focuses the input.
642
642
  */
643
- theme === 'ionic' && h("div", { key: '83aa5e7ad97b0c964e31966c1d2b8771d1ecfc53', class: "input-outline" }), h("slot", { key: '1931003f2b0d19508acaaffab58fee644d1f6158', name: "start" }), h("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 && (h("button", { key: 'd350f26cf6927ee089373ea8903db2479a0a404c', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
643
+ theme === 'ionic' && h("div", { key: 'fd09b37c6a798900c5074e7cbe2e790ea050c29d', class: "input-outline" }), h("slot", { key: '3eef4c4748104d8722f3254a04ff88e2b70c560e', name: "start" }), h("input", Object.assign({ key: '012a3fa52e19422d7fbc227845e9771c7d8fbe4a', 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 && (h("button", { key: 'b115494d9611aea57a976d3102026f3d9b430bfb', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
644
644
  /**
645
645
  * This prevents mobile browsers from
646
646
  * blurring the input when the clear
647
647
  * button is activated.
648
648
  */
649
649
  ev.preventDefault();
650
- }, onClick: this.clearTextInput }, h("ion-icon", { key: '972a2d94dcf599e63aac1d73e34873a9c3d0bf94', "aria-hidden": "true", icon: inputClearIcon }))), h("slot", { key: 'fac4dcaabb02f647e46276e92e3f341557170aec', name: "end" })), shouldRenderHighlight && h("div", { key: 'a10e519d8d1f0dcd81ffc43b8e4086797476f753', class: "input-highlight" })), this.renderBottomContent()));
650
+ }, onClick: this.clearTextInput }, h("ion-icon", { key: 'a259afa47a9914b2e0656364bed40644fa2c87c4', "aria-hidden": "true", icon: inputClearIcon }))), h("slot", { key: 'beec86eb500f6b335149c8734afc7c3945a10219', name: "end" })), shouldRenderHighlight && h("div", { key: '77a25d118934f369e09edbc2ffa6f90e3e760338', class: "input-highlight" })), this.renderBottomContent()));
651
651
  }
652
652
  static get is() { return "ion-input"; }
653
653
  static get encapsulation() { return "scoped"; }
@@ -680,7 +680,7 @@ export class InputOTP {
680
680
  const tabbableIndex = this.getTabbableIndex();
681
681
  const pattern = this.getPattern();
682
682
  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()) !== '';
683
- return (h(Host, { key: '7a5c5dbb7e1880bd94d4b00e579af941366b1cb2', class: createColorClasses(color, {
683
+ return (h(Host, { key: 'f39e98cd24cbf50f7db4e891dda9499f6def7986', class: createColorClasses(color, {
684
684
  [mode]: true,
685
685
  'has-focus': hasFocus,
686
686
  [`input-otp-size-${size}`]: true,
@@ -688,10 +688,10 @@ export class InputOTP {
688
688
  [`input-otp-fill-${fill}`]: true,
689
689
  'input-otp-disabled': disabled,
690
690
  'input-otp-readonly': readonly,
691
- }) }, h("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) => (h(Fragment, null, h("div", { class: "native-wrapper", part: "container" }, h("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) && h("div", { class: "input-otp-separator", part: "separator" }))))), h("div", { key: '7ee9d8dfd2e52875f1bfe3e3dea0494c18c12f4a', class: {
691
+ }) }, h("div", Object.assign({ key: '624adcd552947708162003353b331cd92df062ef', role: "group", "aria-label": "One-time password input", class: "input-otp-group", part: "group" }, inheritedAttributes), Array.from({ length }).map((_, index) => (h(Fragment, null, h("div", { class: "native-wrapper", part: "container" }, h("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) && h("div", { class: "input-otp-separator", part: "separator" }))))), h("div", { key: 'c518d83ab0236a3ebbe631582ce6f1c2edfbcd29', class: {
692
692
  'input-otp-description': true,
693
693
  'input-otp-description-hidden': !hasDescription,
694
- }, part: "description" }, h("slot", { key: '163c374e7ae5dbdb1dc12483161e5aca919a50d5' }))));
694
+ }, part: "description" }, h("slot", { key: '15c7c8549c1788748e1ae31bd227a7f918cb5eca' }))));
695
695
  }
696
696
  static get is() { return "ion-input-otp"; }
697
697
  static get encapsulation() { return "shadow"; }
@@ -94,16 +94,16 @@ export class InputPasswordToggle {
94
94
  const { color, inputPasswordHideIcon, inputPasswordShowIcon, type } = this;
95
95
  const mode = getIonMode(this);
96
96
  const isPasswordVisible = type === 'text';
97
- return (h(Host, { key: 'c7f0805958b284005806a0cb3ed0b5cba42cecd1', class: createColorClasses(color, {
97
+ return (h(Host, { key: 'f11e3bf4d3255e003aec504e6dd3ee1e0caaf767', class: createColorClasses(color, {
98
98
  [mode]: true,
99
- }) }, h("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) => {
99
+ }) }, h("ion-button", { key: '5bba43f7755857fd9347612bb906c389b60386b4', mode: mode, color: color, fill: "clear", shape: "round", "aria-label": isPasswordVisible ? 'Hide password' : 'Show password', "aria-pressed": isPasswordVisible ? 'true' : 'false', type: "button", onPointerDown: (ev) => {
100
100
  /**
101
101
  * This prevents mobile browsers from
102
102
  * blurring the input when the password toggle
103
103
  * button is activated.
104
104
  */
105
105
  ev.preventDefault();
106
- }, onClick: this.togglePasswordVisibility }, h("ion-icon", { key: 'be752db7186a7cd6fc033c7002fcb1683d93c162', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
106
+ }, onClick: this.togglePasswordVisibility }, h("ion-icon", { key: 'c0eb0e4e2f3e9553bfd519ff655064c9f62af406', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
107
107
  }
108
108
  static get is() { return "ion-input-password-toggle"; }
109
109
  static get encapsulation() { return "shadow"; }