@mixin popup() { // z-indexes $action-menu__viewport-z: 1; $container-z: 1; $main-z: 1; $page-menu-z: 1; $page-menu__viewport-z: 1; // main container // Heights slightly less than half of the correlated view height. $main-container__height--xlarge: 460px !default; $main-container__height--large: 400px !default; $main-container__height--medium: 340px !default; $main-container__height--less-than-medium: 300px !default; $main-container__width--xlarge: 460px !default; $main-container__width--large: 400px !default; $main-container__width--medium: 340px !default; $main-container__width--less-than-medium: 280px !default; // pointer $popup-pointer__width: 12 !default; $popup-pointer__height: 12 !default; $popup-pointer__scale-x: 0.75 !default; $popup-pointer__scale-y: 2 !default; $popup-pointer__scale-x--corner: 1 !default; $popup-pointer__scale-y--corner: 3.5 !default; // actions menu $action-menu__width--max: 50% !default; $action-size: $button-width--half !default; $action-size--image: $button-width--half !default; $footer-button__border-radius: 2px !default; .esri-ui { .esri-popup { pointer-events: none; position: absolute; z-index: $container-z; display: flex; flex-flow: column nowrap; } } .esri-popup--shadow { @include boxShadow("0 1px 4px rgba(0, 0, 0, .8)"); } .esri-popup__button { border-radius: $border-radius; padding: $cap-spacing--half $side-spacing--half; margin: $cap-spacing--half 0; line-height: $line-height; cursor: pointer; user-select: none; color: $interactive-font-color; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; transition: background-color 125ms ease-in-out; } .esri-popup__button--disabled { cursor: default; opacity: $opacity--disabled; color: $interactive-font-color--disabled; } .esri-popup__button:hover { color: $interactive-font-color--hover; background-color: $background-color--hover; } .esri-popup--aligned-top-center { transform-origin: 50% 100%; } .esri-popup--aligned-bottom-center { transform-origin: 50% -5%; } .esri-popup--aligned-top-left, .esri-popup--aligned-bottom-left { transform-origin: 100% 50%; } .esri-popup--aligned-top-right, .esri-popup--aligned-bottom-right { transform-origin: -5% 50%; } .esri-popup--aligned-top-center, .esri-popup--aligned-top-left, .esri-popup--aligned-top-right { animation: popup-intro-animation-down 200ms ease-in-out; } .esri-popup--aligned-bottom-center, .esri-popup--aligned-bottom-left, .esri-popup--aligned-bottom-right { animation: popup-intro-animation-up 200ms ease-in-out; } .esri-popup__main-container { pointer-events: auto; position: relative; z-index: $main-z; width: 340px; max-height: $main-container__height--medium; background-color: $background-color; display: flex; flex-flow: column nowrap; } .esri-popup__header { position: relative; font-size: $font-size__body; align-items: flex-start; justify-content: space-between; display: flex; flex: 0 0 auto; } .esri-popup__header-buttons { padding: 0 $side-spacing--half; margin: 0 0 0 auto; // `auto` here helps place each node at either end of the container node display: flex; } .esri-popup__header-container { flex: 1; } .esri-popup__header-container--button { cursor: pointer; align-items: flex-start; border: none; background: transparent; display: flex; justify-content: flex-start; padding: 0; font-size: 100%; font-family: inherit; color: inherit; text-align: initial; } .esri-popup__header-container--button:hover { background-color: $background-color--hover; } .esri-popup__header-title { border-radius: $border-radius; font-size: $font-size; padding: $cap-spacing--half $side-spacing--half; margin-inline: $side-spacing--half; margin-block: $cap-spacing--half; display: flex; flex: 1 1 auto; transition: background-color 125ms ease-in-out; @include wordbreak(); } .esri-popup__content { display: flex; flex-flow: column nowrap; flex: 1 1 auto; font-size: $font-size__body; font-weight: $font-weight; margin: 0 $side-spacing $cap-spacing; overflow: auto; line-height: normal; --calcite-ui-background: $background-color; } .esri-content--has-flows { margin: 0; border-top: 1px solid $border_color; border-bottom: 1px solid $border_color; } .esri-content__flow-item { padding: $cap-spacing $side-spacing; background-color: $background-color; } .esri-popup__action--exit { transform: scaleX(-1); } .esri-popup__content img { image-orientation: from-image; } .esri-popup__feature-menu-button { align-items: center; cursor: pointer; color: $interactive-font-color; display: flex; font-size: $font-size--small; padding-inline: $side-spacing--three-quarters; border-inline-start: solid 1px $border_color; transition: box-shadow 125ms ease-in-out, background-color 125ms ease-in-out; &:hover { background-color: $background-color--hover; color: $interactive-font-color--hover; } } .esri-popup--feature-menu-open .esri-popup__feature-menu-button { background-color: $background-color--active; color: $font-color; } .esri-popup__feature-menu-button-icon { margin-inline-end: $side-spacing--half; } .esri-popup--feature-menu-open .esri-popup__header, .esri-popup--feature-menu-open .esri-popup__content { flex: 0 1 0px; overflow: hidden; opacity: 0; } .esri-popup--feature-updated { opacity: 0; transition: opacity 375ms ease-out; } .esri-popup--feature-updated-active { opacity: 1; } .esri-popup__pagination-page-text { white-space: nowrap; } .esri-popup__footer { align-items: stretch; border-top: solid 1px $border_color; display: flex; flex: 0 0 auto; justify-content: space-between; } .esri-popup__footer calcite-icon { margin-inline: $side-spacing--quarter; } .esri-popup__footer .esri-popup__button { font-weight: $font-weight; font-size: $font-size--small; position: relative; display: flex; justify-content: flex-start; flex: 0 0 auto; } /* ACTIONS MENU */ .esri-popup__actions { animation: esri-fade-in-scale 125ms ease-in-out; background: $background-color; @include defaultBoxShadow(); color: $interactive-font-color; display: flex; flex-flow: column; margin: $cap-spacing--half $side-spacing--half; max-width: $action-menu__width--max; padding: 0; position: absolute; right: 0; z-index: $action-menu__viewport-z; .esri-popup__button[class*="esri-popup__action"] { align-items: center; border-bottom: 1px solid $border_color; color: $interactive-font-color; display: flex; justify-content: flex-start; padding: $cap-spacing $side-spacing--half; margin-top: 0; margin-bottom: 0; font-size: $font-size--small; &:hover { background-color: $background-color--hover; } &:last-child { border-bottom: none; } .esri-popup__icon { flex: 0 0 $action-size--image; } } } .esri-popup__footer .esri-popup__actions-menu-button { padding-inline: $side-spacing--half; margin-inline-start: $side-spacing--half; transition: box-shadow 125ms ease-in-out; &:hover { background-color: $background-color--hover; } } .esri-popup--actions-menu-open .esri-popup__footer .esri-popup__actions-menu-button { background-color: $background-color--offset; color: $interactive-font-color--hover; } [class*="esri-popup--is-docked-bottom-"].esri-popup--is-docked .esri-popup__actions, [class*="esri-popup--aligned-top-"] .esri-popup__actions { bottom: $button_height; top: auto; transform-origin: bottom center; } [class*="esri-popup--is-docked-top-"].esri-popup--is-docked .esri-popup__actions, [class*="esri-popup--aligned-bottom-"] .esri-popup__actions { bottom: auto; top: $button_height; transform-origin: top center; } .esri-popup__icon { width: $action-size; height: $action-size; display: inline-block; flex: 0 0 $action-size--image; } [class*="esri-popup--is-docked-top-"] .esri-popup__footer, [class*="esri-popup--aligned-bottom-"] .esri-popup__footer { border-top: none; border-bottom: solid 1px $border_color; } .esri-popup__navigation { align-items: stretch; display: flex; flex: 1 0 auto; margin: 0; padding: 0; position: relative; border-inline-start: solid 1px $border_color; .esri-popup__button { margin: 0; padding-inline: $side-spacing--half; align-items: center; } } .esri-popup__inline-actions-container { display: flex; justify-content: flex-start; align-items: center; width: 100%; padding: 0 $side-spacing--half; position: relative; &:only-child { width: 100%; max-width: unset; justify-content: flex-start; .esri-popup__actions-menu-button { margin-inline-start: auto; } } > .esri-popup__action, > .esri-popup__action-toggle { flex: 0 1 auto; } .esri-popup__icon { margin: 0 $side-spacing--quarter; } @include icomoonIconSelector() { margin: 0 $side-spacing--quarter; } } .esri-popup__footer--has-pagination .esri-popup__inline-actions-container { width: 70%; } .esri-popup__action-toggle.esri-popup__action-toggle--on { background-color: $background-color--active; color: $interactive-font-color--hover; &:hover { background-color: $background-color--active; color: $interactive-font-color--hover; } } /////////////// // FEATURE MENU .esri-popup__feature-menu { left: 0; font-size: $font-size__body; font-weight: $font-weight; position: absolute; width: 100%; background-color: $background-color; color: $font-color; z-index: $page-menu-z; margin: $cap-spacing--half 0; max-height: 0; opacity: 0; height: 0; overflow: hidden; @include defaultBoxShadow(); } [class*="esri-popup--is-docked-bottom-"].esri-popup--is-docked .esri-popup__feature-menu, [class*="esri-popup--aligned-top-"] .esri-popup__feature-menu { bottom: $button_height; top: auto; transform-origin: bottom center; } [class*="esri-popup--is-docked-top-"].esri-popup--is-docked .esri-popup__feature-menu, [class*="esri-popup--aligned-bottom-"] .esri-popup__feature-menu { bottom: auto; top: $button_height; transform-origin: top center; } .esri-popup__feature-menu-list { padding: 0; margin: 0; counter-reset: section; } .esri-popup__feature-menu-item { list-style-type: none; border: solid 1px $border-color; display: flex; flex-flow: row nowrap; align-items: center; transition: background-color 125ms ease-in-out; margin-top: -1px; position: relative; } .esri-popup__feature-menu-item:hover, .esri-popup__feature-menu-item:focus { cursor: pointer; background-color: $background-color--hover; } .esri-popup__feature-menu-item::before { counter-increment: section; content: counter(section); display: flex; justify-content: center; flex: 0 0 8%; text-align: center; } .esri-popup__feature-menu-item--selected, .esri-popup__feature-menu-item--selected:hover, .esri-popup__feature-menu-item--selected:focus { background-color: $background-color--active; } .esri-popup__feature-menu-item .esri-icon-check-mark { padding: 0 0.5rem; } .esri-popup__feature-menu-title { display: flex; flex: 1 0 82%; min-height: 1em; margin: 0; padding: 0.8em 4%; border-left: solid 1px rgba(0, 0, 0, 0.25); } .esri-popup__feature-menu-viewport { max-height: 0px; opacity: 0; overflow: auto; position: relative; z-index: $page-menu__viewport-z; } .esri-popup__feature-menu-header { background-color: transparent; border-bottom: solid 1px $border-color; padding: 0; margin: 0; font-weight: $font-weight; font-size: $font-size; line-height: 1.2em; overflow: hidden; position: relative; opacity: 0; } .esri-popup--feature-menu-open .esri-popup__feature-menu { height: auto; opacity: 1; animation: esri-fade-in-scale 125ms ease-out; max-height: none; overflow: visible; } .esri-popup--feature-menu-open .esri-popup__feature-menu-header { padding: $cap-spacing $side-spacing; max-height: none; display: block; opacity: 1; margin: 0; } .esri-popup--feature-menu-open .esri-popup__feature-menu-viewport { max-height: 175px; opacity: 1; padding-top: 1px; } .esri-popup__feature-menu-loader { position: sticky; z-index: 2; padding: 6px; bottom: 10px; text-align: center; pointer-events: none; } .esri-popup__feature-menu-observer { position: relative; z-index: 2; bottom: 20px; text-align: center; } .esri-popup__loading-container { margin: 0 $side-spacing--half; text-align: center; user-select: none; } .esri-popup__action-image { width: $action-size--image; height: $action-size--image; background-size: contain; background-repeat: no-repeat; background-position: 50% 50%; flex: 0 0 $action-size--image; } .esri-popup__action-text { overflow: hidden; text-overflow: ellipsis; } .esri-popup__collapse-button { align-items: center; background-color: $background-color--offset; cursor: pointer; display: flex; flex: 1 0; justify-content: center; padding: $cap-spacing--half 0; } .esri-popup__collapse-icon { margin-block-start: $cap-spacing--three-quarters; } .esri-popup--is-docked.esri-popup--is-docked-bottom-left, .esri-popup--is-docked.esri-popup--is-docked-bottom-right, .esri-popup--is-docked.esri-popup--is-docked-bottom-center, .esri-popup--aligned-top-left, .esri-popup--aligned-top-right, .esri-popup--aligned-top-center { .esri-popup__collapse-icon { transform: rotate(180deg); } } /////////////// // POINTER $half_pointer_width: ($popup-pointer__width * 0.5) + px; $half_pointer_height: ($popup-pointer__height * 0.5) + px; $neg_half_pointer_width: (-($popup-pointer__width * 0.5)) + px; $neg_half_pointer_height: (-($popup-pointer__height * 0.5)) + px; .esri-popup__pointer { position: absolute; width: 0; height: 0; } .esri-popup__pointer-direction { background-color: $background-color; @include pointerStyle($popup-pointer__width, $popup-pointer__height); } .esri-popup--aligned-top-center .esri-popup__pointer { top: 100%; left: 50%; margin: 0 0 0 $neg_half_pointer_width; } .esri-popup--aligned-bottom-center .esri-popup__pointer { bottom: 100%; left: 50%; margin: 0 0 0 $neg_half_pointer_width; } .esri-popup--aligned-top-left .esri-popup__pointer { bottom: $half_pointer_height; right: $half_pointer_width; transform: rotate(-45deg); } .esri-popup--aligned-bottom-left .esri-popup__pointer { top: $half_pointer_height; right: $half_pointer_width; transform: rotate(45deg); } .esri-popup--aligned-top-right .esri-popup__pointer { bottom: $half_pointer_height; left: $half_pointer_width; transform: rotate(45deg); } .esri-popup--aligned-bottom-right .esri-popup__pointer { top: $half_pointer_height; left: $half_pointer_width; transform: rotate(-45deg); } .esri-popup--aligned-top-center .esri-popup__pointer-direction, .esri-popup--aligned-bottom-center .esri-popup__pointer-direction { transform: scale($popup-pointer__scale-x, $popup-pointer__scale-y) rotate(45deg); } .esri-popup--aligned-top-left .esri-popup__pointer-direction, .esri-popup--aligned-bottom-left .esri-popup__pointer-direction, .esri-popup--aligned-top-right .esri-popup__pointer-direction, .esri-popup--aligned-bottom-right .esri-popup__pointer-direction { top: $neg_half_pointer_height; left: $neg_half_pointer_width; transform: scale($popup-pointer__scale-x--corner, $popup-pointer__scale-y--corner) rotate(45deg); } .esri-popup--aligned-top-center .esri-popup__pointer-direction { top: $neg_half_pointer_height; left: 0; } .esri-popup--aligned-bottom-center .esri-popup__pointer-direction { bottom: $neg_half_pointer_height; left: 0; } /////////////////// // SCREEN SIZES // WIDTHS .esri-view-width-xlarge { .esri-popup__main-container { width: $main-container__width--xlarge; } } .esri-view-width-large { .esri-popup__main-container { width: $main-container__width--large; } } .esri-view-width-less-than-large .esri-popup__action-text { display: none; } .esri-view-width-medium { .esri-popup__main-container { width: $main-container__width--medium; } } .esri-view-width-less-than-medium { .esri-popup__main-container { width: $main-container__width--less-than-medium; } } .esri-view-width-xsmall .esri-popup__button[class*="esri-popup__navigation-"], .esri-view-width-xsmall .esri-popup__pagination-page-text { display: none; } .esri-view-width-xsmall .esri-popup--is-docked-bottom-center { margin-bottom: $docked-margin + 1; } .esri-view-width-xsmall .esri-popup--is-docked-top-center, .esri-view-width-xsmall .esri-popup--is-docked-bottom-center { width: auto; margin: 0; } .esri-view-width-xsmall .esri-popup--is-docked-top-center, .esri-view-width-xsmall .esri-popup--is-docked-bottom-center { .esri-popup__main-container { width: 100%; max-height: 75%; position: absolute; left: 0; right: 0; bottom: 0; } &.esri-popup--feature-menu-open { .esri-popup__main-container:before { visibility: hidden; } } } .esri-view-width-xsmall .esri-popup--is-docked-bottom-center { .esri-popup__feature-menu, .esri-popup__actions { bottom: $button-height + $cap-spacing--third; } } // HEIGHTS .esri-view-height-xlarge { @include popupHeight_BasedOnViewSize($main-container__height--xlarge); } .esri-view-height-large { @include popupHeight_BasedOnViewSize($main-container__height--large); } .esri-view-height-less-than-medium { @include popupHeight_BasedOnViewSize($main-container__height--less-than-medium); } // SCREEN SIZES /////////////////// /////////////////// // DOCKED .esri-popup--is-docked { left: 0; bottom: 0; right: 0; top: 0; margin: $docked-margin $docked-margin $docked-margin--double $docked-margin; animation: esri-docking-animation 250ms ease-out; } .esri-ui .esri-popup--is-docked { flex-flow: row nowrap; } .esri-popup--is-docked-top-left, .esri-popup--is-docked-top-center, .esri-popup--is-docked-top-right { align-items: flex-start; .esri-popup__header { padding-top: 2px; } } .esri-popup--is-docked-bottom-left, .esri-popup--is-docked-bottom-center, .esri-popup--is-docked-bottom-right { align-items: flex-end; } .esri-popup--is-docked-top-left, .esri-popup--is-docked-bottom-left { justify-content: flex-start; } .esri-popup--is-docked-top-center, .esri-popup--is-docked-bottom-center { justify-content: center; } .esri-popup--is-docked-top-right, .esri-popup--is-docked-bottom-right { justify-content: flex-end; } .esri-popup--is-docked-top-left .esri-popup__main-container, .esri-popup--is-docked-top-right .esri-popup__main-container, .esri-popup--is-docked-bottom-left .esri-popup__main-container, .esri-popup--is-docked-bottom-right .esri-popup__main-container { max-height: 80%; } .esri-popup--is-docked-top-center .esri-popup__main-container, .esri-popup--is-docked-bottom-center .esri-popup__main-container { max-height: 40%; } // DOCKED //////////////////// //////////////////// // RTL [dir="rtl"] { .esri-widget .esri-popup__header-title, .esri-popup__header-title { margin: $cap-spacing--half $side-spacing--half $cap-spacing--half auto; } .esri-popup__header-buttons { margin: 0 auto 0 0; } .esri-popup__feature-menu-title { border-left: none; border-right: solid 1px rgba(0, 0, 0, 0.25); } .esri-popup__pagination-icon { transform: rotate(180deg); } .esri-popup__actions { right: auto; left: 0; } .esri-popup--is-docked .esri-popup__loading-container { order: 0; } .esri-popup--is-docked-top-left, .esri-popup--is-docked-bottom-left { justify-content: flex-end; } .esri-popup--is-docked-top-right, .esri-popup--is-docked-bottom-right { justify-content: flex-start; } } // RTL //////////////////// } @keyframes esri-docking-animation { 0% { opacity: 0; } 25% { opacity: 0; } 100% { opacity: 1; } } @keyframes popup-intro-animation-down { 0% { transform: translate(0, -5px); opacity: 0; } 100% { transform: translate(0, 0); opacity: 1; } } @keyframes popup-intro-animation-up { 0% { transform: translate(0, 5px); opacity: 0; } 100% { transform: translate(0, 0); opacity: 1; } } @if $include_Popup==true { @include popup(); }