@ionic/core 8.7.16-dev.11767365495.141917e9 → 8.7.16-dev.11767635068.1d59cfc8

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 (941) 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 -143
  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 +22 -69
  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 -192
  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 +28 -76
  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 +539 -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 -129
  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/animations/ios.enter.js +5 -21
  442. package/dist/collection/components/popover/animations/md.enter.js +4 -20
  443. package/dist/collection/components/popover/popover.ios.css +13 -1
  444. package/dist/collection/components/popover/popover.js +17 -14
  445. package/dist/collection/components/popover/popover.md.css +13 -1
  446. package/dist/collection/components/popover/utils.js +1 -19
  447. package/dist/collection/components/progress-bar/progress-bar.ionic.css +287 -0
  448. package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
  449. package/dist/collection/components/progress-bar/progress-bar.js +43 -7
  450. package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
  451. package/dist/collection/components/radio/radio.ionic.css +422 -0
  452. package/dist/collection/components/radio/radio.ios.css +134 -91
  453. package/dist/collection/components/radio/radio.js +12 -9
  454. package/dist/collection/components/radio/radio.md.css +134 -91
  455. package/dist/collection/components/radio-group/radio-group.ionic.css +119 -0
  456. package/dist/collection/components/radio-group/radio-group.ios.css +43 -23
  457. package/dist/collection/components/radio-group/radio-group.js +21 -6
  458. package/dist/collection/components/radio-group/radio-group.md.css +43 -23
  459. package/dist/collection/components/range/range.ionic.css +563 -0
  460. package/dist/collection/components/range/range.ios.css +128 -85
  461. package/dist/collection/components/range/range.js +12 -9
  462. package/dist/collection/components/range/range.md.css +128 -85
  463. package/dist/collection/components/refresher/refresher.ios.css +14 -1
  464. package/dist/collection/components/refresher/refresher.js +11 -8
  465. package/dist/collection/components/refresher/refresher.md.css +15 -2
  466. package/dist/collection/components/refresher-content/refresher-content.js +28 -7
  467. package/dist/collection/components/reorder/reorder.ios.css +6 -0
  468. package/dist/collection/components/reorder/reorder.js +33 -6
  469. package/dist/collection/components/reorder/reorder.md.css +6 -0
  470. package/dist/collection/components/reorder-group/reorder-group.css +6 -0
  471. package/dist/collection/components/reorder-group/reorder-group.js +8 -4
  472. package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
  473. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +215 -0
  474. package/dist/collection/components/ripple-effect/ripple-effect.js +14 -6
  475. package/dist/collection/components/route/route.js +4 -0
  476. package/dist/collection/components/router/router.js +4 -0
  477. package/dist/collection/components/router-link/router-link.css +8 -2
  478. package/dist/collection/components/router-link/router-link.js +9 -5
  479. package/dist/collection/components/router-outlet/router-outlet.css +7 -1
  480. package/dist/collection/components/router-outlet/router-outlet.js +6 -3
  481. package/dist/collection/components/row/row.css +16 -0
  482. package/dist/collection/components/row/row.js +9 -2
  483. package/dist/collection/components/searchbar/searchbar.ionic.css +626 -0
  484. package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
  485. package/dist/collection/components/searchbar/searchbar.js +181 -34
  486. package/dist/collection/components/searchbar/searchbar.md.css +56 -18
  487. package/dist/collection/components/segment/segment.ionic.css +115 -0
  488. package/dist/collection/components/segment/segment.ios.css +45 -2
  489. package/dist/collection/components/segment/segment.js +11 -8
  490. package/dist/collection/components/segment/segment.md.css +45 -2
  491. package/dist/collection/components/segment-button/segment-button.ionic.css +353 -0
  492. package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
  493. package/dist/collection/components/segment-button/segment-button.js +11 -8
  494. package/dist/collection/components/segment-button/segment-button.md.css +148 -107
  495. package/dist/collection/components/segment-content/segment-content.js +1 -1
  496. package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
  497. package/dist/collection/components/segment-view/segment-view.js +6 -4
  498. package/dist/collection/components/segment-view/segment-view.md.css +6 -0
  499. package/dist/collection/components/select/select.ionic.css +777 -0
  500. package/dist/collection/components/select/select.ios.css +315 -176
  501. package/dist/collection/components/select/select.js +156 -53
  502. package/dist/collection/components/select/select.md.css +331 -178
  503. package/dist/collection/components/select-modal/select-modal.ionic.css +130 -0
  504. package/dist/collection/components/select-modal/select-modal.ios.css +18 -0
  505. package/dist/collection/components/select-modal/select-modal.js +11 -4
  506. package/dist/collection/components/select-modal/select-modal.md.css +7 -3
  507. package/dist/collection/components/select-option/select-option.js +9 -2
  508. package/dist/collection/components/select-popover/select-popover.ios.css +18 -0
  509. package/dist/collection/components/select-popover/select-popover.js +12 -4
  510. package/dist/collection/components/select-popover/select-popover.md.css +18 -0
  511. package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
  512. package/dist/collection/components/skeleton-text/skeleton-text.js +9 -5
  513. package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +77 -10
  514. package/dist/collection/components/spinner/spinner.js +47 -6
  515. package/dist/collection/components/spinner/spinner.native.css +198 -0
  516. package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
  517. package/dist/collection/components/split-pane/split-pane.js +14 -8
  518. package/dist/collection/components/split-pane/split-pane.md.css +20 -2
  519. package/dist/collection/components/tab/tab.js +6 -2
  520. package/dist/collection/components/tab-bar/tab-bar.ionic.css +201 -0
  521. package/dist/collection/components/tab-bar/tab-bar.ios.css +71 -43
  522. package/dist/collection/components/tab-bar/tab-bar.js +78 -11
  523. package/dist/collection/components/tab-bar/tab-bar.md.css +71 -43
  524. package/dist/collection/components/tab-button/tab-button.ionic.css +337 -0
  525. package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
  526. package/dist/collection/components/tab-button/tab-button.js +54 -9
  527. package/dist/collection/components/tab-button/tab-button.md.css +137 -93
  528. package/dist/collection/components/tabs/tabs.css +7 -1
  529. package/dist/collection/components/tabs/tabs.js +4 -1
  530. package/dist/collection/components/text/text.css +6 -0
  531. package/dist/collection/components/text/text.js +7 -6
  532. package/dist/collection/components/textarea/textarea.ionic.css +885 -0
  533. package/dist/collection/components/textarea/textarea.ios.css +275 -139
  534. package/dist/collection/components/textarea/textarea.js +76 -16
  535. package/dist/collection/components/textarea/textarea.md.css +288 -140
  536. package/dist/collection/components/thumbnail/thumbnail.css +6 -0
  537. package/dist/collection/components/thumbnail/thumbnail.js +9 -2
  538. package/dist/collection/components/title/title.ionic.css +127 -0
  539. package/dist/collection/components/title/title.ios.css +32 -4
  540. package/dist/collection/components/title/title.js +13 -7
  541. package/dist/collection/components/title/title.md.css +32 -4
  542. package/dist/collection/components/toast/animations/utils.js +1 -1
  543. package/dist/collection/components/toast/toast.ionic.css +394 -0
  544. package/dist/collection/components/toast/toast.ios.css +84 -45
  545. package/dist/collection/components/toast/toast.js +75 -12
  546. package/dist/collection/components/toast/toast.md.css +84 -45
  547. package/dist/collection/components/toggle/toggle.ionic.css +508 -0
  548. package/dist/collection/components/toggle/toggle.ios.css +247 -131
  549. package/dist/collection/components/toggle/toggle.js +73 -18
  550. package/dist/collection/components/toggle/toggle.md.css +244 -131
  551. package/dist/collection/components/toolbar/test/image.svg +1 -0
  552. package/dist/collection/components/toolbar/toolbar.ionic.css +241 -0
  553. package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
  554. package/dist/collection/components/toolbar/toolbar.js +157 -13
  555. package/dist/collection/components/toolbar/toolbar.md.css +90 -47
  556. package/dist/collection/global/ionic-global.js +228 -13
  557. package/dist/collection/utils/focus-visible.js +22 -0
  558. package/dist/collection/utils/framework-delegate.js +3 -1
  559. package/dist/collection/utils/hardware-back-button.js +15 -0
  560. package/dist/collection/utils/helpers.js +42 -2
  561. package/dist/collection/utils/keyboard/keyboard-controller.js +3 -1
  562. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  563. package/dist/collection/utils/menu-controller/animations/push.js +2 -1
  564. package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
  565. package/dist/collection/utils/overlays.js +2 -1
  566. package/dist/collection/utils/test/playwright/generator.js +48 -23
  567. package/dist/collection/utils/test/playwright/page/utils/goto.js +14 -5
  568. package/dist/collection/utils/test/playwright/page/utils/set-content.js +26 -3
  569. package/dist/collection/utils/transition/ios.transition.js +1 -0
  570. package/dist/docs.json +8195 -374
  571. package/dist/esm/{animation-Dt8bGnA-.js → animation-BNuoDl-O.js} +1 -1
  572. package/dist/esm/{app-globals-BDSf8fOA.js → app-globals-tX0s9Zd7.js} +1 -1
  573. package/dist/esm/{button-active-L570Swow.js → button-active-BF6GZ_yH.js} +1 -1
  574. package/dist/esm/{capacitor-CFERIeaU.js → capacitor-pzVAlnC0.js} +1 -1
  575. package/dist/esm/caret-down-D1t981Ih.js +6 -0
  576. package/dist/esm/caret-left-fIOYmaqA.js +6 -0
  577. package/dist/esm/caret-right-BYSs-jZz.js +6 -0
  578. package/dist/esm/{data-DCORV9FH.js → data-DFCY8gnk.js} +5 -5
  579. package/dist/esm/{focus-visible-BmVRXR1y.js → focus-visible-vXpMhGrs.js} +23 -1
  580. package/dist/esm/{framework-delegate-BYawdMXj.js → framework-delegate-D2mUP0WI.js} +4 -2
  581. package/dist/esm/{haptic-DzAMWJuk.js → haptic-bBvyATla.js} +1 -1
  582. package/dist/esm/{helpers-DEn3pfjm.js → helpers-Bsml3FcE.js} +42 -3
  583. package/dist/esm/{index-CvDIirVx.js → index-BQI9hSZP.js} +10 -10
  584. package/dist/esm/{index-ceb5RaMT.js → index-Bnw-zNoN.js} +3 -2
  585. package/dist/esm/{index-Bs3kT4bc.js → index-BpFi2B8W.js} +1 -1
  586. package/dist/esm/{index-DV3sJJW8.js → index-COG0_eom.js} +1 -1
  587. package/dist/esm/{index-r2D9DEro.js → index-M3l-IyxQ.js} +3 -3
  588. package/dist/esm/index.js +10 -11
  589. package/dist/esm/{input-shims-DyOpfTg6.js → input-shims-ACbgRt10.js} +6 -5
  590. package/dist/esm/{input.utils-DrvTa8gz.js → input.utils-loPnHH5H.js} +2 -2
  591. package/dist/esm/ion-accordion_2.entry.js +56 -27
  592. package/dist/esm/ion-action-sheet.entry.js +23 -20
  593. package/dist/esm/ion-alert.entry.js +22 -20
  594. package/dist/esm/ion-app_8.entry.js +250 -151
  595. package/dist/esm/ion-avatar_3.entry.js +125 -13
  596. package/dist/esm/ion-back-button.entry.js +29 -20
  597. package/dist/esm/ion-backdrop.entry.js +9 -6
  598. package/dist/esm/ion-breadcrumb_2.entry.js +53 -17
  599. package/dist/esm/ion-button_2.entry.js +43 -11
  600. package/dist/esm/ion-card_5.entry.js +53 -29
  601. package/dist/esm/ion-checkbox.entry.js +31 -13
  602. package/dist/esm/ion-chip.entry.js +49 -8
  603. package/dist/esm/ion-col_3.entry.js +54 -57
  604. package/dist/esm/ion-datetime-button.entry.js +11 -7
  605. package/dist/esm/ion-datetime_3.entry.js +115 -40
  606. package/dist/esm/ion-divider.entry.js +49 -0
  607. package/dist/esm/ion-fab_3.entry.js +43 -27
  608. package/dist/esm/ion-img.entry.js +7 -3
  609. package/dist/esm/ion-infinite-scroll_2.entry.js +89 -14
  610. package/dist/esm/ion-input-otp.entry.js +11 -7
  611. package/dist/esm/ion-input-password-toggle.entry.js +52 -14
  612. package/dist/esm/ion-input.entry.js +122 -32
  613. package/dist/esm/ion-item-option_3.entry.js +48 -19
  614. package/dist/esm/ion-item_8.entry.js +115 -48
  615. package/dist/esm/ion-loading.entry.js +17 -15
  616. package/dist/esm/ion-menu_3.entry.js +45 -27
  617. package/dist/esm/ion-modal.entry.js +59 -152
  618. package/dist/esm/ion-nav_2.entry.js +13 -10
  619. package/dist/esm/ion-picker-column-option.entry.js +10 -6
  620. package/dist/esm/ion-picker-column.entry.js +11 -11
  621. package/dist/esm/ion-picker.entry.js +9 -5
  622. package/dist/esm/ion-popover.entry.js +28 -76
  623. package/dist/esm/ion-progress-bar.entry.js +25 -7
  624. package/dist/esm/ion-radio_2.entry.js +24 -14
  625. package/dist/esm/ion-range.entry.js +14 -10
  626. package/dist/esm/ion-refresher_2.entry.js +37 -19
  627. package/dist/esm/ion-reorder_2.entry.js +38 -14
  628. package/dist/esm/ion-ripple-effect.entry.js +14 -6
  629. package/dist/esm/ion-route_4.entry.js +8 -7
  630. package/dist/esm/ion-searchbar.entry.js +137 -24
  631. package/dist/esm/ion-segment-content.entry.js +1 -1
  632. package/dist/esm/ion-segment-view.entry.js +5 -2
  633. package/dist/esm/ion-segment_2.entry.js +21 -14
  634. package/dist/esm/ion-select-modal.entry.js +16 -10
  635. package/dist/esm/ion-select_3.entry.js +131 -40
  636. package/dist/esm/ion-spinner.entry.js +28 -6
  637. package/dist/esm/ion-split-pane.entry.js +11 -8
  638. package/dist/esm/ion-tab-bar_2.entry.js +75 -21
  639. package/dist/esm/ion-tab_2.entry.js +7 -6
  640. package/dist/esm/ion-text.entry.js +5 -5
  641. package/dist/esm/ion-textarea.entry.js +55 -15
  642. package/dist/esm/ion-toast.entry.js +40 -17
  643. package/dist/esm/ion-toggle.entry.js +79 -22
  644. package/dist/esm/ionic-global-2lDD9k7y.js +495 -0
  645. package/dist/esm/ionic.js +3 -3
  646. package/dist/esm/{ios.transition-BDzw0_Hm.js → ios.transition-uJxJFbq8.js} +6 -4
  647. package/dist/esm/{keyboard-ywgs5efA.js → keyboard-B-HHSSYU.js} +4 -3
  648. package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-CU1vRv-b.js} +1 -1
  649. package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-Dplyc4OV.js} +5 -3
  650. package/dist/esm/list-Dhi5xtNS.js +6 -0
  651. package/dist/esm/loader.js +3 -3
  652. package/dist/esm/{md.transition-BzDYi3qq.js → md.transition-Dp4NTeSh.js} +5 -4
  653. package/dist/esm/{notch-controller-BwelN_JM.js → notch-controller-BvFDmO69.js} +2 -2
  654. package/dist/esm/{overlays-D5YkFThA.js → overlays-B037a9Tz.js} +5 -6
  655. package/dist/esm/{status-tap-5DQ7Fc4V.js → status-tap-DXVlluKS.js} +3 -2
  656. package/dist/esm/{swipe-back-BKw2CAHc.js → swipe-back-DNhAt9fY.js} +2 -1
  657. package/dist/esm/x-BDqjX7Z_.js +6 -0
  658. package/dist/html.html-data.json +2530 -224
  659. package/dist/ionic/index.esm.js +1 -1
  660. package/dist/ionic/ionic.esm.js +1 -1
  661. package/dist/ionic/p-01577340.entry.js +4 -0
  662. package/dist/ionic/p-04b1d37a.entry.js +4 -0
  663. package/dist/ionic/p-04e0ff62.entry.js +4 -0
  664. package/dist/ionic/p-0607ce8e.entry.js +4 -0
  665. package/dist/ionic/p-0744265c.entry.js +4 -0
  666. package/dist/ionic/p-0ac7c560.entry.js +4 -0
  667. package/dist/ionic/p-0c41c8a8.entry.js +4 -0
  668. package/dist/ionic/p-0eecce18.entry.js +4 -0
  669. package/dist/ionic/p-0f124806.entry.js +4 -0
  670. package/dist/ionic/p-112e1ca9.entry.js +4 -0
  671. package/dist/ionic/p-19b2060d.entry.js +4 -0
  672. package/dist/ionic/p-27dbb44c.entry.js +4 -0
  673. package/dist/ionic/p-28a9d991.entry.js +4 -0
  674. package/dist/ionic/p-2dc676b2.entry.js +4 -0
  675. package/dist/ionic/p-381eb2a4.entry.js +4 -0
  676. package/dist/ionic/p-412d5d9e.entry.js +4 -0
  677. package/dist/ionic/p-472b2ca3.entry.js +4 -0
  678. package/dist/ionic/p-5543b7b8.entry.js +4 -0
  679. package/dist/ionic/p-57a2d30b.entry.js +4 -0
  680. package/dist/ionic/p-59a79bd9.entry.js +4 -0
  681. package/dist/ionic/p-5daa0980.entry.js +4 -0
  682. package/dist/ionic/p-5f9d9c14.entry.js +4 -0
  683. package/dist/ionic/p-60549f06.entry.js +4 -0
  684. package/dist/ionic/p-616dd053.entry.js +4 -0
  685. package/dist/ionic/p-63a2b52a.entry.js +4 -0
  686. package/dist/ionic/p-68c064ce.entry.js +4 -0
  687. package/dist/ionic/p-6bb99f41.entry.js +4 -0
  688. package/dist/ionic/p-742fed9f.entry.js +4 -0
  689. package/dist/ionic/p-7fe3ea65.entry.js +4 -0
  690. package/dist/ionic/p-826267d6.entry.js +4 -0
  691. package/dist/ionic/p-8681a2a7.entry.js +4 -0
  692. package/dist/ionic/p-8ee09d4e.entry.js +4 -0
  693. package/dist/ionic/p-8f541b05.entry.js +4 -0
  694. package/dist/ionic/{p-D13Eaw-8.js → p-B-D7Cfki.js} +1 -1
  695. package/dist/ionic/{p-CwgG81ZD.js → p-B3uz75uZ.js} +1 -1
  696. package/dist/ionic/p-BDqjX7Z_.js +4 -0
  697. package/dist/ionic/p-BYSs-jZz.js +4 -0
  698. package/dist/ionic/p-BiTKUjko.js +4 -0
  699. package/dist/ionic/p-ByhhQryg.js +4 -0
  700. package/dist/ionic/{p-DCv9sLH2.js → p-C8r4dtYR.js} +1 -1
  701. package/dist/ionic/p-CK1xn1Nt.js +4 -0
  702. package/dist/ionic/{p-DV3sJJW8.js → p-COG0_eom.js} +1 -1
  703. package/dist/ionic/p-COLHV2ym.js +4 -0
  704. package/dist/ionic/p-C_97se21.js +4 -0
  705. package/dist/ionic/{p-CKvCXMs9.js → p-Cq83JWMg.js} +1 -1
  706. package/dist/ionic/{p-Dc45iWE4.js → p-CtUK3cKk.js} +1 -1
  707. package/dist/ionic/p-CvRDI-Iz.js +4 -0
  708. package/dist/ionic/{p-CJxh_yLS.js → p-D-BelbiX.js} +1 -1
  709. package/dist/ionic/p-D1t981Ih.js +4 -0
  710. package/dist/ionic/p-DHeUgOSJ.js +4 -0
  711. package/dist/ionic/p-DM-v_NNE.js +4 -0
  712. package/dist/ionic/p-DeEDqH91.js +4 -0
  713. package/dist/ionic/p-Dhi5xtNS.js +4 -0
  714. package/dist/ionic/p-DoGrslUl.js +4 -0
  715. package/dist/ionic/p-Dq8ap6AD.js +4 -0
  716. package/dist/ionic/p-DyaKZbAH.js +4 -0
  717. package/dist/ionic/{p-D0dMcSkw.js → p-HpOiAvpC.js} +1 -1
  718. package/dist/ionic/p-UafGZQ8e.js +4 -0
  719. package/dist/ionic/p-a35678f4.entry.js +4 -0
  720. package/dist/ionic/p-a6a37a34.entry.js +4 -0
  721. package/dist/ionic/p-a89211bd.entry.js +4 -0
  722. package/dist/ionic/p-add1a5d8.entry.js +4 -0
  723. package/dist/ionic/p-af1f624e.entry.js +4 -0
  724. package/dist/ionic/p-b475ec18.entry.js +4 -0
  725. package/dist/ionic/p-bd295ca7.entry.js +4 -0
  726. package/dist/ionic/p-be82dc77.entry.js +4 -0
  727. package/dist/ionic/p-c082f853.entry.js +4 -0
  728. package/dist/ionic/p-c19b5c8c.entry.js +4 -0
  729. package/dist/ionic/p-cdbfbff6.entry.js +4 -0
  730. package/dist/ionic/p-d3f64c58.entry.js +4 -0
  731. package/dist/ionic/p-d9c9592a.entry.js +4 -0
  732. package/dist/ionic/p-da0a2ca6.entry.js +4 -0
  733. package/dist/ionic/p-da49c0fe.entry.js +4 -0
  734. package/dist/ionic/p-dacd8666.entry.js +4 -0
  735. package/dist/ionic/p-e1d84521.entry.js +4 -0
  736. package/dist/ionic/p-ecba552f.entry.js +4 -0
  737. package/dist/ionic/p-ecf8e713.entry.js +4 -0
  738. package/dist/ionic/p-f667945d.entry.js +4 -0
  739. package/dist/ionic/p-fIOYmaqA.js +4 -0
  740. package/dist/ionic/p-nP9c7bo5.js +4 -0
  741. package/dist/ionic/p-of4jy1ch.js +4 -0
  742. package/dist/ionic/{p-DUt5fQmA.js → p-q1ZSn0l7.js} +1 -1
  743. package/dist/ionic/p-qZR4N8Lu.js +4 -0
  744. package/dist/ionic/p-vXpMhGrs.js +4 -0
  745. package/dist/types/components/accordion/accordion.d.ts +5 -3
  746. package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
  747. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +3 -7
  748. package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
  749. package/dist/types/components/alert/alert-interface.d.ts +3 -7
  750. package/dist/types/components/alert/alert.d.ts +3 -2
  751. package/dist/types/components/app/app.d.ts +4 -2
  752. package/dist/types/components/avatar/avatar.d.ts +32 -0
  753. package/dist/types/components/back-button/back-button.d.ts +2 -1
  754. package/dist/types/components/backdrop/backdrop.d.ts +4 -0
  755. package/dist/types/components/badge/badge.d.ts +34 -1
  756. package/dist/types/components/breadcrumb/breadcrumb.d.ts +4 -1
  757. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  758. package/dist/types/components/button/button.d.ts +19 -6
  759. package/dist/types/components/buttons/buttons.d.ts +5 -1
  760. package/dist/types/components/card/card.d.ts +8 -1
  761. package/dist/types/components/card-content/card-content.d.ts +2 -1
  762. package/dist/types/components/card-header/card-header.d.ts +3 -2
  763. package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
  764. package/dist/types/components/card-title/card-title.d.ts +2 -1
  765. package/dist/types/components/checkbox/checkbox.d.ts +14 -4
  766. package/dist/types/components/chip/chip.d.ts +26 -1
  767. package/dist/types/components/col/col.d.ts +52 -5
  768. package/dist/types/components/content/content.d.ts +3 -0
  769. package/dist/types/components/datetime/datetime.d.ts +26 -1
  770. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  771. package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
  772. package/dist/types/components/divider/divider.d.ts +20 -0
  773. package/dist/types/components/fab/fab.d.ts +4 -0
  774. package/dist/types/components/fab-button/fab-button.d.ts +5 -3
  775. package/dist/types/components/fab-list/fab-list.d.ts +4 -0
  776. package/dist/types/components/footer/footer.d.ts +4 -3
  777. package/dist/types/components/grid/grid.d.ts +4 -0
  778. package/dist/types/components/header/header.d.ts +9 -3
  779. package/dist/types/components/header/header.utils.d.ts +3 -3
  780. package/dist/types/components/img/img.d.ts +3 -0
  781. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
  782. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
  783. package/dist/types/components/input/input.d.ts +31 -5
  784. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +2 -0
  785. package/dist/types/components/item/item.d.ts +11 -4
  786. package/dist/types/components/item-divider/item-divider.d.ts +2 -1
  787. package/dist/types/components/item-group/item-group.d.ts +4 -0
  788. package/dist/types/components/item-option/item-option.d.ts +18 -1
  789. package/dist/types/components/item-options/item-options.d.ts +4 -0
  790. package/dist/types/components/item-sliding/item-sliding.d.ts +4 -0
  791. package/dist/types/components/label/label.d.ts +2 -1
  792. package/dist/types/components/list/list.d.ts +15 -1
  793. package/dist/types/components/list-header/list-header.d.ts +2 -1
  794. package/dist/types/components/loading/loading-interface.d.ts +2 -7
  795. package/dist/types/components/loading/loading.d.ts +3 -2
  796. package/dist/types/components/menu/menu.d.ts +3 -0
  797. package/dist/types/components/menu-button/menu-button.d.ts +3 -1
  798. package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
  799. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  800. package/dist/types/components/modal/gestures/swipe-to-close.d.ts +1 -1
  801. package/dist/types/components/modal/modal-interface.d.ts +4 -7
  802. package/dist/types/components/modal/modal.d.ts +11 -25
  803. package/dist/types/components/nav/nav-interface.d.ts +9 -1
  804. package/dist/types/components/nav/nav.d.ts +5 -1
  805. package/dist/types/components/nav-link/nav-link.d.ts +4 -0
  806. package/dist/types/components/note/note.d.ts +2 -1
  807. package/dist/types/components/picker/picker.d.ts +2 -1
  808. package/dist/types/components/picker-column/picker-column.d.ts +2 -1
  809. package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
  810. package/dist/types/components/picker-legacy/picker.d.ts +2 -1
  811. package/dist/types/components/popover/popover-interface.d.ts +3 -6
  812. package/dist/types/components/popover/popover.d.ts +6 -5
  813. package/dist/types/components/popover/utils.d.ts +0 -2
  814. package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
  815. package/dist/types/components/radio/radio.d.ts +2 -1
  816. package/dist/types/components/radio-group/radio-group.d.ts +8 -0
  817. package/dist/types/components/range/range.d.ts +2 -1
  818. package/dist/types/components/refresher/refresher.d.ts +2 -1
  819. package/dist/types/components/refresher-content/refresher-content.d.ts +4 -0
  820. package/dist/types/components/reorder/reorder.d.ts +9 -0
  821. package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
  822. package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
  823. package/dist/types/components/route/route.d.ts +4 -0
  824. package/dist/types/components/router/router.d.ts +4 -0
  825. package/dist/types/components/router-link/router-link.d.ts +4 -0
  826. package/dist/types/components/router-outlet/router-outlet.d.ts +4 -1
  827. package/dist/types/components/row/row.d.ts +4 -0
  828. package/dist/types/components/searchbar/searchbar.d.ts +51 -9
  829. package/dist/types/components/segment/segment.d.ts +2 -1
  830. package/dist/types/components/segment-button/segment-button.d.ts +2 -1
  831. package/dist/types/components/select/select.d.ts +41 -13
  832. package/dist/types/components/select-modal/select-modal.d.ts +1 -0
  833. package/dist/types/components/select-option/select-option.d.ts +4 -0
  834. package/dist/types/components/select-popover/select-popover.d.ts +3 -0
  835. package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
  836. package/dist/types/components/spinner/spinner.d.ts +15 -0
  837. package/dist/types/components/split-pane/split-pane.d.ts +4 -0
  838. package/dist/types/components/tab/tab.d.ts +4 -0
  839. package/dist/types/components/tab-bar/tab-bar.d.ts +22 -2
  840. package/dist/types/components/tab-button/tab-button.d.ts +12 -1
  841. package/dist/types/components/tabs/tabs.d.ts +3 -0
  842. package/dist/types/components/text/text.d.ts +2 -1
  843. package/dist/types/components/textarea/textarea.d.ts +17 -4
  844. package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
  845. package/dist/types/components/title/title.d.ts +4 -0
  846. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  847. package/dist/types/components/toast/toast-interface.d.ts +3 -7
  848. package/dist/types/components/toast/toast.d.ts +19 -2
  849. package/dist/types/components/toggle/toggle.d.ts +15 -1
  850. package/dist/types/components/toolbar/toolbar.d.ts +20 -3
  851. package/dist/types/components.d.ts +1593 -196
  852. package/dist/types/global/ionic-global.d.ts +27 -2
  853. package/dist/types/interface.d.ts +3 -0
  854. package/dist/types/utils/config.d.ts +106 -2
  855. package/dist/types/utils/focus-visible.d.ts +13 -0
  856. package/dist/types/utils/helpers.d.ts +11 -0
  857. package/dist/types/utils/overlays-interface.d.ts +31 -1
  858. package/dist/types/utils/test/playwright/generator.d.ts +31 -2
  859. package/hydrate/index.js +2890 -1131
  860. package/hydrate/index.mjs +2890 -1131
  861. package/package.json +8 -4
  862. package/components/hardware-back-button.js +0 -115
  863. package/components/index9.js +0 -7
  864. package/dist/cjs/hardware-back-button-VCK4V3mG.js +0 -121
  865. package/dist/cjs/index-DkNv4J_i.js +0 -10
  866. package/dist/cjs/ionic-global-HMVqOFGO.js +0 -151
  867. package/dist/esm/hardware-back-button-CPLxO-Ev.js +0 -115
  868. package/dist/esm/index-ZjP4CjeZ.js +0 -7
  869. package/dist/esm/ionic-global-CDrldh-5.js +0 -146
  870. package/dist/ionic/p-020af078.entry.js +0 -4
  871. package/dist/ionic/p-02d76786.entry.js +0 -4
  872. package/dist/ionic/p-074839fc.entry.js +0 -4
  873. package/dist/ionic/p-0dfa5a37.entry.js +0 -4
  874. package/dist/ionic/p-11518b31.entry.js +0 -4
  875. package/dist/ionic/p-11aa58d6.entry.js +0 -4
  876. package/dist/ionic/p-1647c46c.entry.js +0 -4
  877. package/dist/ionic/p-2a939845.entry.js +0 -4
  878. package/dist/ionic/p-301ad219.entry.js +0 -4
  879. package/dist/ionic/p-316c0420.entry.js +0 -4
  880. package/dist/ionic/p-31f7095f.entry.js +0 -4
  881. package/dist/ionic/p-34642fa1.entry.js +0 -4
  882. package/dist/ionic/p-35696017.entry.js +0 -4
  883. package/dist/ionic/p-370e4237.entry.js +0 -4
  884. package/dist/ionic/p-3a6caca9.entry.js +0 -4
  885. package/dist/ionic/p-40c261a3.entry.js +0 -4
  886. package/dist/ionic/p-46d74291.entry.js +0 -4
  887. package/dist/ionic/p-49d06882.entry.js +0 -4
  888. package/dist/ionic/p-4e41ea20.entry.js +0 -4
  889. package/dist/ionic/p-51a60e0f.entry.js +0 -4
  890. package/dist/ionic/p-582824c5.entry.js +0 -4
  891. package/dist/ionic/p-6241ce47.entry.js +0 -4
  892. package/dist/ionic/p-639dd543.entry.js +0 -4
  893. package/dist/ionic/p-6444c606.entry.js +0 -4
  894. package/dist/ionic/p-675b1a31.entry.js +0 -4
  895. package/dist/ionic/p-6d070558.entry.js +0 -4
  896. package/dist/ionic/p-71fa7adc.entry.js +0 -4
  897. package/dist/ionic/p-7268efa5.entry.js +0 -4
  898. package/dist/ionic/p-72c38b88.entry.js +0 -4
  899. package/dist/ionic/p-732b2fd6.entry.js +0 -4
  900. package/dist/ionic/p-79bd78f9.entry.js +0 -4
  901. package/dist/ionic/p-7babec72.entry.js +0 -4
  902. package/dist/ionic/p-86f53961.entry.js +0 -4
  903. package/dist/ionic/p-94de5cfa.entry.js +0 -4
  904. package/dist/ionic/p-9575b654.entry.js +0 -4
  905. package/dist/ionic/p-9eeaBrnk.js +0 -4
  906. package/dist/ionic/p-B0q1YL7N.js +0 -4
  907. package/dist/ionic/p-BFvmZNyx.js +0 -4
  908. package/dist/ionic/p-BKc55Xev.js +0 -4
  909. package/dist/ionic/p-BOVrCkpJ.js +0 -4
  910. package/dist/ionic/p-BYEqWnSg.js +0 -4
  911. package/dist/ionic/p-BmVRXR1y.js +0 -4
  912. package/dist/ionic/p-Bmgaetn_.js +0 -4
  913. package/dist/ionic/p-C7hRNDhM.js +0 -4
  914. package/dist/ionic/p-CIGNaXM1.js +0 -4
  915. package/dist/ionic/p-CTfR9YZG.js +0 -4
  916. package/dist/ionic/p-CtWGkNnJ.js +0 -4
  917. package/dist/ionic/p-D-eFFUkA.js +0 -4
  918. package/dist/ionic/p-DDb5r57F.js +0 -4
  919. package/dist/ionic/p-DNcfiJwE.js +0 -4
  920. package/dist/ionic/p-DZRJwG4S.js +0 -4
  921. package/dist/ionic/p-DdR6rpbR.js +0 -4
  922. package/dist/ionic/p-QHYY4sjU.js +0 -4
  923. package/dist/ionic/p-ZjP4CjeZ.js +0 -4
  924. package/dist/ionic/p-a127bee2.entry.js +0 -4
  925. package/dist/ionic/p-ac4eb91d.entry.js +0 -4
  926. package/dist/ionic/p-b0a7585c.entry.js +0 -4
  927. package/dist/ionic/p-b3d44509.entry.js +0 -4
  928. package/dist/ionic/p-c19af093.entry.js +0 -4
  929. package/dist/ionic/p-c19f63d0.entry.js +0 -4
  930. package/dist/ionic/p-cc45bcbc.entry.js +0 -4
  931. package/dist/ionic/p-d0a2a1ab.entry.js +0 -4
  932. package/dist/ionic/p-d126e8d3.entry.js +0 -4
  933. package/dist/ionic/p-d1f54e28.entry.js +0 -4
  934. package/dist/ionic/p-d3014190.entry.js +0 -4
  935. package/dist/ionic/p-da7d04cc.entry.js +0 -4
  936. package/dist/ionic/p-db82892c.entry.js +0 -4
  937. package/dist/ionic/p-dbbe606a.entry.js +0 -4
  938. package/dist/ionic/p-dd1aef77.entry.js +0 -4
  939. package/dist/ionic/p-eb024a5b.entry.js +0 -4
  940. package/dist/ionic/p-f8f22cc0.entry.js +0 -4
  941. /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
  *
@@ -42,8 +43,6 @@ export class Modal {
42
43
  this.inline = false;
43
44
  // Whether or not modal is being dismissed via gesture
44
45
  this.gestureAnimationDismissing = false;
45
- // Whether to skip coordinate-based safe-area detection (for fullscreen phone modals)
46
- this.skipSafeAreaCoordinateDetection = false;
47
46
  this.presented = false;
48
47
  /** @internal */
49
48
  this.hasController = false;
@@ -234,9 +233,7 @@ export class Modal {
234
233
  }
235
234
  }
236
235
  onWindowResize() {
237
- // Update safe-area overrides for all modal types on resize
238
- this.updateSafeAreaOverrides();
239
- // 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
240
237
  if (getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
241
238
  return;
242
239
  }
@@ -418,8 +415,6 @@ export class Modal {
418
415
  else if (!this.keepContentsMounted) {
419
416
  await waitForMount();
420
417
  }
421
- // Predict safe-area needs based on modal configuration to avoid visual snap
422
- this.setInitialSafeAreaOverrides(presentingElement);
423
418
  writeTask(() => this.el.classList.add('show-modal'));
424
419
  const hasCardModal = presentingElement !== undefined;
425
420
  /**
@@ -437,6 +432,7 @@ export class Modal {
437
432
  currentBreakpoint: this.initialBreakpoint,
438
433
  backdropBreakpoint: this.backdropBreakpoint,
439
434
  expandToScroll: this.expandToScroll,
435
+ staticBackdropOpacity: getIonTheme(this) === 'ionic',
440
436
  });
441
437
  /* tslint:disable-next-line */
442
438
  if (typeof window !== 'undefined') {
@@ -481,8 +477,6 @@ export class Modal {
481
477
  else if (hasCardModal) {
482
478
  this.initSwipeToClose();
483
479
  }
484
- // Now that animation is complete, update safe-area based on actual position
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,107 +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
- // Sheet modals always touch bottom edge, never top/left/right
648
- if (isSheetModal) {
649
- style.setProperty('--ion-safe-area-top', '0px');
650
- style.setProperty('--ion-safe-area-left', '0px');
651
- style.setProperty('--ion-safe-area-right', '0px');
652
- return;
653
- }
654
- // Card modals have rounded top corners
655
- if (isCardModal) {
656
- style.setProperty('--ion-safe-area-top', '0px');
657
- if (isTablet) {
658
- // On tablets, card modals are inset from all edges
659
- this.zeroAllSafeAreas();
660
- }
661
- else {
662
- // On phones, card modals still extend to the bottom edge
663
- style.setProperty('--ion-safe-area-left', '0px');
664
- style.setProperty('--ion-safe-area-right', '0px');
665
- this.applyFullscreenSafeArea();
666
- }
667
- return;
668
- }
669
- // Phone-sized fullscreen modals inherit safe areas and use wrapper padding
670
- if (!isTablet) {
671
- this.applyFullscreenSafeArea();
672
- return;
673
- }
674
- // Check if tablet modal is fullscreen via CSS custom properties
675
- const computedStyle = getComputedStyle(this.el);
676
- const width = computedStyle.getPropertyValue('--width').trim();
677
- const height = computedStyle.getPropertyValue('--height').trim();
678
- const isFullscreen = width === '100%' && height === '100%';
679
- if (isFullscreen) {
680
- this.applyFullscreenSafeArea();
681
- }
682
- else {
683
- // Centered dialog doesn't touch edges
684
- this.zeroAllSafeAreas();
685
- }
686
- }
687
- /**
688
- * Applies safe-area handling for fullscreen modals.
689
- * Adds wrapper padding when no footer is present to prevent
690
- * content from overlapping system navigation areas.
691
- */
692
- applyFullscreenSafeArea() {
693
- this.skipSafeAreaCoordinateDetection = true;
694
- const hasFooter = this.el.querySelector('ion-footer') !== null;
695
- if (!hasFooter && this.wrapperEl) {
696
- this.wrapperEl.style.setProperty('padding-bottom', 'var(--ion-safe-area-bottom, 0px)');
697
- this.wrapperEl.style.setProperty('box-sizing', 'border-box');
698
- }
699
- }
700
- /**
701
- * Sets all safe-area CSS variables to 0px for modals that
702
- * don't touch screen edges.
703
- */
704
- zeroAllSafeAreas() {
705
- const style = this.el.style;
706
- style.setProperty('--ion-safe-area-top', '0px');
707
- style.setProperty('--ion-safe-area-bottom', '0px');
708
- style.setProperty('--ion-safe-area-left', '0px');
709
- style.setProperty('--ion-safe-area-right', '0px');
710
- }
711
- /**
712
- * Updates safe-area CSS variable overrides based on whether the modal
713
- * is touching each edge of the viewport. Called after animation
714
- * and during gestures to handle dynamic position changes.
715
- */
716
- updateSafeAreaOverrides() {
717
- if (this.skipSafeAreaCoordinateDetection) {
718
- return;
719
- }
720
- const wrapper = this.wrapperEl;
721
- if (!wrapper) {
722
- return;
723
- }
724
- const rect = wrapper.getBoundingClientRect();
725
- const threshold = 2;
726
- const touchingTop = rect.top <= threshold;
727
- const touchingBottom = rect.bottom >= window.innerHeight - threshold;
728
- const touchingLeft = rect.left <= threshold;
729
- const touchingRight = rect.right >= window.innerWidth - threshold;
730
- const style = this.el.style;
731
- touchingTop ? style.removeProperty('--ion-safe-area-top') : style.setProperty('--ion-safe-area-top', '0px');
732
- touchingBottom
733
- ? style.removeProperty('--ion-safe-area-bottom')
734
- : style.setProperty('--ion-safe-area-bottom', '0px');
735
- touchingLeft ? style.removeProperty('--ion-safe-area-left') : style.setProperty('--ion-safe-area-left', '0px');
736
- touchingRight ? style.removeProperty('--ion-safe-area-right') : style.setProperty('--ion-safe-area-right', '0px');
737
- }
738
631
  sheetOnDismiss() {
739
632
  /**
740
633
  * While the gesture animation is finishing
@@ -827,8 +720,6 @@ export class Modal {
827
720
  }
828
721
  this.currentBreakpoint = undefined;
829
722
  this.animation = undefined;
830
- // Reset safe-area detection flag for potential re-presentation
831
- this.skipSafeAreaCoordinateDetection = false;
832
723
  unlock();
833
724
  return dismissed;
834
725
  }
@@ -901,6 +792,18 @@ export class Modal {
901
792
  await this.setCurrentBreakpoint(nextBreakpoint);
902
793
  return true;
903
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
+ }
904
807
  initViewTransitionListener() {
905
808
  // Only enable for iOS card modals when no custom animations are provided
906
809
  if (getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
@@ -910,10 +813,6 @@ export class Modal {
910
813
  this.currentViewIsPortrait = window.innerWidth < 768;
911
814
  }
912
815
  handleViewTransition() {
913
- // Only run view transitions when the modal is presented
914
- if (!this.presented) {
915
- return;
916
- }
917
816
  const isPortrait = window.innerWidth < 768;
918
817
  // Only transition if view state actually changed
919
818
  if (this.currentViewIsPortrait === isPortrait) {
@@ -1082,37 +981,40 @@ export class Modal {
1082
981
  render() {
1083
982
  const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
1084
983
  const showHandle = handle !== false && isSheetModal;
1085
- const mode = getIonMode(this);
1086
- const isCardModal = presentingElement !== undefined && mode === 'ios';
984
+ const theme = getIonTheme(this);
985
+ const isCardModal = presentingElement !== undefined && theme === 'ios';
1087
986
  const isHandleCycle = handleBehavior === 'cycle';
987
+ const shape = this.getShape();
1088
988
  const isSheetModalWithHandle = isSheetModal && showHandle;
1089
- return (h(Host, Object.assign({ key: '6642b8a32dad449f26ac4ed60814d69afc97bf30', "no-router": true,
989
+ return (h(Host, Object.assign({ key: '547adca39bb8f0070f2e2c17d39300eab5d66202', "no-router": true,
1090
990
  // Allow the modal to be navigable when the handle is focusable
1091
991
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
1092
992
  zIndex: `${20000 + this.overlayIndex}`,
1093
- }, 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: '8adf79ea72c0f622190ff366980621067c35795b', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '34f14fcd4970c04aee3b7a5305f9f220ff377f37', class: "modal-shadow" }), h("div", Object.assign({ key: 'a3a8e3df6a1cfe061bbd99503655015ca8cd416d',
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',
1094
994
  /*
1095
995
  role and aria-modal must be used on the
1096
996
  same element. They must also be set inside the
1097
997
  shadow DOM otherwise ion-button will not be highlighted
1098
998
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
1099
999
  */
1100
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'a4ad2f6def8c20a36a9731553dfa5a98392151ef', 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",
1101
1001
  // Prevents the handle from receiving keyboard focus when it does not cycle
1102
- 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: '46fb6d94814dae4a9bcdf99387d57a17c6a6a95c', 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 }))));
1103
1003
  }
1104
1004
  static get is() { return "ion-modal"; }
1105
1005
  static get encapsulation() { return "shadow"; }
1106
1006
  static get originalStyleUrls() {
1107
1007
  return {
1108
1008
  "ios": ["modal.ios.scss"],
1109
- "md": ["modal.md.scss"]
1009
+ "md": ["modal.md.scss"],
1010
+ "ionic": ["modal.ionic.scss"]
1110
1011
  };
1111
1012
  }
1112
1013
  static get styleUrls() {
1113
1014
  return {
1114
1015
  "ios": ["modal.ios.css"],
1115
- "md": ["modal.md.css"]
1016
+ "md": ["modal.md.css"],
1017
+ "ionic": ["modal.ionic.css"]
1116
1018
  };
1117
1019
  }
1118
1020
  static get properties() {
@@ -1653,6 +1555,25 @@ export class Modal {
1653
1555
  "reflect": false,
1654
1556
  "attribute": "can-dismiss",
1655
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"
1656
1577
  }
1657
1578
  };
1658
1579
  }