@ionic/core 8.7.16-dev.11767018329.15d3ae73 → 8.7.16-dev.11767018954.1c3fa899

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 (937) hide show
  1. package/components/action-sheet.js +15 -11
  2. package/components/alert.js +14 -11
  3. package/components/animation.js +1 -1
  4. package/components/backdrop.js +9 -6
  5. package/components/button.js +41 -10
  6. package/components/buttons.js +11 -8
  7. package/components/capacitor.js +1 -1
  8. package/components/caret-down.js +6 -0
  9. package/components/caret-left.js +6 -0
  10. package/components/caret-right.js +6 -0
  11. package/components/checkbox.js +31 -12
  12. package/components/content.js +14 -12
  13. package/components/data.js +5 -5
  14. package/components/focus-visible.js +23 -1
  15. package/components/framework-delegate.js +3 -1
  16. package/components/header.js +34 -22
  17. package/components/helpers.js +42 -3
  18. package/components/index5.js +8 -8
  19. package/components/index6.js +1 -1
  20. package/components/index7.js +111 -150
  21. package/components/index8.js +150 -111
  22. package/components/input-shims.js +2 -2
  23. package/components/input.utils.js +1 -1
  24. package/components/ion-accordion-group.js +23 -5
  25. package/components/ion-accordion.js +32 -21
  26. package/components/ion-app.js +12 -77
  27. package/components/ion-avatar.js +58 -5
  28. package/components/ion-back-button.js +27 -19
  29. package/components/ion-badge.js +73 -9
  30. package/components/ion-breadcrumb.js +43 -10
  31. package/components/ion-breadcrumbs.js +8 -5
  32. package/components/ion-card-content.js +10 -7
  33. package/components/ion-card-header.js +9 -6
  34. package/components/ion-card-subtitle.js +8 -5
  35. package/components/ion-card-title.js +8 -5
  36. package/components/ion-card.js +21 -9
  37. package/components/ion-chip.js +53 -8
  38. package/components/ion-col.js +51 -50
  39. package/components/ion-datetime-button.js +8 -5
  40. package/components/ion-datetime.js +98 -21
  41. package/components/ion-divider.d.ts +11 -0
  42. package/components/ion-divider.js +72 -0
  43. package/components/ion-fab-button.js +31 -15
  44. package/components/ion-fab-list.js +5 -5
  45. package/components/ion-fab.js +6 -6
  46. package/components/ion-footer.js +18 -13
  47. package/components/ion-grid.js +5 -5
  48. package/components/ion-img.js +5 -2
  49. package/components/ion-infinite-scroll-content.js +11 -8
  50. package/components/ion-infinite-scroll.js +78 -6
  51. package/components/ion-input-otp.js +9 -6
  52. package/components/ion-input-password-toggle.js +51 -13
  53. package/components/ion-input.js +120 -28
  54. package/components/ion-item-divider.js +8 -5
  55. package/components/ion-item-group.js +8 -5
  56. package/components/ion-item-option.js +36 -9
  57. package/components/ion-item-options.js +10 -7
  58. package/components/ion-item-sliding.js +5 -5
  59. package/components/ion-loading.js +12 -9
  60. package/components/ion-menu-button.js +26 -10
  61. package/components/ion-menu-toggle.js +5 -5
  62. package/components/ion-menu.js +10 -8
  63. package/components/ion-nav-link.js +1 -1
  64. package/components/ion-nav.js +7 -5
  65. package/components/ion-note.js +8 -5
  66. package/components/ion-picker-legacy.js +7 -7
  67. package/components/ion-progress-bar.js +25 -7
  68. package/components/ion-range.js +12 -9
  69. package/components/ion-refresher-content.js +23 -8
  70. package/components/ion-refresher.js +10 -7
  71. package/components/ion-reorder-group.js +5 -5
  72. package/components/ion-reorder.js +30 -5
  73. package/components/ion-router-link.js +6 -6
  74. package/components/ion-router-outlet.js +4 -4
  75. package/components/ion-row.js +6 -3
  76. package/components/ion-searchbar.js +137 -23
  77. package/components/ion-segment-button.js +10 -7
  78. package/components/ion-segment-content.js +1 -1
  79. package/components/ion-segment-view.js +5 -2
  80. package/components/ion-segment.js +10 -7
  81. package/components/ion-select-option.js +5 -2
  82. package/components/ion-select.js +117 -33
  83. package/components/ion-skeleton-text.js +5 -5
  84. package/components/ion-split-pane.js +11 -8
  85. package/components/ion-tab-bar.js +39 -9
  86. package/components/ion-tab-button.js +35 -8
  87. package/components/ion-tab.js +2 -2
  88. package/components/ion-tabs.js +2 -2
  89. package/components/ion-text.js +5 -5
  90. package/components/ion-textarea.js +52 -11
  91. package/components/ion-thumbnail.js +5 -2
  92. package/components/ion-toast.js +37 -12
  93. package/components/ion-toggle.js +74 -17
  94. package/components/ionic-global.js +364 -15
  95. package/components/ios.transition.js +1 -0
  96. package/components/item.js +47 -15
  97. package/components/keyboard-controller.js +4 -2
  98. package/components/label.js +8 -5
  99. package/components/list-header.js +10 -7
  100. package/components/list.js +27 -6
  101. package/components/list2.js +6 -0
  102. package/components/modal.js +51 -149
  103. package/components/notch-controller.js +1 -1
  104. package/components/overlays.js +3 -4
  105. package/components/picker-column-option.js +8 -5
  106. package/components/picker-column.js +7 -8
  107. package/components/picker-column2.js +4 -4
  108. package/components/picker.js +7 -4
  109. package/components/popover.js +12 -9
  110. package/components/radio-group.js +15 -7
  111. package/components/radio.js +11 -8
  112. package/components/ripple-effect.js +15 -7
  113. package/components/select-modal.js +12 -5
  114. package/components/select-popover.js +8 -2
  115. package/components/spinner.js +31 -8
  116. package/components/status-tap.js +1 -1
  117. package/components/title.js +10 -7
  118. package/components/toolbar.js +153 -9
  119. package/components/x.js +6 -0
  120. package/css/core.css +1 -1
  121. package/css/core.css.map +1 -1
  122. package/css/display.css +1 -1
  123. package/css/display.css.map +1 -1
  124. package/css/flex-utils.css +1 -1
  125. package/css/flex-utils.css.map +1 -1
  126. package/css/float-elements.css.map +1 -1
  127. package/css/global.bundle.css.map +1 -1
  128. package/css/ionic/bundle.ionic.css +1 -0
  129. package/css/ionic/bundle.ionic.css.map +1 -0
  130. package/css/ionic/core.ionic.css +1 -0
  131. package/css/ionic/core.ionic.css.map +1 -0
  132. package/css/ionic/global.bundle.ionic.css +1 -0
  133. package/css/ionic/global.bundle.ionic.css.map +1 -0
  134. package/css/ionic/ionic-swiper.ionic.css +1 -0
  135. package/css/ionic/ionic-swiper.ionic.css.map +1 -0
  136. package/css/ionic/link.ionic.css +1 -0
  137. package/css/ionic/link.ionic.css.map +1 -0
  138. package/css/ionic/structure.ionic.css +1 -0
  139. package/css/ionic/structure.ionic.css.map +1 -0
  140. package/css/ionic/typography.ionic.css +1 -0
  141. package/css/ionic/typography.ionic.css.map +1 -0
  142. package/css/ionic/utils.bundle.ionic.css +1 -0
  143. package/css/ionic/utils.bundle.ionic.css.map +1 -0
  144. package/css/ionic-swiper.css +1 -1
  145. package/css/ionic-swiper.css.map +1 -1
  146. package/css/ionic.bundle.css +1 -1
  147. package/css/ionic.bundle.css.map +1 -1
  148. package/css/normalize.css.map +1 -1
  149. package/css/padding.css.map +1 -1
  150. package/css/palettes/dark.always.css.map +1 -1
  151. package/css/palettes/dark.class.css.map +1 -1
  152. package/css/palettes/dark.system.css.map +1 -1
  153. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  154. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  155. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  156. package/css/palettes/high-contrast.always.css.map +1 -1
  157. package/css/palettes/high-contrast.class.css.map +1 -1
  158. package/css/palettes/high-contrast.system.css.map +1 -1
  159. package/css/structure.css.map +1 -1
  160. package/css/text-alignment.css.map +1 -1
  161. package/css/text-transformation.css.map +1 -1
  162. package/css/typography.css.map +1 -1
  163. package/css/utils.bundle.css +1 -1
  164. package/css/utils.bundle.css.map +1 -1
  165. package/dist/cjs/{animation-Bt3H9L1C.js → animation-CD5nuON9.js} +2 -2
  166. package/dist/cjs/{app-globals-Ciccnk9_.js → app-globals-CoW5jvJu.js} +1 -1
  167. package/dist/cjs/{button-active-CMc8cD90.js → button-active-Dxyabn6T.js} +1 -1
  168. package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-C8raJ_tU.js} +3 -3
  169. package/dist/cjs/caret-down-vtVgfXIs.js +8 -0
  170. package/dist/cjs/caret-left-CxZXLRv5.js +8 -0
  171. package/dist/cjs/caret-right-CRCgv98E.js +8 -0
  172. package/dist/cjs/{data-JwZKaIQB.js → data-MoL8Ckx5.js} +5 -5
  173. package/dist/cjs/{focus-visible-CCvKiLh3.js → focus-visible-BIj-I3-C.js} +24 -0
  174. package/dist/cjs/{framework-delegate-DMJRBuDi.js → framework-delegate-Bwdk9vFS.js} +4 -2
  175. package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-BU6_qLwg.js} +1 -1
  176. package/dist/cjs/{helpers-DrTqNghc.js → helpers-DnouLczu.js} +41 -2
  177. package/dist/cjs/{index-DrMUZJj6.js → index-C4_FN9N0.js} +15 -15
  178. package/dist/cjs/{index-C534ULug.js → index-CADY2xEW.js} +8 -7
  179. package/dist/cjs/{index-CO6eryBo.js → index-DUoP_H1L.js} +1 -1
  180. package/dist/cjs/{index-094mMFB-.js → index-JtyffOXl.js} +3 -3
  181. package/dist/cjs/index.cjs.js +10 -11
  182. package/dist/cjs/{input-shims-CW0KUFTQ.js → input-shims-C-YCyXjg.js} +17 -16
  183. package/dist/cjs/{input.utils-B_QROI2g.js → input.utils-C3-BwdV0.js} +5 -5
  184. package/dist/cjs/ion-accordion_2.cjs.entry.js +55 -26
  185. package/dist/cjs/ion-action-sheet.cjs.entry.js +23 -20
  186. package/dist/cjs/ion-alert.cjs.entry.js +22 -20
  187. package/dist/cjs/ion-app_8.cjs.entry.js +249 -150
  188. package/dist/cjs/ion-avatar_3.cjs.entry.js +123 -11
  189. package/dist/cjs/ion-back-button.cjs.entry.js +28 -19
  190. package/dist/cjs/ion-backdrop.cjs.entry.js +9 -6
  191. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +51 -15
  192. package/dist/cjs/ion-button_2.cjs.entry.js +43 -11
  193. package/dist/cjs/ion-card_5.cjs.entry.js +53 -29
  194. package/dist/cjs/ion-checkbox.cjs.entry.js +31 -13
  195. package/dist/cjs/ion-chip.cjs.entry.js +48 -7
  196. package/dist/cjs/ion-col_3.cjs.entry.js +53 -56
  197. package/dist/cjs/ion-datetime-button.cjs.entry.js +11 -7
  198. package/dist/cjs/ion-datetime_3.cjs.entry.js +113 -38
  199. package/dist/cjs/ion-divider.cjs.entry.js +51 -0
  200. package/dist/cjs/ion-fab_3.cjs.entry.js +41 -25
  201. package/dist/cjs/ion-img.cjs.entry.js +7 -3
  202. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +89 -14
  203. package/dist/cjs/ion-input-otp.cjs.entry.js +11 -7
  204. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +50 -12
  205. package/dist/cjs/ion-input.cjs.entry.js +120 -30
  206. package/dist/cjs/ion-item-option_3.cjs.entry.js +48 -19
  207. package/dist/cjs/ion-item_8.cjs.entry.js +113 -46
  208. package/dist/cjs/ion-loading.cjs.entry.js +17 -15
  209. package/dist/cjs/ion-menu_3.cjs.entry.js +44 -26
  210. package/dist/cjs/ion-modal.cjs.entry.js +99 -198
  211. package/dist/cjs/ion-nav_2.cjs.entry.js +13 -10
  212. package/dist/cjs/ion-picker-column-option.cjs.entry.js +10 -6
  213. package/dist/cjs/ion-picker-column.cjs.entry.js +12 -12
  214. package/dist/cjs/ion-picker.cjs.entry.js +9 -5
  215. package/dist/cjs/ion-popover.cjs.entry.js +18 -16
  216. package/dist/cjs/ion-progress-bar.cjs.entry.js +25 -7
  217. package/dist/cjs/ion-radio_2.cjs.entry.js +24 -14
  218. package/dist/cjs/ion-range.cjs.entry.js +14 -10
  219. package/dist/cjs/ion-refresher_2.cjs.entry.js +36 -18
  220. package/dist/cjs/ion-reorder_2.cjs.entry.js +36 -12
  221. package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -6
  222. package/dist/cjs/ion-route_4.cjs.entry.js +8 -7
  223. package/dist/cjs/ion-searchbar.cjs.entry.js +134 -21
  224. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  225. package/dist/cjs/ion-segment-view.cjs.entry.js +5 -2
  226. package/dist/cjs/ion-segment_2.cjs.entry.js +21 -14
  227. package/dist/cjs/ion-select-modal.cjs.entry.js +15 -9
  228. package/dist/cjs/ion-select_3.cjs.entry.js +129 -38
  229. package/dist/cjs/ion-spinner.cjs.entry.js +28 -6
  230. package/dist/cjs/ion-split-pane.cjs.entry.js +11 -8
  231. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +75 -21
  232. package/dist/cjs/ion-tab_2.cjs.entry.js +7 -6
  233. package/dist/cjs/ion-text.cjs.entry.js +5 -5
  234. package/dist/cjs/ion-textarea.cjs.entry.js +55 -15
  235. package/dist/cjs/ion-toast.cjs.entry.js +66 -43
  236. package/dist/cjs/ion-toggle.cjs.entry.js +78 -21
  237. package/dist/cjs/ionic-global-DpRwOXLK.js +506 -0
  238. package/dist/cjs/ionic.cjs.js +3 -3
  239. package/dist/cjs/{ios.transition-BOt_uW73.js → ios.transition-Dt4GT8w5.js} +6 -4
  240. package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-B8HJHbg3.js} +4 -3
  241. package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-BlrG3xPK.js} +1 -1
  242. package/dist/cjs/{keyboard-controller-GXBiBRKS.js → keyboard-controller-O8n0dTQz.js} +11 -9
  243. package/dist/cjs/list-a-7GSA6K.js +8 -0
  244. package/dist/cjs/loader.cjs.js +3 -3
  245. package/dist/cjs/{md.transition-Dt968VXB.js → md.transition-BolcQzNP.js} +5 -4
  246. package/dist/cjs/{notch-controller-Bzqhjm4f.js → notch-controller-BE80VRju.js} +4 -4
  247. package/dist/cjs/{overlays-B2b-TTbl.js → overlays-CRSQCKrz.js} +8 -9
  248. package/dist/cjs/{status-tap-g0sWWkXk.js → status-tap-e-hyosXV.js} +3 -2
  249. package/dist/cjs/{swipe-back-BIayeNOD.js → swipe-back-CR060nOX.js} +2 -1
  250. package/dist/cjs/x-BTF99yFH.js +8 -0
  251. package/dist/collection/collection-manifest.json +1 -0
  252. package/dist/collection/components/accordion/accordion.ionic.css +196 -0
  253. package/dist/collection/components/accordion/accordion.ios.css +73 -58
  254. package/dist/collection/components/accordion/accordion.js +36 -26
  255. package/dist/collection/components/accordion/accordion.md.css +67 -59
  256. package/dist/collection/components/accordion-group/accordion-group.ionic.css +93 -0
  257. package/dist/collection/components/accordion-group/accordion-group.ios.css +16 -4
  258. package/dist/collection/components/accordion-group/accordion-group.js +44 -8
  259. package/dist/collection/components/accordion-group/accordion-group.md.css +22 -4
  260. package/dist/collection/components/action-sheet/action-sheet.ios.css +18 -6
  261. package/dist/collection/components/action-sheet/action-sheet.js +17 -13
  262. package/dist/collection/components/action-sheet/action-sheet.md.css +17 -5
  263. package/dist/collection/components/alert/alert.ios.css +19 -1
  264. package/dist/collection/components/alert/alert.js +16 -13
  265. package/dist/collection/components/alert/alert.md.css +19 -1
  266. package/dist/collection/components/app/app.js +15 -78
  267. package/dist/collection/components/avatar/avatar.ionic.css +391 -0
  268. package/dist/collection/components/avatar/avatar.ios.css +7 -33
  269. package/dist/collection/components/avatar/avatar.js +120 -4
  270. package/dist/collection/components/avatar/avatar.md.css +51 -0
  271. package/dist/collection/components/back-button/back-button.ios.css +60 -48
  272. package/dist/collection/components/back-button/back-button.js +27 -19
  273. package/dist/collection/components/back-button/back-button.md.css +60 -48
  274. package/dist/collection/components/backdrop/backdrop.ionic.css +109 -0
  275. package/dist/collection/components/backdrop/backdrop.ios.css +56 -19
  276. package/dist/collection/components/backdrop/backdrop.js +12 -6
  277. package/dist/collection/components/backdrop/backdrop.md.css +56 -19
  278. package/dist/collection/components/badge/badge.ionic.css +275 -0
  279. package/dist/collection/components/badge/badge.ios.css +139 -12
  280. package/dist/collection/components/badge/badge.js +145 -9
  281. package/dist/collection/components/badge/badge.md.css +123 -12
  282. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +20 -8
  283. package/dist/collection/components/breadcrumb/breadcrumb.js +43 -11
  284. package/dist/collection/components/breadcrumb/breadcrumb.md.css +20 -8
  285. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +6 -0
  286. package/dist/collection/components/breadcrumbs/breadcrumbs.js +11 -9
  287. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +6 -0
  288. package/dist/collection/components/button/button.ionic.css +636 -0
  289. package/dist/collection/components/button/button.ios.css +135 -46
  290. package/dist/collection/components/button/button.js +48 -17
  291. package/dist/collection/components/button/button.md.css +126 -50
  292. package/dist/collection/components/buttons/buttons.ionic.css +97 -0
  293. package/dist/collection/components/buttons/buttons.ios.css +59 -7
  294. package/dist/collection/components/buttons/buttons.js +15 -9
  295. package/dist/collection/components/buttons/buttons.md.css +55 -3
  296. package/dist/collection/components/card/card.ionic.css +144 -0
  297. package/dist/collection/components/card/card.ios.css +65 -14
  298. package/dist/collection/components/card/card.js +41 -10
  299. package/dist/collection/components/card/card.md.css +65 -14
  300. package/dist/collection/components/card-content/card-content.ionic.css +92 -0
  301. package/dist/collection/components/card-content/card-content.ios.css +16 -1
  302. package/dist/collection/components/card-content/card-content.js +11 -8
  303. package/dist/collection/components/card-content/card-content.md.css +16 -1
  304. package/dist/collection/components/card-header/card-header.ionic.css +85 -0
  305. package/dist/collection/components/card-header/card-header.ios.css +27 -15
  306. package/dist/collection/components/card-header/card-header.js +13 -10
  307. package/dist/collection/components/card-header/card-header.md.css +27 -15
  308. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +144 -0
  309. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +12 -0
  310. package/dist/collection/components/card-subtitle/card-subtitle.js +11 -8
  311. package/dist/collection/components/card-subtitle/card-subtitle.md.css +12 -0
  312. package/dist/collection/components/card-title/card-title.ios.css +73 -0
  313. package/dist/collection/components/card-title/card-title.js +11 -8
  314. package/dist/collection/components/card-title/card-title.md.css +73 -0
  315. package/dist/collection/components/checkbox/checkbox.ionic.css +545 -0
  316. package/dist/collection/components/checkbox/checkbox.ios.css +161 -101
  317. package/dist/collection/components/checkbox/checkbox.js +70 -14
  318. package/dist/collection/components/checkbox/checkbox.md.css +162 -102
  319. package/dist/collection/components/chip/chip.ionic.css +215 -0
  320. package/dist/collection/components/chip/chip.ios.css +67 -14
  321. package/dist/collection/components/chip/chip.js +108 -8
  322. package/dist/collection/components/chip/chip.md.css +67 -14
  323. package/dist/collection/components/col/col.css +192 -4
  324. package/dist/collection/components/col/col.js +210 -61
  325. package/dist/collection/components/content/content.css +8 -2
  326. package/dist/collection/components/content/content.js +16 -11
  327. package/dist/collection/components/datetime/datetime.ionic.css +711 -0
  328. package/dist/collection/components/datetime/datetime.ios.css +258 -96
  329. package/dist/collection/components/datetime/datetime.js +98 -20
  330. package/dist/collection/components/datetime/datetime.md.css +258 -96
  331. package/dist/collection/components/datetime/utils/data.js +5 -5
  332. package/dist/collection/components/datetime-button/datetime-button.ios.css +6 -0
  333. package/dist/collection/components/datetime-button/datetime-button.js +11 -8
  334. package/dist/collection/components/datetime-button/datetime-button.md.css +6 -0
  335. package/dist/collection/components/divider/divider.ionic.css +148 -0
  336. package/dist/collection/components/divider/divider.ios.css +87 -0
  337. package/dist/collection/components/divider/divider.js +94 -0
  338. package/dist/collection/components/divider/divider.md.css +87 -0
  339. package/dist/collection/components/fab/fab.css +25 -1
  340. package/dist/collection/components/fab/fab.js +9 -5
  341. package/dist/collection/components/fab-button/fab-button.ios.css +18 -6
  342. package/dist/collection/components/fab-button/fab-button.js +36 -21
  343. package/dist/collection/components/fab-button/fab-button.md.css +20 -8
  344. package/dist/collection/components/fab-list/fab-list.css +12 -0
  345. package/dist/collection/components/fab-list/fab-list.js +9 -5
  346. package/dist/collection/components/footer/footer.ios.css +14 -2
  347. package/dist/collection/components/footer/footer.js +21 -16
  348. package/dist/collection/components/footer/footer.md.css +12 -0
  349. package/dist/collection/components/grid/grid.css +12 -0
  350. package/dist/collection/components/grid/grid.js +9 -5
  351. package/dist/collection/components/header/header.ionic.css +97 -0
  352. package/dist/collection/components/header/header.ios.css +25 -10
  353. package/dist/collection/components/header/header.js +50 -19
  354. package/dist/collection/components/header/header.md.css +23 -8
  355. package/dist/collection/components/header/header.utils.js +5 -5
  356. package/dist/collection/components/img/img.js +8 -2
  357. package/dist/collection/components/infinite-scroll/infinite-scroll.js +100 -5
  358. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +12 -0
  359. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +16 -10
  360. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +12 -0
  361. package/dist/collection/components/input/input.ionic.css +885 -0
  362. package/dist/collection/components/input/input.ios.css +223 -140
  363. package/dist/collection/components/input/input.js +149 -38
  364. package/dist/collection/components/input/input.md.css +193 -212
  365. package/dist/collection/components/input-otp/input-otp.ionic.css +369 -0
  366. package/dist/collection/components/input-otp/input-otp.ios.css +102 -60
  367. package/dist/collection/components/input-otp/input-otp.js +7 -5
  368. package/dist/collection/components/input-otp/input-otp.md.css +102 -60
  369. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +78 -0
  370. package/dist/collection/components/input-password-toggle/input-password-toggle.js +48 -12
  371. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +61 -0
  372. package/dist/collection/components/item/item.ionic.css +508 -0
  373. package/dist/collection/components/item/item.ios.css +109 -69
  374. package/dist/collection/components/item/item.js +51 -20
  375. package/dist/collection/components/item/item.md.css +120 -68
  376. package/dist/collection/components/item-divider/item-divider.ios.css +18 -0
  377. package/dist/collection/components/item-divider/item-divider.js +11 -8
  378. package/dist/collection/components/item-divider/item-divider.md.css +18 -0
  379. package/dist/collection/components/item-group/item-group.ios.css +12 -0
  380. package/dist/collection/components/item-group/item-group.js +13 -7
  381. package/dist/collection/components/item-group/item-group.md.css +12 -0
  382. package/dist/collection/components/item-option/item-option.ionic.css +278 -0
  383. package/dist/collection/components/item-option/item-option.ios.css +136 -29
  384. package/dist/collection/components/item-option/item-option.js +73 -9
  385. package/dist/collection/components/item-option/item-option.md.css +136 -29
  386. package/dist/collection/components/item-options/item-options.ionic.css +221 -0
  387. package/dist/collection/components/item-options/item-options.ios.css +77 -34
  388. package/dist/collection/components/item-options/item-options.js +13 -7
  389. package/dist/collection/components/item-options/item-options.md.css +77 -34
  390. package/dist/collection/components/item-sliding/item-sliding.css +6 -0
  391. package/dist/collection/components/item-sliding/item-sliding.js +8 -4
  392. package/dist/collection/components/label/label.ios.css +18 -0
  393. package/dist/collection/components/label/label.js +11 -8
  394. package/dist/collection/components/label/label.md.css +18 -0
  395. package/dist/collection/components/list/list.ionic.css +212 -0
  396. package/dist/collection/components/list/list.ios.css +54 -14
  397. package/dist/collection/components/list/list.js +48 -9
  398. package/dist/collection/components/list/list.md.css +56 -16
  399. package/dist/collection/components/list-header/list-header.ionic.css +190 -0
  400. package/dist/collection/components/list-header/list-header.ios.css +82 -38
  401. package/dist/collection/components/list-header/list-header.js +11 -8
  402. package/dist/collection/components/list-header/list-header.md.css +82 -38
  403. package/dist/collection/components/loading/loading.ios.css +13 -1
  404. package/dist/collection/components/loading/loading.js +14 -11
  405. package/dist/collection/components/loading/loading.md.css +13 -1
  406. package/dist/collection/components/menu/menu.ios.css +15 -3
  407. package/dist/collection/components/menu/menu.js +12 -7
  408. package/dist/collection/components/menu/menu.md.css +15 -3
  409. package/dist/collection/components/menu-button/menu-button.ionic.css +236 -0
  410. package/dist/collection/components/menu-button/menu-button.ios.css +48 -14
  411. package/dist/collection/components/menu-button/menu-button.js +26 -10
  412. package/dist/collection/components/menu-button/menu-button.md.css +49 -15
  413. package/dist/collection/components/menu-toggle/menu-toggle.js +8 -5
  414. package/dist/collection/components/modal/animations/sheet.js +8 -2
  415. package/dist/collection/components/modal/gestures/sheet.js +10 -8
  416. package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -3
  417. package/dist/collection/components/modal/modal.ionic.css +247 -0
  418. package/dist/collection/components/modal/modal.ios.css +178 -70
  419. package/dist/collection/components/modal/modal.js +50 -135
  420. package/dist/collection/components/modal/modal.md.css +178 -70
  421. package/dist/collection/components/nav/nav.css +7 -1
  422. package/dist/collection/components/nav/nav.js +11 -5
  423. package/dist/collection/components/nav-link/nav-link.js +5 -1
  424. package/dist/collection/components/note/note.ios.css +12 -0
  425. package/dist/collection/components/note/note.js +11 -8
  426. package/dist/collection/components/note/note.md.css +12 -0
  427. package/dist/collection/components/picker/picker.ios.css +15 -3
  428. package/dist/collection/components/picker/picker.js +8 -5
  429. package/dist/collection/components/picker/picker.md.css +15 -3
  430. package/dist/collection/components/picker-column/picker-column.css +9 -2
  431. package/dist/collection/components/picker-column/picker-column.js +8 -7
  432. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +6 -0
  433. package/dist/collection/components/picker-column-option/picker-column-option.js +13 -7
  434. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -0
  435. package/dist/collection/components/picker-legacy/picker.ios.css +13 -1
  436. package/dist/collection/components/picker-legacy/picker.js +7 -6
  437. package/dist/collection/components/picker-legacy/picker.md.css +13 -1
  438. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +12 -0
  439. package/dist/collection/components/picker-legacy-column/picker-column.js +4 -4
  440. package/dist/collection/components/picker-legacy-column/picker-column.md.css +12 -0
  441. package/dist/collection/components/popover/popover.ios.css +13 -1
  442. package/dist/collection/components/popover/popover.js +17 -14
  443. package/dist/collection/components/popover/popover.md.css +13 -1
  444. package/dist/collection/components/progress-bar/progress-bar.ionic.css +287 -0
  445. package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
  446. package/dist/collection/components/progress-bar/progress-bar.js +43 -7
  447. package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
  448. package/dist/collection/components/radio/radio.ionic.css +422 -0
  449. package/dist/collection/components/radio/radio.ios.css +134 -91
  450. package/dist/collection/components/radio/radio.js +12 -9
  451. package/dist/collection/components/radio/radio.md.css +134 -91
  452. package/dist/collection/components/radio-group/radio-group.ionic.css +119 -0
  453. package/dist/collection/components/radio-group/radio-group.ios.css +43 -23
  454. package/dist/collection/components/radio-group/radio-group.js +21 -6
  455. package/dist/collection/components/radio-group/radio-group.md.css +43 -23
  456. package/dist/collection/components/range/range.ionic.css +563 -0
  457. package/dist/collection/components/range/range.ios.css +128 -85
  458. package/dist/collection/components/range/range.js +12 -9
  459. package/dist/collection/components/range/range.md.css +128 -85
  460. package/dist/collection/components/refresher/refresher.ios.css +14 -1
  461. package/dist/collection/components/refresher/refresher.js +11 -8
  462. package/dist/collection/components/refresher/refresher.md.css +15 -2
  463. package/dist/collection/components/refresher-content/refresher-content.js +28 -7
  464. package/dist/collection/components/reorder/reorder.ios.css +6 -0
  465. package/dist/collection/components/reorder/reorder.js +33 -6
  466. package/dist/collection/components/reorder/reorder.md.css +6 -0
  467. package/dist/collection/components/reorder-group/reorder-group.css +6 -0
  468. package/dist/collection/components/reorder-group/reorder-group.js +8 -4
  469. package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
  470. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +215 -0
  471. package/dist/collection/components/ripple-effect/ripple-effect.js +14 -6
  472. package/dist/collection/components/route/route.js +4 -0
  473. package/dist/collection/components/router/router.js +4 -0
  474. package/dist/collection/components/router-link/router-link.css +8 -2
  475. package/dist/collection/components/router-link/router-link.js +9 -5
  476. package/dist/collection/components/router-outlet/router-outlet.css +7 -1
  477. package/dist/collection/components/router-outlet/router-outlet.js +6 -3
  478. package/dist/collection/components/row/row.css +16 -0
  479. package/dist/collection/components/row/row.js +9 -2
  480. package/dist/collection/components/searchbar/searchbar.ionic.css +626 -0
  481. package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
  482. package/dist/collection/components/searchbar/searchbar.js +181 -34
  483. package/dist/collection/components/searchbar/searchbar.md.css +56 -18
  484. package/dist/collection/components/segment/segment.ionic.css +115 -0
  485. package/dist/collection/components/segment/segment.ios.css +45 -2
  486. package/dist/collection/components/segment/segment.js +11 -8
  487. package/dist/collection/components/segment/segment.md.css +45 -2
  488. package/dist/collection/components/segment-button/segment-button.ionic.css +351 -0
  489. package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
  490. package/dist/collection/components/segment-button/segment-button.js +11 -8
  491. package/dist/collection/components/segment-button/segment-button.md.css +148 -107
  492. package/dist/collection/components/segment-content/segment-content.js +1 -1
  493. package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
  494. package/dist/collection/components/segment-view/segment-view.js +6 -4
  495. package/dist/collection/components/segment-view/segment-view.md.css +6 -0
  496. package/dist/collection/components/select/select.ionic.css +777 -0
  497. package/dist/collection/components/select/select.ios.css +315 -176
  498. package/dist/collection/components/select/select.js +156 -53
  499. package/dist/collection/components/select/select.md.css +331 -178
  500. package/dist/collection/components/select-modal/select-modal.ionic.css +130 -0
  501. package/dist/collection/components/select-modal/select-modal.ios.css +18 -0
  502. package/dist/collection/components/select-modal/select-modal.js +11 -4
  503. package/dist/collection/components/select-modal/select-modal.md.css +7 -3
  504. package/dist/collection/components/select-option/select-option.js +9 -2
  505. package/dist/collection/components/select-popover/select-popover.ios.css +18 -0
  506. package/dist/collection/components/select-popover/select-popover.js +12 -4
  507. package/dist/collection/components/select-popover/select-popover.md.css +18 -0
  508. package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
  509. package/dist/collection/components/skeleton-text/skeleton-text.js +9 -5
  510. package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +77 -10
  511. package/dist/collection/components/spinner/spinner.js +47 -6
  512. package/dist/collection/components/spinner/spinner.native.css +198 -0
  513. package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
  514. package/dist/collection/components/split-pane/split-pane.js +14 -8
  515. package/dist/collection/components/split-pane/split-pane.md.css +20 -2
  516. package/dist/collection/components/tab/tab.js +6 -2
  517. package/dist/collection/components/tab-bar/tab-bar.ionic.css +201 -0
  518. package/dist/collection/components/tab-bar/tab-bar.ios.css +71 -43
  519. package/dist/collection/components/tab-bar/tab-bar.js +78 -11
  520. package/dist/collection/components/tab-bar/tab-bar.md.css +71 -43
  521. package/dist/collection/components/tab-button/tab-button.ionic.css +337 -0
  522. package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
  523. package/dist/collection/components/tab-button/tab-button.js +54 -9
  524. package/dist/collection/components/tab-button/tab-button.md.css +137 -93
  525. package/dist/collection/components/tabs/tabs.css +7 -1
  526. package/dist/collection/components/tabs/tabs.js +4 -1
  527. package/dist/collection/components/text/text.css +6 -0
  528. package/dist/collection/components/text/text.js +7 -6
  529. package/dist/collection/components/textarea/textarea.ionic.css +885 -0
  530. package/dist/collection/components/textarea/textarea.ios.css +275 -139
  531. package/dist/collection/components/textarea/textarea.js +76 -16
  532. package/dist/collection/components/textarea/textarea.md.css +288 -140
  533. package/dist/collection/components/thumbnail/thumbnail.css +6 -0
  534. package/dist/collection/components/thumbnail/thumbnail.js +9 -2
  535. package/dist/collection/components/title/title.ionic.css +127 -0
  536. package/dist/collection/components/title/title.ios.css +32 -4
  537. package/dist/collection/components/title/title.js +13 -7
  538. package/dist/collection/components/title/title.md.css +32 -4
  539. package/dist/collection/components/toast/animations/utils.js +1 -1
  540. package/dist/collection/components/toast/toast.ionic.css +394 -0
  541. package/dist/collection/components/toast/toast.ios.css +84 -45
  542. package/dist/collection/components/toast/toast.js +75 -12
  543. package/dist/collection/components/toast/toast.md.css +84 -45
  544. package/dist/collection/components/toggle/toggle.ionic.css +514 -0
  545. package/dist/collection/components/toggle/toggle.ios.css +247 -131
  546. package/dist/collection/components/toggle/toggle.js +73 -18
  547. package/dist/collection/components/toggle/toggle.md.css +244 -131
  548. package/dist/collection/components/toolbar/test/image.svg +1 -0
  549. package/dist/collection/components/toolbar/toolbar.ionic.css +241 -0
  550. package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
  551. package/dist/collection/components/toolbar/toolbar.js +157 -13
  552. package/dist/collection/components/toolbar/toolbar.md.css +90 -47
  553. package/dist/collection/global/ionic-global.js +228 -13
  554. package/dist/collection/utils/focus-visible.js +22 -0
  555. package/dist/collection/utils/framework-delegate.js +3 -1
  556. package/dist/collection/utils/hardware-back-button.js +15 -0
  557. package/dist/collection/utils/helpers.js +42 -2
  558. package/dist/collection/utils/keyboard/keyboard-controller.js +3 -1
  559. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  560. package/dist/collection/utils/menu-controller/animations/push.js +2 -1
  561. package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
  562. package/dist/collection/utils/overlays.js +2 -1
  563. package/dist/collection/utils/test/playwright/generator.js +48 -23
  564. package/dist/collection/utils/test/playwright/page/utils/goto.js +14 -5
  565. package/dist/collection/utils/test/playwright/page/utils/set-content.js +26 -3
  566. package/dist/collection/utils/transition/ios.transition.js +1 -0
  567. package/dist/docs.json +8195 -374
  568. package/dist/esm/{animation-Dt8bGnA-.js → animation-BNuoDl-O.js} +1 -1
  569. package/dist/esm/{app-globals-BDSf8fOA.js → app-globals-tX0s9Zd7.js} +1 -1
  570. package/dist/esm/{button-active-L570Swow.js → button-active-BF6GZ_yH.js} +1 -1
  571. package/dist/esm/{capacitor-CFERIeaU.js → capacitor-pzVAlnC0.js} +1 -1
  572. package/dist/esm/caret-down-D1t981Ih.js +6 -0
  573. package/dist/esm/caret-left-fIOYmaqA.js +6 -0
  574. package/dist/esm/caret-right-BYSs-jZz.js +6 -0
  575. package/dist/esm/{data-DCORV9FH.js → data-DFCY8gnk.js} +5 -5
  576. package/dist/esm/{focus-visible-BmVRXR1y.js → focus-visible-vXpMhGrs.js} +23 -1
  577. package/dist/esm/{framework-delegate-BYawdMXj.js → framework-delegate-D2mUP0WI.js} +4 -2
  578. package/dist/esm/{haptic-DzAMWJuk.js → haptic-bBvyATla.js} +1 -1
  579. package/dist/esm/{helpers-DEn3pfjm.js → helpers-Bsml3FcE.js} +42 -3
  580. package/dist/esm/{index-CvDIirVx.js → index-BQI9hSZP.js} +10 -10
  581. package/dist/esm/{index-ceb5RaMT.js → index-Bnw-zNoN.js} +3 -2
  582. package/dist/esm/{index-Bs3kT4bc.js → index-BpFi2B8W.js} +1 -1
  583. package/dist/esm/{index-DV3sJJW8.js → index-COG0_eom.js} +1 -1
  584. package/dist/esm/{index-r2D9DEro.js → index-M3l-IyxQ.js} +3 -3
  585. package/dist/esm/index.js +10 -11
  586. package/dist/esm/{input-shims-DyOpfTg6.js → input-shims-ACbgRt10.js} +6 -5
  587. package/dist/esm/{input.utils-DrvTa8gz.js → input.utils-loPnHH5H.js} +2 -2
  588. package/dist/esm/ion-accordion_2.entry.js +56 -27
  589. package/dist/esm/ion-action-sheet.entry.js +23 -20
  590. package/dist/esm/ion-alert.entry.js +22 -20
  591. package/dist/esm/ion-app_8.entry.js +250 -151
  592. package/dist/esm/ion-avatar_3.entry.js +125 -13
  593. package/dist/esm/ion-back-button.entry.js +29 -20
  594. package/dist/esm/ion-backdrop.entry.js +9 -6
  595. package/dist/esm/ion-breadcrumb_2.entry.js +53 -17
  596. package/dist/esm/ion-button_2.entry.js +43 -11
  597. package/dist/esm/ion-card_5.entry.js +53 -29
  598. package/dist/esm/ion-checkbox.entry.js +31 -13
  599. package/dist/esm/ion-chip.entry.js +49 -8
  600. package/dist/esm/ion-col_3.entry.js +54 -57
  601. package/dist/esm/ion-datetime-button.entry.js +11 -7
  602. package/dist/esm/ion-datetime_3.entry.js +115 -40
  603. package/dist/esm/ion-divider.entry.js +49 -0
  604. package/dist/esm/ion-fab_3.entry.js +43 -27
  605. package/dist/esm/ion-img.entry.js +7 -3
  606. package/dist/esm/ion-infinite-scroll_2.entry.js +89 -14
  607. package/dist/esm/ion-input-otp.entry.js +11 -7
  608. package/dist/esm/ion-input-password-toggle.entry.js +52 -14
  609. package/dist/esm/ion-input.entry.js +122 -32
  610. package/dist/esm/ion-item-option_3.entry.js +48 -19
  611. package/dist/esm/ion-item_8.entry.js +115 -48
  612. package/dist/esm/ion-loading.entry.js +17 -15
  613. package/dist/esm/ion-menu_3.entry.js +45 -27
  614. package/dist/esm/ion-modal.entry.js +59 -158
  615. package/dist/esm/ion-nav_2.entry.js +13 -10
  616. package/dist/esm/ion-picker-column-option.entry.js +10 -6
  617. package/dist/esm/ion-picker-column.entry.js +11 -11
  618. package/dist/esm/ion-picker.entry.js +9 -5
  619. package/dist/esm/ion-popover.entry.js +18 -16
  620. package/dist/esm/ion-progress-bar.entry.js +25 -7
  621. package/dist/esm/ion-radio_2.entry.js +24 -14
  622. package/dist/esm/ion-range.entry.js +14 -10
  623. package/dist/esm/ion-refresher_2.entry.js +37 -19
  624. package/dist/esm/ion-reorder_2.entry.js +38 -14
  625. package/dist/esm/ion-ripple-effect.entry.js +14 -6
  626. package/dist/esm/ion-route_4.entry.js +8 -7
  627. package/dist/esm/ion-searchbar.entry.js +137 -24
  628. package/dist/esm/ion-segment-content.entry.js +1 -1
  629. package/dist/esm/ion-segment-view.entry.js +5 -2
  630. package/dist/esm/ion-segment_2.entry.js +21 -14
  631. package/dist/esm/ion-select-modal.entry.js +16 -10
  632. package/dist/esm/ion-select_3.entry.js +131 -40
  633. package/dist/esm/ion-spinner.entry.js +28 -6
  634. package/dist/esm/ion-split-pane.entry.js +11 -8
  635. package/dist/esm/ion-tab-bar_2.entry.js +75 -21
  636. package/dist/esm/ion-tab_2.entry.js +7 -6
  637. package/dist/esm/ion-text.entry.js +5 -5
  638. package/dist/esm/ion-textarea.entry.js +55 -15
  639. package/dist/esm/ion-toast.entry.js +40 -17
  640. package/dist/esm/ion-toggle.entry.js +79 -22
  641. package/dist/esm/ionic-global-2lDD9k7y.js +495 -0
  642. package/dist/esm/ionic.js +3 -3
  643. package/dist/esm/{ios.transition-BDzw0_Hm.js → ios.transition-uJxJFbq8.js} +6 -4
  644. package/dist/esm/{keyboard-ywgs5efA.js → keyboard-B-HHSSYU.js} +4 -3
  645. package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-CU1vRv-b.js} +1 -1
  646. package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-Dplyc4OV.js} +5 -3
  647. package/dist/esm/list-Dhi5xtNS.js +6 -0
  648. package/dist/esm/loader.js +3 -3
  649. package/dist/esm/{md.transition-BzDYi3qq.js → md.transition-Dp4NTeSh.js} +5 -4
  650. package/dist/esm/{notch-controller-BwelN_JM.js → notch-controller-BvFDmO69.js} +2 -2
  651. package/dist/esm/{overlays-D5YkFThA.js → overlays-B037a9Tz.js} +5 -6
  652. package/dist/esm/{status-tap-5DQ7Fc4V.js → status-tap-DXVlluKS.js} +3 -2
  653. package/dist/esm/{swipe-back-BKw2CAHc.js → swipe-back-DNhAt9fY.js} +2 -1
  654. package/dist/esm/x-BDqjX7Z_.js +6 -0
  655. package/dist/html.html-data.json +2530 -224
  656. package/dist/ionic/index.esm.js +1 -1
  657. package/dist/ionic/ionic.esm.js +1 -1
  658. package/dist/ionic/p-01577340.entry.js +4 -0
  659. package/dist/ionic/p-04b1d37a.entry.js +4 -0
  660. package/dist/ionic/p-04e0ff62.entry.js +4 -0
  661. package/dist/ionic/p-0607ce8e.entry.js +4 -0
  662. package/dist/ionic/p-0744265c.entry.js +4 -0
  663. package/dist/ionic/p-0ac7c560.entry.js +4 -0
  664. package/dist/ionic/p-0c41c8a8.entry.js +4 -0
  665. package/dist/ionic/p-0eecce18.entry.js +4 -0
  666. package/dist/ionic/p-0f124806.entry.js +4 -0
  667. package/dist/ionic/p-19b2060d.entry.js +4 -0
  668. package/dist/ionic/p-27dbb44c.entry.js +4 -0
  669. package/dist/ionic/p-28a9d991.entry.js +4 -0
  670. package/dist/ionic/p-2dc676b2.entry.js +4 -0
  671. package/dist/ionic/p-381eb2a4.entry.js +4 -0
  672. package/dist/ionic/p-412d5d9e.entry.js +4 -0
  673. package/dist/ionic/p-42149296.entry.js +4 -0
  674. package/dist/ionic/p-5543b7b8.entry.js +4 -0
  675. package/dist/ionic/p-57a2d30b.entry.js +4 -0
  676. package/dist/ionic/p-59a79bd9.entry.js +4 -0
  677. package/dist/ionic/p-5daa0980.entry.js +4 -0
  678. package/dist/ionic/p-5f9d9c14.entry.js +4 -0
  679. package/dist/ionic/p-60549f06.entry.js +4 -0
  680. package/dist/ionic/p-616dd053.entry.js +4 -0
  681. package/dist/ionic/p-63a2b52a.entry.js +4 -0
  682. package/dist/ionic/p-67a63ae1.entry.js +4 -0
  683. package/dist/ionic/p-68c064ce.entry.js +4 -0
  684. package/dist/ionic/p-6bb99f41.entry.js +4 -0
  685. package/dist/ionic/p-6e3686f8.entry.js +4 -0
  686. package/dist/ionic/p-7fe3ea65.entry.js +4 -0
  687. package/dist/ionic/p-826267d6.entry.js +4 -0
  688. package/dist/ionic/p-8681a2a7.entry.js +4 -0
  689. package/dist/ionic/p-8ee09d4e.entry.js +4 -0
  690. package/dist/ionic/p-8f541b05.entry.js +4 -0
  691. package/dist/ionic/p-9ffffebd.entry.js +4 -0
  692. package/dist/ionic/{p-D13Eaw-8.js → p-B-D7Cfki.js} +1 -1
  693. package/dist/ionic/{p-CwgG81ZD.js → p-B3uz75uZ.js} +1 -1
  694. package/dist/ionic/p-BDqjX7Z_.js +4 -0
  695. package/dist/ionic/p-BYSs-jZz.js +4 -0
  696. package/dist/ionic/p-BiTKUjko.js +4 -0
  697. package/dist/ionic/p-ByhhQryg.js +4 -0
  698. package/dist/ionic/{p-DCv9sLH2.js → p-C8r4dtYR.js} +1 -1
  699. package/dist/ionic/p-CK1xn1Nt.js +4 -0
  700. package/dist/ionic/{p-DV3sJJW8.js → p-COG0_eom.js} +1 -1
  701. package/dist/ionic/p-COLHV2ym.js +4 -0
  702. package/dist/ionic/p-C_97se21.js +4 -0
  703. package/dist/ionic/{p-CKvCXMs9.js → p-Cq83JWMg.js} +1 -1
  704. package/dist/ionic/{p-Dc45iWE4.js → p-CtUK3cKk.js} +1 -1
  705. package/dist/ionic/p-CvRDI-Iz.js +4 -0
  706. package/dist/ionic/{p-CJxh_yLS.js → p-D-BelbiX.js} +1 -1
  707. package/dist/ionic/p-D1t981Ih.js +4 -0
  708. package/dist/ionic/p-DHeUgOSJ.js +4 -0
  709. package/dist/ionic/p-DM-v_NNE.js +4 -0
  710. package/dist/ionic/p-DeEDqH91.js +4 -0
  711. package/dist/ionic/p-Dhi5xtNS.js +4 -0
  712. package/dist/ionic/p-DoGrslUl.js +4 -0
  713. package/dist/ionic/p-Dq8ap6AD.js +4 -0
  714. package/dist/ionic/p-DyaKZbAH.js +4 -0
  715. package/dist/ionic/{p-D0dMcSkw.js → p-HpOiAvpC.js} +1 -1
  716. package/dist/ionic/p-UafGZQ8e.js +4 -0
  717. package/dist/ionic/p-a35678f4.entry.js +4 -0
  718. package/dist/ionic/p-a6a37a34.entry.js +4 -0
  719. package/dist/ionic/p-a89211bd.entry.js +4 -0
  720. package/dist/ionic/p-add1a5d8.entry.js +4 -0
  721. package/dist/ionic/p-af1f624e.entry.js +4 -0
  722. package/dist/ionic/p-b475ec18.entry.js +4 -0
  723. package/dist/ionic/p-bd295ca7.entry.js +4 -0
  724. package/dist/ionic/p-be82dc77.entry.js +4 -0
  725. package/dist/ionic/p-c082f853.entry.js +4 -0
  726. package/dist/ionic/p-cdbfbff6.entry.js +4 -0
  727. package/dist/ionic/p-d3f64c58.entry.js +4 -0
  728. package/dist/ionic/p-d9c9592a.entry.js +4 -0
  729. package/dist/ionic/p-da0a2ca6.entry.js +4 -0
  730. package/dist/ionic/p-dacd8666.entry.js +4 -0
  731. package/dist/ionic/p-dc8b5783.entry.js +4 -0
  732. package/dist/ionic/p-e1d84521.entry.js +4 -0
  733. package/dist/ionic/p-ecba552f.entry.js +4 -0
  734. package/dist/ionic/p-ecf8e713.entry.js +4 -0
  735. package/dist/ionic/p-f667945d.entry.js +4 -0
  736. package/dist/ionic/p-fIOYmaqA.js +4 -0
  737. package/dist/ionic/p-nP9c7bo5.js +4 -0
  738. package/dist/ionic/p-of4jy1ch.js +4 -0
  739. package/dist/ionic/{p-DUt5fQmA.js → p-q1ZSn0l7.js} +1 -1
  740. package/dist/ionic/p-qZR4N8Lu.js +4 -0
  741. package/dist/ionic/p-vXpMhGrs.js +4 -0
  742. package/dist/types/components/accordion/accordion.d.ts +5 -3
  743. package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
  744. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +3 -7
  745. package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
  746. package/dist/types/components/alert/alert-interface.d.ts +3 -7
  747. package/dist/types/components/alert/alert.d.ts +3 -2
  748. package/dist/types/components/app/app.d.ts +4 -2
  749. package/dist/types/components/avatar/avatar.d.ts +32 -0
  750. package/dist/types/components/back-button/back-button.d.ts +2 -1
  751. package/dist/types/components/backdrop/backdrop.d.ts +4 -0
  752. package/dist/types/components/badge/badge.d.ts +34 -1
  753. package/dist/types/components/breadcrumb/breadcrumb.d.ts +4 -1
  754. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  755. package/dist/types/components/button/button.d.ts +19 -6
  756. package/dist/types/components/buttons/buttons.d.ts +5 -1
  757. package/dist/types/components/card/card.d.ts +8 -1
  758. package/dist/types/components/card-content/card-content.d.ts +2 -1
  759. package/dist/types/components/card-header/card-header.d.ts +3 -2
  760. package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
  761. package/dist/types/components/card-title/card-title.d.ts +2 -1
  762. package/dist/types/components/checkbox/checkbox.d.ts +14 -4
  763. package/dist/types/components/chip/chip.d.ts +26 -1
  764. package/dist/types/components/col/col.d.ts +52 -5
  765. package/dist/types/components/content/content.d.ts +3 -0
  766. package/dist/types/components/datetime/datetime.d.ts +26 -1
  767. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  768. package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
  769. package/dist/types/components/divider/divider.d.ts +20 -0
  770. package/dist/types/components/fab/fab.d.ts +4 -0
  771. package/dist/types/components/fab-button/fab-button.d.ts +5 -3
  772. package/dist/types/components/fab-list/fab-list.d.ts +4 -0
  773. package/dist/types/components/footer/footer.d.ts +4 -3
  774. package/dist/types/components/grid/grid.d.ts +4 -0
  775. package/dist/types/components/header/header.d.ts +9 -3
  776. package/dist/types/components/header/header.utils.d.ts +3 -3
  777. package/dist/types/components/img/img.d.ts +3 -0
  778. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
  779. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
  780. package/dist/types/components/input/input.d.ts +31 -5
  781. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +2 -0
  782. package/dist/types/components/item/item.d.ts +11 -4
  783. package/dist/types/components/item-divider/item-divider.d.ts +2 -1
  784. package/dist/types/components/item-group/item-group.d.ts +4 -0
  785. package/dist/types/components/item-option/item-option.d.ts +18 -1
  786. package/dist/types/components/item-options/item-options.d.ts +4 -0
  787. package/dist/types/components/item-sliding/item-sliding.d.ts +4 -0
  788. package/dist/types/components/label/label.d.ts +2 -1
  789. package/dist/types/components/list/list.d.ts +15 -1
  790. package/dist/types/components/list-header/list-header.d.ts +2 -1
  791. package/dist/types/components/loading/loading-interface.d.ts +2 -7
  792. package/dist/types/components/loading/loading.d.ts +3 -2
  793. package/dist/types/components/menu/menu.d.ts +3 -0
  794. package/dist/types/components/menu-button/menu-button.d.ts +3 -1
  795. package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
  796. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  797. package/dist/types/components/modal/gestures/swipe-to-close.d.ts +1 -1
  798. package/dist/types/components/modal/modal-interface.d.ts +4 -7
  799. package/dist/types/components/modal/modal.d.ts +11 -13
  800. package/dist/types/components/nav/nav-interface.d.ts +9 -1
  801. package/dist/types/components/nav/nav.d.ts +5 -1
  802. package/dist/types/components/nav-link/nav-link.d.ts +4 -0
  803. package/dist/types/components/note/note.d.ts +2 -1
  804. package/dist/types/components/picker/picker.d.ts +2 -1
  805. package/dist/types/components/picker-column/picker-column.d.ts +2 -1
  806. package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
  807. package/dist/types/components/picker-legacy/picker.d.ts +2 -1
  808. package/dist/types/components/popover/popover-interface.d.ts +3 -6
  809. package/dist/types/components/popover/popover.d.ts +6 -5
  810. package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
  811. package/dist/types/components/radio/radio.d.ts +2 -1
  812. package/dist/types/components/radio-group/radio-group.d.ts +8 -0
  813. package/dist/types/components/range/range.d.ts +2 -1
  814. package/dist/types/components/refresher/refresher.d.ts +2 -1
  815. package/dist/types/components/refresher-content/refresher-content.d.ts +4 -0
  816. package/dist/types/components/reorder/reorder.d.ts +9 -0
  817. package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
  818. package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
  819. package/dist/types/components/route/route.d.ts +4 -0
  820. package/dist/types/components/router/router.d.ts +4 -0
  821. package/dist/types/components/router-link/router-link.d.ts +4 -0
  822. package/dist/types/components/router-outlet/router-outlet.d.ts +4 -1
  823. package/dist/types/components/row/row.d.ts +4 -0
  824. package/dist/types/components/searchbar/searchbar.d.ts +51 -9
  825. package/dist/types/components/segment/segment.d.ts +2 -1
  826. package/dist/types/components/segment-button/segment-button.d.ts +2 -1
  827. package/dist/types/components/select/select.d.ts +41 -13
  828. package/dist/types/components/select-modal/select-modal.d.ts +1 -0
  829. package/dist/types/components/select-option/select-option.d.ts +4 -0
  830. package/dist/types/components/select-popover/select-popover.d.ts +3 -0
  831. package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
  832. package/dist/types/components/spinner/spinner.d.ts +15 -0
  833. package/dist/types/components/split-pane/split-pane.d.ts +4 -0
  834. package/dist/types/components/tab/tab.d.ts +4 -0
  835. package/dist/types/components/tab-bar/tab-bar.d.ts +22 -2
  836. package/dist/types/components/tab-button/tab-button.d.ts +12 -1
  837. package/dist/types/components/tabs/tabs.d.ts +3 -0
  838. package/dist/types/components/text/text.d.ts +2 -1
  839. package/dist/types/components/textarea/textarea.d.ts +17 -4
  840. package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
  841. package/dist/types/components/title/title.d.ts +4 -0
  842. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  843. package/dist/types/components/toast/toast-interface.d.ts +3 -7
  844. package/dist/types/components/toast/toast.d.ts +19 -2
  845. package/dist/types/components/toggle/toggle.d.ts +15 -1
  846. package/dist/types/components/toolbar/toolbar.d.ts +20 -3
  847. package/dist/types/components.d.ts +1593 -196
  848. package/dist/types/global/ionic-global.d.ts +27 -2
  849. package/dist/types/interface.d.ts +3 -0
  850. package/dist/types/utils/config.d.ts +106 -2
  851. package/dist/types/utils/focus-visible.d.ts +13 -0
  852. package/dist/types/utils/helpers.d.ts +11 -0
  853. package/dist/types/utils/overlays-interface.d.ts +31 -1
  854. package/dist/types/utils/test/playwright/generator.d.ts +31 -2
  855. package/hydrate/index.js +2880 -1077
  856. package/hydrate/index.mjs +2880 -1077
  857. package/package.json +8 -4
  858. package/components/hardware-back-button.js +0 -115
  859. package/components/index9.js +0 -7
  860. package/dist/cjs/hardware-back-button-VCK4V3mG.js +0 -121
  861. package/dist/cjs/index-DkNv4J_i.js +0 -10
  862. package/dist/cjs/ionic-global-HMVqOFGO.js +0 -151
  863. package/dist/esm/hardware-back-button-CPLxO-Ev.js +0 -115
  864. package/dist/esm/index-ZjP4CjeZ.js +0 -7
  865. package/dist/esm/ionic-global-CDrldh-5.js +0 -146
  866. package/dist/ionic/p-020af078.entry.js +0 -4
  867. package/dist/ionic/p-02d76786.entry.js +0 -4
  868. package/dist/ionic/p-074839fc.entry.js +0 -4
  869. package/dist/ionic/p-0dfa5a37.entry.js +0 -4
  870. package/dist/ionic/p-11518b31.entry.js +0 -4
  871. package/dist/ionic/p-11aa58d6.entry.js +0 -4
  872. package/dist/ionic/p-1647c46c.entry.js +0 -4
  873. package/dist/ionic/p-2a939845.entry.js +0 -4
  874. package/dist/ionic/p-316c0420.entry.js +0 -4
  875. package/dist/ionic/p-31f7095f.entry.js +0 -4
  876. package/dist/ionic/p-34642fa1.entry.js +0 -4
  877. package/dist/ionic/p-35696017.entry.js +0 -4
  878. package/dist/ionic/p-370e4237.entry.js +0 -4
  879. package/dist/ionic/p-3a6caca9.entry.js +0 -4
  880. package/dist/ionic/p-40c261a3.entry.js +0 -4
  881. package/dist/ionic/p-46d74291.entry.js +0 -4
  882. package/dist/ionic/p-49d06882.entry.js +0 -4
  883. package/dist/ionic/p-4e41ea20.entry.js +0 -4
  884. package/dist/ionic/p-51a60e0f.entry.js +0 -4
  885. package/dist/ionic/p-582824c5.entry.js +0 -4
  886. package/dist/ionic/p-6241ce47.entry.js +0 -4
  887. package/dist/ionic/p-639dd543.entry.js +0 -4
  888. package/dist/ionic/p-6444c606.entry.js +0 -4
  889. package/dist/ionic/p-675b1a31.entry.js +0 -4
  890. package/dist/ionic/p-6d070558.entry.js +0 -4
  891. package/dist/ionic/p-7268efa5.entry.js +0 -4
  892. package/dist/ionic/p-72c38b88.entry.js +0 -4
  893. package/dist/ionic/p-732b2fd6.entry.js +0 -4
  894. package/dist/ionic/p-79bd78f9.entry.js +0 -4
  895. package/dist/ionic/p-7babec72.entry.js +0 -4
  896. package/dist/ionic/p-86f53961.entry.js +0 -4
  897. package/dist/ionic/p-94de5cfa.entry.js +0 -4
  898. package/dist/ionic/p-9575b654.entry.js +0 -4
  899. package/dist/ionic/p-9eeaBrnk.js +0 -4
  900. package/dist/ionic/p-B0q1YL7N.js +0 -4
  901. package/dist/ionic/p-BFvmZNyx.js +0 -4
  902. package/dist/ionic/p-BKc55Xev.js +0 -4
  903. package/dist/ionic/p-BOVrCkpJ.js +0 -4
  904. package/dist/ionic/p-BYEqWnSg.js +0 -4
  905. package/dist/ionic/p-BmVRXR1y.js +0 -4
  906. package/dist/ionic/p-Bmgaetn_.js +0 -4
  907. package/dist/ionic/p-C7hRNDhM.js +0 -4
  908. package/dist/ionic/p-CIGNaXM1.js +0 -4
  909. package/dist/ionic/p-CTfR9YZG.js +0 -4
  910. package/dist/ionic/p-CtWGkNnJ.js +0 -4
  911. package/dist/ionic/p-D-eFFUkA.js +0 -4
  912. package/dist/ionic/p-DDb5r57F.js +0 -4
  913. package/dist/ionic/p-DNcfiJwE.js +0 -4
  914. package/dist/ionic/p-DZRJwG4S.js +0 -4
  915. package/dist/ionic/p-DdR6rpbR.js +0 -4
  916. package/dist/ionic/p-QHYY4sjU.js +0 -4
  917. package/dist/ionic/p-ZjP4CjeZ.js +0 -4
  918. package/dist/ionic/p-a127bee2.entry.js +0 -4
  919. package/dist/ionic/p-ac4eb91d.entry.js +0 -4
  920. package/dist/ionic/p-b0a7585c.entry.js +0 -4
  921. package/dist/ionic/p-b3d44509.entry.js +0 -4
  922. package/dist/ionic/p-bf396166.entry.js +0 -4
  923. package/dist/ionic/p-c19af093.entry.js +0 -4
  924. package/dist/ionic/p-c19f63d0.entry.js +0 -4
  925. package/dist/ionic/p-cc45bcbc.entry.js +0 -4
  926. package/dist/ionic/p-d0a2a1ab.entry.js +0 -4
  927. package/dist/ionic/p-d126e8d3.entry.js +0 -4
  928. package/dist/ionic/p-d1f54e28.entry.js +0 -4
  929. package/dist/ionic/p-d3014190.entry.js +0 -4
  930. package/dist/ionic/p-da7d04cc.entry.js +0 -4
  931. package/dist/ionic/p-db82892c.entry.js +0 -4
  932. package/dist/ionic/p-dbbe606a.entry.js +0 -4
  933. package/dist/ionic/p-dd1aef77.entry.js +0 -4
  934. package/dist/ionic/p-eb024a5b.entry.js +0 -4
  935. package/dist/ionic/p-f8f22cc0.entry.js +0 -4
  936. package/dist/ionic/p-f9061316.entry.js +0 -4
  937. /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
@@ -1,36 +1,3 @@
1
- /**
2
- * Convert a font size to a dynamic font size.
3
- * Fonts that participate in Dynamic Type should use
4
- * dynamic font sizes.
5
- * @param size - The initial font size including the unit (i.e. px or pt)
6
- * @param unit (optional) - The unit to convert to. Use this if you want to
7
- * convert to a unit other than $baselineUnit.
8
- */
9
- /**
10
- * Convert a font size to a dynamic font size but impose
11
- * a maximum font size.
12
- * @param size - The initial font size including the unit (i.e. px or pt)
13
- * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
14
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
15
- * convert to a unit other than $baselineUnit.
16
- */
17
- /**
18
- * Convert a font size to a dynamic font size but impose
19
- * a minimum font size.
20
- * @param size - The initial font size including the unit (i.e. px or pt)
21
- * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
22
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
23
- * convert to a unit other than $baselineUnit.
24
- */
25
- /**
26
- * Convert a font size to a dynamic font size but impose
27
- * maximum and minimum font sizes.
28
- * @param size - The initial font size including the unit (i.e. px or pt)
29
- * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
30
- * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
31
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
32
- * convert to a unit other than $baselineUnit.
33
- */
34
1
  /**
35
2
  * A heuristic that applies CSS to tablet
36
3
  * viewports.
@@ -79,15 +46,12 @@
79
46
  --min-height: auto;
80
47
  --max-height: auto;
81
48
  --overflow: hidden;
82
- --border-radius: 0;
83
49
  --border-width: 0;
84
50
  --border-style: none;
85
51
  --border-color: transparent;
86
- --background: var(--ion-background-color, #fff);
87
52
  --box-shadow: none;
88
- --backdrop-opacity: 0;
89
- left: 0;
90
53
  right: 0;
54
+ left: 0;
91
55
  top: 0;
92
56
  bottom: 0;
93
57
  display: flex;
@@ -95,7 +59,6 @@
95
59
  align-items: center;
96
60
  justify-content: center;
97
61
  outline: none;
98
- color: var(--ion-text-color, #000);
99
62
  contain: strict;
100
63
  }
101
64
 
@@ -131,10 +94,177 @@ ion-backdrop {
131
94
  background: transparent;
132
95
  }
133
96
 
97
+ .modal-handle {
98
+ -webkit-margin-start: auto;
99
+ margin-inline-start: auto;
100
+ -webkit-margin-end: auto;
101
+ margin-inline-end: auto;
102
+ position: absolute;
103
+ /**
104
+ * This allows the handle to appear
105
+ * on top of user content in WebKit.
106
+ */
107
+ transform: translateZ(0);
108
+ border: 0;
109
+ cursor: pointer;
110
+ z-index: 11;
111
+ }
112
+
113
+ .modal-handle::before {
114
+ position: absolute;
115
+ transform: translate(-50%, -50%);
116
+ content: "";
117
+ }
118
+
119
+ :host(.modal-sheet) .modal-wrapper,
120
+ :host(.modal-sheet) .modal-shadow {
121
+ position: absolute;
122
+ bottom: 0;
123
+ }
124
+
125
+ :host(.modal-sheet.modal-no-expand-scroll) ion-footer {
126
+ position: absolute;
127
+ bottom: 0;
128
+ width: var(--width);
129
+ }
130
+
131
+ /**
132
+ * Convert a pixels given value into rem
133
+ *
134
+ * @param pixels - Value in pixels to be converted (i.e. px)
135
+ * @param context (optional) - Baseline value
136
+ */
137
+ /**
138
+ * Convert a font size to a dynamic font size.
139
+ * Fonts that participate in Dynamic Type should use
140
+ * dynamic font sizes.
141
+ * @param size - The initial font size including the unit (i.e. px or pt)
142
+ * @param unit (optional) - The unit to convert to. Use this if you want to
143
+ * convert to a unit other than $baselineUnit.
144
+ */
145
+ /**
146
+ * Convert a font size to a dynamic font size but impose
147
+ * a maximum font size.
148
+ * @param size - The initial font size including the unit (i.e. px or pt)
149
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
150
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
151
+ * convert to a unit other than $baselineUnit.
152
+ */
153
+ /**
154
+ * Convert a font size to a dynamic font size but impose
155
+ * a minimum font size.
156
+ * @param size - The initial font size including the unit (i.e. px or pt)
157
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
158
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
159
+ * convert to a unit other than $baselineUnit.
160
+ */
161
+ /**
162
+ * Convert a font size to a dynamic font size but impose
163
+ * maximum and minimum font sizes.
164
+ * @param size - The initial font size including the unit (i.e. px or pt)
165
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
166
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
167
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
168
+ * convert to a unit other than $baselineUnit.
169
+ */
170
+ /**
171
+ * A heuristic that applies CSS to tablet
172
+ * viewports.
173
+ *
174
+ * Usage:
175
+ * @include tablet-viewport() {
176
+ * :host {
177
+ * background-color: green;
178
+ * }
179
+ * }
180
+ */
181
+ /**
182
+ * A heuristic that applies CSS to mobile
183
+ * viewports (i.e. phones, not tablets).
184
+ *
185
+ * Usage:
186
+ * @include mobile-viewport() {
187
+ * :host {
188
+ * background-color: blue;
189
+ * }
190
+ * }
191
+ */
192
+ /**
193
+ * Convert a pixels given value into rem
194
+ *
195
+ * @param pixels - Value in pixels to be converted (i.e. px)
196
+ * @param context (optional) - Baseline value
197
+ */
198
+ /**
199
+ * Convert a font size to a dynamic font size.
200
+ * Fonts that participate in Dynamic Type should use
201
+ * dynamic font sizes.
202
+ * @param size - The initial font size including the unit (i.e. px or pt)
203
+ * @param unit (optional) - The unit to convert to. Use this if you want to
204
+ * convert to a unit other than $baselineUnit.
205
+ */
206
+ /**
207
+ * Convert a font size to a dynamic font size but impose
208
+ * a maximum font size.
209
+ * @param size - The initial font size including the unit (i.e. px or pt)
210
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
211
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
212
+ * convert to a unit other than $baselineUnit.
213
+ */
214
+ /**
215
+ * Convert a font size to a dynamic font size but impose
216
+ * a minimum font size.
217
+ * @param size - The initial font size including the unit (i.e. px or pt)
218
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
219
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
220
+ * convert to a unit other than $baselineUnit.
221
+ */
222
+ /**
223
+ * Convert a font size to a dynamic font size but impose
224
+ * maximum and minimum font sizes.
225
+ * @param size - The initial font size including the unit (i.e. px or pt)
226
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
227
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
228
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
229
+ * convert to a unit other than $baselineUnit.
230
+ */
231
+ /**
232
+ * A heuristic that applies CSS to tablet
233
+ * viewports.
234
+ *
235
+ * Usage:
236
+ * @include tablet-viewport() {
237
+ * :host {
238
+ * background-color: green;
239
+ * }
240
+ * }
241
+ */
242
+ /**
243
+ * A heuristic that applies CSS to mobile
244
+ * viewports (i.e. phones, not tablets).
245
+ *
246
+ * Usage:
247
+ * @include mobile-viewport() {
248
+ * :host {
249
+ * background-color: blue;
250
+ * }
251
+ * }
252
+ */
253
+ :host {
254
+ --background: var(--ion-background-color, #fff);
255
+ --border-radius: 0;
256
+ --backdrop-opacity: 0;
257
+ color: var(--ion-text-color, #000);
258
+ }
259
+
134
260
  @media only screen and (min-width: 768px) and (min-height: 600px) {
135
261
  :host {
136
262
  --width: 600px;
137
263
  --height: 500px;
264
+ --ion-safe-area-top: 0px;
265
+ --ion-safe-area-bottom: 0px;
266
+ --ion-safe-area-right: 0px;
267
+ --ion-safe-area-left: 0px;
138
268
  }
139
269
  }
140
270
  @media only screen and (min-width: 768px) and (min-height: 768px) {
@@ -144,43 +274,27 @@ ion-backdrop {
144
274
  }
145
275
  }
146
276
  .modal-handle {
147
- left: 0px;
148
277
  right: 0px;
278
+ left: 0px;
149
279
  top: 5px;
150
280
  border-radius: 8px;
151
- -webkit-margin-start: auto;
152
- margin-inline-start: auto;
153
- -webkit-margin-end: auto;
154
- margin-inline-end: auto;
155
- position: absolute;
156
281
  width: 36px;
157
282
  height: 5px;
158
- /**
159
- * This allows the handle to appear
160
- * on top of user content in WebKit.
161
- */
162
- transform: translateZ(0);
163
- border: 0;
164
283
  background: var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));
165
- cursor: pointer;
166
- z-index: 11;
167
284
  }
168
285
  .modal-handle::before {
169
286
  /**
170
- * Adds a 4px tap area to the perimeter
171
- * of the handle.
172
- */
287
+ * Adds a 4px tap area to the perimeter
288
+ * of the handle.
289
+ */
173
290
  -webkit-padding-start: 4px;
174
291
  padding-inline-start: 4px;
175
292
  -webkit-padding-end: 4px;
176
293
  padding-inline-end: 4px;
177
294
  padding-top: 4px;
178
295
  padding-bottom: 4px;
179
- position: absolute;
180
296
  width: 36px;
181
297
  height: 5px;
182
- transform: translate(-50%, -50%);
183
- content: "";
184
298
  }
185
299
 
186
300
  /**
@@ -191,18 +305,12 @@ ion-backdrop {
191
305
  --height: calc(100% - (var(--ion-safe-area-top) + 10px));
192
306
  }
193
307
 
194
- :host(.modal-sheet) .modal-wrapper,
195
- :host(.modal-sheet) .modal-shadow {
196
- position: absolute;
197
- bottom: 0;
198
- }
199
-
200
- :host(.modal-sheet.modal-no-expand-scroll) ion-footer {
201
- position: absolute;
202
- bottom: 0;
203
- width: var(--width);
204
- }
205
-
308
+ /**
309
+ * Convert a pixels given value into rem
310
+ *
311
+ * @param pixels - Value in pixels to be converted (i.e. px)
312
+ * @param context (optional) - Baseline value
313
+ */
206
314
  /**
207
315
  * Convert a font size to a dynamic font size.
208
316
  * Fonts that participate in Dynamic Type should use
@@ -12,7 +12,7 @@ import { GESTURE, BACKDROP, dismiss, eventMethod, prepareOverlay, present, creat
12
12
  import { getClassMap } from "../../utils/theme";
13
13
  import { deepReady, waitForMount } from "../../utils/transition/index";
14
14
  import { config } from "../../global/config";
15
- import { getIonMode } from "../../global/ionic-global";
15
+ import { getIonMode, getIonTheme } from "../../global/ionic-global";
16
16
  import { KEYBOARD_DID_OPEN } from "../../utils/keyboard/keyboard";
17
17
  import { iosEnterAnimation } from "./animations/ios.enter";
18
18
  import { iosLeaveAnimation } from "./animations/ios.leave";
@@ -24,7 +24,8 @@ import { createSwipeToCloseGesture, SwipeToCloseDefaults } from "./gestures/swip
24
24
  import { setCardStatusBarDark, setCardStatusBarDefault } from "./utils";
25
25
  // TODO(FW-2832): types
26
26
  /**
27
- * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
27
+ * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
28
+ * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
28
29
  *
29
30
  * @slot - Content is placed inside of the `.modal-content` element.
30
31
  *
@@ -232,10 +233,7 @@ export class Modal {
232
233
  }
233
234
  }
234
235
  onWindowResize() {
235
- // Update safe-area overrides for all modal types on resize
236
- console.log('[onWindowResize] calling updateSafeAreaOverrides');
237
- this.updateSafeAreaOverrides();
238
- // Only handle view transition for iOS card modals when no custom animations are provided
236
+ // Only handle resize for iOS card modals when no custom animations are provided
239
237
  if (getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
240
238
  return;
241
239
  }
@@ -417,8 +415,6 @@ export class Modal {
417
415
  else if (!this.keepContentsMounted) {
418
416
  await waitForMount();
419
417
  }
420
- // Predict safe-area needs based on modal configuration to avoid visual snap
421
- this.setInitialSafeAreaOverrides(presentingElement);
422
418
  writeTask(() => this.el.classList.add('show-modal'));
423
419
  const hasCardModal = presentingElement !== undefined;
424
420
  /**
@@ -436,6 +432,7 @@ export class Modal {
436
432
  currentBreakpoint: this.initialBreakpoint,
437
433
  backdropBreakpoint: this.backdropBreakpoint,
438
434
  expandToScroll: this.expandToScroll,
435
+ staticBackdropOpacity: getIonTheme(this) === 'ionic',
439
436
  });
440
437
  /* tslint:disable-next-line */
441
438
  if (typeof window !== 'undefined') {
@@ -480,9 +477,6 @@ export class Modal {
480
477
  else if (hasCardModal) {
481
478
  this.initSwipeToClose();
482
479
  }
483
- // Now that animation is complete, update safe-area based on actual position
484
- console.log('[present animation complete] calling updateSafeAreaOverrides');
485
- this.updateSafeAreaOverrides();
486
480
  // Initialize view transition listener for iOS card modals
487
481
  this.initViewTransitionListener();
488
482
  // Initialize parent removal observer
@@ -534,7 +528,7 @@ export class Modal {
534
528
  await this.dismiss(undefined, GESTURE);
535
529
  this.gestureAnimationDismissing = false;
536
530
  });
537
- }, () => this.updateSafeAreaOverrides());
531
+ });
538
532
  this.gesture.enable(true);
539
533
  }
540
534
  initSheetGesture() {
@@ -548,6 +542,7 @@ export class Modal {
548
542
  currentBreakpoint: initialBreakpoint,
549
543
  backdropBreakpoint,
550
544
  expandToScroll: this.expandToScroll,
545
+ staticBackdropOpacity: getIonTheme(this) === 'ionic',
551
546
  }));
552
547
  ani.progressStart(true, 1);
553
548
  const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
@@ -555,8 +550,7 @@ export class Modal {
555
550
  this.currentBreakpoint = breakpoint;
556
551
  this.ionBreakpointDidChange.emit({ breakpoint });
557
552
  }
558
- this.updateSafeAreaOverrides();
559
- }, () => this.updateSafeAreaOverrides());
553
+ }, getIonTheme(this) === 'ionic');
560
554
  this.gesture = gesture;
561
555
  this.moveSheetToBreakpoint = moveSheetToBreakpoint;
562
556
  this.gesture.enable(true);
@@ -634,119 +628,6 @@ export class Modal {
634
628
  // Clear the cached reference
635
629
  this.cachedPageParent = undefined;
636
630
  }
637
- /**
638
- * Sets initial safe-area overrides based on modal configuration before
639
- * the modal becomes visible. This predicts whether the modal will touch
640
- * screen edges to avoid a visual snap after animation completes.
641
- */
642
- setInitialSafeAreaOverrides(presentingElement) {
643
- const style = this.el.style;
644
- const isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
645
- const isCardModal = presentingElement !== undefined;
646
- const isTablet = window.innerWidth >= 768;
647
- console.log('[setInitialSafeAreaOverrides] called', {
648
- isSheetModal,
649
- isCardModal,
650
- isTablet,
651
- breakpoints: this.breakpoints,
652
- initialBreakpoint: this.initialBreakpoint,
653
- presentingElement: !!presentingElement,
654
- innerWidth: window.innerWidth,
655
- });
656
- // Sheet modals: always touch bottom, top depends on breakpoint
657
- if (isSheetModal) {
658
- console.log('[setInitialSafeAreaOverrides] Sheet modal path - setting top/left/right to 0, leaving bottom alone');
659
- style.setProperty('--ion-safe-area-top', '0px');
660
- // Don't override bottom - sheet always touches bottom
661
- style.setProperty('--ion-safe-area-left', '0px');
662
- style.setProperty('--ion-safe-area-right', '0px');
663
- return;
664
- }
665
- // Card modals are inset from edges (rounded corners), no safe areas needed
666
- if (isCardModal) {
667
- console.log('[setInitialSafeAreaOverrides] Card modal path - setting all to 0');
668
- style.setProperty('--ion-safe-area-top', '0px');
669
- style.setProperty('--ion-safe-area-bottom', '0px');
670
- style.setProperty('--ion-safe-area-left', '0px');
671
- style.setProperty('--ion-safe-area-right', '0px');
672
- return;
673
- }
674
- // Phone modals are fullscreen, need all safe areas
675
- if (!isTablet) {
676
- console.log('[setInitialSafeAreaOverrides] Phone modal path - not setting any overrides');
677
- // Don't set any overrides - inherit from :root
678
- return;
679
- }
680
- // Default tablet modal: centered dialog, no safe areas needed
681
- // Check for fullscreen override via CSS custom properties
682
- const computedStyle = getComputedStyle(this.el);
683
- const width = computedStyle.getPropertyValue('--width').trim();
684
- const height = computedStyle.getPropertyValue('--height').trim();
685
- console.log('[setInitialSafeAreaOverrides] Tablet modal path', { width, height });
686
- if (width === '100%' && height === '100%') {
687
- console.log('[setInitialSafeAreaOverrides] Fullscreen tablet modal - not setting overrides');
688
- // Fullscreen modal - need safe areas, don't override
689
- return;
690
- }
691
- // Centered dialog - zero out all safe areas
692
- console.log('[setInitialSafeAreaOverrides] Centered tablet dialog - setting all to 0');
693
- style.setProperty('--ion-safe-area-top', '0px');
694
- style.setProperty('--ion-safe-area-bottom', '0px');
695
- style.setProperty('--ion-safe-area-left', '0px');
696
- style.setProperty('--ion-safe-area-right', '0px');
697
- }
698
- /**
699
- * Updates safe-area CSS variable overrides based on whether the modal
700
- * is touching each edge of the viewport. This is called after animation
701
- * and during gestures to handle dynamic position changes.
702
- */
703
- updateSafeAreaOverrides() {
704
- const wrapper = this.wrapperEl;
705
- if (!wrapper) {
706
- console.log('[updateSafeAreaOverrides] No wrapper element, returning early');
707
- return;
708
- }
709
- const rect = wrapper.getBoundingClientRect();
710
- const threshold = 2; // Account for subpixel rendering
711
- const touchingTop = rect.top <= threshold;
712
- const touchingBottom = rect.bottom >= window.innerHeight - threshold;
713
- const touchingLeft = rect.left <= threshold;
714
- const touchingRight = rect.right >= window.innerWidth - threshold;
715
- console.log('[updateSafeAreaOverrides] called', {
716
- isSheetModal: this.isSheetModal,
717
- rect: { top: rect.top, bottom: rect.bottom, left: rect.left, right: rect.right },
718
- innerHeight: window.innerHeight,
719
- innerWidth: window.innerWidth,
720
- threshold,
721
- touchingTop,
722
- touchingBottom,
723
- touchingLeft,
724
- touchingRight,
725
- bottomCalc: `${rect.bottom} >= ${window.innerHeight - threshold} = ${touchingBottom}`,
726
- });
727
- // Remove override when touching edge (allow inheritance), set to 0 when not touching
728
- const style = this.el.style;
729
- const actions = {
730
- top: touchingTop ? 'removeProperty' : 'setProperty 0px',
731
- bottom: touchingBottom ? 'removeProperty' : 'setProperty 0px',
732
- left: touchingLeft ? 'removeProperty' : 'setProperty 0px',
733
- right: touchingRight ? 'removeProperty' : 'setProperty 0px',
734
- };
735
- console.log('[updateSafeAreaOverrides] actions:', actions);
736
- touchingTop ? style.removeProperty('--ion-safe-area-top') : style.setProperty('--ion-safe-area-top', '0px');
737
- touchingBottom
738
- ? style.removeProperty('--ion-safe-area-bottom')
739
- : style.setProperty('--ion-safe-area-bottom', '0px');
740
- touchingLeft ? style.removeProperty('--ion-safe-area-left') : style.setProperty('--ion-safe-area-left', '0px');
741
- touchingRight ? style.removeProperty('--ion-safe-area-right') : style.setProperty('--ion-safe-area-right', '0px');
742
- // Log the actual style values after setting
743
- console.log('[updateSafeAreaOverrides] after setting, inline styles:', {
744
- top: style.getPropertyValue('--ion-safe-area-top'),
745
- bottom: style.getPropertyValue('--ion-safe-area-bottom'),
746
- left: style.getPropertyValue('--ion-safe-area-left'),
747
- right: style.getPropertyValue('--ion-safe-area-right'),
748
- });
749
- }
750
631
  sheetOnDismiss() {
751
632
  /**
752
633
  * While the gesture animation is finishing
@@ -911,6 +792,18 @@ export class Modal {
911
792
  await this.setCurrentBreakpoint(nextBreakpoint);
912
793
  return true;
913
794
  }
795
+ getShape() {
796
+ const theme = getIonTheme(this);
797
+ const { shape } = this;
798
+ // TODO(ROU-11167): Remove theme check when shapes are defined for all themes.
799
+ if (theme !== 'ionic') {
800
+ return undefined;
801
+ }
802
+ if (shape === undefined) {
803
+ return 'round';
804
+ }
805
+ return shape;
806
+ }
914
807
  initViewTransitionListener() {
915
808
  // Only enable for iOS card modals when no custom animations are provided
916
809
  if (getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
@@ -1088,37 +981,40 @@ export class Modal {
1088
981
  render() {
1089
982
  const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
1090
983
  const showHandle = handle !== false && isSheetModal;
1091
- const mode = getIonMode(this);
1092
- const isCardModal = presentingElement !== undefined && mode === 'ios';
984
+ const theme = getIonTheme(this);
985
+ const isCardModal = presentingElement !== undefined && theme === 'ios';
1093
986
  const isHandleCycle = handleBehavior === 'cycle';
987
+ const shape = this.getShape();
1094
988
  const isSheetModalWithHandle = isSheetModal && showHandle;
1095
- return (h(Host, Object.assign({ key: '8659056ce9de06c66d65946fe4af939e298d133c', "no-router": true,
989
+ return (h(Host, Object.assign({ key: '547adca39bb8f0070f2e2c17d39300eab5d66202', "no-router": true,
1096
990
  // Allow the modal to be navigable when the handle is focusable
1097
991
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
1098
992
  zIndex: `${20000 + this.overlayIndex}`,
1099
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'e4f287871798d7aa660c8aea3a81deeeb540812d', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '6f3d8d504e080093ba9e5089e5de76feaa13cf38', class: "modal-shadow" }), h("div", Object.assign({ key: '6ad0b4d97e0c0bad56689e457f08819ad857a0b4',
993
+ }, class: Object.assign({ [theme]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-${shape}`]: shape !== undefined, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'b15340363a5399cdbd015f3ba6a07ca9a057af3a', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme === 'ios' && h("div", { key: 'd13cb2c5efe07b13e7f4a0ea358c8003944779a7', class: "modal-shadow" }), h("div", Object.assign({ key: 'd6f252655e0c11b7a76917781ad038d3eca4f1f6',
1100
994
  /*
1101
995
  role and aria-modal must be used on the
1102
996
  same element. They must also be set inside the
1103
997
  shadow DOM otherwise ion-button will not be highlighted
1104
998
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
1105
999
  */
1106
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'e5a9d74a112e315240b307042ad16d8e6ff2c714', class: "modal-handle",
1000
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '8ea59f134f0a949f27c5413a406771a5fe7d1d13', class: "modal-handle",
1107
1001
  // Prevents the handle from receiving keyboard focus when it does not cycle
1108
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '66f342587b6eaa5801397d7385ec3dc783bf8f55', onSlotchange: this.onSlotChange }))));
1002
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: 'c609a98d061e83c610c892aca9792e6784dbc02c', onSlotchange: this.onSlotChange }))));
1109
1003
  }
1110
1004
  static get is() { return "ion-modal"; }
1111
1005
  static get encapsulation() { return "shadow"; }
1112
1006
  static get originalStyleUrls() {
1113
1007
  return {
1114
1008
  "ios": ["modal.ios.scss"],
1115
- "md": ["modal.md.scss"]
1009
+ "md": ["modal.md.scss"],
1010
+ "ionic": ["modal.ionic.scss"]
1116
1011
  };
1117
1012
  }
1118
1013
  static get styleUrls() {
1119
1014
  return {
1120
1015
  "ios": ["modal.ios.css"],
1121
- "md": ["modal.md.css"]
1016
+ "md": ["modal.md.css"],
1017
+ "ionic": ["modal.ionic.css"]
1122
1018
  };
1123
1019
  }
1124
1020
  static get properties() {
@@ -1659,6 +1555,25 @@ export class Modal {
1659
1555
  "reflect": false,
1660
1556
  "attribute": "can-dismiss",
1661
1557
  "defaultValue": "true"
1558
+ },
1559
+ "shape": {
1560
+ "type": "string",
1561
+ "mutable": false,
1562
+ "complexType": {
1563
+ "original": "'soft' | 'round' | 'rectangular'",
1564
+ "resolved": "\"rectangular\" | \"round\" | \"soft\" | undefined",
1565
+ "references": {}
1566
+ },
1567
+ "required": false,
1568
+ "optional": true,
1569
+ "docs": {
1570
+ "tags": [],
1571
+ "text": "Set to `\"soft\"` for a modal with slightly rounded corners,\n`\"round\"` for a modal with fully rounded corners, or `\"rectangular\"`\nfor a modal without rounded corners.\n\nDefaults to `\"round\"` for the `ionic` theme, undefined for all other themes."
1572
+ },
1573
+ "getter": false,
1574
+ "setter": false,
1575
+ "reflect": false,
1576
+ "attribute": "shape"
1662
1577
  }
1663
1578
  };
1664
1579
  }