voyager-ionic-core 7.5.0 → 7.5.5
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.
- package/components/action-sheet.js +2 -2
- package/components/alert.js +2 -2
- package/components/animation.js +18 -3
- package/components/checkbox.js +2 -2
- package/components/form-controller.js +1 -5
- package/components/index8.js +0 -1
- package/components/input-shims.js +9 -1
- package/components/ion-accordion-group.js +11 -1
- package/components/ion-datetime.js +48 -23
- package/components/ion-fab-list.js +1 -1
- package/components/ion-fab.js +1 -1
- package/components/ion-header.js +1 -1
- package/components/ion-input.js +11 -4
- package/components/ion-item-divider.js +2 -2
- package/components/ion-item-option.js +2 -2
- package/components/ion-menu.js +17 -5
- package/components/ion-modal.js +8 -8
- package/components/ion-range.js +2 -2
- package/components/ion-refresher.js +8 -1
- package/components/ion-reorder.js +2 -2
- package/components/ion-searchbar.js +10 -3
- package/components/ion-segment.js +43 -17
- package/components/ion-select.js +2 -2
- package/components/ion-tab-bar.js +2 -2
- package/components/ion-tab-button.js +2 -2
- package/components/ion-textarea.js +11 -4
- package/components/ion-title.js +1 -1
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +2 -2
- package/components/ios.transition.js +209 -41
- package/components/item.js +2 -2
- package/components/list-header.js +2 -2
- package/components/list.js +2 -2
- package/components/picker-internal.js +2 -2
- package/components/popover.js +2 -2
- package/components/radio-group.js +10 -1
- package/components/radio.js +2 -3
- package/components/watch-options.js +14 -3
- package/css/core.css.map +1 -1
- package/css/display.css.map +1 -1
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/padding.css.map +1 -1
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css.map +1 -1
- package/dist/cjs/{animation-c8bdd3c7.js → animation-1083855c.js} +18 -3
- package/dist/cjs/{app-globals-fe1ad535.js → app-globals-1d4c1dbf.js} +1 -1
- package/dist/cjs/{button-active-c0ff1915.js → button-active-af897e0e.js} +1 -1
- package/dist/cjs/{form-controller-5e223b54.js → form-controller-9343050c.js} +1 -5
- package/dist/cjs/{index-d93fb71d.js → index-573877f3.js} +3 -3
- package/dist/cjs/{index-305a23dc.js → index-c2940dc1.js} +127 -57
- package/dist/cjs/{index-5e7529f6.js → index-d7561763.js} +2 -2
- package/dist/cjs/{index-10873539.js → index-da2c7a37.js} +0 -1
- package/dist/cjs/index.cjs.js +8 -8
- package/dist/cjs/{input-shims-da7dc0de.js → input-shims-b0a75a01.js} +10 -2
- package/dist/cjs/ion-accordion_2.cjs.entry.js +13 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +7 -7
- package/dist/cjs/ion-alert.cjs.entry.js +7 -7
- package/dist/cjs/ion-app_8.cjs.entry.js +8 -8
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +5 -5
- package/dist/cjs/ion-chip.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime_3.cjs.entry.js +52 -27
- package/dist/cjs/ion-fab_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-img.cjs.entry.js +2 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-input.cjs.entry.js +13 -6
- package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-item_8.cjs.entry.js +10 -10
- package/dist/cjs/ion-loading.cjs.entry.js +4 -4
- package/dist/cjs/ion-menu_3.cjs.entry.js +22 -10
- package/dist/cjs/ion-modal.cjs.entry.js +14 -14
- package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-internal.cjs.entry.js +3 -3
- package/dist/cjs/ion-popover.cjs.entry.js +7 -7
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +15 -7
- package/dist/cjs/ion-range.cjs.entry.js +6 -6
- package/dist/cjs/ion-refresher_2.cjs.entry.js +12 -5
- package/dist/cjs/ion-reorder_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +11 -4
- package/dist/cjs/ion-segment_2.cjs.entry.js +45 -19
- package/dist/cjs/ion-select_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +13 -6
- package/dist/cjs/ion-toast.cjs.entry.js +6 -6
- package/dist/cjs/ion-toggle.cjs.entry.js +5 -5
- package/dist/cjs/{ionic-global-fb752503.js → ionic-global-ea2901a3.js} +1 -1
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-a4d545dd.js → ios.transition-ac909bc8.js} +212 -44
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-80bb961b.js → md.transition-907af519.js} +3 -3
- package/dist/cjs/{overlays-1a734051.js → overlays-2ffc5f27.js} +1 -1
- package/dist/cjs/{status-tap-778e8054.js → status-tap-3fb2391a.js} +2 -2
- package/dist/cjs/{watch-options-f3f77e54.js → watch-options-53bbb124.js} +14 -3
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/accordion-group/accordion-group.js +10 -0
- package/dist/collection/components/accordion-group/accordion-group.md.css +2 -2
- package/dist/collection/components/action-sheet/action-sheet.ios.css +18 -5
- package/dist/collection/components/action-sheet/action-sheet.md.css +18 -5
- package/dist/collection/components/action-sheet/test/basic/action-sheet.e2e.js +59 -0
- package/dist/collection/components/alert/alert.ios.css +37 -4
- package/dist/collection/components/alert/alert.md.css +37 -4
- package/dist/collection/components/alert/test/a11y/alert.e2e.js +48 -0
- package/dist/collection/components/checkbox/checkbox.ios.css +3 -3
- package/dist/collection/components/checkbox/checkbox.md.css +3 -3
- package/dist/collection/components/datetime/datetime.ios.css +24 -4
- package/dist/collection/components/datetime/datetime.js +47 -22
- package/dist/collection/components/datetime/datetime.md.css +24 -8
- package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +66 -0
- package/dist/collection/components/datetime/test/disabled/datetime.e2e.js +68 -0
- package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +113 -0
- package/dist/collection/components/fab/fab.css +24 -36
- package/dist/collection/components/fab/test/safe-area/fab.e2e.js +63 -0
- package/dist/collection/components/fab-list/fab-list.css +2 -2
- package/dist/collection/components/header/header.ios.css +4 -1
- package/dist/collection/components/input/input.ios.css +15 -15
- package/dist/collection/components/input/input.js +9 -2
- package/dist/collection/components/input/input.md.css +22 -10
- package/dist/collection/components/item/item.ios.css +60 -12
- package/dist/collection/components/item/item.md.css +63 -15
- package/dist/collection/components/item/test/basic/item.e2e.js +26 -0
- package/dist/collection/components/item-divider/item-divider.ios.css +35 -8
- package/dist/collection/components/item-divider/item-divider.md.css +35 -8
- package/dist/collection/components/item-divider/test/basic/item-divider.e2e.js +22 -0
- package/dist/collection/components/item-option/item-option.ios.css +0 -10
- package/dist/collection/components/item-option/item-option.md.css +0 -10
- package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +77 -0
- package/dist/collection/components/label/label.ios.css +1 -1
- package/dist/collection/components/list/list.ios.css +15 -1
- package/dist/collection/components/list/list.md.css +41 -3
- package/dist/collection/components/list/test/lines/list.e2e.js +143 -0
- package/dist/collection/components/list-header/list-header.ios.css +15 -2
- package/dist/collection/components/list-header/list-header.md.css +15 -2
- package/dist/collection/components/list-header/test/basic/list-header.e2e.js +28 -0
- package/dist/collection/components/menu/menu.ios.css +4 -4
- package/dist/collection/components/menu/menu.js +15 -3
- package/dist/collection/components/menu/menu.md.css +4 -4
- package/dist/collection/components/modal/animations/ios.enter.js +3 -3
- package/dist/collection/components/modal/animations/ios.leave.js +4 -4
- package/dist/collection/components/modal/modal.ios.css +2 -2
- package/dist/collection/components/picker/picker.ios.css +1 -1
- package/dist/collection/components/picker/picker.md.css +1 -1
- package/dist/collection/components/picker-internal/picker-internal.ios.css +2 -2
- package/dist/collection/components/picker-internal/picker-internal.md.css +2 -2
- package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +5 -0
- package/dist/collection/components/popover/popover.ios.css +4 -4
- package/dist/collection/components/popover/popover.md.css +2 -2
- package/dist/collection/components/radio/radio.ios.css +4 -4
- package/dist/collection/components/radio/radio.js +5 -2
- package/dist/collection/components/radio/radio.md.css +4 -4
- package/dist/collection/components/radio/test/legacy/a11y/radio.e2e.js +5 -5
- package/dist/collection/components/radio-group/radio-group.js +10 -1
- package/dist/collection/components/range/range.ios.css +1 -1
- package/dist/collection/components/range/range.md.css +1 -1
- package/dist/collection/components/refresher/refresher.utils.js +8 -1
- package/dist/collection/components/reorder/reorder.ios.css +1 -34
- package/dist/collection/components/reorder/reorder.md.css +1 -34
- package/dist/collection/components/searchbar/searchbar.js +9 -2
- package/dist/collection/components/searchbar/searchbar.md.css +12 -6
- package/dist/collection/components/searchbar/test/basic/searchbar.e2e.js +25 -0
- package/dist/collection/components/segment/segment.js +43 -17
- package/dist/collection/components/select/select.ios.css +12 -15
- package/dist/collection/components/select/select.md.css +16 -7
- package/dist/collection/components/split-pane/test/multiple/split-pane.e2e.js +31 -0
- package/dist/collection/components/tab-bar/tab-bar.ios.css +4 -4
- package/dist/collection/components/tab-bar/tab-bar.md.css +4 -4
- package/dist/collection/components/tab-bar/test/basic/tab-bar.e2e.js +43 -0
- package/dist/collection/components/tab-button/tab-button.ios.css +3 -3
- package/dist/collection/components/tab-button/tab-button.md.css +3 -3
- package/dist/collection/components/textarea/textarea.ios.css +19 -19
- package/dist/collection/components/textarea/textarea.js +9 -2
- package/dist/collection/components/textarea/textarea.md.css +26 -20
- package/dist/collection/components/title/title.ios.css +11 -2
- package/dist/collection/components/toast/toast.ios.css +1 -1
- package/dist/collection/components/toast/toast.md.css +1 -1
- package/dist/collection/components/toggle/toggle.ios.css +3 -3
- package/dist/collection/components/toggle/toggle.md.css +3 -3
- package/dist/collection/utils/animation/animation.js +18 -3
- package/dist/collection/utils/content/index.js +0 -1
- package/dist/collection/utils/forms/form-controller.js +1 -5
- package/dist/collection/utils/input-shims/hacks/common.js +9 -1
- package/dist/collection/utils/transition/ios.transition.js +209 -41
- package/dist/collection/utils/watch-options.js +14 -3
- package/dist/docs.json +3 -3
- package/dist/esm/{animation-92066c62.js → animation-8aa13916.js} +18 -3
- package/dist/esm/{app-globals-ec816a70.js → app-globals-2398e405.js} +1 -1
- package/dist/esm/{button-active-d926d4f4.js → button-active-ce5cba4c.js} +1 -1
- package/dist/esm/{form-controller-ed77647a.js → form-controller-64edeaad.js} +1 -5
- package/dist/esm/{index-df55802d.js → index-0aa6e61f.js} +2 -2
- package/dist/esm/{index-746a238e.js → index-4392efa5.js} +0 -1
- package/dist/esm/{index-7d2b2808.js → index-6a0ccabb.js} +3 -3
- package/dist/esm/{index-b49b173c.js → index-7c9b1bca.js} +127 -57
- package/dist/esm/index.js +8 -8
- package/dist/esm/{input-shims-d78a3c77.js → input-shims-d0c93e5d.js} +10 -2
- package/dist/esm/ion-accordion_2.entry.js +13 -3
- package/dist/esm/ion-action-sheet.entry.js +7 -7
- package/dist/esm/ion-alert.entry.js +7 -7
- package/dist/esm/ion-app_8.entry.js +8 -8
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +2 -2
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-card_5.entry.js +2 -2
- package/dist/esm/ion-checkbox.entry.js +5 -5
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +2 -2
- package/dist/esm/ion-datetime_3.entry.js +52 -27
- package/dist/esm/ion-fab_3.entry.js +4 -4
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
- package/dist/esm/ion-input.entry.js +14 -7
- package/dist/esm/ion-item-option_3.entry.js +6 -6
- package/dist/esm/ion-item_8.entry.js +10 -10
- package/dist/esm/ion-loading.entry.js +4 -4
- package/dist/esm/ion-menu_3.entry.js +22 -10
- package/dist/esm/ion-modal.entry.js +14 -14
- package/dist/esm/ion-nav_2.entry.js +3 -3
- package/dist/esm/ion-picker-column-internal.entry.js +2 -2
- package/dist/esm/ion-picker-internal.entry.js +3 -3
- package/dist/esm/ion-popover.entry.js +7 -7
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +15 -7
- package/dist/esm/ion-range.entry.js +6 -6
- package/dist/esm/ion-refresher_2.entry.js +12 -5
- package/dist/esm/ion-reorder_2.entry.js +5 -5
- package/dist/esm/ion-ripple-effect.entry.js +2 -2
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +12 -5
- package/dist/esm/ion-segment_2.entry.js +45 -19
- package/dist/esm/ion-select_3.entry.js +7 -7
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +6 -6
- package/dist/esm/ion-tab_2.entry.js +1 -1
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +14 -7
- package/dist/esm/ion-toast.entry.js +6 -6
- package/dist/esm/ion-toggle.entry.js +5 -5
- package/dist/esm/{ionic-global-246ca78f.js → ionic-global-40e42e7f.js} +1 -1
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-a86d7bbe.js → ios.transition-1651c430.js} +212 -44
- package/dist/esm/loader.js +4 -4
- package/dist/esm/{md.transition-365ef6b6.js → md.transition-66f18369.js} +3 -3
- package/dist/esm/{overlays-cec6bac8.js → overlays-6c9feb7e.js} +1 -1
- package/dist/esm/{status-tap-9aeeaca5.js → status-tap-9ce68758.js} +2 -2
- package/dist/esm/{watch-options-355a920a.js → watch-options-02d8498b.js} +14 -3
- package/dist/esm-es5/animation-8aa13916.js +4 -0
- package/dist/esm-es5/app-globals-2398e405.js +4 -0
- package/dist/esm-es5/{button-active-d926d4f4.js → button-active-ce5cba4c.js} +1 -1
- package/dist/esm-es5/config-96c9ace3.js +1 -1
- package/dist/esm-es5/cubic-bezier-66542bc5.js +1 -1
- package/dist/esm-es5/data-44d9e816.js +1 -1
- package/dist/esm-es5/dir-912e3e13.js +1 -1
- package/dist/esm-es5/focus-visible-85493433.js +1 -1
- package/dist/esm-es5/form-controller-64edeaad.js +4 -0
- package/dist/esm-es5/framework-delegate-aa433dea.js +1 -1
- package/dist/esm-es5/gesture-controller-0fa396c4.js +1 -1
- package/dist/esm-es5/haptic-1243b917.js +1 -1
- package/dist/esm-es5/hardware-back-button-39299f84.js +1 -1
- package/dist/esm-es5/helpers-3379ba19.js +1 -1
- package/dist/esm-es5/index-0aa6e61f.js +4 -0
- package/dist/esm-es5/index-4392efa5.js +4 -0
- package/dist/esm-es5/index-6a0ccabb.js +4 -0
- package/dist/esm-es5/index-7c9b1bca.js +5 -0
- package/dist/esm-es5/index-f0cc4e14.js +1 -1
- package/dist/esm-es5/index-ff313b19.js +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-d0c93e5d.js +4 -0
- package/dist/esm-es5/input.utils-ec063df4.js +1 -1
- package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-card_5.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-chip.entry.js +1 -1
- package/dist/esm-es5/ion-col_3.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-img.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
- package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic-global-40e42e7f.js +4 -0
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/ios.transition-1651c430.js +4 -0
- package/dist/esm-es5/keyboard-b551279d.js +1 -1
- package/dist/esm-es5/keyboard-controller-0c2dce71.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-66f18369.js +4 -0
- package/dist/esm-es5/notch-controller-8c9c0e54.js +1 -1
- package/dist/esm-es5/overlays-6c9feb7e.js +4 -0
- package/dist/esm-es5/spinner-configs-d09fbbbb.js +1 -1
- package/dist/esm-es5/status-tap-9ce68758.js +4 -0
- package/dist/esm-es5/swipe-back-cd4295f3.js +1 -1
- package/dist/esm-es5/watch-options-02d8498b.js +4 -0
- package/dist/html.html-data.json +1 -1
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/ionic.js +1 -1
- package/dist/ionic/p-0330f0a3.system.entry.js +4 -0
- package/dist/ionic/{p-a7f8dc42.entry.js → p-0492946a.entry.js} +1 -1
- package/dist/ionic/{p-78030c1f.system.entry.js → p-07d9e9cd.system.entry.js} +1 -1
- package/dist/ionic/{p-ced41304.system.js → p-09d142b3.system.js} +1 -1
- package/dist/ionic/{p-fcf47f80.entry.js → p-0a794e83.entry.js} +1 -1
- package/dist/ionic/p-0d8e9393.entry.js +4 -0
- package/dist/ionic/p-0dc0d9b5.entry.js +4 -0
- package/dist/ionic/p-0e23256e.system.entry.js +4 -0
- package/dist/ionic/p-14aca3fb.entry.js +4 -0
- package/dist/ionic/p-14b4348c.system.js +4 -0
- package/dist/ionic/{p-108f9d49.entry.js → p-174f3446.entry.js} +1 -1
- package/dist/ionic/p-18e01b30.system.entry.js +4 -0
- package/dist/ionic/p-1a8ae7a7.system.entry.js +4 -0
- package/dist/ionic/p-1cb5f2f8.system.entry.js +4 -0
- package/dist/ionic/{p-c42c86c0.system.entry.js → p-1d269117.system.entry.js} +1 -1
- package/dist/ionic/{p-0ac3fb2c.entry.js → p-1dc91702.entry.js} +1 -1
- package/dist/ionic/p-1e5165db.system.entry.js +4 -0
- package/dist/ionic/{p-0b00b937.entry.js → p-1e86a71b.entry.js} +1 -1
- package/dist/ionic/p-1f4f0d59.system.entry.js +4 -0
- package/dist/ionic/p-20cf4994.js +4 -0
- package/dist/ionic/p-236063ec.system.entry.js +4 -0
- package/dist/ionic/p-2b89ea1b.system.js +1 -1
- package/dist/ionic/p-2e8e0045.js +4 -0
- package/dist/ionic/{p-ce7d67a7.system.entry.js → p-34d2de14.system.entry.js} +2 -2
- package/dist/ionic/{p-303bf1e8.system.entry.js → p-352c0232.system.entry.js} +2 -2
- package/dist/ionic/p-3602001b.system.js +4 -0
- package/dist/ionic/p-3632220b.system.js +1 -1
- package/dist/ionic/p-377c636c.system.entry.js +4 -0
- package/dist/ionic/{p-f9fa802c.system.entry.js → p-39044fe6.system.entry.js} +2 -2
- package/dist/ionic/{p-38089641.entry.js → p-3ce8c3e3.entry.js} +1 -1
- package/dist/ionic/p-3d7fea9b.system.entry.js +4 -0
- package/dist/ionic/p-3de79805.entry.js +4 -0
- package/dist/ionic/{p-0bbede6a.system.entry.js → p-3fb57e1b.system.entry.js} +1 -1
- package/dist/ionic/{p-5c3e72a8.system.js → p-40903d34.system.js} +1 -1
- package/dist/ionic/p-41122cd6.system.js +4 -0
- package/dist/ionic/p-41477ad9.system.js +1 -1
- package/dist/ionic/p-44bc8b45.system.js +2 -2
- package/dist/ionic/p-4518e4c0.system.entry.js +4 -0
- package/dist/ionic/{p-eab10949.system.entry.js → p-45da1e68.system.entry.js} +1 -1
- package/dist/ionic/p-4794e0ac.system.entry.js +4 -0
- package/dist/ionic/p-479cdbf8.system.js +2 -2
- package/dist/ionic/{p-4e50b8d1.entry.js → p-48d9faa7.entry.js} +1 -1
- package/dist/ionic/{p-8d6728a1.system.entry.js → p-4a142496.system.entry.js} +1 -1
- package/dist/ionic/p-4c80afe1.system.entry.js +4 -0
- package/dist/ionic/p-4cd588b3.system.entry.js +4 -0
- package/dist/ionic/{p-afb6658f.entry.js → p-4dbac22d.entry.js} +1 -1
- package/dist/ionic/p-4e6a1efb.system.entry.js +4 -0
- package/dist/ionic/p-4ecb5692.entry.js +4 -0
- package/dist/ionic/p-5370e786.js +4 -0
- package/dist/ionic/p-55ed230e.system.js +4 -0
- package/dist/ionic/p-56dc022e.system.js +1 -1
- package/dist/ionic/p-5aac9314.system.js +4 -0
- package/dist/ionic/p-5bd4e009.entry.js +4 -0
- package/dist/ionic/{p-6f8a95a3.system.entry.js → p-5cfb3feb.system.entry.js} +2 -2
- package/dist/ionic/{p-181b7c2a.js → p-5d711127.js} +1 -1
- package/dist/ionic/p-5da0eb3e.system.entry.js +4 -0
- package/dist/ionic/p-5deff017.entry.js +4 -0
- package/dist/ionic/p-613d4042.system.js +2 -2
- package/dist/ionic/p-63d519fb.entry.js +4 -0
- package/dist/ionic/{p-8083aadb.entry.js → p-63f08fe3.entry.js} +1 -1
- package/dist/ionic/{p-35b26732.entry.js → p-64296b15.entry.js} +1 -1
- package/dist/ionic/p-64ed03a3.entry.js +4 -0
- package/dist/ionic/p-664d2b07.system.entry.js +4 -0
- package/dist/ionic/p-67aab78f.js +4 -0
- package/dist/ionic/{p-e0f52215.system.entry.js → p-67e18f02.system.entry.js} +1 -1
- package/dist/ionic/{p-572cce26.system.entry.js → p-67ed452a.system.entry.js} +2 -2
- package/dist/ionic/p-67eecef4.system.js +4 -0
- package/dist/ionic/{p-76378400.js → p-6c3d5383.js} +1 -1
- package/dist/ionic/{p-1289b3b5.system.entry.js → p-6e23777e.system.entry.js} +2 -2
- package/dist/ionic/p-702d85d8.system.js +4 -0
- package/dist/ionic/{p-1edb53a1.entry.js → p-7176cea3.entry.js} +1 -1
- package/dist/ionic/p-73411c1b.entry.js +4 -0
- package/dist/ionic/p-73420380.js +4 -0
- package/dist/ionic/{p-6ea2e653.entry.js → p-744973f3.entry.js} +1 -1
- package/dist/ionic/p-772f6c84.system.js +2 -2
- package/dist/ionic/p-77e7a9c8.entry.js +4 -0
- package/dist/ionic/p-7ab6fc5a.system.entry.js +4 -0
- package/dist/ionic/{p-31119a15.entry.js → p-7cee75c0.entry.js} +1 -1
- package/dist/ionic/{p-cf62e1c8.js → p-800ef057.js} +1 -1
- package/dist/ionic/p-815c2fba.system.js +2 -2
- package/dist/ionic/p-819ff3b9.system.js +1 -1
- package/dist/ionic/p-87411e39.system.js +1 -1
- package/dist/ionic/p-8a308596.system.js +4 -0
- package/dist/ionic/{p-3818f63f.entry.js → p-8ad82eb3.entry.js} +1 -1
- package/dist/ionic/{p-c4a5de01.entry.js → p-8b29691f.entry.js} +1 -1
- package/dist/ionic/p-8c15eda7.system.js +2 -2
- package/dist/ionic/p-8e1bded3.entry.js +4 -0
- package/dist/ionic/{p-15decbec.entry.js → p-9209d90c.entry.js} +1 -1
- package/dist/ionic/{p-96ba8eac.entry.js → p-92800752.entry.js} +1 -1
- package/dist/ionic/p-965677f1.entry.js +4 -0
- package/dist/ionic/{p-446230d7.js → p-97c65aa5.js} +1 -1
- package/dist/ionic/p-97e31c0a.system.js +4 -0
- package/dist/ionic/p-9ab6f3e6.system.js +1 -1
- package/dist/ionic/{p-62e7d4fa.js → p-9b89cbde.js} +1 -1
- package/dist/ionic/p-9e852ff1.system.js +1 -1
- package/dist/ionic/p-a0b6d438.js +4 -0
- package/dist/ionic/p-a545b4f1.system.js +4 -0
- package/dist/ionic/p-a5c1e6ce.entry.js +4 -0
- package/dist/ionic/p-a6d83a03.system.entry.js +4 -0
- package/dist/ionic/p-a8e68fd9.entry.js +4 -0
- package/dist/ionic/{p-aa377971.system.js → p-a936d224.system.js} +1 -1
- package/dist/ionic/{p-beb864e4.system.entry.js → p-a9c3699b.system.entry.js} +1 -1
- package/dist/ionic/p-ab4cff27.system.js +1 -1
- package/dist/ionic/{p-012952cd.system.entry.js → p-abacb44b.system.entry.js} +2 -2
- package/dist/ionic/{p-1f81b5be.entry.js → p-af016cd3.entry.js} +1 -1
- package/dist/ionic/{p-a9c32660.entry.js → p-b0cee324.entry.js} +1 -1
- package/dist/ionic/{p-f4309ac7.entry.js → p-b1142133.entry.js} +1 -1
- package/dist/ionic/p-b17b7c3c.system.entry.js +4 -0
- package/dist/ionic/p-b203659a.system.entry.js +4 -0
- package/dist/ionic/{p-c679fcb5.entry.js → p-b2a74a72.entry.js} +1 -1
- package/dist/ionic/p-b4b4bb29.system.js +1 -1
- package/dist/ionic/p-b6f8ee31.entry.js +4 -0
- package/dist/ionic/p-b8c3f071.system.js +1 -1
- package/dist/ionic/p-b906c5ca.entry.js +4 -0
- package/dist/ionic/p-b912e055.system.js +1 -1
- package/dist/ionic/{p-e42aaa8b.entry.js → p-b91fe549.entry.js} +1 -1
- package/dist/ionic/p-bba2ce59.system.js +1 -1
- package/dist/ionic/p-beb64be7.system.entry.js +4 -0
- package/dist/ionic/p-bed722c4.system.entry.js +4 -0
- package/dist/ionic/p-c0c81820.system.js +4 -0
- package/dist/ionic/p-c224b9a9.js +5 -0
- package/dist/ionic/p-c4042875.system.js +4 -0
- package/dist/ionic/p-c4f2dce7.system.js +1 -1
- package/dist/ionic/{p-6f6646bf.system.entry.js → p-c7b8c2ef.system.entry.js} +1 -1
- package/dist/ionic/{p-1ecba429.entry.js → p-c7d30db9.entry.js} +1 -1
- package/dist/ionic/{p-db1a1e00.entry.js → p-c919498d.entry.js} +1 -1
- package/dist/ionic/{p-54200074.entry.js → p-ca5219df.entry.js} +1 -1
- package/dist/ionic/p-ccdcb022.system.js +1 -1
- package/dist/ionic/p-cf425ec5.system.entry.js +4 -0
- package/dist/ionic/p-d2597b3e.system.js +5 -0
- package/dist/ionic/p-d3952bd5.system.entry.js +4 -0
- package/dist/ionic/{p-8c1805f4.system.entry.js → p-d7ea6a0d.system.entry.js} +1 -1
- package/dist/ionic/p-db5043df.system.entry.js +4 -0
- package/dist/ionic/p-dfa756ed.system.js +4 -0
- package/dist/ionic/{p-28ea45b9.js → p-e6b240a0.js} +1 -1
- package/dist/ionic/{p-cabd2c6d.entry.js → p-e76a4bc8.entry.js} +1 -1
- package/dist/ionic/{p-cf0c93e3.system.entry.js → p-e8400078.system.entry.js} +2 -2
- package/dist/ionic/{p-4e6e43c1.entry.js → p-ed636a74.entry.js} +1 -1
- package/dist/ionic/p-f10de93b.js +4 -0
- package/dist/ionic/{p-f919c026.entry.js → p-f4cc91f6.entry.js} +1 -1
- package/dist/ionic/p-f5a750e4.system.entry.js +4 -0
- package/dist/ionic/p-f8e620f1.entry.js +4 -0
- package/dist/ionic/p-fa8d4788.system.js +1 -1
- package/dist/ionic/{p-8a2801f1.system.entry.js → p-ff5144f3.system.entry.js} +1 -1
- package/dist/ionic/p-ff5a10f9.system.js +2 -2
- package/dist/ionic/{p-6129af0a.system.entry.js → p-ffb876b0.system.entry.js} +1 -1
- package/dist/types/components/datetime/datetime.d.ts +1 -1
- package/dist/types/components/menu/menu-interface.d.ts +15 -4
- package/dist/types/components/radio/radio.d.ts +1 -1
- package/dist/types/components.d.ts +627 -3
- package/dist/types/stencil-public-runtime.d.ts +21 -0
- package/dist/types/utils/content/index.d.ts +1 -1
- package/dist/types/utils/focus-visible.d.ts +3 -2
- package/dist/types/utils/menu-controller/index.d.ts +2 -21
- package/dist/types/utils/test/platform.utils.d.ts +9 -9
- package/dist/types/utils/watch-options.d.ts +9 -1
- package/hydrate/index.d.ts +1 -1
- package/hydrate/index.js +567 -238
- package/package.json +11 -14
- package/dist/esm-es5/animation-92066c62.js +0 -4
- package/dist/esm-es5/app-globals-ec816a70.js +0 -4
- package/dist/esm-es5/form-controller-ed77647a.js +0 -4
- package/dist/esm-es5/index-746a238e.js +0 -4
- package/dist/esm-es5/index-7d2b2808.js +0 -4
- package/dist/esm-es5/index-b49b173c.js +0 -5
- package/dist/esm-es5/index-df55802d.js +0 -4
- package/dist/esm-es5/input-shims-d78a3c77.js +0 -4
- package/dist/esm-es5/ionic-global-246ca78f.js +0 -4
- package/dist/esm-es5/ios.transition-a86d7bbe.js +0 -4
- package/dist/esm-es5/md.transition-365ef6b6.js +0 -4
- package/dist/esm-es5/overlays-cec6bac8.js +0 -4
- package/dist/esm-es5/status-tap-9aeeaca5.js +0 -4
- package/dist/esm-es5/watch-options-355a920a.js +0 -4
- package/dist/ionic/p-015187e5.system.js +0 -4
- package/dist/ionic/p-06ac429a.js +0 -5
- package/dist/ionic/p-0b7c25ee.system.entry.js +0 -4
- package/dist/ionic/p-0f1f59da.system.entry.js +0 -4
- package/dist/ionic/p-128a98e8.system.js +0 -4
- package/dist/ionic/p-16e44585.js +0 -4
- package/dist/ionic/p-19fba51c.entry.js +0 -4
- package/dist/ionic/p-1a463b1e.system.entry.js +0 -4
- package/dist/ionic/p-1f260a7b.entry.js +0 -4
- package/dist/ionic/p-29073efe.system.entry.js +0 -4
- package/dist/ionic/p-2bbf3ac4.system.entry.js +0 -4
- package/dist/ionic/p-33a8349a.system.entry.js +0 -4
- package/dist/ionic/p-34259245.system.entry.js +0 -4
- package/dist/ionic/p-35e399bd.entry.js +0 -4
- package/dist/ionic/p-38c5fe2b.system.entry.js +0 -4
- package/dist/ionic/p-3a58e3a4.system.entry.js +0 -4
- package/dist/ionic/p-3d726a67.system.js +0 -4
- package/dist/ionic/p-3f3da911.system.entry.js +0 -4
- package/dist/ionic/p-4215652f.system.entry.js +0 -4
- package/dist/ionic/p-4f97c112.entry.js +0 -4
- package/dist/ionic/p-54f6cd27.system.entry.js +0 -4
- package/dist/ionic/p-5b976d70.entry.js +0 -4
- package/dist/ionic/p-5bf16a18.js +0 -4
- package/dist/ionic/p-629aa3fd.system.js +0 -5
- package/dist/ionic/p-64475ab5.system.js +0 -4
- package/dist/ionic/p-673846f6.entry.js +0 -4
- package/dist/ionic/p-6ce0a709.system.entry.js +0 -4
- package/dist/ionic/p-818b2e75.entry.js +0 -4
- package/dist/ionic/p-81ef7437.system.entry.js +0 -4
- package/dist/ionic/p-8e24ebbc.js +0 -4
- package/dist/ionic/p-8f01a9a2.system.js +0 -4
- package/dist/ionic/p-939e0fa1.system.js +0 -4
- package/dist/ionic/p-95817276.system.entry.js +0 -4
- package/dist/ionic/p-9b9dcc3e.system.entry.js +0 -4
- package/dist/ionic/p-9dc85536.system.entry.js +0 -4
- package/dist/ionic/p-9f2e0db9.js +0 -4
- package/dist/ionic/p-a04bfada.entry.js +0 -4
- package/dist/ionic/p-a164e3ab.system.entry.js +0 -4
- package/dist/ionic/p-a200a7fc.entry.js +0 -4
- package/dist/ionic/p-a34fc12e.system.entry.js +0 -4
- package/dist/ionic/p-ad48dd13.system.js +0 -4
- package/dist/ionic/p-b132c2c0.system.js +0 -4
- package/dist/ionic/p-b3c68723.system.js +0 -4
- package/dist/ionic/p-b61a2fa0.system.entry.js +0 -4
- package/dist/ionic/p-b753ec0d.system.entry.js +0 -4
- package/dist/ionic/p-b9047b05.system.js +0 -4
- package/dist/ionic/p-c05315f5.system.entry.js +0 -4
- package/dist/ionic/p-c105bd36.entry.js +0 -4
- package/dist/ionic/p-c49672d8.system.js +0 -4
- package/dist/ionic/p-c87827ca.system.js +0 -4
- package/dist/ionic/p-c8c9d699.system.entry.js +0 -4
- package/dist/ionic/p-c92f0a6d.system.entry.js +0 -4
- package/dist/ionic/p-c956e82c.system.entry.js +0 -4
- package/dist/ionic/p-c994fff0.system.js +0 -4
- package/dist/ionic/p-ca5cf574.js +0 -4
- package/dist/ionic/p-cd2d17c3.system.entry.js +0 -4
- package/dist/ionic/p-d35217be.entry.js +0 -4
- package/dist/ionic/p-d6e53e66.entry.js +0 -4
- package/dist/ionic/p-e1d5752d.system.entry.js +0 -4
- package/dist/ionic/p-e2bb634f.js +0 -4
- package/dist/ionic/p-e38a5f77.js +0 -4
- package/dist/ionic/p-e65ebe96.entry.js +0 -4
- package/dist/ionic/p-e74faf2a.entry.js +0 -4
- package/dist/ionic/p-eac263dd.entry.js +0 -4
- package/dist/ionic/p-f34f001c.entry.js +0 -4
- package/dist/ionic/p-f5bf698b.entry.js +0 -4
- package/dist/ionic/p-f7566bad.entry.js +0 -4
- /package/dist/ionic/{p-b24aa895.js → p-114a36ed.js} +0 -0
package/css/utils.bundle.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../src/themes/ionic.functions.font.scss","../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":"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;AChCA;EACE;EACA;EACA;EACA;ECuRE,cDrRe;ECsRf,eDtRe;EC0SjB,aD1SiB;EC2SjB,gBD3SiB;;;AAGnB;EACE;EACA;EACA;EACA;ECkRE,uBDrSM;ECsSN,sBDtSM;ECuSN,qBDvSM;ECwSN,oBDxSM;ECsTR,aDtTQ;ECuTR,gBDvTQ;;;AAwBV;EACE;EC6RA,aDtTQ;;;AA8BV;EACE;ECsQE,uBDrSM;ECsSN,sBDtSM;;;AAoCV;EACE;ECkQE,qBDvSM;ECwSN,oBDxSM;;;AA0CV;EACE;EC4QA,gBDvTQ;;;AAgDV;EACE;EACA;ECoQA,aDtTQ;ECuTR,gBDvTQ;;;AAuDV;EACE;EACA;EC4OE,uBDrSM;ECsSN,sBDtSM;ECuSN,qBDvSM;ECwSN,oBDxSM;;;AAkEV;EACE;EACA;EACA;EACA;EC2NE,aDzNc;EC0Nd,cD1Nc;EC8OhB,YD9OgB;EC+OhB,eD/OgB;;;AAGlB;EACE;EACA;EACA;EACA;ECsNE,sBDpSK;ECqSL,qBDrSK;ECsSL,oBDtSK;ECuSL,mBDvSK;ECqTP,YDrTO;ECsTP,eDtTO;;;AAmFT;EACE;ECiOA,YDrTO;;;AAyFT;EACE;EC0ME,sBDpSK;ECqSL,qBDrSK;;;AA+FT;EACE;ECsME,oBDtSK;ECuSL,mBDvSK;;;AAqGT;EACE;ECgNA,eDtTO;;;AA2GT;EACE;EACA;ECwMA,YDrTO;ECsTP,eDtTO;;;AAkHT;EACE;EACA;ECgLE,sBDpSK;ECqSL,qBDrSK;ECsSL,oBDtSK;ECuSL,mBDvSK;;;ADLT;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;AGlCI;ED4dE;;;ACxdF;EDwdE;;;ACpdF;EDscE;;AA7PO;EAgQP;;;AAzPO;EAyPP;;;AAnPJ;EAiBa;IAkOT;;;;ACrcF;EDycE;;AApQO;EAuQP;;;AAhQO;EAgQP;;;AA1PJ;EAiBa;IAyOT;;;;AAvWF;ECjHA;ID4dE;;;ECxdF;IDwdE;;;ECpdF;IDscE;;EA7PO;IAgQP;;;EAzPO;IAyPP;;;EAnPJ;IAiBa;MAkOT;;;;ECrcF;IDycE;;EApQO;IAuQP;;;EAhQO;IAgQP;;;EA1PJ;IAiBa;MAyOT;;;;AAvWF;ECjHA;ID4dE;;;ECxdF;IDwdE;;;ECpdF;IDscE;;EA7PO;IAgQP;;;EAzPO;IAyPP;;;EAnPJ;IAiBa;MAkOT;;;;ECrcF;IDycE;;EApQO;IAuQP;;;EAhQO;IAgQP;;;EA1PJ;IAiBa;MAyOT;;;;AAvWF;ECjHA;ID4dE;;;ECxdF;IDwdE;;;ECpdF;IDscE;;EA7PO;IAgQP;;;EAzPO;IAyPP;;;EAnPJ;IAiBa;MAkOT;;;;ECrcF;IDycE;;EApQO;IAuQP;;;EAhQO;IAgQP;;;EA1PJ;IAiBa;MAyOT;;;;AAvWF;ECjHA;ID4dE;;;ECxdF;IDwdE;;;ECpdF;IDscE;;EA7PO;IAgQP;;;EAzPO;IAyPP;;;EAnPJ;IAiBa;MAkOT;;;;ECrcF;IDycE;;EApQO;IAuQP;;;EAhQO;IAgQP;;;EA1PJ;IAiBa;MAyOT;;;;AFheN;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;AIlCI;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AFoFF;EEjHA;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;AFoFF;EEjHA;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;AFoFF;EEjHA;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;IACE;;;AFoFF;EEjHA;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;AKlCI;AACE;EACA;;;AAGF;AACE;EACA;;;AAGF;AACE;EACA;;;AHqGF;EGjHA;AACE;IACA;;;EAGF;AACE;IACA;;;EAGF;AACE;IACA;;;AHqGF;EGjHA;AACE;IACA;;;EAGF;AACE;IACA;;;EAGF;AACE;IACA;;;AHqGF;EGjHA;AACE;IACA;;;EAGF;AACE;IACA;;;EAGF;AACE;IACA;;;AHqGF;EGjHA;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;AOxCA;EACE;;;AAUE;EACE;;;AAOF;EACE;;;ALmGF;EK5GA;IACE;;;ALoJF;EK7IA;IACE;;;ALmGF;EK5GA;IACE;;;ALoJF;EK7IA;IACE;;;ALmGF;EK5GA;IACE;;;ALoJF;EK7IA;IACE;;;ALmGF;EK5GA;IACE;;;ALoJF;EK7IA;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","@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","@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 @each $selector in $rootSplit {\n $dirSelector: \"#{$selector}:dir(rtl)\";\n // Group the selectors back into a single selector to optimize the output.\n $dirSelectors: append($dirSelectors, $dirSelector, comma);\n }\n\n // Supported by Firefox.\n @if length($dirSelectors) > 0 {\n @at-root #{$dirSelectors} {\n @content;\n }\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 @supports (inset-inline-start: 0) {\n & {\n inset-inline-start: $start;\n inset-inline-end: $end;\n }\n }\n }\n\n // TODO FW-3766\n @at-root {\n @supports not (inset-inline-start: 0) {\n & {\n @include ltr() {\n left: $start;\n right: $end;\n }\n @include rtl() {\n left: unset;\n right: unset;\n\n left: $end;\n right: $start;\n }\n }\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 @include multi-dir() {\n border-radius: $top-start;\n }\n } @else {\n @include ltr() {\n border-top-left-radius: $top-start;\n border-top-right-radius: $top-end;\n border-bottom-right-radius: $bottom-end;\n border-bottom-left-radius: $bottom-start;\n }\n\n @include rtl() {\n border-top-left-radius: $top-end;\n border-top-right-radius: $top-start;\n border-bottom-right-radius: $bottom-start;\n border-bottom-left-radius: $bottom-end;\n }\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"]}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../src/themes/ionic.functions.font.scss","../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":"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","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","@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","@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 @supports (inset-inline-start: 0) {\n & {\n inset-inline-start: $start;\n inset-inline-end: $end;\n }\n }\n }\n\n // TODO FW-3766\n @at-root {\n @supports not (inset-inline-start: 0) {\n & {\n @include ltr() {\n left: $start;\n right: $end;\n }\n @include rtl() {\n left: unset;\n right: unset;\n\n left: $end;\n right: $start;\n }\n }\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 @include multi-dir() {\n border-radius: $top-start;\n }\n } @else {\n @include ltr() {\n border-top-left-radius: $top-start;\n border-top-right-radius: $top-end;\n border-bottom-right-radius: $bottom-end;\n border-bottom-left-radius: $bottom-start;\n }\n\n @include rtl() {\n border-top-left-radius: $top-end;\n border-top-right-radius: $top-start;\n border-bottom-right-radius: $bottom-start;\n border-bottom-left-radius: $bottom-end;\n }\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"]}
|
|
@@ -512,11 +512,25 @@ const createAnimation = (animationId) => {
|
|
|
512
512
|
const updateKeyframes = (keyframeValues) => {
|
|
513
513
|
if (supportsWebAnimations) {
|
|
514
514
|
getWebAnimations().forEach((animation) => {
|
|
515
|
-
|
|
516
|
-
|
|
515
|
+
/**
|
|
516
|
+
* animation.effect's type is AnimationEffect.
|
|
517
|
+
* However, in this case we have a more specific
|
|
518
|
+
* type of AnimationEffect called KeyframeEffect which
|
|
519
|
+
* inherits from AnimationEffect. As a result,
|
|
520
|
+
* we cast animation.effect to KeyframeEffect.
|
|
521
|
+
*/
|
|
522
|
+
const keyframeEffect = animation.effect;
|
|
523
|
+
/**
|
|
524
|
+
* setKeyframes is not supported in all browser
|
|
525
|
+
* versions that Ionic supports, so we need to
|
|
526
|
+
* check for support before using it.
|
|
527
|
+
*/
|
|
528
|
+
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
529
|
+
if (keyframeEffect.setKeyframes) {
|
|
530
|
+
keyframeEffect.setKeyframes(keyframeValues);
|
|
517
531
|
}
|
|
518
532
|
else {
|
|
519
|
-
const newEffect = new KeyframeEffect(
|
|
533
|
+
const newEffect = new KeyframeEffect(keyframeEffect.target, keyframeValues, keyframeEffect.getTiming());
|
|
520
534
|
animation.effect = newEffect;
|
|
521
535
|
}
|
|
522
536
|
});
|
|
@@ -661,6 +675,7 @@ const createAnimation = (animationId) => {
|
|
|
661
675
|
step = Math.min(Math.max(step, 0), 0.9999);
|
|
662
676
|
if (supportsWebAnimations) {
|
|
663
677
|
webAnimations.forEach((animation) => {
|
|
678
|
+
// When creating the animation the delay is guaranteed to be set to a number.
|
|
664
679
|
animation.currentTime = animation.effect.getComputedTiming().delay + getDuration() * step;
|
|
665
680
|
animation.pause();
|
|
666
681
|
});
|
|
@@ -42,10 +42,6 @@ const createLegacyFormController = (el) => {
|
|
|
42
42
|
return { hasLegacyControl };
|
|
43
43
|
};
|
|
44
44
|
const hasLabelSlot = (controlEl) => {
|
|
45
|
-
const root = controlEl.shadowRoot;
|
|
46
|
-
if (root === null) {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
45
|
/**
|
|
50
46
|
* Components that have a named label slot
|
|
51
47
|
* also have other slots, so we need to query for
|
|
@@ -64,7 +60,7 @@ const hasLabelSlot = (controlEl) => {
|
|
|
64
60
|
}
|
|
65
61
|
return false;
|
|
66
62
|
};
|
|
67
|
-
const NAMED_LABEL_SLOT_COMPONENTS = ['ION-RANGE'];
|
|
63
|
+
const NAMED_LABEL_SLOT_COMPONENTS = ['ION-INPUT', 'ION-TEXTAREA', 'ION-SELECT', 'ION-RANGE'];
|
|
68
64
|
const UNNAMED_LABEL_SLOT_COMPONENTS = ['ION-TOGGLE', 'ION-CHECKBOX', 'ION-RADIO'];
|
|
69
65
|
|
|
70
66
|
exports.createLegacyFormController = createLegacyFormController;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
const index = require('./index-
|
|
6
|
+
const index = require('./index-c2940dc1.js');
|
|
7
7
|
const helpers = require('./helpers-ea4ccbcb.js');
|
|
8
8
|
|
|
9
9
|
const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
|
|
@@ -12,8 +12,8 @@ const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
|
|
|
12
12
|
const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
|
|
13
13
|
const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
|
|
14
14
|
|
|
15
|
-
const iosTransitionAnimation = () => Promise.resolve().then(function () { return require('./ios.transition-
|
|
16
|
-
const mdTransitionAnimation = () => Promise.resolve().then(function () { return require('./md.transition-
|
|
15
|
+
const iosTransitionAnimation = () => Promise.resolve().then(function () { return require('./ios.transition-ac909bc8.js'); });
|
|
16
|
+
const mdTransitionAnimation = () => Promise.resolve().then(function () { return require('./md.transition-907af519.js'); });
|
|
17
17
|
// TODO(FW-2832): types
|
|
18
18
|
const transition = (opts) => {
|
|
19
19
|
return new Promise((resolve, reject) => {
|
|
@@ -24,6 +24,7 @@ function _interopNamespace(e) {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
const NAMESPACE = 'ionic';
|
|
27
|
+
const BUILD = /* ionic */ { allRenderFn: false, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: true, cmpDidUnload: false, cmpDidUpdate: true, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: true, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: true, hostListenerTargetDocument: true, hostListenerTargetParent: false, hostListenerTargetWindow: true, hotModuleReplacement: false, hydrateClientSide: true, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: true, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: true, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: true, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: true, watchCallback: true };
|
|
27
28
|
|
|
28
29
|
/**
|
|
29
30
|
* Virtual DOM patching algorithm based on Snabbdom by
|
|
@@ -73,6 +74,13 @@ const HYDRATE_ID = 's-id';
|
|
|
73
74
|
const HYDRATED_STYLE_ID = 'sty-id';
|
|
74
75
|
const HYDRATE_CHILD_ID = 'c-id';
|
|
75
76
|
const HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';
|
|
77
|
+
/**
|
|
78
|
+
* Constant for styles to be globally applied to `slot-fb` elements for pseudo-slot behavior.
|
|
79
|
+
*
|
|
80
|
+
* Two cascading rules must be used instead of a `:not()` selector due to Stencil browser
|
|
81
|
+
* support as of Stencil v4.
|
|
82
|
+
*/
|
|
83
|
+
const SLOT_FB_CSS = 'slot-fb{display:contents}slot-fb[hidden]{display:none}';
|
|
76
84
|
const XLINK_NS = 'http://www.w3.org/1999/xlink';
|
|
77
85
|
/**
|
|
78
86
|
* Default style mode id
|
|
@@ -608,6 +616,10 @@ const addStyle = (styleContainerNode, cmpMeta, mode) => {
|
|
|
608
616
|
}
|
|
609
617
|
styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));
|
|
610
618
|
}
|
|
619
|
+
// Add styles for `slot-fb` elements if we're using slots outside the Shadow DOM
|
|
620
|
+
if (cmpMeta.$flags$ & 4 /* CMP_FLAGS.hasSlotRelocation */) {
|
|
621
|
+
styleElm.innerHTML += SLOT_FB_CSS;
|
|
622
|
+
}
|
|
611
623
|
if (appliedStyles) {
|
|
612
624
|
appliedStyles.add(scopeId);
|
|
613
625
|
}
|
|
@@ -742,11 +754,19 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
|
|
|
742
754
|
// except for the first character, we keep the event name case
|
|
743
755
|
memberName = ln[2] + memberName.slice(3);
|
|
744
756
|
}
|
|
745
|
-
if (oldValue) {
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
757
|
+
if (oldValue || newValue) {
|
|
758
|
+
// Need to account for "capture" events.
|
|
759
|
+
// If the event name ends with "Capture", we'll update the name to remove
|
|
760
|
+
// the "Capture" suffix and make sure the event listener is setup to handle the capture event.
|
|
761
|
+
const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
|
|
762
|
+
// Make sure we only replace the last instance of "Capture"
|
|
763
|
+
memberName = memberName.replace(CAPTURE_EVENT_REGEX, '');
|
|
764
|
+
if (oldValue) {
|
|
765
|
+
plt.rel(elm, memberName, oldValue, capture);
|
|
766
|
+
}
|
|
767
|
+
if (newValue) {
|
|
768
|
+
plt.ael(elm, memberName, newValue, capture);
|
|
769
|
+
}
|
|
750
770
|
}
|
|
751
771
|
}
|
|
752
772
|
else {
|
|
@@ -808,6 +828,8 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
|
|
|
808
828
|
};
|
|
809
829
|
const parseClassListRegex = /\s/;
|
|
810
830
|
const parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));
|
|
831
|
+
const CAPTURE_EVENT_SUFFIX = 'Capture';
|
|
832
|
+
const CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + '$');
|
|
811
833
|
const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
|
|
812
834
|
// if the element passed in is a shadow root, which is a document fragment
|
|
813
835
|
// then we want to be adding attrs/props to the shadow root's "host" element
|
|
@@ -841,6 +863,7 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
|
|
|
841
863
|
* @returns the newly created node
|
|
842
864
|
*/
|
|
843
865
|
const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
|
|
866
|
+
var _a;
|
|
844
867
|
// tslint:disable-next-line: prefer-const
|
|
845
868
|
const newVNode = newParentVNode.$children$[childIndex];
|
|
846
869
|
let i = 0;
|
|
@@ -919,6 +942,8 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
|
|
|
919
942
|
if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
|
|
920
943
|
// remember the content reference comment
|
|
921
944
|
elm['s-sr'] = true;
|
|
945
|
+
// Persist the name of the slot that this slot was going to be projected into.
|
|
946
|
+
elm['s-fs'] = (_a = newVNode.$attrs$) === null || _a === void 0 ? void 0 : _a.slot;
|
|
922
947
|
// remember the content reference comment
|
|
923
948
|
elm['s-cr'] = contentRef;
|
|
924
949
|
// remember the slot name, or empty string for default slot
|
|
@@ -935,6 +960,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
|
|
|
935
960
|
return elm;
|
|
936
961
|
};
|
|
937
962
|
const putBackInOriginalLocation = (parentElm, recursive) => {
|
|
963
|
+
var _a;
|
|
938
964
|
plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
|
|
939
965
|
const oldSlotChildNodes = parentElm.childNodes;
|
|
940
966
|
for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
|
|
@@ -950,6 +976,14 @@ const putBackInOriginalLocation = (parentElm, recursive) => {
|
|
|
950
976
|
// and move this to the correct spot if need be
|
|
951
977
|
childNode['s-ol'].remove();
|
|
952
978
|
childNode['s-ol'] = undefined;
|
|
979
|
+
// Reset so we can correctly move the node around again.
|
|
980
|
+
childNode['s-sh'] = undefined;
|
|
981
|
+
// When putting an element node back in its original location,
|
|
982
|
+
// we need to reset the `slot` attribute back to the value it originally had
|
|
983
|
+
// so we can correctly relocate it again in the future
|
|
984
|
+
if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
|
|
985
|
+
childNode.setAttribute('slot', (_a = childNode['s-sn']) !== null && _a !== void 0 ? _a : '');
|
|
986
|
+
}
|
|
953
987
|
checkSlotRelocate = true;
|
|
954
988
|
}
|
|
955
989
|
if (recursive) {
|
|
@@ -1400,22 +1434,26 @@ const updateFallbackSlotVisibility = (elm) => {
|
|
|
1400
1434
|
// we need to check all of its sibling nodes in order to see if
|
|
1401
1435
|
// `childNode` should be hidden
|
|
1402
1436
|
for (const siblingNode of childNodes) {
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1437
|
+
// Don't check the node against itself
|
|
1438
|
+
if (siblingNode !== childNode) {
|
|
1439
|
+
if (siblingNode['s-hn'] !== childNode['s-hn'] || slotName !== '') {
|
|
1440
|
+
// this sibling node is from a different component OR is a named
|
|
1441
|
+
// fallback slot node
|
|
1442
|
+
if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ &&
|
|
1443
|
+
(slotName === siblingNode.getAttribute('slot') || slotName === siblingNode['s-sn'])) {
|
|
1444
|
+
childNode.hidden = true;
|
|
1445
|
+
break;
|
|
1446
|
+
}
|
|
1409
1447
|
}
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1448
|
+
else {
|
|
1449
|
+
// this is a default fallback slot node
|
|
1450
|
+
// any element or text node (with content)
|
|
1451
|
+
// should hide the default fallback slot node
|
|
1452
|
+
if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ ||
|
|
1453
|
+
(siblingNode.nodeType === 3 /* NODE_TYPE.TextNode */ && siblingNode.textContent.trim() !== '')) {
|
|
1454
|
+
childNode.hidden = true;
|
|
1455
|
+
break;
|
|
1456
|
+
}
|
|
1419
1457
|
}
|
|
1420
1458
|
}
|
|
1421
1459
|
}
|
|
@@ -1456,8 +1494,15 @@ const markSlotContentForRelocation = (elm) => {
|
|
|
1456
1494
|
node = hostContentNodes[j];
|
|
1457
1495
|
// check that the node is not a content reference node or a node
|
|
1458
1496
|
// reference and then check that the host name does not match that of
|
|
1459
|
-
// childNode
|
|
1460
|
-
|
|
1497
|
+
// childNode.
|
|
1498
|
+
// In addition, check that the slot either has not already been relocated, or
|
|
1499
|
+
// that its current location's host is not childNode's host. This is essentially
|
|
1500
|
+
// a check so that we don't try to relocate (and then hide) a node that is already
|
|
1501
|
+
// where it should be.
|
|
1502
|
+
if (!node['s-cn'] &&
|
|
1503
|
+
!node['s-nr'] &&
|
|
1504
|
+
node['s-hn'] !== childNode['s-hn'] &&
|
|
1505
|
+
(!BUILD.experimentalSlotFixes )) {
|
|
1461
1506
|
// if `node` is located in the slot that `childNode` refers to (via the
|
|
1462
1507
|
// `'s-sn'` property) then we need to relocate it from it's current spot
|
|
1463
1508
|
// (under the host element parent) to the right slot location
|
|
@@ -1471,12 +1516,14 @@ const markSlotContentForRelocation = (elm) => {
|
|
|
1471
1516
|
// ensure that the slot-name attr is correct
|
|
1472
1517
|
node['s-sn'] = node['s-sn'] || slotName;
|
|
1473
1518
|
if (relocateNodeData) {
|
|
1519
|
+
relocateNodeData.$nodeToRelocate$['s-sh'] = childNode['s-hn'];
|
|
1474
1520
|
// we marked this node for relocation previously but didn't find
|
|
1475
1521
|
// out the slot reference node to which it needs to be relocated
|
|
1476
1522
|
// so write it down now!
|
|
1477
1523
|
relocateNodeData.$slotRefNode$ = childNode;
|
|
1478
1524
|
}
|
|
1479
1525
|
else {
|
|
1526
|
+
node['s-sh'] = childNode['s-hn'];
|
|
1480
1527
|
// add to our list of nodes to relocate
|
|
1481
1528
|
relocateNodes.push({
|
|
1482
1529
|
$slotRefNode$: childNode,
|
|
@@ -1564,6 +1611,7 @@ const nullifyVNodeRefs = (vNode) => {
|
|
|
1564
1611
|
* @param isInitialLoad whether or not this is the first call after page load
|
|
1565
1612
|
*/
|
|
1566
1613
|
const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
|
|
1614
|
+
var _a, _b;
|
|
1567
1615
|
const hostElm = hostRef.$hostElement$;
|
|
1568
1616
|
const cmpMeta = hostRef.$cmpMeta$;
|
|
1569
1617
|
const oldVNode = hostRef.$vnode$ || newVNode(null, null);
|
|
@@ -1620,42 +1668,47 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
|
|
|
1620
1668
|
plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
|
|
1621
1669
|
if (checkSlotRelocate) {
|
|
1622
1670
|
markSlotContentForRelocation(rootVnode.$elm$);
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
let orgLocationNode;
|
|
1626
|
-
let parentNodeRef;
|
|
1627
|
-
let insertBeforeNode;
|
|
1628
|
-
let refNode;
|
|
1629
|
-
let i = 0;
|
|
1630
|
-
for (; i < relocateNodes.length; i++) {
|
|
1631
|
-
relocateData = relocateNodes[i];
|
|
1632
|
-
nodeToRelocate = relocateData.$nodeToRelocate$;
|
|
1671
|
+
for (const relocateData of relocateNodes) {
|
|
1672
|
+
const nodeToRelocate = relocateData.$nodeToRelocate$;
|
|
1633
1673
|
if (!nodeToRelocate['s-ol']) {
|
|
1634
1674
|
// add a reference node marking this node's original location
|
|
1635
1675
|
// keep a reference to this node for later lookups
|
|
1636
|
-
orgLocationNode =
|
|
1637
|
-
doc.createTextNode('');
|
|
1676
|
+
const orgLocationNode = doc.createTextNode('');
|
|
1638
1677
|
orgLocationNode['s-nr'] = nodeToRelocate;
|
|
1639
1678
|
nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
|
|
1640
1679
|
}
|
|
1641
1680
|
}
|
|
1642
|
-
for (
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
if (
|
|
1646
|
-
|
|
1647
|
-
//
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1681
|
+
for (const relocateData of relocateNodes) {
|
|
1682
|
+
const nodeToRelocate = relocateData.$nodeToRelocate$;
|
|
1683
|
+
const slotRefNode = relocateData.$slotRefNode$;
|
|
1684
|
+
if (slotRefNode) {
|
|
1685
|
+
const parentNodeRef = slotRefNode.parentNode;
|
|
1686
|
+
// When determining where to insert content, the most simple case would be
|
|
1687
|
+
// to relocate the node immediately following the slot reference node. We do this
|
|
1688
|
+
// by getting a reference to the node immediately following the slot reference node
|
|
1689
|
+
// since we will use `insertBefore` to manipulate the DOM.
|
|
1690
|
+
//
|
|
1691
|
+
// If there is no node immediately following the slot reference node, then we will just
|
|
1692
|
+
// end up appending the node as the last child of the parent.
|
|
1693
|
+
let insertBeforeNode = slotRefNode.nextSibling;
|
|
1694
|
+
// If the node we're currently planning on inserting the new node before is an element,
|
|
1695
|
+
// we need to do some additional checks to make sure we're inserting the node in the correct order.
|
|
1696
|
+
// The use case here would be that we have multiple nodes being relocated to the same slot. So, we want
|
|
1697
|
+
// to make sure they get inserted into their new how in the same order they were declared in their original location.
|
|
1698
|
+
//
|
|
1699
|
+
// TODO(STENCIL-914): Remove `experimentalSlotFixes` check
|
|
1700
|
+
{
|
|
1701
|
+
let orgLocationNode = (_a = nodeToRelocate['s-ol']) === null || _a === void 0 ? void 0 : _a.previousSibling;
|
|
1702
|
+
while (orgLocationNode) {
|
|
1703
|
+
let refNode = (_b = orgLocationNode['s-nr']) !== null && _b !== void 0 ? _b : null;
|
|
1704
|
+
if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
|
|
1705
|
+
refNode = refNode.nextSibling;
|
|
1706
|
+
if (!refNode || !refNode['s-nr']) {
|
|
1707
|
+
insertBeforeNode = refNode;
|
|
1708
|
+
break;
|
|
1709
|
+
}
|
|
1658
1710
|
}
|
|
1711
|
+
orgLocationNode = orgLocationNode.previousSibling;
|
|
1659
1712
|
}
|
|
1660
1713
|
}
|
|
1661
1714
|
if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
|
|
@@ -1668,7 +1721,10 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
|
|
|
1668
1721
|
// probably a component in the index.html that doesn't have its hostname set
|
|
1669
1722
|
nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;
|
|
1670
1723
|
}
|
|
1671
|
-
//
|
|
1724
|
+
// Add it back to the dom but in its new home
|
|
1725
|
+
// If we get to this point and `insertBeforeNode` is `null`, that means
|
|
1726
|
+
// we're just going to append the node as the last child of the parent. Passing
|
|
1727
|
+
// `null` as the second arg here will trigger that behavior.
|
|
1672
1728
|
parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);
|
|
1673
1729
|
}
|
|
1674
1730
|
}
|
|
@@ -2374,7 +2430,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
2374
2430
|
const customElements = win.customElements;
|
|
2375
2431
|
const head = doc.head;
|
|
2376
2432
|
const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');
|
|
2377
|
-
const
|
|
2433
|
+
const dataStyles = /*@__PURE__*/ doc.createElement('style');
|
|
2378
2434
|
const deferredConnectedCallbacks = [];
|
|
2379
2435
|
const styles = /*@__PURE__*/ doc.querySelectorAll(`[${HYDRATED_STYLE_ID}]`);
|
|
2380
2436
|
let appLoadFallback;
|
|
@@ -2392,6 +2448,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
2392
2448
|
registerStyle(styles[i].getAttribute(HYDRATED_STYLE_ID), convertScopedToShadow(styles[i].innerHTML), true);
|
|
2393
2449
|
}
|
|
2394
2450
|
}
|
|
2451
|
+
let hasSlotRelocation = false;
|
|
2395
2452
|
lazyBundles.map((lazyBundle) => {
|
|
2396
2453
|
lazyBundle[1].map((compactMeta) => {
|
|
2397
2454
|
var _a;
|
|
@@ -2401,6 +2458,11 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
2401
2458
|
$members$: compactMeta[2],
|
|
2402
2459
|
$listeners$: compactMeta[3],
|
|
2403
2460
|
};
|
|
2461
|
+
// Check if we are using slots outside the shadow DOM in this component.
|
|
2462
|
+
// We'll use this information later to add styles for `slot-fb` elements
|
|
2463
|
+
if (cmpMeta.$flags$ & 4 /* CMP_FLAGS.hasSlotRelocation */) {
|
|
2464
|
+
hasSlotRelocation = true;
|
|
2465
|
+
}
|
|
2404
2466
|
{
|
|
2405
2467
|
cmpMeta.$members$ = compactMeta[2];
|
|
2406
2468
|
}
|
|
@@ -2463,15 +2525,23 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
2463
2525
|
}
|
|
2464
2526
|
});
|
|
2465
2527
|
});
|
|
2528
|
+
// Add styles for `slot-fb` elements if any of our components are using slots outside the Shadow DOM
|
|
2529
|
+
if (hasSlotRelocation) {
|
|
2530
|
+
dataStyles.innerHTML += SLOT_FB_CSS;
|
|
2531
|
+
}
|
|
2532
|
+
// Add hydration styles
|
|
2466
2533
|
{
|
|
2467
|
-
|
|
2468
|
-
|
|
2534
|
+
dataStyles.innerHTML += cmpTags + HYDRATED_CSS;
|
|
2535
|
+
}
|
|
2536
|
+
// If we have styles, add them to the DOM
|
|
2537
|
+
if (dataStyles.innerHTML.length) {
|
|
2538
|
+
dataStyles.setAttribute('data-styles', '');
|
|
2539
|
+
head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);
|
|
2469
2540
|
// Apply CSP nonce to the style tag if it exists
|
|
2470
2541
|
const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
|
|
2471
2542
|
if (nonce != null) {
|
|
2472
|
-
|
|
2543
|
+
dataStyles.setAttribute('nonce', nonce);
|
|
2473
2544
|
}
|
|
2474
|
-
head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);
|
|
2475
2545
|
}
|
|
2476
2546
|
// Process deferred connectedCallbacks now all components have been registered
|
|
2477
2547
|
isBootstrapping = false;
|
|
@@ -2672,7 +2742,7 @@ const flush = () => {
|
|
|
2672
2742
|
}
|
|
2673
2743
|
}
|
|
2674
2744
|
};
|
|
2675
|
-
const nextTick =
|
|
2745
|
+
const nextTick = (cb) => promiseResolve().then(cb);
|
|
2676
2746
|
const readTask = /*@__PURE__*/ queueTask(queueDomReads, false);
|
|
2677
2747
|
const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
|
|
2678
2748
|
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
const index = require('./index-cc7dfb7c.js');
|
|
7
7
|
const hardwareBackButton = require('./hardware-back-button-b67c8e75.js');
|
|
8
8
|
const helpers = require('./helpers-ea4ccbcb.js');
|
|
9
|
-
const ionicGlobal = require('./ionic-global-
|
|
10
|
-
const animation = require('./animation-
|
|
9
|
+
const ionicGlobal = require('./ionic-global-ea2901a3.js');
|
|
10
|
+
const animation = require('./animation-1083855c.js');
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* baseAnimation
|
|
@@ -61,7 +61,6 @@ const findClosestIonContent = (el) => {
|
|
|
61
61
|
* Scrolls to the top of the element. If an `ion-content` is found, it will scroll
|
|
62
62
|
* using the public API `scrollToTop` with a duration.
|
|
63
63
|
*/
|
|
64
|
-
// TODO(FW-2832): type
|
|
65
64
|
const scrollToTop = (el, durationMs) => {
|
|
66
65
|
if (isIonContent(el)) {
|
|
67
66
|
const content = el;
|