@ionic/core 8.8.7-dev.11779400352.127ba526 → 8.8.7-dev.11779921691.1777274a

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 (897) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-divider.js +1 -1
  27. package/components/ion-fab-button.js +1 -1
  28. package/components/ion-fab-list.js +1 -1
  29. package/components/ion-fab.js +1 -1
  30. package/components/ion-footer.js +1 -1
  31. package/components/ion-grid.js +1 -1
  32. package/components/ion-header.js +1 -1
  33. package/components/ion-icon.js +1 -1
  34. package/components/ion-img.js +1 -1
  35. package/components/ion-infinite-scroll-content.js +1 -1
  36. package/components/ion-infinite-scroll.js +1 -1
  37. package/components/ion-input-otp.js +1 -1
  38. package/components/ion-input-password-toggle.js +1 -1
  39. package/components/ion-input.js +1 -1
  40. package/components/ion-item-divider.js +1 -1
  41. package/components/ion-item-group.js +1 -1
  42. package/components/ion-item-option.js +1 -1
  43. package/components/ion-item-options.js +1 -1
  44. package/components/ion-item-sliding.js +1 -1
  45. package/components/ion-item.js +1 -1
  46. package/components/ion-label.js +1 -1
  47. package/components/ion-list-header.js +1 -1
  48. package/components/ion-list.js +1 -1
  49. package/components/ion-loading.js +1 -1
  50. package/components/ion-menu-button.js +1 -1
  51. package/components/ion-menu-toggle.js +1 -1
  52. package/components/ion-menu.js +1 -1
  53. package/components/ion-modal.js +1 -1
  54. package/components/ion-nav-link.js +1 -1
  55. package/components/ion-nav.js +1 -1
  56. package/components/ion-note.js +1 -1
  57. package/components/ion-picker-column-option.js +1 -1
  58. package/components/ion-picker-column.js +1 -1
  59. package/components/ion-picker-legacy-column.js +1 -1
  60. package/components/ion-picker-legacy.js +1 -1
  61. package/components/ion-picker.js +1 -1
  62. package/components/ion-popover.js +1 -1
  63. package/components/ion-progress-bar.js +1 -1
  64. package/components/ion-radio-group.js +1 -1
  65. package/components/ion-radio.js +1 -1
  66. package/components/ion-range.js +1 -1
  67. package/components/ion-refresher-content.js +1 -1
  68. package/components/ion-refresher.js +1 -1
  69. package/components/ion-reorder-group.js +1 -1
  70. package/components/ion-reorder.js +1 -1
  71. package/components/ion-ripple-effect.js +1 -1
  72. package/components/ion-route-redirect.js +1 -1
  73. package/components/ion-route.js +1 -1
  74. package/components/ion-router-link.js +1 -1
  75. package/components/ion-router-outlet.js +1 -1
  76. package/components/ion-router.js +1 -1
  77. package/components/ion-row.js +1 -1
  78. package/components/ion-searchbar.js +1 -1
  79. package/components/ion-segment-button.js +1 -1
  80. package/components/ion-segment-content.js +1 -1
  81. package/components/ion-segment-view.js +1 -1
  82. package/components/ion-segment.js +1 -1
  83. package/components/ion-select-modal.js +1 -1
  84. package/components/ion-select-option.js +1 -1
  85. package/components/ion-select-popover.js +1 -1
  86. package/components/ion-select.js +1 -1
  87. package/components/ion-skeleton-text.js +1 -1
  88. package/components/ion-spinner.js +1 -1
  89. package/components/ion-split-pane.js +1 -1
  90. package/components/ion-tab-bar.js +1 -1
  91. package/components/ion-tab-button.js +1 -1
  92. package/components/ion-tab.js +1 -1
  93. package/components/ion-tabs.js +1 -1
  94. package/components/ion-text.js +1 -1
  95. package/components/ion-textarea.js +1 -1
  96. package/components/ion-thumbnail.js +1 -1
  97. package/components/ion-title.js +1 -1
  98. package/components/ion-toast.js +1 -1
  99. package/components/ion-toggle.js +1 -1
  100. package/components/ion-toolbar.js +1 -1
  101. package/components/p-0sJvNkUu.js +4 -0
  102. package/components/{p-BcbmT6b3.js → p-7nmSk-Eb.js} +1 -1
  103. package/components/p-B1O3xdmF.js +4 -0
  104. package/components/p-BBB8g5Ql.js +4 -0
  105. package/components/p-BF7rwwG7.js +4 -0
  106. package/components/p-BHffbls9.js +4 -0
  107. package/components/p-BKBdJW0R.js +4 -0
  108. package/components/p-BKGLpdvY.js +4 -0
  109. package/components/p-BRrh2GWk.js +4 -0
  110. package/components/{p-BFCM_1oE.js → p-BTWFHAhB.js} +1 -1
  111. package/components/p-BVOTx9Tr.js +4 -0
  112. package/components/p-BVbPiSCE.js +4 -0
  113. package/components/p-BVgmZpV7.js +4 -0
  114. package/components/{p-J7srYGKf.js → p-B_4LVR66.js} +1 -1
  115. package/components/p-BbwW7nXw.js +4 -0
  116. package/components/p-BePFSJjb.js +4 -0
  117. package/components/{p-zWP0sUV_.js → p-BilWM2xi.js} +1 -1
  118. package/components/p-Bnkcvm0_.js +4 -0
  119. package/components/p-Bp4m7lZT.js +4 -0
  120. package/components/p-BuQDh8MN.js +4 -0
  121. package/components/p-C4Uuc-Js.js +4 -0
  122. package/components/p-CF0UKsA-.js +4 -0
  123. package/components/p-CMETcSJz.js +4 -0
  124. package/components/p-CTDfzuym.js +4 -0
  125. package/components/p-CZwQlWO7.js +4 -0
  126. package/components/p-CkS5LcG3.js +4 -0
  127. package/components/p-CrC3J6IY.js +4 -0
  128. package/components/p-D9SzdDbV.js +4 -0
  129. package/components/p-DCoLfY48.js +4 -0
  130. package/components/p-DGHsHldT.js +4 -0
  131. package/components/p-DK2cppki.js +4 -0
  132. package/components/p-DMwGijtW.js +4 -0
  133. package/components/p-DPLIhs_Y.js +4 -0
  134. package/components/p-DRj_omR8.js +4 -0
  135. package/components/p-DWBdx_rf.js +4 -0
  136. package/{dist/ionic/p-CbkICFBN.js → components/p-DXBx6hf_.js} +1 -1
  137. package/components/p-DZwp0os_.js +4 -0
  138. package/components/{p-BErKjY03.js → p-DbQt4Kex.js} +1 -1
  139. package/components/p-DbrEqORq.js +4 -0
  140. package/{dist/ionic/p-C8IHbcuP.js → components/p-Dh41Mgrr.js} +1 -1
  141. package/components/p-Dh8YROlw.js +4 -0
  142. package/components/{p-lIOqnNXn.js → p-Dmd-3R4x.js} +1 -1
  143. package/components/p-DqL8Jl6C.js +4 -0
  144. package/components/p-DuOk1CH-.js +4 -0
  145. package/components/p-Op_wuLsj.js +4 -0
  146. package/components/p-SikZM1Bp.js +4 -0
  147. package/components/p-f1voQRQ1.js +4 -0
  148. package/components/p-fkeHL2Sd.js +4 -0
  149. package/components/p-gKV0T98m.js +4 -0
  150. package/components/{p-C-Vjb84N.js → p-jgONJj5a.js} +1 -1
  151. package/components/p-k6-su0sW.js +4 -0
  152. package/components/p-l7FroJh2.js +4 -0
  153. package/components/p-nFFDLHOE.js +4 -0
  154. package/components/p-pdE-O9G9.js +4 -0
  155. package/{dist/ionic/p-CWJdc8f_.js → components/p-u-SCu4et.js} +1 -1
  156. package/css/core.css +1 -1
  157. package/css/core.css.map +1 -1
  158. package/css/display.css.map +1 -1
  159. package/css/flex-utils.css.map +1 -1
  160. package/css/float-elements.css.map +1 -1
  161. package/css/global.bundle.css +1 -1
  162. package/css/global.bundle.css.map +1 -1
  163. package/css/ionic/bundle.ionic.css +1 -1
  164. package/css/ionic/bundle.ionic.css.map +1 -1
  165. package/css/ionic/core.ionic.css +1 -1
  166. package/css/ionic/core.ionic.css.map +1 -1
  167. package/css/ionic/global.bundle.ionic.css +1 -1
  168. package/css/ionic/global.bundle.ionic.css.map +1 -1
  169. package/css/ionic/link.ionic.css.map +1 -1
  170. package/css/ionic/structure.ionic.css.map +1 -1
  171. package/css/ionic/typography.ionic.css +1 -1
  172. package/css/ionic/typography.ionic.css.map +1 -1
  173. package/css/ionic/utils.bundle.ionic.css.map +1 -1
  174. package/css/ionic.bundle.css +1 -1
  175. package/css/ionic.bundle.css.map +1 -1
  176. package/css/padding.css.map +1 -1
  177. package/css/palettes/dark.always.css +1 -1
  178. package/css/palettes/dark.always.css.map +1 -1
  179. package/css/palettes/dark.class.css +1 -1
  180. package/css/palettes/dark.class.css.map +1 -1
  181. package/css/palettes/dark.system.css +1 -1
  182. package/css/palettes/dark.system.css.map +1 -1
  183. package/css/palettes/high-contrast-dark.always.css +1 -1
  184. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  185. package/css/palettes/high-contrast-dark.class.css +1 -1
  186. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  187. package/css/palettes/high-contrast-dark.system.css +1 -1
  188. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  189. package/css/palettes/high-contrast.always.css +1 -1
  190. package/css/palettes/high-contrast.always.css.map +1 -1
  191. package/css/palettes/high-contrast.class.css +1 -1
  192. package/css/palettes/high-contrast.class.css.map +1 -1
  193. package/css/palettes/high-contrast.system.css +1 -1
  194. package/css/palettes/high-contrast.system.css.map +1 -1
  195. package/css/structure.css.map +1 -1
  196. package/css/text-alignment.css.map +1 -1
  197. package/css/text-transformation.css.map +1 -1
  198. package/css/typography.css +1 -1
  199. package/css/typography.css.map +1 -1
  200. package/css/utils.bundle.css.map +1 -1
  201. package/dist/cjs/{animation-DknMeJ3x.js → animation-CoqRs93a.js} +3 -3
  202. package/dist/cjs/{app-globals-DtAeky3x.js → app-globals-CzPyigGz.js} +1 -1
  203. package/dist/cjs/badge-position-DFPHXWP9.js +176 -0
  204. package/dist/cjs/{button-active-JoIWyYri.js → button-active-lwEZiey1.js} +4 -4
  205. package/dist/cjs/{capacitor-BnRBm_ys.js → capacitor-F7SUc7Ly.js} +1 -1
  206. package/dist/cjs/{data-DuOuKG7I.js → data-BsQBKyvn.js} +3 -3
  207. package/dist/cjs/{framework-delegate-Dx9FrqAC.js → framework-delegate-C1LqXDzY.js} +4 -5
  208. package/dist/cjs/{haptic-D3Ay9mmg.js → haptic-CBZc4WH_.js} +1 -1
  209. package/dist/cjs/{index-CzcLEdQ5.js → index-BDthk8R7.js} +1885 -0
  210. package/dist/cjs/{index-BJlwOs11.js → index-BbhXd9Zs.js} +2 -2
  211. package/dist/cjs/{index-DMJjUhXH.js → index-Cbme57mm.js} +3 -5
  212. package/dist/cjs/{index-BJrpF9T3.js → index-DhXmkpe3.js} +3 -4
  213. package/dist/cjs/{index-Cer2Qy4I.js → index-HkS255C9.js} +6 -7
  214. package/dist/cjs/{index-D_mPAIqF.js → index-cV9SaEZV.js} +11 -12
  215. package/dist/cjs/index.cjs.js +15 -18
  216. package/dist/cjs/{input-shims-Dn33gFln.js → input-shims-eCRI_jn9.js} +15 -17
  217. package/dist/cjs/{input.utils-DnVnhWEF.js → input.utils-CvLAucXh.js} +4 -5
  218. package/dist/cjs/ion-accordion_2.cjs.entry.js +31 -34
  219. package/dist/cjs/ion-action-sheet.cjs.entry.js +34 -37
  220. package/dist/cjs/ion-alert.cjs.entry.js +44 -47
  221. package/dist/cjs/ion-app_8.cjs.entry.js +115 -116
  222. package/dist/cjs/ion-avatar_3.cjs.entry.js +66 -86
  223. package/dist/cjs/ion-back-button.cjs.entry.js +19 -22
  224. package/dist/cjs/ion-backdrop.cjs.entry.js +5 -5
  225. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +36 -39
  226. package/dist/cjs/ion-button_2.cjs.entry.js +54 -34
  227. package/dist/cjs/ion-card_5.cjs.entry.js +36 -39
  228. package/dist/cjs/ion-checkbox.cjs.entry.js +23 -26
  229. package/dist/cjs/ion-chip.cjs.entry.js +51 -51
  230. package/dist/cjs/ion-col_3.cjs.entry.js +14 -16
  231. package/dist/cjs/ion-datetime-button.cjs.entry.js +19 -22
  232. package/dist/cjs/ion-datetime_3.cjs.entry.js +123 -126
  233. package/dist/cjs/ion-divider.cjs.entry.js +5 -5
  234. package/dist/cjs/ion-fab_3.cjs.entry.js +27 -30
  235. package/dist/cjs/ion-img.cjs.entry.js +10 -12
  236. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +25 -27
  237. package/dist/cjs/ion-input-otp.cjs.entry.js +19 -22
  238. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +16 -17
  239. package/dist/cjs/ion-input.cjs.entry.js +42 -45
  240. package/dist/cjs/ion-item-option_3.cjs.entry.js +66 -319
  241. package/dist/cjs/ion-item_8.cjs.entry.js +71 -83
  242. package/dist/cjs/ion-loading.cjs.entry.js +27 -30
  243. package/dist/cjs/ion-menu_3.cjs.entry.js +55 -58
  244. package/dist/cjs/ion-modal.cjs.entry.js +71 -74
  245. package/dist/cjs/ion-nav_2.cjs.entry.js +41 -43
  246. package/dist/cjs/ion-picker-column-option.cjs.entry.js +9 -12
  247. package/dist/cjs/ion-picker-column.cjs.entry.js +14 -17
  248. package/dist/cjs/ion-picker.cjs.entry.js +9 -11
  249. package/dist/cjs/ion-popover.cjs.entry.js +36 -39
  250. package/dist/cjs/ion-progress-bar.cjs.entry.js +28 -41
  251. package/dist/cjs/ion-radio_2.cjs.entry.js +31 -34
  252. package/dist/cjs/ion-range.cjs.entry.js +50 -53
  253. package/dist/cjs/ion-refresher_2.cjs.entry.js +65 -67
  254. package/dist/cjs/ion-reorder_2.cjs.entry.js +23 -25
  255. package/dist/cjs/ion-ripple-effect.cjs.entry.js +7 -7
  256. package/dist/cjs/ion-route_4.cjs.entry.js +36 -39
  257. package/dist/cjs/ion-searchbar.cjs.entry.js +38 -41
  258. package/dist/cjs/ion-segment-content.cjs.entry.js +3 -3
  259. package/dist/cjs/ion-segment-view.cjs.entry.js +6 -6
  260. package/dist/cjs/ion-segment_2.cjs.entry.js +35 -38
  261. package/dist/cjs/ion-select-modal.cjs.entry.js +26 -29
  262. package/dist/cjs/ion-select_3.cjs.entry.js +74 -77
  263. package/dist/cjs/ion-spinner.cjs.entry.js +26 -41
  264. package/dist/cjs/ion-split-pane.cjs.entry.js +12 -13
  265. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +90 -34
  266. package/dist/cjs/ion-tab_2.cjs.entry.js +27 -27
  267. package/dist/cjs/ion-text.cjs.entry.js +7 -8
  268. package/dist/cjs/ion-textarea.cjs.entry.js +35 -38
  269. package/dist/cjs/ion-toast.cjs.entry.js +41 -44
  270. package/dist/cjs/ion-toggle.cjs.entry.js +33 -36
  271. package/dist/cjs/{ionic-global-CSEbHD_F.js → ionic-global-DMWqcBn0.js} +240 -108
  272. package/dist/cjs/ionic.cjs.js +7 -7
  273. package/dist/cjs/{ios.transition-UCjoxA3D.js → ios.transition-DcJ6Bw2k.js} +4 -6
  274. package/dist/cjs/{keyboard-Bhav6x-R.js → keyboard-BCj7bSvQ.js} +4 -4
  275. package/dist/cjs/{keyboard-Dsczf-iT.js → keyboard-Jy7okGc5.js} +1 -1
  276. package/dist/cjs/{keyboard-controller-tqGDP9SU.js → keyboard-controller-CPJ4vSr0.js} +4 -4
  277. package/dist/cjs/loader.cjs.js +5 -5
  278. package/dist/cjs/{md.transition-CNwlchQn.js → md.transition-DAjf1hlJ.js} +4 -6
  279. package/dist/cjs/{notch-controller-CgtkBzy0.js → notch-controller-gGuWI1C7.js} +3 -3
  280. package/dist/cjs/{overlays-Hci_7vw_.js → overlays-H4z8xPi9.js} +18 -19
  281. package/dist/cjs/{select-option-render-C7klBX2H.js → select-option-render-CZtiyFs7.js} +8 -8
  282. package/dist/cjs/{status-tap-CTY2dMsZ.js → status-tap-CPZvSRKr.js} +7 -9
  283. package/dist/cjs/{swipe-back-jJFi5KCB.js → swipe-back-CMubrxt-.js} +2 -4
  284. package/dist/collection/collection-manifest.json +0 -7
  285. package/dist/collection/components/action-sheet/action-sheet.ionic.css +2 -4
  286. package/dist/collection/components/action-sheet/action-sheet.ios.css +9 -10
  287. package/dist/collection/components/action-sheet/action-sheet.md.css +2 -3
  288. package/dist/collection/components/alert/alert.ionic.css +20 -22
  289. package/dist/collection/components/alert/alert.ios.css +13 -15
  290. package/dist/collection/components/alert/alert.md.css +19 -20
  291. package/dist/collection/components/avatar/avatar.ionic.css +0 -94
  292. package/dist/collection/components/avatar/avatar.js +22 -7
  293. package/dist/collection/components/avatar/avatar.md.css +0 -16
  294. package/dist/collection/components/back-button/back-button.ios.css +1 -1
  295. package/dist/collection/components/back-button/back-button.js +2 -2
  296. package/dist/collection/components/badge/badge.css +256 -0
  297. package/dist/collection/components/badge/badge.interfaces.js +7 -0
  298. package/dist/collection/components/badge/badge.js +72 -76
  299. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +9 -9
  300. package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
  301. package/dist/collection/components/breadcrumb/breadcrumb.md.css +9 -9
  302. package/dist/collection/components/button/button.ionic.css +18 -68
  303. package/dist/collection/components/button/button.ios.css +17 -32
  304. package/dist/collection/components/button/button.js +27 -5
  305. package/dist/collection/components/button/button.md.css +16 -31
  306. package/dist/collection/components/card/card.ios.css +1 -1
  307. package/dist/collection/components/card/card.js +2 -2
  308. package/dist/collection/components/card/card.md.css +1 -1
  309. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +1 -1
  310. package/dist/collection/components/card-subtitle/card-subtitle.md.css +1 -1
  311. package/dist/collection/components/card-title/card-title.md.css +1 -1
  312. package/dist/collection/components/checkbox/checkbox.ios.css +5 -5
  313. package/dist/collection/components/checkbox/checkbox.md.css +5 -5
  314. package/dist/collection/components/chip/chip.css +406 -0
  315. package/dist/collection/components/chip/chip.js +111 -57
  316. package/dist/collection/components/col/col.js +2 -3
  317. package/dist/collection/components/content/content.css +66 -126
  318. package/dist/collection/components/content/content.js +25 -24
  319. package/dist/collection/components/datetime/datetime.ios.css +8 -8
  320. package/dist/collection/components/datetime/datetime.md.css +7 -7
  321. package/dist/collection/components/datetime-button/datetime-button.ios.css +2 -2
  322. package/dist/collection/components/datetime-button/datetime-button.md.css +1 -1
  323. package/dist/collection/components/fab-button/fab-button.ios.css +17 -17
  324. package/dist/collection/components/fab-button/fab-button.js +2 -2
  325. package/dist/collection/components/fab-button/fab-button.md.css +6 -6
  326. package/dist/collection/components/grid/grid.js +2 -2
  327. package/dist/collection/components/header/header.js +2 -2
  328. package/dist/collection/components/img/img.js +2 -2
  329. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  330. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +3 -3
  331. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  332. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +3 -3
  333. package/dist/collection/components/input/input.ios.css +7 -7
  334. package/dist/collection/components/input/input.js +6 -6
  335. package/dist/collection/components/input/input.md.css +15 -15
  336. package/dist/collection/components/input-otp/input-otp.ionic.css +2 -2
  337. package/dist/collection/components/input-otp/input-otp.ios.css +16 -16
  338. package/dist/collection/components/input-otp/input-otp.js +3 -3
  339. package/dist/collection/components/input-otp/input-otp.md.css +16 -16
  340. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  341. package/dist/collection/components/item/item.ios.css +1 -1
  342. package/dist/collection/components/item/item.js +2 -2
  343. package/dist/collection/components/item/item.md.css +2 -2
  344. package/dist/collection/components/item-divider/item-divider.css +351 -0
  345. package/dist/collection/components/item-divider/item-divider.js +6 -13
  346. package/dist/collection/components/item-group/item-group.js +1 -1
  347. package/dist/collection/components/item-option/item-option.ionic.css +8 -8
  348. package/dist/collection/components/item-option/item-option.ios.css +3 -3
  349. package/dist/collection/components/item-option/item-option.js +2 -2
  350. package/dist/collection/components/item-option/item-option.md.css +2 -2
  351. package/dist/collection/components/item-options/item-options.ios.css +1 -1
  352. package/dist/collection/components/item-options/item-options.js +1 -1
  353. package/dist/collection/components/item-options/item-options.md.css +1 -1
  354. package/dist/collection/components/item-sliding/{item-sliding.native.css → item-sliding.css} +9 -78
  355. package/dist/collection/components/item-sliding/item-sliding.js +38 -284
  356. package/dist/collection/components/label/label.ios.css +1 -1
  357. package/dist/collection/components/label/label.js +2 -2
  358. package/dist/collection/components/label/label.md.css +2 -2
  359. package/dist/collection/components/list/list.js +1 -1
  360. package/dist/collection/components/list-header/list-header.ios.css +2 -2
  361. package/dist/collection/components/list-header/list-header.js +2 -2
  362. package/dist/collection/components/list-header/list-header.md.css +1 -1
  363. package/dist/collection/components/loading/loading.ios.css +2 -2
  364. package/dist/collection/components/loading/loading.js +2 -2
  365. package/dist/collection/components/loading/loading.md.css +3 -3
  366. package/dist/collection/components/menu/menu.js +2 -2
  367. package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
  368. package/dist/collection/components/menu-button/menu-button.js +2 -2
  369. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  370. package/dist/collection/components/modal/modal.ios.css +1 -1
  371. package/dist/collection/components/modal/modal.js +4 -4
  372. package/dist/collection/components/modal/modal.md.css +1 -1
  373. package/dist/collection/components/nav/nav.js +3 -3
  374. package/dist/collection/components/nav-link/nav-link.js +1 -1
  375. package/dist/collection/components/note/note.ios.css +1 -1
  376. package/dist/collection/components/note/note.js +2 -2
  377. package/dist/collection/components/note/note.md.css +1 -1
  378. package/dist/collection/components/picker/picker.ios.css +1 -1
  379. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  380. package/dist/collection/components/picker-legacy/picker.ios.css +2 -2
  381. package/dist/collection/components/picker-legacy/picker.js +2 -2
  382. package/dist/collection/components/picker-legacy/picker.md.css +4 -4
  383. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  384. package/dist/collection/components/picker-legacy-column/picker-column.md.css +1 -1
  385. package/dist/collection/components/popover/popover.ios.css +1 -1
  386. package/dist/collection/components/popover/popover.js +2 -2
  387. package/dist/collection/components/progress-bar/progress-bar.css +281 -0
  388. package/dist/collection/components/progress-bar/progress-bar.interfaces.js +4 -0
  389. package/dist/collection/components/progress-bar/progress-bar.js +30 -30
  390. package/dist/collection/components/radio/radio.ios.css +2 -2
  391. package/dist/collection/components/radio/radio.js +3 -3
  392. package/dist/collection/components/radio/radio.md.css +2 -2
  393. package/dist/collection/components/radio-group/radio-group.ios.css +2 -2
  394. package/dist/collection/components/radio-group/radio-group.js +2 -2
  395. package/dist/collection/components/radio-group/radio-group.md.css +2 -2
  396. package/dist/collection/components/range/range.ionic.css +1 -1
  397. package/dist/collection/components/range/range.ios.css +3 -3
  398. package/dist/collection/components/range/range.js +3 -3
  399. package/dist/collection/components/range/range.md.css +6 -6
  400. package/dist/collection/components/refresher/refresher.ios.css +1 -1
  401. package/dist/collection/components/refresher/refresher.js +3 -3
  402. package/dist/collection/components/refresher/refresher.md.css +4 -4
  403. package/dist/collection/components/refresher/refresher.utils.js +2 -2
  404. package/dist/collection/components/refresher-content/refresher-content.js +2 -2
  405. package/dist/collection/components/reorder/reorder.js +2 -2
  406. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  407. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  408. package/dist/collection/components/router/router.js +2 -2
  409. package/dist/collection/components/router/utils/dom.js +2 -2
  410. package/dist/collection/components/router-link/router-link.css +1 -1
  411. package/dist/collection/components/router-link/router-link.js +4 -3
  412. package/dist/collection/components/router-outlet/router-outlet.js +2 -2
  413. package/dist/collection/components/row/row.js +2 -2
  414. package/dist/collection/components/searchbar/searchbar.ios.css +3 -3
  415. package/dist/collection/components/searchbar/searchbar.js +6 -6
  416. package/dist/collection/components/searchbar/searchbar.md.css +3 -3
  417. package/dist/collection/components/segment/segment.js +2 -2
  418. package/dist/collection/components/segment-button/segment-button.ios.css +3 -3
  419. package/dist/collection/components/segment-button/segment-button.js +2 -2
  420. package/dist/collection/components/segment-button/segment-button.md.css +2 -2
  421. package/dist/collection/components/segment-content/segment-content.js +1 -1
  422. package/dist/collection/components/segment-view/segment-view.js +2 -2
  423. package/dist/collection/components/select/select.ios.css +6 -6
  424. package/dist/collection/components/select/select.js +3 -3
  425. package/dist/collection/components/select/select.md.css +14 -14
  426. package/dist/collection/components/select-modal/select-modal.ionic.css +3 -3
  427. package/dist/collection/components/select-modal/select-modal.ios.css +2 -2
  428. package/dist/collection/components/select-modal/select-modal.js +1 -1
  429. package/dist/collection/components/select-modal/select-modal.md.css +5 -5
  430. package/dist/collection/components/select-option/select-option.js +1 -1
  431. package/dist/collection/components/select-popover/select-popover.ionic.css +5 -5
  432. package/dist/collection/components/select-popover/select-popover.ios.css +1 -1
  433. package/dist/collection/components/select-popover/select-popover.js +2 -2
  434. package/dist/collection/components/select-popover/select-popover.md.css +5 -5
  435. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  436. package/dist/collection/components/spinner/spinner.css +248 -0
  437. package/dist/collection/components/spinner/spinner.js +27 -31
  438. package/dist/collection/components/split-pane/split-pane.ios.css +1 -1
  439. package/dist/collection/components/split-pane/split-pane.js +2 -3
  440. package/dist/collection/components/split-pane/split-pane.md.css +1 -1
  441. package/dist/collection/components/tab/tab.js +3 -3
  442. package/dist/collection/components/tab-bar/tab-bar.ios.css +4 -4
  443. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  444. package/dist/collection/components/tab-bar/tab-bar.md.css +3 -3
  445. package/dist/collection/components/tab-button/tab-button.ionic.css +0 -61
  446. package/dist/collection/components/tab-button/tab-button.ios.css +0 -105
  447. package/dist/collection/components/tab-button/tab-button.js +62 -3
  448. package/dist/collection/components/tab-button/tab-button.md.css +0 -88
  449. package/dist/collection/components/tabs/tabs.css +0 -39
  450. package/dist/collection/components/tabs/tabs.interfaces.js +1 -0
  451. package/dist/collection/components/tabs/tabs.js +14 -14
  452. package/dist/collection/components/text/text.js +2 -2
  453. package/dist/collection/components/textarea/textarea.ionic.css +1 -1
  454. package/dist/collection/components/textarea/textarea.ios.css +6 -6
  455. package/dist/collection/components/textarea/textarea.js +5 -5
  456. package/dist/collection/components/textarea/textarea.md.css +14 -14
  457. package/dist/collection/components/thumbnail/thumbnail.css +2 -2
  458. package/dist/collection/components/thumbnail/thumbnail.js +2 -2
  459. package/dist/collection/components/title/title.js +2 -2
  460. package/dist/collection/components/toast/toast.ios.css +3 -3
  461. package/dist/collection/components/toast/toast.js +2 -2
  462. package/dist/collection/components/toast/toast.md.css +5 -5
  463. package/dist/collection/components/toggle/toggle.ionic.css +1 -1
  464. package/dist/collection/components/toggle/toggle.ios.css +4 -4
  465. package/dist/collection/components/toggle/toggle.js +3 -3
  466. package/dist/collection/components/toggle/toggle.md.css +4 -4
  467. package/dist/collection/components/toolbar/toolbar.ios.css +2 -2
  468. package/dist/collection/components/toolbar/toolbar.js +2 -2
  469. package/dist/collection/components/toolbar/toolbar.md.css +1 -1
  470. package/dist/collection/global/config.js +27 -0
  471. package/dist/collection/global/ionic-global.js +59 -76
  472. package/dist/collection/index.js +1 -2
  473. package/dist/collection/themes/base/dark.tokens.js +218 -0
  474. package/dist/collection/themes/base/default.tokens.js +157 -0
  475. package/dist/collection/themes/base/high-contrast-dark.tokens.js +210 -0
  476. package/dist/collection/themes/base/high-contrast.tokens.js +169 -0
  477. package/dist/collection/themes/base/light.tokens.js +163 -0
  478. package/dist/collection/themes/base/shared.tokens.js +15 -0
  479. package/dist/collection/themes/ionic/dark.tokens.js +5 -0
  480. package/dist/collection/themes/ionic/default.tokens.js +700 -0
  481. package/dist/collection/themes/ionic/light.tokens.js +25 -0
  482. package/dist/collection/themes/ionic/shared.tokens.js +122 -0
  483. package/dist/collection/themes/ios/dark.tokens.js +18 -0
  484. package/dist/collection/themes/ios/default.tokens.js +711 -0
  485. package/dist/collection/themes/ios/high-contrast-dark.tokens.js +6 -0
  486. package/dist/collection/themes/ios/high-contrast.tokens.js +5 -0
  487. package/dist/collection/themes/ios/light.tokens.js +4 -0
  488. package/dist/collection/themes/ios/shared.tokens.js +63 -0
  489. package/dist/collection/themes/md/dark.tokens.js +23 -0
  490. package/dist/collection/themes/md/default.tokens.js +819 -0
  491. package/dist/collection/themes/md/high-contrast-dark.tokens.js +10 -0
  492. package/dist/collection/themes/md/high-contrast.tokens.js +5 -0
  493. package/dist/collection/themes/md/light.tokens.js +4 -0
  494. package/dist/collection/themes/md/shared.tokens.js +127 -0
  495. package/dist/collection/themes/themes.interfaces.js +1 -0
  496. package/dist/collection/utils/badge-position.js +171 -0
  497. package/dist/collection/utils/content/index.js +2 -2
  498. package/dist/collection/utils/framework-delegate.js +3 -3
  499. package/dist/collection/utils/helpers.js +40 -0
  500. package/dist/collection/utils/input-shims/hacks/scroll-padding.js +2 -2
  501. package/dist/collection/utils/input-shims/input-shims.js +2 -2
  502. package/dist/collection/utils/media.js +0 -1
  503. package/dist/collection/utils/menu-controller/index.js +2 -2
  504. package/dist/collection/utils/overlays.js +2 -2
  505. package/dist/collection/utils/status-tap.js +2 -2
  506. package/dist/collection/utils/test/playwright/page/utils/set-content.js +36 -2
  507. package/dist/collection/utils/theme.js +611 -9
  508. package/dist/docs.json +1835 -1276
  509. package/dist/esm/{animation-Cqe2x-Pt.js → animation-pTY9wqHp.js} +2 -2
  510. package/dist/esm/{app-globals-Dk1rB3aE.js → app-globals-BDyWBDAh.js} +1 -1
  511. package/dist/esm/badge-position-C1Q3qPZy.js +174 -0
  512. package/dist/esm/{button-active-g6ZnZzDZ.js → button-active-Ca3reU6j.js} +2 -2
  513. package/dist/esm/{capacitor-C4lYa1nV.js → capacitor-isspMXyk.js} +1 -1
  514. package/dist/esm/{data-BNKYavC3.js → data-CAYLUmgh.js} +1 -1
  515. package/dist/esm/{framework-delegate-CjVwn_KZ.js → framework-delegate-reUSF3oT.js} +3 -4
  516. package/dist/esm/{haptic-_88k1V5U.js → haptic-FwCam9_Q.js} +1 -1
  517. package/dist/esm/{index-BmkLokUL.js → index-6QFmgmEW.js} +2 -3
  518. package/dist/esm/{index-Omi_TcwW.js → index-BrrkdT9L.js} +1851 -1
  519. package/dist/esm/{index-hpH08p5s.js → index-CEhdLZKQ.js} +4 -5
  520. package/dist/esm/{index-C5t9-ciC.js → index-CQnGY3Fp.js} +2 -4
  521. package/dist/esm/{index-CGthURny.js → index-DUAoXzCH.js} +3 -4
  522. package/dist/esm/{index-D4ugF_sT.js → index-V2HKYEdd.js} +1 -1
  523. package/dist/esm/index.js +10 -13
  524. package/dist/esm/{input-shims-vDjCsx95.js → input-shims-Cuw1QMqP.js} +8 -10
  525. package/dist/esm/{input.utils-B9Q5xHp6.js → input.utils-BiYknr4n.js} +2 -3
  526. package/dist/esm/ion-accordion_2.entry.js +2 -5
  527. package/dist/esm/ion-action-sheet.entry.js +13 -16
  528. package/dist/esm/ion-alert.entry.js +13 -16
  529. package/dist/esm/ion-app_8.entry.js +36 -37
  530. package/dist/esm/ion-avatar_3.entry.js +60 -80
  531. package/dist/esm/ion-back-button.entry.js +3 -6
  532. package/dist/esm/ion-backdrop.entry.js +2 -2
  533. package/dist/esm/ion-breadcrumb_2.entry.js +5 -8
  534. package/dist/esm/ion-button_2.entry.js +31 -11
  535. package/dist/esm/ion-card_5.entry.js +8 -11
  536. package/dist/esm/ion-checkbox.entry.js +4 -7
  537. package/dist/esm/ion-chip.entry.js +50 -50
  538. package/dist/esm/ion-col_3.entry.js +8 -10
  539. package/dist/esm/ion-datetime-button.entry.js +6 -9
  540. package/dist/esm/ion-datetime_3.entry.js +17 -20
  541. package/dist/esm/ion-divider.entry.js +2 -2
  542. package/dist/esm/ion-fab_3.entry.js +5 -8
  543. package/dist/esm/ion-img.entry.js +4 -6
  544. package/dist/esm/ion-infinite-scroll_2.entry.js +10 -12
  545. package/dist/esm/ion-input-otp.entry.js +8 -11
  546. package/dist/esm/ion-input-password-toggle.entry.js +5 -6
  547. package/dist/esm/ion-input.entry.js +11 -14
  548. package/dist/esm/ion-item-option_3.entry.js +49 -302
  549. package/dist/esm/ion-item_8.entry.js +28 -40
  550. package/dist/esm/ion-loading.entry.js +11 -14
  551. package/dist/esm/ion-menu_3.entry.js +13 -16
  552. package/dist/esm/ion-modal.entry.js +16 -19
  553. package/dist/esm/ion-nav_2.entry.js +8 -10
  554. package/dist/esm/ion-picker-column-option.entry.js +4 -7
  555. package/dist/esm/ion-picker-column.entry.js +4 -7
  556. package/dist/esm/ion-picker.entry.js +2 -4
  557. package/dist/esm/ion-popover.entry.js +9 -12
  558. package/dist/esm/ion-progress-bar.entry.js +21 -34
  559. package/dist/esm/ion-radio_2.entry.js +11 -14
  560. package/dist/esm/ion-range.entry.js +9 -12
  561. package/dist/esm/ion-refresher_2.entry.js +16 -18
  562. package/dist/esm/ion-reorder_2.entry.js +8 -10
  563. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  564. package/dist/esm/ion-route_4.entry.js +6 -9
  565. package/dist/esm/ion-searchbar.entry.js +9 -12
  566. package/dist/esm/ion-segment-content.entry.js +2 -2
  567. package/dist/esm/ion-segment-view.entry.js +3 -3
  568. package/dist/esm/ion-segment_2.entry.js +8 -11
  569. package/dist/esm/ion-select-modal.entry.js +10 -13
  570. package/dist/esm/ion-select_3.entry.js +18 -21
  571. package/dist/esm/ion-spinner.entry.js +18 -33
  572. package/dist/esm/ion-split-pane.entry.js +7 -8
  573. package/dist/esm/ion-tab-bar_2.entry.js +75 -19
  574. package/dist/esm/ion-tab_2.entry.js +19 -19
  575. package/dist/esm/ion-text.entry.js +4 -5
  576. package/dist/esm/ion-textarea.entry.js +11 -14
  577. package/dist/esm/ion-toast.entry.js +10 -13
  578. package/dist/esm/ion-toggle.entry.js +10 -13
  579. package/dist/esm/{ionic-global-CAZb-5i-.js → ionic-global-CYPOXYV9.js} +214 -82
  580. package/dist/esm/ionic.js +5 -5
  581. package/dist/esm/{ios.transition-CzSncKQg.js → ios.transition-Udz14cFX.js} +4 -6
  582. package/dist/esm/{keyboard-Cpw6xVLJ.js → keyboard-BJeLQuaz.js} +1 -1
  583. package/dist/esm/{keyboard-controller-CAc33ylR.js → keyboard-controller-DtjExoRO.js} +3 -3
  584. package/dist/esm/{keyboard-DJpS2IGK.js → keyboard-uAtaO52Q.js} +4 -4
  585. package/dist/esm/loader.js +5 -5
  586. package/dist/esm/{md.transition-DIsWqYBZ.js → md.transition-BjHXd0f9.js} +4 -6
  587. package/dist/esm/{notch-controller-DiBq57w8.js → notch-controller-oUerJ6nV.js} +2 -2
  588. package/dist/esm/{overlays-rwDDzEs4.js → overlays-CSQv-GZq.js} +4 -5
  589. package/dist/esm/{select-option-render-B2qc5ZP7.js → select-option-render-DmisODWi.js} +2 -2
  590. package/dist/esm/{status-tap-fYFdZg6z.js → status-tap-DRMNWPiL.js} +3 -5
  591. package/dist/esm/{swipe-back-BzGqTrrq.js → swipe-back-D8jSdnGS.js} +1 -3
  592. package/dist/html.html-data.json +29 -244
  593. package/dist/ionic/index.esm.js +1 -1
  594. package/dist/ionic/ionic.esm.js +1 -1
  595. package/dist/ionic/p-01aa6153.entry.js +4 -0
  596. package/dist/ionic/p-07a3d959.entry.js +4 -0
  597. package/dist/ionic/p-0b68c8a9.entry.js +4 -0
  598. package/dist/ionic/p-0d50e1d3.entry.js +4 -0
  599. package/dist/ionic/p-124bb083.entry.js +4 -0
  600. package/dist/ionic/p-1f8298b3.entry.js +4 -0
  601. package/dist/ionic/p-1yGxS_yC.js +4 -0
  602. package/dist/ionic/p-29273c47.entry.js +4 -0
  603. package/dist/ionic/p-340449bb.entry.js +4 -0
  604. package/dist/ionic/p-39a55f1c.entry.js +4 -0
  605. package/dist/ionic/p-3a362e49.entry.js +4 -0
  606. package/dist/ionic/p-3a85e733.entry.js +4 -0
  607. package/dist/ionic/p-3b3dee19.entry.js +4 -0
  608. package/dist/ionic/p-485c13f3.entry.js +4 -0
  609. package/dist/ionic/p-4a63756e.entry.js +4 -0
  610. package/dist/ionic/p-4a6c21f5.entry.js +4 -0
  611. package/dist/ionic/p-4e8b3cd6.entry.js +4 -0
  612. package/dist/ionic/p-4f332976.entry.js +4 -0
  613. package/dist/ionic/{p-d604defc.entry.js → p-576b4ff1.entry.js} +1 -1
  614. package/dist/ionic/p-62a1e227.entry.js +4 -0
  615. package/dist/ionic/p-64877060.entry.js +4 -0
  616. package/dist/ionic/p-678f1511.entry.js +4 -0
  617. package/dist/ionic/p-6a0b6306.entry.js +4 -0
  618. package/dist/ionic/p-6c9228d4.entry.js +4 -0
  619. package/dist/ionic/p-70ab2edf.entry.js +4 -0
  620. package/dist/ionic/p-74d05699.entry.js +4 -0
  621. package/dist/ionic/p-77aa1e90.entry.js +4 -0
  622. package/dist/ionic/p-79be145b.entry.js +4 -0
  623. package/dist/ionic/p-7ba7526a.entry.js +4 -0
  624. package/dist/ionic/p-7cffb312.entry.js +4 -0
  625. package/dist/ionic/p-7e44a4c5.entry.js +4 -0
  626. package/dist/ionic/{p-45825c2c.entry.js → p-88717a4c.entry.js} +1 -1
  627. package/dist/ionic/p-918cf662.entry.js +4 -0
  628. package/dist/ionic/p-9476775d.entry.js +4 -0
  629. package/dist/ionic/p-9b05cd45.entry.js +4 -0
  630. package/dist/ionic/p-9b75925d.entry.js +4 -0
  631. package/dist/ionic/p-9c849562.entry.js +4 -0
  632. package/dist/ionic/p-9e74defe.entry.js +4 -0
  633. package/{components/p-oF-CwZ0b.js → dist/ionic/p-B7D6IyeU.js} +1 -1
  634. package/dist/ionic/p-BQZlX_QW.js +4 -0
  635. package/dist/ionic/p-BiY-3g9k.js +4 -0
  636. package/dist/ionic/p-BrrkdT9L.js +5 -0
  637. package/dist/ionic/p-BzLJp2YK.js +4 -0
  638. package/dist/ionic/{p-ZqkJDyhe.js → p-CAUIo7pE.js} +1 -1
  639. package/dist/ionic/p-CQA3_fVT.js +4 -0
  640. package/dist/ionic/{p-SJmaFQ0H.js → p-CTDx2dNQ.js} +1 -1
  641. package/dist/ionic/p-CWcwW_B7.js +4 -0
  642. package/dist/ionic/p-CYLLjyEJ.js +4 -0
  643. package/dist/ionic/p-Cd5dRcMd.js +4 -0
  644. package/dist/ionic/p-CeizwFUQ.js +4 -0
  645. package/{components/p-Cmql_g3_.js → dist/ionic/p-Chp7Hiov.js} +1 -1
  646. package/{components/p-sK-FK9CT.js → dist/ionic/p-Ckv4csSE.js} +1 -1
  647. package/dist/ionic/p-CnLgxV__.js +4 -0
  648. package/dist/ionic/p-CrC3J6IY.js +4 -0
  649. package/dist/ionic/p-D6sRRFCv.js +4 -0
  650. package/dist/ionic/p-DBv6epu_.js +4 -0
  651. package/dist/ionic/p-Dl7gXMai.js +4 -0
  652. package/dist/ionic/p-Dxq4Ulb1.js +4 -0
  653. package/dist/ionic/p-YuNpC3uG.js +4 -0
  654. package/{components/p-BLysWQA1.js → dist/ionic/p-ZdzrkYIV.js} +1 -1
  655. package/dist/ionic/p-a6c90dec.entry.js +4 -0
  656. package/dist/ionic/{p-fdf0e290.entry.js → p-a71389be.entry.js} +1 -1
  657. package/dist/ionic/p-a714ca93.entry.js +4 -0
  658. package/dist/ionic/p-bcaba3e0.entry.js +4 -0
  659. package/dist/ionic/p-bd44b49f.entry.js +4 -0
  660. package/dist/ionic/{p-7d267dc6.entry.js → p-c636b0d3.entry.js} +1 -1
  661. package/dist/ionic/p-cdc18886.entry.js +4 -0
  662. package/dist/ionic/p-ce6acd14.entry.js +4 -0
  663. package/dist/ionic/p-d7b2d59f.entry.js +4 -0
  664. package/dist/ionic/p-dc2812ee.entry.js +4 -0
  665. package/dist/ionic/p-de74cc27.entry.js +4 -0
  666. package/dist/ionic/p-ef1330ac.entry.js +4 -0
  667. package/dist/ionic/p-f57fea97.entry.js +4 -0
  668. package/dist/ionic/p-f840d58e.entry.js +4 -0
  669. package/dist/ionic/p-fK-AnPaq.js +4 -0
  670. package/dist/ionic/p-fce34e31.entry.js +4 -0
  671. package/dist/ionic/p-fd014d35.entry.js +4 -0
  672. package/dist/ionic/p-gBNkhCZy.js +4 -0
  673. package/dist/ionic/p-gYuHMhs-.js +4 -0
  674. package/dist/ionic/p-nMHpWRBR.js +4 -0
  675. package/dist/types/components/avatar/avatar.d.ts +6 -0
  676. package/dist/types/components/badge/badge.d.ts +30 -17
  677. package/dist/types/components/badge/badge.interfaces.d.ts +73 -0
  678. package/dist/types/components/button/button.d.ts +7 -1
  679. package/dist/types/components/chip/chip.d.ts +45 -14
  680. package/dist/types/components/chip/chip.interfaces.d.ts +97 -0
  681. package/dist/types/components/content/content.d.ts +1 -2
  682. package/dist/types/components/content/{content-interface.d.ts → content.interfaces.d.ts} +18 -0
  683. package/dist/types/components/item-divider/item-divider.d.ts +0 -1
  684. package/dist/types/components/item-divider/item-divider.interfaces.d.ts +132 -0
  685. package/dist/types/components/item-sliding/item-sliding.d.ts +2 -17
  686. package/dist/types/components/progress-bar/progress-bar.d.ts +9 -4
  687. package/dist/types/components/progress-bar/progress-bar.interfaces.d.ts +90 -0
  688. package/dist/types/components/spinner/spinner-configs.d.ts +2 -2
  689. package/dist/types/components/spinner/spinner.d.ts +8 -4
  690. package/dist/types/components/spinner/spinner.interfaces.d.ts +72 -0
  691. package/dist/types/components/tab/tab.d.ts +0 -1
  692. package/dist/types/components/tab-button/tab-button.d.ts +7 -0
  693. package/dist/types/components/tabs/tabs.d.ts +1 -1
  694. package/dist/types/components.d.ts +64 -215
  695. package/dist/types/global/config.d.ts +9 -1
  696. package/dist/types/global/ionic-global.d.ts +3 -10
  697. package/dist/types/index.d.ts +1 -2
  698. package/dist/types/interface.d.ts +2 -2
  699. package/dist/types/themes/base/dark.tokens.d.ts +2 -0
  700. package/dist/types/themes/base/default.tokens.d.ts +2 -0
  701. package/dist/types/themes/base/high-contrast-dark.tokens.d.ts +2 -0
  702. package/dist/types/themes/base/high-contrast.tokens.d.ts +2 -0
  703. package/dist/types/themes/base/light.tokens.d.ts +2 -0
  704. package/dist/types/themes/base/shared.tokens.d.ts +11 -0
  705. package/dist/types/themes/ionic/dark.tokens.d.ts +2 -0
  706. package/dist/types/themes/ionic/default.tokens.d.ts +2 -0
  707. package/dist/types/themes/ionic/light.tokens.d.ts +2 -0
  708. package/dist/types/themes/ionic/shared.tokens.d.ts +112 -0
  709. package/dist/types/themes/ios/dark.tokens.d.ts +2 -0
  710. package/dist/types/themes/ios/default.tokens.d.ts +2 -0
  711. package/dist/types/themes/ios/high-contrast-dark.tokens.d.ts +2 -0
  712. package/dist/types/themes/ios/high-contrast.tokens.d.ts +2 -0
  713. package/dist/types/themes/ios/light.tokens.d.ts +2 -0
  714. package/dist/types/themes/ios/shared.tokens.d.ts +56 -0
  715. package/dist/types/themes/md/dark.tokens.d.ts +2 -0
  716. package/dist/types/themes/md/default.tokens.d.ts +2 -0
  717. package/dist/types/themes/md/high-contrast-dark.tokens.d.ts +2 -0
  718. package/dist/types/themes/md/high-contrast.tokens.d.ts +2 -0
  719. package/dist/types/themes/md/light.tokens.d.ts +2 -0
  720. package/dist/types/themes/md/shared.tokens.d.ts +117 -0
  721. package/dist/types/themes/themes.interfaces.d.ts +278 -0
  722. package/dist/types/utils/badge-position.d.ts +106 -0
  723. package/dist/types/utils/config.d.ts +6 -0
  724. package/dist/types/utils/helpers.d.ts +16 -0
  725. package/dist/types/utils/platform.d.ts +2 -2
  726. package/dist/types/utils/theme.d.ts +198 -3
  727. package/hydrate/index.js +2898 -2173
  728. package/hydrate/index.mjs +2898 -2173
  729. package/package.json +6 -4
  730. package/components/ion-gallery-item.d.ts +0 -11
  731. package/components/ion-gallery-item.js +0 -4
  732. package/components/ion-gallery.d.ts +0 -11
  733. package/components/ion-gallery.js +0 -4
  734. package/components/p-0sa2JgYA.js +0 -4
  735. package/components/p-3Ni1Z654.js +0 -4
  736. package/components/p-6_r-Odtt.js +0 -4
  737. package/components/p-9gxM3tAr.js +0 -4
  738. package/components/p-B-oPDoNQ.js +0 -4
  739. package/components/p-B636tzQ7.js +0 -4
  740. package/components/p-B8Oa6a_k.js +0 -4
  741. package/components/p-BCDEEm9n.js +0 -4
  742. package/components/p-BDndEqui.js +0 -4
  743. package/components/p-BLHs-wsh.js +0 -4
  744. package/components/p-BO4aickU.js +0 -4
  745. package/components/p-BbQGmZyu.js +0 -4
  746. package/components/p-BdmDSErh.js +0 -4
  747. package/components/p-BeVlsaLA.js +0 -4
  748. package/components/p-BhkRbo3L.js +0 -4
  749. package/components/p-Bp__mr16.js +0 -4
  750. package/components/p-BqDiJgC_.js +0 -4
  751. package/components/p-C00Y_WJv.js +0 -4
  752. package/components/p-C0U8YqYW.js +0 -4
  753. package/components/p-C4dDZdpz.js +0 -4
  754. package/components/p-C75do9pU.js +0 -4
  755. package/components/p-CKfNwyAb.js +0 -4
  756. package/components/p-CSf_VKpz.js +0 -4
  757. package/components/p-CVBkx7m1.js +0 -4
  758. package/components/p-Cb9imMZh.js +0 -4
  759. package/components/p-Cf9-xP7P.js +0 -4
  760. package/components/p-CieebRr6.js +0 -4
  761. package/components/p-CjSx8W-k.js +0 -4
  762. package/components/p-Ct1_qpJ-.js +0 -4
  763. package/components/p-CtiqM786.js +0 -4
  764. package/components/p-CvljGih0.js +0 -4
  765. package/components/p-D42P_qbe.js +0 -4
  766. package/components/p-DDw-NYxz.js +0 -4
  767. package/components/p-DVcs-2q3.js +0 -4
  768. package/components/p-DZOqbnq2.js +0 -4
  769. package/components/p-DaJxRxSQ.js +0 -4
  770. package/components/p-Ddl4_R29.js +0 -4
  771. package/components/p-KF2RUDHO.js +0 -4
  772. package/components/p-XegQjlzJ.js +0 -4
  773. package/components/p-lEYPO4ZC.js +0 -4
  774. package/components/p-n94Bzx6_.js +0 -4
  775. package/components/p-t98_NeNv.js +0 -4
  776. package/components/p-vCpF32Z7.js +0 -4
  777. package/components/p-vGxjPSKT.js +0 -4
  778. package/components/p-vXpMhGrs.js +0 -4
  779. package/components/p-wCDzv5Q8.js +0 -4
  780. package/dist/cjs/focus-visible-BIj-I3-C.js +0 -101
  781. package/dist/cjs/helpers-DJYxKN5U.js +0 -413
  782. package/dist/cjs/ion-gallery-item.cjs.entry.js +0 -72
  783. package/dist/cjs/ion-gallery.cjs.entry.js +0 -559
  784. package/dist/cjs/theme-IlOsGAz7.js +0 -72
  785. package/dist/collection/components/badge/badge.ionic.css +0 -275
  786. package/dist/collection/components/badge/badge.ios.css +0 -295
  787. package/dist/collection/components/badge/badge.md.css +0 -275
  788. package/dist/collection/components/chip/chip.ionic.css +0 -217
  789. package/dist/collection/components/chip/chip.ios.css +0 -265
  790. package/dist/collection/components/chip/chip.md.css +0 -260
  791. package/dist/collection/components/gallery/gallery-constants.js +0 -12
  792. package/dist/collection/components/gallery/gallery.css +0 -76
  793. package/dist/collection/components/gallery/gallery.js +0 -644
  794. package/dist/collection/components/gallery/test/utils.js +0 -100
  795. package/dist/collection/components/gallery-item/gallery-item.css +0 -87
  796. package/dist/collection/components/gallery-item/gallery-item.js +0 -87
  797. package/dist/collection/components/item-divider/item-divider.ios.css +0 -369
  798. package/dist/collection/components/item-divider/item-divider.md.css +0 -425
  799. package/dist/collection/components/item-sliding/item-sliding.ionic.css +0 -211
  800. package/dist/collection/components/progress-bar/progress-bar.ionic.css +0 -287
  801. package/dist/collection/components/progress-bar/progress-bar.ios.css +0 -298
  802. package/dist/collection/components/progress-bar/progress-bar.md.css +0 -290
  803. package/dist/collection/components/spinner/spinner.ionic.css +0 -300
  804. package/dist/collection/components/spinner/spinner.native.css +0 -199
  805. package/dist/collection/utils/css-value-validation.js +0 -25
  806. package/dist/esm/focus-visible-vXpMhGrs.js +0 -97
  807. package/dist/esm/helpers-Do7zwvM1.js +0 -392
  808. package/dist/esm/ion-gallery-item.entry.js +0 -70
  809. package/dist/esm/ion-gallery.entry.js +0 -557
  810. package/dist/esm/theme-DaJxRxSQ.js +0 -67
  811. package/dist/ionic/p-02a1a45c.entry.js +0 -4
  812. package/dist/ionic/p-07d3388f.entry.js +0 -4
  813. package/dist/ionic/p-0c3bf0a7.entry.js +0 -4
  814. package/dist/ionic/p-0ef2fcda.entry.js +0 -4
  815. package/dist/ionic/p-11nqcMM3.js +0 -4
  816. package/dist/ionic/p-139d02eb.entry.js +0 -4
  817. package/dist/ionic/p-1ab01507.entry.js +0 -4
  818. package/dist/ionic/p-21ca5788.entry.js +0 -4
  819. package/dist/ionic/p-229c8fb5.entry.js +0 -4
  820. package/dist/ionic/p-2311e660.entry.js +0 -4
  821. package/dist/ionic/p-2981a0bd.entry.js +0 -4
  822. package/dist/ionic/p-2a66b899.entry.js +0 -4
  823. package/dist/ionic/p-2c252788.entry.js +0 -4
  824. package/dist/ionic/p-2d5a2511.entry.js +0 -4
  825. package/dist/ionic/p-37ccbee4.entry.js +0 -4
  826. package/dist/ionic/p-3aba19e2.entry.js +0 -4
  827. package/dist/ionic/p-3d939d55.entry.js +0 -4
  828. package/dist/ionic/p-3fd97ea9.entry.js +0 -4
  829. package/dist/ionic/p-432c5888.entry.js +0 -4
  830. package/dist/ionic/p-455ac83a.entry.js +0 -4
  831. package/dist/ionic/p-488992b6.entry.js +0 -4
  832. package/dist/ionic/p-4a0260e6.entry.js +0 -4
  833. package/dist/ionic/p-503219b5.entry.js +0 -4
  834. package/dist/ionic/p-5b164421.entry.js +0 -4
  835. package/dist/ionic/p-636aa79b.entry.js +0 -4
  836. package/dist/ionic/p-65159e09.entry.js +0 -4
  837. package/dist/ionic/p-68c21b2a.entry.js +0 -4
  838. package/dist/ionic/p-6911beb3.entry.js +0 -4
  839. package/dist/ionic/p-6ec1e450.entry.js +0 -4
  840. package/dist/ionic/p-6fbead83.entry.js +0 -4
  841. package/dist/ionic/p-7194f6fa.entry.js +0 -4
  842. package/dist/ionic/p-76de7898.entry.js +0 -4
  843. package/dist/ionic/p-7761b69d.entry.js +0 -4
  844. package/dist/ionic/p-8291455b.entry.js +0 -4
  845. package/dist/ionic/p-83c0eb9b.entry.js +0 -4
  846. package/dist/ionic/p-874945f3.entry.js +0 -4
  847. package/dist/ionic/p-8uDL7fql.js +0 -4
  848. package/dist/ionic/p-92427c9d.entry.js +0 -4
  849. package/dist/ionic/p-9f914d43.entry.js +0 -4
  850. package/dist/ionic/p-BsfuYVMP.js +0 -4
  851. package/dist/ionic/p-Bx0bt2Ar.js +0 -4
  852. package/dist/ionic/p-C2mpVKI1.js +0 -4
  853. package/dist/ionic/p-C4uUM9DM.js +0 -4
  854. package/dist/ionic/p-C5zxLmJ_.js +0 -4
  855. package/dist/ionic/p-CBV-BGvD.js +0 -4
  856. package/dist/ionic/p-CDn0uNJA.js +0 -4
  857. package/dist/ionic/p-CFjI63GE.js +0 -4
  858. package/dist/ionic/p-CHE1xWbg.js +0 -4
  859. package/dist/ionic/p-CIk5QtPm.js +0 -4
  860. package/dist/ionic/p-CQKe4n56.js +0 -4
  861. package/dist/ionic/p-CVp2D--1.js +0 -4
  862. package/dist/ionic/p-CXqdKf1K.js +0 -4
  863. package/dist/ionic/p-Cb-0O4h8.js +0 -4
  864. package/dist/ionic/p-DKWXAwlR.js +0 -4
  865. package/dist/ionic/p-DaJxRxSQ.js +0 -4
  866. package/dist/ionic/p-DoyDJ2X5.js +0 -4
  867. package/dist/ionic/p-FvDKM4Ax.js +0 -4
  868. package/dist/ionic/p-Omi_TcwW.js +0 -5
  869. package/dist/ionic/p-SOASChNu.js +0 -4
  870. package/dist/ionic/p-acdc21a6.entry.js +0 -4
  871. package/dist/ionic/p-b8f7e970.entry.js +0 -4
  872. package/dist/ionic/p-bb2d2635.entry.js +0 -4
  873. package/dist/ionic/p-bd3ae730.entry.js +0 -4
  874. package/dist/ionic/p-c1d6501a.entry.js +0 -4
  875. package/dist/ionic/p-c55a5578.entry.js +0 -4
  876. package/dist/ionic/p-cecceb9f.entry.js +0 -4
  877. package/dist/ionic/p-dd1e95c5.entry.js +0 -4
  878. package/dist/ionic/p-e342b205.entry.js +0 -4
  879. package/dist/ionic/p-e5976b28.entry.js +0 -4
  880. package/dist/ionic/p-e73a7fe2.entry.js +0 -4
  881. package/dist/ionic/p-f02ba305.entry.js +0 -4
  882. package/dist/ionic/p-fc01563c.entry.js +0 -4
  883. package/dist/ionic/p-fe073307.entry.js +0 -4
  884. package/dist/ionic/p-qETiT38a.js +0 -4
  885. package/dist/ionic/p-vXpMhGrs.js +0 -4
  886. package/dist/types/components/gallery/gallery-constants.d.ts +0 -9
  887. package/dist/types/components/gallery/gallery-interface.d.ts +0 -10
  888. package/dist/types/components/gallery/gallery.d.ts +0 -191
  889. package/dist/types/components/gallery/test/utils.d.ts +0 -2
  890. package/dist/types/components/gallery-item/gallery-item.d.ts +0 -25
  891. package/dist/types/components/spinner/spinner-interface.d.ts +0 -22
  892. package/dist/types/utils/css-value-validation.d.ts +0 -12
  893. /package/dist/collection/components/{content/content-interface.js → chip/chip.interfaces.js} +0 -0
  894. /package/dist/collection/components/{gallery/gallery-interface.js → content/content.interfaces.js} +0 -0
  895. /package/dist/collection/components/{spinner/spinner-interface.js → item-divider/item-divider.interfaces.js} +0 -0
  896. /package/dist/collection/components/{tabs/tabs-interface.js → spinner/spinner.interfaces.js} +0 -0
  897. /package/dist/types/components/tabs/{tabs-interface.d.ts → tabs.interfaces.d.ts} +0 -0
@@ -1,559 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- 'use strict';
5
-
6
- var index = require('./index-CzcLEdQ5.js');
7
- var helpers = require('./helpers-DJYxKN5U.js');
8
- var ionicGlobal = require('./ionic-global-CSEbHD_F.js');
9
- require('./focus-visible-BIj-I3-C.js');
10
-
11
- /**
12
- * Helpers for validating user-supplied CSS values using regular expressions, without
13
- * relying on browser CSS APIs.
14
- */
15
- // Matches `<length>` (`<number>` + unit identifier) or `<percentage>` (`<number>%`).
16
- const LENGTH_PERCENTAGE_PATTERN = /^[-+]?(?:\d+\.?\d*|\.\d+)(?:%|[a-z]+)$/i;
17
- // Matches simple `calc` / `min` / `max` / `clamp(...)` functions.
18
- const MATH_FUNCTION_PATTERN = /^(calc|min|max|clamp)\s*\(.+\)$/i;
19
- /**
20
- * Returns whether `value` matches the [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
21
- * syntax. Accepts `<length>` (`<number>` + unit identifier) or `<percentage>` (`<number>%`).
22
- * Also supports simple `calc` / `min` / `max` / `clamp(...)` functions.
23
- *
24
- * @param value String value to validate.
25
- */
26
- function isValidLengthPercentage(value) {
27
- const v = value.trim();
28
- if (!v) {
29
- return false;
30
- }
31
- return MATH_FUNCTION_PATTERN.test(v) || LENGTH_PERCENTAGE_PATTERN.test(v);
32
- }
33
-
34
- const DEFAULT_COLUMNS = {
35
- xs: 2,
36
- sm: 3,
37
- md: 4,
38
- lg: 6,
39
- xl: 8,
40
- xxl: 10,
41
- };
42
- const DEFAULT_GAP = '16px';
43
-
44
- 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-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}`;
45
-
46
- // TODO(FW-7285): Replace with global breakpoints
47
- const BREAKPOINTS = {
48
- xs: 0,
49
- sm: 576,
50
- md: 768,
51
- lg: 992,
52
- xl: 1200,
53
- xxl: 1400,
54
- };
55
- const BREAKPOINT_ORDER = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
56
- const GALLERY_ITEM_SELECTOR = 'ion-gallery-item';
57
- const Gallery = class {
58
- constructor(hostRef) {
59
- index.registerInstance(this, hostRef);
60
- // Keep track of whether we've warned about invalid columns, invalid gap,
61
- // and unused order properties to avoid duplicate warnings on screen resize.
62
- this.hasWarnedInvalidColumns = false;
63
- this.hasWarnedInvalidGap = false;
64
- this.hasWarnedUnusedOrder = false;
65
- this.hasWarnedInvalidItems = false;
66
- /**
67
- * The visual layout of the gallery. When `uniform`, rows take up the height
68
- * of the tallest item and are spaced evenly across the gallery. Additionally,
69
- * items will have an aspect ratio of 1/1, forcing them to be square unless a
70
- * height is explicitly set. When `masonry`, items will be positioned under each
71
- * other with only the specified gap between them.
72
- */
73
- this.layout = 'uniform';
74
- /**
75
- * The number of columns to display. Can be set as a number or an object of
76
- * breakpoint values (e.g. `{ xs: 2, sm: 3, md: 4 }`).
77
- */
78
- this.columns = DEFAULT_COLUMNS;
79
- /**
80
- * The space between gallery items. Accepts valid CSS [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
81
- * values like `16px`, `1rem`, `20%`, math functions like `calc(10px + 20%)`,
82
- * or numbers (treated as pixel values). Can also be set as a breakpoint map
83
- * (e.g. `{ xs: '8px', sm: '1rem', md: '24px' }`). Does not accept
84
- * space-separated values or CSS keyword values like `inherit`, `auto`, etc.
85
- */
86
- this.gap = DEFAULT_GAP;
87
- /**
88
- * Listen for the slotchange event on the slot.
89
- * When the layout is `masonry`, this listener is used to schedule a resize
90
- * of the masonry grid when the slot changes. This is useful for when items
91
- * are added or removed from the gallery.
92
- */
93
- this.onSlotChange = () => {
94
- this.scheduleMasonryResize();
95
- };
96
- /**
97
- * Measure the host and children, then compute masonry placement.
98
- */
99
- this.resizeMasonryGrid = () => {
100
- this.masonryRaf = undefined;
101
- if (this.layout !== 'masonry') {
102
- this.clearMasonryStyles();
103
- return;
104
- }
105
- const width = this.el.getBoundingClientRect().width;
106
- const columns = this.getColumnsForWidth(width);
107
- // Skip masonry placement when width/columns does not resolve
108
- // to a valid breakpoint column count.
109
- if (columns === undefined) {
110
- return;
111
- }
112
- const styles = getComputedStyle(this.el);
113
- const rowHeight = parseFloat(styles.getPropertyValue('grid-auto-rows')) || 0;
114
- const rowGap = parseFloat(styles.getPropertyValue('row-gap')) || parseFloat(styles.getPropertyValue('gap')) || 0;
115
- const itemGap = parseFloat(styles.getPropertyValue('column-gap')) || parseFloat(styles.getPropertyValue('gap')) || 0;
116
- const items = this.getItems();
117
- this.layoutMasonry(items, rowHeight, rowGap, itemGap, columns);
118
- };
119
- }
120
- onColumnsOrGapChanged() {
121
- this.syncResponsiveLayout();
122
- }
123
- onLayoutOrOrderChanged() {
124
- this.syncResponsiveLayout();
125
- // Wait until the next animation frame to warn about unused order
126
- // to avoid erroneous warnings when the layout and order are updated
127
- // in the same frame.
128
- helpers.raf(() => {
129
- this.warnUnusedOrder();
130
- });
131
- }
132
- componentDidLoad() {
133
- this.updateResponsiveStyles(true);
134
- this.resizeObserver = new ResizeObserver(() => {
135
- this.updateResponsiveStyles();
136
- this.scheduleMasonryResize();
137
- });
138
- this.resizeObserver.observe(this.el);
139
- this.scheduleMasonryResize();
140
- this.warnUnusedOrder();
141
- }
142
- disconnectedCallback() {
143
- var _a;
144
- if (this.masonryRaf !== undefined) {
145
- cancelAnimationFrame(this.masonryRaf);
146
- this.masonryRaf = undefined;
147
- }
148
- (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
149
- this.resizeObserver = undefined;
150
- }
151
- /**
152
- * Listen for the load event on child elements.
153
- * When the layout is `masonry`, this listener is used to schedule a resize
154
- * of the masonry grid when the child elements load. This is useful for when
155
- * images take time to load.
156
- */
157
- onChildLoad(ev) {
158
- if (this.layout !== 'masonry') {
159
- return;
160
- }
161
- const target = ev.target;
162
- if (target instanceof Node && this.el.contains(target)) {
163
- this.scheduleMasonryResize();
164
- }
165
- }
166
- /**
167
- * Recompute the gallery column and gap variables and masonry placement when
168
- * columns, gap, layout, or order change.
169
- */
170
- syncResponsiveLayout() {
171
- this.updateResponsiveStyles(true);
172
- this.scheduleMasonryResize();
173
- }
174
- /**
175
- * Batch masonry measurements to a single animation frame.
176
- * This avoids repeated sync layouts during rapid resize/load/slot changes.
177
- */
178
- scheduleMasonryResize() {
179
- if (this.layout !== 'masonry') {
180
- this.clearMasonryStyles();
181
- return;
182
- }
183
- if (this.masonryRaf !== undefined) {
184
- cancelAnimationFrame(this.masonryRaf);
185
- }
186
- this.masonryRaf = requestAnimationFrame(this.resizeMasonryGrid);
187
- }
188
- /**
189
- * Normalize a single column value (`columns` as a number, string, or one entry from
190
- * a `columns` breakpoint map) to a positive integer. Returns `undefined` when
191
- * the input cannot be interpreted as a finite number.
192
- */
193
- sanitizeColumns(columns) {
194
- if (columns === undefined) {
195
- return undefined;
196
- }
197
- const numericColumns = typeof columns === 'number' ? columns : Number(columns);
198
- if (!Number.isFinite(numericColumns) || !Number.isInteger(numericColumns) || numericColumns <= 0) {
199
- return undefined;
200
- }
201
- return numericColumns;
202
- }
203
- /**
204
- * Normalize a single gap value (`gap` as a number, string, or one entry from
205
- * a `gap` breakpoint map) to a CSS length string. Returns `undefined` when
206
- * the input cannot be interpreted as a valid CSS length.
207
- */
208
- sanitizeGap(gap) {
209
- if (gap === undefined) {
210
- return undefined;
211
- }
212
- const normalizedGap = typeof gap === 'string' ? gap.trim() : gap;
213
- if (normalizedGap === '' || typeof normalizedGap === 'object') {
214
- return undefined;
215
- }
216
- const numericGap = Number(normalizedGap);
217
- if (Number.isFinite(numericGap)) {
218
- return numericGap < 0 ? undefined : `${numericGap}px`;
219
- }
220
- if (typeof normalizedGap !== 'string') {
221
- return undefined;
222
- }
223
- const isValidCssLength = isValidLengthPercentage(normalizedGap);
224
- return isValidCssLength ? normalizedGap : undefined;
225
- }
226
- /**
227
- * Check if the value is a breakpoint map object.
228
- */
229
- isBreakpointMap(value) {
230
- return typeof value === 'object' && value !== null && !Array.isArray(value);
231
- }
232
- /**
233
- * Check if the breakpoint map has any invalid values for the provided
234
- * sanitizer. A breakpoint map is invalid when there are no valid breakpoint
235
- * keys set (e.g. `{}` or `{ colums: 3 }`), or when a value under a
236
- * breakpoint key fails the sanitizer (e.g. `{ xs: -3 }`, `{ sm: 'foo' }`).
237
- */
238
- hasInvalidBreakpointMap(breakpointMap, sanitizeValue) {
239
- let hasBreakpointEntry = false;
240
- for (const breakpoint of BREAKPOINT_ORDER) {
241
- const value = breakpointMap[breakpoint];
242
- if (value !== undefined) {
243
- hasBreakpointEntry = true;
244
- if (sanitizeValue(value) === undefined) {
245
- return true;
246
- }
247
- }
248
- }
249
- return !hasBreakpointEntry;
250
- }
251
- /**
252
- * Resolve a responsive value from a breakpoint map.
253
- * Uses a breakpoint-specific default when custom values are missing/invalid.
254
- */
255
- resolveFromBreakpoints(width, breakpointMap, sanitizeProvided, getSanitizedDefault) {
256
- let resolvedValue;
257
- for (const bp of BREAKPOINT_ORDER) {
258
- const providedValue = breakpointMap[bp];
259
- const sanitizedProvided = sanitizeProvided(providedValue);
260
- const sanitizedDefault = getSanitizedDefault(bp);
261
- const resolved = providedValue === undefined || sanitizedProvided === undefined ? sanitizedDefault : sanitizedProvided;
262
- if (resolved !== undefined && width >= BREAKPOINTS[bp]) {
263
- resolvedValue = resolved;
264
- }
265
- }
266
- return resolvedValue;
267
- }
268
- /**
269
- * Get the columns from a responsive breakpoint map.
270
- * Returns the columns for the last matching breakpoint.
271
- */
272
- getColumnsFromBreakpointMap(width, breakpointMap) {
273
- return this.resolveFromBreakpoints(width, breakpointMap, (value) => this.sanitizeColumns(value), (bp) => this.sanitizeColumns(DEFAULT_COLUMNS[bp]));
274
- }
275
- /**
276
- * Get the gap from a responsive breakpoint map.
277
- * Returns the gap for the last matching breakpoint.
278
- */
279
- getGapFromBreakpointMap(width, breakpointMap) {
280
- return this.resolveFromBreakpoints(width, breakpointMap, (value) => this.sanitizeGap(value), () => this.sanitizeGap(DEFAULT_GAP));
281
- }
282
- /**
283
- * Warn about an invalid columns value when it is set to a negative number,
284
- * an empty breakpoint map, a map with no supported breakpoint keys,
285
- * or a map with invalid breakpoint values.
286
- */
287
- warnInvalidColumns(columns) {
288
- if (this.hasWarnedInvalidColumns) {
289
- return;
290
- }
291
- index.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);
292
- this.hasWarnedInvalidColumns = true;
293
- }
294
- /**
295
- * Warn about an invalid gap value when it is set to a negative number,
296
- * an empty breakpoint map, a map with no supported breakpoint keys,
297
- * or a map with invalid breakpoint values.
298
- */
299
- warnInvalidGap(gap) {
300
- if (this.hasWarnedInvalidGap) {
301
- return;
302
- }
303
- index.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);
304
- this.hasWarnedInvalidGap = true;
305
- }
306
- /**
307
- * Warn when `order` is explicitly set while layout is `uniform`.
308
- */
309
- warnUnusedOrder() {
310
- const { layout } = this;
311
- const order = this.order == null ? undefined : this.order;
312
- if (this.hasWarnedUnusedOrder || layout !== 'uniform' || order === undefined) {
313
- return;
314
- }
315
- index.printIonWarning(`[ion-gallery] - "order" has no effect when "layout" is "uniform". Set "layout" to "masonry" for "order" to apply.`, this.el);
316
- this.hasWarnedUnusedOrder = true;
317
- }
318
- /**
319
- * Warn when gallery content is missing required `ion-gallery-item` components.
320
- */
321
- warnInvalidItems() {
322
- if (this.hasWarnedInvalidItems) {
323
- return;
324
- }
325
- index.printIonWarning('[ion-gallery] - Gallery items must be wrapped in "ion-gallery-item" components. Non-item direct children are ignored unless they contain nested "ion-gallery-item" elements.', this.el);
326
- this.hasWarnedInvalidItems = true;
327
- }
328
- /**
329
- * Resolve the active columns value for the current width. Falls back to
330
- * the default responsive columns when the provided prop is invalid.
331
- */
332
- getColumnsForWidth(width) {
333
- const { columns } = this;
334
- const isBreakpointColumns = this.isBreakpointMap(columns);
335
- const hasInvalidBreakpointColumns = isBreakpointColumns && this.hasInvalidBreakpointMap(columns, (value) => this.sanitizeColumns(value));
336
- const sanitizedColumns = isBreakpointColumns
337
- ? this.getColumnsFromBreakpointMap(width, columns)
338
- : this.sanitizeColumns(columns);
339
- if (hasInvalidBreakpointColumns || (!isBreakpointColumns && sanitizedColumns === undefined)) {
340
- this.warnInvalidColumns(columns);
341
- }
342
- if (sanitizedColumns !== undefined) {
343
- return sanitizedColumns;
344
- }
345
- return this.getColumnsFromBreakpointMap(width, DEFAULT_COLUMNS);
346
- }
347
- /**
348
- * Resolve the active gap value for the current width.
349
- */
350
- getGapForWidth(width) {
351
- const { gap } = this;
352
- const providedGap = gap !== null && gap !== void 0 ? gap : DEFAULT_GAP;
353
- const isBreakpointGap = this.isBreakpointMap(providedGap);
354
- const hasInvalidBreakpointGap = isBreakpointGap && this.hasInvalidBreakpointMap(providedGap, (value) => this.sanitizeGap(value));
355
- const sanitizedGap = isBreakpointGap
356
- ? this.getGapFromBreakpointMap(width, providedGap)
357
- : this.sanitizeGap(providedGap);
358
- if (hasInvalidBreakpointGap || (!isBreakpointGap && sanitizedGap === undefined)) {
359
- this.warnInvalidGap(providedGap);
360
- }
361
- if (sanitizedGap !== undefined) {
362
- return sanitizedGap;
363
- }
364
- return this.sanitizeGap(DEFAULT_GAP);
365
- }
366
- /**
367
- * Update the responsive styles for the gallery. This is used to update
368
- * the columns and gap when the component width changes.
369
- */
370
- updateResponsiveStyles(force = false) {
371
- const width = this.el.getBoundingClientRect().width;
372
- // Only update the columns if the component width has changed by more than
373
- // 1px or if the force flag is true. This prevents unnecessary re-renders
374
- // when the component width has not changed.
375
- if (!width || (!force && this.lastWidth !== undefined && Math.abs(this.lastWidth - width) < 1)) {
376
- return;
377
- }
378
- this.lastWidth = width;
379
- const columns = this.getColumnsForWidth(width);
380
- this.el.style.setProperty('--internal-gallery-columns', `${columns}`);
381
- const gap = this.getGapForWidth(width);
382
- this.el.style.setProperty('--internal-gallery-gap', `${gap}`);
383
- }
384
- isGalleryItemElement(element) {
385
- var _a;
386
- return typeof ((_a = element.style) === null || _a === void 0 ? void 0 : _a.setProperty) === 'function';
387
- }
388
- /**
389
- * Return all gallery items that can be grid items with inline placement styles.
390
- * Direct children that are not `ion-gallery-item` are treated as wrapper
391
- * containers and flattened to nested `ion-gallery-item` children. Direct
392
- * children without nested `ion-gallery-item` components are ignored.
393
- */
394
- getItems() {
395
- const directChildren = Array.from(this.el.children).filter((child) => this.isGalleryItemElement(child));
396
- const flattenedItems = [];
397
- // Expand an <ion-gallery-item> component into the actual gallery items
398
- // that should be used for grid placement.
399
- const pushWrappedItems = (galleryItemEl) => {
400
- const galleryItems = Array.from(galleryItemEl.children).filter((child) => this.isGalleryItemElement(child));
401
- flattenedItems.push(...galleryItems);
402
- };
403
- directChildren.forEach((directChildEl) => {
404
- // Standard path: <ion-gallery-item> is a direct child of <ion-gallery>.
405
- if (directChildEl.matches(GALLERY_ITEM_SELECTOR)) {
406
- pushWrappedItems(directChildEl);
407
- return;
408
- }
409
- // Compatibility path: a non-gallery-item direct child (e.g. wrapper <div>)
410
- // may contain nested <ion-gallery-item> components.
411
- const nestedGalleryItems = Array.from(directChildEl.querySelectorAll(GALLERY_ITEM_SELECTOR)).filter((child) => this.isGalleryItemElement(child));
412
- // Invalid children path: no <ion-gallery-item> components found.
413
- if (nestedGalleryItems.length === 0) {
414
- this.warnInvalidItems();
415
- return;
416
- }
417
- // Flatten gallery-item containers so nested <ion-gallery-item> children can
418
- // become the effective gallery items.
419
- directChildEl.style.display = 'contents';
420
- nestedGalleryItems.forEach((nestedGalleryItem) => pushWrappedItems(nestedGalleryItem));
421
- });
422
- return flattenedItems;
423
- }
424
- /**
425
- * Clear the item styles for the given item element.
426
- * This is used to switch between uniform and masonry layouts.
427
- */
428
- clearItemStyles(itemEl) {
429
- itemEl.style.gridRowStart = '';
430
- itemEl.style.gridRowEnd = '';
431
- itemEl.style.gridColumn = '';
432
- itemEl.style.marginBottom = '';
433
- }
434
- /**
435
- * Clear placement styles for all items when leaving masonry mode.
436
- */
437
- clearMasonryStyles() {
438
- this.getItems().forEach((itemEl) => this.clearItemStyles(itemEl));
439
- }
440
- /**
441
- * Convert a rendered item height to the number of grid rows it should span.
442
- * Returns undefined for images that are not fully loaded yet.
443
- */
444
- calculateRowSpan(itemEl, rowHeight, rowGap) {
445
- if (itemEl instanceof HTMLImageElement && (!itemEl.complete || itemEl.naturalHeight === 0)) {
446
- return undefined;
447
- }
448
- const height = itemEl.getBoundingClientRect().height;
449
- const itemStyles = getComputedStyle(itemEl);
450
- const marginBottom = parseFloat(itemStyles.getPropertyValue('margin-bottom')) || 0;
451
- const denominator = rowHeight + rowGap;
452
- if (!denominator || !Number.isFinite(denominator)) {
453
- return 1;
454
- }
455
- return Math.ceil((height + marginBottom + rowGap) / denominator) || 1;
456
- }
457
- /**
458
- * Get the index of the column to position the item in.
459
- * When the order is `best-fit`, the column with the shortest height is
460
- * returned. Otherwise, items are placed in the column that matches their
461
- * natural DOM order.
462
- */
463
- getColumnIndex(index, columnHeights, columns) {
464
- const order = this.getOrder();
465
- if (order === 'best-fit') {
466
- let columnIndex = 0;
467
- for (let i = 1; i < columns; i++) {
468
- if (columnHeights[i] < columnHeights[columnIndex]) {
469
- columnIndex = i;
470
- }
471
- }
472
- return columnIndex;
473
- }
474
- return index % columns;
475
- }
476
- /**
477
- * Apply masonry placement by assigning each item a column and row span.
478
- */
479
- layoutMasonry(items, rowHeight, rowGap, itemGap, columns) {
480
- const columnHeights = new Array(columns).fill(0);
481
- const lastItemsByColumn = new Array(columns).fill(undefined);
482
- items.forEach((itemEl, i) => {
483
- itemEl.style.marginBottom = '';
484
- if (itemEl.parentElement !== this.el) {
485
- itemEl.style.marginBottom = `${itemGap}px`;
486
- }
487
- const span = this.calculateRowSpan(itemEl, rowHeight, rowGap);
488
- if (span === undefined) {
489
- this.clearItemStyles(itemEl);
490
- return;
491
- }
492
- const columnIndex = this.getColumnIndex(i, columnHeights, columns);
493
- const start = columnHeights[columnIndex] + 1;
494
- itemEl.style.gridColumn = `${columnIndex + 1}`;
495
- itemEl.style.gridRowStart = `${start}`;
496
- itemEl.style.gridRowEnd = `span ${span}`;
497
- columnHeights[columnIndex] = start + span - 1;
498
- lastItemsByColumn[columnIndex] = itemEl;
499
- });
500
- // Remove trailing space from the final item in each column while preserving
501
- // spacing between all non-final items.
502
- lastItemsByColumn.forEach((itemEl) => {
503
- if (itemEl === undefined) {
504
- return;
505
- }
506
- itemEl.style.marginBottom = '0px';
507
- const spanWithoutTrailingGap = this.calculateRowSpan(itemEl, rowHeight, rowGap);
508
- if (spanWithoutTrailingGap === undefined) {
509
- this.clearItemStyles(itemEl);
510
- return;
511
- }
512
- itemEl.style.gridRowEnd = `span ${spanWithoutTrailingGap}`;
513
- });
514
- }
515
- /**
516
- * Resolved order for layout and CSS. Order should be `undefined` for
517
- * the uniform layout. When order is not set, it should be `"sequential"`
518
- * for the masonry layout.
519
- */
520
- getOrder() {
521
- const { layout } = this;
522
- const order = this.order == null ? undefined : this.order;
523
- if (layout === 'uniform') {
524
- return undefined;
525
- }
526
- if (layout === 'masonry' && order === undefined) {
527
- return 'sequential';
528
- }
529
- return order;
530
- }
531
- render() {
532
- const { layout } = this;
533
- const order = this.getOrder();
534
- const theme = ionicGlobal.getIonTheme(this);
535
- return (index.h(index.Host, { key: '0b6ef176032845b3df3b2335be90cb6ce5d791cc', class: {
536
- [theme]: true,
537
- [`gallery-layout-${layout}`]: true,
538
- [`gallery-order-${order}`]: layout === 'masonry' && order !== undefined,
539
- } }, index.h("slot", { key: '247df9bb58b6899da7db60cdd475ccff0872673e', onSlotchange: this.onSlotChange })));
540
- }
541
- get el() { return index.getElement(this); }
542
- static get watchers() { return {
543
- "columns": [{
544
- "onColumnsOrGapChanged": 0
545
- }],
546
- "gap": [{
547
- "onColumnsOrGapChanged": 0
548
- }],
549
- "layout": [{
550
- "onLayoutOrOrderChanged": 0
551
- }],
552
- "order": [{
553
- "onLayoutOrOrderChanged": 0
554
- }]
555
- }; }
556
- };
557
- Gallery.style = galleryCss();
558
-
559
- exports.ion_gallery = Gallery;
@@ -1,72 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- 'use strict';
5
-
6
- /**
7
- * Checks if an element has a parent matching the specified selector.
8
- * This handles an element in both light DOM and shadow DOM contexts.
9
- * @param selector The parent selector to check for (e.g., 'ion-datetime'
10
- * or 'ion-toolbar[color]').
11
- * @param el The element to check.
12
- * @returns `true` if the element has a parent matching the specified selector,
13
- * `false` otherwise.
14
- */
15
- const hostContext = (selector, el) => {
16
- // Check the light DOM first
17
- if (el.closest(selector) !== null) {
18
- return true;
19
- }
20
- // For attribute or class selectors (e.g., 'ion-toolbar[color]' or
21
- // 'ion-toolbar.ion-color') we can only check light DOM since tagName
22
- // doesn't include attributes or classes.
23
- if (selector.includes('[') || selector.includes('.')) {
24
- return false;
25
- }
26
- // Check the shadow DOM by looking at the shadow root host and
27
- // converting the selector to uppercase to compare with tagName
28
- const upperCaseTagName = selector.toUpperCase();
29
- const rootNode = el.getRootNode();
30
- const shadowHost = rootNode instanceof ShadowRoot ? rootNode.host : null;
31
- return (shadowHost === null || shadowHost === void 0 ? void 0 : shadowHost.tagName) === upperCaseTagName;
32
- };
33
- /**
34
- * Create the mode and color classes for the component based on the classes passed in
35
- */
36
- const createColorClasses = (color, cssClassMap) => {
37
- return typeof color === 'string' && color.length > 0
38
- ? Object.assign({ 'ion-color': true, [`ion-color-${color}`]: true }, cssClassMap) : cssClassMap;
39
- };
40
- const getClassList = (classes) => {
41
- if (classes !== undefined) {
42
- const array = Array.isArray(classes) ? classes : classes.split(' ');
43
- return array
44
- .filter((c) => c != null)
45
- .map((c) => c.trim())
46
- .filter((c) => c !== '');
47
- }
48
- return [];
49
- };
50
- const getClassMap = (classes) => {
51
- const map = {};
52
- getClassList(classes).forEach((c) => (map[c] = true));
53
- return map;
54
- };
55
- const SCHEME = /^[a-z][a-z0-9+\-.]*:/;
56
- const openURL = async (url, ev, direction, animation) => {
57
- if (url != null && url[0] !== '#' && !SCHEME.test(url)) {
58
- const router = document.querySelector('ion-router');
59
- if (router) {
60
- if (ev != null) {
61
- ev.preventDefault();
62
- }
63
- return router.push(url, direction, animation);
64
- }
65
- }
66
- return false;
67
- };
68
-
69
- exports.createColorClasses = createColorClasses;
70
- exports.getClassMap = getClassMap;
71
- exports.hostContext = hostContext;
72
- exports.openURL = openURL;