voyager-ionic-core 8.0.0-beta.3 → 8.0.0

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 (716) hide show
  1. package/components/action-sheet.js +3 -3
  2. package/components/alert.js +2 -2
  3. package/components/animation.js +9 -250
  4. package/components/backdrop.js +1 -1
  5. package/components/button.js +18 -5
  6. package/components/buttons.js +2 -2
  7. package/components/checkbox.js +5 -5
  8. package/components/haptic.js +6 -54
  9. package/components/helpers.js +1 -4
  10. package/components/index7.js +3 -1
  11. package/components/index9.js +5 -34
  12. package/components/ion-app.js +1 -1
  13. package/components/ion-avatar.js +1 -1
  14. package/components/ion-back-button.js +2 -2
  15. package/components/ion-badge.js +2 -2
  16. package/components/ion-breadcrumb.js +4 -4
  17. package/components/ion-breadcrumbs.js +2 -2
  18. package/components/ion-card-content.js +1 -1
  19. package/components/ion-card-header.js +2 -2
  20. package/components/ion-card-subtitle.js +2 -2
  21. package/components/ion-card-title.js +2 -2
  22. package/components/ion-card.js +1 -1
  23. package/components/ion-chip.js +2 -2
  24. package/components/ion-col.js +2 -2
  25. package/components/ion-content.js +3 -3
  26. package/components/ion-datetime-button.js +2 -2
  27. package/components/ion-datetime.js +2 -2
  28. package/components/ion-fab-button.js +2 -2
  29. package/components/ion-fab-list.js +2 -2
  30. package/components/ion-fab.js +2 -2
  31. package/components/ion-footer.js +2 -2
  32. package/components/ion-grid.js +2 -2
  33. package/components/ion-header.js +2 -2
  34. package/components/ion-img.js +1 -1
  35. package/components/ion-infinite-scroll-content.js +2 -2
  36. package/components/ion-infinite-scroll.js +1 -1
  37. package/components/ion-input-password-toggle.d.ts +11 -0
  38. package/components/ion-input-password-toggle.js +132 -0
  39. package/components/ion-input.js +27 -8
  40. package/components/ion-item-divider.js +2 -2
  41. package/components/ion-item-group.js +1 -1
  42. package/components/ion-item-option.js +2 -2
  43. package/components/ion-item-options.js +1 -1
  44. package/components/ion-item-sliding.js +1 -1
  45. package/components/ion-loading.js +2 -2
  46. package/components/ion-menu-button.js +3 -3
  47. package/components/ion-menu-toggle.js +2 -2
  48. package/components/ion-menu.js +2 -2
  49. package/components/ion-modal.js +47 -23
  50. package/components/ion-nav-link.js +1 -1
  51. package/components/ion-nav.js +1 -1
  52. package/components/ion-note.js +2 -2
  53. package/components/ion-picker-legacy.js +2 -2
  54. package/components/ion-progress-bar.js +1 -1
  55. package/components/ion-range.js +3 -3
  56. package/components/ion-refresher-content.js +2 -2
  57. package/components/ion-refresher.js +1 -1
  58. package/components/ion-reorder-group.js +1 -1
  59. package/components/ion-reorder.js +2 -2
  60. package/components/ion-router-link.js +2 -2
  61. package/components/ion-router-outlet.js +1 -1
  62. package/components/ion-row.js +1 -1
  63. package/components/ion-searchbar.js +7 -7
  64. package/components/ion-segment-button.js +3 -3
  65. package/components/ion-segment.js +2 -2
  66. package/components/ion-select-option.js +1 -1
  67. package/components/ion-select.js +3 -3
  68. package/components/ion-skeleton-text.js +2 -2
  69. package/components/ion-split-pane.js +2 -2
  70. package/components/ion-tab-bar.js +2 -2
  71. package/components/ion-tab-button.js +2 -2
  72. package/components/ion-tab.js +2 -2
  73. package/components/ion-tabs.js +1 -1
  74. package/components/ion-text.js +2 -2
  75. package/components/ion-textarea.js +2 -3
  76. package/components/ion-thumbnail.js +1 -1
  77. package/components/ion-title.js +2 -2
  78. package/components/ion-toast.js +2 -2
  79. package/components/ion-toggle.js +6 -6
  80. package/components/ion-toolbar.js +2 -2
  81. package/components/item.js +1 -1
  82. package/components/label.js +2 -2
  83. package/components/list-header.js +2 -2
  84. package/components/list.js +1 -1
  85. package/components/picker-column-option.js +2 -2
  86. package/components/picker-column.js +3 -3
  87. package/components/picker-column2.js +2 -2
  88. package/components/picker.js +2 -2
  89. package/components/popover.js +4 -4
  90. package/components/radio-group.js +1 -1
  91. package/components/radio.js +5 -5
  92. package/components/ripple-effect.js +1 -1
  93. package/components/select-popover.js +1 -1
  94. package/components/spinner.js +1 -1
  95. package/css/core.css +1 -624
  96. package/css/core.css.map +1 -1
  97. package/css/display.css +1 -131
  98. package/css/display.css.map +1 -1
  99. package/css/flex-utils.css +1 -81
  100. package/css/flex-utils.css.map +1 -1
  101. package/css/float-elements.css +1 -293
  102. package/css/float-elements.css.map +1 -1
  103. package/css/global.bundle.css +1 -457
  104. package/css/global.bundle.css.map +1 -1
  105. package/css/ionic-swiper.css +1 -127
  106. package/css/ionic-swiper.css.map +1 -1
  107. package/css/ionic.bundle.css +1 -1
  108. package/css/ionic.bundle.css.map +1 -1
  109. package/css/normalize.css +1 -150
  110. package/css/normalize.css.map +1 -1
  111. package/css/padding.css +1 -202
  112. package/css/padding.css.map +1 -1
  113. package/css/palettes/dark.always.css +1 -160
  114. package/css/palettes/dark.always.css.map +1 -1
  115. package/css/palettes/dark.class.css +1 -160
  116. package/css/palettes/dark.class.css.map +1 -1
  117. package/css/palettes/dark.css +0 -2
  118. package/css/palettes/dark.system.css +1 -162
  119. package/css/palettes/dark.system.css.map +1 -1
  120. package/css/palettes/high-contrast-dark.always.css +1 -180
  121. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  122. package/css/palettes/high-contrast-dark.class.css +1 -180
  123. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  124. package/css/palettes/high-contrast-dark.css +0 -2
  125. package/css/palettes/high-contrast-dark.system.css +1 -182
  126. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  127. package/css/palettes/high-contrast.always.css +1 -101
  128. package/css/palettes/high-contrast.always.css.map +1 -1
  129. package/css/palettes/high-contrast.class.css +1 -101
  130. package/css/palettes/high-contrast.class.css.map +1 -1
  131. package/css/palettes/high-contrast.css +0 -2
  132. package/css/palettes/high-contrast.system.css +1 -103
  133. package/css/palettes/high-contrast.system.css.map +1 -1
  134. package/css/structure.css +1 -152
  135. package/css/structure.css.map +1 -1
  136. package/css/text-alignment.css +1 -243
  137. package/css/text-alignment.css.map +1 -1
  138. package/css/text-transformation.css +1 -158
  139. package/css/text-transformation.css.map +1 -1
  140. package/css/typography.css +1 -157
  141. package/css/typography.css.map +1 -1
  142. package/css/utils.bundle.css +1 -1100
  143. package/css/utils.bundle.css.map +1 -1
  144. package/dist/cjs/{animation-58ecfe20.js → animation-b4fdf128.js} +9 -250
  145. package/dist/cjs/{app-globals-e132c781.js → app-globals-5bfa2d7f.js} +1 -1
  146. package/dist/cjs/{button-active-60ecf64d.js → button-active-564be49f.js} +2 -2
  147. package/dist/cjs/{framework-delegate-df3a2b04.js → framework-delegate-55f5683a.js} +1 -1
  148. package/dist/cjs/{haptic-b882e0bb.js → haptic-f6b37aa3.js} +6 -54
  149. package/dist/cjs/{hardware-back-button-1c67a5a2.js → hardware-back-button-44e7c052.js} +2 -2
  150. package/dist/cjs/{helpers-71097d9c.js → helpers-afaa9001.js} +0 -4
  151. package/dist/cjs/{index-f52c6d38.js → index-073c7cdc.js} +4 -0
  152. package/dist/cjs/{index-7479ea5a.js → index-5b6a7459.js} +1 -1
  153. package/dist/cjs/{index-14ae0c27.js → index-6d6ac424.js} +4 -4
  154. package/dist/cjs/{index-a91a3e24.js → index-9509ecad.js} +5 -34
  155. package/dist/cjs/{index-2d21d526.js → index-bbc6c29f.js} +48 -12
  156. package/dist/cjs/{index-289297dc.js → index-defd575f.js} +4 -4
  157. package/dist/cjs/index.cjs.js +11 -11
  158. package/dist/cjs/{input-shims-77b14f24.js → input-shims-20d639e6.js} +2 -2
  159. package/dist/cjs/{input.utils-ca74d73a.js → input.utils-611cde0b.js} +1 -1
  160. package/dist/cjs/ion-accordion_2.cjs.entry.js +4 -4
  161. package/dist/cjs/ion-action-sheet.cjs.entry.js +12 -12
  162. package/dist/cjs/ion-alert.cjs.entry.js +11 -11
  163. package/dist/cjs/ion-app_8.cjs.entry.js +27 -27
  164. package/dist/cjs/ion-avatar_3.cjs.entry.js +6 -6
  165. package/dist/cjs/ion-back-button.cjs.entry.js +6 -6
  166. package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
  167. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +10 -10
  168. package/dist/cjs/ion-button_2.cjs.entry.js +19 -7
  169. package/dist/cjs/ion-card_5.cjs.entry.js +11 -11
  170. package/dist/cjs/ion-checkbox.cjs.entry.js +8 -8
  171. package/dist/cjs/ion-chip.cjs.entry.js +4 -4
  172. package/dist/cjs/ion-col_3.cjs.entry.js +7 -7
  173. package/dist/cjs/ion-datetime-button.cjs.entry.js +5 -5
  174. package/dist/cjs/ion-datetime_3.cjs.entry.js +15 -15
  175. package/dist/cjs/ion-fab_3.cjs.entry.js +10 -10
  176. package/dist/cjs/ion-img.cjs.entry.js +4 -4
  177. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +7 -7
  178. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +93 -0
  179. package/dist/cjs/ion-input.cjs.entry.js +30 -12
  180. package/dist/cjs/ion-item-option_3.cjs.entry.js +8 -8
  181. package/dist/cjs/ion-item_8.cjs.entry.js +17 -17
  182. package/dist/cjs/ion-loading.cjs.entry.js +9 -9
  183. package/dist/cjs/ion-menu_3.cjs.entry.js +15 -15
  184. package/dist/cjs/ion-modal.cjs.entry.js +56 -32
  185. package/dist/cjs/ion-nav_2.cjs.entry.js +8 -8
  186. package/dist/cjs/ion-picker-column-option.cjs.entry.js +5 -5
  187. package/dist/cjs/ion-picker-column.cjs.entry.js +7 -7
  188. package/dist/cjs/ion-picker.cjs.entry.js +4 -4
  189. package/dist/cjs/ion-popover.cjs.entry.js +12 -12
  190. package/dist/cjs/ion-progress-bar.cjs.entry.js +4 -4
  191. package/dist/cjs/ion-radio_2.cjs.entry.js +9 -9
  192. package/dist/cjs/ion-range.cjs.entry.js +7 -7
  193. package/dist/cjs/ion-refresher_2.cjs.entry.js +9 -9
  194. package/dist/cjs/ion-reorder_2.cjs.entry.js +8 -8
  195. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  196. package/dist/cjs/ion-route_4.cjs.entry.js +5 -5
  197. package/dist/cjs/ion-searchbar.cjs.entry.js +10 -10
  198. package/dist/cjs/ion-segment_2.cjs.entry.js +8 -8
  199. package/dist/cjs/ion-select_3.cjs.entry.js +12 -12
  200. package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
  201. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  202. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +7 -7
  203. package/dist/cjs/ion-tab_2.cjs.entry.js +6 -6
  204. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  205. package/dist/cjs/ion-textarea.cjs.entry.js +7 -8
  206. package/dist/cjs/ion-toast.cjs.entry.js +9 -9
  207. package/dist/cjs/ion-toggle.cjs.entry.js +10 -10
  208. package/dist/cjs/{ionic-global-5762eca9.js → ionic-global-62487d02.js} +1 -1
  209. package/dist/cjs/ionic.cjs.js +5 -5
  210. package/dist/cjs/{ios.transition-8e0ca8ed.js → ios.transition-d4f0ca4e.js} +4 -4
  211. package/dist/cjs/loader.cjs.js +4 -4
  212. package/dist/cjs/{md.transition-5d0f134b.js → md.transition-857328f3.js} +4 -4
  213. package/dist/cjs/{notch-controller-0042ad49.js → notch-controller-d69150f5.js} +1 -1
  214. package/dist/cjs/{overlays-30b83581.js → overlays-10c452b2.js} +4 -4
  215. package/dist/cjs/{status-tap-dc3b8fda.js → status-tap-81daddfa.js} +3 -3
  216. package/dist/cjs/{swipe-back-49825f1f.js → swipe-back-f38a434a.js} +1 -1
  217. package/dist/collection/collection-manifest.json +3 -2
  218. package/dist/collection/components/action-sheet/action-sheet.js +3 -3
  219. package/dist/collection/components/alert/alert.js +2 -2
  220. package/dist/collection/components/app/app.js +1 -1
  221. package/dist/collection/components/avatar/avatar.js +1 -1
  222. package/dist/collection/components/back-button/back-button.js +2 -2
  223. package/dist/collection/components/backdrop/backdrop.js +1 -1
  224. package/dist/collection/components/badge/badge.js +2 -2
  225. package/dist/collection/components/breadcrumb/breadcrumb.js +4 -4
  226. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  227. package/dist/collection/components/button/button.ios.css +76 -15
  228. package/dist/collection/components/button/button.js +19 -2
  229. package/dist/collection/components/button/button.md.css +75 -19
  230. package/dist/collection/components/button/test/round/button.e2e.js +39 -4
  231. package/dist/collection/components/buttons/buttons.js +2 -2
  232. package/dist/collection/components/card/card.js +1 -1
  233. package/dist/collection/components/card-content/card-content.js +1 -1
  234. package/dist/collection/components/card-header/card-header.js +2 -2
  235. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  236. package/dist/collection/components/card-title/card-title.js +2 -2
  237. package/dist/collection/components/checkbox/checkbox.ios.css +1 -0
  238. package/dist/collection/components/checkbox/checkbox.js +3 -3
  239. package/dist/collection/components/checkbox/checkbox.md.css +1 -0
  240. package/dist/collection/components/chip/chip.js +2 -2
  241. package/dist/collection/components/col/col.js +2 -2
  242. package/dist/collection/components/content/content.js +3 -3
  243. package/dist/collection/components/datetime/datetime.js +2 -2
  244. package/dist/collection/components/datetime-button/datetime-button.js +2 -2
  245. package/dist/collection/components/fab/fab.js +2 -2
  246. package/dist/collection/components/fab-button/fab-button.js +2 -2
  247. package/dist/collection/components/fab-list/fab-list.js +2 -2
  248. package/dist/collection/components/footer/footer.js +2 -2
  249. package/dist/collection/components/grid/grid.js +2 -2
  250. package/dist/collection/components/header/header.js +2 -2
  251. package/dist/collection/components/img/img.js +1 -1
  252. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  253. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  254. package/dist/collection/components/input/input.ios.css +9 -0
  255. package/dist/collection/components/input/input.js +26 -29
  256. package/dist/collection/components/input/input.md.css +9 -0
  257. package/dist/collection/components/input-password-toggle/input-password-toggle.css +0 -0
  258. package/dist/collection/components/input-password-toggle/input-password-toggle.js +183 -0
  259. package/dist/collection/components/input-password-toggle/test/a11y/input-password-toggle.e2e.js +21 -0
  260. package/dist/collection/components/input-password-toggle/test/basic/input-password-toggle.e2e.js +38 -0
  261. package/dist/collection/components/input-password-toggle/test/input-password-toggle.spec.js +76 -0
  262. package/dist/collection/components/item/item.js +1 -1
  263. package/dist/collection/components/item-divider/item-divider.js +2 -2
  264. package/dist/collection/components/item-group/item-group.js +1 -1
  265. package/dist/collection/components/item-option/item-option.js +2 -2
  266. package/dist/collection/components/item-options/item-options.js +1 -1
  267. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  268. package/dist/collection/components/label/label.js +2 -2
  269. package/dist/collection/components/list/list.js +1 -1
  270. package/dist/collection/components/list-header/list-header.js +2 -2
  271. package/dist/collection/components/loading/loading.js +2 -2
  272. package/dist/collection/components/menu/menu.js +2 -2
  273. package/dist/collection/components/menu-button/menu-button.js +2 -2
  274. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  275. package/dist/collection/components/modal/gestures/sheet.js +45 -20
  276. package/dist/collection/components/modal/modal.js +4 -4
  277. package/dist/collection/components/nav/nav.js +1 -1
  278. package/dist/collection/components/nav-link/nav-link.js +1 -1
  279. package/dist/collection/components/note/note.js +2 -2
  280. package/dist/collection/components/picker/picker.js +2 -2
  281. package/dist/collection/components/picker-column/picker-column.js +3 -3
  282. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  283. package/dist/collection/components/picker-legacy/picker.js +2 -2
  284. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  285. package/dist/collection/components/popover/popover.ios.css +0 -1
  286. package/dist/collection/components/popover/popover.js +2 -2
  287. package/dist/collection/components/popover/popover.md.css +0 -1
  288. package/dist/collection/components/popover/test/basic/popover.e2e.js +76 -0
  289. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  290. package/dist/collection/components/radio/radio.ios.css +1 -0
  291. package/dist/collection/components/radio/radio.js +3 -3
  292. package/dist/collection/components/radio/radio.md.css +1 -0
  293. package/dist/collection/components/radio-group/radio-group.js +1 -1
  294. package/dist/collection/components/range/range.js +3 -3
  295. package/dist/collection/components/refresher/refresher.js +1 -1
  296. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  297. package/dist/collection/components/reorder/reorder.js +1 -1
  298. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  299. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  300. package/dist/collection/components/router-link/router-link.js +2 -2
  301. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  302. package/dist/collection/components/row/row.js +1 -1
  303. package/dist/collection/components/searchbar/searchbar.js +9 -8
  304. package/dist/collection/components/segment/segment.js +2 -2
  305. package/dist/collection/components/segment-button/segment-button.js +3 -3
  306. package/dist/collection/components/select/select.js +2 -2
  307. package/dist/collection/components/select-option/select-option.js +1 -1
  308. package/dist/collection/components/select-popover/select-popover.js +1 -1
  309. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  310. package/dist/collection/components/spinner/spinner.js +1 -1
  311. package/dist/collection/components/split-pane/split-pane.js +2 -2
  312. package/dist/collection/components/tab/tab.js +2 -2
  313. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  314. package/dist/collection/components/tab-button/tab-button.js +2 -2
  315. package/dist/collection/components/tabs/tabs.js +1 -1
  316. package/dist/collection/components/text/text.js +2 -2
  317. package/dist/collection/components/textarea/textarea.js +2 -26
  318. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  319. package/dist/collection/components/title/title.js +2 -2
  320. package/dist/collection/components/toast/toast.js +2 -2
  321. package/dist/collection/components/toggle/toggle.ios.css +1 -0
  322. package/dist/collection/components/toggle/toggle.js +3 -3
  323. package/dist/collection/components/toggle/toggle.md.css +1 -0
  324. package/dist/collection/components/toolbar/test/basic/toolbar.e2e.js +133 -5
  325. package/dist/collection/components/toolbar/toolbar.js +2 -2
  326. package/dist/collection/utils/animation/animation-utils.js +0 -102
  327. package/dist/collection/utils/animation/animation.js +10 -141
  328. package/dist/collection/utils/animation/test/animation.spec.js +0 -89
  329. package/dist/collection/utils/animation/test/animationbuilder/animation.e2e.js +0 -4
  330. package/dist/collection/utils/animation/test/basic/animation.e2e.js +0 -4
  331. package/dist/collection/utils/animation/test/display/animation.e2e.js +0 -4
  332. package/dist/collection/utils/animation/test/hooks/animation.e2e.js +0 -4
  333. package/dist/collection/utils/animation/test/multiple/animation.e2e.js +0 -7
  334. package/dist/collection/utils/native/haptic.js +6 -54
  335. package/dist/collection/utils/tap-click/index.js +5 -34
  336. package/dist/docs.json +182 -7
  337. package/dist/esm/{animation-6a3c0abb.js → animation-eab5a4ca.js} +9 -250
  338. package/dist/esm/{app-globals-80842d68.js → app-globals-49873df1.js} +1 -1
  339. package/dist/esm/{button-active-c6e18fac.js → button-active-46df59c1.js} +2 -2
  340. package/dist/esm/{framework-delegate-3dede018.js → framework-delegate-63d1a679.js} +1 -1
  341. package/dist/esm/{haptic-554688a5.js → haptic-ac164e4c.js} +6 -54
  342. package/dist/esm/{hardware-back-button-fb295e3a.js → hardware-back-button-ba8f64c2.js} +2 -2
  343. package/dist/esm/{helpers-eab4f597.js → helpers-da915de8.js} +1 -4
  344. package/dist/esm/{index-95a691d4.js → index-56d90da9.js} +4 -4
  345. package/dist/esm/{index-044b5a86.js → index-5cc724f3.js} +1 -1
  346. package/dist/esm/{index-fa221975.js → index-79b30591.js} +5 -34
  347. package/dist/esm/{index-5d6a0317.js → index-bcd8859b.js} +48 -12
  348. package/dist/esm/{index-f7dc70ba.js → index-e2cf2ceb.js} +3 -1
  349. package/dist/esm/{index-136e99c8.js → index-f0d7371a.js} +4 -4
  350. package/dist/esm/index.js +11 -11
  351. package/dist/esm/{input-shims-196afa11.js → input-shims-4530285e.js} +2 -2
  352. package/dist/esm/{input.utils-426cc674.js → input.utils-09c71bc7.js} +1 -1
  353. package/dist/esm/ion-accordion_2.entry.js +4 -4
  354. package/dist/esm/ion-action-sheet.entry.js +12 -12
  355. package/dist/esm/ion-alert.entry.js +11 -11
  356. package/dist/esm/ion-app_8.entry.js +27 -27
  357. package/dist/esm/ion-avatar_3.entry.js +6 -6
  358. package/dist/esm/ion-back-button.entry.js +6 -6
  359. package/dist/esm/ion-backdrop.entry.js +3 -3
  360. package/dist/esm/ion-breadcrumb_2.entry.js +10 -10
  361. package/dist/esm/ion-button_2.entry.js +19 -7
  362. package/dist/esm/ion-card_5.entry.js +11 -11
  363. package/dist/esm/ion-checkbox.entry.js +8 -8
  364. package/dist/esm/ion-chip.entry.js +4 -4
  365. package/dist/esm/ion-col_3.entry.js +7 -7
  366. package/dist/esm/ion-datetime-button.entry.js +5 -5
  367. package/dist/esm/ion-datetime_3.entry.js +15 -15
  368. package/dist/esm/ion-fab_3.entry.js +10 -10
  369. package/dist/esm/ion-img.entry.js +4 -4
  370. package/dist/esm/ion-infinite-scroll_2.entry.js +7 -7
  371. package/dist/esm/ion-input-password-toggle.entry.js +89 -0
  372. package/dist/esm/ion-input.entry.js +30 -12
  373. package/dist/esm/ion-item-option_3.entry.js +8 -8
  374. package/dist/esm/ion-item_8.entry.js +17 -17
  375. package/dist/esm/ion-loading.entry.js +9 -9
  376. package/dist/esm/ion-menu_3.entry.js +15 -15
  377. package/dist/esm/ion-modal.entry.js +56 -32
  378. package/dist/esm/ion-nav_2.entry.js +8 -8
  379. package/dist/esm/ion-picker-column-option.entry.js +5 -5
  380. package/dist/esm/ion-picker-column.entry.js +7 -7
  381. package/dist/esm/ion-picker.entry.js +4 -4
  382. package/dist/esm/ion-popover.entry.js +12 -12
  383. package/dist/esm/ion-progress-bar.entry.js +4 -4
  384. package/dist/esm/ion-radio_2.entry.js +9 -9
  385. package/dist/esm/ion-range.entry.js +7 -7
  386. package/dist/esm/ion-refresher_2.entry.js +9 -9
  387. package/dist/esm/ion-reorder_2.entry.js +8 -8
  388. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  389. package/dist/esm/ion-route_4.entry.js +5 -5
  390. package/dist/esm/ion-searchbar.entry.js +10 -10
  391. package/dist/esm/ion-segment_2.entry.js +8 -8
  392. package/dist/esm/ion-select_3.entry.js +12 -12
  393. package/dist/esm/ion-spinner.entry.js +3 -3
  394. package/dist/esm/ion-split-pane.entry.js +4 -4
  395. package/dist/esm/ion-tab-bar_2.entry.js +7 -7
  396. package/dist/esm/ion-tab_2.entry.js +6 -6
  397. package/dist/esm/ion-text.entry.js +4 -4
  398. package/dist/esm/ion-textarea.entry.js +7 -8
  399. package/dist/esm/ion-toast.entry.js +9 -9
  400. package/dist/esm/ion-toggle.entry.js +10 -10
  401. package/dist/esm/{ionic-global-a589c12c.js → ionic-global-e6c98cd0.js} +1 -1
  402. package/dist/esm/ionic.js +6 -6
  403. package/dist/esm/{ios.transition-d1c8eea2.js → ios.transition-71bfa932.js} +4 -4
  404. package/dist/esm/loader.js +5 -5
  405. package/dist/esm/{md.transition-0d2de76d.js → md.transition-86aef3c0.js} +4 -4
  406. package/dist/esm/{notch-controller-cff691e5.js → notch-controller-55b09e11.js} +1 -1
  407. package/dist/esm/{overlays-d41f74ac.js → overlays-6fb4a2f2.js} +4 -4
  408. package/dist/esm/{status-tap-45595148.js → status-tap-299361cd.js} +3 -3
  409. package/dist/esm/{swipe-back-5aa5feeb.js → swipe-back-b613d7db.js} +1 -1
  410. package/dist/esm-es5/animation-eab5a4ca.js +4 -0
  411. package/dist/esm-es5/app-globals-49873df1.js +4 -0
  412. package/dist/esm-es5/{button-active-c6e18fac.js → button-active-46df59c1.js} +1 -1
  413. package/dist/esm-es5/framework-delegate-63d1a679.js +4 -0
  414. package/dist/esm-es5/haptic-ac164e4c.js +4 -0
  415. package/dist/esm-es5/{hardware-back-button-fb295e3a.js → hardware-back-button-ba8f64c2.js} +1 -1
  416. package/dist/esm-es5/{helpers-eab4f597.js → helpers-da915de8.js} +1 -1
  417. package/dist/esm-es5/index-56d90da9.js +4 -0
  418. package/dist/esm-es5/{index-044b5a86.js → index-5cc724f3.js} +1 -1
  419. package/dist/esm-es5/index-79b30591.js +4 -0
  420. package/dist/esm-es5/index-bcd8859b.js +5 -0
  421. package/dist/esm-es5/{index-f7dc70ba.js → index-e2cf2ceb.js} +1 -1
  422. package/dist/esm-es5/{index-136e99c8.js → index-f0d7371a.js} +1 -1
  423. package/dist/esm-es5/index.js +1 -1
  424. package/dist/esm-es5/input-shims-4530285e.js +4 -0
  425. package/dist/esm-es5/{input.utils-426cc674.js → input.utils-09c71bc7.js} +1 -1
  426. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  427. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  428. package/dist/esm-es5/ion-alert.entry.js +1 -1
  429. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  430. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  431. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  432. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  433. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  434. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  435. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  436. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  437. package/dist/esm-es5/ion-chip.entry.js +1 -1
  438. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  439. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  440. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  441. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  442. package/dist/esm-es5/ion-img.entry.js +1 -1
  443. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  444. package/dist/esm-es5/ion-input-password-toggle.entry.js +4 -0
  445. package/dist/esm-es5/ion-input.entry.js +1 -1
  446. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  447. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  448. package/dist/esm-es5/ion-loading.entry.js +1 -1
  449. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  450. package/dist/esm-es5/ion-modal.entry.js +1 -1
  451. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  452. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  453. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  454. package/dist/esm-es5/ion-picker.entry.js +1 -1
  455. package/dist/esm-es5/ion-popover.entry.js +1 -1
  456. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  457. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  458. package/dist/esm-es5/ion-range.entry.js +1 -1
  459. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  460. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  461. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  462. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  463. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  464. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  465. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  466. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  467. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  468. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  469. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  470. package/dist/esm-es5/ion-text.entry.js +1 -1
  471. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  472. package/dist/esm-es5/ion-toast.entry.js +1 -1
  473. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  474. package/dist/esm-es5/{ionic-global-a589c12c.js → ionic-global-e6c98cd0.js} +1 -1
  475. package/dist/esm-es5/ionic.js +1 -1
  476. package/dist/esm-es5/{ios.transition-d1c8eea2.js → ios.transition-71bfa932.js} +1 -1
  477. package/dist/esm-es5/loader.js +1 -1
  478. package/dist/esm-es5/md.transition-86aef3c0.js +4 -0
  479. package/dist/esm-es5/{notch-controller-cff691e5.js → notch-controller-55b09e11.js} +1 -1
  480. package/dist/esm-es5/{overlays-d41f74ac.js → overlays-6fb4a2f2.js} +1 -1
  481. package/dist/esm-es5/{status-tap-45595148.js → status-tap-299361cd.js} +1 -1
  482. package/dist/esm-es5/{swipe-back-5aa5feeb.js → swipe-back-b613d7db.js} +1 -1
  483. package/dist/html.html-data.json +68 -0
  484. package/dist/ionic/index.esm.js +1 -1
  485. package/dist/ionic/ionic.esm.js +1 -1
  486. package/dist/ionic/ionic.js +1 -1
  487. package/dist/ionic/{p-91567c90.system.entry.js → p-005deca1.system.entry.js} +1 -1
  488. package/dist/ionic/{p-325c61a4.js → p-06e58c4e.js} +1 -1
  489. package/dist/ionic/{p-853bd866.system.js → p-07584ab4.system.js} +1 -1
  490. package/dist/ionic/p-0bd47555.js +4 -0
  491. package/dist/ionic/{p-4a3055ef.system.js → p-0c06e09b.system.js} +1 -1
  492. package/dist/ionic/{p-98c86cdd.js → p-0e713efe.js} +1 -1
  493. package/dist/ionic/p-13cc6ee6.entry.js +4 -0
  494. package/dist/ionic/p-1472c130.entry.js +4 -0
  495. package/dist/ionic/{p-bb5eba12.entry.js → p-151e8afd.entry.js} +1 -1
  496. package/dist/ionic/p-184fbc9e.system.js +4 -0
  497. package/dist/ionic/{p-2cc2c631.system.js → p-19ea7bff.system.js} +1 -1
  498. package/dist/ionic/{p-d5ab02f5.entry.js → p-1b0f4e6c.entry.js} +1 -1
  499. package/dist/ionic/p-1ba197b6.entry.js +4 -0
  500. package/dist/ionic/p-1c42ad90.entry.js +4 -0
  501. package/dist/ionic/p-1e955a45.system.js +4 -0
  502. package/dist/ionic/{p-a94092b9.entry.js → p-1fa53d02.entry.js} +1 -1
  503. package/dist/ionic/{p-7680d0ec.entry.js → p-1fe1f512.entry.js} +1 -1
  504. package/dist/ionic/{p-fb870c48.entry.js → p-23fdee0e.entry.js} +1 -1
  505. package/dist/ionic/{p-f85a4df5.system.js → p-2613c305.system.js} +1 -1
  506. package/dist/ionic/{p-a6b8342e.system.entry.js → p-275dd0ba.system.entry.js} +1 -1
  507. package/dist/ionic/{p-42fecf9c.system.entry.js → p-2b86020c.system.entry.js} +1 -1
  508. package/dist/ionic/{p-d0496c22.system.entry.js → p-3008ca4e.system.entry.js} +1 -1
  509. package/dist/ionic/p-332aa81e.entry.js +4 -0
  510. package/dist/ionic/p-341b3f37.entry.js +4 -0
  511. package/dist/ionic/{p-a600a3e3.js → p-34b11c24.js} +1 -1
  512. package/dist/ionic/{p-668607c2.system.js → p-3ad285e3.system.js} +1 -1
  513. package/dist/ionic/{p-c6f9f3eb.js → p-3cc276f4.js} +1 -1
  514. package/dist/ionic/{p-40976b1c.system.entry.js → p-3d977e09.system.entry.js} +2 -2
  515. package/dist/ionic/{p-219c17cf.system.entry.js → p-3de2aab8.system.entry.js} +1 -1
  516. package/dist/ionic/p-405fd996.entry.js +4 -0
  517. package/dist/ionic/p-46111310.js +4 -0
  518. package/dist/ionic/p-46f407f0.system.js +4 -0
  519. package/dist/ionic/{p-bb608006.system.entry.js → p-4809ddae.system.entry.js} +1 -1
  520. package/dist/ionic/{p-8a881b39.entry.js → p-48f60474.entry.js} +1 -1
  521. package/dist/ionic/p-495ed1c3.entry.js +4 -0
  522. package/dist/ionic/{p-7002bc75.entry.js → p-4a01cec0.entry.js} +1 -1
  523. package/dist/ionic/p-4de53118.js +4 -0
  524. package/dist/ionic/p-4edce583.system.entry.js +4 -0
  525. package/dist/ionic/p-4f6ebc2b.entry.js +4 -0
  526. package/dist/ionic/p-4f77a080.system.entry.js +4 -0
  527. package/dist/ionic/{p-da5bbd4f.entry.js → p-4fadf4b0.entry.js} +1 -1
  528. package/dist/ionic/{p-db7fcadb.system.entry.js → p-50205ef9.system.entry.js} +2 -2
  529. package/dist/ionic/{p-6d9f8fac.system.js → p-510cb8e6.system.js} +1 -1
  530. package/dist/ionic/p-530207f9.entry.js +4 -0
  531. package/dist/ionic/p-53d37363.entry.js +4 -0
  532. package/dist/ionic/{p-7d29dff0.system.entry.js → p-53d69c70.system.entry.js} +1 -1
  533. package/dist/ionic/{p-af2e3481.system.entry.js → p-55bc2a11.system.entry.js} +1 -1
  534. package/dist/ionic/p-582db405.system.entry.js +4 -0
  535. package/dist/ionic/p-5ad55625.entry.js +4 -0
  536. package/dist/ionic/p-5c26fed5.system.entry.js +4 -0
  537. package/dist/ionic/p-5f28cb75.js +4 -0
  538. package/dist/ionic/{p-239906f1.js → p-67f5b57a.js} +1 -1
  539. package/dist/ionic/{p-f7af3144.system.entry.js → p-68afa357.system.entry.js} +2 -2
  540. package/dist/ionic/{p-af9256a0.system.js → p-6ac30fc3.system.js} +1 -1
  541. package/dist/ionic/p-6c5c1bb5.system.js +4 -0
  542. package/dist/ionic/{p-92b05b70.system.entry.js → p-6cf780b6.system.entry.js} +1 -1
  543. package/dist/ionic/p-6dc81903.entry.js +4 -0
  544. package/dist/ionic/{p-8ed900e4.entry.js → p-6e4dac1a.entry.js} +1 -1
  545. package/dist/ionic/{p-6a888b39.system.entry.js → p-6ef17d86.system.entry.js} +1 -1
  546. package/dist/ionic/p-72812e99.js +4 -0
  547. package/dist/ionic/p-7372cf23.system.entry.js +4 -0
  548. package/dist/ionic/p-7492572a.entry.js +4 -0
  549. package/dist/ionic/p-7596e24d.system.js +5 -0
  550. package/dist/ionic/p-76971b4f.entry.js +4 -0
  551. package/dist/ionic/{p-9e3177a5.system.js → p-7a7ff5e3.system.js} +1 -1
  552. package/dist/ionic/{p-6a62da36.system.js → p-7bbcce53.system.js} +1 -1
  553. package/dist/ionic/{p-5ac63b19.system.entry.js → p-7c93f00b.system.entry.js} +1 -1
  554. package/dist/ionic/{p-9e6a5e3d.system.entry.js → p-7f33a6e2.system.entry.js} +2 -2
  555. package/dist/ionic/{p-7adde43c.system.entry.js → p-814efd87.system.entry.js} +1 -1
  556. package/dist/ionic/{p-031c5621.js → p-83b445c3.js} +1 -1
  557. package/dist/ionic/p-8635f5e6.system.js +4 -0
  558. package/dist/ionic/p-89b61afc.js +4 -0
  559. package/dist/ionic/{p-00a6f38d.entry.js → p-8a5152e5.entry.js} +1 -1
  560. package/dist/ionic/{p-976c7c54.js → p-8f9e2850.js} +1 -1
  561. package/dist/ionic/{p-c41e0b5f.system.entry.js → p-904df2ee.system.entry.js} +2 -2
  562. package/dist/ionic/{p-02a803dc.entry.js → p-90f8498c.entry.js} +1 -1
  563. package/dist/ionic/p-9146695e.system.js +4 -0
  564. package/dist/ionic/p-91b568e2.system.entry.js +4 -0
  565. package/dist/ionic/{p-07759435.system.js → p-91dabef7.system.js} +1 -1
  566. package/dist/ionic/{p-78b3da77.js → p-96a561dd.js} +1 -1
  567. package/dist/ionic/{p-a3dae2ce.js → p-96cc4814.js} +1 -1
  568. package/dist/ionic/p-987e38ef.system.entry.js +4 -0
  569. package/dist/ionic/{p-a88b41d1.system.entry.js → p-98af538a.system.entry.js} +2 -2
  570. package/dist/ionic/p-9ccc8035.system.entry.js +4 -0
  571. package/dist/ionic/{p-e0d52ee3.system.js → p-9ea607bd.system.js} +2 -2
  572. package/dist/ionic/p-9fa5ff32.system.js +4 -0
  573. package/dist/ionic/{p-8dd3d9c3.system.entry.js → p-9fd3ca09.system.entry.js} +1 -1
  574. package/dist/ionic/p-a15ddedb.system.js +4 -0
  575. package/dist/ionic/p-a28ea4d8.system.entry.js +4 -0
  576. package/dist/ionic/{p-2bb65deb.entry.js → p-a39a73e3.entry.js} +1 -1
  577. package/dist/ionic/{p-978f4710.js → p-a90201f2.js} +1 -1
  578. package/dist/ionic/p-a93873de.system.js +4 -0
  579. package/dist/ionic/{p-185db19b.system.entry.js → p-aa79cc0e.system.entry.js} +2 -2
  580. package/dist/ionic/{p-1bb1ef31.system.entry.js → p-aa8a2f40.system.entry.js} +1 -1
  581. package/dist/ionic/p-ac045dad.entry.js +4 -0
  582. package/dist/ionic/{p-dd9168f3.entry.js → p-ad2b9596.entry.js} +1 -1
  583. package/dist/ionic/p-ae42c907.entry.js +4 -0
  584. package/dist/ionic/{p-23838a94.system.entry.js → p-aea5f293.system.entry.js} +1 -1
  585. package/dist/ionic/p-b4a7f856.system.entry.js +4 -0
  586. package/dist/ionic/{p-364044f0.js → p-b51e4004.js} +1 -1
  587. package/dist/ionic/p-b6519a42.entry.js +4 -0
  588. package/dist/ionic/p-b7af48c0.js +4 -0
  589. package/dist/ionic/{p-54c31b4f.entry.js → p-ba35f07f.entry.js} +1 -1
  590. package/dist/ionic/{p-d4d17d47.entry.js → p-bc3d649d.entry.js} +1 -1
  591. package/dist/ionic/p-c1c77386.js +5 -0
  592. package/dist/ionic/{p-85f43165.system.entry.js → p-c2762c6a.system.entry.js} +1 -1
  593. package/dist/ionic/p-c4e495a3.system.js +4 -0
  594. package/dist/ionic/p-c4eafa12.system.entry.js +4 -0
  595. package/dist/ionic/{p-294c47cd.system.entry.js → p-c54b167f.system.entry.js} +1 -1
  596. package/dist/ionic/p-c7e16491.js +4 -0
  597. package/dist/ionic/{p-17ee2784.system.entry.js → p-c927dbe2.system.entry.js} +1 -1
  598. package/dist/ionic/{p-282bd5f9.system.entry.js → p-ca5bb110.system.entry.js} +1 -1
  599. package/dist/ionic/p-ca6decbd.entry.js +4 -0
  600. package/dist/ionic/p-cbd87df6.entry.js +4 -0
  601. package/dist/ionic/p-cf45a5c7.system.entry.js +4 -0
  602. package/dist/ionic/{p-1685d81c.system.entry.js → p-cf8101a6.system.entry.js} +1 -1
  603. package/dist/ionic/p-d061515d.system.entry.js +4 -0
  604. package/dist/ionic/{p-3ae4a2a2.entry.js → p-d73f49d0.entry.js} +1 -1
  605. package/dist/ionic/p-da2b833b.js +4 -0
  606. package/dist/ionic/p-dbc3e90c.entry.js +4 -0
  607. package/dist/ionic/{p-70c278c4.system.entry.js → p-dc4406d7.system.entry.js} +1 -1
  608. package/dist/ionic/p-dec86943.entry.js +4 -0
  609. package/dist/ionic/p-df0d39c7.system.entry.js +4 -0
  610. package/dist/ionic/{p-1a8bbd2e.entry.js → p-e099a6f3.entry.js} +1 -1
  611. package/dist/ionic/p-e1ad8e76.entry.js +4 -0
  612. package/dist/ionic/{p-d286cfbe.system.entry.js → p-e292247e.system.entry.js} +1 -1
  613. package/dist/ionic/p-e548fedf.system.entry.js +4 -0
  614. package/dist/ionic/{p-7c7e495d.system.js → p-e5a3659f.system.js} +1 -1
  615. package/dist/ionic/{p-5a277399.system.entry.js → p-e6d46b5d.system.entry.js} +1 -1
  616. package/dist/ionic/p-e781c893.entry.js +4 -0
  617. package/dist/ionic/{p-d8ffe61c.system.entry.js → p-e81c3ca2.system.entry.js} +1 -1
  618. package/dist/ionic/{p-fa8ee4c3.entry.js → p-e8a713b5.entry.js} +1 -1
  619. package/dist/ionic/{p-b141e253.entry.js → p-e93cd31c.entry.js} +1 -1
  620. package/dist/ionic/p-ec178f19.entry.js +4 -0
  621. package/dist/ionic/{p-3cd3214e.entry.js → p-eda2459e.entry.js} +1 -1
  622. package/dist/ionic/p-f13dc6bd.system.entry.js +4 -0
  623. package/dist/ionic/p-f6ca4d02.js +4 -0
  624. package/dist/ionic/{p-1807190c.entry.js → p-f6fec6a0.entry.js} +1 -1
  625. package/dist/ionic/{p-2852c537.system.entry.js → p-f8f8c5a8.system.entry.js} +1 -1
  626. package/dist/ionic/p-f956e38a.entry.js +4 -0
  627. package/dist/ionic/p-fea11771.entry.js +4 -0
  628. package/dist/ionic/{p-30dfa360.system.js → p-ffbc80ae.system.js} +1 -1
  629. package/dist/types/components/button/button.d.ts +5 -0
  630. package/dist/types/components/datetime/utils/manipulation.d.ts +7 -7
  631. package/dist/types/components/datetime/utils/state.d.ts +2 -2
  632. package/dist/types/components/input/input.d.ts +7 -6
  633. package/dist/types/components/input/input.utils.d.ts +1 -1
  634. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +37 -0
  635. package/dist/types/components/searchbar/searchbar.d.ts +0 -14
  636. package/dist/types/components/textarea/textarea.d.ts +1 -6
  637. package/dist/types/components.d.ts +47 -3
  638. package/dist/types/utils/animation/animation-utils.d.ts +0 -12
  639. package/dist/types/utils/focus-trap.d.ts +2 -2
  640. package/dist/types/utils/framework-delegate.d.ts +1 -1
  641. package/dist/types/utils/keyboard/keyboard-controller.d.ts +1 -1
  642. package/dist/types/utils/overlays.d.ts +2 -2
  643. package/hydrate/index.js +425 -525
  644. package/package.json +6 -6
  645. package/dist/esm-es5/animation-6a3c0abb.js +0 -4
  646. package/dist/esm-es5/app-globals-80842d68.js +0 -4
  647. package/dist/esm-es5/framework-delegate-3dede018.js +0 -4
  648. package/dist/esm-es5/haptic-554688a5.js +0 -4
  649. package/dist/esm-es5/index-5d6a0317.js +0 -5
  650. package/dist/esm-es5/index-95a691d4.js +0 -4
  651. package/dist/esm-es5/index-fa221975.js +0 -4
  652. package/dist/esm-es5/input-shims-196afa11.js +0 -4
  653. package/dist/esm-es5/md.transition-0d2de76d.js +0 -4
  654. package/dist/ionic/p-0051ceb9.entry.js +0 -4
  655. package/dist/ionic/p-08a8971e.system.js +0 -4
  656. package/dist/ionic/p-0e4c9e45.system.js +0 -4
  657. package/dist/ionic/p-103ec049.system.entry.js +0 -4
  658. package/dist/ionic/p-17043350.system.js +0 -4
  659. package/dist/ionic/p-1c801dd4.entry.js +0 -4
  660. package/dist/ionic/p-2130b526.entry.js +0 -4
  661. package/dist/ionic/p-22b5c888.system.entry.js +0 -4
  662. package/dist/ionic/p-23cff6c1.system.js +0 -4
  663. package/dist/ionic/p-23efc001.entry.js +0 -4
  664. package/dist/ionic/p-244f56fd.js +0 -4
  665. package/dist/ionic/p-27c668a0.entry.js +0 -4
  666. package/dist/ionic/p-29ef3b9b.entry.js +0 -4
  667. package/dist/ionic/p-2f53c3eb.js +0 -4
  668. package/dist/ionic/p-2f6bc4a9.system.entry.js +0 -4
  669. package/dist/ionic/p-34c50a42.system.entry.js +0 -4
  670. package/dist/ionic/p-3785c067.entry.js +0 -4
  671. package/dist/ionic/p-3e6e53fe.system.entry.js +0 -4
  672. package/dist/ionic/p-42f189f4.js +0 -4
  673. package/dist/ionic/p-43c751c6.system.entry.js +0 -4
  674. package/dist/ionic/p-4d325220.system.entry.js +0 -4
  675. package/dist/ionic/p-4d361c89.entry.js +0 -4
  676. package/dist/ionic/p-5b2951c1.system.entry.js +0 -4
  677. package/dist/ionic/p-5b52897c.js +0 -4
  678. package/dist/ionic/p-5e39b9d8.entry.js +0 -4
  679. package/dist/ionic/p-610f0e12.entry.js +0 -4
  680. package/dist/ionic/p-66e50777.entry.js +0 -4
  681. package/dist/ionic/p-6a448415.entry.js +0 -4
  682. package/dist/ionic/p-7d4d9c40.system.entry.js +0 -4
  683. package/dist/ionic/p-7e7d534c.js +0 -4
  684. package/dist/ionic/p-831269de.js +0 -4
  685. package/dist/ionic/p-86c17a09.entry.js +0 -4
  686. package/dist/ionic/p-9b5d033a.system.entry.js +0 -4
  687. package/dist/ionic/p-a0e8f913.entry.js +0 -4
  688. package/dist/ionic/p-a4c287f9.entry.js +0 -4
  689. package/dist/ionic/p-ac6db4c2.js +0 -4
  690. package/dist/ionic/p-b0aaa59a.system.entry.js +0 -4
  691. package/dist/ionic/p-b1d9b078.entry.js +0 -4
  692. package/dist/ionic/p-ba0290d1.entry.js +0 -4
  693. package/dist/ionic/p-c385e49d.entry.js +0 -4
  694. package/dist/ionic/p-c3f5d0e7.js +0 -4
  695. package/dist/ionic/p-c629d22b.system.js +0 -5
  696. package/dist/ionic/p-c8383c20.entry.js +0 -4
  697. package/dist/ionic/p-c995da88.system.js +0 -4
  698. package/dist/ionic/p-cbf0a046.system.entry.js +0 -4
  699. package/dist/ionic/p-d372938e.system.entry.js +0 -4
  700. package/dist/ionic/p-d704f798.system.js +0 -4
  701. package/dist/ionic/p-d8090ce4.entry.js +0 -4
  702. package/dist/ionic/p-d80b7e31.system.js +0 -4
  703. package/dist/ionic/p-dad515dc.js +0 -4
  704. package/dist/ionic/p-dfb6de03.system.js +0 -4
  705. package/dist/ionic/p-e3611c25.entry.js +0 -4
  706. package/dist/ionic/p-e4ca94bd.js +0 -4
  707. package/dist/ionic/p-e7b0b64d.system.js +0 -4
  708. package/dist/ionic/p-ebc5b98f.entry.js +0 -4
  709. package/dist/ionic/p-ec34194e.system.entry.js +0 -4
  710. package/dist/ionic/p-ec613387.entry.js +0 -4
  711. package/dist/ionic/p-ed3463be.entry.js +0 -4
  712. package/dist/ionic/p-f1d1524c.entry.js +0 -4
  713. package/dist/ionic/p-f7a1318d.system.entry.js +0 -4
  714. package/dist/ionic/p-f8502e85.js +0 -5
  715. package/dist/ionic/p-fe1fd531.system.js +0 -4
  716. package/dist/ionic/p-fe35b5c0.entry.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../src/themes/ionic.functions.font.scss","../src/themes/ionic.mixins.scss","../src/css/padding.scss","../src/css/float-elements.scss","../src/css/text-alignment.scss","../src/css/text-transformation.scss","../src/css/flex-utils.scss","../src/css/display.scss"],"names":[],"mappings":"AAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AC9CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACHA;EACE;EACA;EACA;EACA;EDsTE,cCpTe;EDqTf,eCrTe;EDyUjB,aCzUiB;ED0UjB,gBC1UiB;;;AAGnB;EACE;EACA;EACA;EACA;EDiTE,uBCpUM;EDqUN,sBCrUM;EDsUN,qBCtUM;EDuUN,oBCvUM;EDqVR,aCrVQ;EDsVR,gBCtVQ;;;AAwBV;EACE;ED4TA,aCrVQ;;;AA8BV;EACE;EDqSE,uBCpUM;EDqUN,sBCrUM;;;AAoCV;EACE;EDiSE,qBCtUM;EDuUN,oBCvUM;;;AA0CV;EACE;ED2SA,gBCtVQ;;;AAgDV;EACE;EACA;EDmSA,aCrVQ;EDsVR,gBCtVQ;;;AAuDV;EACE;EACA;ED2QE,uBCpUM;EDqUN,sBCrUM;EDsUN,qBCtUM;EDuUN,oBCvUM;;;AAkEV;EACE;EACA;EACA;EACA;ED0PE,aCxPc;EDyPd,cCzPc;ED6QhB,YC7QgB;ED8QhB,eC9QgB;;;AAGlB;EACE;EACA;EACA;EACA;EDqPE,sBCnUK;EDoUL,qBCpUK;EDqUL,oBCrUK;EDsUL,mBCtUK;EDoVP,YCpVO;EDqVP,eCrVO;;;AAmFT;EACE;EDgQA,YCpVO;;;AAyFT;EACE;EDyOE,sBCnUK;EDoUL,qBCpUK;;;AA+FT;EACE;EDqOE,oBCrUK;EDsUL,mBCtUK;;;AAqGT;EACE;ED+OA,eCrVO;;;AA2GT;EACE;EACA;EDuOA,YCpVO;EDqVP,eCrVO;;;AAkHT;EACE;EACA;ED+ME,sBCnUK;EDoUL,qBCpUK;EDqUL,oBCrUK;EDsUL,mBCtUK;;;AFLT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AC9CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AELI;EF2dE;;;AEvdF;EFudE;;;AEndF;EFqcE;;AAzNO;EA4NP;;;AArNO;EAqNP;;;AA/MJ;EAcW;IAiMP;;;;AEpcF;EFwcE;;AAhOO;EAmOP;;;AA5NO;EA4NP;;;AAtNJ;EAcW;IAwMP;;;;AAnUF;EEpJA;IF2dE;;;EEvdF;IFudE;;;EEndF;IFqcE;;EAzNO;IA4NP;;;EArNO;IAqNP;;;EA/MJ;IAcW;MAiMP;;;;EEpcF;IFwcE;;EAhOO;IAmOP;;;EA5NO;IA4NP;;;EAtNJ;IAcW;MAwMP;;;;AAnUF;EEpJA;IF2dE;;;EEvdF;IFudE;;;EEndF;IFqcE;;EAzNO;IA4NP;;;EArNO;IAqNP;;;EA/MJ;IAcW;MAiMP;;;;EEpcF;IFwcE;;EAhOO;IAmOP;;;EA5NO;IA4NP;;;EAtNJ;IAcW;MAwMP;;;;AAnUF;EEpJA;IF2dE;;;EEvdF;IFudE;;;EEndF;IFqcE;;EAzNO;IA4NP;;;EArNO;IAqNP;;;EA/MJ;IAcW;MAiMP;;;;EEpcF;IFwcE;;EAhOO;IAmOP;;;EA5NO;IA4NP;;;EAtNJ;IAcW;MAwMP;;;;AAnUF;EEpJA;IF2dE;;;EEvdF;IFudE;;;EEndF;IFqcE;;EAzNO;IA4NP;;;EArNO;IAqNP;;;EA/MJ;IAcW;MAiMP;;;;EEpcF;IFwcE;;EAhOO;IAmOP;;;EA5NO;IA4NP;;;EAtNJ;IAcW;MAwMP;;;;AD/dN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AC9CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AGLI;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AHuHF;EGpJA;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;AHuHF;EGpJA;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;AHuHF;EGpJA;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;AHuHF;EGpJA;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;AJrCN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AC9CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AILI;AACE;EACA;;;AAGF;AACE;EACA;;;AAGF;AACE;EACA;;;AJwIF;EIpJA;AACE;IACA;;;EAGF;AACE;IACA;;;EAGF;AACE;IACA;;;AJwIF;EIpJA;AACE;IACA;;;EAGF;AACE;IACA;;;EAGF;AACE;IACA;;;AJwIF;EIpJA;AACE;IACA;;;EAGF;AACE;IACA;;;EAGF;AACE;IACA;;;AJwIF;EIpJA;AACE;IACA;;;EAGF;AACE;IACA;;;EAGF;AACE;IACA;;;ACjBN;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAOF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAOF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAOF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AN5FF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AC9CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AMXA;EACE;;;AAUE;EACE;;;AAOF;EACE;;;ANsIF;EM/IA;IACE;;;ANuLF;EMhLA;IACE;;;ANsIF;EM/IA;IACE;;;ANuLF;EMhLA;IACE;;;ANsIF;EM/IA;IACE;;;ANuLF;EMhLA;IACE;;;ANsIF;EM/IA;IACE;;;ANuLF;EMhLA;IACE","file":"utils.bundle.css","sourcesContent":["@use \"sass:math\";\n\n$baselineSize: 16px !default;\n$baselineUnit: 1rem !default;\n\n/**\n * Convert a font size to a dynamic font size.\n * Fonts that participate in Dynamic Type should use\n * dynamic font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param unit (optional) - The unit to convert to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n@function dynamic-font($size, $unit: $baselineUnit) {\n @return (math.div($size, $baselineSize)) * $unit;\n}\n\n/**\n * Convert a font size to a dynamic font size but impose\n * a maximum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n@function dynamic-font-max($size, $maxScale, $unit: $baselineUnit) {\n $baseScale: dynamic-font($size, $unit);\n $maxScale: $size * $maxScale;\n\n @return min($baseScale, $maxScale);\n}\n\n/**\n * Convert a font size to a dynamic font size but impose\n * a minimum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n@function dynamic-font-min($minScale, $size, $unit: $baselineUnit) {\n $baseScale: dynamic-font($size, $unit);\n $minScale: $size * $minScale;\n\n @return max($minScale, $baseScale);\n}\n\n/**\n * Convert a font size to a dynamic font size but impose\n * maximum and minimum font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n@function dynamic-font-clamp($minScale, $baseSize, $maxScale, $unit: $baselineUnit) {\n $baseScale: dynamic-font($baseSize, $unit);\n $maxScale: $baseSize * $maxScale;\n $minScale: $baseSize * $minScale;\n\n @return clamp($minScale, $baseScale, $maxScale);\n}\n","\n/**\n * A heuristic that applies CSS to tablet\n * viewports.\n *\n * Usage:\n * @include tablet-viewport() {\n * :host {\n * background-color: green;\n * }\n * }\n */\n@mixin tablet-viewport() {\n @media screen and (min-width: 768px) {\n @content;\n }\n}\n\n/**\n * A heuristic that applies CSS to mobile\n * viewports (i.e. phones, not tablets).\n *\n * Usage:\n * @include mobile-viewport() {\n * :host {\n * background-color: blue;\n * }\n * }\n */\n@mixin mobile-viewport() {\n @media screen and (max-width: 767px) {\n @content;\n }\n}\n\n@mixin input-cover() {\n @include position(0, null, null, 0);\n @include margin(0);\n\n position: absolute;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background: transparent;\n cursor: pointer;\n\n appearance: none;\n outline: none;\n\n &::-moz-focus-inner {\n border: 0;\n }\n}\n\n@mixin visually-hidden() {\n position: absolute;\n\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n width: 100%;\n height: 100%;\n\n margin: 0;\n padding: 0;\n\n border: 0;\n outline: 0;\n clip: rect(0 0 0 0);\n\n opacity: 0;\n overflow: hidden;\n\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n@mixin text-inherit() {\n font-family: inherit;\n font-size: inherit;\n font-style: inherit;\n font-weight: inherit;\n letter-spacing: inherit;\n text-decoration: inherit;\n text-indent: inherit;\n text-overflow: inherit;\n text-transform: inherit;\n text-align: inherit;\n white-space: inherit;\n color: inherit;\n}\n\n@mixin button-state() {\n @include position(0, 0, 0, 0);\n\n position: absolute;\n\n content: \"\";\n\n opacity: 0;\n}\n\n// Font smoothing\n// --------------------------------------------------\n\n@mixin font-smoothing() {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n}\n\n// Get the key from a map based on the index\n@function index-to-key($map, $index) {\n $keys: map-keys($map);\n\n @return nth($keys, $index);\n}\n\n\n// Breakpoint Mixins\n// ---------------------------------------------------------------------------------\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$screen-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// ---------------------------------------------------------------------------------\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $screen-breakpoints) {\n $min: map-get($breakpoints, $name);\n\n @return if($name != index-to-key($breakpoints, 1), $min, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $screen-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $screen-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $screen-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Maximum breakpoint width. Null for the smallest (first) breakpoint.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n//\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\t// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\t// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $screen-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $screen-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n\n// Text Direction - ltr / rtl\n//\n// CSS defaults to use the ltr css, and adds [dir=rtl] selectors\n// to override ltr defaults.\n// ----------------------------------------------------------\n\n@mixin multi-dir() {\n @content;\n\n // $root: #{&};\n // @at-root [dir] {\n // #{$root} {\n // @content;\n // }\n // }\n}\n\n@mixin rtl() {\n $root: #{&};\n\n $rootSplit: str-split($root, \",\");\n $selectors: #{add-root-selector($root, \"[dir=rtl]\")};\n $selectorsSplit: str-split($selectors, \",\");\n\n $hostContextSelectors: ();\n $restSelectors: ();\n $dirSelectors: ();\n\n // Selectors must be split into individual selectors in case the browser\n // doesn't support a specific selector.\n // For example, Firefox and Safari doesn't support `:host-context()`.\n // If an invalid selector is used, then the entire group of selectors\n // will be ignored.\n // @link https://www.w3.org/TR/selectors-3/#grouping\n @each $selector in $selectorsSplit {\n // Group the selectors back into a single selector to optimize the output.\n @if str-index($selector, \":host-context\") {\n $hostContextSelectors: append($hostContextSelectors, $selector, comma);\n } @else {\n // Group the selectors back into a single selector to optimize the output.\n $restSelectors: append($restSelectors, $selector, comma);\n }\n }\n\n // Supported by Chrome.\n @if length($hostContextSelectors) > 0 {\n @at-root #{$hostContextSelectors} {\n @content;\n }\n }\n\n // Supported by all browsers.\n @if length($restSelectors) > 0 {\n @at-root #{$restSelectors} {\n @content;\n }\n }\n\n // If browser can support `:dir()`, then add the `:dir()` selectors.\n @supports selector(:dir(rtl)) {\n // Adding :dir() in case the browser doesn't support `:host-context()` and does support `:dir()`.\n // `:host-context()` is added:\n // - through the `add-root-selector()` function.\n // - first so that it takes precedence over `:dir()`.\n // For example,\n // - Firefox doesn't support `:host-context()`, but does support `:dir()`.\n // - Safari doesn't support `:host-context()`, but Safari 16.4+ supports `:dir()`\n // @link https://webkit.org/blog/13966/webkit-features-in-safari-16-4/\n // -- However, there is a Webkit bug on v16 that prevents `:dir()` from working when\n // -- the app direction is changed dynamically. v17+ works fine.\n // -- @link https://bugs.webkit.org/show_bug.cgi?id=257133\n\n // Supported by Firefox.\n @at-root #{add-root-selector($root, \":dir(rtl)\", false)} {\n @content;\n }\n }\n}\n\n@mixin ltr() {\n @content;\n}\n\n\n// SVG Background Image Mixin\n// @param {string} $svg\n// ----------------------------------------------------------\n@mixin svg-background-image($svg, $flip-rtl: false) {\n $url: url-encode($svg);\n $viewBox: str-split(str-extract($svg, \"viewBox='\", \"'\"), \" \");\n\n @if $flip-rtl != true or $viewBox == null {\n @include multi-dir() {\n background-image: url(\"data:image/svg+xml;charset=utf-8,#{$url}\");\n }\n } @else {\n $transform: \"transform='translate(#{nth($viewBox, 3)}, 0) scale(-1, 1)'\";\n $flipped-url: $svg;\n $flipped-url: str-replace($flipped-url, \"<path\", \"<path #{$transform}\");\n $flipped-url: str-replace($flipped-url, \"<line\", \"<line #{$transform}\");\n $flipped-url: str-replace($flipped-url, \"<polygon\", \"<polygon #{$transform}\");\n $flipped-url: url-encode($flipped-url);\n\n @include ltr () {\n background-image: url(\"data:image/svg+xml;charset=utf-8,#{$url}\");\n }\n @include rtl() {\n background-image: url(\"data:image/svg+xml;charset=utf-8,#{$flipped-url}\");\n }\n }\n}\n\n// Add property horizontal\n// @param {string} $start\n// @param {string} $end\n// ----------------------------------------------------------\n@mixin property-horizontal($prop, $start, $end: $start) {\n @if $start == 0 and $end == 0 {\n #{$prop}-left: $start;\n #{$prop}-right: $end;\n\n } @else {\n -webkit-#{$prop}-start: $start;\n #{$prop}-inline-start: $start;\n -webkit-#{$prop}-end: $end;\n #{$prop}-inline-end: $end;\n }\n}\n\n// Add property for all directions\n// @param {string} $prop\n// @param {string} $top\n// @param {string} $end\n// @param {string} $bottom\n// @param {string} $start\n// @param {boolean} $content include content or use default\n// ----------------------------------------------------------\n@mixin property($prop, $top, $end: $top, $bottom: $top, $start: $end) {\n @include property-horizontal($prop, $start, $end);\n #{$prop}-top: $top;\n #{$prop}-bottom: $bottom;\n}\n\n// Add padding horizontal\n// @param {string} $start\n// @param {string} $end\n// ----------------------------------------------------------\n@mixin padding-horizontal($start, $end: $start) {\n @include property-horizontal(padding, $start, $end);\n}\n\n// Add padding for all directions\n// @param {string} $top\n// @param {string} $end\n// @param {string} $bottom\n// @param {string} $start\n// ----------------------------------------------------------\n@mixin padding($top, $end: $top, $bottom: $top, $start: $end) {\n @include property(padding, $top, $end, $bottom, $start);\n}\n\n// Add margin horizontal\n// @param {string} $start\n// @param {string} $end\n// ----------------------------------------------------------\n@mixin margin-horizontal($start, $end: $start) {\n @include property-horizontal(margin, $start, $end);\n}\n\n// Add margin for all directions\n// @param {string} $top\n// @param {string} $end\n// @param {string} $bottom\n// @param {string} $start\n// ----------------------------------------------------------\n@mixin margin($top, $end: $top, $bottom: $top, $start: $end) {\n @include property(margin, $top, $end, $bottom, $start);\n}\n\n// Add position horizontal\n// @param {string} $start - amount to position start\n// @param {string} $end - amount to left: 0; end\n// ----------------------------------------------------------\n@mixin position-horizontal($start: null, $end: null) {\n @if $start == $end {\n @include multi-dir() {\n left: $start;\n right: $end;\n }\n } @else {\n @at-root {\n & {\n inset-inline-start: $start;\n inset-inline-end: $end;\n }\n }\n }\n}\n\n// Add position for all directions\n// @param {string} $top\n// @param {string} $end\n// @param {string} $bottom\n// @param {string} $start\n// ----------------------------------------------------------\n@mixin position($top: null, $end: null, $bottom: null, $start: null) {\n @include position-horizontal($start, $end);\n top: $top;\n bottom: $bottom;\n}\n\n// Add border for all directions\n// @param {string} $top\n// @param {string} $end\n// @param {string} $bottom\n// @param {string} $start\n// ----------------------------------------------------------\n@mixin border($top, $end: $top, $bottom: $top, $start: $end) {\n @include property(border, $top, $end, $bottom, $start);\n}\n\n// Add border radius for all directions\n// @param {string} $top-start\n// @param {string} $top-end\n// @param {string} $bottom-end\n// @param {string} $bottom-start\n// ----------------------------------------------------------\n@mixin border-radius($top-start, $top-end: $top-start, $bottom-end: $top-start, $bottom-start: $top-end) {\n @if $top-start == $top-end and $top-start == $bottom-end and $top-start == $bottom-start {\n border-radius: $top-start;\n } @else {\n border-start-start-radius: $top-start;\n border-start-end-radius: $top-end;\n border-end-end-radius: $bottom-end;\n border-end-start-radius: $bottom-start;\n }\n}\n\n// Add direction for all directions\n// @param {string} $dir - Direction on LTR\n@mixin direction($dir) {\n $other-dir: null;\n\n @if $dir == ltr {\n $other-dir: rtl;\n } @else {\n $other-dir: ltr;\n }\n\n @include ltr() {\n direction: $dir;\n }\n @include rtl() {\n direction: $other-dir;\n }\n}\n\n// Add float for all directions\n// @param {string} $side\n// @param {string} $decorator - !important\n@mixin float($side, $decorator: null) {\n @if $side == start {\n @include ltr() {\n float: left $decorator;\n }\n @include rtl() {\n float: right $decorator;\n }\n } @else if $side == end {\n @include ltr() {\n float: right $decorator;\n }\n @include rtl() {\n float: left $decorator;\n }\n } @else {\n @include multi-dir() {\n float: $side $decorator;\n }\n }\n}\n\n@mixin background-position($horizontal, $horizontal-amount: null, $vertical: null, $vertical-amount: null) {\n @if $horizontal == start or $horizontal == end {\n $horizontal-ltr: null;\n $horizontal-rtl: null;\n @if $horizontal == start {\n $horizontal-ltr: left;\n $horizontal-rtl: right;\n } @else {\n $horizontal-ltr: right;\n $horizontal-rtl: left;\n }\n\n @include ltr() {\n background-position: $horizontal-ltr $horizontal-amount $vertical $vertical-amount;\n }\n @include rtl() {\n background-position: $horizontal-rtl $horizontal-amount $vertical $vertical-amount;\n }\n } @else {\n @include multi-dir() {\n background-position: $horizontal $horizontal-amount $vertical $vertical-amount;\n }\n }\n}\n\n@mixin transform-origin($x-axis, $y-axis: null) {\n @if $x-axis == start {\n @include ltr() {\n transform-origin: left $y-axis;\n }\n @include rtl() {\n transform-origin: right $y-axis;\n }\n } @else if $x-axis == end {\n @include ltr() {\n transform-origin: right $y-axis;\n }\n @include rtl() {\n transform-origin: left $y-axis;\n }\n } @else if $x-axis == left or $x-axis == right {\n @include multi-dir() {\n transform-origin: $x-axis $y-axis;\n }\n } @else {\n @include ltr() {\n transform-origin: $x-axis $y-axis;\n }\n @include rtl() {\n transform-origin: calc(100% - #{$x-axis}) $y-axis;\n }\n }\n}\n\n// Add transform for all directions\n// @param {string} $transforms - comma separated list of transforms\n@mixin transform($transforms...) {\n $extra: null;\n\n $x: null;\n $ltr-translate: null;\n $rtl-translate: null;\n\n @each $transform in $transforms {\n @if (str-index($transform, translate3d)) {\n $transform: str-replace($transform, 'translate3d(');\n $transform: str-replace($transform, ')');\n\n $coordinates: str-split($transform, ',');\n\n $x: nth($coordinates, 1);\n $y: nth($coordinates, 2);\n $z: nth($coordinates, 3);\n\n $ltr-translate: translate3d($x, $y, $z);\n $rtl-translate: translate3d(calc(-1 * #{$x}), $y, $z);\n } @else {\n @if $extra == null {\n $extra: $transform;\n } @else {\n $extra: $extra $transform;\n }\n }\n }\n\n @if $x == '0' or $x == null {\n @include multi-dir() {\n transform: $ltr-translate $extra;\n }\n } @else {\n @include ltr() {\n transform: $ltr-translate $extra;\n }\n\n @include rtl() {\n transform: $rtl-translate $extra;\n }\n }\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n\n// Element Space\n// --------------------------------------------------\n// Creates padding and margin attributes to be used on\n// any element\n\n$padding: var(--ion-padding, 16px);\n$margin: var(--ion-margin, 16px);\n\n// Padding\n// --------------------------------------------------\n\n.ion-no-padding {\n --padding-start: 0;\n --padding-end: 0;\n --padding-top: 0;\n --padding-bottom: 0;\n\n @include padding(0);\n}\n\n.ion-padding {\n --padding-start: #{$padding};\n --padding-end: #{$padding};\n --padding-top: #{$padding};\n --padding-bottom: #{$padding};\n\n @include padding($padding);\n}\n\n.ion-padding-top {\n --padding-top: #{$padding};\n\n @include padding($padding, null, null, null);\n}\n\n.ion-padding-start {\n --padding-start: #{$padding};\n\n @include padding-horizontal($padding, null);\n}\n\n.ion-padding-end {\n --padding-end: #{$padding};\n\n @include padding-horizontal(null, $padding);\n}\n\n.ion-padding-bottom {\n --padding-bottom: #{$padding};\n\n @include padding(null, null, $padding, null);\n}\n\n.ion-padding-vertical {\n --padding-top: #{$padding};\n --padding-bottom: #{$padding};\n\n @include padding($padding, null, $padding, null);\n}\n\n.ion-padding-horizontal {\n --padding-start: #{$padding};\n --padding-end: #{$padding};\n\n @include padding-horizontal($padding);\n}\n\n\n// Margin\n// --------------------------------------------------\n\n.ion-no-margin {\n --margin-start: 0;\n --margin-end: 0;\n --margin-top: 0;\n --margin-bottom: 0;\n\n @include margin(0);\n}\n\n.ion-margin {\n --margin-start: #{$margin};\n --margin-end: #{$margin};\n --margin-top: #{$margin};\n --margin-bottom: #{$margin};\n\n @include margin($margin);\n}\n\n.ion-margin-top {\n --margin-top: #{$margin};\n\n @include margin($margin, null, null, null);\n}\n\n.ion-margin-start {\n --margin-start: #{$margin};\n\n @include margin-horizontal($margin, null);\n}\n\n.ion-margin-end {\n --margin-end: #{$margin};\n\n @include margin-horizontal(null, $margin);\n}\n\n.ion-margin-bottom {\n --margin-bottom: #{$margin};\n\n @include margin(null, null, $margin, null);\n}\n\n.ion-margin-vertical {\n --margin-top: #{$margin};\n --margin-bottom: #{$margin};\n\n @include margin($margin, null, $margin, null);\n}\n\n.ion-margin-horizontal {\n --margin-start: #{$margin};\n --margin-end: #{$margin};\n\n @include margin-horizontal($margin);\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Float Elements\n// --------------------------------------------------\n// Creates float classes based on screen size\n\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `.ion-float-{bp}-{side}` classes for floating the element based\n // on the breakpoint and side\n .ion-float#{$infix}-left {\n @include float(left, !important);\n }\n\n .ion-float#{$infix}-right {\n @include float(right, !important);\n }\n\n .ion-float#{$infix}-start {\n @include float(start, !important);\n }\n\n .ion-float#{$infix}-end {\n @include float(end, !important);\n }\n }\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Text Alignment\n// --------------------------------------------------\n// Creates text alignment attributes based on screen size\n\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `.ion-text-{bp}` classes for aligning the text based\n // on the breakpoint\n .ion-text#{$infix}-center {\n text-align: center !important;\n }\n\n .ion-text#{$infix}-justify {\n text-align: justify !important;\n }\n\n .ion-text#{$infix}-start {\n text-align: start !important;\n }\n\n .ion-text#{$infix}-end {\n text-align: end !important;\n }\n\n .ion-text#{$infix}-left {\n text-align: left !important;\n }\n\n .ion-text#{$infix}-right {\n text-align: right !important;\n }\n\n .ion-text#{$infix}-nowrap {\n white-space: nowrap !important;\n }\n\n .ion-text#{$infix}-wrap {\n white-space: normal !important;\n }\n }\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Text Transformation\n// --------------------------------------------------\n// Creates text transform attributes based on screen size\n\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `.ion-text-{bp}` classes for transforming the text based\n // on the breakpoint\n .ion-text#{$infix}-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n }\n\n .ion-text#{$infix}-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n }\n\n .ion-text#{$infix}-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n }\n }\n}\n","// Flex Utilities\n// --------------------------------------------------\n// Creates flex classes to align flex containers\n// and items\n\n// Align Self\n// --------------------------------------------------\n\n.ion-align-self-start {\n align-self: flex-start !important;\n}\n\n.ion-align-self-end {\n align-self: flex-end !important;\n}\n\n.ion-align-self-center {\n align-self: center !important;\n}\n\n.ion-align-self-stretch {\n align-self: stretch !important;\n}\n\n.ion-align-self-baseline {\n align-self: baseline !important;\n}\n\n.ion-align-self-auto {\n align-self: auto !important;\n}\n\n\n// Flex Wrap\n// --------------------------------------------------\n\n.ion-wrap {\n flex-wrap: wrap !important;\n}\n\n.ion-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.ion-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n\n// Justify Content\n// --------------------------------------------------\n\n.ion-justify-content-start {\n justify-content: flex-start !important;\n}\n\n.ion-justify-content-center {\n justify-content: center !important;\n}\n\n.ion-justify-content-end {\n justify-content: flex-end !important;\n}\n\n.ion-justify-content-around {\n justify-content: space-around !important;\n}\n\n.ion-justify-content-between {\n justify-content: space-between !important;\n}\n\n.ion-justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n\n// Align Items\n// --------------------------------------------------\n\n.ion-align-items-start {\n align-items: flex-start !important;\n}\n\n.ion-align-items-center {\n align-items: center !important;\n}\n\n.ion-align-items-end {\n align-items: flex-end !important;\n}\n\n.ion-align-items-stretch {\n align-items: stretch !important;\n}\n\n.ion-align-items-baseline {\n align-items: baseline !important;\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Display\n// --------------------------------------------------\n// Modifies display of a particular element based on the given classes\n\n.ion-hide {\n display: none !important;\n}\n\n// Adds hidden classes\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `ion-hide-{bp}-up` classes for hiding the element based\n // on the breakpoint\n .ion-hide#{$infix}-up {\n display: none !important;\n }\n }\n\n @include media-breakpoint-down($breakpoint, $screen-breakpoints) {\n // Provide `ion-hide-{bp}-down` classes for hiding the element based\n // on the breakpoint\n .ion-hide#{$infix}-down {\n display: none !important;\n }\n }\n}\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../src/css/padding.scss","../src/themes/ionic.mixins.scss","../src/css/float-elements.scss","../src/css/text-alignment.scss","../src/css/text-transformation.scss","../src/css/flex-utils.scss","../src/css/display.scss"],"names":[],"mappings":"AAeA,gBACE,mBACA,iBACA,iBACA,oBCsTE,aDpTe,ECqTf,cDrTe,ECyUjB,YDzUiB,EC0UjB,eD1UiB,EAGnB,aACE,0CACA,wCACA,wCACA,2CCiTE,sBDpUM,yBCqUN,qBDrUM,yBCsUN,oBDtUM,yBCuUN,mBDvUM,yBCqVR,YDrVQ,yBCsVR,eDtVQ,yBAwBV,iBACE,wCC4TA,YDrVQ,yBA8BV,mBACE,0CCqSE,sBDpUM,yBCqUN,qBDrUM,yBAoCV,iBACE,wCCiSE,oBDtUM,yBCuUN,mBDvUM,yBA0CV,oBACE,2CC2SA,eDtVQ,yBAgDV,sBACE,wCACA,2CCmSA,YDrVQ,yBCsVR,eDtVQ,yBAuDV,wBACE,0CACA,wCC2QE,sBDpUM,yBCqUN,qBDrUM,yBCsUN,oBDtUM,yBCuUN,mBDvUM,yBAkEV,eACE,kBACA,gBACA,gBACA,mBC0PE,YDxPc,ECyPd,aDzPc,EC6QhB,WD7QgB,EC8QhB,cD9QgB,EAGlB,YACE,wCACA,sCACA,sCACA,yCCqPE,qBDnUK,wBCoUL,oBDpUK,wBCqUL,mBDrUK,wBCsUL,kBDtUK,wBCoVP,WDpVO,wBCqVP,cDrVO,wBAmFT,gBACE,sCCgQA,WDpVO,wBAyFT,kBACE,wCCyOE,qBDnUK,wBCoUL,oBDpUK,wBA+FT,gBACE,sCCqOE,mBDrUK,wBCsUL,kBDtUK,wBAqGT,mBACE,yCC+OA,cDrVO,wBA2GT,qBACE,sCACA,yCCuOA,WDpVO,wBCqVP,cDrVO,wBAkHT,uBACE,wCACA,sCC+ME,qBDnUK,wBCoUL,oBDpUK,wBCqUL,mBDrUK,wBCsUL,kBDtUK,wBEGL,gBD2dE,sBCvdF,iBDudE,uBCndF,iBDqcE,sBAzNO,0CA4NP,uBArNO,2BAqNP,uBA/MJ,8BAcW,0BAiMP,wBCpcF,eDwcE,uBAhOO,wCAmOP,sBA5NO,yBA4NP,sBAtNJ,8BAcW,wBAwMP,uBAnUF,yBCpJA,mBD2dE,sBCvdF,oBDudE,uBCndF,oBDqcE,sBAzNO,6CA4NP,uBArNO,8BAqNP,uBA/MJ,8BAcW,6BAiMP,wBCpcF,kBDwcE,uBAhOO,2CAmOP,sBA5NO,4BA4NP,sBAtNJ,8BAcW,2BAwMP,wBAnUF,yBCpJA,mBD2dE,sBCvdF,oBDudE,uBCndF,oBDqcE,sBAzNO,6CA4NP,uBArNO,8BAqNP,uBA/MJ,8BAcW,6BAiMP,wBCpcF,kBDwcE,uBAhOO,2CAmOP,sBA5NO,4BA4NP,sBAtNJ,8BAcW,2BAwMP,wBAnUF,yBCpJA,mBD2dE,sBCvdF,oBDudE,uBCndF,oBDqcE,sBAzNO,6CA4NP,uBArNO,8BAqNP,uBA/MJ,8BAcW,6BAiMP,wBCpcF,kBDwcE,uBAhOO,2CAmOP,sBA5NO,4BA4NP,sBAtNJ,8BAcW,2BAwMP,wBAnUF,0BCpJA,mBD2dE,sBCvdF,oBDudE,uBCndF,oBDqcE,sBAzNO,6CA4NP,uBArNO,8BAqNP,uBA/MJ,8BAcW,6BAiMP,wBCpcF,kBDwcE,uBAhOO,2CAmOP,sBA5NO,4BA4NP,sBAtNJ,8BAcW,2BAwMP,wBEvdF,iBACE,6BAGF,kBACE,8BAGF,gBACE,4BAGF,cACE,0BAGF,eACE,2BAGF,gBACE,4BAGF,iBACE,8BAGF,eACE,8BFuHF,yBEpJA,oBACE,6BAGF,qBACE,8BAGF,mBACE,4BAGF,iBACE,0BAGF,kBACE,2BAGF,mBACE,4BAGF,oBACE,8BAGF,kBACE,+BFuHF,yBEpJA,oBACE,6BAGF,qBACE,8BAGF,mBACE,4BAGF,iBACE,0BAGF,kBACE,2BAGF,mBACE,4BAGF,oBACE,8BAGF,kBACE,+BFuHF,yBEpJA,oBACE,6BAGF,qBACE,8BAGF,mBACE,4BAGF,iBACE,0BAGF,kBACE,2BAGF,mBACE,4BAGF,oBACE,8BAGF,kBACE,+BFuHF,0BEpJA,oBACE,6BAGF,qBACE,8BAGF,mBACE,4BAGF,iBACE,0BAGF,kBACE,2BAGF,mBACE,4BAGF,oBACE,8BAGF,kBACE,+BC7BF,oBAEE,oCAGF,oBAEE,oCAGF,qBAEE,qCHwIF,yBGpJA,uBAEE,oCAGF,uBAEE,oCAGF,wBAEE,sCHwIF,yBGpJA,uBAEE,oCAGF,uBAEE,oCAGF,wBAEE,sCHwIF,yBGpJA,uBAEE,oCAGF,uBAEE,oCAGF,wBAEE,sCHwIF,0BGpJA,uBAEE,oCAGF,uBAEE,oCAGF,wBAEE,sCCjBN,sBACE,iCAGF,oBACE,+BAGF,uBACE,6BAGF,wBACE,8BAGF,yBACE,+BAGF,qBACE,2BAOF,UACE,0BAGF,YACE,4BAGF,kBACE,kCAOF,2BACE,sCAGF,4BACE,kCAGF,yBACE,oCAGF,4BACE,wCAGF,6BACE,yCAGF,4BACE,wCAOF,uBACE,kCAGF,wBACE,8BAGF,qBACE,gCAGF,yBACE,+BAGF,0BACE,gCC1FF,UACE,wBAUE,aACE,wBAOF,eACE,wBLsIF,yBK/IA,gBACE,yBLuLF,4BKhLA,kBACE,yBLsIF,yBK/IA,gBACE,yBLuLF,4BKhLA,kBACE,yBLsIF,yBK/IA,gBACE,yBLuLF,4BKhLA,kBACE,yBLsIF,0BK/IA,gBACE,yBLuLF,6BKhLA,kBACE","file":"utils.bundle.css","sourcesContent":["@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n\n// Element Space\n// --------------------------------------------------\n// Creates padding and margin attributes to be used on\n// any element\n\n$padding: var(--ion-padding, 16px);\n$margin: var(--ion-margin, 16px);\n\n// Padding\n// --------------------------------------------------\n\n.ion-no-padding {\n --padding-start: 0;\n --padding-end: 0;\n --padding-top: 0;\n --padding-bottom: 0;\n\n @include padding(0);\n}\n\n.ion-padding {\n --padding-start: #{$padding};\n --padding-end: #{$padding};\n --padding-top: #{$padding};\n --padding-bottom: #{$padding};\n\n @include padding($padding);\n}\n\n.ion-padding-top {\n --padding-top: #{$padding};\n\n @include padding($padding, null, null, null);\n}\n\n.ion-padding-start {\n --padding-start: #{$padding};\n\n @include padding-horizontal($padding, null);\n}\n\n.ion-padding-end {\n --padding-end: #{$padding};\n\n @include padding-horizontal(null, $padding);\n}\n\n.ion-padding-bottom {\n --padding-bottom: #{$padding};\n\n @include padding(null, null, $padding, null);\n}\n\n.ion-padding-vertical {\n --padding-top: #{$padding};\n --padding-bottom: #{$padding};\n\n @include padding($padding, null, $padding, null);\n}\n\n.ion-padding-horizontal {\n --padding-start: #{$padding};\n --padding-end: #{$padding};\n\n @include padding-horizontal($padding);\n}\n\n\n// Margin\n// --------------------------------------------------\n\n.ion-no-margin {\n --margin-start: 0;\n --margin-end: 0;\n --margin-top: 0;\n --margin-bottom: 0;\n\n @include margin(0);\n}\n\n.ion-margin {\n --margin-start: #{$margin};\n --margin-end: #{$margin};\n --margin-top: #{$margin};\n --margin-bottom: #{$margin};\n\n @include margin($margin);\n}\n\n.ion-margin-top {\n --margin-top: #{$margin};\n\n @include margin($margin, null, null, null);\n}\n\n.ion-margin-start {\n --margin-start: #{$margin};\n\n @include margin-horizontal($margin, null);\n}\n\n.ion-margin-end {\n --margin-end: #{$margin};\n\n @include margin-horizontal(null, $margin);\n}\n\n.ion-margin-bottom {\n --margin-bottom: #{$margin};\n\n @include margin(null, null, $margin, null);\n}\n\n.ion-margin-vertical {\n --margin-top: #{$margin};\n --margin-bottom: #{$margin};\n\n @include margin($margin, null, $margin, null);\n}\n\n.ion-margin-horizontal {\n --margin-start: #{$margin};\n --margin-end: #{$margin};\n\n @include margin-horizontal($margin);\n}\n","\n/**\n * A heuristic that applies CSS to tablet\n * viewports.\n *\n * Usage:\n * @include tablet-viewport() {\n * :host {\n * background-color: green;\n * }\n * }\n */\n@mixin tablet-viewport() {\n @media screen and (min-width: 768px) {\n @content;\n }\n}\n\n/**\n * A heuristic that applies CSS to mobile\n * viewports (i.e. phones, not tablets).\n *\n * Usage:\n * @include mobile-viewport() {\n * :host {\n * background-color: blue;\n * }\n * }\n */\n@mixin mobile-viewport() {\n @media screen and (max-width: 767px) {\n @content;\n }\n}\n\n@mixin input-cover() {\n @include position(0, null, null, 0);\n @include margin(0);\n\n position: absolute;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background: transparent;\n cursor: pointer;\n\n appearance: none;\n outline: none;\n\n &::-moz-focus-inner {\n border: 0;\n }\n}\n\n@mixin visually-hidden() {\n position: absolute;\n\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n width: 100%;\n height: 100%;\n\n margin: 0;\n padding: 0;\n\n border: 0;\n outline: 0;\n clip: rect(0 0 0 0);\n\n opacity: 0;\n overflow: hidden;\n\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n@mixin text-inherit() {\n font-family: inherit;\n font-size: inherit;\n font-style: inherit;\n font-weight: inherit;\n letter-spacing: inherit;\n text-decoration: inherit;\n text-indent: inherit;\n text-overflow: inherit;\n text-transform: inherit;\n text-align: inherit;\n white-space: inherit;\n color: inherit;\n}\n\n@mixin button-state() {\n @include position(0, 0, 0, 0);\n\n position: absolute;\n\n content: \"\";\n\n opacity: 0;\n}\n\n// Font smoothing\n// --------------------------------------------------\n\n@mixin font-smoothing() {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n}\n\n// Get the key from a map based on the index\n@function index-to-key($map, $index) {\n $keys: map-keys($map);\n\n @return nth($keys, $index);\n}\n\n\n// Breakpoint Mixins\n// ---------------------------------------------------------------------------------\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$screen-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// ---------------------------------------------------------------------------------\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $screen-breakpoints) {\n $min: map-get($breakpoints, $name);\n\n @return if($name != index-to-key($breakpoints, 1), $min, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $screen-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $screen-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $screen-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Maximum breakpoint width. Null for the smallest (first) breakpoint.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n//\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\t// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\t// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $screen-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $screen-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n\n// Text Direction - ltr / rtl\n//\n// CSS defaults to use the ltr css, and adds [dir=rtl] selectors\n// to override ltr defaults.\n// ----------------------------------------------------------\n\n@mixin multi-dir() {\n @content;\n\n // $root: #{&};\n // @at-root [dir] {\n // #{$root} {\n // @content;\n // }\n // }\n}\n\n@mixin rtl() {\n $root: #{&};\n\n $rootSplit: str-split($root, \",\");\n $selectors: #{add-root-selector($root, \"[dir=rtl]\")};\n $selectorsSplit: str-split($selectors, \",\");\n\n $hostContextSelectors: ();\n $restSelectors: ();\n $dirSelectors: ();\n\n // Selectors must be split into individual selectors in case the browser\n // doesn't support a specific selector.\n // For example, Firefox and Safari doesn't support `:host-context()`.\n // If an invalid selector is used, then the entire group of selectors\n // will be ignored.\n // @link https://www.w3.org/TR/selectors-3/#grouping\n @each $selector in $selectorsSplit {\n // Group the selectors back into a single selector to optimize the output.\n @if str-index($selector, \":host-context\") {\n $hostContextSelectors: append($hostContextSelectors, $selector, comma);\n } @else {\n // Group the selectors back into a single selector to optimize the output.\n $restSelectors: append($restSelectors, $selector, comma);\n }\n }\n\n // Supported by Chrome.\n @if length($hostContextSelectors) > 0 {\n @at-root #{$hostContextSelectors} {\n @content;\n }\n }\n\n // Supported by all browsers.\n @if length($restSelectors) > 0 {\n @at-root #{$restSelectors} {\n @content;\n }\n }\n\n // If browser can support `:dir()`, then add the `:dir()` selectors.\n @supports selector(:dir(rtl)) {\n // Adding :dir() in case the browser doesn't support `:host-context()` and does support `:dir()`.\n // `:host-context()` is added:\n // - through the `add-root-selector()` function.\n // - first so that it takes precedence over `:dir()`.\n // For example,\n // - Firefox doesn't support `:host-context()`, but does support `:dir()`.\n // - Safari doesn't support `:host-context()`, but Safari 16.4+ supports `:dir()`\n // @link https://webkit.org/blog/13966/webkit-features-in-safari-16-4/\n // -- However, there is a Webkit bug on v16 that prevents `:dir()` from working when\n // -- the app direction is changed dynamically. v17+ works fine.\n // -- @link https://bugs.webkit.org/show_bug.cgi?id=257133\n\n // Supported by Firefox.\n @at-root #{add-root-selector($root, \":dir(rtl)\", false)} {\n @content;\n }\n }\n}\n\n@mixin ltr() {\n @content;\n}\n\n\n// SVG Background Image Mixin\n// @param {string} $svg\n// ----------------------------------------------------------\n@mixin svg-background-image($svg, $flip-rtl: false) {\n $url: url-encode($svg);\n $viewBox: str-split(str-extract($svg, \"viewBox='\", \"'\"), \" \");\n\n @if $flip-rtl != true or $viewBox == null {\n @include multi-dir() {\n background-image: url(\"data:image/svg+xml;charset=utf-8,#{$url}\");\n }\n } @else {\n $transform: \"transform='translate(#{nth($viewBox, 3)}, 0) scale(-1, 1)'\";\n $flipped-url: $svg;\n $flipped-url: str-replace($flipped-url, \"<path\", \"<path #{$transform}\");\n $flipped-url: str-replace($flipped-url, \"<line\", \"<line #{$transform}\");\n $flipped-url: str-replace($flipped-url, \"<polygon\", \"<polygon #{$transform}\");\n $flipped-url: url-encode($flipped-url);\n\n @include ltr () {\n background-image: url(\"data:image/svg+xml;charset=utf-8,#{$url}\");\n }\n @include rtl() {\n background-image: url(\"data:image/svg+xml;charset=utf-8,#{$flipped-url}\");\n }\n }\n}\n\n// Add property horizontal\n// @param {string} $start\n// @param {string} $end\n// ----------------------------------------------------------\n@mixin property-horizontal($prop, $start, $end: $start) {\n @if $start == 0 and $end == 0 {\n #{$prop}-left: $start;\n #{$prop}-right: $end;\n\n } @else {\n -webkit-#{$prop}-start: $start;\n #{$prop}-inline-start: $start;\n -webkit-#{$prop}-end: $end;\n #{$prop}-inline-end: $end;\n }\n}\n\n// Add property for all directions\n// @param {string} $prop\n// @param {string} $top\n// @param {string} $end\n// @param {string} $bottom\n// @param {string} $start\n// @param {boolean} $content include content or use default\n// ----------------------------------------------------------\n@mixin property($prop, $top, $end: $top, $bottom: $top, $start: $end) {\n @include property-horizontal($prop, $start, $end);\n #{$prop}-top: $top;\n #{$prop}-bottom: $bottom;\n}\n\n// Add padding horizontal\n// @param {string} $start\n// @param {string} $end\n// ----------------------------------------------------------\n@mixin padding-horizontal($start, $end: $start) {\n @include property-horizontal(padding, $start, $end);\n}\n\n// Add padding for all directions\n// @param {string} $top\n// @param {string} $end\n// @param {string} $bottom\n// @param {string} $start\n// ----------------------------------------------------------\n@mixin padding($top, $end: $top, $bottom: $top, $start: $end) {\n @include property(padding, $top, $end, $bottom, $start);\n}\n\n// Add margin horizontal\n// @param {string} $start\n// @param {string} $end\n// ----------------------------------------------------------\n@mixin margin-horizontal($start, $end: $start) {\n @include property-horizontal(margin, $start, $end);\n}\n\n// Add margin for all directions\n// @param {string} $top\n// @param {string} $end\n// @param {string} $bottom\n// @param {string} $start\n// ----------------------------------------------------------\n@mixin margin($top, $end: $top, $bottom: $top, $start: $end) {\n @include property(margin, $top, $end, $bottom, $start);\n}\n\n// Add position horizontal\n// @param {string} $start - amount to position start\n// @param {string} $end - amount to left: 0; end\n// ----------------------------------------------------------\n@mixin position-horizontal($start: null, $end: null) {\n @if $start == $end {\n @include multi-dir() {\n left: $start;\n right: $end;\n }\n } @else {\n @at-root {\n & {\n inset-inline-start: $start;\n inset-inline-end: $end;\n }\n }\n }\n}\n\n// Add position for all directions\n// @param {string} $top\n// @param {string} $end\n// @param {string} $bottom\n// @param {string} $start\n// ----------------------------------------------------------\n@mixin position($top: null, $end: null, $bottom: null, $start: null) {\n @include position-horizontal($start, $end);\n top: $top;\n bottom: $bottom;\n}\n\n// Add border for all directions\n// @param {string} $top\n// @param {string} $end\n// @param {string} $bottom\n// @param {string} $start\n// ----------------------------------------------------------\n@mixin border($top, $end: $top, $bottom: $top, $start: $end) {\n @include property(border, $top, $end, $bottom, $start);\n}\n\n// Add border radius for all directions\n// @param {string} $top-start\n// @param {string} $top-end\n// @param {string} $bottom-end\n// @param {string} $bottom-start\n// ----------------------------------------------------------\n@mixin border-radius($top-start, $top-end: $top-start, $bottom-end: $top-start, $bottom-start: $top-end) {\n @if $top-start == $top-end and $top-start == $bottom-end and $top-start == $bottom-start {\n border-radius: $top-start;\n } @else {\n border-start-start-radius: $top-start;\n border-start-end-radius: $top-end;\n border-end-end-radius: $bottom-end;\n border-end-start-radius: $bottom-start;\n }\n}\n\n// Add direction for all directions\n// @param {string} $dir - Direction on LTR\n@mixin direction($dir) {\n $other-dir: null;\n\n @if $dir == ltr {\n $other-dir: rtl;\n } @else {\n $other-dir: ltr;\n }\n\n @include ltr() {\n direction: $dir;\n }\n @include rtl() {\n direction: $other-dir;\n }\n}\n\n// Add float for all directions\n// @param {string} $side\n// @param {string} $decorator - !important\n@mixin float($side, $decorator: null) {\n @if $side == start {\n @include ltr() {\n float: left $decorator;\n }\n @include rtl() {\n float: right $decorator;\n }\n } @else if $side == end {\n @include ltr() {\n float: right $decorator;\n }\n @include rtl() {\n float: left $decorator;\n }\n } @else {\n @include multi-dir() {\n float: $side $decorator;\n }\n }\n}\n\n@mixin background-position($horizontal, $horizontal-amount: null, $vertical: null, $vertical-amount: null) {\n @if $horizontal == start or $horizontal == end {\n $horizontal-ltr: null;\n $horizontal-rtl: null;\n @if $horizontal == start {\n $horizontal-ltr: left;\n $horizontal-rtl: right;\n } @else {\n $horizontal-ltr: right;\n $horizontal-rtl: left;\n }\n\n @include ltr() {\n background-position: $horizontal-ltr $horizontal-amount $vertical $vertical-amount;\n }\n @include rtl() {\n background-position: $horizontal-rtl $horizontal-amount $vertical $vertical-amount;\n }\n } @else {\n @include multi-dir() {\n background-position: $horizontal $horizontal-amount $vertical $vertical-amount;\n }\n }\n}\n\n@mixin transform-origin($x-axis, $y-axis: null) {\n @if $x-axis == start {\n @include ltr() {\n transform-origin: left $y-axis;\n }\n @include rtl() {\n transform-origin: right $y-axis;\n }\n } @else if $x-axis == end {\n @include ltr() {\n transform-origin: right $y-axis;\n }\n @include rtl() {\n transform-origin: left $y-axis;\n }\n } @else if $x-axis == left or $x-axis == right {\n @include multi-dir() {\n transform-origin: $x-axis $y-axis;\n }\n } @else {\n @include ltr() {\n transform-origin: $x-axis $y-axis;\n }\n @include rtl() {\n transform-origin: calc(100% - #{$x-axis}) $y-axis;\n }\n }\n}\n\n// Add transform for all directions\n// @param {string} $transforms - comma separated list of transforms\n@mixin transform($transforms...) {\n $extra: null;\n\n $x: null;\n $ltr-translate: null;\n $rtl-translate: null;\n\n @each $transform in $transforms {\n @if (str-index($transform, translate3d)) {\n $transform: str-replace($transform, 'translate3d(');\n $transform: str-replace($transform, ')');\n\n $coordinates: str-split($transform, ',');\n\n $x: nth($coordinates, 1);\n $y: nth($coordinates, 2);\n $z: nth($coordinates, 3);\n\n $ltr-translate: translate3d($x, $y, $z);\n $rtl-translate: translate3d(calc(-1 * #{$x}), $y, $z);\n } @else {\n @if $extra == null {\n $extra: $transform;\n } @else {\n $extra: $extra $transform;\n }\n }\n }\n\n @if $x == '0' or $x == null {\n @include multi-dir() {\n transform: $ltr-translate $extra;\n }\n } @else {\n @include ltr() {\n transform: $ltr-translate $extra;\n }\n\n @include rtl() {\n transform: $rtl-translate $extra;\n }\n }\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Float Elements\n// --------------------------------------------------\n// Creates float classes based on screen size\n\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `.ion-float-{bp}-{side}` classes for floating the element based\n // on the breakpoint and side\n .ion-float#{$infix}-left {\n @include float(left, !important);\n }\n\n .ion-float#{$infix}-right {\n @include float(right, !important);\n }\n\n .ion-float#{$infix}-start {\n @include float(start, !important);\n }\n\n .ion-float#{$infix}-end {\n @include float(end, !important);\n }\n }\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Text Alignment\n// --------------------------------------------------\n// Creates text alignment attributes based on screen size\n\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `.ion-text-{bp}` classes for aligning the text based\n // on the breakpoint\n .ion-text#{$infix}-center {\n text-align: center !important;\n }\n\n .ion-text#{$infix}-justify {\n text-align: justify !important;\n }\n\n .ion-text#{$infix}-start {\n text-align: start !important;\n }\n\n .ion-text#{$infix}-end {\n text-align: end !important;\n }\n\n .ion-text#{$infix}-left {\n text-align: left !important;\n }\n\n .ion-text#{$infix}-right {\n text-align: right !important;\n }\n\n .ion-text#{$infix}-nowrap {\n white-space: nowrap !important;\n }\n\n .ion-text#{$infix}-wrap {\n white-space: normal !important;\n }\n }\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Text Transformation\n// --------------------------------------------------\n// Creates text transform attributes based on screen size\n\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `.ion-text-{bp}` classes for transforming the text based\n // on the breakpoint\n .ion-text#{$infix}-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n }\n\n .ion-text#{$infix}-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n }\n\n .ion-text#{$infix}-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n }\n }\n}\n","// Flex Utilities\n// --------------------------------------------------\n// Creates flex classes to align flex containers\n// and items\n\n// Align Self\n// --------------------------------------------------\n\n.ion-align-self-start {\n align-self: flex-start !important;\n}\n\n.ion-align-self-end {\n align-self: flex-end !important;\n}\n\n.ion-align-self-center {\n align-self: center !important;\n}\n\n.ion-align-self-stretch {\n align-self: stretch !important;\n}\n\n.ion-align-self-baseline {\n align-self: baseline !important;\n}\n\n.ion-align-self-auto {\n align-self: auto !important;\n}\n\n\n// Flex Wrap\n// --------------------------------------------------\n\n.ion-wrap {\n flex-wrap: wrap !important;\n}\n\n.ion-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.ion-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n\n// Justify Content\n// --------------------------------------------------\n\n.ion-justify-content-start {\n justify-content: flex-start !important;\n}\n\n.ion-justify-content-center {\n justify-content: center !important;\n}\n\n.ion-justify-content-end {\n justify-content: flex-end !important;\n}\n\n.ion-justify-content-around {\n justify-content: space-around !important;\n}\n\n.ion-justify-content-between {\n justify-content: space-between !important;\n}\n\n.ion-justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n\n// Align Items\n// --------------------------------------------------\n\n.ion-align-items-start {\n align-items: flex-start !important;\n}\n\n.ion-align-items-center {\n align-items: center !important;\n}\n\n.ion-align-items-end {\n align-items: flex-end !important;\n}\n\n.ion-align-items-stretch {\n align-items: stretch !important;\n}\n\n.ion-align-items-baseline {\n align-items: baseline !important;\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Display\n// --------------------------------------------------\n// Modifies display of a particular element based on the given classes\n\n.ion-hide {\n display: none !important;\n}\n\n// Adds hidden classes\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `ion-hide-{bp}-up` classes for hiding the element based\n // on the breakpoint\n .ion-hide#{$infix}-up {\n display: none !important;\n }\n }\n\n @include media-breakpoint-down($breakpoint, $screen-breakpoints) {\n // Provide `ion-hide-{bp}-down` classes for hiding the element based\n // on the breakpoint\n .ion-hide#{$infix}-down {\n display: none !important;\n }\n }\n}\n"]}
@@ -4,39 +4,8 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
- const helpers = require('./helpers-71097d9c.js');
8
7
 
9
8
  let animationPrefix;
10
- /**
11
- * Web Animations requires hyphenated CSS properties
12
- * to be written in camelCase when animating
13
- */
14
- const processKeyframes = (keyframes) => {
15
- keyframes.forEach((keyframe) => {
16
- for (const key in keyframe) {
17
- // eslint-disable-next-line no-prototype-builtins
18
- if (keyframe.hasOwnProperty(key)) {
19
- const value = keyframe[key];
20
- if (key === 'easing') {
21
- const newKey = 'animation-timing-function';
22
- keyframe[newKey] = value;
23
- delete keyframe[key];
24
- }
25
- else {
26
- const newKey = convertCamelCaseToHypen(key);
27
- if (newKey !== key) {
28
- keyframe[newKey] = value;
29
- delete keyframe[key];
30
- }
31
- }
32
- }
33
- }
34
- });
35
- return keyframes;
36
- };
37
- const convertCamelCaseToHypen = (str) => {
38
- return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
39
- };
40
9
  const getAnimationPrefix = (el) => {
41
10
  if (animationPrefix === undefined) {
42
11
  const supportsUnprefixed = el.style.animationName !== undefined;
@@ -49,78 +18,6 @@ const setStyleProperty = (element, propertyName, value) => {
49
18
  const prefix = propertyName.startsWith('animation') ? getAnimationPrefix(element) : '';
50
19
  element.style.setProperty(prefix + propertyName, value);
51
20
  };
52
- const removeStyleProperty = (element, propertyName) => {
53
- const prefix = propertyName.startsWith('animation') ? getAnimationPrefix(element) : '';
54
- element.style.removeProperty(prefix + propertyName);
55
- };
56
- const animationEnd = (el, callback) => {
57
- let unRegTrans;
58
- const opts = { passive: true };
59
- const unregister = () => {
60
- if (unRegTrans) {
61
- unRegTrans();
62
- }
63
- };
64
- const onTransitionEnd = (ev) => {
65
- if (el === ev.target) {
66
- unregister();
67
- callback(ev);
68
- }
69
- };
70
- if (el) {
71
- el.addEventListener('webkitAnimationEnd', onTransitionEnd, opts);
72
- el.addEventListener('animationend', onTransitionEnd, opts);
73
- unRegTrans = () => {
74
- el.removeEventListener('webkitAnimationEnd', onTransitionEnd, opts);
75
- el.removeEventListener('animationend', onTransitionEnd, opts);
76
- };
77
- }
78
- return unregister;
79
- };
80
- // TODO(FW-2832): type
81
- const generateKeyframeRules = (keyframes = []) => {
82
- return keyframes
83
- .map((keyframe) => {
84
- const offset = keyframe.offset;
85
- const frameString = [];
86
- for (const property in keyframe) {
87
- // eslint-disable-next-line no-prototype-builtins
88
- if (keyframe.hasOwnProperty(property) && property !== 'offset') {
89
- frameString.push(`${property}: ${keyframe[property]};`);
90
- }
91
- }
92
- return `${offset * 100}% { ${frameString.join(' ')} }`;
93
- })
94
- .join(' ');
95
- };
96
- const keyframeIds = [];
97
- const generateKeyframeName = (keyframeRules) => {
98
- let index = keyframeIds.indexOf(keyframeRules);
99
- if (index < 0) {
100
- index = keyframeIds.push(keyframeRules) - 1;
101
- }
102
- return `ion-animation-${index}`;
103
- };
104
- const getStyleContainer = (element) => {
105
- // getRootNode is not always available in SSR environments.
106
- // TODO(FW-2832): types
107
- const rootNode = element.getRootNode !== undefined ? element.getRootNode() : element;
108
- return rootNode.head || rootNode;
109
- };
110
- const createKeyframeStylesheet = (keyframeName, keyframeRules, element) => {
111
- var _a;
112
- const styleContainer = getStyleContainer(element);
113
- const keyframePrefix = getAnimationPrefix(element);
114
- const existingStylesheet = styleContainer.querySelector('#' + keyframeName);
115
- if (existingStylesheet) {
116
- return existingStylesheet;
117
- }
118
- const stylesheet = ((_a = element.ownerDocument) !== null && _a !== void 0 ? _a : document).createElement('style');
119
- stylesheet.id = keyframeName;
120
- stylesheet.textContent = `@${keyframePrefix}keyframes ${keyframeName} { ${keyframeRules} } @${keyframePrefix}keyframes ${keyframeName}-alt { ${keyframeRules} }`;
121
- styleContainer.appendChild(stylesheet);
122
- return stylesheet;
123
- };
124
21
  const addClassToArray = (classes = [], className) => {
125
22
  if (className !== undefined) {
126
23
  const classNameToAppend = Array.isArray(className) ? className : [className];
@@ -148,14 +45,12 @@ const createAnimation = (animationId) => {
148
45
  let numAnimationsRunning = 0;
149
46
  let shouldForceLinearEasing = false;
150
47
  let shouldForceSyncPlayback = false;
151
- let cssAnimationsTimerFallback;
152
48
  let forceDirectionValue;
153
49
  let forceDurationValue;
154
50
  let forceDelayValue;
155
51
  let willComplete = true;
156
52
  let finished = false;
157
53
  let shouldCalculateNumAnimations = true;
158
- let keyframeName;
159
54
  let ani;
160
55
  let paused = false;
161
56
  const id = animationId;
@@ -172,10 +67,16 @@ const createAnimation = (animationId) => {
172
67
  const webAnimations = [];
173
68
  const supportsAnimationEffect = typeof AnimationEffect === 'function' ||
174
69
  (index.win !== undefined && typeof index.win.AnimationEffect === 'function');
70
+ /**
71
+ * This is a feature detection for Web Animations.
72
+ *
73
+ * Certain environments such as emulated browser environments for testing,
74
+ * do not support Web Animations. As a result, we need to check for support
75
+ * and provide a fallback to test certain functionality related to Web Animations.
76
+ */
175
77
  const supportsWebAnimations = typeof Element === 'function' &&
176
78
  typeof Element.prototype.animate === 'function' &&
177
79
  supportsAnimationEffect;
178
- const ANIMATION_END_FALLBACK_PADDING_MS = 100;
179
80
  const getWebAnimations = () => {
180
81
  return webAnimations;
181
82
  };
@@ -263,21 +164,6 @@ const createAnimation = (animationId) => {
263
164
  });
264
165
  webAnimations.length = 0;
265
166
  }
266
- else {
267
- const elementsArray = elements.slice();
268
- helpers.raf(() => {
269
- elementsArray.forEach((element) => {
270
- removeStyleProperty(element, 'animation-name');
271
- removeStyleProperty(element, 'animation-duration');
272
- removeStyleProperty(element, 'animation-timing-function');
273
- removeStyleProperty(element, 'animation-iteration-count');
274
- removeStyleProperty(element, 'animation-delay');
275
- removeStyleProperty(element, 'animation-play-state');
276
- removeStyleProperty(element, 'animation-fill-mode');
277
- removeStyleProperty(element, 'animation-direction');
278
- });
279
- });
280
- }
281
167
  };
282
168
  /**
283
169
  * Removes the animation's stylesheets
@@ -535,9 +421,6 @@ const createAnimation = (animationId) => {
535
421
  }
536
422
  });
537
423
  }
538
- else {
539
- initializeCSSAnimation();
540
- }
541
424
  };
542
425
  /**
543
426
  * Run all "before" animation hooks.
@@ -567,7 +450,6 @@ const createAnimation = (animationId) => {
567
450
  * Run all "after" animation hooks.
568
451
  */
569
452
  const afterAnimation = () => {
570
- clearCSSAnimationsTimeout();
571
453
  // Runs all after read callbacks
572
454
  _afterAddReadFunctions.forEach((callback) => callback());
573
455
  // Runs all after write callbacks
@@ -623,32 +505,6 @@ const createAnimation = (animationId) => {
623
505
  }
624
506
  }
625
507
  };
626
- const initializeCSSAnimation = (toggleAnimationName = true) => {
627
- cleanUpStyleSheets();
628
- const processedKeyframes = processKeyframes(_keyframes);
629
- elements.forEach((element) => {
630
- if (processedKeyframes.length > 0) {
631
- const keyframeRules = generateKeyframeRules(processedKeyframes);
632
- keyframeName = animationId !== undefined ? animationId : generateKeyframeName(keyframeRules);
633
- const stylesheet = createKeyframeStylesheet(keyframeName, keyframeRules, element);
634
- stylesheets.push(stylesheet);
635
- setStyleProperty(element, 'animation-duration', `${getDuration()}ms`);
636
- setStyleProperty(element, 'animation-timing-function', getEasing());
637
- setStyleProperty(element, 'animation-delay', `${getDelay()}ms`);
638
- setStyleProperty(element, 'animation-fill-mode', getFill());
639
- setStyleProperty(element, 'animation-direction', getDirection());
640
- const iterationsCount = getIterations() === Infinity ? 'infinite' : getIterations().toString();
641
- setStyleProperty(element, 'animation-iteration-count', iterationsCount);
642
- setStyleProperty(element, 'animation-play-state', 'paused');
643
- if (toggleAnimationName) {
644
- setStyleProperty(element, 'animation-name', `${stylesheet.id}-alt`);
645
- }
646
- helpers.raf(() => {
647
- setStyleProperty(element, 'animation-name', stylesheet.id || null);
648
- });
649
- }
650
- });
651
- };
652
508
  const initializeWebAnimation = () => {
653
509
  elements.forEach((element) => {
654
510
  const animation = element.animate(_keyframes, {
@@ -669,15 +525,12 @@ const createAnimation = (animationId) => {
669
525
  };
670
526
  }
671
527
  };
672
- const initializeAnimation = (toggleAnimationName = true) => {
528
+ const initializeAnimation = () => {
673
529
  beforeAnimation();
674
530
  if (_keyframes.length > 0) {
675
531
  if (supportsWebAnimations) {
676
532
  initializeWebAnimation();
677
533
  }
678
- else {
679
- initializeCSSAnimation(toggleAnimationName);
680
- }
681
534
  }
682
535
  initialized = true;
683
536
  };
@@ -690,15 +543,6 @@ const createAnimation = (animationId) => {
690
543
  animation.pause();
691
544
  });
692
545
  }
693
- else {
694
- const animationDuration = `-${getDuration() * step}ms`;
695
- elements.forEach((element) => {
696
- if (_keyframes.length > 0) {
697
- setStyleProperty(element, 'animation-delay', animationDuration);
698
- setStyleProperty(element, 'animation-play-state', 'paused');
699
- }
700
- });
701
- }
702
546
  };
703
547
  const updateWebAnimation = (step) => {
704
548
  webAnimations.forEach((animation) => {
@@ -715,26 +559,6 @@ const createAnimation = (animationId) => {
715
559
  setAnimationStep(step);
716
560
  }
717
561
  };
718
- const updateCSSAnimation = (toggleAnimationName = true, step) => {
719
- helpers.raf(() => {
720
- elements.forEach((element) => {
721
- setStyleProperty(element, 'animation-name', keyframeName || null);
722
- setStyleProperty(element, 'animation-duration', `${getDuration()}ms`);
723
- setStyleProperty(element, 'animation-timing-function', getEasing());
724
- setStyleProperty(element, 'animation-delay', step !== undefined ? `-${step * getDuration()}ms` : `${getDelay()}ms`);
725
- setStyleProperty(element, 'animation-fill-mode', getFill() || null);
726
- setStyleProperty(element, 'animation-direction', getDirection() || null);
727
- const iterationsCount = getIterations() === Infinity ? 'infinite' : getIterations().toString();
728
- setStyleProperty(element, 'animation-iteration-count', iterationsCount);
729
- if (toggleAnimationName) {
730
- setStyleProperty(element, 'animation-name', `${keyframeName}-alt`);
731
- }
732
- helpers.raf(() => {
733
- setStyleProperty(element, 'animation-name', keyframeName || null);
734
- });
735
- });
736
- });
737
- };
738
562
  const update = (deep = false, toggleAnimationName = true, step) => {
739
563
  if (deep) {
740
564
  childAnimations.forEach((animation) => {
@@ -744,9 +568,6 @@ const createAnimation = (animationId) => {
744
568
  if (supportsWebAnimations) {
745
569
  updateWebAnimation(step);
746
570
  }
747
- else {
748
- updateCSSAnimation(toggleAnimationName, step);
749
- }
750
571
  return ani;
751
572
  };
752
573
  const progressStart = (forceLinearEasing = false, step) => {
@@ -829,67 +650,8 @@ const createAnimation = (animationId) => {
829
650
  pauseAnimation();
830
651
  return ani;
831
652
  };
832
- const onAnimationEndFallback = () => {
833
- cssAnimationsTimerFallback = undefined;
834
- animationFinish();
835
- };
836
- const clearCSSAnimationsTimeout = () => {
837
- if (cssAnimationsTimerFallback) {
838
- clearTimeout(cssAnimationsTimerFallback);
839
- }
840
- };
841
653
  const playCSSAnimations = () => {
842
- clearCSSAnimationsTimeout();
843
- helpers.raf(() => {
844
- elements.forEach((element) => {
845
- if (_keyframes.length > 0) {
846
- setStyleProperty(element, 'animation-play-state', 'running');
847
- }
848
- });
849
- });
850
- if (_keyframes.length === 0 || elements.length === 0) {
851
- animationFinish();
852
- }
853
- else {
854
- /**
855
- * This is a catchall in the event that a CSS Animation did not finish.
856
- * The Web Animations API has mechanisms in place for preventing this.
857
- * CSS Animations will not fire an `animationend` event
858
- * for elements with `display: none`. The Web Animations API
859
- * accounts for this, but using raw CSS Animations requires
860
- * this workaround.
861
- */
862
- const animationDelay = getDelay() || 0;
863
- const animationDuration = getDuration() || 0;
864
- const animationIterations = getIterations() || 1;
865
- // No need to set a timeout when animation has infinite iterations
866
- if (isFinite(animationIterations)) {
867
- cssAnimationsTimerFallback = setTimeout(onAnimationEndFallback, animationDelay + animationDuration * animationIterations + ANIMATION_END_FALLBACK_PADDING_MS);
868
- }
869
- animationEnd(elements[0], () => {
870
- clearCSSAnimationsTimeout();
871
- /**
872
- * Ensure that clean up
873
- * is always done a frame
874
- * before the onFinish handlers
875
- * are fired. Otherwise, there
876
- * may be flickering if a new
877
- * animation is started on the same
878
- * element too quickly
879
- */
880
- helpers.raf(() => {
881
- clearCSSAnimationPlayState();
882
- helpers.raf(animationFinish);
883
- });
884
- });
885
- }
886
- };
887
- const clearCSSAnimationPlayState = () => {
888
- elements.forEach((element) => {
889
- removeStyleProperty(element, 'animation-duration');
890
- removeStyleProperty(element, 'animation-delay');
891
- removeStyleProperty(element, 'animation-play-state');
892
- });
654
+ animationFinish();
893
655
  };
894
656
  const playWebAnimations = () => {
895
657
  webAnimations.forEach((animation) => {
@@ -904,9 +666,6 @@ const createAnimation = (animationId) => {
904
666
  setAnimationStep(0);
905
667
  updateWebAnimation();
906
668
  }
907
- else {
908
- updateCSSAnimation();
909
- }
910
669
  };
911
670
  const play = (opts) => {
912
671
  return new Promise((resolve) => {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const ionicGlobal = require('./ionic-global-5762eca9.js');
6
+ const ionicGlobal = require('./ionic-global-62487d02.js');
7
7
 
8
8
  const globalScripts = ionicGlobal.initialize;
9
9
 
@@ -3,8 +3,8 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index$1 = require('./index-2d21d526.js');
7
- const haptic = require('./haptic-b882e0bb.js');
6
+ const index$1 = require('./index-bbc6c29f.js');
7
+ const haptic = require('./haptic-f6b37aa3.js');
8
8
  const index = require('./index-ee07ed59.js');
9
9
 
10
10
  const createButtonActiveGesture = (el, isButton) => {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const helpers = require('./helpers-71097d9c.js');
6
+ const helpers = require('./helpers-afaa9001.js');
7
7
 
8
8
  // TODO(FW-2832): types
9
9
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
@@ -49,12 +49,6 @@ var NotificationType;
49
49
  })(NotificationType || (NotificationType = {}));
50
50
  const HapticEngine = {
51
51
  getEngine() {
52
- const tapticEngine = window.TapticEngine;
53
- if (tapticEngine) {
54
- // Cordova
55
- // TODO FW-4707 - Remove this in Ionic 8
56
- return tapticEngine;
57
- }
58
52
  const capacitor$1 = capacitor.getCapacitor();
59
53
  if (capacitor$1 === null || capacitor$1 === void 0 ? void 0 : capacitor$1.isPluginAvailable('Haptics')) {
60
54
  // Capacitor
@@ -83,85 +77,43 @@ const HapticEngine = {
83
77
  }
84
78
  return true;
85
79
  },
86
- isCordova() {
87
- return window.TapticEngine !== undefined;
88
- },
89
- isCapacitor() {
90
- return capacitor.getCapacitor() !== undefined;
91
- },
92
80
  impact(options) {
93
81
  const engine = this.getEngine();
94
82
  if (!engine) {
95
83
  return;
96
84
  }
97
- /**
98
- * To provide backwards compatibility with Cordova apps,
99
- * we convert the style to lowercase.
100
- *
101
- * TODO: FW-4707 - Remove this in Ionic 8
102
- */
103
- const style = this.isCapacitor() ? options.style : options.style.toLowerCase();
104
- engine.impact({ style });
85
+ engine.impact({ style: options.style });
105
86
  },
106
87
  notification(options) {
107
88
  const engine = this.getEngine();
108
89
  if (!engine) {
109
90
  return;
110
91
  }
111
- /**
112
- * To provide backwards compatibility with Cordova apps,
113
- * we convert the style to lowercase.
114
- *
115
- * TODO: FW-4707 - Remove this in Ionic 8
116
- */
117
- const type = this.isCapacitor() ? options.type : options.type.toLowerCase();
118
- engine.notification({ type });
92
+ engine.notification({ type: options.type });
119
93
  },
120
94
  selection() {
121
- /**
122
- * To provide backwards compatibility with Cordova apps,
123
- * we convert the style to lowercase.
124
- *
125
- * TODO: FW-4707 - Remove this in Ionic 8
126
- */
127
- const style = this.isCapacitor() ? exports.ImpactStyle.Light : 'light';
128
- this.impact({ style });
95
+ this.impact({ style: exports.ImpactStyle.Light });
129
96
  },
130
97
  selectionStart() {
131
98
  const engine = this.getEngine();
132
99
  if (!engine) {
133
100
  return;
134
101
  }
135
- if (this.isCapacitor()) {
136
- engine.selectionStart();
137
- }
138
- else {
139
- engine.gestureSelectionStart();
140
- }
102
+ engine.selectionStart();
141
103
  },
142
104
  selectionChanged() {
143
105
  const engine = this.getEngine();
144
106
  if (!engine) {
145
107
  return;
146
108
  }
147
- if (this.isCapacitor()) {
148
- engine.selectionChanged();
149
- }
150
- else {
151
- engine.gestureSelectionChanged();
152
- }
109
+ engine.selectionChanged();
153
110
  },
154
111
  selectionEnd() {
155
112
  const engine = this.getEngine();
156
113
  if (!engine) {
157
114
  return;
158
115
  }
159
- if (this.isCapacitor()) {
160
- engine.selectionEnd();
161
- }
162
- else {
163
- engine.gestureSelectionEnd();
164
- }
116
+ engine.selectionEnd();
165
117
  },
166
118
  };
167
119
  /**