@ionic/vue 7.5.2-dev.11697814618.1dc5788d → 7.5.2-dev.11697834896.1fed55cc

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/README.md CHANGED
@@ -40,26 +40,13 @@ cd packages/vue-router && npm install
40
40
  npm run build
41
41
  ````
42
42
 
43
- ### Re-build on changes
44
-
45
- Running `npm run bundle.watch` will cause `@ionic/vue` to be re-compiled whenever the source files change. Note that if you have not yet built the project a full build using `npm run build` must be done prior to running `npm run bundle.watch`.
46
-
47
- ### Linking Local `@ionic/core` Dependency
48
-
49
- Use [npm link](https://docs.npmjs.com/cli/v6/commands/npm-link) to link the local `@ionic/core` output to your local `@ionic/vue`. This allows you to use any `@ionic/core` changes you have made when working on `@ionic/vue`.
50
-
51
- **Linking dependencies only needs to be done once unless you delete or overwrite the `node_modules` directory.**
52
-
53
- Example:
54
-
55
- ```
56
- cd ../../core && npm link
57
- cd ../packages/vue && npm link @ionic/vue
58
- ```
59
-
60
43
  ## Tests
61
44
 
62
- Instructions for testing can be found in the [test directory](test/README.md).
45
+ * E2E Tests are found in the `packages/vue/test/base/tests` directory and use Cypress.
46
+ * When making changes to `@ionic/vue` or `@ionic/vue-router` you can run `npm run sync` in the [test-app directory](test/README.md#syncing-local-changes) to ensure that the test application is using your built changes. Be sure to build in the `vue` and `vue-router` directories first.
47
+ * Tests can be run in headless mode by running `npm run cypress`.
48
+ * If you want to open the Cypress test runner, you can run `node_modules/.bin/cypress open`.
49
+ * Bug fix and feature PRs should have new tests verifying the PR functionality.
63
50
 
64
51
  ## Contributing
65
52
 
package/css/core.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../src/themes/ionic.functions.font.scss","../src/css/core.scss","../src/themes/ionic.mixins.scss","../src/themes/ionic.globals.scss","../src/components/menu/menu.ios.vars.scss","../src/components/menu/menu.md.vars.scss"],"names":[],"mappings":"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","file":"core.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 \"../components/menu/menu.ios.vars\";\n@import \"../components/menu/menu.md.vars\";\n\n// Ionic Font Family\n// --------------------------------------------------\n\nhtml.ios {\n --ion-default-font: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Roboto\", sans-serif;\n}\nhtml.md {\n --ion-default-font: \"Roboto\", \"Helvetica Neue\", sans-serif;\n}\n\nhtml {\n --ion-default-dynamic-font: -apple-system-body;\n --ion-font-family: var(--ion-default-font);\n}\n\nbody {\n background: var(--ion-background-color);\n}\n\nbody.backdrop-no-scroll {\n overflow: hidden;\n}\n\n// Modal - Card Style\n// --------------------------------------------------\n/**\n * Card style modal needs additional padding on the\n * top of the header. We accomplish this by targeting\n * the first toolbar in the header.\n * Footer also needs this. We do not adjust the bottom\n * padding though because of the safe area.\n */\nhtml.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,\nhtml.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,\nhtml.ios ion-modal ion-footer ion-toolbar:first-of-type {\n padding-top: 6px;\n}\n\n/**\n* Card style modal needs additional padding on the\n* bottom of the header. We accomplish this by targeting\n* the last toolbar in the header.\n*/\nhtml.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,\nhtml.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type {\n padding-bottom: 6px;\n}\n\n/**\n* Add padding on the left and right\n* of toolbars while accounting for\n* safe area values when in landscape.\n*/\nhtml.ios ion-modal ion-toolbar {\n padding-right: calc(var(--ion-safe-area-right) + 8px);\n padding-left: calc(var(--ion-safe-area-left) + 8px);\n}\n\n/**\n * Card style modal on iPadOS\n * should only have backdrop on first instance.\n */\n@media screen and (min-width: 768px) {\n html.ios ion-modal.modal-card:first-of-type {\n --backdrop-opacity: 0.18;\n }\n}\n\n/**\n * Subsequent modals should not have a backdrop/box shadow\n * as it will cause the screen to appear to get progressively\n * darker. With Ionic 6, declarative modals made it\n * possible to have multiple non-presented modals in the DOM,\n * so we could no longer rely on ion-modal:first-of-type.\n * Here we disable the opacity/box-shadow for every modal\n * that comes after the first presented modal.\n *\n * Note: ion-modal:not(.overlay-hidden):first-of-type\n * does not match the first modal to not have\n * the .overlay-hidden class, it will match the\n * first modal in general only if it does not\n * have the .overlay-hidden class.\n * The :nth-child() pseudo-class has support\n * for selectors which would help us here. At the\n * time of writing it does not have great cross browser\n * support.\n *\n * Note 2: This should only apply to non-card and\n * non-sheet modals. Card and sheet modals have their\n * own criteria for displaying backdrops/box shadows.\n *\n * Do not use :not(.overlay-hidden) in place of\n * .show-modal because that triggers a memory\n * leak in Blink: https://bugs.chromium.org/p/chromium/issues/detail?id=1418768\n */\nion-modal.modal-default.show-modal ~ ion-modal.modal-default {\n --backdrop-opacity: 0;\n --box-shadow: none;\n}\n\n/**\n * This works around a bug in WebKit where the\n * content will overflow outside of the bottom border\n * radius when re-painting. As long as a single\n * border radius value is set on .ion-page, this\n * issue does not happen. We set the top left radius\n * here because the top left corner will always have a\n * radius no matter the platform.\n * This behavior only applies to card modals.\n */\nhtml.ios ion-modal.modal-card .ion-page {\n border-top-left-radius: var(--border-radius);\n}\n\n// Ionic Colors\n// --------------------------------------------------\n// Generates the color classes and variables based on the\n// colors map\n\n@mixin generate-color($color-name) {\n $value: map-get($colors, $color-name);\n\n $base: map-get($value, base);\n $contrast: map-get($value, contrast);\n $shade: map-get($value, shade);\n $tint: map-get($value, tint);\n\n --ion-color-base: var(--ion-color-#{$color-name}, #{$base}) !important;\n --ion-color-base-rgb: var(--ion-color-#{$color-name}-rgb, #{color-to-rgb-list($base)}) !important;\n --ion-color-contrast: var(--ion-color-#{$color-name}-contrast, #{$contrast}) !important;\n --ion-color-contrast-rgb: var(--ion-color-#{$color-name}-contrast-rgb, #{color-to-rgb-list($contrast)}) !important;\n --ion-color-shade: var(--ion-color-#{$color-name}-shade, #{$shade}) !important;\n --ion-color-tint: var(--ion-color-#{$color-name}-tint, #{$tint}) !important;\n}\n\n@each $color-name, $value in $colors {\n .ion-color-#{$color-name} {\n @include generate-color($color-name);\n }\n}\n\n\n// Page Container Structure\n// --------------------------------------------------\n\n.ion-page {\n @include position(0, 0, 0, 0);\n\n display: flex;\n position: absolute;\n\n flex-direction: column;\n justify-content: space-between;\n\n contain: layout size style;\n z-index: $z-index-page-container;\n}\n\n/**\n * When making custom dialogs, using\n * ion-content is not required. As a result,\n * some developers may wish to have dialogs\n * that are automatically sized by the browser.\n * These changes allow certain dimension values\n * such as fit-content to work correctly.\n */\nion-modal > .ion-page {\n position: relative;\n\n contain: layout style;\n\n height: 100%;\n}\n\n.split-pane-visible > .ion-page.split-pane-main {\n position: relative;\n}\n\nion-route,\nion-route-redirect,\nion-router,\nion-select-option,\nion-nav-controller,\nion-menu-controller,\nion-action-sheet-controller,\nion-alert-controller,\nion-loading-controller,\nion-modal-controller,\nion-picker-controller,\nion-popover-controller,\nion-toast-controller,\n.ion-page-hidden {\n /* stylelint-disable-next-line declaration-no-important */\n display: none !important;\n}\n\n.ion-page-invisible {\n opacity: 0;\n}\n\n.can-go-back > ion-header ion-back-button {\n display: block;\n}\n\n\n// Ionic Safe Margins\n// --------------------------------------------------\n\nhtml.plt-ios.plt-hybrid, html.plt-ios.plt-pwa {\n --ion-statusbar-padding: 20px;\n}\n\n@supports (padding-top: 20px) {\n html {\n --ion-safe-area-top: var(--ion-statusbar-padding);\n }\n}\n\n// TODO: remove once Safari 11.2 is no longer supported\n@supports (padding-top: constant(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: constant(safe-area-inset-top);\n --ion-safe-area-bottom: constant(safe-area-inset-bottom);\n --ion-safe-area-left: constant(safe-area-inset-left);\n --ion-safe-area-right: constant(safe-area-inset-right);\n }\n}\n\n@supports (padding-top: env(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: env(safe-area-inset-top);\n --ion-safe-area-bottom: env(safe-area-inset-bottom);\n --ion-safe-area-left: env(safe-area-inset-left);\n --ion-safe-area-right: env(safe-area-inset-right);\n }\n}\n\n\n// Global Card Styles\n// --------------------------------------------------\n\nion-card.ion-color .ion-inherit-color,\nion-card-header.ion-color .ion-inherit-color {\n color: inherit;\n}\n\n\n// Menu Styles\n// --------------------------------------------------\n\n.menu-content {\n @include transform(translate3d(0, 0, 0));\n}\n\n.menu-content-open {\n cursor: pointer;\n touch-action: manipulation;\n\n // the containing element itself should be clickable but\n // everything inside of it should not clickable when menu is open\n pointer-events: none;\n}\n\n.ios .menu-content-reveal {\n box-shadow: $menu-ios-box-shadow-reveal;\n}\n\n[dir=rtl].ios .menu-content-reveal {\n box-shadow: $menu-ios-box-shadow-reveal-rtl;\n}\n\n.ios .menu-content-push {\n box-shadow: $menu-ios-box-shadow-push;\n}\n\n.md .menu-content-reveal {\n box-shadow: $menu-md-box-shadow;\n}\n\n.md .menu-content-push {\n box-shadow: $menu-md-box-shadow;\n}\n\n// Accordion Styles\nion-accordion-group.accordion-group-expand-inset > ion-accordion:first-of-type {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n}\nion-accordion-group.accordion-group-expand-inset > ion-accordion:last-of-type {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n}\nion-accordion-group > ion-accordion:last-of-type ion-item[slot=\"header\"] {\n --border-width: 0px;\n}\n\nion-accordion.accordion-animated > [slot=\"header\"] .ion-accordion-toggle-icon {\n transition: 300ms transform cubic-bezier(0.25, 0.8, 0.5, 1);\n}\n\n@media (prefers-reduced-motion: reduce) {\n ion-accordion .ion-accordion-toggle-icon {\n /* stylelint-disable declaration-no-important */\n transition: none !important;\n }\n}\n/**\n * The > [slot=\"header\"] selector ensures that we do\n * not modify toggle icons for any nested accordions. The state\n * of one accordion should not affect any accordions inside\n * of a nested accordion group.\n */\nion-accordion.accordion-expanding > [slot=\"header\"] .ion-accordion-toggle-icon,\nion-accordion.accordion-expanded > [slot=\"header\"] .ion-accordion-toggle-icon {\n transform: rotate(180deg);\n}\n\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-previous ion-item[slot=\"header\"] {\n --border-width: 0px;\n --inner-border-width: 0px;\n}\n\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanding:first-of-type,\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanded:first-of-type {\n margin-top: 0;\n}\n\n// Safari/iOS 15 changes the appearance of input[type=\"date\"].\n// For backwards compatibility from Ionic 5/Safari 14 designs,\n// we override the appearance only when using within an ion-input.\nion-input input::-webkit-date-and-time-value {\n text-align: start;\n}\n\n/**\n * The .ion-datetime-button-overlay class contains\n * styles that allow any modal/popover to be\n * sized according to the dimensions of the datetime\n * when used with ion-datetime-button.\n */\n.ion-datetime-button-overlay {\n --width: fit-content;\n --height: fit-content;\n}\n\n/**\n * The grid variant can scale down when inline.\n * When used in a `fit-content` overlay, this causes\n * the overlay to shrink when the month/year picker is open.\n * Explicitly setting the dimensions lets us have a consistently\n * sized grid interface.\n */\n.ion-datetime-button-overlay ion-datetime.datetime-grid {\n width: 320px;\n min-height: 320px;\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","\n// Global Utility Functions\n@import \"./ionic.functions.string\";\n\n// Global Color Functions\n@import \"./ionic.functions.color\";\n\n// Global Font Functions\n@import \"./ionic.functions.font\";\n\n// Global Mixins\n@import \"./ionic.mixins\";\n\n// Default Theme\n@import \"./ionic.theme.default\";\n\n\n// Default General\n// --------------------------------------------------\n$font-family-base: var(--ion-font-family, inherit) !default;\n\n// Hairlines width\n$hairlines-width: .55px !default;\n\n// The minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries\n$screen-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n// Input placeholder opacity\n// Ensures that the placeholder has the\n// correct color contrast against the background.\n$placeholder-opacity: 0.6 !default;\n\n$form-control-label-margin: 16px !default;\n\n// How much the stacked labels should be scaled by\n/// The value 0.75 is used to match the MD spec.\n/// iOS does not have a floating label design spec, so we standardize on 0.75.\n$form-control-label-stacked-scale: 0.75 !default;\n\n\n// Z-Index\n// --------------------------------------------------\n// Grouped by elements which would be siblings\n\n$z-index-menu-overlay: 1000;\n$z-index-overlay: 1001;\n\n$z-index-fixed-content: 999;\n$z-index-refresher: -1;\n\n$z-index-page-container: 0;\n$z-index-toolbar: 10;\n$z-index-toolbar-background: -1;\n$z-index-toolbar-buttons: 99;\n\n$z-index-backdrop: 2;\n$z-index-overlay-wrapper: 10;\n\n$z-index-item-options: 1;\n$z-index-item-input: 2;\n$z-index-item-divider: 100;\n\n$z-index-reorder-selected: 100;\n","@import \"../../themes/ionic.globals.ios\";\n\n// iOS Menu\n// --------------------------------------------------\n\n/// @prop - Box shadow color of the menu\n$menu-ios-box-shadow-color: rgba(0, 0, 0, .08) !default;\n\n/// @prop - Box shadow of the menu\n$menu-ios-box-shadow: -8px 0 42px $menu-ios-box-shadow-color !default;\n\n/// @prop - Box shadow of the menu in rtl mode\n$menu-ios-box-shadow-rtl: 8px 0 42px $menu-ios-box-shadow-color !default;\n\n/// @prop - Box shadow of the reveal menu\n$menu-ios-box-shadow-reveal: $menu-ios-box-shadow !default;\n\n/// @prop - Box shadow of the reveal menu\n$menu-ios-box-shadow-reveal-rtl: $menu-ios-box-shadow-rtl !default;\n\n/// @prop - Box shadow of the push menu\n$menu-ios-box-shadow-push: null !default;\n\n/// @prop - Box shadow of the overlay menu\n$menu-ios-box-shadow-overlay: null !default;\n","@import \"../../themes/ionic.globals.md\";\n\n// Material Design Menu\n// --------------------------------------------------\n\n/// @prop - Box shadow of the menu\n$menu-md-box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18) !default;\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../src/themes/ionic.functions.font.scss","../src/css/core.scss","../src/themes/ionic.mixins.scss","../src/themes/ionic.globals.scss","../src/components/menu/menu.ios.vars.scss","../src/components/menu/menu.md.vars.scss"],"names":[],"mappings":"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","file":"core.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 \"../components/menu/menu.ios.vars\";\n@import \"../components/menu/menu.md.vars\";\n\n// Ionic Font Family\n// --------------------------------------------------\n\nhtml.ios {\n --ion-default-font: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Roboto\", sans-serif;\n}\nhtml.md {\n --ion-default-font: \"Roboto\", \"Helvetica Neue\", sans-serif;\n}\n\nhtml {\n --ion-default-dynamic-font: -apple-system-body;\n --ion-font-family: var(--ion-default-font);\n}\n\nbody {\n background: var(--ion-background-color);\n}\n\nbody.backdrop-no-scroll {\n overflow: hidden;\n}\n\n// Modal - Card Style\n// --------------------------------------------------\n/**\n * Card style modal needs additional padding on the\n * top of the header. We accomplish this by targeting\n * the first toolbar in the header.\n * Footer also needs this. We do not adjust the bottom\n * padding though because of the safe area.\n */\nhtml.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,\nhtml.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,\nhtml.ios ion-modal ion-footer ion-toolbar:first-of-type {\n padding-top: 6px;\n}\n\n/**\n* Card style modal needs additional padding on the\n* bottom of the header. We accomplish this by targeting\n* the last toolbar in the header.\n*/\nhtml.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,\nhtml.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type {\n padding-bottom: 6px;\n}\n\n/**\n* Add padding on the left and right\n* of toolbars while accounting for\n* safe area values when in landscape.\n*/\nhtml.ios ion-modal ion-toolbar {\n padding-right: calc(var(--ion-safe-area-right) + 8px);\n padding-left: calc(var(--ion-safe-area-left) + 8px);\n}\n\n/**\n * Card style modal on iPadOS\n * should only have backdrop on first instance.\n */\n@media screen and (min-width: 768px) {\n html.ios ion-modal.modal-card:first-of-type {\n --backdrop-opacity: 0.18;\n }\n}\n\n/**\n * Subsequent modals should not have a backdrop/box shadow\n * as it will cause the screen to appear to get progressively\n * darker. With Ionic 6, declarative modals made it\n * possible to have multiple non-presented modals in the DOM,\n * so we could no longer rely on ion-modal:first-of-type.\n * Here we disable the opacity/box-shadow for every modal\n * that comes after the first presented modal.\n *\n * Note: ion-modal:not(.overlay-hidden):first-of-type\n * does not match the first modal to not have\n * the .overlay-hidden class, it will match the\n * first modal in general only if it does not\n * have the .overlay-hidden class.\n * The :nth-child() pseudo-class has support\n * for selectors which would help us here. At the\n * time of writing it does not have great cross browser\n * support.\n *\n * Note 2: This should only apply to non-card and\n * non-sheet modals. Card and sheet modals have their\n * own criteria for displaying backdrops/box shadows.\n *\n * Do not use :not(.overlay-hidden) in place of\n * .show-modal because that triggers a memory\n * leak in Blink: https://bugs.chromium.org/p/chromium/issues/detail?id=1418768\n */\nion-modal.modal-default.show-modal ~ ion-modal.modal-default {\n --backdrop-opacity: 0;\n --box-shadow: none;\n}\n\n/**\n * This works around a bug in WebKit where the\n * content will overflow outside of the bottom border\n * radius when re-painting. As long as a single\n * border radius value is set on .ion-page, this\n * issue does not happen. We set the top left radius\n * here because the top left corner will always have a\n * radius no matter the platform.\n * This behavior only applies to card modals.\n */\nhtml.ios ion-modal.modal-card .ion-page {\n border-top-left-radius: var(--border-radius);\n}\n\n// Ionic Colors\n// --------------------------------------------------\n// Generates the color classes and variables based on the\n// colors map\n\n@mixin generate-color($color-name) {\n $value: map-get($colors, $color-name);\n\n $base: map-get($value, base);\n $contrast: map-get($value, contrast);\n $shade: map-get($value, shade);\n $tint: map-get($value, tint);\n\n --ion-color-base: var(--ion-color-#{$color-name}, #{$base}) !important;\n --ion-color-base-rgb: var(--ion-color-#{$color-name}-rgb, #{color-to-rgb-list($base)}) !important;\n --ion-color-contrast: var(--ion-color-#{$color-name}-contrast, #{$contrast}) !important;\n --ion-color-contrast-rgb: var(--ion-color-#{$color-name}-contrast-rgb, #{color-to-rgb-list($contrast)}) !important;\n --ion-color-shade: var(--ion-color-#{$color-name}-shade, #{$shade}) !important;\n --ion-color-tint: var(--ion-color-#{$color-name}-tint, #{$tint}) !important;\n}\n\n@each $color-name, $value in $colors {\n .ion-color-#{$color-name} {\n @include generate-color($color-name);\n }\n}\n\n\n// Page Container Structure\n// --------------------------------------------------\n\n.ion-page {\n @include position(0, 0, 0, 0);\n\n display: flex;\n position: absolute;\n\n flex-direction: column;\n justify-content: space-between;\n\n contain: layout size style;\n z-index: $z-index-page-container;\n}\n\n/**\n * When making custom dialogs, using\n * ion-content is not required. As a result,\n * some developers may wish to have dialogs\n * that are automatically sized by the browser.\n * These changes allow certain dimension values\n * such as fit-content to work correctly.\n */\nion-modal > .ion-page {\n position: relative;\n\n contain: layout style;\n\n height: 100%;\n}\n\n.split-pane-visible > .ion-page.split-pane-main {\n position: relative;\n}\n\nion-route,\nion-route-redirect,\nion-router,\nion-select-option,\nion-nav-controller,\nion-menu-controller,\nion-action-sheet-controller,\nion-alert-controller,\nion-loading-controller,\nion-modal-controller,\nion-picker-controller,\nion-popover-controller,\nion-toast-controller,\n.ion-page-hidden {\n /* stylelint-disable-next-line declaration-no-important */\n display: none !important;\n}\n\n.ion-page-invisible {\n opacity: 0;\n}\n\n.can-go-back > ion-header ion-back-button {\n display: block;\n}\n\n\n// Ionic Safe Margins\n// --------------------------------------------------\n\nhtml.plt-ios.plt-hybrid, html.plt-ios.plt-pwa {\n --ion-statusbar-padding: 20px;\n}\n\n@supports (padding-top: 20px) {\n html {\n --ion-safe-area-top: var(--ion-statusbar-padding);\n }\n}\n\n// TODO: remove once Safari 11.2 is no longer supported\n@supports (padding-top: constant(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: constant(safe-area-inset-top);\n --ion-safe-area-bottom: constant(safe-area-inset-bottom);\n --ion-safe-area-left: constant(safe-area-inset-left);\n --ion-safe-area-right: constant(safe-area-inset-right);\n }\n}\n\n@supports (padding-top: env(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: env(safe-area-inset-top);\n --ion-safe-area-bottom: env(safe-area-inset-bottom);\n --ion-safe-area-left: env(safe-area-inset-left);\n --ion-safe-area-right: env(safe-area-inset-right);\n }\n}\n\n\n// Global Card Styles\n// --------------------------------------------------\n\nion-card.ion-color .ion-inherit-color,\nion-card-header.ion-color .ion-inherit-color {\n color: inherit;\n}\n\n\n// Menu Styles\n// --------------------------------------------------\n\n.menu-content {\n @include transform(translate3d(0, 0, 0));\n}\n\n.menu-content-open {\n cursor: pointer;\n touch-action: manipulation;\n\n // the containing element itself should be clickable but\n // everything inside of it should not clickable when menu is open\n pointer-events: none;\n}\n\n.ios .menu-content-reveal {\n box-shadow: $menu-ios-box-shadow-reveal;\n}\n\n[dir=rtl].ios .menu-content-reveal {\n box-shadow: $menu-ios-box-shadow-reveal-rtl;\n}\n\n.ios .menu-content-push {\n box-shadow: $menu-ios-box-shadow-push;\n}\n\n.md .menu-content-reveal {\n box-shadow: $menu-md-box-shadow;\n}\n\n.md .menu-content-push {\n box-shadow: $menu-md-box-shadow;\n}\n\n// Accordion Styles\nion-accordion-group.accordion-group-expand-inset > ion-accordion:first-of-type {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n}\nion-accordion-group.accordion-group-expand-inset > ion-accordion:last-of-type {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n}\nion-accordion-group > ion-accordion:last-of-type ion-item[slot=\"header\"] {\n --border-width: 0px;\n}\n\nion-accordion.accordion-animated > [slot=\"header\"] .ion-accordion-toggle-icon {\n transition: 300ms transform cubic-bezier(0.25, 0.8, 0.5, 1);\n}\n\n@media (prefers-reduced-motion: reduce) {\n ion-accordion .ion-accordion-toggle-icon {\n /* stylelint-disable declaration-no-important */\n transition: none !important;\n }\n}\n/**\n * The > [slot=\"header\"] selector ensures that we do\n * not modify toggle icons for any nested accordions. The state\n * of one accordion should not affect any accordions inside\n * of a nested accordion group.\n */\nion-accordion.accordion-expanding > [slot=\"header\"] .ion-accordion-toggle-icon,\nion-accordion.accordion-expanded > [slot=\"header\"] .ion-accordion-toggle-icon {\n transform: rotate(180deg);\n}\n\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-previous ion-item[slot=\"header\"] {\n --border-width: 0px;\n --inner-border-width: 0px;\n}\n\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanding:first-of-type,\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanded:first-of-type {\n margin-top: 0;\n}\n\n// Safari/iOS 15 changes the appearance of input[type=\"date\"].\n// For backwards compatibility from Ionic 5/Safari 14 designs,\n// we override the appearance only when using within an ion-input.\nion-input input::-webkit-date-and-time-value {\n text-align: start;\n}\n\n/**\n * The .ion-datetime-button-overlay class contains\n * styles that allow any modal/popover to be\n * sized according to the dimensions of the datetime\n * when used with ion-datetime-button.\n */\n.ion-datetime-button-overlay {\n --width: fit-content;\n --height: fit-content;\n}\n\n/**\n * The grid variant can scale down when inline.\n * When used in a `fit-content` overlay, this causes\n * the overlay to shrink when the month/year picker is open.\n * Explicitly setting the dimensions lets us have a consistently\n * sized grid interface.\n */\n.ion-datetime-button-overlay ion-datetime.datetime-grid {\n width: 320px;\n min-height: 320px;\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","\n// Global Utility Functions\n@import \"./ionic.functions.string\";\n\n// Global Color Functions\n@import \"./ionic.functions.color\";\n\n// Global Font Functions\n@import \"./ionic.functions.font\";\n\n// Global Mixins\n@import \"./ionic.mixins\";\n\n// Default Theme\n@import \"./ionic.theme.default\";\n\n\n// Default General\n// --------------------------------------------------\n$font-family-base: var(--ion-font-family, inherit) !default;\n\n// Global app direction\n$app-direction: null !default;\n\n// Hairlines width\n$hairlines-width: .55px !default;\n\n// The minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries\n$screen-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n// Input placeholder opacity\n// Ensures that the placeholder has the\n// correct color contrast against the background.\n$placeholder-opacity: 0.6 !default;\n\n$form-control-label-margin: 16px !default;\n\n// How much the stacked labels should be scaled by\n/// The value 0.75 is used to match the MD spec.\n/// iOS does not have a floating label design spec, so we standardize on 0.75.\n$form-control-label-stacked-scale: 0.75 !default;\n\n\n// Z-Index\n// --------------------------------------------------\n// Grouped by elements which would be siblings\n\n$z-index-menu-overlay: 1000;\n$z-index-overlay: 1001;\n$z-index-click-block: 99999;\n\n$z-index-fixed-content: 999;\n$z-index-scroll-content: 1;\n$z-index-refresher: -1;\n\n$z-index-page-container: 0;\n$z-index-toolbar: 10;\n$z-index-toolbar-background: -1;\n$z-index-toolbar-buttons: 99;\n\n$z-index-backdrop: 2;\n$z-index-overlay-wrapper: 10;\n\n$z-index-item-options: 1;\n$z-index-item-input: 2;\n$z-index-item-divider: 100;\n\n$z-index-reorder-selected: 100;\n","@import \"../../themes/ionic.globals.ios\";\n\n// iOS Menu\n// --------------------------------------------------\n\n/// @prop - Background of the menu\n$menu-ios-background: $background-color !default;\n\n/// @prop - Box shadow color of the menu\n$menu-ios-box-shadow-color: rgba(0, 0, 0, .08) !default;\n\n/// @prop - Box shadow of the menu\n$menu-ios-box-shadow: -8px 0 42px $menu-ios-box-shadow-color !default;\n\n/// @prop - Box shadow of the menu in rtl mode\n$menu-ios-box-shadow-rtl: 8px 0 42px $menu-ios-box-shadow-color !default;\n\n/// @prop - Box shadow of the reveal menu\n$menu-ios-box-shadow-reveal: $menu-ios-box-shadow !default;\n\n/// @prop - Box shadow of the reveal menu\n$menu-ios-box-shadow-reveal-rtl: $menu-ios-box-shadow-rtl !default;\n\n/// @prop - Box shadow of the push menu\n$menu-ios-box-shadow-push: null !default;\n\n/// @prop - Box shadow of the overlay menu\n$menu-ios-box-shadow-overlay: null !default;\n","@import \"../../themes/ionic.globals.md\";\n\n// Material Design Menu\n// --------------------------------------------------\n\n/// @prop - Background of the menu\n$menu-md-background: $background-color !default;\n\n/// @prop - Box shadow of the menu\n$menu-md-box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18) !default;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../src/themes/ionic.functions.font.scss","../src/css/core.scss","../src/themes/ionic.mixins.scss","../src/themes/ionic.globals.scss","../src/components/menu/menu.ios.vars.scss","../src/components/menu/menu.md.vars.scss","../src/css/normalize.scss","../src/css/structure.scss","../src/css/typography.scss","../src/css/padding.scss","../src/css/float-elements.scss","../src/css/text-alignment.scss","../src/css/text-transformation.scss","../src/css/flex-utils.scss","../src/css/display.scss"],"names":[],"mappings":"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","file":"ionic.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 \"../components/menu/menu.ios.vars\";\n@import \"../components/menu/menu.md.vars\";\n\n// Ionic Font Family\n// --------------------------------------------------\n\nhtml.ios {\n --ion-default-font: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Roboto\", sans-serif;\n}\nhtml.md {\n --ion-default-font: \"Roboto\", \"Helvetica Neue\", sans-serif;\n}\n\nhtml {\n --ion-default-dynamic-font: -apple-system-body;\n --ion-font-family: var(--ion-default-font);\n}\n\nbody {\n background: var(--ion-background-color);\n}\n\nbody.backdrop-no-scroll {\n overflow: hidden;\n}\n\n// Modal - Card Style\n// --------------------------------------------------\n/**\n * Card style modal needs additional padding on the\n * top of the header. We accomplish this by targeting\n * the first toolbar in the header.\n * Footer also needs this. We do not adjust the bottom\n * padding though because of the safe area.\n */\nhtml.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,\nhtml.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,\nhtml.ios ion-modal ion-footer ion-toolbar:first-of-type {\n padding-top: 6px;\n}\n\n/**\n* Card style modal needs additional padding on the\n* bottom of the header. We accomplish this by targeting\n* the last toolbar in the header.\n*/\nhtml.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,\nhtml.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type {\n padding-bottom: 6px;\n}\n\n/**\n* Add padding on the left and right\n* of toolbars while accounting for\n* safe area values when in landscape.\n*/\nhtml.ios ion-modal ion-toolbar {\n padding-right: calc(var(--ion-safe-area-right) + 8px);\n padding-left: calc(var(--ion-safe-area-left) + 8px);\n}\n\n/**\n * Card style modal on iPadOS\n * should only have backdrop on first instance.\n */\n@media screen and (min-width: 768px) {\n html.ios ion-modal.modal-card:first-of-type {\n --backdrop-opacity: 0.18;\n }\n}\n\n/**\n * Subsequent modals should not have a backdrop/box shadow\n * as it will cause the screen to appear to get progressively\n * darker. With Ionic 6, declarative modals made it\n * possible to have multiple non-presented modals in the DOM,\n * so we could no longer rely on ion-modal:first-of-type.\n * Here we disable the opacity/box-shadow for every modal\n * that comes after the first presented modal.\n *\n * Note: ion-modal:not(.overlay-hidden):first-of-type\n * does not match the first modal to not have\n * the .overlay-hidden class, it will match the\n * first modal in general only if it does not\n * have the .overlay-hidden class.\n * The :nth-child() pseudo-class has support\n * for selectors which would help us here. At the\n * time of writing it does not have great cross browser\n * support.\n *\n * Note 2: This should only apply to non-card and\n * non-sheet modals. Card and sheet modals have their\n * own criteria for displaying backdrops/box shadows.\n *\n * Do not use :not(.overlay-hidden) in place of\n * .show-modal because that triggers a memory\n * leak in Blink: https://bugs.chromium.org/p/chromium/issues/detail?id=1418768\n */\nion-modal.modal-default.show-modal ~ ion-modal.modal-default {\n --backdrop-opacity: 0;\n --box-shadow: none;\n}\n\n/**\n * This works around a bug in WebKit where the\n * content will overflow outside of the bottom border\n * radius when re-painting. As long as a single\n * border radius value is set on .ion-page, this\n * issue does not happen. We set the top left radius\n * here because the top left corner will always have a\n * radius no matter the platform.\n * This behavior only applies to card modals.\n */\nhtml.ios ion-modal.modal-card .ion-page {\n border-top-left-radius: var(--border-radius);\n}\n\n// Ionic Colors\n// --------------------------------------------------\n// Generates the color classes and variables based on the\n// colors map\n\n@mixin generate-color($color-name) {\n $value: map-get($colors, $color-name);\n\n $base: map-get($value, base);\n $contrast: map-get($value, contrast);\n $shade: map-get($value, shade);\n $tint: map-get($value, tint);\n\n --ion-color-base: var(--ion-color-#{$color-name}, #{$base}) !important;\n --ion-color-base-rgb: var(--ion-color-#{$color-name}-rgb, #{color-to-rgb-list($base)}) !important;\n --ion-color-contrast: var(--ion-color-#{$color-name}-contrast, #{$contrast}) !important;\n --ion-color-contrast-rgb: var(--ion-color-#{$color-name}-contrast-rgb, #{color-to-rgb-list($contrast)}) !important;\n --ion-color-shade: var(--ion-color-#{$color-name}-shade, #{$shade}) !important;\n --ion-color-tint: var(--ion-color-#{$color-name}-tint, #{$tint}) !important;\n}\n\n@each $color-name, $value in $colors {\n .ion-color-#{$color-name} {\n @include generate-color($color-name);\n }\n}\n\n\n// Page Container Structure\n// --------------------------------------------------\n\n.ion-page {\n @include position(0, 0, 0, 0);\n\n display: flex;\n position: absolute;\n\n flex-direction: column;\n justify-content: space-between;\n\n contain: layout size style;\n z-index: $z-index-page-container;\n}\n\n/**\n * When making custom dialogs, using\n * ion-content is not required. As a result,\n * some developers may wish to have dialogs\n * that are automatically sized by the browser.\n * These changes allow certain dimension values\n * such as fit-content to work correctly.\n */\nion-modal > .ion-page {\n position: relative;\n\n contain: layout style;\n\n height: 100%;\n}\n\n.split-pane-visible > .ion-page.split-pane-main {\n position: relative;\n}\n\nion-route,\nion-route-redirect,\nion-router,\nion-select-option,\nion-nav-controller,\nion-menu-controller,\nion-action-sheet-controller,\nion-alert-controller,\nion-loading-controller,\nion-modal-controller,\nion-picker-controller,\nion-popover-controller,\nion-toast-controller,\n.ion-page-hidden {\n /* stylelint-disable-next-line declaration-no-important */\n display: none !important;\n}\n\n.ion-page-invisible {\n opacity: 0;\n}\n\n.can-go-back > ion-header ion-back-button {\n display: block;\n}\n\n\n// Ionic Safe Margins\n// --------------------------------------------------\n\nhtml.plt-ios.plt-hybrid, html.plt-ios.plt-pwa {\n --ion-statusbar-padding: 20px;\n}\n\n@supports (padding-top: 20px) {\n html {\n --ion-safe-area-top: var(--ion-statusbar-padding);\n }\n}\n\n// TODO: remove once Safari 11.2 is no longer supported\n@supports (padding-top: constant(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: constant(safe-area-inset-top);\n --ion-safe-area-bottom: constant(safe-area-inset-bottom);\n --ion-safe-area-left: constant(safe-area-inset-left);\n --ion-safe-area-right: constant(safe-area-inset-right);\n }\n}\n\n@supports (padding-top: env(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: env(safe-area-inset-top);\n --ion-safe-area-bottom: env(safe-area-inset-bottom);\n --ion-safe-area-left: env(safe-area-inset-left);\n --ion-safe-area-right: env(safe-area-inset-right);\n }\n}\n\n\n// Global Card Styles\n// --------------------------------------------------\n\nion-card.ion-color .ion-inherit-color,\nion-card-header.ion-color .ion-inherit-color {\n color: inherit;\n}\n\n\n// Menu Styles\n// --------------------------------------------------\n\n.menu-content {\n @include transform(translate3d(0, 0, 0));\n}\n\n.menu-content-open {\n cursor: pointer;\n touch-action: manipulation;\n\n // the containing element itself should be clickable but\n // everything inside of it should not clickable when menu is open\n pointer-events: none;\n}\n\n.ios .menu-content-reveal {\n box-shadow: $menu-ios-box-shadow-reveal;\n}\n\n[dir=rtl].ios .menu-content-reveal {\n box-shadow: $menu-ios-box-shadow-reveal-rtl;\n}\n\n.ios .menu-content-push {\n box-shadow: $menu-ios-box-shadow-push;\n}\n\n.md .menu-content-reveal {\n box-shadow: $menu-md-box-shadow;\n}\n\n.md .menu-content-push {\n box-shadow: $menu-md-box-shadow;\n}\n\n// Accordion Styles\nion-accordion-group.accordion-group-expand-inset > ion-accordion:first-of-type {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n}\nion-accordion-group.accordion-group-expand-inset > ion-accordion:last-of-type {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n}\nion-accordion-group > ion-accordion:last-of-type ion-item[slot=\"header\"] {\n --border-width: 0px;\n}\n\nion-accordion.accordion-animated > [slot=\"header\"] .ion-accordion-toggle-icon {\n transition: 300ms transform cubic-bezier(0.25, 0.8, 0.5, 1);\n}\n\n@media (prefers-reduced-motion: reduce) {\n ion-accordion .ion-accordion-toggle-icon {\n /* stylelint-disable declaration-no-important */\n transition: none !important;\n }\n}\n/**\n * The > [slot=\"header\"] selector ensures that we do\n * not modify toggle icons for any nested accordions. The state\n * of one accordion should not affect any accordions inside\n * of a nested accordion group.\n */\nion-accordion.accordion-expanding > [slot=\"header\"] .ion-accordion-toggle-icon,\nion-accordion.accordion-expanded > [slot=\"header\"] .ion-accordion-toggle-icon {\n transform: rotate(180deg);\n}\n\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-previous ion-item[slot=\"header\"] {\n --border-width: 0px;\n --inner-border-width: 0px;\n}\n\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanding:first-of-type,\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanded:first-of-type {\n margin-top: 0;\n}\n\n// Safari/iOS 15 changes the appearance of input[type=\"date\"].\n// For backwards compatibility from Ionic 5/Safari 14 designs,\n// we override the appearance only when using within an ion-input.\nion-input input::-webkit-date-and-time-value {\n text-align: start;\n}\n\n/**\n * The .ion-datetime-button-overlay class contains\n * styles that allow any modal/popover to be\n * sized according to the dimensions of the datetime\n * when used with ion-datetime-button.\n */\n.ion-datetime-button-overlay {\n --width: fit-content;\n --height: fit-content;\n}\n\n/**\n * The grid variant can scale down when inline.\n * When used in a `fit-content` overlay, this causes\n * the overlay to shrink when the month/year picker is open.\n * Explicitly setting the dimensions lets us have a consistently\n * sized grid interface.\n */\n.ion-datetime-button-overlay ion-datetime.datetime-grid {\n width: 320px;\n min-height: 320px;\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","\n// Global Utility Functions\n@import \"./ionic.functions.string\";\n\n// Global Color Functions\n@import \"./ionic.functions.color\";\n\n// Global Font Functions\n@import \"./ionic.functions.font\";\n\n// Global Mixins\n@import \"./ionic.mixins\";\n\n// Default Theme\n@import \"./ionic.theme.default\";\n\n\n// Default General\n// --------------------------------------------------\n$font-family-base: var(--ion-font-family, inherit) !default;\n\n// Hairlines width\n$hairlines-width: .55px !default;\n\n// The minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries\n$screen-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n// Input placeholder opacity\n// Ensures that the placeholder has the\n// correct color contrast against the background.\n$placeholder-opacity: 0.6 !default;\n\n$form-control-label-margin: 16px !default;\n\n// How much the stacked labels should be scaled by\n/// The value 0.75 is used to match the MD spec.\n/// iOS does not have a floating label design spec, so we standardize on 0.75.\n$form-control-label-stacked-scale: 0.75 !default;\n\n\n// Z-Index\n// --------------------------------------------------\n// Grouped by elements which would be siblings\n\n$z-index-menu-overlay: 1000;\n$z-index-overlay: 1001;\n\n$z-index-fixed-content: 999;\n$z-index-refresher: -1;\n\n$z-index-page-container: 0;\n$z-index-toolbar: 10;\n$z-index-toolbar-background: -1;\n$z-index-toolbar-buttons: 99;\n\n$z-index-backdrop: 2;\n$z-index-overlay-wrapper: 10;\n\n$z-index-item-options: 1;\n$z-index-item-input: 2;\n$z-index-item-divider: 100;\n\n$z-index-reorder-selected: 100;\n","@import \"../../themes/ionic.globals.ios\";\n\n// iOS Menu\n// --------------------------------------------------\n\n/// @prop - Box shadow color of the menu\n$menu-ios-box-shadow-color: rgba(0, 0, 0, .08) !default;\n\n/// @prop - Box shadow of the menu\n$menu-ios-box-shadow: -8px 0 42px $menu-ios-box-shadow-color !default;\n\n/// @prop - Box shadow of the menu in rtl mode\n$menu-ios-box-shadow-rtl: 8px 0 42px $menu-ios-box-shadow-color !default;\n\n/// @prop - Box shadow of the reveal menu\n$menu-ios-box-shadow-reveal: $menu-ios-box-shadow !default;\n\n/// @prop - Box shadow of the reveal menu\n$menu-ios-box-shadow-reveal-rtl: $menu-ios-box-shadow-rtl !default;\n\n/// @prop - Box shadow of the push menu\n$menu-ios-box-shadow-push: null !default;\n\n/// @prop - Box shadow of the overlay menu\n$menu-ios-box-shadow-overlay: null !default;\n","@import \"../../themes/ionic.globals.md\";\n\n// Material Design Menu\n// --------------------------------------------------\n\n/// @prop - Box shadow of the menu\n$menu-md-box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18) !default;\n","// ! normalize.css v3.0.2 | MIT License | github.com/necolas/normalize.css\n\n\n// HTML5 display definitions\n// ==========================================================================\n\n// 1. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\naudio,\ncanvas,\nprogress,\nvideo {\n vertical-align: baseline; // 1\n}\n\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\naudio:not([controls]) {\n display: none;\n\n height: 0;\n}\n\n\n// Text-level semantics\n// ==========================================================================\n\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\nb,\nstrong {\n font-weight: bold;\n}\n\n// Embedded content\n// ==========================================================================\n\n// Makes it so the img does not flow outside container\nimg {\n max-width: 100%;\n}\n\n// Grouping content\n// ==========================================================================\n\nhr {\n height: 1px;\n\n border-width: 0;\n\n box-sizing: content-box;\n}\n\n// Contain overflow in all browsers.\npre {\n overflow: auto;\n}\n\n// Address odd `em`-unit font size rendering in all browsers.\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n\n// Forms\n// ==========================================================================\n\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nlabel,\ninput,\nselect,\ntextarea {\n font-family: inherit;\n line-height: normal;\n}\n\ntextarea {\n overflow: auto;\n\n height: auto;\n\n font: inherit;\n color: inherit;\n}\n\ntextarea::placeholder {\n padding-left: 2px;\n}\n\nform,\ninput,\noptgroup,\nselect {\n margin: 0; // 3\n\n font: inherit; // 2\n color: inherit; // 1\n}\n\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n cursor: pointer; // 3\n\n -webkit-appearance: button; // 2\n}\n\n// remove 300ms delay\na,\na div,\na span,\na ion-icon,\na ion-label,\nbutton,\nbutton div,\nbutton span,\nbutton ion-icon,\nbutton ion-label,\n.ion-tappable,\n[tappable],\n[tappable] div,\n[tappable] span,\n[tappable] ion-icon,\n[tappable] ion-label,\ninput,\ntextarea {\n touch-action: manipulation;\n}\n\na ion-label,\nbutton ion-label {\n pointer-events: none;\n}\n\nbutton {\n padding: 0;\n border: 0;\n border-radius: 0;\n font-family: inherit;\n font-style: inherit;\n font-variant: inherit;\n line-height: 1;\n text-transform: none;\n cursor: pointer;\n\n -webkit-appearance: button;\n}\n\n[tappable] {\n cursor: pointer;\n}\n\n// Re-set default cursor for disabled elements.\na[disabled],\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n// Remove inner padding and border in Firefox 4+.\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n\n border: 0;\n}\n\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n\n// Tables\n// ==========================================================================//\n\n// Remove most spacing between table cells.\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n\n// Structure\n// --------------------------------------------------\n// Adds structural css to the native html elements\n\n* {\n box-sizing: border-box;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n\nhtml {\n width: 100%;\n height: 100%;\n -webkit-text-size-adjust: 100%;\n\n text-size-adjust: 100%;\n}\n\nhtml:not(.hydrated) body {\n display: none;\n}\n\nhtml.ion-ce body {\n display: block;\n}\n\nhtml.plt-pwa {\n height: 100vh;\n}\n\nbody {\n @include font-smoothing();\n @include margin(0);\n @include padding(0);\n\n position: fixed;\n\n width: 100%;\n max-width: 100%;\n height: 100%;\n max-height: 100%;\n\n /**\n * Because body has position: fixed,\n * it should be promoted to its own\n * layer.\n *\n * WebKit does not always promote\n * the body to its own layer on page\n * load in Ionic apps. Once scrolling on\n * ion-content starts, WebKit will promote\n * body. Unfortunately, this causes a re-paint\n * which results in scrolling being halted\n * until the next user gesture.\n *\n * This impacts the Custom Elements build.\n * The lazy loaded build causes the browser to\n * re-paint during hydration which causes WebKit\n * to promote body to its own layer.\n * In the CE Build, this hydration does not\n * happen, so the additional re-paint does not occur.\n */\n transform: translateZ(0);\n\n text-rendering: optimizeLegibility;\n\n overflow: hidden;\n\n touch-action: manipulation;\n\n -webkit-user-drag: none;\n\n -ms-content-zooming: none;\n\n word-wrap: break-word;\n\n overscroll-behavior-y: none;\n -webkit-text-size-adjust: none;\n\n text-size-adjust: none;\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Typography\n// --------------------------------------------------\n\n/// @prop - Font weight of all headings\n$headings-font-weight: 500 !default;\n\n/// @prop - Line height of all headings\n$headings-line-height: 1.2 !default;\n\n/// @prop - Font size of heading level 1\n$h1-font-size: dynamic-font(26px) !default;\n\n/// @prop - Font size of heading level 2\n$h2-font-size: dynamic-font(24px) !default;\n\n/// @prop - Font size of heading level 3\n$h3-font-size: dynamic-font(22px) !default;\n\n/// @prop - Font size of heading level 4\n$h4-font-size: dynamic-font(20px) !default;\n\n/// @prop - Font size of heading level 5\n$h5-font-size: dynamic-font(18px) !default;\n\n/// @prop - Font size of heading level 6\n$h6-font-size: dynamic-font(16px) !default;\n\nhtml {\n font-family: var(--ion-font-family);\n}\n\n/**\n * Dynamic Type is an iOS-only feature, so\n * this should only be enabled on iOS devices.\n */\n@supports (-webkit-touch-callout: none) {\n html {\n /**\n * Includes fallback if Dynamic Type is not enabled.\n */\n font: var(--ion-dynamic-font, 16px var(--ion-font-family));\n }\n}\n\na {\n background-color: transparent;\n color: ion-color(primary, base);\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n @include margin(16px, null, 10px, null);\n\n font-weight: $headings-font-weight;\n\n line-height: $headings-line-height;\n}\n\nh1 {\n @include margin(20px, null, null, null);\n\n font-size: $h1-font-size;\n}\n\nh2 {\n @include margin(18px, null, null, null);\n\n font-size: $h2-font-size;\n}\n\nh3 {\n font-size: $h3-font-size;\n}\n\nh4 {\n font-size: $h4-font-size;\n}\n\nh5 {\n font-size: $h5-font-size;\n}\n\nh6 {\n font-size: $h6-font-size;\n}\n\nsmall {\n font-size: 75%;\n}\n\nsub,\nsup {\n position: relative;\n\n font-size: 75%;\n\n line-height: 0;\n\n vertical-align: baseline;\n}\n\nsup {\n top: -.5em;\n}\n\nsub {\n bottom: -.25em;\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n\n// Element Space\n// --------------------------------------------------\n// Creates padding and margin attributes to be used on\n// any element\n\n$padding: var(--ion-padding, 16px);\n$margin: var(--ion-margin, 16px);\n\n// Padding\n// --------------------------------------------------\n\n.ion-no-padding {\n --padding-start: 0;\n --padding-end: 0;\n --padding-top: 0;\n --padding-bottom: 0;\n\n @include padding(0);\n}\n\n.ion-padding {\n --padding-start: #{$padding};\n --padding-end: #{$padding};\n --padding-top: #{$padding};\n --padding-bottom: #{$padding};\n\n @include padding($padding);\n}\n\n.ion-padding-top {\n --padding-top: #{$padding};\n\n @include padding($padding, null, null, null);\n}\n\n.ion-padding-start {\n --padding-start: #{$padding};\n\n @include padding-horizontal($padding, null);\n}\n\n.ion-padding-end {\n --padding-end: #{$padding};\n\n @include padding-horizontal(null, $padding);\n}\n\n.ion-padding-bottom {\n --padding-bottom: #{$padding};\n\n @include padding(null, null, $padding, null);\n}\n\n.ion-padding-vertical {\n --padding-top: #{$padding};\n --padding-bottom: #{$padding};\n\n @include padding($padding, null, $padding, null);\n}\n\n.ion-padding-horizontal {\n --padding-start: #{$padding};\n --padding-end: #{$padding};\n\n @include padding-horizontal($padding);\n}\n\n\n// Margin\n// --------------------------------------------------\n\n.ion-no-margin {\n --margin-start: 0;\n --margin-end: 0;\n --margin-top: 0;\n --margin-bottom: 0;\n\n @include margin(0);\n}\n\n.ion-margin {\n --margin-start: #{$margin};\n --margin-end: #{$margin};\n --margin-top: #{$margin};\n --margin-bottom: #{$margin};\n\n @include margin($margin);\n}\n\n.ion-margin-top {\n --margin-top: #{$margin};\n\n @include margin($margin, null, null, null);\n}\n\n.ion-margin-start {\n --margin-start: #{$margin};\n\n @include margin-horizontal($margin, null);\n}\n\n.ion-margin-end {\n --margin-end: #{$margin};\n\n @include margin-horizontal(null, $margin);\n}\n\n.ion-margin-bottom {\n --margin-bottom: #{$margin};\n\n @include margin(null, null, $margin, null);\n}\n\n.ion-margin-vertical {\n --margin-top: #{$margin};\n --margin-bottom: #{$margin};\n\n @include margin($margin, null, $margin, null);\n}\n\n.ion-margin-horizontal {\n --margin-start: #{$margin};\n --margin-end: #{$margin};\n\n @include margin-horizontal($margin);\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Float Elements\n// --------------------------------------------------\n// Creates float classes based on screen size\n\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `.ion-float-{bp}-{side}` classes for floating the element based\n // on the breakpoint and side\n .ion-float#{$infix}-left {\n @include float(left, !important);\n }\n\n .ion-float#{$infix}-right {\n @include float(right, !important);\n }\n\n .ion-float#{$infix}-start {\n @include float(start, !important);\n }\n\n .ion-float#{$infix}-end {\n @include float(end, !important);\n }\n }\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Text Alignment\n// --------------------------------------------------\n// Creates text alignment attributes based on screen size\n\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `.ion-text-{bp}` classes for aligning the text based\n // on the breakpoint\n .ion-text#{$infix}-center {\n text-align: center !important;\n }\n\n .ion-text#{$infix}-justify {\n text-align: justify !important;\n }\n\n .ion-text#{$infix}-start {\n text-align: start !important;\n }\n\n .ion-text#{$infix}-end {\n text-align: end !important;\n }\n\n .ion-text#{$infix}-left {\n text-align: left !important;\n }\n\n .ion-text#{$infix}-right {\n text-align: right !important;\n }\n\n .ion-text#{$infix}-nowrap {\n white-space: nowrap !important;\n }\n\n .ion-text#{$infix}-wrap {\n white-space: normal !important;\n }\n }\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Text Transformation\n// --------------------------------------------------\n// Creates text transform attributes based on screen size\n\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `.ion-text-{bp}` classes for transforming the text based\n // on the breakpoint\n .ion-text#{$infix}-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n }\n\n .ion-text#{$infix}-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n }\n\n .ion-text#{$infix}-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n }\n }\n}\n","// Flex Utilities\n// --------------------------------------------------\n// Creates flex classes to align flex containers\n// and items\n\n// Align Self\n// --------------------------------------------------\n\n.ion-align-self-start {\n align-self: flex-start !important;\n}\n\n.ion-align-self-end {\n align-self: flex-end !important;\n}\n\n.ion-align-self-center {\n align-self: center !important;\n}\n\n.ion-align-self-stretch {\n align-self: stretch !important;\n}\n\n.ion-align-self-baseline {\n align-self: baseline !important;\n}\n\n.ion-align-self-auto {\n align-self: auto !important;\n}\n\n\n// Flex Wrap\n// --------------------------------------------------\n\n.ion-wrap {\n flex-wrap: wrap !important;\n}\n\n.ion-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.ion-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n\n// Justify Content\n// --------------------------------------------------\n\n.ion-justify-content-start {\n justify-content: flex-start !important;\n}\n\n.ion-justify-content-center {\n justify-content: center !important;\n}\n\n.ion-justify-content-end {\n justify-content: flex-end !important;\n}\n\n.ion-justify-content-around {\n justify-content: space-around !important;\n}\n\n.ion-justify-content-between {\n justify-content: space-between !important;\n}\n\n.ion-justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n\n// Align Items\n// --------------------------------------------------\n\n.ion-align-items-start {\n align-items: flex-start !important;\n}\n\n.ion-align-items-center {\n align-items: center !important;\n}\n\n.ion-align-items-end {\n align-items: flex-end !important;\n}\n\n.ion-align-items-stretch {\n align-items: stretch !important;\n}\n\n.ion-align-items-baseline {\n align-items: baseline !important;\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Display\n// --------------------------------------------------\n// Modifies display of a particular element based on the given classes\n\n.ion-hide {\n display: none !important;\n}\n\n// Adds hidden classes\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `ion-hide-{bp}-up` classes for hiding the element based\n // on the breakpoint\n .ion-hide#{$infix}-up {\n display: none !important;\n }\n }\n\n @include media-breakpoint-down($breakpoint, $screen-breakpoints) {\n // Provide `ion-hide-{bp}-down` classes for hiding the element based\n // on the breakpoint\n .ion-hide#{$infix}-down {\n display: none !important;\n }\n }\n}\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../src/themes/ionic.functions.font.scss","../src/css/core.scss","../src/themes/ionic.mixins.scss","../src/themes/ionic.globals.scss","../src/components/menu/menu.ios.vars.scss","../src/components/menu/menu.md.vars.scss","../src/css/normalize.scss","../src/css/structure.scss","../src/css/typography.scss","../src/css/padding.scss","../src/css/float-elements.scss","../src/css/text-alignment.scss","../src/css/text-transformation.scss","../src/css/flex-utils.scss","../src/css/display.scss"],"names":[],"mappings":"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","file":"ionic.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 \"../components/menu/menu.ios.vars\";\n@import \"../components/menu/menu.md.vars\";\n\n// Ionic Font Family\n// --------------------------------------------------\n\nhtml.ios {\n --ion-default-font: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Roboto\", sans-serif;\n}\nhtml.md {\n --ion-default-font: \"Roboto\", \"Helvetica Neue\", sans-serif;\n}\n\nhtml {\n --ion-default-dynamic-font: -apple-system-body;\n --ion-font-family: var(--ion-default-font);\n}\n\nbody {\n background: var(--ion-background-color);\n}\n\nbody.backdrop-no-scroll {\n overflow: hidden;\n}\n\n// Modal - Card Style\n// --------------------------------------------------\n/**\n * Card style modal needs additional padding on the\n * top of the header. We accomplish this by targeting\n * the first toolbar in the header.\n * Footer also needs this. We do not adjust the bottom\n * padding though because of the safe area.\n */\nhtml.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,\nhtml.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,\nhtml.ios ion-modal ion-footer ion-toolbar:first-of-type {\n padding-top: 6px;\n}\n\n/**\n* Card style modal needs additional padding on the\n* bottom of the header. We accomplish this by targeting\n* the last toolbar in the header.\n*/\nhtml.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,\nhtml.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type {\n padding-bottom: 6px;\n}\n\n/**\n* Add padding on the left and right\n* of toolbars while accounting for\n* safe area values when in landscape.\n*/\nhtml.ios ion-modal ion-toolbar {\n padding-right: calc(var(--ion-safe-area-right) + 8px);\n padding-left: calc(var(--ion-safe-area-left) + 8px);\n}\n\n/**\n * Card style modal on iPadOS\n * should only have backdrop on first instance.\n */\n@media screen and (min-width: 768px) {\n html.ios ion-modal.modal-card:first-of-type {\n --backdrop-opacity: 0.18;\n }\n}\n\n/**\n * Subsequent modals should not have a backdrop/box shadow\n * as it will cause the screen to appear to get progressively\n * darker. With Ionic 6, declarative modals made it\n * possible to have multiple non-presented modals in the DOM,\n * so we could no longer rely on ion-modal:first-of-type.\n * Here we disable the opacity/box-shadow for every modal\n * that comes after the first presented modal.\n *\n * Note: ion-modal:not(.overlay-hidden):first-of-type\n * does not match the first modal to not have\n * the .overlay-hidden class, it will match the\n * first modal in general only if it does not\n * have the .overlay-hidden class.\n * The :nth-child() pseudo-class has support\n * for selectors which would help us here. At the\n * time of writing it does not have great cross browser\n * support.\n *\n * Note 2: This should only apply to non-card and\n * non-sheet modals. Card and sheet modals have their\n * own criteria for displaying backdrops/box shadows.\n *\n * Do not use :not(.overlay-hidden) in place of\n * .show-modal because that triggers a memory\n * leak in Blink: https://bugs.chromium.org/p/chromium/issues/detail?id=1418768\n */\nion-modal.modal-default.show-modal ~ ion-modal.modal-default {\n --backdrop-opacity: 0;\n --box-shadow: none;\n}\n\n/**\n * This works around a bug in WebKit where the\n * content will overflow outside of the bottom border\n * radius when re-painting. As long as a single\n * border radius value is set on .ion-page, this\n * issue does not happen. We set the top left radius\n * here because the top left corner will always have a\n * radius no matter the platform.\n * This behavior only applies to card modals.\n */\nhtml.ios ion-modal.modal-card .ion-page {\n border-top-left-radius: var(--border-radius);\n}\n\n// Ionic Colors\n// --------------------------------------------------\n// Generates the color classes and variables based on the\n// colors map\n\n@mixin generate-color($color-name) {\n $value: map-get($colors, $color-name);\n\n $base: map-get($value, base);\n $contrast: map-get($value, contrast);\n $shade: map-get($value, shade);\n $tint: map-get($value, tint);\n\n --ion-color-base: var(--ion-color-#{$color-name}, #{$base}) !important;\n --ion-color-base-rgb: var(--ion-color-#{$color-name}-rgb, #{color-to-rgb-list($base)}) !important;\n --ion-color-contrast: var(--ion-color-#{$color-name}-contrast, #{$contrast}) !important;\n --ion-color-contrast-rgb: var(--ion-color-#{$color-name}-contrast-rgb, #{color-to-rgb-list($contrast)}) !important;\n --ion-color-shade: var(--ion-color-#{$color-name}-shade, #{$shade}) !important;\n --ion-color-tint: var(--ion-color-#{$color-name}-tint, #{$tint}) !important;\n}\n\n@each $color-name, $value in $colors {\n .ion-color-#{$color-name} {\n @include generate-color($color-name);\n }\n}\n\n\n// Page Container Structure\n// --------------------------------------------------\n\n.ion-page {\n @include position(0, 0, 0, 0);\n\n display: flex;\n position: absolute;\n\n flex-direction: column;\n justify-content: space-between;\n\n contain: layout size style;\n z-index: $z-index-page-container;\n}\n\n/**\n * When making custom dialogs, using\n * ion-content is not required. As a result,\n * some developers may wish to have dialogs\n * that are automatically sized by the browser.\n * These changes allow certain dimension values\n * such as fit-content to work correctly.\n */\nion-modal > .ion-page {\n position: relative;\n\n contain: layout style;\n\n height: 100%;\n}\n\n.split-pane-visible > .ion-page.split-pane-main {\n position: relative;\n}\n\nion-route,\nion-route-redirect,\nion-router,\nion-select-option,\nion-nav-controller,\nion-menu-controller,\nion-action-sheet-controller,\nion-alert-controller,\nion-loading-controller,\nion-modal-controller,\nion-picker-controller,\nion-popover-controller,\nion-toast-controller,\n.ion-page-hidden {\n /* stylelint-disable-next-line declaration-no-important */\n display: none !important;\n}\n\n.ion-page-invisible {\n opacity: 0;\n}\n\n.can-go-back > ion-header ion-back-button {\n display: block;\n}\n\n\n// Ionic Safe Margins\n// --------------------------------------------------\n\nhtml.plt-ios.plt-hybrid, html.plt-ios.plt-pwa {\n --ion-statusbar-padding: 20px;\n}\n\n@supports (padding-top: 20px) {\n html {\n --ion-safe-area-top: var(--ion-statusbar-padding);\n }\n}\n\n// TODO: remove once Safari 11.2 is no longer supported\n@supports (padding-top: constant(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: constant(safe-area-inset-top);\n --ion-safe-area-bottom: constant(safe-area-inset-bottom);\n --ion-safe-area-left: constant(safe-area-inset-left);\n --ion-safe-area-right: constant(safe-area-inset-right);\n }\n}\n\n@supports (padding-top: env(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: env(safe-area-inset-top);\n --ion-safe-area-bottom: env(safe-area-inset-bottom);\n --ion-safe-area-left: env(safe-area-inset-left);\n --ion-safe-area-right: env(safe-area-inset-right);\n }\n}\n\n\n// Global Card Styles\n// --------------------------------------------------\n\nion-card.ion-color .ion-inherit-color,\nion-card-header.ion-color .ion-inherit-color {\n color: inherit;\n}\n\n\n// Menu Styles\n// --------------------------------------------------\n\n.menu-content {\n @include transform(translate3d(0, 0, 0));\n}\n\n.menu-content-open {\n cursor: pointer;\n touch-action: manipulation;\n\n // the containing element itself should be clickable but\n // everything inside of it should not clickable when menu is open\n pointer-events: none;\n}\n\n.ios .menu-content-reveal {\n box-shadow: $menu-ios-box-shadow-reveal;\n}\n\n[dir=rtl].ios .menu-content-reveal {\n box-shadow: $menu-ios-box-shadow-reveal-rtl;\n}\n\n.ios .menu-content-push {\n box-shadow: $menu-ios-box-shadow-push;\n}\n\n.md .menu-content-reveal {\n box-shadow: $menu-md-box-shadow;\n}\n\n.md .menu-content-push {\n box-shadow: $menu-md-box-shadow;\n}\n\n// Accordion Styles\nion-accordion-group.accordion-group-expand-inset > ion-accordion:first-of-type {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n}\nion-accordion-group.accordion-group-expand-inset > ion-accordion:last-of-type {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n}\nion-accordion-group > ion-accordion:last-of-type ion-item[slot=\"header\"] {\n --border-width: 0px;\n}\n\nion-accordion.accordion-animated > [slot=\"header\"] .ion-accordion-toggle-icon {\n transition: 300ms transform cubic-bezier(0.25, 0.8, 0.5, 1);\n}\n\n@media (prefers-reduced-motion: reduce) {\n ion-accordion .ion-accordion-toggle-icon {\n /* stylelint-disable declaration-no-important */\n transition: none !important;\n }\n}\n/**\n * The > [slot=\"header\"] selector ensures that we do\n * not modify toggle icons for any nested accordions. The state\n * of one accordion should not affect any accordions inside\n * of a nested accordion group.\n */\nion-accordion.accordion-expanding > [slot=\"header\"] .ion-accordion-toggle-icon,\nion-accordion.accordion-expanded > [slot=\"header\"] .ion-accordion-toggle-icon {\n transform: rotate(180deg);\n}\n\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-previous ion-item[slot=\"header\"] {\n --border-width: 0px;\n --inner-border-width: 0px;\n}\n\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanding:first-of-type,\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanded:first-of-type {\n margin-top: 0;\n}\n\n// Safari/iOS 15 changes the appearance of input[type=\"date\"].\n// For backwards compatibility from Ionic 5/Safari 14 designs,\n// we override the appearance only when using within an ion-input.\nion-input input::-webkit-date-and-time-value {\n text-align: start;\n}\n\n/**\n * The .ion-datetime-button-overlay class contains\n * styles that allow any modal/popover to be\n * sized according to the dimensions of the datetime\n * when used with ion-datetime-button.\n */\n.ion-datetime-button-overlay {\n --width: fit-content;\n --height: fit-content;\n}\n\n/**\n * The grid variant can scale down when inline.\n * When used in a `fit-content` overlay, this causes\n * the overlay to shrink when the month/year picker is open.\n * Explicitly setting the dimensions lets us have a consistently\n * sized grid interface.\n */\n.ion-datetime-button-overlay ion-datetime.datetime-grid {\n width: 320px;\n min-height: 320px;\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","\n// Global Utility Functions\n@import \"./ionic.functions.string\";\n\n// Global Color Functions\n@import \"./ionic.functions.color\";\n\n// Global Font Functions\n@import \"./ionic.functions.font\";\n\n// Global Mixins\n@import \"./ionic.mixins\";\n\n// Default Theme\n@import \"./ionic.theme.default\";\n\n\n// Default General\n// --------------------------------------------------\n$font-family-base: var(--ion-font-family, inherit) !default;\n\n// Global app direction\n$app-direction: null !default;\n\n// Hairlines width\n$hairlines-width: .55px !default;\n\n// The minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries\n$screen-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n// Input placeholder opacity\n// Ensures that the placeholder has the\n// correct color contrast against the background.\n$placeholder-opacity: 0.6 !default;\n\n$form-control-label-margin: 16px !default;\n\n// How much the stacked labels should be scaled by\n/// The value 0.75 is used to match the MD spec.\n/// iOS does not have a floating label design spec, so we standardize on 0.75.\n$form-control-label-stacked-scale: 0.75 !default;\n\n\n// Z-Index\n// --------------------------------------------------\n// Grouped by elements which would be siblings\n\n$z-index-menu-overlay: 1000;\n$z-index-overlay: 1001;\n$z-index-click-block: 99999;\n\n$z-index-fixed-content: 999;\n$z-index-scroll-content: 1;\n$z-index-refresher: -1;\n\n$z-index-page-container: 0;\n$z-index-toolbar: 10;\n$z-index-toolbar-background: -1;\n$z-index-toolbar-buttons: 99;\n\n$z-index-backdrop: 2;\n$z-index-overlay-wrapper: 10;\n\n$z-index-item-options: 1;\n$z-index-item-input: 2;\n$z-index-item-divider: 100;\n\n$z-index-reorder-selected: 100;\n","@import \"../../themes/ionic.globals.ios\";\n\n// iOS Menu\n// --------------------------------------------------\n\n/// @prop - Background of the menu\n$menu-ios-background: $background-color !default;\n\n/// @prop - Box shadow color of the menu\n$menu-ios-box-shadow-color: rgba(0, 0, 0, .08) !default;\n\n/// @prop - Box shadow of the menu\n$menu-ios-box-shadow: -8px 0 42px $menu-ios-box-shadow-color !default;\n\n/// @prop - Box shadow of the menu in rtl mode\n$menu-ios-box-shadow-rtl: 8px 0 42px $menu-ios-box-shadow-color !default;\n\n/// @prop - Box shadow of the reveal menu\n$menu-ios-box-shadow-reveal: $menu-ios-box-shadow !default;\n\n/// @prop - Box shadow of the reveal menu\n$menu-ios-box-shadow-reveal-rtl: $menu-ios-box-shadow-rtl !default;\n\n/// @prop - Box shadow of the push menu\n$menu-ios-box-shadow-push: null !default;\n\n/// @prop - Box shadow of the overlay menu\n$menu-ios-box-shadow-overlay: null !default;\n","@import \"../../themes/ionic.globals.md\";\n\n// Material Design Menu\n// --------------------------------------------------\n\n/// @prop - Background of the menu\n$menu-md-background: $background-color !default;\n\n/// @prop - Box shadow of the menu\n$menu-md-box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18) !default;\n","// ! normalize.css v3.0.2 | MIT License | github.com/necolas/normalize.css\n\n\n// HTML5 display definitions\n// ==========================================================================\n\n// 1. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\naudio,\ncanvas,\nprogress,\nvideo {\n vertical-align: baseline; // 1\n}\n\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\naudio:not([controls]) {\n display: none;\n\n height: 0;\n}\n\n\n// Text-level semantics\n// ==========================================================================\n\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\nb,\nstrong {\n font-weight: bold;\n}\n\n// Embedded content\n// ==========================================================================\n\n// Makes it so the img does not flow outside container\nimg {\n max-width: 100%;\n}\n\n// Grouping content\n// ==========================================================================\n\nhr {\n height: 1px;\n\n border-width: 0;\n\n box-sizing: content-box;\n}\n\n// Contain overflow in all browsers.\npre {\n overflow: auto;\n}\n\n// Address odd `em`-unit font size rendering in all browsers.\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n\n// Forms\n// ==========================================================================\n\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nlabel,\ninput,\nselect,\ntextarea {\n font-family: inherit;\n line-height: normal;\n}\n\ntextarea {\n overflow: auto;\n\n height: auto;\n\n font: inherit;\n color: inherit;\n}\n\ntextarea::placeholder {\n padding-left: 2px;\n}\n\nform,\ninput,\noptgroup,\nselect {\n margin: 0; // 3\n\n font: inherit; // 2\n color: inherit; // 1\n}\n\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n cursor: pointer; // 3\n\n -webkit-appearance: button; // 2\n}\n\n// remove 300ms delay\na,\na div,\na span,\na ion-icon,\na ion-label,\nbutton,\nbutton div,\nbutton span,\nbutton ion-icon,\nbutton ion-label,\n.ion-tappable,\n[tappable],\n[tappable] div,\n[tappable] span,\n[tappable] ion-icon,\n[tappable] ion-label,\ninput,\ntextarea {\n touch-action: manipulation;\n}\n\na ion-label,\nbutton ion-label {\n pointer-events: none;\n}\n\nbutton {\n padding: 0;\n border: 0;\n border-radius: 0;\n font-family: inherit;\n font-style: inherit;\n font-variant: inherit;\n line-height: 1;\n text-transform: none;\n cursor: pointer;\n\n -webkit-appearance: button;\n}\n\n[tappable] {\n cursor: pointer;\n}\n\n// Re-set default cursor for disabled elements.\na[disabled],\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n// Remove inner padding and border in Firefox 4+.\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n\n border: 0;\n}\n\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n\n// Tables\n// ==========================================================================//\n\n// Remove most spacing between table cells.\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n\n// Structure\n// --------------------------------------------------\n// Adds structural css to the native html elements\n\n* {\n box-sizing: border-box;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n\nhtml {\n width: 100%;\n height: 100%;\n -webkit-text-size-adjust: 100%;\n\n text-size-adjust: 100%;\n}\n\nhtml:not(.hydrated) body {\n display: none;\n}\n\nhtml.ion-ce body {\n display: block;\n}\n\nhtml.plt-pwa {\n height: 100vh;\n}\n\nbody {\n @include font-smoothing();\n @include margin(0);\n @include padding(0);\n\n position: fixed;\n\n width: 100%;\n max-width: 100%;\n height: 100%;\n max-height: 100%;\n\n /**\n * Because body has position: fixed,\n * it should be promoted to its own\n * layer.\n *\n * WebKit does not always promote\n * the body to its own layer on page\n * load in Ionic apps. Once scrolling on\n * ion-content starts, WebKit will promote\n * body. Unfortunately, this causes a re-paint\n * which results in scrolling being halted\n * until the next user gesture.\n *\n * This impacts the Custom Elements build.\n * The lazy loaded build causes the browser to\n * re-paint during hydration which causes WebKit\n * to promote body to its own layer.\n * In the CE Build, this hydration does not\n * happen, so the additional re-paint does not occur.\n */\n transform: translateZ(0);\n\n text-rendering: optimizeLegibility;\n\n overflow: hidden;\n\n touch-action: manipulation;\n\n -webkit-user-drag: none;\n\n -ms-content-zooming: none;\n\n word-wrap: break-word;\n\n overscroll-behavior-y: none;\n -webkit-text-size-adjust: none;\n\n text-size-adjust: none;\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Typography\n// --------------------------------------------------\n\n/// @prop - Font weight of all headings\n$headings-font-weight: 500 !default;\n\n/// @prop - Line height of all headings\n$headings-line-height: 1.2 !default;\n\n/// @prop - Font size of heading level 1\n$h1-font-size: dynamic-font(26px) !default;\n\n/// @prop - Font size of heading level 2\n$h2-font-size: dynamic-font(24px) !default;\n\n/// @prop - Font size of heading level 3\n$h3-font-size: dynamic-font(22px) !default;\n\n/// @prop - Font size of heading level 4\n$h4-font-size: dynamic-font(20px) !default;\n\n/// @prop - Font size of heading level 5\n$h5-font-size: dynamic-font(18px) !default;\n\n/// @prop - Font size of heading level 6\n$h6-font-size: dynamic-font(16px) !default;\n\nhtml {\n font-family: var(--ion-font-family);\n}\n\n/**\n * Dynamic Type is an iOS-only feature, so\n * this should only be enabled on iOS devices.\n */\n@supports (-webkit-touch-callout: none) {\n html {\n /**\n * Includes fallback if Dynamic Type is not enabled.\n */\n font: var(--ion-dynamic-font, 16px var(--ion-font-family));\n }\n}\n\na {\n background-color: transparent;\n color: ion-color(primary, base);\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n @include margin(16px, null, 10px, null);\n\n font-weight: $headings-font-weight;\n\n line-height: $headings-line-height;\n}\n\nh1 {\n @include margin(20px, null, null, null);\n\n font-size: $h1-font-size;\n}\n\nh2 {\n @include margin(18px, null, null, null);\n\n font-size: $h2-font-size;\n}\n\nh3 {\n font-size: $h3-font-size;\n}\n\nh4 {\n font-size: $h4-font-size;\n}\n\nh5 {\n font-size: $h5-font-size;\n}\n\nh6 {\n font-size: $h6-font-size;\n}\n\nsmall {\n font-size: 75%;\n}\n\nsub,\nsup {\n position: relative;\n\n font-size: 75%;\n\n line-height: 0;\n\n vertical-align: baseline;\n}\n\nsup {\n top: -.5em;\n}\n\nsub {\n bottom: -.25em;\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n\n// Element Space\n// --------------------------------------------------\n// Creates padding and margin attributes to be used on\n// any element\n\n$padding: var(--ion-padding, 16px);\n$margin: var(--ion-margin, 16px);\n\n// Padding\n// --------------------------------------------------\n\n.ion-no-padding {\n --padding-start: 0;\n --padding-end: 0;\n --padding-top: 0;\n --padding-bottom: 0;\n\n @include padding(0);\n}\n\n.ion-padding {\n --padding-start: #{$padding};\n --padding-end: #{$padding};\n --padding-top: #{$padding};\n --padding-bottom: #{$padding};\n\n @include padding($padding);\n}\n\n.ion-padding-top {\n --padding-top: #{$padding};\n\n @include padding($padding, null, null, null);\n}\n\n.ion-padding-start {\n --padding-start: #{$padding};\n\n @include padding-horizontal($padding, null);\n}\n\n.ion-padding-end {\n --padding-end: #{$padding};\n\n @include padding-horizontal(null, $padding);\n}\n\n.ion-padding-bottom {\n --padding-bottom: #{$padding};\n\n @include padding(null, null, $padding, null);\n}\n\n.ion-padding-vertical {\n --padding-top: #{$padding};\n --padding-bottom: #{$padding};\n\n @include padding($padding, null, $padding, null);\n}\n\n.ion-padding-horizontal {\n --padding-start: #{$padding};\n --padding-end: #{$padding};\n\n @include padding-horizontal($padding);\n}\n\n\n// Margin\n// --------------------------------------------------\n\n.ion-no-margin {\n --margin-start: 0;\n --margin-end: 0;\n --margin-top: 0;\n --margin-bottom: 0;\n\n @include margin(0);\n}\n\n.ion-margin {\n --margin-start: #{$margin};\n --margin-end: #{$margin};\n --margin-top: #{$margin};\n --margin-bottom: #{$margin};\n\n @include margin($margin);\n}\n\n.ion-margin-top {\n --margin-top: #{$margin};\n\n @include margin($margin, null, null, null);\n}\n\n.ion-margin-start {\n --margin-start: #{$margin};\n\n @include margin-horizontal($margin, null);\n}\n\n.ion-margin-end {\n --margin-end: #{$margin};\n\n @include margin-horizontal(null, $margin);\n}\n\n.ion-margin-bottom {\n --margin-bottom: #{$margin};\n\n @include margin(null, null, $margin, null);\n}\n\n.ion-margin-vertical {\n --margin-top: #{$margin};\n --margin-bottom: #{$margin};\n\n @include margin($margin, null, $margin, null);\n}\n\n.ion-margin-horizontal {\n --margin-start: #{$margin};\n --margin-end: #{$margin};\n\n @include margin-horizontal($margin);\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Float Elements\n// --------------------------------------------------\n// Creates float classes based on screen size\n\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `.ion-float-{bp}-{side}` classes for floating the element based\n // on the breakpoint and side\n .ion-float#{$infix}-left {\n @include float(left, !important);\n }\n\n .ion-float#{$infix}-right {\n @include float(right, !important);\n }\n\n .ion-float#{$infix}-start {\n @include float(start, !important);\n }\n\n .ion-float#{$infix}-end {\n @include float(end, !important);\n }\n }\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Text Alignment\n// --------------------------------------------------\n// Creates text alignment attributes based on screen size\n\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `.ion-text-{bp}` classes for aligning the text based\n // on the breakpoint\n .ion-text#{$infix}-center {\n text-align: center !important;\n }\n\n .ion-text#{$infix}-justify {\n text-align: justify !important;\n }\n\n .ion-text#{$infix}-start {\n text-align: start !important;\n }\n\n .ion-text#{$infix}-end {\n text-align: end !important;\n }\n\n .ion-text#{$infix}-left {\n text-align: left !important;\n }\n\n .ion-text#{$infix}-right {\n text-align: right !important;\n }\n\n .ion-text#{$infix}-nowrap {\n white-space: nowrap !important;\n }\n\n .ion-text#{$infix}-wrap {\n white-space: normal !important;\n }\n }\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Text Transformation\n// --------------------------------------------------\n// Creates text transform attributes based on screen size\n\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `.ion-text-{bp}` classes for transforming the text based\n // on the breakpoint\n .ion-text#{$infix}-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n }\n\n .ion-text#{$infix}-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n }\n\n .ion-text#{$infix}-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n }\n }\n}\n","// Flex Utilities\n// --------------------------------------------------\n// Creates flex classes to align flex containers\n// and items\n\n// Align Self\n// --------------------------------------------------\n\n.ion-align-self-start {\n align-self: flex-start !important;\n}\n\n.ion-align-self-end {\n align-self: flex-end !important;\n}\n\n.ion-align-self-center {\n align-self: center !important;\n}\n\n.ion-align-self-stretch {\n align-self: stretch !important;\n}\n\n.ion-align-self-baseline {\n align-self: baseline !important;\n}\n\n.ion-align-self-auto {\n align-self: auto !important;\n}\n\n\n// Flex Wrap\n// --------------------------------------------------\n\n.ion-wrap {\n flex-wrap: wrap !important;\n}\n\n.ion-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.ion-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n\n// Justify Content\n// --------------------------------------------------\n\n.ion-justify-content-start {\n justify-content: flex-start !important;\n}\n\n.ion-justify-content-center {\n justify-content: center !important;\n}\n\n.ion-justify-content-end {\n justify-content: flex-end !important;\n}\n\n.ion-justify-content-around {\n justify-content: space-around !important;\n}\n\n.ion-justify-content-between {\n justify-content: space-between !important;\n}\n\n.ion-justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n\n// Align Items\n// --------------------------------------------------\n\n.ion-align-items-start {\n align-items: flex-start !important;\n}\n\n.ion-align-items-center {\n align-items: center !important;\n}\n\n.ion-align-items-end {\n align-items: flex-end !important;\n}\n\n.ion-align-items-stretch {\n align-items: stretch !important;\n}\n\n.ion-align-items-baseline {\n align-items: baseline !important;\n}\n","@import \"../themes/ionic.globals\";\n@import \"../themes/ionic.mixins\";\n\n// Display\n// --------------------------------------------------\n// Modifies display of a particular element based on the given classes\n\n.ion-hide {\n display: none !important;\n}\n\n// Adds hidden classes\n@each $breakpoint in map-keys($screen-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $screen-breakpoints);\n\n @include media-breakpoint-up($breakpoint, $screen-breakpoints) {\n // Provide `ion-hide-{bp}-up` classes for hiding the element based\n // on the breakpoint\n .ion-hide#{$infix}-up {\n display: none !important;\n }\n }\n\n @include media-breakpoint-down($breakpoint, $screen-breakpoints) {\n // Provide `ion-hide-{bp}-down` classes for hiding the element based\n // on the breakpoint\n .ion-hide#{$infix}-down {\n display: none !important;\n }\n }\n}\n"]}
package/dist/index.js CHANGED
@@ -793,7 +793,8 @@ const IonSelectOption = /*@__PURE__*/ defineContainer('ion-select-option', defin
793
793
  'value'
794
794
  ]);
795
795
  const IonSkeletonText = /*@__PURE__*/ defineContainer('ion-skeleton-text', defineCustomElement$X, [
796
- 'animated'
796
+ 'animated',
797
+ 'ionStyle'
797
798
  ]);
798
799
  const IonSpinner = /*@__PURE__*/ defineContainer('ion-spinner', defineCustomElement$Y, [
799
800
  'color',
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/vue-component-lib/utils.ts","../src/proxies.ts","../src/hooks/back-button.ts","../src/hooks/keyboard.ts","../src/utils.ts","../src/hooks/lifecycle.ts","../src/hooks/router.ts","../src/ionic-vue.ts","../src/components/IonBackButton.ts","../src/components/IonPage.ts","../src/components/IonRouterOutlet.ts","../src/components/IonTabButton.ts","../src/components/IonTabs.ts","../src/components/IonTabBar.ts","../src/components/IonApp.ts","../src/framework-delegate.ts","../src/components/IonNav.ts","../src/components/IonIcon.ts","../src/vue-component-lib/overlays.ts","../src/components/Overlays.ts","../src/controllers.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["defineIonAccordion","defineIonAccordionGroup","defineIonAvatar","defineIonBackdrop","defineIonBadge","defineIonBreadcrumb","defineIonBreadcrumbs","defineIonButton","defineIonButtons","defineIonCard","defineIonCardContent","defineIonCardHeader","defineIonCardSubtitle","defineIonCardTitle","defineIonCheckbox","defineIonChip","defineIonCol","defineIonContent","defineIonDatetime","defineIonDatetimeButton","defineIonFab","defineIonFabButton","defineIonFabList","defineIonFooter","defineIonGrid","defineIonHeader","defineIonImg","defineIonInfiniteScroll","defineIonInfiniteScrollContent","defineIonInput","defineIonItem","defineIonItemDivider","defineIonItemGroup","defineIonItemOption","defineIonItemOptions","defineIonItemSliding","defineIonLabel","defineIonList","defineIonListHeader","defineIonMenu","defineIonMenuButton","defineIonMenuToggle","defineIonNavLink","defineIonNote","defineIonProgressBar","defineIonRadio","defineIonRadioGroup","defineIonRange","defineIonRefresher","defineIonRefresherContent","defineIonReorder","defineIonReorderGroup","defineIonRippleEffect","defineIonRow","defineIonSearchbar","defineIonSegment","defineIonSegmentButton","defineIonSelect","defineIonSelectOption","defineIonSkeletonText","defineIonSpinner","defineIonSplitPane","defineIonText","defineIonTextarea","defineIonThumbnail","defineIonTitle","defineIonToggle","defineIonToolbar","defineCustomElement","EMPTY_PROP","DEFAULT_EMPTY_PROP","defineIonActionSheetCustomElement","defineIonAlertCustomElement","defineIonLoadingCustomElement","defineIonPickerCustomElement","defineIonToastCustomElement","defineIonModalCustomElement","defineIonPopoverCustomElement","modalCtrl","popoverCtrl","alertCtrl","actionSheetCtrl","loadingCtrl","pickerCtrl","toastCtrl"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../dist-transpiled/vue-component-lib/utils.js","../dist-transpiled/proxies.js","../dist-transpiled/hooks/back-button.js","../dist-transpiled/hooks/keyboard.js","../dist-transpiled/utils.js","../dist-transpiled/hooks/lifecycle.js","../dist-transpiled/hooks/router.js","../dist-transpiled/ionic-vue.js","../dist-transpiled/components/IonBackButton.js","../dist-transpiled/components/IonPage.js","../dist-transpiled/components/IonRouterOutlet.js","../dist-transpiled/components/IonTabButton.js","../dist-transpiled/components/IonTabs.js","../dist-transpiled/components/IonTabBar.js","../dist-transpiled/components/IonApp.js","../dist-transpiled/framework-delegate.js","../dist-transpiled/components/IonNav.js","../dist-transpiled/components/IonIcon.js","../dist-transpiled/vue-component-lib/overlays.js","../dist-transpiled/components/Overlays.js","../dist-transpiled/controllers.js"],"sourcesContent":["// @ts-nocheck\n// It's easier and safer for Volar to disable typechecking and let the return type inference do its job.\nimport { defineComponent, getCurrentInstance, h, inject, ref } from 'vue';\nconst UPDATE_VALUE_EVENT = 'update:modelValue';\nconst MODEL_VALUE = 'modelValue';\nconst ROUTER_LINK_VALUE = 'routerLink';\nconst NAV_MANAGER = 'navManager';\nconst ROUTER_PROP_PREFIX = 'router';\nconst ARIA_PROP_PREFIX = 'aria';\n/**\n * Starting in Vue 3.1.0, all properties are\n * added as keys to the props object, even if\n * they are not being used. In order to correctly\n * account for both value props and v-model props,\n * we need to check if the key exists for Vue <3.1.0\n * and then check if it is not undefined for Vue >= 3.1.0.\n * See https://github.com/vuejs/vue-next/issues/3889\n */\nconst EMPTY_PROP = Symbol();\nconst DEFAULT_EMPTY_PROP = { default: EMPTY_PROP };\nconst getComponentClasses = (classes) => {\n return (classes === null || classes === void 0 ? void 0 : classes.split(' ')) || [];\n};\nconst getElementClasses = (ref, componentClasses, defaultClasses = []) => {\n var _a;\n return [...Array.from(((_a = ref.value) === null || _a === void 0 ? void 0 : _a.classList) || []), ...defaultClasses].filter((c, i, self) => !componentClasses.has(c) && self.indexOf(c) === i);\n};\n/**\n * Create a callback to define a Vue component wrapper around a Web Component.\n *\n * @prop name - The component tag name (i.e. `ion-button`)\n * @prop componentProps - An array of properties on the\n * component. These usually match up with the @Prop definitions\n * in each component's TSX file.\n * @prop customElement - An option custom element instance to pass\n * to customElements.define. Only set if `includeImportCustomElements: true` in your config.\n * @prop modelProp - The prop that v-model binds to (i.e. value)\n * @prop modelUpdateEvent - The event that is fired from your Web Component when the value changes (i.e. ionChange)\n * @prop externalModelUpdateEvent - The external event to fire from your Vue component when modelUpdateEvent fires. This is used for ensuring that v-model references have been\n * correctly updated when a user's event callback fires.\n */\nexport const defineContainer = (name, defineCustomElement, componentProps = [], modelProp, modelUpdateEvent, externalModelUpdateEvent) => {\n /**\n * Create a Vue component wrapper around a Web Component.\n * Note: The `props` here are not all properties on a component.\n * They refer to whatever properties are set on an instance of a component.\n */\n if (defineCustomElement !== undefined) {\n defineCustomElement();\n }\n const Container = defineComponent((props, { attrs, slots, emit }) => {\n var _a;\n let modelPropValue = props[modelProp];\n const containerRef = ref();\n const classes = new Set(getComponentClasses(attrs.class));\n const onVnodeBeforeMount = (vnode) => {\n // Add a listener to tell Vue to update the v-model\n if (vnode.el) {\n const eventsNames = Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent];\n eventsNames.forEach((eventName) => {\n vnode.el.addEventListener(eventName.toLowerCase(), (e) => {\n modelPropValue = (e === null || e === void 0 ? void 0 : e.target)[modelProp];\n emit(UPDATE_VALUE_EVENT, modelPropValue);\n /**\n * We need to emit the change event here\n * rather than on the web component to ensure\n * that any v-model bindings have been updated.\n * Otherwise, the developer will listen on the\n * native web component, but the v-model will\n * not have been updated yet.\n */\n if (externalModelUpdateEvent) {\n emit(externalModelUpdateEvent, e);\n }\n });\n });\n }\n };\n const currentInstance = getCurrentInstance();\n const hasRouter = (_a = currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.appContext) === null || _a === void 0 ? void 0 : _a.provides[NAV_MANAGER];\n const navManager = hasRouter ? inject(NAV_MANAGER) : undefined;\n const handleRouterLink = (ev) => {\n const { routerLink } = props;\n if (routerLink === EMPTY_PROP)\n return;\n if (navManager !== undefined) {\n let navigationPayload = { event: ev };\n for (const key in props) {\n const value = props[key];\n if (props.hasOwnProperty(key) && key.startsWith(ROUTER_PROP_PREFIX) && value !== EMPTY_PROP) {\n navigationPayload[key] = value;\n }\n }\n navManager.navigate(navigationPayload);\n }\n else {\n console.warn('Tried to navigate, but no router was found. Make sure you have mounted Vue Router.');\n }\n };\n return () => {\n modelPropValue = props[modelProp];\n getComponentClasses(attrs.class).forEach((value) => {\n classes.add(value);\n });\n const oldClick = props.onClick;\n const handleClick = (ev) => {\n if (oldClick !== undefined) {\n oldClick(ev);\n }\n if (!ev.defaultPrevented) {\n handleRouterLink(ev);\n }\n };\n let propsToAdd = {\n ref: containerRef,\n class: getElementClasses(containerRef, classes),\n onClick: handleClick,\n onVnodeBeforeMount: modelUpdateEvent ? onVnodeBeforeMount : undefined,\n };\n /**\n * We can use Object.entries here\n * to avoid the hasOwnProperty check,\n * but that would require 2 iterations\n * where as this only requires 1.\n */\n for (const key in props) {\n const value = props[key];\n if ((props.hasOwnProperty(key) && value !== EMPTY_PROP) || key.startsWith(ARIA_PROP_PREFIX)) {\n propsToAdd[key] = value;\n }\n }\n if (modelProp) {\n /**\n * If form value property was set using v-model\n * then we should use that value.\n * Otherwise, check to see if form value property\n * was set as a static value (i.e. no v-model).\n */\n if (props[MODEL_VALUE] !== EMPTY_PROP) {\n propsToAdd = Object.assign(Object.assign({}, propsToAdd), { [modelProp]: props[MODEL_VALUE] });\n }\n else if (modelPropValue !== EMPTY_PROP) {\n propsToAdd = Object.assign(Object.assign({}, propsToAdd), { [modelProp]: modelPropValue });\n }\n }\n return h(name, propsToAdd, slots.default && slots.default());\n };\n });\n if (typeof Container !== 'function') {\n Container.name = name;\n Container.props = {\n [ROUTER_LINK_VALUE]: DEFAULT_EMPTY_PROP,\n };\n componentProps.forEach((componentProp) => {\n Container.props[componentProp] = DEFAULT_EMPTY_PROP;\n });\n if (modelProp) {\n Container.props[MODEL_VALUE] = DEFAULT_EMPTY_PROP;\n Container.emits = [UPDATE_VALUE_EVENT, externalModelUpdateEvent];\n }\n }\n return Container;\n};\n//# sourceMappingURL=utils.js.map","/* eslint-disable */\n/* tslint:disable */\n/* auto-generated vue proxies */\nimport { defineContainer } from './vue-component-lib/utils';\nimport { defineCustomElement as defineIonAccordion } from '@ionic/core/components/ion-accordion.js';\nimport { defineCustomElement as defineIonAccordionGroup } from '@ionic/core/components/ion-accordion-group.js';\nimport { defineCustomElement as defineIonAvatar } from '@ionic/core/components/ion-avatar.js';\nimport { defineCustomElement as defineIonBackdrop } from '@ionic/core/components/ion-backdrop.js';\nimport { defineCustomElement as defineIonBadge } from '@ionic/core/components/ion-badge.js';\nimport { defineCustomElement as defineIonBreadcrumb } from '@ionic/core/components/ion-breadcrumb.js';\nimport { defineCustomElement as defineIonBreadcrumbs } from '@ionic/core/components/ion-breadcrumbs.js';\nimport { defineCustomElement as defineIonButton } from '@ionic/core/components/ion-button.js';\nimport { defineCustomElement as defineIonButtons } from '@ionic/core/components/ion-buttons.js';\nimport { defineCustomElement as defineIonCard } from '@ionic/core/components/ion-card.js';\nimport { defineCustomElement as defineIonCardContent } from '@ionic/core/components/ion-card-content.js';\nimport { defineCustomElement as defineIonCardHeader } from '@ionic/core/components/ion-card-header.js';\nimport { defineCustomElement as defineIonCardSubtitle } from '@ionic/core/components/ion-card-subtitle.js';\nimport { defineCustomElement as defineIonCardTitle } from '@ionic/core/components/ion-card-title.js';\nimport { defineCustomElement as defineIonCheckbox } from '@ionic/core/components/ion-checkbox.js';\nimport { defineCustomElement as defineIonChip } from '@ionic/core/components/ion-chip.js';\nimport { defineCustomElement as defineIonCol } from '@ionic/core/components/ion-col.js';\nimport { defineCustomElement as defineIonContent } from '@ionic/core/components/ion-content.js';\nimport { defineCustomElement as defineIonDatetime } from '@ionic/core/components/ion-datetime.js';\nimport { defineCustomElement as defineIonDatetimeButton } from '@ionic/core/components/ion-datetime-button.js';\nimport { defineCustomElement as defineIonFab } from '@ionic/core/components/ion-fab.js';\nimport { defineCustomElement as defineIonFabButton } from '@ionic/core/components/ion-fab-button.js';\nimport { defineCustomElement as defineIonFabList } from '@ionic/core/components/ion-fab-list.js';\nimport { defineCustomElement as defineIonFooter } from '@ionic/core/components/ion-footer.js';\nimport { defineCustomElement as defineIonGrid } from '@ionic/core/components/ion-grid.js';\nimport { defineCustomElement as defineIonHeader } from '@ionic/core/components/ion-header.js';\nimport { defineCustomElement as defineIonImg } from '@ionic/core/components/ion-img.js';\nimport { defineCustomElement as defineIonInfiniteScroll } from '@ionic/core/components/ion-infinite-scroll.js';\nimport { defineCustomElement as defineIonInfiniteScrollContent } from '@ionic/core/components/ion-infinite-scroll-content.js';\nimport { defineCustomElement as defineIonInput } from '@ionic/core/components/ion-input.js';\nimport { defineCustomElement as defineIonItem } from '@ionic/core/components/ion-item.js';\nimport { defineCustomElement as defineIonItemDivider } from '@ionic/core/components/ion-item-divider.js';\nimport { defineCustomElement as defineIonItemGroup } from '@ionic/core/components/ion-item-group.js';\nimport { defineCustomElement as defineIonItemOption } from '@ionic/core/components/ion-item-option.js';\nimport { defineCustomElement as defineIonItemOptions } from '@ionic/core/components/ion-item-options.js';\nimport { defineCustomElement as defineIonItemSliding } from '@ionic/core/components/ion-item-sliding.js';\nimport { defineCustomElement as defineIonLabel } from '@ionic/core/components/ion-label.js';\nimport { defineCustomElement as defineIonList } from '@ionic/core/components/ion-list.js';\nimport { defineCustomElement as defineIonListHeader } from '@ionic/core/components/ion-list-header.js';\nimport { defineCustomElement as defineIonMenu } from '@ionic/core/components/ion-menu.js';\nimport { defineCustomElement as defineIonMenuButton } from '@ionic/core/components/ion-menu-button.js';\nimport { defineCustomElement as defineIonMenuToggle } from '@ionic/core/components/ion-menu-toggle.js';\nimport { defineCustomElement as defineIonNav } from '@ionic/core/components/ion-nav.js';\nimport { defineCustomElement as defineIonNavLink } from '@ionic/core/components/ion-nav-link.js';\nimport { defineCustomElement as defineIonNote } from '@ionic/core/components/ion-note.js';\nimport { defineCustomElement as defineIonProgressBar } from '@ionic/core/components/ion-progress-bar.js';\nimport { defineCustomElement as defineIonRadio } from '@ionic/core/components/ion-radio.js';\nimport { defineCustomElement as defineIonRadioGroup } from '@ionic/core/components/ion-radio-group.js';\nimport { defineCustomElement as defineIonRange } from '@ionic/core/components/ion-range.js';\nimport { defineCustomElement as defineIonRefresher } from '@ionic/core/components/ion-refresher.js';\nimport { defineCustomElement as defineIonRefresherContent } from '@ionic/core/components/ion-refresher-content.js';\nimport { defineCustomElement as defineIonReorder } from '@ionic/core/components/ion-reorder.js';\nimport { defineCustomElement as defineIonReorderGroup } from '@ionic/core/components/ion-reorder-group.js';\nimport { defineCustomElement as defineIonRippleEffect } from '@ionic/core/components/ion-ripple-effect.js';\nimport { defineCustomElement as defineIonRow } from '@ionic/core/components/ion-row.js';\nimport { defineCustomElement as defineIonSearchbar } from '@ionic/core/components/ion-searchbar.js';\nimport { defineCustomElement as defineIonSegment } from '@ionic/core/components/ion-segment.js';\nimport { defineCustomElement as defineIonSegmentButton } from '@ionic/core/components/ion-segment-button.js';\nimport { defineCustomElement as defineIonSelect } from '@ionic/core/components/ion-select.js';\nimport { defineCustomElement as defineIonSelectOption } from '@ionic/core/components/ion-select-option.js';\nimport { defineCustomElement as defineIonSkeletonText } from '@ionic/core/components/ion-skeleton-text.js';\nimport { defineCustomElement as defineIonSpinner } from '@ionic/core/components/ion-spinner.js';\nimport { defineCustomElement as defineIonSplitPane } from '@ionic/core/components/ion-split-pane.js';\nimport { defineCustomElement as defineIonText } from '@ionic/core/components/ion-text.js';\nimport { defineCustomElement as defineIonTextarea } from '@ionic/core/components/ion-textarea.js';\nimport { defineCustomElement as defineIonThumbnail } from '@ionic/core/components/ion-thumbnail.js';\nimport { defineCustomElement as defineIonTitle } from '@ionic/core/components/ion-title.js';\nimport { defineCustomElement as defineIonToggle } from '@ionic/core/components/ion-toggle.js';\nimport { defineCustomElement as defineIonToolbar } from '@ionic/core/components/ion-toolbar.js';\nexport const IonAccordion = /*@__PURE__*/ defineContainer('ion-accordion', defineIonAccordion, [\n 'value',\n 'disabled',\n 'readonly',\n 'toggleIcon',\n 'toggleIconSlot'\n]);\nexport const IonAccordionGroup = /*@__PURE__*/ defineContainer('ion-accordion-group', defineIonAccordionGroup, [\n 'animated',\n 'multiple',\n 'value',\n 'disabled',\n 'readonly',\n 'expand',\n 'ionChange',\n 'ionValueChange'\n], 'value', 'v-ion-change', 'ionChange');\nexport const IonAvatar = /*@__PURE__*/ defineContainer('ion-avatar', defineIonAvatar);\nexport const IonBackdrop = /*@__PURE__*/ defineContainer('ion-backdrop', defineIonBackdrop, [\n 'visible',\n 'tappable',\n 'stopPropagation',\n 'ionBackdropTap'\n]);\nexport const IonBadge = /*@__PURE__*/ defineContainer('ion-badge', defineIonBadge, [\n 'color'\n]);\nexport const IonBreadcrumb = /*@__PURE__*/ defineContainer('ion-breadcrumb', defineIonBreadcrumb, [\n 'collapsed',\n 'last',\n 'showCollapsedIndicator',\n 'color',\n 'active',\n 'disabled',\n 'download',\n 'href',\n 'rel',\n 'separator',\n 'target',\n 'routerDirection',\n 'routerAnimation',\n 'ionFocus',\n 'ionBlur',\n 'collapsedClick'\n]);\nexport const IonBreadcrumbs = /*@__PURE__*/ defineContainer('ion-breadcrumbs', defineIonBreadcrumbs, [\n 'color',\n 'maxItems',\n 'itemsBeforeCollapse',\n 'itemsAfterCollapse',\n 'ionCollapsedClick'\n]);\nexport const IonButton = /*@__PURE__*/ defineContainer('ion-button', defineIonButton, [\n 'color',\n 'buttonType',\n 'disabled',\n 'expand',\n 'fill',\n 'routerDirection',\n 'routerAnimation',\n 'download',\n 'href',\n 'rel',\n 'shape',\n 'size',\n 'strong',\n 'target',\n 'type',\n 'form',\n 'ionFocus',\n 'ionBlur'\n]);\nexport const IonButtons = /*@__PURE__*/ defineContainer('ion-buttons', defineIonButtons, [\n 'collapse'\n]);\nexport const IonCard = /*@__PURE__*/ defineContainer('ion-card', defineIonCard, [\n 'color',\n 'button',\n 'type',\n 'disabled',\n 'download',\n 'href',\n 'rel',\n 'routerDirection',\n 'routerAnimation',\n 'target'\n]);\nexport const IonCardContent = /*@__PURE__*/ defineContainer('ion-card-content', defineIonCardContent);\nexport const IonCardHeader = /*@__PURE__*/ defineContainer('ion-card-header', defineIonCardHeader, [\n 'color',\n 'translucent'\n]);\nexport const IonCardSubtitle = /*@__PURE__*/ defineContainer('ion-card-subtitle', defineIonCardSubtitle, [\n 'color'\n]);\nexport const IonCardTitle = /*@__PURE__*/ defineContainer('ion-card-title', defineIonCardTitle, [\n 'color'\n]);\nexport const IonCheckbox = /*@__PURE__*/ defineContainer('ion-checkbox', defineIonCheckbox, [\n 'color',\n 'name',\n 'checked',\n 'indeterminate',\n 'disabled',\n 'value',\n 'labelPlacement',\n 'justify',\n 'alignment',\n 'legacy',\n 'ionChange',\n 'ionFocus',\n 'ionBlur',\n 'ionStyle'\n], 'checked', 'v-ion-change', 'ionChange');\nexport const IonChip = /*@__PURE__*/ defineContainer('ion-chip', defineIonChip, [\n 'color',\n 'outline',\n 'disabled'\n]);\nexport const IonCol = /*@__PURE__*/ defineContainer('ion-col', defineIonCol, [\n 'offset',\n 'offsetXs',\n 'offsetSm',\n 'offsetMd',\n 'offsetLg',\n 'offsetXl',\n 'pull',\n 'pullXs',\n 'pullSm',\n 'pullMd',\n 'pullLg',\n 'pullXl',\n 'push',\n 'pushXs',\n 'pushSm',\n 'pushMd',\n 'pushLg',\n 'pushXl',\n 'size',\n 'sizeXs',\n 'sizeSm',\n 'sizeMd',\n 'sizeLg',\n 'sizeXl'\n]);\nexport const IonContent = /*@__PURE__*/ defineContainer('ion-content', defineIonContent, [\n 'color',\n 'fullscreen',\n 'forceOverscroll',\n 'scrollX',\n 'scrollY',\n 'scrollEvents',\n 'ionScrollStart',\n 'ionScroll',\n 'ionScrollEnd'\n]);\nexport const IonDatetime = /*@__PURE__*/ defineContainer('ion-datetime', defineIonDatetime, [\n 'color',\n 'name',\n 'disabled',\n 'readonly',\n 'isDateEnabled',\n 'min',\n 'max',\n 'presentation',\n 'cancelText',\n 'doneText',\n 'clearText',\n 'yearValues',\n 'monthValues',\n 'dayValues',\n 'hourValues',\n 'minuteValues',\n 'locale',\n 'firstDayOfWeek',\n 'titleSelectedDatesFormatter',\n 'multiple',\n 'highlightedDates',\n 'value',\n 'showDefaultTitle',\n 'showDefaultButtons',\n 'showClearButton',\n 'showDefaultTimeLabel',\n 'hourCycle',\n 'size',\n 'preferWheel',\n 'ionCancel',\n 'ionChange',\n 'ionValueChange',\n 'ionFocus',\n 'ionBlur',\n 'ionStyle',\n 'ionRender'\n], 'value', 'v-ion-change', 'ionChange');\nexport const IonDatetimeButton = /*@__PURE__*/ defineContainer('ion-datetime-button', defineIonDatetimeButton, [\n 'color',\n 'disabled',\n 'datetime'\n]);\nexport const IonFab = /*@__PURE__*/ defineContainer('ion-fab', defineIonFab, [\n 'horizontal',\n 'vertical',\n 'edge',\n 'activated'\n]);\nexport const IonFabButton = /*@__PURE__*/ defineContainer('ion-fab-button', defineIonFabButton, [\n 'color',\n 'activated',\n 'disabled',\n 'download',\n 'href',\n 'rel',\n 'routerDirection',\n 'routerAnimation',\n 'target',\n 'show',\n 'translucent',\n 'type',\n 'size',\n 'closeIcon',\n 'ionFocus',\n 'ionBlur'\n]);\nexport const IonFabList = /*@__PURE__*/ defineContainer('ion-fab-list', defineIonFabList, [\n 'activated',\n 'side'\n]);\nexport const IonFooter = /*@__PURE__*/ defineContainer('ion-footer', defineIonFooter, [\n 'collapse',\n 'translucent'\n]);\nexport const IonGrid = /*@__PURE__*/ defineContainer('ion-grid', defineIonGrid, [\n 'fixed'\n]);\nexport const IonHeader = /*@__PURE__*/ defineContainer('ion-header', defineIonHeader, [\n 'collapse',\n 'translucent'\n]);\nexport const IonImg = /*@__PURE__*/ defineContainer('ion-img', defineIonImg, [\n 'alt',\n 'src',\n 'ionImgWillLoad',\n 'ionImgDidLoad',\n 'ionError'\n]);\nexport const IonInfiniteScroll = /*@__PURE__*/ defineContainer('ion-infinite-scroll', defineIonInfiniteScroll, [\n 'threshold',\n 'disabled',\n 'position',\n 'ionInfinite'\n]);\nexport const IonInfiniteScrollContent = /*@__PURE__*/ defineContainer('ion-infinite-scroll-content', defineIonInfiniteScrollContent, [\n 'loadingSpinner',\n 'loadingText'\n]);\nexport const IonInput = /*@__PURE__*/ defineContainer('ion-input', defineIonInput, [\n 'color',\n 'accept',\n 'autocapitalize',\n 'autocomplete',\n 'autocorrect',\n 'autofocus',\n 'clearInput',\n 'clearOnEdit',\n 'counter',\n 'counterFormatter',\n 'debounce',\n 'disabled',\n 'enterkeyhint',\n 'errorText',\n 'fill',\n 'inputmode',\n 'helperText',\n 'label',\n 'labelPlacement',\n 'legacy',\n 'max',\n 'maxlength',\n 'min',\n 'minlength',\n 'multiple',\n 'name',\n 'pattern',\n 'placeholder',\n 'readonly',\n 'required',\n 'shape',\n 'spellcheck',\n 'step',\n 'size',\n 'type',\n 'value',\n 'ionInput',\n 'ionChange',\n 'ionBlur',\n 'ionFocus',\n 'ionStyle'\n], 'value', 'v-ion-input', 'ionInput');\nexport const IonItem = /*@__PURE__*/ defineContainer('ion-item', defineIonItem, [\n 'color',\n 'button',\n 'detail',\n 'detailIcon',\n 'disabled',\n 'download',\n 'fill',\n 'shape',\n 'href',\n 'rel',\n 'lines',\n 'counter',\n 'routerAnimation',\n 'routerDirection',\n 'target',\n 'type',\n 'counterFormatter'\n]);\nexport const IonItemDivider = /*@__PURE__*/ defineContainer('ion-item-divider', defineIonItemDivider, [\n 'color',\n 'sticky'\n]);\nexport const IonItemGroup = /*@__PURE__*/ defineContainer('ion-item-group', defineIonItemGroup);\nexport const IonItemOption = /*@__PURE__*/ defineContainer('ion-item-option', defineIonItemOption, [\n 'color',\n 'disabled',\n 'download',\n 'expandable',\n 'href',\n 'rel',\n 'target',\n 'type'\n]);\nexport const IonItemOptions = /*@__PURE__*/ defineContainer('ion-item-options', defineIonItemOptions, [\n 'side',\n 'ionSwipe'\n]);\nexport const IonItemSliding = /*@__PURE__*/ defineContainer('ion-item-sliding', defineIonItemSliding, [\n 'disabled',\n 'ionDrag'\n]);\nexport const IonLabel = /*@__PURE__*/ defineContainer('ion-label', defineIonLabel, [\n 'color',\n 'position',\n 'ionColor',\n 'ionStyle'\n]);\nexport const IonList = /*@__PURE__*/ defineContainer('ion-list', defineIonList, [\n 'lines',\n 'inset'\n]);\nexport const IonListHeader = /*@__PURE__*/ defineContainer('ion-list-header', defineIonListHeader, [\n 'color',\n 'lines'\n]);\nexport const IonMenu = /*@__PURE__*/ defineContainer('ion-menu', defineIonMenu, [\n 'contentId',\n 'menuId',\n 'type',\n 'disabled',\n 'side',\n 'swipeGesture',\n 'maxEdgeStart',\n 'ionWillOpen',\n 'ionWillClose',\n 'ionDidOpen',\n 'ionDidClose',\n 'ionMenuChange'\n]);\nexport const IonMenuButton = /*@__PURE__*/ defineContainer('ion-menu-button', defineIonMenuButton, [\n 'color',\n 'disabled',\n 'menu',\n 'autoHide',\n 'type'\n]);\nexport const IonMenuToggle = /*@__PURE__*/ defineContainer('ion-menu-toggle', defineIonMenuToggle, [\n 'menu',\n 'autoHide'\n]);\nexport const IonNav = /*@__PURE__*/ defineContainer('ion-nav', defineIonNav, [\n 'delegate',\n 'swipeGesture',\n 'animated',\n 'animation',\n 'rootParams',\n 'root',\n 'ionNavWillLoad',\n 'ionNavWillChange',\n 'ionNavDidChange'\n]);\nexport const IonNavLink = /*@__PURE__*/ defineContainer('ion-nav-link', defineIonNavLink, [\n 'component',\n 'componentProps',\n 'routerDirection',\n 'routerAnimation'\n]);\nexport const IonNote = /*@__PURE__*/ defineContainer('ion-note', defineIonNote, [\n 'color'\n]);\nexport const IonProgressBar = /*@__PURE__*/ defineContainer('ion-progress-bar', defineIonProgressBar, [\n 'type',\n 'reversed',\n 'value',\n 'buffer',\n 'color'\n]);\nexport const IonRadio = /*@__PURE__*/ defineContainer('ion-radio', defineIonRadio, [\n 'color',\n 'name',\n 'disabled',\n 'value',\n 'labelPlacement',\n 'legacy',\n 'justify',\n 'alignment',\n 'ionStyle',\n 'ionFocus',\n 'ionBlur'\n], 'value', 'v-ion-change', 'ionChange');\nexport const IonRadioGroup = /*@__PURE__*/ defineContainer('ion-radio-group', defineIonRadioGroup, [\n 'allowEmptySelection',\n 'name',\n 'value',\n 'ionChange',\n 'ionValueChange'\n], 'value', 'v-ion-change', 'ionChange');\nexport const IonRange = /*@__PURE__*/ defineContainer('ion-range', defineIonRange, [\n 'color',\n 'debounce',\n 'name',\n 'label',\n 'dualKnobs',\n 'min',\n 'max',\n 'pin',\n 'pinFormatter',\n 'snaps',\n 'step',\n 'ticks',\n 'activeBarStart',\n 'disabled',\n 'value',\n 'labelPlacement',\n 'legacy',\n 'ionChange',\n 'ionInput',\n 'ionStyle',\n 'ionFocus',\n 'ionBlur',\n 'ionKnobMoveStart',\n 'ionKnobMoveEnd'\n], 'value', 'v-ion-change', 'ionChange');\nexport const IonRefresher = /*@__PURE__*/ defineContainer('ion-refresher', defineIonRefresher, [\n 'pullMin',\n 'pullMax',\n 'closeDuration',\n 'snapbackDuration',\n 'pullFactor',\n 'disabled',\n 'ionRefresh',\n 'ionPull',\n 'ionStart'\n]);\nexport const IonRefresherContent = /*@__PURE__*/ defineContainer('ion-refresher-content', defineIonRefresherContent, [\n 'pullingIcon',\n 'pullingText',\n 'refreshingSpinner',\n 'refreshingText'\n]);\nexport const IonReorder = /*@__PURE__*/ defineContainer('ion-reorder', defineIonReorder);\nexport const IonReorderGroup = /*@__PURE__*/ defineContainer('ion-reorder-group', defineIonReorderGroup, [\n 'disabled',\n 'ionItemReorder'\n]);\nexport const IonRippleEffect = /*@__PURE__*/ defineContainer('ion-ripple-effect', defineIonRippleEffect, [\n 'type'\n]);\nexport const IonRow = /*@__PURE__*/ defineContainer('ion-row', defineIonRow);\nexport const IonSearchbar = /*@__PURE__*/ defineContainer('ion-searchbar', defineIonSearchbar, [\n 'color',\n 'animated',\n 'autocomplete',\n 'autocorrect',\n 'cancelButtonIcon',\n 'cancelButtonText',\n 'clearIcon',\n 'debounce',\n 'disabled',\n 'inputmode',\n 'enterkeyhint',\n 'name',\n 'placeholder',\n 'searchIcon',\n 'showCancelButton',\n 'showClearButton',\n 'spellcheck',\n 'type',\n 'value',\n 'ionInput',\n 'ionChange',\n 'ionCancel',\n 'ionClear',\n 'ionBlur',\n 'ionFocus',\n 'ionStyle'\n], 'value', 'v-ion-input', 'ionInput');\nexport const IonSegment = /*@__PURE__*/ defineContainer('ion-segment', defineIonSegment, [\n 'color',\n 'disabled',\n 'scrollable',\n 'swipeGesture',\n 'value',\n 'selectOnFocus',\n 'ionChange',\n 'ionSelect',\n 'ionStyle'\n], 'value', 'v-ion-change', 'ionChange');\nexport const IonSegmentButton = /*@__PURE__*/ defineContainer('ion-segment-button', defineIonSegmentButton, [\n 'disabled',\n 'layout',\n 'type',\n 'value'\n], 'value', 'v-ion-change', 'ionChange');\nexport const IonSelect = /*@__PURE__*/ defineContainer('ion-select', defineIonSelect, [\n 'cancelText',\n 'color',\n 'compareWith',\n 'disabled',\n 'fill',\n 'interface',\n 'interfaceOptions',\n 'justify',\n 'label',\n 'labelPlacement',\n 'legacy',\n 'multiple',\n 'name',\n 'okText',\n 'placeholder',\n 'selectedText',\n 'toggleIcon',\n 'expandedIcon',\n 'shape',\n 'value',\n 'ionChange',\n 'ionCancel',\n 'ionDismiss',\n 'ionFocus',\n 'ionBlur',\n 'ionStyle'\n], 'value', 'v-ion-change', 'ionChange');\nexport const IonSelectOption = /*@__PURE__*/ defineContainer('ion-select-option', defineIonSelectOption, [\n 'disabled',\n 'value'\n]);\nexport const IonSkeletonText = /*@__PURE__*/ defineContainer('ion-skeleton-text', defineIonSkeletonText, [\n 'animated',\n 'ionStyle'\n]);\nexport const IonSpinner = /*@__PURE__*/ defineContainer('ion-spinner', defineIonSpinner, [\n 'color',\n 'duration',\n 'name',\n 'paused'\n]);\nexport const IonSplitPane = /*@__PURE__*/ defineContainer('ion-split-pane', defineIonSplitPane, [\n 'contentId',\n 'disabled',\n 'when',\n 'ionSplitPaneVisible'\n]);\nexport const IonText = /*@__PURE__*/ defineContainer('ion-text', defineIonText, [\n 'color'\n]);\nexport const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineIonTextarea, [\n 'color',\n 'autocapitalize',\n 'autofocus',\n 'clearOnEdit',\n 'debounce',\n 'disabled',\n 'fill',\n 'inputmode',\n 'enterkeyhint',\n 'maxlength',\n 'minlength',\n 'name',\n 'placeholder',\n 'readonly',\n 'required',\n 'spellcheck',\n 'cols',\n 'rows',\n 'wrap',\n 'autoGrow',\n 'value',\n 'counter',\n 'counterFormatter',\n 'errorText',\n 'helperText',\n 'label',\n 'labelPlacement',\n 'legacy',\n 'shape',\n 'ionChange',\n 'ionInput',\n 'ionStyle',\n 'ionBlur',\n 'ionFocus'\n], 'value', 'v-ion-input', 'ionInput');\nexport const IonThumbnail = /*@__PURE__*/ defineContainer('ion-thumbnail', defineIonThumbnail);\nexport const IonTitle = /*@__PURE__*/ defineContainer('ion-title', defineIonTitle, [\n 'color',\n 'size',\n 'ionStyle'\n]);\nexport const IonToggle = /*@__PURE__*/ defineContainer('ion-toggle', defineIonToggle, [\n 'color',\n 'name',\n 'checked',\n 'disabled',\n 'value',\n 'enableOnOffLabels',\n 'labelPlacement',\n 'legacy',\n 'justify',\n 'alignment',\n 'ionChange',\n 'ionFocus',\n 'ionBlur',\n 'ionStyle'\n], 'checked', 'v-ion-change', 'ionChange');\nexport const IonToolbar = /*@__PURE__*/ defineContainer('ion-toolbar', defineIonToolbar, [\n 'color'\n]);\n//# sourceMappingURL=proxies.js.map","export const useBackButton = (priority, handler) => {\n const callback = (ev) => ev.detail.register(priority, handler);\n const unregister = () => document.removeEventListener(\"ionBackButton\", callback);\n document.addEventListener(\"ionBackButton\", callback);\n return { unregister };\n};\n//# sourceMappingURL=back-button.js.map","import { ref } from \"vue\";\nexport const useKeyboard = () => {\n const isOpen = ref(false);\n const keyboardHeight = ref(0);\n const showCallback = (ev) => {\n isOpen.value = true;\n keyboardHeight.value = ev.detail.keyboardHeight;\n };\n const hideCallback = () => {\n isOpen.value = false;\n keyboardHeight.value = 0;\n };\n const unregister = () => {\n if (typeof window !== \"undefined\") {\n window.removeEventListener(\"ionKeyboardDidShow\", showCallback);\n window.removeEventListener(\"ionKeyboardDidHide\", hideCallback);\n }\n };\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"ionKeyboardDidShow\", showCallback);\n window.addEventListener(\"ionKeyboardDidHide\", hideCallback);\n }\n return {\n isOpen,\n keyboardHeight,\n unregister,\n };\n};\n//# sourceMappingURL=keyboard.js.map","import { LIFECYCLE_DID_ENTER, LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_ENTER, LIFECYCLE_WILL_LEAVE, } from \"@ionic/core/components\";\n// TODO(FW-2969): types\nexport var LifecycleHooks;\n(function (LifecycleHooks) {\n LifecycleHooks[\"WillEnter\"] = \"onIonViewWillEnter\";\n LifecycleHooks[\"DidEnter\"] = \"onIonViewDidEnter\";\n LifecycleHooks[\"WillLeave\"] = \"onIonViewWillLeave\";\n LifecycleHooks[\"DidLeave\"] = \"onIonViewDidLeave\";\n})(LifecycleHooks || (LifecycleHooks = {}));\nconst hookNames = {\n [LIFECYCLE_WILL_ENTER]: LifecycleHooks.WillEnter,\n [LIFECYCLE_DID_ENTER]: LifecycleHooks.DidEnter,\n [LIFECYCLE_WILL_LEAVE]: LifecycleHooks.WillLeave,\n [LIFECYCLE_DID_LEAVE]: LifecycleHooks.DidLeave,\n};\nconst ids = { main: 0 };\nexport const generateId = (type = \"main\") => {\n var _a;\n const id = ((_a = ids[type]) !== null && _a !== void 0 ? _a : 0) + 1;\n ids[type] = id;\n return id.toString();\n};\nexport const fireLifecycle = (vueComponent, vueInstance, lifecycle) => {\n if (vueComponent === null || vueComponent === void 0 ? void 0 : vueComponent[lifecycle]) {\n vueComponent[lifecycle].bind(vueInstance === null || vueInstance === void 0 ? void 0 : vueInstance.value)();\n }\n const instance = vueInstance === null || vueInstance === void 0 ? void 0 : vueInstance.value;\n if (instance === null || instance === void 0 ? void 0 : instance[lifecycle]) {\n instance[lifecycle]();\n }\n /**\n * Fire any Composition API\n * Ionic Lifecycle hooks\n */\n if (instance) {\n const hook = hookNames[lifecycle];\n const hooks = instance[hook];\n if (hooks) {\n hooks.forEach((hook) => hook());\n }\n }\n};\nexport const getConfig = () => {\n if (typeof window !== \"undefined\") {\n const Ionic = window.Ionic;\n if (Ionic && Ionic.config) {\n return Ionic.config;\n }\n }\n return null;\n};\n//# sourceMappingURL=utils.js.map","import { getCurrentInstance } from \"vue\";\nimport { LifecycleHooks } from \"../utils\";\n/**\n * Creates an returns a function that\n * can be used to provide a lifecycle hook.\n */\nconst injectHook = (lifecycleType, hook, component) => {\n if (component) {\n // Add to public instance so it is accessible to IonRouterOutlet\n const target = component;\n const hooks = target.proxy[lifecycleType] || (target.proxy[lifecycleType] = []);\n /**\n * Define property on public instances using `setup` syntax in Vue 3.x\n */\n if (target.exposed) {\n target.exposed[lifecycleType] = hooks;\n }\n const wrappedHook = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n return args ? hook(...args) : hook();\n };\n hooks.push(wrappedHook);\n return wrappedHook;\n }\n else {\n console.warn(\"[@ionic/vue]: Ionic Lifecycle Hooks can only be used during execution of setup().\");\n }\n};\nconst createHook = (lifecycle) => {\n return (hook, target = getCurrentInstance()) => injectHook(lifecycle, hook, target);\n};\nexport const onIonViewWillEnter = createHook(LifecycleHooks.WillEnter);\nexport const onIonViewDidEnter = createHook(LifecycleHooks.DidEnter);\nexport const onIonViewWillLeave = createHook(LifecycleHooks.WillLeave);\nexport const onIonViewDidLeave = createHook(LifecycleHooks.DidLeave);\n//# sourceMappingURL=lifecycle.js.map","import { inject } from \"vue\";\n/**\n * Used to navigate within Vue Router\n * while controlling the animation.\n */\nexport const useIonRouter = () => {\n const { canGoBack, goBack, goForward, handleNavigate } = inject(\"navManager\");\n const navigate = (location, routerDirection, routerAction, routerAnimation) => handleNavigate(location, routerAction, routerDirection, routerAnimation);\n const push = (location, routerAnimation) => navigate(location, \"forward\", \"push\", routerAnimation);\n const replace = (location, routerAnimation) => navigate(location, \"root\", \"replace\", routerAnimation);\n const back = (routerAnimation) => goBack(routerAnimation);\n const forward = (routerAnimation) => goForward(routerAnimation);\n return {\n canGoBack,\n push,\n replace,\n back,\n forward,\n navigate,\n };\n};\n//# sourceMappingURL=router.js.map","import { initialize } from \"@ionic/core/components\";\n// TODO(FW-2969): types\n/**\n * We need to make sure that the web component fires an event\n * that will not conflict with the user's @ionChange binding,\n * otherwise the binding's callback will fire before any\n * v-model values have been updated.\n */\nconst toKebabCase = (eventName) => {\n const kebabConvert = (name) => name.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, \"$1-$2\").toLowerCase();\n switch (eventName) {\n case \"ionInput\":\n return \"v-ion-input\";\n case \"ionChange\":\n return \"v-ion-change\";\n default:\n return kebabConvert(eventName);\n }\n};\nconst getHelperFunctions = () => {\n return {\n ael: (el, eventName, cb, opts) => el.addEventListener(toKebabCase(eventName), cb, opts),\n rel: (el, eventName, cb, opts) => el.removeEventListener(toKebabCase(eventName), cb, opts),\n ce: (eventName, opts) => new CustomEvent(toKebabCase(eventName), opts),\n };\n};\nexport const IonicVue = {\n async install(_, config = {}) {\n /**\n * By default Ionic Framework hides elements that\n * are not hydrated, but in the CE build there is no\n * hydration.\n * TODO FW-2797: Remove when all integrations have been\n * migrated to CE build.\n */\n if (typeof document !== \"undefined\") {\n document.documentElement.classList.add(\"ion-ce\");\n }\n const { ael, rel, ce } = getHelperFunctions();\n initialize(Object.assign(Object.assign({}, config), { _ael: ael, _rel: rel, _ce: ce }));\n },\n};\n//# sourceMappingURL=ionic-vue.js.map","import { defineCustomElement } from \"@ionic/core/components/ion-back-button.js\";\nimport { h, inject, defineComponent } from \"vue\";\nexport const IonBackButton = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {\n defineCustomElement();\n // TODO(FW-2969): type\n const ionRouter = inject(\"navManager\");\n const onClick = () => {\n /**\n * When using ion-back-button outside of\n * a routing context, ionRouter is undefined.\n */\n if (ionRouter === undefined) {\n return;\n }\n const defaultHref = attrs[\"default-href\"] || attrs[\"defaultHref\"];\n const routerAnimation = attrs[\"router-animation\"] || attrs[\"routerAnimation\"];\n ionRouter.handleNavigateBack(defaultHref, routerAnimation);\n };\n return () => {\n return h(\"ion-back-button\", Object.assign({ onClick }, attrs), slots.default && slots.default());\n };\n});\nIonBackButton.name = \"IonBackButton\";\n//# sourceMappingURL=IonBackButton.js.map","import { h, defineComponent } from \"vue\";\nexport const IonPage = /*@__PURE__*/ defineComponent({\n name: \"IonPage\",\n props: {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n registerIonPage: { type: Function, default: () => { } },\n },\n mounted() {\n this.$props.registerIonPage(this.$refs.ionPage);\n },\n setup(_, { attrs, slots }) {\n return () => {\n return h(\"div\", Object.assign(Object.assign({}, attrs), { [\"class\"]: \"ion-page\", ref: \"ionPage\" }), slots.default && slots.default());\n };\n },\n});\n//# sourceMappingURL=IonPage.js.map","import { LIFECYCLE_DID_ENTER, LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_ENTER, LIFECYCLE_WILL_LEAVE, } from \"@ionic/core/components\";\nimport { defineCustomElement } from \"@ionic/core/components/ion-router-outlet.js\";\nimport { h, defineComponent, ref, computed, inject, provide, watch, shallowRef, onUnmounted, } from \"vue\";\nimport { matchedRouteKey, routeLocationKey, useRoute } from \"vue-router\";\nimport { fireLifecycle, generateId, getConfig } from \"../utils\";\n// TODO(FW-2969): types\nconst isViewVisible = (enteringEl) => {\n return (!enteringEl.classList.contains(\"ion-page-hidden\") &&\n !enteringEl.classList.contains(\"ion-page-invisible\"));\n};\nconst viewDepthKey = Symbol(0);\nexport const IonRouterOutlet = /*@__PURE__*/ defineComponent({\n name: \"IonRouterOutlet\",\n setup() {\n defineCustomElement();\n const injectedRoute = inject(routeLocationKey);\n const route = useRoute();\n const depth = inject(viewDepthKey, 0);\n const matchedRouteRef = computed(() => route.matched[depth]);\n let previousMatchedRouteRef;\n let previousMatchedPath;\n provide(viewDepthKey, depth + 1);\n provide(matchedRouteKey, matchedRouteRef);\n const ionRouterOutlet = ref();\n const id = generateId(\"ion-router-outlet\");\n const ionRouter = inject(\"navManager\");\n const viewStacks = inject(\"viewStacks\");\n const components = shallowRef([]);\n let skipTransition = false;\n // The base url for this router outlet\n let parentOutletPath;\n /**\n * Note: Do not listen for matchedRouteRef by itself here\n * as the callback will not fire for parameterized routes (i.e. /page/:id).\n * So going from /page/1 to /page/2 would not fire this callback if we\n * only listened for changes to matchedRouteRef.\n */\n watch(() => [route, matchedRouteRef.value], ([currentRoute, currentMatchedRouteRef]) => {\n /**\n * This callback checks whether or not a router outlet\n * needs to respond to a change in the matched route.\n * It handles a few cases:\n * 1. The matched route is undefined. This means that\n * the matched route is not applicable to this outlet.\n * For example, a /settings route is not applicable\n * to a /tabs/... route.\n *\n * Note: When going back to a tabs outlet from a non-tabs outlet,\n * the tabs outlet should NOT attempt a page transition from the\n * previous tab to the active tab. To do this we compare the current\n * route with the previous route. Unfortunately, we cannot rely on the\n * previous value provided by Vue in the watch callback. This is because\n * when coming back to the tabs context, the previous matched route will\n * be undefined (because nothing in the tabs context matches /settings)\n * but the current matched route will be defined and so a transition\n * will always occur.\n *\n * 2. The matched route is defined and is different than\n * the previously matched route. This is the most\n * common case such as when you go from /page1 to /page2.\n *\n * 3. The matched route is the same but the parameters are different.\n * This is a special case for parameterized routes (i.e. /page/:id).\n * When going from /page/1 to /page/2, the matched route object will\n * be the same, but we still need to perform a page transition. To do this\n * we check if the parameters are different (i.e. 1 vs 2). To avoid enumerating\n * all of the keys in the params object, we check the url path to\n * see if they are different after ensuring we are in a parameterized route.\n */\n if (currentMatchedRouteRef !== undefined) {\n const matchedDifferentRoutes = currentMatchedRouteRef !== previousMatchedRouteRef;\n const matchedDifferentParameterRoutes = currentRoute.matched[currentRoute.matched.length - 1] ===\n currentMatchedRouteRef &&\n currentRoute.path !== previousMatchedPath;\n if (matchedDifferentRoutes || matchedDifferentParameterRoutes) {\n setupViewItem(matchedRouteRef);\n }\n }\n previousMatchedRouteRef = currentMatchedRouteRef;\n previousMatchedPath = currentRoute.path;\n });\n const canStart = () => {\n const config = getConfig();\n const swipeEnabled = config &&\n config.get(\"swipeBackEnabled\", ionRouterOutlet.value.mode === \"ios\");\n if (!swipeEnabled)\n return false;\n const stack = viewStacks.getViewStack(id);\n if (!stack || stack.length <= 1)\n return false;\n /**\n * We only want to outlet of the entering view\n * to respond to this gesture, so check\n * to make sure the view is in the outlet we want.\n */\n const routeInfo = ionRouter.getLeavingRouteInfo();\n const enteringViewItem = viewStacks.findViewItemByRouteInfo({ pathname: routeInfo.pushedByRoute || \"\" }, id);\n return !!enteringViewItem;\n };\n const onStart = async () => {\n const routeInfo = ionRouter.getLeavingRouteInfo();\n const { routerAnimation } = routeInfo;\n const enteringViewItem = viewStacks.findViewItemByRouteInfo({ pathname: routeInfo.pushedByRoute || \"\" }, id);\n const leavingViewItem = viewStacks.findViewItemByRouteInfo(routeInfo, id);\n if (leavingViewItem) {\n let animationBuilder = routerAnimation;\n const enteringEl = enteringViewItem.ionPageElement;\n const leavingEl = leavingViewItem.ionPageElement;\n /**\n * If we are going back from a page that\n * was presented using a custom animation\n * we should default to using that\n * unless the developer explicitly\n * provided another animation.\n */\n const customAnimation = enteringViewItem.routerAnimation;\n if (animationBuilder === undefined && customAnimation !== undefined) {\n animationBuilder = customAnimation;\n }\n leavingViewItem.routerAnimation = animationBuilder;\n await transition(enteringEl, leavingEl, \"back\", ionRouter.canGoBack(2), true, animationBuilder);\n }\n return Promise.resolve();\n };\n const onEnd = (shouldContinue) => {\n if (shouldContinue) {\n skipTransition = true;\n /**\n * Use the same logic as clicking\n * ion-back-button to determine where\n * to go back to.\n */\n ionRouter.handleNavigateBack();\n }\n else {\n /**\n * In the event that the swipe\n * gesture was aborted, we should\n * re-hide the page that was going to enter.\n */\n const routeInfo = ionRouter.getCurrentRouteInfo();\n const enteringViewItem = viewStacks.findViewItemByRouteInfo({ pathname: routeInfo.pushedByRoute || \"\" }, id);\n enteringViewItem.ionPageElement.setAttribute(\"aria-hidden\", \"true\");\n enteringViewItem.ionPageElement.classList.add(\"ion-page-hidden\");\n }\n };\n watch(ionRouterOutlet, () => {\n ionRouterOutlet.value.swipeHandler = {\n canStart,\n onStart,\n onEnd,\n };\n });\n const transition = async (enteringEl, leavingEl, direction, showGoBack, progressAnimation, animationBuilder) => {\n if (skipTransition) {\n skipTransition = false;\n return Promise.resolve(false);\n }\n if (enteringEl === leavingEl) {\n return Promise.resolve(false);\n }\n enteringEl.classList.add(\"ion-page-invisible\");\n const hasRootDirection = direction === undefined || direction === \"root\" || direction === \"none\";\n const result = await ionRouterOutlet.value.commit(enteringEl, leavingEl, {\n /**\n * replace operations result in a direction of none.\n * These typically do not have need animations, so we set\n * the duration to 0. However, if a developer explicitly\n * passes an animationBuilder, we should assume that\n * they want an animation to be played even\n * though it is a replace operation.\n */\n duration: hasRootDirection && animationBuilder === undefined ? 0 : undefined,\n direction,\n showGoBack,\n progressAnimation,\n animationBuilder,\n });\n return result;\n };\n const handlePageTransition = async () => {\n const routeInfo = ionRouter.getCurrentRouteInfo();\n const { routerDirection, routerAction, routerAnimation, prevRouteLastPathname, delta, } = routeInfo;\n const enteringViewItem = viewStacks.findViewItemByRouteInfo(routeInfo, id);\n let leavingViewItem = viewStacks.findLeavingViewItemByRouteInfo(routeInfo, id);\n const enteringEl = enteringViewItem.ionPageElement;\n /**\n * All views that can be transitioned to must have\n * an `<ion-page>` element for transitions and lifecycle\n * methods to work properly.\n */\n if (enteringEl === undefined) {\n console.warn(`[@ionic/vue Warning]: The view you are trying to render for path ${routeInfo.pathname} does not have the required <ion-page> component. Transitions and lifecycle methods may not work as expected.\n\nSee https://ionicframework.com/docs/vue/navigation#ionpage for more information.`);\n }\n if (enteringViewItem === leavingViewItem)\n return;\n if (!leavingViewItem && prevRouteLastPathname) {\n leavingViewItem = viewStacks.findViewItemByPathname(prevRouteLastPathname, id);\n }\n /**\n * If the entering view is already\n * visible, then no transition is needed.\n * This is most common when navigating\n * from a tabs page to a non-tabs page\n * and then back to the tabs page.\n * Even when the tabs context navigated away,\n * the inner tabs page was still active.\n * This also avoids an issue where\n * the previous tabs page is incorrectly\n * unmounted since it would automatically\n * unmount the previous view.\n *\n * This should also only apply to entering and\n * leaving items in the same router outlet (i.e.\n * Tab1 and Tab2), otherwise this will\n * return early for swipe to go back when\n * going from a non-tabs page to a tabs page.\n */\n if (isViewVisible(enteringEl) &&\n (leavingViewItem === null || leavingViewItem === void 0 ? void 0 : leavingViewItem.ionPageElement) !== undefined &&\n !isViewVisible(leavingViewItem.ionPageElement)) {\n return;\n }\n fireLifecycle(enteringViewItem.vueComponent, enteringViewItem.vueComponentRef, LIFECYCLE_WILL_ENTER);\n if ((leavingViewItem === null || leavingViewItem === void 0 ? void 0 : leavingViewItem.ionPageElement) &&\n enteringViewItem !== leavingViewItem) {\n let animationBuilder = routerAnimation;\n const leavingEl = leavingViewItem.ionPageElement;\n fireLifecycle(leavingViewItem.vueComponent, leavingViewItem.vueComponentRef, LIFECYCLE_WILL_LEAVE);\n /**\n * If we are going back from a page that\n * was presented using a custom animation\n * we should default to using that\n * unless the developer explicitly\n * provided another animation.\n */\n const customAnimation = enteringViewItem.routerAnimation;\n if (animationBuilder === undefined &&\n routerDirection === \"back\" &&\n customAnimation !== undefined) {\n animationBuilder = customAnimation;\n }\n leavingViewItem.routerAnimation = animationBuilder;\n await transition(enteringEl, leavingEl, routerDirection, !!routeInfo.pushedByRoute, false, animationBuilder);\n leavingEl.classList.add(\"ion-page-hidden\");\n leavingEl.setAttribute(\"aria-hidden\", \"true\");\n const usingLinearNavigation = viewStacks.size() === 1;\n if (routerAction === \"replace\") {\n leavingViewItem.mount = false;\n leavingViewItem.ionPageElement = undefined;\n leavingViewItem.ionRoute = false;\n }\n else if (!(routerAction === \"push\" && routerDirection === \"forward\")) {\n const shouldLeavingViewBeRemoved = routerDirection !== \"none\" &&\n leavingViewItem &&\n enteringViewItem !== leavingViewItem;\n if (shouldLeavingViewBeRemoved) {\n leavingViewItem.mount = false;\n leavingViewItem.ionPageElement = undefined;\n leavingViewItem.ionRoute = false;\n /**\n * router.go() expects navigation to be\n * linear. If an app is using multiple stacks then\n * it is not using linear navigation. As a result, router.go()\n * will not give the results that developers are expecting.\n */\n if (usingLinearNavigation) {\n viewStacks.unmountLeavingViews(id, enteringViewItem, delta);\n }\n }\n }\n else if (usingLinearNavigation) {\n viewStacks.mountIntermediaryViews(id, leavingViewItem, delta);\n }\n fireLifecycle(leavingViewItem.vueComponent, leavingViewItem.vueComponentRef, LIFECYCLE_DID_LEAVE);\n }\n else {\n /**\n * If there is no leaving element, just show\n * the entering element. Wrap it in an raf\n * in case ion-content's fullscreen callback\n * is running. Otherwise we'd have a flicker.\n */\n requestAnimationFrame(() => enteringEl.classList.remove(\"ion-page-invisible\"));\n }\n fireLifecycle(enteringViewItem.vueComponent, enteringViewItem.vueComponentRef, LIFECYCLE_DID_ENTER);\n components.value = viewStacks.getChildrenToRender(id);\n };\n const setupViewItem = (matchedRouteRef) => {\n const firstMatchedRoute = route.matched[0];\n if (!parentOutletPath) {\n parentOutletPath = firstMatchedRoute.path;\n }\n /**\n * If no matched route, do not do anything in this outlet.\n * If there is a match, but it the first matched path\n * is not the root path for this outlet, then this view\n * change needs to be rendered in a different outlet.\n * We also add an exception for when the matchedRouteRef is\n * equal to the first matched route (i.e. the base router outlet).\n * This logic is mainly to help nested outlets/multi-tab\n * setups work better.\n */\n if (!matchedRouteRef.value ||\n (matchedRouteRef.value !== firstMatchedRoute &&\n firstMatchedRoute.path !== parentOutletPath)) {\n return;\n }\n const currentRoute = ionRouter.getCurrentRouteInfo();\n let enteringViewItem = viewStacks.findViewItemByRouteInfo(currentRoute, id);\n if (!enteringViewItem) {\n enteringViewItem = viewStacks.createViewItem(id, matchedRouteRef.value.components.default, matchedRouteRef.value, currentRoute);\n viewStacks.add(enteringViewItem);\n }\n if (!enteringViewItem.mount) {\n enteringViewItem.mount = true;\n enteringViewItem.registerCallback = () => {\n handlePageTransition();\n enteringViewItem.registerCallback = undefined;\n };\n }\n else {\n handlePageTransition();\n }\n components.value = viewStacks.getChildrenToRender(id);\n };\n if (matchedRouteRef.value) {\n setupViewItem(matchedRouteRef);\n }\n /**\n * Remove stack data for this outlet\n * when outlet is destroyed otherwise\n * we will see cached view data.\n */\n onUnmounted(() => viewStacks.clear(id));\n const registerIonPage = (viewItem, ionPageEl) => {\n const oldIonPageEl = viewItem.ionPageElement;\n viewStacks.registerIonPage(viewItem, ionPageEl);\n /**\n * If there is a registerCallback,\n * then this component is being registered\n * as a result of a navigation change.\n */\n if (viewItem.registerCallback) {\n /**\n * Page should be hidden initially\n * to avoid flickering.\n */\n ionPageEl.classList.add(\"ion-page-invisible\");\n viewItem.registerCallback();\n /**\n * If there is no registerCallback, then\n * this component is likely being re-registered\n * as a result of a hot module replacement.\n * We need to see if the oldIonPageEl has\n * .ion-page-invisible. If it does not then we\n * need to remove it from the new ionPageEl otherwise\n * the page will be hidden when it is replaced.\n */\n }\n else if (oldIonPageEl &&\n !oldIonPageEl.classList.contains(\"ion-page-invisible\")) {\n ionPageEl.classList.remove(\"ion-page-invisible\");\n }\n };\n return {\n id,\n components,\n injectedRoute,\n ionRouterOutlet,\n registerIonPage,\n };\n },\n render() {\n const { components, registerIonPage, injectedRoute } = this;\n return h(\"ion-router-outlet\", { ref: \"ionRouterOutlet\" }, components &&\n components.map((c) => {\n var _a, _b;\n let props = {\n ref: c.vueComponentRef,\n key: c.pathname,\n registerIonPage: (ionPageEl) => registerIonPage(c, ionPageEl),\n };\n /**\n * IonRouterOutlet does not support named outlets.\n */\n const routePropsOption = (_b = (_a = c.matchedRoute) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.default;\n /**\n * Since IonRouterOutlet renders multiple components,\n * each render will cause all props functions to be\n * called again. As a result, we need to cache the function\n * result and provide it on each render so that the props\n * are not lost when navigating from and back to a page.\n * When a component is destroyed and re-created, the\n * function is called again.\n */\n const getPropsFunctionResult = () => {\n var _a;\n const cachedPropsResult = (_a = c.vueComponentData) === null || _a === void 0 ? void 0 : _a.propsFunctionResult;\n if (cachedPropsResult) {\n return cachedPropsResult;\n }\n else {\n const propsFunctionResult = routePropsOption(injectedRoute);\n c.vueComponentData = Object.assign(Object.assign({}, c.vueComponentData), { propsFunctionResult });\n return propsFunctionResult;\n }\n };\n const routeProps = routePropsOption\n ? routePropsOption === true\n ? c.params\n : typeof routePropsOption === \"function\"\n ? getPropsFunctionResult()\n : routePropsOption\n : null;\n props = Object.assign(Object.assign({}, props), routeProps);\n return h(c.vueComponent, props);\n }));\n },\n});\n//# sourceMappingURL=IonRouterOutlet.js.map","import { defineCustomElement } from \"@ionic/core/components/ion-tab-button.js\";\nimport { h, defineComponent, inject } from \"vue\";\nexport const IonTabButton = /*@__PURE__*/ defineComponent({\n name: \"IonTabButton\",\n props: {\n _getTabState: {\n type: Function,\n default: () => {\n return {};\n },\n },\n disabled: Boolean,\n download: String,\n href: String,\n rel: String,\n layout: String,\n selected: Boolean,\n tab: String,\n target: String,\n },\n setup(props, { slots }) {\n defineCustomElement();\n // TODO(FW-2969): type\n const ionRouter = inject(\"navManager\");\n const onClick = (ev) => {\n if (ev.cancelable) {\n ev.preventDefault();\n }\n /**\n * Keeping track of the originalHref\n * (i.e. /tabs/tab1) lets us redirect\n * users back to a child page using currentHref\n * (i.e. /tabs/tab1/child).\n */\n const { tab, href, _getTabState } = props;\n const tabState = _getTabState();\n const tappedTab = tabState.tabs[tab] || {};\n const originalHref = tappedTab.originalHref || href;\n const currentHref = tappedTab.currentHref || href;\n const prevActiveTab = tabState.activeTab;\n /**\n * If we are still on the same\n * tab as before, but the base href\n * does not equal the current href,\n * then we must be on a child page and\n * should direct users back to the root\n * of the tab.\n */\n if (prevActiveTab === tab) {\n if (originalHref !== currentHref) {\n ionRouter.resetTab(tab);\n }\n }\n else {\n ionRouter.changeTab(tab, currentHref);\n }\n };\n return () => {\n return h(\"ion-tab-button\", Object.assign({ onClick }, props), slots.default && slots.default());\n };\n },\n});\n//# sourceMappingURL=IonTabButton.js.map","import { h, defineComponent } from \"vue\";\nconst WILL_CHANGE = \"ionTabsWillChange\";\nconst DID_CHANGE = \"ionTabsDidChange\";\n// TODO(FW-2969): types\nexport const IonTabs = /*@__PURE__*/ defineComponent({\n name: \"IonTabs\",\n emits: [WILL_CHANGE, DID_CHANGE],\n render() {\n var _a;\n const { $slots: slots, $emit } = this;\n const slottedContent = slots.default && slots.default();\n let routerOutlet;\n /**\n * Developers must pass an ion-router-outlet\n * inside of ion-tabs.\n */\n if (slottedContent && slottedContent.length > 0) {\n routerOutlet = slottedContent.find((child) => child.type && child.type.name === \"IonRouterOutlet\");\n }\n if (!routerOutlet) {\n throw new Error(\"IonTabs must contain an IonRouterOutlet. See https://ionicframework.com/docs/vue/navigation#working-with-tabs for more information.\");\n }\n let childrenToRender = [\n h(\"div\", {\n class: \"tabs-inner\",\n style: {\n position: \"relative\",\n flex: \"1\",\n contain: \"layout size style\",\n },\n }, routerOutlet),\n ];\n /**\n * If ion-tab-bar has slot=\"top\" it needs to be\n * rendered before `.tabs-inner` otherwise it will\n * not show above the tab content.\n */\n if (slottedContent && slottedContent.length > 0) {\n /**\n * Render all content except for router outlet\n * since that needs to be inside of `.tabs-inner`.\n */\n const filteredContent = slottedContent.filter((child) => !child.type ||\n (child.type && child.type.name !== \"IonRouterOutlet\"));\n const slottedTabBar = filteredContent.find((child) => child.type && child.type.name === \"IonTabBar\");\n const hasTopSlotTabBar = slottedTabBar && ((_a = slottedTabBar.props) === null || _a === void 0 ? void 0 : _a.slot) === \"top\";\n if (slottedTabBar) {\n if (!slottedTabBar.props) {\n slottedTabBar.props = {};\n }\n /**\n * ionTabsWillChange and ionTabsDidChange are\n * fired from `ion-tabs`, so we need to pass these down\n * as props so they can fire when the active tab changes.\n * TODO: We may want to move logic from the tab bar into here\n * so we do not have code split across two components.\n */\n slottedTabBar.props._tabsWillChange = (tab) => $emit(WILL_CHANGE, { tab });\n slottedTabBar.props._tabsDidChange = (tab) => $emit(DID_CHANGE, { tab });\n }\n if (hasTopSlotTabBar) {\n childrenToRender = [...filteredContent, ...childrenToRender];\n }\n else {\n childrenToRender = [...childrenToRender, ...filteredContent];\n }\n }\n return h(\"ion-tabs\", {\n style: {\n display: \"flex\",\n position: \"absolute\",\n top: \"0\",\n left: \"0\",\n right: \"0\",\n bottom: \"0\",\n \"flex-direction\": \"column\",\n width: \"100%\",\n height: \"100%\",\n contain: \"layout size style\",\n \"z-index\": \"0\",\n },\n }, childrenToRender);\n },\n});\n//# sourceMappingURL=IonTabs.js.map","import { defineCustomElement } from \"@ionic/core/components/ion-tab-bar.js\";\nimport { h, defineComponent, getCurrentInstance, inject } from \"vue\";\nconst isTabButton = (child) => { var _a; return ((_a = child.type) === null || _a === void 0 ? void 0 : _a.name) === \"IonTabButton\"; };\nconst getTabs = (nodes) => {\n let tabs = [];\n nodes.forEach((node) => {\n if (isTabButton(node)) {\n tabs.push(node);\n }\n else if (Array.isArray(node.children) && node.children.length > 1) {\n const childTabs = getTabs(node.children);\n tabs = [...tabs, ...childTabs];\n }\n });\n return tabs;\n};\nexport const IonTabBar = defineComponent({\n name: \"IonTabBar\",\n props: {\n /* eslint-disable @typescript-eslint/no-empty-function */\n _tabsWillChange: { type: Function, default: () => { } },\n _tabsDidChange: { type: Function, default: () => { } },\n /* eslint-enable @typescript-eslint/no-empty-function */\n },\n data() {\n return {\n tabState: {\n activeTab: undefined,\n tabs: {},\n },\n tabVnodes: [],\n };\n },\n updated() {\n this.setupTabState(inject(\"navManager\"));\n },\n methods: {\n setupTabState(ionRouter) {\n /**\n * For each tab, we need to keep track of its\n * base href as well as any child page that\n * is active in its stack so that when we go back\n * to a tab from another tab, we can correctly\n * show any child pages if necessary.\n */\n const tabState = this.$data.tabState;\n const currentInstance = getCurrentInstance();\n const tabs = (this.$data.tabVnodes = getTabs((currentInstance.subTree.children || [])));\n tabs.forEach((child) => {\n tabState.tabs[child.props.tab] = {\n originalHref: child.props.href,\n currentHref: child.props.href,\n ref: child,\n };\n /**\n * Passing this prop to each tab button\n * lets it be aware of the state that\n * ion-tab-bar is managing for it.\n */\n child.component.props._getTabState = () => tabState;\n });\n this.checkActiveTab(ionRouter);\n },\n checkActiveTab(ionRouter) {\n const currentRoute = ionRouter.getCurrentRouteInfo();\n const childNodes = this.$data.tabVnodes;\n const { tabs, activeTab: prevActiveTab } = this.$data.tabState;\n const tabState = this.$data.tabState;\n const tabKeys = Object.keys(tabs);\n const activeTab = tabKeys.find((key) => {\n const href = tabs[key].originalHref;\n return currentRoute.pathname.startsWith(href);\n });\n /**\n * For each tab, check to see if the\n * base href has changed. If so, update\n * it in the tabs state.\n */\n childNodes.forEach((child) => {\n const tab = tabs[child.props.tab];\n if (!tab || tab.originalHref !== child.props.href) {\n tabs[child.props.tab] = {\n originalHref: child.props.href,\n currentHref: child.props.href,\n ref: child,\n };\n }\n });\n if (activeTab && prevActiveTab) {\n const prevHref = this.$data.tabState.tabs[prevActiveTab].currentHref;\n /**\n * If the tabs change or the url changes,\n * update the currentHref for the active tab.\n * Ex: url changes from /tabs/tab1 --> /tabs/tab1/child\n * If we went to tab2 then back to tab1, we should\n * land on /tabs/tab1/child instead of /tabs/tab1.\n */\n if (activeTab !== prevActiveTab || prevHref !== currentRoute.pathname) {\n /**\n * By default the search is `undefined` in Ionic Vue,\n * but Vue Router can set the search to the empty string.\n * We check for truthy here because empty string is falsy\n * and currentRoute.search cannot ever be a boolean.\n */\n const search = currentRoute.search ? `?${currentRoute.search}` : \"\";\n tabs[activeTab] = Object.assign(Object.assign({}, tabs[activeTab]), { currentHref: currentRoute.pathname + search });\n }\n /**\n * If navigating back and the tabs change,\n * set the previous tab back to its original href.\n */\n if (currentRoute.routerAction === \"pop\" &&\n activeTab !== prevActiveTab) {\n tabs[prevActiveTab] = Object.assign(Object.assign({}, tabs[prevActiveTab]), { currentHref: tabs[prevActiveTab].originalHref });\n }\n }\n const activeChild = childNodes.find((child) => { var _a; return isTabButton(child) && ((_a = child.props) === null || _a === void 0 ? void 0 : _a.tab) === activeTab; });\n const tabBar = this.$refs.ionTabBar;\n const tabDidChange = activeTab !== prevActiveTab;\n if (tabBar) {\n if (activeChild) {\n tabDidChange && this.$props._tabsWillChange(activeTab);\n ionRouter.handleSetCurrentTab(activeTab);\n tabBar.selectedTab = tabState.activeTab = activeTab;\n tabDidChange && this.$props._tabsDidChange(activeTab);\n /**\n * When going to a tab that does\n * not have an associated ion-tab-button\n * we need to remove the selected state from\n * the old tab.\n */\n }\n else {\n tabBar.selectedTab = tabState.activeTab = \"\";\n }\n }\n },\n },\n mounted() {\n const ionRouter = inject(\"navManager\");\n this.setupTabState(ionRouter);\n ionRouter.registerHistoryChangeListener(() => this.checkActiveTab(ionRouter));\n },\n setup(_, { slots }) {\n defineCustomElement();\n return () => {\n return h(\"ion-tab-bar\", { ref: \"ionTabBar\" }, slots.default && slots.default());\n };\n },\n});\n//# sourceMappingURL=IonTabBar.js.map","import { defineCustomElement } from \"@ionic/core/components/ion-app.js\";\nimport { h, defineComponent, shallowRef } from \"vue\";\nconst userComponents = shallowRef([]);\nexport const IonApp = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {\n defineCustomElement();\n return () => {\n return h(\"ion-app\", Object.assign({}, attrs), [slots.default && slots.default(), ...userComponents.value]);\n };\n});\nIonApp.name = \"IonApp\";\n/**\n * When rendering user components inside of\n * ion-modal, or ion-popover the component\n * needs to be created inside of the current application\n * context otherwise libraries such as vue-i18n or vuex\n * will not work properly.\n *\n * `userComponents` renders teleported components as children\n * of `ion-app` within the current application context.\n */\nexport const addTeleportedUserComponent = (component) => {\n userComponents.value = [...userComponents.value, component];\n};\nexport const removeTeleportedUserComponent = (component) => {\n userComponents.value = userComponents.value.filter((cmp) => cmp !== component);\n};\n//# sourceMappingURL=IonApp.js.map","import { h, Teleport } from \"vue\";\nimport { addTeleportedUserComponent, removeTeleportedUserComponent, } from \"./components/IonApp\";\nexport const VueDelegate = (addFn = addTeleportedUserComponent, removeFn = removeTeleportedUserComponent) => {\n // `h` doesn't provide a type for the component argument\n const refMap = new WeakMap();\n // TODO(FW-2969): types\n const attachViewToDom = (parentElement, componentOrTagName, componentProps = {}, classes) => {\n const div = document.createElement(\"div\");\n classes && div.classList.add(...classes);\n parentElement.appendChild(div);\n const hostComponent = h(Teleport, { to: div }, h(componentOrTagName, Object.assign({}, componentProps)));\n /**\n * Ionic Framework will use what is returned from `attachViewToDom`\n * as the `component` argument in `removeViewFromDom`.\n *\n * We will store a reference to the div element and the host component,\n * so we can later look-up and unmount the correct instance.\n */\n refMap.set(div, hostComponent);\n addFn(hostComponent);\n return Promise.resolve(div);\n };\n const removeViewFromDom = (_container, component) => {\n const hostComponent = refMap.get(component);\n hostComponent && removeFn(hostComponent);\n return Promise.resolve();\n };\n return { attachViewToDom, removeViewFromDom };\n};\n//# sourceMappingURL=framework-delegate.js.map","import { defineCustomElement } from \"@ionic/core/components/ion-nav.js\";\nimport { defineComponent, h, shallowRef } from \"vue\";\nimport { VueDelegate } from \"../framework-delegate\";\nexport const IonNav = /*@__PURE__*/ defineComponent(() => {\n defineCustomElement();\n const views = shallowRef([]);\n /**\n * Allows us to create the component\n * within the Vue application context.\n */\n const addView = (component) => (views.value = [...views.value, component]);\n const removeView = (component) => (views.value = views.value.filter((cmp) => cmp !== component));\n const delegate = VueDelegate(addView, removeView);\n return () => {\n return h(\"ion-nav\", { delegate }, views.value);\n };\n});\nIonNav.name = \"IonNav\";\n//# sourceMappingURL=IonNav.js.map","import { defineCustomElement } from \"ionicons/components/ion-icon.js\";\nimport { h, defineComponent } from \"vue\";\nimport { getConfig } from \"../utils\";\nexport const IonIcon = /*@__PURE__*/ defineComponent({\n name: \"IonIcon\",\n props: {\n color: String,\n flipRtl: Boolean,\n icon: String,\n ios: String,\n lazy: String,\n md: String,\n mode: String,\n name: String,\n size: String,\n src: String,\n },\n setup(props, { slots }) {\n defineCustomElement();\n return () => {\n var _a, _b;\n const { icon, ios, md, mode } = props;\n let iconToUse;\n const config = getConfig();\n const iconMode = mode || (config === null || config === void 0 ? void 0 : config.get(\"mode\"));\n if (ios || md) {\n if (iconMode === \"ios\") {\n iconToUse = (_a = ios !== null && ios !== void 0 ? ios : md) !== null && _a !== void 0 ? _a : icon;\n }\n else {\n iconToUse = (_b = md !== null && md !== void 0 ? md : ios) !== null && _b !== void 0 ? _b : icon;\n }\n }\n else {\n iconToUse = icon;\n }\n return h(\"ion-icon\", Object.assign(Object.assign({}, props), { icon: iconToUse }), slots);\n };\n },\n});\n//# sourceMappingURL=IonIcon.js.map","import { defineComponent, h, ref, onMounted } from 'vue';\nconst EMPTY_PROP = Symbol();\nconst DEFAULT_EMPTY_PROP = { default: EMPTY_PROP };\nexport const defineOverlayContainer = (name, defineCustomElement, componentProps = [], hasDelegateHost, controller) => {\n const createControllerComponent = () => {\n return defineComponent((props, { slots, emit }) => {\n const eventListeners = [\n { componentEv: `${name}-will-present`, frameworkEv: 'willPresent' },\n { componentEv: `${name}-did-present`, frameworkEv: 'didPresent' },\n { componentEv: `${name}-will-dismiss`, frameworkEv: 'willDismiss' },\n { componentEv: `${name}-did-dismiss`, frameworkEv: 'didDismiss' },\n ];\n if (defineCustomElement !== undefined) {\n defineCustomElement();\n }\n const overlay = ref();\n const onVnodeMounted = async () => {\n const isOpen = props.isOpen;\n isOpen && (await present(props));\n };\n const onVnodeUpdated = async (node, prevNode) => {\n const isOpen = node.props.isOpen;\n const prevIsOpen = prevNode.props.isOpen;\n /**\n * Do not do anything if this prop\n * did not change.\n */\n if (isOpen === prevIsOpen)\n return;\n if (isOpen) {\n await present(props);\n }\n else {\n await dismiss();\n }\n };\n const onVnodeBeforeUnmount = async () => {\n await dismiss();\n };\n const dismiss = async () => {\n if (!overlay.value)\n return;\n await overlay.value;\n overlay.value = overlay.value.dismiss();\n await overlay.value;\n overlay.value = undefined;\n };\n const present = async (props) => {\n var _a;\n /**\n * Do not open another instance\n * if one is already opened.\n */\n if (overlay.value) {\n await overlay.value;\n }\n if ((_a = overlay.value) === null || _a === void 0 ? void 0 : _a.present) {\n await overlay.value.present();\n return;\n }\n let restOfProps = {};\n /**\n * We can use Object.entries here\n * to avoid the hasOwnProperty check,\n * but that would require 2 iterations\n * where as this only requires 1.\n */\n for (const key in props) {\n const value = props[key];\n if (props.hasOwnProperty(key) && value !== EMPTY_PROP) {\n restOfProps[key] = value;\n }\n }\n /**\n * These are getting passed as props.\n * Potentially a Vue bug with Web Components?\n */\n delete restOfProps.onWillPresent;\n delete restOfProps.onDidPresent;\n delete restOfProps.onWillDismiss;\n delete restOfProps.onDidDismiss;\n const component = slots.default && slots.default()[0];\n overlay.value = controller.create(Object.assign(Object.assign({}, restOfProps), { component }));\n overlay.value = await overlay.value;\n eventListeners.forEach(eventListener => {\n overlay.value.addEventListener(eventListener.componentEv, () => {\n emit(eventListener.frameworkEv);\n });\n });\n await overlay.value.present();\n };\n return () => {\n return h('div', {\n style: { display: 'none' },\n onVnodeMounted,\n onVnodeUpdated,\n onVnodeBeforeUnmount,\n isOpen: props.isOpen === true\n });\n };\n });\n };\n const createInlineComponent = () => {\n return defineComponent((props, { slots }) => {\n if (defineCustomElement !== undefined) {\n defineCustomElement();\n }\n const isOpen = ref(false);\n const elementRef = ref();\n onMounted(() => {\n elementRef.value.addEventListener('ion-mount', () => isOpen.value = true);\n elementRef.value.addEventListener('will-present', () => isOpen.value = true);\n elementRef.value.addEventListener('did-dismiss', () => isOpen.value = false);\n });\n return () => {\n let restOfProps = {};\n /**\n * We can use Object.entries here\n * to avoid the hasOwnProperty check,\n * but that would require 2 iterations\n * where as this only requires 1.\n */\n for (const key in props) {\n const value = props[key];\n if (props.hasOwnProperty(key) && value !== EMPTY_PROP) {\n restOfProps[key] = value;\n }\n }\n /**\n * Some overlays need a wrapper element so content\n * takes up the full size of the parent overlay.\n */\n const renderChildren = () => {\n if (hasDelegateHost) {\n return h('div', { className: 'ion-delegate-host ion-page' }, slots);\n }\n return slots;\n };\n return h(name, Object.assign(Object.assign({}, restOfProps), { ref: elementRef }), \n /**\n * When binding keepContentsMounted as an attribute\n * i.e. <ion-modal keep-contents-mounted></ion-modal>\n * the value of the prop will be the empty string which is\n * why we still call renderChildren() in that case.\n */\n (isOpen.value || restOfProps.keepContentsMounted || restOfProps.keepContentsMounted === '') ? renderChildren() : undefined);\n };\n });\n };\n const Container = (controller !== undefined) ? createControllerComponent() : createInlineComponent();\n Container.name = name;\n Container.props = {\n 'isOpen': DEFAULT_EMPTY_PROP\n };\n componentProps.forEach(componentProp => {\n Container.props[componentProp] = DEFAULT_EMPTY_PROP;\n });\n if (controller !== undefined) {\n Container.emits = ['willPresent', 'didPresent', 'willDismiss', 'didDismiss'];\n }\n return Container;\n};\n//# sourceMappingURL=overlays.js.map","/**\n * This is an autogenerated file created by 'scripts/copy-overlays.js'.\n * Changes made to this file will be overwritten on build.\n */\nimport { defineCustomElement as defineIonActionSheetCustomElement } from '@ionic/core/components/ion-action-sheet.js';\nimport { defineCustomElement as defineIonAlertCustomElement } from '@ionic/core/components/ion-alert.js';\nimport { defineCustomElement as defineIonLoadingCustomElement } from '@ionic/core/components/ion-loading.js';\nimport { defineCustomElement as defineIonPickerCustomElement } from '@ionic/core/components/ion-picker.js';\nimport { defineCustomElement as defineIonToastCustomElement } from '@ionic/core/components/ion-toast.js';\nimport { defineCustomElement as defineIonModalCustomElement } from '@ionic/core/components/ion-modal.js';\nimport { defineCustomElement as defineIonPopoverCustomElement } from '@ionic/core/components/ion-popover.js';\nimport { defineOverlayContainer } from '../vue-component-lib/overlays';\nexport const IonActionSheet = /*@__PURE__*/ defineOverlayContainer('ion-action-sheet', defineIonActionSheetCustomElement, ['animated', 'backdropDismiss', 'buttons', 'cssClass', 'enterAnimation', 'header', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'mode', 'subHeader', 'translucent', 'trigger']);\nexport const IonAlert = /*@__PURE__*/ defineOverlayContainer('ion-alert', defineIonAlertCustomElement, ['animated', 'backdropDismiss', 'buttons', 'cssClass', 'enterAnimation', 'header', 'htmlAttributes', 'inputs', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'subHeader', 'translucent', 'trigger']);\nexport const IonLoading = /*@__PURE__*/ defineOverlayContainer('ion-loading', defineIonLoadingCustomElement, ['animated', 'backdropDismiss', 'cssClass', 'duration', 'enterAnimation', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'showBackdrop', 'spinner', 'translucent', 'trigger']);\nexport const IonPicker = /*@__PURE__*/ defineOverlayContainer('ion-picker', defineIonPickerCustomElement, ['animated', 'backdropDismiss', 'buttons', 'columns', 'cssClass', 'duration', 'enterAnimation', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'mode', 'showBackdrop', 'trigger']);\nexport const IonToast = /*@__PURE__*/ defineOverlayContainer('ion-toast', defineIonToastCustomElement, ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'translucent', 'trigger']);\nexport const IonModal = /*@__PURE__*/ defineOverlayContainer('ion-modal', defineIonModalCustomElement, ['animated', 'backdropBreakpoint', 'backdropDismiss', 'breakpoints', 'canDismiss', 'enterAnimation', 'handle', 'handleBehavior', 'htmlAttributes', 'initialBreakpoint', 'isOpen', 'keepContentsMounted', 'keyboardClose', 'leaveAnimation', 'mode', 'presentingElement', 'showBackdrop', 'trigger'], true);\nexport const IonPopover = /*@__PURE__*/ defineOverlayContainer('ion-popover', defineIonPopoverCustomElement, ['alignment', 'animated', 'arrow', 'backdropDismiss', 'component', 'componentProps', 'dismissOnSelect', 'enterAnimation', 'event', 'htmlAttributes', 'isOpen', 'keepContentsMounted', 'keyboardClose', 'leaveAnimation', 'mode', 'reference', 'showBackdrop', 'side', 'size', 'translucent', 'trigger', 'triggerAction']);\n//# sourceMappingURL=Overlays.js.map","import { modalController as modalCtrl, popoverController as popoverCtrl, alertController as alertCtrl, actionSheetController as actionSheetCtrl, loadingController as loadingCtrl, pickerController as pickerCtrl, toastController as toastCtrl, } from \"@ionic/core/components\";\nimport { defineCustomElement as defineIonActionSheetCustomElement } from \"@ionic/core/components/ion-action-sheet.js\";\nimport { defineCustomElement as defineIonAlertCustomElement } from \"@ionic/core/components/ion-alert.js\";\nimport { defineCustomElement as defineIonLoadingCustomElement } from \"@ionic/core/components/ion-loading.js\";\nimport { defineCustomElement as defineIonModalCustomElement } from \"@ionic/core/components/ion-modal.js\";\nimport { defineCustomElement as defineIonPickerCustomElement } from \"@ionic/core/components/ion-picker.js\";\nimport { defineCustomElement as defineIonPopoverCustomElement } from \"@ionic/core/components/ion-popover.js\";\nimport { defineCustomElement as defineIonToastCustomElement } from \"@ionic/core/components/ion-toast.js\";\nimport { VueDelegate } from \"./framework-delegate\";\n// TODO(FW-2969): types\n/**\n * Wrap the controllers export from @ionic/core\n * register the underlying Web Component and\n * (optionally) provide a framework delegate.\n */\nconst createController = (defineCustomElement, oldController, useDelegate = false) => {\n const delegate = useDelegate ? VueDelegate() : undefined;\n const oldCreate = oldController.create.bind(oldController);\n oldController.create = (options) => {\n defineCustomElement();\n return oldCreate(Object.assign(Object.assign({}, options), { delegate }));\n };\n return oldController;\n};\nconst modalController = /*@__PURE__*/ createController(defineIonModalCustomElement, modalCtrl, true);\nconst popoverController = /*@__PURE__*/ createController(defineIonPopoverCustomElement, popoverCtrl, true);\nconst alertController = /*@__PURE__*/ createController(defineIonAlertCustomElement, alertCtrl);\nconst actionSheetController = /*@__PURE__*/ createController(defineIonActionSheetCustomElement, actionSheetCtrl);\nconst loadingController = /*@__PURE__*/ createController(defineIonLoadingCustomElement, loadingCtrl);\nconst pickerController = /*@__PURE__*/ createController(defineIonPickerCustomElement, pickerCtrl);\nconst toastController = /*@__PURE__*/ createController(defineIonToastCustomElement, toastCtrl);\nexport { modalController, popoverController, alertController, actionSheetController, loadingController, pickerController, toastController, };\n//# sourceMappingURL=controllers.js.map"],"names":["defineIonAccordion","defineIonAccordionGroup","defineIonAvatar","defineIonBackdrop","defineIonBadge","defineIonBreadcrumb","defineIonBreadcrumbs","defineIonButton","defineIonButtons","defineIonCard","defineIonCardContent","defineIonCardHeader","defineIonCardSubtitle","defineIonCardTitle","defineIonCheckbox","defineIonChip","defineIonCol","defineIonContent","defineIonDatetime","defineIonDatetimeButton","defineIonFab","defineIonFabButton","defineIonFabList","defineIonFooter","defineIonGrid","defineIonHeader","defineIonImg","defineIonInfiniteScroll","defineIonInfiniteScrollContent","defineIonInput","defineIonItem","defineIonItemDivider","defineIonItemGroup","defineIonItemOption","defineIonItemOptions","defineIonItemSliding","defineIonLabel","defineIonList","defineIonListHeader","defineIonMenu","defineIonMenuButton","defineIonMenuToggle","defineIonNavLink","defineIonNote","defineIonProgressBar","defineIonRadio","defineIonRadioGroup","defineIonRange","defineIonRefresher","defineIonRefresherContent","defineIonReorder","defineIonReorderGroup","defineIonRippleEffect","defineIonRow","defineIonSearchbar","defineIonSegment","defineIonSegmentButton","defineIonSelect","defineIonSelectOption","defineIonSkeletonText","defineIonSpinner","defineIonSplitPane","defineIonText","defineIonTextarea","defineIonThumbnail","defineIonTitle","defineIonToggle","defineIonToolbar","defineCustomElement","EMPTY_PROP","DEFAULT_EMPTY_PROP","defineIonActionSheetCustomElement","defineIonAlertCustomElement","defineIonLoadingCustomElement","defineIonPickerCustomElement","defineIonToastCustomElement","defineIonModalCustomElement","defineIonPopoverCustomElement","modalCtrl","popoverCtrl","alertCtrl","actionSheetCtrl","loadingCtrl","pickerCtrl","toastCtrl"],"mappings":"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"}
@@ -28,6 +28,6 @@ export declare const IonTabButton: import("vue").DefineComponent<{
28
28
  target: StringConstructor;
29
29
  }>>, {
30
30
  disabled: boolean;
31
- _getTabState: Function;
32
31
  selected: boolean;
32
+ _getTabState: Function;
33
33
  }>;
@@ -2,7 +2,7 @@
2
2
  "$schema": "http://json.schemastore.org/web-types",
3
3
  "framework": "vue",
4
4
  "name": "@ionic/vue",
5
- "version": "7.5.2-dev.11697814618.1dc5788d",
5
+ "version": "7.5.2-dev.11697834896.1fed55cc",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/vue",
3
- "version": "7.5.2-dev.11697814618.1dc5788d",
3
+ "version": "7.5.2-dev.11697834896.1fed55cc",
4
4
  "description": "Vue specific wrapper for @ionic/core",
5
5
  "scripts": {
6
6
  "eslint": "eslint src",
@@ -8,14 +8,16 @@
8
8
  "lint": "npm run eslint && npm run prettier -- --write --cache",
9
9
  "lint.fix": "npm run eslint -- --fix && npm run prettier -- --write --cache",
10
10
  "test": "jest",
11
- "build": "npm run clean && npm run copy && npm run copy.overlays && npm run bundle && npm run build.vetur && npm run build.web-types",
11
+ "build": "npm run clean && npm run copy && npm run copy.overlays && npm run compile && npm run bundle && npm run build.vetur && npm run build.web-types",
12
12
  "bundle": "rollup --config rollup.config.js",
13
- "bundle.watch": "npm run bundle -- --watch",
14
13
  "clean": "rimraf dist dist-transpiled",
14
+ "compile": "npm run tsc",
15
+ "tsc": "tsc -p .",
15
16
  "build.web-types": "node ./scripts/build-web-types.js",
16
17
  "build.vetur": "node ./scripts/build-vetur.js",
17
18
  "copy": "node ./scripts/copy-css.js",
18
- "copy.overlays": "node ./scripts/copy-overlays.js"
19
+ "copy.overlays": "node ./scripts/copy-overlays.js",
20
+ "sync": "sh ./scripts/sync.sh"
19
21
  },
20
22
  "main": "./dist/index.js",
21
23
  "types": "./dist/types/index.d.ts",
@@ -51,7 +53,6 @@
51
53
  "@babel/types": "^7.18.4",
52
54
  "@ionic/eslint-config": "^0.3.0",
53
55
  "@ionic/prettier-config": "^2.0.0",
54
- "@rollup/plugin-typescript": "^11.1.5",
55
56
  "@typescript-eslint/eslint-plugin": "^5.48.2",
56
57
  "@typescript-eslint/parser": "^5.48.2",
57
58
  "change-case": "^4.1.1",
@@ -65,7 +66,7 @@
65
66
  "vue-router": "^4.0.16"
66
67
  },
67
68
  "dependencies": {
68
- "@ionic/core": "7.5.2-dev.11697814618.1dc5788d",
69
+ "@ionic/core": "7.5.2-dev.11697834896.1fed55cc",
69
70
  "ionicons": "^7.0.0"
70
71
  },
71
72
  "vetur": {