@micromag/screen-keypad 0.3.361 → 0.3.369

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.
@@ -1 +1 @@
1
- .micromag-screen-keypad-popupButton{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-block;font-family:inherit;padding:0}.micromag-screen-keypad-background,.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-buttonLabel,.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-emptyButtonLabel,.micromag-screen-keypad-popupBackdrop,.micromag-screen-keypad-withSquareItems .micromag-screen-keypad-button,.micromag-screen-keypad-withSquareItems .micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-thumbnail,.micromag-screen-keypad-withSquareItems .micromag-screen-keypad-layoutNoLabel .micromag-screen-keypad-thumbnail{height:100%;left:0;position:absolute;top:0;width:100%}.micromag-screen-keypad-container{height:100%;overflow:hidden;position:relative;width:100%}.micromag-screen-keypad-disabled.micromag-screen-keypad-container{overflow:hidden;pointer-events:none}.micromag-screen-keypad-hidden.micromag-screen-keypad-container{display:none;visibility:hidden}.micromag-screen-keypad-placeholder.micromag-screen-keypad-container .micromag-screen-keypad-content{padding:6px;position:relative}.micromag-screen-keypad-emptyText,.micromag-screen-keypad-emptyTitle{border:2px dashed #343434;color:#343434;margin:5px auto}.micromag-screen-keypad-container{-ms-touch-action:none;touch-action:none}.micromag-screen-keypad-container p{font-weight:inherit;margin-bottom:inherit;margin-top:inherit}.micromag-screen-keypad-container.micromag-screen-keypad-isPlaceholder .micromag-screen-keypad-layout{padding:10px}.micromag-screen-keypad-background{z-index:1}.micromag-screen-keypad-header{left:0;position:absolute;top:0;width:100%}.micromag-screen-keypad-footer{bottom:0;left:0;position:absolute;width:100%}.micromag-screen-keypad-inner{height:100%;position:relative;z-index:2}.micromag-screen-keypad-layout{-ms-flex-align:center;-ms-flex-pack:start;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;justify-content:flex-start;text-align:center}.micromag-screen-keypad-emptyText,.micromag-screen-keypad-emptyTitle{margin:10px auto;width:100%}.micromag-screen-keypad-emptyTitle{height:100px}.micromag-screen-keypad-emptyText{height:50px}.micromag-screen-keypad-grid{width:100%}.micromag-screen-keypad-item{height:100%;position:relative}.micromag-screen-keypad-withSquareItems .micromag-screen-keypad-item{height:0;padding-bottom:100%}.micromag-screen-keypad-placeholderItem{height:0;padding-bottom:60%}.micromag-screen-keypad-withSquareItems .micromag-screen-keypad-placeholderItem{padding-bottom:100%}.micromag-screen-keypad-button{-ms-flex-align:center;-ms-flex-pack:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-weight:inherit;height:100%;justify-content:center;overflow:hidden;padding:0;position:relative;-webkit-transition:-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);transition:-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);-o-transition:transform .3s cubic-bezier(.41,1.69,.04,.67);transition:transform .3s cubic-bezier(.41,1.69,.04,.67);transition:transform .3s cubic-bezier(.41,1.69,.04,.67),-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);width:100%}.micromag-screen-keypad-button:hover{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}.micromag-screen-keypad-button:active{-webkit-transform:scale(.95);-ms-transform:scale(.95);transform:scale(.95)}.micromag-screen-keypad-button.micromag-screen-keypad-isEmpty{padding:2px;pointer-events:none}.micromag-screen-keypad-button.micromag-screen-keypad-disableHover,.micromag-screen-keypad-button.micromag-screen-keypad-isEmpty{cursor:default}.micromag-screen-keypad-button.micromag-screen-keypad-disableHover:active,.micromag-screen-keypad-button.micromag-screen-keypad-disableHover:hover,.micromag-screen-keypad-button.micromag-screen-keypad-isEmpty:active,.micromag-screen-keypad-button.micromag-screen-keypad-isEmpty:hover{-webkit-transform:none;-ms-transform:none;transform:none}.micromag-screen-keypad-button.micromag-screen-keypad-isLink{text-decoration:none}.micromag-screen-keypad-button.micromag-screen-keypad-isLink:hover{color:inherit}.micromag-screen-keypad-button .micromag-screen-keypad-buttonPlaceholder,.micromag-screen-keypad-button .micromag-screen-keypad-imagePlaceholder{margin:0;width:100%}.micromag-screen-keypad-buttonVisualPlaceholder{width:100%}.micromag-screen-keypad-thumbnail{max-height:50px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.micromag-screen-keypad-buttonLabel{padding:5px;width:100%}.micromag-screen-keypad-empty{margin-bottom:10px;padding:10px;width:100%}.micromag-screen-keypad-emptyButtonVisual{margin-bottom:5px;padding:10px 5px}.micromag-screen-keypad-emptyButtonLabel{margin-bottom:5px;padding:2px 5px}.micromag-screen-keypad-popup{height:100%;left:0;position:fixed;right:0;top:0;-ms-touch-action:none;touch-action:none;width:100%;z-index:6}.micromag-screen-keypad-popupBackdrop{pointer-events:none;z-index:2}.micromag-screen-keypad-popupButton{height:100%;padding:52px 15px 30px;position:relative;text-align:left;-webkit-transition:-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);transition:-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);-o-transition:transform .3s cubic-bezier(.41,1.69,.04,.67);transition:transform .3s cubic-bezier(.41,1.69,.04,.67);transition:transform .3s cubic-bezier(.41,1.69,.04,.67),-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);width:100%;z-index:3}.micromag-screen-keypad-popupButton:active{-webkit-transform:scale(.95);-ms-transform:scale(.95);transform:scale(.95)}.micromag-screen-keypad-popupInner{background-color:#1c1c1c;overflow:hidden}.micromag-screen-keypad-popupInner .micromag-screen-keypad-popupContent{font-family:inherit;font-style:inherit;font-weight:inherit;line-height:inherit}.micromag-screen-keypad-popupInner .micromag-screen-keypad-popupContent p{font-weight:inherit;margin-bottom:0;margin-top:0}.micromag-screen-keypad-popupWrapper{-ms-flex-align:start;-ms-flex-pack:start;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;justify-content:flex-start;margin-bottom:-.5em}.micromag-screen-keypad-placeholder{mix-blend-mode:normal}.micromag-screen-keypad-popupContent,.micromag-screen-keypad-popupHeading,.micromag-screen-keypad-popupVisual{-ms-flex-positive:1;-ms-flex-negative:0;flex-grow:1;flex-shrink:0;margin-bottom:.5em;width:100%}.micromag-screen-keypad-popupWrapper .micromag-screen-keypad-popupHeading{font-weight:inherit;margin-bottom:.25em}.micromag-screen-keypad-contentSplit .micromag-screen-keypad-emptyHeading,.micromag-screen-keypad-contentSplit .micromag-screen-keypad-popupHeading{-ms-flex-order:1;order:1}.micromag-screen-keypad-contentSplit .micromag-screen-keypad-emptyVisual,.micromag-screen-keypad-contentSplit .micromag-screen-keypad-popupVisual{-ms-flex-order:2;order:2}.micromag-screen-keypad-contentSplit .micromag-screen-keypad-emptyContent,.micromag-screen-keypad-contentSplit .micromag-screen-keypad-popupContent{-ms-flex-order:3;order:3}.micromag-screen-keypad-contentBottom .micromag-screen-keypad-emptyVisual,.micromag-screen-keypad-contentBottom .micromag-screen-keypad-popupVisual{-ms-flex-order:1;order:1}.micromag-screen-keypad-contentBottom .micromag-screen-keypad-emptyHeading,.micromag-screen-keypad-contentBottom .micromag-screen-keypad-popupHeading{-ms-flex-order:2;order:2}.micromag-screen-keypad-contentBottom .micromag-screen-keypad-emptyContent,.micromag-screen-keypad-contentBottom .micromag-screen-keypad-popupContent{-ms-flex-order:3;order:3}.micromag-screen-keypad-popupCTA{margin:0 auto}.micromag-screen-keypad-layoutLabelTop .micromag-screen-keypad-buttonLabel,.micromag-screen-keypad-layoutLabelTop .micromag-screen-keypad-emptyButtonLabel{-ms-flex-order:1;order:1}.micromag-screen-keypad-layoutLabelTop .micromag-screen-keypad-buttonVisual,.micromag-screen-keypad-layoutLabelTop .micromag-screen-keypad-emptyButtonVisual{-ms-flex-order:2;order:2}.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-buttonLabel,.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-emptyButtonLabel,.micromag-screen-keypad-layoutNoLabel .micromag-screen-keypad-buttonLabel,.micromag-screen-keypad-layoutNoLabel .micromag-screen-keypad-emptyButtonLabel{display:none}.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-buttonVisual,.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-emptyButtonVisual,.micromag-screen-keypad-layoutNoLabel .micromag-screen-keypad-buttonVisual,.micromag-screen-keypad-layoutNoLabel .micromag-screen-keypad-emptyButtonVisual{height:100%;width:100%!important}.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-thumbnail,.micromag-screen-keypad-layoutNoLabel .micromag-screen-keypad-thumbnail{max-height:none;-o-object-fit:cover;object-fit:cover;width:100%!important}.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-buttonVisual,.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-emptyButtonVisual{z-index:1}.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-buttonLabel,.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-emptyButtonLabel{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(28,28,28,0)),to(rgba(28,28,28,.75)));background-image:-o-linear-gradient(top,rgba(28,28,28,0),rgba(28,28,28,.75));background-image:linear-gradient(180deg,rgba(28,28,28,0),rgba(28,28,28,.75));bottom:0;display:block;height:auto;top:auto;z-index:2}
1
+ .micromag-screen-keypad-popup,.micromag-screen-keypad-popupButton{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-block;font-family:inherit;padding:0;position:relative}.micromag-screen-keypad-background,.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-buttonLabel,.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-emptyButtonLabel,.micromag-screen-keypad-popupBackdrop,.micromag-screen-keypad-withSquareItems .micromag-screen-keypad-button,.micromag-screen-keypad-withSquareItems .micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-thumbnail,.micromag-screen-keypad-withSquareItems .micromag-screen-keypad-layoutNoLabel .micromag-screen-keypad-thumbnail{height:100%;left:0;position:absolute;top:0;width:100%}.micromag-screen-keypad-container{height:100%;overflow:hidden;position:relative;width:100%}.micromag-screen-keypad-disabled.micromag-screen-keypad-container{overflow:hidden;pointer-events:none}.micromag-screen-keypad-hidden.micromag-screen-keypad-container{display:none;visibility:hidden}.micromag-screen-keypad-placeholder.micromag-screen-keypad-container .micromag-screen-keypad-content{padding:6px;position:relative}.micromag-screen-keypad-emptyText,.micromag-screen-keypad-emptyTitle{border:2px dashed #343434;color:#343434;margin:5px auto}.micromag-screen-keypad-container{-ms-touch-action:none;touch-action:none}.micromag-screen-keypad-container p{font-weight:inherit;margin-bottom:inherit;margin-top:inherit}.micromag-screen-keypad-container.micromag-screen-keypad-isPlaceholder .micromag-screen-keypad-layout{padding:10px}.micromag-screen-keypad-background{z-index:1}.micromag-screen-keypad-header{left:0;position:absolute;top:0;width:100%}.micromag-screen-keypad-footer{bottom:0;left:0;position:absolute;width:100%}.micromag-screen-keypad-inner{height:100%;position:relative;z-index:2}.micromag-screen-keypad-layout{-ms-flex-align:center;-ms-flex-pack:start;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;justify-content:flex-start;text-align:center;-webkit-transition:padding .2s ease-out;-o-transition:padding .2s ease-out;transition:padding .2s ease-out}.micromag-screen-keypad-emptyText,.micromag-screen-keypad-emptyTitle{margin:10px auto;width:100%}.micromag-screen-keypad-emptyTitle{height:100px}.micromag-screen-keypad-emptyText{height:50px}.micromag-screen-keypad-grid{width:85%}.micromag-screen-keypad-item{height:100%;position:relative}.micromag-screen-keypad-withSquareItems .micromag-screen-keypad-item{height:0;padding-bottom:100%}.micromag-screen-keypad-placeholderItem{height:0;padding-bottom:60%}.micromag-screen-keypad-withSquareItems .micromag-screen-keypad-placeholderItem{padding-bottom:100%}.micromag-screen-keypad-button{-ms-flex-align:center;-ms-flex-pack:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-weight:inherit;height:100%;justify-content:center;overflow:hidden;padding:0;position:relative;-webkit-transition:-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);transition:-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);-o-transition:transform .3s cubic-bezier(.41,1.69,.04,.67);transition:transform .3s cubic-bezier(.41,1.69,.04,.67);transition:transform .3s cubic-bezier(.41,1.69,.04,.67),-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);width:100%}.micromag-screen-keypad-button:hover{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}.micromag-screen-keypad-button:active{-webkit-transform:scale(.95);-ms-transform:scale(.95);transform:scale(.95)}.micromag-screen-keypad-button.micromag-screen-keypad-isEmpty{padding:2px;pointer-events:none}.micromag-screen-keypad-button.micromag-screen-keypad-disableHover,.micromag-screen-keypad-button.micromag-screen-keypad-isEmpty{cursor:default}.micromag-screen-keypad-button.micromag-screen-keypad-disableHover:active,.micromag-screen-keypad-button.micromag-screen-keypad-disableHover:hover,.micromag-screen-keypad-button.micromag-screen-keypad-isEmpty:active,.micromag-screen-keypad-button.micromag-screen-keypad-isEmpty:hover{-webkit-transform:none;-ms-transform:none;transform:none}.micromag-screen-keypad-button.micromag-screen-keypad-isLink{text-decoration:none}.micromag-screen-keypad-button.micromag-screen-keypad-isLink:hover{color:inherit}.micromag-screen-keypad-button .micromag-screen-keypad-buttonPlaceholder,.micromag-screen-keypad-button .micromag-screen-keypad-imagePlaceholder{margin:0;width:100%}.micromag-screen-keypad-buttonVisualPlaceholder{width:100%}.micromag-screen-keypad-thumbnail{max-height:50px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.micromag-screen-keypad-buttonLabel{padding:5px;width:100%}.micromag-screen-keypad-empty{margin-bottom:10px;padding:10px;width:100%}.micromag-screen-keypad-emptyButtonVisual{margin-bottom:5px;padding:10px 5px}.micromag-screen-keypad-emptyButtonLabel{margin-bottom:5px;padding:2px 5px}.micromag-screen-keypad-popupBackdrop{-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem);background-color:rgba(0,0,0,.2);pointer-events:none}.micromag-screen-keypad-popup{height:100%;position:fixed;right:0;top:0;-webkit-transition:-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);transition:-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);-o-transition:transform .3s cubic-bezier(.41,1.69,.04,.67);transition:transform .3s cubic-bezier(.41,1.69,.04,.67);transition:transform .3s cubic-bezier(.41,1.69,.04,.67),-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);width:100%}.micromag-screen-keypad-popup:active,.micromag-screen-keypad-popup:hover{-webkit-transform:scale(.95);-ms-transform:scale(.95);transform:scale(.95)}.micromag-screen-keypad-popupButton{height:100%;position:relative;text-align:left;-webkit-transition:-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);transition:-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);-o-transition:transform .3s cubic-bezier(.41,1.69,.04,.67);transition:transform .3s cubic-bezier(.41,1.69,.04,.67);transition:transform .3s cubic-bezier(.41,1.69,.04,.67),-webkit-transform .3s cubic-bezier(.41,1.69,.04,.67);width:100%}.micromag-screen-keypad-popupButton:active{-webkit-transform:scale(.95);-ms-transform:scale(.95);transform:scale(.95)}.micromag-screen-keypad-popupScroll{height:100%;width:100%}.micromag-screen-keypad-popupInner{background-color:#1c1c1c;-webkit-box-shadow:0 0 2px #1c1c1c;box-shadow:0 0 2px #1c1c1c;margin:10% 7.5%;overflow:hidden;position:relative;z-index:40}.micromag-screen-keypad-popupInner .micromag-screen-keypad-popupContent{font-family:inherit;font-style:inherit;font-weight:inherit;line-height:inherit}.micromag-screen-keypad-popupInner .micromag-screen-keypad-popupContent p{font-weight:inherit;margin-bottom:0;margin-top:0}.micromag-screen-keypad-popupWrapper{-ms-flex-align:start;-ms-flex-pack:start;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;justify-content:flex-start;margin-bottom:-.5em}.micromag-screen-keypad-placeholder{mix-blend-mode:normal}.micromag-screen-keypad-popupContent,.micromag-screen-keypad-popupHeading,.micromag-screen-keypad-popupVisual{-ms-flex-positive:1;-ms-flex-negative:0;flex-grow:1;flex-shrink:0;margin-bottom:.5em;width:100%}.micromag-screen-keypad-popupWrapper .micromag-screen-keypad-popupHeading{font-weight:inherit;margin-bottom:.25em}.micromag-screen-keypad-contentSplit .micromag-screen-keypad-emptyHeading,.micromag-screen-keypad-contentSplit .micromag-screen-keypad-popupHeading{-ms-flex-order:1;order:1}.micromag-screen-keypad-contentSplit .micromag-screen-keypad-emptyVisual,.micromag-screen-keypad-contentSplit .micromag-screen-keypad-popupVisual{-ms-flex-order:2;order:2}.micromag-screen-keypad-contentSplit .micromag-screen-keypad-emptyContent,.micromag-screen-keypad-contentSplit .micromag-screen-keypad-popupContent{-ms-flex-order:3;order:3}.micromag-screen-keypad-contentSplit .micromag-screen-keypad-emptyCTA,.micromag-screen-keypad-contentSplit .micromag-screen-keypad-popupCTA{-ms-flex-order:4;order:4}.micromag-screen-keypad-contentBottom .micromag-screen-keypad-emptyVisual,.micromag-screen-keypad-contentBottom .micromag-screen-keypad-popupVisual{-ms-flex-order:1;order:1}.micromag-screen-keypad-contentBottom .micromag-screen-keypad-emptyHeading,.micromag-screen-keypad-contentBottom .micromag-screen-keypad-popupHeading{-ms-flex-order:2;order:2}.micromag-screen-keypad-contentBottom .micromag-screen-keypad-emptyContent,.micromag-screen-keypad-contentBottom .micromag-screen-keypad-popupContent{-ms-flex-order:3;order:3}.micromag-screen-keypad-contentBottom .micromag-screen-keypad-emptyCTA,.micromag-screen-keypad-contentBottom .micromag-screen-keypad-popupCTA{-ms-flex-order:4;order:4}.micromag-screen-keypad-popupCTA{margin:0 auto;z-index:2}.micromag-screen-keypad-layoutLabelTop .micromag-screen-keypad-buttonLabel,.micromag-screen-keypad-layoutLabelTop .micromag-screen-keypad-emptyButtonLabel{-ms-flex-order:1;order:1}.micromag-screen-keypad-layoutLabelTop .micromag-screen-keypad-buttonVisual,.micromag-screen-keypad-layoutLabelTop .micromag-screen-keypad-emptyButtonVisual{-ms-flex-order:2;order:2}.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-buttonLabel,.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-emptyButtonLabel,.micromag-screen-keypad-layoutNoLabel .micromag-screen-keypad-buttonLabel,.micromag-screen-keypad-layoutNoLabel .micromag-screen-keypad-emptyButtonLabel{display:none}.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-buttonVisual,.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-emptyButtonVisual,.micromag-screen-keypad-layoutNoLabel .micromag-screen-keypad-buttonVisual,.micromag-screen-keypad-layoutNoLabel .micromag-screen-keypad-emptyButtonVisual{height:100%;width:100%!important}.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-thumbnail,.micromag-screen-keypad-layoutNoLabel .micromag-screen-keypad-thumbnail{max-height:none;-o-object-fit:cover;object-fit:cover;width:100%!important}.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-buttonVisual,.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-emptyButtonVisual{z-index:1}.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-buttonLabel,.micromag-screen-keypad-layoutLabelOver .micromag-screen-keypad-emptyButtonLabel{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(28,28,28,0)),to(rgba(28,28,28,.75)));background-image:-o-linear-gradient(top,rgba(28,28,28,0),rgba(28,28,28,.75));background-image:linear-gradient(180deg,rgba(28,28,28,0),rgba(28,28,28,.75));bottom:0;display:block;height:auto;top:auto;z-index:2}
package/es/index.js CHANGED
@@ -6,13 +6,13 @@ import { animated } from '@react-spring/web';
6
6
  import camelCase from 'camelcase';
7
7
  import classNames from 'classnames';
8
8
  import PropTypes from 'prop-types';
9
- import React, { useMemo, useState, useCallback, useEffect } from 'react';
9
+ import React, { useRef, useMemo, useState, useCallback, useEffect } from 'react';
10
10
  import { PropTypes as PropTypes$1 } from '@micromag/core';
11
- import { PlaceholderImage, PlaceholderText, ScreenElement, PlaceholderButton } from '@micromag/core/components';
12
- import { usePlaybackContext, usePlaybackMediaRef, useScreenState, useScreenSize, useViewerContext, useViewerWebView, useScreenRenderContext } from '@micromag/core/contexts';
11
+ import { ScreenElement, PlaceholderButton } from '@micromag/core/components';
12
+ import { usePlaybackContext, usePlaybackMediaRef, useScreenState, useScreenSize, useViewerContext, useViewerWebView, useViewerInteraction, useScreenRenderContext } from '@micromag/core/contexts';
13
13
  import { useTrackScreenEvent, useDimensionObserver, useDragProgress } from '@micromag/core/hooks';
14
14
  import { isHeaderFilled, isFooterFilled, getFooterProps, isTextFilled, getStyleFromBox, getStyleFromText } from '@micromag/core/utils';
15
- import Background, { Background as Background$1 } from '@micromag/element-background';
15
+ import Background from '@micromag/element-background';
16
16
  import Button from '@micromag/element-button';
17
17
  import CallToAction from '@micromag/element-call-to-action';
18
18
  import Container from '@micromag/element-container';
@@ -25,7 +25,7 @@ import Scroll from '@micromag/element-scroll';
25
25
  import Text from '@micromag/element-text';
26
26
  import Visual from '@micromag/element-visual';
27
27
 
28
- var styles = {"popupButton":"micromag-screen-keypad-popupButton","layoutLabelOver":"micromag-screen-keypad-layoutLabelOver","emptyButtonLabel":"micromag-screen-keypad-emptyButtonLabel","buttonLabel":"micromag-screen-keypad-buttonLabel","withSquareItems":"micromag-screen-keypad-withSquareItems","layoutNoLabel":"micromag-screen-keypad-layoutNoLabel","thumbnail":"micromag-screen-keypad-thumbnail","popupBackdrop":"micromag-screen-keypad-popupBackdrop","button":"micromag-screen-keypad-button","background":"micromag-screen-keypad-background","container":"micromag-screen-keypad-container","disabled":"micromag-screen-keypad-disabled","hidden":"micromag-screen-keypad-hidden","placeholder":"micromag-screen-keypad-placeholder","content":"micromag-screen-keypad-content","emptyTitle":"micromag-screen-keypad-emptyTitle","emptyText":"micromag-screen-keypad-emptyText","isPlaceholder":"micromag-screen-keypad-isPlaceholder","layout":"micromag-screen-keypad-layout","header":"micromag-screen-keypad-header","footer":"micromag-screen-keypad-footer","inner":"micromag-screen-keypad-inner","grid":"micromag-screen-keypad-grid","item":"micromag-screen-keypad-item","placeholderItem":"micromag-screen-keypad-placeholderItem","isEmpty":"micromag-screen-keypad-isEmpty","disableHover":"micromag-screen-keypad-disableHover","isLink":"micromag-screen-keypad-isLink","imagePlaceholder":"micromag-screen-keypad-imagePlaceholder","buttonPlaceholder":"micromag-screen-keypad-buttonPlaceholder","buttonVisualPlaceholder":"micromag-screen-keypad-buttonVisualPlaceholder","empty":"micromag-screen-keypad-empty","emptyButtonVisual":"micromag-screen-keypad-emptyButtonVisual","popup":"micromag-screen-keypad-popup","popupInner":"micromag-screen-keypad-popupInner","popupContent":"micromag-screen-keypad-popupContent","popupWrapper":"micromag-screen-keypad-popupWrapper","popupHeading":"micromag-screen-keypad-popupHeading","popupVisual":"micromag-screen-keypad-popupVisual","contentSplit":"micromag-screen-keypad-contentSplit","emptyHeading":"micromag-screen-keypad-emptyHeading","emptyVisual":"micromag-screen-keypad-emptyVisual","emptyContent":"micromag-screen-keypad-emptyContent","contentBottom":"micromag-screen-keypad-contentBottom","popupCTA":"micromag-screen-keypad-popupCTA","layoutLabelTop":"micromag-screen-keypad-layoutLabelTop","buttonVisual":"micromag-screen-keypad-buttonVisual"};
28
+ var styles = {"popupButton":"micromag-screen-keypad-popupButton","popup":"micromag-screen-keypad-popup","layoutLabelOver":"micromag-screen-keypad-layoutLabelOver","emptyButtonLabel":"micromag-screen-keypad-emptyButtonLabel","buttonLabel":"micromag-screen-keypad-buttonLabel","withSquareItems":"micromag-screen-keypad-withSquareItems","layoutNoLabel":"micromag-screen-keypad-layoutNoLabel","thumbnail":"micromag-screen-keypad-thumbnail","popupBackdrop":"micromag-screen-keypad-popupBackdrop","button":"micromag-screen-keypad-button","background":"micromag-screen-keypad-background","container":"micromag-screen-keypad-container","disabled":"micromag-screen-keypad-disabled","hidden":"micromag-screen-keypad-hidden","placeholder":"micromag-screen-keypad-placeholder","content":"micromag-screen-keypad-content","emptyTitle":"micromag-screen-keypad-emptyTitle","emptyText":"micromag-screen-keypad-emptyText","isPlaceholder":"micromag-screen-keypad-isPlaceholder","layout":"micromag-screen-keypad-layout","header":"micromag-screen-keypad-header","footer":"micromag-screen-keypad-footer","inner":"micromag-screen-keypad-inner","grid":"micromag-screen-keypad-grid","item":"micromag-screen-keypad-item","placeholderItem":"micromag-screen-keypad-placeholderItem","isEmpty":"micromag-screen-keypad-isEmpty","disableHover":"micromag-screen-keypad-disableHover","isLink":"micromag-screen-keypad-isLink","imagePlaceholder":"micromag-screen-keypad-imagePlaceholder","buttonPlaceholder":"micromag-screen-keypad-buttonPlaceholder","buttonVisualPlaceholder":"micromag-screen-keypad-buttonVisualPlaceholder","empty":"micromag-screen-keypad-empty","emptyButtonVisual":"micromag-screen-keypad-emptyButtonVisual","popupScroll":"micromag-screen-keypad-popupScroll","popupInner":"micromag-screen-keypad-popupInner","popupContent":"micromag-screen-keypad-popupContent","popupWrapper":"micromag-screen-keypad-popupWrapper","popupHeading":"micromag-screen-keypad-popupHeading","popupVisual":"micromag-screen-keypad-popupVisual","contentSplit":"micromag-screen-keypad-contentSplit","emptyHeading":"micromag-screen-keypad-emptyHeading","emptyVisual":"micromag-screen-keypad-emptyVisual","emptyContent":"micromag-screen-keypad-emptyContent","emptyCTA":"micromag-screen-keypad-emptyCTA","popupCTA":"micromag-screen-keypad-popupCTA","contentBottom":"micromag-screen-keypad-contentBottom","layoutLabelTop":"micromag-screen-keypad-layoutLabelTop","buttonVisual":"micromag-screen-keypad-buttonVisual"};
29
29
 
30
30
  var placeholders = [{
31
31
  id: '1'
@@ -96,6 +96,7 @@ var propTypes = {
96
96
  visual: PropTypes$1.visualElement,
97
97
  boxStyle: PropTypes$1.boxStyle
98
98
  })),
99
+ title: PropTypes$1.headingElement,
99
100
  layout: PropTypes.oneOf(['top', 'middle', 'bottom']),
100
101
  spacing: PropTypes.number,
101
102
  keypadSettings: PropTypes.shape({
@@ -126,6 +127,7 @@ var propTypes = {
126
127
  };
127
128
  var defaultProps = {
128
129
  items: null,
130
+ title: null,
129
131
  layout: null,
130
132
  spacing: 20,
131
133
  keypadSettings: null,
@@ -141,6 +143,7 @@ var defaultProps = {
141
143
  var KeypadScreen = function KeypadScreen(_ref) {
142
144
  var _ref18;
143
145
  var items = _ref.items,
146
+ title = _ref.title,
144
147
  layout = _ref.layout,
145
148
  spacing = _ref.spacing,
146
149
  keypadSettings = _ref.keypadSettings,
@@ -152,6 +155,8 @@ var KeypadScreen = function KeypadScreen(_ref) {
152
155
  current = _ref.current,
153
156
  active = _ref.active,
154
157
  className = _ref.className;
158
+ var containerRef = useRef(null);
159
+ var popupInnerRef = useRef(null);
155
160
  var trackScreenEvent = useTrackScreenEvent('keypad');
156
161
  var _usePlaybackContext = usePlaybackContext(),
157
162
  muted = _usePlaybackContext.muted;
@@ -167,6 +172,9 @@ var KeypadScreen = function KeypadScreen(_ref) {
167
172
  viewerBottomSidesWidth = _useViewerContext.bottomSidesWidth;
168
173
  var _useViewerWebView = useViewerWebView(),
169
174
  openWebView = _useViewerWebView.open;
175
+ var _useViewerInteraction = useViewerInteraction(),
176
+ enableInteraction = _useViewerInteraction.enableInteraction,
177
+ disableInteraction = _useViewerInteraction.disableInteraction;
170
178
  var _useScreenRenderConte = useScreenRenderContext(),
171
179
  isView = _useScreenRenderConte.isView,
172
180
  isPreview = _useScreenRenderConte.isPreview,
@@ -180,6 +188,10 @@ var KeypadScreen = function KeypadScreen(_ref) {
180
188
  openWebView: openWebView,
181
189
  isPreview: isPreview
182
190
  });
191
+ var hasTitle = isTextFilled(title);
192
+ var _ref2 = title || {},
193
+ _ref2$textStyle = _ref2.textStyle,
194
+ titleTextStyle = _ref2$textStyle === void 0 ? null : _ref2$textStyle;
183
195
  var _useDimensionObserver = useDimensionObserver(),
184
196
  headerRef = _useDimensionObserver.ref,
185
197
  _useDimensionObserver2 = _useDimensionObserver.height,
@@ -191,36 +203,34 @@ var KeypadScreen = function KeypadScreen(_ref) {
191
203
  var backgroundPlaying = current && (isView || isEdit);
192
204
  var mediaShouldLoad = !isPlaceholder && (current || active);
193
205
  var isInteractivePreview = isEdit && screenState === null;
194
- var _ref2 = keypadSettings || {},
195
- _ref2$layout = _ref2.layout,
196
- keypadLayout = _ref2$layout === void 0 ? null : _ref2$layout;
197
- var _ref3 = keypadLayout || {},
198
- _ref3$columnAlign = _ref3.columnAlign,
199
- columnAlign = _ref3$columnAlign === void 0 ? null : _ref3$columnAlign,
200
- _ref3$columns = _ref3.columns,
201
- columns = _ref3$columns === void 0 ? null : _ref3$columns,
202
- _ref3$spacing = _ref3.spacing,
203
- columnSpacing = _ref3$spacing === void 0 ? null : _ref3$spacing,
204
- _ref3$withSquareItems = _ref3.withSquareItems,
205
- withSquareItems = _ref3$withSquareItems === void 0 ? false : _ref3$withSquareItems;
206
- var _ref4 = buttonStyles || {},
207
- _ref4$layout = _ref4.layout,
208
- buttonLayout = _ref4$layout === void 0 ? null : _ref4$layout,
209
- _ref4$textStyle = _ref4.textStyle,
210
- buttonTextStyle = _ref4$textStyle === void 0 ? null : _ref4$textStyle,
211
- _ref4$boxStyle = _ref4.boxStyle,
212
- buttonBoxStyle = _ref4$boxStyle === void 0 ? null : _ref4$boxStyle;
213
- var _ref5 = popupStyles || {},
206
+ var _ref3 = keypadSettings || {},
207
+ _ref3$layout = _ref3.layout,
208
+ keypadLayout = _ref3$layout === void 0 ? null : _ref3$layout;
209
+ var _ref4 = keypadLayout || {},
210
+ _ref4$columnAlign = _ref4.columnAlign,
211
+ columnAlign = _ref4$columnAlign === void 0 ? null : _ref4$columnAlign,
212
+ _ref4$columns = _ref4.columns,
213
+ columns = _ref4$columns === void 0 ? null : _ref4$columns,
214
+ _ref4$spacing = _ref4.spacing,
215
+ columnSpacing = _ref4$spacing === void 0 ? null : _ref4$spacing,
216
+ _ref4$withSquareItems = _ref4.withSquareItems,
217
+ withSquareItems = _ref4$withSquareItems === void 0 ? false : _ref4$withSquareItems;
218
+ var _ref5 = buttonStyles || {},
214
219
  _ref5$layout = _ref5.layout,
215
- popupLayout = _ref5$layout === void 0 ? null : _ref5$layout,
216
- _ref5$backdrop = _ref5.backdrop,
217
- popupBackdrop = _ref5$backdrop === void 0 ? null : _ref5$backdrop,
218
- _ref5$headingTextStyl = _ref5.headingTextStyle,
219
- headingTextStyle = _ref5$headingTextStyl === void 0 ? null : _ref5$headingTextStyl,
220
- _ref5$contentTextStyl = _ref5.contentTextStyle,
221
- contentTextStyle = _ref5$contentTextStyl === void 0 ? null : _ref5$contentTextStyl,
220
+ buttonLayout = _ref5$layout === void 0 ? null : _ref5$layout,
221
+ _ref5$textStyle = _ref5.textStyle,
222
+ buttonTextStyle = _ref5$textStyle === void 0 ? null : _ref5$textStyle,
222
223
  _ref5$boxStyle = _ref5.boxStyle,
223
- popupBoxStyle = _ref5$boxStyle === void 0 ? null : _ref5$boxStyle;
224
+ buttonBoxStyle = _ref5$boxStyle === void 0 ? null : _ref5$boxStyle;
225
+ var _ref6 = popupStyles || {},
226
+ _ref6$layout = _ref6.layout,
227
+ popupLayout = _ref6$layout === void 0 ? null : _ref6$layout,
228
+ _ref6$headingTextStyl = _ref6.headingTextStyle,
229
+ headingTextStyle = _ref6$headingTextStyl === void 0 ? null : _ref6$headingTextStyl,
230
+ _ref6$contentTextStyl = _ref6.contentTextStyle,
231
+ contentTextStyle = _ref6$contentTextStyl === void 0 ? null : _ref6$contentTextStyl,
232
+ _ref6$boxStyle = _ref6.boxStyle,
233
+ popupBoxStyle = _ref6$boxStyle === void 0 ? null : _ref6$boxStyle;
224
234
  var popupLayoutClassName = useMemo(function () {
225
235
  return popupLayout !== null ? camelCase(popupLayout) : '';
226
236
  }, [popupLayout]);
@@ -232,28 +242,23 @@ var KeypadScreen = function KeypadScreen(_ref) {
232
242
  _useState4 = _slicedToArray(_useState3, 2),
233
243
  popup = _useState4[0],
234
244
  setPopup = _useState4[1];
235
- var _ref6 = popup || {},
236
- _ref6$heading = _ref6.heading,
237
- popupHeading = _ref6$heading === void 0 ? null : _ref6$heading,
238
- _ref6$content = _ref6.content,
239
- popupContent = _ref6$content === void 0 ? null : _ref6$content,
240
- _ref6$largeVisual = _ref6.largeVisual,
241
- largeVisual = _ref6$largeVisual === void 0 ? null : _ref6$largeVisual,
242
- _ref6$button = _ref6.button,
243
- popupButton = _ref6$button === void 0 ? null : _ref6$button;
245
+ var _ref7 = popup || {},
246
+ _ref7$heading = _ref7.heading,
247
+ popupHeading = _ref7$heading === void 0 ? null : _ref7$heading,
248
+ _ref7$content = _ref7.content,
249
+ popupContent = _ref7$content === void 0 ? null : _ref7$content,
250
+ _ref7$largeVisual = _ref7.largeVisual,
251
+ largeVisual = _ref7$largeVisual === void 0 ? null : _ref7$largeVisual,
252
+ _ref7$button = _ref7.button,
253
+ popupButton = _ref7$button === void 0 ? null : _ref7$button;
244
254
  var hasPopupHeading = isTextFilled(popupHeading);
245
- var _ref7 = popupHeading || {},
246
- _ref7$textStyle = _ref7.textStyle,
247
- popupHeadingTextStyle = _ref7$textStyle === void 0 ? null : _ref7$textStyle;
248
- var hasPopupContent = isTextFilled(popupContent);
249
- var _ref8 = popupContent || {},
255
+ var _ref8 = popupHeading || {},
250
256
  _ref8$textStyle = _ref8.textStyle,
251
- popupContentTextStyle = _ref8$textStyle === void 0 ? null : _ref8$textStyle;
252
- var _ref9 = popupBackdrop || {},
253
- _ref9$color = _ref9.color,
254
- backdropColor = _ref9$color === void 0 ? null : _ref9$color,
255
- _ref9$image = _ref9.image,
256
- backdropMedia = _ref9$image === void 0 ? null : _ref9$image;
257
+ popupHeadingTextStyle = _ref8$textStyle === void 0 ? null : _ref8$textStyle;
258
+ var hasPopupContent = isTextFilled(popupContent);
259
+ var _ref9 = popupContent || {},
260
+ _ref9$textStyle = _ref9.textStyle,
261
+ popupContentTextStyle = _ref9$textStyle === void 0 ? null : _ref9$textStyle;
257
262
  var _ref10 = popupButton || {},
258
263
  _ref10$label = _ref10.label,
259
264
  buttonLabel = _ref10$label === void 0 ? null : _ref10$label,
@@ -264,26 +269,29 @@ var KeypadScreen = function KeypadScreen(_ref) {
264
269
  _ref10$boxStyle = _ref10.boxStyle,
265
270
  popupButtonBoxStyle = _ref10$boxStyle === void 0 ? null : _ref10$boxStyle;
266
271
  var onItemClick = useCallback(function (e, item) {
272
+ e.stopPropagation();
273
+ trackScreenEvent('click_item', item);
267
274
  var _ref11 = item || {},
268
275
  _ref11$inWebView = _ref11.inWebView,
269
276
  inWebView = _ref11$inWebView === void 0 ? false : _ref11$inWebView,
270
277
  _ref11$url = _ref11.url,
271
278
  url = _ref11$url === void 0 ? null : _ref11$url;
272
- e.stopPropagation();
273
- trackScreenEvent('click_item', item);
274
279
  if (inWebView && url !== null) {
275
280
  openWebView({
276
281
  url: url
277
282
  });
278
283
  return;
279
284
  }
285
+ // disableInteraction();
280
286
  setPopup(item);
281
287
  setShowPopup(1);
282
- }, [setPopup, trackScreenEvent]);
288
+ }, [disableInteraction, setPopup, trackScreenEvent]);
283
289
  var onCloseModal = useCallback(function () {
290
+ // enableInteraction();
291
+
284
292
  setShowPopup(0);
285
293
  trackScreenEvent('close_modal');
286
- }, [setShowPopup]);
294
+ }, [enableInteraction, setShowPopup, trackScreenEvent]);
287
295
  var computePopupProgress = useCallback(function (_ref12) {
288
296
  var dragActive = _ref12.active,
289
297
  _ref12$movement = _slicedToArray(_ref12.movement, 2),
@@ -302,6 +310,24 @@ var KeypadScreen = function KeypadScreen(_ref) {
302
310
  }
303
311
  return 1 - progress;
304
312
  }, [onCloseModal]);
313
+ useEffect(function () {
314
+ if (showPopup !== 0) {
315
+ disableInteraction();
316
+ } else {
317
+ enableInteraction();
318
+ }
319
+ }, [showPopup]);
320
+ useEffect(function () {
321
+ function handleClickOutside(event) {
322
+ if (!current && isView || popupInnerRef.current && !popupInnerRef.current.contains(event.target) && containerRef.current && containerRef.current.contains(event.target) && !isInteractivePreview && !isEdit && showPopup !== 0) {
323
+ onCloseModal();
324
+ }
325
+ }
326
+ document.addEventListener('mousedown', handleClickOutside);
327
+ return function () {
328
+ document.removeEventListener('mousedown', handleClickOutside);
329
+ };
330
+ }, [current, popupInnerRef, containerRef, isInteractivePreview, isEdit, showPopup]);
305
331
  var _useDragProgress = useDragProgress({
306
332
  disabled: !isView,
307
333
  progress: showPopup ? 1 : 0,
@@ -373,14 +399,10 @@ var KeypadScreen = function KeypadScreen(_ref) {
373
399
  style: _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, getStyleFromBox(buttonBoxStyle)), getStyleFromText(buttonTextStyle)), getStyleFromBox(boxStyle)), getStyleFromText(textStyle)),
374
400
  external: isExternalLink,
375
401
  href: isExternalLink ? url : null,
376
- onClick: !isPopupEmpty || !isExternalLink ? function (e) {
402
+ onClick: !isPopupEmpty || url !== null && !isExternalLink ? function (e) {
377
403
  return onItemClick(e, item);
378
404
  } : null
379
- }, isEmpty && (isInteractivePreview || isPreview) ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PlaceholderImage, {
380
- className: styles.imagePlaceholder
381
- }), /*#__PURE__*/React.createElement(PlaceholderText, {
382
- lines: 2
383
- })) : /*#__PURE__*/React.createElement(React.Fragment, null, visual !== null || !isInteractivePreview ? /*#__PURE__*/React.createElement(ScreenElement, {
405
+ }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ScreenElement, {
384
406
  emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {
385
407
  id: "Qanvis",
386
408
  defaultMessage: [{
@@ -390,12 +412,15 @@ var KeypadScreen = function KeypadScreen(_ref) {
390
412
  }),
391
413
  emptyClassName: classNames([styles.empty, styles.buttonVisual, styles.emptyButtonVisual]),
392
414
  isEmpty: visual === null
393
- }, /*#__PURE__*/React.createElement(Visual, {
415
+ }, visual !== null ?
416
+ /*#__PURE__*/
417
+ // || !isInteractivePreview
418
+ React.createElement(Visual, {
394
419
  className: styles.buttonVisual,
395
420
  imageClassName: styles.thumbnail,
396
421
  media: visual,
397
422
  width: "auto"
398
- })) : null, label !== null || !isInteractivePreview ? /*#__PURE__*/React.createElement(ScreenElement, {
423
+ }) : null), /*#__PURE__*/React.createElement(ScreenElement, {
399
424
  placeholder: /*#__PURE__*/React.createElement(PlaceholderButton, null),
400
425
  emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {
401
426
  id: "Zbu5Uk",
@@ -406,9 +431,9 @@ var KeypadScreen = function KeypadScreen(_ref) {
406
431
  }),
407
432
  emptyClassName: classNames([styles.empty, styles.emptyButtonLabel]),
408
433
  isEmpty: label === null
409
- }, /*#__PURE__*/React.createElement("div", {
434
+ }, label !== null || !isInteractivePreview ? /*#__PURE__*/React.createElement("div", {
410
435
  className: styles.buttonLabel
411
- }, label)) : null)));
436
+ }, label) : null))));
412
437
  });
413
438
  }, [items, screenState, keypadSettings]);
414
439
  useEffect(function () {
@@ -432,6 +457,7 @@ var KeypadScreen = function KeypadScreen(_ref) {
432
457
  }
433
458
  }, [screenState, items]);
434
459
  return /*#__PURE__*/React.createElement("div", {
460
+ ref: containerRef,
435
461
  className: classNames([styles.container, (_ref18 = {}, _defineProperty(_ref18, className, className !== null), _defineProperty(_ref18, styles.isPlaceholder, isPlaceholder), _defineProperty(_ref18, styles.withSquareItems, withSquareItems), _ref18)]),
436
462
  "data-screen-ready": true
437
463
  }, isEdit && screenState !== null ? /*#__PURE__*/React.createElement("div", mouseBlocker) : null, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {
@@ -452,10 +478,11 @@ var KeypadScreen = function KeypadScreen(_ref) {
452
478
  width: width,
453
479
  height: height,
454
480
  verticalAlign: layout,
455
- disabled: isPreview || isPlaceholder || isEdit || showPopup !== 0
481
+ disabled: isPreview || isPlaceholder || showPopup !== 0
456
482
  }, /*#__PURE__*/React.createElement(Layout, {
457
483
  className: styles.layout,
458
484
  verticalAlign: layout,
485
+ width: width,
459
486
  style: !isPlaceholder ? {
460
487
  padding: spacing,
461
488
  paddingTop: (hasHeader ? headerHeight : spacing) + (current && !isPreview ? viewerTopHeight : 0),
@@ -471,7 +498,22 @@ var KeypadScreen = function KeypadScreen(_ref) {
471
498
  paddingBottom: spacing,
472
499
  transform: !isPreview ? "translate(0, ".concat(viewerTopHeight, "px)") : null
473
500
  }
474
- }, /*#__PURE__*/React.createElement(Header, header)) : null, /*#__PURE__*/React.createElement(Keypad$1, {
501
+ }, /*#__PURE__*/React.createElement(Header, header)) : null, /*#__PURE__*/React.createElement(ScreenElement, {
502
+ placeholder: "Title",
503
+ emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {
504
+ id: "BSTWf8",
505
+ defaultMessage: [{
506
+ "type": 0,
507
+ "value": "Title"
508
+ }]
509
+ }),
510
+ emptyClassName: classNames([styles.empty, styles.emptyHeading]),
511
+ isEmpty: !hasTitle
512
+ }, hasTitle ? /*#__PURE__*/React.createElement(Heading, Object.assign({
513
+ className: styles.title
514
+ }, title, {
515
+ textStyle: _objectSpread(_objectSpread({}, headingTextStyle), getStyleFromText(titleTextStyle))
516
+ })) : null), /*#__PURE__*/React.createElement(Keypad$1, {
475
517
  className: classNames([styles.grid, _defineProperty({}, styles.gridPlaceholder, isPlaceholder)]),
476
518
  align: columnAlign,
477
519
  columns: isPlaceholder ? 3 : columns,
@@ -487,22 +529,14 @@ var KeypadScreen = function KeypadScreen(_ref) {
487
529
  paddingBottom: spacing / 2,
488
530
  paddingTop: spacing
489
531
  }
490
- }, /*#__PURE__*/React.createElement(Footer, footerProps)) : null), /*#__PURE__*/React.createElement(animated.div, {
532
+ }, /*#__PURE__*/React.createElement(Footer, footerProps)) : null), popup !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(animated.div, {
491
533
  className: classNames([styles.popupBackdrop]),
492
534
  style: {
493
535
  opacity: popupSpring.to(function (p) {
494
536
  return p;
495
537
  })
496
538
  }
497
- }, /*#__PURE__*/React.createElement(Background$1, {
498
- width: width,
499
- height: height,
500
- resolution: resolution,
501
- playing: backgroundPlaying,
502
- media: backdropMedia,
503
- color: backdropColor,
504
- muted: true
505
- })), /*#__PURE__*/React.createElement(animated.div, Object.assign({
539
+ }), /*#__PURE__*/React.createElement(animated.div, Object.assign({
506
540
  className: styles.popup,
507
541
  style: {
508
542
  transform: popupSpring.to(function (p) {
@@ -512,27 +546,19 @@ var KeypadScreen = function KeypadScreen(_ref) {
512
546
  return p < 0.1 ? 'none' : 'auto';
513
547
  })
514
548
  }
515
- }, bindPopupDrag(), {
516
- onClick: function onClick() {
517
- if (onCloseModal !== null) {
518
- onCloseModal();
519
- }
520
- }
521
- }), /*#__PURE__*/React.createElement(Scroll, {
522
- disabled: isPreview || isPlaceholder || isEdit,
549
+ }, bindPopupDrag()), /*#__PURE__*/React.createElement(Scroll, {
550
+ disabled: isPreview || isPlaceholder || showPopup === 0,
523
551
  verticalAlign: "middle",
524
552
  withArrow: false,
553
+ className: styles.popupScroll,
525
554
  withShadow: true
526
- }, /*#__PURE__*/React.createElement("button", {
527
- type: "button",
528
- className: styles.popupButton
529
555
  }, /*#__PURE__*/React.createElement("div", {
556
+ ref: popupInnerRef,
530
557
  className: classNames([styles.popupInner, styles[popupLayoutClassName]]),
531
558
  style: _objectSpread(_objectSpread({}, getStyleFromBox(placeholderPopupBoxStyles)), getStyleFromBox(popupBoxStyle))
532
559
  }, /*#__PURE__*/React.createElement("div", {
533
560
  className: styles.popupWrapper
534
561
  }, /*#__PURE__*/React.createElement(ScreenElement, {
535
- placeholder: "popupHeading",
536
562
  emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {
537
563
  id: "IE7U/Q",
538
564
  defaultMessage: [{
@@ -561,7 +587,7 @@ var KeypadScreen = function KeypadScreen(_ref) {
561
587
  className: styles.popupContent
562
588
  }, popupContent, {
563
589
  textStyle: _objectSpread(_objectSpread({}, contentTextStyle), popupContentTextStyle)
564
- })) : null), largeVisual !== null ? /*#__PURE__*/React.createElement(ScreenElement, {
590
+ })) : null), /*#__PURE__*/React.createElement(ScreenElement, {
565
591
  placeholder: "image",
566
592
  emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {
567
593
  id: "z4Pr+g",
@@ -572,11 +598,11 @@ var KeypadScreen = function KeypadScreen(_ref) {
572
598
  }),
573
599
  emptyClassName: classNames([styles.empty, styles.emptyVisual]),
574
600
  isEmpty: largeVisual === null
575
- }, /*#__PURE__*/React.createElement(Visual, {
601
+ }, largeVisual !== null ? /*#__PURE__*/React.createElement(Visual, {
576
602
  className: styles.popupVisual,
577
603
  media: largeVisual,
578
604
  width: "100%"
579
- })) : null, /*#__PURE__*/React.createElement(ScreenElement, {
605
+ }) : null), /*#__PURE__*/React.createElement(ScreenElement, {
580
606
  placeholder: "button",
581
607
  emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {
582
608
  id: "N7Kj8z",
@@ -585,7 +611,7 @@ var KeypadScreen = function KeypadScreen(_ref) {
585
611
  "value": "Button"
586
612
  }]
587
613
  }),
588
- emptyClassName: classNames([styles.empty]),
614
+ emptyClassName: classNames([styles.empty, styles.emptyCTA]),
589
615
  isEmpty: popupButton === null
590
616
  }, popupButton !== null ? /*#__PURE__*/React.createElement(CallToAction, {
591
617
  className: styles.popupCTA,
@@ -596,7 +622,7 @@ var KeypadScreen = function KeypadScreen(_ref) {
596
622
  type: "click",
597
623
  boxStyle: popupButtonBoxStyle,
598
624
  style: _objectSpread({}, getStyleFromBox(popupButtonBoxStyle))
599
- }) : null)))))))));
625
+ }) : null)))))) : null)));
600
626
  };
601
627
  KeypadScreen.propTypes = propTypes;
602
628
  KeypadScreen.defaultProps = defaultProps;
@@ -787,16 +813,6 @@ var definition = [{
787
813
  "value": "Box style"
788
814
  }]
789
815
  })
790
- }, {
791
- name: 'backdrop',
792
- type: 'background',
793
- label: defineMessage({
794
- id: "cDj1mZ",
795
- defaultMessage: [{
796
- "type": 0,
797
- "value": "Background"
798
- }]
799
- })
800
816
  }]
801
817
  }]
802
818
  }, {
@@ -854,6 +870,19 @@ var definition = [{
854
870
  }]
855
871
  }],
856
872
  fields: [{
873
+ name: 'title',
874
+ type: 'heading-element',
875
+ theme: {
876
+ textStyle: 'heading1'
877
+ },
878
+ label: defineMessage({
879
+ id: "N25iDO",
880
+ defaultMessage: [{
881
+ "type": 0,
882
+ "value": "Title"
883
+ }]
884
+ })
885
+ }, {
857
886
  name: 'background',
858
887
  type: 'background',
859
888
  label: defineMessage({
package/lib/index.js CHANGED
@@ -51,7 +51,7 @@ var Scroll__default = /*#__PURE__*/_interopDefaultLegacy(Scroll);
51
51
  var Text__default = /*#__PURE__*/_interopDefaultLegacy(Text);
52
52
  var Visual__default = /*#__PURE__*/_interopDefaultLegacy(Visual);
53
53
 
54
- var styles = {"popupButton":"micromag-screen-keypad-popupButton","layoutLabelOver":"micromag-screen-keypad-layoutLabelOver","emptyButtonLabel":"micromag-screen-keypad-emptyButtonLabel","buttonLabel":"micromag-screen-keypad-buttonLabel","withSquareItems":"micromag-screen-keypad-withSquareItems","layoutNoLabel":"micromag-screen-keypad-layoutNoLabel","thumbnail":"micromag-screen-keypad-thumbnail","popupBackdrop":"micromag-screen-keypad-popupBackdrop","button":"micromag-screen-keypad-button","background":"micromag-screen-keypad-background","container":"micromag-screen-keypad-container","disabled":"micromag-screen-keypad-disabled","hidden":"micromag-screen-keypad-hidden","placeholder":"micromag-screen-keypad-placeholder","content":"micromag-screen-keypad-content","emptyTitle":"micromag-screen-keypad-emptyTitle","emptyText":"micromag-screen-keypad-emptyText","isPlaceholder":"micromag-screen-keypad-isPlaceholder","layout":"micromag-screen-keypad-layout","header":"micromag-screen-keypad-header","footer":"micromag-screen-keypad-footer","inner":"micromag-screen-keypad-inner","grid":"micromag-screen-keypad-grid","item":"micromag-screen-keypad-item","placeholderItem":"micromag-screen-keypad-placeholderItem","isEmpty":"micromag-screen-keypad-isEmpty","disableHover":"micromag-screen-keypad-disableHover","isLink":"micromag-screen-keypad-isLink","imagePlaceholder":"micromag-screen-keypad-imagePlaceholder","buttonPlaceholder":"micromag-screen-keypad-buttonPlaceholder","buttonVisualPlaceholder":"micromag-screen-keypad-buttonVisualPlaceholder","empty":"micromag-screen-keypad-empty","emptyButtonVisual":"micromag-screen-keypad-emptyButtonVisual","popup":"micromag-screen-keypad-popup","popupInner":"micromag-screen-keypad-popupInner","popupContent":"micromag-screen-keypad-popupContent","popupWrapper":"micromag-screen-keypad-popupWrapper","popupHeading":"micromag-screen-keypad-popupHeading","popupVisual":"micromag-screen-keypad-popupVisual","contentSplit":"micromag-screen-keypad-contentSplit","emptyHeading":"micromag-screen-keypad-emptyHeading","emptyVisual":"micromag-screen-keypad-emptyVisual","emptyContent":"micromag-screen-keypad-emptyContent","contentBottom":"micromag-screen-keypad-contentBottom","popupCTA":"micromag-screen-keypad-popupCTA","layoutLabelTop":"micromag-screen-keypad-layoutLabelTop","buttonVisual":"micromag-screen-keypad-buttonVisual"};
54
+ var styles = {"popupButton":"micromag-screen-keypad-popupButton","popup":"micromag-screen-keypad-popup","layoutLabelOver":"micromag-screen-keypad-layoutLabelOver","emptyButtonLabel":"micromag-screen-keypad-emptyButtonLabel","buttonLabel":"micromag-screen-keypad-buttonLabel","withSquareItems":"micromag-screen-keypad-withSquareItems","layoutNoLabel":"micromag-screen-keypad-layoutNoLabel","thumbnail":"micromag-screen-keypad-thumbnail","popupBackdrop":"micromag-screen-keypad-popupBackdrop","button":"micromag-screen-keypad-button","background":"micromag-screen-keypad-background","container":"micromag-screen-keypad-container","disabled":"micromag-screen-keypad-disabled","hidden":"micromag-screen-keypad-hidden","placeholder":"micromag-screen-keypad-placeholder","content":"micromag-screen-keypad-content","emptyTitle":"micromag-screen-keypad-emptyTitle","emptyText":"micromag-screen-keypad-emptyText","isPlaceholder":"micromag-screen-keypad-isPlaceholder","layout":"micromag-screen-keypad-layout","header":"micromag-screen-keypad-header","footer":"micromag-screen-keypad-footer","inner":"micromag-screen-keypad-inner","grid":"micromag-screen-keypad-grid","item":"micromag-screen-keypad-item","placeholderItem":"micromag-screen-keypad-placeholderItem","isEmpty":"micromag-screen-keypad-isEmpty","disableHover":"micromag-screen-keypad-disableHover","isLink":"micromag-screen-keypad-isLink","imagePlaceholder":"micromag-screen-keypad-imagePlaceholder","buttonPlaceholder":"micromag-screen-keypad-buttonPlaceholder","buttonVisualPlaceholder":"micromag-screen-keypad-buttonVisualPlaceholder","empty":"micromag-screen-keypad-empty","emptyButtonVisual":"micromag-screen-keypad-emptyButtonVisual","popupScroll":"micromag-screen-keypad-popupScroll","popupInner":"micromag-screen-keypad-popupInner","popupContent":"micromag-screen-keypad-popupContent","popupWrapper":"micromag-screen-keypad-popupWrapper","popupHeading":"micromag-screen-keypad-popupHeading","popupVisual":"micromag-screen-keypad-popupVisual","contentSplit":"micromag-screen-keypad-contentSplit","emptyHeading":"micromag-screen-keypad-emptyHeading","emptyVisual":"micromag-screen-keypad-emptyVisual","emptyContent":"micromag-screen-keypad-emptyContent","emptyCTA":"micromag-screen-keypad-emptyCTA","popupCTA":"micromag-screen-keypad-popupCTA","contentBottom":"micromag-screen-keypad-contentBottom","layoutLabelTop":"micromag-screen-keypad-layoutLabelTop","buttonVisual":"micromag-screen-keypad-buttonVisual"};
55
55
 
56
56
  var placeholders = [{
57
57
  id: '1'
@@ -122,6 +122,7 @@ var propTypes = {
122
122
  visual: core.PropTypes.visualElement,
123
123
  boxStyle: core.PropTypes.boxStyle
124
124
  })),
125
+ title: core.PropTypes.headingElement,
125
126
  layout: PropTypes__default["default"].oneOf(['top', 'middle', 'bottom']),
126
127
  spacing: PropTypes__default["default"].number,
127
128
  keypadSettings: PropTypes__default["default"].shape({
@@ -152,6 +153,7 @@ var propTypes = {
152
153
  };
153
154
  var defaultProps = {
154
155
  items: null,
156
+ title: null,
155
157
  layout: null,
156
158
  spacing: 20,
157
159
  keypadSettings: null,
@@ -167,6 +169,7 @@ var defaultProps = {
167
169
  var KeypadScreen = function KeypadScreen(_ref) {
168
170
  var _ref18;
169
171
  var items = _ref.items,
172
+ title = _ref.title,
170
173
  layout = _ref.layout,
171
174
  spacing = _ref.spacing,
172
175
  keypadSettings = _ref.keypadSettings,
@@ -178,6 +181,8 @@ var KeypadScreen = function KeypadScreen(_ref) {
178
181
  current = _ref.current,
179
182
  active = _ref.active,
180
183
  className = _ref.className;
184
+ var containerRef = React.useRef(null);
185
+ var popupInnerRef = React.useRef(null);
181
186
  var trackScreenEvent = hooks.useTrackScreenEvent('keypad');
182
187
  var _usePlaybackContext = contexts.usePlaybackContext(),
183
188
  muted = _usePlaybackContext.muted;
@@ -193,6 +198,9 @@ var KeypadScreen = function KeypadScreen(_ref) {
193
198
  viewerBottomSidesWidth = _useViewerContext.bottomSidesWidth;
194
199
  var _useViewerWebView = contexts.useViewerWebView(),
195
200
  openWebView = _useViewerWebView.open;
201
+ var _useViewerInteraction = contexts.useViewerInteraction(),
202
+ enableInteraction = _useViewerInteraction.enableInteraction,
203
+ disableInteraction = _useViewerInteraction.disableInteraction;
196
204
  var _useScreenRenderConte = contexts.useScreenRenderContext(),
197
205
  isView = _useScreenRenderConte.isView,
198
206
  isPreview = _useScreenRenderConte.isPreview,
@@ -206,6 +214,10 @@ var KeypadScreen = function KeypadScreen(_ref) {
206
214
  openWebView: openWebView,
207
215
  isPreview: isPreview
208
216
  });
217
+ var hasTitle = utils.isTextFilled(title);
218
+ var _ref2 = title || {},
219
+ _ref2$textStyle = _ref2.textStyle,
220
+ titleTextStyle = _ref2$textStyle === void 0 ? null : _ref2$textStyle;
209
221
  var _useDimensionObserver = hooks.useDimensionObserver(),
210
222
  headerRef = _useDimensionObserver.ref,
211
223
  _useDimensionObserver2 = _useDimensionObserver.height,
@@ -217,36 +229,34 @@ var KeypadScreen = function KeypadScreen(_ref) {
217
229
  var backgroundPlaying = current && (isView || isEdit);
218
230
  var mediaShouldLoad = !isPlaceholder && (current || active);
219
231
  var isInteractivePreview = isEdit && screenState === null;
220
- var _ref2 = keypadSettings || {},
221
- _ref2$layout = _ref2.layout,
222
- keypadLayout = _ref2$layout === void 0 ? null : _ref2$layout;
223
- var _ref3 = keypadLayout || {},
224
- _ref3$columnAlign = _ref3.columnAlign,
225
- columnAlign = _ref3$columnAlign === void 0 ? null : _ref3$columnAlign,
226
- _ref3$columns = _ref3.columns,
227
- columns = _ref3$columns === void 0 ? null : _ref3$columns,
228
- _ref3$spacing = _ref3.spacing,
229
- columnSpacing = _ref3$spacing === void 0 ? null : _ref3$spacing,
230
- _ref3$withSquareItems = _ref3.withSquareItems,
231
- withSquareItems = _ref3$withSquareItems === void 0 ? false : _ref3$withSquareItems;
232
- var _ref4 = buttonStyles || {},
233
- _ref4$layout = _ref4.layout,
234
- buttonLayout = _ref4$layout === void 0 ? null : _ref4$layout,
235
- _ref4$textStyle = _ref4.textStyle,
236
- buttonTextStyle = _ref4$textStyle === void 0 ? null : _ref4$textStyle,
237
- _ref4$boxStyle = _ref4.boxStyle,
238
- buttonBoxStyle = _ref4$boxStyle === void 0 ? null : _ref4$boxStyle;
239
- var _ref5 = popupStyles || {},
232
+ var _ref3 = keypadSettings || {},
233
+ _ref3$layout = _ref3.layout,
234
+ keypadLayout = _ref3$layout === void 0 ? null : _ref3$layout;
235
+ var _ref4 = keypadLayout || {},
236
+ _ref4$columnAlign = _ref4.columnAlign,
237
+ columnAlign = _ref4$columnAlign === void 0 ? null : _ref4$columnAlign,
238
+ _ref4$columns = _ref4.columns,
239
+ columns = _ref4$columns === void 0 ? null : _ref4$columns,
240
+ _ref4$spacing = _ref4.spacing,
241
+ columnSpacing = _ref4$spacing === void 0 ? null : _ref4$spacing,
242
+ _ref4$withSquareItems = _ref4.withSquareItems,
243
+ withSquareItems = _ref4$withSquareItems === void 0 ? false : _ref4$withSquareItems;
244
+ var _ref5 = buttonStyles || {},
240
245
  _ref5$layout = _ref5.layout,
241
- popupLayout = _ref5$layout === void 0 ? null : _ref5$layout,
242
- _ref5$backdrop = _ref5.backdrop,
243
- popupBackdrop = _ref5$backdrop === void 0 ? null : _ref5$backdrop,
244
- _ref5$headingTextStyl = _ref5.headingTextStyle,
245
- headingTextStyle = _ref5$headingTextStyl === void 0 ? null : _ref5$headingTextStyl,
246
- _ref5$contentTextStyl = _ref5.contentTextStyle,
247
- contentTextStyle = _ref5$contentTextStyl === void 0 ? null : _ref5$contentTextStyl,
246
+ buttonLayout = _ref5$layout === void 0 ? null : _ref5$layout,
247
+ _ref5$textStyle = _ref5.textStyle,
248
+ buttonTextStyle = _ref5$textStyle === void 0 ? null : _ref5$textStyle,
248
249
  _ref5$boxStyle = _ref5.boxStyle,
249
- popupBoxStyle = _ref5$boxStyle === void 0 ? null : _ref5$boxStyle;
250
+ buttonBoxStyle = _ref5$boxStyle === void 0 ? null : _ref5$boxStyle;
251
+ var _ref6 = popupStyles || {},
252
+ _ref6$layout = _ref6.layout,
253
+ popupLayout = _ref6$layout === void 0 ? null : _ref6$layout,
254
+ _ref6$headingTextStyl = _ref6.headingTextStyle,
255
+ headingTextStyle = _ref6$headingTextStyl === void 0 ? null : _ref6$headingTextStyl,
256
+ _ref6$contentTextStyl = _ref6.contentTextStyle,
257
+ contentTextStyle = _ref6$contentTextStyl === void 0 ? null : _ref6$contentTextStyl,
258
+ _ref6$boxStyle = _ref6.boxStyle,
259
+ popupBoxStyle = _ref6$boxStyle === void 0 ? null : _ref6$boxStyle;
250
260
  var popupLayoutClassName = React.useMemo(function () {
251
261
  return popupLayout !== null ? camelCase__default["default"](popupLayout) : '';
252
262
  }, [popupLayout]);
@@ -258,28 +268,23 @@ var KeypadScreen = function KeypadScreen(_ref) {
258
268
  _useState4 = _slicedToArray__default["default"](_useState3, 2),
259
269
  popup = _useState4[0],
260
270
  setPopup = _useState4[1];
261
- var _ref6 = popup || {},
262
- _ref6$heading = _ref6.heading,
263
- popupHeading = _ref6$heading === void 0 ? null : _ref6$heading,
264
- _ref6$content = _ref6.content,
265
- popupContent = _ref6$content === void 0 ? null : _ref6$content,
266
- _ref6$largeVisual = _ref6.largeVisual,
267
- largeVisual = _ref6$largeVisual === void 0 ? null : _ref6$largeVisual,
268
- _ref6$button = _ref6.button,
269
- popupButton = _ref6$button === void 0 ? null : _ref6$button;
271
+ var _ref7 = popup || {},
272
+ _ref7$heading = _ref7.heading,
273
+ popupHeading = _ref7$heading === void 0 ? null : _ref7$heading,
274
+ _ref7$content = _ref7.content,
275
+ popupContent = _ref7$content === void 0 ? null : _ref7$content,
276
+ _ref7$largeVisual = _ref7.largeVisual,
277
+ largeVisual = _ref7$largeVisual === void 0 ? null : _ref7$largeVisual,
278
+ _ref7$button = _ref7.button,
279
+ popupButton = _ref7$button === void 0 ? null : _ref7$button;
270
280
  var hasPopupHeading = utils.isTextFilled(popupHeading);
271
- var _ref7 = popupHeading || {},
272
- _ref7$textStyle = _ref7.textStyle,
273
- popupHeadingTextStyle = _ref7$textStyle === void 0 ? null : _ref7$textStyle;
274
- var hasPopupContent = utils.isTextFilled(popupContent);
275
- var _ref8 = popupContent || {},
281
+ var _ref8 = popupHeading || {},
276
282
  _ref8$textStyle = _ref8.textStyle,
277
- popupContentTextStyle = _ref8$textStyle === void 0 ? null : _ref8$textStyle;
278
- var _ref9 = popupBackdrop || {},
279
- _ref9$color = _ref9.color,
280
- backdropColor = _ref9$color === void 0 ? null : _ref9$color,
281
- _ref9$image = _ref9.image,
282
- backdropMedia = _ref9$image === void 0 ? null : _ref9$image;
283
+ popupHeadingTextStyle = _ref8$textStyle === void 0 ? null : _ref8$textStyle;
284
+ var hasPopupContent = utils.isTextFilled(popupContent);
285
+ var _ref9 = popupContent || {},
286
+ _ref9$textStyle = _ref9.textStyle,
287
+ popupContentTextStyle = _ref9$textStyle === void 0 ? null : _ref9$textStyle;
283
288
  var _ref10 = popupButton || {},
284
289
  _ref10$label = _ref10.label,
285
290
  buttonLabel = _ref10$label === void 0 ? null : _ref10$label,
@@ -290,26 +295,29 @@ var KeypadScreen = function KeypadScreen(_ref) {
290
295
  _ref10$boxStyle = _ref10.boxStyle,
291
296
  popupButtonBoxStyle = _ref10$boxStyle === void 0 ? null : _ref10$boxStyle;
292
297
  var onItemClick = React.useCallback(function (e, item) {
298
+ e.stopPropagation();
299
+ trackScreenEvent('click_item', item);
293
300
  var _ref11 = item || {},
294
301
  _ref11$inWebView = _ref11.inWebView,
295
302
  inWebView = _ref11$inWebView === void 0 ? false : _ref11$inWebView,
296
303
  _ref11$url = _ref11.url,
297
304
  url = _ref11$url === void 0 ? null : _ref11$url;
298
- e.stopPropagation();
299
- trackScreenEvent('click_item', item);
300
305
  if (inWebView && url !== null) {
301
306
  openWebView({
302
307
  url: url
303
308
  });
304
309
  return;
305
310
  }
311
+ // disableInteraction();
306
312
  setPopup(item);
307
313
  setShowPopup(1);
308
- }, [setPopup, trackScreenEvent]);
314
+ }, [disableInteraction, setPopup, trackScreenEvent]);
309
315
  var onCloseModal = React.useCallback(function () {
316
+ // enableInteraction();
317
+
310
318
  setShowPopup(0);
311
319
  trackScreenEvent('close_modal');
312
- }, [setShowPopup]);
320
+ }, [enableInteraction, setShowPopup, trackScreenEvent]);
313
321
  var computePopupProgress = React.useCallback(function (_ref12) {
314
322
  var dragActive = _ref12.active,
315
323
  _ref12$movement = _slicedToArray__default["default"](_ref12.movement, 2),
@@ -328,6 +336,24 @@ var KeypadScreen = function KeypadScreen(_ref) {
328
336
  }
329
337
  return 1 - progress;
330
338
  }, [onCloseModal]);
339
+ React.useEffect(function () {
340
+ if (showPopup !== 0) {
341
+ disableInteraction();
342
+ } else {
343
+ enableInteraction();
344
+ }
345
+ }, [showPopup]);
346
+ React.useEffect(function () {
347
+ function handleClickOutside(event) {
348
+ if (!current && isView || popupInnerRef.current && !popupInnerRef.current.contains(event.target) && containerRef.current && containerRef.current.contains(event.target) && !isInteractivePreview && !isEdit && showPopup !== 0) {
349
+ onCloseModal();
350
+ }
351
+ }
352
+ document.addEventListener('mousedown', handleClickOutside);
353
+ return function () {
354
+ document.removeEventListener('mousedown', handleClickOutside);
355
+ };
356
+ }, [current, popupInnerRef, containerRef, isInteractivePreview, isEdit, showPopup]);
331
357
  var _useDragProgress = hooks.useDragProgress({
332
358
  disabled: !isView,
333
359
  progress: showPopup ? 1 : 0,
@@ -399,14 +425,10 @@ var KeypadScreen = function KeypadScreen(_ref) {
399
425
  style: _objectSpread__default["default"](_objectSpread__default["default"](_objectSpread__default["default"](_objectSpread__default["default"]({}, utils.getStyleFromBox(buttonBoxStyle)), utils.getStyleFromText(buttonTextStyle)), utils.getStyleFromBox(boxStyle)), utils.getStyleFromText(textStyle)),
400
426
  external: isExternalLink,
401
427
  href: isExternalLink ? url : null,
402
- onClick: !isPopupEmpty || !isExternalLink ? function (e) {
428
+ onClick: !isPopupEmpty || url !== null && !isExternalLink ? function (e) {
403
429
  return onItemClick(e, item);
404
430
  } : null
405
- }, isEmpty && (isInteractivePreview || isPreview) ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(components.PlaceholderImage, {
406
- className: styles.imagePlaceholder
407
- }), /*#__PURE__*/React__default["default"].createElement(components.PlaceholderText, {
408
- lines: 2
409
- })) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, visual !== null || !isInteractivePreview ? /*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
431
+ }, /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
410
432
  emptyLabel: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
411
433
  id: "Qanvis",
412
434
  defaultMessage: [{
@@ -416,12 +438,15 @@ var KeypadScreen = function KeypadScreen(_ref) {
416
438
  }),
417
439
  emptyClassName: classNames__default["default"]([styles.empty, styles.buttonVisual, styles.emptyButtonVisual]),
418
440
  isEmpty: visual === null
419
- }, /*#__PURE__*/React__default["default"].createElement(Visual__default["default"], {
441
+ }, visual !== null ?
442
+ /*#__PURE__*/
443
+ // || !isInteractivePreview
444
+ React__default["default"].createElement(Visual__default["default"], {
420
445
  className: styles.buttonVisual,
421
446
  imageClassName: styles.thumbnail,
422
447
  media: visual,
423
448
  width: "auto"
424
- })) : null, label !== null || !isInteractivePreview ? /*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
449
+ }) : null), /*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
425
450
  placeholder: /*#__PURE__*/React__default["default"].createElement(components.PlaceholderButton, null),
426
451
  emptyLabel: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
427
452
  id: "Zbu5Uk",
@@ -432,9 +457,9 @@ var KeypadScreen = function KeypadScreen(_ref) {
432
457
  }),
433
458
  emptyClassName: classNames__default["default"]([styles.empty, styles.emptyButtonLabel]),
434
459
  isEmpty: label === null
435
- }, /*#__PURE__*/React__default["default"].createElement("div", {
460
+ }, label !== null || !isInteractivePreview ? /*#__PURE__*/React__default["default"].createElement("div", {
436
461
  className: styles.buttonLabel
437
- }, label)) : null)));
462
+ }, label) : null))));
438
463
  });
439
464
  }, [items, screenState, keypadSettings]);
440
465
  React.useEffect(function () {
@@ -458,6 +483,7 @@ var KeypadScreen = function KeypadScreen(_ref) {
458
483
  }
459
484
  }, [screenState, items]);
460
485
  return /*#__PURE__*/React__default["default"].createElement("div", {
486
+ ref: containerRef,
461
487
  className: classNames__default["default"]([styles.container, (_ref18 = {}, _defineProperty__default["default"](_ref18, className, className !== null), _defineProperty__default["default"](_ref18, styles.isPlaceholder, isPlaceholder), _defineProperty__default["default"](_ref18, styles.withSquareItems, withSquareItems), _ref18)]),
462
488
  "data-screen-ready": true
463
489
  }, isEdit && screenState !== null ? /*#__PURE__*/React__default["default"].createElement("div", mouseBlocker) : null, !isPlaceholder ? /*#__PURE__*/React__default["default"].createElement(Background__default["default"], {
@@ -478,10 +504,11 @@ var KeypadScreen = function KeypadScreen(_ref) {
478
504
  width: width,
479
505
  height: height,
480
506
  verticalAlign: layout,
481
- disabled: isPreview || isPlaceholder || isEdit || showPopup !== 0
507
+ disabled: isPreview || isPlaceholder || showPopup !== 0
482
508
  }, /*#__PURE__*/React__default["default"].createElement(Layout__default["default"], {
483
509
  className: styles.layout,
484
510
  verticalAlign: layout,
511
+ width: width,
485
512
  style: !isPlaceholder ? {
486
513
  padding: spacing,
487
514
  paddingTop: (hasHeader ? headerHeight : spacing) + (current && !isPreview ? viewerTopHeight : 0),
@@ -497,7 +524,22 @@ var KeypadScreen = function KeypadScreen(_ref) {
497
524
  paddingBottom: spacing,
498
525
  transform: !isPreview ? "translate(0, ".concat(viewerTopHeight, "px)") : null
499
526
  }
500
- }, /*#__PURE__*/React__default["default"].createElement(Header__default["default"], header)) : null, /*#__PURE__*/React__default["default"].createElement(Keypad__default["default"], {
527
+ }, /*#__PURE__*/React__default["default"].createElement(Header__default["default"], header)) : null, /*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
528
+ placeholder: "Title",
529
+ emptyLabel: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
530
+ id: "BSTWf8",
531
+ defaultMessage: [{
532
+ "type": 0,
533
+ "value": "Title"
534
+ }]
535
+ }),
536
+ emptyClassName: classNames__default["default"]([styles.empty, styles.emptyHeading]),
537
+ isEmpty: !hasTitle
538
+ }, hasTitle ? /*#__PURE__*/React__default["default"].createElement(Heading__default["default"], Object.assign({
539
+ className: styles.title
540
+ }, title, {
541
+ textStyle: _objectSpread__default["default"](_objectSpread__default["default"]({}, headingTextStyle), utils.getStyleFromText(titleTextStyle))
542
+ })) : null), /*#__PURE__*/React__default["default"].createElement(Keypad__default["default"], {
501
543
  className: classNames__default["default"]([styles.grid, _defineProperty__default["default"]({}, styles.gridPlaceholder, isPlaceholder)]),
502
544
  align: columnAlign,
503
545
  columns: isPlaceholder ? 3 : columns,
@@ -513,22 +555,14 @@ var KeypadScreen = function KeypadScreen(_ref) {
513
555
  paddingBottom: spacing / 2,
514
556
  paddingTop: spacing
515
557
  }
516
- }, /*#__PURE__*/React__default["default"].createElement(Footer__default["default"], footerProps)) : null), /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
558
+ }, /*#__PURE__*/React__default["default"].createElement(Footer__default["default"], footerProps)) : null), popup !== null ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
517
559
  className: classNames__default["default"]([styles.popupBackdrop]),
518
560
  style: {
519
561
  opacity: popupSpring.to(function (p) {
520
562
  return p;
521
563
  })
522
564
  }
523
- }, /*#__PURE__*/React__default["default"].createElement(Background.Background, {
524
- width: width,
525
- height: height,
526
- resolution: resolution,
527
- playing: backgroundPlaying,
528
- media: backdropMedia,
529
- color: backdropColor,
530
- muted: true
531
- })), /*#__PURE__*/React__default["default"].createElement(web.animated.div, Object.assign({
565
+ }), /*#__PURE__*/React__default["default"].createElement(web.animated.div, Object.assign({
532
566
  className: styles.popup,
533
567
  style: {
534
568
  transform: popupSpring.to(function (p) {
@@ -538,27 +572,19 @@ var KeypadScreen = function KeypadScreen(_ref) {
538
572
  return p < 0.1 ? 'none' : 'auto';
539
573
  })
540
574
  }
541
- }, bindPopupDrag(), {
542
- onClick: function onClick() {
543
- if (onCloseModal !== null) {
544
- onCloseModal();
545
- }
546
- }
547
- }), /*#__PURE__*/React__default["default"].createElement(Scroll__default["default"], {
548
- disabled: isPreview || isPlaceholder || isEdit,
575
+ }, bindPopupDrag()), /*#__PURE__*/React__default["default"].createElement(Scroll__default["default"], {
576
+ disabled: isPreview || isPlaceholder || showPopup === 0,
549
577
  verticalAlign: "middle",
550
578
  withArrow: false,
579
+ className: styles.popupScroll,
551
580
  withShadow: true
552
- }, /*#__PURE__*/React__default["default"].createElement("button", {
553
- type: "button",
554
- className: styles.popupButton
555
581
  }, /*#__PURE__*/React__default["default"].createElement("div", {
582
+ ref: popupInnerRef,
556
583
  className: classNames__default["default"]([styles.popupInner, styles[popupLayoutClassName]]),
557
584
  style: _objectSpread__default["default"](_objectSpread__default["default"]({}, utils.getStyleFromBox(placeholderPopupBoxStyles)), utils.getStyleFromBox(popupBoxStyle))
558
585
  }, /*#__PURE__*/React__default["default"].createElement("div", {
559
586
  className: styles.popupWrapper
560
587
  }, /*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
561
- placeholder: "popupHeading",
562
588
  emptyLabel: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
563
589
  id: "IE7U/Q",
564
590
  defaultMessage: [{
@@ -587,7 +613,7 @@ var KeypadScreen = function KeypadScreen(_ref) {
587
613
  className: styles.popupContent
588
614
  }, popupContent, {
589
615
  textStyle: _objectSpread__default["default"](_objectSpread__default["default"]({}, contentTextStyle), popupContentTextStyle)
590
- })) : null), largeVisual !== null ? /*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
616
+ })) : null), /*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
591
617
  placeholder: "image",
592
618
  emptyLabel: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
593
619
  id: "z4Pr+g",
@@ -598,11 +624,11 @@ var KeypadScreen = function KeypadScreen(_ref) {
598
624
  }),
599
625
  emptyClassName: classNames__default["default"]([styles.empty, styles.emptyVisual]),
600
626
  isEmpty: largeVisual === null
601
- }, /*#__PURE__*/React__default["default"].createElement(Visual__default["default"], {
627
+ }, largeVisual !== null ? /*#__PURE__*/React__default["default"].createElement(Visual__default["default"], {
602
628
  className: styles.popupVisual,
603
629
  media: largeVisual,
604
630
  width: "100%"
605
- })) : null, /*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
631
+ }) : null), /*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
606
632
  placeholder: "button",
607
633
  emptyLabel: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
608
634
  id: "N7Kj8z",
@@ -611,7 +637,7 @@ var KeypadScreen = function KeypadScreen(_ref) {
611
637
  "value": "Button"
612
638
  }]
613
639
  }),
614
- emptyClassName: classNames__default["default"]([styles.empty]),
640
+ emptyClassName: classNames__default["default"]([styles.empty, styles.emptyCTA]),
615
641
  isEmpty: popupButton === null
616
642
  }, popupButton !== null ? /*#__PURE__*/React__default["default"].createElement(CallToAction__default["default"], {
617
643
  className: styles.popupCTA,
@@ -622,7 +648,7 @@ var KeypadScreen = function KeypadScreen(_ref) {
622
648
  type: "click",
623
649
  boxStyle: popupButtonBoxStyle,
624
650
  style: _objectSpread__default["default"]({}, utils.getStyleFromBox(popupButtonBoxStyle))
625
- }) : null)))))))));
651
+ }) : null)))))) : null)));
626
652
  };
627
653
  KeypadScreen.propTypes = propTypes;
628
654
  KeypadScreen.defaultProps = defaultProps;
@@ -813,16 +839,6 @@ var definition = [{
813
839
  "value": "Box style"
814
840
  }]
815
841
  })
816
- }, {
817
- name: 'backdrop',
818
- type: 'background',
819
- label: reactIntl.defineMessage({
820
- id: "cDj1mZ",
821
- defaultMessage: [{
822
- "type": 0,
823
- "value": "Background"
824
- }]
825
- })
826
842
  }]
827
843
  }]
828
844
  }, {
@@ -880,6 +896,19 @@ var definition = [{
880
896
  }]
881
897
  }],
882
898
  fields: [{
899
+ name: 'title',
900
+ type: 'heading-element',
901
+ theme: {
902
+ textStyle: 'heading1'
903
+ },
904
+ label: reactIntl.defineMessage({
905
+ id: "N25iDO",
906
+ defaultMessage: [{
907
+ "type": 0,
908
+ "value": "Title"
909
+ }]
910
+ })
911
+ }, {
883
912
  name: 'background',
884
913
  type: 'background',
885
914
  label: reactIntl.defineMessage({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/screen-keypad",
3
- "version": "0.3.361",
3
+ "version": "0.3.369",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -54,22 +54,22 @@
54
54
  },
55
55
  "dependencies": {
56
56
  "@babel/runtime": "^7.13.10",
57
- "@micromag/core": "^0.3.360",
58
- "@micromag/element-background": "^0.3.360",
59
- "@micromag/element-button": "^0.3.360",
60
- "@micromag/element-call-to-action": "^0.3.360",
61
- "@micromag/element-container": "^0.3.360",
62
- "@micromag/element-footer": "^0.3.360",
63
- "@micromag/element-grid": "^0.3.360",
64
- "@micromag/element-header": "^0.3.360",
65
- "@micromag/element-heading": "^0.3.360",
66
- "@micromag/element-keypad": "^0.3.360",
67
- "@micromag/element-layout": "^0.3.360",
68
- "@micromag/element-scroll": "^0.3.360",
69
- "@micromag/element-text": "^0.3.360",
70
- "@micromag/element-urbania-author": "^0.3.360",
71
- "@micromag/element-visual": "^0.3.360",
72
- "@micromag/transforms": "^0.3.360",
57
+ "@micromag/core": "^0.3.369",
58
+ "@micromag/element-background": "^0.3.369",
59
+ "@micromag/element-button": "^0.3.369",
60
+ "@micromag/element-call-to-action": "^0.3.369",
61
+ "@micromag/element-container": "^0.3.369",
62
+ "@micromag/element-footer": "^0.3.369",
63
+ "@micromag/element-grid": "^0.3.369",
64
+ "@micromag/element-header": "^0.3.369",
65
+ "@micromag/element-heading": "^0.3.369",
66
+ "@micromag/element-keypad": "^0.3.369",
67
+ "@micromag/element-layout": "^0.3.369",
68
+ "@micromag/element-scroll": "^0.3.369",
69
+ "@micromag/element-text": "^0.3.369",
70
+ "@micromag/element-urbania-author": "^0.3.369",
71
+ "@micromag/element-visual": "^0.3.369",
72
+ "@micromag/transforms": "^0.3.369",
73
73
  "@react-spring/core": "^9.6.1",
74
74
  "@react-spring/web": "^9.6.1",
75
75
  "@use-gesture/react": "^10.2.4",
@@ -84,5 +84,5 @@
84
84
  "publishConfig": {
85
85
  "access": "public"
86
86
  },
87
- "gitHead": "846c75443d002315fbf6ec9b6e6292f7f3dfbd06"
87
+ "gitHead": "55706624c2879ead4acff84015ad51df2b7d293b"
88
88
  }